Computer >> 컴퓨터 >  >> 프로그래밍 >> Bash 프로그래밍

리눅스 Bash 별칭(Alias) 완벽 가이드 – 설정부터 삭제까지 한 번에 정리

리눅스 Bash 별칭(Alias) 완벽 가이드 – 설정부터 삭제까지 한 번에 정리

사진 출처: 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 함수가 별칭보다 더 흥미롭고 실용적일 것입니다. 기대해 주세요!