在 Ubuntu(以及大多数 Linux 发行版)中,别名(alias)本身不支持像函数那样“带参数”,但有两种常见方式可以实现“带参数的别名”效果:
这是最标准、最灵活的方式。
mycp() {
cp "$1" "$2"
}
使用:
mycp file1.txt file2.txt
backup() {
cp "$1" "${2:-$1.bak}"
}
使用:
backup test.txt # 会生成 test.txt.bak
backup test.txt abc # 会生成 abc
alias(有限支持)alias 不能直接接收参数,但可以通过 $1、$2 等间接实现(不推荐,可读性差)。
alias g='git'
alias gpush='git push origin $1'
⚠️ 这种方式经常失效,因为 alias 展开时参数顺序不可控。
把函数放进配置文件,再起一个短别名。
mkcd() {
mkdir -p "$1" && cd "$1"
}
alias mc='mkcd'
使用:
mc testdir
把函数或别名写入配置文件:
nano ~/.bashrc
nano ~/.zshrc
添加内容后执行:
source ~/.bashrc
# 或
source ~/.zshrc
| 方式 | 是否支持参数 | 推荐程度 |
|---|---|---|
| alias | ❌(几乎不支持) | ⭐ |
| shell 函数 | ✅ | ⭐⭐⭐⭐⭐ |
| alias + 函数 | ✅ | ⭐⭐⭐⭐ |
如果你有具体命令场景(比如 docker、git、ssh、kubectl 等),我可以帮你写一个最合适的别名或函数。