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

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

12 ответов


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

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

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


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


можно использовать ЧШ сменить пользователя.

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

chsh -s /bin/zsh

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


Из Терминала:

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

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

    chsh -s /usr/local/bin/fish
    

"Системные Настройки":

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

  2. изменить оболочку для /usr/local/bin/fish

    login shell

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


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

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

sudo port install fish

ваша оболочка будет находиться в /opt/local/bin/fish.

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

как только вы это сделаете, вы можете изменить оболочку, перейдя в Системные Настройки -> Учетные записи. Нажмите на блокировку, чтобы разрешить изменения. Щелкните правой кнопкой мыши на учетной записи, и выберите "Дополнительные параметры...". В поле" Login shell " добавьте путь к рыбе.


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

  1. сначала я должен был добавить рыбу в

  2. тогда я побежал chsh -s /usr/local/bin/fish

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

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



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

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


когда в терминале, откройте настройки терминала с помощью команда+,.

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

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


  1. откройте терминал и нажмите клавишу команда+, (запятая). Откроется окно настроек.
  2. первая вкладка "Общие".
  3. найти "оболочки открыты с" настройкой и выбрать 2-й вариант, который должен полный путь к оболочке.
  4. вставьте ссылку на команду fish, которая обычно является /usr/local/bin/fish.

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


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 >

просто измените это значение (с помощью команды write в dscl).


на macOS Mojave мне пришлось сделать следующее (используя zsh в качестве примера):

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