連載 / U N Ⅸ便利帖ー 0 このカーネルを覆っているのがシェルで、さらにその外 側にいるのがユーザーということになります。そこで、ユ ーザーはカーネル (OS) にやらせたいことをシェルに伝え、 シェルはそれをカーネルに伝える、または逆にカーネルか らの応答はシェルに渡され、シェルがそれをユーザーに渡 すというやりとりがおこなわれることになります ( 図 1 ) 。 シェルの種類 sh うになっています。また、コマンド行のスペルを訂正す は、コマンド名や引数などを条件に応じて補完できるよ たシェルです。なかでも、プログラマプルな補完機能で csh に対し、対話的な利用に関する機能拡張をおこなっ tcsh リプトを書くときにも利用されています。 SheII" と呼ばれます。 ksh は、対話的にもシェル・スク が、 ksh は David Korn さんによる sh の拡張で Korn bash は GNU Project によって拡張されたものです ks h ンド履歴、ファイル名の補完などがあります。 す。おもな拡張機能としては、コマンド行の編集、コマ sh を拡張し、対話的に使いやすいようにしたシェルで bash (Bourne-Again Shell) 歴機能などにより、対話的に利用しやすくなっています。 BSDUNIX とともに普及したシェルです。コマンド履 csh (C Shell) うことが多いでしよう。 般ユーザーに限れば、シェル・スクリプトを書く際に使 ログインシェルなどに利用される場合がありますが、 までも、シングルユーザー・モードや root ユーザーの れを略して、、 B シェル " と呼ばれることもあります。い Steve Bourne さんの名前をとって Bourne Shell 、そ UNIX 系 OS では、もっとも旧いシェルです。開発者の ます。 現在普及しているおもなシェルには、以下のものがあり と扱い方などが大きく変わります。 あるのと同様に、同じカーネル ( OS ) でもシェルカ畯わる 同じ人でも服を着替えると印象ががらっと変わることが 118 る機能もあります。 図 2 /etc/shells # List of acceptable shells for chpass ( 1 ) . # Ftpd will not a110W users to connect who # are not using one of these she11s . /bin/bash /bin/csh /bin/ksh /bin/sh /bin/tcsh /bin/zsh zsh tcsh 同様のプログラマプルな補完機能や、より強力なコ マンド行編集機能 ( 複数行にわたる場合など ) をもつシ ェルです。 Linux などの UNIX 系 OS では、 sh と bash 、 csh と tcsh は、それぞれ同じバイナリでファイル名だけが異なる 関係になっていることが多いようです ( たいていは、 sh の 実体が bash 、 csh の実体が tcsh です ) 。 /etc/shells というファイルを見ると、そのシステムでど んなシェルカ駛えるかが分かります。これはシェルのパス 名カ汐リ挙されたテキストファイルで、 ーこに書かれている シェルはログインシェルとして利用できます。たとえば、 Mac OS X の /etc/shells は図 2 のようになっています。 ユーザーは、このファイルに言当されているシェルのな かから、自分の好みに応じてログインシェルを選ぶことが できます。 シェルの実行 テキスト画面しか使えない場合は、 "login:" というプロ ンプトに続いてアカウント名やパスワードを入力すれば、 すぐにログインシェルが起動されてシェルカ駛えるように なります。しかし、このような環境にある人はふだんから シェルを利用しているでしようから、今回の説明はほとん ど必要ないでしよう。 X ウインドウ・システムかいている PC UNIX など を使っている場合は、以下のようにします。 画面上に xterm や kterm などの xyzterm という名 前のアプリケーションがすでにあるのなら、そのウインド ウのなかでログインシェルが実行されているので、特別な 操作をしなくてもそのままシェルが使えます。そうでな いときは、メニューやアイコンなどを利用して、上記の UN 工 X MAGAZINE 2006.4
UN Ⅸ便利帖 宮下甫 シェルの基礎知識 図 1 ユーザーとシェル、カーネル UNIX 系 OS で、ユーザーが初めて触れるアプリケーシ ョンはシェルではないでしようか。 W ⅲ dows でシェルに相当するのは、、コマンドプロンプ ト " ですが、ごく雹甬の Windows ユーザーにはあまり馴 染みがなさそうです 1 。しかし、 UNIX 系 OS を利用する 場合には、、、何はともあれ、まずシェルを動かして " という 状況は珍しくないでしよう。最初から X ウインドウ・シス テム上で操作したり、 MacOSX のようにグラフィカルな ューザー・インターフェイスが標準の環境であれば、、、と りあえず、ターミナルを開いて " となるかもしれません。 ・・とこれまで思い込んでいたのですが、上記のような GUI が標準の環境 (X 十 KDE などがデフォルトのシステ ムや Mac OS X など ) が普及したためか、 UNIX 系 OS のユーザーといえども、それほどシェルに親しんでいるわ けではないことに最近になって気づきました。 シェルという言葉はコンピュータ業界特有の造語ではな これらのグラフィカルな工竟では、メニューを選択した く、、、 shell" という英単語そのものです。英和辞典で shell りアイコンをクリックすれば、シェルを使わなくてもアプ の項を引くと、貝殻や甲羅、豆の莢などの訳語が載ってい リケーションの起動やシステム設定の変更などの操作が簡 ます 2 。とにかく、何かを覆っている外皮のようなものが 単にできます。とくに、そのコンピュータの利用目的が shell です。 www ページの閲覧やメールの送受信、音楽鑑賞などで それでは、 UNIX 系 OS のシェルは何を覆っているの あれば、なおさらシェルとは縁遠くなるようです。 でしようか。莢のなかに豆があるように、シェルのなかに しかし、シェル ( とその周辺のコマンド ) ほど楽しく、使 は OS の核、つまりカーネル ( kernel ) があります。これ えば使うほど用途のひろがるアプリケーションはないよう が OS の本体であり、 OS の基本的な機能を受け持つ重要 に思います。しかも、これらのコマンドは UNIX 系 OS な部分です。ユーザーの要求はすべてこのカーネルが実行 に標準でインストールされているので、利用しないのはも してくれますが、ユーザーがカーネルを直接制御すること ったいないというものです。 はできません。 そこで、今回はシェルを使い始めるために最低限必要な 知識について説明します。この記事力載されるのは 4 月 2 英不日辞典ではありませんが、たまたま本棚にあった「新舌村 ( 三省切とい う辞典には、、シェル ~ の項に、まさしく今可説明しようとしているシェルが 載っていました。 1 そのためか、これを、黒い画面 " と呼んで恐れている学生もよくみカ寸ナます。 ユーザー コマンドを 実行して シェ丿レ を実行して ほしいって カーネ丿レ えっとコ s ね。 はい、これが 実行結果 の実行結果だよ 号ですし、いろいろなことを始めるのにちょうどよい時季 でしよう。 シェルとは 117 UNIX MAGAZINE 2006 . 4
連載 / UN Ⅸ便利帖ー 0 xyzterm というアプリケー ションを探して実行しましょ UNIX MAGAZINE 2006 . 4 とします。 3 ・可は、アカウント情報カそのコンピュータでローカルに艝理されているもの きは次のようにします。 します 3 。たとえば、ログインシェルを tcsh に変えたいと ログインシェルを変更するには、 chsh コマンドを利用 できるように、ログインシェルも好みで変えられます。 ルになっているはずですが、パスワードをユーザーか変更 はシステムの標準的な設定もしくは管理者の指定したシェ どとともにアカウント情報として管理されています。最初 に起動されるシェルのことで、ユーザー名やパスワードな ログインシェルとは、文字どおり口グインした際に最初 ロクインシェ丿レ いませんが ) Return キーを押します。 して引数ー 1 を入力します。最後に、にこには表示されて まず、 ls コマンドを小文字で入力し、続いて空白を、そ % ls ー 1 示させるには次のようにします。 ファイルについて、作成日時などの詳しい情報も含めて表 コマンドがあります。 ls コマンドで、ディレクトリ内の各 たとえば、ディレクトリの内容を一覧表示する ls という たは Enter キー ) を押し、入力を終了します。 どのあいだは空白で区切ります。最後に Return キー ( ま 字で入力します。また、コマンド名と引数 ( オプション ) な 打ち込みます。その際、コマンド名などは原則として小文 の例では % 記号 ) が表示されているときにキーボードから シェルに入力するコマンドは、シェル・プロンプト ( 以下 シェルの基本 実行されます。 同様の動作をするので、そのウインドウのなかでシェルが ケーションは X ウインドウ・システムにおける xterm と き、そのなかの、、ターミナル " を実行します。このアプリ フォルダのなかにあるユーティリティというフォルダを開 Mac OS X の場合は Finder で、アプリケーション・ くない部分で右クリックしたりすると表示されるはずです。 ンをクリックしたり、あるいは画面のウインドウがまった う。メニューは、画面の左下隅などに表示されているボタ % chsh —s tcsh ただし、前述の /etc/shells に書かれていないシェルに は変更できません。 chsh コマンドで変更するのはログインシェルなので、上 記のように実行しても、そのときに使っているシェルがい きなり変わったりはしません。ログインシェルが本当に変 更されたかを確認するには、もう 1 回ログインしてみます。 いったんログアウト (exit コマンドを実行 ) してからログ インしなおすか、ウインドウ環境などであれば、ターミナ ルをもう 1 つ開くだけでよいので簡単です。 また、ログインシェルは変更せずにとりあえず使ってみ たいというときは、そのシェルを通常のコマンドと同じよ うに実行します。たとえば、シェル・プロンプトに続けて 、、 tcsh" と入力すれば、 tcsh がその場で起動します。この 方法は chsh を利用するよりもずっと楽ですし、ちょっと 試してみて気がすめば exit コマンドですぐ終了できるので 手軽です。 コマンド・サーチ / ヾス こまでに出てきた ls コマンドや chsh コマン さて、 ドは、システムのどこに置かれているのでしようか。コマ ンドがどのディレクトリにあるかを知るには which コマ ンドを使います。探したいコマンド名を引数にして which コマンドを実行すると、次のようにそのコマンドがどこに あるかを示してくれます。 % which chsh /usr/bin/chsh この例では、 chsh コマンドは /usr/bin ディレクトリに あること力分かります。 /usr/bin ディレクトリにある chsh コマンドを実行す るのですから、 /usr/bin/chsh というふうに入力しなけれ ばならないように思えます。しかし、実際には上例のよう に基本的にコマンド名だけを入力すれは正しく実行されま す。なぜでしようか。 これは、、、コマンド・サーチパス (command search path ) " という考え方によるものです。コマンド・サーチパ スとは、その名が示すとおりコマンドを検索 (search) する ための、、遡頂 ( path ) " であり、省略してたんに、、パス " と呼 ばれることもあります。コマンドが置かれているディレク 119
連載 / U N Ⅸ便利帖ー 0 トリをパスに登録しておくと、いちいちディレクトリ名も 120 も何も表示されない場合は、、 echo $PATH" と入力してみましよう。 5 大文字の、 PATH " 変数を使うシェルもあります。、 echo $path" として 果をシェル内部にイ尉寺していることもあります。 4 処理を高速化するため、入力のたびに検索するのではなく、事前に検索した結 入力を促すときにシェルカ俵示する記号です。 ーといいますが、シェル・プロンプトも、ユーザーからの 技中の俳優に台詞のきっかけなどを与える人をプロンプタ 、、シェル・プロンプト " と呼ばれます。舞台の陰にいて、演 こまでに示した例で、コマンド行の左端にある、、 % " は プロンプトの変更 わけです。 、、 echo /usr/bin /bin" となり、上記のように表示される て、、 /usr/bin /bin" に変換されるので、、、 echo $path" は き渡します。つまり、上の例では、、 $ path " がシェルによっ 渡すと、シェルがそれを変数の値に変換してコマンドに引 変数名の前に、、 $ " を付けたものをコマンドに引数として 表示されます。 ば、、、 echo Here we go" と入力すれば、、 Here we go" と echo は、引数をそのまま出力するコマンドです。たとえ /usr/bin /bin % echo $path うに echo コマンドを使います 5 定されています。現在の path の値を確認するには次のよ コマンド・サーチパスは、 path という名前の変数に設 あたらず、エラーとなったわけです。 クトリに置かれていたため、ノヾス (/bin と /usr/bin) にみ これを実行した環境では、 ping コマンドは / sb ⅲディレ tcsh: ping: Command not found. % ping localhost と、次のようにエラーメッセージを出力します。 す 4 。これらのディレクトリにないコマンドが入力される ら 2 つのディレクトリを探して chsh をみつけ、実行しま ている場合、 chsh コマンドが入力されると、シェルはこれ できます。たとえば、パスに /bin と /usr/bin が登録され パスには、一度に複数のディレクトリを登録することが 探してコマンドをみつけ、実行してくれます。 含めて全部入力しなくても、シェルがそのディレクトリを このプロンプトには標準の形式があり、 sh や bash な どの sh 系のシェルでは $ に、 csh や tcsh では、、 % " ま たは、、 > " になっています。 OS によっては、これにいろい ろと付け加えた形式になっている場合もあります。たとえ ば、 MacOSX の bash では、次のように、、ホスト名 : デ ィレクトリューザー名 $ " が標準です。 challenger : /usr/share/tcsh miyasita$ 私はこのような長いプロンプトにどうも馴染めないの で、もっと単純に、、ホスト名 [ コマンド履歴番号 ] % " とい う形式にし、全体をボールド体 ( 太字 ) にして目立つように しています。 challenger [ 331 ] % プロンプトを自分の好きな形式にすると、シェルへの親 しみもぐっと増すでしよう。以下では、 tcsh を例にプロン プトの変更方法を説明します。 プロンプトは、 prompt という名前の変数に設疋されて います。この変数の現在の値を知るには、さきほども出て きた echo コマンドを利用します 6 % echo " $prompt " たくさんの、、 % " を含む妙な文字列が、プロンプトの形式 の定義です。彳のオンライン・マニュアルに詳しく説明 されていますが、おもなものについて簡単に紹介しておき ましよう。 % % : % そのものを出力 : 現在時刻を 24 時間制で出力 : ューザー名を出力 %m : ホスト名のうち、最初のドットまでを出力 %M : 完全なホスト名を出力 : コマンド履歴番号を出力 : ボールド体での出力を止める : 以降の文字列をボールド体で出力 %T %n %h %b %B UNIX MAGAZINE 2006.4 $prompt の熔をシェルがさらに奐するのを防ぐためです。 6 こで、 echo コマンドの引数全体を で括っているのは、変数 % set prompt マンドを利用します。たとえば、 これらを使い、自分専用のプロンプトを作るには set コ
失敗しているのだから、ファイルのクローズや削除 ( un - link) は不要と思うかもしれません。しかし、ファイルの オープンには成功したものの、 fchmod を実行しようとし て失敗した場合にも、一こに到達します。このケースでは、 よけいなファイルか残らないように、クローズして u ⅲⅲ k する必要があります。 ファイルがオープンできたらシェル・プログラムを書き 込みますが、先頭行にインタープリタ指定を加え、正しく close(fd) ; return ー 1 ; unlink(filespec) ; close(fd) ; filespec) ; message (MESS—DEBUG, "error writing %s\n" strlen(script) ) { write(fd, script, strlen(script)) ! = if (write(fd, "#!/bin/sh\n\n", 11 ) ! = シェル・スクリプトとして解釈されるようにします。 106 前節までは C 言語で言されたプログラムをみてきまし Pe で書かれたプログラム unlink(filespec) ; wait(&rc) ; を待ってから、一時ファイルを削除して関数を終了します。 親プロセスは、子プロセスのシェル・プログラムの終了 しく動作を続けられます。 な ) 大態になってしまっても、 logrotate コマンド自身は正 こうすることで、シェル・プログラムの実行中におかし exit(l); execlp(filespec, filespec, logfn, NULL) ; if ( ! f ork ( ) ) { でおこないます。 実際のシェルでの実行は、子プロセスを作成してそちら ていません。 オープンできないと困るからです。そのため、 unlink はし はその手は使えません。シェルがファイルを実行する際に に unlink で削除してしまうことがよくありますが、今回 一時ファイルを使う場合、ファイルをオープンした直後 たが、 PerI で言された同様のプログラムもあります。ひ ょっとすると perl があまり得意でない方もいるかもしれ ないので、ソースコードをみていくのではなく、コマンド の機能を紹介することにしましよう 1 。 rotate 最初に紹介するのは rotate コマンドです。このプログ ラムの機能は、ほかのプログラムにくらべるとやや貧弱で す。 複数のログファイルをローテーションしたい場合には、 引数として保存するファイルの個数ぶんの拡張子を指定し なければなりません。たとえば、拡張子が 0 、 1 、 2 の 3 つ のファイルを保存したければ、ログファイル名の後ろに、、 2 1 0 " と指定する必要があります。 これでは使いにくいと感じるかもしれませんが、じつは 柔軟な言妬 t といえます。上では 3 つのログファイルを直 で指定していますが、同じ方法が日時を指定してログファ イルを残す場合にも利用できるのです。 これはマニュアルにも書かれている方法ですが、置換す る拡張子を指定する部分に、 ( date + %Y%m%d ( などと言することによって、実行する年月日を拡張子と してログファイルを保存します。 1 つのコマンドがいろい ろなかたちで使えたり、バッククオートを使うあたりは、い かにも UNIX らしい解決法といえるのではないでしよう S arah rotate と同じく Perl で書かれたコマンドとして、 sarah があります。こちらは logrotate コマンドと同様に、 new- syslog の代わりに使えるコマンドとして設計されていま す。 sarah コマンドのコンフィグ・ファイルも logrotate コ マンドと同様に、 newsyslog コマンドにくらべるとネ礬な ものとなっています。しかし、コンフィグ・ファイル内に 書かれた数値の前には、それぞれなんのための値かを示す キーワードが置かれているため、たいへん読みやすくなっ ています。 1 もっとも、 C 言語を知っていれば Perl で書かれたプログラムはそれほと難 しくはありません。興末のある方はソースコードも参照してみてください。 UN 工 X MAGAZINE 2006 . 4
SC 北 シェルへの沼待 好評発売中 ! たのしい UN Ⅸ ・坂本文著 ・ A5 判、 367 ページ ・ ISBN 4-7561-0785-0 ・ 1 , 937 円 ( 税込み ) UN Ⅸの世界でこの本を知らない人は“もぐり”といわれ るほどの大好評ロングセラー。初心者はもちろん、中級者 にも十分役立つ知識をやさしい語り口で伝えます。 続・たのしい UN Ⅸ 第本文ー ) ( た三 - ・ト戸 (4)Mac OS X のアプリケーション・・・・・・ 2006 / 4 127 ・ロポットのある暮らし ( 榊 ) ( 2 ) 歩き始める・ 2005 / 4 109 ( 3 ) 市掬の基本的な仕組み・・・・・・ 2005 / 5 125 ( 4 ) 初期言綻・・・ ・ 2005 / 6 153 ( 5 ) 開竟を整える・・ 2005 / 7 162 ( 6 ) クロス開発麭竟のデバッグとコンパイル・・ ( 7 ) サーポを動かす・・・・・・ 2005 / 9 151 ( 8 ) センサーによる姿勢の市胸・・・・・・ 2005 / 10 163 ( 9 ) 歩行プログラムを作る・・・・・・ 2005 / 11 153 ( 10 ) 歩行プログラムを作る ( 2 ) ・・ 2005 / 12 160 ( 11 ) 歩行プログラムを作る ( 3 ) 股関節とくるぶしの制御・・ 2006 / 1 145 ( 12 ) 歩行プログラムを作る ( 4 ) プログラムの仕様変更・・ 2006 / 2 144 ( 13 ) 歩行プログラムを作る ( 5 ) 新たな制御体系・・・・・・ 2006 / 3 146 ( 14 ) 歩行プログラムを作る ( 6 ) 2006 / 4 148 ・ Coffee Break Open Cygwin Window Here の逆吉田昌英・・・・・ 2005 / 4 76 マークの謎鴨中茂 : 戀い・・・・・ 2005 / 4 158 Cygwin のシェルと Windows のダブルクリック操作吉田昌英 ・ 2005 / 6 98 続・ Cygwin のシェルと Windows のダブルクリック操作 吉田昌英・・・・・ 2005 / 7 136 ノート PC の液晶パネルを卓上ディスプレイにくろひつじ・・ 2006 / 4 146 PC とオーディオ・・ ・ 2005 / 5 123 カナル型イヤホン・・ 2005 / 6 117 イヤースピーカー 2005 / 7 133 世間様とイヤホン・・ ・ 2005 / 8 136 Wax ・・・・・・ 2005 / 9 132 SHURE E4 シリーズ・・ オープンエア型ヘッドホン・・ デジタル・レコーダー P0dcasting ・・ Podcast と・音楽マーケット・・ ・ 2006 / 2 95 音配信の可生・・・・・・ 2006 / 3 114 の未来・・・・・ 2006 / 4 115 2004 年度の定例報告ほか寺田直美・・ 2005 / 4 131 current のノヾージョン 3 系への変更ほか 宮地利幸・・ 145 2005 / 8 153 続・たのしい UN Ⅸ ・坂本文著 ・ A5 判、 306 ページ ・ ISBN 4-7561-0789-3 ・ 1 , 937 円 ( 税込み ) やさしく書かれた C シェルの仕組みや使い方の説明を読み ながら、自然に UN Ⅸが分かる本。シェルの多彩な機能を 身につければ、 UN Ⅸの世界がさらにひろがります。 root から / への メッセージ 高野豊著 ・ A5 判、 316 ページ ・ ISBN 4-7561-0786-9 ・ 1 , 631 円 ( 税込み ) 日本に UN Ⅸが導入されて間もないころ、突然管理を任さ れた著者の悪戦苦闘ぶりを綴ります。スーパーユーザーの 示唆に富む告白談と飽くなき探求心の物語。 Life with UNIX Life with UNIX 物、えを′、物当第 0 ・ Don Libes 、 Sandy Ressler 著 坂本文監訳、福崎俊博訳 ・ A5 判、 440 ページ OISBN 4-7561-0783-4 ・ 3 , 059 円 ( 税込み ) UN Ⅸを愛するすべての人に捧げる UN Ⅸユーサー必携の 書。 UN Ⅸをめぐる裏話からカーネルの話まで、さまざまな情 報が満載されています。 株式会社アスキー ロポットからのデータの送信 Column root から . へのメッセーシ ・ My Life 、 Vith... ( 四本淑三 ) 2005 / 10 137 ・ 2005 / 11 129 ・ 2005 / 12 135 2006 / 1 117 ・ NetBSD News 〒 1 02 ー 8584 東京都千代田区九段北 1 - 1 3-5 日本地所第一ビル 電話 (03) 6888 ー 5500 ( 営業局 ) 2005 / 5 179 UNIX MAGAZ 工 NE 2006.4
SC 翡 好評発売中 ! プログラミング た場合を考えてエラー検査もおこない、オープンできなけ 次に、ファイルをオープンします。オープンできなかっ ば、そこで指定されたディレクトリを使います。 この処理ではい麭竟変数の TMPDIR が指定されていれ fd XXXXXX" , getenv("TMPDIR") ? : " "%s/logrotate . - snprintf (buf , sizeof (buf) , filespec = buf ; runScript 関数では、最初に一時ファイルを作成します。 つの文字列として渡されます。 つまり、 runScript 関数には、複数行のプログラムが 1 if (runScript (log—>files C10gNum] , log—>post) ) { します。 れています。これを引数として runScript 関数を呼び出 行するプログラムは、 10g 構造体の post メンバーに格納さ まとめてオ内されます。たとえば、ローテーション後に実 ログラムは、プログラム中では構造体の 1 つのメンバーに きましよう。コンフィグ・ファイルに書かれたシェル・プ に言古杢されたシェル・プログラムを実行する方法をみてい こでは、 logrotate コマンドのコンフィグ・ファイル ます。 ムは、ローテーション処理の前と後のどちらにも指定でき 現できないような処理もおこなえます。シェル・プログラ を謎杢することもできるので、コマンドの機能だけでは実 らに、コンフィグ・ファイルのなかでシェル・プログラム り、メールを使って通知するといったことカ河能です。さ なく圧縮を解除したり、圧縮の際のオプションを指定した りネ礬隹な指定がおこなえます。たとえば、圧縮するだけで logrotate コマンドは、 newsyslog コマンドよりもかな いるかを調べてローテーションを実施します。 テクニック プログラミング テクニック 0 、様コマントのリースコードにみる , 戸強ア 0 ク今ミンク年 マ目次から 生きたプログラムから 学ぶ実践的手法 ・多治見寿和著 ・ B5 判、 240 ページ ・ ISBN 4-7561-4389- X ・ 1 , 890 円 ( 税込み ) ればメッセージを出力して関数を終了します。 if (!filespec Ⅱ ()d = mkstemp(filespec)) く Ⅱ fchmod(fd, 0700 ) ) { message (MESS—DEBUG , " error creating %S : UNIX MAGAZ 工 NE 2006 . 4 return ー 1 ; unlink(filespec) ; close(fd) ; Strerror (errno) ) ; %s\n" , filespec , 0 ソースコードから学ぶ◆データ構造◆ 2 重リンクリスト◆木 構造◆ AVL 木◆ハッシュ◆端末の操作◆端末の制御◆ cat コマンド◆コマンド◆ファイルのロック◆パスワード・ファ イル◆ワンタイム・パスワード◆公開鍵暗号◆ SSH ◆構文 の解析◆ yacc•lex ◆ ping ◆ telnet ◆ ftp ◆ inetd ◆ xst 「◆ cmp と cksum ◆ man ◆フィルタコマンド (UNIX MAGAZINE ] 997 年 ] 1 月号 ~ 2000 年 3 月号より ) プロクフミノグ ・ 1 , 890 円 ( 税込み ) ・ ISBN 4-7561-4566-3 ・ B5 判、 224 ページ ・多治見寿和著 ソースコードを読む UN ー X プログラムの テクニックアドバンス をツース 0 ・・・トに・・一第・ま 第お物ー置 0 クうをンク アドバンス テクニック プログラミング マ目次から ◆ ◆ ◆非同期入出力◆シグナルの処理◆ sc 「 ipt コマンド lPv6 対応の te et ◆ t net の全体構造◆リングバッファ LAN 上のシステム情報の取得◆「 whod ◆「 up 、「 use 「 s g 「 ep ◆利 ex ◆ ps ◆情報の収集◆ユーザー情報の取得 電話 ( 03 ) 6888 ー 5500 ( 営業局 ) 東京都千代田区九段北 ] - 1 3-5 日本地所第一ビル 〒 1 02 ー 8584 株式会社アスキー (UNIX MAGAZINE 2000 年 4 月号 ~ 2002 年 3 月号より ) 105
ものがありました。 私もプログラミングを『プログラミング言語 C 』で勉強 した 1 人ですが、スクリプトについては、 UNIX 内部の各 種シェル・スクリプトを見ながら憶えました。そんな経験 もあるので、ソースコードカ毓めるのはすばらしいことだ 今月は、 UNIX の参考書の話題を紹介します。 という意見にはまったく同感です。 UNIX 竟 ・ UNIX の参考書 UNIX 環境そのものに関する本への意見として、「たの 巧 . unix に、「 UNIX 参考書」というタイトルの記事力般 しい UNIX 』のほか、 fLife with UNIX 』 ( アスキー ) 、 稿されました。これは、 UNIX についての知識のない新人 TUNIX プログラミング環、 TSUN システム管 ( ア に L ⅲ ux 上での作業に慣れてもらうことになりました、自 スキー。改訂版は「 solaris システム管理」 ) で UNIX を 分は「たのしい UNIX 』 ( アスキー ) と NEWS-OS 4. x で 学んだ、とりあえず 1 冊ということなら『新 TheUNIX UNIX のファイル操作を憶えましたが、システム管理関連 Super Text ( 上 / ード ) 」 ( 技術評論社 ) がよい、ページ数が はともかく、シェル・スクリプトによるツールの作成、コ 多くて重いが、充実した内容と比較すれは安い、、、使うコマ マンドラインでの操作の参考になるような本はあるでしょ ンドトップ 100 " のようなリストについては、ふだん使わ うか、コマンドラインでの操作については、、、使うコマンド ないコマンドから不正侵入を検知するといった、研究デー トップ 100 " のようなリストがあればそれをもとに教えら タ用のコマンドの記録がどこかにあったはずである、とい れると思います、またスクリプトに関しては、以前持って ったものがありました。 いた「ソフトウェア作法』 ( 共立出版 ) にサンカレがたくさ 私が UNIX を学んだときは、会社の先輩たちカ乍成した ん載っていたような気がします、ただし、シェル・スクリ 社内用ドキュメントを参考に、 /bin や /usr/bin にあるコ プトについての説明があったかは記億カ靉味です、という マンドを片っ端から実行してみるといった、すこし無茶な 質問記事です。 ことをやって身体で億えました。最近は UNIX でも GUI これに対し、いろいろな本の紹介や UNIX についての ツールを使うのが当り前になってしまいましたが、コマン 己事力甘財高されました。おもなものを紹介します。 ドラインでの操作には GUI ツールにはない便利さがあり スクリプト ます。 OS をそれなりに使いこなしたいのなら、 UNIX に スクリプトの作成やプログラミングの参考になる本に関 かぎらずぜび慮えてほしいものです。 しては、『ソフトウェア作法』はすこし違うのではないか、 Unix Wars スクリプトのサンカレは「 UNIX プログラミング環境」 ( ア UNIX を勉強するための参考になる文書として、冗談半 スキー ) にたくさん載っている、この 2 冊は似ているとこ 分に「 Unix Wars 」を挙げている人がいました。これは ろがある、「 UNIX プログラミング環境』のサンプルコー STAR WARS ( エピソード 4 ) のパロディで、 UNIX や ドはいまではちょっと使えないのではないか、自分がプロ ハードウェア、そして、もちろん STAR WARS の知識が グラミングを勉強したころは「ソフトウェア作法』のほか、 あってはじめて楽しめるものですが、逆にそこに登場する 「プログラム書法」「プログラミング言語 CJ ( いずれも共立 未知の単語を調べることで新たな知識が身につくとも考え 出版 ) がバイプルだった、これらは現在でも読むに値する られます。とはいえ、かなり昔のハードウェアや UNIX の が、ソースコードの細かい部分ではなく、背後にある考え 工ッセンス的なものが多いので、当時の歴史を学ぶつもり 方や理念などを参考にすべきだ、プログラミングの勉強は で読んだほうがよいかもしれません。このドキュメントは ソースコードを読むのが一一番である、 Java カ嶝場したばか ずいぶん前に NetNews で配布されたことがありますが、 りのころに参考書を探したがみつからす、サンカレコード 現在は web ページ 1 で読むことができます。英文ですが、 を見るなどして勉強した、英語の文書の翻訳に苦しむより はソースコードを読んだほうが早いと実感した、といった 1 http://www.catb.org/-esr/writings/unixwars.html みるく 一三ロ 139 UN 工 X MAGAZINE 2006.4
2006 年 4 月 1 日発行第 21 巻第 4 号通巻 234 号 しツア切三重ツ 0 リ 3 び UNIX Communication Notes ネットワークの役割 プログラミング・テクニック ログのローテーション 天文学とリ N Ⅸ MUV GRAPE システム ネットワーク・ミニ実験室 Dynamic Update あれこれ リ N Ⅸ便利 シェルの基礎知識 文房具としてのリ N Ⅸ サーバー証明書とクライアント証明書 ユニックス・マガジン 定価 1100 円 ネ -MAGAZINE 区 a い山 er 層の働き 季刊 2006 使ってみよ ? , OpenS0 ねれ SO ね′ is の新しい潮流を探る ・ SchiIIiX ・ BeIeniX ・ Nexenta
・ 2005 年 4 月 ~ 2006 年 4 月 ◆ NetBSD News current のバージョン 3 系への変更ほか 宮地利幸・・・・・・ 145 •VMware 、 vorkstation 5.0.0 ( 2 ) イ反想デノヾイス、ゲス ト OS のインストール、パフォーマンス・テスト白崎博生・・ 72 △ UNIX Communication Notes ( 205 ) Digital I- dentity を考える山口英・・・・・・ 41 △ネットワークとセキュリティ ( 11 ) Sender Policy Frame- work 白畑真・・ ・・ 46 ニ実男 ( 7 ) ホストの名前解決荒井美丁子 △ネットワーク・ ・・・ 57 △プログラミング・テクニック ( 89 ) syslog ( 5 ) ソースコード多治見寿和・・・・・・ 66 △国立天文台のネットワーク ( 12 ) ウイルス対策ソフト 工将史・・・・・・ 89 △ IPv6 の実装 ( 35 ) IPv6 モビリティ ( 14 ) ー固定ノードへ の対応付け情報の更新島慶ー・・・・・・ 94 △文房具としての UNIX ( 14 ) Xfig 宮地利幸 / 森島直人・ 111 △ UNIX 便利帖 ( 51 ) Synergy 宮下健輔・・・・・・ 128 △ Linux のツールたち ( 25 ) Wnn8 for Linux/BSD 横垣駿雄・・・・・・ 152 △ロポットのある暮らし ( 5 ) 開発環境を整える榊正憲・・ 162 △インターフェイスの街角 ( 88 ) 逆リンクと兄弟リンク 増井俊之・・・・・・ 172 ☆ News ・・・・・・ 9 ☆ NAB2005 小本日真・・・・・・ 16 ±SSL VPN の重が司・・・・ 20 イヤースピーカー四本淑三・・・・・・ 133 My Life With. Coffee Break 続・ Cygwin のシェルと Windows のダ プルクリック操作吉田昌英・・・・・・ 136 ワークステーションのおと ( 200 ) Sun BIade 1000 のディス ク障害坂下秀・・・・・・ 141 NetNews 便り fj で使われているニュースリーダーみるく ・・ 146 2005 年 6 月号 ■ VMware 、 Vorkstation 5.0.0 ( 1 ) 新機能の言田 白崎博生・・・・・・ 23 ■ SOHO 向けサーバーの構築 ( 1 ) ネットワークの言 t と DNS/ 从 b サーバー荒木宏之・・・・・・ 79 △ UNIX Communication Notes ( 204 ) SPAM だ SpamAssassin の導入と設疋 らけのメールポックス ( 3 ) 山口英・・・・・・ 37 △ネットワークとセキュリティ ( 1 のリモート OS フィンガー プリンティング白畑真・・・・・・ 42 ニ実 ( 6 ) ファイル軾去の安生 △ネットワーク・ △国立天文台のネットワーク ( 11 ) VoIP への道険し工将史 ・・・ 67 △プログラミング・テクニック ( 88 ) syslog ( 4 ) vsyslog か ら呼び出される関数多治見寿和・・・・・・ 99 △ Perl 活用のヒント ( 18 ) ファイル名の一括変更 / 画像の統合 今聿英世・・・・・・ 104 △シェルの魔術 ( 15 ) 復習編 ( 5 ) ープロセスの複製と変身 森島直人・・・・・・ 113 △ UNIX イ財リ帖 ( 50 ) 電源の制御宮き甫・・・・・・ 119 △文房具としての UNIX ( 13 ) Tgif 宮地利幸 / 森島直人・・ 124 △ Red Hat Linux のツールたち ( 24 ) ATOK for Linux 二駿雄・・・・・・ 144 △ロポットのある暮らし ( 4 ) 初期定榊正憲・・・・・・ 153 △インターフェイスの街角 ( 87 ) 拷電話からの位置情報の活用 増井俊之・・・・・・ 162 ☆ News ・・・・・・ 9 ◆ Coffee Break Cygwin のシェルと Windows のダブルク リック操作吉田昌英・・・・・・ 98 ◆、 y Life 、 Vith. カナル型イヤホン四本淑三・・・・・・ 117 ◆ワークステーションのおと ( 199 ) プリントサーバーとプリン 夕、 SoIaris 10 からの日堀リ坂 - ド秀・・・・・・ 133 ◆ NetNews 便りダウンロードとアップロード みるく・・ 137 ◆ NetBSD News 2005 年第 1 四半期のステータス・レポー トほか森島直人・・・・・・ 143 syslogd の ◆◆◆◆ 2005 年 8 月号 Xen で作るマルチ・バーチャルマシン ( 1 ) Xen の仕組み、イ ンストール手順白崎博生・・・・・・ 27 ・ Cisco Aironet で無線 LAN ( 1 ) アクセスポイントの基 本定工将史・・・・・・ 86 △ UNIX Communication Notes ( 206 ) Digital I- dentity を考える ( 2 ) ー認証基盤の問題山口英・・・・・・ 43 △ネットワークとセキュリティ ( 12 ) OpenSIMS 白畑真 ・・・ 48 ニ ( 8 ) DNS による名前解決 △ネットワーク・ 荒井美千子・・・・・ 65 2005 年 7 月号 ・ SOHO 向けサーバーの構築 ( 2 ) ーの構築と設疋 メールサーノヾ ・・特集 / △・・・連載 / ・ ・・論文・漣載・他 /☆・・ News/+ ・・ Notice/ ◆・・ C01urnn 第 171 UNIX MAGAZ 工 NE 2006.4