はじめに
「あれ、ダウンロードしたファイルどこだ?」
「インストールしたアプリってCドライブのProgram Filesみたいなとこに入るんじゃないの?」
Windowsから初めてUbuntuの黒い画面(ターミナル)に降り立った時、私は完全に方角も分からない深いダンジョンの奥で迷子になっていました。
「Cドライブが見つからない! Dドライブもない! 私の居場所はどこ!?」
パニックになって cd ../../../ と適当に上の階層を目指して彷徨い、最終的に変な設定ファイルを消しかけて焦ったあの日の自分のような新米勇者に向けて、Linuxの「世界地図」の歩き方を解説します。(僕はドラクエ派です)
ドライブという概念を捨てよ
Windowsでは、物理的なハードディスクごとに C:\ や D:\ という「ドライブ」が区切られています。複数のマンションが建っているようなイメージですね。
しかし、Linuxの世界では違います。
すべては「1本の大きな木(ツリー)」から始まっています。(世界樹の概念とか懐かしい、、ちなみにドラクエ9は死ぬほどやりました)
ルート(根っこ)とは何か
Linuxの世界の原点、それが /(ルートディレクトリ)です。
すべてのファイル、すべてのフォルダは、この1つの根っこ(/)から枝分かれして生い茂っています。USBメモリを挿そうが、別のハードディスクを繋ごうが、すべてはこの大きな木のどこかの枝葉としてくっつきます(マウントといいます)。
ターミナルで cd / と打ってから ls を叩くと、この木の根元に広がる光景が見えます。
cd /
ls
# するとこんなフォルダたちが現れる
bin boot dev etc home lib opt root sbin usr var
主要な枝(ディレクトリ)を擬人化してみる
この根元にある謎のアルファベット三文字のフォルダたち。最初は意味不明で怖いですが、役割を知ると一気に親近感が湧きます。最初はetc?高速のあれ?とか勘違いする方もしかしたらいらっしゃるかもしれない。
-
/home(住人たちのマンション)
ユーザー個人のデータが入る場所。あなたのアカウント名がuserなら、/home/userがあなた専用の部屋(ホームディレクトリ)です。デスクトップやダウンロードフォルダもここにあります。 -
/etc(巨大なコントロールルーム)
エトセトラと読みますが、ここは「システム全体の設定ファイル」が集まる超重要エリアです。Nginxの設定を変えたい? ネットワークの設定をいじりたい? 全てはこの部屋の中にあります。 -
/var(どんどん膨れ上がる倉庫)
バリアブル(可変)の略。ログファイルやデータベースのデータなど、「日々サイズが大きくなったり変化したりするファイル」を隔離しておく巨大な倉庫です。エラーログを見たい時は無意識に/var/logを目指すようになります。(僕も監視作業をするときは真っ先にここを見に行きます。目をつぶってもたどり着ける自信ある) -
/binと/sbin(道具箱)
私たちが普段叩いているlsやcd、mkdirといったコマンド(プログラム本体)が放り込まれている道具箱です。
おわりに:黒い画面の中で「方角」が分かる快感
Cドライブという概念を捨て、「すべては根っこ(/)から繋がっている」と理解できた時、私の中で見えなかった世界地図がいきなりクリアに広がりました。
「Webサーバーの設定を変えたいから、cd /etc/nginx に向かおう」
「エラーが起きた!原因を探るために tail -f /var/log/syslog を見よう」
かつてはネットのコピペでしか移動できなかった自分が、今は自分の意思で目的のディレクトリに一発で飛べる。
「黒い画面の中で、自分が今どこにいて、どこに向かおうとしているのか」が分かる安心感。これこそが、Linuxビギナーが最初に乗り越えるべき、そして一番気持ちいい壁なのです。
今夜はぜひ、cd / への小旅行を楽しんでみてください。