【问题标题】:zsh: command not found - only works when I change path, but on restarting terminal, path changes backzsh: command not found - 仅在我更改路径时有效,但在重新启动终端时,路径变回
【发布时间】:2020-07-01 14:38:57
【问题描述】:

我的 bin 中有 4 个文件。有趣的是,当我在终端中调用它们时,它们中的两个可以工作 - 其他(较新的)两个不工作。

我的 bin 文件如下所示:https://ibb.co/bsj00jG

当我在终端中键入“which chd-project”时(chd-project 是有效的 bash 脚本之一),它显示 /usr/local/bin/chd-project - 但是我找不到本地文件在我的 Mac 上。

当我输入 which id-project(找不到的 bash 脚本)时,它只是说 id-project not found。

如果我设置PATH=$HOME/bin,我就可以调用id-project 文件。但是,每当我重新启动终端时,它都会再次重置。不过,这有时可能会出现问题,因为有时无法找到同一 bash 脚本中的后续命令。

当我输入echo $PATH 时,我得到/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

但是,如前所述,我可以在终端中调用 chd-project(尽管如果我使用 'which',它会显示 usr/local/bin)但我不能调用 id-project。

任何帮助将不胜感激。

谢谢

【问题讨论】:

    标签: bash terminal path git-bash bin


    【解决方案1】:

    您的PATH 变量会在您开始的每个会话中“重置”。那是因为当前会话没有持久设置环境变量。但是,在会话开始之前,它会执行一些文件,例如,保存 PATH 的值。

    如果你想为你打开的每个终端添加这个,你应该在你的 bash 配置文件中扩展你的路径。

    $ echo "export PATH=$PATH:$HOME/bin" >> $HOME/.bashrc
    

    请注意不要覆盖PATH 变量,因为它用于查找mvcp 等命令。

    编辑:
    我不太了解 Atom,但是如果您打开一个常规(而不是 IDE)终端,它应该可以工作。可能是 Atom 出于某种原因不执行 .bashrc。您可以尝试将其添加到您的个人资料中。

    $ echo "export PATH=$PATH:$HOME/bin" >> $HOME/.profile
    

    【讨论】:

    • 但是为什么我在 usr/bin 中找不到 id-project,因为 usr/bin 在我的路径变量中?
    • 在您的问题中,您不是在谈论$HOME/usr/bin,而是在谈论$HOME/bin。如果你有两个这样的目录,你也应该添加另一个。此外,您永远不应该完全覆盖 PATH 变量。尝试在终端中运行export PATH=$PATH:$HOME/bin 并再次执行id-project。这行得通吗?
    • 嘿!是的,这有效!但是我怎样才能做到这一点,这样我就不必每次执行 id-project 时都使用该导出命令?
    • 好读! :-) 在我的回答中,我说的是为(bash)会话执行的.bashrc。如果您在该文件的末尾添加导出命令,它应该每次都可以工作。
    • 嘿,我运行了 $ echo "export PATH=$PATH:$HOME/bin" >> $HOME/.bashrc,但是之后,我仍然无法运行 id-project。但是,当我在打开终端的开头键入 export PATH=$PATH:$HOME/bin 时,我可以。我是否必须进入 atom .bashrc 并将该命令作为文件放入其中?
    猜你喜欢
    • 2022-06-15
    • 1970-01-01
    • 1970-01-01
    • 2022-01-08
    • 1970-01-01
    • 1970-01-01
    • 2020-12-09
    • 2015-11-22
    • 2012-05-20
    相关资源
    最近更新 更多