AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 3744
Accepted
Joshua Flanagan
Joshua Flanagan
Asked: 2010-09-07 08:56:36 +0800 CST2010-09-07 08:56:36 +0800 CST 2010-09-07 08:56:36 +0800 CST

如何修改我的 PATH 以便在每个终端会话中都可以使用更改

  • 772

我想添加一个目录来搜索我的搜索路径。我知道我必须修改PATH环境变量。但是,我希望更改是永久性的,以便对于我打开的每个终端(bash)窗口始终有效。

https://help.ubuntu.com/community/EnvironmentVariables中有大量令人困惑且可能相互冲突的信息

我正在使用 Ubuntu 10.04。假设我想添加/usr/local/foo到我的PATH. 我应该修改哪个文件(.bashrc, .profile, .bash_login, 等...),新行应该是什么样子?

bash environment-variables
  • 10 10 个回答
  • 252294 Views

10 个回答

  • Voted
  1. Best Answer
    Ralf
    2010-09-07T10:25:15+08:002010-09-07T10:25:15+08:00

    以下命令将路径添加到当前路径:

    export PATH=$PATH:/my/custom/path
    

    如果您希望您的设置每次都执行此命令,那么您可以在很多地方放置它。当您登录时,以下脚本将按此顺序执行:

    /etc/profile      (which starts by loading everything in /etc/profile.d)
    ~/.profile        (which starts by loading ~/.bashrc if you are running bash)
    

    笔记

    • ~/.profile~/.bash_profile仅在且不存在 时才加载~/.bash_login。否则,至少 bash 会加载它们。建议使用.profile而不是 bash 特定的脚本。因此,如果您在这些尝试中创建了.bash_login,请立即将其删除。

    • ~/.bashrc仅当您正在运行交互式会话时才加载。(带有提示的东西,您可以在其中实际输入内容)。

    • ~/.bashrc每次打开一个新终端时都会一次又一次地加载。因此,gnome-terminal 中的新选项卡、新的虚拟终端等。因此,即使您不再次登录,.bashrc每次打开新 shell 时也会加载(从而重置其环境)。

    • 像 byobu 这样的东西真的应该进入.profile,(否则它不会起作用;-)

    • .profile如果您希望它们在交互式会话之外工作,则应该输入诸如路径之类的东西。(比如当你在 GNOME 中按Alt+时)F2

    • 100
  2. Joshua Flanagan
    2010-09-07T09:07:30+08:002010-09-07T09:07:30+08:00

    我通过修改让它工作~/.profile

    看起来将 ~/bin 添加到我的路径是一个不好的例子,因为 ~/.profile 中已经有代码可以自动执行此操作(如果目录存在)。

    要将 usr/local/foo 目录添加到以后的每个会话的路径中,我在 .profile 末尾添加/编辑以下行:

    export PATH=$PATH:/usr/local/foo
    

    但是,要使其生效,我需要注销并重新登录(只需关闭终端窗口并打开一个新窗口不起作用)。

    • 21
  3. Bruno Freitas
    2015-12-09T02:43:45+08:002015-12-09T02:43:45+08:00

    要在不注销/登录的情况下重新加载 .profile 并更改效果,请运行:

    source ~/.profile
    
    • 7
  4. sagarchalise
    2010-09-09T04:28:04+08:002010-09-09T04:28:04+08:00

    您可以将路径添加到/etc/environment,但请注意,shell 扩展将不起作用;该变量将按字面意思设置为您输入的字符。

    • 3
  5. Willey Hute
    2021-09-22T01:09:40+08:002021-09-22T01:09:40+08:00

    在设置 PATH 变量之前,您需要了解为什么要设置 PATH 变量。Path 变量是您在终端中发出某些命令时系统尝试搜索的位置。

    示例:whereis ls命令显示ls在里面/bin。该ls命令仅/bin在路径变量中注册时才有效。

    echo $PATH给出当前注册的位置。如果您想向路径变量添加另一个自定义位置,可以尝试多种方法。

    1. PATH="$PATH:/someLocation"
      新路径变量仅在您的终端关闭之前有效。其他终端不会受到影响。没有子进程可以使用新变量。
    2. 导出 PATH="$PATH:/someLocation"
      新路径变量在您的终端关闭之前有效,所有子进程都将获得新的路径变量。没有其他终端将获得新变量。
    3. 导出 PATH="$PATH:/someLocation"

    将此行添加到.bashrc您的主文件夹中的文件中。每次创建新的 bash shell 时都会调用它。这意味着每次打开新终端时都会导出一个新的 Path 变量。但是这个变量只为 bash shells 创建。您可以在其他 shell(ksh、sh、ssh ..)中使用旧的 Path 变量。

    1. 导出 PATH="$PATH:/someLocation"

    将此行添加到.profile您的主文件夹中的文件中。每次登录时都会调用它。这意味着每次创建会话时都会导出一个新的 Path 变量。随处可见。

    如果您在主文件夹中找不到.profileor.bashrc文件,请尝试创建一个新文件夹。有时系统不会创建这些文件。

    ps:在ubuntu中工作。接受任何更正。

    • 3
  6. Denner Vieira
    2017-06-04T06:23:22+08:002017-06-04T06:23:22+08:00

    您可以修改目录.bashrc中的文件$HOME。

    在此文件的最后,添加以下行:

    export PATH="$HOME/directory_to_include_in_path/:$PATH"
    

    您还.profile可以在您的$HOME目录中修改文件,包括以下行:

    PATH="$HOME/directory_to_include_in_path/:$PATH"
    

    这对我有用。

    • 2
  7. Vallie
    2019-05-26T22:31:43+08:002019-05-26T22:31:43+08:00

    如果你有 ohmyzsh 通过终端进入你的主目录并输入

    nano .zshrc

    在文件末尾输入

    导出 PATH="$HOME/directory_to_include_in_path/:$PATH"

    最后重启你的终端。为我工作。希望这会有所帮助。

    • 0
  8. Vickie
    2020-04-03T13:08:56+08:002020-04-03T13:08:56+08:00

    这对我有用

    设置JAVA_HOME变量时

    在终端中,运行以创建变量

    echo 'export JAVA_HOME=“/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home' | sudo tee -a ~/.profile
    

    运行以将变量添加到路径

    echo 'export PATH="${JAVA_HOME}/bin:$PATH"' | sudo tee -a ~/.profile
    

    然后

    source ~/.profile
    

    查看变量是否设置正确运行

    vi .profile
    

    然后:q退出

    修改 .profile 文件(在更正的情况下)运行

    sudo vi .profile
    

    按I插入。

    修改后按Esc和:wq保存退出。

    • 0
  9. ObiHill
    2020-11-19T05:59:18+08:002020-11-19T05:59:18+08:00

    首先在/etc/profile.d目录中添加一个shell脚本。

    echo 'export PATH=$PATH:/path/to/app' | sudo tee /etc/profile.d/custom-apps-path.sh > /dev/null
    

    下次登录 shell 时,该应用程序将通过直接调用可用。

    要使应用程序在当前 shell 中立即可用,请运行以下命令:

    source /etc/profile.d/custom-apps-path.sh
    
    • 0
  10. Mac S
    2016-01-23T12:00:31+08:002016-01-23T12:00:31+08:00

    通过基础知识,我将建议以下步骤:

    1. 建议设置环境变量/etc/environment
    2. 在编辑器中以超级用户身份打开文件,因为它是只读文件,例如 gedit:

      gksu gedit /etc/environment
      
    3. 系统需要密码才能在可编辑模式下打开它。输入您的超级用户密码并在新的 gedit 窗口中打开文件。
    4. 在文件末尾添加新行 export PATH=$PATH:/usr/local/foo
    5. 保存并关闭窗口。它将命令返回到终端。
    6. 通过运行以下命令刷新环境:

      . /etc/environment
      
    7. 您可以通过执行以下命令进行检查:

      echo $PATH
      
    • -3

相关问题

  • 从 bash 迁移到 zsh [关闭]

  • bashrc 还是 bash_profile?

  • 如何设置环境变量?

  • 备份 bash 脚本未压缩其 tarball

  • 在哪里可以找到有关 /etc/environment 文件格式的文档?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何安装 .run 文件?

    • 7 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    如何获得 CPU 温度?

    • 21 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Marko Smith

    如何使用命令行将用户添加为新的 sudoer?

    • 7 个回答
  • Marko Smith

    更改文件夹权限和所有权

    • 9 个回答
  • Marko Smith

    你如何重新启动Apache?

    • 13 个回答
  • Marko Smith

    如何卸载软件?

    • 11 个回答
  • Marko Smith

    如何删除 PPA?

    • 26 个回答
  • Martin Hope
    NES 如何启用或禁用服务? 2010-12-30 13:03:32 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    Olivier Lalonde 如何在结束 ssh 会话后保持进程运行? 2010-10-22 04:09:13 +0800 CST
  • Martin Hope
    David B 如何使用命令行将用户添加为新的 sudoer? 2010-10-16 04:02:45 +0800 CST
  • Martin Hope
    Hans 如何删除旧内核版本以清理启动菜单? 2010-08-21 19:37:01 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve