'프로그램'에 해당되는 글 1건

  1. 2013.11.15 :: 리눅스(Linux) Alias 설정 및 사용 방법 468
프로그램/Linux 2013. 11. 15. 19:35

 

Alias 란?
리눅스의 기본 명령어와 긴 명령어를 다른 이름으로 간단히 줄여서 사용할 수 있는 별칭 명령어의 활용법에 대해서 배워보자. 
Alias는 명령어를 간소화하여 다른 이름으로 사용할 수 있도록 해주는 쉘내부 명령어이다. 즉 복잡한 명령어나 여러 옵션을 사용하는 명령어를 간단한 이름으로 사용할 수 있도록 하는 명령어이다.
다시 말하면  alias 기능을 이용하면 어떤 명령이든지, 명령의 길이가 얼마이든지 상관없이, 내가 사용하기 편한 형태로 바꾸어서 사용할 수 있는 것이다

 

 

Alias 설정


alias는 간단히 alias명령으로 설정이 가능하다.  alias 별명='명령어정의'
        unalias 별명

그러나 이 방법은 시스템을 재부팅하고나면 다시 초기화되므로 매번 적용해야 하는 불편함이 따르게 된다. 그래서 이러한 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'
================

난 Home 디렉토리에서 gedit로 열어서 아래와 같이 설정했다.

gedit .bashrc


기본적으로 몇 가지 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)

 

posted by 동굴인
: