Saya mencoba mengubah shell default saya dari bash ke zsh di cygwin.
- Perintah unix normal
chsh
tidak tersedia di cygwin - File etc / passwd tampaknya tidak digunakan lagi di versi cygwin yang ada.
Jadi bagaimana lagi shell default dapat diubah?
Saya mencoba mengubah shell default saya dari bash ke zsh di cygwin.
chsh
tidak tersedia di cygwinJadi bagaimana lagi shell default dapat diubah?
Jawaban:
Jawabannya tergantung pada bagaimana Anda memulai Cygwin.
Jika Anda memulai Cygwin dengan Cygwin.bat , ubah baris terakhir /Cygwin.bat
(biasanya C:\cygwin\
atau C:\cygwin64\
).
Jika Anda memulai Cygwin dengan mintty , lalu tambahkan shell sebagai parameter. mintty /usr/bin/zsh -
CygWin\bin\zsh.exe
. sh.exe --login
akan meluncurkan Bash, bagaimana Anda mengubahnya? Atau apakah itu tidak penting? Saya membayangkan sh.exe --login
tidak perlu mengeksekusi sh
sebelum zsh
...
set CHERE_INVOKING=1 & %ConEmuDrive%\CygWin\bin\zsh.exe --login -i
hth
sh.exe
. Sekarang saya sadar bahwa saya tidak membaca pesan Anda dengan benar :-)
-l
: mintty.exe -i /Cygwin-Terminal.ico /usr/bin/zsh -l -
Jika Anda menjalankan mintty.exe
langsung atau menjalankan Terminal Cygwin dari menu awal atau desktop (yang merupakan jalan pintas ke mintty.exe), Anda dapat mengatur variabel lingkungan SHELL di Windows /usr/bin/zsh
.
Di Windows 7:
Sisanya harus jelas.
Disalin dari jawaban saya di Stack Overflow :
Alih-alih membuat file passwd, yang direkomendasikan Cygwin terhadap 1 , Anda bisa mengedit /etc/nsswitch.conf . Tambahkan atau edit baris berikut:
db_shell: / usr / bin / fish
Sisi bawah / atas dari metode ini adalah bahwa, jika Anda memiliki banyak pengguna, perubahan ini mempengaruhi semuanya. Sisi atas / atas adalah bahwa itu sangat sederhana. Satu-satunya tangkapan adalah Anda harus memulai ulang Cygwin.
Jika Anda melakukan penggunaan mkpasswd setelah perubahan ini, ia akan menggunakan shell default baru Anda untuk semua pengguna yang diizinkan untuk log on.
1 Dokumentasi mkpasswd mengatakan ini:
Jangan gunakan perintah ini untuk menghasilkan file lokal / etc / passwd, kecuali jika Anda benar-benar membutuhkannya. Lihat Panduan Pengguna Cygwin untuk informasi lebih lanjut.
Saya tidak dapat menemukan alasan yang kuat dalam panduan pengguna , selain dari penyebutan bahwa Anda harus membuat ulang file / etc / passwd dan / etc / group jika pengguna dan grup Anda berubah, yang menurut saya cukup baik alasan. Saya dapat mengatakan bahwa prosesnya agak rawan kesalahan untuk pemula.
Ini adalah retasan: taruh ini sebagai baris pertama dari Anda ~/.bash_profile
:
exec zsh
sh.exe
kezsh.exe
dalam Conemu Pengaturan> startup> tugas> bash Cygwin Bash>set CHERE_INVOKING=1 & %ConEmuDrive%\CygWin\bin\sh.exe --login -i