Як встановити оболонку в Mac OS X?


21

Я знаю, що я можу встановити "Оболонки відкритими" в налаштуваннях терміналу, але мені цікаво, чи існує якийсь загальносистемний спосіб встановити це (подібно до оновлення / etc / passwd у деяких Unixes).

Відповіді:


24

Використовуйте chshутиліту так:

chsh -s bash

Apple chshтрохи змінилася на Mac OS X порівняно з chshви, наприклад, у Linux. Ви можете прочитати їх на сторінці chsh Mac OS X Man .


І тут я подумав, що це щось складне з якоюсь специфічною для OSX утилітою, хе. Спасибі.
nall

@john - прекрасно вивчений :)
akira

Так, я відповів і минулого разу, мене просто побили! :(
Джон Т

19

Зауважте, що вам буде дозволено перейти лише до оболонки, зазначеної в /etc/shells. Зазвичай це нормально, але це означає, що якщо ви хочете встановити Bash 4 (від Homebrew, MacPorts або створити свій власний), вам потрібно додати рядок до /etc/shells. (Я натрапив на це кілька тижнів тому, і подумав, що це може допомогти іншим дізнатися ...)

Редагувати : Тім Сміт вказує, що ви можете обійти /etc/shellsобмеження, якщо запустити chshяк root через sudo. Напр., sudo chsh -s /usr/local/bin/my_shell $USERБуде працювати, навіть якщо my_shellце не вказано в /etc/shells. Я вважаю за краще редагувати /etc/shells, але врешті-решт, це використання в sudoбудь-якому випадку, оскільки ви не можете редагувати /etc/shellsяк звичайний користувач. Так, можливо, шість з одного, півдесятка іншого.


Навіщо змінюватись, /etc/shellsякщо не потрібно? З розуму я вважаю за краще зберігати системні файли однаковими.
ma11hew28

@MattDiPasquale Я не впевнений, що ви маєте на увазі під "розумом". /etc/shells- файл у системі, який визначає розпізнані оболонки. Я змінюю цей файл, тому що хочу додати оболонку до списку розпізнаних оболонок. Мені це здається досить розумним.
Телемах

Хороший альт. Таким чином, чомусь chsh для мене не працює. Я отримав це ; chsh: bash: non-standard shell
RyBolt

@RyBolt Правильно: причина, ймовірно, в тому, що я згадую у відповіді. Ви не можете використовувати chshпоодинці, якщо ви намагаєтесь використовувати оболонку, яка не вказана в /etc/shells.
Телемах

@ Telemachus, я просто намагався змінити оригінальну оболонку bash, яка постачалася зі складеною мовою Mac OSX за замовчуванням. Можливо, це не те, /etc/shellsщо мені здається дивним.
RyBolt

10

Для цього за допомогою GUI Mac OS X:

  1. Відкрийте "Налаштування системи".
  2. Відкрийте панель налаштувань «Облікові записи» / «Користувачі та групи» та розблокуйте панель уподобань, якщо це можливо.
  3. Користувач, який бажає змінити оболонку, controlнатисніть клавішу або клацніть правою кнопкою миші та виберіть "Додаткові параметри ..."
  4. Там, де написано "Оболонка входу", змініть цю оболонку, яку ви хочете використовувати.

Зверніть увагу, що в цьому місці ви можете змінити домашній каталог, UUID, ідентифікатор користувача, ідентифікатор групи та коротке ім'я, якщо вам незручно із Терміналом. Існує подібне питання, розміщене і тут .


5

Використовуючи відповіді вище, я отримував повідомлення про помилку:

$ chsh -s zsh
Changing shell for myuser.
Password for myuser:
chsh: zsh: non-standard shell

Щоб обійти це:

sudo chsh -s zsh $(whoami)

whoami в підпакеті - це змінити оболонку для вашого користувача, а не root.

Ще одна річ, якщо ви використовуєте домашню мову. Коли ви запускаєте команди як root (використовуючи sudo), zsh вказує на / bin / zsh, що поставляється з OSX і може бути застарілим. Щоб використовувати сучасний, встановлений через домашню мову, використовуйте наступне:

sudo chsh -s $(which zsh) $(whoami)
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.