Computer >> 컴퓨터 >  >> 시스템 >> Mac

터미널 효율성 극대화하기: Linux와 macOS 명령어에 별칭(Alias) 추가하는 방법

이 글에서는 터미널에서 반복적으로 입력하느라 소모되는 수많은 시간을 절약해 주는 간단한 팁을 소개합니다.

개발자는 터미널에서 명령어를 실행하는 데 상당한 시간을 보냅니다. 디렉터리 탐색, 스크립트 실행, Node.js 버전 변경, 버전 관리 명령어 실행까지, 모든 명령어를 매번 손으로 직접 입력하는 것은 시간 낭비가 될 수 있습니다.

특히 명령어나 옵션(플래그)을 잘 외우지 못하는 분들에게는 더욱 번거로운 작업이 됩니다.

하지만 걱정하지 마세요! 이 문제를 해결할 간단하면서도 강력한 방법이 있습니다. 바로 터미널 별칭(Alias)입니다.

alias 명령어란?

alias 명령어는 기존 명령어에 대한 단축키를 만들어 주는 기능입니다. 덕분에 명령어를 더 쉽게 기억하고 빠르게 실행할 수 있습니다. 별칭을 정의한다는 것은 기존 명령어에 새로운 이름표를 붙여주는 것과 같습니다.

alias 명령어 문법

문법은 아주 간단합니다. 대부분의 프로그래밍 언어에서 변수에 값을 할당하듯이, 명령어를 원하는 이름에 할당하면 됩니다.

alias 별칭_이름='긴 명령어'

명령어의 구성 요소를 하나씩 살펴보겠습니다:

  • alias: 별칭을 정의할 수 있게 해주는 터미널 명령어입니다.
  • 별칭_이름: 명령어에 지정할 이름 또는 라벨입니다. 실제로 터미널에 전체 명령어 대신 입력하게 될 이름입니다.
  • '긴 명령어': 별칭으로 지정하고 싶은 실제 명령어입니다. 대부분의 명령어에는 공백이나 특수 문자가 포함되어 있으므로 반드시 작은따옴표(')로 감싸야 합니다.

미리 정의된 별칭 확인하기

사실 터미널에는 이미 미리 정의된 별칭들이 존재합니다. 어쩌면 여러분도 자신도 모른 채 그것들을 사용하고 있었을지도 모릅니다.

이러한 별칭들은 시스템 전역 설정 파일(/etc/bash.bashrc)이나 사용자별 셸 설정 파일(~/.bashrc)에 정의되어 있습니다.

모든 미리 정의된 별칭 목록은 옵션이나 플래그 없이 alias 명령어만 입력하면 확인할 수 있습니다.

alias

세션이 종료되어도 유지되는 별칭 만드는 방법

기본적으로 별칭은 현재 세션에서만 유효합니다. 즉, 터미널을 닫으면 별칭도 사라져 이후에는 사용할 수 없습니다.

이 문제를 해결하려면 별칭을 셸(shell)의 설정 파일에 정의해야 합니다. 셸은 터미널 안에 존재하는 인터프리터로, 사용자와 운영체제 사이의 인터페이스 역할을 합니다. 따라서 올바른 셸에 접근하고 올바른 설정 파일을 수정하는 것이 매우 중요합니다.

가장 널리 사용되는 세 가지 셸의 설정 파일 경로는 다음과 같습니다:

  1. Bash: ~/.bashrc
  2. Zsh: ~/.zshrc
  3. Fish: ~/.config/fish/config.fish

Bash에 새로운 별칭을 추가하는 예시를 살펴보겠습니다.

echo "alias nrd='npm run dev'" >> ~/.bashrc

이 명령어의 구성 요소를 하나씩 분석해 보겠습니다:

  • echo: 터미널에 내용을 출력하거나 파일에 기록할 수 있게 해주는 명령어입니다.
  • "alias ...": 앞서 설명한 별칭 명령어입니다. 여기서는 npm run dev 명령어에 nrd라는 별칭을 추가합니다.
  • >>: 왼쪽의 내용(별칭 명령어)을 오른쪽 파일에 추가(append)하라고 터미널에 지시합니다. 이 경우 Bash 설정 파일에 저장됩니다.
  • ~/.bashrc: echo 명령어의 내용이 추가될 대상 파일입니다.

자신이 사용하는 셸에 맞게 ~/.bashrc 부분을 해당 설정 파일 경로로 바꾸는 것을 잊지 마세요.

동적(Dynamic) 별칭 만드는 방법

반복해서 사용하는 명령어지만 상황에 따라 일부만 바꿔야 하는 경우가 종종 있습니다. 가장 좋은 예가 Git 명령어입니다. 이런 경우 별칭 안에 치환자(substitute)를 넣어두고, 터미널에서 실행할 때 동적인 옵션이나 매개변수 값으로 교체되도록 만들 수 있습니다.

alias gpll='git pull --rebase origin ${branch}'

실행할 때는 ${branch} 부분을 실제로 pull 하고 싶은 브랜치 이름으로 바꿔주면 됩니다. 예를 들어 main 브랜치에서 변경 사항을 가져오려면 다음과 같이 입력합니다:

gpll main

치환자는 여러 개 사용할 수도 있습니다. 단, 별칭을 작성할 때 실제 값을 넣는 순서와 치환자 순서가 일치하도록 주의해야 합니다:

alias gpll='git pull --rebase ${remote} ${branch}'

실행할 때는 ${remote}${branch}를 적절한 값으로 순서대로 바꿔주면 됩니다:

gpll origin main

여러 명령어를 묶은 별칭 만드는 방법

여러 명령어를 연속으로 실행해야 하는 경우에도 별칭을 만들 수 있습니다. 각 명령어를 &&로 구분하면 왼쪽 명령어가 성공적으로 실행된 후 오른쪽 명령어가 이어서 실행됩니다.

gpsh='git pull --rebase && git push'

별칭 삭제하는 방법

현재 세션에서 별칭을 삭제하려면 unalias 명령어를 사용하면 됩니다. 이 명령어는 인자로 별칭 이름 하나만 받습니다.

unalias my-alias-name

하지만 설정 파일에 저장된 별칭을 삭제하려면 파일 자체에서 직접 삭제해야 합니다. Nano 같은 간단한 텍스트 편집기를 사용하면 됩니다.

nano ~/.bashrc

아래로 스크롤하여 내려가면 등록된 모든 별칭을 찾을 수 있으며, 더 이상 필요 없는 별칭을 삭제하면 됩니다.

편집이 끝나면 저장 후 에디터를 종료하면 됩니다. 터미널 기반 텍스트 편집기를 못 빠져나가는 밈(meme)이 유행할 정도지만, Nano는 매우 간단합니다:

  1. Linux에서는 ctrl+x, Mac에서는 ^+x를 누릅니다.
  2. Y를 눌러 변경 사항을 확정합니다.
  3. 운영체제에 따라 Enter 또는 Return 키를 눌러 파일을 저장합니다.

보세요? 전혀 어렵지 않습니다 :)

