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 / 명령어 / w - 로그인 사용자와 실행 중인 작업 확인

Linux / 명령어 / w - 로그인 사용자와 실행 중인 작업 확인

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

Linux 강좌 / systemd 서비스와 부팅 로그 확인하기

Linux 강좌 / systemd 서비스와 부팅 로그 확인하기

리눅스 부팅 흐름과 systemd 유닛을 이해하고 서비스의 실행 상태와 자동 시작 설정을 구분합니다. systemctl과 journalctl로 상태·부팅 로그를 확인합니다.

Linux / 명령어 / csplit - 행 번호·패턴에서 파일 분할

Linux / 명령어 / csplit - 행 번호·패턴에서 파일 분할

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

Linux / 명령어 / dig - DNS 레코드와 응답 자세히 조회

Linux / 명령어 / dig - DNS 레코드와 응답 자세히 조회

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

Linux 강좌 / 파일과 디렉터리 관리 - 생성·복사·이동·삭제

Linux 강좌 / 파일과 디렉터리 관리 - 생성·복사·이동·삭제

실습 폴더에서 파일과 디렉터리를 만들고 복사·이동·삭제해 봅니다. 덮어쓰기와 삭제 전에 경로와 결과를 확인하는 습관도 익힙니다.

Linux / 명령어 / diff - 텍스트 파일과 디렉터리 차이 비교

Linux / 명령어 / diff - 텍스트 파일과 디렉터리 차이 비교

Linux diff 명령어로 텍스트 파일과 디렉터리의 차이를 비교하는 방법을 설명합니다. unified 형식, 재귀 비교, 공백 무시와 종료 상태를 정리합니다.

Linux / 명령어 / man - 명령어 매뉴얼 확인

Linux / 명령어 / man - 명령어 매뉴얼 확인

man 명령어로 리눅스 매뉴얼을 읽고 검색하는 방법을 설명합니다. 매뉴얼 섹션, 화면 이동, 키워드 검색, 셸 내장 명령 확인과 문서가 없을 때의 해결 방법을 함께 정리합니다.

Linux / 명령어 / dirname - 경로에서 디렉터리 부분 추출

Linux / 명령어 / dirname - 경로에서 디렉터리 부분 추출

Linux dirname 명령어로 경로의 디렉터리 부분을 추출하는 방법을 설명합니다. 입력 형태별 결과와 basename, realpath의 차이 및 셸 스크립트 활용법을 정리합니다.

Linux / 명령어 / parted - 파티션 표와 빈 공간 확인·관리

Linux / 명령어 / parted - 파티션 표와 빈 공간 확인·관리

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

Linux / 명령어 / touch - 파일 생성과 타임스탬프 변경

Linux / 명령어 / touch - 파일 생성과 타임스탬프 변경

Linux touch 명령어로 빈 파일을 만들고 접근 시각과 수정 시각을 변경하는 방법을 설명합니다. 기준 파일의 시간을 복사하는 방법과 스크립트에서 사용할 때의 주의점도 알아봅니다.