ソースコード・リテラシーのススメ

第11回 シェルスクリプトを読む

この記事を読むのに必要な時間:およそ 4.5 分

過去2回に渡ってメールサーバのログ分析を紹介してきました。この分析はすべて筆者の手もとのPlamo Linux環境上で行いましたが,その際に活躍したのがSoftware Toolsと呼ばれるUNIX/Linuxの基本コマンドと,それらを組み合わせて処理を自動化するシェルスクリプトです。

デスクトップ環境が充実した最近のPCからコンピュータに触れた人には,Software Toolsやシェルスクリプトのようなコマンドラインツールは馴染みの薄いものかも知れません。しかしながら,これらのツールはUNIXの初期から磨きあげられ,現在でもUNIX/Linuxの基盤を支えている技術になっています。

シェルスクリプトとは

UNIX/Linux の世界では,CやC++といった本格的な開発言語以外にも,スクリプト言語と呼ばれる簡単に使える言語群があります。CやC++ではソースコードを実行ファイル(バイナリファイル)に変換(コンパイル)しなければ実行できないのに対して,スクリプト言語では変換作業の手間が不要で,通常のテキストファイルとして書いたソースコードをそのまま実行することができるため,日常作業の中で気軽に作成,使用することができます。

スクリプト言語にはさまざまな種類がありますが,UNIX/Linuxの世界で最も古くから存在し,最も広く使われているのはシェルスクリプトでしょう。シェルスクリプトは言語としての機能はかなり貧弱ですが,あらゆるUNIX互換OSに存在しているシェル(sh)を用いて実現しているため互換性が高く,CPUやベンダの壁を越えて,システムの起動や各種設定処理などに広く用いられています。

シェルには大きく分けてcsh系とbsh系の2種があり,シェルスクリプトの文法も両者では異なっていますが,現在利用されているシェルスクリプトの大部分はbsh 系のスクリプトです。また,bsh系でも元々のUNIXで用いられていたオリジナルのbsh(Bourne Shell)に比べると,Linuxで標準的に使われているGNUプロジェクトが開発したbash(Bourne Again Shell)は,さまざまな機能強化が図られており,スクリプトの文法もかなり拡張されています。

旧来のUNIX/Linux環境では,起動時の振舞いや各種設定等を変更するには,起動時に実行されるシェルスクリプトや各種サービスを開始するシェルスクリプトをroot権限で直接修正する必要がありました。最近のLinuxではGNOMEやKDEといったデスクトップ環境が整備され,システムに関する設定もGUIツールを用いて行えるようになっていますが,それらツールの多くは背後で動いているシェルスクリプトの設定を変更するためのラッパーで,実際の処理は現在もシェルスクリプトが担っています。

幸いなことに,システムの起動/終了に密接に関係する重要なコマンドであっても,シェルスクリプトの実体は普通のテキストファイルなので,less等のページャで開いたり,エディタで修正することが可能です。

著者プロフィール

こじまみつひろ

Plamo Linuxとりまとめ役。もともとは人類学的にハッカー文化を研究しようとしていたのが,いつの間にかミイラ取りがミイラになってOSSを仕事にするようになってしまいました。最近はスペシャリスト養成を目的とした専門職大学院で教壇に立ったりもしています。

URLhttp://www.linet.gr.jp/~kojima/Plamo/index.html

コメント

コメントの記入