
目次
WSL2のUbuntu Linuxを使う時のフォルダとファイル周りの癖
WSL2上でUbuntuを使う時の「フォルダとファイル」の扱いで、ちょっと癖があるなと感じた部分をまとめてみます。
癖その1:ターミナル起動時のカレントフォルダ
WSL上のUbuntuではログインする必要はありません。WindowsターミナルでUbuntuシェルをあげると、ログインした状態になってます。
Ubuntu Linuxの場合はログインユーザの作業領域は「home」フォルダ以下です。なので、WSLでもUbuntuにログインしたら「home/<ユーザ名>」フォルダがカレントになっていてほしいのですが、そうならないときがあるようです。僕の環境もそうでした。
WIndowsターミナルを立ち上げて、「pwd」でカレントフォルダを確認すると
/mnt/c/Users/xxxxx
のようにWindowsのユーザフォルダになっていました。Windowsで作業したファイルと、Ubuntuで作成したファイルがまぜこぜになるのはいやなので、毎回、チェンジディレクトリをするのですが、正直面倒です。
修正することにしました。修正はWIndowsターミナルの設定で行う必要があります。

上記の設定を選択し「settings.json」を開き「startingDirectory」を追加します。例はこんな感じです。
"name": "Ubuntu",
"startingDirectory": "//wsl$/Ubuntu/home/boku",
"source": "Windows.Terminal.Wsl"
「//wsl$」がWSLで管理するフォルダを意味します。Ubuntuとbokuの部分は環境で違いますので、ご自分の環境にあわせます。
癖その2:Linuxのパーミッションの扱い
Windows11とLinuxでは、ファイル・フォルダに対する読み書き権限(パーミッション)の考え方が違います。Windows11はパーソナルOSなので、ログインできたら全てのファイル・フォルダで読書きどちらも可能です。
Linuxは複数人での共用が前提のサーバーOSなので、ログインユーザの権限によって読み書きできる・できないの制御がしっかりされてます。WSL上のUbuntu Linuxもそこは同じで、Windowsターミナルを立ち上げて「ls -l」コマンドで確認すると、フォルダの所有者・所属グループやアクセス権などが設定された状態になっています。


アクセス権は以下のように見るのですが、rootユーザのフォルダに対して、その他ユーザ(ログインしているユーザもこれ)は読むこと(r)と実行(x)はできるが、書き込み(w)はできない・・ということで、それっぽくなってます。

なので、ターミナルから使う限りは、普通のLinuxと同じ感覚で使えるのですが、注意が必要なのが、Windows11のエクスプローラからもアクセスできることです。
特に、Windows11になって、エクスプローラに「Linux」というフォルダが表示されるようになり、選択するとWindows10の時に「\\wsl$」とうった時と同じように、WSLにインストールされているLinuxのフォルダをWindowsで確認できるわけです。。

なので、Windows11でダウンロードしたファイルをLinux側に渡したりするのは、とても簡単にできるのですけど、当たり前ですが、Windows側で不用意にやると、Linuxのパーミッションを壊してしまうリスクもあります。そのへん気を遣う必要があります。
補足:癖があっても、Linuxの「FHS」の勉強には十分です
ちなみに。Linuxを含むUnix系オペレーティングシステム (OS) での主なディレクトリとその内容を定めた「Filesystem Hierarchy Standard(FHS)」というのがあります。Filesystem Hierarchy Standard(FHS)の詳細は、Wikiのリンクのせておきます。
非営利組織「Linux Foundation」が保守管理している世界共通の決まり事です。この決まりのおかげで、Unix系OSであれば、どんなディストリビューションを使っても同じフォルダ構成が保証されます。
僕の仕事の性格上、Linux環境をさわらざるをえない時が突発的にでてきます。なので、そのフォルダ構成の決まり事(FHS)だったり、VIエディタの使い方などの最低限のラインは忘れないようにする必要があります。でも、Windowsの便利さは捨てがたく、あえてLinuxのデスクトップで普段から使う気にもなれません。
その点で、WSL上のUbuntu Linuxはいいです。前にあげたような多少の癖があったとしても、WSL上のUbuntu Linuxのフォルダ構成も「FHS」に準じてくれています。WSLでUbuntuの環境を作って、テスト用のWEBサーバーやMariaDBをそっちに置いておくことで、適度に日常的にLinuxをターミナルで使う環境が持てるのは「いざという時のための練習環境」としては、大変助かってます。今回はこんなところで。ではでは。