วิธีเริ่ม 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

ฉันพบสองวิธีโดยที่ทั้งสองได้ผล:

  1. สร้างโปรไฟล์ทุ่มเท: ตัวเลือกยังยอมรับข้อโต้แย้งซึ่งจะส่งโดยตรงไปยังเปลือกในการเริ่มต้นที่ช่วยให้การใช้งานโดยตรงของที่มีการเพิ่มเติมคำสั่ง "เริ่มต้น":
    commandlinewsl.exe
    {
      "guid": "{...}",
      "hidden": false,
      "name": "Ubuntu SSH",
      "commandline": "wsl.exe ssh -L 3306:localhost:3306 -L 5900:localhost:5900 -L 8001:localhost:8001 [email protected]",
    }
    
    ตอนนี้ฉันสามารถเริ่มเชลล์ผ่านไฟล์แบตช์ซึ่งทำงานโดยใช้ด้านล่าง อย่างไรก็ตามข้อเสียคือโปรไฟล์ใหม่จะแสดงในเมนูการเลือกโปรไฟล์ของ Windows Terminal :
    wt -p "Ubuntu SSH"
    

  2. ส่งผ่านcommandlineไปยังwt:
    ดังที่แสดงในตัวเลือกที่ 1 commandlineตัวเลือกสามารถรวมพารามิเตอร์เพิ่มเติมสำหรับเชลล์เป้าหมายโดยการทำงานต่อไปนี้จะทำงานเมื่อเรียกจากไฟล์แบตช์:
    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