WSLでWindowsのホームディレクトリ環境変数を設定


Windows10の現在のユーザ名を取得

以下のコードより、Windows10のUSERNAME環境変数をWSLの環境変数として設定できる。
Windows10の改行コードは"CR+LF"であるが、Linuxの改行コードは"LF"である。
そのため、sedコマンドを使い、改行コードの変換を行う。
"^M"は"Ctrl+v"を押して,"Ctrl+m"を押すことで入力できる。

~/.zshrc
export WIN_USERNAME=$(powershell.exe '$env:USERNAME' | sed -e 's/^M//g')

Windows10のホームディレクトリを取得

上記の環境変数を使い、Windows10の現在のユーザのホームディレクトリを示す
環境変数も追加できる。

~/.zshrc
export WIN_USERHOME=/mnt/c/Users/$WIN_USERNAME

すぐに、Windows10の現在のユーザのホームディレクトリに移動できるので、
便利だと思う(小並感)。

$ cd $WIN_USERHOME
$ pwd
/mnt/c/Users/[Windowsのユーザ名]

おすすめの設定

WSLのほかの環境でもrcファイルを共有している場合は以下のように書くとよい。

~/.zshrc
if [ "$(uname 2> /dev/null)" = Linux ]; then
  if [[ "$(uname -r 2> /dev/null)" = *microsoft* ]]; then
    export WIN_USERNAME=$(powershell.exe '$env:USERNAME' | sed -e 's/^M//g')
    export WIN_USERHOME=/mnt/c/Users/$WIN_USERNAME
    export WIN_USERDESK=$WIN_USERHOME/Desktop
  fi
fi

References