源: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