셸 개요
셸 (Shell)
- 명령어 해석기 또는 명령 행 인터페이스
- 사용자와 커널 사이에서 명령어를 해석하여 처리
- 셸 명령을 사용하면 GUI로는 하기 힘든 다양한 기능을 수행할 수 있음
- 셸 명령을 프로그램으로 작성하여 처리할 수도 있음
- 셸 스크립트는 텍스트 파일로, 프로그래밍을 통한 셸 명령의 조합
- 반복적으로 수행되는 작업을 셸 스크립트로 작성할 수 있음
- 셸이 셸 스크립트 파일을 읽어 처리할 수 있음
- 텍스트 모드로 로그인을 하면 기본 셸이 주어짐
셸 사용하기
- 텍스트 모드에서 로그인하면 자동으로 ‘로그인 셸’이 실행됨
- GNOME 데스크톱에서는 ‘터미널 창’을 실행시켜 셸을 사용함
- [현재 활동] > 터미널
- 여러 터미널 창을 띄워 사용할 수 있음
- 터미널 창은 명령 프롬프트와 명령 행을 제공함
- 기본적으로 한 개의 명령을 입력하고 엔터를 눌러 명령을 수행함
- 결과가 출력되면 명령 프롬프트가 다시 등장
- 세미콜론을 사용하면 한 라인에 여러 명령을 입력할 수 있음
셸의 종류
- 많은 리눅스 배포판에서 Bash를 기본 셸로 사용함
- 명령 프롬프트로 일반 사용자는 $, root 사용자는 #을 사용함
- 셸의 종류에 따라 에일리어스 설정, 초기화 파일, 셸 스크립트 작성법, 명령 행 완성 기능, 명령 행 편집 기능 등에 차이가 있음
Bash 셸
- Bourne Again Shell로 Bourne 셸의 개선된 버전
- 많은 셸 스크립트의 문법이 Bourne 셸에 기반을 둠
- C 셸과 Korn 셸의 유용한 기능을 가져옴
- 실행 명령은 /bin/bash
셸 선택하기
- 기본 셸을 변경할 수 있음
- 터미널 창을 ‘대화형 셸’ 이라고도 함
- 셸을 종료하려면 exit 명령 또는 ctrl+d를 실행
- 로그인 셸이 아님
- 로그인 셸과 비로그인 셸을 구별해야 함
- logout 명령은 로그인 셸에서만 가능
- 참고로 ctrl+alt+F1~F6 으로 가상 콘솔을 사용할 수 있음
- 셸 프롬프트에서 셸 프로그램을 실행하면 ‘서브 셸’이 실행됨
셸 명령
셸 명령의 형식
- $명령어 옵션 인수
- 예 : usermod -L kdhong
- 옵션과 인수는 여럿일 수 있으며 선택적 또는 필수적
- 대개 명령어는 프로그램의 이름
- 관리자 명령 또는 일반 사용자 명령이 있음
- 가장 간단한 형태의 실행은 명령의 이름만 사용하는 것
옵션과 인수
- 짧은 옵션(-)
- ls -l
- ls -lat와 ls -l -a -t는 같은 것
- 긴 옵선(–)
- 인수는 명령의 수행 대상을 지정하는 것
- 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 |
시스템 관리 명령 |