[小西ホームページ]   [目次・索引]   [前の授業]   [次の授業]

情報処理IIA(HTML入門)第8回

目次 索引
8.1 ファイルとディレクトリ
8.1.1 ディレクトリの役割
8.1.2 パス名
8.1.3 特別なディレクトリ
8.2 端末エミュレータ
8.2.1 端末装置
8.2.2 コマンド
8.2.3 オンラインマニュアル
8.3 ファイル管理コマンド
8.3.1 pwdコマンド
8.3.2 lsコマンド
8.3.3 lessコマンド
8.3.4 cdコマンド
8.3.5 cpコマンド
8.3.6 rmコマンド
8.3.7 mvコマンド
8.3.8 mkdirコマンド
8.3.9 rmdirコマンド
8.3.10 ワイルドカード
8.4 アンケート8
cdコマンド  cpコマンド  lessコマンド  lsコマンド  mkdirコマンド  mvコマンド  pwdコマンド  rmdirコマンド  rmコマンド 

8.1 ファイルとディレクトリ

8.1.1 ディレクトリの役割

8.1.2 パス名

情報処理Iでは、階層的ファイルシステムについて学びました。 ファイルシステムは、木の構造としてとらえると分かりやすくなります。 以下は、木の構造として描かれたファイルシステムの例です。

                             |
                       +-----+-----+---..
                       |           |
                     home         tmp
                       |           :
                 +-----+-----+---..
                 |           |
               b00a        b00c
                 |           :
           +-----+-----+---..
           |           |
        b00a001     b00a002
           |           :
     +-----+-----+-----------+-----------+
     |           |           |           |
   Mail       Maildir      WABI         WWW
     :           :           :           |
           +-----------+-----------+-----+-----+
           |           |           |           |
      index.html  index.html~    ip2a      mike.jpg
                                   |
                             +-----+-----+
                             |           |
                         ex1.html    ex1.html~
パス名pathname)とは、ファイルシステムにあるファイルやディレクトリを参照する名前です。 パス名には絶対パス名と相対パス名があります。 ファイルの絶対パス名absolute pathname)とは、記号 / から始まり、ファイルシステムを表す木の根から順にたどり、そのファイルに至るまでのディレクトリ名とファイル名を、記号 / で区切って書き並べたものです。 ディレクトリの絶対パス名も同様に、記号 / から始まり、木の根からそのディレクトリに至るまでのディレクトリ名を、記号 / で区切って書き並べたものです。 なお、木の根に相当するディレクトリをルートディレクトリroot directory)と呼びます。 例えば、図の最も下のファイル ex1.html の絶対パス名は

/home/b00a/b00a001/WWW/ip2a/ex1.html

です。 また、下から2段目のファイル index.html の絶対パス名は

/home/b00a/b00a001/WWW/index.html

です。 ディレクトリ ip2a の絶対パス名は

/home/b00a/b00a001/WWW/ip2a

です。

絶対パス名を用いると、ファイルシステムにあるファイルやディレクトリが確実に参照できます。 しかし、いちいち木の根からディレクトリ名を書き並べるのは大変です。 ファイルの相対パス名relative pathname)とは、木の根からではなく、カレントディレクトリから順にたどり、そのファイルに至るまでのディレクトリ名とファイル名を、記号 / で区切って書き並べたものです。 ここでカレントディレクトリcurrent directory)とは、その時の操作の基準となるディレクトリです。 ディレクトリの相対パス名も同様に、カレントディレクトリから順にたどり、そのディレクトリに至るまでのディレクトリ名を、記号 / で区切って書き並べたものです。 先頭に記号 / がつかないことに注意してください。

           :
           |
        b00a001
           |
     +-----+-----+-----------+-----------+
     |           |           |           |
   Mail       Maildir      WABI         WWW
     :           :           :           |
           +-----------+-----------+-----+-----+
           |           |           |           |
      index.html  index.html~    ip2a      mike.jpg
                                   |
                             +-----+-----+
                             |           |
                         ex1.html    ex1.html~

例えば、カレントディレクトリが WWW であるとき、ファイル ex1.html の相対パス名は ip2a/ex1.html です。 カレントディレクトリが ip2a のときは、単に ex1.html となります。 カレントディレクトリが b00a001 であるとき、ディレクトリ ip2a の相対パス名は WWW/ip2a です。 カレントディレクトリが WWW のときは、単に ip2a となります。

