리눅스 셸

김현송·2023년 5월 12일
0

셸의 기능

명령어 해석기 기능, 프로그래밍 기능, 사용자 환경 설정 기능

  • 명령어 해석기 기능
    • 사용자와 커널 사이에서 명령을 해석하여 전달하는 해석기와 번역기 기능입니다.
    • 사용자가 로그인하면 셸이 자동으로 실행되어 사용자가 명령을 입력하기를 기다립니다.
    • 로그인 셸은 /etc.passwd 파일에 사용자별로 지정할 수 있습니다.
    • 프롬프트 : 셸이 사용자의 명령을 기다리고 있음을 나타내는 표시합니다.
  • 프로그래밍 기능
    • 셸은 자체 내에 프로그래밍 기능이 있어 반복적으로 수행하는 작업을 하나의 프로그램으로 작성 할 수 있습니다.
    • 셸 프로그램을 셸 스크립트라고 합니다.
  • 사용자 환경 설정 기능
    • 사용자 환경을 설정할 수 있도록 초기화 파일 기능 제공
    • 초기화 파일에는 명령을 찾아오는 경로를 설정하거나, 파일과 디렉터리를 새로 생성할 때 기본 권한을 설정하거나, 다양한 환경 변수 등을 설정

기본 셸 바꾸기

chsh : /bin/bash 의 bash 셸을 변경하는 명령어. 사용자 로그인 셸을 바꿉니다.

  • -s shell : 지정한 셸로 로그인 셸을 바꿉니다.
  • -l : /etc/shells 파일에 지정된 셸을 출력합니다.

로그인 셸과 서브 셸

  • 프롬프트에서 다른 셸을 실행할 수 있는데 이를 서브 셸이라 합니다.
  • 서브 셸은 또 다른 서브 셸 생성 가능합니다.

셸 내장 명령

  • 셸을 자체적으로 내장 명령을 가지고 있습니다.
  • 셸 내장 명령은 별도의 실행 파일이 없고 셸 안에 포함되어 있습니다.
    • 예 : cd

배시 셸의 출력 명령

  • echo : 화면에 한 줄의 문자열을 출력합니다.

    • echo [-n] 문자열
    • -n : 마지막에 줄 바꿈을 하지 않습니다.
  • printf : %지시자와 \ 문자를 이용하여 출력 형식을 지정 가능합니다.

    • 자료를 형식화 하여 화면에 출력합니다.
    • 인수 전달이 가능하고 c언어 printf 함수의 형식을 지정합니다.

특수문자 사용하기

명령을 입력하면 셸은 먼저 특수문자가 있는지 확인하고 이를 적절한 형태로 변경한 후 명령을 실행합니다.

  • *: 임의의 문자열을 나타내는 특수문자로 0개 이상의 문자로 대체합니다

  • ?와 [] : ? 는 글자 하나 []는 정규식과 유사합니다.

  • ~/- : 디렉터리를 나타내는 특수문자

  • ~만 사용하면 현재 작업중인 사용자의 홈 디렉토리입니다.

  • -는 cd 명령으로 디렉터리를 이전하기 직전의 작업 디렉토리 표시

  • ; : 명령과 명령을 연결합니다.

  • |(파이프) : 왼쪽 명령의 실행 결과를 오른쪽 명령의 입력으로 전달 ( 시스템 콜 )

  • '' , " " : 작은 따옴표는 모든 특수 문자를 큰따옴표는 $,``,\ 를 제외한 모든 특수문자를 일반 문자로 간주

  • ` : 명령으로 해석하여 명령의 실행 결과로 전달

  • \ : 특수문자를 일반문자로 처리

  • <,>,>> : 입출력의 방향을 바꾸는 특수 문자입니다.
    입출력 방향 바꾸기
    출력 리다이렉션
    - > : 기존 파일의 내용을 삭제하고 새로 결과를 저장합니다. ( 파일 덮어 쓰기 )
    - 명령1 > 파일

    - 다음 옵션으로 예상치 않게 파일의 내용이 겹쳐 쓰이는 상황 예방할 수 있습니다.

    • set -o noclobber (설정)
    • set +o noclobber (해제)
      - >> : 기존 파일의 내용 뒤에 결과를 추가합니다. (ex:log)
profile
안녕하세요

0개의 댓글