温馨提示×

centos aliases可以覆盖吗

小樊
40
2026-10-23 14:05:16
栏目: 智能运维

在 CentOS(以及其它 Linux 发行版)里,alias 是可以覆盖的,而且很常见。

1. 临时覆盖(仅当前 shell 生效)

直接在终端里重新定义即可:

alias ll='ls -lh'
alias ll='ls -la'   # 覆盖前面的 ll

后定义的会覆盖先定义的,只对当前 shell 会话有效,退出终端后失效。


2. 永久覆盖(对所有新 shell 生效)

alias 通常定义在以下文件中(按加载顺序):

  • ~/.bashrc(用户级,最常用)
  • ~/.bash_profile 或 ~/.profile
  • /etc/bashrc(系统级,对所有用户)

覆盖方法:

  1. 编辑对应文件:
vi ~/.bashrc
  1. 找到原来的 alias,直接修改或重新写一行:
alias ll='ls -la'
  1. 使配置生效:
source ~/.bashrc

3. 注意事项

  • alias 不能覆盖 shell 内建命令的绝对路径执行
    例如:

    alias cp='cp -i'
    

    你仍然可以用:

    /bin/cp file1 file2
    

    来绕过 alias。

  • alias 不能带参数位置(和函数不同)
    如果复杂逻辑,建议用 function 而不是 alias。

  • 如果 alias 没生效,可能是:

    • 写错文件
    • 没 source
    • 被后面的文件再次覆盖

4. 查看和删除 alias

alias            # 查看所有
alias ll         # 查看某个
unalias ll       # 删除某个

如果你愿意,可以告诉我你具体想“覆盖什么 alias”,我可以给你最准确的写法。

0 踩