8.1.3 特別なディレクトリ

相対パス名が、カレントディレクトリの下にあるファイルやディレクトリしか参照できないように思えますが、特別なディレクトリ名 .. を使えば、カレントディレクトリの上にあるものも参照できます。 特別なディレクトリ名 .. は、一つ上のディレクトリを意味します。 例えば、カレントディレクトリが ip2a であるとき、ディレクトリ b00a001 の相対パス名は ../.. ですし、ファイル mike.jpg の相対パス名は ../mike.jpg です。

.. の他にも特別なディレクトリがあります。 次の表を参照してください。 ここで、ホームディレクトリhome directory)とは、ログインしたときにユーザに位置付けれられるディレクトリです。

指定意味
.カレントディレクトリ
..一つ上のディレクトリ
~自分のホームディレクトリ
~userユーザuserのホームディレクトリ

8.2 端末エミュレータ

8.2.1 端末装置

8.2.2 コマンド

端末エミュレータの中では、シェルshell, 具体的にはtcsh)とよばれる機能が働いています。 シェルは、ユーザからの入力を解釈し、それに応じたプログラムを実行させます。 シェルを用いると、コンピュータに登録されているほとんどすべてのプログラムが実行できます。

端末エミュレータを起動します。 ウィンドウの左下に次のような文字列が表示されているのに注目してください。

b00a001@Ampere:~%

この文字列をプロンプトprompt)といいます。 b00a001 の部分と Ampere の部分は、ユーザとコンピュータによって異なります。 プロンプトの表示は、シェルがユーザからの入力を待っていることを意味します。

シェルへの入力は、文字列によって行われます。 入力したい文字列の文字を順にタイプしてください。 間違ってタイプしたときは、Delete キーをタイプすると取り消せます。 Enter キーをタイプすると入力終了となります。

では、何か入力してみましょう。

b00a001@Ampere:~% xyz
xyz: Command not found.
b00a001@Ampere:~%

シェルに文字列 xyz を入力したわけですが、そのコマンドは見つからないというメッセージが表示されました。 次に、文字列 date を入力してみましょう。

b00a001@Ampere:~% date
Thu Jun 14 09:19:49 JST 2001
b00a001@Ampere:~%

今度は、今日の日付と今の時刻が表示されました。

コンピュータに登録されているプログラムには名前がついています。 例えば、今日の日付と今の時刻を出力するプログラムの名前は date です。 シェルは、入力が与えられますと、その文字列をプログラムの名前と見なします。 そして、その名前をある順番にしたがってシステムの中から検索します。 もし見つかれば、その名前のプログラムを実行します。 なければ、コマンドが見つからないというメッセージを表示します。 この例では、xyz という名前が見つからなかったので、コマンドが見つからないと表示され、date という名前が見つかったので、今日の日付と今の時刻が表示されたのです。

実は、シェルへの入力で、プログラムの名前と見なされるのは、空白で区切られた最初の成分だけです。 残りの成分は、そのプログラムへの引数argument)と見なされます。 引数とは、プログラムに与えられる情報です。 例えば、カレンダーを出力するプログラム(名前は cal)では、

b00a001@Ampere:~% cal
     2001年  6月
日 月 火 水 木 金 土
                1  2
 3  4  5  6  7  8  9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

b00a001@Ampere:~% cal 7 2001
     2001年  7月
日 月 火 水 木 金 土
 1  2  3  4  5  6  7
 8  9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31

b00a001@Ampere:~%

引数を書かなければ、今月のカレンダーが出力されます。 引数を書きますと、西暦2001年7月という情報がプログラムに与えられ、その月のカレンダーが出力されます。

プログラムによっては、必ず引数を書かなくてはいけません。 また、引数の形式もプログラムによってまちまちです。 引数の順序を変えますと、普通はプログラムに異なる情報が与えられます。 例えば、cal 2001 7 では、西暦7年2001月となります。

プログラムの名前とその引数の並びを、ここではコマンドcommand)とよぶことにします。 端末エミュレータでは、コマンドを入力することによってコンピュータを操作することになります。 文字列をタイプするのは面倒かもしれませんが、コマンドさえ覚えれば、コンピュータに備わっているほとんどすべての機能を働かせることができるのです。

