我正在尝试将路径添加到我的路径中,因此它将始终位于我的Linux路径中 . 我试过了:
export PATH=$PATH:/path/to/dir
这是有效的,但每次我退出终端并启动一个新的终端实例时,此路径都会丢失,我需要再次运行导出命令 .
我怎么能这样做,这将永久设置?
您可以将该行添加到控制台配置文件(例如.bashrc)或.profile
您还可以永久设置,编辑以下文件之一:
/etc/profile (适用于所有用户)
/etc/profile
~/.bash_profile (对于当前用户)
~/.bash_profile
~/.bash_login (适用于当前用户)
~/.bash_login
~/.profile (对于当前用户)
~/.profile
您也可以使用 /etc/environment 设置永久PATH环境变量,但 it does not support variable expansion .
/etc/environment
摘自:http://www.sysadmit.com/2016/06/linux-anadir-ruta-al-path.html
使用以下行添加到 /etc/profile.d 文件夹脚本 [name_of_script].sh : export PATH=$PATH:/dir . /etc/profile.d 文件夹中的每个脚本都是由 /etc/profile 在登录时自动执行的 .
/etc/profile.d
[name_of_script].sh
export PATH=$PATH:/dir
添加永久路径的一种方法,对我来说,是:cd /etc/profile.d touch custom.sh vi custom.sh export PATH = $ PATH:/ path根据你的设置/重启你的电脑,这里我们走的路径会不会有永久的欢呼声 .
在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
UPDATE:
如果您使用 zsh (a.k.a Z Shell),请在 /etc/zsh/zshenv 中的注释后面添加此行:
zsh
/etc/zsh/zshenv
source /etc/environment
我在Ubuntu 15.10上遇到了这个小怪癖,但如果你的 zsh 没有得到正确的 PATH ,这可能就是为什么
添加导出命令的文件取决于您是处于登录模式还是非登录模式 .
如果您处于登录模式,您要查找的文件是/ etc / bash或/etc/bash.bashrc
如果您处于非登录模式,则需要查找文件/.profile或目录/.profiles.d中的文件 .
上面提到的文件,如果系统变量在哪里 .
将 export 声明放在 ~/.bashrc 中 . 我的.bashrc包含这个:
export
~/.bashrc
export PATH=/var/lib/gems/1.8/bin:/home/fraxtil/.bin:$PATH
我认为最优雅的方式是:
1.在〜/ .bashrc文件中添加此命令运行此命令
gedit~ / .bashrc
在其中添加您的路径
export PATH = $ PATH:/ opt / node / bin
2.source~ / .bashrc
(Ubuntu的)
Permanently add PATH variable
全球:
echo "export PATH=$PATH:/new/path/variable" >> /etc/profile
本地(仅限用户):
echo "export PATH=$PATH:/new/path/variable" >> ~/.profile
对于 global 重启 . 对于 local relogin .
Example
Before:
$ cat /etc/profile #!/bin/sh export PATH=/usr/bin:/usr/sbin:/bin:/sbin
After:
$ cat /etc/profile #!/bin/sh export PATH=/usr/bin:/usr/sbin:/bin:/sbin export PATH=/usr/bin:/usr/sbin:/bin:/sbin:/new/path/variable
Alternatively you can just edit profile:
$ cat /etc/profile #!/bin/sh export PATH=/usr/bin:/usr/sbin:/bin:/sbin:/new/path/variable
Another way(thanks gniourf_gniourf):
echo 'PATH=$PATH:/new/path/variable' >> /etc/profile
你不应该在这里使用双引号! echo'export PATH = $ PATH:/ new / path / variable'...顺便说一下,export关键字很可能没用,因为PATH变量很可能已标记为已导出 . - gniourf_gniourf
对于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
Zues77有正确的想法 . OP没有说“我怎么能破解我的方式” . OP想知道如何永久追加$ PATH:
sudo nano /etc/profile
这是为所有东西设置的地方,也是改变所有需要$ PATH的东西的最佳位置
You need to add it to your ~/.profile or ~/.bashrc file.
export PATH="$PATH:/path/to/dir"
根据您正在做的事情,您还可能想要符号链接到二进制文件:
cd /usr/bin sudo ln -s /path/to/binary binary-name
Note that this will not automatically update your path for the remainder of the session. 要做到这一点,你应该运行:
source ~/.profile or source ~/.bashrc
您可以在Centos或RHEL上使用本地用户:
echo $"export PATH=\$PATH:$(pwd)" >> ~/.bash_profile
这将当前目录(或者您可以使用其他目录)添加到PATH,这使其成为永久性但在下次用户登录时生效 .
如果您不想重新登录,那么可以使用:
source ~/.bash_profile
重新加载 # User specific environment and startup programs 此评论出现在 .bash_profile
# User specific environment and startup programs
.bash_profile
可以使用以下命令直接添加它:
echo'export PATH = $ PATH:/ new / directory'>>〜/ .zshrc source~ / .zshrc
您可以通过两种方式永久设置 $PATH .
$PATH
例如在我的情况下,我将在tomcat用户配置文件中设置java路径
[tomcat]$ echo "export PATH=$PATH:/path/to/dir" >> /home/tomcat/.bash_profile
[root~]# echo "export PATH=$PATH:/path/to/dir" >> /etc/profile
我的回答是关于在 Ubuntu linux/amd64 上设置 go-lang . 我遇到了设置环境变量路径( GOPATH 和 GOBIN )同样的问题,在终端退出时丢失了它并且每次都使用_232313重建它 . 错误是把路径( GOPATH 和 GOBIN )放在 ~/.bash_profile 文件夹中 . 在浪费了几个小时之后,我发现解决办法是将 GOPATH 和 GOBIN 放在 ~/.bash_rc 文件中:
Ubuntu linux/amd64
go-lang
GOPATH
GOBIN
~/.bash_rc
export GOPATH=$HOME/go export GOBIN=$GOPATH/bin export PATH=$PATH:$GOPATH:$GOBIN
这样做,安装工作正常,没有路径损失 .
编辑1:与此问题相关的原因是,非登录shell的设置(如ubuntu终端或gnome-terminal,我们运行go代码)来自 ~./bash_rc 文件,登录shell的设置取自 ~/.bash_profile 文件,来自如果 ~/.bash_profile 文件无法访问 ~/.profile 文件 .
~./bash_rc
昨天我在找到一种方法将一个包含我自己的脚本的文件夹添加到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 并将我的脚本放在那里 .
~/bin
有多种方法可以做到这一点 . 实际的解决方案取决于目的 .
变量值通常存储在分配列表或在系统或用户会话开始时运行的shell脚本中 . 对于shell脚本,您必须使用特定的shell语法 .
/etc/environment 唯一作业列表 . 非常适合添加系统范围的目录,如 /usr/local/something/bin 到 PATH 变量或定义 JAVA_HOME .
/usr/local/something/bin
PATH
JAVA_HOME
/etc/xprofile 启动X Window System会话时执行Shell脚本 . 这适用于登录X Window System的每个用户 . 对于像 /usr/local/something/bin 这样的每个用户都有效的 PATH 条目是一个不错的选择 . 该文件包含在其他脚本中,因此请使用POSIX shell语法而不是用户shell的语法 .
/etc/xprofile
/etc/profile 和 /etc/profile.d/* Shell脚本 . 对于仅限shell的系统,这是一个不错的选择 . 这些文件只能由shell读取 .
/etc/profile.d/*
/etc/<shell>.<shell>rc . Shell脚本 . 这是一个糟糕的选择,因为它是单壳特定的 .
/etc/<shell>.<shell>rc
~/.pam_environment . 唯一作业列表 . 如果它是X Window系统会话或shell,则在每个用户会话开始时由PAM加载无关 . 您不能引用其他变量,包括 HOME 或 PATH ,因此它的使用有限 .
~/.pam_environment
HOME
~/.xprofile Shell脚本 . 当用户登录X Window System系统时执行此操作 . 这里定义的变量对每个X应用程序都是可见的 . 使用 ~/bin 或 ~/go/bin 等值扩展 PATH 或定义用户特定的 GOPATH 或 NPM_HOME 的完美选择 . 该文件包含在其他脚本中,因此请使用POSIX shell语法而不是用户shell的语法 . 您通过快捷方式启动的图形文本编辑器或IDE将查看这些值 .
~/.xprofile
~/go/bin
NPM_HOME
~/.profile Shell脚本 . 它仅对从终端或终端仿真器启动的程序可见 . 对于仅限shell的系统,它是一个不错的选择 .
~/.<shell>rc . Shell脚本 . 这是一个糟糕的选择,因为它是单壳特定的 .
~/.<shell>rc
Ubuntu
archlinux
1.在~./bashrc文件中添加此内容
if [ -d "new-path" ]; then PATH=$PATH:new-path fi
最简单的方法是以下行:PATH="<directory you want to include>:$PATH"在主目录中的.bashrc文件中 .即使关闭终端或重新启动PC,也不会重置 . 它的永久性
PATH="<directory you want to include>:$PATH"
1.modify“/ etc / profile”文件 .
#vi /etc/profile
按“i”键进入编辑状态并将光标移动到文件末尾,附加条目:
export PATH=$PATH:/path/to/dir;
按“Esc”键退出编辑状态,':wq'保存文件 .
2.使配置有效
source /etc/profile
说明:配置文件适用于所有用户,如果您只想对活动用户有效,请设置“.bashrc”文件
21 回答
您可以将该行添加到控制台配置文件(例如.bashrc)或.profile
您还可以永久设置,编辑以下文件之一:
/etc/profile
(适用于所有用户)~/.bash_profile
(对于当前用户)~/.bash_login
(适用于当前用户)~/.profile
(对于当前用户)您也可以使用
/etc/environment
设置永久PATH环境变量,但 it does not support variable expansion .摘自:http://www.sysadmit.com/2016/06/linux-anadir-ruta-al-path.html
使用以下行添加到
/etc/profile.d
文件夹脚本[name_of_script].sh
:export PATH=$PATH:/dir
./etc/profile.d
文件夹中的每个脚本都是由/etc/profile
在登录时自动执行的 .添加永久路径的一种方法,对我来说,是:cd /etc/profile.d touch custom.sh vi custom.sh export PATH = $ PATH:/ path根据你的设置/重启你的电脑,这里我们走的路径会不会有永久的欢呼声 .
在Ubuntu中,编辑
/etc/environment
. 其唯一目的是存储环境变量 . 最初$ PATH变量在这里定义 . 这是我的/etc/environment
文件的粘贴:所以你可以只以root身份打开这个文件并添加你想要的任何内容 .
对于立即结果,运行(尝试普通用户和root):
UPDATE:
如果您使用
zsh
(a.k.a Z Shell),请在/etc/zsh/zshenv
中的注释后面添加此行:我在Ubuntu 15.10上遇到了这个小怪癖,但如果你的 zsh 没有得到正确的 PATH ,这可能就是为什么
添加导出命令的文件取决于您是处于登录模式还是非登录模式 .
如果您处于登录模式,您要查找的文件是/ etc / bash或/etc/bash.bashrc
如果您处于非登录模式,则需要查找文件/.profile或目录/.profiles.d中的文件 .
上面提到的文件,如果系统变量在哪里 .
将
export
声明放在~/.bashrc
中 . 我的.bashrc包含这个:我认为最优雅的方式是:
1.在〜/ .bashrc文件中添加此命令运行此命令
在其中添加您的路径
2.source~ / .bashrc
(Ubuntu的)
Permanently add PATH variable
全球:
本地(仅限用户):
对于 global 重启 . 对于 local relogin .
Example
Before:
After:
Alternatively you can just edit profile:
Another way(thanks gniourf_gniourf):
对于debian发行,你必须:
Zues77有正确的想法 . OP没有说“我怎么能破解我的方式” . OP想知道如何永久追加$ PATH:
这是为所有东西设置的地方,也是改变所有需要$ PATH的东西的最佳位置
You need to add it to your ~/.profile or ~/.bashrc file.
根据您正在做的事情,您还可能想要符号链接到二进制文件:
Note that this will not automatically update your path for the remainder of the session. 要做到这一点,你应该运行:
您可以在Centos或RHEL上使用本地用户:
这将当前目录(或者您可以使用其他目录)添加到PATH,这使其成为永久性但在下次用户登录时生效 .
如果您不想重新登录,那么可以使用:
重新加载
# User specific environment and startup programs
此评论出现在.bash_profile
可以使用以下命令直接添加它:
echo'export PATH = $ PATH:/ new / directory'>>〜/ .zshrc source~ / .zshrc
您可以通过两种方式永久设置
$PATH
..bash_profile
中创建条目 .例如在我的情况下,我将在tomcat用户配置文件中设置java路径
我的回答是关于在
Ubuntu linux/amd64
上设置go-lang
. 我遇到了设置环境变量路径(GOPATH
和GOBIN
)同样的问题,在终端退出时丢失了它并且每次都使用_232313重建它 . 错误是把路径(GOPATH
和GOBIN
)放在~/.bash_profile
文件夹中 . 在浪费了几个小时之后,我发现解决办法是将GOPATH
和GOBIN
放在~/.bash_rc
文件中:这样做,安装工作正常,没有路径损失 .
编辑1:与此问题相关的原因是,非登录shell的设置(如ubuntu终端或gnome-terminal,我们运行go代码)来自
~./bash_rc
文件,登录shell的设置取自~/.bash_profile
文件,来自如果~/.bash_profile
文件无法访问~/.profile
文件 .昨天我在找到一种方法将一个包含我自己的脚本的文件夹添加到PATH时偶然发现了这个问题 - 并且惊讶地发现我自己的
~/.profile
文件(在Linux Mint 18.1上)已经包含了这个:因此,我所要做的就是创建文件夹
~/bin
并将我的脚本放在那里 .有多种方法可以做到这一点 . 实际的解决方案取决于目的 .
变量值通常存储在分配列表或在系统或用户会话开始时运行的shell脚本中 . 对于shell脚本,您必须使用特定的shell语法 .
系统范围
/etc/environment
唯一作业列表 . 非常适合添加系统范围的目录,如/usr/local/something/bin
到PATH
变量或定义JAVA_HOME
./etc/xprofile
启动X Window System会话时执行Shell脚本 . 这适用于登录X Window System的每个用户 . 对于像/usr/local/something/bin
这样的每个用户都有效的PATH
条目是一个不错的选择 . 该文件包含在其他脚本中,因此请使用POSIX shell语法而不是用户shell的语法 ./etc/profile
和/etc/profile.d/*
Shell脚本 . 对于仅限shell的系统,这是一个不错的选择 . 这些文件只能由shell读取 ./etc/<shell>.<shell>rc
. Shell脚本 . 这是一个糟糕的选择,因为它是单壳特定的 .用户会话
~/.pam_environment
. 唯一作业列表 . 如果它是X Window系统会话或shell,则在每个用户会话开始时由PAM加载无关 . 您不能引用其他变量,包括HOME
或PATH
,因此它的使用有限 .~/.xprofile
Shell脚本 . 当用户登录X Window System系统时执行此操作 . 这里定义的变量对每个X应用程序都是可见的 . 使用~/bin
或~/go/bin
等值扩展PATH
或定义用户特定的GOPATH
或NPM_HOME
的完美选择 . 该文件包含在其他脚本中,因此请使用POSIX shell语法而不是用户shell的语法 . 您通过快捷方式启动的图形文本编辑器或IDE将查看这些值 .~/.profile
Shell脚本 . 它仅对从终端或终端仿真器启动的程序可见 . 对于仅限shell的系统,它是一个不错的选择 .~/.<shell>rc
. Shell脚本 . 这是一个糟糕的选择,因为它是单壳特定的 .分发特定文档
Ubuntu
archlinux
我认为最优雅的方式是:
1.在~./bashrc文件中添加此内容
2.source~ / .bashrc
(Ubuntu的)
最简单的方法是以下行:
PATH="<directory you want to include>:$PATH"
在主目录中的.bashrc文件中 .
即使关闭终端或重新启动PC,也不会重置 . 它的永久性
1.modify“/ etc / profile”文件 .
按“i”键进入编辑状态并将光标移动到文件末尾,附加条目:
按“Esc”键退出编辑状态,':wq'保存文件 .
2.使配置有效
说明:配置文件适用于所有用户,如果您只想对活动用户有效,请设置“.bashrc”文件