UNIXユーザプログラミング

〜UNIXOSの利用におけるユーザ情報の統計的集計〜

中原 千雅 ,藤本 聖子,藤本 裕子,
松村 美紀子,峯石 智子,吉賀 理恵,瓜生 佳恵
                   
(指導  千 々 松  康)      

  1. UNIX OSの特徴

    1. 設計の基本概念
      • スモール イズ ビューティフル(できるだけ小さく)
      • 1コマンド、1タスク(単純性を求めて)     
      • アンコンプリート(初めから完全性を望まず)    
      • ポータビリティ(効率よりも移植性を)     

    2. 特徴の具体的な点
      • 小文字と大文字を区別
      • 入出力のリダイレクション
      • バケツリレー(パイプ)処理での効率化
      • シェルスクリプトによる簡潔化

    3. 主なコマンドの種類と機能
      非常によく利用される使用度の高いものについて挙げる。
          
      • 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) ... 指定文字列の検索表示

         
    4. シェルについて

      1. シェルとは
           シェルとは、そもそもユーザが入力したコマンドを解釈して実行する機能(プログラム) をいう。OSのユーザインタフェースの役目を果たしてくれ、中枢部分(カーネル:核 )を覆うことから、シェル(shell:貝の殻)と呼ばれている。
         カーネルは、メモリ管理やcpuの利用制御、周辺装置とのインターフェイスを行い、 ユーザプログラムのハードウェア独立を図ることによって、移植性を高めている。
      2. シェルの種類
        シェルには以下の代表的なものがあり、コマンドの名称や指示形式などで それぞれが多少異なった違いを持っている。     
        • sh ... もっとも一般的な小さいもので、ほとんどのUNIXに共通で あり、高速である。
        • csh ... shにC言語の文法を取り入れている。BSD系
        • ksh ... bsh(sh)の良さを保ちながら、cshの良さをも取り入れた設計がなされて いる。SystemV(AT&T)系
        • tcsh ... 補完機能を持ち、上記の良さをすべて機能的に包含している。

          
      3. シェルはどのような場面で良さを発揮するか?
        • 複数のファイルに対して何かをする。
        • 繰り返し同じ作業をする。     
        • 定常作業(特に入出力について)を必要とする。

          
    5. awk言語について

      1. awkという名前の由来
        開発した3人の名前の頭文字を採って付けられている。
        • A ... エイホ(Aho)
        • w ... ワインバーガー(Weinberger)
        • k ... カーニハン(Kerniphan)
      2. awkはコマンドか?
         シェルのもつコマンドではあるが、C言語の文法をふんだんに取り入れた 手続きを指示できるプログラマブルな言語という性格が強く、実際にプログラムファイル から実行をすることができる。
         また、Perlはawkよりももっとプログラマブルな要求に応えてくれるが、awkは Perlよりもそれだけリソースとの結び付きが強くないといえる。
          言語的性格 ← Perl > awk > sed > grep → コマンド的性格
          
      3. awkで作成した統計的集計の問題
        • ファイル(ディレクトリ)のタイプを分類する。
        • ディスクの占有メモリについて、合計、平均、最大・最小を算出する。
        • 作成した月毎でのファイルの個数を集計する。
        • システム関係ファイルとユーザ関係ファイルの区別をする。
        • ユーザファイルによってアプリケーションの分類を試みる。
         上記の問題についての属性は、すべて「ls」コマンドの出力情報からできるが、 その他のコマンド実行内容からでは、「ps」、「grep」、「cut」、「cat」から 「kill」コマンドまでほとんどの情報を目的に供すれば、集計の対象とすることが できる。
    6. おわりに

          UNIXOSは、WindowsOSに比べて素朴なウィンドウマネジャで、キーボードから の入力を基本としたコマンド体系のOSである。
      指示の手順などは自分で組み立てて、間違いの無いように確認する必要があり、メニュー ロゴのような選択とは異なった捉え方が求められる。
       もっと多くの対象に集計をする必要があった。


    《参考文献》


    1. Lowell Jay Arthur 著、伊東正安 監訳、千吉良英毅 他共訳
      「UNIX シェルプログラミング」、オーム社(1996)
    2. 羽山 博 著 「unix システムプログラミング」、オーム社(1994)
    3. 河西 朝雄 著 「C 言語」、ナツメ社(1990)  
    4. 皆本 晃弥、奥村 浩 共著 「シェル&Perl入門」、サイエンス社(2001)