我想添加一个目录来搜索我的搜索路径。我知道我必须修改PATH
环境变量。但是,我希望更改是永久性的,以便对于我打开的每个终端(bash)窗口始终有效。
https://help.ubuntu.com/community/EnvironmentVariables中有大量令人困惑且可能相互冲突的信息
我正在使用 Ubuntu 10.04。假设我想添加/usr/local/foo
到我的PATH
. 我应该修改哪个文件(.bashrc
, .profile
, .bash_login
, 等...),新行应该是什么样子?
以下命令将路径添加到当前路径:
如果您希望您的设置每次都执行此命令,那么您可以在很多地方放置它。当您登录时,以下脚本将按此顺序执行:
笔记
~/.profile
~/.bash_profile
仅在且不存在 时才加载~/.bash_login
。否则,至少 bash 会加载它们。建议使用.profile
而不是 bash 特定的脚本。因此,如果您在这些尝试中创建了.bash_login
,请立即将其删除。~/.bashrc
仅当您正在运行交互式会话时才加载。(带有提示的东西,您可以在其中实际输入内容)。~/.bashrc
每次打开一个新终端时都会一次又一次地加载。因此,gnome-terminal 中的新选项卡、新的虚拟终端等。因此,即使您不再次登录,.bashrc
每次打开新 shell 时也会加载(从而重置其环境)。像 byobu 这样的东西真的应该进入
.profile
,(否则它不会起作用;-).profile
如果您希望它们在交互式会话之外工作,则应该输入诸如路径之类的东西。(比如当你在 GNOME 中按Alt+时)F2我通过修改让它工作
~/.profile
看起来将 ~/bin 添加到我的路径是一个不好的例子,因为 ~/.profile 中已经有代码可以自动执行此操作(如果目录存在)。
要将 usr/local/foo 目录添加到以后的每个会话的路径中,我在 .profile 末尾添加/编辑以下行:
但是,要使其生效,我需要注销并重新登录(只需关闭终端窗口并打开一个新窗口不起作用)。
要在不注销/登录的情况下重新加载 .profile 并更改效果,请运行:
您可以将路径添加到
/etc/environment
,但请注意,shell 扩展将不起作用;该变量将按字面意思设置为您输入的字符。在设置 PATH 变量之前,您需要了解为什么要设置 PATH 变量。Path 变量是您在终端中发出某些命令时系统尝试搜索的位置。
示例:
whereis ls
命令显示ls
在里面/bin
。该ls
命令仅/bin
在路径变量中注册时才有效。echo $PATH
给出当前注册的位置。如果您想向路径变量添加另一个自定义位置,可以尝试多种方法。将此行添加到
.bashrc
您的主文件夹中的文件中。每次创建新的 bash shell 时都会调用它。这意味着每次打开新终端时都会导出一个新的 Path 变量。但是这个变量只为 bash shells 创建。您可以在其他 shell(ksh、sh、ssh ..)中使用旧的 Path 变量。将此行添加到
.profile
您的主文件夹中的文件中。每次登录时都会调用它。这意味着每次创建会话时都会导出一个新的 Path 变量。随处可见。如果您在主文件夹中找不到
.profile
or.bashrc
文件,请尝试创建一个新文件夹。有时系统不会创建这些文件。ps:在ubuntu中工作。接受任何更正。
您可以修改目录
.bashrc
中的文件$HOME
。在此文件的最后,添加以下行:
您还
.profile
可以在您的$HOME
目录中修改文件,包括以下行:这对我有用。
如果你有 ohmyzsh 通过终端进入你的主目录并输入
nano .zshrc
在文件末尾输入
最后重启你的终端。为我工作。希望这会有所帮助。
这对我有用
设置
JAVA_HOME
变量时在终端中,运行以创建变量
运行以将变量添加到路径
然后
查看变量是否设置正确运行
然后
:q
退出修改 .profile 文件(在更正的情况下)运行
按I插入。
修改后按Esc和
:wq
保存退出。首先在
/etc/profile.d
目录中添加一个shell脚本。下次登录 shell 时,该应用程序将通过直接调用可用。
要使应用程序在当前 shell 中立即可用,请运行以下命令:
通过基础知识,我将建议以下步骤:
/etc/environment
在编辑器中以超级用户身份打开文件,因为它是只读文件,例如 gedit:
export PATH=$PATH:/usr/local/foo
通过运行以下命令刷新环境:
您可以通过执行以下命令进行检查: