我最近观看的教学视频说将 export PATH="$PATH..." 语句放入 .profile 中,并在终端中手动获取源代码后将“. ~/.profile”也附加到 .bashrc 文件中。但是,当我这样做时,当我打开新选项卡时,它会弄乱我的终端,而不是允许我从路径访问 bin。
这种行为改变了吗?如果是这样,那么哪里是获取我的配置文件的正确位置,以便打开新选项卡或终端窗口可以访问我引用的 bin 文件夹中的相同命令/可执行文件?
主要需要指导以确保对 .profile 的更改不需要在其他地方引用。回答我的问题的人理解并注意到了这一点 - 在下面标记为答案。
已编辑以提高清晰度并修复错别字。
答案1
Ubuntu 具有从 Debian 继承的非标准设置,其.bashrc
文件来源于.profile
:
$ grep -A1 bashrc /etc/skel/.profile
# include .bashrc if it exists
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
fi
因此,如果您随后也.profile
从源头~/.bashrc
获取信息,则会陷入无限循环,这将破坏您的外壳。
向 中添加新目录的正确方法$PATH
是编辑~/.profile
。每次启动新的登录 shell 时都会获取该文件,在 Ubuntu 系统上,当您以图形方式登录时也会获取该文件。在修改~/.profile
以向 中添加内容后$PATH
,更改将在您下次登录时生效。因此,无需创建~/.bashrc
source ~/.profile
,只需注销并重新登录,您的更改就会出现在那里。
答案2
答案是:无处可寻。.profile
每次登录时都会自动执行 source。每次启动交互式终端时都会执行 source。 尝试在 中再次.bashrc
执行 source 是没有用的,这实际上会导致 Ubuntu 上的无限循环,因为是在 中执行的。.profile
.bashrc
.bashrc
.profile
到目前为止,关于你问到的问题,问题是。
对于你真正的问题,X,即bin
在您的 中有一个文件夹PATH
:除了 1) 创建~/bin
(和/或~/.local/bin
),然后 2) 注销并重新登录之外,~/.profile
无需执行其他操作。如果这些目录存在,它们会自动添加到您的 PATH(您可以在 中看到执行此操作的代码)。为了保持整洁,请不要将其他目录添加到您的 PATH,尽管您可以在文件中这样做.profile
。
答案3
export PATH=$PATH':<path>:<another path>'
将路径附加到 PATH 环境变量。它是定位可执行文件(程序)时应使用的路径。
如果您有一个名为“Gloop”的程序/home/<user>/bin
,并且在 bash shell(终端)中的命令提示符下输入Gloop
,它通常不会执行,因为/home/<user>/bin
它不在PATH
变量中,所以 bash 不知道在那里查找程序名称。
因此,您需要转到第一行,并/home/<user>/bin
在 的位置插入您的实际用户名<path>
,然后您可以Gloop
在命令行中输入,它就会启动。
但有时您想要执行一个程序,但不希望它在 PATH 中。
./Gloop
然后,从程序所在的目录中执行操作。我不知道为什么要将 .Profile 的内容附加到 PATH。它通常是空的,所以不会有任何效果!
如果要使对 PATH 环境变量的更改在重新启动后保持不变,请将命令export
以及此答案第一行所需的所有其他内容附加到文件末尾/home/<user>/.bashrc
.bashrc
保存您的个人 bash 环境。每次登录时都会保存sourced
。尝试再看一遍视频,看看作者试图用.Profile