Linux命令类型分为,内部命令、外部命令和别名,当用户执行一个命令时,Linux系统按顺序执行:
1、系统先判断是否是别名,如果是别名则立即执行;
可通过alias命令查看所有别名
如果别名和内部、外部命令重名,优先执行别名,如果不想先执行别名,可用以下方法实现:
\别名
'别名'
2、如果不是别名,判断是否是内部命令,如果是,则立即执行 ;
内部命令是集成在特定shell中的命令,当用户登录时,会自动启用shell,而对应的shell程序中包含常用命令。内部命令可通过enable命令来查看
如何判断一个命令是内部命令还是外部命令,可通过type命令
上图中echo就是内部命令,而hostname、date即外部命令。外部命令是一个独立的可执行文件,所有的外部命令都能在磁盘上找到对应路径。
3、如果不是内部命令,将查询hash对应的缓存区,是否有改命令对应的路径,如果有,按对应路径执行;如果找不到,将按照ATH环境变量指定路径查找,找到并执行,如果变量中有多个目录有该命令,则执行第一个。