Help us understand the problem. What is going on with this article?

WSLを楽しく使う

More than 1 year has passed since last update.

はじめに

Windows 10標準のLinux仮想環境、Windows Subsystem for Linux(以下WSL)は着実に進歩してますが、デフォルトのままだとまだまだ使い勝手が悪い部分があります。ここでは快適に楽しく使うために個人的に試したことを紹介します。

なお、試したのは Windows 10 Insider Preview Build 17672の環境です。それより古いバージョンだと動作しない場合があります。

コマンドプロンプトからのWSLの起動

WSLを起動する方法はいくつかありますが、以下のようにwsl.exeコマンドにディストリビューションを指定する方法を覚えておけば今後変更があってもつぶしがききそうです。

> wsl.exe -d distribution

指定可能なディストリビューションの一覧は以下のコマンドで表示されます。

> wslconfig.exe /l

ディストリビューションを省略すると規定のディストリビューションが立ち上がります。これはwslconfig.exeコマンドで変更できます。

詳しくは下記参照。

ターミナル環境

Windows10標準のターミナルはバージョンによって日本語がうまく表示できなくなったり、コマンドによっては表示が崩れたり、使い勝手も今ひとつなので、Hyperというオープンソースのターミナルソフトをいれました。複数タブに対応し、ひとつのタブを水平または垂直方向に分割可能です。インストールは以下のリンクから。

シェルの選択

Hyperには起動するシェルを複数登録して選択する機能はありません。そこで、シェル選択用のbatファイルを用意し、Hyper のShellとして登録しています。以下のファイルではcmd, Powershell, ubuntu, ubuntu1804, debian という5つのシェルの中から選択するようにしています。

Windows環境とのファイル共有

パスの変換

Windowsの C:\User\you\Documents というパスはWSLでは/mnt/c/Users/you/Documentsとして見えます。この変換はほとんどの場合自動で行われますが、明示的に行いたい場合WSL上にwslpathというコマンドが用意されてます。

$ wslpath 'C:\Users\you\Documents'
/mnt/c/Users/you/Documents
$ wslpath -w /mnt/c/Users/you/Documents
C:\Users\you\Documents

metadata の設定

Windowsのファイルに対してLinuxのファイル属性を設定したりオーナー変更をすることができるようになりました。設定した内容は他のLinuxディストリビューションでも共有されます。mount時のオプション指定でも可能ですが、/etc/wsl.confというファイルを作成して以下のように設定するのが、自動化できて便利です。

[automount]
options = "metadata"

WSLを再起動すると反映されます。

wsl.confの書式については下記を参照。

プロンプト設定

複数のLinuxのディストリビューションやバージョンを使い分けるときに間違いやすいので、プロンプトに表示するようにしています。以下の記述を $HOME/.bashrc に追加しました。

case "$TERM" in
    xterm-color|*-256color) color_prompt=yes;;
esac
OS=$(awk -F'=' '/PRETTY_NAME/ {print $2}' /etc/os-release | sed 's/"//g')
if [ "$color_prompt" = yes ]; then
    PS1="\033[01;32m$OS\[\033[00m:\033[01;34m\]\w\[\033[00m\]\$ "
else
    PS1="$OS:\w\$ "
fi

環境変数の受け渡し

WindowsからWSLを起動するときと、WSLからWindowsのプロセスを起動するときに環境変数を渡すしくみが用意されました。渡す環境変数のリストを:区切りで WSLENVという環境変数に指定します。たとえばWindowsのUSERPROFILEUSERNAMEをWSLに渡したい場合は、

> set WSLENV=USERPROFILE:USERNAME

としてからWSLを起動します。

サフィックスをつけることで、それぞれの環境変数のパスの形式を変更することもできます。詳しくは下記ページを参照。

おわりに

あとこれでWSLからGPUにアクセスできるようにしてもらえると、いったん文句ないです。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした