2012-04-26 15 views
92

Quindi sto imparando a sviluppare in Rails e ho scoperto il potere di zsh. Tuttavia, per alcune delle mie altre attività, desidero utilizzare il normale Bash. Sebbene siano uguali, mi sento a mio agio con il lay-out di bash in alcune situazioni. Come posso passare avanti e indietro o attivare e disattivare zsh? Grazie!Passaggio da zsh a bash su OSX e viceversa?

risposta

195

Si può semplicemente utilizzare exec per sostituire la shell corrente con una nuova shell:

Passa a bash:

exec bash 

Passa a zsh:

exec zsh 

Ciò non influirà nuove finestre di terminale o altro, ma è conveniente.

+1

Grazie ! Cosi 'semplice! – vpoola88

+1

Prego! Se sei soddisfatto di questa risposta, ti preghiamo di prendere un momento per contrassegnarlo come accettato, selezionando il segno di spunta a sinistra della risposta. Grazie! – larsks

+0

Oppure, invoca zsh e quando hai finito 'exit' per tornare a bash. L'esecuzione sembra non necessaria e indesiderabile. –

64

si può provare chsh -s /bin/bash per impostare il bash come predefinito, o chsh -s /bin/zsh per impostare zsh come predefinito.

26

Passaggio tra zsh e bash piuttosto frequentemente. Per un po 'di tempo, dovevo trovare il mio bash_profile ogni switch. Poi ho scoperto che è possibile (in genere) fare

exec bash --login 

o semplicemente

exec bash -l 
+0

Grazie phill, ho installato thoughtbot/laptop e mi sono confuso tutte le mie configurazioni. Il tuo suggerimento aiuta a riavere il mio ambiente di bash. –

+0

ha funzionato per me grazie – skkrish

+0

Sarebbe utile che tu abbia scritto cos'è "--login"? – Ewoks

2

zsh ha un comando incorporato emulate che può emulare diverse conchiglie impostando le opzioni appropriate, anche se csh non saranno mai completamente emulati .

emulate bash 
perform commands 
emulate -R zsh 

La bandiera -R ripristina tutte le opzioni ai loro valori predefiniti per quel guscio.

See: zsh manual

0

Per Bash, tenta

chsh -s $(which bash) 

Per zsh, tenta

chsh -s $(which zsh) 
0

Si può facilmente tornare a bash utilizzando il comando "bye"