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のディレクトリツリーは、おおよそ、次のように分類されている。
ディレクトリ | 目的 |
---|---|
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アプリケーションを実行すると便利だ。