在 CentOS(以及一般 Linux)里,“alias 不生效 / alias 写错了 / 想排查 alias 问题”通常可以按下面步骤来排错。
alias
或查看某个具体 alias:
alias ll
如果没有输出,说明 当前 shell 里没有这个 alias。
不同 shell 配置文件不同:
echo $SHELL
常见情况:
/bin/bash → .bashrc / .bash_profile/bin/zsh → .zshrcalias 一般写在:
~/.bashrc
或
~/.bash_profile
检查:
grep alias ~/.bashrc
修改后生效:
source ~/.bashrc
⚠️ 注意:
.bashrctype ll
如果看到 ll is a function,说明被函数覆盖了。
which ll
.bashrc 里后面又定义了一次。
默认 脚本里 alias 是关闭的。
测试:
bash -c 'alias ll="ls -l"; ll'
会报错。
解决方式(不推荐,但可用):
shopt -s expand_aliases
✅ 更推荐:脚本里直接用函数或完整命令。
错误示例:
alias ll = 'ls -l' # ❌ 等号两边不能有空格
正确:
alias ll='ls -l'
全局 alias(不常用):
/etc/bashrc
/etc/profile
| 问题 | 检查命令 |
|---|---|
| alias 是否存在 | alias |
| 是否生效 | type 别名 |
| 配置文件 | grep alias ~/.bashrc |
| 是否 source | source ~/.bashrc |
| 脚本中不生效 | shell 默认禁用 alias |
| 被覆盖 | type / which |
如果你愿意,可以把 你定义的 alias + 报错信息 贴出来,我可以直接帮你定位是哪一步出的问题。