8.2.3 オンラインマニュアル

プログラムの名前は知っているけれど、何をするものなのか分からないときや、引数の書き方を確認したいときは、マニュアルがすぐに見られれば便利です。 UNIXでは、コマンドでマニュアルが表示できます。 これを、オンラインマニュアルといいます。

オンラインマニュアルを表示するコマンドは man name です。 ここで、name はプログラムの名前です。 例えば、

b00a001@Ampere:~% man cal

と入力すると、cal コマンドのマニュアルが表示されます。 マニュアルを表示しているときのキーボードの割り当ては、以下の表の通りです。

表6.1 man コマンドにおけるキーボードの割り当て
キーボード機能
q表示終了
hヘルプの表示
Space一画面分次の表示
Enter一行分次の表示
b一画面分前の表示
k一行分前の表示

8.3 ファイル管理コマンド

情報処理Iでは、ファイルマネージャを用いてファイルの管理をしました。 この授業では、端末エミュレータを用いてファイルの管理をします。 ファイルの管理に関する基本的なコマンドを説明します。

8.3.1 pwdコマンド

pwdコマンド は、カレントディレクトリの絶対パス名を出力します。

例 8.1 
b00a001@Ampere:~% pwd
/home/b00a/b00a001
b00a001@Ampere:~%

8.3.2 lsコマンド

lsコマンド は、引数がなければ、カレントディレクトリの内容を並べて出力します。 引数がディレクトリのパス名ならば、そのディレクトリの内容を並べて出力します。 引数がファイルのパス名ならば、そのパス名を出力します。

例 8.2 
b00a001@Ampere:~% ls
Mail/     Maildir/  WABI/     WWW/
b00a001@Ampere:~% ls WWW
index.html   index.html~  ip2a/        mike.jpg
b00a001@Ampere:~% ls WWW/ip2a
ex1.html   ex1.html~
b00a001@Ampere:~% ls WWW/ip2a/ex1.html
WWW/ip2a/ex1.html
b00a001@Ampere:~%

8.3.3 lessコマンド

lessコマンド は、ファイルのパス名を引数に取り、そのファイルの内容を表示します。 表示しているときのキーボードの割り当ては、 man コマンドと同じです。

表 8.1  less コマンドにおけるキーボードの割り当て
キーボード 機能
q 表示終了
h ヘルプの表示
Space 一画面分次の表示
Enter 一行分次の表示
b 一画面分前の表示
k 一行分前の表示

8.3.4 cdコマンド

cdコマンド は、引数がなければカレントディレクトリをホームディレクトリに変更します。 引数がディレクトリのパス名ならば、カレントディレクトリをそのディレクトリに変更します。

例 8.3 
b00a001@Ampere:~% ls
Mail/     Maildir/  WABI/     WWW/
b00a001@Ampere:~% cd WWW
b00a001@Ampere:~/WWW% pwd
/home/b00a/b00a001/WWW
b00a001@Ampere:~/WWW% cd ..
b00a001@Ampere:~% pwd
/home/b00a/b00a001
b00a001@Ampere:~%

8.3.5 cpコマンド

cpコマンド には、2つの形式があります。

cp file1 file2

では、パス名 file1 で表されるファイルの内容を、パス名 file2 で表されるファイルにコピーします。

cp file... directory

では、パス名の並び file... で表される一つ以上のファイルの内容を、パス名 directory で表されるディレクトリの中に、それぞれ同じファイル名でコピーします。

もしコピー先のファイルがすでにあれば、そのファイルに上書きされます。

例 8.4 
b00a001@Ampere:~% ls
Mail/     Maildir/  WABI/     WWW/
b00a001@Ampere:~% cd WWW
b00a001@Ampere:~/WWW% ls
index.html   index.html~  ip2a/        mike.jpg
b00a001@Ampere:~/WWW% cd ip2a
b00a001@Ampere:~/WWW/ip2a% ls
ex1.html   ex1.html~
b00a001@Ampere:~/WWW/ip2a% cp ex1.html test.txt
b00a001@Ampere:~/WWW/ip2a% ls
ex1.html   ex1.html~  test.txt
b00a001@Ampere:~/WWW/ip2a%

8.3.6 rmコマンド

rmコマンド は、ファイルのパス名を引数に取り、そのファイルを消去します。

