一丶liunx分类
linux命令可大致分为三类 内置命令,外部命令及alias命令(别名)(可通过type comment来查询是什么命令)
1 内置命令(builtin),内置命令实际上是shell程序的一部分,包含一些比较简练的liunx系统命令,由shell程序识别并在shell程序内部完成运作。
(注:此为type查询的内部命令)
查询所有激活的内置命令 enable
* [[email protected] ~]# enable
enable .
enable :
enable [
enable cd
... ...*
可以将内置命令禁用,如 enable -n comment (comment代指某一指令,以下皆同)
显示所有已禁用的内部命令 enable -n
若想重新启用已禁掉的内置命令可 enable comment
2 外部命令,外部指令是linux系统中的实用程序部分,由于包含的程序量过大,并不会一开机就被加载入系统内存中,而是在需要时才会被调入内存。(通过shell程序管理外部命令执行的路径查找、加载存放,并控制命令的执行。)
(注:此为type查询的外部命令)
外部命令分为hash缓存命令和路径执行,凡是被执行过的命令会被调入缓存,而这个缓存便是hash,hash记录了你最近所有执行过的外部命令。
显示所有被缓存的命令路径 hash
清空所有的缓存 hash -r
按路径执行又可分为直接输入相关路径执行和输入命令后自动搜索路径执行,自动搜索路径的目录可用echo ¥PATH查看
如上图所示,以冒号为分隔 从左往右搜索,若同一命令在两个文件夹内存在,则将第一个搜寻到的命令存入hash中并执行。
3 alias,alias命令指的是用户设置命令的别名,以简写命令,提高操作效率。
显示所有的别名信息 alias
设置一个别名 alias 别名=‘command -选项 参数‘
删除一个已设置的别名 unalias 别名
二丶优先度
若假设一条命令同时存在于内置命令,外部命令,alias中
直接输入comment进行测试
可得第一个为alias,从别名中删除该命令后测试
第二个为内置命令,将其禁用后再测试
第三个为hash,将缓存删除后最后测试
由此可知根据同一命令在系统中输出的优先度显示分别为alias>内置命令>外部命令(hash>path)
原文地址:http://blog.51cto.com/13570215/2060064