Linux入門「はじめてのコマンドライン」- Part.2

※この記事は専門学校の講義用に作成されたものです

前回はLinuxでの基本的なコマンドラインの操作方法、ファイルやディレクトリの扱い方について練習しました。今回はディレクトリ(フォルダ)の「移動方法」について学習します。

これまでのお話

前回からの続きになります。

環境設定や基本的な利用方法など前回のページの内容を理解した上でご覧ください。 blog.katsubemakito.net

ディレクトリを移動する

前回はTerminalを立ち上げていくつかのコマンドを実行しましたが、特定のディレクトリ(フォルダ)内から外のファイルを触りませんでした。今回はLinux内の様々なディレクトリを移動しながらどのような構成になっているか探検してみようと思います。

ディレクトリを移動するにはcdコマンドに移動したいディレクトリを指定し実行します。cdは「change directory」の略称です。

ディレクトリの下へ移動する

最初に適当な名前のディレクトリを作成します。また適当なファイルをこの中にコピーしておきます。ここでは前回作成したhello.txtをコピーしました。

[neec@localhost ~]$ mkdir aisatsu

aisatsuディレクトリの中へ移動するためにはcdコマンドを利用します。移動できたらlsコマンドでファイルの一覧を確認しておきましょう。先ほどコピーしたファイルがありましたか?

[neec@localhost ~]$ cd aisatsu
[neec@localhost aisatsu]$ ls
hello.txt

ひとつ上に戻る

では元の場所に戻ります。一つ上の階層に戻るにはcd ..と入力します。

[neec@localhost aisatsu]$ cd ..
[neec@localhost ~]$

..は特別なディレクトリで、これを指定すると、どこにいても一つ上に戻ることができます。

複数の階層を一度に移動する

では少し応用してみます。「aisatsu」の下に「japan」という名前のディレクトリを作成します。先ほどのhello.txtkonnitiha.txtという名前でjapanの下へコピーしておきます。

[neec@localhost ~]$ cd aisatsu
[neec@localhost aisatsu]$ mkdir japan

一度最初のディレクトリへ戻ります。

[neec@localhost aisatsu]$ cd ..
[neec@localhost ~]$

この状態からjapanへ一発で移動するためには次のようにディレクトリをスラッシュ(/)で区切って入力します。

[neec@localhost ~]$ cd aisatsu/japan
[neec@localhost japan]$

ここでは2階層だけでしたが、これが例え10階層あったとしても同じようにスラッシュで区切って指定します。

[neec@localhost ~]$ cd aisatsu/japan/tokyo/hachiouji/katakura

余談ですがWindowsではこの区切り文字をスラッシュ(/)ではなくバックスラッシュ()で表現します。些細なことですがこういった部分からもOSの文化の違いが見て取れますね。

特別なディレクト

Linuxには「ルート」「カレント」「ホーム」という特別な名前を持ったディレクトリが存在します。これもそれぞれ覚えておきましょう。

ルートディレクト

一番上の階層であるルートディレクトへ移動してみます。単に/とだけ指定した場合は一番上の階層であるルートディレクトリを意味します。

[neec@localhost ~]$ cd /

lsコマンドでどのようなファイルやディレクトリがいるか覗いてみましょう。

[neec@localhost /]$ ls
bin   dev  home  lib64  mnt  proc  run   srv  tmp  var
boot  etc  lib   media  opt  root  sbin  sys  usr

それぞれのディレクトリの用途は以下のようになります。最初からすべてを覚えなくても大丈夫です。必要に応じて一覧を参照してください。

ディレクト 内容
bin コマンドなど実行可能なファイル
boot OSの起動に必要なファイル
dev バイス用のファイル
etc 設定ファイル
home 一般ユーザーのホームディレクト
lib,lib64 共有ライブラリ
mnt,media 外付けHDDなどの外部機器をマウントした際に利用する。
mntはユーザー、mediaはOSが使う。
opt 追加アプリケーション
proc 実行中のCPUやメモリなどの情報を管理
root 管理者(root)用のホームディレクト
run 実行中のプログラムを管理する
sbin 管理者用の実行可能なファイル
srv Webサーバやファイル(FTP)サーバのユーザー用のディレクトリなどに利用される
sys OSの情報
tmp 一時的なファイル
usr 全ユーザーで利用するアプリケーションのインストール先
var ログファイルやデータファイルなど

ルートディレクトリからこの中のディレクトリへ移動するには同じようにcdコマンドを利用します。

[neec@localhost /]$ cd bin

再びルートディレクトリへ戻るにはcd ..でも良いのですが、もう一度cd /コマンドを入力しても戻ることができます。cd /を入力すると自分がどこにいたとしても必ずルートディレクトリへ移動することができます。

[neec@localhost bin]$ cd /
[neec@localhost /]$

カレントディレクト

先ほどは一番上の階層であるルートディレクトリへ移動し、そのあとbinディレクトリへ潜りました。 このようにコマンドラインでは自分が立っている位置をcdコマンドでどんどん変更することができます。自分が今現在立っているディレクトリのことを「カレントディレクト」と呼びます。

カレントディレクトリはpwdコマンドで確認することができます。

[neec@localhost bin]$ pwd
/bin

pwdは「print name of current/working directory」の各頭文字を取ったものです。正式名称は覚えなくても大丈夫です、会話の中で出てくることはありませんw

ホームディレクト

もうひとつ特別なディレクトリ「ホームディレクト」があります。

Linuxなどのサーバは複数人で同時に利用することを想定して開発されています。実際に運用していると他の人に見られたくないファイル、もしくは見られても良いが自分しか使わないファイルをこの「ホームディレクトリ」へ保管します。ホームディレクトリはルートディレクトリの真下にいる「home」の下にユーザー毎に作成されます。

[neec@localhost /]$ cd /home
[neec@localhost home]$ ls
neec

ホームディレクトリはチルダ(~)という記号で表現することもできます。 ルートディレクトリにスラッシュ(/)だけで移動できたように、自分自身のホームディレクトリにもチルダ(~)だけで移動することができます。

[neec@localhost ~]$ cd /bin
[neec@localhost bin]$ pwd
/bin

[neec@localhost bin]$ cd ~
[neec@localhost ~]$ pwd
/home/neec

なおホームディレクトリはTerminalを起動した際の最初のカレントディレクトリでもあります。

続き

blog.katsubemakito.net