我正在尝试将路径添加到路径中,因此它始终位于我的Linux路径中。我试过了:
export PATH=$PATH:/path/to/dir
这样可行,但是每次退出终端并启动新的终端实例时,此路径都会丢失,我需要再次运行导出命令。
我该怎么做才能永久设置?
答案 0 :(得分:924)
您需要将其添加到~/.profile
或~/.bashrc
文件中。
export PATH="$PATH:/path/to/dir"
根据您正在做的事情,您可能还想要符号链接到二进制文件:
cd /usr/bin
sudo ln -s /path/to/binary binary-name
请注意,这不会自动更新会话剩余时间的路径。要执行此操作,您应该运行:
source ~/.profile
or
source ~/.bashrc
答案 1 :(得分:227)
在Ubuntu中,修改/etc/environment
。其唯一目的是存储环境变量。最初$ PATH变量在这里定义。
这是我/etc/environment
文件中的粘贴:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
因此,您只需以root身份打开此文件并添加所需内容即可。
对于即时结果, 运行(尝试普通用户和 root):
source /etc/environment && export PATH
<强>更新强>
如果您使用zsh
(a.k.a Z Shell),请在/etc/zsh/zshenv
中的评论后立即添加此行:
source /etc/environment
我在Ubuntu 15.10上遇到了这个小小的怪癖,但是如果你的 zsh 没有得到正确的 PATH ,这可能就是为什么
答案 2 :(得分:143)
有多种方法可以做到这一点。实际的解决方案取决于目的。
变量值通常存储在分配列表或在系统或用户会话开始时运行的shell脚本中。如果是shell脚本,则必须使用特定的shell语法。
/etc/environment
唯一作业列表。非常适合添加系统范围的目录,例如/usr/local/something/bin
到PATH
变量或定义JAVA_HOME
。/etc/xprofile
启动X Window System会话时执行Shell脚本。这是针对登录X Window System的每个用户运行的。对于PATH
等每个用户都有效的/usr/local/something/bin
条目,这是一个不错的选择。该文件包含在其他脚本中,因此请使用POSIX shell语法而不是用户shell的语法。/etc/profile
和/etc/profile.d/*
Shell脚本。对于仅限shell的系统,这是一个不错的选择。这些文件只能由shell读取。/etc/<shell>.<shell>rc
。 Shell脚本。这是一个糟糕的选择,因为它是单壳特定的。~/.pam_environment
。唯一任务列表。如果是X Window System会话或shell,则在每个用户会话开始时由PAM加载无关紧要。您无法引用其他变量,包括HOME
或PATH
,因此其使用受限。~/.xprofile
Shell脚本。当用户登录X Window System系统时执行此操作。这里定义的变量对每个X应用程序都是可见的。使用PATH
或~/bin
等值定义~/go/bin
或定义特定于用户的GOPATH
或NPM_HOME
的完美选择。该文件包含在其他脚本中,因此使用POSIX shell语法而不是用户shell的语法。您通过快捷方式启动的图形文本编辑器或IDE将看到这些值。~/.profile
Shell脚本。它仅对从终端或终端仿真器启动的程序可见。对于仅限shell的系统来说,它是一个不错的选择。~/.<shell>rc
。 Shell脚本。这是一个糟糕的选择,因为它是单壳特定的。答案 3 :(得分:67)
将export
声明放在~/.bashrc
中。我的.bashrc包含这个:
export PATH=/var/lib/gems/1.8/bin:/home/fraxtil/.bin:$PATH
答案 4 :(得分:29)
您可以通过两种方式永久设置$PATH
。
为特定用户设置路径:
您可能需要在用户的主目录中的.bash_profile
中进行输入。
例如在我的情况下,我将在tomcat用户配置文件中设置java路径
[tomcat]$ echo "export PATH=$PATH:/path/to/dir" >> /home/tomcat/.bash_profile
要为所有系统用户设置公共路径,您可能需要设置如下路径:
[root~]# echo "export PATH=$PATH:/path/to/dir" >> /etc/profile
答案 5 :(得分:12)
您可以在Centos或RHEL上使用本地用户:
echo $"export PATH=\$PATH:$(pwd)" >> ~/.bash_profile
这会将当前目录(或者您可以使用其他目录)添加到PATH,这会使其成为永久性目录,但会在下次用户登录时生效。
如果您不想重新登录,可以使用:
source ~/.bash_profile
重新加载# User specific environment and startup programs
此评论出现在.bash_profile
答案 6 :(得分:9)
您也可以永久设置,编辑其中一个文件:
/etc/profile
(适用于所有用户)
~/.bash_profile
(对于当前用户)
~/.bash_login
(对于当前用户)
~/.profile
(对于当前用户)
您也可以使用/etc/environment
设置永久PATH环境变量,但它不支持变量扩展。
摘自:http://www.sysadmit.com/2016/06/linux-anadir-ruta-al-path.html
答案 7 :(得分:6)
我认为最优雅的方式是:
1.在〜/ .bashrc文件中添加此内容 运行此命令
gedit~ / .bashrc
在其中添加您的路径
export PATH = $ PATH:/ opt / node / bin
2.source~ / .bashrc
(Ubuntu的)
答案 8 :(得分:6)
昨天我在寻找一种方法将一个包含我自己的脚本的文件夹添加到PATH时偶然发现了这个问题 - 并且惊讶地发现我自己的~/.profile
文件(在Linux Mint 18.1上)已经包含了这个:
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
因此,我所要做的就是创建文件夹~/bin
并将我的脚本放在那里。
答案 9 :(得分:6)
您可以将该行添加到控制台配置文件(例如.bashrc)或.profile
答案 10 :(得分:3)
添加导出命令的文件取决于您是处于登录模式还是非登录模式。
如果您处于登录模式,您要查找的文件是/ etc / bash或/etc/bash.bashrc
如果您处于非登录模式,则需要查找文件/.profile或目录/.profiles.d中的文件
上面提到的文件,如果系统变量在哪里。
答案 11 :(得分:3)
我的回答是关于go-lang
Ubuntu linux/amd64
的设置。我遇到了设置环境变量路径的同样问题(GOPATH
和{{1} }),在终端退出时丢失它并每次使用GOBIN
重建它。错误是将路径(source <file_name>
和GOPATH
)放在GOBIN
文件夹中。在浪费了几个小时之后,我发现解决方案是将~/.bash_profile
和GOPATH
置于GOBIN
文件中:
~/.bash_rc
这样做,go安装工作正常,没有路径损失。
编辑1:
与此问题相关的原因是,非登录shell(如ubuntu终端或运行go代码的gnome-terminal)的设置取自export GOPATH=$HOME/go
export GOBIN=$GOPATH/bin
export PATH=$PATH:$GOPATH:$GOBIN
文件,登录shell的设置取自{ {1}}文件,如果~./bash_rc
文件无法访问,则来自~/.bash_profile
文件。
答案 12 :(得分:3)
Zues77有正确的想法。 OP没有说&#34;我怎么能通过这个&#34;来破解我的方式。 OP想知道如何永久追加$ PATH:
sudo nano /etc/profile
这是为所有内容设置的地方,也是为需要$ PATH的所有内容更改它的最佳位置
答案 13 :(得分:3)
永久添加PATH变量
全局:
echo "export PATH=$PATH:/new/path/variable" >> /etc/profile
本地(仅限用户):
echo "export PATH=$PATH:/new/path/variable" >> ~/.profile
全局重启。对于本地重新登录。
示例强>
<强>之前:强>
$ cat /etc/profile
#!/bin/sh
export PATH=/usr/bin:/usr/sbin:/bin:/sbin
<强>后:强>
$ cat /etc/profile
#!/bin/sh
export PATH=/usr/bin:/usr/sbin:/bin:/sbin
export PATH=/usr/bin:/usr/sbin:/bin:/sbin:/new/path/variable
您也可以只修改个人资料:
$ cat /etc/profile
#!/bin/sh
export PATH=/usr/bin:/usr/sbin:/bin:/sbin:/new/path/variable
另一种方式(感谢gniourf_gniourf):
echo 'PATH=$PATH:/new/path/variable' >> /etc/profile
你不应该在这里使用双引号! echo'export PATH = $ PATH:/ new / path / variable'...顺便说一下,export关键字 很可能没用,因为PATH变量很可能已经存在 标记为已导出。 - gniourf_gniourf
答案 14 :(得分:2)
使用第/etc/profile.d
行添加到[name_of_script].sh
文件夹脚本export PATH=$PATH:/dir
。 /etc/profile.d
文件夹中的每个脚本都会在登录时由/etc/profile
自动执行。
答案 15 :(得分:2)
1。修改“ / etc / profile”文件。
#vi /etc/profile
按“ i”键进入编辑状态并将光标移至文件末尾,其他条目:
export PATH=$PATH:/path/to/dir;
按“ Esc”键退出编辑状态,':wq'保存文件。
2。使配置生效
source /etc/profile
说明: 配置文件适用于所有用户,如果您只想对活动用户有效,请设置“ .bashrc”文件
答案 16 :(得分:2)
经过大量研究,在以下elementary OS的启发下,我找到了一个简单的解决方案(我正在使用link)。
运行以下命令以编辑模式打开.bashrc文件。 [您 也可以使用vi或其他任何编辑器]。
~$ sudo nano ~/.bashrc
在文件末尾添加以下行并保存。
export PATH="[FLUTTER_SDK_PATH]/flutter/bin:$PATH"
例如:
export PATH="/home/rageshl/dev/flutter/bin:$PATH"
我相信这是永久解决方案,用于在Ubuntu发行版中设置抖动的路径
希望这会有所帮助。
答案 17 :(得分:1)
我认为最优雅的方式是:
1.在〜。/ bashrc 文件
中添加此内容if [ -d "new-path" ]; then
PATH=$PATH:new-path
fi
2.source 〜/ .bashrc
(Ubuntu的)
答案 18 :(得分:1)
最简单的方法是以下几行:
PATH="<directory you want to include>:$PATH"
在主目录的.bashrc文件中。
即使关闭终端或重启PC也不会重置。它的永久性
答案 19 :(得分:0)
添加永久路径的一种方法,对我有用,是: cd /etc/profile.d 触摸custom.sh vi custom.sh export PATH = $ PATH:/ path根据你的设置/ 重新启动计算机,我们在这里永久地路径 欢呼声。
答案 20 :(得分:0)
对于debian发行,您必须:
- edit ~/.bashrc e.g: vim ~/.bashrc
- add export PATH=$PATH:/path/to/dir
- then restart your computer. Be aware that if you edit ~/.bashrc as root, your environment variable you added will work only for root
答案 21 :(得分:0)
Homebrew
选中此video
或
下面的步骤
Step 1:
复制 上方屏幕截图
中显示的 URL /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
粘贴在终端中复制了 URL ,然后按回车/输入键
一旦完成并完成自制软件,请按照步骤2:
Step 2:
从https://www.terraform.io/downloads.html 提取下载的 zip terraform文件
现在您将在下载的文件夹中拥有一个文件名terraform
例如
/Users/username/downloads/terraform
Step 3:
打开一个terminal
cd:将目录更改为/Users/username/downloads/terraform
Step 4:
运行 brew install terraform
在终端
答案 22 :(得分:0)
假设您正在运行MacOS,并且拥有一个值得信任的二进制文件,并且希望在整个系统中使用该二进制文件,但不一定要将该二进制文件添加到PATH的目录,则可以选择将二进制文件复制/移动到'how (Middle English (1100-1500))'
中,该文件应该已经在您的PATH中。这将使二进制可执行文件像您可能已经在终端中访问的任何其他二进制文件一样。
答案 23 :(得分:0)
这是单线。它将一行添加到.bashrc
。 Tha行将检查目录是否已添加到路径,如果没有,则追加。这样可以防止每次您获取.bashrc
时都在路径中复制目录。
echo "[[ \":\$PATH:\" != *\":$(pwd)/path/to/add:\"* ]] && export PATH=\"\${PATH:+\${PATH}}:$(pwd)/path/to/add\"" >> ~/.bashrc
source ~/.bashrc
答案 24 :(得分:-2)
可以使用以下命令直接添加:
echo'export PATH = $ PATH:/ new / directory'&gt;&gt; 〜/ .zshrc 来源〜/ .zshrc