在Ubuntu中设置PATH变量的位置是什么?

时间:2016-06-07 10:28:55

标签: linux bash unix ubuntu path

这是我在为Linux创建命令行应用程序工具时偶然发现的一个非常有趣的问题。不幸的是,关于SO的答案是如此隐藏在其他问题的无数答案中,我决定在SO上为那些想要以编程方式修改PATH的人提出另一个问题。

2 个答案:

答案 0 :(得分:18)

Grzegorz Żur's answer另一个问题非常出色。不幸的是,它隐藏在许多其他答案中。

  

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

     

变量值通常存储在任务列表中   或者在系统或用户的开头运行的shell脚本   会话。如果是shell脚本,则必须使用特定的shell   语法。

     

系统范围

     
      
  1. /etc/environment唯一作业列表。非常适合将/usr/local/something/bin等系统范围的目录添加到PATH   变量或定义JAVA_HOME
  2.   
  3. /etc/xprofile启动X Window System会话时执行Shell脚本。这是为每个登录X Window的用户运行的   系统。对于有效的PATH条目,它是一个不错的选择   每个用户都像/usr/local/something/bin。该文件包含在   其他脚本因此使用POSIX shell语法而不是用户的语法   壳。
  4.   
  5. /etc/profile/etc/profile.d/* Shell脚本。对于仅限shell的系统,这是一个不错的选择。这些文件只能由shell读取。
  6.   
  7. /etc/<shell>.<shell>rc。 Shell脚本。这是一个糟糕的选择,因为它是单壳特定的。
  8.   

此外,/etc/environment不是脚本文件,而是由赋值表达式组成,每行一个。由于此文件存储了系统范围的区域设置和路径设置,因此它是大多数引用选项。 使用/etc/profile不是首选。它的存在仅指向/etc/bash.bashrc并从/etc/profile.d

收集条目
  

用户会话

     
      
  1. ~/.pam_environment。唯一任务列表。在每个用户会话开始时由PAM加载,如果它是X,则无关紧要   Window系统会话或shell。你不能引用其他变量   包括HOMEPATH,因此使用有限。
  2.   
  3. ~/.xprofile Shell脚本。当用户登录X Window System系统时执行此操作。这里定义的变量是可见的   每个X应用程序。使用值扩展PATH的完美选择   例如~/bin~/go/bin或定义用户特定的GOPATH或   NPM_HOME。该文件包含在其他脚本中,因此请使用POSIX shell   语法不是用户shell的语法。您的图形文本编辑器   或者通过快捷方式启动的IDE将看到这些值。
  4.   
  5. ~/.profile Shell脚本。它仅对从终端或终端仿真器启动的程序可见。这是一个不错的选择   仅限shell的系统。
  6.   
  7. ~/.<shell>rc。 Shell脚本。这是一个糟糕的选择,因为它是单壳特定的。
  8.   

答案 1 :(得分:3)

暂时改变:

PATH

对于永久更改,您可以在/ etc / environment文件中添加以下行:

~$ export PATH=$PATH:~/root/scripts