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

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

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"