Saya mencoba mengubah shell default saya dari bash ke zsh di cygwin.
- Perintah unix normal
chshtidak 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.
chshtidak 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 --loginakan meluncurkan Bash, bagaimana Anda mengubahnya? Atau apakah itu tidak penting? Saya membayangkan sh.exe --logintidak perlu mengeksekusi shsebelum zsh...
set CHERE_INVOKING=1 & %ConEmuDrive%\CygWin\bin\zsh.exe --login -ihth
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.exelangsung 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.exekezsh.exedalam Conemu Pengaturan> startup> tugas> bash Cygwin Bash>set CHERE_INVOKING=1 & %ConEmuDrive%\CygWin\bin\sh.exe --login -i