Shell alias给命令设置别名的实现方法
给命令设置别名,你可以把它当作命令的"小名",但是这样做有什么意义呢?
比如笔者刚接触Linux时,使用的编辑器是Vi,但是现在Vim的功能明显比Vi的功能更加强大,所以现在流行的编辑器变成了Vim。但是笔者已经习惯了输入vi命令,而不习惯输入vim命令,别看小小的一个"m"的区别,在执行命令时总觉得别扭,这时别名就可以起作用了。只要定义vim命令的别名为vi,这样以后执行的vi命令实际上运行了的是vim命令。
命令格式:
[root@localhost~]#alias #查询命令别名 [root@1ocalhost~]#alias别名='原命令' #设定命令别名
例如:
[root@localhost~]#alias #查询系统中已经定义好的别名 aliascp='cp-i' aliasl='ls-d.*--color=auto' aliasll='ls-1--color=auto' aliasls='ls--color=auto' aliasmv='mv-i' aliasrm='rm-i' aliaswhich='alias|/usr/bin/which--tty-only--read-alias--show-dot--show-tilde' [root@localhost~]#aliasvi='vim'#定义vim命令的别名是vi [root@localhost~]#alias #重新查询别名 aliascp='cp-i' aliasl.='ls-d.*--color=auto' aliasll='ls-1--color=auto' aliasls='ls--color=auto' aliasmv='mv-i' aliasrm='rm-i' aliasvi='vim' #别名已经生效 aliaswhich='alias|/usr/bin/which--tty-only--read-alias--show-dot--show-tilde'
大家需要注意一点,命令别名的优先级要高于命令本身。所以,一旦给vim命令设置了别名vi,那么原始的vi命令就不能使用了。所以,除非你确定原命令是不需要的,否则别名不能和系统命令重名。再举个例子:
[root@localhost~]#aliassto='/usr/local/apache2/bin/apachectlstop' [root@localhost~]#aliassta='/usr/local/apache2/bin/apachectlstart'
我们在配置和使用apache时,需要不断地重启apache服务。这时定义"sta"为apache启动命令的别名,"sto"为apache停止命令的别名,可以有效地加快apache服务的重启速度。
当然,前提是已经确定了系统中没有"sta"和"sto"命令,所以这两个别名不会覆盖系统命令。那么如何确定系统中没有"sta"和"sto"命令呢?还记得whereis和which命令吗?另外,使用Tab键命令补全功能也能够确定是否有这两个命令。
既然我们说别名的优先级比命令高,那么命令执行时具体的顺序是什么呢?命令执行时的顺序是这样的:
第一顺位执行用绝对路径或相对路径执行的命令。
第二顺位执行别名。
第三顺位执行Bash的内部命令。
第四顺位执行按照$PATH环境变量定义的目录査找的第一条命令。
别名就是这样简单,不过如果我们使用命令定义别名,那么这个别名只是临时生效,一旦注销或重启系统,这个别名就马上消失了。为了让这个别名永久生效,可以把别名写入环境变量配置文件~/.bashrc中。命令如下:
[root@localhost~】#vi/root/.bashrc #.bashrc #Userspecificaliasesandfunctions aliasrm='rm-i' aliascp='cp-i' aliasmv='mv-i' aliasvi='vim' aliassto='/usr/local/apache2/bin/apachectlstop'aliassta='/usr/local/apache2/bin/apachectlstart' #Sourceglobaldefinitions if[-f/etc/bashrc];then ./etc/bashrc fi
这样,这些别名就可以永久生效了。那么,环境变量配置文件又是什么呢?所谓环境变量配置文件,顾名思义,就是用来定义我们的操作环境的,别名当然也是操作环境,我们会在后续章节详解介绍这个文件的作用。
设定好的别名可以删除吗?只要执行unalias命令就可以方便地删除别名,命令如下:
[root@localhost~]#unaliasvi
当然,如果确定要删除别名,则也要删除环境变量配置文件中的相关项才可以。
到此这篇关于Shellalias给命令设置别名的实现方法的文章就介绍到这了,更多相关Shellalias命令设置别名内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!