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
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)は,読み書き実行すべて可
所有者
グループ名
大きさ 更新日時
ファイル名
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′