Mac 终端:改变了我的外壳,现在无法启动它

kch*_*kch 5 mac terminal bash macports chsh

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

在此之前,我尝试只在chsh没有 的情况下运行sudo,但它不允许我将 shell 更改为该路径。

现在,当我尝试启动终端时,我收到一条消息,指出我的 shell 具有非法值,因此终端无法启动。我单击退出,不出所料但令人讨厌的是,它立即退出。

跛脚终端

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

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

Che*_*ion 13

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

  1. 打开系统偏好设置.app
  2. 转到帐户首选项窗格
  3. 如果需要,请解锁挂锁
  4. 保持控制并在帐户列表中单击或右键单击您的帐户。
  5. 选择高级选项...
  6. 将显示 Login shell: 的值更改为要使用的 bash shell 的路径。

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

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


Lil*_*ard 6

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


小智 0

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

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

chmod +x /opt/local/bin/bash
Run Code Online (Sandbox Code Playgroud)

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