วิธีการเปลี่ยนเปลือกเริ่มต้นสำหรับ Linux susbsystem สำหรับ Windows


10

ฉันติดตั้งระบบย่อย Linux สำหรับ Windows 10 ทำงานได้ดี แต่ฉันต้องการเปลี่ยนสภาพแวดล้อมเชลล์เริ่มต้นสำหรับระบบย่อย

ฉันได้แล้วsudo apt-get install fish chsh -s /usr/bin/fishแต่เมื่อฉันเริ่มต้นbash.exeใน Windows มันจะเริ่มทุบตี (ฉันคิดว่ามันคาดเดาได้)

ไม่มีใครรู้ว่าข้อโต้แย้งที่จะเปลี่ยนพฤติกรรมนี้?


เมื่อคุณเริ่มต้นbash.exeคุณจะเห็นได้ชัดว่าเริ่มทุบตีอย่างชัดเจน ฉันไม่คุ้นเคยกับระบบย่อย Linux ใน Windows 10 แต่ฉันคาดหวังว่าจะมีวิธีการเริ่มต้นเชลล์ "Linux" โดยไม่ต้องเริ่มต้นเชลล์หนึ่งอย่างชัดเจน
CVn

คุณลอง bashrc หรือ bashprofile รุ่นที่น่าเกลียดของคุณเพื่อจัดเส้นทางการโทร bash แบบโต้ตอบไปที่ปลา การเพิ่มบรรทัดเช่นisatty && exec fishนั้นอาจคุ้มค่ากับการลองใช้เมื่อคุณไม่ได้ใช้โซลูชันจริงทั้งหมด
A. Loiseau

คำตอบ:


6

คุณไม่สามารถเปลี่ยนเชลล์เริ่มต้นได้เนื่องจากระบบย่อย Linux เริ่มทำงานผ่าน bash.exe ซึ่งอยู่ในไดเรกทอรีระบบ

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

%systemroot%\system32\bash -c /usr/bin/fish

ด้วยวิธีนี้คุณจะได้รับปลาทันที


1
ฉันเคย%systemroot%\system32\bash.exe ~ -c /bin/zshทำให้ ZSH เปิดในไดเรกทอรีหลักของฉัน
David Pärsson

หรือตั้งค่าฟิลด์ "เริ่มต้น" ในทางลัด%userprofile%เพื่อเริ่มเชลล์ในโฮมไดเร็กตอรี่ของคุณ
dOxxx

@konqui นี่ไม่ทำให้เชลล์อื่น ๆ เสียหาย มันเป็นทางลัดใหม่สำหรับการเริ่มต้น ทุบตีของคุณจะทำงานได้ดี
Sami Kuhmonen

@SamiKuhmonen ไม่มีอะไรพูดถึงทางลัดใหม่ - ฉันแก้ไขมันตอนนี้ฉันสามารถใช้ชีวิตได้ด้วยคำตอบนี้
konqui

9

ตั้งแต่Fall Creators Updateคุณสามารถใช้chshเพื่อตั้งค่าเชลล์เริ่มต้น สิ่งนี้ยังคงไม่ทำงานหากคุณใช้ WSL โดยใช้bash.exeคำสั่ง แต่จะใช้งานได้หากคุณใช้ WSL ด้วยubuntu.exeคำสั่ง

นอกจากนี้ตั้งแต่ฤดูใบไม้ร่วงผู้สร้างเราควรจะปรับปรุงการติดตั้ง OS WSL จากร้านค้าของ Windows

ตั้งzshเป็นเปลือกเริ่มต้น:

chsh -s /bin/zsh

จากนั้นเรียกใช้ (หรือรีสตาร์ท) ubuntu.exeจากพรอมต์คำสั่ง


5

เปิด bash, run nano ~/.bashrcและ paste สิ่งนี้ใน:

if [[ -t 1 && -x /usr/bin/zsh ]]; then
    exec /usr/bin/zsh
fi

เพียงแค่เปลี่ยนเปลือกเป็นfishหรือสิ่งที่คุณต้องการ การ-xตรวจสอบเป็นสิ่งสำคัญหากคุณติดตั้ง Bash ใหม่ - คุณจะไม่สามารถเปิดได้หลังจากการติดตั้งใหม่เนื่องจากexecคำสั่งจะล้มเหลวและ Bash จะปิดลง

หากเป็นเช่นนั้นให้ลบ / เปลี่ยนชื่อ.bashrcไฟล์ของคุณที่นี่:

C:\Users\<USERNAME>\AppData\Local\lxss\home\<USERNAME>\.bashrc

-tผมเชื่อว่าการตรวจสอบถ้า stdout เปิด ไม่แน่ใจว่าทำไมที่สำคัญผมคัดลอกมาจากบทความนี้

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