วิธีการเปลี่ยนเปลือกเริ่มต้นใน Cygwin?


29

ฉันพยายามเปลี่ยนเชลล์เริ่มต้นจาก bash เป็น zsh ใน cygwin

  1. คำสั่ง unix ปกติchshไม่สามารถใช้ได้กับ cygwin
  2. ไฟล์ etc / passwd ที่ดูเหมือนว่าจะไม่ใช้อีกต่อไปใน cygwin รุ่นที่มีอยู่

ดังนั้นเชลล์เริ่มต้นสามารถเปลี่ยนแปลงได้อย่างไร

คำตอบ:


22

คำตอบนั้นขึ้นอยู่กับวิธีที่คุณเริ่ม Cygwin

หากคุณเริ่ม Cygwin ด้วยCygwin.batให้แก้ไขบรรทัดสุดท้ายของ/Cygwin.bat(โดยปกติC:\cygwin\หรือC:\cygwin64\)

หากคุณเริ่ม Cygwin ด้วยminttyให้เพิ่มเชลล์เป็นพารามิเตอร์ mintty /usr/bin/zsh -


2
ขอบคุณฉันใช้ Conemu มีการเปลี่ยนแปลงsh.exeไปzsh.exeในการตั้งค่า Conemu> เริ่มต้น> งาน> ทุบตี Cygwin ทุบตี>set CHERE_INVOKING=1 & %ConEmuDrive%\CygWin\bin\sh.exe --login -i
gyaani_guy

@gyaani_guy ฉันเพียงแค่ใช้ ConEmu CygWin\bin\zsh.exeในการดำเนินการ sh.exe --loginจะเปิดตัว Bash คุณเปลี่ยนมันอย่างไร? หรือไม่เป็นไร ผมคิดว่าsh.exe --loginจะไม่จำเป็นการดำเนินการshก่อนที่จะzsh...
deed02392

@ deed02392 ผมไม่แน่ใจว่าผมเข้าใจ .. แต่คำสั่งที่แน่นอนฉันใช้เป็นset CHERE_INVOKING=1 & %ConEmuDrive%\CygWin\bin\zsh.exe --login -iHTH
gyaani_guy

ขอบคุณ @gyaani_guy sh.exeผมก็สับสนเพราะในความคิดเห็นครั้งแรกของคุณคุณดูเหมือนจะบ่งบอกว่าคุณจะเริ่มต้นกับ ตอนนี้ฉันรู้แล้วว่าฉันไม่ได้อ่านข้อความของคุณอย่างถูกต้อง :-)
deed02392

3
ตัวอย่างเล็ก ๆ น้อย ๆ ที่ไม่ได้ผลสำหรับฉัน มันมีปัญหาจนกว่าฉันจะทำให้มันเป็นเชลล์การเข้าสู่ระบบโดยการเพิ่ม-l: mintty.exe -i /Cygwin-Terminal.ico /usr/bin/zsh -l -
มอร์แกนพฤษภาคม

18

ถ้าคุณเรียกใช้mintty.exeโดยตรงหรือเรียกใช้ Cygwin เทอร์จากเมนูเริ่มต้นหรือคอมพิวเตอร์ตั้งโต๊ะ (ซึ่งเป็นทางลัดไปยัง mintty.exe) คุณสามารถตั้งค่าตัวแปรสภาพแวดล้อม SHELL ใน Windows /usr/bin/zshเพื่อ

บน Windows 7:

  1. กดปุ่ม Windows
  2. เริ่มพิมพ์ "สิ่งแวดล้อม"
  3. เมื่อปรากฏขึ้นให้เลือก "แก้ไขตัวแปรสภาพแวดล้อมสำหรับบัญชีของคุณ"

ส่วนที่เหลือควรอธิบายด้วยตนเอง


5
การทำเช่นนี้ต้องใช้คะแนนเสียงมากขึ้นอย่างจริงจัง ฉันไม่เคยเห็นเอกสารนี้ที่ไหนเลยและเห็นได้ชัดว่าเป็นวิธีที่ตั้งใจไว้
เควินมิลส์

1
สำหรับผู้ที่ไม่ต้องการพึ่งพาการค้นหาเพื่อค้นหาพาเนลที่เหมาะสมให้คลิกขวาที่เมนู Start และเลือก "ระบบ" เพื่อเปิดแผงควบคุมระบบ จากนั้นคลิก "การตั้งค่าระบบขั้นสูง" จากคอลัมน์ด้านซ้าย ในหน้าต่าง "คุณสมบัติของระบบ" ที่ปรากฏขึ้นให้คลิก "ตัวแปรสภาพแวดล้อม ... " เพื่อเปิดตัวแก้ไขตัวแปรสภาพแวดล้อม
David C.

ทำงานอย่างสมบูรณ์แบบ!
bkunzi01

16

คัดลอกมาจากคำตอบของฉันใน Stack Overflow :


แทนการสร้างไฟล์ passwd ซึ่ง Cygwin แนะนำกับ1คุณสามารถแก้ไข /etc/nsswitch.conf เพิ่มหรือแก้ไขบรรทัดต่อไปนี้:

db_shell: / usr / bin / fish

ด้านล่าง / ขึ้นของวิธีนี้คือถ้าคุณมีผู้ใช้หลายคนการเปลี่ยนแปลงนี้จะมีผลกับพวกเขาทั้งหมด ด้านขึ้น / ลงก็คือว่ามันตายง่าย สิ่งเดียวที่จับได้คือคุณต้องรีสตาร์ท Cygwin

ถ้าคุณทำใช้ mkpasswd หลังการเปลี่ยนแปลงนี้ก็จะใช้เปลือกเริ่มต้นใหม่ของคุณสำหรับผู้ใช้ทั้งหมดที่ได้รับอนุญาตให้เข้าสู่ระบบ


1เอกสาร mkpasswd บอกสิ่งนี้:

อย่าใช้คำสั่งนี้เพื่อสร้างไฟล์ / etc / passwd ในระบบเว้นแต่คุณจะต้องการมัน ดูคู่มือผู้ใช้ Cygwin สำหรับข้อมูลเพิ่มเติม

ฉันไม่พบเหตุผลที่เป็นของแข็งในคู่มือผู้ใช้นอกเหนือจากการกล่าวถึงว่าคุณจะต้องสร้างไฟล์ / etc / passwd และ / etc / group ใหม่หากผู้ใช้และกลุ่มของคุณเปลี่ยนไปซึ่งฉันคิดว่ามันดีพอสมควร เหตุผล. ฉันสามารถพูดได้ว่ากระบวนการค่อนข้างผิดพลาดสำหรับมือใหม่


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.