千家信息网

Linux中向$PATH添加目录的步骤是什么

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章的内容主要围绕Linux中向$PATH添加目录的步骤是什么进行讲述,文章内容清晰易懂,条理清晰,非常适合新手学习,值得大家去阅读。感兴趣的朋友可以跟随小编一起阅读吧。希望大家通过这篇文章有所收
千家信息网最后更新 2026年11月03日Linux中向$PATH添加目录的步骤是什么

这篇文章的内容主要围绕Linux中向$PATH添加目录的步骤是什么进行讲述,文章内容清晰易懂,条理清晰,非常适合新手学习,值得大家去阅读。感兴趣的朋友可以跟随小编一起阅读吧。希望大家通过这篇文章有所收获!

大家有没有想过一个问题,在Linux系统中为什么ls命令可以在任何目录下?这和$PATH有着极大的关系$PATH是Linux计算机后台的无声操纵器之一。 它会悄悄地影响您的用户体验,但是没有什么阴暗的地方。 我们将解释它的作用以及如何调整它。

什么是Linux上的$ PATH,它如何工作?

当在终端窗口中键入命令并按Enter时,您甚至在执行命令之前就开始了大量的活动。

Bash是大多数Linux发行版中的默认Shell。 它解释您输入的文本行,并标识与参数, 管道 , 重定向以及任何其他内容混合在一起的命令名称。 然后,找到这些命令的可执行二进制文件,并使用您提供的参数启动它们。

Shell定位可执行文件所采取的第一步是确定是否包含二进制文件。 如果您使用的命令在外壳程序本身( "外壳程序内置" )中,则无需进一步搜索。

Shell内置程序最容易找到,因为它们是Shell不可或缺的。 就像将它们放在工具带中一样-它们始终与您同在。

但是,如果您需要其他工具之一,则必须在车间中翻找才能找到它。 是放在工作台上还是挂在墙上? 这就是$PATH环境变量的作用。 它包含外壳搜索的位置列表以及搜索它们的顺序。

如果要查看命令是内置的Shell,别名,函数还是独立的二进制mv / work / unfile ,则可以使用type命令,如下所示:

 type clear type cd

这告诉我们clear是一个二进制文件,并且在路径中找到的第一个文件位于/usr/bin 。 您的计算机上可能安装了多个版本的clear ,但这是外壳程序将尝试使用的版本。

毫不奇怪, cd是内置的shell。

## 列出您的PATH)

很容易看到您的路径。 只需键入以下命令即可使用echo命令并打印 $PATH变量中保存的值 :

 echo $PATH

输出是结肠的列表( : )分隔的文件系统中的位置。 Shell通过路径从左到右搜索,检查每个文件系统位置是否有匹配的可执行文件来执行命令。

我们可以通过清单选择方法,以查看将要搜索的文件系统位置以及搜索顺序:

  • /usr/local/sbin

    /usr/local/sbin

  • /usr/local/bin

    /usr/local/bin

  • /usr/sbin

    /usr/sbin

  • /usr/bin

    /usr/bin

  • /sbin

    /sbin

  • /bin

    /bin

  • /usr/games

    /usr/games

  • /usr/local/games

    /usr/local/games

  • /snap/bin

    /snap/bin

可能不会立即显而易见的是搜索不在当前工作目录中开始。 而是通过列出的目录(仅列出的目录)工作。

如果当前工作目录不在您的路径中,则不会搜索该目录。 另外,如果您将命令存储在不在路径中的目录中,则Shell将找不到它们。

为了证明这一点,我们创建了一个名为rf的小程序。 执行后, rf在终端窗口中打印从中启动目录的名称。 它位于/usr/local/bin 。 在/dave/work目录中,我们还有一个较新的版本。

我们键入以下which命令, 以向我们展示外壳程序将找到并使用哪个程序版本 :

 which rf

外壳程序报告找到的版本是路径中目录中的版本。

我们输入以下内容来启动它:

 rf

rf 1.0版运行并确认我们的期望是正确的。 找到并执行的版本位于/usr/local/bin 。

要在此计算机上运行其他任何版本的rf ,我们必须在命令行上使用可执行文件的路径,如下所示:

 ./work/rf

既然我们已经告诉Shell在哪里可以找到我们要运行的rf版本,它就使用1.1版。 如果希望使用此版本,可以将其复制到/usr/local/bin目录中并覆盖旧版本。

假设我们正在开发rf的新版本。 在开发和测试它时,我们需要经常运行它,但是我们不想将未发布的开发版本复制到实时环境中。

或者,也许我们已经下载了rf的新版本,并希望在对它进行公开之前对其进行一些验证测试。

如果将工作目录添加到路径,则使外壳程序找到我们的版本。 而且此更改只会影响我们,其他人仍将使用/usr/local/bin的rf版本。

将目录添加到您的PATH)

您可以使用export命令将目录添加到$PATH 。 该目录然后包含在外壳程序搜索的文件系统位置列表中。 当外壳程序找到匹配的可执行文件时,它将停止搜索,因此您需要确保先搜索目录,然后是/usr/local/bin 。

