셸 개요

셸 (Shell)

  • 명령어 해석기 또는 명령 행 인터페이스
    • 사용자와 커널 사이에서 명령어를 해석하여 처리
    • 셸 명령을 사용하면 GUI로는 하기 힘든 다양한 기능을 수행할 수 있음

  • 셸 명령을 프로그램으로 작성하여 처리할 수도 있음
    • 셸 스크립트는 텍스트 파일로, 프로그래밍을 통한 셸 명령의 조합
    • 반복적으로 수행되는 작업을 셸 스크립트로 작성할 수 있음
    • 셸이 셸 스크립트 파일을 읽어 처리할 수 있음

  • 텍스트 모드로 로그인을 하면 기본 셸이 주어짐

셸 사용하기

  • 텍스트 모드에서 로그인하면 자동으로 ‘로그인 셸’이 실행됨
  • GNOME 데스크톱에서는 ‘터미널 창’을 실행시켜 셸을 사용함
    • [현재 활동] > 터미널
    • 여러 터미널 창을 띄워 사용할 수 있음
    • 터미널 창은 명령 프롬프트와 명령 행을 제공함
  • 기본적으로 한 개의 명령을 입력하고 엔터를 눌러 명령을 수행함
    • 결과가 출력되면 명령 프롬프트가 다시 등장
    • 세미콜론을 사용하면 한 라인에 여러 명령을 입력할 수 있음

셸의 종류

  • 많은 리눅스 배포판에서 Bash를 기본 셸로 사용함
    • 명령 프롬프트로 일반 사용자는 $, root 사용자는 #을 사용함
    • 셸의 종류에 따라 에일리어스 설정, 초기화 파일, 셸 스크립트 작성법, 명령 행 완성 기능, 명령 행 편집 기능 등에 차이가 있음

Bash 셸

  • Bourne Again Shell로 Bourne 셸의 개선된 버전
    • 많은 셸 스크립트의 문법이 Bourne 셸에 기반을 둠
  • C 셸과 Korn 셸의 유용한 기능을 가져옴
  • 실행 명령은 /bin/bash

셸 선택하기

  • 기본 셸을 변경할 수 있음
    • chsh -s /bin/sh
  • 터미널 창을 ‘대화형 셸’ 이라고도 함
    • 셸을 종료하려면 exit 명령 또는 ctrl+d를 실행
    • 로그인 셸이 아님
  • 로그인 셸과 비로그인 셸을 구별해야 함
    • logout 명령은 로그인 셸에서만 가능
    • 참고로 ctrl+alt+F1~F6 으로 가상 콘솔을 사용할 수 있음
    • 셸 프롬프트에서 셸 프로그램을 실행하면 ‘서브 셸’이 실행됨

셸 명령

셸 명령의 형식

  • $명령어 옵션 인수
    • 예 : usermod -L kdhong
    • 옵션과 인수는 여럿일 수 있으며 선택적 또는 필수적
  • 대개 명령어는 프로그램의 이름
  • 관리자 명령 또는 일반 사용자 명령이 있음
  • 가장 간단한 형태의 실행은 명령의 이름만 사용하는 것

옵션과 인수

  • 짧은 옵션(-)
    • ls -l
    • ls -lat와 ls -l -a -t는 같은 것

  • 긴 옵선(–)
    • ls -all

  • 인수는 명령의 수행 대상을 지정하는 것
    • cat -n /etc/passwd
    • grep “KilDong Hong” /etc/passwd

  • 옵션도 인수를 가질 수 있음

### 명령어의 종류

유형 설명
에일리어스 alias 명령을 사용하여 만든 명령의 별칭
셸 예약어 예약된 단어로 do, while, case 등
함수 셸에서 수행되는 함수의 정의
내장 명령 셸 내부에 존재하는 명령으로 cd, echo, pwd 등
일반 명령 실행 파일이 존재하는 명렁


  • 환경 변수 PATH에 설정된 경로 중에 실행 파일이 존재하면 명령의 이름만으로 실행이 가능
    • 아니면 해당 실행 파일의 절대 경로를 사용해야 함
    • 현재 디렉터리(.)는 보통 PATH에 포함되어 있지 않음
    • echo $PATH로 저장된 경로를 확인할 수 있음

  • chsh 명령
    • rlqhs 셸을 바꾸는 명령
    • chsh ‘option’ ‘username
      • ’’ 사이의 옵션은 생략가능
      • 이탤릭체는 적당한 내용으로 대체해야함
      • 복수는 여러개가 가능하다는 의미

  • alias 명령
    • 자주 사용되는 명령의 단축 명령을 만드는 명령
    • 계속 유지하려면 셸의 환경 설정 파일에 기록해 두어야 함

  • type 명령
    • 명령이 어떻게 해석되는지 알려주는 명령

  • which 명령
    • 실행 프로그램을 환경변수 PATH를 기초로 찾아 경로를 출력함

  • man 명령
    • 명령의 사용법이나 설정 파일 등에 관한 온라인 도움말을 제공
    • man passwd 또는 man 5 passwh
    • 명령어의 간단한 도움말을 보려면 명령 –help를 사용할 수 있음

섹션 내용 섹션 내용
1 사용자 명령 5 시스템의 설정 파일
2 커널의 시스템 호출 6 게임
3 C 라이브러리 함수 7 파일 포맷, 인코딩 등
4 디바이스 드라이버 정보 8 시스템 관리 명령

Updated: