豁然高

导航

linux命令的别名及命令的执行

查看命令是否是别名

linux命令往往有默认的选项和参数,而这些默认的选项或者参数往往是通过别名来实现的。

如rm命令,就是rm -i的别名。

如何查看某条命令是不是别名呢,可以通过alias或者type来查看

alias 命令
type 命令

如下

[root@localhost vagrant]# alias rm
alias rm='rm -i'
[root@localhost vagrant]# type rm
rm is aliased to `rm -i'
[root@localhost vagrant]# 

 

 

创建别名

alias 别名='命令 选项' 
alias rm='rm -i'

删除别名

unalias 别名
unalias rm

 

[root@localhost vagrant]# alias rm   //查看rm是否是别名
alias rm='rm -i'
[root@localhost vagrant]# type rm   //查看rm是否是别名
rm is aliased to `rm -i'
[root@localhost vagrant]# unalias rm  //删除别名rm
[root@localhost vagrant]# alias rm   //再查看rm是不是别名
bash: alias: rm: not found    //别名rm不存在
[root@localhost vagrant]# type rm  
rm is /bin/rm
[root@localhost vagrant]# alias rm='rm -i'  //创建别名
[root@localhost vagrant]# alias rm   //再查看rm是不是别名
alias rm='rm -i'
[root@localhost vagrant]# 

 

结论: 命令的别名和命令本身可以重名,当有别名时,首先会执行别名而不是命令本身。

           命令的默认选项往往是通过创建同名别名来实现的,通过查看别名便可知道命令的默认选项

 

命令的执行

我们执行某条命令时,有时会输入完整的命令路径,而有时只是简单的输入命令

完整的命令路径其实就是命令的执行文件,这种情况下会直接执行文件

而简单的输入命令则有两种情况,如果是内部命令,则直接直接从内存中读取并执行,

如果不是内部命令,及外部命名,则会在PATH 变量包含的多个路径中逐个查找,直到找到并执行,找不到则提示该命令不存在。

 

内部命令和外部命令

内部命令由 Shell 自带,会随着系统启动,可以直接从内存中读取;内部命令指的是解释器内部的命令,会被直接执行;

而外部命令仅是在系统中有对应的可执行文件,执行时需要读取该文件。

上面说的直接输入可执行文件的路径和在PATH变量的路径中查找命令的可执行文件都属于外部命令

判断内部命令和外部命令

type 命令
[root@localhost vagrant]# type pwd   //内部命令
pwd is a shell builtin
[root@localhost vagrant]# type top  //外部命令
top is /bin/top

 

posted on 2019-10-21 12:18  豁然高  阅读(890)  评论(0编辑  收藏  举报