diff --git a/ja_JP.eucJP/man/man1/at.1 b/ja_JP.eucJP/man/man1/at.1 index 737ca8726a..d4d915c336 100644 --- a/ja_JP.eucJP/man/man1/at.1 +++ b/ja_JP.eucJP/man/man1/at.1 @@ -1,264 +1,263 @@ .\" %FreeBSD: src/usr.bin/at/at.man,v 1.8.2.3 1999/08/29 15:25:25 peter Exp % .\" jpman %Id: at.1,v 1.3 1997/08/05 18:36:01 george Stab % .Dd April 12, 1995 .Dt "AT" 1 .Os FreeBSD 2.1 .Sh 名称 .Nm at, batch, atq, atrm -.Nd あとでジョブを実行させるためのキューの設定、確認、ジョブの削除をおこなう +.Nd あとでジョブを実行させるためのキューの設定、確認、ジョブの削除を行なう .Sh 書式 .Nm at .Op Fl V .Op Fl q Ar queue .Op Fl f Ar file .Op Fl mldbv .Ar time .Pp .Nm at .Op Fl V .Fl c Ar job Op Ar job ... .Pp .Nm atq .Op Fl V .Op Fl q Ar queue .Op Fl v .Pp .Nm atrm .Op Fl V .Ar job .Op Ar job ... .Pp .Nm batch .Op Fl V .Op Fl q Ar queue .Op Fl f Ar file .Op Fl mv .Op Ar time .Sh 解説 .Nm at と .Nm batch -ユーティリティは、標準入力もしくは指定したファイルからコマンドを読み +は、標準入力もしくは指定したファイルからコマンドを読み 込み、あとで .Xr sh 1 を使って実行します。 -.Pp -コマンドの各機能を以下に示します: .Bl -tag -width indent .It Nm at コマンドを、引数で指定した時間に実行します。 .It Nm atq ユーザの、実行待ち状態のジョブのリストを表示します。 スーパユーザが実行した場合は全員のジョブが表示されます。 .It Nm atrm 指定したジョブを削除します。 .It Nm batch ロードアベレージが特定の値以下になったときにジョブを実行 します。この値は、デフォルトでは 1.5 です。 この値は .Nm atrun によって指定可能です。 .El .Pp .Nm at では、様々な形式の時間を .Ar time として受け付けます。 時刻は .Ar HHMM もしくは .Ar HH:MM の形で指定します (もしこの時刻が過ぎていた場合は、次の日のその時刻に設定されます)。また、 .Nm midnight , .Nm noon , .Nm teatime (4pm) も受け付けますし、時刻の後ろに -.Nm am +.Nm AM もしくは -.Nm pm +.Nm PM をつけた時間も受け付けます。日付は、 .Ar \%month-name day およびオプションの .Ar year の形で受け付けます。 .Ar MMDDYY -、 +や .Ar MM/DD/YY -、 +や .Ar DD.MM.YY も受け付けます。 日付の指定は時刻の指定の後に記述します。 .Op Nm now .Nm + Ar count \%time-units のような形式で時間を指定することも可能です。time-units は時間の単位で、 .Nm minutes , .Nm hours , .Nm days , .Nm weeks のいずれかです。時間のサフィックスの .Nm today はジョブを今日に設定すること、 -.Nm tommorow +.Nm tomorrow はジョブを明日に設定することを意味します。 -たとえば、今から 3 日後の午後 4 時にジョブを走らせるためには -.Nm 4PM + 3 days -と指定します。7 月 31 日の午前 10 時の場合は -.Nm 10am Jul 31 -と指定します。明日の午前 1 時は -.Nm 1am tomorrow +.Pp +例えば、今から 3 日後の午後 4 時にジョブを走らせるためには +.Nm at 4PM + 3 days +とします。7 月 31 日の午前 10 時の場合は +.Nm at 10am Jul 31 +とします。明日の午前 1 時は +.Nm at 1am tomorrow です。 .Pp .Nm at と .Nm batch -では、標準入力または +はどちらも、標準入力または .Fl f オプションで指定したファイルからコマンドを読み込み、実行します。 ワーキングディレクトリと環境変数 ( .Ev TERM , .Ev TERMCAP , .Ev DISPLAY および .Nm _ は除く)、umask は実行時のものが保持されます。 .Nm at もしくは .Nm batch が .Xr su 1 で起動されたシェルから実行された場合は、カレントの userid を保持します。 出力結果が得られた場合は、 その標準出力と標準エラー出力がメールで送られます。メールは .Xr sendmail 8 を使って送られます。もし .Nm at が .Xr su 1 で起動されたシェルから実行された場合は、そのログインシェルの所有者が メールを受けることになります。 .Pp スーパユーザはどんな場合でもこれらのコマンドを実行できます。 その他のユーザは .Pa /var/at/at.allow と .Pa /var/at/at.deny のファイルによって実行できるか決められます。 .Pp もし .Pa /var/at/at.allow が存在するならば、その中にユーザ名を記述されたユーザだけが .Nm at の実行を許可されます。 .Pp もし .Pa /var/at/at.allow -が存在しなかったら、 +が存在しなければ、 .Pa /var/at/at.deny がチェックされ、その中にユーザ名が記述されていないすべてのユーザが .Nm at の実行を許可されます。 .Pp もし両方ともなければ、スーパーユーザだけが .Nm at を実行できます。 これがデフォルトの設定です。 .Pp 空の .Pa /var/at/at.deny は全てのユーザがこれらのコマンドを使用できることを意味します。 .Sh オプション -オプションとしては以下のものがあります: .Bl -tag -width indent .It Fl V 標準エラー出力にバージョン番号を出力します。 .It Fl q Ar queue 指定したキューを用います。キューの名称は単一の文字からなります。 有効なキューの名前は .Nm a から .Nm z と .Nm A から .Nm Z です。 .Nm at のデフォルトのキューは .Nm c で、 .Nm batch のデフォルトのキューは .Nm E です。 キューの文字が後の方であればあるほど nice 値が上がります。 もし大文字のキューがジョブに対して指定されたならば、時間を指定して batch が実行されたものとして扱われます。 もし .Nm atq でキューが指定されたときは、そのキューだけの実行待ちのジョブを表示します。 .It Fl m 出力がなかった場合でも、ジョブの完了時にメールをユーザに送ります。 .It Fl f Ar file 標準入力のかわりにファイルからジョブを読み込みます。 .It Fl l .Nm atq のエイリアス。 .It Fl d .Nm atrm のエイリアス。 .It Fl b .Nm batch のエイリアス。 .It Fl v -atq の場合は、キューの中の実行されたがまだ削除されていないジョブを +.Nm atq +の場合は、キューの中の実行されたがまだ削除されていないジョブを 表示します。さもなければジョブが実行される時間を表示します。 .It Fl c コマンドラインにリストされたジョブを標準出力に出力します。 .Sh 関連ファイル .Bl -tag -width /var/at/jobs/.lockfile -compact .It Pa /var/at/jobs ジョブファイルを保管しておくディレクトリ .It Pa /var/at/spool 出力ファイルを保管しておくディレクトリ .It Pa /var/run/utmp ログインレコード .It Pa /var/at/at.allow 許可属性の設定 .It Pa /var/at/at.deny 不許可属性の設定 .It Pa /var/at/jobs/.lockfile ジョブ作成のロックファイル .El .Sh 関連項目 .Xr nice 1 , .Xr sh 1 , .Xr umask 2 , .Xr atrun 8 , .Xr cron 8 , .Xr sendmail 8 .Sh バグ .Pa /var/run/utmp が利用できないか不正であった場合、もしくは .Nm at が実行された時にユーザがログインしていない場合、 -メールは環境変数 +環境変数 .Nm LOGNAME -で表される userid に出されます。 +で表される userid にメールが送られます。 もし定義されていないか空ならばカレントの userid になります。 .Pp ユーザ同士でリソースの競合がある場合は現実装の .Nm at と .Nm batch は適当ではありません。 もしあなたのサイトがこのような場合にあてはまるのなら、 .Nm nqs -のようなバッチシステムを検討してください。 +のような他のバッチシステムを検討してください。 .Sh 作者 at のほとんどの部分は .An Thomas Koenig Aq ig25@rz.uni-karlsruhe.de によって作成されました。 時間の構文解析部分は .An David Parsons Aq orc@pell.chi.il.us によって作成されました。 diff --git a/ja_JP.eucJP/man/man1/awk.1 b/ja_JP.eucJP/man/man1/awk.1 index 33126e861f..dd9a336523 100644 --- a/ja_JP.eucJP/man/man1/awk.1 +++ b/ja_JP.eucJP/man/man1/awk.1 @@ -1,2536 +1,2543 @@ .\" jpman %Id: awk.1,v 1.3 1997/04/17 13:23:21 horikawa Stab % .\" WORD: interval exptession インターバル表現 .ds PX \s-1POSIX\s+1 .ds UX \s-1UNIX\s+1 .ds AN \s-1ANSI\s+1 -.TH GAWK 1 "Dec 19 1996" "Free Software Foundation" "Utility Commands" +.TH GAWK 1 "Apr 28 1999" "Free Software Foundation" "Utility Commands" .SH 名称 gawk \- パターン検索・処理言語 .SH 書式 .B awk [ POSIX or GNU style options ] .B \-f .I program-file [ .B \-\^\- ] file .\^.\^. .br .B gawk [ POSIX or GNU style options ] [ .B \-\^\- ] .I program-text file .\^.\^. .SH 解説 .I gawk は GNU プロジェクトが実装した プログラミング言語 AWK の処理系です。 本処理系は \*(PX 1003.2 コマンド言語とユーティリティ規約に定められた 言語の定義に適合しています。 本バージョンはまた、Aho, Kernighan, Weinberger の著書『 .I The AWK Programming Language 』の記述にもとづいており、 System V Release 4 \*(UX の .I awk の付加機能も含んでいます。 .I gawk はまた、Bell Labs の新機能および GNU 独自の拡張も提供します。 .PP コマンドラインは、 .I gawk へのオプション、(もし .B \-f または .B \-\^\-file オプションにより指定されていなければ)AWK のプログラムテキスト、そして 残りの引数列からなります。 この残りの引数列は、定義済み AWK 変数 .BR ARGC , .B ARGV を用いることで参照できます。 .SH オプションフォーマット .PP .I gawk へのオプションは、伝統的な \*(PX 形式の 1 文字オプションと、GNU 形式の ロングオプションがあります。 \*(PX 形式のオプションは単一の ``\-'' で始まり、一方 GNU 形式のもの は ``\-\^\-'' で始まります。ロングオプションは GNU の独自仕様と \*(PX の必須仕様の両方について用意されています。 .PP \*(PX 標準に従い、 .I gawk 独自仕様のオプションは .B \-W オプションへの引数で与えます。 複数の .B \-W オプションを指定することもできます。 後述の ように、各 .B \-W オプションには、それに対応するロングオプション が存在します。ロングオプションへの引数は、空白を入れずに .B = でつないで指定するか、その次のコマンドライン引数として渡すことができます。 ロングオプションは、短縮形が一意である限り、短縮することができます。 .SH オプション .I gawk は以下のオプションを受け付けます。 .TP .PD 0 .BI \-F " fs" .TP .PD .BI \-\^\-field-separator " fs" 入力フィールドセパレータ (変数 .B FS の値)を .I fs とします。 .TP .PD 0 \fB\-v\fI var\fB\^=\^\fIval\fR .TP .PD \fB\-\^\-assign \fIvar\fB\^=\^\fIval\fR プログラムを実行する前に、変数 .I var に値 .I val を設定します。このようにして設定 した変数は、 AWK プログラムの .B BEGIN ブロック内でも参照できます。 .TP .PD 0 .BI \-f " program-file" .TP .PD .BI \-\^\-file " program-file" .B awk への第 1 引数を用いるかわりに、AWK プログラムをファイル .I program-file から読み込みます。 .B \-f (または .B \-\^\-file ) オプションは複数回使 用することができます。 .TP .PD 0 .BI \-mf " NNN" .TP .PD .BI \-mr " NNN" さまざまなメモリの制限値を .I NNN に設定します。フラグ .B f は最大フィールド数、フラグ .B r は最大レコードサイズを設定します。この 2 つのフラグと .B \-m オプションは、Bell Labs バージョンの \*(UX .I awk に由来しています。しかし、 .I gawk にはこのような制限はありませんので、 .I gawk では本オプションは無視されます。 .TP .PD 0 .B "-W traditional" .TP .PD 0 .B "\-W compat" .TP .PD 0 .B \-\^\-traditional .TP .PD .B \-\^\-compat .I 互換 モードで動作します。互換モードでは、 .I gawk は \*(UX .I awk と等価な動作を行い、GNU 独自拡張は解釈できません。 このオプションの他の形式よりも、 .B \-\^\-traditional を使用することが好まれます。 詳しくは後述の .B "GNU 拡張" を参照してください。 .TP .PD 0 .B "\-W copyleft" .TP .PD 0 .B "\-W copyright" .TP .PD 0 .B \-\^\-copyleft .TP .PD .B \-\^\-copyright GNU の著作権表示の短いバージョンを標準出力へ書き出し、 成功状態で終了します。 .TP .PD 0 .B "\-W help" .TP .PD 0 .B "\-W usage" .TP .PD 0 .B \-\^\-help .TP .PD .B \-\^\-usage 短めのオプション一覧を標準出力へ書き出します。 (GNU コーディング規約に 従い、本オプションを指定すると .I awk はただちに終了し、成功を意味する終了ステータスを返します。) .TP .PD .B "\-W lint" .TP .PD 0 .B \-\^\-lint 他の AWK での処理が疑わしい、あるいは他の AWK との互換性がない構造が ある場合に警告を行います。 .TP .PD 0 .B "\-W lint\-old" .TP .PD .B \-\^\-lint\-old オリジナルの Unix .I awk へ移植できない構造に関して警告を行います。 .ig .\" This option is left undocumented, on purpose. .TP .PD 0 .B "\-W nostalgia" .TP .PD .B \-\^\-nostalgia 長い間 .I awk を使ってきたユーザのために郷愁の瞬間を提供します。 .. .TP .PD 0 .B "\-W posix" .TP .PD .B \-\^\-posix .I 互換 モードをオンにし、更に以下の制約が課せられます。 .RS .TP \w'\(bu'u+1n \(bu .B \ex エスケープシーケンスを解釈しません。 .TP \(bu .B FS が単一の空白に設定された場合、空白とタブのみがフィールドを区切り、 改行はフィールドを区切りません。 .TP \(bu キーワード .B function に対応する別名 .B func を解釈しません。 .TP \(bu 演算子 .B ^ や .B ^= のかわりに .B ** や .B **= を用いることができません。 .TP \(bu .B fflush() 関数は利用できません。 .RE .TP .PD 0 .B "\-W re\-interval" .TP .PD .B \-\^\-re\-interval 正規表現のマッチングで .I "インターバル表現 (interval expressions)" を有効にします (後述の .BR "正規表現" を参照してください)。 インターバル表現は伝統的な AWK 言語では利用できませんでした。 .I awk と .I egrep が一貫性を持つように、POSIX 標準がこれらを追加しました。 しかし、これらを使用すると古い AWK プログラムを動かなくしてしまうでしょうから、 このオプションによって要求されたときと、 .B \-\^\-posix が指定されたときに、 .I gawk はこれらの機能を提供します。 .TP .PD 0 .BI "\-W source " program-text .TP .PD .BI \-\^\-source " program-text" .I program-text を AWK プログラムとして用います。本オプションにより、ライブラリ化された関数 ( .B \-f または .B \-\^\-file オプションを用いて読み込む) とコマンドラインから入力されたプログラムを 簡単に合成することができます。 これは、主にシェルスクリプトで用いられる中規模から大規模な AWK プログラム のために用意されました。 .TP .PD 0 .B "\-W version" .TP .PD .B \-\^\-version 実行された .I gawk プログラムのバージョン情報を標準出力へ書き出します。これは主に、 あなたが使用している .I gawk プログラムが Free Software Foundation が配布してい るプログラムのうち、最新のものであるかどうかを知る場合に便利です。 またバグレポートのときにも有用です。 (本オプションを指定すると、GNU コーディング規約に従い、 .I awk はただちに終了し、成功を意味する終了ステータスを返します。) .TP .B \-\^\- オプションの終了を意味します。AWK プログラムに ``\-'' から始まるオプションではない 引数を与える場合に便利です。 これは、主に他の \*(PX プログラムの多くが引数に対して行う解釈と 一貫性を保つためにあります。 .PP 互換モードでは、他のオプションは不正であるとされるか、無視されます。 通常の実行において、プログラムテキストがコマンドラインに指定されていれば、 不明なオプションは、AWK プログラムに .B ARGV 配列を通して渡されます。これ は、AWK プログラムを ``#!'' 機構を用いて実行する場合に特に便利です。 .SH AWK プログラムの実行 .PP AWK プログラムは、パターンとアクションの組の列と、(もし必要なら) 関数定義か らなります。 .RS .PP \fIpattern\fB { \fIaction statements\fB }\fR .br \fBfunction \fIname\fB(\fIparameter list\fB) { \fIstatements\fB }\fR .RE .PP .I gawk はまず、 .I program-file (複数可) が指定されていればそれから、 .B \-\^\-source の引数から、あるいは、最初のオプションではない引数から プログラムを読み込みます。 .B \-f と .B \-\^\-source オプションは、コマンドラインで複数回指定できます。 .I gawk は、すべての .I program-file とコマンドラインで指定したプログラムを結 合して使用します。新しく作った AWK プログラムひとつひとつに AWK 関数のライブラリを埋め込む必要が無いので、この機能はライブラリの構築に 便利です。 また、ライブラリ関数とコマンドラインで指定したプログラムとを混合して使 うことも可能にしています。 .PP 環境変数 .B AWKPATH により、 .B \-f オプションで指定されたファイルを検索するパスを指定できます。 .B AWKPATH が設定されていない場合のデフォルトパスは \fB".:/usr/local/share/awk"\fR です。 (実際のディレクトリは .I gawk がどのように構築/インストールされたかに依存して、さまざまなものとなります。) .B \-f オプションで指定したファイル名が ``/'' を含んでいる場合は、 パス検索は行われません。 .PP .I gawk は、 AWK プログラムを次の順序で実行します。 まず、 .B \-v オプションで指定された変数への代入をすべて行います。 次に、プログラムを内部形式にコンパイルします。 そして、(もし存在すれば) .B BEGIN ブロック (複数存在可) を実行します。 配列 .B ARGV で指定されたファイルを順に読み、処理を行います (コマンドラインでファイル名が 指定されていなければ、標準入力に対して処理を行います)。 .PP コマンドラインで指定されたファイル名が .IB var = val という形式ならば、それ は変数への代入であると解釈されます。変数 .I var は値 .I val に設定されます (これは、すべての .B BEGIN ブロックを実行したあとに行われます)。コマンドライン での変数の代入は、AWK が入力をフィールドやレコードに分割するためのセパレータ を実行時に変更するのに便利です。また、1 つのデータファイルに 対し数回処理を行う必要がある場合、状態をコントロールするのにも便利です。 .PP 配列 .B ARGV の要素に空 (\fB""\fR) がある場合、 .I gawk はその要素を無視します。 .PP .I gawk は、入力された各レコードに対してマッチする .I パターン が AWK プログラム内にあるかどうかを 検索します。そのレコードにマッチしたパターンすべてについて、それぞれ対応する .I アクション が実行されます。 パターンは、プログラムテキストに出現した順序で検索されます。 .PP 入力が尽きると、 .I gawk は (もしあれば) .B END ブロック (複数存在可) を実行します。 .SH 変数、レコード、フィールド AWK における変数は動的、すなわち、最初に使用されたときに生成されます。 変数の値は、浮動小数点数か、文字列か、あるいは両方です。変数の用い られ方により変化します。AWK ではまた、1 次元配列を利用することができます。 多次元配列 も、擬似的にではありますが、利用可能です。プログラム実行開始時に、 いくつかの定義済み変数が設定されます。 これらを必要に応じて説明し、以下でまとめます。 .SS レコード 通常、レコードは改行文字により区切られます。 レコードの区切りは、組み込み変数 .B RS へ値を代入することにより、制御できます。 .B RS が単一文字の場合、その文字がレコードを区切ります。 そうでない場合は、 .B RS は正規表現となります。 入力中のテキストで、この正規表現にマッチするものがレコードを区切ります。 しかし互換モードでは、 文字列値の最初の文字だけが、レコードセパレータに使用されます。 .B RS が空文字列に設定されているときには、レコードは空行で区切られます。 .B RS が空文字列に設定されたときには、 .B FS の値にかかわらず、改行文字は常にフィールドセパレータとなります。 .SS フィールド .PP 入力レコードを読み込むごとに、 .I gawk はそのレコードを .I フィールド に分割しま す。分割する際には、変数 .B FS の値がフィールドセパレータとして参照されます。 .B FS の値が1文字なら、その 文字を境にフィールドが分割されます。 .B FS が空文字列の場合、個々の文字がフィールドセパレータとなります。 いずれでもない場合、 .B FS は完全な正規表現である と解釈されます。特殊な場合として .B FS が単一の空白のときには、フィールドは 連続した空白・タブ・改行により分割されます。 (後述の .BR \-\-posix の議論を参照してください)。 変数 .B IGNORECASE (下記参照) の 値は、 .B FS が正規表現の場合フィールド分割にも影響を与えることと、 .B RS が正規表現の場合レコード分割にも影響を与えることに注意してください。 .PP 変数 .B FIELDWIDTHS の値が空白で区切られた数字の列である場合、各フィールドは 固定長であると解釈され、 .I gawk は指定された幅ごとにフィールドの 分割を行います。この場合、 .B FS の値は無視されます。 .B FS に新たに値を設定 することにより、この .B FIELDWIDTHS の効果を打ち消し、標準の動作に戻すことができます。 .PP 入力レコード中の各フィールドの値は、左から .BR $1 , .B $2 等という名前で参照できます。 .B $0 は レコード全体です。フィールドに値を代入することもできます。フィールドは定数だ けでなく、変数によって参照することもできます。以下の例では、入力レコードの 5 番目のフィールドの値を出力します。 .RS .PP .ft B n = 5 .br print $n .ft R .RE .PP 変数 NF は、自動的に入力レコードのフィールドの数に設定されます。 .PP 存在しないフィールド (すなわち、 .B $NF より右のフィールド) を参照した結果は 空文字列になります。しかしながら、存在しないフィールドへの代入(たとえ ば、 .BR $(NF+2) = 5 ) は .B NF の値を増加させ、間のフィールドには空文字が設定されます。 さらに .B $0 の値は、フィールドの値を変数 .B OFS の値でフィールドを区切ったものとして再計算されます。 負のフィールド番号への参照は致命的エラーとなります。 .B NF を減少させると、新しい値を越えるフィールドの値は失われます。 .B $0 の値は、フィールドの値を変数 .B OFS の値でフィールドを区切ったものとして再計算されます。 .SS 組み込み変数 .PP .I gawk の組み込み変数は以下のとおりです。 .PP .TP \w'\fBFIELDWIDTHS\fR'u+1n .B ARGC コマンドライン引数の個数 ( .I gawk へのオプションと、プログラム指定は含みま せん)。 .TP .B ARGIND 現在処理中のファイル名が格納されている配列 .B ARGV のインデックス。 .TP .B ARGV コマンドライン引数の配列。配列は、 0 から .B ARGC \- 1 までのインデックスを 持ちます。 .B ARGV の内容を変更することで、入力に用いるファイル名を変 更することができます。 .TP .B CONVFMT 数値の変換フォーマット。デフォルト値は \fB"%.6g"\fR です。 .TP .B ENVIRON 現在の環境変数の値からなる配列。配列は、環境変数名によりインデックスされ 、各要素の値はその環境変数の値です (例えば \fBENVIRON["HOME"]\fP は .B /home/arnold となるでしょう)。本配列に 代入を行っても、 .I gawk からリダイレクトや .B system() 関数により実行される プログラムの環境には影響を与えません(これは、将来の .I gawk では変更される可能性があります)。 .\" but don't hold your breath... .TP .B ERRNO .B getline のリダイレクト、 .B getline による読み込み、 .B close() 関数の実行時のいずれかにシステムエラーが発生した場合、変数 .B ERRNO にはエラーの内容を示した文字列が設定されます。 .TP .B FIELDWIDTHS 空白で区切られたフィールド長のリスト。もしこの値が設定されていれば、 .I gawk は .B FS の値を用いてフィールド分割するかわりに、固定長のフィールド分割を行 います。固定長のフィールド分割機能はまだ実験的なもので、 .I gawk が改良されるに従って意味が変化する可能性があります。 .TP .B FILENAME 現在の入力ファイル名。もし、コマンドラインで入力ファイルが指定されてい なければ、 .B FILENAME の値は ``\-'' です。しかしながら、 .B BEGIN ブロック内では .B FILENAME は未定義です。 .TP .B FNR 現在の入力ファイルにおける入力レコード番号。 .TP .B FS 入力フィールドセパレータ。デフォルトでは単一の空白です。 上述の .B フィールド を参照してください。 .TP .B IGNORECASE すべての正規表現と文字列操作において大文字小文字の区別を制御します。もし、 .B IGNORECASE が 0 でない値に設定されていれば、文字列比較、ルールのパターンマッチ、 .B FS によるフィールド分割、 .B RS によるレコード分割、 .B ~ と .B !~ による正規表現マッチ、定義済み関数 .BR gensub() , .BR gsub() , .BR index() , .BR match() , .BR split() , .B sub() において大文字と小文字の違いは無視されます。このため、 .B IGNORECASE が 0 以外の値なら、 .B /aB/ は \fB"ab"\fP, \fB"aB"\fP, \fB"Ab"\fP, \fB"AB"\fP のいずれにもマッチすることになります。 他のAWK 変数と同様に .B IGNORECASE の初期値は 0 なので、通常は 正規表現と文字列操作において大文字と小文字は区別されます。 Unix では、大文字小文字を無視する場合、 ISO 8859-1 Latin-1 文字集合全てを使用できます。 .B 注: 3.0 以前の .I gawk では .B IGNORECASE は正規表現操作のみに影響しました。現在は文字列比較にも影響します。 .TP .B NF 現在の入力レコードのフィールド数。 .TP .B NR 現在までに読み込んだ入力レコード数の合計。 .TP .B OFMT 数字の出力フォーマット。デフォルト値は \fB"%.6g"\fR です。 .TP .B OFS 出力フィールドセパレータ。デフォルトは空白です。 .TP .B ORS 出力レコードセパレータ。デフォルトは改行です。 .TP .B RS 入力レコードセパレータ。デフォルトは改行です。 .TP .B RT レコードターミネータ。 .I gawk は、 .B RS で指定される文字または正規表現にマッチする入力テキストを、 .B RT に設定します。 .TP .B RSTART .B match() によりマッチした最初の文字の位置。0 はマッチしなかったことを示します。 .TP .B RLENGTH .B match() によりマッチした文字列の長さ。\-1 はマッチしなかったことを示します。 .TP .B SUBSEP 多次元配列を実現する際に用いられる、配列のインデックスを結合する文字。 デフォルト値は \fB"\e034"\fR です。 .SS 配列 .PP 配列は、ブラケット .RB ( [ と .BR ] ) の間の式によってインデックスを指定します。もし式が式 のリスト(式, 式, ...) なら、式の値を変数 .B SUBSEP の値を区切りとして 結合した文字列をインデックスとして用います。これにより、多次元配列を シミュレートしています。例えば、 .PP .RS .ft B i = "A";\^ j = "B";\^ k = "C" .br x[i, j, k] = "hello, world\en" .ft R .RE .PP は、文字列 \fB"hello, world\en"\fR を、文字列 \fB"A\e034B\e034C"\fR で インデックスした配列 x の要素に代入しています。 AWK の配列はすべて、文字列によりインデックスを行う連想配列です。 .PP 特殊な演算子 .B in を .B if または .B while ステートメントで用いることによって、あるインデックス値に おける配列の値が定義されているかを調べることができます。 .PP .RS .ft B .nf if (val in array) print array[val] .fi .ft .RE .PP もし、配列が多次元インデックスを持つなら、 .B "(i, j) in array" を用います。 .PP .B in はまた、 .B for ループ中で、配列のすべてのインデックス値について繰り返すために 用いることができます。 .PP 配列の要素は、 .B delete ステートメントを用いて削除することができます。 .B delete ステートメントはまた、 添字を指定せずに配列名のみを指定することにより、 配列全体を削除するためにも使えます。 .SS 変数の型と変換 .PP 変数とフィールドは、(浮動小数点数の) 数値または文字列、あるいは両方として 扱われます。 変数の値がどのように解釈されるかは、変数の使われ方によって変化します。 数式中で用いられれば変数は数値として解釈され、文字列として用いられれ ば文字列として解釈されます。 .PP 変数の値を強制的に数値であると解釈させたい場合は、変数に 0 を加えます。 文字列と解釈させたい場合は空文字列を結合します。 .PP 文字列を数値に変換する必要がある場合、変換は .IR atof (3) によって行われます。 数値を文字列に変換する場合は、変数 .B CONVFMT の値をフォーマット文字列として用いて、 .IR sprintf (3) により行われます。AWK ではすべての数値は浮動小数点数ですが、整数値は常に整数 として変換が行われます。 よって、以下の場合、 .PP .RS .ft B .nf CONVFMT = "%2.2f" a = 12 b = a "" .fi .ft R .RE .PP 変数 .B b は文字列値 \fB"12"\fR となり、\fB"12.00"\fR とはなりません。 .PP .I gawk は、以下のようにして比較を行います: 2 つの変数が数値なら数値として比 較します。もし片方が数値で片方が`数値'文字列なら、数値として比較されます。 片方が数値でない文字列なら、数値のほうが文字列に変換され、文字列として 比較されます。両方とも文字列なら、文字列として比較されます。\*(PX 標準に従う なら、両方とも数値文字列の場合は数値として比較しますが、これは明ら かに間違いです。 .I gawk はそのような動作をしません。 .PP \fB"57"\fP のような文字列定数は数値文字列では .I なく 、文字列定数です。「数値文字列」の概念は、フィールド、 .B getline の入力、 .B FILENAME 、 .B ARGV の要素、 .B ENVIRON の要素、数値文字列から .B split() によって作成された配列の要素に対してのみ適用されます。 基本的な考え方では、 .I ユーザ入力 、それも数値に見えるユーザ入力のみが数値として扱われます。 .PP 初期化されていない変数は、数値としては 0 を、文字列としては "" (空文字列) を 持ちます。 .SH パターンとアクション awk は行指向の言語です。まずパターン、次にアクションが続きます。 アクションは .B { と .B } で囲みます。パターンまたはアクションは省略することもできます。 もちろん、両方とも 省略してしまっては意味がありません。 パターンがない場合、アクションはすべての入力レコードに 対して適用されます。省略されたアクションは以下と等価です。 .RS .PP .B "{ print }" .RE .PP これはレコード全体を出力します。 .PP コメントは文字 ``#'' で始まり、行末まで続きます。空行は、複数ステートメントの 間をあけるのに使うことができます。 通常、ステートメントは改行で終わります。ただし、 次の記号で行が終わる場合にはこの限りではありません: ``,'', .BR { , .BR ? , .BR : , .BR && , .B || 。 .B do または .B else で終わる行は、ステートメントが自動的に以降 の行へ継続されます。また、改行の直前に ``\e'' を置くことで、 行を継続することができます。この場合、その改行は無視されます。 .PP ``;'' で区切ることにより、1行に複数のステートメントを記述することができます。 (通常のように) パターン-アクション対中のアクション部におけるステートメントだけではなく、 パターン-アクション対ステートメント自身も、 ``;'' で区切って複数置くことができます。 .SS パターン AWK のパターンは、以下のうちのいずれかです。 .PP .RS .nf .B BEGIN .B END .BI / "regular expression" / .I "relational expression" .IB pattern " && " pattern .IB pattern " || " pattern .IB pattern " ? " pattern " : " pattern .BI ( pattern ) .BI ! " pattern" .IB pattern1 ", " pattern2 .fi .RE .PP .B BEGIN と .B END は特殊なパターンであり、入力と比較されることはありません。すべての .B BEGIN パターンに対応したアクション部は結合され、 そのようなすべてのアクション部が単一の .B BEGIN ブロック中にあるかのように扱われます。 結合されたアクションは、 すべての入力ファイルの読み込みに先立って実行されます。同様にすべての .B END ブロックは結合され、すべての入力ファイルの処理後 (あるいは、exit ステートメント が実行されたとき) に実行されます。 .B BEGIN と .B END はパターン式内で他のパターンと混ぜて使うことはできません。また、 .B BEGIN と .B END パターンはアクション部を省略することができません。 .PP .BI / "regular expression" / パターンでは、正規表現 (regular expression) にマッチした入力レコードに対してアクション が実行されます。正規表現は .IR egrep (1) と同じものが使えます。あとに要約を示します。 .PP .I 関係式(relational expression) では、後述のアクションについての節で示す演算子を用いることが できます。 これらは概して、特定のフィールドが正規表現にマッチするかどうかを 調べるために用いられます。 .PP 演算子 .BR && , .BR || , .B ! は、それぞれ C 言語での論理AND、論理OR、論理NOT と等価です。 C 言語と同様に、評価値が確定した時点で以降の評価を打ち切ります。 これらは複数のパターン式を結合するために使用されます。 他のプログラミング言語と同様、括弧によって評価順序を変更することができます。 .PP .B ?\^: 演算子は C 言語のものと同様です。もし、最初のパターンが真なら、 テストのために 2 番目のパターンが用いられ、そうでなければ 3 番目のパターンが 用いられます。2 番目と 3 番目のパターンのどちらかだけが評価されます。 .PP .IB pattern1 ", " pattern2 形式は .I 範囲パターン と呼ばれます。範囲パターンは、 .I pattern1 にマッチするレコードから、 .I pattern2 にマッチするレコードまでのすべてにマッチします。 この形式は、他のパターン式と混合して用いることはできません。 .SS 正規表現 awk の正規表現は .I egrep のものと同様に、拡張された正規表現です。 以下の構成要素から成り立っています。 .TP \w'\fB[^\fIabc...\fB]\fR'u+2n .I c メタ文字ではない .I c にマッチします。 .TP .I \ec リテラル文字 .I c にマッチします。 .TP .B . 改行を .I 含む 任意の 1 文字にマッチします。 .TP .B ^ 文字列の先頭にマッチします。 .TP .B $ 文字列の終端にマッチします。 .TP .BI [ abc... ] 文字リストであり、 .I abc... のいずれか 1 文字にマッチします。 .TP .BI [^ abc... ] 文字リストの逆であり、 .I abc... 以外の 1 文字にマッチします。 .TP .IB r1 | r2 選言: .I r1 または .I r2 にマッチします。 .TP .I r1r2 結合: .I r1 の直後に .I r2 が続くものにマッチします。 .TP .IB r + .I r の 1 回以上の繰り返しにマッチします。 .TP .IB r * .I r の 0 回以上の繰り返しにマッチします。 .TP .IB r ? .I r の 0 回または 1 回の繰り返しにマッチします。 .TP .BI ( r ) グループ化: .I r にマッチします。 .TP .PD 0 .IB r { n } .TP .PD 0 .IB r { n ,} .TP .PD .IB r { n , m } ブレース中に 1 つか 2 つの数値を記述することにより、 .I "インターバル表現" を表します。ブレース中に数値が 1 つある場合、直前の正規表現 .I r が .I n 回繰り返されます。2 つの数値がコンマで区切られている場合、 .I r は .I n 回から .I m 回繰り返されます。1 つの数値に続いてコンマがある場合、 .I r は少なくとも .I n 回繰り返されます。 .sp .5 インターバル表現は .B \-\^\-posix または .B \-\^\-re\-interval がコマンドラインにて指定されているときのみ利用可能です。 .TP .B \ey 語の先頭または末尾の空文字列にマッチします。 .TP .B \eB 語の中の空文字列にマッチします。 .TP .B \e< 語の先頭の空文字列にマッチします。 .TP .B \e> 語の末尾の空文字列にマッチします。 .TP .B \ew 語を構成する文字 (レター、数値、アンダスコア) にマッチします。 .TP .B \eW 語を構成する文字以外の文字にマッチします。 .TP .B \e` バッファ (文字列) の先頭の空文字列にマッチします。 .TP .B \e' バッファの末尾の空文字列にマッチします。 .PP 文字列定数中で用いることができるエスケープシーケンス (後述参照) は、 正規表現中でも使用することができます。 .PP .I 文字クラス は POSIX 標準で導入された新機能です。 文字クラスは特定の属性を持つ文字列リストの特殊表現ですが、 実際の文字集合自身は国や文字集合によって様々なものとなります。 例えば、アルファベット文字はアメリカ合州国とフランスとでは異なります。 .PP 文字クラスが有効なのは、 文字リストのブラケットの中の正規表現だけです。 文字クラスは、 .B [: と、クラスを表現するキーワードと、 .B :] で構成されます。 以下に POSIX 表現で定義される文字クラスを示します。 .TP .B [:alnum:] アルファベットと数値文字。 .TP .B [:alpha:] アルファベット文字。 .TP .B [:blank:] 空白とタブ文字。 .TP .B [:cntrl:] 制御文字。 .TP .B [:digit:] 数値文字。 .TP .B [:graph:] 印字可能で可視な文字。 (空白は印字可能ですが見えません。一方 .B a は印字可能かつ可視です。) .TP .B [:lower:] アルファベット文字の小文字。 .TP .B [:print:] 印字可能な文字 (制御文字以外)。 .TP .B [:punct:] 句読点文字 (レター、数値、制御文字、空白文字のいずれでもない文字)。 .TP .B [:space:] 空白文字 (空白、タブ、フォームフィード等の少数の文字を指す)。 .TP .B [:upper:] アルファベット文字の大文字。 .TP .B [:xdigit:] 16 進数の数値。 .PP 例えば、POSIX 標準以前では、アルファベットと数値の文字にマッチするためには、 .B /[A\-Za\-z0\-9]/ と書きました。しかし、別のアルファベット文字が文字集合に含まれる場合、 それらにはマッチしません。 POSIX 文字クラスでは、 .BR /[[:alnum:]]/ と記述することができ、文字集合の .I すべて のアルファベットと数値にマッチします。 .PP 文字リスト中には、更に 2 つの特殊シーケンスを使用できます。 これらは、 複数の文字によって表現される単一シンボル ( .I 照合文字 と呼ばれます) を持ち、 複数の文字が .I 参照 やソートにおいては等価であるとされる、非 ASCII 文字集合に適用されます。 (例えば、フランス語では単なる ``e'' とグレーブアクセント付きの e\` とでは 等価です。) .TP 照合シンボル 参照シンボルは複数文字の参照要素であり、 .B [. と .B .] で括ります。 例えば、 .B ch が参照要素の場合、 .B [[.ch.]] は正規表現となり、この参照要素にマッチします。 一方、 .B [ch] は .B c か .B h にマッチする正規表現です。 .TP 等価クラス 等価クラスは 等価な文字リストを指すロケール固有の名前です。名前は .B [= と .B =] で括ります。 例えば、名前 .B e は ``e,'' ``e\`,'', ``e\`.'' のすべてを表現するために使用されるかもしれません。 この場合、 .B [[=e=]] は .BR e , .BR e\' , .BR e\` のいずれかにマッチする正規表現となります。 .PP これらの機能は英語以外のロケールにて非常に有用です。 .I gawk が正規表現のマッチングに使用するライブラリ関数は、 現在 POSIX 文字クラスのみを理解し、 参照シンボルと等価クラスは理解しません。 .PP .BR \ey , .BR \eB , .BR \e< , .BR \e> , .BR \ew , .BR \eW , .BR \e` , .B \e' の演算子は .IR gawk 固有であり、GNU 正規表現ライブラリの機能を元にした拡張です。 .PP 様々なコマンドラインオプションによって、正規表現中の文字を .I gawk がどのように解釈するのかを制御できます。 .TP オプション無し デフォルトでは、 .I gawk は上述の POSIX 正規表現および GNU 正規表現のすべての機能を提供します。 しかしながら、インターバル表現はサポートされません。 .TP .B \-\^\-posix POSIX 正規表現のみがサポートされ、GNU 演算子はサポートされません (例えば、 .B \ew はリテラル .B w にマッチします)。 インターバル表現は許されます。 .TP .B \-\^\-traditional 伝統的な Unix .I awk の正規表現がサポートされます。GNU 演算子、インターバル表現、 POSIX 文字クラス ( .B [[:alnum:]] など) はサポートされません。 8 進または 16 進のエスケープシーケンスで表現される文字は、 正規表現のメタ文字を表現するとしても、 リテラルとして扱われます。 .TP .B \-\^\-re\-interval .B \-\^\-traditional が指定されていたとしても、正規表現中でインターバル表現をサポートします。 .SS アクション アクションは、ブレース .B { と .B } で囲みます。アクションは通常の代入、条件文、 ループ文等からなります。演算子、制御文、入出力文は C 言語とほぼ同様です。 .SS 演算子 .PP AWK での演算子を、優先順位の高いものから順に示します。 .PP .TP "\w'\fB*= /= %= ^=\fR'u+1n" .BR ( \&... ) グループ化。 .TP .B $ フィールド参照。 .TP .B "++ \-\^\-" インクリメント、デクリメント。前置も後置も可能。 .TP .B ^ べき乗 (\fB**\fR も同様の意味で使用できる。また \fB**=\fR 代入演算子も存在する)。 .TP .B "+ \- !" 単項のプラス、マイナス、論理否定。 .TP .B "* / %" 乗算、除算、剰余。 .TP .B "+ \-" 加算と減算。 .TP .I space 文字列結合。 .TP .PD 0 .B "< >" .TP .PD 0 .B "<= >=" .TP .PD .B "!= ==" 通常の関係演算子。 .TP .B "~ !~" 正規表現マッチ、否定のマッチ。 .B 注意: .B ~ と .B !~ の左辺に正規表現定数 .RB ( /foo/ 等) を用いてはいけません。正規表現定数は右辺にのみ置くことができます。式 .BI "/foo/ ~ " exp は \fB(($0 ~ /foo/) ~ \fIexp\fB)\fR と等価であり、 これは通常意図するものとは異なります。 .TP .B in 配列のメンバ。 .TP .B && 論理 AND。 .TP .B || 論理 OR。 .TP .B ?: C 言語の条件式と同様です。 .IB expr1 " ? " expr2 " : " expr3\c の形式で使います。もし .I expr1 が真なら式の値は .I expr2 になり、そうでなければ .I expr3 になります。 .I expr2 か .I expr3 のうち片方のみが評価されます。 .TP .PD 0 .B "= += \-=" .TP .B "*= /= %= ^=" 代入。絶対代入 .BI ( var " = " value ) と演算子代入 (他の形式) がサポートされています。 .SS 制御ステートメント .PP 制御ステートメントは以下のとおりです。 .PP .RS .nf \fBif (\fIcondition\fB) \fIstatement\fR [ \fBelse\fI statement \fR] \fBwhile (\fIcondition\fB) \fIstatement \fR \fBdo \fIstatement \fBwhile (\fIcondition\fB)\fR \fBfor (\fIexpr1\fB; \fIexpr2\fB; \fIexpr3\fB) \fIstatement\fR \fBfor (\fIvar \fBin\fI array\fB) \fIstatement\fR \fBbreak\fR \fBcontinue\fR \fBdelete \fIarray\^\fB[\^\fIindex\^\fB]\fR \fBdelete \fIarray\^\fR \fBexit\fR [ \fIexpression\fR ] \fB{ \fIstatements \fB} .fi .RE .SS 入出力ステートメント .PP 入出力ステートメントは以下のとおりです。 .PP .TP "\w'\fBprintf \fI書式, 式の列\fR'u+1n" .BI close( file ) ファイル (またはパイプ、下記参照) をクローズします。 .TP .B getline 次のレコードを .B $0 に読み込みます。 .BR NF , .BR NR , .B FNR が設定されます。 .TP .BI "getline <" file ファイル .I file から次のレコードを .B $0 に読み込みます。 .B NF が設定されます。 .TP .BI getline " var" 次のレコードを変数 .I var に読み込みます。 .BR NR , .B FNR が設定されます。 .TP .BI getline " var" " <" file ファイル .I file から次のレコードを変数 .I var に読み込みます。 .TP .B next 現在のレコードに対する処理を終了し、次のレコードを読み込み、AWK プログ ラムの最初のパターンから処理を開始します。 C 言語の continue と類似した意味を持ちます。 もし、入力データの終端に達した場合、 .B END ブロックが存在すれば実行されます。 .TP .B "nextfile" 現在の入力ファイルに対する処理を終了し、次の入力ファイルからレコードを 読み込みます。 .B FILENAME と .B ARGIND が更新され、 .B FNR が 1 にリセットされ、AWK プログラムの 最初のパターンから処理が開始されます。入力データの終端に達したときは、 もし存在すれば、 .B END ブロックが実行されます。 .B 注: 以前のバージョンの gawk では .BR "next file" と 2 語で使用されていました。この用法はまだ認識されますが、 警告メッセージを生じさせますし、最終的には無くなる表現です。 .TP .B print 現在のレコードを出力します。 出力レコードは .B ORS 変数の値にて終端されます。 .TP .BI print " expr-list" 式を出力します。各式は .B OFS の値で区切られます。出力されるレコードの最後に は .B ORS の値が付加されます。 .TP .BI print " expr-list" " >" file 式をファイル .I file に出力します。各式は .B OFS の値で区切られます。出力されるレコードの 最後には .B ORS の値が付加されます。 .TP .BI printf " fmt, expr-list" 書式付き出力です。 .TP .BI printf " fmt, expr-list" " >" file ファイル .I file への書式付き出力です。 .TP .BI system( cmd-line ) コマンド .I cmd-line を実行し、終了ステータスを返します (\*(PX に対応しない システムでは使用できない場合があります)。 .TP \&\fBfflush(\fR[\fIfile\^\fR]\fB)\fR オープンされている出力ファイルまたはパイプ .I file に関連づけられているバッファをフラッシュします。 .I file を指定しないと、標準出力がフラッシュされます。 .I file が空文字列の場合、オープンされているすべてのファイルとパイプのバッファを フラッシュします。 .PP その他の形式のリダイレクトとして以下のものが利用可能です。 .B print と .B printf に対して、 .BI >> file を指定すると出力はファイル .I file に追加され、 .BI | " command" は出力をパイプに対して行います。同様に、 .IB command "| getline" はコマンドの出力から .B getline を行ないます。 .B getline はファイル終端では 0 を、エラー時には \-1 を返します。 .SS \fIprintf\fP\^ ステートメント .PP AWK での .B printf ステートメントと .B sprintf() 関数 (後述参照) は、以下の変換指定書式を受け付けます。 .TP .B %c 1 つの \s-1ASCII\s+1 文字。 .B %c に対応する引数が数値なら、その値を \s-1ASCII\s+1 コードとみなし て文字に変換します。そうでなければ、引数は文字列であると解釈され、その 1 文字目が出力されます。 .TP .B %d .PD 0 .TP .B %i 10 進数 (整数部分)。 .TP .PD 0 .B %e .TP .PD .B %E .B [-]d.dddddde[+-]dd という形式の浮動小数点数。 .B %E 形式では .B e の代りに .B E が使用されます。 .TP .B %f .B [-]ddd.dddddd という形式の浮動小数点数。 .TP .PD 0 .B %g .TP .PD .B %G .B %e と .B %f の短い方の形式の浮動小数点数。余計な 0 は省略されます。 .B %G 形式では .B %e の代りに .B %E を使用します。 .TP .B %o 符号なしの 8 進数 (整数)。 .TP .B %s 文字列。 .TP .PD 0 .B %x .TP .PD .B %X 符号なしの 16 進数 (整数)。 .B %X 形式では、 .B abcdef の代りに .B ABCDEF を用います。 .TP .B %% 単一の文字 .B % 。引数は使用しません。 .PP .B % と上記の制御文字との間にオプショナルな追加のパラメータを置く ことができます。以下にそれらを示します。 .TP .B \- 左寄せ。 .TP .I 空白 数値変換において、正の値のプレフィックスは空白となり、 負の値のプレフィックスはマイナス記号となります。 .TP .B + プラス記号は幅修正子 (後述) の前に使用し、 整形されるデータが正であったとしても、 数値変換に対して常に符号を付けることを指示します。 .B + は空白修正子に優先します。 .TP .B # ある制御レターに対して「別の形式」を使用します。 .BR %o に対しては先行する 0 を与え、 .BR %x と .BR %X に対しては非 0 の結果に対して先行する .BR 0x と .BR 0X を与えます。 .BR %e , .BR %E , .B %f に対しては結果に常に小数点を含めます。 .BR %g , .B %G に対しては結果の末尾から 0 を取り除きません。 .TP .B 0 先頭の .B 0 (ゼロ) はフラグとして動作し、 出力を空白ではなく 0 でパディングすることを示します。 これは非数値の出力書式に対しても適用されます。 このフラグが有効なのは、フィールド幅が印字される値の幅より広いときだけです。 .TP .I width フィールドが指定した幅 .I width になるようにパディングされます。フィールドは通常空白でパディングされます。 .B 0 フラグが使用された場合には 0 でパディングされます。 .TP .BI . prec 印字において使用する精度を数値で指定します。 .BR %e , .BR %E , .B %f の書式に対しては、小数点の右側に印字される数字の数を指定します。 .BR %g , .B %G の書式に対しては、仮数部の最大数を指定します。 .BR %d , .BR %o , .BR %i , .BR %u , .BR %x , .B %X の書式に対しては、印字される数字の最小数を指定します。 文字列に対しては、印字される文字列からとりだされる最大の文字数を指定します。 .PP \*(AN C の .B printf() の動的な幅 .I width と精度 .I prec の指定機能が使用できます。 .B 幅 または .B 精度 の指定部分に .B * を指定することで、その値を .B printf または .B sprintf() への引数で指定できます。 .SS 特殊ファイル名 .PP .B print や .B printf で書き込みときでも、 .B getline でファイルから読み取るときでも、 入出力リダイレクトを行う場合、 .I gawk は内部的な特殊なファイル名を解釈します。 これらのファイル名により、親プロセス (通常はシェルです) から受け継いだ オープン状態のファイルディスクリプタを用いて入出力を行ったり、実行中の .I gawk プロセスに関する情報を得ることができます。 特殊ファイル名は以下のとおりです。 .TP \w'\fB/dev/stdout\fR'u+1n .B /dev/pid 現在のプロセスのプロセスID (10 進数で、最後に改行が付きます) を 読み込むことができます。 .TP .B /dev/ppid 現在のプロセスの親のプロセスのプロセスID (10 進数で、最後に改行が付きます) を 読み込むことができます。 .TP .B /dev/pgrpid 現在のプロセスのプロセスグループ ID (10 進数で、最後に改行が付きます) を読み込むことができます。 .TP .B /dev/user このファイルを読むことで、改行で終わる単一のレコードが得られます。 各フィールドは空白で区切られています。 .B $1 は .IR getuid (2) システムコールの値、 .B $2 は .IR geteuid (2) システムコールの値、 .B $3 は .IR getgid (2) システムコールの値、 .B $4 は .IR getegid (2) システムコールの値です。もし、さらにフィールドがあれば、 それは .IR getgroups (2) システムコールが返すグループ ID のリストです。 全てのシステムで複数のグループがサポートされているわけではありません。 .TP .B /dev/stdin 標準入力。 .TP .B /dev/stdout 標準出力。 .TP .B /dev/stderr 標準エラー出力。 .TP .BI /dev/fd/\^ n オープンされたファイルディスクリプタ .I n に対応しているファイル。 .PP エラーメッセージを出力するには、以下の方法が便利です。 .PP .RS .ft B print "You blew it!" > "/dev/stderr" .ft R .RE .PP もしこの機能が無かったら、次のようにするしかないところです。 .PP .RS .ft B print "You blew it!" | "cat 1>&2" .ft R .RE .PP これらのファイル名は、コマンドラインのデータファイル指定で使うこともできます。 .SS 数値関数 .PP AWK は以下の定義済み数値関数を持っています。 .PP .TP \w'\fBsrand(\fR[\fIexpr\^\fR]\fB)\fR'u+1n .BI atan2( y , " x" ) .I y/x の逆正接をラジアンで与えます。 .TP .BI cos( expr ) .I expr の余弦をラジアンで与えます。 .TP .BI exp( expr ) 指数関数。 .TP .BI int( expr ) 整数への切捨て。 .TP .BI log( expr ) 自然対数。 .TP .B rand() 0 から 1 の間の乱数を与えます。 .TP .BI sin( expr ) .I expr の正弦をラジアンで与えます。 .TP .BI sqrt( expr ) 平方根。 .TP \&\fBsrand(\fR[\fIexpr\^\fR]\fB)\fR .I expr の値を乱数生成関数の種として用います。式が指定されなかった場合は、 時刻が用いられます。直前の種の値を返します。 .SS 文字列関数 .PP .I gawk は以下の定義済み文字列関数を持っています。 .PP .TP "\w'\fBsprintf(\^\fIfmt\fB\^, \fIexpr-list\^\fB)\fR'u+1n" \fBgensub(\fIr\fB, \fIs\fB, \fIh \fR[\fB, \fIt\fR]\fB)\fR 対象文字列 .I t から正規表現 .I r のマッチを探します。 .I h が .B g または .B G で開始する文字列の場合、マッチする .I r をすべて .I s に置き換えます。 そうでない場合、 .I h は何番目の .I r のマッチを置き換えるのかを示します。 .I t が与えられない場合、代りに .B $0 が使用されます。 置換テキスト .I s では、シーケンス .BI \e n\fR ただし .I n は 1 から 9 までの数字を使用して、 .I n 番目にマッチした括弧付きサブ式を示すことができます。 シーケンス .B \e0 は文字 .B & と同様、マッチしたテキスト全体を表します。 .B sub() や .B gsub() とは異なり、修正された文字列が関数の結果として返され、 元の対象テキストは変更され .I ません 。 .TP "\w'\fBsprintf(\^\fIfmt\fB\^, \fIexpr-list\^\fB)\fR'u+1n" \fBgsub(\fIr\fB, \fIs \fR[\fB, \fIt\fR]\fB)\fR 文字列 .I t 中で正規表現 .I r にマッチした部分をすべて .I s に置換します。置換の個数を返します。 .I t を指定しなかった場合は .B $0 が用いられます。 置換テキストでは、 .B & は実際にマッチしたテキストで置き換えられます。 .B \e& を使用するとリテラルの .B & を得ることができます。 .BR sub() , .BR gsub() , .B gensub() における .B & とバックスラッシュに関する完全な議論は .I "AWK Language Programming" を参照してください。 .TP .BI index( s , " t" ) 文字列 .I s 中に含まれる文字列 .I t の位置を返します。 .I t が含まれていない場合は 0 を返します。 .TP \fBlength(\fR[\fIs\fR]\fB) 文字列 .I s の長さを返します。 .I s を指定しなかった場合には .B $0 の長さを返します。 .TP .BI match( s , " r" ) 文字列 .I s 中で正規表現 .I r にマッチする位置を返します。マッチしない場合は 0 を 返します。 .B RSTART と .B RLENGTH の値が設定されます。 .TP \fBsplit(\fIs\fB, \fIa \fR[\fB, \fIr\fR]\fB)\fR 文字列 .I s を正規表現 .I r を用いて分割し、配列 .I a に格納します。 フィールド数を返します。 .I r が省略され た場合は .B FS が用いられます。配列 .I a の内容は、分割前にクリアされます。 分割は、上述のフィールド分割と同じ動作を行います。 .TP .BI sprintf( fmt , " expr-list" ) 書式 .I fmt に従って .I exp-list を整形表示し、結果の文字列を返します。 .TP \fBsub(\fIr\fB, \fIs \fR[\fB, \fIt\fR]\fB)\fR .B gsub() と似てますが、最初にマッチした文字列のみが置換されます。 .TP \fBsubstr(\fIs\fB, \fIi \fR[\fB, \fIn\fR]\fB)\fR 文字列 .I s の .I i 文字目から始まる最大 .I n 文字の部分文字列を返します。 .I n が省略された場合、 .I i 文字目以降の部分文字列が返されます。 .TP .BI tolower( str ) 文字列 .I str をコピーし、大文字をすべて小文字に変換したものを返します。 アルファベットでない文字は変化しません。 .TP .BI toupper( str ) 文字列 .I str をコピーし、小文字をすべて大文字に変換したものを返します。 アルファベットでない文字は変化しません。 .SS 時間関数 .PP タイムスタンプを含んだログファイルの処理は AWK プログラムの主な使い道の1つですから、 .I gawk はタイムスタンプを取り出したり、フォーマット するための 2 つの関数を提供します。 .PP .TP "\w'\fBsystime()\fR'u+1n" .B systime() 基準時点からの経過秒数を返します (\*(PX システムでは、基準時点は UTC で 1970 年 1 月 1 日 0:00 です)。 .TP \fBstrftime(\fR[\fIformat \fR[\fB, \fItimestamp\fR]]\fB)\fR 書式 .I format に従って .I timestamp をフォーマットします。 .I timestamp は .B systime() が返す値と同じ形式でなければなりません。 .I timestamp が省略された場合、現在の日付が使用されます。 .I format が省略された場合、 .IR date (1) が出力に使用するものと同じデフォルトフォーマットが使用されます。 利用可能なフォーマットについては、\*(AN C の .B strftime() 関数の仕様を参照して下さい。パブリックドメインな .IR strftime (3) とそのマニュアルページが .I gawk とともに配布されています。もし、 .I gawk を作成するためにその .B strftime を用いた場合は、そのマニュアルに記述されている変換書式が .I gawk でも利用可能です。 .SS 文字列定数 .PP AWK での文字列定数は、ダブルクォート (\fB"\fR) に狭まれた文字の列です。 文字列内では、C 言語のようにいくつかの .I エスケープシーケンス が使えます。 .PP .TP \w'\fB\e\^\fIddd\fR'u+1n .B \e\e バックスラッシュそのもの。 .TP .B \ea 「警告」文字。通常は \s-1ASCII\s+1 \s-1BEL\s+1 文字です。 .TP .B \eb バックスペース。 .TP .B \ef 改ページ (フォームフィード)。 .TP .B \en 改行。 .TP .B \er 復帰 (キャリッジリターン)。 .TP .B \et 水平タブ。 .TP .B \ev 垂直タブ。 .TP .BI \ex "\^hex digits" .B \ex に続く 16 進数で表現された文字。\*(AN C と同様に、 .B \ex に続くすべての 16 進数字 はエスケープシーケンスの一部であるとみなされます。 (この機能によりコミッティによる言語デザインが分かります。) 例えば、\fB"\ex1B"\fR は \s-1ASCII\s+1 \s-1ESC\s+1 (エスケープ) 文字です。 .TP .BI \e ddd 1 桁か 2 桁か 3 桁の 8 進数で表現された文字。例えば、 \fB"\e033"\fR は \s-1ASCII\s+1 \s-1ESC\s+1 (エスケープ) 文字です。 .TP .BI \e c 文字 c そのもの。 .PP エスケープシーケンスは正規表現定数内でも用いることができます (例えば、 .B "/[\ \et\ef\en\er\ev]/" は空白文字にマッチします)。 .PP 互換モードでは、8 進および 16 進のエスケープシーケンスで表現される文字は、 正規表現定数として使用された場合、リテラルとして扱われます。 それゆえ、 .B /a\e52b/ は .B /a\e*b/ と等価です。 .SH 関数 AWK では関数を以下のようにして定義します。 .PP .RS \fBfunction \fIname\fB(\fIparameter list\fB) { \fIstatements \fB}\fR .RE .PP 関数は、パターンまたはアクションの式から呼び出されたときに実行されます。 関数呼び出しにおいて与えられた実引数が、関数宣言における仮引数に 受け渡されます。 このとき配列の場合は参照渡しが行われ、他の変数の場合は値渡しで行われます。 .PP 元々 AWK に関数は備わっていませんでしたので、局所変数の機構はあまり スマートではありません。 局所変数は引数リストの余分な引数として宣言します。局所変数と関 数引数を区別するため、余分な空白で区切るのが慣習です。例えば、以下のよ うにします。 .PP .RS .ft B .nf function f(p, q, a, b) # a & b は局所変数 { \&..... } /abc/ { ... ; f(1, 2) ; ... } .fi .ft R .RE .PP 関数呼び出しにおける左括弧は、空白を狭まずに関数名の直後に 置かなければいけません。 これは、文字列結合演算子との曖昧さを生じさせないために必要です。 この制限は、上述の組み込み関数にはあてはまりません。 .PP 関数は、他の関数を呼び出したり、自分自身を再帰的に呼び出すことができます。 局所変数として用いられる関数引数は、関数起動時に空文字列および 0 に初期化されます。 .PP +関数から値を返すには +.BI return " expr" +を使用してください。 +値を指定しない場合、または関数の終りから ``落ちる'' +(訳注: 関数を閉じるブレースに到達する) ことにより関数から戻る場合、 +値は未定義です。 +.PP .B \-\^\-lint が指定されたとき、 .I gawk は実行時ではなくパーズ時に未定義関数の呼び出しに関して警告します。 実行時の未定義関数の呼び出しは致命的なエラーとなります。 .PP .B function のかわりに .B func を用いることができます。 .SH 使用例 .nf ``/etc/passwd'' から全ユーザのログイン名を取り出し、ソートして出力します。 .ft B BEGIN { FS = ":" } { print $1 | "sort" } .ft R ファイルの行数を数える。 .ft B { nlines++ } END { print nlines } .ft R 行番号をつける。 .ft B { print FNR, $0 } .ft R 全ファイルを通した行番号をつける。 .ft B { print NR, $0 } .ft R .fi .SH 関連項目 .IR egrep (1), .IR getpid (2), .IR getppid (2), .IR getpgrp (2), .IR getuid (2), .IR geteuid (2), .IR getgid (2), .IR getegid (2), .IR getgroups (2) .PP .IR "The AWK Programming Language" , Alfred V. Aho, Brian W. Kernighan, Peter J. Weinberger, Addison-Wesley, 1988. ISBN 0-201-07981-X. .PP .IR "AWK Language Programming" , Edition 1.0, published by the Free Software Foundation, 1995. .SH POSIX 互換 .I gawk は最新版の \*(UX .I awk との互換性だけでなく、\*(PX 標準との互換性も追求しています。 このため .I gawk には以下のような機能が取り入れられています。 これらの機能は AWK 本には述べられていませんが、 Bell Labs および \*(PX 標準の .I awk が有している機能です。 .PP プログラム実行前に変数代入を行なう .B \-v オプションは新しい物です。 AWK 本によれば、コマンドラインで指定された変数代入は .I awk が引数をファイル名としてオープンする際に行なわれることになります。つまり これは .B BEGIN ブロックの実行後です。しかしながら初期の頃の実装では、引数の中でファイル名に 先立って変数代入が指定されている場合には、代入は .B BEGIN ブロック実行の .I 前に 行われていました。そしてアプリケーションは、この「仕様」に依存する ようになりました。 .I awk がそのドキュメントに合うように直された時、昔の動作に依存している アプリケーションの便宜を図るためにこのオプションが加えられました。 (この仕様は AT&T および GNU の開発者達によって合意されました。) .PP 独自機能のための .B \-W オプションは \*(PX 標準に従ったものです。 .PP 引数の列に特別なオプション ``\fB\-\^\-\fP'' を指定すると、 .I gawk はそこがオプションの終わりであると解釈します。 互換モードにおいては未定義オプションは警告が出力され、それ以外のものは 無視されます。 通常の実行においては残りの引数は AWK プログラムに引き渡されます。 .PP AWK 本は .B srand() の返り値を定義していません。 \*(PX 標準 では、その関数が使っている種を返し、 乱数シーケンスを追跡できるようにしています。 したがって .I gawk における .B srand() も現在の種を返すようにしてあります。 .PP その他にも以下のような新機能があります。 .B \-f オプションの複数回使用 (MKS .IR awk に倣いました); .B ENVIRON 配列; エスケープシーケンス .B \ea と .B \ev ( .I gawk で最初に実装され、AT&T の .I awk にフィードバックされました); 組み込み関数 .B tolower() と .B toupper() (AT&T に倣いました); .B printf における \*(AN C 変換指定 (AT&T 版で最初に実装されました)。 .SH GNU 拡張 .I gawk は \*(PX .I awk に対して多くの拡張が行なわれています。 この節ではそれらについて解説します。 .B \-\^\-traditional オプション付きで .I gawk を起動することによって、 ここで述べられている拡張機能をすべて禁止することができます。 .PP .I gawk が持つ以下の機能は \*(PX .I awk では使用できません。 .RS .TP \w'\(bu'u+1n \(bu エスケープシーケンス .B \ex 。( .B \-\^\-posix で抑止できます。) .TP \w'\(bu'u+1n \(bu .B fflush() 関数。( .B \-\^\-posix で抑止できます。) .TP \(bu .BR systime() , .BR strftime() , .B gensub() の各関数。 .TP \(bu 入出力リダイレクトで利用可能な特殊ファイル名は理解されません。 .TP \(bu 変数 .BR ARGIND , .BR ERRNO , .B RT は特殊変数ではありません。 .TP \(bu 変数 .B IGNORECASE とその副作用は利用できません。 .TP \(bu 変数 .B FIELDWIDTHS と固定長フィールド分割。 .TP \(bu .B RS の正規表現としての使用。 .TP \(bu .B FS に空文字列を設定することにより各文字を切り出す能力と、 .B split() の 3 番目の引数。 .TP \(bu .B \-f オプションで指定されたファイル名についてパス検索を行わないこと。 よって、環境変数 .B AWKPATH は特殊な変数ではありません。 .TP \(bu 現在の入力ファイルに対する処理を終わらせるために使用される .B "nextfile" 。 .TP \(bu 配列全体を削除するために使用される .BI delete " 配列" 。 .RE .PP AWK 本は関数 .B close() の返り値を定義していません。 .I gawk の .B close() は、ファイルやパイプをクローズする際に呼び出す .IR fclose (3) や .IR pclose (3)、 からの返り値を返します。 .PP オプション .B \-\^\-traditional 付きで .I gawk を起動し .B \-F オプションへの引数 .I fs として ``t'' を与えた場合に、 .B FS の値はタブ文字に設定されます。 .B "gawk \-F\et \&..." とタイプしても、シェルが単に ``t'' をクォートするので、``\et'' は .B \-F オプションに渡されません。 これは少々見苦しい特殊事例ですので、デフォルトの動作としては 採用されていません。 .B \-\^\-posix を指定した場合にも、この動作は行なわれません。 タブ文字をフィールドセパレータとして使用したい場合には、 クォートを使用するのが最良です: .BR "gawk \-F'\et' \&..." . .ig .PP If .I awk was compiled for debugging, it will accept the following additional options: .TP .PD 0 .B \-Wparsedebug .TP .PD .B \-\^\-parsedebug Turn on .IR yacc (1) or .IR bison (1) debugging output during program parsing. This option should only be of interest to the .I gawk maintainers, and may not even be compiled into .IR gawk . .. .SH 歴史的機能 .I gawk は歴代の AWK の実装にあった 2 つの機能を備えています。 1 つめとして、組み込み関数 .B length() は引数無しで呼び出せるだけでなく、さらに括弧無しでも呼び出せます! したがって .RS .PP .ft B a = length # Holy Algol 60, Batman! .ft R .RE .PP は以下の2例と同じです。 .RS .PP .ft B a = length() .br a = length($0) .ft R .RE .PP \*(PX 標準ではこの機能は ``deprecated'' と注意書きされており、 .I gawk ではコマンドラインで .B \-\^\-lint を指定した場合に、この機能の使用に対して警告を出力します。 .PP もう 1 つは、 .BR while , .BR for , .B do ループ本体の外でも .BR continue , .B break ステートメントを使用できるという機能です。 伝統的な AWK の実装では、このように使用した .B continue ステートメントを .B next ステートメントと等価なものとして扱ってきました。 .I gawk では .B \-\^\-traditional が指定された場合に、この機能を使うことができます。 .SH 環境変数 環境に .B POSIXLY_CORRECT が存在する場合には、 .I gawk はコマンドラインで .B \-\^\-posix が指定されている時と全く同じ動作をします。 このとき .B \-\^\-lint が指定されていると .I gawk はこの作用についての警告メッセージを出力します。 .PP .B AWKPATH 環境変数を使用して、 .I gawk が .B \-f および .B \-\^\-file オプションで指定されたファイル名を検索するディレクトリを指定できます。 .SH バグ コマンドラインでの変数代入機能を使用するには、変数への代入を直接 コマンドラインに書けばよく、 .B \-F オプションをつける必要はありません。 このオプションは昔の .I awk との互換性のためだけに残されています。 .PP ファイル .B /dev/fd および .BR /dev/stdin , .BR /dev/stdout , .B /dev/stderr を実際にサポートしているシステムでの .I gawk からは、それらがないシステムとは違った出力が得られるかもしれません。 .I gawk はそれらのファイルを内部で解釈する際に標準出力への出力を .B /dev/stdout への出力と同期させますが、それらのファイルを持つシステムでは 出力はそれぞれ異なるファイルへ向けられます。 利用者の方で気を付けるようにしてください (Caveat Emptor)。 .PP 文法的に誤った単一文字プログラムはパーズスタックを溢れさせる傾向があり、 まったく分からないメッセージを生成する傾向にあります。 このようなプログラムの診断は驚くべきことに一般に難しく、 診断の努力はまったく無意味になります。 .SH バージョン情報 このマニュアルは .IR gawk -バージョン 3.0.2 について記載しています。 +バージョン 3.0.4 について記載しています。 .SH 作者 \*(UX .I awk の最初のバージョンは、AT&T Bell Labs の Alfred Aho と Peter Weinberger および Brian Kernighan によって設計、実装されました。 Brian Kernighan はその保守と改良を続けています。 .PP Free Software Foundation の Paul Rubin と Jay Fenlason が、Seventh Edition \*(UX で配布された最初のバージョンの .I awk と互換性を持つように .I gawk を書きました。 John Woods は数々のバグ修正を送って下さいました。 David Trueman は、Arnold Robbins が送って下さった内容をもとに、 .I gawk を新バージョンの \*(UX .I awk 互換にしました。 .PP DOS への最初の移植は Conrad Kwok と Scott Garfinkle によって 行なわれました。 現在は Scott Deifik が DOS 版の保守をしています。 Pat Rankin は VMS への移植を行ない、Michal Jaegermann は Atari ST への 移植を行ないました。 OS/2 への移植は Kai Uwe Rommel が Darrel Hankerson の助けを借りて 行ないました。 Fred Fish が Amiga サポートの提供を行いました。 .SH バグレポート .I gawk のバグを見付けたら、電子メールを -.B bug-gnu-utils@prep.ai.mit.edu +.B bug-gnu-utils@gnu.org 宛に送るとともに、カーボンコピーを -.B arnold@gnu.ai.mit.edu +.B arnold@gnu.org 宛に送ってください。 電子メールには、オペレーティングシステムとそのリビジョン、 .I gawk のリビジョン、コンパイルに使用した C コンパイラ、 問題を再現するできるだけ小さなテストプログラムとデータを記述してください。 .PP バグレポートを送る前に 2 つのことを行ってください。 第 1 に、最新の .I gawk を使用されていることを確認してください。 多くの (通常微妙な) バグが各々のリリースで修正されていますので、 ご使用のものが古い場合には問題は既に解決されているかもしれません。 第 2 に、このマニュアルページとリファレンスマニュアルを注意深く読み、 あなたがバグだと思うものが確かにバグであり、 大きく変わった言語仕様ではないことを確認してください。 .PP バグレポートを .B comp.lang.awk に投稿することだけはしないでください。 .I gawk の開発者達は時々このニュースグループを読みますが、 バグレポートをこのニュースグループに投稿しても バグレポートとして信頼性がありません。 上記のアドレスへの電子メールでお願いします。 .SH 謝辞 Bell Labs の Brian Kernighan はテストおよびデバッグの間、貴重な助力を 提供して下さいました。 感謝致します。 .SH COPYING PERMISSIONS -Copyright \(co\) 1996 Free Software Foundation, Inc. +Copyright \(co) 1996,97,98,99 Free Software Foundation, Inc. .PP Permission is granted to make and distribute verbatim copies of this manual page provided the copyright notice and this permission notice are preserved on all copies. .ig Permission is granted to process this file through troff and print the results, provided the printed document carries copying permission notice identical to this one except for the removal of this paragraph (this paragraph not being relevant to the printed manual page). .. .PP Permission is granted to copy and distribute modified versions of this manual page under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. .PP Permission is granted to copy and distribute translations of this manual page into another language, under the above conditions for modified versions, except that this permission notice may be stated in a translation approved by the Foundation. diff --git a/ja_JP.eucJP/man/man1/ci.1 b/ja_JP.eucJP/man/man1/ci.1 index 92e0f76551..36f83bf07f 100644 --- a/ja_JP.eucJP/man/man1/ci.1 +++ b/ja_JP.eucJP/man/man1/ci.1 @@ -1,888 +1,888 @@ .\" jpman %Id: ci.1,v 1.2 1997/06/01 11:29:01 horikawa Stab % .ds Rv \\$3 .ds Dt \\$4 .. .Id %FreeBSD: src/gnu/usr.bin/rcs/ci/ci.1,v 1.5.2.1 1999/08/29 14:34:44 peter Exp % .ds i \&\s-1ISO\s0 .ds r \&\s-1RCS\s0 .ds u \&\s-1UTC\s0 .if n .ds - \%-- .if t .ds - \(em .TH CI 1 \*(Dt GNU .SH 名称 ci \- RCS ファイルにリビジョンをチェックインする .SH 書式 .B ci .RI [ options ] " file " .\|.\|. .SH 解説 .B ci は \*r ファイルに新たなリビジョンを格納します。 引数のうち、\*r ファイルの拡張子形式に一致する ファイル名を \*r ファイルとみなします。 それ以外のファイル名は、新たなリビジョンを含んだワークファイルとみなします。 .B ci はワークファイルの内容を対応した \*r ファイルに格納します。 もしワークファイルのみが指定されたなら、 .B ci はサブディレクトリ \*r、次にワークファイルがあるディレクトリの順に 対応する \*r ファイルを検索します。 詳細は後述の .SM "ファイル名規則" の項を参照してください。 .PP .B ci が動作するには、 .B ci を起動したユーザが \*r ファイルのアクセスリスト に登録されているか、アクセスリストが空であるか、 ユーザが \*r ファイルの持ち主であるか、 あるいはスーパユーザである必要があります。 すでに存在する枝 (branch) に新しいリビジョンを追加するには、 枝の先端 (tip) リビジョンが、 追加しようとするユーザによってロックされていなければなりません。 ロックされていない場合、新たな枝のみ作成可能です。 非厳格モード ( .BR rcs (1) 参照) の場合、 ファイルの所有者に対してはこの制限はありません。 他人が行っているロックは、 .B rcs コマンドによって解除できます。 .PP .B \-f オプションが指定されていなければ、 .B ci は追加しようとするリビジョンと直前のリビジョンとの比較を行います。 違いがなかった場合、新たなリビジョンを作成するかわりに、 ワークファイルを元のリビジョンのものに復元します。 復元するときには、ci はいったんワークファイルを削除し、 ロックを解除します。 .B "ci\ \-l" はロックし、 .B "ci\ \-u" はロックを解除します。 これらのオプションが指定されていれば、あたかも直前のリビジョンに対して .B "co\ \-l" または .B "co\ \-u" を実行したかのようにして直前のリビジョンの内容を取り出します。 復元が行われる場合、 .B \-n と .B \-s オプションは復元されるリビジョンに対して作用します。 .PP リビジョンを格納するときに、 .B ci はログメッセージの入力を促すプロンプトを表示します。 ログメッセージは、そのリビジョンの変更点の要約です。 ファイル終端 (EOF) あるいは、 ピリオド .B \&. のみからなる行によって入力を完了させます。 複数のファイルが登録される場合、 .B ci は前に入力したログメッセージを 再利用するかどうかを聞いてきます。 もし標準入力が端末でなければ、 .B ci は確認を行わず、 登録されるすべてのファイルに対して同じログメッセージを使用します。 .B \-m オプションの項も参照してください。 .PP もし \*r ファイルが存在しなければ、 .B ci は新規に \*r ファイルを作成し、 ワークファイルの内容を初期リビジョン (デフォルトでは .BR 1.1 ) として格納します。 その場合、アクセスリストは空に初期化されます。 初期リビジョンを格納するときは、 ログメッセージのかわりに ファイルの内容を記述したテキストを入力します (後述の .B \-t オプションの項を参照してください)。 .PP 登録するリビジョン番号 ( .I rev ) は、 .BR \-f , .BR \-i , .BR \-I , .BR \-j , .BR \-k , .BR \-l , .BR \-M , .BR \-q , .BR \-r , .B \-u のオプションのうちのいずれかで指定することができます。 .I rev はシンボル、数値、あるいは両者の組み合わせたものです。 .I rev で使用するシンボル名は定義済みでなければなりません; チェックイン時にシンボル名を割り当てる方法については .B \-n および .B \-N を参照して下さい。 もし .I rev が .B $ ならば、 .B ci はワークファイル中のキーワードからリビジョン番号を決定します。 .PP もし .I rev がピリオドから始まる場合、デフォルトの枝 (通常は幹 (trunk)) に格納されます。 もし .I rev が枝番号に続いてピリオドである場合、当該枝の最新のリビジョンが使用されます。 .PP .I rev がリビジョン番号の場合、 それは登録する枝のなかで最も大きな値である必要があります。 さもなければ、新しい枝を作成する必要があります。 .PP .I rev がリビジョン番号ではなく枝番号の場合、 その枝に対する新しいリビジョンが作成されます。 新しいリビジョン番号は、その枝の先端リビジョン番号に 1 を加えたものとなります。 もし .I rev が存在しない枝番号ならば、新たな枝が作成され、初期リビジョンとして .IB rev .1 が作成されます。 .br .ne 8 .PP .I rev が省略された場合、 .B ci はユーザが行った最後のロックからリビジョン番号を決定します。 ユーザがある枝の先端リビジョンをロックしている場合は、 新たなリビジョンがその枝に追加されます。 新しいリビジョン番号は 先端リビジョン番号に 1 を加えたものになります。 ユーザが先端ではないリビジョンをロックしている場合は、 新たな枝が作成されます。 新たな枝番号は、ロック対象のリビジョンの 最も大きな枝番号に 1 を加えたものになります。 デフォルトでは、新たな枝やリビジョンの番号は .B 1 となります。 .PP .I rev が省略され、ユーザがロックを行わず、そのファイルの所有者であり、 かつロックが .I 非厳格モード であるなら、 デフォルトの枝 (通常は幹 (trunk); .BR rcs (1) の .B \-b オプションの項を参照) に新たなリビジョンが作成されます。 .PP 例外: 幹 (trunk) においてリビジョンを追加することはできますが、 途中に挿入することはできません。 .SH オプション .TP .BI \-r rev リビジョン .I rev をチェックインします。 .TP .B \-r .B \-r オプションをリビジョン抜きで使用した場合、 .B ci にとって特別な意味が有ります。他の \*r コマンドでは .B \-r オプションを単体で使用するとデフォルト枝の最新のリビジョンを指定します。 しかし、 .B ci ではロック解除、ワークファイル削除を行い、 シェルのエイリアスやスクリプトによりデフォルトとされてしまった .B \-l や .B \-u オプションの効果を打ち消します。 .TP .BR \-l [\f2rev\fP] .B \-r と同様の動作を行ったあと、 .B "co\ \-l" と同様の動作も行います。 すなわち、登録されたリビジョンは即座にロックされ、チェックアウトされます。 これは、リビジョンをチェックインしてさらに編集を続けたい場合に便利です。 .TP .BR \-u [\f2rev\fP] .B \-l とほぼ同様の動作をしますが、登録されたリビジョンはロックされません。 これは、チェックインしたリビジョンの内容をすぐに参照したい場合に便利です。 .RS .PP .BR \-l 、リビジョン無し .BR \-r , .B \-u オプションは、最後に指定したもののみが効力を持ちます。 たとえば、 .B "ci\ \-u\ \-r" は .B "ci\ \-r" と等価です。 リビジョン無し .B \-r が .B \-u に優先するからです。 .RE .TP .BR \-f [\f2rev\fP] 強制的に登録します。 直前のリビジョンとの違いがない場合にも、 新しいリビジョンとして登録します。 .TP .BR \-k [\f2rev\fP] リビジョン番号などをローカルに算出せずに、 ワークファイルからキーワードを探し、 リビジョン番号、作成日時、状態、作者 ( .BR co (1) を参照) を検索し、登録されるリビジョンに割り当てます。 さらに、 .B ci を起動したユーザ名と実際にチェックインされた日付を含む デフォルトのログメッセージを作成します。 本オプションは、配布されたソフトウェアを登録するのに便利です。 複数のサイトに配布されたリビジョンは、 元のリビジョン番号、作成日付、状態、作者を保存するために、 .B \-k オプションを使って登録するべきです。 ワークファイルのキーワードから取り出した値とログメッセージは、 .BR \-d , .BR \-m , .BR \-s , .B \-w や、他のリビジョン番号を生成するようなオプションにより 変更することができます。 .TP .BR \-q [\f2rev\fP] 沈黙モードです。 診断メッセージを表示しません。 直前のリビジョンから変更がない場合、 .B \-f オプションを指定していなければ、登録を行いません。 .TP .BR \-i [\f2rev\fP] 最初のチェックイン; \*r ファイルが既に有る時にはエラー報告します。 特定のアプリケーションのレース状態を避けます。 .TP .BR \-j [\f2rev\fP] 初期化を行わず、チェックインします; \*r ファイルが無いとエラー報告します。 .TP .BR \-I [\f2rev\fP] 対話モードで動作します。 たとえ標準入力が端末でなくても、ユーザに対して問い合わせを行います。 .TP .BR \-d "[\f2date\fP]" チェックイン日付として指定された .I date を用います。 .I date は .BR co (1) で記述された自由形式で指定することができます。 これは、チェックイン日時をごまかしたい場合や、 日付キーワードがワークファイルにないにもかかわらず .B \-k オプションを使いたい場合に便利です。 .I date が指定されなかった場合、ワークファイルの最終更新日付が用いられます。 .TP .BR \-M [\f2rev\fP] 作成されるワークファイルの最終更新日付を、 取り出されたリビジョンの日付にします。 たとえば、 .BI "ci\ \-d\ \-M\ \-u" "\ f" は、 .I f の内容がキーワード置換により変更された場合も最終更新日時を変更しません。 本オプションを指定すると .BR make (1) に影響を与えるので、注意して使用する必要があります。 .TP .BI \-m "msg" チェックインするすべてのリビジョンのログメッセージとして .I msg を用います。 慣習的に .B # で始まるログメッセージはコメントであり、GNU Emacs の .B vc パッケージのようなプログラムはこれを無視します。 また、 .BI { clumpname } (の後に空白が続く) ログメッセージは可能であればまとめられることを意味します。 それはたとえ別々のファイルに関連づけられていてもです; .BI { clumpname } ラベルは、まとめる目的でのみ使用されます。 それ自身はログメッセージであるとは見なされません。 .TP .BI \-n "name" チェックインしたリビジョンにシンボリック名 .I name をつけます。 もし同じシンボリック名が別のリビジョンに割り当てられていた場合、 .B ci はエラーメッセージを出力します。 .TP .BI \-N "name" .B -n と同様の動作を行います。 ただし、同じシンボリック名が他のリビジョンに割り当てられていた場合は、 再割り当てを行います (こちらを優先します)。 .TP .BI \-s "state" チェックインされるリビジョンの状態を .I state とします。デフォルトは .B Exp (Experimental: 実験的) です。 .TP .BI \-t file \*r ファイル中の内容記述テキストをファイル .I file の内容で置き換えます。 すでに内容記述テキストがある場合はこれを削除します。ファイル名 .I file は .B \- で始まってはいけません。 .TP .BI \-t\- string \*r ファイル中の内容記述テキストを文字列 .I string で置き換えます。 すでに内容記述テキストがある場合は削除されます。 .RS .PP .B \-t オプションは、どちらの形式で使う場合も、 最初のチェックイン時にしか意味を持ちません。 それ以外の場合は単に無視されます。 .PP 最初のチェックイン時に .B \-t オプションが指定されなかった場合、 .B ci は標準 入力から内容記述テキストを読み込みます。 テキストは、ファイル終端 (EOF) あるいはピリオド ( .Br \&. ) のみの行で終了します。 ユーザへの問い合わせが可能な場合には、 テキストの入力を促すプロンプトが表示されます ( .B \-I オプション参照)。 .PP 旧バージョンとの互換性のため、引数のない .B \-t オプションは無視されます。 .RE .TP .B \-T 新しいリビジョンが存在し、 \*r ファイルの修正時刻が新しいリビジョンの時刻よりも古ければ、 \*r ファイルの修正時刻に対して新しいリビジョンの時刻を代入します; そうでない場合は \*r ファイルの修正時刻は保たれます。 リビジョンをロックした場合は、 .B ci は通常 \*r ファイルの修正時刻を現在の時刻に設定します。 なぜならロックが \*r ファイルに格納され、 ロックの削除は \*r ファイルの変更を要するからです。 \*r ファイルがワークファイルよりも新しくなる方法として 2 通り有ります: まず、 .B "ci\ \-M" は現在時刻以前の日付でワークファイルを作成します; 2 番目に、直前のバージョンを回復する時、 ワークファイルを変更しない場合にも \*r ファイルは変更され得ます。 \*r ファイルのワークファイルにおける .BR make (1) 依存により、上記 2 ケースは過剰の再コンパイルという結果になり得ます。 .B \-T オプションを使用することで、\*r ファイルの日付をごまかし、 再コンパイルを禁止します。 このオプションは注意して使って下さい; あるワークファイルのチェックインが、 同じ \*r ファイルに関連づけられている別のワークファイルに影響を及ぼすべき 時でも、再コンパイルを抑制し得ます。 例えば、\*r ファイルの時刻を 01:00、 (変更された) ワークファイルの時刻を 02:00、 別のワークファイルのコピーの時刻を 03:00、 現在の時刻を 04:00 とします。 ここで、 .B "ci\ \-d\ \-T" とすると、\*r ファイルの時刻は通常の 04:00 ではなく 02:00 になります; この結果、 .BR make (1) は別のコピーが \*r ファイルよりも新しいと (誤って) 認識します。 .TP .BI \-w "login" 指定された .I login をリビジョンの作者として登録します。 作者名をごまかしたい場合や、 作者キーワードがワークファイルにないにもかかわらず .B -k オプションを使いたい場合に便利です。 .BI \-V \*r のリビジョン番号を表示します。 .TP .BI \-V n \*r システムのバージョン .I n のエミュレーションを行います。詳細は .BR co (1) を参照してください。 .TP .BI \-x "suffixes" \*r ファイルの拡張子を指定します。 拡張子が空ではない場合、 拡張子まで含めたすべてのパス名を \*r ファイル名であるとみなします。 拡張子が空の場合は、 .BI RCS/ path または .IB path1 /RCS/ path2 形式のものを \*r ファイル名であるとみなします。 本オプションの場合、 .B / で区切ることにより、複数の拡張子を指定できます。たとえば、 .B \-x,v/ は、 .B ,v と空の拡張子の 2 つの拡張子を持つ \*r ファイルを指定します。 複数の拡張子が指定された場合、指定された順に \*r ファイルを検索します。 最初に見つかったサフィックスが \*r ファイルに対して用いられます。 \*r ファイルを生成できるが、 \*r ファイルが見つからないときは、 これらのサフィックスを新しいファイル名に対して用います。 デフォルトの拡張子は、インストールされる環境により異なります。 UNIX のようなコンマをファイル名中に含めることの出来る計算機では、通常 .B \-x,v/ が、それ以外の計算機では空の拡張子が用いられます。 .TP .BI \-z zone キーワード置換での日付の出力書式の指定を行い、また、 .BI \-d date オプションでの .I date のデフォルトのタイムゾーンの指定を行います。 .I zone は、省略する事も、UTC からの数値差で指定する事も、特別な文字列 .B LT を使ってローカル時間で指定する事もできます。 デフォルトでは .I zone は空であり、 この場合は伝統的な \*r フォーマット、 すなわちタイムゾーン無しの \*u であり日付をスラッシュで区切ります; そうでない場合は時刻はタイムゾーン付の \*i 8601 フォーマットです。 例えば、ローカルタイムが 1990 年 1 月 11 日 太平洋標準時間 (\*u の 8 時間西) 午後 8 時の場合、時間の出力は次のようになります: .RS .LP .RS .nf .ta \w'\f3\-z+05:30\fP 'u +\w'\f31990-01-11 09:30:00+05:30\fP 'u .ne 4 \f2オプション\fP\f2時刻の出力\fP \f3\-z\fP \f31990/01/12 04:00:00\fP \f2(デフォルト)\fP \f3\-zLT\fP \f31990-01-11 20:00:00\-08\fP \f3\-z+05:30\fP \f31990-01-12 09:30:00+05:30\fP .ta 4n +4n +4n +4n .fi .RE .LP .B \-z オプションは \*r ファイルに格納されている日付 (常に \*u です) には影響しません。 .SH "ファイル名規則" -\*r ファイルとワークファイルの組み合わせは3通りの方法で指定することができます。 -(使用例の項目も参照してください。) +\*r ファイルとワークファイルの組み合わせは 3 通りの方法で指定することができます +(使用例の項目も参照してください)。 .PP 1) \*r ファイルとワークファイルの両方を指定する。 \*r ファイルのパス名は .IB path1 / workfileX 形式、ワークファイルのパス名は .IB path2 / workfile 形式をとります。この場合の .IB path1 / と .IB path2 / はパス (異なるパスや、空でも可) を示し、 .I workfile はファイル名、 .I X は \*r ファイルの拡張子です。もし .I X が空なら、 .IB path1 / は .B RCS/ で始まるか、 .B /RCS/ を含まねばなりません。 .PP 2) \*r ファイルのみを指定する。 ワークファイルがカレントディレクトリに作成され、\*r ファイル名から .IB path1 / と拡張子 .I X を取り除いたファイル名になります。 .PP 3) ワークファイルのみを指定する。 .B ci はまず、各 \*r 拡張子 .I X に対して、 .IB path2 /RCS/ workfileX 形式の名前で検索を行います。 さらに、(もしこれが見つからず、 .I X が空でなければ、) .IB path2 / workfileX を検索します。 .PP 1) または 2) の方法で \*r ファイルが指定されていない場合、 .I ci はまずディレクトリ .B ./RCS を検索し、次にカレントディレクトリを検索します。 .PP 異常により \*r ファイルのオープンに失敗すると、 .I ci はエラー報告します。 他に \*r ファイルのパス名の候補があってもです。 たとえばディレクトリ .I d で \*r コマンドを利用できないようにするには、 .IB d /RCS なる名前の通常ファイルを作成しておきます。 すると、\*r コマンドは .IB d /RCS をディレクトリとしてオープンしようとしますが、 ディレクトリではないのでオープンすることができず失敗します。 .SH 使用例 \*r 拡張子が .B ,v 、カレントディレクトリには \*r ファイルを含む .B RCS というサブディレクトリがあり、 .B io.c,v があると仮定します。 ここで、以下に示したコマンドを実行すると、 どれもカレントディレクトリにある .B io.c を .B RCS/io.c,v にチェックインし、 .B io.c を削除します。 .LP .RS .nf .ft 3 ci io.c; ci RCS/io.c,v; ci io.c,v; ci io.c RCS/io.c,v; ci io.c io.c,v; ci RCS/io.c,v io.c; ci io.c,v io.c; .ft .fi .RE .PP \*r 拡張子が空、カレントディレクトリには \*r ファイルを含む .B RCS というサブディレクトリがあり、 .B io.c があると仮定します。ここで以下に示すコマンドは、どれも新しい リビジョンのチェックインを行います。 .LP .RS .nf .ft 3 ci io.c; ci RCS/io.c; ci io.c RCS/io.c; ci RCS/io.c io.c; .ft .fi .RE .SH "ファイルモード" .B ci が作成した \*r ファイルは、 ワークファイルの読み込みと実行の許可属性を受け継ぎます。 すでに \*r ファイルが存在すれば、 .B ci はその読み込みと実行の許可属性を保持します。 .B ci は、つねに \*r ファイルの書き込み許可属性を不許可にします。 .SH 関連ファイル いくつかの一時ファイルが、ワークファイルの存在するディレクトリまたは 一時ディレクトリ (環境変数の項の .B \s-1TMPDIR\s0 参照) に作成されます。 セマフォファイル等のファイルが \*r ファイルが存在するディレクトリに作成されます。 空ではない拡張子を用いている場合、 セマフォファイル名の先頭文字には、 拡張子の先頭文字と同じ文字が用いられます; よって、拡張子として、ワークファイルの拡張子の先頭文字と同じ文字を 指定しないように注意してください。 空の拡張子を指定している場合、 セマフォファイル名の最後の文字がアンダスコア ( .B _ ) となります。 .PP .B ci は、 \*r ファイルやワークファイルを変更しません。通常 .B ci はそれらのファイルをアンリンクし、新しいファイルを作成します; ただし、\*r ファイルへのシンボリックリンクの鎖を壊す代わりに、 目的のファイルをアンリンクします。 よって、 .B ci は変更されるワークファイルへの ハードリンク、シンボリックリンクを全て壊します; さらに、\*r ファイルへのハードリンクは無効となり、 シンボリックリンクは保存されます。 .PP 実効ユーザは、\*r ファイルを含むディレクトリの 検索および書き込み権を持っていなければなりません。 通常実ユーザは、 \*r ファイルとワークファイルの読み込み許可と、 それらを含むディレクトリの検索および書き込み権を持っていなければなりません。 しかし、古い計算機のなかには実ユーザと実効ユーザの間を 容易に行き来することができないものもあります。 これらの計算機では、実効ユーザのみが利用されます。 .B ci や .B co のコピーに setuid が設定されていなければ、 実ユーザと実効ユーザは同一です。 次節で説明するように、 もし実効ユーザが全 \*r ファイルとそれを含むディレクトリを所有し、 実効ユーザのみが \*r ディレクトリに書き込めるように設定できるなら、 \*r ファイルのセキュリティを強化することが可能です。 .PP ユーザは \*r ファイルを含むディレクトリの許可属性を変更することで、 \*r ファイルに対するアクセスを制限できます; そのディレクトリに書き込み権のあるユーザだけが、 \*r ファイルを変更する \*r コマンドを使用することができます。 たとえば、ユーザが複数のグループに属することが出来る計算機では、 \*r ディレクトリをあるグループのみが書き込み権を持つように設定します。 これは、略式のプロジェクトでは十分ですが、 グループに所属するユーザが自由に \*r ファイルを変更することができ、 \*r ファイルすべてを削除することもできます。 そのため、正式なプロジェクトでは、 \*r ファイルを自由に操作きる \*r 管理者と、 新たなリビジョンをチェックインすること以外の操作はできない他のユーザとを、 区別することがあります。 .SH SETUID の使用 \*r 管理者以外のユーザがリビジョンを削除できないようにするには、 以下のように setuid 特権を使用することができます。 .nr n \w'\(bu'+2n-1/1n .ds n \nn .if \n(.g .if r an-tag-sep .ds n \w'\(bu'u+\n[an-tag-sep]u .IP \(bu \*n その計算機で \*r にて setuid が使用できるか確認します。 疑問があるときは、信頼できる専門家に意見を聞いてください。 最も良いのは、 .B seteuid() システムコールが Posix 1003.1a Draft 5 に 記述されているように動作することです。 なぜなら、実ユーザが .BR root であっても、\*r は実ユーザと実効ユーザを簡単に切替えることができるからです。 その次に良いのは、 .B setuid() システムコールが saved setuid (Posix 1003.1-1990の {\s-1_POSIX_SAVED_IDS\s0} の動作) を サポートしている場合です; この場合、実ユーザもしくは実効ユーザが .BR root である時のみ失敗します。 \*r は setuid に失敗すると、ただちに終了します。 .IP \(bu \nn ユーザグループの \*r 管理者として、ユーザ .I A を選びます。 .I A だけが、\*r ファイルに対して .B rcs コマンドを実行することができます。 .I A は .B root や、特権を持ったユーザであってはいけません。 相互に異なるユーザグループには、異なる管理者を使用するべきです。 .IP \(bu \nn ユーザが実行するファイルのディレクトリに、パス名 .I B を選びます。 .IP \(bu \nn 以下のように、通常のインストールディレクトリ .I D から、 .B ci と .B co を .I B にコピーし、 .I A へ setuid します: .LP .RS .nf .ne 3 \f3mkdir\fP \f2B\fP \f3cp\fP \f2D\fP\^\f3/c[io]\fP \f2B\fP \f3chmod go\-w,u+s\fP \f2B\fP\f3/c[io]\fP .fi .RE .IP \(bu \nn 以下のように、各ユーザのパスに .I B を加えます: .LP .RS .nf .ne 2 \f3PATH=\fP\f2B\fP\f3:$PATH; export PATH\fP # ordinary shell \f3set path=(\fP\f2B\fP \f3$path)\fP # C shell .fi .RE .IP \(bu \nn 以下のように、 .I A だけが書き込み許可を持つ \*r ディレクトリ .I R を作成します: .LP .RS .nf .ne 2 \f3mkdir\fP \f2R\fP \f3chmod go\-w\fP \f2R\fP .fi .RE .IP \(bu \nn -特定のユザーだけに \*r ファイルの読み込みを許可したい場合、 +特定のユーザだけに \*r ファイルの読み込みを許可したい場合、 そのユーザをユーザグループ .IR G に入れて、さらに .I A が以下のように、\*r ディレクトリを保護します: .LP .RS .nf .ne 2 \f3chgrp\fP \f2G R\fP \f3chmod g\-w,o\-rwx\fP \f2R\fP .fi .RE .IP \(bu \nn (存在すれば) 古い \*r ファイルを .IR R にコピーし、 .I A が所有であることを保証します。 .IP \(bu \nn \*r ファイルのアクセスリストは、 リビジョンをチェックインおよびロックできるユーザを制限します。 デフォルトのアクセスリストは空で、 \*r ファイルを読むことのできる全てのユーザに、登録の権限を与えます。 チェックインを制限したい場合は、 .I A がそのファイルに対して .B "rcs\ \-a" を実行します; .BR rcs (1) を参照してください。 特に .BI "rcs\ \-e\ \-a" A は、 .IR A だけにアクセスを制限します。 .IP \(bu \nn 初めてチェックインを行う前に、 .I A は .B "rcs\ \-i" によって新しい \*r ファイルを初期化します。 チェックインを制限したい場合、 .B \-a オプションを付け加えます。 .IP \(bu \nn setuid 特権は、 .BR ci , .BR co , .BR rcsclean のみに与えます; .B rcs や他のコマンドに、setuid 特権を与えてはなりません。 .IP \(bu \nn \*r コマンドに対して、他の setuid コマンドを実行しないでください。 setuid はあなたが考えるより扱いにくいものです。 .SH 環境変数 .TP .B \s-1RCSINIT\s0 本変数に空白で区切ったオプションを設定することで、 コマンドライン引数に先立って処理されます。 空白はバックスラッシュによってエスケープすることができます。 .B \s-1RCSINIT\s0 はほとんどの \*r コマンドで参照されます。特に .BR \-q , .BR \-V , .BR \-x , .B \-z オプションを指定しておくと便利です。 .TP .B \s-1TMPDIR\s0 一時ディレクトリ名を指定します。 設定されていない場合は、環境変数 .B \s-1TMP\s0 と .B \s-1TEMP\s0 とを調べ、始めに見つかった値を用います; どれも設定されていない場合は、 計算機依存のデフォルトのディレクトリ (たいていは .B /tmp ) を使用します。 .SH 診断 各リビジョンに対して、 .I ci は \*r ファイル名、ワークファイル名、追加するリビジョン番号、直前の リビジョン番号を表示します。全ての処理が成功した場合のみ、 終了ステータスが 0 になります。 .SH 作者 Author: Walter F. Tichy. .br Manual Page Revision: \*(Rv; Release Date: \*(Dt. .br Copyright \(co 1982, 1988, 1989 Walter F. Tichy. .br Copyright \(co 1990, 1991, 1992, 1993, 1994, 1995 by Paul Eggert. .SH 関連項目 co(1), ident(1), make(1), rcs(1), rcsclean(1), rcsdiff(1), rcsintro(1), rcsmerge(1), rlog(1), setuid(2), rcsfile(5) .br Walter F. Tichy, \*r\*-A System for Version Control, .I "Software\*-Practice & Experience" .BR 15 , 7 (July 1985), 637-654. .br diff --git a/ja_JP.eucJP/man/man1/cursor.1 b/ja_JP.eucJP/man/man1/cursor.1 index 5829a96724..19bce5c311 100644 --- a/ja_JP.eucJP/man/man1/cursor.1 +++ b/ja_JP.eucJP/man/man1/cursor.1 @@ -1,74 +1,74 @@ .\" Copyright (c) 1992,1993,1994 Hellmuth Michaelis .\" .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by Hellmuth Michaelis .\" 4. The name authors may not be used to endorse or promote products .\" derived from this software without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR .\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES .\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. .\" IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY DIRECT, INDIRECT, .\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT .\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, .\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY .\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" .\" @(#)cursor.1, 3.20, Last Edit-Date: [Mon Dec 19 20:30:40 1994] .\" jpman %Id: cursor.1,v 1.3 1997/07/22 17:10:13 horikawa Stab % .\" .Dd December 19, 1994 .Dt CURSOR 1 .Sh 名称 .Nm cursor -.Nd pcvt VT220 ビデオドライバでカーソルの形状を設定する。 +.Nd pcvt VT220 ビデオドライバでカーソルの形状を設定する .Sh 書式 .Nm cursor .Op Fl d Ar device .Op Fl n Ar screenno .Op Fl s Ar lineno .Op Fl e Ar lineno .Sh 解説 .Nm cursor ユーティリティは、上述のドライバの仮想画面でカーソル形状を設定します。 .Pp オプションは以下の通りです。 .Bl -tag -width Ds .It Fl d カーソルの形状を設定するデバイスを指定します。 .It Fl n 次に続く変数で、仮想画面の番号を設定します。変数が設定されていない場合、 現在の仮想端末か、 -d 変数での画面が仮定されます。 .It Fl s -カーソルが始まる(上の)スキャンラインを設定します。 +カーソルが始まる (上の) スキャンラインを設定します。 .It Fl e -カーソルが終る(下の)スキャンラインを設定します。 +カーソルが終る (下の) スキャンラインを設定します。 .El .Pp 変数は現在使用中の文字フォントの大きさに基づいて調整される必要があることに 注意してください。 現在 8, 14, 16 のスキャンラインの EGA, VGA ボードだけが サポートされています。 .Sh 使用例 コマンド .Dq Li cursor -s3 -e10 は、14 ライン VGA 画面の現在の仮想画面で、カーソルを四角形にします。 .Sh バグ 知られているバグはありません。 .Sh 関連項目 .Xr loadfont 1 , .Xr scon 1 , .Xr pcvt 4 diff --git a/ja_JP.eucJP/man/man1/cvs.1 b/ja_JP.eucJP/man/man1/cvs.1 index c7be114e51..fac3218676 100644 --- a/ja_JP.eucJP/man/man1/cvs.1 +++ b/ja_JP.eucJP/man/man1/cvs.1 @@ -1,2107 +1,2107 @@ .de Id .\" jpman %Id: cvs.1,v 1.4 1997/09/23 13:05:40 jsakai Stab % .ds Rv \\$3 .ds Dt \\$4 .. .TH CVS 1 "\*(Dt" .\" Full space in nroff; half space in troff .de SP .if n .sp .if t .sp .5 .. .\" quoted command .de ` .RB ` "\|\\$1\|" '\\$2 .. .SH "名称" -cvs \- コンカレント・バージョン・システム +cvs \- コンカレントバージョンシステム .SH "注記" このマニュアルページは .B cvs の機能のまとめですが、より詳細な文書に関しては (このマニュアルページの関連項目の節に記述してあるように) Cederqvist 著のマニュアルを参照して下さい。 .SH "書式" .TP \fBcvs\fP [ \fIcvs_options\fP ] .I cvs_command [ .I command_options ] [ .I command_args ] .SH "解説" .IX "revision control system" "\fLcvs\fR" .IX cvs "" "\fLcvs\fP \- concurrent versions system" .IX "concurrent versions system \- \fLcvs\fP" .IX "release control system" "cvs command" "" "\fLcvs\fP \- concurrent versions system" .IX "source control system" "cvs command" "" "\fLcvs\fP \- concurrent versions system" .IX revisions "cvs command" "" "\fLcvs\fP \- source control" CVS はバージョン制御システムであり、RCS や SCCS のように、 ファイル (通常はソースコード) の古いバージョンの保持と 誰が何時何故変更を施したかなどの記録の保持を可能にします。 同様のシステムとは異なり、 CVS は一時に 1 ファイルや 1 ディレクトリのみを操作対象とするのではなく、 バージョン管理されたファイルを持つディレクトリ集合からなる階層を 操作対象とします。 CVS は、リリース管理を助け、 また複数の作者による並行的なソースファイル編集を助けます。 CVS は、 様々な操作を有効にしたり記録したり制御したりするためにトリガを使用可能であり、 広域ネットワークでうまく動作します。 .SP .B cvs -はマスターソースの単一のコピーを保持します。 +はマスタソースの単一のコピーを保持します。 このコピーはソースの``リポジトリ''と呼ばれます。 これは、以前の ソフトウェアリリースをいつでもシンボリックなリビジョンタグか、 または過去の日付のいずれかに基づいて取り出せるようにするための 全ての情報を含みます。 .SH "不可欠なコマンド" .B cvs はバラエティに富んだコマンドを提供します (書式説明における \fIcvs_command\fP)。 また分散環境での多様なソース管理要求を満たすために、 これらのコマンドの多くにはいくつものオプションが用意されています。 しかしながら、 .BR cvs で便利に仕事をするためにそれぞれの細部に渡ってマスタする 必要はありません。 実際、ソースリポジトリを使う (そしてそれに貢献する) には 5 つの コマンドで充分です。 .TP \fBcvs checkout\fP \fImodules\fP\|.\|.\|. 大部分の \fBcvs\fP での作業のために必要な準備: \fImodules\fP (名前をつけたソースの集合。 ここにはソースリポジトリへの相対パスを 使うこともできます) のソースの私的なコピーを作成します。 他人の作業に邪魔されることなく このコピーで作業することができます。 少なくとも 1 レベルのサブディレクトリが必ず作成されます。 .TP .B cvs update 他の開発者がリポジトリのソースに行った変更を あなたのコピーに 取り込みたいと思ったときに、あなたの私的なソースのディレクトリの \fI中で\fP このコマンドを実行して下さい。 .TP \fBcvs add\fP \fIfile\fP\|.\|.\|. あなたの作業ディレクトリの \fBcvs\fP のレコードに新しいファイルを 載せるには、このコマンドを使います。そのファイルは次にあなたが .` "cvs commit" を実行した時にリポジトリに追加されます。 注意: 新しいソースをソースリポジトリに登録するには .` "cvs import" コマンドを使って下さい。 .` "cvs add" はすでにチェックアウトされているモジュールに新しいファイルを 追加するときにのみ使います。 .TP \fBcvs remove\fP \fIfile\fP\|.\|.\|. (指定するファイルを消した後に) リポジトリからファイルを 消したいことを宣言する場合に、このコマンドを使います。 .` "cvs commit" を実行するまで削除は他へは影響しません。 .TP \fBcvs commit\fP \fIfile\fP\|.\|.\|. あなたの変更をソースリポジトリに取り込むことで、他の開発者へ 変更結果を ``公開'' したいときに、このコマンドを使います。 .SH "オプション" .B cvs のコマンドラインには .IR cvs_options を含めることができ、 これは .B cvs プログラム全体に適用されます。 ひとつの .IR cvs_command がソースリポジトリへの特定の動作を 指定します。 そして .I cvs_command の動作を完全に指定するために .I command_options と .I command_arguments とを含めることができます。 .SP .I 警告: .IR cvs_command とオプションの相対的な位置関係に正確さを 期さなければなりません。 なぜなら同じオプションが .I cvs_options の位置 ( .B cvs コマンドの左側) と .I command_options の位置 ( .B cvs コマンドの右側) のいずれに置かれるかで異なる意味を持つ可能性が あるためです。 .SP .IR cvs_command を省略できる状況が 2 つだけあります: .` "cvs \-H" または .` "cvs --help" は利用可能なコマンドの一覧を引き出します、そして .` "cvs \-v" または .` "cvs --version" は \fBcvs\fP それ自身のバージョン情報を表示します。 .SP .SH "CVS OPTIONS" リリース 1.6 現在、 .B cvs は、短いオプションと共に .SM GNU スタイルの長いオプションもサポートします。 -現在はまだ 2、3の長いオプションしかサポートされておらず、 +現在はまだ 2, 3 の長いオプションしかサポートされておらず、 それらは同じ意味を持つ短いオプションの後ろにかぎ括弧で囲んで 示されています。 .SP 以下のオプションは .B cvs プログラムの全体的な制御に使います: .TP .B \-H [ --help ] 指定された .I cvs_command の用法を表示します (が、コマンドの実行は行いません)。コマンド名を 指定しないと .` "cvs \-H" は利用可能な全コマンドの要約を表示します。 .TP .B \-Q はコマンドを .I 真に -寡黙にします。 コマンドは深刻な問題についてのみ出力を行います。 +寡黙にします。コマンドは深刻な問題についてのみ出力を行います。 .TP .B \-q -はコマンドをいくぶん静かにします。 サブディレクトリを再帰的に +はコマンドをいくぶん静かにします。サブディレクトリを再帰的に 移動する際の報告のような通知的なメッセージが抑制されます。 .TP \fB\-b\fP \fIbindir\fP .SM RCS プログラムが置かれているディレクトリとして .I bindir を使います (CVS 1.9 およびそれ以前)。 環境変数 .SM RCSBIN の設定より優先されます。 これは絶対パス名で指定しなければなりません。 .TP \fB\-d\fP \fICVS_root_directory\fP マスタとなる ソースリポジトリのルートディレクトリへのパス名として .I CVS_root_directory を使います。 環境変数 .SM CVSROOT の設定より優先されます。 これは絶対パスで指定しなければなりません。 .TP \fB\-e\fP \fIeditor\fP ログ情報の入力においてエディタとして .I editor を使います。 環境変数 .SM CVSEDITOR と .SM EDITOR の設定より優先されます。 .TP .B \-f .B cvs スタートアップファイル (\fI~/.cvsrc\fP) を読み込みません。 .TP .B \-l コマンドヒストリに .I cvs_command のログを取りません (しかし実行はします)。コマンドヒストリに関する 情報については .B history コマンドの説明を参照して下さい。 .TP .B \-n いかなるファイルも変更しません。 .IR cvs_command を実行しようとしますが、 -経過報告のみを行います。 ファイルへの削除、更新やマージのいずれも +経過報告のみを行います。ファイルへの削除、更新やマージのいずれも 行いませんし、新しいファイルも作成しません。 .TP .B \-t プログラムの実行をトレースします。 .B cvs の動作のステップを示すメッセージを表示します。 不慣れなコマンドの影響の可能性を調べるのに .B \-n との組み合わせで特に有用です。 .TP .B \-r 新しい作業ファイルを読み出し専用にします。 環境変数 .SM CVSREAD がセットされている場合と同じ効果を持ちます。 .TP .B \-R 読み出し専用リポジトリモードをオンにします。 これにより、 anoncvs サーバ上などの読み出し専用リポジトリからのチェックアウトや、 CDROM 上のリポジトリからのチェックアウトが可能になります。 また、 .B \-R を使用すると NFS を介したチェックアウトが高速になります。 .TP .B \-v [ --version ] .BR cvs のバージョンと著作権情報を表示します。 .TP .B \-w 新しい作業ファイルを読み書き可能にします (デフォルトです)。 環境変数 .SM CVSREAD がセットされていても無視します。 .TP .B \-g 強制的に、グループ書き込み権限を作業ファイルに付加します。 典型的には、 単一のチェックアウトされたソースツリーを複数ユーザで共有する場合に このオプションを使用し、 各ユーザがより安全な umask でシェルを使用できるようにします。 この機能を使用するためには、 チェックアウトするソースツリーを格納するディレクトリを作成し、 本ディレクトリのグループをプライベートグループに設定し、 本ディレクトリ下のファイルがディレクトリのグループ ID を継承するようにします。 FreeBSD では自動的に、ファイルはディレクトリのグループ ID を継承します。 SysV では、典型的には SGID ビットをディレクトリに設定する必要があります。 チェックアウトしたツリーを共有するユーザは、 このグループに含まれる必要があります。 単一のチェックアウトされたソースツリーを共有するということは、 共通の CVS リポジトリに複数ユーザのアクセスを許すこととまったく異なることに 注意してください。 共通の CVS リポジトリへのアクセスは、 共有グループ書き込み権限によって既に実現されており、 本オプションを必要としません。 本オプションを透過的に使用するためには、 単に 'cvs -g' という行を ~/.cvsrc ファイルに置くだけで良いです。 プライベートグループもしくはプライベートモード 0700 のディレクトリに 全ソースをチェックアウトしたものをファイヤウォールで防御しているのでない限り、 本オプションの使用は勧められません。 .TP .B \-x クライアントとサーバの間の通信を全て暗号化します。 現在では、Kerberos コネクション使用時のみ使用可能です。 .TP \fB\-z\fP \fIcompression\-level\fP ファイルをネットワーク経由でやりとりする際、 圧縮レベル \fIcompression\-level\fP で .B gzip を使い、やりとりするデータの圧縮と伸長を行います。リンクの両端で .SM GNU .B gzip プログラムがその時点でのサーチパス中に存在する必要があります。 .SH "使用法" .` "cvs \-H" で全般のヘルプを要求する場合を除き、 行いたい特定のリリース制御機能を選択するために、 .B cvs に対して一つの .I cvs_command を指定しなければなりません。 各 .B cvs コマンドはそれ自身のオプションと引数の集まりを受け付けます。 しかしながら、多くのオプションが複数のコマンドに渡って利用可能です。 .B \-H オプションをコマンドと共に指定することで、 各コマンドの使用法のまとめを表示することができます。 .SH "CVS のスタートアップファイル" 通常、CVS は起動時にユーザのホームディレクトリから .I .cvsrc というファイルを読み込みます。この起動時の手続きは .B \-f フラグで止めることができます。 .SP .I .cvsrc ファイルには CVS コマンドに引数リストを付けて、1 行に 1 つの コマンドを並べます。例えば \fI.cvsrc\fP に以下のように書くと: .SP diff \-c .SP .` "cvs diff" コマンドには常にコマンドラインで指定されたオプションに加えて \-c オプションが渡されるという意味になります (この場合 .` "cvs diff" を実行すると 全てにおいて context diff 形式が生成されるという 効果を持ちます)。 .SH "CVS COMMAND のまとめ" 以下は全 .B cvs コマンドの解説を要約したものです: .TP .B add 新しいファイルまたはディレクトリをリポジトリに追加します。 ファイルについては追加を同ファイルに対する .` "cvs commit" が行われるまで待ちます。 以前に .` "cvs checkout" を行うことで作成されたソースの中からのみ実行可能です。 新しいソース階層の全体を .B cvs の制御下に置くには .` "cvs import" を使って下さい。 (リポジトリを直接に変更するものではありません。 作業ディレクトリを変更します。) .TP .B admin ソースリポジトリに対して 制御コマンドを実行します。(リポジトリを直接に変更します。 作業ディレクトリを使用しますが変更は行いません。) .TP .B checkout 編集作業のためのソースファイルの作業ディレクトリを作成します。 (作業ディレクトリを生成または変更します。) .TP .B commit 作業ディレクトリでの変更、追加、削除部分をソースリポジトリに 反映します。(リポジトリを変更します。) .TP .B diff 作業ディレクトリのファイルとソースリポジトリ、または ソースリポジトリ中の 2 つのリビジョン間の差分を表示します。 (リポジトリ、作業ディレクトリのいずれも変更しません。) .TP .B export サイトからの出荷のための一揃いのソースファイルのコピーを用意します。 .` "cvs checkout" と違い .B cvs 管理のためのディレクトリが作られず (そしてそのため .` "cvs export" で作成されたディクトリから .` "cvs commit" を行うことはできません)、 シンボリックタグが指定されなければなりません (リポジトリを変更しません。 作業ディレクトリに似たディレクトリを 作成します)。 .TP .B history ソースリポジトリの特定のファイルまたはディレクトリにあなたや 他の人が実行した .B cvs コマンドを表示します。(リポジトリも作業ディレクトリも変更しません。) ヒストリログは .` "$CVSROOT/CVSROOT/history" ファイルが作成されることで有効になった場合にのみ記録されます。 .BR cvs ( 5 ) を参照して下さい。 .TP .B import -外部で行われた更新内容を ``ベンダ・ブランチ'' としてソースリポジトリに +外部で行われた更新内容を ``ベンダブランチ'' としてソースリポジトリに 取り込みます。(リポジトリを変更します。) .TP .B log ログ情報を表示します。 (リポジトリも作業ディレクトリも変更しません。) .TP .B rdiff -リポジトリの中の 2つのリリースの間の差分の集合をパッチファイルとして +リポジトリの中の 2 つのリリースの間の差分の集合をパッチファイルとして 用意します。(リポジトリも作業ディレクトリも変更しません。) .TP .B release .` "cvs checkout" をキャンセルし、 全ての変更を捨て去ります。 (作業ディレクトリを削除できます。 リポジトリは変更しません。) .TP .B remove ソースリポジトリからファイルを削除します、そのファイルに .` "cvs commit" が実行されるまで保留されます。(直接リポジトリには影響しません。 -作業ディレクトリを変更します.) +作業ディレクトリを変更します。) .TP .B rtag ソースリポジトリの特定のリビジョンのファイルに明示的に シンボリックタグを指定します。 .` "cvs tag" も参照して下さい。 -(リポジトリを直接変更します。 作業ディレクトリは必要なく また -変更もしません.) +(リポジトリを直接変更します。作業ディレクトリは必要なくまた +変更もしません。) .TP .B status 現在のファイルの状態を表示します: 最新バージョン、作業ディレクトリの ファイルのバージョン、作業バージョンが編集されたかどうか、オプションで .SM RCS ファイル中のシンボリックタグ。(リポジトリ、作業ディレクトリとも 変更しません。) .TP .B tag リポジトリ中のファイルにシンボリックタグを指定します。 デフォルトでは、作業ディレクトリと最後に同期を取ったリビジョンに タグをつけます。 -(直接リポジトリを変更します。 作業ディレクトリを使いますが +(直接リポジトリを変更します。作業ディレクトリを使いますが 変更はしません。) .TP .B update リポジトリから変更を取り出して作業ディレクトリを最新状態にします。 可能であればマージが自動で行われます。 変更点が衝突しているために手動で解決しなければならない場合は、 警告が表示されます。(作業ディレクトリを変更します。 リポジトリは変更しません。) .SH "共通の COMMAND OPTIONS" この節では 複数の .B cvs コマンドで使用できる .I command_options について説明します。必ずしも全てのコマンドがこれら全てのオプションを サポートしているわけではありません。 コマンドの各オプションは、それが -意味を為すコマンドでのみサポートされます。しかしながら、 +意味を成すコマンドでのみサポートされます。しかしながら、 コマンドがそれらのオプションのひとつを持つとき、 他のコマンドでもそのオプションが同じ意味を持つと考えて差し支えありません。 (個々のコマンドと共に列挙してある別のオプションは ある .B cvs コマンドと別のコマンドで異なる意味を持つかもしれません。) .I "注意:" .B history コマンドは例外です。 このコマンドは、これら標準のオプションとも衝突するたくさんの オプションをサポートしています。 .TP \fB\-D\fP \fIdate_spec\fP \fIdate_spec\fP 以前のものの中で最も最近のリビジョンを使います (単独の 引数で、日時の表記は過去の日時を指定します)。 多種多様な日時のフォーマットが、 特に ISO ("1972-09-24 20:05") または Internet ("24 Sep 1972 20:05") が サポートされます。 特定のタイムゾーンが指定されていなければ、\fIdate_spec\fP は ローカルタイムゾーンで解釈されます。 ソースファイルの個人的なコピーを作るときに使うと、指定は ``sticky'' と なります。 つまり、\fB\-D\fP を使って作業ファイルを取り出すと、 \fBcvs\fP は指定された日時を記録します。 これは同じディレクトリでのその後の update で同じ日時を使うように するためです (これを明示的に無効にするよう指定していない場合に限ります。 \fBupdate\fP コマンドの説明を参照して下さい)。 .B \-D は .BR checkout ", " diff ", " history ", " export ", " .BR rdiff ", " rtag ", " .B update コマンドで有効です。 有効な日時指定には以下のようなものがあります: .in +1i .ft B .nf 1 month ago 2 hours ago 400000 seconds ago last year last Monday yesterday a fortnight ago 3/31/92 10:00:07 PST January 23, 1987 10:05pm 22:00 GMT .fi .ft P .in -1i .TP .B \-f \fBcvs\fP コマンドに特定の日時かタグを指定した場合、 通常は指定したタグを含まない (または指定した日時に存在しなかった) ファイルを無視します。一致するタグまたは日時が存在しなくても ファイルを取り出したいときは \fB\-f\fP オプションを使います。 (その場合、最も新しいバージョンが使われます。) .B \-f は以下のコマンドで使用できます: .BR checkout ", " export ", " .BR rdiff ", " rtag ", " update .TP .B \-H ヘルプ; そのコマンドで使用可能なオプションの説明を表示します。 これは .I 全ての .B cvs コマンドでサポートされる唯一のオプションです。 .TP \fB\-k\fP \fIkflag\fP デフォルトの キーワード処理を変更します。 \fB\-k\fP オプションは .BR add ", " checkout ", " diff ", " export ", " .BR rdiff ", " update コマンドで使用できます。 ソースファイルの個人的なコピーを作成するときに使うと \fIkflag\fP の指定は ``sticky'' になります。 つまり、このオプションを \fBcheckout\fP か \fBupdate\fP コマンドで指定すると、 \fBcvs\fP は指定した \fIkflag\fP をファイルに関連付け、 他のものを指定するまで、以降の \fBupdate\fP コマンドでそれを使い続けます。 .SP より有用な \fIkflag\fP としては \-ko と \-kb (バイナリファイル用) と \-kv があります。\-kv は .B export の際、どこか別のサイトで後に .B import されてもキーワード情報が残るようにしたい場合に有用です。 .TP .B \-l ローカル; サブディレクトリを再帰的に処理するのではなく、 現ディレクトリでのみ実行します。 以下のコマンドで使用できます: .BR checkout ", " commit ", " diff ", " .BR export ", " remove ", " rdiff ", " rtag ", " .BR status ", " tag ", " update .I 注意: これは .B cvs コマンドの .I 左 に指定することのできる、全体に作用する .` "cvs \-l" オプションとは違います! .TP .B \-n .BR checkout / commit / tag / update のいずれのプログラムも .I 実行しません。 (プログラムはそれぞれの動作中にモジュールデータベースで 実行することを指定される可能性があり、このオプションはこれを バイパスします。) .BR checkout ", " commit ", " export ", " .B rtag コマンドで利用できます。 .I 警告: これは .B cvs コマンドの .I 左側 に指定できる、全体に作用する .` "cvs \-n" オプションと同じではありません。 .TP .B \-P .BR checkout " か " update によって更新されたことで空になった余分なディレクトリを 取り除きます (すなわち削除します)。 通常は、空のディレクトリ (リビジョン管理されたファイルを 含まないもの) は残されます。 .B \-P を指定すると、チェックアウトしたソースからそういったディレクトリを 黙って削除します。 これはリポジトリからはディレクトリを削除しません。あなたが チェックアウトしたコピーから削除するだけです。 このオプションは .B \-r か .B \-D オプションが .BR checkout " と " export で指定された場合に暗黙のうちに 指定されることに注意して下さい。 .TP .B \-p リポジトリから取り出されたファイルを、カレントディレクトリに 書き込むのではなく、標準出力へパイプします。 .BR checkout " と " update コマンドで使用できます。 .TP \fB\-r\fP \fItag\fP デフォルトの ``head'' リビジョンの代わりに引数 .I tag で指定されたリビジョンを使います。 \fBtag\fP と \fBrtag\fP コマンドで -付けられた任意のタグと共に、常に 2つの特別なタグが使用できます: +付けられた任意のタグと共に、常に 2 つの特別なタグが使用できます: .` "HEAD" はリポジトリ中で最も新しい有効なバージョンを指し、 そして .` "BASE" はカレントの作業ディレクトリに最後にチェックアウトした リビジョンを指します。 .SP このオプションを .` "cvs checkout" か .` "cvs update" でファイルのコピーを作成するときに使うと、 \fItag\fP の指定は ``sticky'' です: \fBcvs\fP は \fItag\fP を記憶して以降の \fBupdate\fP コマンドでも、他のものを 指定するまで、それを使い続けます。 .I tag としては シンボリックまたは番号によるものが使用できます。 .SM RCS ファイルが指定されたタグを含んでいないときに警告メッセージを抑止するため 全体に作用する .B \-q オプションをコマンドオプション .B \-r と一緒に指定すると便利な場合が多くあります。 .B \-r は .BR checkout ", " commit ", " diff ", " .BR history ", " export ", " .BR rdiff ", " rtag ", " update コマンドで使用できます。 .I 警告: これは .B cvs コマンドの .I 左側 に指定し、全体に作用する .` "cvs \-r" オプションと同じではありません。 .SH "CVS COMMANDS" 以下が (最終的な) 全 .B cvs コマンドの詳細とそれぞれが受け付けるオプションです。 各コマンドの最初のサマリ行の説明は 3 種類の事柄をまとめています: .TP 1i \ \ \ \ コマンドのオプションと引数 -特別なオプションが以下で説明されます。 共通のコマンドオプションは +特別なオプションが以下で説明されます。共通のコマンドオプションは サマリ行にしか現れないかもしれません。 .TP 1i \ \ \ \ 作業ディレクトリかリポジトリか? いくつかの \fBcvs\fP コマンドは実行に作業ディレクトリが必要です。 いくつかはリポジトリが必要です。同様に、いくつかのコマンドは リポジトリを \fI変更し\fP 、いくつかは作業ディレクトリを変更し、 いくつかは何の変更も行いません。 .TP 1i \ \ \ \ 同義語 多くのコマンドには同義語があります。 同義語は正式な名前よりも覚えやすい (あるいはタイプしやすい) と 感じることでしょう。 .PP .TP \fBadd\fP [\fB\-k\fP \fIkflag\fP] [\fB\-m '\fP\fImessage\fP\fB'\fP] \fIfiles.\|.\|.\fP .I 以下が必要: リポジトリ、作業ディレクトリ。 .br .I 以下を変更: 作業ディレクトリ。 .br .I 同義語: .B new .br .B add コマンドを使って ソースリポジトリに新しいファイルまたはディレクトリを作成します。 .B add で指定されるファイルまたはディレクトリは、すでに カレントディレクトリ ( .B checkout コマンドで作成されたディレクトリでなければなりません) に 存在しなければなりません。 新しいディレクトリ階層の全体をソースリポジトリに追加する (例えば、サードパーティのベンダから受け取ったファイル群のような) には、 代わりに .` "cvs import" コマンドを使います。 .SP .` "cvs add" の引数が直下のサブディレクトリを指しているなら、そのディレクトリが ソースリポジトリの現位置に作成され、必要な .B cvs 管理ファイルが作業ディレクトリに作成されます。 ディレクトリがすでにソースリポジトリに存在した場合でも、 .` "cvs add" はあなたのバージョンのディレクトリに管理ファイルを作成します。 これによって、あなたがソースを .B checkout した後に誰か他の人がディレクトリを作っていても .` "cvs add" でそのディレクトリをあなたの私的なソースに作成することが 可能になります。以下のようにすることができます: .SP .in +1i .ft B .nf example% mkdir new_directory example% cvs add new_directory example% cvs update new_directory .fi .ft P .in -1i .SP .` "cvs update" を使った別のアプローチもあります: .SP .in +1i .ft B .nf example% cvs update -d new_directory .fi .ft P .in -1i .SP (新しく \fIできた\fP ディレクトリをあなたの作業ディレクトリに 追加するには、おそらく .` "cvs checkout" か .` "cvs update -d" を使用する方が簡単でしょう。) .SP .` "cvs commit" で変更が恒久的なものとされるまで、追加されたファイルは ソースリポジトリには置かれません。 .` "cvs remove" コマンドで削除されたファイルに対して .` "cvs add" を行うと、間で .` "cvs commit" コマンドが実行されていなければファイルが復活します。 .SP 新しいファイルを .` "cvs commit" で恒久的なものにするときに、いつものように、ログメッセージを指定する 機会があります。もしファイルの .I 作成 と対応するもう一つのログメッセージを指定したいならば (例えば、ファイルの目的を説明するなど)、 .B add コマンドの .` "\-m \fImessage\fP" オプションで指定することができます。 .SP .` "-k kflag" オプションで このファイルがチェックアウトされるときの デフォルトを指定できます。 引数 .` "kflag" は .SM RCS ファイルに記録されて .` "cvs admin" で変更することができます。 展開された キーワードを持たないであろうバイナリをチェックインする場合には .` "-ko" を指定すると便利です。 .TP \fBadmin\fP [\fIrcs-options\fP] \fIfiles.\|.\|.\fP .I 以下が必要: リポジトリ、作業ディレクトリ。 .br .I 以下を変更: リポジトリ。 .br .I 同義語: .B rcs .br これは .BR rcs ( 1 ) に似た管理機構と対応する .B cvs のインタフェースです。 なんのフィルタや変換も行いません。 しかしながら、このコマンドは再帰的に働きます。よって使用には 特別な注意を払わなければいけません。 .TP \fBcheckout\fP [\fBoptions\fP] \fImodules\fP.\|.\|. .I 以下が必要: リポジトリ。 .br .I 以下を変更: 作業ディレクトリ。 .br .I 同義語: .BR co ", " get .br .IR modules で指定されたソースファイルのコピーを持つ 作業ディレクトリを作成します。他の大部分の .B cvs コマンドは作業ディレクトリに作用するものなので、これらを使う前に .` "cvs checkout" を実行しなくてはなりません。 .SP \fImodules\fP はいくつかのソースディレクトリとファイルを 集めたものに対するシンボル名 (それ自体は .` "modules" というモジュールとしてソースリポジトリに定義されています。 .BR cvs ( 5 ) 参照) か、あるいはリポジトリ中でのディレクトリまたはファイルへのパス名です。 .SP 指定した .I modules に応じて、 .B checkout は再帰的にディレクトリを作成して適切なソースファイルで満たします。 その後はいつでも、(他のソフトウェア開発者達がソースの彼らの分のコピーを 編集しているかどうかを気にすることなく) これらのソースファイルを編集したり、 他の人によってソースリポジトリに行われた新しい変更を取り込むために これらを更新 (update) したり、 あなたの作業を恒久的な変更としてリポジトリに 登録 (commit) することができます。 .SP .B checkout はディレクトリの作成に使われることに注意して下さい。 作成されるディレクトリのトップレベルは常に .B checkout が起動されたディレクトリに追加され、そして通常、指定された .IR module と同じ名前を持ちます。 .I module がエイリアスの場合は、作成されたサブディレクトリは違う名前を持つかも しれませんが、それがサブディレクトリであること、そして .B checkout はファイルが私的な作業領域に取り出される際に各ファイルへの 相対パスを表示すること (全体に作用する .B \-Q オプションを指定していなければ) は当てにできます。 .SP すでに以前の .B checkout で作成されているディレクトリで .` "cvs checkout" を実行することも許されています。これは 以下で説明する .B update コマンドに .B \-d オプションを指定するのと同じ効果を持ちます。 .SP .` "cvs checkout" で使える .I options は以下の標準のコマンドオプションです。 .BR \-P ", " \-f ", " .BI \-k " kflag" \&, .BR \-l ", " \-n ", " \-p ", " .BR \-r .IR tag ", " .BI \-D " date"\c .SP これらに加えて、以下の特別のコマンドオプションを .BR checkout で使うことができます: .SP .B \-A オプションで sticky なタグ、日付または .B \-k オプションをリセットできます。(作業ファイルを \fB\-r\fP, \fB\-D\fP, \fB\-k\fP オプションのいずれかを使って取り出すと、 \fBcvs\fP は対応するタグ、日付、\fIkflag\fP を記録して以降の 更新 (update) でそれを使い続けます。 \fB\-A\fP オプションを使って \fBcvs\fP に それらの指定を忘れさせ、ファイルの ``head'' バージョンを取り出します)。 .SP .BI \-j " branch" オプションはベースとなったリビジョンと、そこから変更された結果の リビジョンとの差分をマージします (例えば、もしタグがブランチを 指しているときは、 .B cvs は、そのブランチで行われた全ての変更を作業ファイルにマージします)。 .SP 2 つの \fB-j\fP オプションを指定すると、 .B cvs は 2 つの各々のリビジョン間での変更をマージします。 これは特定の差分を作業ファイルから ``削除'' するために使うことが できます。 .SP 加えて、各 \fB-j\fP オプションをブランチで使う場合に必要であれば 日時指定を加えることができ、選択するリビジョンを指定した日時以内に 制限できます。 日時を加える場合はタグにコロン (:) を付けて指定します。 例としては .` "cvs import" でローカルな変更と衝突する部分のあるソースを import するときに 実行するように指示されるコマンドがあります: .SP .in +1i .ft B .nf example% cvs checkout -jTAG:yesterday -jTAG module .fi .ft P .in -1i .SP .B \-N オプションと .` "\-d \fIdir\fP" を指定することで作業ディレクトリでモジュールのパスが短縮されるのを 防げます。(通常、明示的に対象ディレクトリを指定すると \fBcvs\fP は なるべくパスが短くなるようにします。) .SP .B \-c オプションで、作業ディレクトリのファイルやディレクトリに作成や変更を 行う代わりに、モジュールファイルをソートしたものを標準出力にコピー します。 .SP .BI \-d " dir" オプションで、モジュール名ではなく、 .I dir で指定した名前のディレクトリを作業ファイルのために作成します。 \fB\-N\fP を一緒に指定しない場合は、\fIdir\fP の下に作成されるパスは 可能な限り短くなります。 .SP .B \-s オプションを使って .B \-s オプションでモジュールファイルに格納されたモジュール単位の ステータス情報を表示します。 .TP \fBcommit\fP [\fB\-lnR\fP] [\fB\-m\fP '\fIlog_message\fP' | \fB\-f\fP \fIfile\fP] [\fB\-r\fP \fIrevision\fP] [\fIfiles.\|.\|.\fP] .I 以下が必要: 作業ディレクトリ、リポジトリ。 .br .I 以下を変更: リポジトリ。 .br .I 同義語: .B ci .br 作業ディレクトリでの変更を共有のソースリポジトリに組み込むにときには .` "cvs commit" を使います。 .SP コミットする対象となる \fIfiles\fP を指定しない場合、現在の 作業ディレクトリ中の全ファイルが調べられます。 .B commit はあなたが本当に変更したファイルだけを慎重にリポジトリで変更します。 デフォルトでは (または明示的に .B \-R オプションを指定した場合)、サブディレクトリのファイルも 調べられ、もし変更されていればコミットされます。 .B \-l オプションで現ディレクトリのみ .B コミット するように制限できます。 変更されていなくても強制的にファイルをコミットしたい場合があるかも しれません。 これは .B \-f フラグで可能で、これは同時に再帰も抑止します (もちろん .B \-R で再帰するようにできます)。 .SP .B commit は選択されたファイルがソースリポジトリの現リビジョンに対して 最新であることを確認します。 もし選択されたファイルのいずれかが まず .` "cvs update" で最新にされなければならないなら、そこで通知してコミットせずに終ります。 .B commit は .B update コマンドを呼び出しません。update すべきときであるかどうかの判断は ユーザにゆだねられます。 .SP 全てがうまくいくと、ログメッセージを入力するためにエディタが 呼び出されます。ログメッセージは一つかそれ以上のログを取る プログラムに書き込まれて ソースリポジトリのファイルに置かれます。 代わりにコマンドラインで .B \-m オプションと共にログメッセージを指定し、 エディタの呼び出しを抑制することができます。また .B \-F オプションで引数の \fIfile\fP にログメッセージが含まれていることを 指示することもできます。 .SP .B \-r オプションで特定のシンボリックまたは番号で指定される リビジョンとしてコミットできます。 例えば、全ファイルを リビジョン ``3.0'' に上げる (変更されていないものも含めて) には、以下のようにします: .SP .in +1i .ft B .nf example% cvs commit -r3.0 .fi .ft P .in -1i .SP .B cvs はメインの幹上のリビジョン (ドットが 1 つのリビジョン) へのコミットのみ 許します。 しかしながら、 .B \-r オプションでブランチ上のリビジョン (偶数個のドットをもつリビジョン) へ コミットすることもできます。 ブランチとなるリビジョンを作成するには、通常 .BR rtag " または " tag コマンドの .B \-b オプションを使います。 その後、 .BR checkout " または " update のいずれかでソースのベースを新しく作成したブランチにすることができます。 それ以降、それらの作業ファイルで行われた全ての .B commit される変更点は自動的にブランチのリビジョンに追加され、 それによって主たる開発ラインが混乱させられることはありません。 例をあげると、製品のバージョン 1.2 へのパッチを作成しなければ ならなくなったとすると、バージョン 2.0 がすでに開発中だったとしても、 以下のようにできます: .SP .in +1i .ft B .nf example% cvs rtag -b -rFCS1_2 FCS1_2_Patch product_module example% cvs checkout -rFCS1_2_Patch product_module example% cd product_module [[ hack away ]] example% cvs commit .fi .ft P .in -1i .SP 極めて実験的なソフトウェアを開発しているとして、 前の週にチェックアウトしたなんらかのリビジョンをベースにしていると します。 あなたのグループの別の人がこのソフトウェアであなたと一緒に作業したいが、 主たる開発ラインの邪魔はしたくないと考えたなら、あなたはあなたの 変更点を新しいブランチにコミットすると良いでしょう。 すると別の人はあなたの実験的な変更をチェックアウトして .B cvs の衝突解決機能を最大限に利用することができます。 シナリオは以下のようになります: .SP .in +1i .ft B .nf example% cvs tag -b EXPR1 example% cvs update -rEXPR1 [[ hack away ]] example% cvs commit .fi .ft P .in -1i .SP 別の人は単純に .` "cvs checkout -rEXPR1 whatever_module" とすれば実験的な変更を採り入れてあなたと作業できるようになります。 .TP \fBdiff\fP [\fB\-kl\fP] [\fIrcsdiff_options\fP] [[\fB\-r\fP \fIrev1\fP | \fB\-D\fP \fIdate1\fP] [\fB\-r\fP \fIrev2\fP | \fB\-D\fP \fIdate2\fP]] [\fIfiles.\|.\|.\fP] .I 以下が必要: 作業ディレクトリ、リポジトリ。 .br .I 以下を変更: なにも変更しません。 .br 作業ディレクトリのファイルとソースリポジトリのリビジョンを .` "cvs diff" コマンドで比較できます。もし特定のリビジョンを指定しなければ、 ベースにしたリビジョンと比較されます。 標準の .B cvs コマンドのオプション .B \-r で比較の対象となるリビジョンを指定することもできます。 最後に、 .B \-r を 2 回 使うと、リポジトリの 2 つのリビジョン間の差分を取ることができます。 過去のリビジョンとの差分を取るために .B \-D オプションを指定することもできます。 .B \-r と .B \-D オプションは常に指定された中で 2 つまでを組み合わせられます。 .SP 他の使用可能なオプションについては .BR rcsdiff ( 1 ) を参照して下さい。 .SP ファイルを何も指定しないと、 .B diff は現ディレクトリ (そして、標準オプション .BR \-l を指定していなければ そのサブディレクトリ) の全てのファイルについて、 ソースリポジトリの対応するリビジョンと異なっているもの (つまり .I あなたが 変更したファイル) または指定されたリビジョンと 異なっているものについて、その差分を表示します .TP \fBexport\fP [\-\fBf\|lNnQq\fP] \fB\-r\fP \fIrev\fP\||\|\fB\-D\fP \fIdate\fP [\fB\-d\fP \fIdir\fP] [\fB\-k\fP \fIkflag\fP] \fImodule\fP.\|.\|. .I 以下が必要: リポジトリ。 .br .I 以下を変更: 現ディレクトリ。 .br このコマンドは .` "cvs checkout" の一種です。 \fBcvs\fP の管理ディレクトリを持たない \fImodule\fP のソースのコピーが必要なときに使います。 例えば、サイト外にソースを出す準備をするために .` "cvs export" を使うことができます。 このコマンドでは日付またはタグを指定することが \fI必要\fP です。 (\fB\-D\fP または \fB\-r\fP によって)。それによって出荷したソースを 確実に再構成できるようになります。 .SP 標準でないオプションは .` "\-d \fIdir\fP" (ソースをディレクトリ \fIdir\fP に書き込みます) と .` "\-N" (モジュールパスを短縮しません) のみです。 これらは .` "cvs checkout" の同名のオプションと同じ意味を持ちます。 .SP .B export が使われるときは .B \-kv オプションが有用です。 これによって キーワードが、どこか別のサイトで .B import が行われたときにリビジョン情報が失われないような形に展開されるように なります。 他の \fIkflag\fP を .` "cvs export" で使用することもできます。その説明は .BR co ( 1 ) にあります。 .TP \fBhistory\fP [\fB\-\fP\fIreport\fP] [\fB\-\fP\fIflags\fP] [\fB\-\fP\fIoptions args\fP] [\fIfiles\fP.\|.\|.] .I 以下が必要: .` "$CVSROOT/CVSROOT/history" ファイル。 .br .I 以下を変更: 何も変更しません。 .br \fBcvs\fP はヒストリファイルを管理しており、各 \fBcheckout\fP, \fBcommit\fP, \fBrtag\fP, \fBupdate\fP, \fBrelease\fP コマンドの使用を記録します。 .` "cvs history" を使って、この情報を色々なフォーマットで表示することができます。 .SP .I 警告: .` "cvs history" は .` "\-f", .` "\-l", .` "\-n", .` "\-p" を .SM 共通の COMMAND OPTIONS\c \&での説明とは異なる意味に使用します。 .SP いくつかのオプション (上で \fB\-\fP\fIreport\fP となっている部分) は どんな種類のレポートを生成するかを制御します: .TP 1i .B \ \ \ \ \ \ \-c 今までの各 \fBcommit\fP (つまりリポジトリの変更) についてレポートします。 .TP 1i \fB\ \ \ \ \ \ \-m\fP \fImodule\fP 特定の \fImodule\fP についてレポートします。(コマンドラインで複数の \fB\-m\fP を指定できます。) .TP 1i .B \ \ \ \ \ \ \-o チェックアウトされたモジュールについてレポートします。 .TP 1i .B \ \ \ \ \ \ \-T 全てのタグについてレポートします。 .TP 1i \fB\ \ \ \ \ \ \-x\fP \fItype\fP 特定のレコードタイプ \fIX\fP のセットを \fBcvs\fP ヒストリから 取り出します。タイプは 1文字で表され、組み合わせて指定できます。 以下のコマンドは単一のレコードタイプを持ちます: \fBcheckout\fP (タイプ `O')、 \fBrelease\fP (タイプ `F')、\fBrtag\fP (タイプ `T')。 -\fBupdate\fP は 4つのレコードタイプのうちの 1つになります: `W' は +\fBupdate\fP は 4 つのレコードタイプのうちの 1 つになります: `W' は 作業用のファイルのコピーが update で (それがリポジトリから無くなって いたために) 削除された場合です; `U' は作業ファイルがリポジトリから コピーされた場合です; `G' は必要なマージが無事に終った場合です; 'C' は マージが必要だが衝突が検出された場合 (手動でのマージが必要な場合) です。 また、\fBcommit\fP では 3つのレコードタイプのうちの 1つになります: `M' はファイルが変更された場合; `A' はファイルが最初に追加された場合; `R' はファイルが削除された場合です。 .TP 1i .B \ \ \ \ \ \ \-e 全て (全レコードタイプ); 以下を指定するのと等価です。 .` "\-xMACFROGWUT" .TP 1i \fB\ \ \ \ \ \ \-z\fP \fIzone\fP ヒストリレコードを出力する際に .I zone で指定されたタイムゾーンを使います。 .B LT というゾーン名はローカルタイムの意味になります。 数値によるオフセットは時分での UTC との時差を意味します。 例えば、 .B +0530 は 5 時間と 30 分だけ UTC より前 (つまり東側) の意味になります。 .PP .RS .5i \fB\-\fP\fIflags\fP と書かれた部分のオプションは、レポートする範囲を絞ります。 引数の指定はありません。 .RE .TP 1i .B \ \ \ \ \ \ \-a 全てのユーザのデータを表示します (デフォルトでは .` "cvs history" を実行しているユーザのみのデータを表示します)。 .TP 1i .B \ \ \ \ \ \ \-l 最後の変更のみ表示します。 .TP 1i .B \ \ \ \ \ \ \-w .` "cvs history" が実行されているのと同じ作業ディレクトリから行われた変更に関する レコードのみを表示します。 .PP .RS .5i \fB\-\fP\fIoptions args\fP と書かれた部分のオプションは引数に 基づいてレポート範囲を絞ります: .RE .TP 1i \fB\ \ \ \ \ \ \-b\fP \fIstr\fP 文字列 \fIstr\fP をモジュール名、ファイル名、リポジトリパスの いずれかに含むレコードに戻って表示します。 .TP 1i \fB\ \ \ \ \ \ \-D\fP \fIdate\fP \fIdate\fP 以降のデータを表示します。 .TP 1i \fB\ \ \ \ \ \ \-p\fP \fIrepository\fP 特定のソースリポジトリのデータを表示します (複数の \fB\-p\fP オプションを同じコマンド行で指定できます)。 .TP 1i \fB\ \ \ \ \ \ \-r\fP \fIrev\fP 個々の RCS ファイルに現れるリビジョンが \fIrev\fP で指定されたリビジョンまたはタグ以降であるレコードを表示します。 各 .SM RCS ファイルについてリビジョンまたはタグが検索されます。 .TP 1i \fB\ \ \ \ \ \ \-t\fP \fItag\fP \fItag\fP で指定されるタグがヒストリファイルに最後に 追加されてからのレコードを表示します。 このオプションは、 .SM RCS ファイルではなくヒストリファイルのみ参照する点で 上記の \fB-r\fP フラグと異なり、 より高速です。 .TP 1i \fB\ \ \ \ \ \ \-u\fP \fIname\fP \fIname\fP で指定されるユーザのレコードを表示します。 .PP .TP \fBimport\fP [\fB\-\fP\fIoptions\fP] \fIrepository vendortag releasetag\fP.\|.\|. .I 以下が必要: リポジトリ、ソース配布物のディレクトリ。 .br .I 以下を変更: リポジトリ。 .br .` "cvs import" -を使うことで外部の供給元 (例えばソース・ベンダ) からのソース配布物 +を使うことで外部の供給元 (例えばソースベンダ) からのソース配布物 全体をあなたのソースリポジトリのディレクトリへ取り込めます。 最初のリポジトリの作成と、外部の供給元からのモジュールへの 大規模な更新の両方にこのコマンドを使うことができます。 .SP 引数 \fIrepository\fP で CVS ルートディレクトリ下のリポジトリ用 ディレクトリ名 (またはディレクトリへのパス) を与えます。 もしディレクトリが存在しないなら、\fBimport\fP が作成します。 .SP あなたのソースリポジトリで (前回の \fBimport\fP から) 変更された ソースへの更新に \fBimport\fP を使った場合、開発の 2 本のブランチで 衝突しているファイルについて警告します。 \fBimport\fP が指示するように、 .` "cvs checkout -j" を使って差分を調整できます。 .SP デフォルトでは、ある種のファイル名が .` "cvs import" で無視されます: .SM CVS 管理、または他の一般的なソース管理システムに関連する名前; パッチファイル、オブジェクトファイル、アーカイブファイル、 エディタのバックアップファイルのための一般的な名前; そして雑多なユーティリティの加工品であることを示すその他の名前。 無視されるファイルのリストの最新については、 (このマニュアルページの関連項目の節に記述してあるように) Cederqvist 著のマニュアルを参照して下さい。 .SP 外部からのソースは第一レベルの ブランチ、デフォルトでは .` "1.1.1" に保存されます。 以降の更新は このブランチのリーフになります。 例えば、最初に import したソース集合からのファイルはリビジョン .` "1.1.1.1" になり、 次の import による更新でファイルはリビジョン .` "1.1.1.2" になり、以下同様に続きます。 .SP 最低で 3 つの引数が必要です。ソースの集合を識別するために \fIrepository\fP が必要です。\fIvendortag\fP はブランチ全体を示す タグになります (例えば .` "1.1.1" と対応します)。 .` "cvs import" を実行する度にリーフとしてできるファイルを 識別するために少なくとも一つの \fIreleasetag\fP も指定しなければ なりません。 .SP .B cvs の標準のコマンドオプションのうちの 1 つ \fB\-m\fP が利用可能です: ログメッセージを \fB\-m\fP で指定しないと、(\fBcommit\fP でのように) メッセージを 入力できるようにエディタが起動されます。 .SP さらに 3 つの特別なオプションがあります。 .SP .` "\-d" を使って、各ファイルの最終更新日時がチェックインの日付と時刻として 使われるよう指示できます。 .SP .` "\-b \fIbranch\fP" を使って第一レベルのブランチを .` "1.1.1" 以外に指定できます。 .SP .` "\-I \fIname\fP" を使って \fBimport\fP 中に無視されるべきファイル名を指定できます。 このオプションは繰り返して指定できます。 いかなるファイルも無視されない (デフォルトで無視されるものでも) ようにするには、 .` "\-I !" と指定します。 .TP \fBlog\fP [\fB\-l\fP] \fIrlog-options [files\fP\|.\|.\|.] .I 以下が必要: リポジトリ、作業ディレクトリ。 .br .I 以下を変更: 何も変更しません。 .br .I 同義語: .B rlog .br \fIfiles\fP のログ情報を表示します。 \fBrlog\fP のオプションの中でも有用なものとしては、次のものがあります: ヘッダ (タグの定義を含むが、ログの大部分は省略される) のみ表示する \fB\-h\fP ; 特定のリビジョンまたはリビジョンの範囲でログを選択する \fB\-r\fP; そして特定の日時または時刻の範囲を選択する \fB\-d\fP が あります。完全な説明は .BR rlog ( 1 ) を参照して下さい。 このコマンドは .B \-l オプションが指定されていなければ、デフォルトで再帰的に働きます。 .TP \fBrdiff\fP [\fB\-\fP\fIflags\fP] [\fB\-V\fP \fIvn\fP] [\fB\-r\fP \fIt\fP|\fB\-D\fP \fId\fP [\fB\-r\fP \fIt2\fP|\fB\-D\fP \fId2\fP]] \fImodules\|.\|.\|.\fP .I 以下が必要: リポジトリ。 .br .I 以下を変更: 何も変更しません。 .br .I 同義語: .B patch .br 2 つのリリース間の .BR patch ( 1 ) ファイルを Larry Wall 氏のフォーマットで作成します。それは直接 .B patch プログラムに入力できるもので、古いリリースを新しいリリースに更新する ために使えます。 (これは直接リポジトリを参照するため、これに先立って .BR checkout する必要のない、数少ない \fBcvs\fP コマンドのうちの 1 つです。) 差分出力は標準出力デバイスに送られます。 (標準の \fB\-r\fP と \fB\-D\fP オプションを 使って) 1 つまたは 2 つのリビジョンまたは日時の任意の組み合わせを指定できます。 もしリビジョンまたは日時が 1 つしか指定されないと、 そのリビジョンまたは日時とその時点での .SM RCS ファイルの ``head'' リビジョンの差分がパッチファイルに反映されます。 .SP もしソフトウェアリリースへの影響が複数ディレクトリにわたるなら、 古いソースにパッチを当てる際、 .B patch が他のディレクトリに置かれたファイルを見つけられるように、 .B \-p オプションを .B patch コマンドに指定する必要があるかもしれません。 .SP 標準オプションの \fIflags\fP \fB\-f\fP、\fB\-l\fP が このコマンドで利用可能です。他にもいくつかの 特別なオプションフラグがあります: .SP .B \-s オプションを指定すると、パッチ出力が作られません。 代わりに、2 つのリリース間で変更または追加されたファイルの要約が 標準出力デバイスに送られます。 これは、例えば、2 つの日付またはリビジョンの間で、どのファイルが 変更されたかを調べるのに便利です。 .SP .B \-t オプションを指定すると、新しい方から 2 つのリビジョンの差分が 標準出力デバイスに送られます。これはファイルへの最後の変更が 何であったかを知るのに最適です。 .SP .B \-u オプションを指定すると、パッチ出力として新しい ``unidiff'' フォーマットを使って文脈差分とします。 .SP 希望するなら、 .B \-c を使って明示的に .` "diff \-c" 形式の文脈差分を指定できます (こちらがデフォルトです)。 .TP \fBrelease\fP [\fB\-dQq\fP] \fImodules\fP\|.\|.\|. .I 以下が必要: 作業ディレクトリ。 .br .I 以下を変更: 作業ディレクトリ、ヒストリログ。 .br このコマンドは .` "cvs checkout' の効果を安全にキャンセルすることになっています。 .B cvs はファイルをロックしないので、厳密にはこのコマンドを使用する必要は ありません。 単に作業ディレクトリを削除しても構いません。 しかし忘れているかも知れない変更を失う危険があり、そして .B cvs ヒストリファイルには捨ててしまったチェックアウトの記録は残りません。 .SP .` "cvs release" を使うとこれらの問題を回避できます。 このコマンドは以下の点をチェックします: コミットされていない変更が存在しないこと、 \fBcvs\fP の作業ディレクトリの直上または内部から実行していること、 ファイルが記録されたリポジトリがモジュールデータベースに -定義されたリポジトリと同じであること。 +定義されたリポジトリと同じであること、です。 .SP これらの条件が全て真なら .` "cvs release" は その実行記録 (意図的にチェックアウトを削除した証拠) を .B cvs のヒストリログに残します。 .SP \fB\-d\fP フラグを使ってソースの作業用コピーを \fBrelease\fP が 成功したら削除するように指示できます。 .TP \fBremove\fP [\fB\-lR\fP] [\fIfiles\|.\|.\|.\fP] .I 以下が必要: 作業ディレクトリ。 .br .I 以下を変更: 作業ディレクトリ。 .br .I 同義語: .BR rm ", " delete .br このコマンドを使って、\fIfiles\fP をソースリポジトリから削除する つもりであることを宣言できます。大部分の .B cvs コマンドがそうであるように、 .` "cvs remove" は作業ディレクトリのファイルに作用し、リポジトリには直接には 作用しません。安全機構として、まず指定するファイルを作業ディレクトリ から削除することも必要になっています。 .SP リポジトリに .BR commit で変更を反映するまで、ファイルは実際には削除されません。 commit した時点で、ソースリポジトリの対応する .SM RCS ファイルが .` "Attic" ディレクトリ (これもソースリポジトリの中です) に .I 移動 されます。 .SP このコマンドはデフォルトで再帰的になっており、 物理的に削除された全てのファイルが次の .BR commit での削除されるようにスケジュールします。 .B \-l オプションを使うか、または実際に削除したいファイルのみを 指定することで、この再帰を抑制できます。 .TP \fBrtag\fP [\fB\-f\|alnRQq\fP] [\fB\-b\fP] [\fB\-d\fP] [\fB\-r\fP \fItag\fP | \fB\-D\fP \fIdate\fP] \fIsymbolic_tag\fP \fImodules\|.\|.\|.\fP .I 以下が必要: リポジトリ。 .br .I 以下を変更: リポジトリ。 .br .I 同義語: .B rfreeze .br このコマンドを使って、リポジトリ中の特定の、明示的に 指定されたソースバージョンにシンボリックタグを割り当てられます。 .` "cvs rtag" はリポジトリの内容に直接に作用します (これに先立って .BR checkout する必要はありません)。 作業ディレクトリの内容に基づいて タグを付けるバージョンを選択するには、代わりに .` "cvs tag" を使います。 .SP 一般に、タグ (しばしばソフトウェア配布物のシンボリックな 名前でもある) は削除されるべきではありません。 しかし完全に廃れてしまったシンボリックな名前を削除する場合 (例えば、 アルファリリースの場合など) の手段として、 .B \-d オプションが用意されています。 .SP .` "cvs rtag" はすでに存在するタグを移動しません。 しかしながら、\fB\-F\fP オプションが指定されると .` "cvs rtag" はそのファイルに既に存在する \fIsymbolic_tag\fP のインスタンスを 新しいリポジトリのバージョンへ移動します。 \fB\-F\fP オプションが無い場合、 .` "cvs rtag" を使ってすでにそのファイルに存在するタグを付けようとすると、 エラーメッセージが出力されます。 .SP \fB-b\fP オプションはタグを ``ブランチ'' タグにし、並行の、 独立した開発を可能にします。 これは以前にリリースしたソフトウェア配布物へのパッチを作成するのに 最も有用です。 .SP 標準の \fB\-r\fP と \fB\-D\fP オプションを使って、すでに特定の タグを含んでいるファイルのみにタグを付けることができます。 この方法はタグの名前を変えるのに使えるでしょう: 古いタグで指定されるファイルにのみタグを付け、 それから古いタグを削除すれば、確実に同じファイルで古いタグを 新しいタグで置き換えることができます。 .SP .B rtag はデフォルトで再帰的に実行し、引数で指定した \fImodules\fP の全てのサブディレクトリにタグをつけます。 この動作を トップレベルのディレクトリに制限するには標準の \fB\-l\fP オプションを 指定します。 また明示的に再帰を指定するには \fB\-R\fP を指定します。 .SP モジュールデータベースではタグが指定されたときに必ず実行される -プログラムを指定できます。 よくある使い方は、興味を持っている +プログラムを指定できます。よくある使い方は、興味を持っている グループに電子メールを送るというものです。もしそのプログラムを バイパスしたい場合は、標準の \fB\-n\fP オプションを使います。 .SP .B \-a オプションを使うと .` "Attic" の中の指定されたタグを含む削除されたファイルを .B rtag の対象にできます。 タグはそれらのファイルから削除され、開発の進展につれての シンボリックタグの再利用に便利になります (そしてファイルは以降の 配布物から削除されます)。 .TP \fBstatus\fP [\fB\-lRqQ\fP] [\fB\-v\fP] [\fIfiles\fP\|.\|.\|.] .I 以下が必要: 作業ディレクトリ、リポジトリ。 .br .I 以下を変更: 何も変更しません。 .br \fIfiles\fP の現在の状態について、``sticky'' なタグ、 日付、\fB\-k\fP オプションを含む、ソースリポジトリに関する 簡潔なレポートを表示します。(``sticky'' オプションはリセットするまで .` "cvs update" がどう働くかを規定します。 .` "cvs update \-A\|.\|.\|." の説明を参照して下さい。) .SP このコマンドを用いて、作業用ソースディレクトリでの .` "cvs update" による潜在的な影響を予測することもできます。 もし \fIfiles\fP を明示的に指定しないと、\fBcvs\fP が 作業ディレクトリに置いた全てのファイルについてレポートが 表示されます。 この検索の範囲を (そのサブディレクトリではなく) カレントディレクトリ だけに制限するには、標準の \fB\-l\fP オプションフラグを使います。 \fB\-R\fP オプションによって、明示的に再帰的なステータスレポートを 指定することもできます。 .SP .B \-v オプションを指定すると .SM RCS ファイルのシンボリックタグも表示されるようになります。 .TP \fBtag\fP [\fB\-lQqR\fP] [\fB\-F\fP] [\fB\-b\fP] [\fB\-d\fP] [\fB\-r\fP \fItag\fP | \fB\-D\fP \fIdate\fP] [\fB\-f\fP] \fIsymbolic_tag\fP [\fIfiles\fP\|.\|.\|.\|] .I 以下が必要: 作業ディレクトリ、リポジトリ。 .br .I 以下を変更: リポジトリ。 .br .I 同義語: .B freeze .br このコマンドは、作業ディレクトリに最も近いリポジトリのバージョンに シンボリックタグをつけるために使います。\fBrtag\fP を 使ったときのように、タグはリポジトリに直接つけられます。 .SP タグの使い方の一つは、プロジェクトのソフトウェア凍結日が やってきたときに開発中のソースの ``snapshot'' を記録するというものです。 凍結した日の後でバグが修正されたら、それらの変更されたリリースの 一部となるソースのみに再度タグをつける必要があります。 .SP シンボリックタグはどのファイルのどのリビジョンがソフトウェア配布物を 作成する際に使われたかを恒久的に記録する意味があります。 .BR checkout , .B export , .B update コマンドは、タグをつけたリリースと全く同じものを、リリースのタグが つけられて以降にファイルが変更、追加、削除されたかどうかを気にする ことなく、将来のいつでも取り出すことを可能にします。 .SP 標準の \fB\-r\fP と \fB\-D\fP オプションを使って、すでに特定の タグを含んでいるファイルのみにタグを付けることができます。 この方法はタグの名前を変えるのに使えます。 すなわち、 古いタグで指定されるファイルにのみタグを付け、 それから古いタグを削除すれば、確実に同じファイルで古いタグを 新しいタグで置き換えることができます。 .SP \fB\-r\fP または \fB\-D\fP フラグに加えて \fB\-f\fP フラグを 指定すると、コマンドラインで指定したファイルで古いタグを 持っていないか指定された日時に存在しなかったものにもタグを 付けます。 .SP デフォルト (\fB\-r\fP または \fB\-D\fP フラグが無い場合) では、 バージョンは明示的に指定されるのではなく、暗黙のうちに作業ファイルの ヒストリの \fBcvs\fP レコードから取られます。 .SP .` "cvs tag \-d \fIsymbolic_tag\fP\|.\|.\|." とすると、指定したシンボリックタグが追加されるのではなく .I 削除 されます。\fI警告\fP: タグを削除する前にその根拠をしっかり確認して下さい。 これは効率的に一部の履歴情報を捨てますが、後になってその情報が重要だったと 判明するかも知れないからです。 .SP .` "cvs tag" はすでに存在するタグを移動しません。 しかしながら、\fB\-F\fP オプションが指定されると .` "cvs tag" はそのファイルに既に存在する \fIsymbolic_tag\fP のインスタンスを 新しいリポジトリのバージョンへ移動します。 \fB\-F\fP オプションが無い場合、 .` "cvs tag" を使って すでにそのファイルに存在するタグを付けようとすると エラーメッセージが出力されます。 .SP \fB-b\fP オプションはタグを ``ブランチ'' タグにし、並行して、 独立した開発を可能にします。 これは以前にリリースしたソフトウェア配布物へのパッチを作成するために 最も有効です。 .SP 通常、 .B tag はサブディレクトリに渡って再帰的に実行します。これは 標準の \fB\-l\fP オプションを使って抑制できます。 明示的に再帰を指定するには \fB\-R\fP を使います。 .TP \fBupdate\fP [\fB\-Adf\|lPpQqR\fP] [\fB\-d\fP] [\fB\-r\fP \fItag\fP|\fB\-D\fP \fIdate\fP] \fIfiles\|.\|.\|.\fP .I 以下が必要: リポジトリ、作業ディレクトリ。 .br .I 以下を変更: 作業ディレクトリ。 .br あなたが共有のリポジトリから私的なソースのコピーを作成するために .B checkout を実行した後も、別の開発者は共有のソースへの変更を続けるでしょう。 時々、開発過程で都合のいいときに、作業ディレクトリ内から .B update コマンドを使うことで、 最後に .B checkout または .BR update してからソースリポジトリに登録された変更を、あなたの変更と 融合させることができます。 .SP .B update は進行状況をファイルごとに 1 行表示することで知らせ続けます。 各行の先頭には以下の .` "U A R M C ?" のいずれか 1 文字があり、ファイルの状態を示しています: .TP 1i \fBU\fP \fIfile\fP file はリポジトリに関して \fI最新に\fP なりました。 これはリポジトリには存在するがあなたのソースには無いもの、 およびあなたは変更していないけれどもリポジトリの 最新リビジョンでは無いものに関して行われます。 .TP 1i \fBA\fP \fIfile\fP file はソースのあなたの私的なコピーに \fI追加\fP されたもので、 file に対して .` "cvs commit" を実行したときに ソースリポジトリに追加されます。 これは当該ファイルを commit する必要があるという助言です。 .TP 1i \fBR\fP \fIfile\fP これはソースのあなたの私的なコピーから file が \fI削除\fP されており、 file に対して .` "cvs commit" を実行すると ソースリポジトリから削除されることを示します。 これは当該ファイルを commit する必要があるという助言です。 .TP 1i \fBM\fP \fIfile\fP あなたの作業ディレクトリの file は \fI変更\fP されています。 .` "M" は作業中のファイルについて 2 つの状態のうちの 1 つを示します: リポジトリ中の対応するファイルは変更されておらず、あなたのファイルは 最後に見たときのままになっている。 または、あなたのコピー同様 リポジトリのものも変更されているが、それらの変更は 衝突することなく無事にあなたの作業ディレクトリに \fI融合 (merge)\fP されました。 .TP 1i \fBC\fP \fIfile\fP \fIfile\fP へのあなたの変更とソースリポジトリからの変更との 融合を試みる間に \fI衝突 (conflict)\fP が検出されました。 現在 \fIfile\fP (あなたの作業ディレクトリのコピー) は 2 つのバージョンをマージした結果になっています。 変更されていない あなたのファイルのコピーも作業ディレクトリに、 `\fB.#\fP\fIfile\fP\fB.\fP\fIversion\fP' という名前で置かれます。 ここで .I version は あなたの変更したファイルの出発点となった リビジョンです。 (ある種のシステムでは、 \& .` ".#" で始まるファイルは何日かアクセスされないと自動的に削除されるので 注意して下さい。もし元のファイルのコピーを取っておくつもりなら、 名前を変えておくのが良いでしょう。) .TP 1i \fB?\fP \fIfile\fP \fIfile\fP が あなたの作業ディレクトリにありますが、 ソースリポジトリのどれとも対応しておらず、 \fBcvs\fP が無視するファイルのリストにもありません (\fB\-I\fP オプションの説明を参照して下さい)。 .PP .RS .5i .SP .B \-A オプションを用いて sticky なタグ、日付、 .B \-k オプションをリセットできます。(\fB\-r\fP, \fB\-D\fP, \fB\-k\fP オプションの いずれかを使って作業ファイルのコピーを得ると、 \fBcvs\fP は対応するタグ、日付、\fIkflag\fP を記憶し、 -以降の update で それを使い続けます。 \fB\-A\fP オプションを使って +以降の update で それを使い続けます。\fB\-A\fP オプションを使って \fBcvs\fP にそれらの指定を忘れさせることで、ファイルの ``head'' バージョンを取り出します)。 .SP \fB\-j\fP\fIbranch\fP オプションは、変更結果のリビジョンと ベースにしたリビジョンの間での変更をマージします (例えば、もしタグがブランチを指しているなら、 .B cvs は、そのブランチで行われた全ての変更をあなたの作業ファイルにマージします)。 .SP 2 つの \fB-j\fP オプションを指定すると、 .B cvs は 2 つの それぞれのリビジョン間での変更をマージします。 これは特定の変更を作業ファイルから ``削除'' するのに使えます。 例えば、ファイル foo.c がリビジョン 1.6 をベースにしていて、 1.3 と 1.5 の間で行われた変更を削除したいなら、次のようにします: .SP .in +1i .ft B .nf example% cvs update -j1.5 -j1.3 foo.c # 順番に注意... .fi .ft P .in -1i .SP 加えて、各 \fB-j\fP オプションにはオプションで、ブランチと使う場合に、 日付指定を含めることが可能で、選択するリビジョンを指定した 日付の範囲内に制限できます。 オプションの日付はコロン (:) をタグに付けることで指定します。 .SP .in +1i .ft B .nf -jSymbolic_Tag:Date_Specifier .fi .ft P .in -1i .SP .B \-d オプションを使うと、もし作業ディレクトリに無いディレクトリが リポジトリにあれば作成します。(通常、update は作業ディレクトリに すでに登録されているディレクトリとファイルのみに働きます。) これは最初の \fBcheckout\fP 以降に作成されたディレクトリを 更新するのに有用です。しかし不幸にも副作用があります。 もし作業ディレクトリを作る際に慎重にリポジトリ中の特定の ディレクトリを除いた (モジュール名を使ったか明示的に必要な ファイルとディレクトリをコマンドラインで指定したかのいずれかで) とすると、 .B \-d で更新するとそれらの不要かも知れないディレクトリができてしまいます。 .SP \fB\-I\fP \fIname\fP を使うと、update の際、名前が \fIname\fP に符合する (作業ディレクトリの) ファイルを無視します。 コマンドラインで \fB\-I\fP を 2 回以上指定することで、 複数の無視するファイルを指定できます。 デフォルトで、\fBupdate\fP はあるパターンに名前がマッチするファイルを 無視します; 無視されるファイル名の最新リストについては、 (このマニュアルページの関連項目の節に記述してあるように) Cederqvist 著のマニュアルを参照して下さい。 .SP いずれのファイルも無視しないようにするには .` "\-I !" を使います。 .SP 標準の \fBcvs\fP コマンドオプション \fB\-f\fP, \fB\-k\fP, \fB\-l\fP, \fB\-P\fP, \fB\-p\fP, \fB\-r\fP も \fBupdate\fP で使用可能です。 .RE .SH "関連ファイル" より詳細な .B cvs サポートファイルの情報については .BR cvs ( 5 ) を参照して下さい。 .LP .I ホームディレクトリのファイル: .TP \&.cvsrc .B cvs の初期化ファイル。このファイルの行は各 .B cvs コマンドのデフォルトのオプションの指定に使えます。例えば .` "diff \-c" と言う行は .` "cvs diff" に対して、コマンドラインで渡されたオプションに、常に .B \-c オプションが加えられて渡されることを指定します。 .TP \&.cvswrappers リポジトリのファイル CVSROOT/cvswrappers で指定されている ものに加えて使用されるラッパを指定します。 .LP .I 作業ディレクトリのファイル: .TP CVS \fBcvs\fP 管理ファイルのディレクトリ。 .I 削除してはいけません。 .TP CVS/Entries 作業ディレクトリのファイルのリストと状態。 .TP CVS/Entries.Backup .` "CVS/Entries" のバックアップ。 .TP CVS/Entries.Static フラグ: .` "cvs update" でそれ以上エントリを追加しません。 .TP CVS/Root チェックアウトしたときのリポジトリ ( .SM CVSROOT ) 位置へのパス名。 .SM CVSROOT 環境変数が設定されていない場合、このファイルが代わりに使用されます。 このファイルの内容と .SM CVSROOT 環境変数が異なっていると警告メッセージが出されます。 .SM CVS_IGNORE_REMOTE_ROOT 環境変数が設定されていると、このファイルは上書きされることがあります。 .TP CVS/Repository ソースリポジトリ中の対応するディレクトリへのパス名。 .TP CVS/Tag ディレクトリ毎の ``sticky'' なタグまたは日付情報を保持しています。 このファイルは .B \-r か .B \-D を .B checkout または .B update コマンドに指定して、ファイルが指定されなかったときに作成/更新されます。 .TP CVS/Checkin.prog .` "cvs commit" 時に実行するプログラム名。 .TP CVS/Update.prog .` "cvs update" 時に実行するプログラム名。 .LP .I ソースリポジトリ中のファイル: .TP $CVSROOT/CVSROOT リポジトリ全体の管理ファイルのディレクトリ。 .TP CVSROOT/commitinfo,v .` "cvs commit" のリクエストを選別するプログラムを登録します。 .TP CVSROOT/cvswrappers,v ファイルをリポジトリにチェックインそしてリポジトリから チェックアウトするときに使用される .B cvs ラッパコマンドを登録します。 ラッパはファイルまたはディレクトリが CVS で入出力される際に 処理を行うことを可能にします。使い道はいろいろありますが、 その一つとして、C のファイルをチェックインする前に再フォーマットして、 リポジトリ中のコードの見た目を揃えるというものがあります。 .TP CVSROOT/editinfo,v .` "cvs commit" のログエントリの編集/確認用プログラムを登録します。 .TP CVSROOT/history \fBcvs\fP 処理のログファイル。 .TP CVSROOT/loginfo,v .` "cvs commit" のログエントリをパイプで渡すプログラムを登録します。 .TP CVSROOT/modules,v このリポジトリ中のモジュールを定義します。 .TP CVSROOT/rcsinfo,v .` "cvs commit" 操作中に使用するテンプレートへのパス名を登録します。 .TP CVSROOT/taginfo,v .` "cvs tag" と .` "cvs rtag" での確認/ログ採集のためのプログラムを登録します。 .TP MODULE/Attic 削除されたソースファイルのためのディレクトリ。 .TP #cvs.lock ソースリポジトリに微妙な変更を行っているときに .B cvs が作成するロックディレクトリ。 .TP #cvs.tfl.\fIpid\fP リポジトリの一時的なロックファイル。 .TP #cvs.rfl.\fIpid\fP 読み出しロック。 .TP #cvs.wfl.\fIpid\fP 書き込みロック。 .SH "環境変数" .TP .SM CVSROOT .B cvs ソースリポジトリのルートへのフルパス名 ( .SM RCS ファイルが保存されている場所) を指定します。 この情報は大部分のコマンドの実行で \fBcvs\fP から参照できなければなりません。 もし .SM CVSROOT が設定されていないか、それを上書き指定したい場合は、 コマンドライン上で与えることができます: .` "cvs \-d \fIcvsroot cvs_command\fP\|.\|.\|." もし \fBcvs\fP バイナリのコンパイル時に正しいパスが指定されているなら .SM CVSROOT を設定しなくて構いません。 .TP .SM CVSREAD これがセットされていると、 .B checkout と .B update は作業ディレクトリのファイルを読み出し専用にするべく努力します。 これがセットされていないときは、デフォルトでは作業ファイルの 変更が許可されます。 .TP .SM RCSBIN .BR co ( 1 ) や .BR ci ( 1 ) といった .SM RCS のプログラムが置かれている場所へのフルパス名を指定します (CVS 1.9 またはそれ以前)。 .TP .SM CVSEDITOR .BR commit 中にログメッセージの記録に使われるプログラムを指定します。 設定されていないと、 .SM EDITOR 環境変数が代わりに使われます。 もし .SM EDITOR も設定されていないなら、デフォルトは .BR /usr/ucb/vi です。 .TP .SM CVS_IGNORE_REMOTE_ROOT この変数がセットされていると .B cvs は CVS/Root ファイル中のリモートのリポジトリへの参照を全て 無視します。 .TP .SM CVS_RSH .B cvs サーバを開始するときに使用するリモートシェルコマンドの 名前を決定します。 この変数が設定されていない場合は .` "rsh" が使用されます。 .TP .SM CVS_SERVER .B cvs サーバコマンドの名前を指定します。 この変数が設定されていない場合は .` "cvs" が使用されます。 .TP .SM CVSWRAPPERS .` "cvswrappers" スクリプトは、 リポジトリの .SM CVSROOT/cvswrappers とユーザのホームディレクトリの ~/.cvswrappers に 含まれるデフォルトのラッパに加え、 変数 .SM CVSWRAPPERS を参照して、ラッパファイルの名前を決定します。 .SH "作者" .TP Dick Grune .B comp.sources.unix -にポストされ、1986年 12月のリリース volume6 に収められたオリジナルの +にポストされ、1986 年 12 月のリリース volume6 に収められたオリジナルの .B cvs シェルスクリプト版の作者。 .B cvs の衝突を解決するアルゴリズムの大部分を作成しました。 .TP Brian Berliner .B cvs プログラム自身のコーディングとデザインを -1989年 4月に、Dick によるオリジナルをベースにして行いました。 +1989 年 4 月に、Dick によるオリジナルをベースにして行いました。 .TP Jeff Polk Brian を助けて .B cvs -のモジュールとベンダ・ブランチのサポートをデザインしました。 +のモジュールとベンダブランチのサポートをデザインしました。 そして .BR checkin ( 1 ) シェルスクリプト ( .` "cvs import" の祖先) の作者でもあります。 .TP ここに書くには多くの人が他にもいます。 .SH "関連項目" CVS の最も包括的なマニュアルは Per Cederqvist らによる Version Management with CVS です。 システムによっては、 .B info cvs コマンドで閲覧できたり、 -cvs.ps (postscript)、cvs.texinfo (texinfo のソース)、cvs.html が +cvs.ps (postscript), cvs.texinfo (texinfo のソース), cvs.html が 利用可能かもしれません。 .SP CVS の更新、ドキュメントに関するさらなる情報、 CVS 関連のソフトウェア、CVS の開発等については、下記をご覧ください: .in +1i .B http://www.cyclic.com .B http://www.loria.fr/~molli/cvs-index.html .in -1i .SP .BR ci ( 1 ), .BR co ( 1 ), .BR cvs ( 5 ), .BR cvsbug ( 8 ), .BR diff ( 1 ), .BR grep ( 1 ), .BR patch ( 1 ), .BR rcs ( 1 ), .BR rcsdiff ( 1 ), .BR rcsmerge ( 1 ), .BR rlog ( 1 ). .SH 日本語訳 野首 寛高(h-nokubi@nmit.mt.nec.co.jp): FreeBSD 用に翻訳 .br 酒井 淳嗣(sakai@jp.freebsd.org): FreeBSD 版の校正 diff --git a/ja_JP.eucJP/man/man1/md5.1 b/ja_JP.eucJP/man/man1/md5.1 index bd15efb376..d7c31a1b7d 100644 --- a/ja_JP.eucJP/man/man1/md5.1 +++ b/ja_JP.eucJP/man/man1/md5.1 @@ -1,57 +1,67 @@ +.\" %FreeBSD: src/sbin/md5/md5.1,v 1.7.2.1 1999/12/08 06:30:16 obrien Exp % .Dd February 14, 1994 .Dt MD5 1 .Os .Sh 名称 .Nm md5 .Nd ファイルに対するフィンガプリント(チェックサム)を計算する .Sh 書式 .Nm md5 -.Op Fl ptx +.Op Fl pqrtx .Op Fl s Ar string .Op Ar file ... .Sh 解説 .Nm は、任意の長さのメッセージを入力にとり、 128 ビットの .Dq フィンガプリント もしくは .Dq メッセージの要約 と呼ばれるものを出力として生成します。 同じ要約を持つようなメッセージを二つ造る事も、 これと決めた要約を持つように狙ってメッセージを造り出す事も、 計算量的に不可能であると推論されています。 電子署名アプリケーションにおいて、大きなファイルは .Em RSA の様な公開鍵暗号システムで非公開 .Pq 秘密 鍵によって符号化される前に、 安全に .Dq 圧縮 されなければなりません。 MD5 アルゴリズムは、そのような電子署名アプリケーション向けに開発されています。 .Pp 以下の 4 つのオプションを組み合わせて使うことができますが、 コマンド行のファイル名より前になければなりません。 コマンド行の各ファイルの MD5 チェックサムが、 オプション処理後に表示されます。 .Bl -tag -width indent .It Fl s Ar string 与えられた .Ar string のチェックサムを表示します。 .It Fl p 標準入力を標準出力に送り、 MD5 の合計を標準出力に付け加えます。 +.It Fl q +静かなモード - MD5 の合計だけを表示します。 +.Fl r +オプションに優先します。 +.It Fl r +出力フォーマットを逆にします。 +視覚による差分の助けになります。 +.Fl ptx +オプションと組み合わせると、なにもしません。 .It Fl t 組み込みの時間試行を実行します。 .It Fl x 組み込みのテストスクリプトを実行します。 .El .Sh 関連項目 .Xr cksum 1 .Rs .%A R. Rivest .%T The MD5 Message-Digest Algorithm .%O RFC1321 .Re .Sh 謝辞 このプログラムは、 RSA Data Security 社により、 一般的な利用に対してパブリックドメインとされています。 diff --git a/ja_JP.eucJP/man/man1/pkg_create.1 b/ja_JP.eucJP/man/man1/pkg_create.1 index 9fbc2cf964..ae206dafbf 100644 --- a/ja_JP.eucJP/man/man1/pkg_create.1 +++ b/ja_JP.eucJP/man/man1/pkg_create.1 @@ -1,484 +1,485 @@ .\" .\" FreeBSD install - a package for the installation and maintainance .\" of non-core utilities. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" .\" Jordan K. Hubbard .\" .\" .\" @(#)pkg_create.1 .\" %FreeBSD: src/usr.sbin/pkg_install/create/pkg_create.1,v 1.27.2.3 1999/08/29 15:45:15 peter Exp $ .\" .\" hacked up by John Kohl for NetBSD--fixed a few bugs, extended keywords, .\" added dependency tracking, etc. .\" .\" [jkh] Took John's changes back and made some additional extensions for .\" better integration with FreeBSD's new ports collection. .\" .\" jpman %Id: pkg_create.1,v 1.3 1997/06/09 10:11:56 jsakai Stab % .Dd April 21, 1995 .Dt PKG_CREATE 1 .Os FreeBSD .Sh 名称 .Nm pkg_create .Nd ソフトウェア配布パッケージを作成するプログラム .Sh 書式 .Nm .Op Fl YNOhv .Op Fl P Ar pkgs .Op Fl p Ar prefix .Op Fl f Ar contents .Op Fl i Ar iscript .Op Fl I Ar piscript .Op Fl k Ar dscript .Op Fl K Ar pdscript .Op Fl r Ar rscript -.Op Fl s Ar rscript +.Op Fl s Ar srcdir .Op Fl t Ar template .Op Fl X Ar excludefile .Op Fl D Ar displayfile .Op Fl m Ar mtreefile .Fl c Ar comment .Fl d Ar description .Fl f Ar packlist .Ar pkg-name .Sh 解説 この .Nm コマンドは、パッケージ展開/情報プログラムに渡されるパッケージを 作成します。 パッケージ作成のために入力する説明とコマンドライン引数 は本来人間が生成することを意図していませんが、 そうすることも簡単にできます。 自力でどうにかすることも可能ですが、作成にはフロントエンドツールを 用いた方がいいでしょう。 とはいうものの、入力書式の概略はこの文書に含まれています。 .Sh オプション 以下のコマンドラインオプションが提供されています: .Bl -tag -width indent .It Fl f Ar packinglist ファイル .Ar packinglist から、もしくは .Ar packinglist が .Cm - (ダッシュ)であれば .Cm stdin から、パッケージ用の ``packing list'' を取得します。 .It Fl c Ar [-]desc ファイル .Ar desc から、もしくは先頭が .Cm - で始まっていれば引数自身から、パッケージの ``一行説明'' を取得します。 この文字列は、パッケージが提供するもののバージョンを知る 手がかりとなるべきです。 .It Fl d Ar [-]desc ファイル .Ar desc から、もしくは先頭が .Cm - で始まっていれば引数自身から、パッケージの長い説明を取得します。 .It Fl Y 質問に対してのデフォルトの解答を `Yes' とします。 .It Fl N 質問に対してのデフォルトの解答を `No' とします。 .It Fl O `packing list Only' モードに移行します。 これは .Em "FreeBSD Ports Collection" のための特別な修正であり、port がインストールされる時の `fake pkg_add' を行うために用いられます。 このような場合には、調整された最終的な packing list が どのようなものになるかを知る必要があるのです。 .It Fl v 饒舌な出力に切り替えます。 .It Fl h tar がシンボリックリンクをたどるようにします。 この結果、リンク自身ではなくリンク先のファイルが出力されます。 .It Fl i Ar iscript パッケージのインストール前手続きとして .Ar iscript を用います。 これは実行可能なプログラム (もしくはシェルスクリプト) なら なんでも構いません。 これはパッケージがインストールされる時に自動的に起動されます。 その際、パッケージ名が第 1 引数として渡されます。 .Cm 注: .Cm Fl I -オプションが指定されると、 +オプションが指定されない場合、 本スクリプトは当該パッケージの - pre-install および post-install の両方のスクリプトとして動作します。 +pre-install および post-install の両方のスクリプトとして動作します。 パッケージ名とともにキーワード .Ar PRE-INSTALL および .Ar POST-INSTALL をそれぞれ渡すことにより、機能を切り替えることになります。 .It Fl I Ar piscript パッケージのインストール後手続きとして .Ar piscript を用います。 これは実行可能なプログラム (もしくはシェルスクリプト) なら なんでも構いません。 これはパッケージがインストールされる時に自動的に起動されます。 その際、パッケージ名が第 1 引数として渡されます。 .It Fl P Ar pkgs 初期のパッケージ依存リストとして .Ar pkgs を用います。 -これはホワイトスペースで区切られたパッケージの名前となります。 +これは空白で区切られたパッケージの名前となります。 また、packing list (後述の「PACKING LIST 詳細」セクションを参照) 内の複数の .Cm @pkgdep ディレクティブを指定する手っ取り早い方法でもあります。 .It Fl p Ar prefix -パッケージのファイルを選択する際に基準となる初期ディレクトリとして +パッケージのファイルを選択する際に ``基準'' となる初期ディレクトリとして .Ar prefix を用います。 .It Fl k Ar dscript パッケージのアンインストール手続きとして .Ar dscript を用います。 これは実行可能なプログラム (もしくはシェルスクリプト) なら なんでも構いません。 これはパッケージがアンインストールされる時に自動的に起動されます。 その際、パッケージ名が第 1 引数として渡されます。 .Cm 注: .Cm Fl K -オプションが指定されると、 +オプションが指定されない場合、 本スクリプトは当該パッケージの de-install および post-deinstall の両方のスクリプトとして動作します。 パッケージ名とともにキーワード .Ar DEINSTALL および .Ar POST-DEINSTALL をそれぞれ渡すことにより、機能を切り替えることになります。 .It Fl K Ar pdscript パッケージのアンインストール後手続きとして .Ar pdscript を用います。 これは実行可能なプログラム (もしくはシェルスクリプト) なら なんでも構いません。 これはパッケージがアンインストールされる時に自動的に起動されます。 その際、パッケージ名が第 1 引数として渡されます。 .It Fl r Ar rscript パッケージの ``requirements'' 手続きとして .Ar rscript を用います。 これは実行可能なプログラム (もしくはシェルスクリプト) なら なんでも構いません。 これはインストール時、アンインストール時に自動的に起動され、 インストール、アンインストールを継続するべきかどうかを決定するのに 用いられます。 .It Fl s Ar srcdir パッケージ作成中に .Ar srcdir は、 .Cm @cwd の値に優先します。 .It Fl t Ar template .Xr mktemp 3 への入力として .Ar template を用います。 これはデフォルトでは .Pa /tmp/instmp.XXXXXX という文字列ですが、 .Pa /tmp ディレクトリの容量が制限されているような状況では 変更する必要があるかもしれません。 .Xr mktemp 3 が一意の ID を用いるために必要な `X' の文字をいくつか残しておく ことを忘れないでください。 .It Fl X Ar excludefile 最終的にパッケージを作成する際に、 .Ar excludefile を .Cm tar に .Fl exclude-from 引数として渡します。 このオプションを使うにあたっての詳しい情報は、 .Cm tar のマニュアルページ (もしくは .Fl -help 引数を付けて .Cm tar を実行) を参照してください。 .It Fl D Ar displayfile パッケージをインストールした後にファイルを ( .Xr more 1 を用いて) 表示します。 「ほとんど free なソフトウェア」などにおいて、 法的な通知のようなものなどに便利でしょう。 .It Fl m Ar mtreefile パッケージがインストールされる前に、mtreefile を入力として .Xr mtree 8 を実行します。mtree は .Cm mtree .Fl u .Fl f .Ar mtreefile .Fl d .Fl e .Fl p .Pa prefix として起動されます (ただし .Pa prefix は .Cm @cwd ディレクティブにより名付けられた最初のディレクトリの名前)。 .El .Pp .Sh PACKING LIST 詳細 ``packing list'' の書式 ( .Fl f を参照) は単純で、パッケージに含めるファイル名を一行につきひとつずつ 並べたものにすぎません。 どこにインストールされるかわからないパッケージに対して絶対パスを 用いるのは一般的に悪い方法なので、 どこにインストールされることを想定しているのか、 そしてどんな ownership と mode を伴ってインストールされるべきなのか (こちらはオプション) を指定する方法が用意されています。 これは packing list 内に一連の特殊コマンドを 埋め込むことで実現されています。以下に簡単に示します: .Bl -tag -width indent -compact .It Cm @cwd Ar directory 内部のディレクトリポインタが .Ar directory を指すようにします。以降のファイル名はこのディレクトリへの相対パス であるとみなされます。 +注: .Cm @cd はこのコマンドの別名です。 .It Cm @srcdir Ar directory 「作成時のみ」の内部ディレクトリポインタを .Ar directory に設定します。 パッケージ作成時に .Cm @cwd に優先すると言えますが、展開時にはこれはあてはまりません。 .It Cm @exec Ar command 展開処理の一環として .Ar command を実行します。 .Ar command が以下の文字列を含んでいた場合、その場で置換されます。 以下の例では .Cm @cwd が .Pa /usr/local と設定されていて、最後に展開されたファイルが .Pa bin/emacs だったとしています。 .Bl -tag -width indent -compact .It Cm "%F" 最後に展開されたファイル名に置換されます。この例では .Pa bin/emacs となります。 .It Cm "%D" .Cm @cwd で設定されたカレントディレクトリプレフィックスに置換されます。 この例では .Pa /usr/local になります。 .It Cm "%B" 完全な (フルパスの) ファイル名の ``basename'' へ置換されます。 これはカレントディレクトリプレフィックスに最後の filespec を 加え、末尾のファイル名部分を除いたものです。 この例では、 .Pa /usr/local/bin になります。 .It Cm "%f" 完全な (フルパスを含む) ファイル名の ``filename'' 部分へ置換されます。 .Cm %B と対応していて、この例では .Pa emacs となります。 .El .It Cm @unexec Ar command アンインストール処理の一環として .Ar command を実行します。特別な .Cm % 文字列の置換は .Cm @exec と同様です。 このコマンドは .Cm @exec のようにパッケージを加える際に実行されるのではなく、パッケージが 削除されるときに実行されます。 これは、パッケージを加えるときに作られたリンクや他の 付随ファイル (パッケージの内容一覧に記されているファイルは自動的に 削除されるので除く) を削除するのに便利です。 アンインストールスクリプトよりも .Cm @unexec を用いる方が有利な点は、どこにインストールされているかわからない ( .Fl p を参照) ファイルの場所を得るのに ``特殊文字列置換'' を用いることが 可能なことです。 .It Cm @mode Ar mode この後で展開されるすべてのファイルのデフォルトの許可属性を .Ar mode に設定します。 書式は .Cm chmod コマンドで用いられているものと同じです (というよりも、そのまま 渡されています)。 引数無しで用いると、デフォルトの (展開) 許可属性に戻します。 .It Cm @option Ar option 内部用パッケージオプションを設定します。 現在二つのオプションのみがサポートされています。 ひとつは .Ar extract-in-place で、これは pkg_add コマンドにパッケージの tarball を staging area に展開せずに、目的の階層に直接展開するよう指示します (これは主に配布物や他の特殊なパッケージなどに用いられます)。 もうひとつは .Ar preserve で、存在するファイルを別の所に保存しておくよう pkg_add に指示します (これらは pkg_delete の時に復活しますが、自分の責任で行ってください)。 .It Cm @owner Ar user この後で展開されるすべてのファイルのデフォルトの ownership を .Ar user に設定します。 引数無しで用いると、デフォルトの (展開) ownership に戻します。 .It Cm @group Ar group この後で展開されるすべてのファイルのデフォルトの group ownership を .Ar group に設定します。 引数無しで用いると、デフォルトの (展開) group ownership に戻します。 .It Cm @comment Ar string packing list 内にコメントを埋め込みます。 誰かが後で間違えてしまうかもしれない特に厄介な部分を説明しようとする 場合に便利です。 .It Cm @ignore 特殊な目的に使われるファイルなどのため、展開時に次のファイルを 無視する (どこにもコピーしない) ように、内部で用いられます。 .It Cm @ignore_inst .Cm @ignore と同様ですが、次のファイルを無視するのは一評価サイクルだけ 遅らせられます。 このおかげでこのディレクティブを .Ar packinglist ファイル内で用いることが可能になるので、インストーラが 無視するような、インストールスクリプトなどのための特殊な データファイルを、配布物内に入れることができるようになります。 .It Cm @name Ar name パッケージの名前を設定します。 これは必須項目であり、通常先頭に置かれます。 この名前はパッケージが提供するファイルの名前とは異なる可能性があり、 後でアンインストールする時のために パッケージの記録を残しておくのに使われます。 名前が指定されなかった場合には、 .Nm はパッケージ名から推定し、自動的に設定することに注意してください。 .It Cm @dirrm Ar name ディレクトリ .Pa name がアンインストール時に削除されるよう宣言します。デフォルトでは、 パッケージのインストール時に作成されたディレクトリは アンインストール時には削除されませんが、このディレクティブは明示的な ディレクトリ削除方法を提供します。 このディレクティブはパッケージリストの最後で用いるようにしてください。 一つ以上の .Cm @dirrm ディレクティブが指定された場合、指定された順番に削除されます。 .Pa name は空きディレクトリでなければ削除されません。 .It Cm @mtree Ar name .Pa name を、インストール時に用いられる .Xr mtree 8 への入力ファイルとして宣言します (上述の .Fl m を参照)。最初にひとつだけ .Cm @mtree ディレクティブを指定することが推奨されます。 .It Cm @display Ar name .Pa name を、インストール時に表示されるファイルとして宣言します (上述の .Fl D を参照)。 .It Cm @pkgdep Ar pkgname パッケージ .Ar pkgname に依存することを宣言します。 パッケージ .Ar pkgname はこのパッケージがインストールされる前にインストールされていなければ ならず、またこのパッケージはパッケージ .Ar pkgname がアンインストールされる前にアンインストールされなければなりません。 パッケージが複数のパッケージに依存する場合には、複数の .Cm @pkgdep ディレクティブが用いられます。 .Sh 環境変数 環境変数 .Ev PKG_TMPDIR で、 .Nm が作業用ファイルの生成を試みるディレクトリの名前を指定します。 .Ev PKG_TMPDIR が設定されていない場合、 .Ev TMPDIR で指定されたディレクトリが使用されます。 .Ev PKG_TMPDIR 、 .Ev TMPDIR ともに設定されていない場合は、組み込みのデフォルトディレクトリが 使用されます。 .Sh ファイル .Bl -tag -width /usr/tmp -compact .It Pa /var/tmp 環境変数 .Ev PKG_TMPDIR 、 .Ev TMPDIR がともに設定されていない場合の作業用ディレクトリ。 .It Pa /tmp .Pa /var/tmp が存在しない場合の、その次の選択肢。 .It Pa /usr/tmp .Pa /tmp が適切でない場合の、最後の選択肢。 .El .Sh 関連項目 .Xr pkg_add 1 , .Xr pkg_delete 1 , .Xr pkg_info 1 , .Xr sysconf 3 .Sh 歴史 .Nm コマンドは .Bx Free で最初に登場しました。 .Sh 作者 .An Jordan Hubbard ほとんどの仕事 .An John Kohl NetBSD 向け修正 .El .Sh バグ パッケージが展開される際にハードリンクを保存しておくために、 配布物のファイル間でのハードリンクは .Cm @cwd ディレクティブで括られていなければなりません。 その上、実行時の引数の長さの制限 (これは .Fn sysconf _SC_ARG_MAX により返される値に依存します) のために、それらのハードリンクは単一の .Cm tar 実行内で行われなければなりません。 .Pp バグは他にもあるはずです。 diff --git a/ja_JP.eucJP/man/man1/rm.1 b/ja_JP.eucJP/man/man1/rm.1 index 60d84973a6..070e4e63f5 100644 --- a/ja_JP.eucJP/man/man1/rm.1 +++ b/ja_JP.eucJP/man/man1/rm.1 @@ -1,186 +1,186 @@ .\" %NetBSD: rm.1,v 1.7 1995/03/21 09:08:22 cgd Exp % .\" .\" Copyright (c) 1990, 1993, 1994 .\" The Regents of the University of California. All rights reserved. .\" .\" This code is derived from software contributed to Berkeley by .\" the Institute of Electrical and Electronics Engineers, Inc. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)rm.1 8.5 (Berkeley) 12/5/94 .\" %FreeBSD: src/bin/rm/rm.1,v 1.12.2.3 1999/12/06 05:00:50 kris Exp % .\" .\" jpman %Id: rm.1,v 1.3 1997/05/19 16:49:44 horikawa Stab % .Dd January 28, 1999 .Dt RM 1 .Os .Sh 名称 .Nm rm .Nd ディレクトリエントリの削除 .Sh 書式 .Nm rm .Op Fl dfiPRrvW .Ar file ... .Sh 解説 .Nm は、 コマンドラインから指定された非ディレクトリタイプのファイルを削除します。 指定されたファイルに書き込みパーミッションがなく、 標準入力がターミナルだった場合、 削除を実行してよいかどうかの確認を (標準エラー出力を使って) 求めます。 .Pp オプションとしては以下のものがあります: .Bl -tag -width Fl .It Fl d ディレクトリも、他のタイプのファイルと同様に削除します。本オプション なしに file としてディレクトリを指定した場合、エラーになります。 .It Fl f ファイルのパーミッションに関わらす、確認せずにファイルの 削除を行います。 ファイルが存在しない場合にもエラーメッセージは表示せず、終了ステータス もエラーを返しません。 .Fl f オプション以前に書かれた .Fl i オプションを無視します。 .It Fl i ファイルのパーミッションや標準入力がターミナルであるかどうかに関わらず、 指定された各ファイルを削除する前に、確認を求めるようになります。 .Fl i オプション以前に書かれた .Fl f オプションを無視します。 .It Fl P ファイルを削除する前に上書きします。まず 0xff のバイトパターンで、次に 0x00 で、そして最後にもう一度 0xff で上書きし、削除します。 .It Fl R 引数 file として指定したディレクトリを再帰的に削除します。 .Fl R オプションは、暗黙のうちに .Fl d オプションが指定されたものとします。 .Fl i オプションが指定されているときには、最初にディレクトリを 削除する/しないの確認が求められ、さらに奥のディレクトリについても 各ディレクトリの中身の削除に移る前に確認が求められます。 確認に対して削除すると答えなかった場合には、それ以下のディレクトリは スキップされます。 .Pp .It Fl r .Fl R と同じです。 .It Fl v -ファイルを削除するときに冗長になり、削除時するファイルを表示します。 +ファイルを削除するときに冗長になり、削除する時ファイルを表示します。 .It Fl W 削除したファイルを回復しようとします。 現在このオプションは、 ホワイトアウトされたファイルを回復するためにのみ使用可能です。 .El .Pp .Nm は、シンボリックリンクを削除するときリンクは削除しますが、 リンクが参照しているファイルは削除しません。 .Pp ファイル .Dq \&. と .Dq .. を削除しようとするとエラーになります。 .Pp 指定したファイルをすべて削除した場合か、 .Fl f オプションが指定され、存在するファイルがすべて削除された場合に 0 を返します。 エラーが起きた場合は 1 以上の値を返します。 .Sh 注 .Nm は引数をパースするために .Xr getopt 3 を使用します。getopt は .Sq Li -- 引数を受け付けます。これはフラグオプションの読み込みを終了させます。 それゆえ、ダッシュ .Sq Li - で始まるファイルを削除できます。 例えば: .Dl $ rm -- -filename 絶対もしくは相対参照を用いることで同様の効果が得られます。 例えば: .Dl rm /home/user/-filename .Dl rm ./-filename .Sh 関連項目 .Xr rmdir 1 , .Xr undelete 2 , .Xr unlink 2 , .Xr fts 3 , .Xr getopt 3 , .Xr symlink 7 .Sh バグ .Fl P オプションではファイルシステムが固定ブロック長であると仮定されます。 UFS は固定長ファイルシステムですが、LFS はそうではありません。 さらに、通常ファイルは上書きされますが、それ以外の種類のファイルは 上書きされません。 .Sh 互換性 .Nm は、 .Fl f オプションが存在しないファイルに対するエラーのみをマスクする点が伝統的 実装と異なります。 .Fl v -は標準ではありません。スクリプト中での使用はお勧めしません。 +は標準ではありませんし、スクリプト中での使用はお勧めしません。 .Pp また、伝統的 .Bx 実装では標準エラー出力ではなく標準出力に確認が出力されていました。 .Sh 規格 .Nm コマンドは、ほぼ .St -p1003.2 互換です。 指定された .Ar file がディレクトリの場合には .Nm rm が .Xr rmdir 1 のように動作することを、 .Tn POSIX では求めていることが例外です。 このような動作が必要な場合には、本実装では .Fl d オプションが必要です。 これは、ディレクトリに関する .Nm の歴史的な動作に従っています。 .Sh 歴史 .Nm コマンドは .At v1 から登場しました。 diff --git a/ja_JP.eucJP/man/man1/sh.1 b/ja_JP.eucJP/man/man1/sh.1 index 44852b3f17..f944106daa 100644 --- a/ja_JP.eucJP/man/man1/sh.1 +++ b/ja_JP.eucJP/man/man1/sh.1 @@ -1,1762 +1,1762 @@ .\" Copyright (c) 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" This code is derived from software contributed to Berkeley by .\" Kenneth Almquist. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" from: @(#)sh.1 8.6 (Berkeley) 5/4/95 .\" %FreeBSD: src/bin/sh/sh.1,v 1.23.2.7 1999/12/04 17:19:07 cracauer Exp % .\" .\" jpman %Id: sh.1,v 1.2 1997/05/31 16:40:31 jsakai Stab % .\" Japanese Translation amended by Norihiro Kumagai, 3/29/96, .\" based on the version of NetBSD Japanese Man Project .\" This amended version is for the FreeBSD-jpman Project, convened .\" by Kazuo Horikawa. .\" .Dd May 5, 1995 .Dt SH 1 .Os BSD 4 .Sh 名称 .Nm sh .Nd コマンドインタプリタ (シェル) .Sh 書式 .Nm .Op Fl /+abCEefIimnpsTuVvx .Op Fl /+o Ar longname .Op Fl c Ar string .Op Ar arg ... .Sh 解説 .Nm ユーティリティ はシステムの標準コマンドインタプリタです。 現在 .Nm は .St -p1003.2 のシェル規約に対応する途上にあります。 本バージョンのシェルは、見方によっては Korn shell と同様に 見える機能を多数持っていますが、 .Xr pdksh 1 のような Korn shell クローンではありません。 このシェルには、POSIX で規定された仕様といくつかの Berkeley 拡張のみが 取り入れられています。 本マニュアルは、shell のチュートリアルでは ありませんし、仕様を完全に記述するものでもありません。 .Ss 概要 シェルは、ファイルまたは端末から 1 行ずつ読み込み、それを解釈し、 コマンドを実行します。シェルはユーザがシステムにログインしたときに起動 されるプログラムです (ただし、ユーザは .Xr chsh 1 コマンドによって他のシェルを選択することもできます)。 シェルは、制御構文を持つ言語であり、 データ記憶をはじめとして多様な機能を提供するマクロ機能、 ヒストリ、行編集機能も内蔵しています。 このシェルは対話的に使うときに便利な機能を多くとり入れており、 対話的に用いるときも非対話的に (シェルスクリプトとして) 用いるときも、 共通のインタプリタ言語を用いることができる利点があります。 すなわち、コマンド名をシェルに直接タイプする ことも、コマンド名をファイルに書いておいてそのファイルをシェルに 直接実行させることもできます。 .Ss 起動 .\" .\" XXX This next sentence is incredibly confusing. .\" 引数が与えられず、かつシェルの標準入力が端末の場合 (または .Fl i フラグが指定 された場合)、シェルは対話的に動作します。対話的シェルは、通常、コマンド 入力時にプロンプトを表示し、文法的なエラーとコマンドエラーを 異なった方法で処理します (後述します)。 起動時に、シェルは 0 番目の引数を検査します。もしそれが マイナス記号 .Pq Li - で始まっているなら、シェルはログインシェルとして 動作します。ユーザがシステムにログインした場合は自動的にこの状況に なります。ログインシェルは、まず (以下の各ファイルが存在する場合)、 .Pa /etc/profile と次に .Pa .profile ファイルからコマンドを読み込みます。 シェル起動時に、もしくはログインシェルで .Pa .profile を実行中に環境変数 .Ev ENV が設定されているなら、シェルは、その次に環境変数 .Ev ENV で示されたファイルからコマンドを読み込みます。 つまり、ユーザはログイン時にのみ実行したいコマンドを .Pa .profile に書き、シェルが起動されるたびに実行したいコマンドを環境変数 .Ev ENV で示すファイルに書くことになります。 環境変数 .Ev ENV を設定するには、ホームディレクトリ下のファイル .Pa .profile に以下のように記述します。 ここで .Pa .shinit のかわりに好きな名前を指定することができます。 .Pp .Dl ENV=$HOME/.shinit; export ENV .Pp コマンドライン引数で指定されたオプション以外の最初のものを、シェルは コマンドを読み込むべきファイル (シェルスクリプト) の名前であると解釈し、 それ以後の引数はシェルの位置パラメータ ($1, $2, ...) に設定します。 それ以外の場合、シェルはコマンドを標準入力から読み込みます。 .Pp 古いバージョンの .Nm とは異なり、環境変数 .Ev ENV で指定したスクリプトが実行されるのは、対話的シェルの呼び出し時のみです。 これにより、いい加減に書かれた .Ev ENV スクリプトに起因する、簡単に食いものにされることが多い有名な セキュリティホールがふさがれたことになります。 .Ss 引数リスト処理 .Nm の 1 文字からなるオプションはそれぞれ対応する長い名前を持っています。 ただし .Fl c と .Fl /+o は例外です。 次の解説では、長い名前は単一文字オプションの後で説明します。 あるオプションの長い名前は、 .Xr sh 1 の .Fl /+o オプションへの引数として指定可能です。 シェルが起動されると、 オプションの長い名前を .Ic set 組み込みコマンド (後述の .Sx 組み込みコマンド で説明) の .Fl /+o オプションへの引数として指定可能です。 マイナス記号 .Pq Li - でオプションを指定することは、そのオプションを有効にすることを意味し、 プラス記号 .Pq Li + でオプションを指定することは、そのオプションを無効にすることを意味します。 .Dq Li -- または、単なる .Dq Li - はオプション処理を終了させ、 コマンドラインの残りの語を引数として解釈することを強制します。 .Fl /+o と .Fl c のオプションは長い名前を持ちません。 .Bl -tag -width Ds .It Fl a Li allexport 値が代入されたときに変数をエクスポートするよう、変数にフラグを付けます。 .It Fl b Li notify バックグラウンドジョブ実行の完了を、コマンドが実行中でも即座に報告しま す (未実装です)。 .It Fl C Li noclobber すでに存在するファイルに対して .Dq Li > リダイレクトにより上書きしません (未実装です)。 .It Fl E Li emacs 組み込みの .Xr emacs 1 風のコマンド行編集機能を有効にします (それ以前に .Fl V オプションが指定された場合、それを無効にします)。 .It Fl e Li errexit 非対話モードで、テスト状態にないコマンドの実行に失敗した場合、 直ちにシェルを終了します。 コマンドは、if, elif, while, until 構文を 制御するのに用いられている場合に、テスト状態であるとみなされます。 また、 .Dq Li && や .Dq Li || の左辺値として用いられているコマンドも、テスト状態とみなされます。 .It Fl f Li noglob パス名展開を行ないません。 .It Fl I Li ignoreeof 対話的シェルの場合、入力の .Dv EOF を無視します。 .It Fl i Li interactive シェルが対話的に動作するように強制します。 .It Fl m Li monitor ジョブ制御を可能にします (対話的シェルの場合は自動的に設定されます)。 .It Fl n Li noexec 非対話的シェルの場合、コマンドを読み込みますが、そのコマンドの実行は しません。シェルスクリプトの文法を検査する場合に便利です。 .It Fl p Li privileged 特権モードを有効にします。 起動時に実効ユーザ ID あるいは実効グループ ID が、実ユーザ ID や実グルー プ ID と一致していなければ、このモードが有効になります。このモードを無 効化すると、実効ユーザ ID および実効グループ ID は、実ユーザ ID および 実グループ ID に設定されます。 対話的シェルでこのモードが有効になっていると、 .Pa /etc/profile の後で .Pa ~/.profile に代わり、 .Pa /etc/suid_profile を読み込みます。一方、環境変数 .Ev ENV の内容は無視されます。 .It Fl s Li stdin コマンドを標準入力から読み込みます (引数でファイル名が指定されていない 場合には、このオプションが自動的に設定されます)。 シェルが実行されてから本オプションを ( .Ic set などによって) 設定しても効果はありません。 .It Fl T Li asynctraps 子を待つとき、即座にトラップを実行します。 本オプションが設定されていないと、 .St -p1003.2 で指定されているように、子が終了した後にトラップが実行されます。 この非標準オプションは、 シグナルをブロックする子の周囲に保護シェルを置くために有用です。 周囲のシェルは子を殺したり、 次のように、制御を tty に戻して子だけを残したりできます: .Bd -literal -offset indent sh -T -c "trap 'exit 1' 2 ; some-blocking-program" .Ed .Pp .It Fl u Li nounset 値が設定されていない変数を展開しようとした場合、 標準エラー出力にエラーメッセージを出力し、 さらに非対話的シェルならば、ただちにシェルを終了します (未実装です)。 .It Fl V Li vi 組み込みの .Xr vi 1 風の行編集機能を有効にします (それ以前に .Fl E オプションが指定されていた場合、それは無効になります)。 .It Fl v Li verbose 入力を読み込むごとに標準エラー出力に書き出します。デバッグのときに便利です。 .It Fl x Li xtrace 各コマンドを実行する前に、そのコマンドを標準エラー出力に (各コマンドの 前に .Dq Li + \ を付加して) 書き出します。デバッグのときに便利です。 .El .Pp .Fl c オプションは、シェルの入力として解釈させる文字列引数を渡すために使用可能です。 このオプションは引数として文字列を一つだけ受け取ることに注意して下さい。 ですから、複数の単語からなる文字列は引用符で囲う必要があります。 .Pp .Fl /+o オプションは、オプションの長い名前のみを引数としてとり、 オプションの有効化と無効化を行います。 例えば、次の 2 つの .Nm 起動方法では組み込みの .Xr emacs 1 コマンドラインエディタを有効化します: .Bd -literal -offset indent set -E set -o emacs .Ed .Ss 構文構造 シェルは、ファイルを行単位で読み込み、空白文字 (ブランクおよびタブ) や シェルにとって特別な意味を持つ特定の文字列 ( .Dq 演算子 と呼ばれるものです) を区切りとして、複数の単語に分割します。演算子には、制御演算子とリ ダイレクト演算子の 2 種類があります (これらの意味については後述します)。 以下に、それらの一覧を示します。 .Bl -tag -width Ds .It No 制御演算子: .Bl -column "XXX" "XXX" "XXX" "XXX" "XXX" -offset center -compact .It Xo .Li & Ta Xo .Li && Ta Xo .Li ( Ta Xo .Li ) Ta Xo .Li \en .Xc Xc Xc Xc Xc .It Xo .Li ;; Ta Xo .Li ; Ta Xo .Li | Ta Xo .Li || .Xc Xc Xc Xc .El .It No リダイレクト演算子: .Bl -column "XXX" "XXX" "XXX" "XXX" -offset center -compact .It Xo .Li < Ta Xo .Li > Ta Xo .Li << Ta Xo .Li >> .Xc Xc Xc Xc .It Xo .Li <& Ta Xo .Li >& Ta Xo .Li <<- Ta Xo .Li >| .Xc Xc Xc Xc .El .El .Ss 引用 (クォート) 引用は、特殊な意味を持つ文字や単語 (演算子、空白、キーワードなど) の意味 を打ち消すために用います。引用には、シングルクォート文字のペアを使う方法、 ダブルクォート文字のペアを使う方法、バックスラッシュ文字を使う方法 の 3 種類があります。 .Bl -tag -width Ds .It シングルクォート文字 シングルクォートのペアで囲まれた文字は、すべてその文字そのまま (リテラル) として扱われます (ただしシングルクォートは別です。シングルクォート で囲った文字列の中にシングルクォートを含めることはできません)。 .It ダブルクォート文字 ダブルクォートのペアで囲まれた文字は、ドル記号文字 .Pq Li $ 、バッククォート文字 .Pq Li ` 、バックスラッシュ文字 .Po Li \e\" .Pc を除き、すべてリテラルとして扱われます。 ダブルクォート文字による引用の中にあるバックスラッシュ文字は、歴史 的経緯によりすこし変わった扱いを受けます。 次の文字の前にある場合はクォートになりますが、 それ以外ではリテラルのままとなります: .Bl -column "XXX" "XXX" "XXX" "XXX" "XXX" -offset center -compact .It Xo .Li $ Ta Xo .Li ` Ta Xo .Li \&" Ta Xo .Li \e\ Ta Xo .Li \en .Xc Xc Xc Xc Xc .El .It バックスラッシュ バックスラッシュは、その後ろの 1 文字を、リテラルとして扱うように指示 します。ただし改行文字 .Pq Li \en は別です。改行文字の直前のバックスラッシュは、行 の継続であるとみなされます。 .El .Ss 予約語 予約語はシェルにとって特別な意味を持つ単語で、行の先頭または制御演算子 の直後でのみ予約語として認識されます。以下に予約語の一覧を挙げます。 .Bl -column "doneXX" "elifXX" "elseXX" "untilXX" "whileX" -offset center .It Xo .Li ! Ta Xo .Li { Ta Xo .Li } Ta Xo .Ic case Ta Xo .Ic do .Xc Xc Xc Xc Xc .It Xo .Ic done Ta Xo .Ic elif Ta Xo .Ic else Ta Xo .Ic esac Ta Xo .Ic fi .Xc Xc Xc Xc Xc .It Xo .Ic for Ta Xo .Ic if Ta Xo .Ic then Ta Xo .Ic until Ta Xo .Ic while .Xc Xc Xc Xc Xc .El .Ss エイリアス エイリアスは、名前とそれと対応する値が対になったもので、 組み込みコマンド .Ic alias によって定義されます。 シェルは、予約語が現れる可能性がある場所 (上記を参照) で、 ある単語に対して、それが予約語かどうかの検査を済ませたのち、 それがエイリアスに一致するかどうかを検査します。 もし一致したならば、入力行の中で、その単語をエイリアスの値に置き換えます。 たとえば、 .Dq Li lf という名前で .Dq Li ls -F という値を持つエイリアスが 存在したとすると、次の入力行 .Bd -literal -offset indent lf foobar .Ed .Pp は、以下のように置換されます。 .Bd -literal -offset indent ls -F foobar .Ed .Pp エイリアスは、初心者に対し、引数付きの関数を生成する面倒を求めることなく、 短いコマンドをつくり出す便利な方法を提供するものです。 しかし、構文的にあいまいなコードを作り出すことにもつながりかねません。 そのような使い方はお勧めできません。 .Ss コマンド シェルは、読み込んだ単語を、文法に従って解釈します。 本マニュアルでは文法については解説しません。 .St -p1003.2 の BNF 表記を参照してください。要するに、行を1行を読み込み、読み込んだ 行の最初の単語 (制御演算子がある場合は、そのあとの最初の単語) が予約語 でない場合、シェルはその行を単純コマンドとして解釈します。それ以外の場 合、複合コマンドあるいは特殊構造であると解釈します。 .Ss 単純コマンド 単純コマンドを解釈する場合、シェルは以下のような動作をします。 .Bl -enum .It 単語の前にある .Dq Li name=value の形式の単語を取り除き、 単純コマンドの環境に代入します。 リダイレクト演算子とその引数 (後述) を取り除き、 あとで処理できるように保存します。 .It 残った単語を、 .Sx 単語展開 の節で説明する方法で展開します。 展開後の最初の単語をコマンド名とみなし、コマンドの位置を探索します。 残りの単語はコマンドへの引数とみなされます。 処理の結果、コマンド名が残らなかった場合、手順 1) で 取り出した .Dq Li name=value の変数代入を、現在のシェルの環境に反映します。 .It 次節で説明する方法で、リダイレクトを行ないます。 .El .Ss リダイレクト リダイレクトは、コマンドがどこから入力するか、どこへ出力するかを 変更するときに用います。 一般には、リダイレクトでは、ファイルのオープン、クローズ、または ファイルへの参照の複製 (duplicate) を行います。 リダイレクトで用いられる全般的な形式は、以下のとおりです。 .Pp .Dl [n] redir-op file .Pp ここで、 .Ql redir-op は前述したリダイレクト演算子のいずれかです。 これらの演算子をどのように利用するかの例をいくつか以下に挙げます。 .Bl -tag -width "1234567890XX" -offset indent .It Li [n]> file 標準出力 (またはファイル記述子 n) を file にリダイレクトします .It Li [n]>| file 上と同様。ただし .Fl C オプションの効果を打ち消します。 .It Li [n]>> file 標準出力 (またはファイル記述子 n) を file に追加します。 .It Li [n]< file 標準入力 (またはファイル記述子 n) を file からリダイレクトします。 .It Li [n1]<&n2 ファイル記述子 n2 を標準入力 (またはファイル記述子 n1) に複製します。 .It Li [n]<&- 標準入力 (またはファイル記述子 n) をクローズします。 .It Li [n1]>&n2 -標準出力 (またはファイル記述子 n1) をファイル記述子 n2 に複製します -(訳注: ファイル記述子 n2 を標準出力 (または n1) のファイル記述子に -複製する結果、標準出力 (またはファイル記述子 n1 への出力) が n2 に -リダイレクトされる、ということです)。 +標準出力 (またはファイル記述子 n1) をファイル記述子 n2 に複製します。 +(訳注: 通常は「ファイル記述子 n2 を標準出力 (またはファイル記述子 n1) に +複製」と表現します。 +結果は、標準出力 (または n1 への出力) の n2 へのリダイレクトです。) .\" [man-jp 1544], [man-jp 1827] 以降のスレッド参照。 .It Li [n]>&- 標準出力 (または n) をクローズします。 .El .Pp 以下のリダイレクトは、しばしば .Dq ヒア・ドキュメント (here-document) と 呼ばれます。 .Bd -literal -offset indent [n]<< delimiter here-doc-text ... delimiter .Ed .Pp シェルは、delimiter までの行を保存し、コマンドへの標準入力またはファイ ル記述子 n にリダイレクトします。最初の行の delimiter が引用 (クォート) されていた場合、here-doc-text の内容をリテラルとして扱います。 そうでない場合、パラメータ展開、コマンド置換、数値演算 ( .Sx 単語展開 の節で 説明します) を適用します。演算子が ( .Dq Li << でなく) .Dq Li <<- の場合は、 here-doc-text の各行の行頭のタブを取り除きます。 .Ss コマンド検索と実行 コマンドには、シェル関数、組み込みコマンド、通常プログラムの 3 種類があり、 コマンドを検索する際には、シェルは名前の検索をこの順序で行います。 3 種類のコマンドは異なる方法で実行されます。 .Pp シェル関数を実行するとき、$0 を除くすべての位置パラメータ ($1, $2,..) をシェル関数への引数として設定します。$0 は変更されません。シェル関数 の環境として指定された変数 (関数名の直前に .Dq name=value を置いて指定 されたもの) は、その関数に局所的な変数となり、指定された初期値が設定さ れます。そして、シェルは関数定義で与えられたコマンドを実行します。コマ ンドの実行が完了すると、位置パラメータを元の値に戻します。これは全て現 在のシェルの中で処理されます。 .Pp 組み込みコマンドは、新たなプロセスを作成せずにシェル内部で実行されます。 .Pp コマンドが関数でも組み込みコマンドでもない場合は、通常のプログラムとみなし (次節で説明するとおり) ファイルシステムの中でそのコマンドを検索します。 通常のプログラムを実行する場合、シェルは引数と 環境をプログラムに渡して、そのプログラムを実行します。 プログラムが通常の実行ファイル形式ではない場合 (つまり、 .Tn ASCII 表現で .Qq #! となる .Qq マジックナンバ でファイルが始まっておらず、 .Xr execve 2 が .Dv ENOEXEC を返す場合)、 サブシェルの中でそのプログラムを解釈実行します。この場合、あたかも新たに シェルが起動されたかのような効果を得るために、子シェルは自分自身を 再初期化します。ただし、子プロセスは、親シェル中のハッシュされたコマンド 位置情報を憶えており、これは再初期化されません。 .Pp 本ドキュメントの古いバージョンや古いソースコードでは、ときおり、 マジックナンバのないシェルスクリプトのことを .Qq シェル手続き と呼んでいて、 まぎらわしい場合がありますので注意して下さい。 .Ss パス検索 コマンドを検索するとき、シェルは、まず、その名前のシェル関数があるかどうかを 調べます。次に、その名前の組み込みコマンドがあるかどうかを調べます。 組み込みコマンドでもない場合、以下のいずれかの処理が行われます: .Bl -enum .It コマンド名にスラッシュが含まれていれば、検索は行わず、 単にそのコマンドが実行されます。 .It 変数 .Ev PATH に含まれる各エントリに対して、順にそのコマンドを検索します。 変数 .Ev PATH の値はコロン .Dq : で区切られたエントリの列でなければなりません。 各エントリは、それぞれディレクトリ名一つに対応します。 カレントディレクトリは、 空のディレクトリ名を指定することで暗黙的に、 あるいは 1 個のピリオドを指定することで明示的に 指示することができます。 .El .Ss コマンドの実行ステータス 各コマンドは終了ステータスを持ち、それにより他のシェルコマンドの動作に 影響を与えることができます。基本的な考え方として、終了ステータス 0 は 通常の終了または成功を示します。0 以外の終了ステータスは失敗、エラーを 意味します。各コマンドのマニュアルにそれぞれの終了ステータスがどのよう な意味を持つかが記述されているはずです。組み込みコマンドと (実行された) 関数も終了ステータスを返します。 .Pp コマンドがシグナルにより終了 (terminate) させられた場合、 終了ステータスは 128 にシグナル番号を加えたものになります。 シグナル番号はヘッダファイル .Aq Pa sys/signal.h に定義されています。 .Ss 複合コマンド (Complex Commands) 複合コマンドは、単純コマンドの組み合わせで作ります。 制御演算子または予約語と組み合わせることで、より大きな複合コマンドを生 成します。一般に、コマンドは以下のうちのいずれかです。 .Bl -item -offset indent .It 単純コマンド .It パイプライン .It リストまたは合成リスト (compound-list) .It 合成コマンド (compound command) .It 関数定義 .El .Pp 特に指定のない場合、コマンドの終了ステータスは最後に実行された 単純コマンドの終了ステータスとなります。 .Ss パイプライン パイプラインは、複数のコマンドを制御演算子 `|' によってつないだものです。 最後のコマンドを除くすべてのコマンドの標準出力は、次のコマンドの標準入力に 接続されます。 最後のコマンドの標準出力は、通常通り、シェルから受け継がれます。 .Pp パイプラインの形式は次のとおりです。 .Pp .Dl [!] command1 [ | command2 ...] .Pp command1 の標準出力は command2 の標準入力に接続されます。コマンドの標 準入出力がパイプラインによって割り当てられるのは、各コマンドに属する リダイレクト演算子で指定されたリダイレクトを処理する前のことだと考えて 下さい。 .Pp パイプラインがバックグラウンド (後述) でなければ、シェルはすべての コマンドが終了するのを待ちます。 .Pp パイプラインの直前に予約語 `!' が置かれなかった場合、終了ステータスは パイプラインの最後のコマンドの終了ステータスとなります。 `!' が前置された場合、終了ステータスはパイプラインの最後のコマンドの 終了ステータスの論理否定を取った値となります。 すなわち、最後のコマンドが 0 を返した場合、パイプラインの 終了ステータスは 1 に、最後のコマンドが 0 より大きな値を返した場合、 終了ステータスは 0 になります。 .Pp パイプラインによる標準入出力の接続はリダイレクトに先立って行われるため、 パイプラインの接続をリダイレクトによって修正することができます。たとえば、 .Pp .Dl $ command1 2>&1 | command2 .Pp .Ql command1 の標準出力と標準エラー出力の両方を .Ql command2 の標準入力に 接続します。 .Pp .Dq Li \&; または改行文字を終端として用いることにより、直前の AND-OR リスト ( .Sx 短絡リスト演算子 で後述) を順次実行します。 .Dq Li & は、直前の AND-OR リストを非同期に実行します。 .Pp 注: 他のいくつかのシェルと異なり、 .Nm ではパイプラインの各プロセスは起動した .Nm の子プロセスとなります。シェルの組み込みコマンドである ときは別です。その場合は現在のシェルで実行されますが、 環境に対する操作は影響を与えません。 .Ss バックグラウンドコマンド (&) コマンドが制御演算子がアンパサンド .Pq Li & で終了している場合、シェルはそのコマンドを 非同期に実行します。すなわち、シェルはそのコマンドの終了を待たずに、 次のコマンドの実行を開始します。 .Pp コマンドをバックグラウンドで実行させるための形式は以下のとおりです。 .Bd -literal -offset indent command1 & [command2 & ...] .Ed .Pp シェルが対話的でない場合、非同期コマンドの標準入力には /dev/null が 接続されます。 .Ss リスト (一般的な話) リストは 0 個またはそれ以上のコマンドを改行文字、セミコロン文字、アン パーサント文字 (&) で区切った列です。リストは、これら 3 つの記号のいずれかで 終了させることもできます。リスト中のコマンドは並べられた順に実行 されます。もし、コマンドに続けてアンパーサント文字が置かれている場合、 シェルはそのコマンドを起動したあと、すぐに次のコマンドの処理を開始します。 その他の場合、そのコマンドの終了を待ってから次のコマンドの処理を開始します。 .Ss 短絡リスト演算子 (Short-Circuit List Operators) .Dq Li && と .Dq Li || は AND-OR リスト演算子です。 .Dq Li && は最初のコマンド を実行し、もし最初のコマンドの終了ステータスが 0 ならば次のコマンドを 実行します。 .Dq Li || も同様ですが、最初のコマンドの終了ステータスが 0 でない場合に、次のコマンドを実行します。 .Dq Li && と .Dq Li || の優先順位は 同じです。 .Ss 制御構造 (if, while, for, case) .Ic if コマンドの文法は以下のとおりです。 .\" .\" XXX Use .Dl to work around broken handling of .Ic inside .Bd and .Ed . .\" .Dl Ic if Ar list .Dl Ic then Ar list .Dl [ Ic elif Ar list .Dl Ic then Ar list ] ... .Dl [ Ic else Ar list ] .Dl Ic fi .Pp .Ic while コマンドの文法は以下のとおりです。 .Dl Ic while Ar list .Dl Ic do Ar list .Dl Ic done .Pp 最初のリストの終了ステータスが 0 であるかぎり、2 つのリストを繰り返し 実行します。 .Ic until コマンドも同様に実行しますが、 単語 .Ic while の代わりに単語 .Ic until を使うことと、 最初のリストの終了ステータスが 0 になるまで、 2 つのリストを繰り返し実行することが異なります。 .Pp .Ic for コマンドの文法は以下のとおりです。 .Dl Ic for Ar variable Ic in Ar word ... .Dl Ic do Ar list .Dl Ic done .Pp 各 word は展開され、変数 variable に word を順に設定しながらリストを 繰り返し実行します。 .Ic do と .Ic done は .Dq Li { と .Dq Li } で置き換えることができます。 .Pp .Ic break と .Ic continue コマンドの文法は以下のとおりです。 .Dl Ic break Op Ar num .Dl Ic continue Op Ar num .Pp .Ic break は内側から .Ar num 個の .Ic for ループまたは .Ic while ループを終了します。 .Ic continue は内側から .Ar num 個のループの次の繰り返しに制御を移します。 .\" 上の文、原文では以下のようになっているが、the *num* innermost loop が .\" 正しいと思われる。実際の sh の動作もそうなっているようだ。 .\" --- 97/05/31 sakai@jp.freebsd.org ↓ .\" Continue continues with the next iteration of the innermost loop. これらのコマンドは組み込みコマンドとして実装されています。 .Pp .Ic case コマンドの文法は以下のとおりです。 .Dl Ic case Ar word Ic in .Dl pattern) list ;; .Dl ... .Dl Ic esac .Pp pattern は、1 つあるいは複数のパターン (後述の .Sx シェルパターン を参照のこと) を .Dq Li \&| で接続したものです。 .Ss 複数のコマンドのグループ化 コマンドは、以下のいずれかの方法によりグループ化することができます。 .Bd -literal -offset indent (list) .Ed .Pp または、 .Bd -literal -offset indent { list; } .Ed .Pp 最初の形式では、コマンドはサブシェル上で実行されます。 この組み込みコマンドは現在のシェルには影響を与えないことに注意してください。 2 つめの形式では新たなシェルを fork しないので、やや効率が良くなります。 このようにして複数コマンドをグループ化することで、 あたかも単一プログラムであるかのように、それらの出力をまとめて リダイレクトすることができます。 .Bd -literal -offset indent { echo -n "hello"; echo " world"; } > greeting .Ed .Ss 関数 関数定義の構文は以下のとおりです。 .Bd -literal -offset indent name ( ) command .Ed .Pp 関数定義は実行可能文の一種です。実行されると、名前 name の関数 が定義され、終了ステータスとして 0 を返します。command は 通常、 .Dq Li { と .Dq Li } で囲まれたリストです。 .Pp .Ic local コマンドを用いて関数に局所的な変数を宣言することができます。 これは関数定義中の最初の文で行わなければなりません。構文は次のとおりです。 .Bd -ragged -offset indent .Ic local .Op Ar variable ... .Op Ar - .Ed .Pp .Ic local コマンドは、組み込みコマンドとして実装されています。 .Pp 変数を局所変数にする場合、関数を呼び出した環境に同じ名前の変数があれば、 新しい局所変数は値と export、readonly フラグを引き継ぎます。もし同じ名前の 変数がなければ、局所変数は初期値を持ちません。シェルは動的スコープ を用います。すなわち、関数 .Em f に局所的な変数 .Em x を作成し、関数 .Em f から関数 .Em g を呼び出した場合、関数 .Em g 内部での変数 .Em x に対する操作は大域変数 .Em x ではなく、関数 .Em f で宣言された変数 .Em x への操作となります。 .Pp 特殊パラメータのうち局所宣言できるのは .Dq Li - だけです。 .Dq Li - を 局所宣言すると、関数内で set コマンドを用いてシェルオプションを 変更しても、関数が終了するとそれらのオプションは元の値に戻ります。 .Pp .Ic return コマンドの文法は以下のとおりです。 .Bd -ragged -offset indent .Ic return .Op Ar exitstatus .Ed .Pp .Ic return は現在実行中の関数を終了させます。 .Ic return は組み込みコマンドとして実装されています。 .Ss 変数とパラメータ シェルはパラメータの集合を管理しています。名前を持つパラメータを 変数と呼びます。シェルは、起動時にすべての環境変数をシェル変数に取り込みます。 新たな変数は、次の形式によって設定できます。 .Bd -literal -offset indent name=value .Ed .Pp ユーザが設定する変数は、アルファベット、数字、アンダスコア (_) のみ からなる名前を持つ必要があります。また、最初の文字が数字であっては いけません。 パラメータは、以下に示す数字または特殊記号により参照することもできます。 .Ss 位置パラメータ 位置パラメータは、0 より大の数字によって参照されるパラメータです。シェルは 位置パラメータの初期値としてシェルスクリプト名に続く引数を設定します。 組み込みコマンド .Ic set により再設定や消去ができます。 .Ss 特殊パラメータ 特殊パラメータは、以下に挙げる特殊文字のいずれかにより参照される パラメータです。各パラメータの値の説明を各文字の後ろに示します。 .Bl -hang .It Li * 位置パラメータ 1,2,... に展開されます。ダブルクォート文字列内部で展開 される場合、展開結果は各位置パラメータの間を変数 .Ev IFS の先頭の文字 ( .Ev IFS が設定されていない場合は .Aq 空白文字 ) で区切った単一の文字列になります。 .It Li @ 位置パラメータ 1,2,... に展開されます。ダブルクォート引用の内部で展開 される場合、各位置パラメータは別々の引数となります。 もし、位置パラメータが設定されていない場合には、 .Li @ の展開結果は 0 個の引数となります (ダブルクォート引用の内部であっても)。 すなわち、$1 が .Dq abc 、$2 が .Dq def ghi であった場合、 .Qq Li $@ は 次の 2 つの引数に展開されます。 .Bd -literal -offset indent "abc" "def ghi" .Ed .It Li # 位置パラメータの数に展開されます。 .It Li ? 最後に実行したパイプラインの終了ステータスに展開されます。 .It Li - (ハイフン) 現在のオプションフラグ (1 文字オプション名をつないだ文字列) に展開されます。起動時に指定されたもの、組み込みコマンド set で指定した もの、シェルが暗黙に設定したもののすべてを含みます。 .It Li $ 起動されたシェルのプロセス ID に展開されます。 サブシェルも親シェルと同じ値を持ちます。 .It Li ! 現在のシェルが最後にバックグラウンドで実行したコマンドのプロセス ID に 展開されます。パイプラインの場合、パイプラインの最後のコマンドの プロセス ID になります。 .It Li 0 (ゼロ) シェルの名前またはシェルスクリプト名に展開されます。 .El .Ss 単語展開 本節では、単語に対して適用されるさまざまな展開について説明します。あとで 述べるように、すべての展開がすべての単語に対して適用されるわけではありません。 .Pp 単一の単語に対して適用されたチルダ展開、パラメータ展開、コマンド置換、 数式展開、クォート削除の結果は単一のフィールドになります。単一の単語が 複数のフィールドに分割される可能性があるのは、フィールド分割または パス名展開の場合だけです。この規則の唯一の例外は、ダブルクォート中の パラメータ .Li @ の展開です (前述)。 .Pp 単語展開の順序は以下のとおりです。 .Bl -enum .It チルダ展開、パラメータ展開、コマンド置換、数式展開 (これらはすべて 同時に行われます) .It 変数 .Ev IFS の値が空でなければ、(1) の結果の各フィールドに対して フィールド分割が行われる .It パス名展開 ( .Fl f オプションが無効の場合) .It クォート削除 .El .Pp 文字 .Dq Li $ はパラメータ展開、コマンド置換、数式評価を行うきっかけになります。 .Ss チルダ展開 (ユーザのホームディレクトリ名への置換) 引用されていないチルダ文字 .Pq Li ~ で始まる単語は、チルダ展開の対象になります。 チルダ文字からスラッシュ文字 .Pq Li / または単語の終端までのすべての文字がユーザ名 とみなされ、そのユーザのホームディレクトリに置換されます。もしユーザ名が 省略された場合 (たとえば ~/foobar)、チルダ文字は変数 HOME の値 (現在のユーザのホームディレクトリ) に置換されます。 .Ss パラメータ展開 パラメータ展開の形式は以下のとおりです。 .Bd -literal -offset indent ${expression} .Ed .Pp ここで、expression は対応した .Dq Li } までのすべての文字です。対応する .Dq Li } を調べる際に、バックスラッシュ文字によりエスケープされたり、クォート文字に 狭まれた .Dq } や、数式展開に埋め込まれている文字や、コマンド置換や変数展開中に ある文字は調べる対象になりません。 .Pp パラメータ展開の形式のうちもっとも単純なものは以下のとおりです。 .Bd -literal -offset indent ${parameter} .Ed .Pp そのパラメータに値が存在する場合、その値に置き換えられます。 .Pp パラメータ名やシンボルを中括弧 ({}) で囲んでも構いません。この中括弧は、 数字 2 文字以上からなる位置パラメータの場合や、パラメータ名の直後に パラメータ名の一部であるとみなし得る文字が続く場合を除き、 省略可能です。ダブルクォート引用中のパラメータ展開は以下 のようになります。 .Bl -enum .It パラメータ展開を行った結果の単語に対しては、パス名展開は適用されません。 .It パラメータが特殊パラメータ .Li @ の場合を除き、フィールド分割は適用されません。 .El .Pp さらに、以下の形式を用いることにより、パラメータ展開の結果に修正を加える ことができます。 .Bl -tag -width Ds .It Li ${parameter:-word} デフォルト値への置換: パラメータ parameter が設定されていないか空の値 を持つ場合、word を展開した結果に置換されます。さもなければ、パラメー タ parameter の値に置換されます。 .It Li ${parameter:=word} デフォルト値の代入: パラメータ parameter が設定されていないか空の値を持つ場合、word を展開 した結果が parameter に代入されます。最終的にパラメータ parameter の値 に置換されます。位置パラメータや特殊パラメータは、この方法で代入すること はできません。 .It Li ${parameter:?[word]} 空か設定されていないときにエラーとする: パラメータ parameter が設定されていないか空の値を持つ場合、word を展開 した結果 (word が省略された場合にはパラメータが設定されていないことを表す デフォルトのメッセージ) が標準エラー出力に書き出され、 シェルは非 0 の終了ステータスで終了します。 それ以外の場合、パラメータ parameter の値に置換されます。対話的シェルの場合は 必ずしも終了しません。 .It Li ${parameter:+word} 代替値の使用: パラメータ parameter が設定されていないか空の値を持つ場合、空の値に 置換されます。さもなければ、word を展開した結果に置換されます。 .Pp 以上のパラメータ展開において、`:' を用いた場合はパラメータが設定されていない かまたは空の値であることが検査され、`:' を省略するとパラメータが 設定されていないことのみを検査します。 .It Li ${#parameter} 文字列の長さ: パラメータの値の (文字列としての) 長さに置換されます。 .Pp 以下の 4 通りのパラメータ展開は部分文字列切り出し処理を行います。各場合 において、パターンは正規表現ではなく、パターンマッチ記法 ( .Sx シェルパターン の項を参照) が用いられます。パラメータが .Li * または .Li @ の場合、展開の結果 がどうなるかは規定しません (unspecified)。 パラメータ展開全体をダブルクォートで囲んでも パターンは引用されません。中括弧のなかで引用することにより パターンを引用することができます。 .It Li ${parameter%word} 最短後置パターンの削除: まず word が展開され、その結果をパターンとして扱います。 パラメータ parameter の右から、パターンに一致する最短の部分を削除した文字列に 置換されます。 .It Li ${parameter%%word} 最長後置パターンの削除: まず word が展開され、その結果をパターンとして扱います。 パラメータ parameter の右から、パターンに一致する最長の部分を削除した文字列に 置換されます。 .It Li ${parameter#word} 最短前置パターンの削除: まず word が展開され、その結果をパターンとして扱います。 パラメータ parameter の左から、パターンに一致する最短の部分を削除した文字列に 置換されます。 .It Li ${parameter##word} 最長前置パターンの削除: まず word が展開され、その結果をパターンとして扱います。 パラメータ parameter の左から、パターンに一致する最長の部分を削除した文字列に 置換されます。 .El .Ss コマンド置換 コマンド置換により、コマンド名自身をコマンドの出力で置き換えることができます。 コマンド置換は、以下のように、コマンド command を囲った場合、 .Bd -literal -offset indent $(command) .Ed .Pp またはバッククォートバージョン .Bd -literal -offset indent `command` .Ed .Pp とした場合に行なわれます。 シェルは、コマンド command をサブシェルの環境で実行し、command が標準出力 に出力したものから最後の改行文字を削除した結果で置換します。 最後以外の 改行は削除しません。ただし、フィールド分割の際に、 .Ev IFS の値や引用のされかたによっては、 ここで残った改行文字が結局は空白に置換されることもあります。 .Ss 数式展開 数式展開とは、数式を評価し、その値に置換する仕組みです。数式展開の形式は以下 のとおりです。 .Bd -literal -offset indent $((expression)) .Ed .Pp 数式 expression は、その中のダブルクォート文字が特別扱いを受けないという 点を除いては、ダブルクォート文字で囲まれている文字列と同様に扱われます。 シェルは expression 中のすべてのトークンにパラメータ展開、コマンド置換、 クォート削除を適用します。 .Pp 次にシェルはその結果を数式として扱い、その値に置換します。 .Ss 空白文字による分割 (フィールド分割) パラメータ展開、コマンド置換、数式展開のあと、シェルは展開結果を調べて、 ダブルクォートの外にある部分に対してフィールド分割を適用します。 その結果、複数のフィールドになる場合もあります。 .Pp シェルは、変数 .Ev IFS に設定されている文字それぞれ区切り文字とみなし、 パラメータ展開の結果、およびコマンド置換の結果をフィールドに分割します。 .Ss パス名展開 (ファイル名生成) .Fl f フラグが設定されていなければ、フィールド分割が行われたあと、ファイル名生成 が行われます。各単語は、スラッシュで区切られたパターンの列であるとみなさ れます。パス名展開処理において、単語は、条件を満たすファイル すべてのファイル名の列で置換されます。この各ファイル名は、単語の 各パターン部分を、そのパターンに一致する文字列に置換することで 生成されるものです。 これには 2 つの制限があります: まず、パターンはスラッシュを含む文字列には 一致しません。次に、パターンは、そのパターンがピリオドで始まらないかぎり、 ピリオドで始まる文字列に一致しません。 次節では、パス名展開と .Ic case コマンドで用いられるパターンについて説明します。 .Ss シェルパターン パターンは、通常の文字とメタキャラクタからなります。通常の文字は、 その文字そのものに一致します。 メタキャラクタは .Dq Li ! , .Dq Li * , .Dq Li ? , .Dq Li [ です。これらの文字を引用 すると、各々の特殊な意味を失います。コマンド置換や変数置換において、 ドル記号やバッククォート文字がダブルクォート文字の中にない場合には、 変数の値やコマンドの出力の中に、これらの特殊な文字が存在するかどうかが 調べられ、それらがあれば、メタキャラクタとして扱われます。 .Pp アスタリスク文字 .Pq Li * は、どのような文字列とも一致します。 クエスチョンマーク文字 .Pq Li ? は、任意の文字 1 文字と一致します。 左大括弧 .Pq Li [ は文字クラスを開始します。 文字クラスの最後は右大括弧 .Pq Li \&] です。 .Dq Li \&] がない場合は、 .Dq Li [ は文字そのものに一致し、文字クラスの開始とは見なされません。文字 クラスは大括弧内に出現するすべての文字に一致します。 マイナス記号を用いれば、文字の範囲を指定することができます。 文字クラスの最初にエクスクラメーションマーク .Pq Li ! を置くことで、 文字クラスの意味を反転させることができます。 .Pp 文字クラスに文字 .Dq Li \] を含めるには、 .Dq Li \] を文字クラスの最初 ( .Dq Li ! を置く場合はそのあと) に置きます。 文字クラスに .Dq Li - を含めるときも同様で、 リストの最初もしくは最後に置きます。 .Ss シェル組み込みコマンド 本節では、別プロセスでは実行できない処理を行なうために組み込まれている コマンドを列挙します。 さらに、組み込みバージョンの .Xr printf 1 と .Xr echo 1 が効率を上げるために提供されています。 .Bl -tag -width Ds .It Ic : 終了ステータス 0 (真) を返すヌルコマンドです。 .It Ic . Ar file 指定されたファイル file に記述されたコマンドがシェルに読み込まれ、 実行されます。 .Ar file に .Dq / 文字を含む場合、その通りに扱われます。 そうでなければ、シェルは .Ev PATH を使用して、ファイルを検索します。 .Ev PATH を使用しても見付からない場合、カレントディレクトリを検索します。 .It Ic alias Op Ar name ... .It Ic alias Op Ar name=string ... .Ar name=string が指定されている場合、シェルは名前 .Ar name を持つ値 .Ar string のエイリアスを定義します。単に .Dq name だけが指定された場合、 エイリアス .Dq name の値が表示されます。引数が指定されない場合、 .Ic alias は定義されているすべてのエイリアスの名前と値を表示します ( .Ic unalias も参照)。 .It Ic bg Op Ar job ... 指定されたジョブ (指定されなかった場合は現在のジョブ) を、 続けてバックグラウンドで実行させます。 .It Ic command Ar cmd Op Ar arg ... 指定された組み込みコマンド .Ar cmd を実行します。 シェル関数を同名の組み込みコマンドでオーバライドしたい場合に有用です。 .It Ic cd Op Ar directory 指定されたディレクトリ .Ar directory に移動します。 .Ar directory 無指定時は .Ev HOME で指定されるディレクトリに移動します。 .Ar directory がカレントディレクトリのサブディレクトリとして見付からない場合 (かつ .Dq Li / , .Dq Li ./ , .Dq Li ../ のいずれでも開始しない場合)、指定された .Ar directory を .Ev CDPATH 変数中のディレクトリリストから検索します。 .Ar CDPATH の形式は .Ev PATH と同様です。対話的シェルでは、ユーザ が指定したディレクトリと異なる場所に移動した場合、 .Ic cd は、移動先のディレクトリ名を表示します。 これは、 .Ev CDPATH の機構が動作した場合と、シンボリックリンクを辿った場合に発生します。 .It Ic eval Ar string ... 指定されたすべての引数を空白で結合し、その結果を解析し直してから コマンドとして実行します。 .It Ic exec Op command Op arg ... .Ar commmand が省略されない場合、そのシェルプロセスは指定されたプログラムに 置き換えられます ( .Ar command は、シェル組み込みコマンドや関数ではない、本物の プログラムでなければなりません)。 .Ic exec コマンドにおけるリダイレクトは、 永久性を持つと見なされ、 .Ic exec コマンド完了後にも引き続き効力を持ちます。 .It Ic exit Op exitstatus シェルを終了します。 .Ar exitstatus が指定された場合、これはシェルの終了ステータスになります。 そうでない場合、直前に実行したコマンドの 終了ステータスがシェルの終了ステータスとなります。 .It Ic export Ar name ... それ以後にシェルから実行されるコマンドの環境に、指定された名前の変数が 含まれるようにします (変数のエクスポート)。 変数のエクスポートを取り消す唯一の方法は、変数を .Ic unset することです。 以下のように記述することで、エクスポートすると 同時に変数の値を設定することができます。 .Bd -literal -offset indent export name=value .Ed .Pp 引数を指定しない場合、すべてのエクスポートされている名前と値が表示されます。 .It Xo .Ic fc .Op Fl e Ar editor .Op Ar first Op Ar last .Xc .It Xo .Ic fc .Fl l .Op Fl nr .Op Ar first Op Ar last .Xc .It Xo .Ic fc .Fl s .Op Ar old=new .Op Ar first .Xc .Ic fc 組み込みコマンドは、対話的シェルにそれ以前に入力されたコマンドの内容を、 表示、編集、再実行します。 .Bl -tag -width Ds .It Fl e Ar editor 編集に際し、指定されたエディタ .Ar editor を使用します。 .Ar editor は変数 .Ev PATH を通して検索できるコマンド名です。 .Fl e が指定されなかった場合は、変数 .Ev FCEDIT の値が用いられます。 .Ev FCEDIT が設定されていないか空に設定されている場合は .Ev EDITORの値が用いられ、それも設定されていないか空ならば .Xr ed 1 が用いられます。 .It Fl l No (ell) (小文字のエル) エディタを起動せずに、コマンド履歴の内容を一覧出力します。 パラメータ first と last で指定した範囲のコマンドが順に (出力の順番は .Fl r オプションの影響を受けます) 出力されます。 各コマンドの出力の際にはコマンド番号が付加されます。 .It Fl n .Fl l で一覧出力する際にコマンド番号を付加しません。 .It Fl r コマンド一覧時 ( .Fl l オプション指定時) や編集時 ( .Fl l も .Fl s も指定されなかった場合) の順序を反転します。 .It Fl s エディタを起動せずにコマンドを再実行します。 .It Ar first .It Ar last 一覧出力や編集の対象となるコマンドを選択します。アクセス可能なコマンド の数は変数 .Ev HISTSIZE の値で決まります。 .Ar first または .Ar last 、または両方の値は、以下のいずれかの形式で指定します。 .Bl -tag -width Ds .It Ar [+]num 正の数で、コマンド番号を指定します。コマンド番号は .Fl l オプションで表示させて調べることができます。 .It Ar -num 負の数は、 .Ar num 個だけ現在から遡ったコマンドを指定します。たとえば、 -1 は直前に実行されたコマンドを指定します。 .It Ar string 文字列 string は、過去に実行されたコマンドのうち、 その文字列から始まる最新のものを指定します。 もし .Fl s オプションが指定されて .Ar old=new が指定されていなければ、 最初のオペランドにイコール記号 を含めることはできません。 .El .El .Pp .Ic fc コマンドの実行にあたり、以下の環境変数の影響を受けます。 .Bl -tag -width Ds .It Ev FCEDIT 使用するエディタ名 .It Ev HISTSIZE アクセス可能なコマンド数 .El .It Ic fg Op job 指定されたジョブ .Ar job または現在のジョブをフォアグラウンドに移動します。 .It Ic getopts Ar optstring Ar var POSIX に準拠した .Ic getopts コマンドです。 この .Ic getopts コマンドにより、以前の .Xr getopt 1 コマンドの必要性は減少しました。 最初の引数は文字の列です。各文字の後ろにはコロンをつけることができ、 そのオプションが引数をとることを指示します。 指定された変数に、解析され見つかったオプションが設定されます。 見つかったオプションの次の引数のインデックスはシェル変数 .Ev OPTIND に格納されます。 あるオプションが引数をとる場合、その引数はシェル変数 .Ev OPTARG に置かれます。 有効でないオプションに出くわすと、変数 .Ev var には .Dq Li ? がセットされます。 getopts はオプション群の末尾に到達すると偽の値 (1) を返します。 .It Xo .Ic hash .Op Fl rv .Op Ar command ... .Xc シェルは、コマンドの位置を保持するハッシュテーブルを維持管理しています。 .Ic hash コマンドに引数が指定されなかった場合、このテーブルの内容が出力されます。 最後に .Ic cd コマンドが実行されてから参照されていない項目には アスタリスク文字 が表示されます。 この項目は無効になっているかもしれません。 .Pp 引数を指定した場合、 .Ic hash コマンドは指定した .Ar command をハッシュテーブルから削除し ( .Ar command が関数ではない場合)、その後でそのコマンドを検索します。 .Fl v オプションを指定した場合、 .Ic hash は発見したコマンドの位置を表示します。 .Fl r オプションを指定した場合、 .Ic hash は関数以外のすべてのエントリをハッシュテーブルから削除します。 .It Ic jobid Op Ar job ジョブ .Ar job 中の各プロセスのプロセス ID を表示します。引数 .Ar job が 省略された場合、現在のジョブに対して処理を行います。 .It Ic jobs バックグラウンドで走行中の、現在のシェルプロセスの子プロセスの 一覧を出力します。 .It Ic pwd カレントディレクトリのパスを表示します。組み込みコマンド版は カレントディレクトリ名を覚えており、表示するときに再計算しないので、 組み込みコマンド版は同名のプログラムとは異なった表示をする場合があります。 このため処理は高速ですが、カレントディレクトリ の名前を変更した場合でも、組み込み版の .Xr pwd 1 は以前のディレクトリ名を表示し続けます。 .It Xo .Ic read .Op Fl p Ar prompt .Op Fl t Ar timeout .Op Fl er .Ar variable ... .Xc .Fl p オプションが指定され、かつ標準入力が端末の場合、 .Ar prompt をプロンプトとして表示します。 そして標準入力から 1 行入力します。行端の改行文字を削除し、行を前述の .Sx 空白文字による分割 (フィールド分割) の方法に従って分割し、各単語を、valiable... で指定する各変数に 順に代入します。 もし、指定された変数の数より分割された単語の数が多ければ、最後の変数に 残りの単語すべて ( .Ev IFS の文字を区切りにしてそれらも一緒に) が代入されます。 分割された単語の数より多くの変数が指定されていたなら、 余った変数には空文字列が設定されます。 .Pp .Fl r オプションが指定された場合を除き、バックスラッシュは特別に扱われます。 バックスラッシュ文字が改行文字の直前にある場合、 バックスラッシュ文字と改行文字は削除されます。 その他の文字の直前にバックスラッシュがある場合、バックスラッシュは削除され、 文字が .Ev IFS に含まれていても、 .Ev IFS の文字でないかのように扱われます。 .Pp .Fl t オプションが指定され、かつ入力がなされる前に .Ar timeout が経過すると、 .Ic read コマンドは値を割当てずに戻ります。 .Ar timeout 値の後にはオプションで .Dq s , .Dq m , .Dq h のいずれかの一文字 を付けることが出来、それぞれ秒・分・時間を陽に指定します。 どれも指定しない場合には .Dq s であるものとします。 .Pp .Fl e オプションは、古いスクリプトとの後方互換性のためだけにあります。 .It Ic readonly Ar name ... .Ar name で指定された変数を読み出し専用とし、あとで値を変更したり unset した りすることができないようにします。以下のように記述することで、 変数を読み出し専用と宣言するのと同時に値を設定することも可能です。 .Bd -literal -offset indent readonly name=value .Ed .Pp 引数が指定されない場合、 .Ic readonly コマンドは、読み出し専用になっている変数の名前の一覧を表示します。 .It Xo .Ic set .Op Fl /+abCEefIimnpTuVvx .Op Fl /+o Ar longname .Op Fl c Ar string .Op Fl - Ar arg ... .Xc .Ic set コマンドは 3 通りの異なった機能を持ちます。 .Bl -item .It 引数を指定しなかった場合、短かい形式でも長い .Dq Fl /+o Ar longname という形式であっても、 .Sx 引数リストの処理 の節で説明されているように、指定されたオプションの設定またはクリアを行います。 .It .Dq Fl - オプションが指定された場合、 .Ic set はシェルの位置パラメータを、引き続く引数で置き換えます。 .Dq Fl - オプションの後に引数が続かない場合、 すべての位置パラメータはクリアされ、 .Dq Li shift $# コマンドを実行するのと等価になります。 位置置換パラメータとして引数を指定するとき、 .Dq Fl - フラグは省略可能です。 これはお勧めできません。 なぜなら、最初の引数はマイナス記号 .Pq Li - またはプラス記号 .Pq Li + で開始するかもしれないからです。 これらは、 .Ic set コマンドが、オプションの有効化または無効化の要求であると解釈してしまいます。 .El .It Ic setvar Ar variable Ar value 変数 .Ar variable に値 .Ar value を代入します。( .Ic setvar は、関数内で、パラメータとして渡された名前を持つ 変数に値を代入するためのものです。 一般に、 .Ic setvar を使うよりも .Bd -literal -offset indent variable=value .Ed と書くほうが望ましいといえます。) .It Ic shift Op Ar n 位置パラメータを .Ar n 回シフトします。 .Ar n を指定しない場合 1 回シフトします。 1 回のシフトにより、$2 の値が $1 に、$3 の 値が $2 に代入されます (以下同様)。また、$# の値は 1 減少します。 位置パラメータがない場合、shift は何もしません。 .It Xo .Ic trap .Op Ar action .Ar signal ... .Xc シェルが指定されたシグナル .Ar signal を受けとったときに、 .Ar action を解析し実行するように設定します。 シグナルはシグナル番号で指定します。 .Ar action は空文字列に したり、省略したりすることができます。空文字列の場合、指定されたシグナルは 無視され、省略した場合は、指定したシグナルを受けとったときデフォルトの処理を 行ないます。シェルがサブシェルを起動するとき、trap で指定された (かつ 無視するように設定されていない) シグナルの動作をデフォルトの処理に戻します。 シェルが起動したときにすでに無視されるように設定されていたシグナルに対して .Ic trap コマンドを使用しても効果はありません。 .It Ic type Op Ar name ... 各 .Ar name をコマンドとして解釈し、コマンド検索の結果を出力します。出力さ れる結果は以下のものがあります。シェルのキーワード、エイリアス、シェル の組み込みコマンド、コマンド、痕跡つきエイリアス (tracked alias)、最後に not found (見つからず) があります。エイリアスについては、エイリアス展開 の結果が出力されます。コマンドと痕跡つきエイリアスについては、そのコマンドの 完全なパス名が印刷されます。 .It Xo .Ic ulimit .Op Fl HSacdflmnust .Op Ar limit .Xc リソースのリミット値 (リミット値については .Xr getrlimit 2 参照) を設定あるいは表示します。 .Ar limit が指定されている場合、指定されたリソースが設定されます。 それ以外の場合、現在のリソース設定値が表示されます。 .Pp .Fl H が指定された場合、ハードリミットが設定ないし表示されます。 ハードリミット値を下げることは誰にでもできますが、 それを増やすことができるのはスーパユーザだけです。 オプション .Fl S を指定した場合はソフトリミットになります。 リミット値を表示する場合、 .Fl S か .Fl H のいずれか一方だけしか指定できません。 デフォルトでは、表示はソフトリミット、設定はハード/ソフトリミット両方です。 .Pp オプション .Fl a を指定すると .Ic ulimit コマンドは全リソースの設定値を表示します。 この場合、パラメータ .Ar limit は指定できません。 .Pp この他のオプションは、表示あるいは設定するリソースの種類を指定するものです。 これらは互いに排他的です。 .Bl -tag -width Ds .It Fl c Ar coredumpsize コアダンプファイルの最大サイズ。512 バイトのブロック単位。 .It Fl d Ar datasize プロセスのデータセグメントの最大サイズ。キロバイト単位。 .It Fl f Ar filesize ファイルの最大サイズ。512 バイトブロック単位。 .It Fl l Ar lockedmem プロセスがロックできるメモリサイズの最大値。キロバイト単位。 .It Fl m Ar memoryuse プロセスの常駐セットサイズの最大値。キロバイト単位。 .It Fl n Ar nofiles あるプロセスがオープンできるファイル記述子の最大数。 .It Fl s Ar stacksize スタックセグメントサイズの最大値。キロバイト単位。 .It Fl t Ar time 各プロセスで消費できる CPU 時間の最大値。秒単位。 .It Fl u Ar userproc このユーザ ID で同時に走らせうる最大プロセス数。 .El .It Ic umask Op Ar mask ファイル作成マスクの値 ( .Xr umask 2 を参照) を、 .Ar mask で指定された 8 進数の値に設定します。引数が 省略された場合、現在のマスクの値が表示されます。 .It Xo .Ic unalias .Op Fl a .Op Ar name .Xc .Ar name が指定された場合、指定された名前のエイリアスを削除します。 .Ar a オプションが指定された場合、すべてのエイリアスを削除します。 .It Ic unset Ar name ... 指定された変数または関数を unset し、エクスポートされていない状態にします。 指定された名前の変数も関数も存在する場合、変数と関数の両方が unset されます。 .It Ic wait Op Ar job 指定されたジョブ .Ar job が終了するのを待ち、ジョブ内の最後のプロセスの 終了ステータスを返します。引数が省略された場合、すべてのジョブが終了する まで待ち、終了ステータス 0 を返します。 .El .Ss コマンド行編集 .Nm が端末から対話的に実行されている場合、現在入力中のコマンドおよび コマンド履歴 ( .Sx 組み込みコマンド の .Ic fc 参照) を vi モードのコマンド行編集機能 により編集することができます。 このモードでは、vi のマニュアルに示されているコマンドのサブセットを用います。 コマンド .Dq Li set -o vi (または .Dq Li set -V ) により vi モードが有効になり、 .Nm は vi の挿入モードに移行します。 vi モード中では、 挿入モードとコマンドモードの両方を自由に切り替えることが可能です。 vi モードは vi と同様であり、 .Aq ESC キー によりコマンドモードに移行し、コマンドモードで .Aq return キーを叩くことで、 行の内容がシェルに渡されます。 .Pp 同様に、コマンド .Dq Li set -o emacs により emacs 風のコマンド行編集機能の サブセットを使うことができるようになります。 .Sh 関連項目 .Xr builtin 1 , .Xr echo 1 , .Xr expr 1 , .Xr pwd 1 , .Xr printf 1 , .Xr test 1 .Sh 歴史 .Nm コマンドは、 .At V.1 で登場しました。 .\" -Amended by N.Kumagai 97.12.30 diff --git a/ja_JP.eucJP/man/man5/dhcp-options.5 b/ja_JP.eucJP/man/man5/dhcp-options.5 index 5fb824002e..66f5001ace 100644 --- a/ja_JP.eucJP/man/man5/dhcp-options.5 +++ b/ja_JP.eucJP/man/man5/dhcp-options.5 @@ -1,740 +1,745 @@ .\" dhcp-options.5 .\" .\" Copyright (c) 1995, 1996, 1997, 1998 The Internet Software Consortium. .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. Neither the name of The Internet Software Consortium nor the names .\" of its contributors may be used to endorse or promote products derived .\" from this software without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE INTERNET SOFTWARE CONSORTIUM AND .\" CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, .\" INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF .\" MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE .\" DISCLAIMED. IN NO EVENT SHALL THE INTERNET SOFTWARE CONSORTIUM OR .\" CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, .\" SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT .\" LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF .\" USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND .\" ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, .\" OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT .\" OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" This software has been written for the Internet Software Consortium .\" by Ted Lemon in cooperation with Vixie .\" Enterprises. To learn more about the Internet Software Consortium, .\" see ``http://www.isc.org/isc''. To learn more about Vixie .\" Enterprises, see ``http://www.vix.com''. .\" .\" Original Revision: 1.1.1.2.2.2 .\" jpman %Id: dhcp-options.5,v 1.4 1999/05/09 07:10:44 horikawa Stab % .\" WORD: Dynamic Host Configuration Protocol 動的ホスト設定プロトコル .\" WORD: Path MTU Discovery パス MTU 発見 .\" WORD: Router Discovery ルータ発見 [routed.8] .\" WORD: Mask Discovery マスク発見 .TH dhcpd-options 5 .SH 名称 dhcp-options - 動的ホスト構成プロトコルのオプション .SH 解説 動的ホスト設定プロトコル (DHCP: Dynamic Host Configuration Protocol) を使用することにより、クライアントは DHCP サーバから、 ネットワーク設定やネットワーク上で利用可能な様々なサービスについて記述している .B オプション を受け取ることができます。 .B dhcpd(8) や .B dhclient(8) を設定するときに、オプションを宣言することが多いでしょう。 オプションを宣言する文法、 そして宣言可能なオプションの名前と書式を、ここに文書化しています。 .SH リファレンス: オプション文 .PP 常に DHCP \fIoption\fR 文は、 キーワード \fIoption\fR で開始し、単一のオプション名が続き、 オプションデータが続きます。 オプションの名前とデータの書式は後述します。 全 DHCP オプションを網羅的に指定する必要はありません。 クライアントに必要なオプションのみを指定する必要があります。 .PP オプションデータには、次のように様々な書式があります: .PP .B ip-address データタイプは、明示的な IP アドレス (例えば 239.254.197.10) または ドメイン名 (例えば haagen.isc.org) のいずれかで指定可能です。 ドメイン名で指定する場合、 そのドメイン名を解決すると単一の IP アドレスになるようにしてください。 .PP .B int32 データタイプは符号付き 32 ビット整数を指定します。 .B uint32 データタイプは符号無し 32 ビット整数を指定します。 .B int16 および .B uint16 のデータタイプは、符号付きおよび符号無しの 16 ビット整数を指定します。 .B int8 および .B uint8 のデータタイプは、符号付きおよび符号無しの 8 ビット整数を指定します。 符号無し 8 ビット整数は、オクテットと呼ばれることもあります。 .PP .B string データタイプは NVT ASCII 文字列を指定します。 文字列はダブルクォートで括る必要があります。 例えば domain-name オプションを指定する文法は .nf .sp 1 option domain-name "isc.org"; .fi となります。 .PP .B flag データタイプはブール値を指定します。 ブール値は真または偽のいずれかです (オンまたはオフの方が分かりやすければ、こちらでもかまいません)。 .PP .B data-string データタイプは、ダブルクォートで括られる NVT ASCII 文字列か、 コロン区切りで 16 進数で指定されるオクテットの連続のいずれかを指定します。 例えば次のようになります: .nf .sp 1 option dhcp-client-identifier "CLIENT-FOO"; または option dhcp-client-identifier 43:4c:49:45:54:2d:46:4f:4f; .fi .PP 次に示す様々なオプションに関する記述は、 DHCP オプションに関する最新の IETF ドラフト文書のものです。 名前が掲載されていないオプションは、 option-\fInnn\fR という名前で定義されているかもしれません。 \fInnn\fR はオプションコードの 10 進数表記です。 .\" \fInnn\fI は \fInnn\fR でしょう (horikawa@jp.freebsd.org 19990404) これらのオプションには、 クォートで括った文字列か、 2 桁の 16 進数をコロンで区切ったオクテットの連続を、続けられます。 例えば次のようになります: .PP .nf option option-133 "my-option-133-text"; option option-129 1:54:c9:2b:47; .fi .PP dhcpd は、これらの未定義オプションコードの書式を知りませんので、 指定されたデータの正当性を保証するための確認は行いません。 .PP 標準オプションを示します: .PP .B option subnet-mask \fIip-address\fR\fB;\fR .RS 0.25i .PP サブネットマスクオプションは、 RFC 950 に従って、クライアントのサブネットマスクを指定します。 スコープ中のどこにもサブネットマスクを指定しないと、 最終手段として、 アドレスを割り当てようとしているネットワークに対するサブネット宣言から、 dhcpd はサブネットマスクを使用します。これに対し、 アドレスを割り当てようとしているネットワークのスコープ中の サブネットマスク宣言であれば .I どのようなものであっても 、サブネット宣言におけるサブネットマスク指定に優先します。 .RE .PP .B option time-offset \fIint32\fR\fB;\fR .RS 0.25i .PP time-offset オプションは、 協定世界時 (UTC) を基点として、 クライアントのサブネットのオフセットを秒で指定します。 .RE .PP .B option routers \fIip-address\fR [\fB,\fR \fIip-address\fR... ]\fB;\fR .RS 0.25i .PP routers オプションは、 クライアントのサブネット上にあるルータの IP アドレスのリストを指定します。 ルータは、優先されるものから順にリストしてください。 .RE .PP .B option time-servers \fIip-address\fR [, \fIip-address\fR... ]\fB;\fR .RS 0.25i .PP time-server オプションは、 クライアントが利用可能な RFC 868 時刻サーバのリストを指定します。 サーバは、優先されるものから順にリストしてください。 .RE .PP .B option \fBien116-name-servers\fR \fIip-address\fR [\fB,\fR \fIip-address\fR... ]; .RS 0.25i .PP ien116-name-servers オプションは、 クライアントが利用可能な IEN 116 ネームサーバのリストを指定します。 サーバは、優先されるものから順にリストしてください。 .RE .PP .B option \fBdomain-name-servers\fR \fIip-address\fR [\fB,\fR \fIip-address\fR... ]\fB;\fR .RS 0.25i .PP domain-name-servers は、クライアントが利用可能な ドメインネームシステム (STD 13, RFC 1035) ネームサーバのリストを指定します。 サーバは、優先されるものから順にリストしてください。 .RE .PP .B option \fBlog-servers\fR \fIip-address\fR [\fB,\fR \fIip-address\fR... ]\fB;\fR .RS 0.25i .PP log-server オプションは、 クライアントが利用可能な MIT-LCS UDP ログサーバのリストを指定します。 サーバは、優先されるものから順にリストしてください。 .RE .PP .B option \fBcookie-servers\fR \fIip-address\fR [\fB,\fR \fIip-address\fR... ]\fB;\fR .RS 0.25i .PP クッキーサーバオプションは、 クライアントが利用可能な RFC 865 クッキーサーバのリストを指定します。 サーバは、優先されるものから順にリストしてください。 .RE .PP .B option \fBlpr-servers\fR \fIip-address \fR [\fB,\fR \fIip-address\fR... ]\fB;\fR .RS 0.25i .PP LPR サーバオプションは、 クライアントが利用可能な RFC 1179 ラインプリンタサーバのリストを指定します。 サーバは、優先されるものから順にリストしてください。 .RE .PP .B option \fBimpress-servers\fR \fIip-address\fR [\fB,\fR \fIip-address\fR... ]\fB;\fR .RS 0.25i .PP impress-server オプションは、 クライアントが利用可能な Imagen Impress サーバのリストを指定します。 サーバは、優先されるものから順にリストしてください。 .RE .PP .B option \fBresource-location-servers\fR \fIip-address\fR [\fB,\fR \fIip-address\fR... ]\fB;\fR .RS 0.25i .PP 本オプションは、 クライアントが利用可能な RFC 887 リソースロケーションサーバのリストを指定します。 サーバは、優先されるものから順にリストしてください。 .RE .PP .B option \fBhost-name\fR \fIstring\fR\fB;\fR .RS 0.25i .PP 本オプションは、クライアントの名前を指定します。 この名前は、 ローカルのドメイン名に適合してもしなくてもかまいせん (domain-name オプションを使用してドメイン名を指定する方が良いです)。 文字集合の制約については RFC 1035 を参照してください。 +クライアントマシンのホスト名が設定されていない場合 (すなわち +.B rc.conf(5) +で空文字列に設定されている場合)、 +.B dhclient-script(8) +のみが本オプションを尊重します。 .RE .PP .B option \fBboot-size\fR \fIuint16\fR\fB;\fR .RS 0.25i .PP 本オプションは、 クライアント用のデフォルトのブートイメージの長さを、 512 オクテットブロック数で指定します。 .RE .PP .B option \fBmerit-dump\fR \fIstring\fR\fB;\fR .RS 0.25i .PP 本オプションは、 クライアントがクラッシュするときに クライアントのコアイメージがダンプされるファイルのパス名を指定します。 パスの書式は、NVT ASCII 文字集合の文字からなる文字列です。 .RE .PP .B option \fBdomain-name\fR \fIstring\fR\fB;\fR .RS 0.25i .PP 本オプションは、 ドメインネームシステムを使用してホスト名を解決するときに クライアントが使用すべきドメイン名を指定します。 .RE .PP .B option \fBswap-server\fR \fIip-address\fR\fB;\fR .RS 0.25i .PP 本オプションは、クライアントのスワップサーバの IP アドレスを指定します。 .RE .PP .B option \fBroot-path\fR \fIstring\fB;\fR\fR .RS 0.25i .PP 本オプションは、クライアントのルートディスクが含まれるパス名を指定します。 パスの書式は、NVT ASCII 文字集合の文字からなる文字列です。 .RE .PP .B option \fBip-forwarding\fR \fIflag\fR\fB;\fR .RS 0.25i .PP 本オプションは、 パケットをフォワードするように、 クライアントが自己の IP 層を設定すべきかを指定します。 値 0 は IP フォワードを無効にし、 値 1 は IP フォワードを有効にすることを意味します。 .RE .PP .B option \fBnon-local-source-routing\fR \fIflag\fR\fB;\fR .RS 0.25i .PP 本オプションは、 非ローカルな送信元経路指定 (non-local source route) を持つ データグラムをフォワードするように、 クライアントが自己の IP 層を設定すべきかを指定します (本項目については [4] の 3.3.5 節を参照してください)。 値 0 はそのようなデータグラムのフォワードを許可しないことを意味し、 値 1 はフォワード許可を意味します。 .RE .PP .B option \fBpolicy-filter\fR \fIip-address ip-address\fR [\fB,\fR \fIip-address ip-address\fR... ]\fB;\fR .RS 0.25i .PP 本オプションは、 非ローカルな送信元経路指定データグラムに対するポリシフィルタを指定します。 フィルタは、IP アドレスとマスクの組のリストからなり、 到着する送信元経路指定データグラム用のフィルタとなる、 宛先/マスクの組を指定します。 .PP 次ホップアドレスがフィルタのいずれにも適合しない送信元経路指定データグラムは、 クライアントが破棄すべきです。 .PP 更なる情報は STD 3 (RFC1122) を参照してください。 .RE .PP .B option \fBmax-dgram-reassembly\fR \fIuint16\fR\fB;\fR .RS 0.25i .PP 本オプションは、クライアントが再組み立て準備をすべき、 最大データグラムサイズを指定します。 最小の正当値は 576 です。 .\" The minimum value legal value is 576. .\" The minimum legal value is 576. かな (horikawa@jp.freebsd.org 19990404) .RE .PP .B option \fBdefault-ip-ttl\fR \fIuint8;\fR .RS 0.25i .PP 本オプションは、 クライアントが出力するデータグラムに使用すべき、 デフォルトの生存時間を指定します。 .RE .PP .B option \fBpath-mtu-aging-timeout\fR \fIuint32\fR\fB;\fR .RS 0.25i .PP 本オプションは、 RFC 1191 で定義される機構で発見されたパス MTU 値のエージングに使用する タイムアウト (秒単位) を指定します。 .RE .PP .B option \fBpath-mtu-plateau-table\fR \fIuint16\fR [\fB,\fR \fIuint16\fR... ]\fB;\fR .RS 0.25i .PP 本オプションは、MTU サイズの表を指定します。 この表は、 RFC 1191 で定義される、パス MTU 発見 (Path MTU Discovery) 実施時に使用します。 表の書式は、最小から最大への順の、 16 ビット符号無し整数のリストです。 最小 MTU は 68 以上であることが必要です。 .RE .PP .B option \fBinterface-mtu\fR \fIuint16\fR\fB;\fR .RS 0.25i .PP 本オプションは、このインタフェースに対して使用する MTU を指定します。 MTU に対する最小の正当値は 68 です。 .RE .PP .B option \fBall-subnets-local\fR \fIflag\fR\fB;\fR .RS 0.25i .PP 本オプションは、 クライアントが接続されている IP ネットワークの全サブネットが使用する MTU が、 クライアントが直接接続されているサブネットの MTU と同じであると、 クライアントが仮定して良いかを指定します。 値 1 は、全サブネットは同一の MTU であることを意味します。 値 0 は、直接接続されているネットワークのサブネットには より小さな MTU を持つものがあると、クライアントが仮定すべきことを意味します。 .RE .PP .B option \fBbroadcast-address\fR \fIip-address\fR\fB;\fR .RS 0.25i .PP 本オプションは、 クライアントのサブネットで使用されているブロードキャストアドレスを指定します。 正当なブロードキャストアドレスの値は、 STD 3 (RFC1122) の 3.2.1.3 節に記述されています。 .RE .PP .B option \fBperform-mask-discovery\fR \fIflag\fR\fB;\fR .RS 0.25i .PP 本オプションは、 クライアントが ICMP を使用してサブネットマスク発見を実施すべきかを指定します。 値 0 は、クライアントはマスク発見を実施すべきでないことを意味します。 値 1 は、クライアントはマスク発見を実施すべきであることを意味します。 .RE .PP .B option \fBmask-supplier\fR \fIflag\fR\fB;\fR .RS 0.25i .PP 本オプションは、 ICMP を使用したサブネットマスク要求に対して、 クライアントが応答すべきかを指定します。 値 0 は、クライアントが応答すべきでないことを意味します。 値 1 は、クライアントが応答すべきであることを意味します。 .RE .PP .B option \fBrouter-discovery\fR \fIflag\fR\fB;\fR .RS 0.25i .PP 本オプションは、 RFC 1256 で定義されるルータ発見 (Router Discovery) 機構を使用して ルータを請求すべきかを指定します。 値 0 は、クライアントはルータ発見を実施すべきでないことを意味します。 値 1 は、クライアントはルータ発見を実施すべきであることを意味します。 .RE .PP .B option \fBrouter-solicitation-address\fR \fIip-address\fR\fB;\fR .RS 0.25i .PP 本オプションは、 クライアントのルータ請求リクエスト送出先アドレスを指定します。 .RE .PP .B option \fBstatic-routes\fR \fIip-address ip-address\fR [\fB,\fR \fIip-address ip-address\fR... ]\fB;\fR .RS 0.25i .PP 本オプションは、 クライアントが経路キャッシュに組み込むべき静的ルータのリストを指定します。 同じ宛先に対して複数のルータを指定すると、 優先度が低くなる順序でリストされます。 .PP 経路は IP アドレスの組のリストからなります。 最初のアドレスは宛先アドレスであり、 2 番目のアドレスは宛先に対するルータのアドレスです。 .PP デフォルト経路 (0.0.0.0) は、静的経路に対しては不正な宛先です。 デフォルト経路を指定するには、 .B routers オプションを使用してください。 .RE .PP .B option \fBtrailer-encapsulation\fR \fIflag\fR\fB;\fR .RS 0.25i .PP 本オプションは、 ARP プロトコル使用時に、 クライアントがトレイラ使用交渉 (RFC 893 [14]) すべきかを指定します。 値 0 は、クライアントがトレイラ使用を試みるべきでないと意味します。 値 1 は、クライアントがトレイラ使用を試みるべきであると意味します。 .RE .PP .B option \fBarp-cache-timeout\fR \fIuint32\fR\fB;\fR .RS 0.25i .PP 本オプションは、ARP キャッシュエントリのタイムアウトを秒単位で指定します。 .RE .PP .B option \fBieee802-3-encapsulation\fR \fIflag\fR\fB;\fR .RS 0.25i .PP 本オプションは、 インタフェースがイーサネットである場合に、 クライアントがイーサネットバージョン 2 (RFC 894) か、 IEEE 802.3 (RFC 1042) のカプセル化を使用すべきかを指定します。 値 0 は、クライアントは RFC 894 のカプセル化を使用すべきであると意味します。 値 1 は、クライアントは RFC 1042 のカプセル化を使用すべきであると意味します。 .RE .PP .B option \fBdefault-tcp-ttl\fR \fIuint8\fR\fB;\fR .RS 0.25i .PP 本オプションは、 クライアントが TCP セグメントを送出するときに使用すべき、 デフォルトの TTL を指定します。最小値は 1 です。 .RE .PP .B option \fBtcp-keepalive-interval\fR \fIuint32\fR\fB;\fR .RS 0.25i .PP 本オプションは、 クライアントの TCP が キープアライブ (keepalive) メッセージを TCP 接続上に送信する前に 待つべき間隔 (秒単位) を指定します。 時間は 32 ビット符号無し整数で指定します。 値 0 は、 アプリケーションが明示的に要求しなければ、 クライアントが接続上にキープアライブメッセージを生成すべきでないことを 意味します。 .RE .PP .B option \fBtcp-keepalive-garbage\fR \fIflag\fR\fB;\fR .RS 0.25i .PP 本オプションは、古い実装との互換性のために、ゴミのオクテットと一緒に、 TCP キープアライブメッセージをクライアントが送るべきかを指定します。 値 0 は、ゴミのオクテットを送るべきでないことを意味します。 値 1 は、ゴミのオクテットを送るべきであることを意味します。 .RE .PP .B option \fBnis-domain\fR \fIstring\fR\fB;\fR .RS 0.25i .PP 本オプションは、クライアントの NIS (Sun Network Information Services) ドメインを指定します。 ドメインの書式は、NVT ASCII 文字集合の文字からなる文字列です。 .RE .PP .B option \fBnis-servers\fR \fIip-address\fR [\fB,\fR \fIip-address\fR... ]\fB;\fR .RS 0.25i .PP 本オプションは、 クライアントが利用可能な NIS サーバの IP アドレスを指定します。 サーバは、優先されるものから順にリストしてください。 .RE .PP .B option \fBntp-servers\fR \fIip-address\fR [\fB,\fR \fIip-address\fR... ]\fB;\fR .RS 0.25i .PP 本オプションは、 クライアントが利用可能な NTP (RFC 1035) サーバの IP アドレスを指定します。 サーバは、優先されるものから順にリストしてください。 .RE .PP .B option \fBnetbios-name-servers\fR \fIip-address\fR [\fB,\fR \fIip-address\fR... ]\fB;\fR .RS 0.25i .PP NetBIOS ネームサーバ (NBNS) オプションは、 RFC 1001/1002 の NBNS ネームサーバのリストを、 優先されるものから順に指定します。 現在では、NetBIOS Name Service は WINS と呼ばれることの方が多いです。 netbios-name-servers オプションを使用して、WINS サーバを指定可能です。 .RE .PP .B option \fBnetbios-dd-server\fR \fIip-address\fR [\fB,\fR \fIip-address\fR... ]\fB;\fR .RS 0.25i .PP NetBIOS データグラム配布サーバ (NBDD) オプションは、 RFC 1001/1002 の NBDD サーバのリストを、 優先されるものから順に指定します。 .RE .PP .B option \fBnetbios-node-type\fR \fIuint8\fR\fB;\fR .RS 0.25i .PP NetBIOS ノードタイプオプションは、 設定可能な NetBIOS オーバ TCP/IP クライアントを、 RFC 1001/1002 に記述されているように設定します。 値は単一のオクテットとして指定され、 クライアントタイプを意味します。 .PP 使用可能なノードタイプは次の通りです: .PP .TP 5 .I 1 B ノード: ブロードキャスト - WINS 無し .TP .I 2 P ノード: ピア - WINS のみ .TP .I 4 M ノード: ミックス - ブロードキャスト後に WINS .TP .I 8 H ノード: ハイブリッド - WINS 後にブロードキャスト .RE .PP .B option .B netbios-scope .I string\fB;\fR .RS 0.25i .PP NetBIOS スコープオプションは、 RFC 1001/1002 に指定されるように、 クライアントの NetBIOS オーバ TCP/IP スコープパラメータを指定します。 文字集合の制約については RFC1001, RFC1002, RFC1035 を参照してください。 .RE .PP .B option \fBfont-servers\fR \fIip-address\fR [\fB,\fR \fIip-address\fR... ]\fB;\fR .RS 0.25i .PP 本オプションは、 クライアントが利用可能な X Window System フォントサーバを指定します。 サーバは、優先されるものから順にリストしてください。 .RE .PP .B option \fBx-display-manager\fR \fIip-address\fR [\fB,\fR \fIip-address\fR... ]\fB;\fR .RS 0.25i .PP 本オプションは、 クライアントが利用可能な X Window System Display Manager を実行している システムのリストを指定します。 アドレスは、優先されるものから順にリストしてください。 .RE .PP .B option \fBdhcp-client-identifier\fR \fIdata-string\fR\fB;\fR .RS 0.25i .PP 本オプションを使って、ホスト宣言中で DHCP クライアント識別子を 指定することができます。これは、クライアント識別子に対する照合を 用いて、dhcpd がそのホストのレコードを発見できるようにするための ものです。 .RE .B option \fBnisplus-domain\fR \fIstring\fR\fB;\fR .RS 0.25i .PP 本オプションは、 クライアントの NIS+ ドメインの名前を指定します。 ドメインの書式は、NVT ASCII 文字集合の文字からなる文字列です。 .RE .B option \fBnisplus-servers\fR \fIip-address\fR [\fB,\fR \fIip-address\fR... ]\fB;\fR .RS 0.25i .PP 本オプションは、 クライアントが利用可能な NIS+ サーバを示す IP アドレスのリストを指定します。 サーバは、優先されるものから順にリストしてください。 .RE .PP .B option \fBtftp-server-name\fR \fIstring\fR\fB;\fR .RS 0.25i .PP 本オプションは TFTP サーバを指定し、 クライアントがサポートする場合には \fBserver-name\fR 宣言と同じ効果を持ちます。 BOOTP クライアントは、本オプションをサポートしないでしょう。 DHCP クライアントによってはサポートしているものがあり、 実際必須としているものがあります。 .RE .PP .B option \fBbootfile-name\fR \fIstring\fR\fB;\fR .RS 0.25i .PP 本オプションは、ブートストラップファイルを指定するために使用します。 クライアントにサポートされている場合、 \fBfilename\fR 宣言と同じ効果を持ちます。 DHCP クライアントによってはサポートするものがあり、 実際必須としているものがあります。 .RE .PP .B option \fBmobile-ip-home-agent\fR \fIip-address\fR [\fB,\fR \fIip-address\fR... ]\fB;\fR .RS 0.25i .PP 本オプションは、 クライアントが利用可能なモバイル IP ホームエージェントの IP アドレスのリストを 指定します。 エージェントは、優先されるものから順にリストしてください。 ただし、通常はエージェントは 1 つでしょう。 .RE .PP .B option \fBsmtp-server\fR \fIip-address\fR [\fB,\fR \fIip-address\fR... ]\fB;\fR .RS 0.25i .PP SMTP サーバオプションは、 クライアントが利用可能な SMTP サーバのリストを指定します。 サーバは、優先されるものから順にリストしてください。 .RE .PP .B option \fBpop-server\fR \fIip-address\fR [\fB,\fR \fIip-address\fR... ]\fB;\fR .RS 0.25i .PP POP3 サーバオプションは、クライアントが利用可能な POP3 のリストを指定します。 サーバは、優先されるものから順にリストしてください。 .RE .PP .B option \fBnntp-server\fR \fIip-address\fR [\fB,\fR \fIip-address\fR... ]\fB;\fR .RS 0.25i .PP NNTP サーバオプションは、クライアントが利用可能な NNTP のリストを指定します。 サーバは、優先されるものから順にリストしてください。 .RE .PP .B option \fBwww-server\fR \fIip-address\fR [\fB,\fR \fIip-address\fR... ]\fB;\fR .RS 0.25i .PP WWW サーバオプションは、クライアントが利用可能な WWW のリストを指定します。 サーバは、優先されるものから順にリストしてください。 .RE .PP .B option \fBfinger-server\fR \fIip-address\fR [\fB,\fR \fIip-address\fR... ]\fB;\fR .RS 0.25i .PP Finger サーバオプションは、 クライアントが利用可能な Finger のリストを指定します。 サーバは、優先されるものから順にリストしてください。 .RE .PP .B option \fBirc-server\fR \fIip-address\fR [\fB,\fR \fIip-address\fR... ]\fB;\fR .RS 0.25i .PP IRC サーバオプションは、クライアントが利用可能な IRC のリストを指定します。 サーバは、優先されるものから順にリストしてください。 .RE .PP .B option \fBstreettalk-server\fR \fIip-address\fR [\fB,\fR \fIip-address\fR... ]\fB;\fR .RS 0.25i .PP StreetTalk サーバオプションは、 クライアントが利用可能な StreetTalk のリストを指定します。 サーバは、優先されるものから順にリストしてください。 .RE .PP .B option \fBstreetalk-directory-assistance-server\fR \fIip-address\fR [\fB,\fR \fIip-address\fR... ]\fB;\fR .RS 0.25i .PP StreetTalk Directory Assistance (STDA) サーバオプションは、 クライアントが利用可能な STDA のリストを指定します。 サーバは、優先されるものから順にリストしてください。 .RE .SH 関連項目 dhcpd.conf(5), dhcpd.leases(5), dhclient.conf(5), dhcpd(8), dhclient(8), RFC2132, RFC2131 .SH 作者 .B dhcpd(8) は、Vixie Labs との契約のもとで、Ted Lemon が記述しました。 本プロジェクトの資金は、Internet Software Corporation が提供しました。 Internet Software Consortium に関する情報は、 .B http://www.isc.org/isc にあります。 diff --git a/ja_JP.eucJP/man/man5/elf.5 b/ja_JP.eucJP/man/man5/elf.5 index c23f3867a4..12466fe636 100644 --- a/ja_JP.eucJP/man/man5/elf.5 +++ b/ja_JP.eucJP/man/man5/elf.5 @@ -1,1303 +1,1303 @@ .\"Copyright (c) 1999 Jeroen Ruigrok van der Werven .\"All rights reserved. .\" .\"Redistribution and use in source and binary forms, with or without .\"modification, are permitted provided that the following conditions .\"are met: .\"1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\"2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" .\"THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND .\"ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\"IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\"ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE .\"FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\"DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\"OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\"HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\"LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\"OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\"SUCH DAMAGE. .\" -.\" %FreeBSD: src/share/man/man5/elf.5,v 1.1.2.2 1999/10/31 04:02:25 green Exp % +.\" %FreeBSD: src/share/man/man5/elf.5,v 1.1.2.3 1999/12/07 22:45:18 chris Exp % .\" .Dd July 31, 1999 .\" jpman %Id: elf.5,v 1.2 1999/12/02 15:13:16 junkun Chk % .Dt ELF 5 .Os FreeBSD 3.3 .Sh 名称 .Nm elf .Nd ELF 実行形式バイナリファイルのフォーマット .Sh 書式 .Fd #include .Sh 解説 ヘッダファイル .Aq Pa elf.h は、ELF 実行形式バイナリファイルのフォーマットを定義しています。 ELF には普通の実行可能ファイル、再配置可能なオブジェクトファイル、 コアファイル、共有ライブラリがあります。 .Pp ELF ファイルフォーマットを使っている 実行可能ファイルは ELF ヘッダを持ちます。 そして、プログラムヘッダテーブルか、 セクションヘッダテーブル、あるいはその両方が続きます。 ELF ヘッダは、常にファイルのオフセット・ゼロにあります。 ファイルでのプログラムヘッダテーブルと セクションヘッダテーブルのオフセットは、 ELF ヘッダで定義されています。 2 つのテーブルは、ファイルの特徴の残りの部分を記述します。 .Pp ネイティブアーキテクチャの ELF バイナリーファイルを処理する応用プログラムは、 そのソースコードに .Pa sys/elf.h をインクルードするだけですみます。 これらの応用プログラムは、総称名 .Dq Elf_xxx による全タイプと構造体への参照を含む必要があり、 .Dq ELF_xxx によるマクロへの参照を含む必要があるでしょう。 このようにして記述された応用プログラムは、 どのようなアーキテクチャであっても、 ホストが 32 ビットなのか、あるいは 64 ビットなのか ということを気にしないで、コンパイルすることができます。 .Pp 未知のアーキテクチャの ELF ファイルを処理する必要がある応用プログラムは、 .Pa sys/elf.h ではなく、 .Pa sys/elf32.h と .Pa sys/elf64.h の両方をインクルードする必要があります。 さらに、全てのタイプと構造体は、 .Dq Elf32_xxx か .Dq Elf64_xxx によって区別する必要があります。 マクロは、 .Dq ELF32_xxx または .Dq ELF64_xxx によって区別する必要があります。 .Pp システムのアーキテクチャがたとえ何であっても、常に .Pa sys/elf_generic.h だけでなく、 .Pa sys/elf_common.h もインクルードします。 .Pp これらのヘッダファイルでは、 上で言及したヘッダを C 構造体として記述し、 これに加えてダイナミックセクション、 再配置セクションとシンボルテーブルのための構造体を含んでいます。 .Pp 以下のタイプが、32 ビットアーキテクチャのために使われています: .Bd -literal -offset indent Elf32_Addr 符号無しプログラムアドレス Elf32_Half 符号無しハーフワードフィールド Elf32_Off 符号無しファイルオフセット Elf32_Sword 符号付き大整数 Elf32_Word フィールドまたは符号無し大整数 Elf32_Size 符号無しオブジェクトサイズ .Ed .Pp 64 ビットアーキテクチャ用に以下のタイプが用意されています: .Bd -literal -offset indent Elf64_Addr 符号無しプログラムアドレス Elf64_Half 符号無しハーフワードフィールド Elf64_Off 符号無しファイルオフセット Elf64_Sword 符号付き大整数 Elf64_Word フィールドまたは符号無し大整数 Elf64_Size 符号無しオブジェクトサイズ Elf64_Quarter 符号無しクォータワードフィールド .Ed .Pp ELF ファイルフォーマットが定義する全てのデータ構造は、 関連するクラスのために .Dq 自然な サイズと境界調整のガイドラインに従っています。 必要ならば、データ構造は、4 バイトオブジェクトが 4 バイトのアライメントとなることを保証するために、 構造体のサイズを強制的に 4 の倍数にするとかいった手段で、 明示的なパディングを含めます。 .Pp ELF ヘッダは、Elf32_Ehdr 型または Elf64_Ehdr 型によって記述されています: .Bd -literal -offset indent typedef struct { unsigned char e_ident[EI_NIDENT]; Elf32_Half e_type; Elf32_Half e_machine; Elf32_Word e_version; Elf32_Addr e_entry; Elf32_Off e_phoff; Elf32_Off e_shoff; Elf32_Word e_flags; Elf32_Half e_ehsize; Elf32_Half e_phentsize; Elf32_Half e_phnum; Elf32_Half e_shentsize; Elf32_Half e_shnum; Elf32_Half e_shstrndx; } Elf32_Ehdr; .Ed .Pp .Bd -literal -offset indent typedef struct { unsigned char e_ident[EI_NIDENT]; Elf64_Quarter e_type; Elf64_Quarter e_machine; Elf64_Half e_version; Elf64_Addr e_entry; Elf64_Off e_phoff; Elf64_Off e_shoff; Elf64_Half e_flags; Elf64_Quarter e_ehsize; Elf64_Quarter e_phentsize; Elf64_Quarter e_phnum; Elf64_Quarter e_shentsize; Elf64_Quarter e_shnum; Elf64_Quarter e_shstrndx; } Elf64_Ehdr; .Ed .Pp フィールドは、以下の意味を持っています: .Pp .Bl -tag -width "e_phentsize" -compact -offset indent .It Dv e_ident このバイト配列はファイルをどのように解釈すべきかを指定します。 これは、プロセッサまたはファイルの残りの内容から独立しています。 この配列では、すべてはマクロによって先頭に .Sy EI_ のついた名前を持ち、 また先頭に .Sy ELF がついた値を持つでしょう。 以下のマクロが定義されています: .Pp .Bl -tag -width "EI_VERSION" -compact .It Dv EI_MAG0 マジック番号の第 1 のバイト。 .Sy ELFMAG0 であることが必要です。 .It Dv EI_MAG1 マジック番号の第 2 のバイト。 .Sy ELFMAG1 であることが必要です。 .It Dv EI_MAG2 マジック番号の第 3 のバイト。 .Sy ELFMAG2 であることが必要です。 .It Dv EI_MAG3 マジック番号の第 4 のバイト。 .Sy ELFMAG3 であることが必要です。 .It Dv EI_CLASS 第 5 のバイトは、当該のバイナリファイルによってアーキテクチャを識別します: .Pp .Bl -tag -width "ELFCLASSNONE" -compact .It Dv ELFCLASSNONE このクラスは、不当です。 .It Dv ELFCLASS32 これは、32 ビットアーキテクチャを定義します。 ファイル空間と仮想アドレス空間が 4 ギガバイトまでにおさまる マシンに対応します。 .It Dv ELFCLASS64 これは、64 ビットアーキテクチャを定義します。 .El .It Dv EI_DATA 第 6 のバイトは、 ファイルのプロセッサ固有データのエンコーディングを指定します。 現在、次のエンコーディングがサポートされています: .Pp .Bl -tag -width "ELFDATA2LSB" -compact .It Dv ELFDATANONE 未知のデータフォーマット。 .It Dv ELFDATA2LSB 2 の補数、リトルエンディアン。 .It Dv ELFDATA2MSB +2 の補数、ビッグエンディアン。 .El .It Dv EI_VERSION ELF 仕様書のバージョンナンバ: .Pp .Bl -tag -width "EV_CURRENT" -compact .It Dv EV_NONE 不当なバージョン。 .It Dv EV_CURRENT 現在のバージョン。 .El .It Dv EI_PAD パディングの始め。 これらのバイトは、予約されており、0 にセットされます。 ここを読むプログラムは、これを無視する必要があります。 将来、現在使っていないバイトに意味が与えられた時には、 EI_PAD の値は変わります。 .It Dv EI_BRAND アーキテクチャ識別子の始め。 .It Dv EI_NIDENTT e_ident 配列の大きさ。 .El .Pp .It Dv e_type 構造体のこのメンバは、オブジェクトファイルタイプを同定します: .Pp .Bl -tag -width "ET_NONE" -compact .It Dv ET_NONE 未知のタイプ。 .It Dv ET_REL 再配置可能なファイル。 .It Dv ET_EXEC 実行可能ファイル。 .It Dv ET_DYN 共有オブジェクト。 .It Dv ET_CORE コアファイル。 .El .Pp .It Dv e_machine このメンバは、個々のファイルに必要なアーキテクチャを指定します: .Pp .Bl -tag -width "EM_MIPS_RS4_BE" -compact .It Dv EM_NONE 未知のマシン。 .It Dv EM_M32 AT&T WE 32100. .It Dv EM_SPARC Sun Microsystems SPARC. .It Dv EM_386 Intel 80386. .It Dv EM_68K Motorola 68000. .It Dv EM_88K Motorola 88000. .It Dv EM_486 Intel 80486. .It Dv EM_860 Intel 80860. .It Dv EM_MIPS MIPS RS3000 (ビッグエンディアンのみ) .It Dv EM_MIPS_RS4_BE MIPS RS4000 (ビッグエンディアンのみ) .It Dv EM_SPARC64 SPARC v9 64-bit 非公式。 .It Dv EM_PARISC HPPA. .It Dv EM_PPC PowerPC. .It Dv EM_ALPHA Compaq [DEC] Alpha. .El .Pp .It Dv e_version このメンバは、ファイルバージョンを識別します: .Pp .Bl -tag -width "EV_CURRENT" -compact .It Dv EV_NONE 不当なバージョン。 .It Dv EV_CURRENT 現在のバージョン。 .El .It Dv e_entry このメンバは、システムが最初に制御を移す、 つまりプロセスを開始する仮想アドレスを示します。 ファイルがエントリーポイントを与えられていない時には、 このメンバは 0 になります。 .It Dv e_phoff このメンバは、 プログラムヘッダテーブルのバイト単位のファイルオフセットを持ちます。 .It Dv e_shoff このメンバは、 セクションヘッダテーブルのバイト単位のファイルオフセットを持ちます。 ファイルにはセクションヘッダテーブルがないならば、このメンバは 0 を持ちます。 .It Dv e_flags このメンバは、ファイルに関連する、プロセッサに固有なフラグを持ちます。 フラグ名は、EF_`machine_flag' という形式になります。 現在、フラグは定義されていません。 .It Dv e_ehsize このメンバは、ELF ヘッダのバイト単位の大きさを持ちます。 .It Dv e_phentsize このメンバは、 ファイルのプログラムヘッダテーブルにあるエントリ 1 個分のサイズを持ちます; 全てのエントリは、同じ大きさです。 .It Dv e_phnum このメンバは、プログラムヘッダテーブル中のエントリの個数を持ちます。 つまり、 .Sy e_phentsize と .Sy e_phnum の積は、テーブルのバイト単位の大きさを与えます。 ファイルにはプログラムヘッダがない場合、 .Sy e_phnum 値は 0 になります。 .It Dv e_shentsize このメンバは、セクションヘッダのバイト単位の大きさを持ちます。 セクションヘッダは、 セクションヘッダテーブルの中の 1 つのエントリです; 全てのエントリは、同じ大きさです。 .It Dv e_shnum このメンバは、セクションヘッダテーブル中のエントリの個数を持ちます。 つまり、 .Sy e_shentsize と .Sy e_shnum の積は、セクションヘッダテーブルのバイト単位の大きさを与えます。 ファイルにはセクションヘッダテーブルがないならば、 .Sy e_shnum の値は 0 になります。 .It Dv e_shstrndx このメンバは、 セクションヘッダテーブルの、 セクション名文字列テーブルに結びつけられたエントリへの インデックスを持ちます。 ファイルにはセクション名文字列テーブルがないならば、 このメンバは値 .Sy SHN_UNDEF を持ちます。 .Pp .Bl -tag -width "SHN_LORESERVE" -compact .It Dv SHN_UNDEF この値は、未定義か、存在しないか、無関係であるか、 意味がないセクション参照を示します。 例えば、セクション番号 .Sy SHN_UNDEF に対応したシンボル .Dq defined は、未定義シンボルです。 .It Dv SHN_LORESERVE この値は、予約のインデックスの範囲の下限を指定します。 .It Dv SHN_HIPROC この値から .Sy SHN_HIPROC 以下は、プロセッサ固有のセマンティクスのために予約されています。 この値から .Sy SHN_LOPROC 以上は、プロセッサ固有のセマンティクスのために予約されています。 .It Dv SHN_ABS この値は、対応する参照のために絶対的な値を指定します。 例えば、 .Sy SHN_ABS に関連するシンボルは。絶対的な値を持ち、再配置による影響を受けません。 .It Dv SHN_COMMON このセクションに対応して定義されたシンボルは、 Fortran の COMMON や、領域が確保されていない C の 外部変数のような、 共用シンボルです。 .It Dv SHN_HIRESERVE この値は、予約インデックス範囲の上限を指定します。 この範囲は、 .Sy SHN_LORESERVE と .Sy SHN_HIRESERVE の間であり、両端を含みます。 これらの値は、セクションヘッダテーブルを参照しません。 セクションヘッダテーブルは予約のインデックスのためにエントリを .Em 含みません。 .El .El .Pp 実行可能ファイルまたは共有オブジェクトファイルのプログラムヘッダテーブルは、 構造体の配列で、それぞれがセグメントや、 その他プログラムの実行のためにシステムが用意する必要がある情報を 記述します。 オブジェクトファイルの .Em セグメント は、1 つ以上の .Em セクション を含みます。 プログラムヘッダは、 実行可能ファイルと共有オブジェクトファイルだけで意味があります。 ファイルは、ELF ヘッダの .Sy e_phentsize と .Sy e_phnum メンバでそれ自身のプログラムヘッダサイズを指定します。 ELF 実行形式のヘッダと同様に、 プログラムヘッダもアーキテクチャに従い異なるバージョンを持ちます: .Pp .Bd -literal -offset indent typedef struct { Elf32_Word p_type; Elf32_Off p_offset; Elf32_Addr p_vaddr; Elf32_Addr p_paddr; Elf32_Size p_filesz; Elf32_Size p_memsz; Elf32_Word p_flags; Elf32_Size p_align; } Elf32_Phdr; .Ed .Pp .Bd -literal -offset indent typedef struct { Elf64_Half p_type; Elf64_Half p_flags; Elf64_Off p_offset; Elf64_Addr p_vaddr; Elf64_Addr p_paddr; Elf64_Size p_filesz; Elf64_Size p_memsz; Elf64_Size p_align; } Elf64_Phdr; .Ed .Pp 32 ビットと 64 ビットのプログラムヘッダの間の主な差は、 構造体中の .Sy p_flags メンバだけです。 .Pp .Bl -tag -width "p_offset" -compact -offset indent .It Dv p_type 構造体 Phdr のこのメンバは、この配列要素が記述しているセグメントを示し、 どのように配列要素を解釈すべきかを示します。 .Bl -tag -width "PT_DYNAMIC" -compact .Pp .It Dv PT_NULL 配列要素は使っていません。また、他のメンバの値は未定義です。 これにより、プログラムヘッダ中に無視されるエントリを持てます。 .It Dv PT_LOAD 配列要素はロード可能なセグメントを指定します。 これは .Sy p_filesz と .Sy p_memsz で記述されます。 ファイルからのバイトは、メモリセグメントの先頭にマップされます。 セグメントのメモリサイズ ( .Sy p_memsz ) がファイルサイズ ( .Sy p_filesz ) より大きいならば、 .Dq 余分な バイトは値 0 を持って、 セグメントの初期化された領域に続くために定義されます。 ファイルサイズは、メモリサイズより大きくないかもしれません。 プログラムヘッダテーブルの中のロード可能な セグメントエントリは昇順で現れます。 そして、 .Sy p_vaddr メンバでソートされます。 .It Dv PT_DYNAMIC 配列要素は、動的リンク情報を指定します。 .It Dv PT_INTERP 配列要素は、 インタープリタとして起動するナル文字で終わるパス名の場所と大きさを指定します。 このセグメントタイプは、実行可能ファイルのみで意味があります (本セグメントタイプは、共有オブジェクト中にあるかもしれません) 。 本セグメントは、ファイル中で複数個存在してはなりまねん。 それが存在するならば、 それはどんなロード可能なセグメントエントリにでも 先行する必要があります。 .It Dv PT_NOTE 本配列要素は、補助情報のために場所と大きさを指定します。 .It Dv PT_SHLIB このセグメントタイプは、 予約されており、明記されていないセマンティクスを持ちます。 このタイプの配列要素を含むプログラムは、ABI に従いません。 .It Dv PT_PHDR 本配列要素が存在する場合、 ファイル中とメモリイメージ中における、 プログラムヘッダテーブル自身の位置と大きさを指定します。 本セグメントタイプは、ファイル中で複数個存在してはなりません。 さらに、 プログラムヘッダテーブルがプログラムのメモリイメージに含まれる場合のみ、 存在が許されます。 存在する場合、 全ロード可能セグメントエントリに先行する必要があります。 .It Dv PT_LOPROC .Sy PT_HIPROC この値から .Sy PT_HIPROC 以下は、プロセッサ固有のセマンティクスのために予約されています。 .It Dv PT_HIPROC この値から .Sy PT_LOPROC 以上は、プロセッサ固有のセマンティクスのために予約されています。 .El .Pp .It Dv p_offset このメンバは、セグメントの最初のバイトが存在するバイトへの、 ファイル先頭からのオフセットを持ちます。 .It Dv p_vaddr このメンバは、 セグメントの最初のバイトがメモリで存在する仮想アドレスを持ちます。 .It Dv p_paddr 物理アドレッシングのシステム上では、 このメンバは、セグメントの物理アドレスのために予約されています。 BSD では、本メンバは使されず、0 である必要があります。 .It Dv p_filesz このメンバは、セグメントのファイルイメージのバイト数を持ちます。 0 であるかもしれません。 .It Dv p_memsz このメンバは、セグメントのメモリイメージのバイト数を持ちます。 0 であるかもしれません。 .It Dv p_flags このメンバは、セグメントに関したフラグを持ちます。 .Pp .Bl -tag -width "PF_X" -compact .It Dv PF_X 実行形式セグメント。 .It Dv PF_W 書きこみ可能なセグメント。 .It Dv PF_R 読み込み可能なセグメント。 .El .Pp テキストセグメントは、一般にフラグ .Sy PF_X と .Sy PF_R を持ちます。 データセグメントは、一般に .Sy PF_X , .Sy PF_W と .Sy PF_R を持ちます。 .It Dv p_align 本メンバは、メモリ中およびファイル中でセグメントが整列すべき値を持ちます。 ロード可能なプロセスは、 .Sy p_vaddr と .Sy p_offset をページサイズで割った余りに適合する値を持つ必要があります。 0 と 1 の値は、アライメントが必要でないことを意味します。 一方、 .Sy p_align は、正 (2 の整数乗) である必要があります。そして、 .Sy p_vaddr は .Sy p_offset , を .Sy p_align で割った余りと等しい必要があります。 .El .Pp ファイルのセクションヘッダテーブルは、 全てのファイルのセクションの位置決定を可能とします。 セクションヘッダテーブルは、Elf32_Shdr または Elf64_Shdr 構造体の配列です。 ELF ヘッダの .Sy e_shoff メンバは、 セクションヘッダテーブルの、ファイル先頭からのバイトオフセットを与えます。 .Sy e_shnum は、セクションヘッダテーブルのエントリ数を持ちます。 .Sy e_shentsize は、各エントリの大きさをバイトで持ちます。 .Pp セクションヘッダテーブルインデックスは、この配列の添字です。 セクションヘッダテーブルインデックスには、予約のものがあります。 オブジェクトファイルには、次の特別なインデックスにはセクションがありません: .Pp .Bl -tag -width "SHN_LORESERVE" -compact .It Dv SHN_UNDEF この値は、未定義か、存在しないか、無関係であるか、 意味がないセクション参照を示します。 .It Dv SHN_LORESERVE この値は、予約のインデックスの範囲の下限を指定します。 .It Dv SHN_LOPROC この値から .Sy SHN_HIPROC 以下は、プロセッサ固有のセマンティクスのために予約されています。 .It Dv SHN_HIPROC この値から .Sy SHN_LOPROC 以下は、プロセッサ固有のセマンティクスのために予約されています。 .It Dv SHN_ABS この値は、対応する参照が絶対値であることを指定します。 例えば、セクション番号 .Sy SHN_ABS に関連して定義されているシンボルは絶対的な数値を持ち、 再配置によって影響を受けません。 .It Dv SHN_COMMON このセクションからの相対で指定されるシンボルは、共通シンボルであり、 Fortran の COMMON や領域が確保されていない C の外部変数が該当します。 .It Dv SHN_HIRESERVE この値は、予約インデックス範囲の上限を指定します。 この範囲は、 .Sy SHN_LORESERVE と .Sy SHN_HIRESERVE の間であり、両端を含みます。 セクションヘッダテーブルは、予約のインデックスのためにエントリを含みません。 .El .Pp セクションヘッダは、以下の構造体を持ちます: .Bd -literal -offset indent typedef struct { Elf32_Word sh_name; Elf32_Word sh_type; Elf32_Word sh_flags; Elf32_Addr sh_addr; Elf32_Off sh_offset; Elf32_Size sh_size; Elf32_Word sh_link; Elf32_Word sh_info; Elf32_Size sh_addralign; Elf32_Size sh_entsize; } Elf32_Shdr; .Ed .Pp .Bd -literal -offset indent typedef struct { Elf64_Half sh_name; Elf64_Half sh_type; Elf64_Size sh_flags; Elf64_Addr sh_addr; Elf64_Off sh_offset; Elf64_Size sh_size; Elf64_Half sh_link; Elf64_Half sh_info; Elf64_Size sh_addralign; Elf64_Size sh_entsize; } Elf64_Shdr; .Ed .Pp .Bl -tag -width "sh_addralign" -compact .It Dv sh_name このメンバは、セクションの名前を指定します。 その値はセクションヘッダ文字列テーブルセクションへの インデックスです。そして、ナル文字で終わる文字列の場所を与えます。 .It Dv sh_type このメンバは、セクションの内容とセマンティクスを分類します。 .Pp .Bl -tag -width "SHT_PROGBITS" -compact .It Dv SHT_NULL この値は、セクションヘッダが不活性であることを示します。 それは、関連づけられたセクションがないということです。 セクションヘッダの他のメンバは、未定義値を持ちます。 .It Dv SHT_PROGBITS セクションはプログラムによって定義される情報を持ちます。 フォーマットと意味は、プログラムだけによってのみ決定されます。 .It Dv SHT_SYMTAB このセクションは、シンボルテーブルを持ちます。 一般的に、 .Sy SHT_SYMTAB はリンクエディットのためのシンボルを提供します。 これはまた、動的リンクに使われるかもしれません。 完全なシンボルテーブルとして、 それは動的リンクのために不必要な多くのシンボルを含む場合があります。 オブジェクトファイルは、また、 .Sy SHN_DYNSYM セクションを含むことができます。 .It Dv SHT_STRTAB このセクションは、文字列テーブルを持ちます。 オブジェクトファイルは、複数の文字列テーブルセクションを持ち得ます。 .It Dv SHT_RELA このセクションは、明示的な加数を持つ、再配置エントリを持ちます。 例えば、オブジェクトファイルの 32 ビットクラスのタイプ .Sy Elf32_Rela が該当します。 オブジェクトは、複数の再配置セクションを持ち得ます。 .It Dv SHT_HASH このセクションは、シンボルハッシュテーブルを持ちます。 動的リンクに関連する全オブジェクトは、 シンボルハッシュテーブルを含む必要があります。 オブジェクトファイルは、単一のハッシュテーブルのみを持ち得ます。 .It Dv SHT_DYNAMIC このセクションは、動的リンクのために情報を持ちます。 オブジェクトファイルは、単一の動的セクションのみを持ち得ます。 .It Dv SHT_NOTE このセクションは、いくばくかの方法でファイルに印をする情報を持ちます。 .It Dv SHT_NOBITS このタイプのセクションは、ファイル中の空間を占めませんが、 .Sy SHN_PROGBITS に似ています。 このセクションはバイトを含みませんが、 .Sy sh_offset メンバは概念上のファイルオフセットを含みます。 .It Dv SHT_REL このセクションは、明示的な加数無しの再配置オフセットを持ちます。 例えば、オブジェクトファイルの 32 ビットクラスのタイプ .Sy Elf32_Rel が該当します。 オブジェクトファイルは、複数の再配置セクションを持ち得ます。 .It Dv SHT_SHLIB このセクションは、予約されており、明記されていないセマンティクスを持ちます。 .It Dv SHT_DYNSYM このセクションは、動的リンクシンボルの最小のセットを持ちます。 オブジェクトファイルは、また、 .Sy SHN_SYMTAB セクションを含むことができます。 .It Dv SHT_LOPROC この値から .Sy SHT_HIPROC 以下は、プロセッサ固有のセマンティクスのために予約されています。 .It Dv SHT_HIPROC この値から .Sy SHT_LOPROC 以上は、プロセッサ固有のセマンティクスのために予約されています。 .It Dv SHT_LOUSER この値は、応用プログラムプログラムのために予約されている インデックス範囲の下限を指定します。 .It Dv SHT_HIUSER この値は、応用プログラムプログラムのために予約されている インデックス範囲の上限を指定します。 現在または将来のシステム定義セクションタイプと衝突することなく、 .Sy SHT_LOUSER と .Sy SHT_HIUSER の間のセクションタイプが、応用プログラムによって使われるかもしれません。 .El .Pp .It Dv sh_flags セクションは、雑多な属性を記述する 1 ビットフラグをサポートします。 フラグビットが .Sy sh_flags でセットされるならば、そのセクションの属性は .Dq オン になります。 そうでなければ、属性は .Dq オフ であるか、あてはまりません。 未定義属性は、0 にセットされます。 .Pp .Bl -tag -width "SHF_EXECINSTR" -compact .It Dv SHF_WRITE セクションは、プロセス実行の間、書き込み可能であるべきデータを含みます。 .It Dv SHF_ALLOC セクションは、プロセス実行の間、メモリを占有します。 制御セクションには、 オブジェクトファイルのメモリイメージで存在しないものがあります。 そのようなセクションでは、この属性はオフです。 .It Dv SHF_EXECINSTR セクションは、実行可能な機械語命令を含みます。 .It Dv SHF_MASKPROC このマスクで含まれる全てのビットは、 プロセッサ固有のセマンティクスのために確保されます。 .El .Pp .It Dv sh_addr セクションがプロセスのメモリイメージに現れる場合、 このメンバはセクションの最初のバイトが存在するアドレスを持ちます。 そうでない場合、このメンバは 0 を含みます。 .It Dv sh_offset このメンバ値は、 このセクションの、ファイル先頭からのバイトオフセットを与えます。 1 つのセクションタイプ、すなわち .Sy SHT_NOBITS は、ファイルでスペースを占有しません。 そして、その .Sy sh_offset メンバは、ファイル上の概念上の位置を指定します。 .It Dv sh_size このメンバは、セクションのバイトでの大きさを持ちます。 セクションタイプが .Sy SHT_NOBITS でない限り、セクションはファイルで .Sy sh_size バイトを占有します。 タイプ .Sy SHT_NOBITS のセクションは 0 以外の大きさを持つかもしれません。 しかし、それはファイルでスペースを占有しません。 .It Dv sh_link このメンバは、 セクションヘッダテーブルインデックスリンクを持ちます。 この解釈は、セクションタイプ依存です。 .It Dv sh_info このメンバは、 追加情報を持ちます。 この解釈は、セクションタイプ依存です。 .It Dv sh_addralign 若干のセクションは、アドレスアライメント制約があります。 セクションがダブルワードを持つならば、 システムはダブルワードアライメントを セクション全体に保証する必要があります。 .Sy sh_addr の値は 0 であることが必要であり、モジュロ .Sy sh_addralign の値となります。 '\" ここよくわからん。 0 と 2 の正の羃乗だけが許されます。0 または 1 の値は、 セクションにはアライメント制約がないことを意味します。 .It Dv sh_entsize 若干のセクションは、 固定長エントリのテーブルを持ちます。 例えばシンボルテーブルがこれに該当します。 そのようなセクションのために、 このメンバは、各エントリのバイトでの大きさを与えます。 セクションが固定サイズのエントリのテーブルを持たないならば、 このメンバは 0 を含みます。 .El .Pp 様々なセクションが、プログラムと制御情報を持ちます: .Bl -tag -width ".shstrtab" -compact .It .bss このセクションは初期化されないデータを持ち、 プログラムのメモリイメージになります。 定義では、 プログラム開始時にシステムがデータを 0 初期化します。 このセクションは、タイプ .Sy SHT_NOBITS です。 属性タイプは、 .Sy SHF_ALLOC と .Sy SHF_WRITE です。 .It .comment このセクションは、バージョン制御情報を持ちます。 このセクションは、タイプ .Sy SHT_PROGBITS です。 属性タイプは使われません。 .It .data このセクションは初期化されたデータを持ち、 プログラムのメモリイメージになります。 このセクションは、タイプ .Sy SHT_PROGBITS です。 属性タイプは、 .Sy SHF_ALLOC と .Sy SHF_WRITE です。 .It .data1 このセクションは初期化されたデータを持ち、 プログラムのメモリイメージになります。 このセクションは、タイプ .Sy SHT_PROGBITS です。 属性タイプは、 .Sy SHF_ALLOC と .Sy SHF_WRITE です。 .It .debug このセクションは、シンボリックデバッギングのための情報を持ちます。 内容は、明記されていません。 このセクションは、タイプ .Sy SHT_PROGBITS です。 属性タイプは使われません。 .It .dynamic このセクションは、動的リンク情報を持ちます。 セクションの属性は、 .Sy SHF_ALLOC ビットを含みます。 .Sy SHF_WRITE ビットがセットされるか否かは、プロセッサ依存です。 このセクションは、タイプ .Sy SHT_DYNAMIC です。 上の属性を見てください。 .It .dynstr このセクションは動的リンクのために必要とされる文字列を持ちます。 そして一般には、名前を表示する文字列であり、 シンボルテーブルエントリと結び付けられています。 このセクションは、タイプ .Sy SHT_STRTAB です。 使われる属性タイプは、 .Sy SHF_ALLOC です。 .It .dynsym このセクションは、動的リンクシンボルテーブルを持ちます。 このセクションは、タイプ .Sy SHT_DYNSYM です。 使われる属性は、 .Sy SHF_ALLOC です。 .It .fini このセクションは、 プロセス終了コードのための実行可能命令を持ちます。 プログラムが正常終了するとき、 システムはこのセクションでコードを実行するために手配します。 このセクションは、タイプ .Sy SHT_PROGBITS です。 使われる属性は、 .Sy SHF_ALLOC と .Sy SHF_EXECINSTR です。 .It .got このセクションは、グローバルオフセットテーブルを持ちます。 このセクションは、タイプ .Sy SHT_PROGBITS です。 属性は、プロセッサ依存です。 .It .hash このセクションは、シンボルハッシュテーブルを持ちます。 このセクションは、タイプ .Sy SHT_HASH です。 使われる属性は、 .Sy SHF_ALLOC です。 .It .init このセクションは、プロセス初期化コードの実行可能命令を持ちます。 プログラム実行開始時に、 メインプログラムエントリポイントを呼び出す前に、 システムはこのセクションのコードを実行します。 このセクションは、タイプ .Sy SHT_PROGBITS です。 使われる属性は、 .Sy SHF_ALLOC と .Sy SHF_EXECINSTR です。 .It .interp このセクションは、プログラムインタプリタのパス名を持ちます。 ファイルがこのセクションを含むロード可能なセグメントを持つならば、 セクションの属性は .Sy SHF_ALLOC ビットを含みます。 そうでない場合、このビットはオフです。 このセクションは、タイプ .Sy SHT_PROGBITS です。 .It .line このセクションはシンボリックデバッギングのために行番号情報を持ちます。 これは、プログラムソースとマシンコードの間の関係を記述します。 内容は、明記されていません。 このセクションは、タイプ .Sy SHT_PROGBITS です。 属性タイプは使われていません。 .It .note このセクションは、下で記述される .Dq Note Section フォーマットで、情報を持ちます。 このセクションは、タイプ .Sy SHT_NOTE です。 属性タイプは使われていません。 .It .plt このセクションは、プロシージャリンケージテーブルを持ちます。 このセクションは、タイプ .Sy SHT_PROGBITS です。 属性はプロセッサ依存です。 .It .relNAME このセクションは、下記のように再配置情報を持ちます。 ファイルが再配置を含むロード可能なセグメントを持つならば、 セクションの属性は .Sy SHF_ALLOC ビットを含みます。 そうでない場合、このビットはオフです。 規約により、再配置されるセクションから .Dq NAME が与えられます。 .Sy .text のための再配置セクションは、通常名前 .Sy .rel.text を持ちます。 このセクションは、タイプ .Sy SHT_REL です。 .It .relaNAME このセクションは、下記のように再配置情報を持ちます。 ファイルが再配置を含むロード可能なセグメントを持つならば、 セクションの属性は .Sy SHF_ALLOC ビットを含みます。 そうでない場合、このビットはオフです。 規約により、再配置されるセクションから .Dq NAME が与えられます。 .Sy .text のための再配置セクションは、通常名前 .Sy .rela.text を持ちます。 このセクションは、タイプ .Sy SHT_RELA です。 .It .rodata このセクションは読み取り専用データを持ち、 典型的にはプロセスの書き込み不可セグメントになります。 このセクションは、タイプ .Sy SHT_PROGBITS です。 使われる属性は、 .Sy SHF_ALLOC です。 .It .rodata1 このセクションは読み取り専用データを持ち、 典型的にはプロセスの書き込み不可セグメントになります。 このセクションは、タイプ .Sy SHT_PROGBITS です。 使われる属性は、 .Sy SHF_ALLOC です。 .It .shstrtab このセクションはセクション名を持ちます。 このセクションは、タイプ .Sy SHT_STRTAB です。 属性タイプは使われません。 .It .strtab このセクションは文字列を持ちます。 一般的には名前を表示する文字列であり、 シンボルテーブルエントリと結び付けられています。 ファイルがシンボル文字列テーブルを含むロード可能なセグメントを持つならば、 セクションの属性は .Sy SHF_ALLOC ビットを含みます。 そうでない場合、このビットはオフです。 このセクションは、タイプ .Sy SHT_STRTAB です。 .It .symtab このセクションは、シンボルテーブルを持ちます。 ファイルがシンボルテーブルを含むロード可能なセグメントを持つならば、 セクションの属性は .Sy SHF_ALLOC ビットを含みます。 そうでない場合、このビットはオフです。 このセクションは、タイプ .Sy SHT_SYMTAB です。 .It .text このセクションは、プログラムの .Dq テキスト 、すなわち実行可能命令を持ちます。 このセクションは、タイプ .Sy SHT_PROGBITS です。 使われる属性は、 .Sy SHF_ALLOC と .Sy SHF_EXECINSTR です。 .El .Pp 文字列テーブルセクションは、ナル文字で終わる文字シーケンス群を持ちます。 これらは、一般に文字列と呼ばれます。 オブジェクトファイルは、 シンボルとセクション名を表示するためにこれらの文字列を使います。 文字列テーブルセクションのインデックスとして、文字列を参照します。 最初のバイト (インデックス 0) は、 ナル文字を持つために定義されます。 同じように、文字列テーブルの最終バイトはナル文字を持つために そして、ヌル終端文字を全ての文字列に確保します。 .Pp オブジェクトファイルのシンボルテーブルは、 プログラムのシンボル定義と参照の位置決定に必要な情報を保持します。 シンボルテーブルインデックスは、この配列の添字です。 .Pp .Bd -literal -offset indent typedef struct { Elf32_Word st_name; Elf32_Addr st_value; Elf32_Size st_size; unsigned char st_info; unsigned char st_other; Elf32_Half st_shndx; } Elf32_Sym; .Ed .Pp .Bd -literal -offset indent typedef struct { Elf64_Half st_name; unsigned char st_info; unsigned char st_other; Elf64_Quarter st_shndx; Elf64_Addr st_value; Elf64_Size st_size; } Elf64_Sym; .Ed .Pp .Bl -tag -width "st_value" -compact .It Dv st_name このメンバは、オブジェクトファイルの シンボル文字列テーブルへのインデックスを持ちます。 シンボル文字列テーブルは、シンボル名の文字表現を持ちます。 値が 0 以外であるならば、 それはシンボル名を与える文字列テーブルインデックスを示します。 そうでない場合、シンボルテーブルには名前がありません。 .It Dv st_value このメンバは、関連したシンボルの値を与えます。 .It Dv st_size 多くのシンボルは、関連した大きさを持ちます。 シンボルには大きさが無いか未知である場合、このメンバは 0 です。 .It Dv st_info このメンバは、シンボルのタイプと束縛属性を指定します: .Pp .Bl -tag -width "STT_SECTION" -compact .It Dv STT_NOTYPE シンボルのタイプは、定義されません。 .It Dv STT_OBJECT シンボルは、データオブジェクトと結び付けられています。 .It Dv STT_FUNC シンボルは、関数または他の実行可能コードと結び付けられています。 .It Dv STT_SECTION シンボルは、セクションと結び付けられています。 このタイプのシンボルテーブルエントリは、 主に再配置のために存在して、通常 .Sy STB_LOCAL 束縛を持ちます。 .It Dv STT_FILE 規約により、シンボルの名前は、 オブジェクトファイルと関連するソースファイルの名前を与えます。 存在する場合、ファイルシンボルは .Sy STB_LOCAL 束縛を持ち、そのセクションインデックスは .Sy SHN_ABS であり、 それはファイルの他の .Sy STB_LOCAL シンボルに先行します。 .It Dv STT_LOPROC この値から .Sy STT_HIPROC 以下は、プロセッサに固有のセマンティクスのために予約されています。 .It Dv STT_HIPROC この値から .Sy STT_LOPROC 以上は、プロセッサに固有のセマンティクスのために予約されています。 .El .Pp .Bl -tag -width "STB_GLOBAL" -compact .It Dv STB_LOCAL ローカルなシンボルは、 それらの定義を含んでいるオブジェクトファイルの外側には、見えません。 同じ名前のローカルなシンボルは、 お互いのじゃまをすることなく複数ファイルで存在し得ます。 .It Dv STB_GLOBAL グローバルシンボルは、結合されている全てのオブジェクトファイルから見えます。 あるファイルによるグローバルシンボルの定義は、 別ファイルの同じシンボルの未定義参照を満足させます。 .It Dv STB_WEAK 弱いシンボルはグローバルシンボルに似ています。 しかし、彼らの定義は低い優先順位を持ちます。 .It Dv STB_LOPROC この値から .Sy STB_HIPROC 以下は、プロセッサに固有のセマンティクスのために予約されています。 .It Dv STB_HIPROC この値から .Sy STB_LOPROC 以上は、プロセッサに固有のセマンティクスのために予約されています。 .Pp 束縛とタイプフィールドのパックおよびアンパック用のマクロがあります: .Bl -tag -width "ELF32_ST_INFO(bind, type)" -compact .It Dv ELF32_ST_BIND(info) または .Sy ELF64_ST_BIND(info) は、束縛を st_info 値から引出します。 .It Dv ELF64_ST_TYPE(info) または .Sy ELF32_ST_TYPE(info) は、タイプを st_info 値から引出します。 .It Dv ELF32_ST_INFO(bind, type) または .Sy ELF64_ST_INFO(bind, type) は、束縛とタイプを st_info 値へ変換します。 .El .El .Pp .It Dv st_other このメンバは、現在 0 を持ち、定義された意味を持ちません。 .It Dv st_shndx あらゆるシンボルテーブルエントリは、 なんらかの動作に関して .Dq 定義されています 。 このメンバは、関連するセクションヘッダテーブルインデックスを持ちます。 .El .Pp 再配置は、シンボル参照とシンボル定義を接続する処理です。 再配置可能なファイルは、それらのセクション内容の 修正方法を記述する情報を持つ必要があります。 このようにして、実行可能ファイルと共有オブジェクトファイルが、 プロセスのプログラムイメージのための正しい情報を持てます。 再配置エントリは、これらのデータです。 .Pp 加数を必要としない再配置構造体: .Pp .Bd -literal -offset indent typedef struct { Elf32_Addr r_offset; Elf32_Word r_info; } Elf32_Rel; .Ed .Bd -literal -offset indent typedef struct { Elf64_Addr r_offset; Elf64_Size r_info; } Elf64_Rel; .Ed .Pp 加数を必要とする再配置構造体: .Pp .Bd -literal -offset indent typedef struct { Elf32_Addr r_offset; Elf32_Word r_info; Elf32_Sword r_addend; } Elf32_Rela; .Ed .Bd -literal -offset indent typedef struct { Elf64_Addr r_offset; Elf64_Size r_info; Elf64_Off r_addend; } Elf64_Rela; .Ed .Pp .Bl -tag -width "r_offset" -compact .It Dv r_offset このメンバは、再配置動作を適用する場所を与えます。 再配置可能なファイルでは、 値は、再配置によって影響を受ける記憶単位の セクション先頭からのバイトオフセットです。 実行可能ファイルまたは共用オブジェクトでは、 値は、再配置によって影響を受ける記憶単位の仮想アドレスです。 .It Dv r_info このメンバは、 再配置されるシンボルテーブルインデックスと、 使用する再配置のタイプを与えます。 再配置タイプは、プロセッサ依存です。 テキストが再配置エントリの再配置タイプまたは シンボルテーブルインデックスを参照するとき、 エントリの .Sy r_info メンバに対し、それぞれ .Sy ELF_[32|64]_R_TYPE または .Sy ELF[32|64]_R_SYM を適用する結果を意味しています。 .It Dv r_addend このメンバは、定数の加数を指定します。 これは、再配置可能なフィールドに 格納される値を計算するために使用されます。 .El .Sh 関連項目 .Xr as 1 , .Xr gdb 1 , .Xr ld 1 , .Xr objdump 1 , .Xr execve 2 , .Xr core 5 .Rs .%A Hewlett Packard .%B Elf-64 Object File Format .Re .Rs .%A Santa Cruz Operation .%B System V Application Binary Interface .Re .Rs .%A Unix System Laboratories .%T Object Files .%B "Executable and Linking Format (ELF)" .Re .Sh 歴史 ELF ヘッダファイルは、 .Fx 2.2.6 で登場しました。 ELF 自身は、最初に .At V で登場しました。 ELF フォーマットは、採用された規格です。 .Sh 作者 このマニュアルページは、BSDi の BSD/OS .Xr elf 5 のマニュアルページに触発されて、 .An Jeroen Ruigrok van der Werven .Aq asmodai@wxs.nl が書きました。 diff --git a/ja_JP.eucJP/man/man5/ttys.5 b/ja_JP.eucJP/man/man5/ttys.5 index 3b58fc3782..8d1172dfa3 100644 --- a/ja_JP.eucJP/man/man5/ttys.5 +++ b/ja_JP.eucJP/man/man5/ttys.5 @@ -1,167 +1,178 @@ .\" Copyright (c) 1985, 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" WORD: line 回線 .\" .\" from: @(#)ttys.5 8.1 (Berkeley) 6/4/93 -.\" %FreeBSD: src/libexec/getty/ttys.5,v 1.9.2.1 1999/08/29 15:03:24 peter Exp % +.\" %FreeBSD: src/libexec/getty/ttys.5,v 1.9.2.2 1999/12/07 07:57:58 sheldonh Exp % .\" jpman %Id: ttys.5,v 1.3 1998/06/17 07:52:43 kumano Stab % .\" " .Dd November 17, 1996 .Dt TTYS 5 .Os .Sh 名称 .Nm ttys .Nd 端末初期設定情報 .Sh 解説 ファイル .Nm は端末特殊ファイルを初期化したり制御するあらゆるルーチンが使用する 情報を含んでいます。 この情報は .Xr getttyent 3 ライブラリルーチンで読まれます。 .Nm ファイルの中には 1 つのスペシャルデバイスファイルにつき 1 行の記述が あります。 フィールドはタブやスペースにより区切られます。 1 語以上からなるフィールドはダブルクォート (``"'') で括られていなければ なりません。 空行やコメントはファイル中のどこに現れても構いません。 コメントはハッシュ記号 (``#'') および改行によって区切られます。 指定されていないフィールドはデフォルトでナルです。 .Pp -最初のフィールドは +最初のフィールドは、通常は端末特殊ファイルの名前であり、 .Pa /dev -にあるような端末特殊ファイルの名前です。 +にあるようなものです。 +しかしながら、関連付けられたコマンドが tty に無関係である場合、 +任意の文字列にできます。 .Pp 2 番目のフィールドはその回線に対して実行するコマンドで、 通常 .Xr getty 8 です。これは回線を初期化して開くプログラムで、スピードを設定したり、 ユーザ名を待ったり .Xr login 1 プログラムを実行します。 しかしながら、それはどんな希望するコマンド、例えばウィンドウシステム の端末エミュレータやデーモンプロセスの起動コマンドでも構いません。 そして、もしクォートで括られているのなら複数語を含む事もできます。 .Pp 3 番目のフィールドは通常その tty 回線に接続される端末のタイプで、普通 .Xr termcap 5 データベースファイル中に収められています。 環境変数 .Ev TERM は .Xr getty 8 または .Xr login 1 による値に初期化されます。 .Pp 残りのフィールドは .Fa ty_status エントリ .Xr (getttyent 3 参照) 中のフラグを指定したり、その端末回線に対して .Xr init 8 が維持するウィンドウシステムのプロセスを指定したり、 オプションで tty のタイプ (ダイヤルインか、ネットワークか、またはそれ以外か) を決定したり、 またログインクラスのデータベース .Xr (login.conf 5 参照) が多くの tty をグループとして参照できるような tty グループ名を指定します。 これはグループとして tty に対して選択的にアクセスを許可または 拒否したりアカウンティング機能を可能または不可能にするためです。 .Pp フラグの値としては、文字列 ``on'' と ``off'' は .Xr init 8 が 2 番目のフィールドで与えられるコマンドを実行するか(しないか)を 指定します。一方 ``secure'' は ( ``on'' も与えられていれば) uid が 0 のユーザがこの回線にログインすることを許可します。 フラグ ``dialin'' は tty エントリがダイヤルイン回線であることを 示しており、 ``network'' は tty エントリがネットワーク接続で あることを示しています。 端末タイプのフィールドには、これらの文字列のどちらかが指定できます。 文字列 ``window='' の後には .Xr init 8 が 2 番目のフィールドで指定されるコマンドを開始する .Em 前 に実行するコマンド列をクォートで括って続けます。 .Pp 文字列 ``group='' の後には、 多くの tty 回線をアクセスの許可/拒否やアカウンティング機能の 可能/不可能を決めるためのグループとして参照するために .Xr login.conf 5 で使われる、文字・数字のグループ名を続けます。 何のグループも指定されなかった場合、ttyはグループ "none" に属するように なります。 以前との互換性のために、 ``group='' は行の最後に、任意のコメントのすぐ前 に現れなければなりません。 +.Pp +第 2 フィールドと ``window='' で指定されるコマンドは、語に分解され、 +.Xr execve 2 +を使用して実行されます。 +語は、タブとスペースの任意の組み合わせで区切られます。 +空白を含む引数は、シングルクォート +.Pq ' +で区切るべきです。 +シェルスタイルのグロブや他の変数置換は、行われません。 .Sh 使用例 .Bd -literal # 1200 ボーでコンソール、root でのログイン可 console "/usr/libexec/getty std.1200" vt100 on secure # 1200 ボーでダイヤルアップ、root でのログイン不可 ttyd0 "/usr/libexec/getty d1200" dialup on group=dialup # 555-1234 # Mike の端末: hp2621 ttyh0 "/usr/libexec/getty std.9600" hp2621-nl on group=dialup # 457 Evans # John の端末: vt100 ttyh1 "/usr/libexec/getty std.9600" vt100 on group=dialup # 459 Evans # 端末エミュレート/ウィンドウシステム ttyv0 "/usr/new/xterm -L :0" vs100 on window="/usr/new/Xvs100 0" # ネットワーク仮想 tty -- getty は使用しません ttyp0 none network group=pty ttyp1 none network off group=pty .Ed .\" 「使用例」1行目 `root login on ...' .\" 3行目の `no root logins' との対比であるから、 .\" 3行目の訳と対比させて「root でのログイン可」と訳した。 .\" (98/06/17 kumano@jp.freebsd.org) .Sh 関連ファイル .Bl -tag -width /etc/ttys -compact .It Pa /etc/ttys .El .Sh 関連項目 .Xr login 1 , .Xr getttyent 3 , .Xr ttyslot 3 , .Xr gettytab 5 , .Xr login.conf 5 , .Xr termcap 5 , .Xr getty 8 , .Xr init 8 .\".Xr init 8 , .\".Xr ttyflags 8 .Sh 歴史 .Nm ファイルは .At v6 で登場しました。 diff --git a/ja_JP.eucJP/man/man6/fortune.6 b/ja_JP.eucJP/man/man6/fortune.6 index 2295ae19ef..1e50931633 100644 --- a/ja_JP.eucJP/man/man6/fortune.6 +++ b/ja_JP.eucJP/man/man6/fortune.6 @@ -1,198 +1,198 @@ .\" Copyright (c) 1985, 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" This code is derived from software contributed to Berkeley by .\" Ken Arnold. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)fortune.6 8.3 (Berkeley) 4/19/94 -.\" %FreeBSD: src/games/fortune/fortune/fortune.6,v 1.5.2.3 1999/12/06 01:41:34 chris Exp % +.\" %FreeBSD: src/games/fortune/fortune/fortune.6,v 1.5.2.4 1999/12/07 02:50:31 chris Exp % .\" jpman %Id: fortune.6,v 1.4 1999/01/16 17:08:30 kuma Stab % .\" .\" 以下は Linux JM のクレジット .\" Japanese Version Copyright (c) 1997,1998 MAEHARA Kohichi .\" Japanese Version Copyright (c) 1997,1998 HANAYAKA Sinya .\" all rights reserved. .\" Translated Tue Feb 10 00:00:00 JST 1998 .\" by HANATAKA Sinya .\" by MAEHARA Kohichi .\" .\" .Dd April 19, 1994 .Dt FORTUNE 6 .Os BSD 4 .Sh 名称 .Nm fortune .Nd "おもしろくためになる格言を無作為に表示する" .Sh 書式 .Op Fl aDefilosw .Op Fl m Ar pattern .Oo .Op Ar \&N% .Ar file/dir/all .Oc .Sh 解説 .Nm fortune を引数なしで実行すると、無作為に選んだ格言を一つ表示します。 格言はいくつかの種類に分類されていて、それぞれの分類はさらに、 耳に痛いものとそうでないものとに分けられています。 オプションを以下に示します: .Bl -tag -width flag .It Fl a 耳に痛いものもそうでないものも、格言をすべて含めた リストから選びます (耳に痛いものについての詳細は .Fl o オプションを参照してください)。 .It Fl D 更なるデバッグ出力を有効にします。 本オプションを複数回指定すると、出力が更に冗長になります。 -DDEBUG 付きでコンパイルされている場合のみ、利用可能です。 .It Fl e すべての fortune のファイルが同一サイズであることを仮定します (複数ファイルの扱いについての下記の解説を参照してください)。 .It Fl f 検索されるファイルの一覧を表示し、格言は表示しません。 .It Fl l 長めの格言に限ります。 .It Fl m 正規表現 .Ar pettern に合致する格言を表示します。 正規表現のパターンの記述方法については .Xr regex 3 を参照してください。 .It Fl o 耳に痛い格言に限り、 その中から選んで出力します。 .Bf -symbolic 耳に痛そうな格言は、ぜひ、ぜひ、ぜひとも、深く落ち込んでいて、 耳に痛い格言を喜んで 受け入れられる気分のときに限って指定して下さい (そして、 もしそういう気分であるなら、出てきた文言についてわれわれに 文句を言うことをせず、黙って .Fl o オプションの使用を止めるはずですよね)。 .Ef .Bd -filled -offset indent \&...人類愛について基本的かつ支配的な哲学を心に留めるよう にしよう、これは以下の言葉に簡潔にまとめられている: 心からの笑いは健康のためによい -- 必要とあらば全人類を 犠牲にしたとしても。 .Bd -filled -offset indent-two -compact --H. Allen Smith, "Rude Jokes" .Ed .Ed .It Fl s 短めの格言に限ります。 .It Fl i .Fl m オプションで指定された (正規表現の) パターンについて、 大文字小文字の別を無視します。 .It Fl w 終了前に、メッセージの文字数に応じた長さから算出される時間だけ停止します。 ログアウト手順に組み込んだ場合、 スクリーンがクリアされる前に メッセージを読み取る時間を確保するのに役に立ちます。 .El .Pp 別の格言集の使用を指定することができます。この指定では、 特定のファイル、1 つ以上のファイルを含むディレクトリ、 もしくは標準データベース全てを使用するという .Em all という特殊語のいずれかを指定可能です。 これらの前にはパーセンテージを付けることが可能です。 パーセンテージは、0 以上 100 以下の数字 .Ar N に .Ar % を続けたものです。 パーセンテージを指定した場合、ある格言が .Ar N パーセントの確率でそのファイルあるいはディレクトリから選択されます。 パーセントの合計が 100 に満たず、パーセント無しの指定がある場合、 残りのパーセントが、パーセント無しのファイルとディレクトリに割当てられます。 この場合、パーセント無しのものが選択される確率は、これらのサイズに依存します。 .Pp 例として、2 個のデータベース .Em funny と .Em not-funny とを用います。この時 .Em funny が 2 倍の大きさとするならば、 .Bd -literal -offset indent fortune funny not-funny .Ed .Pp と指示すると 3 回に 2 回の割合で .Em funny から選択されます。 コマンドを .Bd -literal -offset indent fortune 90% funny 10% not-funny .Ed .Pp のように指定すると 90 % を .Em funny から選び出します (この場合残りが 10% であることが明らかなので .Dq 10% not-funny は不要です)。 .Fl e オプションを指定すると、全てのファイルから均等に選び出します; すなわち .Bd -literal -offset indent fortune \-e .Ed .Pp とするのは .Bd -literal -offset indent fortune 50% funny 50% not-funny .Ed .Pp と指定するのと同等です。 .Sh 関連ファイル .Bl -tag -width Pa -compact .It Pa /usr/games/fortune .Pp .It Pa /usr/share/games/fortune/* fortune のデータベース (名前が -.Dq Fl o +.Dq -o で終るファイルには、 .Bf -symbolic 耳に痛い .Ef 格言が含まれます) .El .Sh 関連項目 .Xr regcomp 3 , .Xr regex 3 .\" Amended by kuma, based on fortune.6,v 1.2 1998/02/24 14:51:07 horikawa Stab .\"ZZZ: 3.0-RELEASE complianted by N. Kumagai, 99-1-16 diff --git a/ja_JP.eucJP/man/man7/hier.7 b/ja_JP.eucJP/man/man7/hier.7 index 36f1eb606a..11264c6eb0 100644 --- a/ja_JP.eucJP/man/man7/hier.7 +++ b/ja_JP.eucJP/man/man7/hier.7 @@ -1,676 +1,686 @@ .\" Copyright (c) 1990, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)hier.7 8.1 (Berkeley) 6/5/93 -.\" %FreeBSD: src/share/man/man7/hier.7,v 1.16.2.5 1999/09/20 09:49:54 phantom Exp % +.\" %FreeBSD: src/share/man/man7/hier.7,v 1.16.2.6 1999/12/08 22:04:43 dcs Exp % .\" .\" jpman %Id: hier.7,v 1.3 1999/01/04 08:08:08 kuma Stab % .Dd June 5, 1993 .Dt HIER 7 .Os .Sh 名称 .Nm hier .Nd ファイルシステムのレイアウト .Sh 解説 ファイルシステムの階層構成についての概略です。 .Bl -tag -width "/stand/" .It Li / ファイルシステムのルートディレクトリ。 .It Li /bin/ ユーザ用ユーティリティの基本的なもの。 シングルユーザ環境、マルチユーザ環境どちらでも使用する。 +.It Li /boot/ +オペレーティングシステムのブートストラップ中に使用される +プログラムと設定ファイル。 +.Pp +.Bl -tag -width defaults/ -compact +.It Li defaults/ +デフォルトのブートストラップ用設定ファイル。 +.Xr loader.conf 5 +を参照してください。 +.El .It Li /dev/ ブロックデバイスおよびキャラクタデバイスファイル。 .Pp .Bl -tag -width MAKEDEV -compact .It Li MAKEDEV デバイスファイル作成用スクリプト。 .Xr MAKEDEV 8 参照。 .It Li fd/ ファイル記述子ファイル。 .Xr \&fd 4 参照。 .El .It Li /etc/ システムの設定ファイル、およびスクリプト。 .Pp .Bl -tag -width "disklabels/" -compact .It Li defaults/ デフォルトのシステム設定ファイル。 .Xr rc 8 参照。 .It Li gnats/ gnats 設定ファイル。 .Xr send-pr 1 参照。 .It Li isdn/ isdn4bsd の設定ファイル。 .Xr isdnd 8 参照。 .It Li kerberosIV/ kerberos バージョン IV の設定ファイル。 .Xr kerberos 1 参照。 .It Li localtime ローカルタイムゾーン情報。 .Xr ctime 3 参照。 .It Li mail/ スパムフィルタの情報。 .It Li mtree/ mtree 設定ファイル。 .Xr mtree 8 参照。 .It Li namedb/ named 設定ファイル。 .Xr named 8 参照。 .It Li periodic/ .Xr cron 8 により、毎日/毎週/毎月実行されるスクリプト。 .Xr periodic 8 参照。 .It Li ppp/ .Xr ppp 8 ppp 設定ファイル。 .Xr ppp 8 参照。 .It Li uucp/ uucp 設定ファイル。 .Xr uucp 1 参照。 .El .It Li /kernel カーネルの pure な実行可能ファイル (ブート時にメモリに読み込まれる オペレーティングシステム)。 .It Li /modules/ ロード可能なカーネルモジュール。 .Xr kldstat 8 参照。 .It Li /mnt/ 通常、システム管理者が一時的なマウントポイントとして使用する 空のディレクトリ。 .It Li /proc/ プロセスファイルシステム。 .Xr procfs 5 , .Xr mount_procfs 8 参照。 .It Li /root/ root のホームディレクトリ。 .It Li /sbin/ システムプログラム、および基本的な管理者用ユーティリティ。 シングルユーザ環境、マルチユーザ環境どちらでも使用する。 .It Li /stand/ スタンドアロン環境で使用されるプログラム。 .It Li /tmp/ テンポラリファイル。通常は .Xr mfs 8 メモリファイルシステム (通常、/tmp の内容はシステムを再起動した際には 保存されない)。 .It Li /usr/ ユーザ用ユーティリティ、およびアプリケーションの大部分を含む。 .Pp .Bl -tag -width "libdata/" -compact .It Li bin/ 一般的なユーティリティ、プログラミングツール、アプリケーション。 .It Li games/ 有用でちょっとふざけたプログラム。 .It Li include/ 標準 C 言語インクルードファイル。 .Pp .Bl -tag -width "kerberosIV/" -compact .It Li arpa/ インターネットサービスプロトコルのための C 言語インクルードファイル。 .It Li g++/ GNU C++ 言語インクルードファイル。 .Bl -tag -width "kerberosIV/" -compact .It Li std/ GNU C++ 言語 libstdc++ インクルードファイル。 .El .It Li isofs/ .Bl -tag -width "kerberosIV/" -compact .It Li cd9660/ iso9660 形式ファイルシステム。 .El .It Li kerberosIV/ kerberos 認証パッケージ用 C 言語インクルードファイル。 .Xr kerberos 1 参照。 .It Li machine/ マシン固有機能の C 言語インクルードファイル。 .It Li msdosfs/ MS-DOS ファイルシステム。 .It Li net/ その他のネットワーク機能用 C 言語インクルードファイル。 .It Li netatalk/ Appletalk プロトコル。 .It Li netatm/ ATM のインクルードファイル。 .Xr atm 8 参照。 .It Li netinet/ インターネット標準プロトコル用 C 言語インクルードファイル。 .Xr inet 4 参照。 .It Li netipx/ IPX/SPX プロトコルスタック。 .It Li netkey/ カーネルの鍵管理サービス。 .It Li netns/ Xerox 社の NS プロトコル。 .It Li nfs/ NFS (Network File System) 用 C 言語インクルードファイル。 .It Li objc/ Objective C のインクルードファイル。 .It Li posix4/ POSIX リアルタイム拡張のインクルードファイル。 .Xr p1003_1b 9 参照。 .It Li pccard/ PC-CARD コントローラ。 .It Li protocols/ Berkeley サービスプロトコル用 C 言語インクルードファイル。 .It Li readline/ ユーザからの一行入力機能(編集機能付き)。 .Xr readline 3 参照。 .It Li rpc/ リモート手続き呼び出し。 .Xr rpc 3 参照。 .It Li rpcsvc/ RPC サービス構造の定義。 .Xr rpc 3 参照。 .It Li security/ PAM。 .Xr pam 8 参照。 .It Li ss/ MIT SIPB .Sq サブシステム ライブラリ。Kerberos IV の一部。 .It Li sys/ システム用 C 言語インクルードファイル (カーネルデータ構造)。 .\" .It Li tcl/ .\" Tcl 言語。 .\" .Xr Tcl n .\" 参照。 .\" .Bl -tag -width "kerberosIV/" -compact .\" .It Li generic/ .\" ??? .\" .It Li unix/ .\" ??? .\" .El .It Li ufs/ UFS (U-word File System) 用 C 言語インクルードファイル。 .Bl -tag -width "kerberosIV/" -compact .It Li ffs/ Fast filesystem。 .It Li mfs/ メモリファイルシステム。 .Xr mount_mfs 8 参照。 .It Li ufs/ UFS ファイルシステム。 .El .It Li vm/ 仮想記憶。 .Xr vmstat 8 参照。 .El .Pp .It Li lib/ アーカイブライブラリ。 .Bl -tag -width Fl -compact .It Li compat/ 互換性維持用の共有ライブラリ。 .Bl -tag -width Fl -compact .It Li aout/ a.out 後方互換ライブラリ。 .El .El .Pp .It Li libdata/ その他のユーティリティデータファイル。 .Bl -tag -width Fl -compact .It Li gcc/ ??? .It Li lint/ さまざまな lint 用ライブラリ(事前に構築されている)。 .Xr lint 1 参照。 .It Li msdosfs/ 文字集合変換表。 .It Li perl/ .Bl -tag -width Fl -compact .It Li 5.00503/ Perl バージョン 5.00503 のための Perl モジュール。 .Xr perl 1 参照。 .El .It Li stallion/ ダウンロードファームウェアのイメージが保持されている。 .It Li tcl ???; .Xr Tcl n 参照。 .El .Pp .It Li libexec/ システムデーモンおよびシステムユーティリティ。 (他のプログラムから実行されるもの)。 .Bl -tag -width Fl -compact .It Li aout/ a.out 実行形式を操作するユーティリティ。 .It Li elf/ ELF 実行形式を操作するユーティリティ。 .It Li lpr/ LP プリントシステムのユーティリティとフィルタ。 .Xr lpr 1 参照。 .It Li sm.bin/ sendmail 用制限付きシェル。 .Xr smrsh 8 参照。 .It Li uucp/ uucp ユーティリティ。 .Xr uucp 1 参照。 .El .Pp .It Li local/ ローカルの実行可能ファイル、ライブラリなど。 .br .Tn FreeBSD ports フレームワークのデフォルトのインストール先としても使用されます。 local/以下では、 .Xr hier 7 で /usr に関して 記述された一般的な配置が使用されます。例外として、man ディレクトリは local/share/ の下ではなく、local/ の直下に存在します。ports のドキュメントは share/doc// に置かれます。 .It Li mdec/ ブートプログラム。 .Xr disklabel 8 参照。 .It Li obj/ アーキテクチャ依存のターゲットツリー。 /usr/src ツリーを構築することで作成される。 .It Li ports/ .Tn FreeBSD ports コレクション (オプション扱い)。 .It Li sbin/ (ユーザによって実行される) システムデーモン、およびシステムユーティリティ。 .It Li share/ アーキテクチャに依存しないファイル。 .Pp .Bl -tag -width "calendar/" -compact .It Li calendar/ 事前に組み立てられた calendar ファイルいろいろ。 .Xr calendar 1 参照。 .It Li dict/ 単語リスト。 .Xr look 1 参照。 .Pp .Bl -tag -width Fl -compact .It Li words 一般の単語 .It Li web2 Webster's 2nd International からの単語 .It Li papers/ リファレンスデータベース。 .Xr refer 1 参照。 .It Li special/ 特殊な語のリスト。 .Xr spell 1 参照。 .El .Pp .It Li doc/ その他の文書。 ( .Tn USENIX association から入手できる) .Bx マニュアルのほとんどのソース。 .Bl -tag -width Fl -compact .It Li FAQ/ しばしば行なわれる質問とその答え (Frequently Asked Questions)。 .It Li handbook/ .Tn FreeBSD ハンドブック .It Li papers/ UNIX 関連の論文 .It Li psd/ UNIX プログラマ用補助文書 .It Li smm/ UNIX システム管理者用マニュアル .It Li usd/ UNIX ユーザ用補助文書 .El .Pp .It Li examples/ 一般ユーザやプログラマ向けのさまざまな用例。 .It Li games/ 各種のゲームで使用される ASCII テキストファイル。 .It Li groff_font/ デバイス名ごとに用意されたデバイス記述ファイル。 .It Li info/ GNU Info ハイパーテキストシステム。 .It Li isdn/ ISDN。 .It Li libg++/ libg++ genclass のプロトタイプ/テンプレートクラスファイル。 .It Li locale/ 国際化機能関係のファイル。 .Xr setlocale 3 参照。 .It Li man/ マニュアルページ。 .It Li me/ me マクロパッケージで使用するマクロ。 .It Li misc/ その他システム全体の ASCII テキストファイル。 .Bl -tag -width Fl -compact .It Li fonts/ ??? .It Li pcvtfonts/ pcvt フォント。 .Xr pcvt 4 参照。 .It Li pkg_manage/ パッケージマネージャのヘルプファイル。 .Xr pkg_manage 参照。 .It Li termcap 端末の特性を記述するデータベース。 .Xr termcap 5 参照。 .El .It Li mk/ make 用テンプレート。 .Xr make 1 参照。 .It Li nls/ 各国語サポート(National Lanuguage Support)ファイル。 .Xr mklocale 1 参照。 .It Li pcvt/ pcvt の文書とその他の例。 .Xr pcvt 4 参照。 .It Li perl/ perl ライブラリファイル。 .Xr perl 1 参照。 .It Li skel/ 新しいアカウントのための . (ドット) ファイルの例。 .It Li syscons/ コンソール関係。 .Xr syscons 4 参照。 .Bl -tag -width "scrnmaps/xx" -compact .It Li fonts/ コンソールフォント。 .Xr vidcontrol 1 と .Xr vidfont 1 参照。 .It Li keymaps/ コンソールキーボードマップ。 .Xr kbdcontrol 1 と .Xr kbdmap 1 参照。 .It Li scrnmaps/ コンソールスクリーンマップ。 .El .It Li tabset/ 各種端末用タブ記述ファイル。termcap ファイルの中で使用される。 .Xr termcap 5 参照。 .It Li tmac/ テキスト処理マクロ。 .Xr nroff 1 および .Xr troff 1 参照。 .It Li vi/ .Xr vi 8 のローカライズサポートとユーティリティ。 .It Li zoneinfo/ タイムゾーン設定情報。 .Xr tzfile 5 参照。 .El .It Li src/ BSD と local のソースファイル。 .Pp .Bl -tag -width "kerberosIV/" -compact .It Li bin/ /bin 内のファイルのソース。 .It Li contrib/ 寄贈されたソフトウェアのファイルのソース。 .It Li crypto/ DES。 .It Li etc/ /etc 内のファイルのソース。 .It Li games/ /usr/games 内のファイルのソース。 .It Li gnu/ GNU Public Licence で保護されたユーティリティ。 .It Li include/ /usr/include 内のファイルのソース。 .It Li kerberosIV/ Kerberos version IV のソース。 .It Li lib/ /usr/lib 内のファイルのソース。 .It Li libexec/ /usr/libexec 内のファイルのソース。 .It Li release/ .Tn FreeBSD のリリースを生成するために必要なファイル。 .It Li sbin/ /sbin 内のファイルのソース。 .It Li secure/ FreeSec のソース。 .It Li share/ /usr/share 内のファイルのソース。 .It Li sys/ カーネルのソースファイル。 .It Li tools/ FreeBSD のメンテナンスとテストに使用するツール。 .It Li usr.bin/ /usr/bin 内のファイルのソース。 .It Li usr.sbin/ /usr/sbin 内のファイルのソース。 .El .Pp .It Li X11R6/ X11R6 配布パッケージの実行可能形式ファイル、ライブラリなど (オプション扱い)。 .Bl -tag -width "include/" -compact .It Li bin/ X11R6 のバイナリ (サーバ、ユーティリティ、ローカルな packages/ports)。 .It Li etc/ X11R6 の設定ファイルとスクリプト。 .It Li include/ X11R6 のインクルードファイル。 .It Li lib/ X11R6 のライブラリ。 .It Li man/ X11R6 のマニュアルファイル。 .It Li share/ アーキテクチャ独立なファイル。 .El .El .It Li /var/ さまざまな用途のログファイル、一時ファイル、遷移的ファイル、 スプールファイル。 .Pp .Bl -tag -width "preserve/" -compact .It Li account/ システムアカウンティングファイル。 .Pp .Bl -tag -width Fl -compact .It Li acct 実行アカウントファイル。 .Xr acct 5 参照。 .El .Pp .It Li at/ 指定した時間に動くコマンドのスケジュールファイル。 .Xr \&at 1 参照。 .Bl -tag -width "preserve/" -compact .It Li jobs/ ジョブファイルを含むディレクトリ。 .It Li spool/ 出力スプールファイルを含むディレクトリ。 .El .Pp .It Li backups/ さまざまなバックアップファイル。 .It Li crash/ カーネルクラッシュダンプを保存するデフォルトのディレクトリ。 .Xr crash 8 と .Xr savecore 8 参照。 .It Li cron/ .Bl -tag -width "preserve/" -compact .It Li log cron のログファイル。 .Xr cron 8 参照。 .It Li tabs/ crontab ファイル。 .Xr crontab 5 参照。 .El .Pp .It Li db/ システム固有のさまざまなデータベースファイル。自動生成される。 .It Li games/ さまざまなゲームのステータスおよびスコアファイル。 .It Li log/ さまざまなシステムログファイル。 .Pp .Bl -tag -width Fl -compact .It Li wtmp login/logout ログ。 .Xr wtmp 5 参照。 .El .Pp .It Li mail/ ユーザのメールボックスファイル。 .It Li preserve/ エディタの不慮の死の際に保存されるファイルを一時的に安置するディレクトリ。 .Xr \&ex 1 参照。 .It Li msgs/ システムメッセージのデータベース。 .Xr msgs 1 参照。 .It Li quotas/ ファイルシステムのクォータ情報のファイル。 .It Li run/ ブートされてからのシステムについての各種情報を記述した システム情報ファイル。 .Pp .Bl -tag -width Fl -compact .It Li utmp 現在のユーザについてのデータベース。 .Xr utmp 5 参照。 .El .Pp .It Li rwho/ rwho データファイル。 .Xr rwhod 8 , .Xr rwho 1 , .Xr ruptime 1 参照。 .It Li spool/ さまざまなプリンタ、メールシステムのスプールディレクトリ。 .Pp .Bl -tag -width Fl -compact .It Li ftp/ 一般に ~ftp となる部分。anonymous ftp のルートディレクトリ。 .It Li mqueue/ 配送されていないメールのキュー。 .Xr sendmail 8 参照。 .It Li output/ ラインプリンタ用スプールディレクトリ。 .It Li secretmail/ 機密メール用スプールディレクトリ。 .Xr xget 1 参照。 .It Li uucp/ uucp スプールディレクトリ。 .It Li uucppublic/ 一般に ~uucp となる部分。共用 uucp テンポラリディレクトリ。 .El .Pp .It Li tmp/ システムがリブートするまでの間保持されるテンポラリファイル。 .Bl -tag -width Fl -compact .It Li vi.recover/ vi のリカバリファイルを格納しておくディレクトリ。 .El .It Li yp NIS マップ。 .El .El .Sh 関連項目 .Xr apropos 1 , .Xr find 1 , .Xr finger 1 , .Xr grep 1 , .Xr ls 1 , .Xr whatis 1 , .Xr whereis 1 , .Xr which 1 , .Xr fsck 8 .Sh 歴史 .Nm hier マニュアルページは .At v7 で登場しました。 .\"ZZZ: 3.0-RELEASE compliant by N. Kumagai 98-12-26 diff --git a/ja_JP.eucJP/man/man8/diskless.8 b/ja_JP.eucJP/man/man8/diskless.8 index 2933b0a996..fd183a30a9 100644 --- a/ja_JP.eucJP/man/man8/diskless.8 +++ b/ja_JP.eucJP/man/man8/diskless.8 @@ -1,348 +1,352 @@ .\" %NetBSD: diskless.8,v 1.11 1997/06/16 07:50:35 mrg Exp % .\" .\" Copyright (c) 1994 Gordon W. Ross, Theo de Raadt .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. The name of the author may not be used to endorse or promote products .\" derived from this software without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR .\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES .\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. .\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, .\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT .\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, .\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY .\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" %FreeBSD: src/share/man/man8/diskless.8,v 1.2.4.4 1999/08/29 16:47:04 peter Exp % +.\" %FreeBSD: src/share/man/man8/diskless.8,v 1.2.4.5 1999/12/08 13:19:08 phantom Exp % .\" .Dd October 2, 1994 .Dt DISKLESS 8 .Os .Sh 名称 .Nm diskless .Nd ネットワークを介してシステムをブートする .Sh 解説 ネットワークを介してマシンをブートする能力は、 .Xr diskless もしくは .Xr dataless マシンのためや、ローカルのファイルシステムの再インストールまたは 修復中に一時的に利用するために有用です。 このファイルは、クライアントがネットワークを介してブートする時に、 クライアントとサーバとの間で行われる通信の一般的な解説を提供します。 一般的な解説の後に、ディスクレスの Sun クライアントのためのサーバ設定 を行うための詳細な指示を説明します。 .Pp .Sh 操作 ネットワークを介してシステムをブートする時に、 クライアントとサーバの間で3フェーズのやりとりがあります: .Pp .Bl -tag -width 1.2 -compact .It 1. PROM (もしくはステージ 1 のブートストラップ) がブートプログラムを 読み込みます。 .It 2. ブートプログラムがカーネルを読み込みます。 .It 3. カーネルがルートを NFS マウントします。 .El .Pp これかの各フェーズについて、以降で詳しく記述します。 .Pp フェーズ 1 では、 PROM がブートプログラムを読み込みます。 PROM の設計の種類はたくさんありますので、 このフェーズは本質的にマシンに依存しています。 Sun のマシンは クライアントの .Tn IP アドレスを決定するために .Tn RARP を利用し、その後 .Tn RARP リプライを送ったところからブートプログラムをダウンロードするために .Tn TFTP を使います。 HP 300 シリーズのマシンでは、ブートプログラムをダウンロードするために .Tn HP リモートメンテナンスプロトコル を利用します。 典型的なパーソナルコンピュータはネットワークブートプログラムを ディスケットもしくはネットワークカードの特別な PROM をつかって読み込むかも しれません。 .Pp フェーズ 2 では、ブートプログラムがカーネルを読み込みます。 このフェーズの操作はブートプログラムの設計に依存します。 (ここで記述する設計は Sun と NetBSD/hp300 で使われているものです。) ブートプログラムは以下を行います: .Pp .Bl -tag -width 2.2 -compact .It 2.1 .Tn RARP を使ってクライアントの IP アドレスを入手します。 .It 2.2 .Tn RPC / BOOTPARAMS / WHOAMI 要求をクライアントの IP アドレスとともにブロードキャストして、 クライアント名とサーバの .Tn IP アドレスを入手します。 .It 2.3 .Tn RPC / BOOTPARAMS / GETFILE 要求をクライアント名とともに使うことで、 クライアントのルートのサーバにおけるパスを入手します。 .It 2.4 クライアントのルートに対するサーバのパスを指定して .Xr mountd 8 を呼ぶことで、ルートファイルハンドルを入手します。 .It 2.5 ルートファイルハンドル上で .Tn NFS ルックアップを呼ぶことで、カーネルのファイルハンドルを入手します。 .It 2.6 カーネルファイルハンドルに対して .Tn NFS 読み出しをつかって、カーネルを読み込みます。 .It 2.7 カーネルのエントリポイントに制御を移します。 .El .Pp フェーズ 3 では、カーネルはルートを NFS マウントします。 カーネルは、ブートプログラムによって行われた多くの作業を繰り返します。 なぜなら、ブートプログラムが集めた情報をカーネルに受け渡す 標準的な方法が無いからです。 カーネルで利用される工程は以下のようなものです: .Pp .Bl -tag -width 2.2 -compact .It 3.1 カーネルは、上記の 2.1 と 2.2 で記述されたのと同じ工程を使うことで、 ブートサーバを見付けます。 .It 3.2 カーネルは、上記の 2.3 から 2.5 で記述されたのと同じ工程を使うことで ルートのための .Tn NFS ファイルハンドルを入手します。 .It 3.3 カーネルは、ルートディレクトリが最後に更新された時間を入手するために .Tn NFS 属性入手機能 (getattr function) を呼び出し、システム時計を調べるために これを使います。 .El .Sh 設定 クライアントがネットワークを介してブートするためには、 サーバは正しく設定されていなければなりません。 この例では、 どのように Sun クライアントが設定されれば良いかを示します。 他のクライアントの設定も似たようなものです。 .Pp クライアントのホスト名 (hostname) を "myclient" と仮定します。 .Pp .Bl -tag -width 2.1 -compact .It 1. .Pa /etc/ethers に適切なクライアントのイーサネットアドレスのエントリを追加します: .Bd -literal -offset indent -compact 8:0:20:7:c5:c7 myclient .Ed これは、 .Xr rarpd 8 が使用します。 .Pp .It 2. .Pa /etc/hosts もしくは DNS データベースに myclient のための IP アドレスを割り当てます: .Bd -literal -offset indent -compact 192.197.96.12 myclient .Ed .Pp .It 3. Sun のマシンをブートする場合、 .Pa /tftpboot ディレクトリで .Xr tftpd 8 を実行するために .Pa /etc/inetd.conf が設定されているようにします。 .Pp HP 300 シリーズのマシンをブートする場合、 ブートプログラムがクライアントに転送されるように .Pa /etc/rbootd.conf が正しく設定されているようにします。 エントリは以下のようになるでしょう: .Bd -literal -offset indent -compact 08:00:09:01:23:E6 SYS_UBOOT # myclient .Ed .Pp さらなる情報は、 .Xr rbootd 8 を参照して下さい。 .Pp .It 4. SPARC マシンをブートする場合、 ( .Pa /usr/mdec/boot のような) 適当なディスクレスブートローダのコピーを .Pa /tftpboot ディレクトリにインストールします。 ブートプログラムが、16 進のクライアントの IP アドレスとドットと アーキテクチャ名からなるファイル名 (全て英語の大文字) で アクセスできるようにリンクを作成します。 例えば以下のようになります: .Bd -literal -offset indent -compact # cd /tftpboot # ln -s boot C0C5600C.SUN4 .Ed .Pp Sun3 のマシンに対しては、この名前は C0C5600C となるようにします (Sun3 の PROM はアーキテクチャ名を付加しません)。 使われる名前はアーキテクチャに依存します。 これは、単純にブートクライアントの PROM が何を望んでいるかに 一致させます。 クライアントの PROM が期待されるファイルを読み込むことに 失敗する場合には、 クライアントがどんなファイル名を読み込もうとしているのかを知るために .Xr tcpdump 1 を使うことができます。 .Pp HP 300 シリーズのマシンをブートする場合、 ネットワークブートプログラム .Pa SYS_UBOOT (これは、インストール前に .Pa uboot.lif から呼び出されます ) がディレクトリ .Pa /usr/mdec/rbootd にインストールされているようにします。 .It 5. myclient をブートパラメータデータベース .Pa /etc/bootparams に追加します: .Bd -literal -offset indent -compact myclient root=server:/export/myclient/root .Ed .Pp +注: スワップファイルをマウント可能とするには、mountd が +.Fl r +フラグ付きで開始されていることを確認することが必要です。 + .It 6. myclient のためのスワップファイルを作成します: .Bd -literal -offset indent -compact # mkdir /export/myclient # cd /export/myclient # dd if=/dev/zero of=swap bs=16k count=1024 .Ed ここでは、16 メガバイトのスワップファイルを作成しました。 .Pp .It 7. myclient の .Pa / ファイルシステムをサーバ上に作成します。 これがどのように行われるかはクライアントのアーキテクチャと NetBSD ディストリビューションのバージョンに依存します。 サーバのルートファイルシステムをコピーし変更するように 単純であるか、おそらく標準バイナリディストリビューションから これらのファイルを入手する必要があるかも知れません .Pp SunOS とはちがって、クライアントのスワップのためにマウントポイントを 作成する必要があることに注意が必要です: .Bd -literal -offset indent -compact # mkdir /export/myclient/root/swap .Ed .Pp .It 8. .Pa /etc/exports にある必要とされるファイルシステムを公開します: .Bd -literal -offset indent -compact /usr -ro myclient # for SunOS: # /export/myclient -rw=myclient,root=myclient # for NetBSD: /export/myclient -maproot=root -alldirs myclient .Ed .Pp サーバとクライアントが同じアーキテクチャである場合、 クライアントはサーバの .Pa /usr を共有することができます (これは上記のように実現します)。 そうでない場合、クライアントのための .Pa /usr パーティションを別の場所に正しく作成する必要があります。 .Pp もしサーバが sparc の場合でクライアントが sun3 の場合、 .Pa /export/usr.sun3 を作成し中身も作り、その後以下の .Pa /etc/exports 行を作成します: .Bd -literal -offset indent -compact /export/usr.sun3 -ro myclient /export/myclient -rw=myclient,root=myclient .Ed .Pp .It 9. 最低限、 .Pa /export/myclient/root にある以下のファイルをコピーしカスタマイズします: .Bd -literal -offset indent -compact # cd /export/myclient/root/etc # cp fstab.nfs fstab # cp /etc/hosts hosts # echo myclient > myname # echo 192.197.96.12 > hostname.le0 .Ed .Pp 上記の "le0" はクライアントがブートのために使う ネットワークインタフェース名に置き換えなければなりません。 .Pp .It 10. クライアントの .Pa /etc/fstab (これはつまり .Pa /export/myclient/root/etc/fstab です) にあるクリティカルなマウントポイントとスワップファイルを 正しく設定します。 つまり以下のようにします: .Bd -literal -offset indent -compact myserver:/export/myclient/root / nfs rw 0 0 myserver:/usr /usr nfs rw 0 0 myserver:/export/myclient/swap none swap sw,nfsmntpt=/swap .Ed .Pp .Pa /etc/fstab にスワップファイルを指定しなければならないことに注意してください。 指定しないとスワップが使用されません。 .El .Sh 関連ファイル .Bl -tag -width /usr/mdec/rbootd -compact .It Pa /etc/ethers わかっているクライアントのイーサネットアドレス .It Pa /etc/bootparams クライアントのルートパス名 .It Pa /etc/exports 公開された NFS マウントポイント .It Pa /etc/rbootd.conf HP リモートブートデーモンのための設定ファイル .It Pa /tftpboot Sun PROM によって読み込まれるブートプログラムの場所 .It Pa /usr/mdec/rbootd HP ブート ROM によって読み込まれるブートプログラムの場所 .El .Sh 関連項目 .Xr bootparams 5 , .Xr ethers 5 , .Xr exports 5 , .Xr bootparamd 8 , .Xr mountd 8 , .Xr nfsd 8 , .Xr rarpd 8 , .Xr rbootd 8 , .Xr reboot 8 , .Xr tftpd 8 diff --git a/ja_JP.eucJP/man/man8/init.8 b/ja_JP.eucJP/man/man8/init.8 index 33f89029ac..89a17d3e30 100644 --- a/ja_JP.eucJP/man/man8/init.8 +++ b/ja_JP.eucJP/man/man8/init.8 @@ -1,367 +1,382 @@ .\" Copyright (c) 1980, 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" This code is derived from software contributed to Berkeley by .\" Donn Seeley at Berkeley Software Design, Inc. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)init.8 8.3 (Berkeley) 4/18/94 -.\" %FreeBSD: src/sbin/init/init.8,v 1.13.2.5 1999/12/04 14:20:51 kato Exp % +.\" %FreeBSD: src/sbin/init/init.8,v 1.13.2.6 1999/12/07 07:57:57 sheldonh Exp % .\" .\" jpman %Id: init.8,v 1.2 1997/05/27 08:12:44 yugawa Stab % .\" .Dd April 18, 1994 .Dt INIT 8 .Os BSD 4 .Sh 名称 .Nm init .Nd プロセス制御の初期化を行う .Sh 書式 .Nm init .Oo .Cm 0 | 1 | 6 | .Cm c | q .Oc .Sh 解説 .Nm はブート処理の最後に起動されます。 .Nm は通常、 .Xr rc 8 で説明されている自動リブートシーケンスを実行します。それが成功すると、 システムはマルチユーザモードになります。 リブートスクリプトの実行に失敗すると、 .Nm はスーパユーザが使うシェルを起動してシングルユーザモードを 開始させます。 .Nm プログラムは、ブートプログラムからのパラメータの指示を受けて、 マルチユーザモードに移行せず、 一般のデーモンを起動することなくシングルユーザモードの シェルを起動させることができます。 その場合、システムはメンテナンスのためのモードになり、 シェルを抜ける (^D を入力する) ことで シングルユーザモードからマルチユーザモードになります。 これによって、 .Nm は .Pa /etc/rc をファストブートモード (ディスクチェック省略) で実行します。 .Pp もし .Xr ttys 5 ファイルの .Em console のエントリが .Dq insecure にマークされていた場合には、 .Nm はシングルユーザモードのシェルを起動する前に、スーパユーザのパスワードを 要求します。 パスワードチェックは、 .Em console が .Dq secure にマークされていればスキップされます。 .Pp カーネルは 4 種類のセキュリティレベルで走行します。どのスーパユーザ プロセスもセキュリティレベルを上げることができますが、レベルを下げることが できるプロセスはありません。 セキュリティレベルは以下のように定義されます: .Bl -tag -width flag .It Ic -1 常に危険なモード \- システムは常にレベル 0 モードで走行します。 これは初期値のデフォルトです。 .It Ic 0 危険なモード \- 変更不可 (immutable) フラグや追加のみ (append-only) フラグは 無効にされます。 全てのデバイスは、そのパーミッションに従って読み書きされます。 .It Ic 1 安全なモード \- 変更不可フラグや追加のみのフラグは変更されません。 マウントされたファイルシステムのディスクおよび .Pa /dev/mem や .Pa /dev/kmem は read-only となります。 .It Ic 2 安全度の高いモード \- レベル 1 のモードの効果に加え、ディスクは マウントさていようといまいと、( .Xr mount 2 を除き) 常に read-only となります。 このレベルは、ファイルシステムをアンマウントして変更を加えることを不可能に します。また、システムがマルチユーザで走行中に .Xr newfs 8 を実行することも出来なくなります。 .It Ic 3 ネットワークの安全モード \- 安全度の高いモードに加え、 IP パケットフィルタルール ( .Xr ipfw 8 および .Xr ipfirewall 4 参照) を変更不可能とし、 .Xr dummynet 4 の設定を修正不可能とします。 .El .Pp 初期のセキュリティレベルが -1 だった場合、 .Nm はセキュリティレベルを変更しません。 それ以外の場合、シングルユーザモードではレベル 0 で、マルチユーザモードでは レベル 1 で、システムは動作します。マルチユーザモードにおいてレベル 2 で システムを走らせたい場合は、シングルユーザの状態の間に、つまり、 .Pa /etc/rc の中で .Xr sysctl 8 を使って、変数 .Dq kern.securelevel に必要なセキュリティレベルの値を設定します。 .Pp マルチユーザモードの場合、 .Nm は .Xr ttys 5 ファイルで指示された端末ポートのためのプロセスを管理します。 .Nm はこのファイルを読み込み、2 番目のフィールドに指示されたコマンドを 実行します。 +ただし、1 番目のフィールドが +.Pa /dev +中のデバイスを参照し、そのデバイスが設定されていない場合は例外です。 +1 番目のフィールドは、コマンドへ渡される最後の引数になります。 そのコマンドは通常、 .Xr getty 8 で、 .Nm getty はtty をオープン、初期化し、 .Xr login 1 プログラムを実行します。 .Nm login プログラムは、ユーザがログインするとシェルを起動します。ユーザが ログアウトするか異常終了するなどして、そのシェルが終了すると、 .Nm プログラムが起こされ、 .Xr utmp 5 ファイルからユーザを消し、 .Xr wtmp 5 ファイルにログアウトを記録します。 このサイクルは、 .Nm プログラムがその端末に新しい .Nm getty を実行することで繰り返されます。 .Pp +.Nm +は任意のデーモンを走行させ続けるためにも使用可能であり、 +デーモンが死んだ場合には自動的に再開します。 +この場合、 +.Xr ttys 5 +ファイルの 1 番目のフィールドは、 +設定されたデバイスノードへのパスを参照してはならず、 +デーモンに対する最後のコマンドライン引数として渡されます。 +これは +.At V +.Pa /etc/inittab +にある機能と同様です。 +.Pp ラインの状態 (on, off, secure, getty, ウィンドウの情報) は、 .Xr ttys 5 ファイルを書き換えて .Dq Li "kill -HUP 1" によってシグナル .Dv SIGHUP を .Nm に送ることで、リブートせずに変更できます。 このシグナルを受け取ると .Nm は .Xr ttys 5 ファイルを再度読み込みます。 .Xr ttys 5 でラインがオフにされると、 .Nm はそのラインに関係するセッションの制御プロセスに SIGHUP シグナルを送ります。 オフであったラインが .Xr ttys 5 ファイルでオンにされると、 .Nm -は新しい -.Nm getty -を起動して、新しいログインを可能にします。 -ラインの getty やウィンドウフィールドが変更された場合、その変更は現在 +は 2 番目のフィールドで指定されるコマンドを起動します。 +ラインのコマンドやウィンドウフィールドが変更された場合、その変更は現在 のログインセッションが終了するまで有効にはなりません。 (例えば、 .Nm によって新しいプロセスが起動されるまで有効にならない。) .Xr ttys 5 中のあるラインをコメントアウトあるいは削除した場合は、 .Nm はそのラインに関しては何も実行しません。 しかしこの場合、 .Xr ttys 5 ファイルと .Xr utmp 5 ファイル内の記録情報が一致しなくなるため、試すことはお勧めしません。 .Pp .Dq Li "kill \-TERM 1" などによって terminate シグナル .Pq Dv TERM を受けると、 .Nm はマルチユーザモードを終了し、シングルユーザモードに復帰します。 ハードウェアまたはソフトウェアの問題でデッドロックしたプロセスがある場合、 .Xr init はすべてのプロセスの終了を待たず (これは無限に終らないかも知れません)、 30 秒間でタイムアウトして警告のメッセージを出力します。 .Pp terminal stop シグナル .Pq Dv TSTP を送ると ( .Dq Li "kill \-TSTP 1" )、 .Nm は新しい -.Xr getty +プロセス を起動するのをやめ、徐々にシステム停止可能な状態にします。 その後、hangup シグナルで完全なマルチユーザモードに戻り、terminate シグナル でシングルユーザモードに移ります。 この hook は .Xr reboot 8 と .Xr halt 8 で使われています。 .Pp interrupt シグナル .Pq Dv INT を送ると ( .Dq Li "kill \-INT 1" )、 .Nm はすべてのプロセスを (デッドロックプロセスを待たずに) 終了させ、 リブートを実行します。 この操作は、マシンがハングした時に、カーネルの中から、あるいは、X から、 システムを安全にシャットダウンするのに便利です。 .Pp .Nm は同じことを行いますが、ユーザ定義シグナル 1 .Pq Dv USR1 を送られた場合はマシンを停止し、 ユーザ定義シグナル 2 .Pq Dv USR2 を送られた場合はマシンを停止してから電源を切ります (ハードウェアが許す場合)。 .Pp マシンをシャットダウンする時、 .Nm は .Pa /etc/rc.shutdown スクリプトを実行しようとします。 このスクリプトは .Nm innd (インターネットニュースサーバ) のような特定のプログラムを綺麗に終了させるために使用可能です。 .Pp .Nm の役割は非常に重要で、もし .Nm が死ぬとシステムが自動的にリブートされます。 もしブート時に .Nm プログラムを見つけられなければ、システムは .Dq panic: init died (signal %d, exit %d) のようなメッセージを出力して panic で終了します。 .Pp 2 番目の書式行のようにユーザプロセスとして実行する場合、 .Nm は .At V の動作をエミュレートします。すなわち、スーパユーザがコマンドラインで .Em ランレベル を指定可能であり、 .Nm はオリジナルの .Pq PID 1 .Nm に次のようなシグナルを送ります: .Bl -column Run-level SIGTERM .It Sy ランレベル シグナル 動作 .It Cm 0 Ta Dv SIGUSR2 Ta "停止して電源切断" .It Cm 1 Ta Dv SIGTERM Ta "シングルユーザモードへ移行" .It Cm 6 Ta Dv SIGINT Ta "マシンを再起動" .It Cm c Ta Dv SIGTSTP Ta "更なるログインを抑止" .It Cm q Ta Dv SIGHUP Ta ファイル .Xr ttys 5 を再スキャン .El .Sh 診断 .Bl -diag .It "getty repeating too quickly on port %s, sleeping" ラインにサービスを提供するプロセスが、起動されるたびにすぐ終了してしまう。 これは、端末ラインに着信があるかノイズが大きい場合にしばしば起こります。 .Em "init は 30 秒間スリープし、" .Em "その後、プロセスを開始させようとし続けます。" .Pp .It "some processes would not die; ps axl advised." シャットダウンの際、ハングしていて終了させられないプロセスがあります。 この状態は、通常、デバイスに異常があるときにデバイスドライバで貼り付い てしまうことにより起こります。 .El .Sh 関連ファイル .Bl -tag -width /etc/rc.shutdown -compact .It Pa /dev/console システムのコンソールデバイス .It Pa /dev/tty* .Xr ttys 5 内にある端末ポート .It Pa /var/run/utmp 現在ログインしているのユーザの情報 .It Pa /var/log/wtmp すべてのログイン・ログアウトの情報 .It Pa /etc/ttys 端末の初期化情報が書かれたファイル .It Pa /etc/rc システム立ち上げ用スクリプト .It Pa /etc/rc.shutdown システムシャットダウン用スクリプト .El .Sh 関連項目 .Xr kill 1 , .Xr login 1 , .Xr sh 1 , .Xr dummynet 4 , .Xr ipfirewall 4 , .Xr ttys 5 , .Xr crash 8 , .Xr getty 8 , .Xr halt 8 , .Xr ipfw 8 , .Xr rc 8 , .Xr reboot 8 , .Xr shutdown 8 , .Xr sysctl 8 .Sh 歴史 .Nm コマンドは .At v6 から登場しました。 .Sh 注意 .Xr sysctl を持たないシステムは、セキュリティレベル \-1 で動作します。 .Pp ブートシーケンスにおいて、セキュリティレベルを 1 より高く設定するのがあまり にも早すぎると、 .Xr fsck 8 が一貫性のないファイルシステムを補修することを妨げてしまう可能性が あります。セキュリティレベル設定を行う場所として適切なところは、 全てのマルチユーザ立ち上げ処理が完了した後である、 .Pa /etc/rc の末尾です。 diff --git a/ja_JP.eucJP/man/man8/ldconfig.8 b/ja_JP.eucJP/man/man8/ldconfig.8 index 0430a72349..de9cb0a4f0 100644 --- a/ja_JP.eucJP/man/man8/ldconfig.8 +++ b/ja_JP.eucJP/man/man8/ldconfig.8 @@ -1,194 +1,194 @@ .\" .\" Copyright (c) 1993 Paul Kranenburg .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by Paul Kranenburg. .\" 3. The name of the author may not be used to endorse or promote products .\" derived from this software without specific prior written permission .\" .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR .\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES .\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. .\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, .\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT .\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, .\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY .\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" .\" %FreeBSD: src/sbin/ldconfig/ldconfig.8,v 1.16.2.1 1999/08/29 15:14:02 peter Exp % .\" jpman %Id: ldconfig.8,v 1.3 1997/07/22 16:49:42 horikawa Stab % .\" .Dd October 3, 1993 .Dt LDCONFIG 8 .Os FreeBSD .Sh 名称 .Nm ldconfig .Nd 共有ライブラリのキャッシュを設定する .Sh 書式 .Nm ldconfig .Op Fl aout | Fl elf .Op Fl Rmrsv .Op Fl f Ar hints_file .Op Ar directory | file Ar ... .Sh 解説 .Nm は、ダイナミックリンカ -が、複数のディレクトリから利用可能な共有ライブラリを速く捜し出せるよう -につかわれる +が、複数のディレクトリから利用可能な共有ライブラリを素早く捜し出すために +使う .Dq ヒント の集合を準備するために使われます。 コマンドは、組み込みのシステムディレクトリと コマンドラインで指定された任意の .Ar ディレクトリ (を指定された順番) で共有ライブラリを探し、 その結果を システムファイル に保存します。 これは、 ダイナミックリンカ が要求された共有ライブラリを読み込む際のディレクトリ検索操作 オーバヘッドをあらかじめ払っていることになります。 .Pp -コマンドラインにて指定するファイル名は共有ライブラリを検査するディクトリ +コマンドラインにて指定するファイル名は共有ライブラリを検査するディレクトリ を含むことが期待されます。 各ディレクトリのパス名は行の先頭から始まる必要があります。 空行およびコメント文字 .Ql \&# から始まる行は無視されます。 .Pp 共有ライブラリは、実行されようとするプログラムによって必要とされる ならば、利用可能なものが自動的に読み込まれることになります。 これは、実行形式に検索パスを保存する必要性を無くします。 .Pp .Ev LD_LIBRARY_PATH 環境変数は、キャッシュから使用するディレクトリ (や、その順序関係) を 上書きしたり、共有ライブラリを探す追加のディレクトリを 指定するために使われます。 .Ev LD_LIBRARY_PATH は、共有ライブラリを読み込む必要がある時、 ダイナミックリンカ によって検索されるディレクトリパスのリストを コロン .Sq \: で区切って指定します。 これは、 .Xr ld 1 における .Fl L オプションと、実行時点では等価です。 .Pp .Nm ldconfig は典型的にはブート時の手続きのひとつとして実行されます。 .Pp 以下のオプションが .Nm ldconfig で認識されます。 .Bl -tag -width indent .It Fl aout a.out 形式の共有ライブラリに対するヒントを生成します。 .It Fl elf ELF 形式の共有ライブラリに対するヒントを生成します。 .It Fl R 以前に設定したディレクトリを再度検索します。 以前作成したヒントファイルをオープンし、 ヘッダからディレクトリリストを取り出します。 コマンドラインに指定したパス名も処理します。 .It Fl f Ar hints_file 標準のファイルの代りに、 特定のヒントファイルを読み込んだり、更新したり、その両方を 行ったりします。 このオプションは、テストのために提供されています。 .It Fl m ヒントファイルの内容を指定されたディレクトリで見付かったものに 置き換える代りに、新しいディレクトリの内容を .Dq 併合 (merge) します。 以前の .Nm の実行によってヒントファイル内に記録されているディレクトリも、 新しい共有ライブラリのために再び検索されます。 .It Fl r 現在のヒントファイルの中身について、標準出力に表示します。 ヒントファイルは変更されません。 ヒントファイル中のディレクトリリストが組み込まれます。 .It Fl s 共有ライブラリのために、システムの組み込みディレクトリ .Pq Dq /usr/lib を検索しません。 .It Fl v 冗長モードに切替えます。 .Sh セキュリティ .Ev セット uid (set-user-Id) プログラムのアドレス空間に共有ライブラリを読み込む時には、 特別の注意をしなければなりません。 そのようなプログラムが実行される時はいつでも、 ダイナミックリンカ はヒントファイルからだけ共有ライブラリを読み込みます。 特に、 .Ev LD_LIBRARY_PATH は、ライブラリを探すためには使われません。 -したがって、 ldconfig の役割には二つあります。 +従って、ldconfig の役割には 2 つあります。 素早い検索のためにヒント集合を作成することに加えて、 共有オブジェクトが共有ライブラリを安全に読み込むことができる ディレクトリの集まりを特定することも、その役割です。 .Nm ldconfig によって特定されたディレクトリ集合は、システム管理者の制御下にあること が仮定されています。 .Sh 環境変数 .Bl -tag -width OBJFORMATxxx -compact .It Ev OBJFORMAT .Pa /etc/objformat (後述) に優先し、 .Fl aout と .Fl elf のどちらがデフォルトであるかを決定します。 設定されている場合、値は .Ql aout もしくは .Ql elf のいずれかである必要があります。 .El .Sh 関連ファイル .Bl -tag -width /var/run/ld-elf.so.hintsxxx -compact .It Pa /var/run/ld.so.hints a.out ダイナミックリンカの標準ヒントファイル。 .It Pa /var/run/ld-elf.so.hints ELF ダイナミックリンカの標準ヒントファイル。 .It Pa /etc/ld.so.conf 伝統的な設定ファイルであり、 .Fl aout 付きで起動した場合のためにディレクトリ名を格納します。 .It Pa /etc/ld-elf.so.conf 伝統的な設定ファイルであり、 .Fl elf 付きで起動した場合のためにディレクトリ名を格納します。 .It Pa /etc/objformat .Fl aout と .Fl elf のどちらがデフォルトであるかを決定します。 存在する場合、 .Ql OBJFORMAT=aout か .Ql OBJFORMAT=elf のいずれかの 1 行から成る必要があります。 .Sh 関連項目 .Xr ld 1 , .Xr link 5 .Sh 歴史 .Nm -ユーティリティーは SunOS 4.0 ではじめに現れました。 -現在の形は、 FreeBSD 1.1 からです。 +ユーティリティは SunOS 4.0 で初めて現れました。 +現在の形は、FreeBSD 1.1 からです。