在 Ubuntu 里 alias 失效是很多人都会遇到的问题,通常不是 alias 写错了,而是加载时机或作用范围不对。下面按最常见原因给你梳理一下。
alias 只在当前 shell 会话中有效,关闭终端后就失效。
例如:
alias ll='ls -al'
如果你只这样执行,新开一个终端就没了。
✅ 正确做法:写入配置文件
nano ~/.bashrc
添加:
alias ll='ls -al'
然后:
source ~/.bashrc
如果你用的是 Ubuntu 22.04+ 默认 zsh,alias 要写在:
~/.zshrc
而不是 ~/.bashrc
检查方法:
echo $SHELL
如果是 /bin/zsh,就用:
nano ~/.zshrc
source ~/.zshrc
在 shell 脚本中,alias 默认是关闭的。
比如:
#!/bin/bash
alias ll='ls -al'
ll
会报错或无效。
✅ 解决方式:
shopt -s expand_aliases
source ~/.bashrc
或者直接用函数:
ll() {
ls -al "$@"
}
sudo ll
❌ 不会生效,因为 sudo 启动了新环境。
解决:
sudo alias ll='ls -al' # 没用
✅ 用:
sudo ls -al
或:
alias sudo='sudo '
检查:
alias
看看有没有重复或冲突。
比如:
这些环境通常 不读取 .bashrc
~/.bashrc 或 ~/.zshrcsource如果你愿意,可以把你具体的 alias 内容 + 使用场景(终端 / 脚本 / sudo)发出来,我可以直接帮你定位是哪一条原因。