개념
종류
종류 |
실행 파일 |
특징 |
본셸 |
/bin/sh |
· 벨 연구소의 스티븐 본이 1979년 개발한 UNIX의 기본 셸 |
콘셸 (korn shell) |
/bin/ksh |
· AT&T사의 데이비드 콘이 1986년 개발 · 벨 연구소에서 본셸을 확장해서 만듦 · 명령어 완성 기능, 히스토리 기능 지원 |
배시 셸 (bash shell) |
/bin/bash |
· 브레인 폭스가 1989년 개발 · 본셸을 기반으로 GNU 프로젝트에 의해 개발 · Linux 표준 셸로 채택 · Linux, MAC OS X 등 다양한 OS에서 사용됨 · 명령어 완성 기능, 히스토리, 명령어 치환, 편집 등을 지원 · POSIX와 호환 가능 |
지셸 (z shell) |
/bin/zsh |
· Paul Falstad가 1990년 개발 · 확장형 본셸, 콘셸의 재작성 셸 · 강력한 history 기능 · 향상된 명령행 편집 기능 · 파일명 중간에서부터도 자동 완성 기능 · Tab, 방향키를 이용해 선택 기능 포함 |
다음은 C셸 계열이다.
종류 | 실행 파일 | 특징 |
C셸 | /bin/csh | · 버클리 대학의 빌 조이가 1981년 개발 · C언어의 특징을 많이 포함함 · 히스토리, 별명, 작업 제어 등의 기능 포함 · 다양한 프로그래밍 작성 기능 |
tcsh셸 | /bin/tcsh | · Ken Greer가 1982년 개발 · 확장 C셸로, BSD 계열에서 가장 많이 사용 · 명령어 편집 기능 제공 · emacs 사용 · history explorer · 자동 완성 기능 · 자동 로그아웃 · 로그인 상태, 사용자, 터미널 모니터링 · $host, $hosttype 새로운 환경 변수 |
셸 확인 및 변경
1. 로그인 셸 확인
리눅스의 기본 개념을 다루고 설치하는 과정을 설명한 포스트에서 설치한 CentOS7에서 'cat /etc/shells' 명령어를 실행한 결과이다. 이 예시에서는 본 셸(/bin/sh, /usr/bin/sh)과 배시 셸(/bin/bash, /usr/bin/bash)을 사용할 수 있다는 것을 알 수 있다. 여담으로 설정에 따라 각 사용자마다 다른 셸을 사용하게 만들 수도 있다.
/etc/passwd 파일도 셸을 사용할 때 유용하다. 여기서는 각 계정마다 할당된 셸을 확인할 수 있다.
명령어 echo $SHELL 을 사용하면 현재 로그인한 사용자가 사용하고 있는 셸을 확인할 수 있다.
예시를 보면 현재 로그인한 사용자 kinew는 bash 셸을 사용하고 있다는 것을 알 수 있다.
2. 셸 변경
명령어 예시를 보며 chsh 명령어의 사용 예를 살펴보자. grep kinew /etc/passwd 는 /etc/passwd 파일에서 'kinew'라는 문자열이 포함되어 있는 줄만 출력한다. 여기서 알 수 있는 정보는 사용자 'kinew'는 로그인 셸이 /bin/bash, 즉 bash 셸로 설정되어 있다는 것이다. 명령어 chsh kinew -s /bin/sh 를 입력하여 사용자 kinew의 로그인 셸을 /bin/sh, 본셸로 바꾼다. 이 때 사용자 본인임을 인증하기 위해 해당 계정의 비밀번호가 요구된다. 비밀번호를 바르게 입력하면 로그인 셸이 성공적으로 변경되었음을 확인할 수 있다. chsh 명령어에 대한 사용 형식은 아래 표를 참고하자.
형식 |
chsh [옵션] [계정명] [셸] |
옵션 |
설명 |
-s |
지정하는 셸을 앞으로 사용할 로그인 셸로 변경 |
-l |
/etc/shells 파일 안에 지정된 셸을 나열 |
chsh -l 옵션은 /etc/shells 파일 내용과 동일한 내용을 보여준다. 덧붙여 셸을 변경한 후에 재부팅을 해야 명령어가 인식되므로 이 점을 주의해야 한다.
chsh와는 다르게 명령어 usermod는 관리자 환경에서 지정된 계정의 정보를 변경할 때 하용된다.
형식 | usermod [옵션] [계정명] |
usermod 명령어에서 크게 중요한 옵션은 없지만, -s 옵션은 기존의 셸에서 새로운 셸로 변경 시 사용된다.
'System > Linux Master' 카테고리의 다른 글
[2. 리눅스 운영 및 관리] 03 프로세스 관리 (1) 개념 및 유형 (0) | 2019.04.26 |
---|---|
[2. 리눅스 운영 및 관리] 02 셸(Shell) (2) 환경 설정 (0) | 2019.04.04 |
[2. 리눅스 운영 및 관리] 01 파일 시스템 관련 명령어 (1) - 권한 및 그룹 설정 (0) | 2019.01.28 |
[1. 리눅스 일반] 03 리눅스의 기본 명령어 (3) - 기타 명령어 (0) | 2019.01.26 |
[1. 리눅스 일반] 03 리눅스의 기본 명령어 (2) - 디렉터리 및 파일 (0) | 2019.01.25 |