IP Address:3.85.92.139


Linux 系统中,如果我们输入了不带路径的命令,那么shell会在系统的PATH列表中的目录里查找对应的可执行文件。这里的PATH路径变量默认是一组常用的目录,而这个变量也可以自行设置为需要的值。

在这个简短的教程里,我们将讨论如何向PATH变量中添加目录以及如何让修改永久生效。虽然没有原生删除PATH默认目录的方法,但是我们也会充分讨论其解决办法。最后,我们还会创建一个脚本,并把它放置于PATH变量的新增目录中,以演示设置PATH路径变量的优势。

文件未设置PATH变量的典型错误

如果在执行命令时未指定其路径,那么Shell会在PAHT变量所存储的目录中进行自左至右的搜索,如果所有目录都没有找到该命令,则会报错提示未找到该命令。当然,我们也可以使用”which”命令来查看PATH变量的内容。示意如下:

当然,即便是在PATH目录是存在该文件,这个文件需要具有可执行权限才能被执行。

显示PATH变量值

可以使用”echo”命令将当前PATH变量的值打印出来:

# echo $PATH

向PATH变量添加目录

如果想要把特定目录添加到系统PATH变量中,那么需要使用”export”命令,例如想把”/dataroot/tools”目录添加到PATH变量中,则使用:

export PATH=$PATH:/dataroot/tools

其中:

  • export:通知bash允许子进程使用系统环境变量
  • PATH:通知bash将设置$PATH变量
  • $PATH:指代当前的PATH变量值
  • :为类Unix的系统分隔符,用于表示不同目录
  • /dataroot/tools:需要添加到PATH变量中的目录

现在,我们就把”/dataroot/tools”目录添加到PATH变量中了,可以再次使用之前的命令查看当前的PATH变量值。

当然,这样的修改是暂时的,如果重新启动主机的话,系统默认PATH变量的内容就会恢复成原来的值,如果想设置自定义目录的话就需要再次添加。

永久修改PATH变量的方法

为了永久修改PATH变量,那么需要修改” ~/.bash_profile”文件,将需要指定的目录添加到文件中。” ~/.bash_profile”文件中的”~”是指用户的家目录,而这个文件会在用户登录时自动加载和读取。

现在,使用如下命令修改” ~/.bash_profile”的内容,将”/dataroot/tools”添加到该文件:

# echo 'export PATH=$PATH:/dataroot/tools' >> ~/.bash_profile
# source ~/.bash_profile

其中”source”命令是指再次加载”~/.bash_profile”文件,相当于重新进入系统,可以看到,PATH变量已经增加了自定义目录,并且重新启动系统,这个设置也不会失效。

从PATH变量中删除目录

如果想删除PATH变量中的目录,就需要配合”sed”命令使用,也可以直接编辑”bash_profile”文件将需要的目录删除。删除PATH变量目录的脚本如下:

# PATH=$(echo "$PATH" | sed -e 's/:\/dataroot\/tools//')

发表评论

电子邮件地址不会被公开。 必填项已用*标注