# `/usr`はUserの略ではない?Linuxディレクトリの本当の正体 初めて[[Linux]]に触れる人は、誰もが一度は「ああ、`/usr`はユーザー(User)フォルダーなんだな!」と誤解しがちです。しかし、実際に自分のファイルを保存しようとすると、権限がないと拒否されてしまうことがよくあります。 結論から言うと、**現代のLinuxにおいて`/usr`は「ユーザーのホーム」ではなく、「システムの共通リソース倉庫」**なのです。 ![Linuxファイルシステムとusrディレクトリの概念イメージ](/media/whitedec/blog_img/a8ec4afb63f44633bfe7d8ddc88d744b.webp) ## 1. `/usr`:名前の誤解と本当の意味 {#sec-b849ebed1aef} 過去のUnix初期には、実際に`/usr`にユーザーのホームディレクトリがあった時代もありました。しかし、システムが大規模化するにつれて役割が分離され、現在`/usr`は**Unix System Resources**の略として解釈するのが適切でしょう。確かに`user`から始まったものの、機能的にはもはやuserという意味合いは持っていません。 - **性質:** システム運用に必要な読み取り専用(Read-only)データとプログラムの集合体。 - **主要な役割:** OSインストール後に追加されるほとんどの実行ファイル、ライブラリ、共有データがここに格納されます。 --- ## 2. `/usr`の内部を見てみよう(主要な内容) {#sec-00d9f67269a8} `/usr`の内部は、まるで小さな[[Linux]]システムが丸ごと入っているかのような構造をしています。 |**ディレクトリ**|**主な内容**|**備考**| |---|---|---| |**`/usr/bin`**|一般ユーザー用実行ファイル|`python`、`curl`、`git` など| |**`/usr/sbin`**|システム管理者用実行ファイル|ネットワーク設定、デーモン管理など| |**`/usr/lib`**|プログラム実行に必要なライブラリ|Windowsの`.dll`に似た`.so`ファイル群| |**`/usr/share`**|アーキテクチャに依存しない共通データ|マニュアル(man)、アイコン、フォントなど| |**`/usr/local`**|**ユーザーが直接インストールしたプログラム**|ソースコンパイルなどでインストールした場合に優先順位を持つ| > **💡 参考:`/bin`と`/usr/bin`の違いは?** > > 過去には、起動に不可欠な最小限のツールだけが`/bin`に置かれていましたが、最近のディストリビューション(Ubuntu、Fedoraなど)では、管理を簡素化するために`/bin`を`/usr/bin`へシンボリックリンクで統合する傾向にあります。 > `/sbin`と`/usr/sbin`の関係も同様です。 --- ## 3. 混同しやすい4つのディレクトリを比較 {#sec-61ad2a15d2c6} 特に混同しやすい4つの場所の役割を明確に区別してご説明します。 1. **`/home` (個人スペース):** ユーザーの個人文書や設定ファイル(`~/.bashrc`など)が格納されます。OSを再インストールしても、ここだけ残せばデータは無事です。 2. **`/usr` (システムリソース):** パッケージマネージャー(apt、dnfなど)が管理する共通プログラムの保存場所です。 3. **`/opt` (外部アプリ):** Google ChromeやDiscordのように、パッケージ管理システムに従わず「丸ごと」インストールされるサードパーティ製アプリケーションのスペースです。 4. **`/var` (変動するデータ):** ログファイルやデータベースファイルのように、システム運用中に内容が変化し続けるデータが蓄積されます。 --- ## 4. 実践ガイド:自分のファイルはどこに置くべきか? {#sec-456fc34dbec8} 状況によってファイルを置く場所は異なります。このルールを守るだけで、「[[Linux]]を理解している人」だと評価されるでしょう。 - **自分だけが使う簡単なスクリプト:** `~/bin` (ホームディレクトリの下にbinフォルダーを作成)または `~/.local/bin` - **システム全体で使う自作プログラム:** `/usr/local/bin` (パッケージマネージャーと衝突しない安全な共通スペース) - **外部からダウンロードした大規模な商用ソフトウェア:** `/opt/アプリケーション名` - **絶対に触れてはいけない場所:** `/usr/bin` (システムパッケージマネージャーが管理しているため、直接ファイルを置いたり削除したりすると、パッケージの破損原因となります。) --- ### 4行要約 {#sec-8f4228f1608f} 1. `/usr`は**ユーザー(User)データフォルダーではありません。** 2. システムが共通で使用する**プログラムとリソースの倉庫**です。 3. 個人のファイルは`/home`に、直接インストールした共通アプリケーションは**`/usr/local`**または`/opt`に置きましょう。(筆者は`/opt`にアプリケーションイメージをまとめています。) 4. 個人で使うスクリプトは、`~/.local/bin`ディレクトリを作成してそこで管理すると、かなり整理整頓されている感じがします。 これで`/usr`ディレクトリに関する疑問が少しは解消されましたでしょうか?[[Linux]]を愛するユーザーとして、この記事を通して多くの方々がLinuxについてさらに理解を深め、Linux OSの魅力にどっぷり浸っていただければ幸いです。