七月 8th, 2019

Bourne Again SHell(bash)非常方便的特性之一是它能够使用别名,使用bash别名可以通过将长命令缩短到更容易记住的长度,或者插入标志,调整命令的操作,从而在Linux服务器命令行上的运行得更加容易。

别名是如何工作的?

当在命令行中输入命令时,bash将首先检查别名是否匹配,然后再查找匹配的命令。如果存在别名匹配,则命令的匹配部分将被替换为给定别名中的替换部分。这可能只是一个命令,一个带有一些标志的命令,甚至是通过管道连接在一起的许多命令。

Bash Alias命令

别名由别名命令管理。若要查看配置的别名列表,可以按如下方式单独使用:

alias

定义别名时不能使用空格,在本例中使用myalias。后面应该直接输入一个等号,然后在引号内执行命令。定义命令时,可以在引号内使用空格。当不再需要配置的别名时,可以使用unalias命令轻松地将其删除。创建与现有命令同名的别名,使用时,别名将优先于原始命令。如果这样做并且以后想在不完全删除别名的情况下使用原始命令,可以在命令前面加上反斜杠 “\”符号。例如,如果创建了一个名为ping的别名,那么要使用普通ping命令,如下所示:

\ping

别名只在其设置的会话期间有效。因此,如果在命令行上创建了一些别名,那么当从会话注销时,这些别名将被删除。为了使别名永久化,需要将它们添加到脚本中,该脚本在登录到系统中时运行。一个常见的文件是~/.bashrc文件,这个文件在前一篇文章中已经提到过。相关内容可以了解一下 Linux服务器中怎样使用IP命令

有用的bash别名示例

现在已经介绍了如何使用别名命令,现在可以查看一些有用的别名示例。首先,如果使用Windows系统,并且熟悉命令行,可能经常会输入“dir”来查看目录的内容:

alias dir=’ls -l’

对于这个别名,每次输入dir时,都会从ls获得长格式的输出,以类似于Windows dir命令的方式显示目录中的文件。接下来,Windows用户还有另一个有用的别名:

alias cd.。=’cd 。。’

此别名映射允许使用命令cd.。去查看上一个目录。在Linux上,这通常会引发一个“找不到命令”错误,即使这在Windows中是有效语法。

接下来将介绍一些更复杂的东西:

alias histgrep=”history | grep”

这个别名可以用来搜索bash历史中的内容,虽然它只避免了输入几个字符的操作,但却是一个很好的示例。当在命令开头使用别名时,会使用别名替换输入的别名,并且命令的其余部分将保留在适当的位置。因此,例如,下面的命令“histgrep ps”将成为“history | grep ps”。

接下来,再提升一点难度:

alias psgrep=”ps aux | grep -v grep | grep -i -e VSZ -e”

此命令获取“ps aux”命令的输出,并通过管道将其传输到第一个grep命令,以删除与grep相关的任何条目。第二个grep命令对包含“VSZ”的行执行不区分大小写的搜索,该行可能只匹配ps中的列标题以及ps grep命令之后给定的任何字符串。此用法的使用示例是:

psgrep apache

这将给出一个运行apache进程的列表。

正如所看到的那样,别名是使系统更易于使用和管理的强大工具。可以使用别名来更正常见的拼写错误、缩短较长或更复杂的命令,甚至可以使某些命令更容易记住。更多相关内容可以参考 常见的Linux服务器命令与重定向

发表评论

电子邮件地址不会被公开。 必填项已用*标注