突然间,我开始无法执行所有命令(例如:$ ruby -v、$ mysql --version 等...)

Suddenly I came to be unable to execute all commands(example:$ ruby -v, $ mysql --version, etc...) at all

我的ruby版本是“2.6.6”,我的mysql版本是“5.7”,我的mysql2版本是0.5.3,我的[=38] =]版本是5.0.7.2,我的Xcode版本是12.5.

我使用 macOS Big Sur(版本 11.4)和文本编辑器“Atom”。

我打算用 HEROKU 的 URL 发布我的 Rails 应用程序(示例。https://[我的应用程序名称].herokuapp.com)。

我编辑了 ~/.bash_profile 如下,然后我按了 esc:xEnter 并执行了 source ~/.bash_profile 之前我突然变得无法执行所有命令(例如:$ ruby -v$ mysql --version 等...)。

export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"

export SECRET_KEY_BASE=GENERATED_CODE

即使是现在,我也无法打开 ~/.bash_profile,使用此命令 vim ~/.bash_profile

快速修复

解决此问题的最简单方法是将您的 ~/.bash_profile 移开,例如

/bin/mkdir ~/temp-store-bash-profile
/bin/mv ~/.bash_profile ~/temp-store-bash-profile

从那里,您可以加载一个新终端,编辑您的 ~/temp-store-bash-profile/.bash_profile 文件,注释掉有问题的导出行,将其移回, 一切顺利。

详细修复

当然,每次 ~/.bash_profile 文件搞砸时都卸载它是不太理想的情况。如果您想就地编辑它,请继续阅读。

为了让您回到 vi,预安装的 vim 编辑器的完整默认路径是 /usr/bin/vim 。您可以使用它代替 vim 作为替代品。所以/usr/bin/vim ~/.bash_profile

到达那里后,您可以在 vim、

:next ~/.bash_profile /etc/paths /etc/paths.d/*

这会将大部分(如果不是全部)默认 PATH 源加载到您的编辑器中。您可以使用 :next 转到队列中的下一个文件,使用 :prev 转到上一个文件。这将允许您完全从您的 PATH 中挑选您想要的,并完全按照您喜欢的方式设置您的 PATH。

当所有其他方法都失败时,创建一个新用户

一个更简单的方法来找出你的默认 PATH 变量是什么,有时如果你已经把你的环境搞得一团糟(尽管这对你的情况来说太过分了)的唯一方法是创建一个新的用户配置文件,然后

echo "${PATH}" > /tmp/default_path

您可以使用任何您想要的默认变量来执行此操作。然后,您将能够在肮脏的环境中从您的个人资料中读取此信息。