ฉันพยายามเปลี่ยนเชลล์เริ่มต้นจาก bash เป็น zsh ใน cygwin
- คำสั่ง unix ปกติ
chsh
ไม่สามารถใช้ได้กับ cygwin - ไฟล์ etc / passwd ที่ดูเหมือนว่าจะไม่ใช้อีกต่อไปใน cygwin รุ่นที่มีอยู่
ดังนั้นเชลล์เริ่มต้นสามารถเปลี่ยนแปลงได้อย่างไร
ฉันพยายามเปลี่ยนเชลล์เริ่มต้นจาก bash เป็น zsh ใน cygwin
chsh
ไม่สามารถใช้ได้กับ cygwinดังนั้นเชลล์เริ่มต้นสามารถเปลี่ยนแปลงได้อย่างไร
คำตอบ:
คำตอบนั้นขึ้นอยู่กับวิธีที่คุณเริ่ม Cygwin
หากคุณเริ่ม Cygwin ด้วยCygwin.batให้แก้ไขบรรทัดสุดท้ายของ/Cygwin.bat
(โดยปกติC:\cygwin\
หรือC:\cygwin64\
)
หากคุณเริ่ม Cygwin ด้วยminttyให้เพิ่มเชลล์เป็นพารามิเตอร์ mintty /usr/bin/zsh -
CygWin\bin\zsh.exe
ในการดำเนินการ sh.exe --login
จะเปิดตัว Bash คุณเปลี่ยนมันอย่างไร? หรือไม่เป็นไร ผมคิดว่าsh.exe --login
จะไม่จำเป็นการดำเนินการsh
ก่อนที่จะzsh
...
set CHERE_INVOKING=1 & %ConEmuDrive%\CygWin\bin\zsh.exe --login -i
HTH
sh.exe
ผมก็สับสนเพราะในความคิดเห็นครั้งแรกของคุณคุณดูเหมือนจะบ่งบอกว่าคุณจะเริ่มต้นกับ ตอนนี้ฉันรู้แล้วว่าฉันไม่ได้อ่านข้อความของคุณอย่างถูกต้อง :-)
-l
: mintty.exe -i /Cygwin-Terminal.ico /usr/bin/zsh -l -
ถ้าคุณเรียกใช้mintty.exe
โดยตรงหรือเรียกใช้ Cygwin เทอร์จากเมนูเริ่มต้นหรือคอมพิวเตอร์ตั้งโต๊ะ (ซึ่งเป็นทางลัดไปยัง mintty.exe) คุณสามารถตั้งค่าตัวแปรสภาพแวดล้อม SHELL ใน Windows /usr/bin/zsh
เพื่อ
บน Windows 7:
ส่วนที่เหลือควรอธิบายด้วยตนเอง
คัดลอกมาจากคำตอบของฉันใน Stack Overflow :
แทนการสร้างไฟล์ passwd ซึ่ง Cygwin แนะนำกับ1คุณสามารถแก้ไข /etc/nsswitch.conf เพิ่มหรือแก้ไขบรรทัดต่อไปนี้:
db_shell: / usr / bin / fish
ด้านล่าง / ขึ้นของวิธีนี้คือถ้าคุณมีผู้ใช้หลายคนการเปลี่ยนแปลงนี้จะมีผลกับพวกเขาทั้งหมด ด้านขึ้น / ลงก็คือว่ามันตายง่าย สิ่งเดียวที่จับได้คือคุณต้องรีสตาร์ท Cygwin
ถ้าคุณทำใช้ mkpasswd หลังการเปลี่ยนแปลงนี้ก็จะใช้เปลือกเริ่มต้นใหม่ของคุณสำหรับผู้ใช้ทั้งหมดที่ได้รับอนุญาตให้เข้าสู่ระบบ
1เอกสาร mkpasswd บอกสิ่งนี้:
อย่าใช้คำสั่งนี้เพื่อสร้างไฟล์ / etc / passwd ในระบบเว้นแต่คุณจะต้องการมัน ดูคู่มือผู้ใช้ Cygwin สำหรับข้อมูลเพิ่มเติม
ฉันไม่พบเหตุผลที่เป็นของแข็งในคู่มือผู้ใช้นอกเหนือจากการกล่าวถึงว่าคุณจะต้องสร้างไฟล์ / etc / passwd และ / etc / group ใหม่หากผู้ใช้และกลุ่มของคุณเปลี่ยนไปซึ่งฉันคิดว่ามันดีพอสมควร เหตุผล. ฉันสามารถพูดได้ว่ากระบวนการค่อนข้างผิดพลาดสำหรับมือใหม่
นี่คือแฮ็ค: ใส่นี่เป็นบรรทัดแรกของคุณ~/.bash_profile
:
exec zsh
sh.exe
ไปzsh.exe
ในการตั้งค่า Conemu> เริ่มต้น> งาน> ทุบตี Cygwin ทุบตี>set CHERE_INVOKING=1 & %ConEmuDrive%\CygWin\bin\sh.exe --login -i