주의사항

별칭을 만들 때 반드시 기억해야 할 두 가지 중요한 사항이 있습니다.

별칭은 셸에 종속됩니다

별칭은 사용 중인 셸에 고유합니다. 한 셸에서 만든 별칭은 다른 셸에서는 작동하지 않습니다.

다른 셸에서도 별칭을 사용하려면 해당 셸에 맞게 새로 정의해야 하며, 이에 대한 우회 방법은 없습니다. 한 가지 팁은 사용하는 모든 셸의 설정 파일에 별칭을 직접 저장해 두는 것입니다.

별칭은 기본적으로 세션에 한정됩니다

별칭은 현재 세션에서만 사용할 수 있습니다. 새 터미널 창을 열거나 로그아웃하면 별칭은 더 이상 사용할 수 없습니다.

따라서 언제든지 사용할 수 있도록 별칭은 반드시 설정 파일에 저장해 두는 것이 좋습니다.

핵심 요약 (TL;DR)

  • alias 명령어는 명령어 또는 여러 명령어의 묶음에 대한 단축키를 생성합니다. 형식: alias 단축키='기존 유효한 명령어'.
  • 별칭을 셸의 설정 파일에 저장하면 세션이 종료되어도 유지됩니다. 셸마다 고유한 설정 파일이 있으며, 예시: echo "nrd='npm run dev'" >> ~/.bashrc.
  • 동적 별칭은 치환될 값을 플레이스홀더로 만들어 생성합니다. 플레이스홀더는 반드시 ${}로 감싸야 하며, alias gp='git pull origin ${branch}'는 터미널에서 gp main처럼 실행합니다.
  • 여러 명령어는 &&로 연결하여 하나의 별칭에 포함할 수 있습니다.
  • 별칭을 삭제하려면 설정 파일에서 직접 해당 줄을 지우면 됩니다.

마무리

이 글이 여러분의 시간을 최적화하고 개발 생산성을 높이는 데 도움이 되기를 바랍니다. 도움이 되었다면 주변 동료들에게도 공유하여 함께 효율성을 개선해 보세요.

여러분은 업무 효율을 높이기 위해 어떤 방법들을 활용하고 계신가요? 다양한 노하우를 알려주시면 정말 좋겠습니다.

그때까지 즐거운 코딩 되세요! 👨‍💻