news 2026/7/30 6:08:14

Linux命令:alias

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Linux命令:alias

alias 命令

基本介绍

alias是 Shell 内建命令,用于创建、查看和删除命令别名。命令别名是指向其他命令或命令组合的短名称,常用于简化常用命令、携带默认选项,或为命令指定更易读的替代名。

资料合集:https://pan.quark.cn/s/6fe3007c3e95https://pan.quark.cn/s/561de99256a5https://pan.quark.cn/s/985f55b13d94https://pan.quark.cn/s/d0fb20abd19a

语法

alias[选项][名称[=]...]unalias[选项][名称...]
  • 不带参数时,显示当前 Shell 中定义的所有别名。
  • 仅指定名称时,显示该别名对应的命令。
  • 指定名称=值时,创建或修改别名。
  • 使用unalias删除别名。

常用选项

alias选项

  • -p:以alias 名称=值的形式显示所有别名,便于重新加载。

unalias选项

  • -a:删除当前 Shell 中的全部别名。

使用示例

1. 显示所有别名

alias

输出示例:

alias ll='ls -l' alias la='ls -A' alias ..='cd ..'

2. 创建命令别名

aliasll='ls -l'aliasla='ls -A'alias..='cd ..'

此后执行ll相当于执行ls -l,执行..相当于执行cd ..

3. 查看单个别名

aliasll

输出示例:

alias ll='ls -l'

若别名不存在,Shell 会报错。

4. 创建带选项的别名

aliasgrep='grep --color=auto'aliasdiff='diff -u'aliasrm='rm -i'aliascp='cp -i'aliasmv='mv -i'

每次执行grep等命令时,会自动携带指定选项。为rmcpmv添加-i可防止误删或误覆盖文件。

5. 创建组合命令的别名

aliasupdate='sudo apt update && sudo apt upgrade'aliassize='du -sh ./* | sort -h'

6. 在别名中使用位置参数

别名本身不支持位置参数。需要使用参数时应改用函数:

greet(){echo"Hello,$1!"}

7. 替换已存在的命令名

aliasls='ls -lF'

此时ls被替换为ls -lF。若要使用原始命令,可在名称前加\或使用command内建:

\lscommandls

8. 取消别名

unaliasll

9. 取消全部别名

unalias-a

10. 查看默认别名

alias-p

以可直接用于加载的alias 名称=值格式输出,例如在脚本中重新加载别名配置时很有用。

在配置文件中持久化别名

临时创建的别名在 Shell 退出后会失效。要让别名在每个会话中生效,应在 Shell 的启动配置文件中添加它们:

  • Bash 交互式登录 Shell~/.bash_profile~/.profile
  • Bash 交互式非登录 Shell~/.bashrc
  • Zsh~/.zshrc
  • Fish~/.config/fish/config.fish

推荐在~/.bashrc中配置别名,并在~/.bash_profile中引用~/.bashrc

# ~/.bash_profileif[-f~/.bashrc];then.~/.bashrcfi
# ~/.bashrcaliasll='ls -l'aliasla='ls -A'alias..='cd ..'alias...='cd ../..'aliasgrep='grep --color=auto'aliasdiff='diff -u'aliasrm='rm -i'aliascp='cp -i'aliasmv='mv -i'

修改配置文件后,可使用source重新加载:

source~/.bashrc

别名扩展规则

  • 别名中的字符串只在命令行的第一个字段进行替换。
  • Bash 中别名默认不会在脚本中扩展,也不会在非交互式 Shell 中扩展。
  • 别名替换不会递归展开:若别名值中又出现别名名,Bash 不会再次替换它,除非该别名定义为以空格结尾。
  • 别名无法在其中直接使用位置参数$1$2等,需要参数时应改用 Shell 函数。

alias 与函数的区别

特性alias函数
定义方式alias 名称=值name() { ... }
支持位置参数不支持支持
支持多语句有限制完整支持
在脚本中可用通常不可用可用
优先级低于函数高于别名

需要参数、多步骤逻辑或条件分支时,建议使用函数而非别名。

mkcd(){mkdir-p"$1"&&cd"$1"}

常见内置别名

某些发行版会为交互式 Shell 预置别名,例如:

aliasls='ls --color=auto'aliasll='ls -l'aliasla='ls -A'aliasl='ls -CF'aliasgrep='grep --color=auto'

注意事项

  • alias是 Shell 内建命令,不是独立的可执行文件,因此which alias通常找不到对应二进制。
  • 别名中出现空格或特殊字符时,整个值应用引号包裹。
  • 创建与系统命令同名的别名时要谨慎,避免造成混淆。
  • 别名在脚本中通常不会展开,不要在脚本逻辑中依赖别名。
  • 处理敏感数据时,注意别名不要将密码、令牌或密钥硬编码在配置中。

相关命令

  • unalias:删除别名。
  • builtin:直接执行 Shell 内建命令,绕过可能覆盖它的别名或函数。
  • command:直接执行命令,绕过别名和函数。
  • function:定义 Shell 函数,实现更复杂的封装逻辑。
  • shopt:管理 Bash 的其他行为选项。
  • ~/.bashrc:Bash 交互式 Shell 的启动配置文件。

总结

alias是创建命令级快捷方式的基本工具。合理使用别名可以提高日常命令行效率,但对于需要参数、条件分支或多语句组合的场景,应改用 Shell 函数。配置别名时应通过~/.bashrc等启动文件持久化,并注意避免覆盖关键系统命令。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/30 6:07:56

两轮平衡小车PID调参实战:从零到稳的保姆级指南

1. 项目概述:从“能动”到“能稳”的最后一步如果你已经跟着前面的教程,把两轮平衡小车的机械结构搭好,电路焊好,程序也烧录进去了,那么恭喜你,你的小车已经具备了“能动”的基础。但此刻,它大概…

作者头像 李华
网站建设 2026/7/30 6:07:02

2026年AI内容检测工具实测与使用技巧

1. 为什么需要检测AI生成内容?在信息爆炸的时代,AI生成内容已经渗透到我们生活的方方面面。从新闻报道到学术论文,从营销文案到社交媒体帖子,AI写作工具正在改变内容创作的格局。但这也带来了新的挑战——如何辨别内容的真实来源&…

作者头像 李华
网站建设 2026/7/30 6:03:44

【2026必藏】6款智能降AIGC网站大公开,一键让AIGC率断崖式下跌!

步入 2026 年,学术界的风向早已悄然转变。曾经的查重焦虑还历历在目,如今却已被更严峻的 AIGC 检测压力所取代。随着 AI 写作工具的普及,高校对论文原创性的要求也愈发严苛,检测系统不断迭代升级,连最细微的 AI 痕迹都…

作者头像 李华
网站建设 2026/7/30 6:03:25

颗粒糖果自动包装机设计全解析:从理料到封合的核心技术与实战

1. 项目概述:从一颗糖到一条产线做自动化设备设计这么多年,接触过各种包装机,但颗粒状糖果(尤其是巧克力)的包装机,绝对算得上是“小而美”且“坑多水深”的典型。乍一看,不就是把一颗颗糖包起来…

作者头像 李华
网站建设 2026/7/30 6:01:04

电动车路径优化:MOPGA-NSGA-II算法与Matlab实现

1. 电动车路径优化问题的现实挑战 电动车路径规划与传统燃油车最大的区别在于充电约束带来的复杂性。我在实际项目中遇到过这样一个案例:一辆续航标称400公里的电动车,在冬季高速公路上实际只能跑250公里左右。这不仅仅是电池性能问题,更涉及…

作者头像 李华