現在地とディレクトリ移動
Linuxの操作はまず「いま自分がどのフォルダにいるか」を意識することから始まります。pwd で現在地を表示し、ls で中身を一覧し、cd で別のフォルダへ移動します。フォルダの位置は / から始まる絶対パスと、現在地を基準にした相対パスの2通りで指せます。
ターミナルでファイルを触るとき、まず自分がいまどのフォルダにいるかを知ることが出発点になる。これを示すのがカレントディレクトリだ。地図でいう「現在地」にあたる。
グラフィカルな画面なら、フォルダのアイコンを見れば自分がどこにいるか一目で分かる。だが黒い画面(ターミナル)に向かうと、その手がかりが消える。
現在地を意識するのが大事なのは、ファイル名だけを指定したコマンドが、原則としてこのカレントディレクトリの中身に対して働くからだ。
つまり同じ ls や cp というコマンドでも、いまどこにいるかによって結果がまるで変わる。だから操作を始める前に「いまどこにいるか」を確かめる癖が、そのまま事故を防ぐ第一歩になる。
Linuxではファイルの置き場所であるディレクトリそのものを操作対象として強く意識する。ここを最初の土台として固めておきたい。
📍 現在地を確かめる pwd
現在地を確かめるコマンドが pwd だ。print working directory の頭文字で、実行すると /home/user01 のように、ルートから現在地までの道のりがそのまま出力される。
実はプロンプトにもヒントが隠れている。[user01@localhost ~]$ という表示のうち、~ の部分にカレントディレクトリが示されている。
~ はホームディレクトリ(ユーザ user01 なら /home/user01)を表す記号だ。シェルを起動した直後は、ここが現在地になっている。
ディレクトリを移動すると、この ~ の位置の表示が universe のように変わっていく。だからプロンプトを見るだけでも、おおよその現在地が分かる。
ただしプロンプトの形は設定で変えられるので、それを頼り切るのは危うい。確実に知りたいときは迷わず pwd を打つ。今どこにいるか分からなくなったとき、pwd は必ず正確な答えを返してくれる。
👀 周りに何があるかを見る ls
現在地が分かったら、次に知りたいのは「ここには何が入っているのか」だ。それを見せるのが ls で、ディレクトリの内容を一覧表示するコマンドである。
引数なしで ls とだけ打てばカレントディレクトリの中身が表示される。ls /etc のようにディレクトリを引数で渡せば、その場所の中身が表示される。
一覧したはずなのに「何も無い」と見えることがある。先頭がドットで始まる隠しファイル(.bashrc など)が、既定では表示されないからだ。
そこで -a を付けると、隠しファイルまで含めて表示される。設定ファイルの多くはこの隠しファイルなので、「何も無いはずなのに」と思ったら -a を試すのが定石だ。
さらに -l を付けると1行に1ファイルずつ、権限・所有者・サイズ・更新日時といった詳細情報を並べた「長い形式」になる。
-a と -l はまとめて ls -al や ls -la のように書ける。-h を足した ls -alh では、サイズが 4.0K や 12M のように人間に読みやすい単位で表示される。
ls の表示を見ても、それがファイルなのかディレクトリなのか、一見して見分けがつかないことがある。見分ける鍵は行頭にある。
ls -l の行頭が d で始まっていればディレクトリ、- なら通常ファイルだ。この1文字は、次に学ぶパーミッションの話ともつながる重要な手がかりになる。
一覧が多すぎて画面を流れてしまうときは、ls -l /etc のようにディレクトリを指定したうえで、後述するパイプで less などに渡すと落ち着いて読める。
🚶 別の場所へ移る cd
現在地と中身が分かったら、別の場所へ移りたくなる。そのとき使うのが cd(change directory)で、引数に移動先を指定する。
cd universe でカレントディレクトリ直下の universe へ入り、cd .. でひとつ上の階層へ戻る。
この .. は「親ディレクトリ」を指す特別な名前で、. は「現在地そのもの」を指す。../.. のようにつなげれば2階層上へ一気に戻れる。
引数を付けずに cd だけを実行すると、どこにいてもホームディレクトリへ一足飛びに戻れる。cd - とすると、直前にいたディレクトリへ戻れる。
移動したあとは pwd やプロンプトの表示で、狙った場所に来られたかを確認したい。存在しない場所を指定すると「そのようなファイルやディレクトリはありません」とエラーになるので、タイプミスにも気づける。
🧭 絶対パスと相対パス
同じ移動先を指すのに、書き方が2通りある。これがディレクトリ移動の理解の山場だ。
ルートディレクトリ(/)を起点にして上から順に書く方式を絶対パスという。/home/user01/universe のように、必ず / で始まる。フルパスとも呼ばれ、自分がどこにいても同じ場所を確実に指せるのが長所だ。
一方、いまのカレントディレクトリを起点にして、そこからの差分だけで書く方式を相対パスという。たとえば universe/galaxy や、ひとつ上を経由する ../andromeda のような書き方だ。
先頭に / が付いていなければ、シェルはすべて相対パスとして解釈する。この「先頭が / かどうか」が、両者を見分ける唯一の目印になる。
同じ場所には絶対パスでも相対パスでもたどり着ける。たとえばカレントが /home/user01 のとき、cd /home/user01/universe/galaxy と cd universe/galaxy はまったく同じ結果になる。
選び方は状況しだいだ。設定ファイルのように位置が決まっているものは絶対パスで確実に指す。いま作業しているフォルダの近くを触るときは、短く書ける相対パスで素早く。この使い分けが実務の感覚になる。
スクリプトの中では、実行する場所に左右されないよう絶対パスを選ぶことが多くなる。
⌨ Tab補完と履歴で楽をする
長いパスを一字一句手で打つのは現実的ではない。これを越えるのが、入力の途中で Tab キーを押す「補完」だ。
たとえば cd uniまで打って Tab を押せば universe に補完される。候補が複数あるときは、もう一度 Tab を押すと候補一覧が出る。これだけでタイプ量もミスも激減する。
あわせて、過去に打ったコマンドを上下キーでたどる履歴や、Ctrl + r でキーワード検索する機能を使えば、似たコマンドを何度も打ち直さずに済む。
「pwd で現在地を確かめ、ls で周りを見て、cd で移る」。この3つの往復に補完と履歴を重ねたものが、Linux操作のいちばん土台になるリズムだ。次は、その場所の中でファイルそのものを作ったり消したりする操作に進む。