如何在PATH中添加一个目录?

我如何在Ubuntu中添加一个目录到$PATH,并使之永久化?

对该问题的评论 (1)
解决办法

使用 ~/.profile 来设置 $PATH

.bash_profile中设置的路径只会在bash登录shell中设置(bash -l)。 如果你把你的路径放在.profile中,它将被用于你的整个桌面会话。这意味着即使是metacity也会使用它。

比如说~/.profile

if [ -d "$HOME/bin" ] ; then
  PATH="$PATH:$HOME/bin"
fi

Btw,你可以通过查看一个进程在/proc/[pid]/environ中的环境来检查其PATH变量(用ps axf中的数字替换[pid])。例如,使用grep -z "^PATH" /proc/[pid]/environ

注意。

如果.bash_profile.bash_login存在的话,bash作为一个登录外壳不会解析.profile。从 man bash :

它寻找~/.bash_profile、~/.bash_login和~/.profile,按照这个顺序 顺序,并从存在的第一个命令中读取和执行 并且是可读的。

关于.pam_environment的信息,请参见下面的答案,或者.bashrc用于交互式非登录外壳,或者通过将脚本放入/etc/profile.d/为所有用户设置全局值,或者使用/etc/X11/Xsession.d/来影响显示管理器会话。

评论(11)

在你的主目录中编辑.bashrc并添加以下一行。

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

你需要对你的.bashrc进行源码化,或退出/登录(或重新启动终端),以使更改生效。要获取你的".bashrc "来源,只需输入

$ source ~/.bashrc
评论(8)

推荐的定义永久的、适用于所有用户的*系统范围的环境变量的地方是在。

/etc/environment

(默认的 "PATH "就是在这里定义的)

这将在桌面或控制台、gnome-terminal或TTY中工作,风雨无阻;)

  • 要编辑,按Alt+F2</kbd&gt。 并输入

gksudo gedit /etc/environment (或在你喜欢的文本编辑器中用sudo打开文件)

