unalias用于取消当前Shell会话中的别名,仅临时生效:unalias ll可删除单个别名,unalias -a清除全部;永久删除需编辑~/.bashrc或~/.zshrc并source,绕过别名可用\ls或command ls。

直接用 unalias 就能取消,但必须分清“当前会话”和“永久生效”两个层面——只运行一次 unalias 不会影响下次打开终端。
取消当前 Shell 里的单个别名
比如你设过 alias ll='ls -l',现在想临时去掉它:
- 执行
unalias ll,立刻失效;再输ll就报错command not found - 别名不存在时,
unalias nonexistent会直接报错:bash: unalias: nonexistent: not found,不会静默忽略 - 不能带等号或引号,
unalias ll='ls -l'是错的,参数只能是纯别名名
一次性清空当前会话所有别名
适合调试环境或脚本中临时还原原始命令行为:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- 运行
unalias -a,所有自定义别名立即消失 - 注意:系统自带的内置别名(如某些发行版预设的
rm别名)也可能被清掉,ls、cp等行为会回归裸命令逻辑 - 这个操作不可逆,除非重新 source 配置文件或手动 alias 回来
永久删除别名要改配置文件
因为 unalias 只作用于当前 Shell 进程,重启终端就恢复。真正删掉得动源文件:
- 先查你用什么 shell:
echo $SHELL,常见是/bin/bash或/bin/zsh - bash 用户编辑
~/.bashrc,zsh 用户编辑~/.zshrc - 找到类似
alias ll='ls -l'的行,整行删掉或加#注释 - 保存后执行
source ~/.bashrc(或对应文件)立即生效,不用重启终端
不想删别名,只想某次绕过它
很多场景下你并不想破坏已有配置,只是这次需要原生命令:
- 加反斜杠:
\ls直接调用/bin/ls,跳过所有别名和函数 - 用
command前缀:command ls,语义更清晰,也绕过别名 - 写全路径:
/usr/bin/ls,但得先用which ls确认真实路径 - 注意:
'ls'或"ls"也能绕过,但不如\ls或command ls可靠,某些 shell 下可能仍触发别名
最容易被忽略的是:别名可能定义在多个地方——~/.bashrc、/etc/profile、甚至 /etc/skel/.bashrc,删完用户文件发现还存在,就得去系统级配置里找。另外,unalias 是 shell 内置命令,不依赖外部二进制,所以哪怕 $PATH 被污染也能用。

















