設定 - みる会図書館


検索対象: UNIX MAGAZINE 2001年8月号
144件見つかりました。

1. UNIX MAGAZINE 2001年8月号

も利用する場合があるので、シェルの種別を判定してか らそれぞれの設定をするはうがいいでしよう。 2. ~/. tcshrc ( ない場合は ~/. cshrc) ューザーごとの設定ファイルです ( 以下では、ユーサー のホーム・ディレクトリを、、 ~ / " で表します ) 。 tcsh は csh との、、完全互換 " を謳っているので、 ~/. tcshrc が なければ ~/. cshrc を読み込もうとします。したがっ て、 tcsh 固有の機能は設定しないか、あるいはシェル の種別の判定後に各シェルの設定をおこなうようにす れば、 ~/. cshrc だけを用意して csh と設定を共有さ せることもできます。ただし、 ~ /. tcshrc がみつかると ~/. cshrc があっても無視されるので、 ~/. tcshrc には tcsh 固有の設定を書く ~/. cshrc には tcsh と csh に共通の設定を書く といった使い方はできません (~/. tcshrc から ~/. cshrc を読み込むように設定すれは話は別です ) 。 3. ~/. history シェル変数 savehist ( 彳か叡疋されている場合、シ ェルの終了時にヒストリーか保存されます。シェル変数 histfile で、ヒストリーを保存するファイルを指定する こともできます。 4. ~ /. 10g ⅲ 各ューサーごとの設定ファイルです。 tcsh がログイン シェルとして起動されたときに読み込まれます。この ファイルは、 csh がログインシェルとして起動されたと きにも読み込まれます。 5. ~/. cshdirs シェル変数 savedirs ( 彳がセットされている場合、 シェルの終了時にディレクトリ・スタックカイ呆存されま す ( ディレクトリ・スタックについてはあとで詳しく説 明します ) 。シェル変数 dirsfile で、ディレクトリ・ス タックを保存するファイルを指定することもできます。 これらのファイルは、かならす存在しなければならない わけではありません ( なければ無視されるだけです ) 。ま ~/. cshrc は bash の ~/. bashrc に相当するファイル ですが、 tcsh の場合にはログインシェルであるか否かに かかわらす、つねにこのファイルか読み込まれます。した がって、 ~/. login のなかでこのファイルを読み込むよう に設定しなくてもかまいません。 UNIX MAGAZINE 2001.8 一方、 tcsh がログインシェルではない場合は、 / etc / csh. login と ~ /. 1 。 g ⅲは読み込まれません。 ~/. login と ~ /. tcshrc の使い分けは、 bash のときと同様です。 シェルの終了と設定ファイル ログインシェルとしての tcsh を終了するには、 exit または logout コマンドを使います。コマンドラインに 何も入力していない状態で、 Ctrl-D (Ctrl キーと d キー を同時に押す ) を入力して終了することもできます。ただ し、 ignoreeof というシェル変数を設定しておくと、上記 のように CtrI-D を入力しても、 Use "logout" t0 logout ・ というメッセージが表示され終了しません。 tcsh では、 文字列の補完に Ctrl-D をよく使います。ですから、 ig- noreeof を設定しておけば、コマンドラインに何も入力し ていないときに CtrI-D を入力し、誤ってシェルを終了さ せてしまうことを防げます。 一方、ログインシェル以外のシェルとして起動した tcsh で logout コマンドを実行すると、 N0t a login she11. と怒られます。ログインシェル以外のシェルを終了させる には exit コマンドを使うか、コマンドラインに何も入力 されていない状態で CtrI-D を入力します ( ログインシェ ルの場合と同本策、シェル変数 ignoreeof で Ctrl-D を無 効にすることもできます ) 。 また、 tcsh がログインシェルとして起動された場合に のみ、シェルの終了時に ~ /. logout という成疋ファイルを 読み込みます。たとえばコンソールからログアウトすると きに画面をクリアしたければ、 ~/. logout に、、 clear" とい うコマンドを書いておきます。起重加芋の設定ファイルと違 って言当する内容はあまりないと思いますが、このファイ ルも csh と共用なので、 tcsh 固有の言殳定はしないか、シェ ルの種別を判定してから処理するように言当しましよう。 xdm 利用時には注意 さきはど、「 ~ /. 10g ⅲと ~/. tcshrc の使い分けは bash のときと同様」と書きましたが、 xdm (X Display Man- ager) を使っている場合には注意が必要です。 通常、 UNIX マシンにログインして X ウインドウ・シ ステムを利用するときは、 35

2. UNIX MAGAZINE 2001年8月号

連載 /UNIX Communication Notes ・——with—sas1dir=PATH configure ー help " で表示される。これを参照し、環 上記以外にも多数のオフションがあるが、その一覧は するほうが自然である。 は、、 / var " だが、 BSD 系であれば、、 /var/run" を指定 イルを作成するディレクトリを指定する。デフォルト 実イの不丿獻態に関する情報が入ったさまざまなファ ・——with—statedir=PATH : 参具の。 オプションを指定する ( 詳細は付属のドキュメントを ここには別の 指定する。 Kerberos を利用する場合は、 テムのみを使用するので、 METHOD には、、 unix" を 認証に使うプロトコルを指定する。通常は UNIX シス ・ --with-auth=METHOD リを指定する。通常は、、 /usr/local" とする。 さきほど述べた libsasl をインストールしたディレクト % make a11 % make depend 行か題なく終ったら、 とすると、 Makefile などが生成される。 configure の夫 % . /configure 0 厖 0 れ s 指定すべきオフションカ鴃まったら、 境に合わせて適切なオプションを指定する。 でコンパイルを実行し、実行形式ファイルを作成する。 ーサー cyrus のホーム・ディレクトリは /usr/home/ 以降では、ユーサー名は cyrus 、グループは mails ユ ( 私は、 vipw コマンドを利用した ) 。 は、使っているシステムの標町勺な去でおこなえばよい バーのためのユーザーとグループを作成する。これ ます、 configure の実行時に孑旨定した、 Cyrus IMAP ユーサーとグループ乍成 める。 コンパイルの終了後以下に述べる手順で設定作業を進 図 1 syslog ・ conf への言の追加 10Ca16. debug auth. debug /var/log/imapd ・ 10g /var/log/authlog cyrus という前提で説明する。 ューザー cyrus は、通常は su によって利用する。 UNIX MAGAZINE 2001.8 ログ インする形式では使わないので、ホーム・ディレクトリはどこ に設疋してもよい。 IMAP サーバーの設定ファイルは、すべ て /etc/imapd. conf の configdirectory てオ旨定したディレ クトリ付旨定ガ去は彳に褓内される。このディレクトリと、 ューサー cyrus のホーム・ディレクトリは無関係である。 インストール r 。。 t になり、コンパイル済みのファイルをインストー ルする。 # make install syslog の言殳定 IMAP サーバーカ吏用する syslog を設定する。 IMAP サーバーは、ファシリティ、、 10Ca16. debug" で情報を生成 する。さらに、ユーサー認証に利用する SASL パッケー ジからもいくつかのメッセージが、、 auth. debug" として 生成される。したがって、 syslog. conf に図 1 のような設 定を書き加えればよい。ここて指定したファイルがない場 合には、 # touch /var/log/imapd. 10g として空のファイルを作成しておく。 imapd. conf の用意 cyrus IMAP サーバーを起動すると、いくつかのファ イルが作成される。これらのファイルをオ絲するディレ クトリ名などは、 imapd. conf ファイルで設疋する。この ファイルに言当主すべき情報は、 imapd. conf のオンライン・ マニュアルを参照してほしい。 図 2 に、最小限の設定を言当主した imapd. conf の例を 示す。各行の意味は以下のとおりである。 ・ configdirectory IMAP サーバーのための設定ファイルを↑内するディ レクトリを指定する。このディレクトリを作成し、所有 者は cyrus 、グループは mail として一モードを 750 に設定する。 # mkdir /var/imap # chown cyrus. mail /var/imap # chmod 750 /var/imap 63

3. UNIX MAGAZINE 2001年8月号

ね就加 9 Up lPv6 ( 4 ) 図 9 鍵の生成例 % dnssec-keygen —a HMAC-MD5 -b 512 ーⅡ USER unimaga Kunimaga. + XXX + YYYYY % cat Kunimaga. + XXX + YYYYY. private A1gorithm : XXX (HMAC—MD5) Key : aKDJFRpsksaj dsalj da1kjda1k/B2mf8X34 + XQ11kadj aldj aldj as1idsKDJSkad1ksaj dalksajdsdassdasd= アルゴリズム (—a) : HMAC-MD5 、鍵長 (b) : 512 、ネームタイプ : USER 、名前 : unimaga dnssec-keygen の Key 出力値は、安全性を酉して意図的に壊してある。 リスト 6 rndc. conf て ndc 用の設定ファイル。Ⅱ amed. co Ⅱ f の鍵と合わせる。 key rndc—key { algorithm "hmac—md5" ・ secret " d Ⅱ ssec ー keyge Ⅱが生成した鍵ファイルに含まれる Key を指定する一 options { default—server localhost ; default—key rndc—key ; 図 10 BIND 9 を起動 # /usr/local/sbin/named # tail /var/log/messages Jun XX 00 : 46 : 18 ns /usr/10ca1/sbin/named[27259] : running Jun XX 00 : 46 : 18 ns /usr/10ca1/sbin/named[27259] : listening on IPv4 interface 100 , 127.0.0.1 # 53 Jun XX 00 : 46 : 18 ns /usr/10ca1/sbin/namedC27259] : listening on IPv4 interface 1e1 , 192.168.0.2 # 53 取 0 ' Jun XX25 00 : 46 : 18 ns /usr/10ca1/sbin/named[27259] : the default for the 'auth—nxdomain' option is Ⅱ Jun XX 00 : 46 : 18 ns /usr/10ca1/sbin/namedC27259] : loading configuration from ' /etc/named. conf' Jun XX 00 : 46 : 18 ns /usr/10ca1/sbin/namedC27259] : using 1 CPU Jun XX 00 : 46 : 18 ns /usr/10ca1/sbin/namedC27259] : starting BIND 9.1.2 0 I 。 calh 。 st ( 127.0.0.1 ) の正引き、逆引き設定ファイル には、リスト 4 とリスト 5 を使用しています。 BIND 9 では、リモートからネームサーバーをコント ロールできます。これは BIND 8 で ndc と呼ばれていた もので、 BIND9 では rndc という名前になっています。 現在のところ、 rndc は ndc のすべての機能を実装してい ません ( 将来的には実装される予定です ) 。 rndc は、 named と TCP で通信して、ゾーン情報の更 新といったコントロールをおこないます。そして、この処。 理に、、署名 " することでセキュリティを強化しています。 このため、 rndc と named のそれぞれにおいて事前に鍵 を設定しておく必要があります。鍵は、 dnssec-keygen を使って生成します。これを実行すると、 K れ arne. + 0 + 乞 d. key Kname. + 佖砂 + id. private の 2 つのファイルに出力されます。 94 dnssec-keygen かイ E 成した、、、 Kunimaga. 十 XXX 十 YYYYY. private" ファイルのなかの、、 Key : " 以降を鍵と して使います ( 図 9 ) 。鍵は、 named. conf や rndc. conf の key 工ントリのなかの secret に、次のように””て才舌っ て指定します。 key rndc—key { algorithm "hmac—md5't secret "aKDJFRpsksajdsa1jda1kjda1k/B2mf8X3 4 + XQ11kadja1dj aldj as1idsKDJSkad1ksaj dalksaj dsda 成疋ファイル named. conf と rndc. C011f ( リスト 6 ) に ある、、 secret" 工ントリは、 dnssec-keygen を使って鍵を 生成して指定します。 これらのファイルを設定したら、 BIND 9 を起動して DNS サーピスを開始します ( 図 10 ) 。 DNS の運用をおこ なっていなくとも、ローカルなネットワークで遊べるので 試してみましよう ( 手を動かしてこそ管理者です ) 。 UNIX MAGAZINE 2001.8

4. UNIX MAGAZINE 2001年8月号

図 2 Nomail の構成 MUA nomail 0 /var/spool/mail 各ユーザーの メールポックス ストーノレは完了である。 使い smtphost 外部メールサーバー nosend /var/nomail メー丿レキュー 目の internetaddr と smtphost を書き換えれば、 イン Nomail は、 2 つのプログラムから構成されている。 SMTP サーバーである sendmail のラッノヾーとして動く nomail 、そして、プロノヾイダの SMTP サーノヾー ルを送る nosend である ( 図 2 ) 。 さきほどの図 1 と同様に localhost の 25 番ポートに telnet て接続し、メールを送ってみよう。 nomail は、宛 先を判断してメールを配信してくれるはすである。ローカ ル向けであればメールスフールに、 リモート向けであれば /var/nomail に溜め込んでいるのが分かるだろう。 リモート向けのメールは、明カ勺に nosend コマンドが 実行されるまで /var/nomail に溜められるので、かなら すしもネットワークに接続されていなくてもかまわない。 、、ダイヤルアッフ・モバイルエ竟用 " と銘打っているゆえん である。ネットワークに接続して nosend を実行すると、 /var/nomail に溜められているメールは 110mai1. conf の smtphost として指定されたメールサーバーに渡される。 以降の配信処理は、そのメールサーバーに一任する。メー ルサーバーは、 nosend の—s オプションでも指定できる。 うまくいけば、あとは MUA で Nomail の動いている マシンを SMTP サーバーとして指定するだけでいい。多 くの場合は、、 localhost" になるだろう。 Nomail は、 sendmail のフリをすることもできる。 UNIX のメールコマンドの多くは、 /usr/lib/sendmail 132 または /usr/sbin/sendmail を直接起動してメールを送 信する。この場合、たとえば次のようにして /usr/sbin/ nomail にリンクを張れは、 sendmail から Nomail か利 用できるようになる。 # cd /usr/sbin # mv sendmail sendmail. org # 1 Ⅱ—s /usr/sbin/nomail /usr/sbin/sendmail Nomail の故疋を詳しくみていこつ。 nosend と no- mail は、共通の設定ファイルである /etc/nomail. conf を参照する。リスト 1 を見てほしい。 localuser ( 4 行目 ) Nomail は、デフォルトで Nomail か動いているホスト にアカウントのある全ューサーにメールを送信できる。 nomail,conf での設定 で上書きできる。ノート PC で N 。 mail を使っている を指定すればよい。これは、 nosend の—s オフション ーを指定する。通常は、プロバイダの SMTP サーバー リモート向けに配信するメールを送付するメールサーバ smtphost ( 13 行目 ) nosend コマンドの一 f オフションで上書きできる。 スを言当する。 これは、プロバイダから指定された正規のメールアドレ MAIL FROM: として通知するアドレスを指定する。 プロバイダの SMTP サーバーにメールを渡すときに internetaddr ( 10 行目 ) たい場合に設定する。 このオプションは、ローカルドメインを明カ勺に指定し 送される。 宛のメールはすべてそのホスト内のメールスプールに配 ample.com となる。したがって、 xxx@example.corn example.com のホストでは、ローカルドメインは ex- ローカル向けと判断する。たとえは、 FQDN が mail. 分をローカルドメインとし、そのドメイン宛のメールを Nomail は自ホストの FQDN のホスト部分を除いた部 localdomain ( 7 行目 ) けメールを送りたい場合に指定する。 このオプションはそれを制限し、特定のユーザーにだ UNIX MAGAZINE 2001.8

5. UNIX MAGAZINE 2001年8月号

特集リ N ー X の基礎知識 0 前回の説明に譲ることにして、以下では tcsh での検索パ スの扱いやジョブ制御について簡単に説明します。 コマンドの検索パス あるコマンドを実行しようとしたとき、そのコマンド名 だけを指定すると、シェルは環竟変数 PATH て指定され たディレクトリ・リストを麪頁から順に検索し、一致した ものを実行します。 tcsh や bash にかぎらす、ほとんど すべてのシェルがこのような処理をおこないます。 通常、 UNIX のアプリケーションは、 実行ファイルは /usr/bin や /usr/local/bin など ・ライプラリは /usr/lib や /usr/local/lib など データなどのファイルは /usr/share や /usr/local/ share など ・マニュアルは /usr/man や /usr/local/man など のようにファイルの用途別に整理されているので、たいて いは、、 b ⅲ " という名前のディレクトリを探せは実行ファ イルがみつかるようになっています。 話をもとに戻しましよう。 tcsh も環境変数 PATH に 設定されたディレクトリ・リストにもとづいてコマンドを 検索しますが、前述したとおり環竟変数 PATH はシェル 変数 path と連動します。以下に示すように、シェル変 数 path を設定すれは環境変数 PATH も自重加勺に設定さ れ ( 逆の場合もあります ) 、一方を変更すれは他方にも反 映されます ( 誌面の都合上、で折り返しています。以 下・同様 ) 。 /usr/local/bin: /usr/bin: /bin [hayao@mypc ~ ] % ech0 $PATH /usr/local/bin /usr/bin /bin Chayao@mypc ~ ] % ech0 $path /usr/bin /bin ) [hayao@mypc ~ ] % set path=( /usr/local/bin 42 トリをコロンで区切りますが、シェル変数 path では空白 注意してください。工竟変数 PATH では複数のディレク ただし、ディレクトリ・リスト窈旨定去が異なるので [hayao@mypc ~ ] % ロ /usr/X11R6/bin: /usr/local/bin: /usr/bin: /bin [hayao@mypc ~ ] % echo $PATH /usr/X11R6/bin /usr/local/bin /usr/bin /bin [hayao@mypc ~ ] % echo $path [hayao@mypc ~ ] % setenv PATH /usr/X11R6/bin : $PATH で区切ります。さらに、シェル変数 path の場合は、 レクトリ・リスト本を瓜で囲む必要があります。 内部コマンドと外部コマンド ディ tcsh にも、シェル自身に組み込まれた数多くの内部コ マンドがあります。 cd や setenv など、ここまでに紹介 したコマンドもはとんどがこれにあたります。 あるコマンドカ吶部コマンドかどうか、外部コマンドで あれはどこに置かれているのかを調べるには、 tcsh では which コマンドを使います。 [hayao@mypc ~ ] % ロ which: shell built—in [hayao@mypc ~ ] % which /bin/ls [hayao@mypc ~ ] % which which の引数に調べたいコマンド名を指定すると、内 command. whi ch ls とで説明する工イリアス ( 別名 ) か設定されていれば、以 れは検索パスを調べて絶対パスで表示します。さらに、あ 部コマンドであれはその旨を表示し、内部コマンドでなけ 下のようにその内容か表示されます。 [hayao@mypc ~ ] % which ls 1s : aliased to 1s —F [hayao@mypc ~ ] % ロ すこし整理すると、とくに指定しないかぎり、 のコマンド実行は以下の順でおこなわれます。 1. ェイリアスに設定された別名 2. 内部コマンド tcsh で 3. 環竟変数 PATH を検索してみつかった外部コマンド which は引数に指定されたコマンド名をこの順番で検 索し、最初にみつかったもの、つまり実際に実行されるも のを表示します。 一方、 tcsh には where という内部コマンドも用意さ れています。このコマンドは工イリアスや内部コマンド、 検索パスを調べ、一致するものをすべて表示します。 [hayao@mypc ~ ] % where which which is a shell built—in /usr/bin/which [hayao@mypc ~ ] % ロ which は内部コマンドだけでなく、同名の外部コマンド もあることが分かります。この例では外部コマンド which UNIX MAGAZINE 2001.8

6. UNIX MAGAZINE 2001年8月号

新・倉敷芸術科学大学のネットワーク構築・・・ 11 図 9 コンソールへのメッセージ表示制胸 * Summit48i : 11 # enable 10g display * . err;kern. debug;auth. notice;mail. crit /dev/console 図 10 UNIX システム側での syslog の言諚 (/etc/syslog. conf) * Summit48i : 13 # * Summit48i : 12 # 06 / 20 / 2001 00 : 26.49 く INFO:SYST> serial admin: enable 10g display * . notice ; kern. debug ; Ipr ・ info ;mail. crit ;news . err /var/log/messages SeCUrity. * mail . info lpr. inf0 10Ca10. * (a) syslog の言聢 図 11 Summit スイッチ側での syslog の言聢と確認 /var/log/security /var/log/maillog /var/log/lpd—errs /var/log/cron /var/log/local() ←この行を追加 * Summit48i : 14 # configure syslog add 202.244.164.110 10Ca10 info * Summit48i : 15 # enable syslog (b) syslog 言聢認 * Summit48i : 16 # show 10g configuration Cons01e logging : enabled Disp1ay Log priority : Remote Logging : enabled Host 202.244. 164. 110 202.244. 164. 110 * Summit48i : 17 # Priority level to send debug info INFO delete create enable 10Ca10 10Ca10 Remote 図 12 言泉されるログ列 (/var/log/localO より抜粋 ) Jun 20 16 : 58 : 20 202.244. 164. 15 SYST: serial admin: Jun 20 16 : 59 : 13 202.244. 164. 15 SYST: serial admin: Jun 20 16 : 59 : 18 202.244. 164. 15 SYST: serial admin: ようになったり、あるいは再起動を必要とする設定変更を おこなった場合などは、再起動世ざるをえません。 Summit スイッチは、 reboot コマンドで起動する ことができます。 reboot コマンドを実行すると、本当に 再起動してもよいかと訊かれます。ここで y を入力する と、再起動が始まります ( 図 14 ) 。 再起動する日時を事前に設定することもできます。日時 は、 reboot time コマンドの引数に 月 / 日 / 年時 : 分 : 秒 という形式て指定します ( 図 15 ) 。 ここで成疋した再起動の日時は、 show switch コマン ドを実行すれは ]i 忍できます ( 図 16 ) 。この設定は、 re- boot cancel コマンドを実行して無効にすることも可能 82 です。 facility syslog vlan keke vlan keke Summit の旧V6 イヒ ( レイヤ 2 ) Summit スイッチは、基本的に Ethernet フレームの TYPE や LLC を参照してスイッチ処理をおこないます。 この TYPE や LLC を設定すれば、工場呂当荷に設定さ れている以外のプロトコルによるスイッチ処理が可能にな ります。 倉敷芸彿州学大学や私の周囲の Summit 管理者は、 の機能を用いて IPv6 のための設疋をし、レイヤ 2 のス イッチ処理がおこなえるようにしています。 IPv6 の場合 には、 Ethernet の TYPE (etype) を、、 0x86dd " に設定 します。 6 月号では VLAN に対してプロトコルを指定する手順 を紹介しましたが、新たなプロトコルを追加したいときは create protocol コマンドを使います。図 17 の例で UNIX MAGAZINE 2001.8

7. UNIX MAGAZINE 2001年8月号

特集 UN ー X の基礎知識 0 1. コンソールのログイン・プロンプトにユーサー名とパス ワードを入力してログイン 2. コンソールでログインシェルか起重力 3. コマンドラインで startx や x ⅲ it などを実行し、 X ウ という手順を踏みます。 インドウ・システムを起動 にする必要があります ( これは bash の場合も同様です ) 。 という行を追加し、これらの設定ファイルを読み込むよう source ~/ . tcshrc source ~ /. login めのはう (X の各クライアントを起重丿ける前 ) に . xsession ファイルのはし この問題を鮹夬するには、 ~ / ントには ~/. tcshrc や ~ / 北 g ⅲの設定は反日央されません。 / ・ xsession から直接起動されるその他の X クライア あります。 を使わすに、 ~/. cshrc や ~/. tcshrc だけで設定する力法も -/.login での設定か有効になります。あるいは、 -/.login の端末上て起動されるシェルをログインシェルにすると、 xterm や kterm に - ls オプションを付け、これら れてしまいます。 シェルではないので、 ~/. login に記述した設疋は無視さ から実行される kterm 上て起動されるシェルもログイン る tcsh はログインシェルではなく、さらに ~/. xsession て実行されるようになります。しかし、このとき起動され と書いておけは、 ~/. xsession は tcsh のスクリプトとし # ! /bin/tcsh ん。 ~/. xsession のうび頁行に rc や -/.login などのファイルはいっさい読み込まれませ は /bin/sh のスクリプトとして実行されるため、 ~/. tcsh- . xsesslon など ) を起動することかできます。ところが、 ~ / うファイルを用意しておけば、 X のクライアント (kterm てマシンにログインします。このとき、 ~/. xsession とい グイン・ウインドウにユーサー名とパスワードを入力し ドウ・システムか起動している状態になり、ユーサーはロ 一方、 xdm を利用している場合は、つねに X ウイン 図 1 竟変数の言聢例 setenv PRINTER lp setenv BLOCKSIZE 1024 setenv ORGANIZATION "UNIX Magazine" 環境変数 ・シェル変数 の 2 不鶤頁の変数があります。それぞれのスコープ ( 引き継 がれる範囲 ) の違い、すなわち、 竟変数はシェルから起動したプロセスに引き継がれる ・シェル変数はそれを言殳定したシェルのなかでしか参照で きない という性質も bash と同しです。 囃竟変数の操作 工竟変数への値の代入は、 setenv コマンドを用いて以 下のようにおこないます。 setenv 変数名値 変数名と値のあいだには、 スや TAB) を入れます。 " ではなく空白 ( スペー 変数 tcsh にも、 bash と同じく、 36 値は数字でも文字列でもかまいませんが、空白を含む場 合には , ( 単一引用符 ) または” ( 二重引用符 ) で囲みます ( 図 1 ) 。 設定した環境変数を無効にしたいときは、 unsetenv コマンドを以下のように実行します。 unsetenv 変数名 引数を付けずに printenv コマンドを実行すると、現 在設定されているすべての環境変数か表示されます ( 図 2 。 引数に環境変数名を指定すると、指定した環境変数の値だ けか表示されます ) 。 シェル変数の操作 シェル変数に値を代入するときは、 set コマンドを以下 てもかまいません。ただし、 で囲みます。 bash とは異なり、 値に空白が含まれる場合には、単一引用符や二重引用符 set 変数名 = 値 のように実行します。 " の前と後ろの両方に空 の則後に空白があっ UNIX MAGAZINE 2001.8

8. UNIX MAGAZINE 2001年8月号

連載 でしようか。 ソースコードの前半の、 JavaServer Pages— く % ! double val , rt ; % > く % ! String num, image; % > 0 } catch (Exception NumberFormatException) く % く hr> 数値を入力してください の部分は、図 10 のコードとほとんど同しです。 JSP プ の条件が成立しない場合にエラーメッセージを出力しない if (num ! = Ⅱ u11 & & !num. equals('"' すなわち、 す。図 10 との大きな違いは、入力フィールドカ啌の場合、 ログラムは入力を受け取り、平方根を求めて表示していま のように変えたからです。 フィールドを表示するだけにする 空文字列が入力されたときにエラーとせす、たんに入力 ・初めて表示したときにエラーメッセージを出力しない ことです。これは、 UNIX MAGAZINE 2001.8 value 属性に定しています。 ら空文字列を、なんらかの値が設定されていればその値を のいすれかが設疋されています。そこで、 num が 11u Ⅱな ・ null ( 初めてアクセスした場合 ) ・則ページの入力値 ソースコードの前半で、 num に ています。 こで、 value に値を設定するために JSP の式タグを使っ するために、 input タグの value 属生を使っています。 前ページで入力された値をテキスト・フィールドに設定 null ? " " く % = num く input type="text" name="number" 初で触れた、、ちょっと便利な使い方 " をしています。 (submit) ボタンを表示するフォームですが、この項の最 ソースコードの後半部分はテキスト・フィールドと送信 HTML タグを JSP の式タグで作る 通常、式タグやスクリプトレットははかの HTML のタ グの殞則で使うことが多いのですが、これはコードの読み 121 く p> く font size= 十 2>He110 Wor1d く /font> で生成された部分は次のとおりです。 換えた例です。この行の最終的な出力と、 JSP の式タグ は、タグの種類を示す文字列、、 f 。 nt " だけを式タグで置き He110 WorId く / く % = s % > > % > くく % = s % > size= 十 2>#- く p > く % s="font" 2 行目の、 く p> く font size= + 4>He110 Wor1d く /font> JSP の式タグで生成された部分です。 以下は 1 行目の行全体の最糸勺な出力で、下線の箇戸励ゞ の指定を終了するタグが出力されています。 変数 s に、、〈 / font 〉 " が設定されたあと、フォントサイズ グが出力されています。同様に、、 HeIIo WorId" の直後で 1 。 W 。 rld " の直前の式タグでフォントサイズを指定するタ で変数 s に文字列、、 (font size = 十 4 〉 " が設定され、、、 HeI- く % s=" く font size= 十 4>" は、タグ全体を変数 s に設定した例です。 He110 Wor1d く % s=" く /font>" く p > く % s=" く font size= 十 4>" ・ 1 行目の、 て実現しています。 という HTML のタグをスクリプトレットと式タグを使っ く font size=size>He110 Wor1d く /font> これに続く 3 行は、いすれも、 く % ! String s; % > を定義しています。 JSP の宣言タグでは、以降の行で使う文字列変数 s まな大きさで表示するサンプルです。 ださい。これは、、、 HeIIo WorId" という文字列をさまざ 図 16 に示した、、 exptag ・ jsp' のソースコードを見てく 文字列を式タグを使って作ることもできます。 てもかまいません。さらに、タグそのものやタグの一にの やすさのためで、さきほどの例のようにタグのなかでイ吏っ

9. UNIX MAGAZINE 2001年8月号

連載 . / UN Ⅸ Communication Notes 図 5 /etc/inetd. conf への自加 (a) IMAP サーパー X—NON-HIERARCHICAL-RENAME NO_ATOMIC_RENAME AUTH=GSSAPI AUTH=ANONYMOUS S : * CAPABILITY IMAP4 IMAP4rev1 ACL QUOTA LITERAL + NAMESPACE UIDPLUS C: C01 CAPABILITY S : * OK normadic . ai3. net Cyrus IMAP4 vl . 6.24 server ready % /usr/local/bin/imtest —m login -p imap -u suguru foobar 図 6 imtest によるテスト sieve stream tcp nowait cyrus /usr/local/cyrus/bin/timsieved timsieved (c) Sieve サーパー pop3 stream tcp nowait cyrus /usr/10ca1/cyrus/bin/pop3d pop3d (b) POP3 サーパー imap stream tcp nowait cyrus /usr/local/cyrus/bin/imapd imapd password: * * * * * * ←ノヾスワードを入力 S : C01 OK Comp1eted AUTH=KERBEROS_V4 UNSELECT + go ahead L01 OK User logged in Authenticated . Security strength factor: 0 る。 Cyrus IMAP サーノヾ 。ーー・ノヾツウ - サーバーは、同じメールか重複してメールポックスに酉当 されるのを避ける処理に使われる。 ージに付属の Sieve IMAP サーバーを導入した場合、一殳には Sieve サー ノ、 sendmail. cf の変更 ーを運用する。 ルのテンプレートか用意されているので、それを参考にす は、 Cyrus IMAP サーバーを利用するためのファイ IMAP を使うように変史する (sendmail と Postfix に ープ mail に加える。そして、 sendmail.cf を編集して ログラムから起動するために、ユーサー daemon をグル ントに関する設定をおこなう。 deliver を sendmail フ sendmail を例に ごく簡単に説明する。ます、アカウ バーの管理する領域に↑内するというものである。 うプログラムを使い、送られてきたメールを IMAP サー IMAP サーヾー・ノヾッケージに含まれる deliver とい を容易におこなうことかできる。基本的な処理は、 Cyrus fix など、多くの組織で使われている MTA に関する設定 なう。 Cyrus IMAP サーノヾーでは、 sendmail や Post- バーカ壻理するデータベースにオ褓内するための設定をおこ Agent) について、送信されてきたメールを IMAP サー 最彳刻こ、 sendmail などの MTA (Message Transfer UNIX MAGAZINE 2001.8 設定の確認 これで、 IMAP を用いた工竟を利用する準備か整った。 運用に入る前に、 imtest コマンドを実行し、設定など が適切かどうかを確認する。たとえば、認証の部分のテス トをしたいのであれは、図 6 のようにして、正しくサー ーにログインできるかどうかを石忍すればよい。 とくに間題なく口グインできたら、次のようにしてログ アウトする。 1 ogout 図 6 の、、 CAPABILITY" の項目 ( 4 ~ 6 行目 ) には、 この IMAP サーバーで扱える機能の一覧か表示されてい る。この部分を見川ま、その IMAP サーバーに必喫な機 能が正しくインストールされ、適切に設定されているかが 石忍できる。 メールポックスの作成 IMAP を利用するユーサーのメールポックスを設定す るには、 cyradm コマンドの引数に IMAP サーバー名 を指定して起動する。そして、次のようにサプコマンドを 実行する。 createmailbox user. suguru るとよい ) 。 65

10. UNIX MAGAZINE 2001年8月号

特集リ N ー X の基礎知識 0 sample. Z [hayao@mypc tmp] % ls 次の例は、引数にユーザー名を指定するコマンドの場合 [hayao@mypc tmp] % gunzip sample. ■ sample. tex ・ gz [hayao@mypc tmp] % gunzip sample. ■← Ctrl-D を入力 f00 sample . Z sample ・ ps sample . tex. gz サー名を指定します。この場合、 complete コマンドを使 にメッセージを送るためのコマンドで、最初の引数にユー です。 write は、ログインしているほかのユーサーの端末 [hayao@mypc ~ ] % write ロ← Ctrl-D を入力 がすべて表示されます。 入力すると、 /etc/passwd に登録されているユーザー その後に、、 write" と入力し、空白に続けて Ctrl-D を complete write 'p/l/u/' って以下のように設定します。 名 表 4 correct 変数直と乍 値 cmd complet e all コマンド名がスペル訂正の対象になる コマンド名が自刺第勺に補完される 入力行全体がチェックされ、コマンド名だけ でなくファイル名や変数名もスペル訂正の対 象となる adm bin games gopher daemon halt ftp lp mail neWS nobody hayao て 00t shutdown sync uucp [hayao@mypc ~ ] % write ロ 48 ている FTP サイトであれば、たいていはみつかるでしょ FreeBSD や Linux のディストリビューションが置かれ をはしめ、国内の多くの FTP サイトに置かれています。 Jirai/SOURCES/ ・ ftp://ftp.iij.ad.jp/pub/linux/kondara/ distfiles/ ・ ftp://ftp4.jp.freebsd.org/pub/FreeBSD/ tcsh のソースファイルは、 に、自分なりの工夫を加えてみるといいでしよう。 、、使える " はすですが、慣れてきたらこのファイルを参考 のファイルを source コマンドで読み込むだけでもかなり complete. tcsh というファイルが付属しています。 使われるコマンドの設定例が 200 以も挙げられている ソースファイル (tcsh-6.10. tar. (z) には、 UNIX でよく 設定例か書かれたファイルを紹介しておきます。 tcsh の う・・・・・・ではあまりに不親切なので、 complete コマンドの あとは、マニュアルなどを参照して設定してみましょ ます。 みなさオ t 、それ以降の引数は通常のファイル名補完になり この場合には、 write の最初の引数だけがユーサー名と う。 Linux の場合は、 /usr/doc/tcsh-6.10.00 などのデ ィレクトリに complete. tcsh がインストールされている こともあります。 スペノレ言丁正 tcsh には、単語の補完と一覧機能に加え、ファイル名 やコマンド名、変数名のスペル訂正機能があります。 この機能は、シェル変数 correct をセットすることに よって有効になります。変数の値により、表 4 のように UNIX MAGAZINE 2001.8 イ耡ゞスペル訂正の対象となり、ファイル名や変数名なども さらに、 correct 変数に、、 al にを設定すると、入力行全 こなわれませんでした。 kterm と ktest という 2 つの一甫があり、自重甫完はお です。たとえは、私の竟では、、 kte" の 3 文字だけだと 力した文字列だけでコマンドカ甘与定できる場合に限るよう が実行されます。自重甫完がうまく働くのは、すでに入 すると、、、 m " という文字か補われて kterm コマンド [hayao@mypc ~ ] % kter ←こ 、でリターンを押す 、、 kter" とだけ入力してリターンキーを押します。 字を自重加勺に補完して実行します。たとえば、次のように correct 変数に、、 complete" を成疋すると、足りない文 場合は入力本をキャンセルします。 す。 e を入力した場合はふたたび入力行に戻り、、、 a " の Ⅱを入力すると訂正前の綴りでコマンドが実行されま こで、、 y " を入力すると訂正後のスペルで、 かれます。 正しいスペルが表示され、どのように対応するかと訊 CORRECT>kterm ( ⅵ司司 a)? ■ [hayao@mypc ~ ] % kt arm [hayao@mypc ~ ] % set correct=cmd 違えてみましよう。 correct 変数に、、 cmd" を成疋し、 kterm のスペルを間 乍が異なります。