Cara memulai WSL di terminal windows secara terprogram dan menjalankan perintah

Aug 18 2020

Saya ingin memulai Ubuntu WSL [shell: bash] di dalam Terminal Windows dari file batch dan memberikan perintah, yang akan segera dijalankan setelah startup.

  • Saat memulai WSL secara langsung, saya dapat melakukan ini menggunakan -cargumen; misalnya, berikut ini membuka WSL dan membuat koneksi SSH dengan beberapa penerusan porta lokal:
    bash -c "ssh -L 3306:localhost:3306 -L 5900:localhost:5900 -L 8001:localhost:8001 [email protected]"
    

Bagaimana saya mencapai ini menggunakan Terminal Windows?

Jawaban

1 suamikim Aug 18 2020 at 22:19

Saya menemukan dua cara, dengan keduanya bekerja sejauh ini:

  1. Membuat profil khusus:
    The commandlineoption juga menerima argumen, yang secara langsung diteruskan ke shell pada startup, memungkinkan penggunaan langsung wsl.exedengan tambahan "perintah startup":
    {
      "guid": "{...}",
      "hidden": false,
      "name": "Ubuntu SSH",
      "commandline": "wsl.exe ssh -L 3306:localhost:3306 -L 5900:localhost:5900 -L 8001:localhost:8001 [email protected]",
    }
    
    Sekarang saya dapat memulai shell melalui file batch, yang dijalankan menggunakan di bawah ini; namun, sisi negatifnya adalah profil baru ditampilkan di Menu Pemilihan Profil Terminal Windows :
    wt -p "Ubuntu SSH"
    

  2. Teruskan commandlineke wt:
    Seperti yang ditunjukkan pada Opsi 1, commandlineopsi dapat menyertakan parameter lebih lanjut untuk shell target, dengan perintah berikut ini berfungsi saat dipanggil dari file batch:
    wt wsl.exe ssh -L 3306:localhost:3306 -L 5900:localhost:5900 -L 8001:localhost:8001 [email protected]
    
    Saya tidak menemukan sumber daya online resmi yang menjelaskan mengapa ini berfungsi, menyesuaikan saran dalam jawaban ini , jadi saya tidak yakin apakah ini seharusnya berfungsi seperti ini atau jika itu adalah fitur tersembunyi / tidak disengaja yang dapat rusak di versi mendatang.
harrymc Aug 18 2020 at 16:57

Pesan kesalahan benar: Terminal Windows tidak memiliki -cparameter.

The sintaks adalah:

wt [options] [command ; ]

Di mana satu-satunya pilihan adalah:

  -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