8 8.ファイル構造
UNIX に限らずほとんどのOS(DOS,WINDOWS系,MacOSなど)ではファイル構造 は「木構造」になっている.木とは,ノード(節点)とリンク(枝)からなる上下関係を 持った階層構造.
UNIXのファイルシステムでは,ノードは
ファイル,ディレクトリ,リンク(シンボリックリンク)
の3通り.
[特殊なディレクトリ名]
. カレントディレクトリ(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,メモリ,通信路....)はすべてファイルとして 取り扱うことができるように設計されている.
正規表現.
bin dev etc lib usr tmp
bin sbin spool man usrhome local
/ ルートディレクトリ
include
jlatex a2ps netscape
taji hatono
taji abc.c abc.c xyz.c
9 9.ファイルの属性
• ファイル名,作成/更新日時,ファイルの大きさ
• 所有者(ユーザ名),所有者の属するグループ
• 保護モード:所有者,所有者の属するグループ,その他のユーザのそれぞれに対して,
読み,書き,実行可能,Setuid オプションの指定をする.
これらはlsコマンドで確認できる
[例]
属性の変更 chmod
chmod 対象(u,g,o)+/-[r/w/x] ファイル名 [例]
taji@aurora2% ls -al freas
-rwxr--r-- 1 taji user 5648 Feb 21 1996 freas taji@aurora2% chmod o+x freas
taji@aurora2% ls -al freas
-rwxr--r-x 1 taji user 5648 Feb 21 1996 freas taji@aurora2% chmod g-r freas
taji@aurora2% ls -al freas
-rwx---r-x 1 taji user 5648 Feb 21 1996 freas taji@aurora2% chmod 744 freas
taji@aurora2% ls -al freas
-rwxr--r-- 1 taji user 5648 Feb 21 1996 freas 10.リダイレクト,パイプ
[リダイレクト]
コマンドの標準入出力・標準エラー出力をファイルに切り替えること コマンド < ファイル ファイルから入力
コマンド > ファイル ファイルへ出力 コマンド >> ファイル ファイルへ追加
コマンド >& ファイル 出力とエラーをファイルへ
[例]
ls > aaa.list ls -al >> aaa.list sort < abc.c
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)は,読み書き実行すべて可
所有者
グループ名
大きさ 更新日時
ファイル名
10
[パイプ]
コマンド1 | コマンド2
コマンド1の標準出力をコマンド2の標準入力に流し込む
[例]
ls -al | wc -l
ls -al | grep 'test*.c'
リダイレクト,パイプを組み合わせることにより,高度な機能を持つ複雑なコマンドを作 ることができる.
演習問題
6. 現在使っているシステムのファイル構造について調べなさい.コマンドや,アプリケ ーションがどこにあるか?
7. ファイルおよびディレクトリの作成,移動,消去などを,ターミナル上で実際に行っ てみなさい.また,そのとき,ファイルマネージャが連動していることを確認しなさ い.
8. いろいろなファイルの属性について調べなさい.また,自分で作成したプログラムな どの属性を変更し,どのような影響が出るか確認しなさい.
***レポート課題***
① GUIを用いた環境と,shell環境(ターミナル上の環境)を比較して,それぞれの長所 と短所をまとめなさい(A4 1枚程度).
② 演習問題4と5(b)のプログラムを作成し,プログラムリストと,実行例を提出しなさ い.ただし,提出するプログラムは,TAが正しく動作していることを確認したもので あること.また,リストには,必ず説明を付けること.
③ a)演習問題4と5(b)で作成したプログラムとsortコマンドを用いると,テキストに 含まれる単語を一行に一つずつ,重複することなしに,アルファベット順に出力す るコマンドを作成することができる.それにはどうすればよいか.方法とその実行 例を示しなさい.
b)小さなテキストファイル(例えば,.logout のような数行の環境設定用ファイルな ど)は,エディタを使わなくても作成することができる.その方法と実行例を示し なさい.
④ 適当な自然数 に対し,
を計算するプログラムを作成しなさい.ただし,できるだけ大きい に対しそのプロ グラムを実行できるよう,また,その値ができるだけ円周率に近づくようプログラム を工夫すること.プログラムと実行結果を提出しなさい.考察もつけること.
となることが知られています.
締 切
:11111111月月月2月22日(2日(日(日(木木木木))) ) 提出先:システム事務室
6
1 2
1
2 = π
åk∞= k
n
åkn=11 k2
6
n