1. 쉘(Shell)이란?
    - 유저의 명령을 입력받아 OS가 그 명령을 처리할 수 있도록 커널과 사용자 간의 대화를 위한 인터프리터이다.

    2. 쉘 관련 명령어
    - cat /etc/shells : 자신의 시스템에서 사용할 수 있는 Shell 확인
    - echo $SHELL : 현재 사용중인 Shell
    - env 또는 printenv : 환경변수 확인
    - date '+%H:%M : 시간과 분만 출력
    - date -u : utc 기준 시간 출력
    - shopt -o 모드(emacs, vi) : 현재 쉘의 편집 모드 확인
    - shopt -os 모드(emacs, vi) : 쉘 편집 모드의 변경 (emacs 와 vi는 토글로 작용한다)

    3. 다중 명령어 사용
    - ; : 첫번째 명령 다음에 두번째 명령을 실행한다. (첫번째 명령어의 실패시에도 두번째 명령을 실행한다)
      ex) make; make install
    - && : 첫번째 명령 다음에 두번째 명령을 실행한다. (첫번째 명령어의 실패 시, 두번째 명령은 실행되지 않는다.)
      ex) date && time
    - || : 첫번째 명령 다음에 두번째 명령을 실행한다. (첫번째 명령어의 실패시에도 각각의 명령을 실행한다)
      ex) time || date

    4. 명령 히스토리
    - !문자 : 히스토리에 매칭되는 가장 최근의 명령을 찾아서 실행
    - !!문자 : 가장 최근의 명령을 다시 실행
    - !-숫자 : 히스토리에서 숫자에 해당하는 순서의 명령을 실행(최신 순)
    - !# : 명령을 2번 실행

    5. 디렉토리 구조 확인
    - tree : 현재 폴더의 디렉토리 구조 출력
    - tree -d : 디렉토리만 출력
    - tree -f : 파일만 출력
    - tree -L 숫자 디렉토리 : 숫자만큼의 깊이로 디렉토리와 파일 출력
      ex) tree -L 2 /home

    6. 링크
    - 하드링크 : 리눅스 상에서 동일한 파일 시스템 내의 파티션에서 동일한 inode 정보를 가지는 파일
      ex) ln 원본파일 하드링크파일명
    - 심볼릭링크 : 원본 파일의 이름만 링크 (윈도우의 바로가기 개념)
      ex) ln -s 원본파일 하드링크파일명

    7. 디렉토리 이동
    - cd - : 바로 이전 작업 디렉토리로 이동


    ※ 김태용의 리눅스 쉘 스크립트 책을 보면서 정리한 내용입니다
    Posted by sybd