Server & OS

alias 설정 방법

페이지 정보

본문

명령어를 내 마음대로 바꾸자 - alias 설정 방법 2006-12-21 09:07:29
오늘은 리눅스에서 alias를 사용하여 명령어를 단순화하고 내가 원하는 명령어를 만들 수 있는 방법에 대해 알아보도록 하자.

Alias 란?
일종의 별명(?)이다. 리눅스 명령어를 사용하다보면 너무 길거나 복잡해서 매번 입력하기 귀찮거나 기억하기 어려운 명령들이 있을 수 있다. 이러한 명령을 자주 사용하지 않는다면 큰 무리가 없겠으나, 개개인의 업무 스타일에 따라 자주 사용하게 된다면 그때마다 매번 명령들을 어렵게 입력해야 하는 고통을 감내해야 한다. alias 기능을 이용하면 어떤 명령이든지, 명령의 길이가 얼마이든지 상관없이, 내가 사용하기 편한 형태로 바꾸어서 사용할 수 있는 것이다.
그럼 간단히 alias를 사용하는 방법에 대해 알아보도록 하자.

Alias 설정
alias는 간단히 alias명령으로 설정이 가능하다. 그러나 이 방법은 시스템을 재부팅하고나면 다시 초기화되므로 매번 적용해야 하는 불편함이 따르게 된다. 그래서 이러한 alias를 특정 파일에 설정해두면 매번 부팅시마다 자동으로 적용되어 쉽게 사용할 수 있게 된다.
 
alias를 설정하는 파일은 여러 가지가 있을 수 있으나 가장 대표적인 것은 ~/.bashrc 파일이다.
~/.bashrc는 현재 로그인한 해당 계정의 쉘(bash)에 대한 기본 설정을 선언해 두는 곳으로 이곳에 선언된 내용은 해당 계정의 모든 명령에 적용을 받게 된다.
※ 만약 모든 사용자에게 적용하기를 원한다면 /etc/profile 과 같은 곳에 선언해 두면 된다.
 
일단 ~/.bashrc 파일을 한번 열어보자. 현재 로그인한 계정이 root라면 /root/.bashrc 파일을 열면되고, 일반 사용자 계정이라면 /home/<user-name>/.bashrc 파일을 참조하자.
================
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
================
 
기본적으로 몇 가지 alias가 설정되어 있는 것을 확인할 수 있다. 위의 예에서 'cp -i'는 복사명령(cp) 사용시 동일한 파일명이 있는 경우, 덮어쓰기를 하기전에 덮어쓰기 여부를 물어본다는 뜻이다.
만약 이러한 alias가 설정되어 있지 않다면, 복사명령 사용시 동일한 파일명이 있어도 묻지 않고 바로 덮어쓰기를 해버리게 되므로 사용자의 실수를 초래할 수 있게 된다. 그럼 위의 방식과 동일하게 실제로 alias를 한번 적용시켜 보자.

우선 지금 시스템에 설정되어 있는 alias의 내역을 확인해보기 위해 alias라는 명령을 넣어보자.
# alias
============================================
alias cp='cp -i'
alias l.='ls -d .* --color=tty'
alias ll='ls -l --color=tty'
alias ls='ls --color=tty'
alias mc='. /usr/share/mc/bin/mc-wrapper.sh'
alias mv='mv -i'
alias rm='rm -i'
alias vi='vim'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
============================================
제법 많다. 그럼 이제 alias를 추가해 보자.
 
리눅스에서 파일 및 디렉터리의 리스트를 확인하는 명령으로 ls 명령이 있다. Windows를 사용해본 사용자라면 dir 명령으로 이해하면 될 것이다. Windows와 Linux를 같이 사용하는 사용자라면, 이 ls 명령을 Windows의 명령과 혼동하는 경우가 가끔 있었을 것이다. 그래서 Linux에서도 dir이라는 명령으로 사용할 수 있도록 설정해보자.
================
alias dir='ls -al'
================

위와 같이 입력하자. 위 내용은 사용자가 dir이라는 명령을 입력했을때, ls -al 명령을 입력한 것과 동일하게 동작하라는 뜻이다. 필자가 ls명령에 -al 옵션을 추가한 이유는 리눅스의 ls 명령은 일반 파일과 디렉터리만을 보여줄 뿐 숨김속성이 있는 파일들이나 디렉터리는 보여주지 못하며, 파일 및 디렉터리의 상세 내용도 볼 수가 없으므로, -al 옵션을 통해서숨김속성이 있는 것들도 보여주고 각 리스트의 상세 내역도 같이 출력하라는 의미에서 옵션을 추가해준 것이다.
 
이렇게 설정하였다고 해서 바로 그 명령이 적용되는 것은 아니다. ~/.bashrc 파일은 로그인 시에 해당 내용을 읽어서 적용하므로 다음번 로그인 이후에나 위의 내용은 적용된다. 만약 바로 적용되는 모습을 보고자 한다면, ~/.bashrc 파일에 기록하지 말고, 터미널 상에 바로 명령을 입력해 보자.
# alias dir='ls -al'

※ 또는 위에 설정한 ~/.bashrc의 내용을 바로 적용하기 위해 아래와 같은 명령을 사용해 주어도 된다.
# source ~/.bashrc
이제 dir 명령과 ls -al 명령을 번갈아 넣어 보자. 동일한 결과가 출력되는가?

alias를 설정하는 또 다른 방법으로는...
앞서 말했던 /etc/profile에 설정하여 모든 사용자에게 적용하는 방법 이외에도 /etc/rc.local에 선언하는 방법도 있다.
/etc/rc.local은 리눅스가 부팅되면서 자동으로 실행할 명령들을 선언해 두는 곳으로 여기에 선언된 내용 역시 동일하게 적용받을 수 있게 된다.


Alias 사용 예
앞서 살펴본 바와 같이 alias 명령은 다양한 방식으로 사용이 가능하다. 아래에 대표적인 사용예를 몇가지 찾아보았다.
 
① 파일 삭제시 삭제여부를 다시 묻지 않고, 디렉터리 하위에 파일 및 디렉터리가 존재하더라도 강제로 삭제한다.
  # alias rm='rm -rf'
 ※ 삭제 여부를 묻지 않으므로, 이제부터 rm 명령 사용시에 주의를 기울여야 한다.
 
② CD-ROM을 쉽게 마운트 하자.
  # alias cdrom='mount /dev/cdrom /media/cdrom'
 ※ 시스템에 따라 CD-ROM 디바이스의 명칭 또는 마운트 디렉터리가 상이할 수 있다.
     자신의 시스템에 맞는 것을 사용하자.
 
③ (지정된) Windows의 공유 디렉터리를 쉽게 마운트하자.
  # alias win_smb='mount -t smbfs //192.168.0.1/data /media/samba'
 ※ 네트워크 환경에 따라 ip 주소 및 마운트하는 경로가 다르므로 적절히 수정해서 사용하자.
 
④ 매번 반복되는 데이터 백업(tar)을 쉽게 하자.
  # alias backup='tar czvf web_backup.tar.gz /var/www/html'
 ※ 위와 같이 backup 이라는 alias 명령을 만든 다음, 이 명령을 cron을 통해 자동화(스케줄링) 하면 된다.
 
⑤ 웹서버(httpd) 데몬을 쉽게 구동하자.
  # alias web='/etc/init.d/httpd'
  # web {start|stop|restart}
 ※ 이제는 web 이라는 명령으로 웹서버 구동이 가능해진다. (# web start)

관련자료

등록된 댓글이 없습니다.
Today's proverb
학문의 최대의 적은 자기 마음속에 있는 유혹이다. (처칠)