03. 셸 사용법
03. 셸 사용법
1. 셸의 기능과 종류
- 셸은 사용자와 리눅스 커널 사이에서 중간자 역할을 한다.
- 사용자가 로그인할 때 자동으로 실행되는 기본 셸을 로그인 셸이라고 하며
/etc/passwd파일에 지정되어 있다. 기본 셸은chsh명령으로 변경할 수 있다.
2. 셸 특수문자
| 특수문자 | 기능 | 예시 |
|---|---|---|
* | 임의의 문자 또는 문자열 | ls f* |
? | 임의의 문자 하나 | ls ?f?.txt |
[] | 괄호 안에 포함된 문자 중 하나 | ls [a-z]* |
~ | 사용자 홈 디렉터리 | cd ~ |
- | 이전 디렉터리 | cd - |
; | 한 행에 여러 개의 명령 입력 | ls; pwd |
| | | 왼쪽 명령의 결과를 오른쪽 명령의 입력으로 전달 | “ls | wc -l” |
' ' | 모든 특수문자를 문자 그대로 처리 | echo '$USER' |
" " | $, 백틱, \을 제외한 모든 특수문자를 문자 그대로 처리 | echo "$USER" |
백틱 백틱 | 문자열을 명령으로 해석하여 실행 | echo 백틱date백틱 |
\ | 특수문자 기능을 제거하고 일반 문자로 처리 | echo "\$USER" |
>, >>, < | 입출력 방향 전환 | ls > ls.out |
3. 셸 변수와 환경 변수
- 지정한 셸에서만 사용할 수 있는 셸 변수와 전체 셸에서 사용할 수 있는 환경 변수가 있다.
| 동작 | 설정 방법 | 예시 |
|---|---|---|
| 변수 정의 | (셸 변수) 변수명=값(환경 변수) export 변수명=값 | USER=kimexport USER=kim |
| 변수 참조 | 변수명 | echo $USER |
| 변수 삭제 | unset 변수명 | unset USER |
| 전체 변수 출력 | set, env (환경 변수) | set, env |
| 특정 변수 출력 | echo $변수명 | echo $USER |
- 주요 환경 변수는 다음과 같다.
| 환경변수 | 의미 |
|---|---|
HISTSIZE | 히스토리 저장 크기 |
HOME | 사용자 홈 디렉터리의 절대 경로 |
LANG | 사용하는 언어 |
LOGNAME | 사용자 계정 이름 |
PATH | 명령을 탐색할 경로 |
PWD | 작업 디렉터리 절대 경로 |
SHELL | 로그인 셸 |
4. 입출력 방향 (리다이렉션)
>: 파일 내용 덮어쓰기 (ls -al > ls.out)>>: 파일에 내용 추가하기 (ls -al >> ls.out)2>: 표준 오류 방향 바꾸기 (ls /qfasd 2> ls.err)<: 입력 방향 바꾸기 (cat < out.txt)2>&1: 표준 출력과 표준 오류를 한 파일에 리다이렉션하기 (ls abd def > ls.out 2>&1)- 표준 출력과 표준 오류를 한 번에 리다이렉션하기 (
ls abd def > ls.out 2> ls.err)
5. alias와 history
alias: 명령에 다른 별칭을 붙이는 기능이다.- 생성:
alias 이름=명령 - 삭제:
unalias 이름 - 예시:
alias ll='ls -al'
- 생성:
history: 명령 기록을 확인하는 기능이다.- 히스토리 목록 보기:
history !!: 마지막 명령 실행!c: 해당 문자열로 시작하는 마지막 명령 실행!141: 번호 141 명령 실행
- 히스토리 목록 보기:
6. 환경 설정 파일
환경 설정 파일은 시스템 환경 설정 파일과 사용자 환경 설정 파일로 구분된다. 로그인 시 ‘시스템 환경 설정 파일 -> 사용자 환경 설정 파일’ 순서로 실행하여 사용자 환경을 설정한다.
배시셸의 시스템 환경 설정 파일
/etc/profile- 본셸이나 본셸과 호환되는 모든 셸에 공통으로 적용되는 환경 설정 파일이다.
- 배시셸의 경우
bash.bashrc를 호출한다. - 배시셸이 아닌 경우 프롬프트를 #(root 계정) 또는 $(일반 계정)로 설정한다.
etc/profile.d/*.sh파일을 실행한다.
/etc/bash.bashrc- 시스템 공통으로 적용되는
.bashrc파일이다.
- 기본 프롬프트를 설정한다.
sudo명령과 관련된 힌트를 설정한다.
/etc/profile.d/*.sh- 언어나 명령별로 각각 필요한 환경을 설명하며, 필요시 설정 파일을 추가한다.
배시셸의 사용자 환경 설정 파일
.profile.bashrc파일이 있으면 실행한다. 경로 추가 등 사용자가 정의할 수 있다..bashrc- 히스토리의 크기, 기본 앨리어스나 함수 등을 설정할 수 있다.
.bash_logout- 로그아웃 시 실행할 필요가 있는 함수 등을 설정한다.
.bash_aliases- 사용자가 정의한 앨리어스를 저장한다. 기본으로 있는 파일은 아니며 필요시 만들 수 있다.
This post is licensed under CC BY 4.0 by the author.