Linux / 명령어 / unalias - 명령어 별칭 삭제

unalias는 Bash의 현재 셸에 등록된 별칭을 제거하는 내장 명령입니다. 특정 별칭만 삭제하거나 -a 옵션으로 모든 별칭을 제거할 수 있지만, 시작 파일에 저장된 정의까지 자동으로 지우지는 않습니다.

별칭 때문에 예상과 다른 옵션이 적용되거나 원래 명령을 실행하기 어려울 때 유용합니다. 일시 제거와 영구 제거의 차이를 이해하는 것이 핵심입니다.

unalias 명령어란?

alias가 명령 이름과 치환 문자열을 등록한다면 unalias는 그 등록을 현재 Bash 세션에서 삭제합니다. 삭제 후 같은 이름을 입력하면 Bash는 함수, 내장 명령 또는 PATH의 실행 파일 등 다음 후보를 다시 찾습니다.

이 글은 Bash를 기준으로 합니다. 다른 셸에도 같은 이름의 명령이 있을 수 있지만 지원 옵션과 설정 파일은 다를 수 있습니다.

기본 문법

unalias [-a] [이름 ...]

이름을 하나 이상 지정하면 해당 별칭을 제거합니다. -a는 현재 셸의 모든 별칭을 제거합니다.

특정 별칭 제거하기

alias ll='ls -alF'
unalias ll

제거 전후 상태는 다음처럼 확인할 수 있습니다.

alias ll
unalias ll
type ll

별칭을 제거한 뒤 같은 이름의 함수나 실행 파일이 존재하면 그 대상이 선택될 수 있습니다. 단순히 “명령이 없어졌다”고 가정하지 말고 type -a 이름으로 남은 후보를 확인하는 것이 좋습니다.

여러 별칭 한 번에 제거하기

unalias ll la grep

지정한 이름 가운데 정의되지 않은 별칭이 있으면 unalias는 실패 상태를 반환할 수 있습니다. 자동화 코드에서 결과를 사용할 때는 이 점을 고려하세요.

모든 별칭 제거하기

unalias -a

-a는 현재 셸의 모든 별칭을 삭제합니다. 개인 설정뿐 아니라 배포판이 편의나 안전을 위해 제공한 별칭도 함께 제거될 수 있으므로, 문제 원인을 좁히는 임시 셸이 아니라면 신중하게 사용하세요.

삭제 전에 현재 목록을 보관하려면 다음처럼 출력할 수 있습니다.

alias -p

일시 제거와 영구 제거의 차이

현재 터미널에서만 제거

unalias는 현재 Bash 프로세스의 별칭 테이블만 변경합니다. 터미널을 닫고 새 셸을 시작하면 ~/.bashrc 같은 시작 파일에 있는 별칭이 다시 정의됩니다.

새 터미널에서도 제거

별칭을 영구적으로 제거하려면 별칭을 정의한 설정 파일을 찾아 해당 줄을 삭제하거나 주석 처리해야 합니다.

grep -n "alias ll=" ~/.bashrc ~/.bash_aliases 2>/dev/null

설정을 수정한 뒤 새 셸을 열거나 다음 명령으로 현재 셸에 다시 적용합니다.

source ~/.bashrc

시스템 전체 설정인 /etc/bash.bashrc 또는 /etc/profile.d/에서 정의될 수도 있습니다. 시스템 파일을 바꾸기 전에 사용자 설정에서 다시 정의하거나 필요한 세션에서만 제거하는 방법을 먼저 검토하세요.

삭제하지 않고 한 번만 별칭 우회하기

원래 명령을 한 번만 실행하려는 목적이라면 별칭을 삭제할 필요가 없습니다. 명령 이름 앞에 백슬래시를 붙이거나 실행 파일의 절대 경로를 사용할 수 있습니다.

\ls
/usr/bin/ls

백슬래시는 해당 단어가 별칭으로 확장되는 것을 막습니다. 절대 경로는 PATH 검색과 같은 이름의 함수까지 피하면서 지정한 파일을 실행합니다.

별칭, 함수와 변수는 제거 방법이 다릅니다

대상 제거 명령 확인 방법
별칭 unalias 이름 alias 이름 또는 type 이름
셸 함수 unset -f 이름 declare -F 이름 또는 type 이름
셸 변수 unset 이름 declare -p 이름
실행 파일 파일 관리 명령 사용 type -a 이름 또는 command -v 이름

unalias는 이름이 같은 함수나 파일을 삭제하지 않습니다. 명령의 종류를 잘못 판단하면 원하는 대상이 그대로 남을 수 있으므로 먼저 type으로 확인하세요.

스크립트에서 안전하게 사용하기

정의되어 있을 때만 제거하려면 먼저 alias의 종료 상태를 확인할 수 있습니다.

if alias ll >/dev/null 2>&1; then
  unalias ll
fi

