Mac Terminal: изменил мою оболочку, теперь не могу ее запустить

8719
kch

Я установил bash 4.0 через MacPorts, затем использовал его sudo chsh -s /opt/local/bin/bash my_userдля смены оболочки.

До этого я пытался просто запустить chshбез sudo, но это не позволило бы мне изменить мою оболочку на этот путь.

Теперь, когда я пытаюсь запустить Терминал, я получаю сообщение, что моя оболочка имеет недопустимое значение, поэтому Терминал не запускается. Я нажимаю «Выйти», и, что неудивительно, но раздражающе, он немедленно завершается.

lame terminal

  1. Как мне сбросить свою оболочку, чтобы я мог снова запустить Терминал?
  2. Как настроить оболочку на bash, установленную через MacPorts, чтобы она работала?
  3. Почему Терминал считает мою оболочку незаконной? Это на стороне нео-запретителей?

Mac OS X 10.5.8. Все супер мега современно.

5

4 ответа на вопрос

9
Chealion

Другой способ изменить вашу оболочку (похожую на команду chsh, но с использованием графического интерфейса пользователя) для вашего профиля пользователя заключается в следующем:

  1. Откройте Системные настройки.app
  2. Перейти на панель настроек учетных записей
  3. При необходимости разблокировать замок
  4. Удерживайте контроль и нажмите или щелкните правой кнопкой мыши по вашей учетной записи в списке учетных записей.
  5. Выберите Дополнительные параметры ...
  6. Измените значение, в котором указано «Оболочка входа»: на путь к оболочке bash, которую вы хотите использовать.

Я бы порекомендовал сбросить его обратно в / bin / bash, а затем в терминале убедиться, что он /opt/local/bin/bashработает правильно, запустив его, /opt/local/bin/bashпрежде чем пытаться изменить его снова.

Относительно того, почему было сказано, что вам не разрешили, Mac OS X хранит список «разрешенных» оболочек, /etc/shells/поэтому вам нужно будет отредактировать этот файл и добавить /opt/local/bin/bashв этот список.

Я забыл, что поменял оболочку bash на домашнюю. это просто испортилось, и я не мог войти, чтобы исправить это, пока я не нашел этот ответ. Спасибо за сохранение! Joseph Sheedy 7 лет назад 0
Ты просто класс. Спасибо за это исправление. Пытался перейти на bash 4.0, и он сломал все мои оболочки. djangofan 6 лет назад 1
6
Lily Ballard

Проблема здесь в /etc/shellsфайле. Этот файл содержит список всех оболочек, которые разрешено использовать в качестве оболочек для входа. Если вы хотите использовать установленный MacPorts bash, вам следует отредактировать этот файл, указав путь к этой конкретной оболочке.

1
oko

Я получил ту же проблему после обновления до Lion.

Вы должны заглянуть в / etc, где вы можете найти файл вроде shells ~ orig и shells. Восстановить снаряды ~ ориг в снаряды.

Удачи.

0
ACoolie

Откройте ~ / Library / Preferences / com.apple.Terminal.plist и установите ключ «Shell» на «/ bin / bash», затем повторите попытку открытия терминала. Если это не работает, X11.app может открыть терминал. В противном случае вы застрянете, делая нового пользователя с правами администратора и сбросив там свою оболочку.

Убедитесь, что / opt / local / bin / bash является исполняемым, запустив его в Terminal. Если не:

chmod +x /opt/local/bin/bash 

Кроме того, / opt / local / bin / bash должна быть строкой в ​​/ etc / shells.

Там нет ключа Shell в списке терминов. X11 открывает xterm с пригодной для использования сессией. Оттуда я `sudo vim / etc / shells` добавил строку для MacPorts 'bash. После этого я снова смог открыть терминал. `/ opt / local / bash` было уже 755. kch 14 лет назад 1
Итак, я принимаю ваш ответ, но если бы вы могли отредактировать его, чтобы отразить мои заметки из предыдущих комментариев ... Особенно ту часть, где в файле plist нет ключа Shell. kch 14 лет назад 1
И я думаю, что для тех, у кого нет X11 (я полагаю, это необязательная установка, верно?), Можно по-прежнему загружаться в однопользовательском режиме, монтировать для rw и редактировать `/ etc / shells`. kch 14 лет назад 1
Ключ оболочки будет пустым или не будет существовать, если в настройках выбрана «оболочка входа по умолчанию». Вы должны добавить элемент с именем «Shell» с типом «String» и значением «/ bin / bash» ACoolie 14 лет назад 0

Похожие вопросы