Linux如何设置命令别名
1.系统定义的别名
通常情况下,系统中已经定义了一些命令别名,要查看已经定义的命令别名,可以使用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'
用于设置系统别名的相关文件保存在/etc/profile.d/目录中(系统别名目录),使用以下方式可以查看:
#进入目录/etc/profile.d/
# cd /etc/profile.d/
#查看目录中的文件
# ls
2.用户自定义别名
许多时候管理员都会按自己的使用习惯定义命令别名。例如让查看当前文件内容的命令兼容DOS中的查看文本命令type:
#为cat命令定义一个别名type
# alias type='cat'
#使用type命令查看文件alias.txt的内容
# type alias.txt
上面的命令中,先为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 pg='cat'添加到文件/etc/profile中。
注意:在对/etc/profile这样的系统配置文件进行操作时,一定要谨慎,否则有可能会损坏系统。因此上面的命令中使用的是">>"而不是">",">>"表示将内容追加到文件结尾。
如果某个用户想要定义自己的命令别名,可以将命令添加到用户家目录中的文件.bash_profile中。例如要定义用户自己的别名:
# echo "alias vi='vim'">>~/.bash_profile
source ~/.bash_profile 最后,退出并重新登陆以使定义生效。
/var/www/site/mycitsm这样一个命令取一个别名,每次只需输入该别名就可以进入该目录呢?
很庆幸,Linux系统提供了一个有用的工具叫alias,可以让我们将一些需要频繁使用的但又过于冗长的命令设置一个别名,这样一来,以后只需输入一个简短的别名就可以达到同样的作用。
用法:alias
[-p]
[name[=value]
...
]
注意=和字符串之间不能包含空格
显示当前设置的别名:
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'
或者直接输入:
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'
若只想显示某个别名代表的含义可输入alias
name,比如:
shellalias
ll
alias
ll='ls
-l
--color=tty'
若想为某个命令设置别名可输入
alias
新命令='原命令
选项/参数',比如:
shellalias
site='cd
/var/www/site/mycitsm/'
若想取消某个别名可输入unalias
name,比如
shellunalias
site
但是,上述设置方法存在一个问题,也即设置的命令别名只针对当前回话有效,一旦连接断开并重连之前设置的别名别不在有效。
可以通过将设置别名的命令写进启动文件使别名持久生效。大多数Linux发行版使用下述三个启动文件中的一个:
$HOME/.bash_profile
$HOME/.bash_login
$HOME/.profile
可将设置别名的命令写进启动文件内,这样,每次连入系统的时候别名都会生效。若想在命令写入启动文件后立即生效记得执行source命令,比如:
source
$HOME/.bash_profile
通过上述方式设置命令别名解决了命令别名只针对回话生效的问题,但是,写进每个用户特定的主目录下的启动文件中的命令别名只针对该用户有效。对其他用户没有什么效果,这通常也是正常情况下期望看到的情况。但如果确实像使设置的别名对任意用户有效则可将设置别名的命令写进全局启动文件中,如/etc/profile。