Linux 명령어를 줄이는 더 나은 방법 (alias가 아닙니다)

발행: (2025년 12월 13일 오후 12:30 GMT+9)
4 min read
원문: Dev.to

Source: Dev.to

별칭(Alias)이 명령어를 줄이는 최선의 방법이 아닌 이유

새로운 Linux 사용자인 경우, 다음과 같은 ~/.bash_aliases 파일을 가지고 있을 수 있습니다:

alias apup='sudo apt update'
alias apug='sudo apt upgrade'
alias apls='apt list'
alias apsr='apt search'

별칭은 긴 명령어를 줄이는 데 편리할 수 있지만, 몇 가지 단점이 있습니다.

별칭이 너무 많아 자동완성을 방해함

대부분의 쉘에서 Tab 키를 누르면 자동완성 제안이 표시됩니다. 많은 별칭이 같은 접두사를 공유하면 제안 목록이 복잡해집니다:

user@host:~$ ap
apls                    apsr
apt                     apug
apt-add-repository      apup
apt-cache               apt-get
aptitude                apt-mark

별칭은 중간에 매개변수를 받을 수 없음

별칭은 확장된 명령어 뒤에만 인자를 허용합니다. 중간에 인자가 필요한 명령어(예: ffmpeg, magick)는 별칭으로 효과적으로 줄일 수 없습니다.

별칭은 명령어 구문을 숨김

alias gtad='git add .'
alias gtcm='git commit -m '
alias gtps='git push origin main'

이러한 단축키는 실제 명령어 구조를 배우는 것을 방해합니다. 예를 들어 gtad는 특정 파일을 추가할 수 없으므로 많은 경우 전체 명령어를 입력해야 합니다. MySQL 로그인 시 사용자 이름과 같이 하드코딩된 인자는 제한이 됩니다:

alias sql='sudo mysql -u root -p'

별칭이 여전히 유용할 수 있는 경우

명령어를 항상 같은 인자와 함께 사용할 경우—예를 들어 MySQL 셸에 로그인할 때—간단한 별칭을 유지할 수 있습니다:

alias la='ls -A'   # 많은 기본 ~/.bashrc 파일에 이미 포함되어 있음

하지만 유연성이 필요한 경우에는 래퍼 스크립트를 고려하세요.

유연성을 위한 래퍼 스크립트 사용

래퍼 스크립트는 매개변수를 읽고 로직을 수행하면서도 짧은 명령어 이름을 제공할 수 있습니다. 아래는 원격 URL에 토큰을 삽입하는 Git 예시입니다:

#!/usr/bin/env bash
# Save this as ~/.local/bin/git (make sure ~/.local/bin is in $PATH)

if [[ $1 == "sync" ]]; then
    # $2 should be /
    /usr/bin/git remote set-url origin "https://$GIT_TOKEN@github.com/$2"
    # add any additional steps here
else
    /usr/bin/git "$@"
fi
  • export GIT_TOKEN=your_token_here~/.bashrc(또는 다른 안전한 위치)에 추가하여 스크립트가 토큰을 사용할 수 있게 합니다.
  • 스크립트 이름을 git 으로 하고 $PATH 에서 /usr/bin 보다 앞에 두면, 시스템 Git 바이너리를 대체하면서도 다른 모든 명령은 실제 Git에 전달됩니다.

이제 다음과 같이 실행할 수 있습니다:

git sync username/repo-name

같은 방법을 magick, yt-dlp 등 다른 도구에도 적용할 수 있으며, 인자 파싱 로직만 조정하면 됩니다.


더 많은 Git 래퍼 스크립트를 보고 싶다면 here에서 확인하세요.

Back to Blog

관련 글

더 보기 »

12일간의 Shell

기사 URL: https://12days.cmdchallenge.com 댓글 URL: https://news.ycombinator.com/item?id=46190577 점수: 31 댓글: 8…

내 Dev Tool 리스트 2025

TL;DR  macOS bash AeroSpace 윈도우 매니저 brew install --cask nikitabobko/tap/aerospace 핵심 유틸리티 brew install atuin chezmoi gh fzf eza bat ripgrep st…