はじめに
Linux や macOS で作業していると、
ホームディレクトリ直下に大量のドットファイルが増えていきます。
~/.zshrc
~/.vimrc
~/.bash_history
~/.cache
~/.config
~/.local
最初は気になりませんが、
環境を長く使うほど、
- 設定はどこにあるのか分からない
- 消してよいファイルが判断できない
- マシン移行が面倒
といった問題が顕在化します。
この混乱を整理するための 事実上の標準が
XDG Base Directory Specification です。
本記事では、
「XDG を使い始めたいが、何から学べばよいか分からない」
という人向けに、最初に押さえるべきポイントだけを整理します。
XDG とは何か(結論から)
XDG は一言で言うと、
設定・データ・キャッシュの置き場所を分離するルール
です。
「どこに何を置くか」を決めることで、
環境が 読める・消せる・移せる ようになります。
最初に覚えるべき XDG 変数は 3 つだけ
XDG には多くの仕様がありますが、
最初は この 3 つだけで十分です。
1. XDG_CONFIG_HOME
設定ファイルの置き場所
echo $XDG_CONFIG_HOME
多くの環境では、
~/.config
です。
例:
~/.config/zsh/~/.config/git/~/.config/nvim/
👉 **「設定はここ」**と即答できるようになります。
2. XDG_DATA_HOME
永続データの置き場所
echo $XDG_DATA_HOME
典型例:
~/.local/share
例:
- zsh の履歴
- アプリの内部データ
- 言語処理系のキャッシュ以外の成果物
👉 消すと困るが、設定ではないものが入ります。
3. XDG_CACHE_HOME
消してよいキャッシュの置き場所
echo $XDG_CACHE_HOME
典型例:
~/.cache
👉
ここは原則として
「困ったら消してよい」
場所です。
なぜ XDG を学ぶと生産性が上がるのか
理由は単純です。
1. 探さなくてよくなる
- 設定 →
~/.config - データ →
~/.local/share - キャッシュ →
~/.cache
という 脳内マップができます。
2. 壊すのが怖くなくなる
- キャッシュは消してよい
- データはバックアップ対象
- 設定は Git 管理できる
判断が即座にできます。
3. マシン移行が楽になる
-
~/.configを持っていけば設定が復元 - 不要なゴミを持っていかずに済む
まず最初にやる 3 分の確認
XDG を学び始めるなら、
まずは 自分の環境を確認するのが最短です。
echo $XDG_CONFIG_HOME
echo $XDG_DATA_HOME
echo $XDG_CACHE_HOME
次に、
ls $XDG_CONFIG_HOME
を実行してみてください。
👉これだけでもう XDG 準拠の環境です!
zsh / prezto を使っている人向けの補足
zsh や prezto は、
XDG と非常に相性が良いツールです。
例:
-
HISTFILEを~/.local/share/zsh/historyに置ける -
.zshrcを~/.config/zsh/に集約できる
つまり、
XDG を理解すると、zsh の理解も一段深くなります
まとめ
-
XDG は「設定整理のための思想とルール」
-
最初は 3 変数だけ覚えればOK!
- XDG_CONFIG_HOME
- XDG_DATA_HOME
- XDG_CACHE_HOME
-
学び始めは「確認」からで十分
-
生産性は 設定を増やすより、配置を理解することで上がります
XDG は派手な機能ではありませんが、
一度理解すると、環境全体が粛々と整っていきます。