Как установить мою оболочку по умолчанию на Mac?

Мне не нравится повторять рыбу каждый раз, когда я запускаю терминал. Я хочу fish по умолчанию. Как установить оболочку для рыбы в качестве оболочки по умолчанию на Mac?

Ответ 1

Они применимы к MacOS Sierra 10.12.5 (16F73) и, возможно, к некоторым другим недавним и будущим версиям MacOS.

  1. chsh недостаточно для изменения оболочки по умолчанию. Убедитесь, что вы нажали Command + ,, когда ваш терминал открыт, и измените опцию "Оболочки открыты с" на "Оболочка входа по умолчанию".

  2. В случае bash убедитесь, что вы выполнили echo $BASH_VERSION чтобы подтвердить, что вы используете предполагаемую версию bash. bash --version не дает правильной информации.

Ответ 2

1. sudo nano/etc/shells enter image description here

2. добавить /usr/local/bin/fish в свой список оболочек enter image description here

3. chsh -s/usr/local/bin/fish

Ответ 3

Вы можете использовать chsh, чтобы изменить оболочку пользователя.

Запустите следующий код, например, чтобы изменить вашу оболочку на Zsh

chsh -s /bin/zsh

Как описано в man-странице, и Лорин, если оболочка не известна ОС, вы должны добавить ее в свой известный список: /etc/shells.

Ответ 4

От терминала:

  • Добавьте Fish в /etc/shells, для которого потребуется административный пароль:

    sudo echo /usr/local/bin/fish >> /etc/shells
    
  • Сделайте Fish своей оболочкой по умолчанию с chsh:

    chsh -s /usr/local/bin/fish
    

Из системных настроек:

  • Пользователь и группы → ctrl-click для текущего пользователя → Дополнительные параметры...

  • Смените оболочку на /usr/local/bin/fish

    login shell

  • Нажмите OK, выйдите из системы и снова

Ответ 5

Вот еще один способ сделать это:

Предполагая, что вы установили его с помощью MacPorts, что можно сделать, выполнив следующие действия:

sudo port install fish

Ваша оболочка будет расположена в /opt/local/bin/fish.

Вам нужно указать OSX, что это допустимая оболочка. Для этого добавьте этот путь в конец файла /etc/shells.

Как только вы это сделаете, вы можете изменить оболочку, перейдя в Системные настройки → Учетные записи. Нажмите "Блокировать", чтобы разрешить изменения. Щелкните правой кнопкой мыши учетную запись и выберите "Дополнительные параметры...". В поле "Входная оболочка" добавьте путь к рыбе.

Ответ 6

Единственное, что сработало для меня, это комбинация всех этих методов.

  • Сначала мне пришлось добавить рыбу в файл /etc/shells

  • Затем я запустил chsh -s /usr/local/bin/fish

  • Наконец, я набрал Command + , и добавил /usr/local/bin/fish к пути по умолчанию там

Только после того, как я сделал все три вещи, рыба начинала появляться по умолчанию для новых окон терминала.

Ответ 8

В MacOS Mojave мне пришлось сделать следующее (на примере zsh):

brew install zsh
sudo sh -c "echo $(which zsh) >> /etc/shells"
chsh -s $(which zsh)

Ответ 9

программа chsh позволит вам изменить оболочку по умолчанию. Он захочет получить полный путь к исполняемому файлу, поэтому, если ваша оболочка fish, тогда вам понадобится предоставить вывод, указанный при вводе which fish.

Вы увидите строку, начинающуюся с "Shell:". Если вы никогда не редактировали его, скорее всего, он говорит "Shell: /bin/bash". Замените этот путь /bin/bash на путь к нужной оболочке.

Ответ 10

В терминале откройте настройки терминала с помощью Command + ,.

На вкладке "Настройка" выберите одну из тем и выберите вкладку оболочки справа.

Вы можете установить команду автозапуска fish.

Ответ 11

  • Откройте терминал и нажмите command + , (запятая). Откроется окно настроек.
  • Первая вкладка - "Общие".
  • Найдите "Shells open with" и выберите вторую опцию, которая нуждается в полном пути к оболочке.
  • Вставьте ссылку на команду fish, которая обычно /usr/local/bin/fish.

Я использую macOS Sierra.

Ответ 12

heimdall:~ leeg$ dscl
Entering interactive mode... (type "help" for commands)
 > cd /Local/Default/Users/
/Local/Default/Users > read <<YOUR_USER>>
[...]
UserShell: /bin/bash
/Local/Default/Users >

просто измените это значение (с командой записи в dscl).

Ответ 13

Как получить последнюю версию bash на современных macOS (протестировано на Mojave).

brew install bash
which bash | sudo tee -a /etc/shells
chsh -s $(which bash)

После этого вы готовы завершить вкладку в стиле vim, которая доступна только для bash> = 4 (текущая версия brew 5.0.2

# If there are multiple matches for completion, Tab should cycle through them
bind 'TAB':menu-complete

# Display a list of the matching files
bind "set show-all-if-ambiguous on"

# Perform partial completion on the first Tab press,
# only start cycling full results on the second Tab press
bind "set menu-complete-display-prefix on"

Ответ 14

Если у вас возникли проблемы с другими способами, работайте на Mac Mojave, но, как правило, работайте.

which fish

добавьте выходной путь в "Системные настройки> Пользователи и группы> щелкните правой кнопкой мыши пользователя, Дополнительные параметры" Вставьте полученный результат в "Оболочка входа:"

Ответ 15

Эта работа для меня на свежей установке Mac OSX (Sierra):

  1. Определить текущего пользователя как владельца оболочек
sudo chown $(whoami) /etc/shells
  1. Добавить рыбу в /etc/shells
sudo echo /usr/local/bin/fish >> /etc/shells
  1. Сделайте Fish своей стандартной оболочкой с помощью chsh
chsh -s /usr/local/bin/fish
  1. Переопределить корень как владельца оболочек
sudo chown root /etc/shells