はじめに
こんにちは!ITスクールRareTECHにてCS(Customer Support)を担当している池村です。今回の記事はLinuxやMacにおけるターミナルのホームディレクトリについてです。
私も初学者の頃、ホームディレクトリを汚しまくって挙動がおかしくなった事がありますので、今回は初心者がやりがちな事例を上げつつ解説します。
Gitの管理について
GitHubの活用はエンジニアにとって必須なのですが、こちらが少々厄介で、ホームディレクトリでgit init
を行うと面倒なことになります。
git init
コマンド
git init
コマンドは、コマンドを叩いたディレクトリをGit管理下に置きます。Gitの特徴は、ファイルの更新や削除などのバージョンを管理してくれることにあります。
ホームディレクトリは大事な設定ファイル等が多々あり、特にSSH接続をするための.sshディレクトリなどがGit管理下に置かれることは、セキュリティリスクになってしまいます。
git status
あとはgit status
というコマンドがあるのですが、このコマンドを叩いた時に膨大な量のファイルが出てくることになり、本来確認したいファイル類がよくわからなくなります。
git clone
ホームがGit管理下にある状態で、ホーム以下のディレクトリにgit clone
を行うと、うまくクローンできない可能性があります。
解決方法
Gitコマンドの練習のために、ホームディレクトリで誤ってgit init
をしてしまった場合は解決方法があります。
①ls -a
を行う
ls -a
を叩いてみて、ホームディレクトリに.gitという隠しディレクトリがある場合、誤ってgit init
しています。
ls -a
②.gitディレクトリを削除する
もし.gitディレクトリがあった場合、こちらのディレクトリを削除することで、Git管理が解除されます。
rm -rf ~/.git
ホームディレクトリでgit init
は絶対にしない!
Pythonの仮想環境について
次にPythonの仮想環境について解説します。
Pythonを触り始めたばかりの人は、仮想環境の概念に混乱すると思います。ホームディレクトリに仮想環境を作ると、その他のPythonプロジェクト内の仮想環境と競合する可能性が高いです。特に最初に学習するであろう、venvという仮想環境作成コマンドには注意です。
仮想環境とは何か?
Pythonの仮想環境とは、とあるディレクトリの中でアプリを作成する場合に、そのディレクトリの中だけで必要なライブラリを反映・使用することができる、薄い膜のようなものです。この膜を張っておくことで、他のディレクトリにある他のPythonアプリで使っているライブラリと競合することなく安全に利用することができます。
venv仮想環境作成方法
※Python3が入っている前提です。
python3 -m venv test
上記をホームディレクトリで叩くのはやめてください。
mkdir test_project && cd test_project
python3 -m venv venv
source venv/bin/activate # macOS/Linux
venv\Scripts\activate # Windows
上記のように、ホームディレクトリに一つ新規ディレクトリを作成した上で、その中で仮想環境を作りましょう。
ホームで仮想環境を作ってしまった場合
仮想環境で厄介なのは、仮想環境の命名が自由なことです。
python3 -m venv test
これが厄介で、気づかないうちに適当な名前でホームに仮想環境を作って、その存在を忘れている可能性が高いんですね。
ホームによくわからない隠しディレクトリがあった場合は、そのディレクトリに入って中を確認しましょう。
中身が以下のようになっていたら、それは仮想環境です。
test/
├── bin/ # 実行ファイル (Windows では Scripts/)
├── include/ # C ヘッダファイル (拡張モジュール用)
├── lib/ # インストールされた Python パッケージ
└── pyvenv.cfg # 仮想環境の設定ファイル
私が前にClaudeのAPIをテストした際も、以下のように作っていました。
私はこの時、claude-envという名前を付けていたようですね。
解決方法
これはGitの時と一緒で、このディレクトリを削除してしまえば解決します。
rm -rf test # 仮想環境名がtestの場合
その他を表でまとめておきます
コマンド | 理由・リスク |
---|---|
git init |
~/.git/ が作成され、誤って git add . でホーム全体を管理する危険がある |
python -m venv ~/venv |
~/venv に仮想環境を作ると、複数のプロジェクトで管理しづらくなる |
terraform init |
ホームに terraform.tfstate や .terraform/ ができ、設定が混乱する |
docker-compose up |
ホームにコンテナデータ (docker-compose.yml の影響) を作ってしまう可能性がある |
npm init |
package.json がホームにでき、どのプロジェクトにも影響する可能性がある |
yarn init |
npm init と同様、意図しないパッケージ管理になる |
cargo init |
Rust のプロジェクトをホームに作成し、.git などができる |
go mod init example.com/mymodule |
go.mod をホームに作成し、Go の依存管理が壊れる可能性がある |
make |
ホームに Makefile があると、意図しないコマンドが実行される可能性がある |
cmake . |
ビルド設定がホームにでき、設定ファイルが散らばる |
dotnet new console |
.csproj などのプロジェクトファイルがホームに作られ、管理が面倒になる |
結論、ホームディレクトリは汚さないで!
ついでにダウンロードフォルダも
ダウンロードフォルダは何かしらダウンロードすると、貯まっていきますよね。
これも定期的に掃除しましょう。アプリ等をダウンロードするための.dmgや、画像とか、一度使ったらほぼ使わないものが貯まりに貯まって、目的のものが瞬時にわからなくなります。
定期的なお掃除を推奨します。
私は10個くらいになったらゴミ箱に入れて、完全削除する習慣がついています。
※この記事執筆時の私のダウンロードフォルダ👇
おわりに
最後のダウンロードフォルダに関しては、細かいことやってんな〜くらいで見てもらっていいですが、環境を綺麗にしておくことはとても大事です。
なぜこの記事を書こうと思ったかですが、私はITスクールのメンターもやっていまして、受講生が誤って作ったものがホームに蓄積しており、その掃除・復旧をする事が多かったからです。
この作業に終止符を打ちたく、この記事を書きました。
まあとはいえ、自分が購入した初代のMacも相当汚れていました。2台目はかなり丁寧に使っています。
余談
デスクトップのお掃除もしましょう!せっかくの美しい壁紙見えません!