在 Ubuntu(其实是在 Linux 的 shell 环境中,尤其是 Bash)里,alias(别名) 和 变量(variable) 都常用来“简化操作”,但它们的本质、用途和行为完全不同。下面从多个角度对比说明。
alias ll='ls -alF'
你输入 ll,shell 实际执行的是 ls -alF
✅ 只能用于命令,不能用于参数、路径、字符串拼接
$变量名export WORK=/home/user/project
cd $WORK
✅ 可用于路径、参数、脚本逻辑等
alias gs='git status'
alias py='python3'
使用:
gs
py script.py
❌ 不能这样用:
echo gs # 输出 gs,不是 git status
NAME="Tom"
PATH_DIR=/opt/app
使用:
echo $NAME
cd $PATH_DIR
✅ 可以在脚本、命令、逻辑中随意使用
| 项目 | alias | 变量 |
|---|---|---|
| 当前 shell | ✅ | ✅ |
| 子 shell | ❌(默认) | ✅(export 后) |
| 脚本中 | ❌(默认不继承) | ✅ |
alias test='echo hello'
bash # 新 shell
test # command not found
export A=1
bash
echo $A # 1
alias grep='grep --color'
# 不能写成
alias g='grep $1' # ❌ 错误
DIR=/var/log
ls $DIR
如果你想要“带参数的 alias”,应该用 函数:
mkcd() {
mkdir -p "$1" && cd "$1"
}
使用:
mkcd test
# ~/.bashrc
alias ll='ls -alF'
# ~/.bashrc 或 ~/.profile
export PROJECT=/home/user/project
修改后:
source ~/.bashrc
alias 是“命令的快捷方式”,变量是“值的容器”
如果你愿意,我也可以帮你把常用命令整理成一套 .bashrc 配置示例。