关于bash:如何在Linux / Unix上永久设置$ PATH?

How to permanently set $PATH on Linux/Unix?

我正在尝试向路径中添加一个目录,以便它始终位于我的Linux路径中。我试过了:

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

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

我该怎么做才能永久设置?


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

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

根据所做的操作,您可能还需要对二进制文件进行符号链接:

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

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

1
2
3
source ~/.profile
or
source ~/.bashrc


在Ubuntu中,编辑/etc/environment。它的唯一目的是存储环境变量。最初$path变量是在这里定义的。这是我的/etc/environment文件中的粘贴:

1
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"

所以您可以打开这个文件作为根目录,并添加您想要的任何内容。

对于即时结果,运行(作为普通用户和根用户尝试):

1
source /etc/environment && export PATH

更新:

如果您使用zsh(a.k.a z shell),请在/etc/zsh/zshenv中的注释后添加这一行:

1
source /etc/environment

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


there are to多方式做它。解决方案depends on the the actual的目的。P></

变量的值是usually stored in the list of前或者在assignments that is壳脚本Run at the start of the系统或用户会话。在家你必须使用脚本of the壳壳在特异性表。P></系统网

  • /etc/environmentlist of assignments独特。完美的系统目录样增宽为/usr/local/something/binto PATHdefining JAVA_HOME或变量。
  • /etc/xprofile壳脚本启动X window系统executed当session。This is that run for every X window系统为用户日志。它是好的选择PATHentries that are for valid for every /usr/local/something/bin用户类。the other is included文件使用POSIX shell脚本知道,not the of user表表你的壳。
  • /etc/profile/etc/profile.d/*外壳脚本。This is a good for壳-唯一的选择系统。这些文件是只读模式shells。
  • /etc/.rc。shell脚本。这是因为它是单壳的可怜的选择特异性。
  • 用户会话

  • ~/.pam_environment。assignments list of独特。负载模式PAM的每用户session at the start of irrelevant if it is an X window系统的session或壳。You cannot或参考其他变量包括HOMEPATH知道它有有限公司使用。
  • ~/.xprofileshell脚本。executed when the user is this into X window系统日志系统。the visible to every变量x是定义在应用程序。完美的选择PATHwith values for such as ~/bin伸展或~/go/bindefining用户或NPM_HOMEGOPATH或特异性。the other is included文件使用POSIX shell脚本知道,not the of user表表你的壳。你的图形文本编辑器或IDE模式将开始看到那些快捷键的值。
  • ~/.profileshell脚本。EN will be visible only for项目开始前emulator从终端终端。它是唯一的好选择for壳系统。
  • ~/.rc。shell脚本。这是因为它是单壳的可怜的选择特异性。
  • 特异性的文件分发

    • Ubuntu的
    • Archlinux


    export声明放入~/.bashrc中。my.bashrc包含以下内容:

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


    你可以用两种方式永久设置$PATH

  • 为特定用户设置路径:您可能需要在用户的主目录中的.bash_profile中进行输入。

    例如,在我的例子中,我将在Tomcat用户配置文件中设置Java路径

    1
    [tomcat]$ echo"export PATH=$PATH:/path/to/dir">> /home/tomcat/.bash_profile
  • 要为所有系统用户设置公用路径,您可能需要如下设置路径:

    1
    [root~]# echo"export PATH=$PATH:/path/to/dir">> /etc/profile

  • 你可以使用CentOS局域网在线用户:RHEL or forP></

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

    本文件的目录(或当前目录,你可以使用其他路径)to the,but take effect这让永at the next用户登录。P></

    如果你不想给我重新登录,可以使用:P></

    1
    source ~/.bash_profile

    # User specific environment and startup programsthis is that reload the present在.bash_profileCommentP></


    You can also one of these permanently集,编辑文件:P></

    (在/etc/profilefor users)P></

    ~/.bash_profile(for CURRENT USERP></

    ~/.bash_login(for CURRENT USERP></

    ~/.profile(for CURRENT USERP></

    You can also to set a使用/etc/environment永恩路径环境变量,but does not支持变量展开。P></

    extracted from http:/ / / / / linux-anadir-ruta-al-path.html www.sysadmit.com 2016年06P></


    我认为最优雅的方式是:

    1.将此添加到~/.bashrc文件中运行此命令

    gedit ~/.bashrc

    在里面添加你的路径

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

    2.来源~/.bashrc

    (Ubuntu)


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


    这个问题在昨天的stumbled when to add a方式找我自己的scripts to the folder containing路径和我自己,我surprised to find out文件(在线~/.profileLinux造币厂:18.1)已包含thisP></

    1
    2
    3
    4
    # set PATH so it includes user's private bin if it exists
    if [ -d"$HOME/bin" ] ; then
        PATH="$HOME/bin:$PATH"
    fi

    在我thus,the folder to do是创建~/binscripts把我在那里。P></


    zues77 has the right的想法。不说"how the OP能破解这一路。"想知道OP append to how to permanently美元路径:P></

    1
    sudo nano /etc/profile

    this is where is for Mind集恩和恩change is the Best Place to for所有的路径needing美元P></


    我的回答是关于在Ubuntu linux/amd64上设置go-lang的问题,我也遇到过同样的问题:设置环境变量路径(GOPATHGOBIN,在终端出口丢失,每次使用source 进行重建,错误的是把路径(GOPATHGOBIN放在~/.bash_profile中。文件夹。在浪费了几个小时之后,我发现解决办法是把GOPATHGOBIN按如下方式放入~/.bash_rc文件:

    1
    2
    3
    export GOPATH=$HOME/go
    export GOBIN=$GOPATH/bin
    export PATH=$PATH:$GOPATH:$GOBIN

    这样一来,Go安装工作正常,没有路径损失。

    编辑1:与此问题相关的原因是,运行go代码的Ubuntu终端或GNOME终端等非登录shell的设置取自~./bash_rc文件,登录shell的设置取自~/.bash_profile文件,如果无法访问~/.bash_profile文件,则取自~/.profile文件。


    添加export命令的文件取决于您是处于登录模式还是非登录模式。

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

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

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


    永久添加路径变量

    全球的:

    1
    echo"export PATH=$PATH:/new/path/variable">> /etc/profile

    本地(仅限用户):

    1
    echo"export PATH=$PATH:/new/path/variable">> ~/.profile

    用于全局重新启动。本地重新登录。

    例子

    之前:

    1
    2
    3
    4
    5
    $ cat /etc/profile

    #!/bin/sh

    export PATH=/usr/bin:/usr/sbin:/bin:/sbin

    后:

    1
    2
    3
    4
    5
    6
    $ cat /etc/profile

    #!/bin/sh

    export PATH=/usr/bin:/usr/sbin:/bin:/sbin
    export PATH=/usr/bin:/usr/sbin:/bin:/sbin:/new/path/variable

    或者,您也可以编辑配置文件:

    1
    2
    3
    4
    5
    $ cat /etc/profile

    #!/bin/sh

    export PATH=/usr/bin:/usr/sbin:/bin:/sbin:/new/path/variable

    另一种方式(感谢gniourf gniourf):

    1
    echo 'PATH=$PATH:/new/path/variable' >> /etc/profile

    You shouldn't use double quotes here! echo 'export
    PATH=$PATH:/new/path/variable'... And by the way, the export keyword
    is very likely useless as the PATH variable is very likely already
    marked as exported. – gniourf_gniourf


    /etc/profile.dadd to folder with在线:export PATH=$PATH:/dir[name_of_script].sh脚本。每个脚本自动executed is within /etc/profile.dfolder /etc/profile在线登录模式。P></


    使用Homebrew快速安装

    查看此视频

    下面的步骤

    Step 1:

    打开https://brew.sh/

    enter image description here

    复制上面屏幕截图中显示的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下载terraform

    提取下载的zip地形文件

    现在,您将在下载的文件夹中有一个文件名terraform

    例如

    /Users/username/downloads/terraform

    Step 3:

    打开一个terminal

    cd:目录改为/Users/username/downloads/terraform

    Step 4:

    在终端运行brew install terraform


    我认为最优雅的方式是:P></

    在这1.add ~ bashrc /文件。P></

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

    来源/ .bashrc ~P></

    (Ubuntu的)P></


    最好的简单方法如下:PATH=":$PATH"在home目录下的.bashrc文件中。即使关闭终端或重新启动PC,它也不会被重置。


    对于Debian发行版,您必须:

    1
    2
    3
        - 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


    1.修改"/etc/profile"文件。

    1
    #vi /etc/profile

    按"I"键进入编辑状态并将光标移动到文件末尾,其他条目:

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

    按"Esc"键退出编辑状态,:wq'保存文件。

    2.使配置有效

    1
    source /etc/profile

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


    单程to add永路径挤压,which is for我:profile.d/etc/CD触摸custom.sh你custom.sh出口路径:路径=美元/路径/根据你的设置重新启动你的计算机和在这里,我们将去那里permanently路径干杯。P></


    它can be added directly by using the following命令:P></

    回声路径:路径=出口美元/纽约/目录/ .zshrc >> ~源/ .zshrc ~P></