Linux / 명령어 / alias - 명령어 별칭 만들기

alias는 Bash에서 긴 명령이나 자주 사용하는 옵션 조합에 짧은 이름을 붙이는 내장 명령입니다. 현재 셸에 정의된 별칭을 확인하거나 새 별칭을 만들 수 있으며, 반복 입력을 줄이고 대화형 작업을 일관되게 만드는 데 유용합니다.

별칭은 명령을 실행하는 프로그램이 아니라 셸이 명령줄을 읽을 때 문자열을 바꾸는 기능입니다. 인수를 처리하거나 여러 단계의 로직이 필요하다면 별칭보다 셸 함수가 적합합니다.

alias 명령어란?

Bash는 단순 명령의 첫 번째 단어가 별칭 이름과 일치하면 그 단어를 등록된 문자열로 치환한 뒤 명령을 해석합니다. 예를 들어 ll을 ls -alF로 정의하면 ll /var/log는 ls -alF /var/log처럼 실행됩니다.

alias 자체는 Bash 내장 명령입니다. 이 글은 Bash를 기준으로 하며, Zsh 같은 다른 셸에서는 확장 규칙과 설정 파일이 다를 수 있습니다.

기본 문법

alias [-p] [이름[=값] ...]

인수 없이 실행하면 현재 셸에 정의된 모든 별칭을 출력합니다. 이름만 지정하면 해당 별칭을 확인하고, 이름=값을 지정하면 새 별칭을 만들거나 기존 값을 바꿉니다.

alias
alias ll
alias ll='ls -alF'

현재 별칭 확인하기

모든 별칭 출력

alias

출력은 대체로 다시 입력할 수 있는 alias 이름='값' 형식입니다. alias -p도 같은 용도로 사용할 수 있습니다.

특정 별칭 확인

alias ls
alias grep

지정한 이름이 별칭으로 정의되지 않았다면 오류 메시지를 출력하고 실패 상태를 반환합니다. 명령 이름이 별칭인지, 함수인지, 실행 파일인지 함께 확인하려면 type 이름을 사용하세요.

별칭 만들기

값에 공백이나 셸 메타 문자가 포함될 수 있으므로 일반적으로 작은따옴표로 묶는 것이 안전합니다.

alias ll='ls -alF'
alias grep='grep --color=auto'
alias ..='cd ..'
alias logs='journalctl -xe'

= 앞뒤에는 공백을 넣지 않습니다. alias ll = 'ls -alF'처럼 쓰면 별칭 정의로 해석되지 않습니다.

별칭을 계속 사용하도록 저장하기

명령줄에서 정의한 별칭은 현재 셸 프로세스에서만 유효합니다. 새 터미널에서도 사용하려면 Bash 시작 파일에 정의해야 합니다.

alias ll='ls -alF'
alias update='sudo apt update && sudo apt upgrade'

대화형 Bash에서는 보통 사용자 홈의 ~/.bashrc에 추가합니다. 배포판에 따라 ~/.bash_aliases를 ~/.bashrc에서 불러오기도 하므로 기존 설정 구조를 먼저 확인하세요.

파일을 수정한 뒤 새 셸을 열거나 다음 명령으로 현재 셸에 다시 적용할 수 있습니다.

source ~/.bashrc

실용적인 별칭 예제

예제 용도
alias la='ls -A' .과 ..을 제외한 숨김 파일까지 표시합니다.
alias c='clear' 터미널 화면을 짧은 명령으로 정리합니다.
alias gs='git status' Git 작업 트리 상태를 빠르게 확인합니다.
alias dfh='df -h' 파일 시스템 사용량을 읽기 쉬운 단위로 표시합니다.
alias mkdir='mkdir -p' 필요한 상위 디렉터리까지 생성합니다. 기존 명령의 동작을 바꾸므로 팀 환경에서는 주의가 필요합니다.

원래 명령을 실행하는 방법

