Как установить оболочку по умолчанию на Mac?
Вопрос
Я не люблю перепечатывать fish каждый раз, когда запускаю терминал.Я хочу fish
включен по умолчанию.Как установить рыбную оболочку в качестве оболочки по умолчанию на Mac?
Решение
Они применимы к MacOS Sierra 10.12.5 (16F73) и, возможно, к некоторым другим недавним и будущим версиям MacOS.
<Ол> chsh
недостаточно для изменения оболочки по умолчанию. Убедитесь, что вы нажимаете Command + , , когда ваш терминал открыт, и изменяете опцию «Оболочки открываются с помощью» на «Оболочка входа по умолчанию».
В случае bash убедитесь, что вы выполнили echo $BASH_VERSION
, чтобы подтвердить, что вы используете предполагаемую версию bash. bash --version
не дает правильной информации.
Другие советы
1.судо нано /etc/shells
2.добавьте /usr/local/bin/fish в список оболочек
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)
/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
- Добавить рыбу в / etc / shells Ол>
- Сделайте Fish стандартной оболочкой с помощью chsh Ол>
- Переопределить корень как владельца оболочки Ол>
sudo echo /usr/local/bin/fish >> /etc/shells
chsh -s /usr/local/bin/fish
sudo chown root /etc/shells