วิธีเริ่ม WSL ในเทอร์มินัล windows โดยทางโปรแกรมและรันคำสั่ง
Aug 18 2020
ฉันต้องการเริ่ม Ubuntu WSL [shell: bash
] ภายใน Windows Terminal จากไฟล์แบตช์และส่งคำสั่งซึ่งควรทำงานทันทีหลังจากเริ่มต้น
- เมื่อเริ่มต้น WSL โดยตรงฉันสามารถทำได้โดยใช้
-c
อาร์กิวเมนต์ เช่นต่อไปนี้จะเปิด WSL และสร้างการเชื่อมต่อ SSH กับการส่งต่อพอร์ตโลคัล:bash -c "ssh -L 3306:localhost:3306 -L 5900:localhost:5900 -L 8001:localhost:8001 [email protected]"
ฉันจะบรรลุสิ่งนี้โดยใช้ Windows Terminal ได้อย่างไร
คำตอบ
1 suamikim Aug 18 2020 at 22:19
ฉันพบสองวิธีโดยที่ทั้งสองได้ผล:
- สร้างโปรไฟล์ทุ่มเท: ตัวเลือกยังยอมรับข้อโต้แย้งซึ่งจะส่งโดยตรงไปยังเปลือกในการเริ่มต้นที่ช่วยให้การใช้งานโดยตรงของที่มีการเพิ่มเติมคำสั่ง "เริ่มต้น":
commandline
wsl.exe
ตอนนี้ฉันสามารถเริ่มเชลล์ผ่านไฟล์แบตช์ซึ่งทำงานโดยใช้ด้านล่าง อย่างไรก็ตามข้อเสียคือโปรไฟล์ใหม่จะแสดงในเมนูการเลือกโปรไฟล์ของ Windows Terminal :{ "guid": "{...}", "hidden": false, "name": "Ubuntu SSH", "commandline": "wsl.exe ssh -L 3306:localhost:3306 -L 5900:localhost:5900 -L 8001:localhost:8001 [email protected]", }
wt -p "Ubuntu SSH"
- ส่งผ่าน
commandline
ไปยังwt
:
ดังที่แสดงในตัวเลือกที่ 1commandline
ตัวเลือกสามารถรวมพารามิเตอร์เพิ่มเติมสำหรับเชลล์เป้าหมายโดยการทำงานต่อไปนี้จะทำงานเมื่อเรียกจากไฟล์แบตช์:
ฉันไม่พบแหล่งข้อมูลออนไลน์อย่างเป็นทางการใด ๆ ที่อธิบายว่าเหตุใดจึงใช้งานได้การปรับเปลี่ยนคำแนะนำในคำตอบนี้ดังนั้นฉันจึงไม่แน่ใจว่าควรจะทำงานในลักษณะนี้หรือไม่หรือเป็นคุณลักษณะที่ซ่อนอยู่ / ไม่ได้ตั้งใจซึ่งอาจทำลายในเวอร์ชันอนาคตwt wsl.exe ssh -L 3306:localhost:3306 -L 5900:localhost:5900 -L 8001:localhost:8001 [email protected]
harrymc Aug 18 2020 at 16:57
ข้อความแสดงข้อผิดพลาดถูกต้อง: Windows Terminal ไม่มี-c
พารามิเตอร์
ไวยากรณ์คือ:
wt [options] [command ; ]
โดยตัวเลือกเดียวคือ:
-h,--help Print this help message and exit
-v,--version Display the application version
-M,--maximized Excludes: --fullscreen
Launch the window maximized
-F,--fullscreen Excludes: --maximized
Launch the window in fullscreen mode
-p Profile
-d Directory