next up previous contents
Next: ファイルシステム Up: ファイルとファイルシステム Previous: UNIXの内容


ファイル

例えば,あなたがシェルのプロンプトにlsという文字を入れる時, キーボードからlと入れたら,画面にlsと入れたら,sと表示されたでしょう。

図: 標準入出力装置とファイル
\includegraphics[width=11.8cm]{figs/a01.eps}

これは, シェルが キーボードから入力されたという通知に従って, 文字コード(文字には番号がついている)を受けとります。 この文字が表示可能なら, その文字を出力します。kterm はこの出力を受けとって 文字コードもじこーどに対応する文字の形 (活字のようなものでフォントと言われる)を 持ってきて,画面に書き込むという動作を行なったからです。

Process

シェルは瞬間的にこんな複雑なことをやっているのです。 コンピュータが早いので瞬間的に見えるだけです。 でも,あなたが初心者でもこんなことを感心する必要はありません。 とにかくシェルが当たり前のことを当たり前のようにしているだけなのです。

通常,キーボードは 標準入力装置, 画面は 標準出力装置 を意味します。 シェルはこの入力と出力をこれらの装置を行います。 図では,どちらもktermに接続されています。 この装置を動かすファイルは, あなたのマシンの /dev というディレクトリにあります。

ディレクトリ/devには 多くの装置に接続されたファイルがあります。 例えば,/dev/ttyp1という デバイスファイル 特殊ファイルに 文字を書き込むと画面にその文字を表示します。 このように, UNIX では,ハードディスクの中のファイルばかりではなく, ディスクそのもの, 通信ケーブル 画面, キーボードもみんなファイルの形で存在します。 つまり,ファイルを理解すると UNIX を理解したことになるのですが これはなかなか厄介なことなのです。

ファイルには,その内容以外にいろいろな情報が付随しています。 ファイルの存在場所,ファイルモード,所有者や大きさや作成日付などです。 これを表示するのがlsです。 リストと読み、list の略です。 ls -liは,さらに多くの情報を表示できます。

% ls -li


 total 1252
 152973 -rw-r--r--   1 ken      engng         855 Dec  1 02:39 Makefile
 152961 -rw-r--r--   1 ken      engng       12394 Dec  1 02:39 Useunix.aux
 152965 -rw-r--r--   1 ken      engng      110788 Dec  1 02:39 Useunix.dvi
                ..........
     39 drwxr-xr-x   2 ken      engng        4096 Nov 20 00:16 schedule/
  52884 drwxr-xr-x   2 ken      engng        4096 Dec  1 02:42 usedev/
のようになります。

この先頭の一行について説明しましょう。 ここの説明では,デバイスファイルと言われる特殊なファイルは説明から省きます。

$
\underbrace{\mbox{\tt 152973}}_{i ノード}\hspace{2ex}
\underbrace{\mbox{\tt...
...ンプ}\hspace{1ex}
\underbrace{\mbox{\tt Makefile}}_{ファイル名}\hspace{1ex}
$
  1. i -ノード

    ファイルの存在する場所です。 ファイルシステムの中のファイルの存在番地です。 図[*]に示すように ハードディスクにこのファイルにあると, どの場所にファイルが書き込まれているかを示します。

    図: ファイルとディスク
    \includegraphics[width=11.8cm]{figs/a03.eps}
  2. ファイルモード

    ファイルモード-rw-r--r-- と言われるものです。 これは,1・3・3・3 という10個の文字で表わされます。 書く読むを許可するものでパーミションとも いわれます。 このファイルモードはUNIXでは重要な意味を持ちます。

    3・3・3 という9個の文字はアクセス許可といいます。

    $
     \underbrace{\mbox{\tt -}}_{ファイル種類}
     \underbrace{\mbox{\tt rw-}}_{ユー..
     ...\mbox{\tt r--}}_{・ー・シ・ラ・筍シ・ノ}
     \underbrace{\mbox{\tt r--}}_{・「・カ。シ・筍シ・ノ}
     $

    これは,UNIX を使う時に知っていなければならないことです。ファイル モードを知らないでいると,多くの無用なトラブルに巻き込まれること があります。

    となります。 ですから,-rw-r--r-- は所有者は読み書きできる。 グループに所属するユーザーと一般ユーザーは, 読むことのみができることを示しています。

    この属性は chmod(チェンジモード)という命令で変更できます。 もし,日記,メールや秘密の写真など他の人に読まれたり, 変更されたりしたくないファイルは必ず -rw------ にしておくか, drwx--x--x としたディレクトリの中におきましょう。

    あなたが,他の人に読まれてもいいよと思った時には -rw-r--r-- ですね。 UNIX では,このように 自分のファイルにモードを付けて他人からのアクセスを禁止したり, 許可することができますが, 読まれたくないファイルのモードを変更せずにおいて, 万一読まれたとしてもそれは読んだ人が悪いのではありません。 ``読んでもいいよ''というモードをつけている あなたが悪いのです。

    後に出てくる chmod([*]) で練習していつ でも使えるようにしておきましょう。

  3. リンク数

    次の数字は, リンク数かファイル数という2つの意味があります。 このファイルがディレクトリであると そのディレクトリの中に何個のディレクトリがあるかを示します。 普通のファイルの場合はリンクされている数です。 上の例では,Makefile.osは 2 となっていますので 別名で同じ内容の影となる ファイルを持っていることを示します。 リンクについては,ln([*]) という命令のとこ ろを見て下さい。

  4. ユーザー
  5. グループ
  6. サイズ

    ファイルのサイズをバイト数で表したものです。

  7. タイムスタンプ

    このファイルが作成された日付です。現在より6カ月以上古い場合は Oct 14 1995のように最後が西暦になります。新しい場合には最後は 時刻になります。

  8. ファイル名

    そして,最後がファイル名です。ファイル名は英大文字と英小文字は区 別されます。現在の UNIX では漢字のファイル名を扱うことはできませ ん。いくつかの先進的UNIXでは,漢字のファイル名を扱うことができま したが,ファイル名は UNIX の根本となる要素ですので,完全に漢字を 扱えるシステムができるまでもう少し待ちましょう。

となります。

あなたがこのファイルの所有者ならば, ファイル名は後で説明する mv([*]) で変更できます。 ユーザー名は chown, グループ名は chgrp, タイムスタンプは touch という命令 でそれぞれ変更できます。

これらも命令は,第[*]章で説明します。


next up previous contents
Next: ファイルシステム Up: ファイルとファイルシステム Previous: UNIXの内容
Kishimoto Ken
平成20年3月1日