命令在Linux中的执行步骤

命令在Linux中的执行分为4步:

第一步:判断路径
判断用户是否以绝对路径或相对路径的方式输入命令(如/bin/ls),如果是的话直接执行。
在Linux中,绝对路径是从/(也被称为根目录)开始的,比如/bin/ls,如果一个路径是从/开始的,它一定是绝对路径,这样就好理解了。
相对路径是以 . 或 … 开始的,。表示用户当前操作所处的位置,而… 表示上级目录;在路径中,.表示用户当前所处的目录,而…上级目录,要把. 和… 当做目录来看。
. 表示用户所处的当前目录
… 表示上级目录;cd…表示进入上级目录
~ 表示当前用户自己的家目录, cd~表示快速切换到用户的家目录

如果你想想别人指路的话,就可以悟出什么是相对的,什么是绝对的
相对的指路方法:从“这儿”向前走,右拐就到了 。
绝对的指路方法:物美超市这条街往前走,第一个路口向东100米(如果物美超市是绝对的位置),绝对的指路方法不依赖于指路的人在什么地方。

第二步:检查别名
Linux系统检查用户输入的命令是否为“别名命令”,即用一个自定义的命令名称来替换原本的命令名称。
可以用alias命令来创建一个属于自己的别名,格式为“alias 别名="命令”。如果想取消一个命令别名,则用unalias格式为“unalias 别名”。

举例:alias vimenss33=“vim /etc/sysconfig/network-scripts/ifcfg-ens33”
然后执行vimenss33就可以进行网卡配置文件了。

第三步:判断内外部
Bash解释器会判断用户输入的命令是内部命令还是外部命令。内部命令是解释器内部的命令,会被直接执行;但是用户在多数时间输入的命令都是外部命令,这些命令交给步骤四继续处理。
可以使用“type 命令名称”来判断用户输入的命令是内部命令还是外部命令。
内部命令:在系统启动时就调入内存,是常驻内存的,所有执行效率高。
外部命令:是系统软件的功能,用户需要是才从硬盘中读入内存。
举例
内部命令:
root@herrychen:~# type pwd
pwd is a shell builtin
root@herrychen:~# type cd
cd is a shell builtin (shell内嵌)
外部命令:
root@herrychen:~# type cat
cat is /bin/cat

第四步:路径查找文件
系统在多个路径中查找用户输入的命令文件,而定义这些路径的变量叫做PATH,可以简单的把它理解为“解释器的小助手”,作用是告诉bash解释器待执行的命令可能存放的位置,
然后Bash解释器就会乖乖地在这些位置中逐个查找。PATH是由多个路径值组成的变量,每个路径值之间用冒号间隔,对这些路径的增加和删除操作将影响到Bash解释器对Linux命令的查找。

注意:不要将当前目录(.)加入到PATH中!!
因为,虽然当前目录是可以加到PATH中的,但是,这样做是不安全的。例如,当黑客在比较常用的公共目录中如/tmp中存放了一个与ls或cd命令同名的木马文件,
而用户又恰巧在公共目录中执行了这些命令,那就GG了。
所以,作为运维人员,当接手一个新的Linux系统后,首先,应该看一下PATH变量中有无可疑的目录。

root@herrychen:~# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

root@herrychen:~# PATH=$PATH:/root/bin

root@herrychen:~# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/root/bin

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值