前面看到shell中的变量代表了值,在shell还可以使用别名来代表命令。别名使用alias命令定义:
没有参数的别名
$ alias g=grep
有参数的别名需要加引号
$ alias ll="ls -l"
像ll就是一个很常见的别名,实际上使用的都是别名。
定义别名后,通过键入别名名称作为命令来运行别名。当别名短于它们调用的命令时,可以节省键入时间:
$ ll
-rw-r--r-- 1 smith smith 325 Jul 3 17:44 animals.txt
$ g Nutshell animals.txt
horse Linux in a Nutshell 2009 Siever, Ellen
donkey Cisco IOS in a Nutshell 2005 Boney, James
可以定义与现有命令同名的别名,从而有效地替换 shell 中的相同命令。这种做法称为遮蔽命令。假设用户使用less习惯清屏,那么可以定义一个别名来替换原有的less命令:
$ alias less="less -c"
别名优先于同名命令,效果上等同于替换了原有的命令,这与编程语言中的variable shadowing是类似的。
要列出当前 shell 的别名及其值,可以运行不带参数的 alias 命令:
$ alias
alias g='grep'
alias ll='ls -l'
要查看单个别名的值,运行alias及指定的别名:
$ alias g
alias g='grep'
要从shell中删除别名,使用unalias命令:
$ unalias g
一般系统安装完成后,系统会预置一些别名在过登录shell的配置文件中,当用户登录到交互式shell,这些别名就已经可以使用了。