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

StackOverflow https://stackoverflow.com/questions/453236

  •  19-08-2019
  •  | 
  •  

Вопрос

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

Это было полезно?

Решение

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

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

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

  • Другие советы

    1.судо нано /etc/shells enter image description here

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

    3.chsh -s /usr/local/bin/рыба

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

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

    chsh -s /bin/zsh
    

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

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

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

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

    chsh -s /usr/local/bin/fish
    
  • <Ч>

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

    <Ол>
  • Пользователь и группы & # 8594; Ctrl-клик по текущему пользователю & # 8594; Дополнительные параметры ...

  • Измените оболочку входа на /usr/local/bin/fish

    оболочка входа в систему

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

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

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

    sudo port install fish
    

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

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

    После этого вы можете изменить оболочку, перейдя в «Системные настройки» - > Счета. Нажмите на замок, чтобы разрешить изменения. Щелкните правой кнопкой мыши по учетной записи и выберите & Quot; Дополнительные параметры ... & Quot ;. В & Quot; оболочка входа & Quot; поле, добавьте путь к рыбе.

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

    <Ол>
  • Сначала я должен был добавить рыбу в файл /etc/shells

  • Тогда я побежал chsh -s /usr/local/bin/fish

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

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

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

    brew install zsh
    sudo sh -c "echo $(which zsh) >> /etc/shells"
    chsh -s $(which zsh)
    
    <Ол>
  • Откройте свой терминал и нажмите command + , (запятая). Это откроет окно настроек.
  • Первая вкладка - "Общие".
  • Найдите параметр «Оболочки открыты» и выберите второй вариант, для которого требуется полный путь к оболочке.
  • Вставьте ссылку на команду fish, обычно это /usr/local/bin/fish.
  • Я использую macOS Sierra.

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

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

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

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

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

    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).

    Как получить последнюю версию 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"
    

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

    which fish
    

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

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

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