在 Ubuntu(以及 Linux Shell,如 bash)中,alias(别名) 和 变量(variable) 都用于简化操作,但用途、工作方式和生效范围完全不同。下面用通俗方式说明它们的区别。
alias:给命令起“外号”
变量:给数据起“名字”
alias 用来给一条或多条命令起一个短名字,常用于简化常用命令。
alias ll='ls -lah'
alias gs='git status'
之后你只需要输入:
ll
gs
等价于:
ls -lah
git status
| 特点 | 说明 |
|---|---|
| 作用对象 | 命令 |
| 是否可执行 | ✅ 是 |
| 是否参与计算 | ❌ 否 |
| 是否可传参 | ❌(不能直接像函数) |
| 常见用途 | 简化命令 |
alias # 查看所有别名
unalias ll # 删除别名
写入:
~/.bashrc
或
~/.zshrc
变量用来存储数据(字符串、数字、路径等),供脚本或命令使用。
name="Tom"
echo $name
JAVA_HOME=/usr/lib/jvm/java-17
export JAVA_HOME
| 特点 | 说明 |
|---|---|
| 作用对象 | 数据 |
| 是否可执行 | ❌ |
| 是否参与计算 | ✅ |
| 是否可传参 | ✅ |
| 常见用途 | 路径、配置、脚本参数 |
echo $PATH
echo $HOME
VAR=123 # 普通变量
export VAR=123 # 环境变量(子进程可见)
~/.bashrc
~/.profile
/etc/environment
| 项目 | alias | 变量 |
|---|---|---|
| 本质 | 命令缩写 | 数据容器 |
| 是否能执行 | ✅ | ❌ |
| 是否能参与运算 | ❌ | ✅ |
| 使用方式 | 直接输入 | $变量名 |
| 示例 | ll |
$PATH |
| 常见用法 | 简化命令 | 配置路径、参数 |
alias DIR="/home/user"
cd DIR # ❌ 错误
✅ 正确做法:
DIR="/home/user"
cd $DIR
✅ 用 alias:
alias update='sudo apt update && sudo apt upgrade'
✅ 用 变量:
PROJECT_DIR="$HOME/project"
cd $PROJECT_DIR
mkcd() {
mkdir -p "$1" && cd "$1"
}
比 alias 更强大。
如果你愿意,我可以: