【问题标题】:How to run ~/.bash_profile in mac terminal如何在 mac 终端中运行 ~/.bash_profile
【发布时间】:2013-09-20 01:52:20
【问题描述】:

所以我正在安装一些用于编码和个人使用的东西,我需要在终端中运行它(如果你没有阅读标题,我在 Mac 上)。

~/.bash_profile

它只是说权限被拒绝,我正在运行 OSX 10.8.4 Mountain Lion。如何绕过这个?

【问题讨论】:

  • 你有python标签,这是不合适的。我想确保你没有在没有评论的情况下删除标签之前将 python 放入文件中?
  • 看起来他正在尝试设置python环境变量。

标签: macos terminal


【解决方案1】:

我在 zsh(mac os Big Sur 11.3) 上遇到了这个错误,这就是我解决这个问题的方法:-

转到终端。

cd /users/<yourusername>

到达这里后发出命令:

ls -al

您将看到很多文件和一个特定文件 .zprofile。这是您的用户资料。我们需要对此进行编辑。


之后我们需要编辑文件。发出以下命令:

nano .zprofile

一旦你发出这个命令文件将被打开进行编辑。添加 maven 的路径详细信息。

M2_PATH="/Users//code/apache-maven-3.8.1/bin" //添加你的maven目录路径 PATH="${PATH}:${M2_PATH}" 导出路径

按 ctrl + X 并保存文件。

保存文件后发出命令:

source .zprofile

完成后,您将能够运行 mvn 命令。

【讨论】:

    【解决方案2】:

    在 MacOS 上:将 source ~/.bash_profile 添加到 ~/.zshrc 的末尾。 那么这个配置文件会在你打开 zsh 时生效。

    【讨论】:

    • 感谢您的评论!任何使用zsh 的人都会遇到这个令人沮丧的问题。
    • 谢谢!现在这似乎特别重要,因为 zsh 是 macOS Catalina 上的默认 shell。
    • 正是@tobias,出于同样的原因,我也不得不谷歌搜索
    • 相同。谢谢你 - 不应该花这么长时间来弄清楚!
    • 谢谢!我还必须给自己.bash_profile的编辑权限!
    【解决方案3】:

    如果您更改 .bash_profile,它仅适用于新的终端会话。

    要将其应用于现有会话,请运行 source ~/.bash_profile。您可以通过这种方式运行任何 Bash 脚本 - 将执行 source 视为与在终端窗口中(从指定的脚本)键入命令相同。

    更多信息:How to reload .bash_profile from the command line?

    奖励:您可以使用launchctl setenv GOPATH "${GOPATH:-}" 使环境变量可用于 OSX 应用程序 - 不仅是当前的 Bash 会话,还包括 Visual Studio Code 或 IntelliJ 等应用程序。

    【讨论】:

    • 它对我有用,谢谢,我刚刚从我创建这个 .bash_profile 的主目录输入了 cmd 源 .bash_profile
    • 缺少路径(假设不在用户的根文件夹中):source ~/.bash_profile
    【解决方案4】:

    无需启动,它会在您启动 mac 终端/bash 时自动执行。每当您进行更改时,您可能需要重新启动终端。

    ~是.bash_profile的默认路径

    【讨论】:

      【解决方案5】:

      如果问题是您没有看到对文件的更改生效,只需打开一个新的终端窗口,它将被“源化”。您将能够在每个后续终端窗口中使用正确的 PATH 等。

      【讨论】:

        【解决方案6】:

        正如@kojiro 所说,你不想“运行”这个文件。按照他的说法来源。它应该在启动时获得“来源”。采购只是意味着运行文件中的每一行,包括你想要运行的那一行。如果您想确保文件夹位于某个路径环境变量中(您似乎希望从另一个解决方案中的一个 cmets 获得),请执行

        $ echo $PATH
        

        在命令行。如果您想检查您的 ~/.bash_profile 是否正在获取,无论是在启动时,还是在您手动获取它时,请在 ~/.bash_profile 文件中输入以下行:

        $ echo "Hello I'm running stuff in the ~/.bash_profile!"
        

        【讨论】:

          【解决方案7】:

          你永远不会想要运行它,但你可能想要source它。

          . ~/.bash_profile
          source ~/.bash_profile
          

          两者都应该工作。但这是一个奇怪的请求,因为该文件应该在您启动 bash 时自动获取,除非您明确地以非交互方式启动它。从手册页:

          当 bash 作为交互式登录 shell 或作为带有 --login 选项的非交互式 shell 调用时,它首先从文件 /etc/profile 中读取并执行命令(如果该文件存在)。读取该文件后,它会按顺序查找 ~/.bash_profile、~/.bash_login 和 ~/.profile,并从第一个存在且可读的文件中读取并执行命令。启动 shell 时可以使用 --noprofile 选项来禁止这种行为。

          【讨论】:

          • 好答案。但是有一次您可能想要获取源:如果您刚刚创建了它,并且希望它应用于当前会话。这听起来正是 OP 的情况。 (话虽这么说,任何不知道~/.bash_profile. ~/.bash_profile 之间区别的人最好只创建一个新会话——例如,在Terminal.app 中的新选项卡,然后关闭旧选项卡。)
          • 这对我有帮助。但是我必须手动获取它,即使重新启动终端也没有帮助。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-02-28
          • 2020-04-29
          • 1970-01-01
          • 2018-03-26
          • 2014-09-21
          相关资源
          最近更新 更多