kledgeb Ubuntuの使い方や日本語化、アプリの使い方を紹介しています。

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のプログラムで受け取ることも出来ます。


関連記事一覧
オプション