命令在Linux中的执行步骤

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

第一步:判断路径
判断用户是否以绝对路径或相对路径的方式输入命令(如/bin/ls),如果是的话直接执行。

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

第三步:判断内外部
Bash解释器会判断用户输入的命令是内部命令还是外部命令。内部命令是解释器内部的命令,会被直接执行;但是用户在多数时间输入的命令都是外部命令,这些命令交给步骤四继续处理。
可以使用“type 命令名称”来判断用户输入的命令是内部命令还是外部命令。

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

注意:不要将当前目录(.)加入到PATH中!!
因为,虽然当前目录是可以加到PATH中的,但是,这样做是不安全的。例如,当黑客在比较常用的公共目录中如/tmp中存放了一个与ls或cd命令同名的木马文件,而用户又恰巧在公共目录中执行了这些命令,那就GG了。

所以,作为运维人员,当接手一个新的Linux系统后,首先,应该看一下PATH变量中有无可疑的目录。

原文地址:https://www.cnblogs.com/lpeng94/p/12546445.html