앨리어스

앨리어스(alias)는 긴 명령어 또는 연속으로 입력해야 하는 여러 개의 명령어들을 간단히 할 수 있는 쉬운 방법이다. 모든 쉘은 쉘 함수를 갖고 있다. 쉘 함수들은 앨리어스로부터 쉘 스크립트까지 포함한다.

커스텀 명령어를 위한 앨리어스

C쉘과 ksh 그리고 bash는 자주 사용되는 명령어들을 간단한 명령어로 치환할 수 있는 앨리어스 만들기 기능을 가지고 있다. 앨리어스의 가장 간단한 종류는 예전에 사용되던 명령어를 새로운 이름으로 정의 하는 것이다.

$ alias dir='ls'

dir는 이제 새로운 이름이다. 앞으로는 dir를 ls와 동일한 명령어로 사용할 수 있다.

자주 이용되는 앨리어스로 다음과 같은 것들이 있다.

$ alias la='ls -a'        # 목록의 숨은 파일들을 포함한다.
$ alias lf='ls -F'        # 파일인지 디렉토리인지를 보여준다.
$ alias lr='ls -R'        # 디렉토리의 내용을 재귀적으로 보여준다.
$ alias ri='rm -i'        # 삭제하기 전에 묻는다.
$ alias mi='mv -i'        # 파일 이동 전에 묻는다.

앨리어스들이 쉘이 시작될 때 자동적으로 정의되기를 원한다면 ~/.bashrc에 정의하면 된다.
(alias들은 서브 프로세스에 전해지지 않으므로 .login에 넣는 것은 좋은 생각이 아니다.)

Unix 명령어들을 재정의 하기 위해서 앨리어스를 사용하는 것은 좋은 생각이 아니다. 예를 들어 rm명령어를 파일을 지우는 대신 ~/trashcan 이라는 폴더로 옮기는 mv명령어로 재정의 한다면, 혼란을 유발하여 매우 위험할 수 있다.

$ alias
alias l='ls -CF'
alias la='ls -A'
alias ll='ls -alF'
alias ls='ls --color=auto'
alias myhome='cd /root/throughkim'

$ unalias myhome

명령행에 alias를 입력하면 현재 정의되어있는 alias들이 나타나고, unalias명령어를 통해 앨리어스를 해제할 수 있다.

쉘의 앨리어스에 인자 전달해주기

bash는 앨리어스에 인자를 전달해주는 것이 불가능하다. 그렇기 때문에 function을 만들고 function을 앨리어스에 연결해주면 된다. 예를 들어 현재 폴더에서 인자로 전달 받은 문자열을 검색해주는 앨리어스를 만들고자 한다면 아래와 같이 입력해주면 된다.

$ test() { grep -i $1 ./*; }
$ alias t=test
$ t this
./afile:this is a file
./bfile:this is b file
./cfile:this is c file
./dfile:this is d file
through.kim's profile image

through.kim

2016-12-23 13:46

Read more posts by this author