별칭이 적용된 이름에서 일시적으로 별칭을 건너뛰려면 명령 앞에 백슬래시를 붙일 수 있습니다.

\ls

command는 셸 함수 검색을 건너뛰는 용도로 유용하지만, 별칭 확장은 그보다 먼저 일어나므로 일반적으로 command ls의 command 자체가 별칭이 아닌 한 두 번째 단어인 ls는 별칭 확장 대상이 아닙니다. 실행 파일을 확실히 지정하려면 /usr/bin/ls처럼 절대 경로를 사용할 수도 있습니다.

인수가 필요하면 셸 함수 사용하기

별칭은 전달받은 첫 번째 인수를 중간 위치에 끼워 넣는 기능이 없습니다. 다음처럼 위치 인수를 다뤄야 한다면 함수를 정의하는 편이 명확합니다.

mkcd() {
  mkdir -p -- "$1" && cd -- "$1"
}

별칭 뒤에 입력한 인수는 확장된 명령의 끝에 그대로 붙습니다. 단순히 기본 옵션을 추가하는 용도라면 별칭이 적합하지만, 조건문·반복문·인수 검증이 필요하면 함수를 사용하세요.

별칭이 확장되지 않는 경우

비대화형 셸과 스크립트

Bash는 기본적으로 비대화형 셸에서 별칭을 확장하지 않습니다. shopt -s expand_aliases로 바꿀 수 있지만, 스크립트에서는 별칭보다 함수나 명시적인 명령을 사용하는 편이 이식성과 예측 가능성이 좋습니다.

같은 줄에서 정의하고 바로 실행

별칭은 실행 시점이 아니라 Bash가 명령을 읽는 시점에 확장됩니다. 따라서 같은 줄이나 하나의 복합 명령 안에서 정의한 별칭이 바로 뒤의 명령에 적용되지 않을 수 있습니다.

alias hi='printf "hello\n"'; hi

혼동을 피하려면 별칭 정의는 별도의 줄에 두고, 스크립트 로직에서는 함수나 명령을 사용하세요.

안전하게 사용하는 기준

  • 삭제나 덮어쓰기처럼 위험한 동작을 숨기는 별칭은 피합니다.
  • 기본 명령과 같은 이름을 사용할 때는 동작이 달라진다는 점을 인지합니다.
  • 서버 운영 절차나 공유 스크립트가 개인 별칭에 의존하지 않게 합니다.
  • 복잡한 따옴표, 파이프라인과 인수 처리가 필요하면 함수를 사용합니다.
  • 별칭의 실제 정의는 alias 이름 또는 type 이름으로 확인합니다.

alias, 함수, 스크립트 비교

방식 적합한 용도 주의점
alias 대화형 셸에서 짧은 이름이나 기본 옵션 추가 위치 인수와 복잡한 로직을 직접 처리하기 어렵습니다.
셸 함수 인수, 조건문과 여러 명령이 필요한 반복 작업 현재 셸 종류와 함수 정의가 필요합니다.
실행 스크립트 다른 셸·사용자·시스템에서도 재사용할 작업 파일 배치, 실행 권한과 PATH 관리가 필요합니다.

자주 묻는 질문

alias를 만들었는데 새 터미널에서 사라집니다.

명령줄에서 만든 별칭은 현재 셸에만 존재합니다. ~/.bashrc 또는 배포판이 사용하는 별칭 설정 파일에 저장하고 새 셸을 시작하세요.

별칭 이름에 인수를 넣을 수 있나요?

별칭 뒤에 입력한 인수는 확장 결과의 끝에 붙지만, $1처럼 위치를 지정할 수는 없습니다. 인수 위치나 검증이 필요하면 셸 함수를 사용하세요.

별칭을 삭제하려면 어떻게 하나요?

현재 셸에서는 unalias 이름을 사용합니다. 시작 파일에 저장한 별칭이라면 해당 정의도 삭제하거나 주석 처리해야 새 셸에서 다시 만들어지지 않습니다.

