如何在Linux / Unix上永久设置$ PATH?

我试图添加一个目录到我的路径,所以它会一直在我的Linux路径中。 我试过了:

export PATH=$PATH:/path/to/dir

这是有效的,但是每次我退出终端并启动一个新的终端实例时,该路径都会丢失,我需要再次运行导出命令。

我该怎么做,这将永久设置?


您需要将其添加到~/.profile~/.bashrc文件中。

export PATH=$PATH:/path/to/dir

根据你在做什么,你也可能想要符号链接到二进制文件:

cd /usr/bin
sudo ln -s /path/to/binary binary-name

请注意,这不会自动更新会话剩余部分的路径。 要做到这一点,你应该运行:

source ~/.profile 
or
source ~/.bashrc

我不能相信没有人提到/etc/environment文件。 它唯一的目的是存储环境变量。 最初$ PATH变量是在这里定义的。 这是来自我的/etc/environment文件的一个粘贴:

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"

所以你可以打开这个文件作为根,并添加任何你想要的。

要获得即时结果,请运行(以普通用户和root用户身份运行):

source /etc/environment && export PATH

更新:

如果您使用zsh (又名Z Shell),请在/etc/zsh/zshenv的注释之后添加此行:

source /etc/environment

我在Ubuntu 15.10上遇到了这个小怪癖,但是如果你的zsh没有得到正确的PATH ,这可能是原因


有多种方式可以做到这一点。 实际的解决方案取决于目的。

变量值通常存储在分配列表或在系统或用户会话开始时运行的shell脚本中。 在shell脚本的情况下,您必须使用特定的shell语法。

系统广泛

  • /etc/environment唯一分配的列表。 非常适合将/usr/local/something/bin等系统级目录添加到PATH变量或定义JAVA_HOME
  • /etc/xprofile启动X Window系统会话时执行的Shell脚本。 这是为每个登录到X Window System的用户运行的。 对于每个用户(如/usr/local/something/bin有效的PATH条目来说,这是一个不错的选择。 该文件包含在其他脚本中,因此使用POSIX shell语法而不是用户shell的语法。
  • /etc/profile/etc/profile.d/* Shell脚本。 这对于仅有壳的系统来说是个不错的选择。 这些文件只能被shell读取。
  • /etc/<shell>.<shell>rc 。 Shell脚本。 这是一个糟糕的选择,因为它是单个特定的外壳。
  • 用户会话

  • ~/.pam_environment 。 独特分配清单。 在每个用户会话开始时由PAM加载,如果它是X Window系统会话或shell,则无关紧要。 您不能引用其他变量,包括HOMEPATH因此它的使用受到限制。
  • ~/.xprofile Shell脚本。 这是在用户登录到X Window System系统时执行的。 这里定义的变量对每个X应用程序都是可见的。 完美选择使用~/bin~/go/bin GOPATH来扩展PATH ,或者定义特定GOPATH用户的GOPATHNPM_HOME 。 该文件包含在其他脚本中,因此使用POSIX shell语法而不是用户shell的语法。 通过快捷方式启动的图形文本编辑器或IDE将看到这些值。
  • ~/.profile Shell脚本。 只有从终端或终端仿真器启动的程序才可见。 这对于仅壳体系统来说是个不错的选择。
  • ~/.<shell>rc 。 Shell脚本。 这是一个糟糕的选择,因为它是单个特定的外壳。
  • 分发特定文档

  • Ubuntu的
  • ArchLinux的
  • 链接地址: http://www.djcxy.com/p/19179.html

    上一篇: How to permanently set $PATH on Linux/Unix?

    下一篇: How to execute a Ruby script in Terminal?