Я не люблю перепечатывать рыбу каждый раз, когда запускаю терминал. Я хочу fishпо умолчанию. Как я могу установить оболочку fish в качестве оболочки по умолчанию на Mac?
Я не люблю перепечатывать рыбу каждый раз, когда запускаю терминал. Я хочу fishпо умолчанию. Как я могу установить оболочку fish в качестве оболочки по умолчанию на Mac?
Ответы:
Они применимы к MacOS Sierra 10.12.5 (16F73) и, возможно, к некоторым другим недавним и будущим версиям MacOS.
chshнедостаточно для изменения оболочки по умолчанию. Убедитесь, что вы нажимаете Command+, ,когда ваш терминал открыт, и измените опцию «Оболочки открыты с» на «Оболочка входа по умолчанию».
В случае bash, убедитесь, что вы выполняете, echo $BASH_VERSIONчтобы подтвердить, что вы используете предполагаемую версию bash. bash --versionне дает вам правильную информацию.
Preferencesиз Terminal.app . Смотрите этот ответ Панкадж.
1. sudo nano / etc / shells

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

3. chsh -s / usr / local / bin / fish
Shell open with: Default login shellв настройках Terminal.app
Вы можете использовать chsh для изменения оболочки пользователя.
Запустите следующий код, например, чтобы изменить вашу оболочку на Zsh
chsh -s /bin/zsh
Как описано в страницах руководства, и Лорин, если оболочка не известна под ОСАМИ, вы должны добавить его в список известного: /etc/shells.
chsh: /usr/local/bin/fish: non-standard shell решение было добавить его в / etc / shells, как описано в ответе @ lorin-hochstein ниже
-sхотя и без него ). Я попробую еще раз скоро.
Из терминала:
Добавьте Fish, для /etc/shellsчего потребуется административный пароль:
sudo echo /usr/local/bin/fish >> /etc/shells
Сделайте Fish вашей оболочкой по умолчанию chsh:
chsh -s /usr/local/bin/fish
Из системных настроек:
Пользователь и группы → Ctrl-клик на Current User → Advanced Options ...
Изменить оболочку входа на /usr/local/bin/fish

Нажмите ОК, выйдите и снова
sudo sh -c 'echo /usr/local/bin/fish >> /etc/shells'
echo /usr/local/bin/fish | sudo tee -a /etc/shells
Вот еще один способ сделать это:
Предполагая, что вы установили его с MacPorts, это можно сделать, выполнив:
sudo port install fish
Ваша оболочка будет расположена в /opt/local/bin/fish.
Вы должны сказать OSX, что это допустимая оболочка. Для этого добавьте этот путь в конец /etc/shellsфайла.
После этого вы можете изменить оболочку, перейдя в «Системные настройки» -> «Учетные записи». Нажмите на замок, чтобы разрешить изменения. Щелкните правой кнопкой мыши на учетной записи и выберите «Дополнительные параметры ...». В поле «Вход в оболочку» добавьте путь к рыбе.
Единственное, что сработало для меня, было сочетание всех этих методов.
Сначала я должен был добавить рыбу в /etc/shellsфайл
Потом я побежал chsh -s /usr/local/bin/fish
Наконец, я набрал Command+ ,и добавил /usr/local/bin/fishтуда путь по умолчанию
Только после того, как я сделал все три вещи, рыба начала появляться в качестве окна по умолчанию для новых окон терминала.
Preferences> General> Shells open with:>/bin/fish/usr/local/bin/fish.Смотрите этот скриншот, где zshустанавливается по умолчанию.
Я использую macOS Sierra . Также работает в macOS Mojave .
В MacOS Mojave мне пришлось сделать следующее (на примере zsh):
brew install zsh
sudo sh -c "echo $(which zsh) >> /etc/shells"
chsh -s $(which zsh)
zsh. Уже присутствует на macOS Мохаве. В комплекте на Мохаве, и по умолчанию в Каталине.
Как получить последнюю версию bash на современных macOS (протестировано на Mojave).
brew install bash
which bash | sudo tee -a /etc/shells
chsh -s $(which bash)
Затем вы готовы завершить вкладку в стиле vim, которая доступна только для bash> = 4 (текущая версия brew5.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"
chshпрограмма позволит вам изменить свою оболочку по умолчанию. Он будет нуждаться в полном пути к исполняемому файлу, поэтому, если ваша оболочка есть, fishон будет запрашивать вывод данных при вводе which fish.
Вы увидите строку, начинающуюся с " Shell:". Если вы никогда не редактировали его, скорее всего, он говорит " Shell: /bin/bash". Замените этот /bin/bashпуть на путь к желаемой оболочке.
Эта работа для меня на свежей установке Mac OSX (Sierra):
sudo chown $(whoami) /etc/shells
sudo echo /usr/local/bin/fish >> /etc/shells
chsh -s /usr/local/bin/fish
sudo chown root /etc/shells
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).
Если у вас возникли проблемы с другими способами, работайте на Mac Mojave, но, как правило, работайте.
which fish
добавьте выходной путь в «Системные настройки> Пользователи и группы> щелкните правой кнопкой мыши пользователя, Дополнительные параметры» Вставьте полученный результат в «Оболочка входа:»
Чтобы изменить оболочку по умолчанию на Mac, выполните следующее:
chsh -s <name-of-shell>
Список оболочек, которые вы можете выбрать:
так что если вы хотите перейти с оболочки / bin / zsh, ваша команда будет выглядеть так:
chsh -s /bin/zsh
вы можете увидеть все доступные оболочки в вашей системе, запустив:
cat /etc/shells