Shell 종류
본셸 (Bourne shell) 계열과 C셸 계열로 나뉘게 된다.
BourneShell 계열
bourne shell
/bin/sh
의 실행 파일을 가진다.
- 벨 연구소의 스티븐 본이 1979년에 개발
- 유닉스에서 기본 셸로 사용
korn shell
/bin/ksh
의 실행 파일을 가진다.
- AT&T의 데이비드 콘이 1986년 개발
- 본셸을 확장해서 만들었다.
- 명령어 완성 기능, 히스토리 확장 기능을 가진다.
bash shell
/bin/bash
의 실행 파일을 가진다.
- 브레인 폭스가 1989년 개발
- 본셸을 기반으로 GNU 프로젝트에 의해 개발된다.
- Linux 표준 셸로 채탱된다.
- 다양한 운영체제에서 사용되며, 여러 기능들이 지원된다.
- POSIX 와 호환 가능하다.
z shell
/bin/zsh
의 실행 파일을 가진다.
- 폴 팔스타드가 1990년에 개발
- 확장형 본셸이며, korn shell의 재작성 셸이다.
CShell 계열
C shell
/bin/csh
의 실행 파일을 가진다.
- 버클리 대학의 빌조이가 1981년 개발
- C언어의 특징을 많이 포함한다.
- 다양한 프로그래밍 작성 기능을 가진다.
tc shell
/bin/tcsh
의 실행 파일을 가진다.
- Ken Greer 가 1982년 개발
- 확장 C셸로서 BSD 계열에서 자주 사용한다.
- 새로운 환경변수를 포함한다.
셸 확인 및 변경
/etc/shells
를 통해서 사용할 수 있는 셸들을 확인할 수 있다.
/etc/passwd
파일에서 계정마다 할당된 셸을 확인할 수 있다.
echo $SHELL
은 현재 로그인한 사용자가 사용중인 셸을 알려준다.
chsh
일반 사용자 환경에서 셸 변경 시 사용한다.
$ chsh [옵션] 계정명 셸
옵션
-s : 지정하는 셸을 추후 로그인 셸로 변경 (Save)
-l : /etc/shells 파일 안에 지정된 셸을 나열 (List)
usermod
관리자 환경에서 지정 사용자의 셸 변경 시 사용한다.
$ usermod [옵션] 계정명
옵션
-s : 지정하는 셸을 추후 로그인 셸로 변경 (Save)
환경 설정
- 환경 변수
- 전체 셸에서 사용 가능한 전역 변수
- 서브 셸에 상속 가능
env
명령어를 통해 확인
- 셸 변수
- 현재 로그인 셸에서만 사용 가능한 지역 변수
- 상속 불가능
set
명령어를 통해 확인
주요 환경 변수
- PATH
- 실행할 명령어 경로
- HOME
- 사용자의 홈 디렉터리 절대 경로
- HOSTNAME
- 호스트명
- USER
- 사용자 이름
- DISPLAY
- X-windows 환경에서 X 서버의 주소를 지정
- PS1 / PS2
- 셸 프롬프트를 선언 시 사용
- PWD
- 현재 디렉터리 절대 경로명
- SHELL
- 로그인 셸의 절대 경로명
- TERM
- 터미널 종류의 이름
- TMOUT
- 로그아웃 관련 시간 제어
- LANG
- 프로그램 사용 시 기본 지원 언어
환경 변수 설정
명령어 | 설명 |
---|---|
export | 환경 변수 리스트 확인 |
export 변수명 = 변수값 | 해당 변수명에 변수값 등록, 셸 변수를 환경 변수로 변경 |
echo $변수명 | 변수명에 해당하는 환경 변수 값 확인 |
export 변수명 = $변수명:변수값 | 기존 변수명에 변수 값 추가 |
unset 변수명 | 변수 정의 해제 |
환경 설정 파일
셸 시작 시 자동으로 실행되는 고유의 시작 파일이 존재한다.
전역 설정 파일
/etc/profile
- 모든 사용자의 셸 환경을 제어하는 설정 파일
- 환경 변수와 bash 수행 시 실행되는 프로그램 제어
- 관리자만 설정 가능하며 모든 사용자에게 적용
/etc/bashrc
- 별칭 (alias) 과 bash 수행 시 실행되는 함수를 제어
/etc/profile.d
- 몇몇 응용 프로그램들이 시작 시 자동 실행할 스크립트 파일 경로를 넣어두는 디렉터리
지역 설정 파일
~/.bash_profile
- 개인 사용자의 셸 환경을 제어하는 설정 파일
- PATH, 환경 변수 등을 설정
~/.bashrc
- 별칭 (alias) 과 bash 수행 시 실행되는 함수를 제어
~/.bash_history
- 사용자가 명령어나 키보드로 입력한 내용들을 파일에 기록
~/.bash_logout
- 로그아웃하기 직전에 실행되는 설정 파일
bash shell 의 주요 기능
History 기능
명령어 | 설명 |
---|---|
!! | 마지막으로 실행한 명령문 실행 |
!n | n번째 명령어 실행 |
!-n | 최근 순에서 n번 째 전 명령어 실행 |
!string | 'string'으로 시작하는 가장 최근 명령문 실행 |
!$ / !!$ | 마지막 명령의 argument |
!* | 마지막으로 실행된 명령의 모든 argument |
!?string? | 'string'으로 시작하는 가장 최근의 단어 |
환경변수 | 설명 |
---|---|
HISTSIZE | 히스토리 스택의 크기 지정 |
HISTFILE | 히스토리 파일 위치 |
HISTFILESIZE | 물리적인 히스토리 파일 크기 |
HISTTIMEFORMAT | 히스토리 명령어 수행 시간 출력 형태 지정 |
HISTCONTROL | 중복되는 명령어에 대한 기록 유무 지정 |
Alias 기능
명령어 | 설명 |
---|---|
alias | 설정되어 있는 alias 확인 |
alias 별명='명령어 질의' | 새로운 alias 정의 |
unalias 별명 | 지정된 alias 해제 |
'공부한 이야기 > 리눅스' 카테고리의 다른 글
리눅스 - 주변기기 (0) | 2022.08.21 |
---|---|
리눅스 - 소프트웨어 관리 (0) | 2022.08.21 |
리눅스 - 에디터 (0) | 2022.08.21 |
리눅스 - 프로세스 관리 (0) | 2022.08.20 |
리눅스 - 파일시스템 운용 (0) | 2022.08.20 |