- Published on
2025.09.12
[모두의 리눅스] - 08. 배시 설정
8.1. alias
alias 이름='명령어'
alias명령어로 명령어에 별칭을 붙일 수 있음
$ alias ls='ls -F' # ls를 입력하면 ls -F가 실행
자주 사용되는 별칭 예시
alias la='ls -a': 모든 파일을 출력alias ll='ls -l': 파일의 상세 정보를 출력alias rm='rm -i': 삭제 전 확인하도록
type명령어로 명령어가 별칭인지 확인할 수 있음
$ type ls
ls is aliased to `ls -F --color=auto --show-control-chars` # 별칭
$ type cp
cp is /usr/bin/cp # 별칭 아님
unalias명령어로는 별칭을 지울 수 있다.
명령어를 지우지 않고 일시적으로 무효화해 옵션이 지정되지 않은 명령어를 사용하고 싶다면 다음과 같은 방법을 사용할 수 있다.
$ /bin/ls # 전체 경로를 입력
$ command ls # commnad 명령어 사용
$ \ls # 역슬래시 사용
8.2. 배시의 옵션
set 명령어
set -o/+o 옵션 이름명령어로 옵션 기능을 활성화/비활성화 할 수 있다. +가 비활성화인 점을 주의.
set 명령어에서 자주 사용되는 옵션
| 옵션명 | 내용 |
|---|---|
| ignoreeof | Ctrl + d로 인한 셀 종료 방지 |
| noclobber | 이미 존재하는 파일을 리다이렉트로 덮어쓰지 않음 |
| noglob | 경로 확장 무효. * 등을 셸에서 확장하지 않음 |
shopt 명령어
shopt -s/-u 옵션 이름명령어도 동일하게 옵션 기능을 활성화/비활성화 하며, -s는 활성화, -u는 비활성화이다. 차이점은 set과 shopt가 지정할 수 있는 옵션이 다르다.
shopt 명령어에서 자주 사용되는 옵션
| 옵션명 | 내용 |
|---|---|
| autocd | 디렉터리 이름 입력 시 해당 디렉터리로 이동 |
| dotglob | *나 ?를 사용한 경로 확장의 결과에 .으로 시작되는 파일도 포함 |
| cdspell | cd 명령어 실행 시 디렉터리 이름 자동 교정 |
| globstar | 경로 확장으로 ** 패턴 사용 시 서브 디렉터리까지 포함 |
| histappend | 배시 종료 시 히스토리 파일에 명령어 이력을 덮어쓰지 않고 추가함 |
8.3. 셸 변수
변수명=값, 셸 변수에는 숫자나 문자열 등을 저장할 수 있음. 주의할 점은 = 양 옆에 공백이 들어가면 안 됨.
$ var1='test variable' # 변수 설정
$ echo $var1 # 변수 이름 앞에 $를 붙여 확인
test variable
PS1: 프롬프트 설정
셸 변수 PS1의 값을 바꿔 셸의 프롬프트를 바꿀 수 있다.
$ PS1='bash>'
bash>
이 때 특수 문자를 지정하면 의미에 맞춰 프롬프트가 변한다.
$ PS1='[\u]' # 프롬프트의 [ ] 안에 사용자 이름 표시, \u는 현재 사용자 이름
[user]>
\w는 현재 디렉터리로, 프롬프트에 현재 위치를 표시하게 할 수 있다.
$ PS1='[\u] \w \$' # /w를 ps1에 지정
[user]> ~$
- 대표적인 기호
| 기호 | 내용 |
|---|---|
| \d | 현재 날짜(요일, 월, 일 형식) |
| \h | 서버 호스트 |
| \H | 서버 도메인 |
| \n | 개행문자(줄바꿈) |
| \t | HH:MM:SS 형식으로 24시간 단위 현재 시각 |
| \u | 사용자 이름 |
| \w | 현재 디렉터리의 전체 경로 |
| \W | 현재 디렉터리의 전체 경로 중 마지막 디렉터리 |
| $ | 현재 사용자가 root 사용자면 #, 그외에는 $를 표시 |
| \\ | \ 문자 자체 |
PATH: 명령어를 찾는 경로
셸 변수 PATH에는 명령어의 위치를 찾는 디렉터리가 저장.
LANG: 로케일
리눅스 설치 시의 선택 언어에 따라 메시지 등이 해당 언어로 표시됨.
현재 사용 중인 로케일은 LANG이라는 셸 변수에 저장되고, 변경할 수도 있음
$ echo $LANG
ko_KR.UTF-8
그 외의 셸 변수
| 셸 변수명 | 내용 |
|---|---|
| HISTFILE | 커맨드 라인 이력을 저장할 파일 이름 (기본값: ~/.bash_history) |
| HISTFILESIZE | 파일에 저장할 커맨드 라인 이력의 최대 개수(기본값: 500) |
| HISTSIZE | 메모리에 저장할 커맨드 라인 이력의 최대 개수(기본값: 500) |
| HOME | 홈 디렉터리 |
| SHELL | 로그인 셸 경로 |
| PWD | 현재 디렉터리 |
8.4. 환경 변수
셸 변수는 외부 명령어에서 참고할 수 없고,
환경 변수는 외부 명령어에서 값을 참조할 수 있다.
printenv명령어로 셸에 설정된 환경 변수를 출력할 수 있음export명령어로는 환경 변수를 설정할 수 있음
8.5. 배시 설정 파일
셸에 설정한 변수나 alias는 셸이 종료되면 없어짐. 재로그인 시 자동으로 적용되도록 하려면 배시의 설정 파일을 수정해야 함.
배시가 로그인 셸로 기동하는 경우
- /etc/profile을 읽고,
- ~/.bash.profile을 읽고,
- ~/.bashrc를 읽음
대부분 ~/.profile에서 ~/.bashrc를 실행하도록 설정되어 있음.
사용자별 설정은 ~/.bashrc 파일을 수정, 모든 사용자용 설정은 /etc/profile을 수정한다.