다만 비대화형 Bash는 기본적으로 별칭 확장을 하지 않으므로 일반 스크립트가 사용자 별칭을 제거해야 할 상황은 많지 않습니다. 스크립트가 대화형 셸의 개인 설정에 의존하지 않도록 작성하는 편이 좋습니다.

자주 발생하는 문제

unalias 후 새 터미널에서 별칭이 다시 생깁니다.

~/.bashrc, ~/.bash_aliases 또는 시스템 시작 파일에서 다시 정의되고 있기 때문입니다. 정의 위치를 찾아 수정해야 합니다.

unalias: not found 오류가 나옵니다.

지정한 이름이 현재 셸의 별칭이 아닐 가능성이 큽니다. type -a 이름으로 함수, 내장 명령 또는 실행 파일인지 확인하세요.

명령 동작이 여전히 달라 보입니다.

같은 이름의 셸 함수가 있거나 실행 파일이 여러 경로에 존재할 수 있습니다. type -a 이름으로 모든 후보를 확인하고, 필요하면 hash -r로 Bash의 명령 경로 캐시를 비운 뒤 다시 점검하세요.

사용 상황별 선택

상황 권장 방법
원래 명령을 한 번만 실행 \이름 또는 절대 경로를 사용합니다.
현재 터미널에서 별칭 제거 unalias 이름을 사용합니다.
모든 별칭으로 인한 영향을 임시 제거 목록을 확인한 뒤 unalias -a를 사용합니다.
새 터미널에서도 제거 별칭이 정의된 시작 파일을 수정합니다.
같은 이름의 함수 제거 unset -f 이름을 사용합니다.

자주 묻는 질문

unalias -a를 실행하면 복구할 수 있나요?

현재 셸의 별칭 정의를 직접 되돌리는 기능은 없습니다. 시작 파일에 저장된 별칭은 source ~/.bashrc로 다시 불러올 수 있지만, 명령줄에서만 만든 별칭은 다시 정의해야 합니다.

unalias는 다른 터미널에도 영향을 주나요?

아닙니다. 각 터미널의 셸 프로세스는 별도의 별칭 테이블을 가지므로 현재 셸에서 실행한 unalias는 다른 셸에 직접 영향을 주지 않습니다.

삭제한 별칭과 같은 이름을 입력하면 무엇이 실행되나요?

Bash는 남아 있는 함수, 내장 명령과 PATH의 실행 파일 등을 명령 탐색 규칙에 따라 찾습니다. 실제 선택 결과는 type 이름으로 확인할 수 있습니다.

관련 글과 공식 문서

같은 카테고리의 다른 글
Linux / 명령어 / w - 로그인 사용자와 실행 중인 작업 확인

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

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

Linux / 명령어 / printf - 지정한 형식으로 값 출력

Linux / 명령어 / printf - 지정한 형식으로 값 출력

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

Linux / 명령어 / rmdir - 빈 디렉터리 삭제

Linux / 명령어 / rmdir - 빈 디렉터리 삭제

Linux rmdir 명령어로 빈 디렉터리와 비어 있는 상위 경로를 안전하게 삭제하는 방법을 설명합니다. rm -r과의 차이, 실패 원인과 스크립트 사용법도 알아봅니다.

Linux / 명령어 / pwd - 현재 작업 디렉터리 경로 확인

Linux / 명령어 / pwd - 현재 작업 디렉터리 경로 확인

Linux pwd 명령어로 현재 작업 디렉터리를 확인하는 방법을 설명합니다. 논리적 경로와 물리적 경로, 셸 내장 명령과 PWD 변수의 차이도 함께 알아봅니다.

Linux / 명령어 / ps - 현재 프로세스 상태 확인

Linux / 명령어 / ps - 현재 프로세스 상태 확인

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

Linux / 명령어 / mount - 파일 시스템 연결 상태 확인과 마운트

Linux / 명령어 / mount - 파일 시스템 연결 상태 확인과 마운트

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

Linux 강좌 / 파일과 명령 찾기 - find, locate, which, whereis

Linux 강좌 / 파일과 명령 찾기 - find, locate, which, whereis

find와 locate로 파일을 찾고 which, whereis, type으로 명령의 위치와 해석 방식을 확인합니다. 실시간 검색과 색인 검색의 차이도 짚습니다.

Linux / 명령어 / kill - PID에 시그널 보내기

Linux / 명령어 / kill - PID에 시그널 보내기

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

Linux / 명령어 / whereis - 명령의 바이너리·소스·매뉴얼 위치 찾기

Linux / 명령어 / whereis - 명령의 바이너리·소스·매뉴얼 위치 찾기

Linux whereis 명령어로 프로그램의 바이너리, 소스와 매뉴얼 페이지 위치를 찾는 방법을 설명합니다. 검색 범위 제한과 which·find와의 차이도 정리합니다.

Linux / 명령어 / ping - 호스트 응답과 왕복 시간 확인

Linux / 명령어 / ping - 호스트 응답과 왕복 시간 확인

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