要进行更改,请运行./etc/environment。 /etc/environment。 因为这个文件只是一个简单的脚本,它将运行并将新路径分配给PATH环境变量。 要检查运行env并在列表中查看PATH`值。

相关链接:

评论(7)

我认为Ubuntu的标准方法是

  • /etc/profile.d/下创建一个新文件

sudo vi /etc/profile.d/SCRIPT_NAME.sh

  • 在那里添加。

export PATH="YOUR_PATH_WITHOUT_TRAILING_SLASH:$PATH"

  • 并赋予它执行权限

sudo chmod a+x /etc/profile.d/SCRIPT_NAME.sh。

评论(1)

对于完全的新手(比如我)来说,对GUI比较适应。

  1. 打开你的$HOME文件夹。
  2. 进入查看显示隐藏文件或按Ctrl

  • H。
  1. 右键点击.profile,点击用文本编辑器打开
  2. 滚动到底部,添加PATH="$PATH:/my/path/foo"。 5.保存。

  3. 退出并重新登录以应用更改(让Ubuntu实际加载.profile)。

评论(6)

用于只对特定用户可用的持久性环境变量。 我强烈推荐Ubuntu官方文档。

https://help.ubuntu.com/community/EnvironmentVariables

参考上面的文档,我通过以下方式设置了我的Android SDK路径工具

  1. 在主目录下创建~/.pam_environment文件。
  2. 其内容为PATH DEFAULT=${PATH}:~/android-sdk-linux/tools

  3. 可以用冒号(:)分隔路径,添加额外的自定义用户路径。

  4. 这需要重新登录,这意味着你需要退出并登录回桌面环境。

评论(1)

把这行放在你的~/.bashrc文件中。

每当你打开终端机时,它就会有源头。

编辑。 根据下面的评论,如果要对所有shell进行更通用的设置(包括在Unity中点击Alt-F2 在Unity中),将这行添加到你的~/.profile文件中。 不过可能不应该同时做这两件事,因为如果你打开终端,路径会被添加两次到你的PATH环境中。

评论(6)

要在系统范围内设置,请在/etc/profile的末尾添加export PATH=/path/you&#39;re/adding:$PATH一行。

要添加只针对登录用户的目录,在~/.bash_profile中添加同样的行。

评论(0)

把它添加到.bashrc中也行,但我认为更传统的设置路径变量的方法是在.bash_profile中添加以下几行。

PATH=$PATH:/my/path/foo
export PATH

根据这个主题,Ubuntu的行为似乎与RedHat和克隆的略有不同。

评论(5)

在终端中,将 "cd "转为 "the_directory_you_want_to_add_in_the_path"。

echo "export PATH=$(pwd):\${PATH}" >> ~/.bashrc

这不是我的主意。 我在这个博客这里找到了这个导出路径的方法。

1:

评论(0)
sudo vi /etc/profile.d/SCRIPT_NAME.sh

加上

export PATH=YOUR_PATH_WITHOUT_TRAILING_SLASH:$PATH
评论(2)

每当我"安装" 我的BASH脚本文件夹时,我都会按照$HOME/bin文件夹的测试模式进行测试,这个测试模式在Ubuntu最新版本的大多数.profile文件中都有。 我设置了一个测试,看起来像

if [ -d "/usr/scripts" ]; then
   PATH="/usr/scripts:$PATH"
fi

它在100%的时间内都能正常工作,并且让我可以在GUI文本编辑器中用快速的"Replace all&quot来改变它。 来改变它。如果我决定把/scripts移到离$HOME文件夹更近的地方,那么我就可以在GUI文本编辑器中用快速的"Replace all"来改变它。 我在6个Ubuntu安装中还没有这样做,但明天总会有的。 S

BZT

评论(0)

推荐的方法是在/etc/environment文件中编辑PATH

/etc/environment的输出示例。

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

例如,添加新路径/home/username/mydir

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/username/mydir"

然后,重新启动电脑。


全系统环境变量

对于影响整个系统(而不仅仅是某个用户)的环境变量设置来说,一个合适的文件是/etc/environment。 另一种方法是在/etc/profile.d目录下创建一个专门的文件。

/etc/environment

这个文件专门用于系统范围内的环境变量设置。 它不是一个脚本文件,而是由赋值表达式组成,每行一个。

注意:变量扩展在/etc/environment中不起作用。

更多信息可以在这里找到。 环境变量][1]

[1]: https://help.ubuntu.com/community/EnvironmentVariables

评论(1)

打开你的终端,输入gedit .profile并插入以下内容。

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$PATH:$HOME/bin"
fi

 #the following line add Bin where you dont have a Bin folder on your $HOME
    PATH="$PATH:/home/mongo/Documents/mongodb-linux-i686-2.2.2/bin"

关闭并打开终端,应该可以工作了。

评论(0)

把它放到你的~/.bashrc或你使用的任何shell中(或者放到前面提到的~/.profile)和~/.xsessionrc中,这样它也能在X中工作(shell外)。

评论(0)

即使系统脚本不使用这个。 在任何情况下,如果要在PATH环境变量中添加一个路径(例如,$HOME/bin),应该使用

PATH="${PATH:+${PATH}:}$HOME/bin"

而不是PATH="$PATH:$HOME/bin")。 和

PATH="$HOME/bin${PATH:+:${PATH}}"

(而不是PATH="$HOME/bin:$PATH")。

这就避免了当$PATH初始为空时出现虚假的前导/后导冒号,这可能会产生不希望看到的效果。

参见例如 https://unix.stackexchange.com/questions/162891/append-to-path-like-variable-without-creating-leading-colon-if-unset

评论(0)

对于Ubuntu来说,编辑~/.bashrc并添加以下一行。

. ~/.bash_profile

然后根据需要编辑你的.bash_profile......。

评论(2)