Bash 不再工作了吗?

Bash 不再工作了吗?

我正在尝试安装 home brew (我是命令行新手,正在按照一些关于如何启动和运行 github 的教程)。

因此我遵循了这种非官方更新方法:使用 Homebrew 从源代码编译 Bash(https://security.stackexchange.com/questions/68202/how-to-patch-bash-on-osx-in-wake-of-shellshock

这是我在终端中输入的内容:

$ xcode-select --install

$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

$ brew doctor

$ brew update

$ brew install bash

$ sudo mv /bin/bash /bin/bash_old

$ sudo mv /bin/sh /bin/sh_old

$ sudo chmod a-x /bin/bash_old /bin/sh_old

现在 Bash 不再起作用了 :( 当我打开终端时,它会显示以下消息:

您有新邮件。
登录:/bin/bash:没有此文件或目录
[进程完成]

答案1

终端尝试加载 /bin/bash(或用户的默认 shell)。由于您移动了它,因此除非您告诉它去哪里查找,否则它不知道该做什么。有几种方法可以覆盖 OS X 中的默认登录 shell,而不需要当前正在工作的 shell。

对于特定用户:

系统偏好设置 → 用户和组 → 右键单击​​用户 → 高级选项… → 登录 shell

高级用户选项

对于当前用户:

终端 → 首选项… → 常规 → 使用以下命令打开 Shell:→ 命令(完整路径)

终端默认shell

对于特定的终端配置文件:

终端 → 首选项… → 配置文件 → ‹配置文件› → Shell → 运行命令另外取消勾选“在 Shell 内运行”框。

配置文件默认 shell

当您拥有一个可工作的 shell 时,您可以将二进制文件重命名为原始文件,然后使用 homebrew 并使用相同的过程将其设置/usr/local/bin/bash为登录 shell。无需替换二进制文件,/bin因为 shell 使用来自多个目录的二进制文件PATH环境变量,包括/usr/local/bin,这是 homebrew 默认安装目录。

相关内容