linux命令流程,Linux命令类型及执行顺序

一、命令分类

Linux命令分为两类,具体为内部命令和外部命令

内部命令:

指shell内部集成的命令,此类命令无需人为安装,开机后自动运行在内存中,命令help查看所有内部命令的详情,如cd、type、echo、time、true等。

外部命令:

指通过外部介质安装的命令工具包,如通过yum、rpm等方式安装,具体安装路径在$PATH下。

命令查看:

type查看命令分类,内部命令显示 shell相关信息,外部命令则显示$PATH路径,如下图:

023e0c1253745816cd1f6ee5634d5d59.png

time属于内部命令,date属于外部命令。

二、命令执行顺序

在命令执行过程中,命令形态主要分为4类:alias别名命令、内部命令、hash缓存命令和外部命令。

实例:echo即是内部命令又是外部命令,以echo为例实验证明其执行顺序

1. 将/bin/echo 复制到/usr/local/bin/下,用which -a查看echo的路径($PATH中/usr/local/bin路径优先于/bin,则echo优先使用/usr/local/bin/下的echo)

80b1d6e7166b4f6e40f8cd219303912f.png

2.查看内部echo,并关闭内部命令的echo,使用echo命令在hash中形成记录,并查看记录

9aa4789b036e88906d5ef22692513865.png

3. 删除/usr/local/bin下的echo,hash中任然存echo的路径/usr/local/bin,再次使用echo “welcome to xi'an”

e33af4a49ee0bac9656963a9c625a95f.png

结论:执行hash中的命令优先$PATH中的命令

4. 开启内部命令echo,再次执行echo “welcome to xi'an”

d78ea4798a7d7f6beb9bd4df37459a18.png

结论:说明内部命令优先于hash缓存命令和外部命令

5. 定义别名alias echo=“hostname”,如果echo 输出是hostname的内容时,则表明alias比内部命令优先

974ab032d1ddaad1c60876104137bd95.png

总结:命令执行顺序为alias——内部命令——hash缓存——外部命令

三、命令分类及查找基本命令

1. type command 查看是否是内部命令

2. which -a| --skip-alias  command  查看所有包含command的路径|不查看别名的路径

3. enable -n command 关闭内部命令

4. hash -l 显示hash缓存 -d 清楚具体缓存命令路径 -r 删除所有命令路径

5. alias 定义别名 ualias取消别名

0b1331709591d260c1c78e86d0c51c18.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值