SE_BOKUのまとめノート的ブログ

SE_BOKUが知ってること・勉強したこと・考えたことetc

WSL2のUbuntu Linuxを使う時のフォルダとファイル周りの癖

目次

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のファイルパーミッションの図はこちらの記事から引用させてもらいましたので、より詳しい説明はこちらを見てください。

www.infraeye.com

なので、ターミナルから使う限りは、普通の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のリンクのせておきます。

ja.wikipedia.org

非営利組織「Linux Foundation」が保守管理している世界共通の決まり事です。

この決まりのおかげで、Unix系OSであれば、どんなディストリビューションを使っても同じフォルダ構成が保証されるので、あまり違和感を感じずにいられます。

僕の仕事の性格上、どうしてもLinux環境をさわらざるをえないケースってのが突発的にでてくるので、最低限、そのフォルダ構成の決まり事(FHS)だったり、VIエディタの使い方だったりを忘れないようにしておく必要があるのですが、正直、Windowsの便利さは捨てがたく、あえてLinuxのデスクトップで普段から作業したいとも思えません。

その点で、WSL上のUbuntu Linuxはいいです。

前にあげたような多少の癖があったとしても、WSL上のUbuntu Linuxのフォルダ構成も「FHS」に準じてくれているので、WSLでUbuntuの環境を作って、テスト用のWEBサーバーやMariaDBをそっちに置いておくことで、適度に日常的にLinuxをターミナルで使う環境が持てるのは、大変助かってます。

今回はこんなところで。

ではでは。