alias 命令基本介绍alias是 Shell 内建命令用于创建、查看和删除命令别名。命令别名是指向其他命令或命令组合的短名称常用于简化常用命令、携带默认选项或为命令指定更易读的替代名。资料合集https://pan.quark.cn/s/6fe3007c3e95、https://pan.quark.cn/s/561de99256a5、https://pan.quark.cn/s/985f55b13d94、https://pan.quark.cn/s/d0fb20abd19a语法alias[选项][名称[值]...]unalias[选项][名称...]不带参数时显示当前 Shell 中定义的所有别名。仅指定名称时显示该别名对应的命令。指定名称值时创建或修改别名。使用unalias删除别名。常用选项alias选项-p以alias 名称值的形式显示所有别名便于重新加载。unalias选项-a删除当前 Shell 中的全部别名。使用示例1. 显示所有别名alias输出示例alias llls -l alias lals -A alias ..cd ..2. 创建命令别名aliasllls -laliaslals -Aalias..cd ..此后执行ll相当于执行ls -l执行..相当于执行cd ..。3. 查看单个别名aliasll输出示例alias llls -l若别名不存在Shell 会报错。4. 创建带选项的别名aliasgrepgrep --colorautoaliasdiffdiff -ualiasrmrm -ialiascpcp -ialiasmvmv -i每次执行grep等命令时会自动携带指定选项。为rm、cp、mv添加-i可防止误删或误覆盖文件。5. 创建组合命令的别名aliasupdatesudo apt update sudo apt upgradealiassizedu -sh ./* | sort -h6. 在别名中使用位置参数别名本身不支持位置参数。需要使用参数时应改用函数greet(){echoHello,$1!}7. 替换已存在的命令名aliaslsls -lF此时ls被替换为ls -lF。若要使用原始命令可在名称前加\或使用command内建\lscommandls8. 取消别名unaliasll9. 取消全部别名unalias-a10. 查看默认别名alias-p以可直接用于加载的alias 名称值格式输出例如在脚本中重新加载别名配置时很有用。在配置文件中持久化别名临时创建的别名在 Shell 退出后会失效。要让别名在每个会话中生效应在 Shell 的启动配置文件中添加它们Bash 交互式登录 Shell~/.bash_profile或~/.profileBash 交互式非登录 Shell~/.bashrcZsh~/.zshrcFish~/.config/fish/config.fish推荐在~/.bashrc中配置别名并在~/.bash_profile中引用~/.bashrc# ~/.bash_profileif[-f~/.bashrc];then.~/.bashrcfi# ~/.bashrcaliasllls -laliaslals -Aalias..cd ..alias...cd ../..aliasgrepgrep --colorautoaliasdiffdiff -ualiasrmrm -ialiascpcp -ialiasmvmv -i修改配置文件后可使用source重新加载source~/.bashrc别名扩展规则别名中的字符串只在命令行的第一个字段进行替换。Bash 中别名默认不会在脚本中扩展也不会在非交互式 Shell 中扩展。别名替换不会递归展开若别名值中又出现别名名Bash 不会再次替换它除非该别名定义为以空格结尾。别名无法在其中直接使用位置参数$1、$2等需要参数时应改用 Shell 函数。alias 与函数的区别特性alias函数定义方式alias 名称值name() { ... }支持位置参数不支持支持支持多语句有限制完整支持在脚本中可用通常不可用可用优先级低于函数高于别名需要参数、多步骤逻辑或条件分支时建议使用函数而非别名。mkcd(){mkdir-p$1cd$1}常见内置别名某些发行版会为交互式 Shell 预置别名例如aliaslsls --colorautoaliasllls -laliaslals -Aaliaslls -CFaliasgrepgrep --colorauto注意事项alias是 Shell 内建命令不是独立的可执行文件因此which alias通常找不到对应二进制。别名中出现空格或特殊字符时整个值应用引号包裹。创建与系统命令同名的别名时要谨慎避免造成混淆。别名在脚本中通常不会展开不要在脚本逻辑中依赖别名。处理敏感数据时注意别名不要将密码、令牌或密钥硬编码在配置中。相关命令unalias删除别名。builtin直接执行 Shell 内建命令绕过可能覆盖它的别名或函数。command直接执行命令绕过别名和函数。function定义 Shell 函数实现更复杂的封装逻辑。shopt管理 Bash 的其他行为选项。~/.bashrcBash 交互式 Shell 的启动配置文件。总结alias是创建命令级快捷方式的基本工具。合理使用别名可以提高日常命令行效率但对于需要参数、条件分支或多语句组合的场景应改用 Shell 函数。配置别名时应通过~/.bashrc等启动文件持久化并注意避免覆盖关键系统命令。