셸이란?
셸은 커널과 사용자간의 대화를 위한 역할을 수행함.
대충 이렇게 생긴것을 본적이 있을것이다. 이것이 셸이라고 하는 것이다.
앞서 작성된 게시물을 보면 GUI에 관해서 서술한적이있는데, GUI가 필수적이지 않은 리눅스에서 작업을 할때, 이 셸을 통해 작업을 하게 된다.
주요 셸과 특징
셸 | 특징 |
Bourne Shell | 1977년 스티븐본이 개발한 유닉스 버전 7의 기본 셸. |
Bash | Bourne Again Shell 이라는뜻 1989년 브라이언폭스가 GNU프로젝트를 위해 개발. 명령히스토리, 명령어 완성 기능, 히스토리 치환, 명령행 편집 등을 지원. |
C Shell | 1978년 빌 조이에 의해 개발 C언어를 기반으로 개발. 히스토리 기능, 별명 기능, 작업 제어 등. (명령어 편집기능 X) |
tcsh | 1975년 켄 그리어에 의해 개발 1981년 C셸과 통합해서 탄생. TC셸 - The Enhanced C Shell (강화된 C셸) 명령어 완성기능, 명령행 편집 기능 추가. |
ksh | 1983년 데이비드 콘에 의해 개발 작업제어, 별명기능, 히스토리 기능, 명령행 편집 기능, 명령행 완성 기능등 제공. |
셸 확인
현재 사용 중인 셸을 확인하려면 'echo $SHELL' 이라고 실행하면 확인 가능하다.
현재 변경가능한 셸의 확인은 'chsh -l' (Change Shell in Linux) 또는 'cat /etc/shells'로 확인가능.
셸 변경
명령행에 chsh를 입력하면 사용자 암호를 입력하고, 셸의 절대 경로를 입력하면 변경되어, 다음 로그인부터 적용.
현재 사용중인 셸 확인하기
'grep [username] /etc/passwd'를 입력
7번째 필드 확인하기.
환경변수
셸의 환경을 정의 하는 변수.
예를 들어 'ls'명령어를 통해 디렉토리의 파일 리스트를 뽑아낸다. ls명령어는 /bin/ls에 담겨있음에도 불구하고 셸 어디서나 ls명령어를 사용할수있다. 이것을 환경변수라고 할 수 있다.
주요 환경변수
변수 | 내용 |
HOME | 사용자의 홈 디렉터리 |
PATH | 실행 파일을 찾는 디렉터리 경로 |
LANG | 셸 사용시 기본으로 지원되는 언어 |
TERM | 로그인한 터미널 종류 |
PWD | 사용자의 현재 작업 디렉터리 |
SHELL | 사용자의 로그인 셸 |
USER | 사용자의 이름 |
DISPLAY | X에서 프로그램 실행 시 출력되는 창 |
PS1 | Prompt변수 |
PS2 | 2차 Prompt변수 |
HISTFILE | 히스토리 파일의 절대 경로 |
HISTSIZE | 히스토리 파일에 저장되는 명령어의 개수 |
HISTFILESIZE | 히스토리 파일의 파일 크기 |
HOSTNAME | 시스템의 호스트명 |
도착한 메일이 저장되는 경로 | |
TMOUT | 사용자가 로그인한 후 일정 시간 동안 작업을 하지 않을 경우에 로그아웃시키는 시간 (초 단위) |
UID | 사용자의 UID |
등이 있다.
'리눅스' 카테고리의 다른 글
IP (Internet Protocol) 체계 (0) | 2022.08.03 |
---|---|
OSI 7계층에 대하여 #리눅스 (0) | 2022.08.02 |
X윈도 / 데스크탑환경 / 윈도매니저의 이해 #Linux (0) | 2022.07.25 |
리눅스 라이선스 설명 및 종류 #Linux (0) | 2022.07.25 |
X윈도우 이해_#Linux (0) | 2022.07.25 |