🐧 Linux 総合学習プラットフォーム
基本操作・コマンド ・ 入門

現在地とディレクトリ移動

Linuxの操作はまず「いま自分がどのフォルダにいるか」を意識することから始まります。pwd で現在地を表示し、ls で中身を一覧し、cd で別のフォルダへ移動します。フォルダの位置は / から始まる絶対パスと、現在地を基準にした相対パスの2通りで指せます。

ターミナルでファイルを触るとき、まず自分がいまどのフォルダにいるかを知ることが出発点になる。これを示すのがカレントディレクトリだ。地図でいう「現在地」にあたる。

グラフィカルな画面なら、フォルダのアイコンを見れば自分がどこにいるか一目で分かる。だが黒い画面(ターミナル)に向かうと、その手がかりが消える。

💡
ポイントファイル名だけを指定したコマンドは、原則としてカレントディレクトリの中身に働く。だから「いまどこにいるか」の意識が事故を防ぐ第一歩になる。

現在地を意識するのが大事なのは、ファイル名だけを指定したコマンドが、原則としてこのカレントディレクトリの中身に対して働くからだ。

つまり同じ ls や cp というコマンドでも、いまどこにいるかによって結果がまるで変わる。だから操作を始める前に「いまどこにいるか」を確かめる癖が、そのまま事故を防ぐ第一歩になる。

Linuxではファイルの置き場所であるディレクトリそのものを操作対象として強く意識する。ここを最初の土台として固めておきたい。

//home/user01/home/user01/universecd universe→ 下の階層へ入るcd ..→ 上の階層へ戻るpwd→ いまの現在地を表示

📍 現在地を確かめる pwd

現在地を確かめるコマンドが pwd だ。print working directory の頭文字で、実行すると /home/user01 のように、ルートから現在地までの道のりがそのまま出力される。

pwd ……実行すると /home/user01 のように、ルートから現在地までのフルパスが1行で表示される。

実はプロンプトにもヒントが隠れている。[user01@localhost ~]$ という表示のうち、~ の部分にカレントディレクトリが示されている。

~ はホームディレクトリ(ユーザ user01 なら /home/user01)を表す記号だ。シェルを起動した直後は、ここが現在地になっている。

ディレクトリを移動すると、この ~ の位置の表示が universe のように変わっていく。だからプロンプトを見るだけでも、おおよその現在地が分かる。

コツプロンプトの形は設定で変えられるので頼り切らない。今どこか分からなくなったら、迷わず pwd を打てば必ず正確な答えが返る。

ただしプロンプトの形は設定で変えられるので、それを頼り切るのは危うい。確実に知りたいときは迷わず pwd を打つ。今どこにいるか分からなくなったとき、pwd は必ず正確な答えを返してくれる。

👀 周りに何があるかを見る ls

現在地が分かったら、次に知りたいのは「ここには何が入っているのか」だ。それを見せるのが ls で、ディレクトリの内容を一覧表示するコマンドである。

引数なしで ls とだけ打てばカレントディレクトリの中身が表示される。ls /etc のようにディレクトリを引数で渡せば、その場所の中身が表示される。

一覧したはずなのに「何も無い」と見えることがある。先頭がドットで始まる隠しファイル(.bashrc など)が、既定では表示されないからだ。

つまずき「何も無いはず」と思ったら ls -a を試す。先頭がドットの隠しファイル(.bashrc など)は既定で表示されない。設定ファイルの多くがこれだ。

そこで -a を付けると、隠しファイルまで含めて表示される。設定ファイルの多くはこの隠しファイルなので、「何も無いはずなのに」と思ったら -a を試すのが定石だ。

さらに -l を付けると1行に1ファイルずつ、権限・所有者・サイズ・更新日時といった詳細情報を並べた「長い形式」になる。

ls -al や ls -la でまとめて指定できる。ls -alh ならサイズが 4.0K や 12M のように人間に読みやすい単位で出る。

-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階層上へ一気に戻れる。

この .. は「親ディレクトリ」を指す特別な名前で、. は「現在地そのもの」を指す。../.. のようにつなげれば2階層上へ一気に戻れる。

引数を付けずに cd だけを実行すると、どこにいてもホームディレクトリへ一足飛びに戻れる。cd - とすると、直前にいたディレクトリへ戻れる。

移動したあとは pwd やプロンプトの表示で、狙った場所に来られたかを確認したい。存在しない場所を指定すると「そのようなファイルやディレクトリはありません」とエラーになるので、タイプミスにも気づける。

🧭 絶対パスと相対パス

同じ移動先を指すのに、書き方が2通りある。これがディレクトリ移動の理解の山場だ。

絶対パス(/ から書く)/home/user01/universe/galaxy必ず / で始まるどこにいても同じ場所を指す相対パス(現在地から書く)universe/galaxy先頭に / が付かないカレント /home/user01 が起点カレントが /home/user01 なら、この2つは同じ場所にたどり着く

ルートディレクトリ(/)を起点にして上から順に書く方式を絶対パスという。/home/user01/universe のように、必ず / で始まる。フルパスとも呼ばれ、自分がどこにいても同じ場所を確実に指せるのが長所だ。

一方、いまのカレントディレクトリを起点にして、そこからの差分だけで書く方式を相対パスという。たとえば universe/galaxy や、ひとつ上を経由する ../andromeda のような書き方だ。

💡
ポイント見分ける目印はただ一つ、先頭が / かどうか。/ で始まれば絶対パス、付いていなければシェルはすべて相対パスとして解釈する。

先頭に / が付いていなければ、シェルはすべて相対パスとして解釈する。この「先頭が / かどうか」が、両者を見分ける唯一の目印になる。

同じ場所には絶対パスでも相対パスでもたどり着ける。たとえばカレントが /home/user01 のとき、cd /home/user01/universe/galaxy と cd universe/galaxy はまったく同じ結果になる。

選び方は状況しだいだ。設定ファイルのように位置が決まっているものは絶対パスで確実に指す。いま作業しているフォルダの近くを触るときは、短く書ける相対パスで素早く。この使い分けが実務の感覚になる。

スクリプトの中では、実行する場所に左右されないよう絶対パスを選ぶことが多くなる。

⌨ Tab補完と履歴で楽をする

長いパスを一字一句手で打つのは現実的ではない。これを越えるのが、入力の途中で Tab キーを押す「補完」だ。

コツcd uni まで打って Tab を押せば universe に補完される。候補が複数なら、もう一度 Tab で一覧が出る。タイプ量もミスも激減する。

たとえば cd uniまで打って Tab を押せば universe に補完される。候補が複数あるときは、もう一度 Tab を押すと候補一覧が出る。これだけでタイプ量もミスも激減する。

あわせて、過去に打ったコマンドを上下キーでたどる履歴や、Ctrl + r でキーワード検索する機能を使えば、似たコマンドを何度も打ち直さずに済む。

「pwd で現在地を確かめ、ls で周りを見て、cd で移る」。この3つの往復に補完と履歴を重ねたものが、Linux操作のいちばん土台になるリズムだ。次は、その場所の中でファイルそのものを作ったり消したりする操作に進む。

この項目に出てくる用語

ディレクトリでぃれくとり
ファイルをまとめて入れる「フォルダ」のこと。
パスぱす
ファイルやディレクトリの「住所」。スラッシュで区切って表す。
絶対パスぜったいぱす
/ から始まる、現在地に依存しない完全な住所。
相対パスそうたいぱす
いまいる場所を基準にした住所。. は現在地、.. は1つ上。

関連コマンド

pwdlscd

▶ 学習アプリでこの続きを学ぶ・演習する