首页 文章

如何在Linux / Unix上永久设置$ PATH?

提问于
浏览
671

我正在尝试将路径添加到我的路径中,因此它将始终位于我的Linux路径中 . 我试过了:

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

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

我怎么能这样做,这将永久设置?

21 回答

  • 1

    您可以将该行添加到控制台配置文件(例如.bashrc)或.profile

  • 5

    您还可以永久设置,编辑以下文件之一:

    /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

  • 10

    使用以下行添加到 /etc/profile.d 文件夹脚本 [name_of_script].shexport PATH=$PATH:/dir . /etc/profile.d 文件夹中的每个脚本都是由 /etc/profile 在登录时自动执行的 .

  • 217

    添加永久路径的一种方法,对我来说,是:cd /etc/profile.d touch custom.sh vi custom.sh export PATH = $ PATH:/ path根据你的设置/重启你的电脑,这里我们走的路径会不会有永久的欢呼声 .

  • 29

    在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 中的注释后面添加此行:

    source /etc/environment
    

    我在Ubuntu 15.10上遇到了这个小怪癖,但如果你的 zsh 没有得到正确的 PATH ,这可能就是为什么

  • 3

    添加导出命令的文件取决于您是处于登录模式还是非登录模式 .

    如果您处于登录模式,您要查找的文件是/ etc / bash或/etc/bash.bashrc

    如果您处于非登录模式,则需要查找文件/.profile或目录/.profiles.d中的文件 .

    上面提到的文件,如果系统变量在哪里 .

  • 821

    export 声明放在 ~/.bashrc 中 . 我的.bashrc包含这个:

    export PATH=/var/lib/gems/1.8/bin:/home/fraxtil/.bin:$PATH
    
  • 2

    我认为最优雅的方式是:

    1.在〜/ .bashrc文件中添加此命令运行此命令

    gedit~ / .bashrc

    在其中添加您的路径

    export PATH = $ PATH:/ opt / node / bin

    2.source~ / .bashrc

    (Ubuntu的)

  • 3

    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

  • -2

    对于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
    
  • 68

    Zues77有正确的想法 . OP没有说“我怎么能破解我的方式” . OP想知道如何永久追加$ PATH:

    sudo nano /etc/profile
    

    这是为所有东西设置的地方,也是改变所有需要$ PATH的东西的最佳位置

  • 0

    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
    
  • 2

    您可以在Centos或RHEL上使用本地用户:

    echo $"export PATH=\$PATH:$(pwd)" >> ~/.bash_profile
    

    这将当前目录(或者您可以使用其他目录)添加到PATH,这使其成为永久性但在下次用户登录时生效 .

    如果您不想重新登录,那么可以使用:

    source ~/.bash_profile
    

    重新加载 # User specific environment and startup programs 此评论出现在 .bash_profile

  • 124

    可以使用以下命令直接添加它:

    echo'export PATH = $ PATH:/ new / directory'>>〜/ .zshrc source~ / .zshrc

  • 6

    您可以通过两种方式永久设置 $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
    
  • 3

    我的回答是关于在 Ubuntu linux/amd64 上设置 go-lang . 我遇到了设置环境变量路径( GOPATHGOBIN )同样的问题,在终端退出时丢失了它并且每次都使用_232313重建它 . 错误是把路径( GOPATHGOBIN )放在 ~/.bash_profile 文件夹中 . 在浪费了几个小时之后,我发现解决办法是将 GOPATHGOBIN 放在 ~/.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 文件 .

  • 5

    昨天我在找到一种方法将一个包含我自己的脚本的文件夹添加到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 并将我的脚本放在那里 .

  • 1

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

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

    系统范围

    • /etc/environment 唯一作业列表 . 非常适合添加系统范围的目录,如 /usr/local/something/binPATH 变量或定义 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加载无关 . 您不能引用其他变量,包括 HOMEPATH ,因此它的使用有限 .

    • ~/.xprofile Shell脚本 . 当用户登录X Window System系统时执行此操作 . 这里定义的变量对每个X应用程序都是可见的 . 使用 ~/bin~/go/bin 等值扩展 PATH 或定义用户特定的 GOPATHNPM_HOME 的完美选择 . 该文件包含在其他脚本中,因此请使用POSIX shell语法而不是用户shell的语法 . 您通过快捷方式启动的图形文本编辑器或IDE将查看这些值 .

    • ~/.profile Shell脚本 . 它仅对从终端或终端仿真器启动的程序可见 . 对于仅限shell的系统,它是一个不错的选择 .

    • ~/.<shell>rc . Shell脚本 . 这是一个糟糕的选择,因为它是单壳特定的 .

    分发特定文档

  • 0

    我认为最优雅的方式是:

    1.在~./bashrc文件中添加此内容

    if [ -d "new-path" ]; then
      PATH=$PATH:new-path
    fi
    

    2.source~ / .bashrc

    (Ubuntu的)

  • 5

    最简单的方法是以下行:
    PATH="<directory you want to include>:$PATH"
    在主目录中的.bashrc文件中 .
    即使关闭终端或重新启动PC,也不会重置 . 它的永久性

  • 0

    1.modify“/ etc / profile”文件 .

    #vi /etc/profile
    

    按“i”键进入编辑状态并将光标移动到文件末尾,附加条目:

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

    按“Esc”键退出编辑状态,':wq'保存文件 .

    2.使配置有效

    source /etc/profile
    

    说明:配置文件适用于所有用户,如果您只想对活动用户有效,请设置“.bashrc”文件

相关问题