直接运行 alias 即可列出当前 shell 会话中所有已定义别名,因其默认行为是显示全部别名,格式为“别名='实际命令'”,且仅读取内存中的实时状态,不涉及配置文件。

直接运行 alias 就能看到当前 shell 会话里所有已定义的别名,包括系统默认和你手动加的。
为什么只输 alias 就行?
因为 alias 命令不带参数时,默认行为就是列出全部别名,格式为 别名='实际命令'。它读的是当前 shell 的内存状态,不是配置文件——所以你刚用 alias ll='ls -l' 定义的,立刻就能在 alias 输出里看到。
- 输出里没内容?说明当前会话没定义任何别名(包括系统默认的也可能被清空了)
- 看到一堆像
ll='ls -alF'这样的行,就是有效别名 -
alias不会显示函数、环境变量或命令路径,只管别名本身
查不到别名?可能是这些原因
如果你运行 alias 后啥也没输出,但你知道系统应该有默认别名(比如 ll),那大概率是当前 shell 没加载初始化配置,或者你正在用非交互式 shell(比如脚本里)。
- 检查是否在子 shell 或脚本中执行:非交互式 shell 默认不加载
~/.bashrc,alias自然为空 - 确认 shell 类型:
echo $SHELL看是不是/bin/bash;zsh 用户得看~/.zshrc,alias在 zsh 下行为一致但配置位置不同 - 某些发行版(如 Ubuntu)把默认别名放在
/etc/skel/.bashrc模板里,新用户首次登录才复制过去——老账户可能压根没这行
想看配置文件里的别名,而不是当前生效的
临时别名关掉终端就没了,真正想“永久保留”的别名都写在配置文件里。要查它们,得直接翻文件:
- 用户级:打开
~/.bashrc(bash)或~/.zshrc(zsh),搜alias关键字 - 系统级:
/etc/bash.bashrc(bash)或/etc/zsh/zshrc(zsh),需要sudo cat才能读 - 注意:
source ~/.bashrc才能让文件里的别名真正载入当前会话,否则alias命令看不到它们
别名太多看不过来怎么办
终端刷屏时,用管道配合分页或过滤更实用:
-
alias | less:逐页查看,按q退出 -
alias | grep -i 'ls':快速定位含ls的别名(比如ll、la) -
compgen -a:等价于alias,但只输出别名名(不含等号和命令),适合脚本解析
别名本身不跨 shell 会话,也不继承到子进程——哪怕你 export 了,bash -c 'alias' 依然为空。这点容易被忽略,尤其写部署脚本时。


















