我正在尝试安装 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 时,您可以将二进制文件重命名为原始文件,然后使用 homebrew 并使用相同的过程将其设置/usr/local/bin/bash
为登录 shell。无需替换二进制文件,/bin
因为 shell 使用来自多个目录的二进制文件PATH
环境变量,包括/usr/local/bin
,这是 homebrew 默认安装目录。