このページの本文へ

Linux操作の基本、ファイルやディレクトリ操作をコマンドでできるようになろう。

覚えておきたい必須コマンド30―その1・ファイルの基本操作

2001年05月31日 00時00分更新

文● 中野 賢

  • この記事をはてなブックマークに追加
  • 本文印刷

ディレクトリを移動するにはcdコマンドを使う。引 数には、移動したいディレクトリの名前を指定する。たとえば、/usrディレクトリに移動したいときは、次のようにする。

USER$ cd /usr

実行すると、カレントディレクトリが/usrディレクトリに移動しているはずだ。pwdコマンドで確認してみよう。

USER$ pwd
/usr

cdコマンドに移動先を指定しないで実行すると、ホームディレクトリに移動する。

USER$ cd
USER$ pwd
/home/ken-na

ここで、lsコマンドにaオプションを指定して実行してみよう。lsコマンドはディレクトリの内容を表示するためのコマンドだ。

USER$ ls -a
.              .emacs    .xemacs
..             .emacs20  Desktop
.Xdefaults     .gimp     howto
.bash_history  .gtk      memo.txt
.bash_profile  .kde
.bashrc        .kderc

表示されたディレクトリの中に、ドット(.)と2つのドット(..)がある。「.」はカレントディレクトリを指し、「..」は親ディレクトリを指している。したがって、

USER$ cd .

は、カレントディレクトリへの移動を実行している。もちろん、ディレクトリ位置は変わらない。

USER$ cd ..

とすれば、親ディレクトリに移動する。pwdコマンドを実行してみよう。

USER$ pwd
/home

カレントディレクトリが/homeディレクトリになったことを確認できた。再び、lsコマンドでディレクトリの内容を表示してみよう。

USER$ ls -a
.  ..  ftp  httpd  ken-na  samba

当然、ここにも.と..がある。さらに親ディレクトリに移動してみる。カレントディレクトリはルートディレクトリになる。

USER$ cd ..
USER$ pwd
/
USER$ ls -a
.   boot home       mnt  sbin var
..  dev  lib        proc tmp
bin etc  lost+found root usr

ルートディレクトリにも「.」と「..」が存在する。カレントディレクトリを意味する.は理解できるにしても、親ディレクトリを意味する「..」があるのはおかしいような気がするかもしれない。これは、Linuxのファイルシステムの性質上、すべてのディレクトリが「.」と「..」を持っているという理由で表示されているだけだ。ルートディレクトリの上には何もない。

今度は、ディレクトリ階層を降りていってみよう。サブディレクトリに移動するときには、先頭に/を付けない。カレントディレクトリがルートディレクトリの場合は、/を付けても付けなくても同じだが、ルートディレクトリ以外の場所では指定している位置が異なってしまう。

USER$ cd usr
USER$ cd X11R6
USER$ cd lib
USER$ cd X11/locale/C
USER$ pwd
/usr/X11R6/lib/X11/locale/C

ディレクトリが存在することを知っていれば、複数のディレクトリ名を/で区切って指定してもかまわない。だが、指定したディレクトリが存在しない場合は、次のようなエラーとなる。

USER$ cd X11/locale/japanese
bash: X11/locale/japanese: No such file or directory

X11が存在しないときでも、localeでも、japaneseでも、どこかのディレクトリが存在していなければエラーとなる。ディレクトリがあるかどうか、不安な場合は少しずつ移動するほうがよいだろう。

先頭を/で始めない指定での移動では、カレントディレクトリを基準にしている。このようなパス表記を相対パスと呼ぶ。対して、先頭が/で始まる、pwdの表示のようなパス表記を絶対パスと呼ぶ。

コマンドラインでの操作は、オプションでファイルやディレクトリの位置を指定することが多い。目的のファイルやディレクトリの記述を短くすれば、それだけキー入力を少なくすることができる。特に、「.」と「..」は頻繁に用いるので、いろいろと試して慣れてほしい。

Linuxのディレクトリツリーは、おおよそ、次のように分類されている。

表1 Linuxのディレクトリ分類
ディレクトリ 目的
bin プログラムファイル
boot システムの起動に用いるファイル
dev デバイスファイル
etc システム設定ファイル
home 各ユーザーのホームディレクトリ
mnt ファイルシステムを一時的にマウントするのに使う
proc プロセステーブル
root rootユーザーのホームディレクトリ
sbin システム管理用途のプログラムファイル
tmp 一時的なファイルの置き場所に使う
usr ユーザーが日常利用するプログラムやライブラリ
var ログファイルやスプールなど

X Window Systemでのカレントディレクトリ

コンソールやtelnetでログインしたときには、カレントディレクトリは必ずホームディレクトリになっている。

しかし、X Window System上での、ktermなどの端末エミュレータを開いたときは、ホームディレクトリであるとは限らない。

たとえば、ルートウィンドウから起動したktermではホームディレクトリがカレントディレクトリになっている。けれども、すでに開いているkterm上から、

USER$ cd /tmp

として、/tmpディレクトリに移動後、

USER$ kterm &

として起動すると、そのktermのカレントディレクトリは/tmpになっている。

同一のディレクトリで複数の端末エミュレータを開いて作業をしたい場合は、最初に移動しておいて、そこでktermやXアプリケーションを実行すると便利だ。

週刊アスキー最新号

編集部のお勧め

ASCII倶楽部

ASCII.jp Focus

MITテクノロジーレビュー

  • 角川アスキー総合研究所
  • アスキーカード
ピックアップ

デジタル用語辞典

ASCII.jp RSS2.0 配信中