🚀 94sssh
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 명령어에서 자주 사용되는 옵션

옵션명내용
ignoreeofCtrl + d로 인한 셀 종료 방지
noclobber이미 존재하는 파일을 리다이렉트로 덮어쓰지 않음
noglob경로 확장 무효. * 등을 셸에서 확장하지 않음

shopt 명령어

shopt -s/-u 옵션 이름명령어도 동일하게 옵션 기능을 활성화/비활성화 하며, -s는 활성화, -u는 비활성화이다. 차이점은 set과 shopt가 지정할 수 있는 옵션이 다르다.

shopt 명령어에서 자주 사용되는 옵션

옵션명내용
autocd디렉터리 이름 입력 시 해당 디렉터리로 이동
dotglob*나 ?를 사용한 경로 확장의 결과에 .으로 시작되는 파일도 포함
cdspellcd 명령어 실행 시 디렉터리 이름 자동 교정
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개행문자(줄바꿈)
\tHH: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는 셸이 종료되면 없어짐. 재로그인 시 자동으로 적용되도록 하려면 배시의 설정 파일을 수정해야 함.

배시가 로그인 셸로 기동하는 경우

  1. /etc/profile을 읽고,
  2. ~/.bash.profile을 읽고,
  3. ~/.bashrc를 읽음
    대부분 ~/.profile에서 ~/.bashrc를 실행하도록 설정되어 있음.

사용자별 설정은 ~/.bashrc 파일을 수정, 모든 사용자용 설정은 /etc/profile을 수정한다.