在 CentOS(以及大多数 Linux 发行版)里,**alias(别名)**本质上是由 shell 解释的,所以“调试 alias”通常就是确认它在哪个 shell、哪个配置文件、是否生效、是否被覆盖。
下面按常见场景 + 调试方法来说明。
alias 是 shell 级别的,不同 shell 配置不同。
echo $SHELL
常见情况:
/bin/bash → 看 .bashrc、.bash_profile/bin/zsh → 看 .zshrcalias
只看某一个:
alias ll
如果这里没有你想要的 alias,说明:
CentOS 默认登录 shell 是 bash:
非登录 shell(终端开一个新窗口)
~/.bashrc
登录 shell(ssh / su -)
~/.bash_profile
✅ 推荐做法:
# ~/.bashrc
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
然后在 ~/.bash_aliases 里写 alias。
改完配置文件要执行:
source ~/.bashrc
或
. ~/.bashrc
检查是否被函数覆盖:
type ll
输出可能是:
ll is aliased to ...ll is a functionll is /usr/bin/ll如果是 function,优先于 alias。
bash -x
然后执行命令,看 alias 是否展开。
退出:
exit
alias ll='ls -lh'
type ll
CentOS 默认有:
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
如果你想覆盖:
unalias rm
alias rm='rm -f'
脚本里默认不展开 alias
解决方式:
shopt -s expand_aliases
source ~/.bashrc
但更推荐:脚本里直接用函数或完整命令。
echo $SHELL
cat ~/.bashrc | grep alias
alias
type 你的alias名
source ~/.bashrc
alias
如果你愿意,可以把:
贴出来,我可以直接帮你定位问题。