别名就是一种便捷方式,可以为用户省去输入一长串命令序列的麻烦。下面我们会看到如何用alias命令创建别名。

1.8.1 实战演练

你可以执行多种别名操作。

创建别名

  1. alias new_command='command sequence'

下面的命令为apt-get install创建了一个别名:

  1. $ alias install='sudo apt-get install'

定义好别名之后,我们就可以用install来代替sudo apt-get install了。

alias命令的生命周期

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

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

删除别名

如果需要删除别名,只需将其对应的定义(如果有的话)从~/.bashrc中删除,或者使用unalias命令。也可以使用alias example=,这会取消别名example

组合

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

  1. alias rm='cp $@ ~/backup && rm $@'

注意

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

1.8.2 补充内容

如果身份为特权用户,别名也会造成安全问题。为了避免对系统造成危害,你应该将命令转义。

对别名进行转义

创建一个和原生命令同名的别名很容易,你不应该以特权用户的身份运行别名化的命令。我们可以转义要使用的命令,忽略当前定义的别名:

  1. $ \command

字符\可以转义命令,从而执行原本的命令。在不可信环境下执行特权命令时,在命令前加上\来忽略可能存在的别名总是一种良好的安全实践。这是因为攻击者可能已经将一些别有用心的命令利用别名伪装成了特权命令,借此来盗取用户输入的重要信息。

列举别名

alias命令可以列出当前定义的所有别名:

  1. aliasalias lc='ls -color=auto'
  2. alias ll='ls -l'
  3. alias vi='vim'