如何在Linux设置PATH环境变量

嵌入式技术

1371人已加入

描述

在命令行上键入命令时,实质是在告诉Shell运行指定可执行文件的名称。在Linux,这些可执行文件可以是lsfindfile等命令。

通常在你的系统会默认设置几个不同的目录。这些目录中存储着具有可执行权限的二进制文件,这些二进制文件都可以在任何目录中运行。

常见目录是/bin/sbin/usr/sbin/usr/local/bin/usr/local/sbin

当您在终端运行命令时,shell程序会在$PATH环境变量包含的目录中搜索命令的可执行文件。

本教程介绍如何在Linux 设置PATH环境变量。你可以使用echo或者printenv打印当前的$PATH变量。

什么是 PATH 环境变量

$PATH环境变量是一个冒号分隔的目录列表,告诉shell哪些目录是用于搜索命令的可执行二进制文件。

您可以使用printenvecho命令查看$PATH包含的目录。两个命令都有相同的输出。

如果您在两个不同的目录中有两个共享相同名称的可执行文件,则Shell将运行从$PATH搜索到的第一个目录执行该文件。

printenv PATH
echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

将目录添加 PATH

在某些情况下,您可能需要添加其他目录$PATH环境变量。例如,某些程序可能安装在不同的目录。

但是为了在不指定可执行文件绝对路径并运行它。因此,您需要将目录添加到$PATH环境变量。

假设您的家目录中有一个bin的目录,要将目录添加到您的$PATH ,请运行命令export PATH="$HOME/bin:$PATH"

现在,您只需键入可执行二进制的文件的名称即可运行应用。但是,此更改只是临时的,仅在当前的Shell会话中有效。

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

持久化PATH

export命令用于设置环境变量,使用export命令设置环境变量仅在当前的shell会话可用。要使更改永久生效,您需要在PATH配置文件设置$PATH环境变量。

在大多数Linux发行版中,当系统启动时,将从etc/environmentetc/profile以及~/.bashrc文件中读取环境变量。

全局的配置文件是etc/environmentetc/profile。如果要为系统所有用户设置$PATH环境变量,请在这两个文件中修改。

当你为指定的用户设置$PATH环境变量时,请在~/.bashrc文件修改$PATH变量,如果使用的是Zsh,则文件是~/.zshrc

在本教程中,我们将在etc/environment文件设置PATH环境变量,也就是为所有用户设置。

例如命令echo export PATH="$HOME/bin:$PATH" | sudo tee -a etc/environment将会把目录$HOME/bin添加到PATH环境变量,使用echo命令和tee命令。

echo PATH="$HOME/bin:$PATH" | sudo tee -a etc/environment

现在我们已经持久化PATH环境变量,如果你没有使用export命令设置PATH,那么当前shell会话PATH环境变量并不会被修改。

你可以使用source命令将加载环境变量到当前的shell会话中。当然也可以使用export命令设置PATH。

要确定是否正确设置PATH环境变量,可以命令echo $PATH,查看当前$PATH环境变量的值。

source ~/.bashrc
echo $PATH

结论

在在Linux 设置PATH环境变量非常简单。这使您可以在任何目录运行你的命令或者应用,且不需要键入可执行文件的完整路径。

相同的说明适用于任何Linux发行版,包括Ubuntu,CentOS,RHEL,Debian和Linux Mint。如有任何疑问,请随时发表评论。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分