Macを使っていると、たまに「これ何?」というファイルに出会います。
/bin、/usr、/etc、~/.zshrc、~/.ssh、~/.config。
Finderでは見えなかったのに、ターミナルで見ると急に出てくる。しかも名前が短い。説明もない。怖い。
ただ、ここで一番やってはいけないのは「よくわからないから消す」です。
見えないファイルは、ゴミではありません。多くはPCの裏側で動いている配線です。配線なので、普段は見えません。見えないからこそ、消す前に役割を見ます。
この記事では、bin や .zshrc のような不可視ファイルを、壊さず理解するための見方を整理します。
デスクトップやFinderに見えているものは、PCの表面です。
書類、画像、アプリ、ダウンロード。普段の作業はここだけで済みます。だからOSは、裏側のファイルをわざわざ見せません。
でも、PCは表面だけでは動きません。
ターミナルで使うコマンドの置き場。アプリの設定。SSHの鍵。Gitのユーザー名。キャッシュ。ログ。こういうものが、見えない場所に置かれています。
人間の体で言えば、血管や神経みたいなものです。
普段見えないから不要、ではありません。普段見えないから、むしろ雑に触らない方がいいです。
最初に持つべき感覚はこれです。
「不可視ファイル = 怪しいファイル」ではなく、「不可視ファイル = 表に出すと邪魔な管理ファイル」です。
ここを間違えると、.zshrc も /bin も .ssh も、全部同じ「消していい謎ファイル」に見えてしまいます。
不可視ファイルは、まず2つに分けると一気に見やすくなります。 1つ目は、名前がドットで始まるファイルです。 たとえば、こういうものです。
~/.zshrc~/.ssh~/.gitconfig~/.config~/.cache
Unix系の世界では、名前の先頭が . のファイルやフォルダは通常表示されません。これをドットファイルと呼びます。
ドットファイルは、だいたい「自分用の設定」です。
ターミナルの設定、Gitの設定、SSHの設定、アプリごとの設定。自分のホームディレクトリ ~ の中にあるなら、まずユーザー設定だと考えて大丈夫です。
2つ目は、OS側のシステム領域です。
たとえば、こういう場所です。/bin/usr/etc/var/private/System
こちらはドットで始まりません。それでもFinderでは見えにくかったり、普通の操作対象ではなかったりします。
つまり、/bin と ~/.zshrc は同じ「不可視っぽいもの」でも、立場が違います。
/bin はOS側の道具箱です。~/.zshrc は自分のターミナル設定です。
この違いだけで、触っていいかどうかの判断がかなり変わります。bin は binary の略です。
ざっくり言えば、実行できるコマンドやプログラムを入れておく場所です。
Macでは、似たような bin がいくつも出てきます。
/bin/usr/bin/usr/local/bin/opt/homebrew/bin~/bin
ここでややこしいのは、「binという名前のフォルダが1つだけある」わけではないことです。
/bin や /usr/bin には、OS標準のコマンドが入っています。ls、cat、cp、mv、zsh など、ターミナルで何気なく使っている基本コマンドの多くがこのあたりにあります。
一方で、/opt/homebrew/bin にはHomebrewで入れたツールが並びます。node、python3、git、ffmpeg などを後から入れた場合、このあたりに入っていることが多いです。
ここで重要になるのが PATH です。
ターミナルで node と打った時、MacはPC内の全フォルダを探しているわけではありません。PATH に書かれている場所だけを、左から順番に探します。
確認するなら、この3つです。echo $PATH
which node
type -a python3
たとえば、使っていないツールの bin が PATH の先頭に残っているとします。
その場合、新しく入れたツールより、古い方が先に見つかることがあります。つまり、本人は最新版を使っているつもりでも、ターミナルは古い実行ファイルを呼んでいることがあります。
これが PATH まわりの怖さです。
bin は消す場所ではありません。見る場所です。
「どの道具箱が、どの順番で探されているか」を見る場所です。
.zshrc は、zsh用の設定ファイルです。
Macでは Catalina 以降、標準シェルが zsh になりました。ターミナルを開いてコマンドを打つ時、zshは ~/.zshrc を読みます。
.zshrc に入っていることが多いのは、こういう設定です。
PATH の追加export PATH="/opt/homebrew/bin:$PATH"
これは「Homebrewのコマンド置き場を先に探して」という意味です。
.zshrc は、自分で編集してよいファイルです。ここはOS本体ではありません。自分のターミナル環境を整えるためのメモです。
ただし、何でも書いていいわけではありません。
存在しないパスが残る。昔使っていたツールの設定が残る。起動時に重い処理を走らせる。こういう状態になると、ターミナルが遅くなったり、どのツールが動いているのか分かりにくくなったりします。
zsh関連のファイルは、名前も似ています。
.zshenv は、zsh起動時にほぼ常に読まれます.zprofile は、ログインシェルで読まれます.zshrc は、対話的なターミナルで読まれます.zlogin は、ログイン処理の後半で読まれます
普段のターミナル設定は、基本的に .zshrc で見ます。
逆に、.zshenv に何でも入れるのは避けた方がいいです。影響範囲が広く、思わぬ場面で読み込まれます。自分のホームディレクトリを見るなら、まずこれです。
ls -la ~
普段見えないファイルが一気に出てきます。 ここで大事なのは、名前だけで判断しないことです。見慣れないものが多いですが、よく出てくるものには役割があります。
~/.ssh
SSH接続に使う鍵や設定が入ります。GitHub、サーバー接続、社内サーバーへのログインで使うことがあります。雑に移動すると、急にログインできなくなります。
~/.gitconfig
Gitのユーザー名、メールアドレス、エイリアス、エディタ設定などが入ります。Git操作の名刺みたいなものです。
~/.config
多くのCLIツールやアプリが設定置き場として使います。中には重要な設定も、消しても再生成される設定も混ざります。フォルダ名だけで判断しにくい場所です。
~/.local
ユーザー単位で入れたコマンドやデータが入ることがあります。Python系ツールやCLIツールで使われます。
~/.cache
キャッシュ置き場です。再生成できるものが多いですが、作業中のアプリが使っている場合もあります。触るならアプリを閉じてからです。
~/.zshrc
ターミナル設定です。PATH、alias、開発環境の初期化が入ります。
~/.npm、~/.bun、~/.pyenv
開発ツールごとの管理領域です。Node、Bun、Python環境に関係します。プロジェクトで使っているなら、先に確認します。
.DS_Store
Finderがフォルダの表示設定を保存するファイルです。見つけると気になりますが、OSが勝手に作る管理ファイルです。 こうして見ると、ホーム直下のドットファイルは「謎のゴミ」ではありません。 自分の作業環境を支える設定の倉庫です。
不可視ファイルを見る時は、「消していいか」ではなく「どの危険度か」で見ます。 触ってよいものは、だいたい次のようなものです。
.zshrc や .gitconfig
逆に、触る前に止まるものがあります。.ssh.gnupg.aws.kube.git.config 配下の用途不明フォルダ.zshenv
このあたりは、認証情報や開発環境とつながっていることが多いです。消すと、ログインできない、デプロイできない、Gitが壊れたように見える、ということが起きます。
基本的に触らないものもあります。/bin/usr/bin/System/Library/private/etc/var
ここはOS側の領域です。権限を上げれば触れる場合もありますが、それは「触ってよい」という意味ではありません。
自分のホーム直下は、必要なら整理できます。
システム領域は、整理する場所ではありません。理解する場所です。不可視ファイルを見つけた時、いきなり削除判断に入らない方がいいです。 順番はこれです。
/Users/自分/ 配下なのか、/System や /usr 配下なのかを見ます。ホーム配下ならユーザー設定の可能性が高いです。ルート直下やシステム配下ならOS部品の可能性が高いです。.zshrc のように役割がはっきりした名前か、アプリ名らしい名前か、ランダムな名前かを見ます。du -sh <path>
大きいから不要とは限りません。小さいから安全とも限りません。ただ、判断材料にはなります。 4. 参照元を探します
rg -n "<名前>" ~/.zshrc ~/.zprofile ~/.config 2>/dev/null
どこかから参照されているなら、先に関係を見ます。 5. 消さずに退避します 不要だと判断しても、いきなり消しません。 ゴミ箱に移動します。ターミナルやアプリを再起動します。問題が出たら戻します。 判断基準は「消せるか」ではありません。 「戻せる状態で試せるか」です。
不可視ファイルは、PCの裏側を支える設定と部品です。
/bin は、OSやターミナルが使うコマンドの道具箱です。
.zshrc は、ターミナル起動時に読む自分用の設定メモです。
ドットファイルは、アプリや開発ツールが使うユーザー設定です。
システム領域は、編集する場所ではなく、理解する場所です。
最後に、判断ルールを3つだけ覚えておけば十分です。