在 Ubuntu(以及其他 Linux 发行版)里,aliases(别名) 是通过 shell(通常是 Bash)提供的功能,用起来很方便,但也有不少限制和坑。下面按常见场景梳理一下:
例如:
alias ll='ls -al'
在终端里可用,但在脚本里:
#!/bin/bash
ll
会报错:ll: command not found
✅ 解决方式:
source ~/.bashrcalias 只是简单的文本替换,不能:
if / for / while❌ 不行的例子:
alias backup='cp $1 $1.bak' # 错误
✅ 正确做法是用函数:
backup() {
cp "$1" "$1.bak"
}
ifforwhilefunctiontime)有特殊情况例如:
alias time='echo time'
可能不会按预期工作。
alias 只替换命令行第一个词:
alias rm='rm -i'
rm file.txt # 生效
sudo rm file.txt # 不生效
✅ 想让 sudo 也用 alias,需要额外配置:
alias sudo='sudo '
例如:
~/.bashrc → Bash~/.zshrc → Zshssh user@host ll
远程不会加载你的 alias。
which 找到which ll
通常无结果或指向错误位置。
命令查找顺序大致是:
可能导致你“以为改了命令,其实没改”。
否则重启/重开终端就失效:
~/.bashrc
~/.bash_aliases
alias 适合:
rm -i)不适合:
Ubuntu 的 alias 是“轻量、临时、交互式”的快捷方式,不是命令、不是函数、不能跨环境。
如果你愿意,我可以帮你: