曲径通幽论坛

标题: alias -- 给命令起别名 [打印本页]

作者: beyes    时间: 2012-3-20 15:17
标题: alias -- 给命令起别名
alias 可以给别的命令或者是若干命令的组合起别名,达到简化方便的目的。

基本用法如下:
alias your_command='command sequence'
如:
root@bt:~# alias hello='echo "hello world"'
root@bt:~# hello
hello world

需要注意的是,alias 命令所给别的命令起别名只是临时的,如果当前终端关闭,那么在本次会话中所起的别名将失效。如果希望所起别名以后还能用得上,那么可以将设置写到用户家目录的 .bashrc 文件中,在该文件中的命令只要在一个新的 shell 进程建立时就会得到执行,比如可以:
echo 'alias my_cmd="command sequence"' >> ~/.bashrc

起别名机制在某些时候很有用,比如为了保险起见,可以在运行 rm 命令前将要删除的文件备份起来,这样以防止误删,如:
alias rm='cp $@ ~/mybak; rm $@
上面,$@  是个特殊的内置变量,代表了命令行上给出所有的参数。

如果你所起的别名之前已经有过,那么新的别名设置将覆盖旧有的。

从上面看到,别名也带有某些危险特性,比如你所运行的命令被人用别名修改过,从而会执行攻击者所附加的参数,这样就很不好了,那么为了安全起见,可以在你要运行的命令前加上反斜杠进行命令转义,这样别名就不会在起作用。如上面对 rm 命令所做的别名设置,在删除文件前进行备份,如果运行时在 rm 命令前加上 \ ,即 \rm ,那么就原原本本的就执行 rm 命令了。




欢迎光临 曲径通幽论坛 (http://www.groad.net/bbs/) Powered by Discuz! X3.2