리눅스 서버를 자동화하여 관리하기 위한 쉘 스크립트(Shell Script) 심화 강좌를 정리합니다.
출처 : inflearn
1. Linux 파일명 규칙
- 최대 255자 까지 가능
- 알파벳 대소문자 숫자포함, 마침표, 밑줄, 하이픈(대시)
- 대/소문자 구별
- 백슬래시
\
를 이용하여 특수 문자를 이스케이프 - 공백문자 포함시 인용부호 처리
- 숨김파일(디렉토리)명은 마침표(.)로 시작
2. 자동완성 기능
- 디렉토리나 파일명을 입력할시
tab
키를 이용하여 빠르게 입력이 가능하다.
3. 리눅스 디렉토리 구조
/
: root 디렉토리/bin
: 명령어 디렉토리/sbin
: 시스템 권한을 가진 root 권한의 명령어 디렉토리/usr/bin
: 리눅스 응용프로그램 디렉토리/usr/local/bin
: 리눅스 응용프로그램 디렉토리/lib
: 라이브러리 디렉토리/usr/lib
: 라이브러리 디렉토리(응용프로그램 설치시)/usr/local/lib
: 라이브러리 디렉토리/dev
: 장치파 (하드웨어를 제어시 사용함)/etc
: 환경파일/home
: 작업디렉토리 (계정생성시 해당경로에 디렉토리생성됨)/var
: 시스템에 관련된 많은 정보들을 담고 있는 디렉토리/var/log
: 로그파일 디렉토리/var/log/syslog
: 시스템 부팅시, 커널의 이벤트 등의 로그생성되는 디렉토리/usr
: 리눅스의 많은 응용프로그램들이 설치되는 디렉토리
4. 경로변경(절대경로와 상대경로)
- 절대경로
user@linux$ cd /usr/local/include
- 상대경로
user@linux$ pwd
/usr/local
user@linux$ cd ./include/
user@linux$ pwd
/usr/local/include
user@linux$ cd ../../..
user@linux$ pwd
/
5. 파일의 접근권한
user/linux$ mkdir -p dir{1,2,3}/dir{11,22,33}
user/linux$ ls
dir1 dir2 dir3
user/linux$ cd dir1
user/linux$ echo hello world > helloworld.txt
user/linux$ ls
dir11 dir22 dir33 helloworld.txt
user/linux$ ls -al
drwxrwxr-x 5 shkim shkim 67 Feb 20 22:27 .
drwx------ 5 shkim shkim 119 Feb 20 22:26 ..
drwxrwxr-x 2 shkim shkim 6 Feb 20 22:26 dir11
drwxrwxr-x 2 shkim shkim 6 Feb 20 22:26 dir22
drwxrwxr-x 2 shkim shkim 6 Feb 20 22:26 dir33
-rw-rw-r-- 1 shkim shkim 12 Feb 20 22:27 helloworld.txt
-
파일 구조 설명
ㄴ . : 자기자신의 디렉토리
ㄴ .. : 부모 디렉토리 -
가장 첫번째 자리에 나오는 문자열 또는 기호
ㄴd
: 디렉토리
ㄴf
,-
: 파일
ㄴs
: 심볼릭 링크
ㄴc
,b
: 장치파일
ㄴp
: 파이프 -
뒤이어 나오는 9자리는 파일접근권한을 나타냄.
ㄴrwx rwx r-x
ㄴ (user)(group)(other) -
rwx 의 의미
ㄴr
: 읽기가능
ㄴw
: 쓰기가능
ㄴx
: 실행가능 -
ls -al 로 보여지는 시간은 파일의
수정시간
을 나타냄.
6. 심볼릭링크와 하드링크
r--
뒤의 1이라는 숫자는 해당 파일이 하드링크임을 나타낸다.
-rw-rw-r-- 1 shkim shkim 12 Feb 20 22:27 helloworld.txt
- 하드링크 생성
ㄴr--
뒤의 2라는 숫자는 하나의 원본을 가리키는 링크가 2개임을 나타냄.
ㄴ 디렉토리는 하드링크를 만들 수 없음.
/user/linux$ ln helloworld.txt helloworld.txt.hd
/user/linux$ ls -al
-rw-rw-r-- 2 shkim shkim 12 Feb 20 22:27 helloworld.txt
-rw-rw-r-- 2 shkim shkim 12 Feb 20 22:27 helloworld.txt.hd
- 심볼릭 링크 생성
ㄴ 윈도우즈의 바로가기와 비슷하다고 생각하면 됨.
/user/linux$ ln -s helloworld.txt helloworld.txt.sym
/user/linux$ ls -al
-rw-rw-r-- 2 shkim shkim 12 Feb 20 22:27 helloworld.txt
-rw-rw-r-- 2 shkim shkim 12 Feb 20 22:27 helloworld.txt.hd
lrwxrwxrwx 1 shkim shkim 14 Feb 20 23:15 helloworld.txt.sym -> helloworld.txt
PREVIOUS서버 접속시 라인(Line)알람 받기 설정
NEXT섹션 2. 쉘 기초 명령어