리눅스 alias와 .bashrc로 작업 환경 꾸미기
매일 치는 긴 명령어를 짧게 줄이고, 실수로 파일을 지우지 않게 안전장치를 걸고, 프롬프트에 서버 이름이 크게 보이게 하는 것만으로도 터미널 작업이 훨씬 편하고 안전해진다. 이 글은 리눅스 alias 설정과 함수, 프롬프트(PS1), 명령 기록(history)까지 .bashrc로 작업 환경을 꾸미는 방법을 정리한다. .bashrc가 언제 읽히는지는 리눅스 환경 변수와 PATH 설정에 먼저 정리해 두었다.

리눅스 alias 만들기
# 지금 터미널에서만
alias ll='ls -alF'
alias ..='cd ..'
# 등록된 alias 보기 / 지우기
alias
unalias ll
터미널을 닫으면 사라지므로, 계속 쓰려면 ~/.bashrc 끝에 적는다. Ubuntu는 ~/.bash_aliases 파일이 있으면 .bashrc가 자동으로 읽어 주니, alias만 따로 모아 두면 관리하기 편하다.
# ~/.bash_aliases
alias ll='ls -alF'
alias la='ls -A'
alias grep='grep --color=auto'
alias df='df -h'
alias du1='du -h --max-depth=1 | sort -h'
alias ports='sudo ss -ltnp'
alias nginxt='sudo nginx -t && sudo systemctl reload nginx'
# 적용
source ~/.bashrc
ports와 nginxt 같은 별칭은 이번 달에 다룬 포트 사용 중 오류 해결, Nginx server 블록 작업을 할 때 특히 편하다.
리눅스 alias 안전장치
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
-i는 덮어쓰거나 지우기 전에 한 번 더 묻는다. 확인 없이 실행하고 싶을 때는 \rm처럼 앞에 역슬래시를 붙이면 alias를 무시하고 원래 명령이 실행된다. 단, 다른 서버에도 같은 alias가 있다고 믿고 습관적으로 rm을 치는 것은 위험하니, 안전장치는 보조 수단으로만 생각하자.
인자가 필요하면 함수로
alias는 단순 치환이라 중간에 인자를 넣기 어렵다. 이럴 때는 함수를 쓴다. 문법은 쉘 스크립트 기초와 같다.
# 디렉터리를 만들고 바로 이동
mkcd() { mkdir -p "$1" && cd "$1"; }
# 특정 서비스 로그 실시간 보기
logs() { sudo journalctl -u "$1" -f; }
# 사용 예
mkcd /tmp/test
logs nginx
프롬프트(PS1)에 서버 정보 표시
여러 서버를 오가다 보면 운영 서버에서 테스트 명령을 치는 실수가 생긴다. 프롬프트에 서버 이름을 색깔로 표시해 두면 이런 실수를 줄일 수 있다.
# ~/.bashrc : 운영 서버는 빨간색으로
PS1='\[\e[1;31m\]\u@\h\[\e[0m\]:\[\e[1;34m\]\w\[\e[0m\]\$ '
\u는 사용자, \h는 호스트 이름, \w는 현재 디렉터리다. 운영 서버는 빨간색, 개발 서버는 초록색처럼 서버마다 색을 다르게 정해 두자.
명령 기록(history) 설정
# ~/.bashrc
HISTSIZE=10000
HISTFILESIZE=20000
HISTTIMEFORMAT='%F %T ' # 실행 시각 함께 기록
HISTCONTROL=ignoreboth # 중복과 공백으로 시작한 명령 제외
shopt -s histappend # 여러 터미널의 기록을 덮어쓰지 않고 이어 쓰기
history | grep certbot처럼 찾거나, Ctrl+R을 누르고 글자를 치면 예전 명령을 바로 불러올 수 있다. 공백으로 시작한 명령은 기록에서 빠지므로, 비밀번호가 들어간 명령을 어쩔 수 없이 칠 때 유용하다.
설정을 여러 서버에 똑같이
.bash_aliases 파일을 Git으로 관리하거나 scp로 복사해 두면 새 서버에서도 같은 환경을 바로 쓸 수 있다. alias 동작 규칙은 GNU Bash alias 문서에 있다.
리눅스 alias 정리
자주 치는 명령은 alias로, 인자가 필요한 작업은 함수로, 실수 방지는 -i와 색깔 프롬프트로. 하루 몇 분씩 아끼는 작은 설정이지만 몇 달이 쌓이면 큰 차이가 된다. Nginx로 여러 사이트를 운영하는 방법은 전날 글인 Nginx server 블록에 있다.
첫 댓글을 남겨보세요