.bashrc中的export PATH行做什么?


9

我对Linux不太了解,并且在学习本教程后有以下疑问。

我必须修改bashrc文件。该文件包含哪些设置?我认为有些东西与bash shell环境有关,但我不太确定。

我必须插入以下行:

export PATH=$HOME/.local/bin:$HOME/.local/usr/bin:$PATH

这行到底是什么?

我认为该export语句用于创建一个新变量,使其可用于其他程序。

但是这行到底是什么?是PATH可变的,我定义的名字吗?什么$HOME

上一个表达式中and 和section :之间的符号是什么意思?PATH=$HOME/.local/bin$HOME/.local/usr/bin$PATH

这个表达到底是什么意思?


项目之间的:是每个细分的分隔符。没有它,您的道路将是连续不断的运行,将行不通。
Terrance

在Ubuntu中,这种PATH修改已在~/.profile文件中完成,因此在中进行类似的操作有点不一致~/.bashrc。更好的IMO可以~/.profile根据需要修改已有的代码。当前默认~/.profile文件包括以下行:PATH="$HOME/bin:$HOME/.local/bin:$PATH"
Gunnar Hjalmarsson

@GunnarHjalmarsson:在某些情况下,.profile和.bashrc会有所不同。文件.profile是由登录外壳程序而不是子外壳程序解析的。但是由于仍然需要登录才能启动子shell,所以可以,因为子shell将继承$ PATH。.bashrc文件不会由登录外壳程序解析,但将由子外壳程序解析。当您有一些不是登录shell子级的东西(也许是一些花哨的自动化脚本,它调用了git commit钩子之类的其他脚本)时
区别

@slebetman:是的,在台式机的情况下,您不会提到另一个差异:与不同~/.bashrc,它~/.profile是由显示管理器提供的,因此,~/.profile当您从图形环境启动程序时,只有by设置的变量才可用。这很早就发生了,因此对于会话的自动启动过程来说应该没问题。
Gunnar Hjalmarsson

Answers:


16

回顾一下这个问题中提到的所有内容,

export部分

export行意味着您在子进程之后可以访问您声明的变量。换句话说,进程将能够export通过外壳环境访问在关键字之后声明的变量。因此,如果您执行了类似的操作export FOO="BAR",然后在Shell环境中获取了更改,则可以输入$FOO和获取BAR

PATH部分

路径行就像您所说的:它声明了一个PATH为Shell环境命名的变量。在bash环境中,PATH具有定义计算机在何处查找程序的特殊目的。这使您可以键入脚本的自定义命令,而无需键入完整目录。请注意,默认情况下,PATH标记为导出,因此不必重写此行。不过,它没有伤害。

$HOMEPATH变量

在分配给PATH变量的路径的开头$HOME声明。这意味着计算机HOME在读取值时几乎会抓住存储在其中的值并将其复制粘贴到该行的其余部分之前。

所述:两个路径之间在

:相当于句逗号。它只是将三个目录分开。没有这三个目录,控制台将无法识别其接收的命令。这三个位置是最常用于存储脚本/命令文件的三个目录,因此终端应可访问它们,而不必写出文件的完整路径。


好答案!“导出行意味着您在子进程之后可以访问的声明的变量”是这些子进程的父级,是我将在其中运行命令的终端?
vadasambar '19

5

PATH变量使bash知道在哪里查找可执行程序,因此,如果其中包含脚本或其他可执行文件$HOME/.local/bin,则修改PATH将使您像键入ls或一样键入并运行该文件df

export仅意味着使该PATH变量也可用于从bash运行的其他程序。

至于: ,它只是每个目录的分隔符。它与单词列表中的逗号相同,仅此而已。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.