在 CentOS 里,alias 不生效/不识别,通常和shell 类型、配置文件加载时机、作用范围有关。下面按最常见原因逐一说明。
CentOS 默认 shell 一般是 bash,但不同启动方式加载的文件不同:
| 场景 | 加载文件 |
|---|---|
| 登录 shell(ssh 登录) | /etc/profile → ~/.bash_profile |
| 非登录 shell(终端里开 bash) | ~/.bashrc |
| 图形终端 | 通常读 ~/.bashrc |
✅ alias 通常应写在 ~/.bashrc
# 错误写法(不生效)
~/.bash_profile 里写 alias
但你是开终端,没登录
✅ 正确做法:
vi ~/.bashrc
加入:
alias ll='ls -l'
然后:
source ~/.bashrc
修改后不生效:
source ~/.bashrc
# 或
. ~/.bashrc
sh
alias ll
# 不识别
✅ 解决:
bash
alias 只在当前 shell 有效,子 shell 不继承:
bash -c 'll' # 不识别
alias rm='rm -i'
which rm
检查:
alias
是否为空
~/.bashrc# User specific aliases
alias ll='ls -l'
alias la='ls -A'
alias grep='grep --color=auto'
echo $SHELL
type ll
alias
bash -x ~/.bashrc
你可以直接贴:
我可以精准告诉你哪一步错了。