alias命令详解
文章目录
alias命令别名允许你为常用的命令(及其参数)创建另一 个名称,从而将输入量减少到最低。
要查看当前可用的别名,使用alias命令以及选项-p。
$ alias li='ls -li' $
$ li
total 36
529581 drwxr-xr-x. 2 Christine Christine 4096 May 19 18:17 Desktop
529585 drwxr-xr-x. 2 Christine Christine 4096 Apr 25 16:59 Documents
529582 drwxr-xr-x. 2 Christine Christine 4096 Apr 25 16:59 Downloads
529586 drwxr-xr-x. 2 Christine Christine 4096 Apr 25 16:59 Music
529587 drwxr-xr-x. 2 Christine Christine 4096 Apr 25 16:59 Pictures
529584 drwxr-xr-x. 2 Christine Christine 4096 Apr 25 16:59 Public
529583 drwxr-xr-x. 2 Christine Christine 4096 Apr 25 16:59 Templates
532891 -rwxrw-r--. 1 Christine Christine 36 May 30 07:21 test.sh
529588 drwxr-xr-x. 2 Christine Christine 4096 Apr 25 16:59 Videos
$
在定义好别名之后,你随时都可以在shell中使用它,就算在shell脚本中也没问题。要注意, 因为命令别名属于内部命令,一个别名仅在它所被定义的shell进程中才有效。
alias命令的作用只是暂时的。一旦关闭当前终端,所有设置过的别名就失效了。为了使别 名设置一直保持作用,可以将它放入〜/.bashrc文件中。因为每当一个新的shell进程生成时,都会执行〜/.bashr中的命令。
$ echo 'alias cmd="command seq"' >> -/.bashrc
如果需要删除别名,只用将其对应的语句从〜/.bashrc中删除,或者使用unalias命令。
另一种创建别名的方法是定义一个具有新名称的函数,并把它写入〜/.bashrc。
我们可以创建一个别名rm,它能够删除原始文件,同时在backup目录中保留副本:
alias rm'cp $@ ~/backup; rm $@'
当你创建别名时,如果已经有同名的别名存在,那么原有的别名设置将被新的取代。
有时别名也会造成安全问题。下面来看看应该如何识别这些隐患。
alias命令能够为任何重要的命令创建别名,不过你可能未必总是希望使用这些别名。我们 可以将所要运行的命令进行转义,从而忽略当前定义过的所有别名。例如:
$ \command
字符\对命令实施转义,使我们可以执行原本的命令,而不是这些命令的别名替身。在不信 任的环境下执行特权命令,通过在命令前加上\来忽略可能存在的别名设置总是一个不错的安全实践。因为攻击者可能已经利用别名将某些特权命令替换成了一些别有用心的命令,借此来盗取用户输入的重要信息。
文章作者 Forz
上次更新 2017-09-08