UNIXユーザプログラミング
〜UNIXOSの利用におけるユーザ情報の統計的集計〜
中原 千雅 ,藤本 聖子,藤本 裕子,
松村 美紀子,峯石 智子,吉賀 理恵,瓜生 佳恵
(指導 千 々 松 康)
-
UNIX OSの特徴
- 設計の基本概念
- スモール イズ ビューティフル(できるだけ小さく)
- 1コマンド、1タスク(単純性を求めて)
- アンコンプリート(初めから完全性を望まず)
- ポータビリティ(効率よりも移植性を)
- 特徴の具体的な点
- 小文字と大文字を区別
- 入出力のリダイレクション
- バケツリレー(パイプ)処理での効率化
- シェルスクリプトによる簡潔化
- 主なコマンドの種類と機能
非常によく利用される使用度の高いものについて挙げる。
- ls(list) ... ファイル(ディレクトリ)の一覧を表示
- cd(change directory) ... カレントディレクトリの異動
- pwd(print working directory) ... カレントディレクトリの表示
- ps(process status) ... cpu実行(中)プロセス状態の表示
- mkdir(make directory) ... 新規ディレクトリの作成
- rmdir(remove directory) ... 既存ディレクトリの削除
- rm(remove) ... ファイルの削除
- kill(kill) ... プロセスから除外
- mv(move) ... ファイル名の変更
- chmod(change mode) ... 許可モードの変更
- cp(copy) ... ファイルの複写
- ln(link) ... ファイルにリンクを付ける
- grep(global regulor expression print) ... 指定文字列の検索表示
-
シェルについて
- シェルとは
シェルとは、そもそもユーザが入力したコマンドを解釈して実行する機能(プログラム)
をいう。OSのユーザインタフェースの役目を果たしてくれ、中枢部分(カーネル:核
)を覆うことから、シェル(shell:貝の殻)と呼ばれている。
カーネルは、メモリ管理やcpuの利用制御、周辺装置とのインターフェイスを行い、
ユーザプログラムのハードウェア独立を図ることによって、移植性を高めている。
- シェルの種類
シェルには以下の代表的なものがあり、コマンドの名称や指示形式などで
それぞれが多少異なった違いを持っている。
- sh ... もっとも一般的な小さいもので、ほとんどのUNIXに共通で
あり、高速である。
- csh ... shにC言語の文法を取り入れている。BSD系
- ksh ... bsh(sh)の良さを保ちながら、cshの良さをも取り入れた設計がなされて
いる。SystemV(AT&T)系
- tcsh ... 補完機能を持ち、上記の良さをすべて機能的に包含している。
- シェルはどのような場面で良さを発揮するか?
- 複数のファイルに対して何かをする。
- 繰り返し同じ作業をする。
- 定常作業(特に入出力について)を必要とする。
-
awk言語について
- awkという名前の由来
開発した3人の名前の頭文字を採って付けられている。
- A ... エイホ(Aho)
- w ... ワインバーガー(Weinberger)
- k ... カーニハン(Kerniphan)
- awkはコマンドか?
シェルのもつコマンドではあるが、C言語の文法をふんだんに取り入れた
手続きを指示できるプログラマブルな言語という性格が強く、実際にプログラムファイル
から実行をすることができる。
また、Perlはawkよりももっとプログラマブルな要求に応えてくれるが、awkは
Perlよりもそれだけリソースとの結び付きが強くないといえる。
言語的性格 ← Perl > awk > sed > grep → コマンド的性格
- awkで作成した統計的集計の問題
- ファイル(ディレクトリ)のタイプを分類する。
- ディスクの占有メモリについて、合計、平均、最大・最小を算出する。
- 作成した月毎でのファイルの個数を集計する。
- システム関係ファイルとユーザ関係ファイルの区別をする。
- ユーザファイルによってアプリケーションの分類を試みる。
上記の問題についての属性は、すべて「ls」コマンドの出力情報からできるが、
その他のコマンド実行内容からでは、「ps」、「grep」、「cut」、「cat」から
「kill」コマンドまでほとんどの情報を目的に供すれば、集計の対象とすることが
できる。
-
おわりに
UNIXOSは、WindowsOSに比べて素朴なウィンドウマネジャで、キーボードから
の入力を基本としたコマンド体系のOSである。
指示の手順などは自分で組み立てて、間違いの無いように確認する必要があり、メニュー
ロゴのような選択とは異なった捉え方が求められる。
もっと多くの対象に集計をする必要があった。
《参考文献》
- Lowell Jay Arthur 著、伊東正安 監訳、千吉良英毅 他共訳
「UNIX
シェルプログラミング」、オーム社(1996)
- 羽山 博 著 「unix システムプログラミング」、オーム社(1994)
- 河西 朝雄 著 「C 言語」、ナツメ社(1990)
- 皆本 晃弥、奥村 浩 共著 「シェル&Perl入門」、サイエンス社(2001)