使用别名增强Linux命令行

源:https://www.networkworld.com/article/3573074/enhancing-the-linux-command-line-with-aliases.html

翻译:谷歌翻译

公众号:archlinux

多多关注

想要更快地完成工作,花更少的时间记住命令,甚至还可以向同事展示您的技巧如何?简单。设置几十个bash别名。

您的日子会变得更轻松,压力也将减少。您甚至可能会玩得开心。

为什么要使用别名?

使用别名可以帮助您避免键入很多命令详细信息,尤其是那些难以记住的命令或需要冗长的选项字符串的命令,这些选项可能必须先按特定顺序输入,然后再输入您想要输出的内容。

别名类型

一些别名将是完整的命令。其他将在命令中包含所有内容,直到使用它们时要提供的文件名,用户名或其他参数。有些别名是简单的缩写,例如使用“ c”而不是“ clear”。其他的则是如此复杂,除非您查阅手册页,否则您甚至都不记得它运行的命令中的每个字母代表什么。

别名语法

创建别名的语法很简单。键入单词“ alias”,然后输入您要赋予别名的名称,并用=号括起来,然后添加要运行的命令-通常用单引号或双引号引起来。诸如“ alias c = clear”之类的单词命令不需要引号。

$ alias aliasname='some command that you use'
$ alias haha="echo stop laughing at me"

唯一需要多加注意的时间是在别名中使用单引号或双引号时。在这种情况下,您必须格外小心,以确保多余的引号不会混淆解析。一个错误的引用会让bash认为您还没有完成。

$ alias fixme='echo this isn't what I meant'
>     <== continuation prompt from bash

如果要让别名运行的命令需要引号,则可以使用反斜杠“转义”它们。这告诉bash不要将它们解释为定界符,而只是解释为其他字符。这里有些例子:

$ alias now="echo It\'s now `date +%T`"
$ now
It's now 09:41:20
$ alias warning='echo Type \"bye\" before you '
$ warning
Type "bye" before you 

变量别名

$ alias hi='echo Hello there, $USER'
$ hi
Hello there, shs
$ alias wmi='echo I am in $PWD'
$ wmi
I am in /home/shs
$ cd /tmp
$ wmi
I am in /tmp

当然,键入“ wmi”并不比键入“ pwd”更方便。仍然有时您可能想要设置别名只是为了给命令分配一个不同的名称

条件别名

您可以在别名中包括一些逻辑,但是别名通常只包含一个命令,即使该命令是如本示例中的if命令。变得比这更复杂,最好编写脚本。

$ alias warn='if [ "$USER" != "shs" ]; then cat riot-act; fi'
$ warn
BEHAVE YOURSELF! You have been warned.

带参数的别名

 

可以创建别名,以便处理使用别名时在命令行上提供给它们的参数字符串。这是几个例子:

请注意,在这些示例中,我们将设置几个包含函数的别名。每个别名中的最后一个“ f”是在以“ f()”开头的部分中定义别名后对别名的调用。

保存别名

对别名感到满意后,请确保将其保存在.bashrc文件中,以便您每次登录后都可以使用它。您可能应该通过编辑.bashrc文件来添加别名,而不是将输出重定向到该文件,否则将会丢失必需的引号。另一方面,您可以在附加别名时将转义字符添加到别名,这样就不会这样:

$ echo alias wmi=\'echo I am in $PWD\' >> .bashrc

如果您将别名添加到.bashrc文件中,然后想立即使它们处于活动状态,则可以使用以下命令来“获取” .bashrc文件:

$ . ~/.bashrc

该命令将读取您的.bashrc文件,并使所有别名生效。它可能会影响其他设置,但前提是自登录以来未进行任何更改。

禁用别名

要禁用别名,可以使用unalias命令(也许尝试其他版本?)。只是不要忘记,如果您已经保存了别名,那么.bashrc文件中的副本将不受unalias命令的影响。

$ unalias wmi