在 CentOS(以及一般的 Linux shell) 里,alias 本身是不能直接带“位置参数”的,比如你不能写成:
alias g='git $1'
这样 $1 在定义 alias 时就会被展开,或者根本不会按你预期工作。
如果你需要传参数,用 shell 函数是最标准、最灵活的方式:
g() {
git "$@"
}
使用:
g status
g commit -m "test"
把函数写进:
~/.bashrc(bash)~/.zshrc(zsh)然后:
source ~/.bashrc
alias 只能做文本替换,例如:
alias ll='ls -l'
alias gs='git status'
这些不能接收你后面输入的“第一个参数”。
很多人会这样写:
alias g='git'
g status
虽然看起来像“传参”,但其实是 alias 只替换命令名,参数还是 shell 正常解析的。
| 方式 | 是否支持参数 | 说明 |
|---|---|---|
| alias | ❌ 不支持动态参数 | 只能固定字符串 |
| shell 函数 | ✅ 支持 | 推荐方式 |
| alias + 函数 | ✅ | 常见组合 |
如果你是 CentOS 7 / 8 / Stream,或者用的是 bash / zsh,我也可以给你具体示例(比如 Docker、kubectl、ssh 别名带参数)。