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 강좌 / 파일 권한 읽고 바꾸기와 sudo 사용법

Linux 강좌 / 파일 권한 읽고 바꾸기와 sudo 사용법

리눅스 파일과 디렉터리의 읽기·쓰기·실행 권한을 해석하고 chmod로 실습 파일의 권한을 바꿉니다. sudo의 사용 범위와 권한 오류를 진단하는 순서도 설명합니다.

Linux / 명령어 / grep - 텍스트에서 원하는 문자열 검색

Linux / 명령어 / grep - 텍스트에서 원하는 문자열 검색

Linux grep 명령어로 파일과 명령 출력에서 문자열·정규 표현식을 검색하는 방법을 설명합니다. -F, -E, -r, 문맥 출력, 종료 상태와 로그 검색 예제를 정리합니다.

Linux 강좌 / 터미널과 셸 시작하기 - 명령어 구조와 도움말 읽기

Linux 강좌 / 터미널과 셸 시작하기 - 명령어 구조와 도움말 읽기

터미널과 셸의 차이부터 명령어·옵션·인수의 구조, 실행 결과 읽기, Bash 도움말 찾기까지 실습으로 익힙니다.

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

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

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

Linux / 명령어 / curl - URL 요청과 HTTP 응답 확인

Linux / 명령어 / curl - URL 요청과 HTTP 응답 확인

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

Linux / 명령어 / printenv - 환경 변수 값 출력

Linux / 명령어 / printenv - 환경 변수 값 출력

Linux printenv 명령어로 전체 또는 특정 환경 변수 값을 확인하는 방법을 설명합니다. 셸 변수와 환경 변수의 차이, 종료 상태, NUL 구분 출력과 env와의 차이를 정리합니다.

Linux / 명령어 / apt-get - APT 패키지 작업을 스크립트와 명령행에서 실행

Linux / 명령어 / apt-get - APT 패키지 작업을 스크립트와 명령행에서 실행

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

Linux / 명령어 / fg - 셸 작업을 포그라운드로 가져오기

Linux / 명령어 / fg - 셸 작업을 포그라운드로 가져오기

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

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

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

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

Linux / 명령어 / pgrep - 조건에 맞는 프로세스 ID 검색

Linux / 명령어 / pgrep - 조건에 맞는 프로세스 ID 검색

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