当用户使用全路径执行命令时,shell 将使用该路径来查找此命令。但是,当用户仅指定命令名称时,shell 将按 PATH 变量指定的顺序在目录中搜索该命令。如果在一个目录中找到了该命令,shell 将执行该命令。
缺省路径由系统设置。但是,多数用户会通过修改该路径来添加其他命令目录。与设置环境和访问命令或工具的正确版本有关的许多用户问题都是路径定义错误引起的。
设置 PATH 变量时,请注意以下准则:
如果您的路径中必须包括当前目录(.),请将其放置在最后。将当前目录包括在路径中存在安全风险,因为某些具有恶意的人员可能会将有危害性的脚本或可执行文件隐藏在当前目录中。请考虑改用绝对路径名。
搜索路径应尽可能短。shell 会在该路径中搜索每个目录。如果未找到命令,搜索长目录会降低系统性能。
搜索路径的读取顺序是从左到右,因此,您应当将常用命令的目录放在路径的开头。
确保目录在路径中不重复。
尽可能避免搜索大型目录。将大型目录放在路径的末尾处。
将本地目录放在 NFS 挂载目录之前,以降低 NFS 服务器不响应时系统无响应的概率。此策略还会减少不必要的网络通信流量。