首页 > 技术文章 > [Command] alias - 别名

ifantastic 2013-12-07 15:43 原文

alias 命令可以让用户使用预置的字符串来执行系统命令。

 

命令是指用户输入指令指示电脑完成工作。命令一般在命令行输入,以回车键完成输入。命令被传递给shell。shell是类Unix操作系统提供的纯文本程序,它主要功能是读取命令和执行命令。

alias命令内建于许多shell中,包括ash, bash, csh和ksh,其中bash是大多数Linux系统默认shell。alias命令是众多定制shell方法之一,另外一种方法是使用环境变量。alias命令只能被其所在的shell识别,并且只对创建它们的用户有效,除非该用户是root用户,root用户可以为所有用户创建alias命令。

 

alias命令语法因shell不同而不同,在bash shell中语法为:

$ alias [-] [name="value"]

 

当不输入任何参数时,直接使用alias命令将显示所有对当前用户有效的别名。

$ alias
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l='ls -CF'
alias la='ls -A'
alias ll='ls -alF'
alias ls='ls --color=auto'

 

name是别名名称,value是具体命令。别名名称可是任何合法shell输入字符串,除了"="符号。

command是指包括可选参数、参数和重定向操作符,使用单引号或双引号包括起来,等号前后不能有空格。

 

直接使用alias命令创建别名有一个缺陷是它只在当前会话中有效。因此,要使得别名永久生效,就必须将它写入到特定的配置文件中,不同的操作系统配置文件名称与路径都不相同。在Red Hat Linux中,别名应写入"~/.bashrc",因为该文件在用户每次登录时被读取,因此必须重新登录,新写入的别名才会生效。

 

对于root用户,则将别名写入root用户的home目录下的.bashrc,例如"/root/.bashrc",系统级别的别名写入"/etc/bashrc”文件,重启系统后生效。

 

删除别名

 

方法一:unalias

与alias相对的unalias命令同样内建于bash或其他shell中,它用以从用户的别名列表中移除别名。语法为:

$ unalias [-a] name(s)

 

需要注意的是,unalias命令不是移除当前会话的别名,而是永久性移除别名,包括写在系统配置文件中的别名。可选参数"-a"表示移除当前用户正在使用的shell中所有别名。

 

方法二:创建一个新的具有相同名称的别名来覆盖原别名。

 

方法三:编辑配置文件,直接删除别名。

推荐阅读