섹션 1. 리눅스 기본

 

리눅스 서버를 자동화하여 관리하기 위한 쉘 스크립트(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