Переключение с zsh на bash на OSX и обратно?


Итак, я учусь развиваться в Rails и обнаружил силу zsh. Однако для некоторых других моих задач я хочу использовать обычный Bash. Хотя они одинаковы, я просто чувствую себя комфортно с выкладкой bash в некоторых ситуациях. Как переключаться туда и обратно или включать и выключать zsh? Спасибо!

8 106

8 ответов:

вы можете просто использовать exec чтобы заменить текущую оболочку на новую оболочку:

переключатель bash:

exec bash

переключатель zsh:

exec zsh

Это не повлияет на новые окна терминала или что-нибудь, но это удобно.

вы можете попробовать chsh -s /bin/bash чтобы установить bash по умолчанию, или chsh -s /bin/zsh чтобы установить zsh по умолчанию.

я переключаюсь между zsh и bash несколько часто. Какое-то время мне приходилось использовать источник моего bash_profile для каждого коммутатора. Тогда я узнал, что вы можете (как правило) сделать

exec bash --login

или просто

exec bash -l

для Bash, попробуйте

chsh -s $(which bash)

для zsh, попробуйте

chsh -s $(which zsh)

zsh имеет встроенную команду emulate который может эмулировать различные оболочки, устанавливая соответствующие параметры, хотя csh никогда не будет полностью эмулироваться.

emulate bash
perform commands
emulate -R zsh

флаг-R восстанавливает все параметры до значений по умолчанию для этой оболочки.

посмотреть: zsh руководство

вы должны быть в состоянии просто типа bash в терминал для переключения на bash, а затем введите zsh для переключения на zsh. По крайней мере, для меня.

никто из них не работает для меня. Помощь.

~ $ echo $SHELL
/bin/zsh
~ $ exec bash
~ $ echo $SHELL
/bin/zsh
~ $ chsh -s /bin/bash
Changing shell for Mac.
Password for Mac: 
~ $ echo $SHELL
/bin/zsh
~ $ exec bash --login
~ $ echo $SHELL
/bin/zsh
~ $ bash
~ $ echo $SHELL
/bin/zsh
~ $ bye
bash: bye: command not found
~ $ exit
exit
~ $ echo $SHELL
/bin/zsh

вы можете легко переключиться обратно в bash с помощью команды "bye"