업데이트:

1 분 소요

개요

하는 작업에 따라서 터미널을 사용하게 되는데, 그 작업을 할 때 마다 반복적으로 적게되는 명령어가 있다.
터미널은 프로그래밍 언어의 함수나 데이터베이스에서의 프로시져, 트랜잭션과 같이 그 작업을 alias(별칭, 별명)으로서 저장해 둘 수 있다.

Alias

alias 를 설정은 shell 을 통해서 할 수 있다. 맥 기준으로 bash, zshrc가 있지만 필자는 zshrc를 사용하기 때문에 zshrc 기준으로 작성한다.

터미널에서 쉘 스크립트를 열어준다.
이 때 명령어 앞에 평소 사용하는 편집기를 넣어주면(터미널을 통해 열 수 있는 편집기어야 한다.) 해당 편집기를 통해 쉘 스크립트를 열 수 있다.

code ~/.zshrc //vs code로 shell script를 연다.
vi ~/.zshrc //vi 편집기로 shell script를 연다.

열린 쉘 스크립트에서 alias 명령어를 통해 별칭을 정해줄 수 있다.

alias ll='ls -al'
alias toDownlaods='cd ~/Downloads'

이 때 불필요한 띄어쓰기 및 공백은 주어서는 안된다.
정확히 예시와 같은 형식으로 작성되어야 오류 없이 alias가 작동된다.

이와 같이 정해져있는 명령어뿐만 아니라 변수를 받는 alias를 만들어줄 수 있다.

function getPID(){//alias와는 조금 다르게 함수 형식으로 작성된다.
    lsof -i :$1 //변수를 넣어줄 곳에 $ 를 두고 넣어줄 변수의 개수에 따라 순서를 맞춰주면 된다.
}

나는 function 키워드 앞에 alias를 붙여야 하는지 헷갈렸는데, 붙이지 않아야 한다.

사실 아래와 같이 작성해도 작동한다.

getPID(){
    lsof -i :$1
}
maximum nested function level reached  

위 오류를 마주쳐 찾아봤는데 이곳에서 확인해본 바로 위는 zsh의 문법, 아래는 bash의 문법인 것 같다.
사용하는 shell에 따라 잘 맞춰 사용하도록 해야겠다.

또한 원하는 작업을 하기 위해서 몇몇 명령어를 순차적으로 기입해야 될 때가 있는데 이 또한 가능하다.
참고로 아래 예시는 인자를 받지 않는 함수 형태의 정의다.

function bs(){//블로그의 테스트 서버를 로컬서버로 실행시킨다.
    cd ~/dev/yeoooo.github.io
    bundle exec jekyll serve
    //원래는 해당 명령어를 순차적으로 기입했지만 
    //설정해준 bs 키워드로 해당 명령어를 모두 실행할 수 있다.
}

이로서 vs code의 snippet와 intellij의 live template과 같이 효율적인 작업을 도와주는 alias에 대해 정리했다.
터미널을 사용하는게 더 즐거워질 것 같다.

댓글남기기