shell 종류
본 셸
bourne shell (=BShell)
- AT&T 벨 연구소의 Steven Bourne
- 유닉스 표준 셸
- 실행파일: /bin/sh
- 여러 운영체제에서 사용가능
- 요즘 거의사용 안함(대신 bash 사용)
korn shell
- 명령어 완성, 히스토리
- 실행파일: /bin/ksh
bash shell
- 리눅스 표준 셸
- 본셸을 기반으로 GNU 프로젝트에 의해 개발됨
- 명령어 완성 기능, 히스토리, 명령어 치환, 편집
- POSIX 와 호환
- 실행파일: /bin/bash
z shell
- 강력한 history, 향상된 명령행 편집기능
- 강력한 자동완성기능
- 탭, 화살표를 이용한 선택 기능
- 실행파일: /bin/zch
C 셸
C 셸 (=csh)
- C 언어의 특징이 포함됨
- 히스토리, 별명, 작업 제어 기능
- 실행파일: /bin/csh
- 요즘 거의사용 안함(tcsh 가 출시되어서)
tc 셸 (=tcsh)
- 확장 C 셸. BSD 에서 가장 많이 사용
- 명령어 및 명령행 편집기능, history explorer, 자동완성, 자동 logout
- 실행파일: /bin/tcsh
참고. 프롬프트 시작 기호
- 본셸: $ 로 시작
- C셸: %로 시작
$ 로 시작하는 bash
단, bash에서 root 사용자는 #으로 시작한다.
shell 명령어
명령어 | 기능 |
csh -ㅣ | 시스템에서 사용 가능한 셸 목록 확인 |
echo $SHELL | 현재 로그인한 사용자의 셸 확인 |
cat /etc/shells | 현재 시스템에서 사용할 수 있는 셸 목록 확인 |
ls /etc/shells | /etc 의 shells 유무 확인 |
chsh | 현재 사용하는 셸을 변경하기 |
shell 환경변수
환경변수 vs 셸 변수
환경변수(=전역변수)
- 전체 셸에서 사용 가능한 변수
- 서브 셸에 기능 상속 가능
- 확인 명령어: env
셸 변수(=지역변수)
- 현재 로그인한 셸에서만 사용 가능
- 서브 셸에 기능 상속 불가능
- 확인 명령어: set
주요 환경변수
변수 | 기능 |
PATH | 실행할 명령어 경로 검색 |
HOME | 사용자 홈 디렉토리 절대경로 |
HOSTNAME | 호스트 이름 |
USER | 사용자 이름 |
DISPLAY | X-window 시스템에서, 화면 출력시 접속할 서버주소 |
PS1 | 셸 프롬프트 선언시 변수 |
PS2 | 셸 프롬프트 선언시 변수 2차 |
PWD | 현재 디렉토리 절대경로 |
SHELL | 로그인 셸 절대경로 |
TERM | 터미널 종류 |
TMOUT | 로그아웃 설정 시간 |
LANG | 기본 설정된 언어 |
기본 프린터 | |
메일저장 경로 |
환경변수 설정
명령어 | 기능 |
export | 환경변수 목록 출력 |
export [변수]=[변수값] | 환경변수 등록하기 |
echo $[변수] | 환경변수 값 확인 |
export [변수]=$[변수]:[변수값] | 기존 변수에 값 추가하기 : 뒤에 추가할 값 넣기 |
unset [변수] | 환경변수 해제 |
프롬프트 형식 설정
명령어 | 내용 |
\t | time 24시 형식으로 표시 |
\W | way 혹은 where 현재 디렉토리 표시 방법 절대경로 중에서 마지막 디렉토리 표시 |
\w | way 혹은 where 현재 디렉토리 표시 방법 절대경로를 전부 나열해서 표시 |
\s | shell 사용중인 셸 이름 |
\u | user 현재 사용자 |
\h | host 호스트 이름 |
환경설정 파일
셸 시작시 자동으로 실행되는 파일 목록이다.
전역파일
- 사용자에게 공통으로 영향을 준다.
- /etc 에 위치
- /etc/profile
- 모든 사용자의 셸 환경을 제어하는 전역적인 시스템 설정 파일
- 환경변수와 bash 가 수행시 실행되는 프로그램을 제어
- 관리자만 설정 가능
- /etc/bashrc
- alias 와 bash 수행시 실행되는 함수 제어
- /etc/profile.d
- 스크립트 파일의 경로를 지정함
- 부팅시 자동실행됨
- /etc/profile
지역파일
- 개별 사용자마다 설정됨
- 사용자의 home 디렉토리에 숨겨져 있다.
- ~./bash_profile
- 개별 사용자의 셸 환경제어하는 시스템 설정 파일
- 사용자가 로그인하면 적용됨
- ~./bash_history
- 사용자가 명령한 내용이 기록된다
- ~./bashrc
- 사용자가 지정한 alias. bash 수행시 실행되는 함수 제어
- ~./bash_logout
- 사용자의 로그아웃 직전에 실행되는 설정 파일
- ~./bash_profile
(~ 을 사용한 이유: 사용자의 홈 디렉토리에 위치해 있음. 즉 사용자 이름에 따라 달라짐)
history 기능
명령어 | 기능 |
!! | 직전 명렁어 실행 |
!n | n번째 명령어 실행 |
!-n | n개수 이전의 명령어 실행 |
!xxx | xxx를 포함하는 최근 명령어 실행 |
history 환경변수
명령어 | 기능 |
HISTSIZE | 히스토리 스택의 크기. 단위는 명령어 개수 |
HISTFILE | 히스토리 파일 위치 |
HISTFILESIZE | 물리적인 히스토리 파일 크기 |
HISTTIMEFORMAT | 히스토리 명령어 수행시간 형식 |
HISTCONTROL | 중복되는 명령어 기록 여부 지정 |
'컴퓨터 기본 > Linux' 카테고리의 다른 글
[Linux] 주변장치(printer, sound card, scanner) 연결 (0) | 2022.09.01 |
---|---|
[Linux] 파일 아카이브(archive), 파일 압축하고 해제하기 (0) | 2022.09.01 |
[Linux] 프로세스 유틸리티 명령어 (0) | 2022.08.30 |
[Linux] 프로세스 관리 (1) | 2022.08.28 |
리눅스 linux 명령어 (0) | 2021.12.22 |