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?
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 -
sh.exe
kezsh.exe
dalam Conemu Pengaturan> startup> tugas> bash Cygwin Bash>set CHERE_INVOKING=1 & %ConEmuDrive%\CygWin\bin\sh.exe --login -i
CygWin\bin\zsh.exe
.sh.exe --login
akan meluncurkan Bash, bagaimana Anda mengubahnya? Atau apakah itu tidak penting? Saya membayangkansh.exe --login
tidak perlu mengeksekusish
sebelumzsh
...set CHERE_INVOKING=1 & %ConEmuDrive%\CygWin\bin\zsh.exe --login -i
hthsh.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.
sumber
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:
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:
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.
sumber
Ini adalah retasan: taruh ini sebagai baris pertama dari Anda
~/.bash_profile
:sumber