例 8.5 
b00a001@Ampere:~/WWW/ip2a% ls
ex1.html   ex1.html~  test.txt
b00a001@Ampere:~/WWW/ip2a% rm test.txt
rm: test.txt を消去しますか (yes/no)? yes
b00a001@Ampere:~/WWW/ip2a% ls
ex1.html   ex1.html~
b00a001@Ampere:~/WWW/ip2a%

8.3.7 mvコマンド

mvコマンド には、2つの形式があります。

mv file1 file2

では、パス名 file1 で表されるファイルを、パス名 file2 で表されるファイルに移動します。 同じディレクトリの中で移動させますと、ファイル名を変更したことになります。

mv file... directory

では、パス名の並び file... で表される一つ以上のファイルを、パス名 directory で表されるディレクトリの中に移動します。

もし移動先のファイルがすでにあれば、そのファイルに上書きされます。

例 8.6 
b00a001@Ampere:~/WWW/ip2a% ls
ex1.html   ex1.html~
b00a001@Ampere:~/WWW/ip2a% cp ex1.html test2.txt
b00a001@Ampere:~/WWW/ip2a% ls
ex1.html   ex1.html~  test2.txt
b00a001@Ampere:~/WWW/ip2a% mv test2.txt test3.txt
b00a001@Ampere:~/WWW/ip2a% ls
ex1.html   ex1.html~  test3.txt
b00a001@Ampere:~/WWW/ip2a%

8.3.8 mkdirコマンド

mkdirコマンド は、ディレクトリのパス名を引数に取り、その名前のディレクトリを作成します。

例 8.7 
b00a001@Ampere:~/WWW/ip2a% ls
ex1.html   ex1.html~  test3.txt
b00a001@Ampere:~/WWW/ip2a% mkdir trial
b00a001@Ampere:~/WWW/ip2a% ls
ex1.html   ex1.html~  test3.txt  trial/
b00a001@Ampere:~/WWW/ip2a% ls trial
b00a001@Ampere:~/WWW/ip2a% mv test3.txt trial
b00a001@Ampere:~/WWW/ip2a% ls
ex1.html   ex1.html~  trial/
b00a001@Ampere:~/WWW/ip2a% ls trial
test3.txt
b00a001@Ampere:~/WWW/ip2a%

8.3.9 rmdirコマンド

rmdirコマンド は、ディレクトリのパス名を引数に取り、そのディレクトリを消去します。 ディレクトリが消去できるのは、その中にファイルもディレクトリもなく、カレントディレクトリがそのディレクトリより上であるときに限ります。

例 8.8 
b00a001@Ampere:~/WWW/ip2a% ls
ex1.html   ex1.html~  trial/
b00a001@Ampere:~/WWW/ip2a% ls trial
test3.txt
b00a001@Ampere:~/WWW/ip2a% rm trial/test3.txt
rm: trial/test3.txt を消去しますか (yes/no)? yes
b00a001@Ampere:~/WWW/ip2a% ls trial
b00a001@Ampere:~/WWW/ip2a% rmdir trial
b00a001@Ampere:~/WWW/ip2a% ls
ex1.html   ex1.html~
b00a001@Ampere:~/WWW/ip2a%

8.3.10 ワイルドカード


8.4 アンケート8

今日は、レポート課題を出す代わりに、授業内容に関するアンケートを行ないます。 以下の質問に答え、回答をkonishi@twcu.ac.jpあてにメールで送ってください。 メールには、学生番号、氏名、科目名、授業の日付けを明記してください。 アンケートに回答すれば、今日の授業に出席したものと見なします。

  1. 階層的ファイルシステムの特徴は、ディレクトリの中にさらにディレクトリが作成できることです。 ここで、「姓名式ファイルシステム」というものを考えます。 このファイルシステムでは、ディレクトリはルートディレクトリの中にしか作成できません。 従って、ファイルの絶対パス名は、
    / directory / file または / file
    という形に限られます。 「姓名式ファイルシステム」が使い物になるかどうか、自由に議論してください。
  2. 授業に対して意見や要望などがありましたら答えてください。

[小西ホームページ]   [目次・索引]   [前の授業]   [次の授業]

2001年6月14日更新
konishi@twcu.ac.jp
Copyright (C) 2001 Zenjiro Konishi. All rights reserved.