Beralih dari zsh ke bash di OSX, dan kembali lagi?


194

Jadi saya belajar untuk mengembangkan di Rails, dan telah menemukan kekuatan zsh. Namun, untuk beberapa tugas saya yang lain, saya ingin menggunakan Bash normal. Meskipun mereka sama, saya hanya merasa nyaman dengan lay out of bash dalam beberapa situasi. Bagaimana cara saya bolak-balik, atau menghidupkan dan mematikan zsh? Terima kasih!

Jawaban:


382

Anda bisa menggunakan execuntuk mengganti shell Anda saat ini dengan shell baru:

Beralih ke bash:

exec bash

Beralih ke zsh:

exec zsh

Ini tidak akan memengaruhi jendela terminal baru atau apa pun, tetapi lebih nyaman.


1
Sama-sama! Jika Anda senang dengan jawaban ini, luangkan waktu sejenak untuk menandainya sebagai diterima dengan mencentang tanda centang di sebelah kiri jawaban. Terima kasih!
larsks

1
Atau, aktifkan zsh, dan ketika Anda selesai exituntuk kembali ke bash. Melakukannya sepertinya tidak perlu dan tidak diinginkan.
Chris Halaman

Semua tergantung pada apa yang Anda harapkan dari jendela terminal saat Anda keluar. Saya menemukan memulai sebuah subkulit yang tidak perlu dan tidak diinginkan, sendiri.
larsks

2
Bagaimana Anda mengubah standar? Juga, ketika saya melakukan "exec bash" di zsh, itu tidak sumber bash_profile saya.
kalehv

1
Ada saat-saat ketika saya ingin menggunakan zsh dan waktu lain ketika itu mengganggu apa yang ingin saya lakukan. Mengatur default bolak-balik adalah ide yang buruk jadi ini adalah solusi yang sempurna !!! pujian!!
Bob Roberts

126

Anda dapat mencoba chsh -s /bin/bashmengatur bash sebagai default, atau chsh -s /bin/zshuntuk mengatur zsh sebagai default.


54

Saya sering berganti antara zsh dan bash. Untuk sementara, saya dulu harus sumber bash_profile saya setiap switch. Kemudian saya tahu Anda dapat (biasanya) melakukannya

exec bash --login

atau hanya

exec bash -l

1
Terima kasih phill, saya menginstal thinkbot / laptop dan mengacaukan semua konfigurasi saya. Kiat Anda membantu memulihkan lingkungan bash saya.
Seralto

1
Apakah berguna jika Anda menulis untuk apa "--login"?
Ewoks

Make bash act as if it had been invoked as a login shell (see INVOCATION below). Sumber
lony

16

jika itu hanya saklar sementara

Anda dapat menggunakan exec seperti yang disebutkan di atas, tetapi untuk lebih dari solusi permanen.

Anda dapat menggunakan chsh -s / bin / bash (untuk beralih ke bash) dan chsh -s / bin / zsh (untuk beralih ke zsh)


12

Untuk Bash, coba

chsh -s $(which bash)

Untuk zsh, coba

chsh -s $(which zsh)

6

zsh memiliki perintah builtin emulateyang dapat mengemulasi shell yang berbeda dengan mengatur opsi yang sesuai, meskipun csh tidak akan pernah sepenuhnya ditiru.

emulate bash
perform commands
emulate -R zsh

Bendera -R mengembalikan semua opsi ke nilai default untuk shell itu.

Lihat: manual zsh


1
Tidak jelas versi bash apa yang akan ditiru, apakah akan meniru bash 4.x? atau 5.x?
Edgar Aroutiounian

2

Anda harus bisa mengetik bashke terminal untuk beralih ke bash, lalu ketik zshuntuk beralih ke zsh. Setidaknya bekerja untuk saya.


Ini bahkan lebih sederhana.
andromeda

2
Ini bekerja, tetapi setiap kali Anda mengetik zshatau bashAnda akan menjadi sub-shell (subproses di bawah shell saat ini). Anda harus mengetik keluar beberapa kali untuk kembali ke shell paling atas.
RichVel

1

Dalam Mac OS Catalina shell interaktif default adalah zsh. Untuk mengubah shell ke zsh dari bash:

chsh -s /bin/zsh

Maka Anda harus memasukkan kata sandi Mac Anda. Keluar dari terminal dan buka kembali. Untuk memeriksa apakah itu berhasil diubah menjadi ssh, jalankan perintah berikut.

echo $SHELL

Jika hasilnya adalah / bin / zsh, tugas Anda selesai.

Untuk mengubahnya kembali ke bash, jalankan perintah berikut di terminal.

chsh -s /bin/bash

Verifikasi lagi menggunakan echo $SHELL. Maka hasilnya harus / bin / bash.


0

Anda bisa mengetik bashatau jika Anda selalu ingin menggunakan bash:

pada "iTerm2"

  • Buka preferensi> Profil> Perintah
  • Pilih "Command" dari dropdown
  • Tipe bash

Uji dengan menutup iTerm dan buka lagi


-5

Anda dapat dengan mudah beralih kembali ke bash dengan menggunakan perintah "bye"


bye akan keluar dari zsh tetapi tidak kembali ke bash
Cece Dong - MSFT
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.