8 8.ファイル構造 UNIX に限らずほとんどの OS(DOS,WINDOWS 系

8.ファイル構造
UNIX に限らずほとんどの OS(DOS,WINDOWS 系,MacOS など)ではファイル構造
は「木構造」になっている.木とは,ノード(節点)とリンク(枝)からなる上下関係を
持った階層構造.
UNIX のファイルシステムでは,ノードは
ファイル,ディレクトリ,リンク(シンボリックリンク)
の3通り.
/ ルートディレクトリ
bin
dev
etc
bin
jlatex
a2ps
lib
sbin
usr
spool
man
tmp
usrhome local
include
netscape
taji
taji
abc.c
hatono
abc.c
xyz.c
[特殊なディレクトリ名]
.
カレントディレクトリ(pwd で確認できる)
.
.
一つ上のディレクトリ
/
ルートディレクトリ
~username username のホームディレクトリ
[パス名]
ルートからファイルのある場所を指定する経路. / で区切って表す.
(例) /usr/bin/jlatex
絶対パス:ルートからすべて記述するもの /usr/usrhome/hatono/abc.c
相対パス:カレントディレクトリから指定するもの ../hatono/abc.c
[ディレクトリの操作]
pwd
カレントディレクトリのパス名を表示
cd
ホームディレクトリへ移動
cd aaa
aaa というディレクトリへ(そのディレクトリにもしあれば)移動
cd .
.
一つ上のディレクトリへ移動
ls
ディレクトリの中身を表示
mkdir aaa aaa というディレクトリを作成
rmdir aaa aaa というディレクトリを削除
[補足]
UNIX 上の資源(キーボード,CRT,メモリ,通信路.
...)はすべてファイルとして
取り扱うことができるように設計されている.
正規表現.
8
9.ファイルの属性
• ファイル名,作成/更新日時,ファイルの大きさ
• 所有者(ユーザ名)
,所有者の属するグループ
• 保護モード:所有者,所有者の属するグループ,その他のユーザのそれぞれに対して,
読み,書き,実行可能,Setuid オプションの指定をする.
これらは ls コマンドで確認できる
[例]
taji@aurora2% ls -al .d*
-rw-r--r-- 1 taji user
9 Apr 2 1998 .dir_colors
-rwxr-xr-- 1 taji user 5111 Nov 13 19:03 .dtprofile
所有者
ファイル名
大きさ
更新日時
グループ名
他のユーザ(others)に読む(read)のを許可
所有者と同じグループ(group)のユーザに対し読むと実行(execute)を許可
所有者(user)は,読み書き実行すべて可
属性の変更 chmod
chmod 対象(u,g,o)+/-[r/w/x] ファイル名
[例]
taji@aurora2% ls -al freas
-rwxr--r-- 1 taji user 5648 Feb 21 1996
taji@aurora2% chmod o+x freas
taji@aurora2% ls -al freas
-rwxr--r-x 1 taji user 5648 Feb 21 1996
taji@aurora2% chmod g-r freas
taji@aurora2% ls -al freas
-rwx---r-x 1 taji user 5648 Feb 21 1996
taji@aurora2% chmod 744 freas
taji@aurora2% ls -al freas
-rwxr--r-- 1 taji user 5648 Feb 21 1996
freas
freas
freas
freas
10.リダイレクト,パイプ
[リダイレクト]
コマンドの標準入出力・標準エラー出力をファイルに切り替えること
コマンド < ファイル
ファイルから入力
コマンド > ファイル
ファイルへ出力
コマンド >> ファイル
ファイルへ追加
コマンド >& ファイル
出力とエラーをファイルへ
[例]
ls > aaa.list
ls -al >> aaa.list
sort < abc.c
9
[パイプ]
コマンド1 | コマンド2
コマンド1の標準出力をコマンド2の標準入力に流し込む
[例]
ls -al | wc -l
ls -al | grep 'test*.c'
リダイレクト,パイプを組み合わせることにより,高度な機能を持つ複雑なコマンドを作
ることができる.
演習問題
6. 現在使っているコンピュータのファイル構造について調べなさい.コマンドや,アプ
リケーションがどこにあるか?
7. コマンドやアプリケーション,また,自分で作成したファイルやディレクトリの属性
や,所有者などがどうなっているか調べなさい.
8. 演習問題4と5で作成したプログラムと sort コマンドを用いると,テキストに含まれ
る単語を一行に一つずつ,重複することなしに,アルファベット順に出力するコマン
ドを作成することができる.それにはどうすればよいか.方法とその実行例(少なく
とも 100 word 以上の文章で実行すること)を示しなさい.
9. 小さなテキストファイル(例えば,.logout のような2∼3行の環境設定用ファイルな
ど)は,エディタを使わなくても作成することができる.その方法と実行例を示しな
さい.
以上の4問を A4 用紙1∼2枚程度にまとめ,システム事務室に提出しなさい.〆切は 10
月19日(金)12時.
(なお,演習問題4と5については,私のホームページに解答例を
提示してあるので,自力で作成できなかったものは,それを用いてもよい.
)
10