1. 셸이란
: 사용자와 커널 사이의 명령어 해석기
: 로그인할 때 실행되어 사용자별로 사용 환경 설정을 가능하게 함
: 강력한 스크립트 언어
: 입출력 방향 재지정과 파이프 ( | ) 기능을 제공
: 포어/백그라운드 프로세스 실행
2. 종류
: 본셸($) 계열와 C셸(%) 계열로 나뉨
: 대부분의 셸은 본셸 계열의 기능을 포함하여 확대 발전한 혀태
: C셸은 본셸의 모든 기능과 명령어 히스토리 별명, 작업 제어 기능을 추가로 가지고 있음
: 아래의 표는 왼쪽에서 오른쪽으로 갈수록 나중에 나온 것임
: dash - POSIX와 호환되는 /bin/sh를 작계 구현한 셸로, 빠른 작업 수행이 특징이지만 히스토리 등 명령 지원 X
본셸 (bourne shell) | C셸 (csh) | tcsh | ksh | bash |
- 스티브 본 개발 - 최초의 셸 |
- 빌 조이 개발 - 히스토리 기능 제공 - 별칭(alias) 기능 제공 |
- csh를 확장한 것 - 명령어 행 자동 완성 - 명령어 행 편집 기능 |
- 데이비드 콘 개발 - csh를 포함하여 본셸과도 호환 |
- 브라이언 폭스 개발 - GNU 프로젝트에서 개발 - 히스토리, 자동완성 등 앞서 개발한 기능 대부분 제공 - 리눅스에서 가장 多 사용 |
: bash 셸의 주요 기능
1) History 기능
- 일정 개수 이상 사용했던 명령어를 bash_history에 저장해두고 다시 불러서 사용할 수 있게 하는 기능
- 대부분의 셸은 이전에 입력했던 명령어를 반복하거나 약간 변형하여 다시 사용할 수 있도록 하는 기능
2) alias 기능
- 자주 사용하는 명령어를 특정 문자로 입력해두고 간편하게 사용할 수 있게 하는 기능
- alias 별칭='명령어'
- 별칭 해제 명령어는 unalias
- 별칭 목록 확인 시 명령어는 alias
3. 셸 확인 및 변경
로그인 셸 확인
: 파일 /etc/shell 에서 사용할 수 있는 셸들을 확인할 수 있음 (ls -l /etc/shell)
: 파일 /etc/passwd 파일에서 계정마다 할당된 셸을 확인할 수 있음
: 명령어 echo $SHELL은 현재 로그인한 사용자가 사용하고 있는 셸을 확인할 수 있음
: 로그아웃 시 실행할 명령은 bash-logout에 입력
셸 변경
: 로그인 셸 변경은 반영구적인 셸 변경 방법으로 관리자가 셸 변경 후 다음 변경을 하기 전까지 지정된 셸 사용
: 명령어 chsh - 일반 사용자 환경에서 셸 변경 시 사용
: 명령어 usermod - 관리자 환경에서 지정된 계정자의 정보를 변경할 때 사용하는 명령어
4. 환경 변수와 셸 변수
환경 변수 (전역 변수, env)
: 전체 셸에서 사용 가능한 전역 변수
: 서브 셸에 기능 상속 가능
: 환경 변수 확인 명령 env (printenv)
: 대표적인 환경 변수의 예
- $SHELL: 현재 사용자가 사용중인 셸
- $TERM: 터미널 종류의 이름
- $LANG: 기본 자원 언어
- $PS1: SHELL 프롬프트 선언 (기본)
- $PS2: 2차 SHELL 프롬프트 선언 (보조)
셸 변수 (지역 변수, set)
: 현재 로그인 셸에서만 사용 가능한 지역 변수
: 서브 셸에 기능 상속 불가능
5. 환경 설정 파일
: 셸 시작 시 자동으로 실행되는 고유의 시작 파일이 있음. 이 파일은 사용자 운영 환경을 결정
: 배시셸의 시작 파일
- /etc/profile: 전체 환경 설정
- /etc/bashrc: 전체 변수 설정
- ~/.bash_profile: 사용자별 환경 설정
- ~/.bashrc: 사용자별 변수 설정
: 셸 파일은 전역적 파일과 지역적 파일로 나뉨
: 파일 /etc/profile.d는 몇몇 응용 프로그램들이 시작 시 자동 실행할 스크립트 파일 경로를 넣어둠
'자격증 > 리눅스 마스터' 카테고리의 다른 글
리눅스 마스터 요약정리 #1-6 : 에디터 종류 (0) | 2020.12.23 |
---|---|
리눅스 마스터 요약정리 #1-5 : 프로세스 유틸리티 (0) | 2020.12.22 |
리눅스 마스터 요약정리 #1-4 : 프로세스 개념 및 유형 (0) | 2020.12.21 |
리눅스 마스터 요약정리 #1-2 : 파일 시스템 관리 (0) | 2020.12.19 |
리눅스 마스터 요약정리 #1-1 : 권한 및 그룹 설정 (0) | 2020.12.19 |