WSL

Windows TerminalでWSL(2)で起動するLinuxのホームディレクトリを変更する

はじめに

WSLでインポートした場合の起動時のディレクトリは以下のようにWindows側のカレントディレクトリを世襲します。

PS C:\Users\jun> wsl -d ubuntu2004-1
root@zeus:/mnt/c/Users/jun#

また、Windows Terminalで起動した場合も同じです。
これはとてもウザいです。そこでWindows Terminalでのホームディレクトリを指定したいと思います。
設定を開きます。

もしくは以下のファイルを編集します。
(Preview版なので少々名前違うと思います)

C:\Users\xxxxx\AppData\Local\Packages\Microsoft.WindowsTerminalPreview_xxxxxxxxxxx\LocalState\settings.json

"source": "Windows.Terminal.Azure"の場合

以下のようにstartingDirectoryを指定したいディレクトリを指定します。

//wsl$/[ディストリビューション名]/[指定したいディレクトリ]/
{
	"defaults":
	{
	// Put settings here that you want to apply to all profiles.
	},
	"list":
	[
	・・・
	{
		"guid": "{61e194fe-f841-5cd8-b7dd-1480bff5b6cc}",
		"hidden": false,
		"name": "ubuntu2004-1",
		"source": "Windows.Terminal.Wsl",
		"startingDirectory": "//wsl$/ubuntu2004-1/root/"
	}
	]
},

上記のように設定した場合、ストアからインストールしたものはホームディレクトリへ変更できませんでした。
少々汚い記述ですが下記のように設定することで指定できます。また、これはWSLコマンドでインポートしたものでも有効です。
記述を統一したい場合はこちらを使うと良いでしょう。

"startingDirectory": "\\\\wsl$\\Ubuntu-18.04\\home\\jun"

commandline wsl コマンド

wslコマンドを利用する場合は~(チルダ)を付けます。

{ 
   "name": "ubuntu2004-1-cmd",
   "commandline": "wsl ~ -d ubuntu2004-1",
   "hidden": false
},

まとめ

以上、簡単な解説でした。

-WSL
-,