はじめに
WSL(Windows Subsystem for Linux)でGit Bashのようにコマンドラインからエクスプローラーを起動したいと思い、実行方法を調べてみました。
実行環境は以下のとおりです。
- Windows : Windows 10 Pro
- WSL : Ubuntu 18.04.2 LTS
やりたかったこと
Git Bashではコマンドプロンプトのstartコマンドを使用してエクスプローラーを実行することができます。
$ start explorer [ディレクトリパス]
これと同じように、コマンドラインからエクスプローラを実行できるかをWSLで確認します。
結果
結果としてWSLでは下記のコマンドでエクスプローラーを実行することができました。
$ explorer.exe [ディレクトリパス]
Windows側のファイルを実行できる理由
envコマンドを用いてWSL側の環境変数PATHの中身を確認してみました。
$ echo $PATH | sed s/:/\\n/g | grep -Ei "/mnt/c/windows"
/mnt/c/Windows/system32
/mnt/c/Windows
/mnt/c/Windows/System32/Wbem
/mnt/c/Windows/System32/WindowsPowerShell/v1.0/
/mnt/c/WINDOWS/system32
/mnt/c/WINDOWS
/mnt/c/WINDOWS/System32/Wbem
/mnt/c/WINDOWS/System32/WindowsPowerShell/v1.0/
/mnt/c/WINDOWS/System32/OpenSSH/
/mnt/c/WINDOWS/system32
/mnt/c/WINDOWS
/mnt/c/WINDOWS/System32/Wbem
/mnt/c/WINDOWS/System32/WindowsPowerShell/v1.0/
/mnt/c/WINDOWS/System32/OpenSSH/
どうやらWSLではWindows側の環境変数がデフォルトで反映される為、Windowsの標準コマンドなどの実行ファイルを指定できるようです。
.exeを指定しないでコマンドを実行する
実行方法は分かりましたが、いちいち.exeを指定して実行するのが億劫なのでエイリアスを登録します。
エイリアスの登録
bashの設定ファイル.bashrcの中にエイリアスを登録し、.exeなしでコマンドが実行できるよう設定します。
$ vim ~/.bashrc
vimの編集画面が開かれるので、以下のように.bashrcに内容を追記してください。
alias [コマンド名]='[実行ファイル名]'
私は以下のように設定しました。
# aliases
alias explorer='explorer.exe'
編集が終わったら、sourceコマンドで.bashrcを再度読み込ませて、エイリアスを反映させます。
$ source ~/.bashrc
sourceコマンド実施後、.exeなしでコマンドを実行できるか確認します。
$ explorer .
これで.exeなしで実行できるかと思います。
ちなみに設定したエイリアスの一覧はaliasコマンドで確認できます。