这很容易做到。 对于我们的示例,我们键入以下命令将目录添加到路径的开头,因此它是搜索到的第一个位置:

 export PATH=/home/dave/work:$PATH

此命令将$PATH设置为等于我们要添加的目录/home/dave/work ,然后等于整个当前路径。

第一个PATH没有美元符号( $ )。 我们为PATH设置值。 最后的$PATH具有美元符号,因为我们引用的是存储在PATH变量中的内容。 另外,还要注意冒号( :新目录和之间) $PATH变量名。

让我们看看现在的路径是什么样的:

 echo $PATH

我们的/home/dave/work目录已添加到路径的开头。 我们提供的冒号将路径的其余部分分隔开。

我们键入以下内容以验证我们的rf版本是找到的第一个:

 which rf

布丁中的证明正在运行rf ,如下所示:

 rf

Shell找到版本1.1并从/home/dave/work执行它。

要将目录添加到路径的末尾,只需将其移动到命令的末尾,如下所示:

 export PATH=$PATH:/home/dave/work

永久进行更改 (Making the Changes Permanent)

正如Beth Brooke-Marciniak所说:"成功很好,但成功却是短暂的。" 关闭终端窗口后,对$PATH所做的任何更改都将消失。 要使它们永久存在,必须将export命令放在配置文件中。

将export命令放在.bashrc文件中时,每次打开终端窗口时,它都会设置路径。 与必须登录的SSH会话不同,这些会话称为"交互式"会话。

过去,您需要将export命令放在.profile文件中,以设置登录终端会话的路径。

但是,我们发现,如果将export命令放在.bashrc或.profile文件中,它将正确设置交互式会话和登录终端会话的路径。 您的经验可能有所不同。 为了处理所有可能发生的情况,我们将在两个文件中向您展示如何进行处理。

在/home目录中使用以下命令来编辑.bashrc文件:

 gedit .bashrc

gedit编辑器将打开,并加载.bashrc文件。

滚动到文件的底部,然后添加以下我们先前使用的导出命令:

 export PATH=/home/dave/work:$PATH

保存文件。 接下来,关闭并重新打开终端窗口,或使用dot命令读取.bashrc文件,如下所示:

 . .bashrc . .bashrc

然后,键入以下echo命令以检查路径:

 echo $PATH

这会将/home/dave/work目录添加到路径的开头。

将命令添加到.profile文件的过程是相同的。 键入以下命令:

 gedit .profile

gedit编辑器将在加载.profile文件后启动。

将export命令添加到文件的底部,然后将其保存。 关闭和打开新的终端窗口不足以强制重新读取.profile文件。 为了使新设置生效,您必须注销并重新登录或使用dot命令,如下所示:

 . .profile

## 为所有人设定道路 (Setting the Path for Everyone)

要为使用系统的每个人设置路径,您可以编辑/etc/profile文件。

您将需要使用sudo ,如下所示:

 sudo gedit /etc/profile

gedit编辑器启动时,将export命令添加到文件底部。

保存并关闭文件。 更改将在其他人下次登录时生效。

安全注意事项 (A Note on Security)

确保不要在路径中意外添加冒号" : ",如下所示。

如果这样做,这将首先搜索当前目录,这会带来安全风险。 假设您下载了一个存档文件并将其解压缩到目录中。 您查看文件,然后看到另一个压缩文件。 您再次调用unzip解压缩该存档。

如果第一个档案包含一个名为unzip的可执行文件,它是一个恶意可执行文件,则您可能会意外地启动该文件而不是真正的unzip可执行文件。 发生这种情况是因为外壳程序将首先在当前目录中查找。

因此,键入export命令时请务必小心。 使用echo $ PATH查看它们,并确保它们符合您的期望。

感谢你的阅读,相信你对"Linux中向$PATH添加目录的步骤是什么"这一问题有一定的了解,快去动手实践吧,如果想了解更多相关知识点,可以关注网站!小编会继续为大家带来更好的文章!

文件 命令 目录 路径 版本 搜索 程序 外壳 终端 位置 内容 系统 工作 登录 运行 二进制 变量 冒号 底部 开头 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网新科技 华服互联网科技靠谱吗 上海睿民互联网科技有限公司 亿人帮互联网科技有限公司 云信互联网科技有限公司 互联网科技英文 碳银互联网科技 米客互联网科技 互联网 新科技 国外互联网科技网站 顺网科技2021年互联网排名 滨湖区互联网智能科技产品供应 福州新华互联网科技学校 知乎 世界互联网科技公司市值排名 上海京穆互联网科技有限公司 广东鹅鹅鹅互联网科技有限公司 悟空问答互联网科技 北京军民互联网科技公司 互联网科技创新方面的资料 互联网大会出现的黑科技 喔噻互联网科技有限公司 上海互联网科技有限公司 互联网科技公司发展 华脉科技工业互联网产品 互联网科技公司有风险吗 上海科技产业互联网平台 米泉互联网科技专业怎么样 互联网科技对化妆品行业 互联网科技快速发展优美句子 互联网 科技节活动 微视频大赛
0