Я не люблю перепечатывать рыбу каждый раз, когда запускаю терминал. Я хочу 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 (текущая версия 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"
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