Bash 专业人员笔记 -- 第 7 章:别名
2026/8/28 17:08:26 网站建设 项目流程

Shell 别名是一种创建新命令或用自己的代码包装现有命令的简单方法。它们与 shell 函数有一定的重叠,但函数更通用,因此通常更应优先使用。

第 7.1 节:绕过别名

有时你可能希望临时绕过别名,而不禁用它。以一个具体的例子说明,考虑以下别名:

aliasls='ls --color=auto'

现在你想使用ls命令但不禁用该别名。你有几个选择:

  • 使用command内建命令:command ls
  • 使用命令的完整路径:/bin/ls
  • 在命令名的任何位置添加一个\,例如:\lsl\s
  • 引用命令:"ls"'ls'

第 7.2 节:创建别名

aliasword='command'

调用word将运行command。传递给别名的任何参数只是简单地附加到命令的后面:

aliasmyAlias='some command --with --options'myAlias foo bar baz

shell 将执行:

somecommand--with--optionsfoo bar baz

要在同一个别名中包含多个命令,可以用&&将它们串起来。例如:

aliasprint_things='echo "foo" && echo "bar" && echo "baz"'

第 7.3 节:移除别名

要移除现有的别名,使用:

unalias{alias_name}

示例:

# 创建别名$aliasnow='date'# 预览别名$ now Thu Jul2117:11:25 CEST2016# 移除别名$unaliasnow# 测试是否已移除$ now -bash: now:commandnot found

第 7.4 节:BASH_ALIASES是一个内部的 Bash 关联数组

别名是命令的命名快捷方式,可以在交互式 bash 实例中定义和使用。它们保存在一个名为BASH_ALIASES的关联数组中。要在脚本中使用这个变量,它必须在交互式 shell 中运行。

#!/bin/bash -li # 注意上面的 -li!-l 使其行为类似登录 shell,-i 使其行为类似交互式 shellecho"There are${#BASH_ALIASES[*]}aliases defined."foraliin"${!BASH_ALIASES[@]}";doprintf"alias: %-10s triggers: %s\n""$ali""${BASH_ALIASES[$ali]}"done

第 7.5 节:展开别名

假设barsomeCommand --flag1的别名。

在命令行输入bar,然后按Ctrl+Alt+e,你会看到bar所在的位置变成了someCommand --flag1

第 7.6 节:列出所有别名

alias-p

将列出当前所有的别名。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询