在 CentOS 里,“aliases”可能指几种不同东西,常见的是:
下面分别说怎么“调试”。
alias
或查看某个:
alias ll
有时候“写了但不生效”,常见原因:
~/.bashrc 但用的是 非交互 shellsu 而不是 su -检查是否被函数或命令覆盖:
type ll
source ~/.bashrc
或
. ~/.bash_profile
比如:
alias ll='ls -lh'
可以临时改成:
alias ll='ls -lh --color=auto'
用 set -x 看执行过程:
set -x
ll
set +x
脚本默认不展开 alias,需要:
shopt -s expand_aliases
source ~/.bashrc
vi /etc/aliases
示例:
root: admin@example.com
(非常重要,不改不生效)
newaliases
或
postalias /etc/aliases
sendmail -bv root
或
postqueue -p
tail -f /var/log/maillog
如果是 Postfix:
postconf | grep alias
常见配置:
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
改完:
postmap /etc/aliases
systemctl restart postfix
| 问题 | 原因 |
|---|---|
| alias 不生效 | 没 source / 非登录 shell |
| 修改 aliases 没用 | 没执行 newaliases |
| 脚本里 alias 无效 | 脚本不展开 alias |
| su 后 alias 没了 | 用了 su 而非 su - |
如果你说的是 具体某种 alias(比如 Docker / kubectl / git / Postfix),可以告诉我场景,我可以给你更精确的调试方法。