全文

(1)

8 7.ファイル構造

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

(2)

9 演習

*現在使っているNextStepのファイル構造について調べなさい.とくに,コマンドがど こにあるか探してみなさい.

*ディレクトリの作成,移動,消去などを実際に行ってみなさい.また,そのときファ イルビューアが連動していることを確認しなさい.

8.ファイルの属性

ファイル名,作成/更新日時,ファイルの大きさ

所有者(ユーザ名),所有者の属するグループ

保護モード:所有者,所有者の属するグループ,その他のユーザのそれぞれに対して,

読み,書き,実行可能,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   

演習

*いろいろなファイルの属性について調べなさい.また,じぶんで作成したファイルの 属性を変更し,操作にどのような影響が出るか調べなさい.

*ディレクトリの保護モードを変更し,操作にどのような影響が出るか調べなさい.と くに,他のユーザの操作に対する影響を調べなさい.

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)は,読み書き実行すべて可

所有者

グループ名

大きさ 更新日時

ファイル名

(3)

10

x0

9.リダイレクト,パイプ

[リダイレクト]

コマンドの標準入出力・標準エラー出力をファイルに切り替えること コマンド < ファイル ファイルから入力

コマンド > ファイル ファイルへ出力 コマンド >> ファイル ファイルへ追加

コマンド >& ファイル 出力とエラーをファイルへ

[例]

ls > aaa.list   ls ‑al >> aaa.list   sort < abc.c  

[パイプ]

コマンド1 | コマンド2

コマンド1の標準出力をコマンド2の標準入力に流し込む

[例]

ls ‑al │ wc ‑l 

ls ‑al │ grep 'test*.c' 

リダイレクト,パイプを組み合わせることにより,高度な機能を持つ複雑なコマンドを作 ることができる.

レポート課題

5.a)課題2,4で作成したプログラムとsort コマンドを用いると,テキストに含まれ る単語を一行に一つずつ,重複することなしに,アルファベット順に出力するコマン ドを作成することができる.それにはどうすればよいか.そのコマンドラインと実行 例を示せ.

b)小さなテキストファイル(例えば,.logout のような1〜2行の環境設定用ファイ ル)は,エディタを使わなくても作成することができる.そのコマンドラインと実行 例を示せ.

6.1実変数関数 の根を求めるのに,Newton法(Newton-Raphson法)を適 用すると,その反復は,適当な初期点 からはじめて

を繰り返し行う.これを以下の点に留意してプログラムせよ.

初期点と,反復回数はキーボードから入力する.

上の反復を行う部分をメイン関数とし および を計算する部分を,それぞれ メインから呼び出す関数の形にすること.

また,作成したプログラムを用いて,いろいろな数の平方根や立方根,二次方程式の 解などを求めてみよ.

締 切

   :12月14日(火)午後4時(期限厳守)

提出先:システム事務室 0 ) (x = f

) (

) (

1

k k k

k f x

x x f

x + = (k =0,1,2,....)

f f

Updating...

参照

Updating...

関連した話題 :