Cli*_*ote 818 unix linux bash zsh path
我正在尝试将路径添加到我的路径中,因此它始终位于我的Linux路径中.我试过了:
export PATH=$PATH:/path/to/dir
Run Code Online (Sandbox Code Playgroud)
这是有效的,但是每次我退出终端并启动一个新的终端实例时,这个路径都会丢失,我需要再次运行export命令.
我怎么能这样做才能永久设置?
mpo*_*red 1019
你需要将它添加到您的~/.profile或~/.bashrc文件.
export PATH="$PATH:/path/to/dir"
Run Code Online (Sandbox Code Playgroud)
根据你正在做的事情,你也可能想要符号链接到二进制文件:
cd /usr/bin
sudo ln -s /path/to/binary binary-name
Run Code Online (Sandbox Code Playgroud)
请注意,这不会自动更新会话剩余时间的路径.为此,您应该运行:
source ~/.profile
or
source ~/.bashrc
Run Code Online (Sandbox Code Playgroud)
trv*_*7ad 240
在Ubuntu中,编辑/etc/environment.其唯一目的是存储环境变量.最初$ PATH变量在这里定义.这是我/etc/environment文件中的粘贴:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
Run Code Online (Sandbox Code Playgroud)
因此,您只需以root身份打开此文件并添加所需内容即可.
对于立即结果,运行(尝试普通用户和 root):
source /etc/environment && export PATH
Run Code Online (Sandbox Code Playgroud)
更新:
如果您使用zsh(又名Z Shell),请在评论后面添加此行/etc/zsh/zshenv:
source /etc/environment
Run Code Online (Sandbox Code Playgroud)
我在Ubuntu 15.10上遇到了这个小怪癖,但是如果你的zsh没有得到正确的PATH,这可能就是为什么
Grz*_*Żur 162
有多种方法可以做到这一点.实际的解决方案取决于目的.
变量值通常存储在分配列表或在系统或用户会话开始时运行的shell脚本中.如果是shell脚本,则必须使用特定的shell语法.
export唯一任务列表.适合加入的全系统的目录像set到/etc/environment变量或定义/usr/local/something/bin.PATH启动X Window System会话时执行Shell脚本.这是针对登录X Window System的每个用户运行的.对于JAVA_HOME对每个用户都有效的条目,它是一个不错的选择/etc/environment.d/*.conf.该文件包含在其他脚本中,因此使用POSIX shell语法而不是用户shell的语法./usr/local/something/bin和PATHShell脚本.对于仅限shell的系统,这是一个不错的选择.这些文件只能由shell读取.JAVA_HOME.Shell脚本.这是一个糟糕的选择,因为它是单壳特定的./etc/xprofile.唯一任务列表.如果它是X Window System会话或shell,则在每个用户会话开始时由PAM加载无关.你不能引用其他变量,包括PATH或/usr/local/something/bin因此它限制使用./etc/profileShell脚本.当用户登录X Window System系统时执行此操作.这里定义的变量对每个X应用程序都是可见的.用于扩展完美的选择/etc/profile.d/*与值,例如/etc/<shell>.<shell>rc或~/.pam_environment或定义用户特定HOME或PATH.该文件包含在其他脚本中,因此使用POSIX shell语法而不是用户shell的语法.您通过快捷方式启动的图形文本编辑器或IDE将查看这些值.~/.xprofileShell脚本.它仅对从终端或终端仿真器启动的程序可见.对于仅限shell的系统,它是一个不错的选择.PATH.Shell脚本.这是一个糟糕的选择,因为它是单壳特定的.Fra*_*til 68
把export声明放进去~/.bashrc.我的.bashrc包含这个:
export PATH=/var/lib/gems/1.8/bin:/home/fraxtil/.bin:$PATH
Run Code Online (Sandbox Code Playgroud)
小智 29
您可以$PATH通过两种方式永久设置.
要为特定用户设置路径:您可能需要.bash_profile在用户的主目录中输入该条目.
例如在我的情况下,我将在tomcat用户配置文件中设置java路径
[tomcat]$ echo "export PATH=$PATH:/path/to/dir" >> /home/tomcat/.bash_profile
Run Code Online (Sandbox Code Playgroud)要为所有系统用户设置公共路径,您可能需要设置如下路径:
[root~]# echo "export PATH=$PATH:/path/to/dir" >> /etc/profile
Run Code Online (Sandbox Code Playgroud)小智 12
您还可以永久设置,编辑以下文件之一:
/etc/profile (适用于所有用户)
~/.bash_profile (对于当前用户)
~/.bash_login (对于当前用户)
~/.profile (对于当前用户)
您还可以使用/etc/environment设置永久PATH环境变量,但它不支持变量扩展.
摘自:http://www.sysadmit.com/2016/06/linux-anadir-ruta-al-path.html
Dan*_*ayo 12
您可以在Centos或RHEL上使用本地用户:
echo $"export PATH=\$PATH:$(pwd)" >> ~/.bash_profile
Run Code Online (Sandbox Code Playgroud)
这将当前目录(或者您可以使用其他目录)添加到PATH,这使其成为永久性但在下次用户登录时生效.
如果您不想重新登录,那么可以使用:
source ~/.bash_profile
Run Code Online (Sandbox Code Playgroud)
重新加载# User specific environment and startup programs此评论存在于.bash_profile
小智 8
修改“/etc/profile”文件:
vi /etc/profile
Run Code Online (Sandbox Code Playgroud)
按I键进入编辑模式并将光标移动到文件末尾。额外的条目?
export PATH=$PATH:/path/to/dir;
Run Code Online (Sandbox Code Playgroud)
按Esc键退出编辑模式,并:wq保存文件。
使配置生效
source /etc/profile
Run Code Online (Sandbox Code Playgroud)
解释?
该配置文件文件适用于所有用户。如果您希望它仅对活动用户有效,请更改“.bashrc”文件。
昨天我在寻找一种方法将一个包含我自己的脚本的文件夹添加到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
Run Code Online (Sandbox Code Playgroud)
因此,我所要做的就是创建文件夹~/bin并将我的脚本放在那里.
我认为最优雅的方式是:
1.在〜/ .bashrc文件中添加此命令运行此命令
gedit~/.bashrc
在其中添加您的路径
export PATH = $ PATH:/ opt/node/bin
2.source~/.bashrc
(Ubuntu的)
您可以将该行添加到控制台配置文件(例如.bashrc)或.profile
永久添加到 PATH 变量
\n全球的:
\necho "export PATH=$PATH:/new/path/variable" >> /etc/profile\nRun Code Online (Sandbox Code Playgroud)\n本地(仅适用于当前用户):
\necho "export PATH=$PATH:/new/path/variable" >> ~/.profile\nRun Code Online (Sandbox Code Playgroud)\n对于全局,重新启动。对于本地,重新登录。
\n例子
\n前:
\n$ cat /etc/profile\n\n#!/bin/sh\n\nexport PATH=/usr/bin:/usr/sbin:/bin:/sbin\nRun Code Online (Sandbox Code Playgroud)\n后:
\n$ cat /etc/profile\n\n#!/bin/sh\n\nexport PATH=/usr/bin:/usr/sbin:/bin:/sbin\nexport PATH=/usr/bin:/usr/sbin:/bin:/sbin:/new/path/variable\nRun Code Online (Sandbox Code Playgroud)\n或者,您可以只编辑文件“profile”:
\n$ cat /etc/profile\n\n#!/bin/sh\n\nexport PATH=/usr/bin:/usr/sbin:/bin:/sbin:/new/path/variable\nRun Code Online (Sandbox Code Playgroud)\n另一种方式(感谢 gniourf_gniourf):
\necho 'PATH=$PATH:/new/path/variable' >> /etc/profile\nRun Code Online (Sandbox Code Playgroud)\n\n\n你不应该在这里使用双引号!echo 'export\nPATH=$PATH:/new/path/variable'... 顺便说一下,export 关键字很可能没用,因为 PATH 变量很可能已经标记为导出。\xe2\x80\x93 gniourf_gniourf
\n
小智 5
添加永久路径的一种方法对我有用,是:
cd /etc/profile.d
touch custom.sh
vi custom.sh
export PATH=$PATH:/path according to your setting/
Run Code Online (Sandbox Code Playgroud)
重新启动您的计算机,我们开始;该路径将永久存在。
小智 5
可以使用以下命令直接添加:
echo 'export PATH=$PATH:/new/directory' >> ~/.zshrc
source ~/.zshrc
Run Code Online (Sandbox Code Playgroud)
经过大量研究,我找到了一个简单的解决方案(我使用的是Elementary OS),其灵感来自Flutter – Linux 上的逐步安装 – Ubuntu。
运行以下命令以编辑模式打开.bashrc文件。(您也可以使用 vi 或任何其他编辑器)。
Run Code Online (Sandbox Code Playgroud)~$ sudo nano ~/.bashrc在文件末尾添加以下行并保存。
Run Code Online (Sandbox Code Playgroud)export PATH="[FLUTTER_SDK_PATH]/flutter/bin:$PATH"例如:
Run Code Online (Sandbox Code Playgroud)export PATH="/home/rageshl/dev/flutter/bin:$PATH"
我相信这是在 Ubuntu 发行版中设置 Flutter 路径的永久解决方案。