别名就是一种便捷方式,以省去用户输入一长串命令序列的麻烦。

1. 预备知识

别名有多种实现方式,可以使用函数,也可以使用alias命令。

2. 实战演练

可以按照下面的方式创建一个别名:

$ alias new_command='command sequence'

为安装命令apt-get install创建别名:

$ alias install='sudo apt-get install'

这样一来,我们就可以用install pidgin代替sudo apt-get install pidgin了。

alias命令的作用只是暂时的。一旦关闭当前终端,所有设置过的别名就失效了。为了使别名设置一直保持作用,可以将它放入~/.bashrc文件中。因为每当一个新的shell进程生成时,都会执行 ~/.bashrc中的命令。

$ echo 'alias cmd="command seq"' >> ~/.bashrc

如果需要删除别名,只用将其对应的语句从 ~/.bashrc中删除,或者使用unalias命令。

另一种创建别名的方法是定义一个具有新名称的函数,并把它写入 ~/.bashrc。

我们可以创建一个别名rm,它能够删除原始文件,同时在backup目录中保留副本:

alias rm='cp [email protected] ~/backup; rm [email protected]'

当你创建别名时,如果已经有同名的别名存在,那么原有的别名设置将被新的取代。

3. 补充内容

有时别名也会造成安全问题。下面来看看应该如何识别这些隐患。

对别名进行转义

alias命令能够为任何重要的命令创建别名,不过你可能未必总是希望使用这些别名。我们可以将所要运行的命令进行转义,从而忽略当前定义过的所有别名。例如:

$ \command

字符\对命令实施转义,使我们可以执行原本的命令,而不是这些命令的别名替身。在不信任的环境下执行特权命令,通过在命令前加上 \ 来忽略可能存在的别名设置总是一个不错的安全实践。因为攻击者可能已经利用别名将某些特权命令替换成了一些别有用心的命令,借此来盗取用户输入的重要信息。