在管理和维护Linux系统的过程中,将会使用到大量命令,有一些很长的命令或用法经常被用到,重复而频繁地输入某个很长命令或用法是不可取的。这时可以使用命令别名功能将这个过程简单化。
1.系统定义的别名
通常情况下,系统中已经定义了一些命令别名,要查看已经定义的命令别名,可以使用alias命令:
#alias命令将输出所有已经定义的命令别名
alias
alias cp=‘cp -i’
alias l.=‘ls -d .* --color=tty’
alias ll=‘ls -l --color=tty’
alias ls=‘ls --color=tty’
alias mv=‘mv -i’
alias rm=‘rm -i’
alias which=‘alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde’
从上面的结果中可以看出,当我们使用命令cp(复制文件命令)时,系统会用cp -i代替命令中的cp。除此之外,还定义了ls命令及其使用的颜色、移动文件命令mv、删除命令rm等。
用于设置系统别名的相关文件保存在/etc/profile.d/目录中(系统别名目录),使用以下方式可以查看:
#进入目录/etc/profile.d/
cd /etc/profile.d/
#查看目录中的文件
ls
colorls.csh glib2.sh krb5-workstation.csh lang.sh vim.csh
colorls.sh gnome-ssh-askpass.csh krb5-workstation.sh less.csh vim.sh
glib2.csh gnome-ssh-askpass.sh lang.csh less.sh which-2.sh
#查看文件less.csh的内容
cat less.csh
#以下为less.csh的内容,其中定义了ls命令使用的颜色等别名
less initialization script (csh)
if ( -x /usr/bin/lesspipe.sh ) then
setenv LESSOPEN “|/usr/bin/lesspipe.sh %s”
endif
cat colorls.sh
color-ls initialization
alias ll=‘ls -l’ 2>/dev/null
alias l.=‘ls -d .*’ 2>/dev/null
…
2.用户自定义别名
许多时候管理员都会按自己的使用习惯定义命令别名。例如让查看当前文件内容的命令兼容DOS中的查看文本命令type:
#为cat命令定义一个别名type
alias type=‘cat’
#使用type命令查看文件alias.txt的内容
type alias.txt
alias l.=‘ls -d .* --color=tty’
alias ll=‘ls -l --color=tty’
alias ls=‘ls --color=tty’
alias vi=‘vim’
alias which=‘alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde’
上面的命令中,先为cat命令定义了一个名为type的别名。当用户使用命令type时,系统会自动使用cat命令将其替代。
3.取消定义的别名
要取消已经定义好的命令别名,可以对别名使用unalias命令:
unalias type
type alias.txt
-bash:type: command not found
4.保存别名设置
当系统重新启动或用户重新登录时,使用alias命令定义的别名将会丢失。可以在系统别名目录中添加别名配置文件,但这种方式定义的别名对所有的用户都生效,通常不建议使用这种方法。
如果要定义全局别名,通常建议将命令添加到全局配置文件**/etc/profile**中。例如定义全局别名:
echo “alias type=‘cat’”>>/etc/profile
这条命令将alias type='cat’添加到文件/etc/profile中。
注意:在对/etc/profile这样的系统配置文件进行操作时,一定要谨慎,否则有可能会损坏系统。因此上面的命令中使用的是">>“而不是”>",">>"表示将内容追加到文件结尾。
如果某个用户想要定义自己的命令别名,可以将命令添加到用户家目录中的文件.bash_profile中。例如要定义用户自己的别名:
echo “alias vi=‘vim’”>>~/.bash_profile
source ~/.bash_profile 最后,退出并重新登陆以使定义生效。