当前位置: 首页 > 知识库问答 >
问题:

如何永久设置$PATHLinux /Unix[关闭]

齐阎宝
2023-03-14

在Linux上,如何将目录添加到$PATH中,使其在不同会话中保持持久性?

我试图添加一个目录到我的路径,所以它将永远在我的Linux路径。我尝试过:

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

这是有效的,但是每次我退出终端并启动一个新的终端实例时,这个路径都会丢失,我需要再次运行导出命令。

我怎么做才能永久设置?

共有3个答案

奚卓
2023-03-14

在Ubuntu中,编辑/etc/环境。它的唯一目的是存储环境变量。这里最初定义了$PATH变量。

这是我的/etc/环境文件中的粘贴:

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

如果使用Z shell(zsh),请在/etc/zsh/zshenv文件中的注释后面添加此行:

source /etc/environment

我在Ubuntu上遇到了这个小怪癖

翁烨霖
2023-03-14

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

变量值通常存储在分配列表或在系统或用户会话开始时运行的shell脚本中。对于shell脚本,必须使用特定的shell语法和exportset命令。

>

/etc/环境. d/*. conf唯一赋值列表。允许引用。非常适合添加系统范围的目录,如/usr/local/某物/binPATH变量或定义JAVA_HOME。配置可以分成多个文件,通常每个工具一个(Java、Go和Node.js)。通过设计不将这些值传递给用户登录外壳。

/etc/xprofile启动X Window系统会话时执行的Shell脚本。这是为每个登录到X Window系统的用户运行的。对于对每个用户都有效的/usr/local/something/bin条目,它是一个很好的选择。该文件包含在其他脚本中,因此请使用POSIX shell语法,而不是用户shell的语法。

/etc/profile/etc/profile。d/*Shell脚本。对于纯shell系统来说,这是一个很好的选择。在登录模式下,Shell只能读取这些文件。

/etc/

>

  • ~/。pam_环境。唯一分配列表,不允许引用。如果是X Window系统会话或shell,则在每个用户会话开始时由PAM加载。您不能引用其他变量,包括HOMEPATH,因此它的用途有限。由帕姆使用。

    ~/。xprofileShell脚本。这是在用户登录X Window系统时执行的。这里定义的变量对每个X应用程序都是可见的。使用~/bin~/go/bin等值扩展路径,或定义用户特定的GOPATHNPM\u HOME的完美选择。该文件包含在其他脚本中,因此请使用POSIX shell语法,而不是用户shell的语法。通过快捷方式启动的图形文本编辑器或IDE将看到这些值。

    ~/。配置文件~/。

    ~/。

    Wayland上的GNOME启动用户登录shell以获取环境。它有效地使用了登录shell配置~/。配置文件~/。

    • 环境
    • 环境. dhttps://linux.die.net/man/1/environment.d
    • bash
    • 破折号
    • Ubuntu

    登录Shell和非登录Shell之间的区别?

  • 姚烨
    2023-03-14

    您需要将其添加到您的~/. file~/. bashrc文件中。

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

    根据您所做的工作,您可能还希望符号链接到二进制文件

    cd /usr/bin
    sudo ln -s /path/to/binary binary-name
    

    请注意,这不会自动更新会话剩余部分的路径。为此,您应该运行:

    source ~/.profile 
    or
    source ~/.bashrc
    
     类似资料:
    • 问题内容: 我试图将目录添加到我的路径,以便它始终位于我的Linux路径中。我试过了: 这可行,但是每次我退出终端并启动新的终端实例时,此路径都会丢失,因此我需要再次运行export命令。 我该如何做才能将其永久设置? 问题答案: 有多种方法可以做到这一点。实际解决方案取决于目的。 变量值通常存储在分配列表或在系统或用户会话开始时运行的Shell脚本中。如果使用Shell脚本,则必须使用特定的Sh

    • 问题内容: 通过MySQL命令行客户端,我试图设置全局mysql_mode: 这适用于当前会话,但是在我重新启动服务器后,sql_mode返回其默认值:’‘,一个空字符串。 如何将sql_mode永久设置为TRADITIONAL? 如果相关,MySQL是WAMP软件包的一部分。 谢谢。 问题答案: 将此添加到您的my.cnf文件(如果使用Windows,则将其添加到my.ini): 并重新启动服务

    • 问题内容: 我试图永久设置DatePickerDialog标题时遇到问题。 DatePickerFragment.java MainActivity.java 当我单击按钮DatePickerDialog时,对话框标题为“设置日期”,但是当我更改日期时,标题包含选定的日期,而不是“设置日期”。如何永久设置此对话框标题? 经过API 8-10测试。 在此先感谢您,对不起我的英语。帕特里克 问题答案:

    • 问题内容: 如何设置“ curl”以在终端中永久使用代理服务器? 问题答案: 您可以在〜/ .bashrc文件中创建别名: 另一个解决方案是使用(也许是更好的解决方案)文件(如果文件不存在,则创建它):

    • 我正在使用my.conf文件中的default_time_zone='+00:00'并重新启动mysql服务器。但默认时区仍然显示系统。

    • 我尝试了所有我能在网上找到的方法,但没有一个有效。 我想永久地设置和环境变量,以便在IntelliJ中可以发出类似“mvn”的命令。 我已将脚本写入如下所示:屏幕截图 但在我重新启动Mac并发出echo$JAVA_HOME后,输出仍然是空的。 我也尝试了如这个回答所说,但也不起作用。 有人能帮帮我吗?提前感谢!