Mac 终端:更改了我的 shell,现在无法启动它

Mac 终端:更改了我的 shell,现在无法启动它

我通过 MacPorts 安装了 bash 4.0,然后用它sudo chsh -s /opt/local/bin/bash my_user来更改我的 shell。

在此之前,我尝试过chsh不带任何命令直接运行sudo,但它不允许我将 shell 更改为该路径。

现在,当我尝试启动终端时,我收到一条消息,提示我的 shell 具有非法值,因此终端无法启动。我单击“退出”,不出所料,它立即退出了,这很烦人。

跛脚终端

  1. 我如何重置我的 shell 以便可以再次启动终端?
  2. 如何将我的 shell 设置为通过 MacPorts 安装的 bash 以使其可以正常工作?
  3. Terminal 为什么认为我的 shell 是非法的?它站在新禁酒主义者一边吗?

Mac OS X 10.5.8。一切都超级最新。

答案1

打开 ~/Library/Preferences/com.apple.Terminal.plist 并将“Shell”键设置为“/bin/bash”,然后重试打开终端。如果此操作无效,X11.app 可能能够打开终端。否则,您将不得不创建具有管理员权限的新用户并在那里重置 shell。

通过在终端中运行来确保 /opt/local/bin/bash 可执行。如果不是:

chmod +x /opt/local/bin/bash

此外,/opt/local/bin/bash 应该是 /etc/shells 中的一行。

答案2

更改用户配置文件的 shell 的另一种方法(类似于 chsh 命令,但使用 GUI)是执行以下操作:

  1. 打开系统偏好设置.app
  2. 转到“帐户偏好设置”窗格
  3. 如果需要解锁挂锁
  4. 按住 Control 键并单击或右键单击帐户列表中的帐户。
  5. 选择高级选项...
  6. 将“登录 shell:”的值更改为您想要使用的 bash shell 的路径。

我建议将其重置回 /bin/bash,然后在终端中/opt/local/bin/bash运行以确保其正常运行/opt/local/bin/bash,然后再尝试再次更改它。

至于为什么说你不被允许,是因为 Mac OS X 保留了一个“允许”的 shell 列表,/etc/shells/所以你需要编辑该文件并将其添加/opt/local/bin/bash到该列表中。

答案3

问题出在/etc/shells文件上。该文件包含允许用作登录 shell 的所有 shell 的列表。如果您想使用 MacPorts 安装的 bash,则应编辑此文件以包含该特定 shell 的路径。

答案4

我自己也搞砸了,然后找到了另一种方法。如果您安装了 iTerm,您可以编辑您的配置文件以选择自定义启动命令。

转到配置文件->打开配置文件,选择一个配置文件(通常为“默认”),然后点击“编辑配置文件”按钮。

从那里,您可以选择自定义启动命令(例如“/bin/zsh”)来恢复正常并修复所有问题。

iTerm 截图

相关内容