Linux之搜索路径PATH


外部和内部命令

shell的命令分为两种:内部命令和外部命令

  • 内部命令:简称builtin,由shell自身解析并执行,在shell自己的进程内执行
  • 外部命令:shell会去搜索路径中检索相应的程序,然后新开一个进程去执行该命令。

如果要查看一个命令是外部还是内部命令,可以使用type,语法如下

type command

例如

type date time set

输出为:

date is /usr/bin/date
time is a shell keyword
set is a shell builtin

其中date是外部命令


搜索路径PATH

shell在执行外部命令时,回去指定的路径查找程序,这个路径存放在环境变量PATH中,称为搜索路径。可以使用echo命令查看内容

echo $PATH

修改PATH

对于Bash,可以使用如下命令来修改

export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin"

其中每个路径间使用冒号:隔开

不过我们通常只需要新增路径,不会去修改里面的内容,所以通常我们会这么写

export PATH="$PATH:/xxx/bin"

这样就可以将/xxx/bin添加到搜索路径的末尾。shell是依次去查找搜索路径的,如果你的命令正好与已有的命令重名,也可以添加到开头。

为了方便,可以将当前工作目录也添加到搜索路径中,但是对于系统管理员用户最好不要这么做,容易出事。

export PATH="$PATH:."

tip:双引号为弱引用,会保留美元$、反斜杠\、反引号`的特殊含义

Logo

更多推荐