관련 글과 공식 문서

같은 카테고리의 다른 글
Linux / 명령어 / xz - 파일을 xz 형식으로 압축하기

Linux / 명령어 / xz - 파일을 xz 형식으로 압축하기

Linux xz 명령어의 용도와 기본 문법을 알아봅니다. 파일 처리 예제, 주요 옵션과 원본 보존·덮어쓰기 주의점을 설명합니다.

Linux / 명령어 / ip - 인터페이스·주소·라우팅 상태와 설정

Linux / 명령어 / ip - 인터페이스·주소·라우팅 상태와 설정

Linux ip 명령어의 기능과 기본 문법을 설명합니다. 실제 사용 예제, 주요 옵션과 작업 전 확인할 점을 알아봅니다.

Linux / 명령어 / pacman - Arch Linux에서 패키지 설치와 전체 시스템 업데이트

Linux / 명령어 / pacman - Arch Linux에서 패키지 설치와 전체 시스템 업데이트

Linux pacman 명령어의 적용 배포판과 기본 작업을 설명합니다. 패키지 조회·설치 예제, 주요 옵션과 시스템 변경 시 주의점을 알아봅니다.

Linux 강좌 / 파일 시스템 이해하기 - 절대·상대 경로와 주요 디렉터리

Linux 강좌 / 파일 시스템 이해하기 - 절대·상대 경로와 주요 디렉터리

리눅스 파일 시스템의 트리 구조와 절대·상대 경로를 이해하고, /home·/etc·/var 등 주요 디렉터리의 역할과 경로를 읽는 방법을 익힙니다.

Linux / 명령어 / uptime - 시스템 가동 시간과 부하 확인

Linux / 명령어 / uptime - 시스템 가동 시간과 부하 확인

Linux uptime 명령어의 가동 시간과 1분·5분·15분 평균 부하를 읽는 방법을 설명합니다. CPU 개수, I/O 대기와 함께 부하를 진단하는 순서도 정리합니다.

Linux / 명령어 / nohup - 로그아웃 후에도 명령 계속 실행

Linux / 명령어 / nohup - 로그아웃 후에도 명령 계속 실행

Linux nohup 명령어로 로그아웃 후에도 작업을 계속 실행하는 방법을 설명합니다. 백그라운드 실행, 입출력 리디렉션, PID 확인과 종료, 로그 관리 및 systemd·tmux와의 차이를 정리합니다.

Linux / 명령어 / apt - Debian·Ubuntu에서 패키지 검색·설치·업데이트

Linux / 명령어 / apt - Debian·Ubuntu에서 패키지 검색·설치·업데이트

Linux apt 명령어의 적용 배포판과 기본 작업을 설명합니다. 패키지 조회·설치 예제, 주요 옵션과 시스템 변경 시 주의점을 알아봅니다.

Linux / 명령어 / lscpu - CPU 아키텍처와 코어 정보 확인

Linux / 명령어 / lscpu - CPU 아키텍처와 코어 정보 확인

Linux lscpu 명령어의 기능과 기본 문법을 설명합니다. 실제 사용 예제, 주요 옵션과 작업 전 확인할 점을 알아봅니다.

Linux / 명령어 / free - 메모리와 스왑 사용량 확인

Linux / 명령어 / free - 메모리와 스왑 사용량 확인

Linux free 명령어의 total, used, free, buff/cache, available과 Swap 항목을 설명합니다. 메모리 부족을 판단할 때 함께 확인할 지표와 주의점도 정리합니다.

Linux / 명령어 / xargs - 표준 입력을 명령 인수로 전달

Linux / 명령어 / xargs - 표준 입력을 명령 인수로 전달

Linux xargs 명령어의 기본 문법과 실제 사용 예제를 설명합니다. 주요 옵션과 결과를 해석할 때 주의할 점을 확인할 수 있습니다.