我想添加一个目录来搜索我的搜索路径。我知道我必须修改PATH
环境变量。但是,我希望更改是永久性的,以便它始终有效,对于我打开的每个终端(bash)窗口。
https://help.ubuntu.com/community/EnvironmentVariables 有一个令人困惑和可能相互冲突的信息超载
我正在使用Ubuntu 10.04。假设我想将/usr/local/foo
添加到我的PATH
。我应该修改哪个文件(.bashrc
,.profile
,.bash_login
等...)以及新行应该是什么样的?
以下命令添加当前路径的路径:
export PATH=$PATH:/my/custom/path
如果您希望您的设置每次都执行此命令,则可以在许多地方放置它。登录时,将按以下顺序执行以下脚本:
/etc/profile (which starts by loading everything in /etc/profile.d)
~/.profile (which starts by loading ~/.bashrc if you are running bash)
注
~/.profile
仅在~/.bash_profile
和~/.bash_login
不存在时加载。否则,至少bash会改为加载它们。建议使用.profile
而不是bash特定脚本。所以,如果在这些尝试中你创建了.bash_login
,请立即删除它。
只有在运行交互式会话时才会加载~/.bashrc
。 (带有提示的东西,你可以在其中实际输入内容)。
~/.bashrc
一次又一次地加载,每次打开一个新的终端。因此,gnome-terminal中的新选项卡,新的虚拟终端等等。因此,即使您不再次登录,每次打开新Shell时都会加载.bashrc
(从而重置其环境)。
像byobu这样的东西应该真正进入.profile
,(否则它将无法工作;-)
如果你希望它们在交互式会话之外工作,那么路径之类的东西应该进入.profile
。 (当你按下时说 Alt+F2 在GNOME中)
我通过修改~/.profile
让它工作
看起来像添加〜/ bin到我的路径是个坏例子,因为〜/ .profile中已经有代码自动执行,如果目录存在的话。
要将usr/local/foo目录添加到我前进的每个会话的路径中,我在.profile的末尾添加/编辑以下行:
export PATH=$PATH:/usr/local/foo
但是,为了使这个生效,我需要注销并重新登录(只需关闭终端窗口并打开一个新窗口不起作用)。
要重新加载.profile并在不注销/登录的情况下获取更改效果,请运行:
source ~/.profile
您可以添加/etc/environment
的路径,但要注意没有Shell扩展可以工作;变量将按字面设置您输入的字符。
如果你有ohmyzsh通过终端转到你的主目录并输入
nano .zshrc
在文件的最后输入
export PATH =“$ HOME/directory_to_include_in_path /:$ PATH”
最后重新启动终端。为我工作。希望这有用。
您可以修改.bashrc
目录中的$HOME
文件。
在此文件的最后,添加以下行:
export PATH="$HOME/directory_to_include_in_path/:$PATH"
您还可以在.profile
目录中修改$HOME
文件,包括以下行:
PATH="$HOME/directory_to_include_in_path/:$PATH"
这对我有用。