LambFerret's Blog
#5 <운영 및 관리 - 셸> 본문
2. 셸
- 개념 및 종류
명령어 해석기 command interpreter
종류 - 본셸($) 계열과 C셸(%) 계열로 나뉜다
C셸 = 본셸 + history + alias + 작업제어 기능
- 본셸
- 본셸 : 유닉스 키본 셸
- 콘셸 : 벨 연구소에서 본셸을 확장, 명령어 완성기능 + 히스토리기능
- 배쉬셸 : GNU 프로젝트에서 개발, 리눅스 표준 셸, POSIX호환, 명령어 치환, 편집 등 지원
- 지셸 : 콘셀의 재작성 셀, 강력한 history 가능, 향상된 명령행 편집기능, 탭혹은화살표키
- C셸
- C셸 : C언어의 특징을 많이 포함, 다양한 프로그래밍 작성기능
- tc셸 : BSD계열에서 많이 사용, emacs 자동완성, 자동로그아웃, 새로운 환경변수포함
셸은 사용자가 로그인 후 자동으로 생성되는 로그인 셸과 사용자가 직접 변경하는 서브셸이 있다
명령어
chsh | s로그인셸로지정, l설치된셸리스팅 |
usermod | usermod -s [변경셸] [지정유저] 로 사용 |
- 환경설정
변수는 환경변수(젼역변수)와 셸변수(지역변수)로 나뉜다
환경변수 : env, 전체셸에서 사용가능
셸변수 : set, 현재 로그인 셸에서만 사용 가능
주요 환경 변수
PATH | 실행할 명령어 경로 검색, 셸 설정파일 중 하나에 설정 |
HOME | 사용자 홈 디렉토리 절대경로 |
HOSTNAME | 호스트명 |
USER | 사용자 이름 |
PS1 | 셸 프롬프트 선언시 사용하는 변수 |
PS2 | 2차 셸 프롬프트 선언시 사용하는 변수 |
PWD | 현재 디렉토리의 절대경로 |
SHELL | 로그인 셸의 절대경로 |
TERM | 터미널 종류의 이름 |
TMOUT | 로그아웃 시간 제어 |
LANG | 프로그램 언어 |
기본 프린터 | |
메일저장 경로 |
명령어
export | 환경 변수 리스트 확인 |
export 변수명 = 변수값 | 해당 변수명에 변수값 등록 셸변수를 환경변수로 변경 |
echo $변수명 | 변수명의 변수값 확인 |
export 변수명 = $변수명:변수값 | 기존 변수명에 변수값 추가 |
unset 변수명 | 변수 정의 해제 |
프롬프트 설정 형식
\t | 24시로 현재시간 표시 |
\W | 현재 작업 디렉토리 마지막 부분 표시 |
\w | 현재 작업 디렉토리 절대경로 표시 |
\s | 사용중인 셸 이름 표시 |
\u | 현재 사용자 이름표시 |
\h | 호스트 이름 표시 |
bash 셸 설정 파일
/etc/profile | 전역적인 시스템 설정 파일, |
/etc/bashrc | alias 및 bash가 수행시 실행되는 함수를 전역적으로 제어 |
~/.bash_profile | 개인 사용자의 셸 환경을 지역적으로 설정, PATH, 환경변수등을 설정, 로그인시 로딩 |
~/.bash_history | 사용자의 히스토리 기록 |
~/.bashrc | alias 및 bash가 수행시 실행되는 함수 지역적 제어 |
~/.bash_logout | 로그아웃 직전 실행되는 시스템 설정파일 |
HISTORY 명령어
!! | 마지막으로 실행했던 명령문 실행 |
!n | n번째 명령어 실행 |
!-n | 현재 명령행에서 n 개수를 뺀 행의 명령어실행 |
!string | 가장 최근 string으로 시작하는 명령문 실행 |
!$ or !!$ | 마지막 명령의 argument |
!* | 마지막 실행된 명령에 사용된 모든 argument |
!?string? | 가장 최근 string을 포함하고 있는 단어를 나타냄 |
HISTORY 환경변수
HISTSIZE | 히스토리 스택의 크기 지정, 지정시 단위는 명령어 갯수 |
HISTFILE | 히스토리 파일 위치 |
HISTFILESIZE | 물리적인 히스토리 파일 크기 |
HISTTIMEFORMAT | 히스토리 명령어 수행 시간 출력 형태 지정 |
HISTCONTROL | 중복 명령어에 대한 기록 유무를 지정 |
'스터디 > 리눅스' 카테고리의 다른 글
#7 <운영 및 관리 - 에디터> (1) | 2022.11.15 |
---|---|
#6 <운영 및 관리 - 프로세스> (0) | 2022.11.10 |
#4 <운영 및 관리 - 파일시스템 관련 명령어> (0) | 2022.11.07 |
#3 <리눅스 일반 - 기본 명령어> (0) | 2022.11.04 |
#2 <리눅스 일반 - 리눅스 설치> (0) | 2022.11.03 |
Comments