WSL Linux シェルで Windows 10 プログラムを実行するためのヒント

Linux 用 Windows サブシステムは、ユーザーが Linux シェル内で直接 Windows 10 プログラムを実行できるようにすることで、Windows と Linux の間の分割をリンクしています。Linux 用 Windows サブシステム (WSL) の強みの 1 つは、ユーザーが Windows 10 で Linux ディストリビューションを実行できるだけでなく、Linux で Windows 10 プログラムを実行する柔軟性があることです。

この機能により、Linux は、Windows の機能や Windows プログラムが WSL ファイル システムと連携して動作したり、Linux コマンドによって処理される出力を制御したりできます。さらに、WSL ユーザーは Linux の伝播に影響を与える複雑なシェル スクリプトを作成することもでき、Windows 10 でコマンドを実行することもできます。

Windows 10とLinuxの両方が、人々がプログラムを実行するときに検索されるフォルダのリストを含む’PATH’変数を使用します。プログラムを起動しようとして、そのプログラムが PATH で検出できない場合、Linux と Windows の両方に、そのプログラムが見つからないことが示されます。このような状況では、”C:Notepad2Notepad.exe”のような完全なパスを使用してプログラムを実行する必要があります。

WSL ディストリビューションが Windows 10 によって起動されると、標準の Linux バイナリ フォルダーと通常の Windows 10 パスを含むように Linux PATH 変数が構成されます。このパスは、env |WSL シェル プロンプトで grep “PATH” コマンドを実行します。

WSLのファイルと一緒に動作するプログラムを実行するだけでなく、LinuxでWindows 10プログラムの出力を処理することもできます。Windows コンソール プログラムが起動されると、その出力は Windows ではなく Linux で直接表示されます。この出力は、sed、awk、ソートなどのプログラムを使用して処理できます。簡単な例として、サービス名で並べ替えられた Windows 10 サービスの一覧を取得する場合は、次のコマンドを使用できます。

sc.exe query | grep SERVICE_NAME | awk ‘{print $1=””; print $0}’ | sort -bf| sed ‘/^$/d’