ほぼ中立ブログ

少しだけ百合に偏った雑記ブログ

WSLをPowershell上で起動する

【スポンサーリンク】

普段はVirtualbox上で仮想マシンのUbuntuを使用しているのですが、何かともたつくことも多いため、できればWindows上で操作を完結させたいのが本音です。Windowsを完全に捨ててしまうのも1つの手なのでしょうが、なかなか踏ん切りがつきません。

そんなわけでWindows Subsystem for Linux(WSL)にはかなり期待しています。

需要があるか分かりませんが今回はWSLのUbuntuをスクリプトを利用してPowerShell上で立ち上げる方法を調べたのでまとめました。

起動コマンド

WSLを利用してUbuntuをインストールした場合、次の3種類のコマンドでbashを立ち上げることができます。Qiitaのこちらの方の記事を参考にさせていただきました。

  • wsl:コマンド実行時のディレクトリで起動、ログインシェルを変更している場合そのシェルが使われる。
  • bash:コマンド実行時のディレクトリで起動、ログインシェルを変更していてもbashが起動する。
  • ubuntu:Ubuntuのホームディレクトリで起動。ログインシェルが変更されている場合そのシェルが使われる。

3番目のubuntuだけホームディレクトリで起動するようですね。なお、Ubuntuのインストール時に「Ubuntu 18.04 LTS」のようにバージョンが明記されているタイプを選んだ場合、コマンド名をubuntu1804のようにバージョンをあらわす数字を付けたものに変える必要があるのではないかと思われます。私の環境ではそうでした。

起動スクリプト

PowerShell上でbashを起動するための、PowerShellスクリプトを作成します。上の3種類の起動コマンドの内どれか1種類を選んでテキストファイルに記述し、「.ps1」という拡張子名で保存します。私はスクリプトが置いてあるディレクトリで起動させたかったので、ファイルに一行bashとだけ書き込んで、「bash.ps1」という名前で保存しました。

スクリプトの実行ですが、デフォルトではダブルクリックではできないようです。よく分からなかったので、右クリックのメニューからPowerShellで実行を選択することにしました。

最初はセキュリティポリシーに関する警告が出たのですが、Nを入力して一旦ウィンドウを閉じたあと、もう一度同じ操作をしたところ問題なく立ち上がりました。このあたりの挙動はよく分かっていません。

上手く起動しない場合は、bashの部分をbash.exeに変更すると解決するかもしれません。

PowerShell以外の端末

上の内容をまとめた後に知ったのですが、Bashだけを利用するならWindowsで利用できるターミナルエミュレータ「ConEmu」や「Hyper」等を利用した方が便利そうです。どちらも起動時のシェルを選択することができるため、余計な手間なしに直接bashを起動することができます。

特に、Hyperはインストールしただけで、エクスプローラーの右クリックのメニューに「Open Hyper here」の項目を追加してくれます。Ubuntuのファイラーである「Nautilus」に使用感が近くなるためおすすめです。

最後までお読みいただきありがとうございました。