[Linux] 리눅스(CentOS7)

[Linux] 리눅스 alias 사용법 및 예제

ITsubin 2022. 2. 28. 18:01

리눅스에서의 alias는 별칭을 지정하는 단축 명령어입니다.
쉽게 말해서 코딩에서의 함수 선언처럼,
명령어를 다른 이름으로 간소화하여 쉽게 사용할 수 있게 해주는 쉘 내부 명령입니다.

단, 명령어로 alias를 설정했을 때는 설정 내용이 부팅 시에 초기화됩니다.

부팅 시 초기화가 되지 않게끔 특정 파일에 설정해두면 부팅 시에 자동으로 적용됩니다.
주로 ~/.bashrc /etc/profile 또는 ~/.profile에 alias를 설정해둡니다.

~/.bashrc 파일은 현재 로그인되어있는 계정의 쉘에 대한 기본 설정을 선언해두는 파일이며,
~/.profile 파일/etc/profile 파일은 각각
현재 로그인한 사용자, 모든 사용자에게 설정이 적용되는 파일입니다.

[alias] 명령어

- 별칭 지정 단축 명령어
- 형식 : alias 별명='명령어 정의'

- alias 확인 : alias
- alias 설정 : alias 별명='명령어 정의' (ex. alias c = 'clear')
- alias 해제 : unalias 별명 (ex. unalias c)

또한 alias는 리눅스의 다중 명령어 및 사용법 포스팅에서 알아봤던 더블 엠퍼센트와 더블 버티컬바를 alias에서 연산자로 사용할 수 있습니다.

[alias 연산자]

- AND 연산자 : &&
- OR 연산자 : ||

예제를 통해 간단히 알아보겠습니다.

mkc라는 명령어를 통해서 /Test/A/B/C 디렉터리를 자동으로 생성하고, 디렉터리 생성에 성공했을 시 자동으로 디렉터리 위치를 /Test/A/B/C로 변경하는 alias를 생성하겠습니다.

/Test/A/B/C 디렉터리를 생성하려면 [ mkdir –p /Test/A/B/C ]
(–p 옵션은 하위 디렉터리까지 생성하는 mkdir의 옵션입니다.)
디렉터리 생성에 성공했을 시에만 뒤의 명령어를 실행하기 위해서는 and 연산자인 [ && ]
디렉터리 위치를 C로 바꾸려면 [ cd /Test/A/B/C ]

따라서
alias를 사용하지 않고 직접 명령어를 입력해야 한다면 아래의 상황처럼 하나하나 귀찮게 써줘야 하겠죠.

[root@localhost /]# mkdir -p /Test/A/B/C && cd /Test/A/B/C
[root@localhost C]#


alias 설정은 간단합니다.
alias의 형식은 alias 별명=‘명령어 정의’이기 때문에
아래 예시처럼 설정해주시면 됩니다.

[root@localhost /]# alias mkc='mkdir -p /Test/A/B/C && cd /Test/A/B/C'


(단, alias를 설정할 때 alias mkc =‘ 명령어 정의 ’처럼 별명과 등호 사이에 빈 칸이 있으면 아래처럼 오류가 납니다)

[root@localhost /]# alias mkc ='mkdir -p /Test/A/B/C && cd /Test/A/B/C'
-bash: alias: mkc: not found
-bash: alias: =mkdir -p /Test/A/B/C && cd /Test/A/B/C: not found
[root@localhost /]#


alias가 성공적으로 생성되었는지부터 확인해보겠습니다.

[root@localhost /]# alias | grep mkc
alias mkc='mkdir -p /Test/A/B/C && cd /Test/A/B/C'
[root@localhost /]#


생성되었음을 확인했으니 mkc를 실행해봅니다.

[root@localhost /]# mkc
[root@localhost C]# pwd
/Test/A/B/C
[root@localhost C]#


alias 해제도 해봅니다.

[root@localhost C]# unalias mkc
[root@localhost C]# alias | grep mkc
[root@localhost C]#

 

[alias 연습문제]

아래의 기능을 갖는 [a1, a2, a3, a4] alias를 생성하시오.

a1 = /alias 디렉터리 생성
a2 = /alias 디렉터리 내부에 test1 파일 및 test2 디렉터리 생성
a3 = /alias 디렉터리 강제 삭제
a4 = /alias 디렉터리 생성과 같이 /alias 내부에 test1 파일 test2 디렉터리 생성

 

[alias 연습문제 답]

[root@localhost /]# alias | grep a[1-4]
alias a1='mkdir /alias'
alias a2='touch /alias/test1; mkdir -p /alias/test2'
alias a3='rm -rf /alias'
alias a4='a1&&a2'
[root@localhost /]#

 

[alias 연습문제 해설]


a1 = /alias 디렉터리 생성
=> alias a1='mkdir /alias'

a2 = /alias 디렉터리 내부에 test1 파일 및
-> touch /alias/test1

  test2 디렉터리 생성
->mkdir -p /alias/test2

=> alias a2=’touch /alias/test1 ; mkdir –p /alias/test2’
또는 alias a2='touch /alias/test1 | mkdir –p /alias/test2’

a3 = /alias 디렉터리 강제 삭제
=> alias a3='rm -rf /alias'

a4 = /alias 디렉터리 생성과 같이 /alias 내부에
  test1 파일 test2 디렉터리 생성
=> alias a4='a1&&a2'