alias 命令
100%

命令行 · 第 18 课

alias 命令

学习在 Bash 中创建、检查、持久保存、绕过和删除命令别名。

别名会让交互式 shell 在执行命令行前,把一个命令单词替换为另一段字符串。它可以缩短常用命令,也可以提供一组偏好的选项。

在当前 shell 中创建别名

要创建一个仅在当前终端会话中有效的临时别名,只需指定一个名称并将其设置为命令字符串。

例如,创建一个名为 ll 的别名,代表 ls -la

$ alias ll='ls -la'

定义后,输入 ll 作为命令就会展开为 ls -la。引号会在定义别名时把替换内容组合在一起。别名最适合简单的命令前缀替换;需要以更结构化的方式处理参数时,应使用 shell 函数。

哪个 Bash 命令会在当前 shell 中把 ll 定义为 ls -la 的别名?

在未来的 Bash 会话中加载别名

在提示符处定义的别名只属于当前 shell,shell 退出后便会消失。交互式非登录 Bash 会话通常读取 ~/.bashrc,因此这里是保存个人 Bash 别名的常用位置:

alias ll='ls -la'

要使更改生效,你必须关闭并重新打开终端,或者使用 source 命令让 shell 重新加载配置文件:

$ source ~/.bashrc

shell 启动行为可能因 shell、登录模式和发行版配置而异。例如,Zsh 用户通常应使用 Zsh 配置,而不是 Bash 的 .bashrc

个人别名通常应定义在哪里,才能被未来的交互式非登录 Bash 会话加载?

检查别名和名称解析

运行不带参数的 alias 命令可以列出当前 shell 中的别名。

$ alias
alias ll='ls -la'
alias grep='grep --color=auto'

使用 type 命令可以查看输入某个命令时实际执行的内容:

$ type ll
ll is aliased to 'ls -la'

哪个命令会显示 Bash 当前把 ll 解析为别名、函数、内建命令还是可执行文件?

绕过和删除别名

要在一条命令行中绕过别名,可以在命令名前加反斜杠,或把它放在 Bash 的 command 内建命令之后:

$ \ls
$ command ls

当你需要底层命令的正常行为时,这很有用。别名应保持简短、可预测,不要在熟悉的命令名背后隐藏意外或破坏性行为。

当前 Bash 会话有一个名为 ls 的别名。哪个命令会在一次调用中绕过它?

使用 unalias 从当前 shell 中删除别名:

$ unalias ll

如果定义仍留在 ~/.bashrc 中,未来的 shell 还会重新创建它。想永久删除别名时,也要删除或修改相应配置行。

哪个命令会从当前 Bash 会话中删除别名 ll

课程已完成

你已完成 alias 命令

现在,你可以用简单且可检查的别名定制 Bash。

  • 使用正确引号定义临时别名。

  • 让未来会话从 ~/.bashrc 加载个人别名。

  • 检查别名和命令解析结果。

  • 在一次调用中绕过别名。

  • 按需同时删除活动定义和已保存定义。

保存学习进度

创建免费账户即可保存本课进度,并在任意设备上继续学习。

创建免费账户
下一节
返回 命令行