WindowsとBashの相互運用
「Windows 10 Insider build #14951」で追加されたWindowsとBashの相互運用に関する機能の紹介です。心から興奮する新しい機能を引っさげてWindows 10 Insider build #14951がリリースされた。
その機能とはユーザーが気に入るに違いないBashとWindows間の相互運用だ!
長い間、この相互運用機能は多くのユーザーが求めてきたものだ。
その機能が今ここにあるのだ!
build #14951以降ユーザーは以下のことができる。
- Bash内からWindowsのプログラムを呼び出す
- LinuxのプログラムやWindowsのプログラムの出力を補足する(パイプやリダイレクト)
さぁその中身を見てみよう。
BashからWindowsプログラムを呼び出す
「Bash(WSL)」内から、Windowsプログラムのフルパスを指定し、Windowsのプログラムを呼び出すことができます。
/mnt/c/Windows/System32/getmac.exe
「コマンドプロンプト」と異なり、実行可能ファイルの拡張子(.exe)も明示する必要があります。
よく利用するプログラムのパスを登録しておくと楽
よく利用するプログラムのパスを「Bash」の「PATH」環境変数登録しておくと、フルパスの記述を省略できます。
export PATH=$PATH:/mnt/c/Windows/System32
以下のようにフルパスの指定を省略して「Windows」のプログラムを実行できます。
getmac.exe
Bash起動時に自動的にパスを登録するには
「Bash」起動時に自動的にパスを登録するには、「.bashrc」の最終行に一文追記しておくと、自動的にパスが登録されるようになります。追記する内容は上記の「export 〜」と同じ内容です。
将来的にWindowsのパスがBashのパスに追加されるようになる
将来のリリースでは、「Windows」の「PATH」環境変数の内容が、「Bash」の「PATH」環境変数の内容に追加されるようになります。頻繁に利用するプログラムはエイリアスに登録しておくと楽
頻繁に利用するプログラムはエイリアスに登録しておくと楽です。エイリアスとは、別名のことです。
alias mac=/mnt/c/Windows/System32/getmac.exe
Bashの出力をWindowsのプログラムで受け取るには
「コマンドプロンプト」や「PowerShell」から直接Linuxのコマンドを実行し、Windowsのプログラムでその出力を受け取り処理を行うことも出来ます。「Windows」からLinuxのコマンドを実行するには、「bash.exe」を経由してLinuxのコマンドを実行します。
bash -c "実行するLinuxのコマンド"
パイプやリダイレクションを利用し、「Bash(Linuxコマンド)」の出力をWindowsのプログラムで受け取ることも出来ます。