
사진 출처: pchow98
드라마 '앨리어스(Alias)'의 제니퍼 가너처럼 화려하게 상대를 제압하는 것은 어렵지만, 리눅스에서 alias(별칭) 명령어만큼은 누구나 능숙하게 활용할 수 있습니다.
alias 명령어는 간단한 명령의 첫 번째 단어로 사용될 때, 한 문자열을 다른 문자열로 치환해 주는 아주 단순한 기능입니다. 하지만 이 작은 기능이 반복적인 타이핑을 줄여주고 생산성을 크게 높여줍니다.
이 글에서는 bash 별칭을 임시 및 영구적으로 설정하고 해제하는 방법을 살펴보고, 실제로 유용하게 쓸 수 있는 다양한 alias 예제도 함께 소개합니다. bash 시작 파일에 바로 적용할 수 있으니 끝까지 읽어보세요.
이 글은 지속적으로 연재되고 있는 bash 튜토리얼 시리즈의 일부입니다. 이전에 다룬 bash 소개와 bash 종료 상태(exit status) 관련 글도 함께 참고하시면 좋습니다.
별칭(Alias) 설정 방법
별칭은 명령행에서 직접 입력하거나, .bash_profile 또는 .bashrc 파일에 아래 문법으로 정의할 수 있습니다.
$ alias name='unix command with options'
- alias – 셸 내장(built-in) 명령어입니다.
- name – 사용자가 직접 정하는 별칭 이름입니다.
- command – 옵션을 포함할 수 있는 모든 유닉스 명령어입니다.
즉, name은 command의 별칭이 되며, name을 명령어처럼 입력할 때마다 bash가 해당 명령어와 옵션으로 자동 치환해 실행합니다.
주의: 등호(=) 양쪽에는 공백을 넣으면 안 됩니다. 또한 별칭으로 지정할 문자열이 두 단어 이상이라면 따옴표로 감싸야 합니다.
명령행에서 이 명령을 실행하면 임시 별칭이 됩니다. 즉, 셸을 종료하기 전까지만 유효합니다. 반면 별칭을 bash 시작 파일(~/.bashrc 등)에 저장해두면 영구 별칭으로 사용할 수 있습니다.
가장 많이 쓰이는 별칭 예제
아래 예제들은 그대로 ~/.bashrc 파일에 복사해서 바로 사용할 수 있습니다. 여러분이 가장 애용하는 별칭은 무엇인가요?
vim으로 가장 최근 수정한 파일 열기
alias Vim="vim `ls -t | head -1`"
가장 큰 파일 5개 찾기
alias findbig="find . -type f -exec ls -s {} \; | sort -n -r | head -5"bash 프로세스 검색하기
alias psg="ps -aux | grep bash"
숨김 파일 포함, 식별자·색상 표시 목록 보기
alias ls='ls -aF --color=always'
자세한(long format) 형식으로 목록 보기
alias ll='ls -l'
히스토리와 화면 한 번에 지우기
alias hcl='history -c; clear'
기본 명령어를 대화형·상세 모드로 만들기
alias cp="cp -iv" # 대화형(interactive), 상세(verbose) alias rm="rm -i" # 대화형 alias mv="mv -iv" # 대화형, 상세 alias grep="grep -i" # 대소문자 무시
자주 쓰는 명령어를 짧게 축약하기
alias x="exit"
화면 지우고 파일 목록 보기
alias cls='clear;ls'
파일 시스템 디스크 사용량 확인
alias dus='df -h'
상위 디렉터리로 빠르게 이동하기
alias ..='cd ..' alias ...='cd ../..'
cd 명령어 관련 더 많은 별칭이 필요하다면 cd 전용 팁 글을 참고하세요.
환경에 맞게 수정해서 써야 하는 별칭 예제
아래 예제들은 사용 전에 자신의 환경에 맞게 내용을 수정해야 합니다.
파이어폭스 잠금 파일 삭제
alias rm_fire_lock='/bin/rm .mozilla/firefox/NAME.default/.parentlock' # NAME 수정 필요
ssh로 원격 서버 로그인
alias server_name='ssh 192.168.1.1 -l tom' # IP와 사용자 이름 수정 필요 alias ser2='ssh www.dbserver.com -l kgf' # 필요한 만큼 여러 개 생성 가능
원격 CVS 서버 접속
export CVS_RSH=/usr/local/bin/ssh alias cvl='cvs -d :ext:username@cvs.server.com:/usr/local/cvsroot' # 수정 필요
CD-ROM 마운트 해제
alias umnt='umount /mnt/cdrom' # CD-ROM / USB 드라이브 경로
설정된 모든 별칭 조회 방법
셸에 설정된 별칭 목록을 보려면 인수 없이 alias 명령어를 실행하면 됩니다.
$ alias alias ..='cd ..' alias ...='cd ../..' alias mnt='mount /mnt/cdrom' alias umnt='umount /mnt/cdrom' alias dus='df -h'
특정 별칭 하나만 확인하려면 "alias 별칭이름" 형식으로 입력합니다.
$ alias dus alias dus='df -h'
별칭을 일시적으로 사용하지 않는 방법
별칭 대신 원래 명령어를 호출하고 싶다면 역슬래시(\)로 이스케이프하여 호출하면 됩니다.
$ \aliasname
예를 들어, alias cp="cp -iv"로 설정했다면 파일을 덮어쓸 때마다 매번 확인을 요청합니다. 이미 덮어써도 된다는 걸 알면서 수많은 파일을 복사하는 경우에는 오히려 불편할 수 있죠. 이럴 때 임시로 일반 cp 명령어를 사용하면 됩니다.
따라서 cp 별칭이 존재하더라도 원본 cp 명령어를 쓰고 싶다면 아래처럼 이스케이프하면 됩니다.
\cp * /backup/files/
특정 별칭 삭제 방법
unalias는 별칭을 제거하는 셸 내장 명령어입니다. 특정 별칭을 삭제하려면:
$ unalias hcl # unalias는 셸 내장 명령어이며, hcl은 별칭 이름입니다. $ hcl -bash: hcl: command not found
모든 별칭 한꺼번에 삭제 방법
unalias에 -a 옵션을 붙이면 설정된 모든 별칭이 제거됩니다.
$ unalias -a $ alias
마무리: 별칭 vs 셸 함수
참고: 사실 셸 함수(shell function)가 속도 면에서 더 유리합니다. 별칭은 함수보다 나중에 조회되기 때문에 처리 속도가 느립니다. 별칭이 이해하기 쉽긴 하지만, 거의 모든 용도에서는 셸 함수가 별칭보다 권장됩니다. 또한 표준 명령어를 별칭이나 함수로 대체할 때는 신중해야 합니다.
이 글에서 소개한 별칭들은 샘플 bash 별칭 파일로 제공되니, 복사해서 자신의 bash 시작 파일에 붙여 넣어 바로 활용하실 수 있습니다.
별칭은 정말 유용한 기능이지만, 다음 bash 연재 글에서 다룰 bash 함수가 별칭보다 더 흥미롭고 실용적일 것입니다. 기대해 주세요!