diff --git a/ja/man/man1/awk.1 b/ja/man/man1/awk.1 index bd399fa6c8..db26953b31 100644 --- a/ja/man/man1/awk.1 +++ b/ja/man/man1/awk.1 @@ -1,2534 +1,2536 @@ .\" 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" .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 オプショオン +.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 プログラムとして用います。本オプションにより、ライブラリ化された関数( +を 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 プログラムは、パターンとアクションの組の列と、(もし必要なら)関数定義か +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)がある場合、 +の要素に空 (\fB""\fR) がある場合、 .I gawk はその要素を無視します。 .PP .I gawk は、入力された各レコードに対してマッチする .I パターン が AWK プログラム内にあるかどうかを 検索します。そのレコードにマッチしたパターンすべてについて、それぞれ対応する .I アクション が実行されます。 パターンは、プログラムテキストに出現した順序で検索されます。 .PP 入力が尽きると、 .I gawk -は(もしあれば) +は (もしあれば) .B END -ブロック(複数存在可)を実行します。 +ブロック (複数存在可) を実行します。 .SH 変数、レコード、フィールド AWK における変数は動的、すなわち、最初に使用されたときに生成されます。 変数の値は、浮動小数点数か、文字列か、あるいは両方です。変数の用い -られ方により変化します。AWK ではまた、1次元配列を利用することができます。 +られ方により変化します。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 を、文字列としては "" (空文字列)を +初期化されていない変数は、数値としては 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 ステートメント -が実行されたとき)に実行されます。 +ブロックは結合され、すべての入力ファイルの処理後 (あるいは、exit ステートメント +が実行されたとき) に実行されます。 .B BEGIN と .B END はパターン式内で他のパターンと混ぜて使うことはできません。また、 .B BEGIN と .B END パターンはアクション部を省略することができません。 .PP .BI / "regular expression" / -パターンでは、正規表現(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 代入演算子も存在する)。 +べき乗 +(\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 と等価であり、これは通常意図するものとは異なります。 +\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 に対応しない +を実行し、終了ステータスを返します (\*(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 +て文字に変換します。そうでなければ、引数は文字列であると解釈され、その 1 文字目が出力されます。 .TP .B %d .PD 0 .TP .B %i -10進数(整数部分)。 +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 進数(整数)。 +符号なしの 8 進数 (整数)。 .TP .B %s 文字列。 .TP .PD 0 .B %x .TP .PD .B %X -符号なしの 16 進数(整数)。 +符号なしの 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進数で、最後に改行が付きます)を +現在のプロセスのプロセスID (10 進数で、最後に改行が付きます) を 読み込むことができます。 .TP .B /dev/ppid -現在のプロセスの親のプロセスのプロセスID(10進数で、最後に改行が付きます)を +現在のプロセスの親のプロセスのプロセスID (10 進数で、最後に改行が付きます) を 読み込むことができます。 .TP .B /dev/pgrpid -現在のプロセスのプロセスグループ ID(10進数で、最後に改行が付きます) +現在のプロセスのプロセスグループ 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)に狭まれた文字の列です。 +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 は +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 .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)。 +利用者の方で気を付けるようにしてください (Caveat Emptor)。 .PP 文法的に誤った単一文字プログラムはパーズスタックを溢れさせる傾向があり、 まったく分からないメッセージを生成する傾向にあります。 このようなプログラムの診断は驚くべきことに一般に難しく、 診断の努力はまったく無意味になります。 .SH バージョン情報 このマニュアルは .IR gawk バージョン 3.0.2 について記載しています。 .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 arnold@gnu.ai.mit.edu 宛に送ってください。 電子メールには、オペレーティングシステムとそのリビジョン、 .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. .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/man/man1/cccp.1 b/ja/man/man1/cccp.1 index 191f47a0d9..b418cc88fa 100644 --- a/ja/man/man1/cccp.1 +++ b/ja/man/man1/cccp.1 @@ -1,650 +1,650 @@ .\" Copyright (c) 1991, 1992, 1993 Free Software Foundation -*- nroff -*- .\" See section COPYING for conditions for redistribution .\" -.\" %Id: cpp.1,v 1.3 1994/11/02 09:07:33 deraadt Exp % +.\" Original Revision: 1.2 .\" jpman %Id: cccp.1,v 1.2 1997/05/12 00:19:12 jsakai Stab % .\" .TH cpp 1 "April 30, 1993" "FreeBSD" "GNU Tools" .SH 名称 cpp \- GNU-C 互換のコンパイラプリプロセッサ .SH 書式 .hy 0 .na .TP .B cpp .RB "[\|" \-$ "\|]" .RB "[\|" \-A \c .I predicate\c .RB [ (\c .I value\c .BR ) ]\|] .RB "[\|" \-C "\|]" .RB "[\|" \-D \c .I name\c .RB [ =\c .I definition\c \&]\|] .RB "[\|" \-dD "\|]" .RB "[\|" \-dM "\|]" .RB "[\|" "\-I\ "\c .I directory\c \&\|] .RB "[\|" \-H "\|]" .RB "[\|" \-I\- "\|]" .RB "[\|" "\-imacros\ "\c .I file\c \&\|] .RB "[\|" "\-include\ "\c .I file\c \&\|] .RB "[\|" "\-idirafter\ "\c .I dir\c \&\|] .RB "[\|" "\-iprefix\ "\c .I prefix\c \&\|] .RB "[\|" "\-iwithprefix\ "\c .I dir\c \&\|] .RB "[\|" \-lang\-c "\|]" .RB "[\|" \-lang\-c++ "\|]" .RB "[\|" \-lang\-objc "\|]" .RB "[\|" \-lang\-objc++ "\|]" .RB "[\|" \-lint "\|]" .RB "[\|" \-M\ [ \-MG "\|]]" .RB "[\|" \-MM\ [ \-MG "\|]]" .RB "[\|" \-MD\ \c .I file\ \c \&\|] .RB "[\|" \-MMD\ \c .I file\ \c \&\|] .RB "[\|" \-nostdinc "\|]" .RB "[\|" \-nostdinc++ "\|]" .RB "[\|" \-P "\|]" .RB "[\|" \-pedantic "\|]" .RB "[\|" \-pedantic\-errors "\|]" .RB "[\|" \-traditional "\|]" .RB "[\|" \-trigraphs "\|]" .RB "[\|" \-U \c .I name\c \&\|] .RB "[\|" \-undef "\|]" .RB "[\|" \-Wtrigraphs "\|]" .RB "[\|" \-Wcomment "\|]" .RB "[\|" \-Wall "\|]" .RB "[\|" \-Wtraditional "\|]" .br .RB "[\|" \c .I infile\c .RB | \- "\|]" .RB "[\|" \c .I outfile\c .RB | \- "\|]" .ad b .hy 1 .SH 解説 C プリプロセッサは、 実際のコンパイルの前にプログラムを変換するために C コンパイラから自動的に利用される .I マクロプロセッサ\c です。 長い記述を簡略してマクロとして定義することができるため、 マクロプロセッサと呼ばれます。 C プリプロセッサは、以下の4つの機能を提供します。 .TP \(bu ヘッダファイルを読み込みます。 これは プログラムに組み込まれる (C 言語の)宣言の入ったファイルです。 .TP \(bu C 言語の任意の部分の省略形として \c .I マクロ\c \&を定義し、C プリプロセッサがプログラム内の全てのマクロを その定義で置き換えます。 .TP \(bu 条件文の処理をします。専用のプリプロセッサコマンドを用いて、 いろいろな条件にしたがってプログラムの一部を含めたり除外したりできます。 .TP \(bu 行番号の制御をします。 ソースファイルと コンパイルされた中間ファイルとを組み合わせたり再アレンジしたりするプログラムを 用いる場合、 コンパイラにオリジナルのソースの何行目であるかを知らせるための、 行番号制御のプリプロセッサコマンドを利用できます。 .PP C プリプロセッサは、そのインプリメントによって細かな部分に違いが いくつかあります。GNU C プリプロセッサの完全なドキュメントは、 .B info ファイルの `\|\c .B cpp.info\c \&\|', もしくは、マニュアルの .I The C Preprocessor\c \&を参照して下さい。 この双方は `\|\c .B cpp.texinfo\c \&\|'から生成されます。GNU C プリプロセッサは ANSI Standard C のスーパセットと なっています。 ANSI Standard C では、今日 C プログラムで一般的に用いられている多くの (無害な)構造が認められていません。 この非互換性はユーザにとっては不便であり、そのため GNU C preprocessor ではこの記述をデフォルトで受け付けるように作られています。 厳密にいえば、 ANSI Standard C にするためには オプションとして `\|\c .B \-trigraphs\c \&\|', `\|\c .B \-undef\c \&\|', `\|\c .B \-pedantic\c \&\|'をつけなければなりません。 しかし経験則から、厳密な ANSI Standard C にあわせてこうした設定を 行なうと支障のある場合が多いことがわかっています。 ほとんどの場合は、C プリプロセッサは明示的に実行する必要はありません。 C コンパイラが自動的に実行してくれるからです。しかしながら、 明示的にプリプロセッサを実行するのが有効なことが個々にはあります。 C プリプロセッサ は、引数として \c .I infile\c \& と \c .I outfile\c \&の 2 つのファイル名を期待します。 プリプロセッサは `\|\c .B #include\c \&\|'で指定したファイルと一緒に \c .I infile\c を読み込みます。 入力ファイルの組み合わせで作られた出力は、 全て \c .I outfile\c \&に書かれます。 .I infile\c \& と \c .I outfile\c \& の指定に `\|\c .B \-\c \&\|'を使用することができます。\c .I infile\c \& が `\|\c .B \-\c \&\|' であれば\c \& 標準入力からデータを読み、\c .I outfile\c \& が `\|\c .B \-\c \&\|' であれば標準出力へ結果を書きます。もし \c .I outfile\c \& もしくは両方のファイル名が省略された場合、 省略されたファイルの代わりに標準入力と標準出力が使われます。 .SH オプション 以下が C プリプロセッサが受け付けるオプションの一覧です。 これらのオプションは、 プリプロセッサがコンパイラから起動されている場合にも 自動的に引き渡されるので、 C プログラムをコンパイルする際にも指定することができます。 .TP .B \-P `\|\c .B #\c \&\|'-行番号 という行番号情報をプリプロセッサの出力に含めません。 これは、C 以外の言語で行番号情報が含まれているとエラーを起こす言語を 処理する場合に有用でしょう。 .TP .B \-C コメントを削除せず、そのまま出力ファイルに含めます。 マクロ呼び出しの引数に現れるコメントはマクロ呼び出しの展開後にコピーされます。 .TP .B -traditional ANSI ではなく、旧形式の C の文法として解釈します。 .TP .B -trigraphs ANSI標準のトリグラフ(trigraph)構文を処理します。 これは ANSI C で 1 文字を表示すると定められた `\|\c .B ??\c \&\|' で始まる 3 文字の並びです。例えば、`\|\c .B ??/\c \&\|' は `\|\c .BR "\e" "\|'" を表しますので、`\|\c .B '??/n'\c \&\|' は改行文字の文字定数となります。 厳密に言えば、GNU C プリプロセッサの `\|\c .B \-trigraphs\c \&\|' オプションは ANSI C 標準を完全にはサポートしません。 が、普通のユーザならばその違いに気づく事は稀でしょう。 トリグラフについで、これ以上知りたいとは思わないでしょ? .TP .B \-pedantic `\|\c .B #else\c \&\|' や `\|\c .B #endif\c \&\|' の後にコメント以外のテキストがつくといった場合に、 ANSI C 標準で求められる警告を出力します。 .TP .B \-pedantic\-errors `\|\c .B \-pedantic\c \&\|' に似ていますが、警告ではなくエラーにします。 .TP .B \-Wtrigraphs トリグラフがあると警告を出力します(ただし、トリグラフの処理は行います)。 .TP .B \-Wcomment .TP .B \-Wcomments コメント開始シーケンスである `\|\c .B /*\c \&\|' がコメント中に存在したならば警告を発生します (両形式は同じ効果を持ちます)。 .TP .B \-Wall `\|\c .B \-Wtrigraphs\c \&\|' と `\|\c .B \-Wcomment\c \&\|' (ただし `\|\c .B \-Wtraditional\c \&\|' は除く) を指定したのと同じです。 .TP .B \-Wtraditional ANSI と伝統派の C とで異なる振る舞いをとる構文が出現した場合に 警告を発します。 .TP .BI "\-I " directory\c \& ディレクトリ \c .I directory\c \& をヘッダファイルを検索するディレクトリリストの末尾に追加します。 このオプションは、指定したディレクトリが システムのヘッダファイルが格納されているディレクトリよりも先に 検索されるので、ユーザ自身の作成したバージョンで システムが提供するヘッダファイルを上書きさせることもできます。 1 つ以上の `\|\c .B \-I\c \&\|' オプションを使用する場合、ディレクトリは左から右の順番で検索され、 標準のシステムヘッダファイルはその後になります。 .TP .B \-I\- `\|\c .B \-I\-\c \&\|' オプションよりも前に指定された `\|\c .B \-I\c \&\|' オプションで与えられたディレクトリは、`\|\c .B #include \c \&"\c .I file\c \&"\c \&\|' のインクルード文の場合にのみ検索されます。`\|\c .B #include <\c .I file\c \&>\c \&\|' では検索されません。 オプション `\|\c .B \-I\-\c \&\|' の後のオプション `\|\c .B \-I\c \&\|' に追加のディレクトリが指定された場合、それらのディレクトリは 全ての `\|\c .B #include\c \&\|' 文で検索されます。 付け加えて言うならば、`\|\c .B \-I\-\c \&\|' オプションを指定すると、カレントディレクトリは `\|\c .B #include \c .I \&"file\c \&"\c \&\|' 文に対する最初の検索ディレクトリではなくなります。 それゆえ、カレントディレクトリは明示的に `\|\c .B \-I.\c \&\|' として指定された場合にのみ検索されることになります。 `\|\c .B \-I\-\c \&\|' と `\|\c .B \-I.\c \&\|' を双方とも指定することで、どのディレクトリがカレントディレクトリ の前に、あるいは後に検索されるかを厳密に指定することができます。 .TP .B \-nostdinc ヘッダファイルの検索に標準システムディレクトリを用いません。`\|\c .B \-I\c \&\|' オプションで指定したディレクトリ(と、もし適切であるならば カレントディレクトリ)が検索されます。 .TP .B \-nostdinc++ ヘッダファイルの検索に C++ 仕様の標準ディレクトリを用いません。 が、その他の標準ディレクトリは検索します。 (このオプションは libg++ の構築時に用いられます。) .TP .BI "\-D " "name"\c \& \c .I name\c \& を既定義のマクロとして、`\|\c .B 1\c \&\|' に定義します。 .TP .BI "\-D " "name" = definition \& \c .I name\c \& をマクロとして\c .I definition\c \& に定義します。\c .I definition\c \& の内容に制限はありませが、プリプロセッサをシェルやシェルに類似した プログラムから起動している場合、シェルの文法上意味を持つスペース などの文字を保護するため、そのシェルのクォート文法を使用する必要が あります。もし、1 つの .I name\c \& に対して複数の `\|\c .B \-D\c \&\|' を指定したならば、もっとも右側の定義が有効となります。 .TP .BI "\-U " "name"\c \&\c .I name\c \& を定義しません。同一の \c .I name\c \& に対して `\|\c .B \-U\c \&\|' と `\|\c .B \-D\c \&\|' の双方が指定された場合、`\|\c .B \-U\c \&\|' が `\|\c .B \-D\c \&\|' に優先し、 \c .I name\c \& は定義されません。 .TP .B \-undef 非標準のマクロを一切定義しません。 .TP .BI "\-A " "name(" value ) (\c .B #assert\c \& コマンドと同じ方法で) 述語 \c .I name\c \& にトークンリスト \c .I value\c \& をアサートします。シェルのコマンドライン上では括弧を エスケープするなりクォートすることを忘れないで下さい。 既定義のアサーション全てを取り消すのに、`\|\c .B \-A-\c \&\|' を使えます。これはまた、既定義のマクロ全てを無効にします。 .TP .B \-dM プリプロセッサの結果を出力する代わりに、 プリプロセッサの実行中に定義された、既定義のものも含む全てのマクロの `\|\c .B #define\c \&\|' コマンドのリストを出力します。 これは、使用しているプリプロセッサのそのバージョンで、 どんなマクロが既定義であるかを知る方法を提供してくれます。 それには、空のファイル `\|\c .B foo.h\c \&\|' をこのオプションで処理してみればよいのです。 .sp .br touch\ foo.h;\ cpp\ \-dM\ foo.h .br .sp はすべての既定義マクロの値を見せてくれるでしょう。 .TP .B \-dD `\|\c .B \-dM\c \&\|' に似てますが、2 つの相違点があります。これは既定義マクロを 出力\c .I しません\c \&。また、`\|\c .B #define\c \&\|' コマンドとプリプロセス結果の\c .I 双方\c \& を出力します。これらの出力は両方とも標準出力に行われます。 .PP .TP .BR \-M\ [ \-MG ] プリプロセスの結果を出力する代わりに、main のソースファイルの依存性を 記述する\c .B make\c \& 規則を出力します。 プリプロセッサはソースファイルのオブジェクトファイル名、コロン、 そのすべてのインクルードファイル名から成る\c .B make\c \& 規則を出力します。複数のインクルードファイルがある場合、規則は`\|\c .B \\\\\c \&\|'-改行で複数行に区切られます。 `\|\c .B \-MG\c \&\|' は、見つけられなかったヘッダファイルは(コンパイルの途中で)生成され、 ソースファイルと同じディレクトリに存在するものとして扱います。`\|\c .B \-M\c \&\|' と共に指定しなければなりません。 この機能は自動的に Makefile を更新するのに使います。 .TP .BR \-MM\ [ \-MG ] これは `\|\c .B \-M\c \&\|' に似てますが、`\|\c .B #include "\c .I file\c \&"\c \&\|' でインクルードされるファイルのみを扱う点が異なります。`\|\c .B #include <\c .I file\c \&>\c \&\|' でインクルードされるシステムヘッダファイルは無視されます。 .TP .BI \-MD\ file これも `\|\c .B \-M\c \&\|' に似てますが、依存情報が`\|\c .I file\c \&\|' に書き出されます。\(em\&`\|\c .B \-MD\c \&\|' を指定したファイルの処理もこれに加えて行われ、`\|\c .B \-M\c \&\|' のように通常の処理を抑制することはありません。 gcc を実行する場合は `\|\c .I file\c \&\|' 引数を指定してはいけません。gcc は、入力ファイル名の末尾の `\|\c .B .c\c \&\|' を `\|\c .B .d\c \&\|' で置き換えたファイル名を出力に用いるからです。 Mach では、`\|\c .B make\c \&\|' コマンドで便利なように複数のファイルを 1 つの依存規則ファイルに まとめるユーティリティ \c .B md\c \& が利用できます。 .TP .BI \-MMD\ file `\|\c .B \-MD\c \&\|' に似てますが、ユーザのヘッダファイルのみを扱い、システムヘッダは 無視する点が異なります。 .TP .B \-H 通常の動作に加えて、 使用されたヘッダファイルのファイル名を出力します。 .TP .BI "\-imacros " "file"\c \& ファイル \c .I file\c \& を入力として処理しますが、 標準の入力ファイルを処理する前にその結果の出力を破棄します。 .I file\c \& によって生成される出力は捨てられるため、`\|\c .B \-imacros \c .I file\c \&\c \&\|' の処理結果の影響は、\c .I file\c \& 中に記述されたマクロがメインの入力ファイル中で使用可能になることだけです。 プリプロセッサは、`\|\c .B \-imacros\c .I file\c \&\|' を処理する前に、 コマンドラインから与えられた全ての `\|\c .B \-D\c \&\|' や `\|\c .B \-U\c \&\|' オプションを評価します。 .TP .BI "\-include " "file"\c \& ファイル \c .I file\c \& を、標準の入力ファイルの前に処理し、その結果出力をインクルードします。 .TP .BI "\-idirafter " "dir" ディレクトリ \c .I dir\c \& を第 2 インクルードパスに加えます。第 2 インクルードパス中の ディレクトリは、メインインクルードパス (オプション `\|\c .B \-I\c \&\|' によって追加されます) 中にヘッダファイルを探した結果 発見できなかった場合に検索されます。 .TP .BI "\-iprefix " "prefix" \c .I prefix\c \& を、その後に続く `\|\c .B \-iwithprefix\c \&\|' オプション用のプレフィックスとして使用します。 .TP .BI "\-iwithprefix " "dir" ディレクトリを第 2 インクルードパスに追加します。ディレクトリ名は \c .I prefix\c \& と \c .I dir\c \& を連結することによって得られます。ここで \c .I prefix は `\|\c .B \-iprefix\c \&\|' オプションによって指定されたものです。 .TP .B \-lang-c .TP .B \-lang-c++ .TP .B \-lang-objc .TP .B \-lang-objc++ ソースの言語を指定します。`\|\c .B \-lang-c++\c \&\|' は、プリプロセッサに C++ のコメント文と、C++ 用の追加の デフォルトインクルードディレクトリを処理させ、`\|\c .B \-lang-objc\c \&\|' は、Objective C の `\|\c .B #import\c \&\|' ディレクティブを使用可能にします。`\|\c .B \-lang-c\c \&\|' は明示的にこれらの機能の切り離しを指定し、`\|\c .B \-lang-objc++\c \&\|' は双方を利用可能にします。 これらのオプションはコンパイラドライバ \c .B gcc\c \& によって生成されますが、`\|\c .B gcc\c \&\|' のコマンドラインから引き渡すことはできません。 .TP .B \-lint コメント中に埋め込まれた、プログラムチェッカ \c .B lint\c \& のコマンドを見つけ出し、それらの前に `\|\c .B #pragma lint\c \&\|' を埋め込みます。例えば、コメント `\|\c .B /* NOTREACHED */\c \&\|' は `\|\c .B #pragma lint NOTREACHED\c \&\|' になります。 このオプションは直接 \c .B cpp\c \& を呼び出す場合にのみ使えます。\c .B gcc\c \& は、コマンドラインからこのオプションを引き渡しません。 .TP .B \-$ 識別子中での `\|\c .B $\c \&\|' の使用を禁止します。これは ANSI 規格からの要求です。 オプション `\|\c .B \-ansi\c \&\|' を指定した場合、\c .B gcc\c \& は自動的にこのオプションを設定します。が、\c .B gcc\c \& は `\|\c .B \-$\c \&\|' オプションそれ自身を認識しているわけではありません。 \(em\& `\|\c .B \-ansi\c \&\|' の他の効果を抜きにこれを使うには、 プリプロセッサを直接呼び出さねばなりません。 .SH 関連項目 .B info\c \&; .I The C Preprocessor\c , Richard M. Stallman. 中のエントリ .RB "`\|" cpp "\|'" .br .BR gcc "(" 1 ");" .B info\c \&; .I Using and Porting GNU CC (for version 2.0)\c , Richard M. Stallman. 中のエントリ .RB "`\|" gcc "\|'" .SH COPYING Copyright (c) 1991, 1992, 1993 Free Software Foundation, Inc. .PP Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. .PP Permission is granted to copy and distribute modified versions of this manual 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 into another language, under the above conditions for modified versions, except that this permission notice may be included in translations approved by the Free Software Foundation instead of in the original English. diff --git a/ja/man/man1/dig.1 b/ja/man/man1/dig.1 index ceef0e6b06..e8dc12d3c1 100644 --- a/ja/man/man1/dig.1 +++ b/ja/man/man1/dig.1 @@ -1,669 +1,670 @@ .\" %Id: dig.1,v 8.3 1998/03/21 01:01:23 halley Exp % -.\" jpman %Id: dig.1,v 1.4 1997/07/26 21:31:55 horikawa Stab % .\" .\" ++Copyright++ 1993 .\" - .\" Copyright (c) 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. .\" - .\" Portions Copyright (c) 1993 by Digital Equipment Corporation. .\" .\" Permission to use, copy, modify, and distribute this software for any .\" purpose with or without fee is hereby granted, provided that the above .\" copyright notice and this permission notice appear in all copies, and that .\" the name of Digital Equipment Corporation not be used in advertising or .\" publicity pertaining to distribution of the document or software without .\" specific, written prior permission. .\" .\" THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL .\" WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES .\" OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL DIGITAL EQUIPMENT .\" CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL .\" DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR .\" PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS .\" ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS .\" SOFTWARE. .\" - .\" --Copyright-- .\" .\" Distributed with 'dig' version 2.0 from University of Southern .\" California Information Sciences Institute (USC-ISI). .\" .\" dig.1 2.0 (USC-ISI) 8/30/90 .\" +.\" Original Regision: 1.1.1.1 +.\" jpman %Id: dig.1,v 1.4 1997/07/26 21:31:55 horikawa Stab % .Dd August 30, 1990 .Dt DIG 1 .Os BSD 4 .Sh 名称 dig \- ドメイン名問い合わせパケットをネームサーバに送る .Sh 書式 .Nm dig .Op Ic @ Ns Ar server .Ar domain .Op Aq Ar query-type .Op Aq Ar query-class .Op Ic + Ns Aq Ar query-option .Op Fl Aq Ar dig-option .Op Ar %comment .Sh 解説 .Ic dig (ドメイン情報手探り器; domain information groper) は、 DNS (Domain Name System) サーバから情報を集めるために使われる 柔軟なコマンドラインツールです。 .Ic dig は 2 つのモードを持っています。 これは、1 つの問い合わせを行う単純な対話的利用モードと、 いくつかの問い合わせ行のリスト中の各問い合わせを実行するバッチモードです。 すべての問い合わせオプションは、コマンドラインから利用可能です。 .Pp 普通の簡単な .Ic dig の使用法は、以下のような形式です。 .Pp .Bd -ragged -offset indent-two .Ic dig @ NS Ar server domain query-type query-class .Ed .Pp ここで、 .Bl -tag -width Fl .It Ar server は、ドメイン名かドット表記のインターネットアドレスのどちらかです。 もし、このオプションフィールドが省略された場合、 .Ic dig は、そのマシンのデフォルトのネームサーバを利用しようとします。 .Pp .Em 注釈: ドメイン名が指定された時は、ドメイン名システムリゾルバ (つまり、BIND) を使うことで解決しようとします。システムが DNS を 提供していない時は、ドット形式のアドレスを指定する必要があります。 利用できるサーバがどこかにある場合は、必要なことは .Pa /etc/resolv.conf が存在し、 .Ar server 自身が解決できるように、そのデフォルトネームサーバがどこにあるかが 記述されていることだけです。 .Pa /etc/resolv.conf についての情報は .Xr resolver 5 を参照してください。 .Sy 警告: .Pa /etc/resolv.conf を変更すると、標準のリゾルバライブラリと .Pq 潜在的に それを使ういくつかのプログラムに影響を与えます。 オプションとして、ユーザは環境変数 .Ev LOCALRES を設定し、 .Pa /etc/resolv.conf の代わりに使うファイルの名前を指定できます。 .Po Ns Ev LOCALRES 変数は .Ic dig リゾルバ固有のもので、標準のリゾルバでは 参照されません .Pc 。 .Ev LOCALRES 変数が設定されていないか、 設定されたファイルが読み込めない場合は、 .Pa /etc/resolv.conf が使われます。 .It Ar domain は、あなたが情報を要求しているドメイン名です。 逆アドレスの問い合わせのための便利な方法は、 .Fl x オプションを参照してください(この節の .Sx その他のオプション の項で述べられています)。 .It Ar query-type は、あなたが要求している情報のタイプ(DNS 問い合わせタイプ)です。 省略された場合のデフォルトは、 .Dq Ar a .Pq Dv T_A = アドレス が使われます。以下のタイプが認識されます。 .Pp .Bl -hang -width "hinfo T_HINFO " -compact .It Ar a\ \ \ \ \ \ Dv T_A ネットワークアドレス .It Ar any\ \ \ \ Dv T_ANY 指定されたドメインのすべて/任意の情報 .It Ar mx\ \ \ \ \ Dv T_MX ドメインのメール交換情報 (MX) .It Ar ns\ \ \ \ \ Dv T_NS ネームサーバ .It Ar soa\ \ \ \ Dv T_SOA ゾーンの権威者を表すレコード .It Ar hinfo\ \ Dv T_HINFO ホスト情報 .It Ar axfr\ \ \ Dv T_AXFR ゾーン転送情報(権威を持ったサーバに尋ねなければなりません) .It Ar txt\ \ \ \ Dv T_TXT 任意の数の文字列 .El .Pp (完全なリストは、RFC 1035 を参照してください。) .It Ar query-class は、問い合わせで要求されるネットワーククラスです。 省略された場合のデフォルトは、 .Dq Ar in .Pq Dv C_IN = Internet です。 以下のクラスが認識されます。 .Pp .Bl -tag -width "hinfo T_HINFO " -compact .It Ar in\ \ \ \ \ Dv C_IN インターネットクラスドメイン .It Ar any\ \ \ \ Dv C_ANY すべて/任意のクラスの情報 .El .Pp (完全なリストは、RFC 1035 を参照してください。) .Pp .Em 注釈: .Dq Ar any は、 .Em クラス や問い合わせの .Em タイプ を指定するために使われます。 .Ic dig は、最初に現れた .Dq Ar any を .Ar query-type = Dv T_ANY として解析します。 .Ar query-class = Dv C_ANY にするためには、 .Dq any を 2 度指定するか、 .Fl c オプション(以下参照)を利用して問い合わせクラスを 指定しなければなりません。 .El .Ss その他のオプション .Bl -tag -width Fl .It % Ns Ar ignored-comment .Dq % は、単に解析されない引数を含むために使われます。 これは、 .Ic dig をバッチモードで実行する時に有効です。 問い合わせリスト中のすべての .Ar @server-domain-name を解決する代わりに、 そのオーバヘッドを避けつつコマンドライン上にドメイン名を書くことが出来ます。 以下の例を参照。 .Pp .Bd -ragged -offset indent-two .Ic dig @128.9.0.32 %venera.isi.edu mx isi.edu .Ed .Pp .It Fl Aq Ar dig option .Dq Fl は、 .Ic dig の操作に影響を与えるオプションを指定するために 使われます。以下のオプションが現在利用可能です ( 便利であるかどうかは保証しません )。 .Bl -tag -width Fl .It Fl x Ar dot-notation-address 逆アドレス変換を指定する便利な形式です。 .Dq Ic dig 32.0.9.128.in-addr.arpa の代わりに、 .Dq Ic dig -x 128.9.0.32 と指定できます。 .It Fl f Ar file .Ic dig のバッチモードのためのファイルです。ファイルは、 つづいて実行される問い合わせの指定 ( .Ns Ic dig のコマンドライン) の リストを含んでいます。 .Sq \&; , .Sq # , .Sq \en で始まる行は無視されます。その他のオプションは、 コマンドラインで現れるものは、個々のバッチによる問い合わせでも 影響があります。 .It Fl T Ar time バッチモードで実行した時、連続した問い合わせの始まる時間間隔を秒で与え ます。2 つ以上のバッチ .Ic dig コマンドの実行を大体同期することができる ようになります。デフォルトは 0 です。 .It Fl p Ar port ポート番号です。標準でないポート番号で待つネームサーバに問い合わせます。 デフォルトは 53 です。 .It Fl p Ns Bq Ar ping-string 問い合わせからかえってきた後で、 .Xr ping 8 コマンドを応答時間の比較のために実行します。これは、美しくないのですが、 シェルを呼び出します。統計の最後の 3 行がコマンドのために 表示されます。 .Pp .Bd -ragged -offset indent-two .Ic ping Fl s server_name 56 3 .Ed .Pp オプションの .Dq Ar ping-string が存在した時は、シェルコマンドでは .Dq Ic ping Fl s を置き換えます。 .It Fl t Ar query-type 問い合わせのタイプを指定します。タイプフィールド内の整数値か、 上で述べたニーモニック表現 (つまり .Ar mx = Dv T_MX ) かで 指定することができます。 .It Fl c Ar query-class 問い合わせのクラスを指定します。クラスフィールド内の整数値か、 上で述べたニーモニック表現 (つまり in = C_IN) で 指定することができます。 .It Fl envsav このフラグを指定すると、すべての引数が解析された後で .Ic dig 環境 (デフォルトや表示オプション等) を デフォルト環境としてファイルに保存します。 標準のデフォルトが気に入らず、 .Ic dig を使う度にたくさんのオプションを指定することが嫌な場合は便利です。 環境は、 .Ic dig 出力 (以下参照) で詳しく述べられるフラグと同じように、 リゾルバの状態変数フラグや、タイムアウト、再試行回数からなります。 シェル環境変数 .Ev LOCALDEF がファイルの名前に設定されている場合、 これが、デフォルトの .Ic dig 環境が保存される場所となります。 そうでない場合は、ファイル .Dq DiG.env が現在の作業ディレクトリに 作成されます。 .Pp .Em 注釈: .Ev LOCALDEF は、 .Ic dig のリゾルバ固有であり、 標準のリゾルバライブラリの操作には影響を与えません。 .Pp .Ic dig が実行される度に、 .Dq ./DiG.env またはシェル環境変数 .Ev LOCALDEF で指定されたファイルが探されます。そのようなファイルが 存在し読める場合は、引数を解析する前にこのファイルから環境が 読み込まれます。 .It Fl envset このフラグは、バッチ問い合わせを実行する時にだけ影響があります。 .Ic dig バッチファイル中で .Dq Fl envset が指定されていると、 この引数が解析された後の .Ic dig 環境は、バッチファイルが実行されている間もしくは、次の .Dq Fl envset が指定されるまでの間は、 デフォルトの環境となります。 .It Xo .Fl Op Cm no .Ns Cm stick .Xc このフラグは、バッチ問い合わせ実行にだけ影響を与えます。 これは、 .Ic dig 環境を .Ic dig バッチファイル中での 各問い合わせ (行) の前に (初期状態もしくは、 .Dq Fl envset で設定された) 元の状態に戻すことを指定します。 デフォルトの .Dq Fl nostick は、 .Ic dig 環境を回復しないという意味ですので、 .Ic dig バッチファイルの各行で指定されたオプションは、 後の行でもその効果が残ったままになります (つまり .Dq sticky 時のデフォルトのようには回復されません)。 .El .It Ic + Ns Aq Ar query option .Dq + はパケット問い合わせ中のオプション変更や .Ic dig 出力仕様を変更するために使われます。 これらの多くは、 .Xr nslookup 8 で受け入れられるパラメータと同じものです。 オプションが値を必要とする場合、その指定形式は以下のようになります。 .Pp .Bd -ragged -offset indent-two .Ic + .Ns Ar keyword .Ns Op = Ns Ar value .Ed .Pp ほとんどのキーワードは、省略が可能です。 .Dq + オプションの解釈は非常に単純です。 値はキーワードとスペースで区切ってはなりません。 以下のキーワードが現在利用可能です。 .Pp .Pp キーワード 省略形 意味 [デフォルト] .Pp .Bl -tag -width "[no]primary (ret) " -compact .It Xo .Op Cm no .Ns Cm debug\ \ \ \ .Pq Cm deb .Xc デバッグモードを変更 .Bq Cm deb .It Xo .Op Cm no .Ns Cm d2\ \ \ \ \ \ \ \ \ \ .Xc 追加のデバッグモードを変更 .Bq Cm nod2 .It Xo .Op Cm no .Ns Cm recurse\ \ .Pq Cm rec .Xc 再帰的探索を使うかどうか指定 .Bq Cm rec .It Xo .Cm retry= Ns Ar # .Cm \ \ \ \ \ .Pq Cm ret .Xc 再試行の回数を # に設定 .Bq 4 .It Xo .Cm time= Ns Ar # .Cm \ \ \ \ \ \ .Pq Cm ti .Xc タイムアウト時間を # 秒に設定 .Bq 4 .It Xo .Op Cm no .Ns Cm ko .Xc 繋げておくオプション(vc を暗黙指定) .Bq Cm noko .It Xo .Op Cm no .Ns Cm vc .Xc 仮想回線を使うかどうか指定 .Bq Cm novc .It Xo .Op Cm no .Ns Cm defname\ \ .Pq Cm def .Xc デフォルトドメイン名を使うかどうか指定 .Bq Cm def .It Xo .Op Cm no .Ns Cm search\ \ \ .Pq Cm sea .Xc ドメインサーチリストを使うかどうか指定 .Bq Cm sea .It Xo .Cm domain= Ns Ar NAME\ \ .Pq Cm do .Xc デフォルトドメイン名を .Ar NAME に指定 .It Xo .Op Cm no .Ns Cm ignore\ \ \ .Pq Cm i .Xc trunc. エラーを無視するかどうか指定 .Bq Cm noi .It Xo .Op Cm no .Ns Cm primary\ \ .Pq Cm pr .Xc プライマリサーバを使うかどうか指定 .Bq Cm nopr .It Xo .Op Cm no .Ns Cm aaonly\ \ \ .Pq Cm aa .Xc 権威を持った問い合わせのみのフラグ .Bq Cm noaa .It Xo .Op Cm no .Ns Cm cmd .Xc 解析された引数を表示 .Bq Cm cmd .It Xo .Op Cm no .Ns Cm stats\ \ \ \ .Pq Cm st .Xc 問い合わせの統計を表示 .Bq Cm st .It Xo .Op Cm no .Ns Cm Header\ \ \ .Pq Cm H .Xc 基本的なヘッダを表示 .Bq Cm H .It Xo .Op Cm no .Ns Cm header\ \ \ .Pq Cm he .Xc ヘッダフラグを表示 .Bq Cm he .It Xo .Op Cm no .Ns Cm ttlid\ \ \ \ .Pq Cm tt .Xc TTL を表示 .Bq Cm tt .It Xo .Op Cm no .Ns Cm cl .Xc クラス情報を表示 .Bq Cm nocl .It Xo .Op Cm no .Ns Cm qr .Xc 出て行った問い合わせを表示 .Bq Cm noqr .It Xo .Op Cm no .Ns Cm reply\ \ \ \ .Pq Cm rep .Xc 応答節を表示 .Bq Cm rep .It Xo .Op Cm no .Ns Cm ques\ \ \ \ \ .Pq Cm qu .Xc 質問節を表示 .Bq Cm qu .It Xo .Op Cm no .Ns Cm answer\ \ \ .Pq Cm an .Xc 回答節を表示 .Bq Cm an .It Xo .Op Cm no .Ns Cm author\ \ \ .Pq Cm au .Xc 権威節を表示 .Bq Cm au .It Xo .Op Cm no .Ns Cm addit\ \ \ \ .Pq Cm ad .Xc 追加節を表示 .Bq Cm ad .It Cm pfdef デフォルト表示フラグを設定 .It Cm pfmin 最小のデフォルト表示フラグを設定 .It Cm pfset= Ns Ar # 表示フラグを # に設定 (# は 16 進 /8 進/10 進が可能です) .It Cm pfand= Ns Ar # 表示フラグに # とのビット論理積 (and) 適用 .It Cm pfor= Ns Ar # 表示フラグに # とのビット論理和 (or) 適用 .El .Pp .Cm 再試行回数 と .Cm 時間 のオプションは、問い合わせデータグラムを送る際に、 リゾルバライブラリによって使われる再送戦略に影響を与えます。 アルゴリズムは以下の通りです .Pp .Bd -literal -offset indent for i = 0 to retry - 1 for j = 1 to num_servers send_query wait((time * (2**i)) / num_servers) end end .Ed .Pp (注釈: .Ic dig はいつも .Dq Li num_servers として値 1 を使います。) .El .Ss 詳細 .Ic dig は、かつて BINDの .Xr resolver 3 ライブラリの変更版を要求しました。 BIND のリゾルバは、(BIND 4.9のように) .Ic dig を正しく動作させるようになって来ています。本質的には、 .Ic dig は、引数の解釈と適切なパラメータ設定を(見事にではなく)卒直に行うものです。 .Ic dig はリゾルバの関数 .Fn res_init , .Fn res_mkquery , .Fn res_send を使い、また .Ft _res 構造体を操作します。 .Sh 環境変数 .Bl -tag -width "LOCALRES " -compact .It Ev LOCALRES .Pa /etc/resolv.conf の代わりに使うファイル .It Ev LOCALDEF デフォルトの環境ファイル .El .Pp 上述した .Fl envsav , .Fl envset , .Xo .Fl Op Cm no .Ns Cm stick .Xc オプションの説明も参照してください。 .Sh 関連ファイル .Bl -tag -width "/etc/resolv.conf " -compact .It Pa /etc/resolv.conf 初期状態のドメイン名とネームサーバのアドレス .It Pa \./DiG.env デフォルトオプションを保存するデフォルトファイル .El .Sh 関連項目 .Xr named 8 , .Xr resolver 3 , .Xr resolver 5 , .Xr nslookup 8 .Sh 規格 RFC 1035 .Sh 作者 Steve Hotz hotz@isi.edu .Sh 謝辞 .Ic dig は、Andrew Cherenson によって書かれた .Xr nslookup 8 の関数を使っています。 .Sh バグ .Ic dig は "這い回る機能主義 (creeping featurism)" の深刻事例 -- 開発中に潜在的な用途をいくつか考えた結果です。 おそらく苛酷なダイエットが有効でしょう。 同様に、表示フラグと項目の粒度は、その場限りで 生まれたもので、存在理由はそれほどありません。 .Pp 問題がリゾルバ中のどこかで起こった時に、 .Ic dig は、(適切な状態を持って)一貫性のあるように終了しません .Po Sy 注釈: 大部分の共通の終了状態はちゃんと扱います .Pc 。 これは、バッチモードで実行している時に特に悩まされます。 異常終了した時(さらにそれを捕まえられなかった時)、バッチ全体が終了します。 そのようなイベントをとらえた時、 .Ic dig は単に次の問い合わせを 続けます。 diff --git a/ja/man/man1/host.1 b/ja/man/man1/host.1 index a41b951651..52a6f686d2 100644 --- a/ja/man/man1/host.1 +++ b/ja/man/man1/host.1 @@ -1,308 +1,310 @@ .\" ++Copyright++ 1993 .\" - .\" Copyright (c) 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. .\" - .\" Portions Copyright (c) 1993 by Digital Equipment Corporation. .\" .\" Permission to use, copy, modify, and distribute this software for any .\" purpose with or without fee is hereby granted, provided that the above .\" copyright notice and this permission notice appear in all copies, and that .\" the name of Digital Equipment Corporation not be used in advertising or .\" publicity pertaining to distribution of the document or software without .\" specific, written prior permission. .\" .\" THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL .\" WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES .\" OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL DIGITAL EQUIPMENT .\" CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL .\" DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR .\" PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS .\" ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS .\" SOFTWARE. .\" - .\" --Copyright-- .\" %Id: host.1,v 8.2 1997/03/14 02:29:44 vixie Exp % +.\" +.\" Original Revision: 1.2 .\" jpman %Id: host.1,v 1.3 1997/08/20 12:10:27 horikawa Stab % .Dd December 15, 1994 .Dt HOST 1 .Os BSD 4 .Sh 名称 .Nm host .Nd ドメインサーバを使ってホスト名の検索を行なう .Sh 書式 .Nm host .Op Fl l .Op Fl v .Op Fl w .Op Fl r .Op Fl d .Op Fl t Ar querytype .Op Fl a .Ar host .Op Ar server .Sh 解説 .Ic host はインターネットホストに関する情報の検索を行ないます。 情報は世界中に広がった相互に接続されたサーバ群から得ます。 デフォルトではホスト名とインターネットアドレス間の変換のみを行ないます。 .Dq Fl t や .Dq Fl a オプションとともに使うと、そのホストに関するドメインサーバによって保守 されている情報のすべてを得ることができます。 .Pp 引数にはホスト名かホスト番号のいずれかを指定できます。 本プログラムはまず引数をホスト番号として解釈を試みます。 それがうまくいかなければ、ホスト名として扱います。 ホスト番号は 128.6.4.194 のようにドットによって区切られた 4 つの 10 進数からなります。 ホスト名は topaz.rutgers.edu のようにドットで区切られた複数の名前からなります。 名前がドットで終っていなければ、ローカルドメインが自動的に末尾に 付け加えられます。たとえば Rutgers のユーザは .Pp .D1 Ic host topaz .Pp というように使うことができ、これは実際には "topaz.rutgers.edu" が検索されます。 これがうまくいかなければ、名前は変更されずに (この例では "topaz" として) 試みられます。このやりかたはメールやその他のネットワークユーティリティ でも使うことができます。 実際に末尾に付け加えられる接尾辞は、 .Xr hostname 1 を呼び出した結果の最初のドット以降となります。(下記の .Sx ホスト名検索のカスタマイズ の節を参照してください。) .Pp 最初の引数は検索を行なうホスト名となります。これが数字の場合、 .Dq 逆引き が実行されます。すなわちドメインシステムは数字を名前に変換するための別 のデータベース群を参照します。 .Pp 2 番目の引数は省略可能です。ここでは問い合わせを行なうサーバを指定する ことができます。この引数が指定されなければ、デフォルトのサーバ (通常は ローカルマシン) が使われます。 .Pp 名前が指定された場合、3 つの異なった種類の結果が出力されます。 以下はそれらの例です。 .Pp .D1 Ic % host sun4 .Dl sun4.rutgers.edu is a nickname for ATHOS.RUTGERS.EDU .Dl ATHOS.RUTGERS.EDU has address 128.6.5.46 .Dl ATHOS.RUTGERS.EDU has address 128.6.4.4 .Dl ATHOS.RUTGERS.EDU mail is handled by ARAMIS.RUTGERS.EDU .Pp ここでユーザはコマンド .Dq Ic host sun4 を入力しています。最初の行は名前 .Dq Li sun4.rutgers.edu は実際にはニックネームであることを示しています。 正式なホスト名は .Dq Li ATHOS.RUTGERS.EDU です。続く 2 行ではアドレスが表示 されています。もし複数のネットワークインタフェースをもつシステムであ れば、その各々は別のアドレスを持ちます。最後の行では .Li ATHOS.RUTGERS.EDU は自分に対するメールは受け取らないことを示しています。このホスト宛ての メールは .Li ARAMIS.RUTGERS.EDU によって取り込まれます。いくつかのシステム ではそのメールを扱うシステムが複数存在することがあり、その場合はこの行 のような情報がさらに出力されます。技術的にはメールを受け取ることのでき るすべてのシステムがこのようなエントリを持つと考えられます。もしシステム がそのメールを自分自身で受け取る場合、 .Pp .D1 Li XXX mail is handled by XXX .Pp のように、そのシステム自身について言及したエントリがあるはずです。しかし、 メールを自分で受け取る多くのシステムではわざわざその事実について言及し ていません。もしあるシステムに .Dq Li mail is handled by のエントリがあるのにアドレスがなければ、 それは本当はインターネットの構成員ではないが、 ネットワーク上のあるシステムがメールをそこに転送してくることを示しています。 Usenet や Bitnet やその他の多くのネットワーク上のシステムではこの種の エントリを持っています。 .Sh オプション ホスト名の前に指定できるオプションは沢山あります。これらのオプションの ほとんどはドメインデータベースを保守しているスタッフにのみ意味のあるも のです。 .Bl -tag -width Fl .It Fl w このオプションを指定すると、 .Ic host は応答があるまで永遠に待ち続けます。通常は 1 分程でタイムアウトになります。 .It Fl v 「冗長」な (verbose) 形式で表示されます。これは正式な ドメインマスタのファイル形式となります。この形式については .Xr named 8 の man ページに文書化されています。このオプションがなくても出力の形式は 一般的な意味ではこの正式な形式に準拠したものとなりますが、通常のユーザに とって分かりやすいものにされます。 .Dq Fl v が指定されなければ、"a", "mx", "cname" の各レコードは それぞれ "has address", "mail is handled by", "is a nickname for" と出力され、TTL とクラスフィールドは表示されません。 .It Fl r 再帰的な問い合わせを行ないません。これは ネームサーバがそのサーバ自身のデータベースに所持しているデータのみを返すこ とを意味します。サーバは他のサーバに情報の問い合わせを行ないません。 .It Fl d デバッグモードとなります。ネットワークトランザクションが詳細に表示されます。 .It Fl t Ar querytype 特定の .Ar querytype の情報の検索を指定することができます。 引数は .Xr named 8 の man ページにおいて定義されています。現在サポートされ ているタイプには以下のものが含まれます: .Dq Cm a , .Dq Cm ns , .Dq Cm md , .Dq Cm mf , .Dq Cm cname , .Dq Cm soa , .Dq Cm mb , .Dq Cm mg , .Dq Cm mr , .Dq Cm null , .Dq Cm wks , .Dq Cm ptr , .Dq Cm hinfo , .Dq Cm minfo , .Dq Cm mx , .Dq Cm uinfo , .Dq Cm uid , .Dq Cm gid , .Dq Cm unspec さらに、ワイルドカード (これは .Dq Cm any か .Dq Cm * として指定されます) があり、上記のすべてのタイプを指定するためにつかいます。 タイプは小文字で指定しなければなりません。 デフォルトでは最初に .Dq Cm a が検索され、次に .Dq Cm mx が検索されます。ただし、verbose オプションが指定されていると、デフォルトでは .Dq Cm a のみの検索を行ないます。オプション .Dq Fl t は .Ic host が返す情報にフィルタをかけるのに特に有効です。 それ以上の情報は下記の .Dq Fl l オプションの説明を参照してください。 .It Fl a .Dq all の意。 .Dq Fl v Fl t Cm any と同じです。 .It Fl l 完全なドメインのリストを表示します。例えば .Pp .D1 Ic host -l rutgers.edu .Pp を実行すると、rutgers.edu ドメインのすべてのホストのリストを表示します。 .Dq Fl t オプションを使うことによって表示する情報にフィルタをかけることがで きます。デフォルトでは PTR と NS レコードを含んだアドレス情報が表示さ れます。 .Pp .D1 Ic host -l -v -t any rutgers.edu .Pp このコマンドでは rutgers.edu の完全なゾーンデータを正式なマスタファイル の形式でダウンロードします。(しかし不思議な理由により SOA レコードは 2 回リストされます。) .Pp .Sy 注: .Dq Fl l フラグは完全なゾーン転送を行なった後、 要求した情報をフィルタリングするように実装されています。このコマンドは 絶対に必要な時に限って使うべきです。 .Sh ホスト名検索のカスタマイズ 一般にユーザによって指定された名前にドットが含まれていなければ、 デフォルトのドメインがその末尾に付け加えられます。このドメインは .Pa /etc/resolv.conf において定義することができますが、通常はローカルの ホスト名の最初のドット以降を取ることによって求められます。ユーザは環境変数 .Ev LOCALDOMAIN を使って異なるデフォルトドメインを指定することによって、これを オーバーライドすることができます。さらに、ユーザはホスト名の独自の略称を使うこ ともできます。略称は 1 つの略称につき 1 行からなるファイルにおいて指定 します。各行には略称、スペース、そして完全なホスト名が含まれます。この ファイルは環境変数 .Ev HOSTALIASES にてファイル名を指定します。 .Sh 環境変数 .Bl -tag -width "/etc/resolv.conf " -compress .It Ev HOSTALIASES .Pq Ar ホストの別名 , 完全なホスト名 のペアを含んでいるファイルのファイル名 .El .Sh 関連ファイル .Bl -tag -width "/etc/resolv.conf " -compress .It Pa /etc/resolv.conf .Xr resolver 5 を参照してください。 .It Ev HOSTALIASES .Pq Ar ホストの別名 , 完全なホスト名 のペアを含んでいるファイルのファイル名 .El .Sh 関連項目 .Xr named 8 、 .Xr resolver 5 .Sh バグ ローカルドメインに含まれない名前を入力すると予期できない影響が起こり得 ます。名前がドットで終っていない限り、ローカルドメイン名がすべての名前の 末尾に付加されることをいつも心に留めておいてください。 ローカルドメインの補完に失敗した時のみ、名前は変更されずに使用されます。 .Pp .Dq Fl l オプションでは要求されたドメインにおいてリストされている最初の ネームサーバにのみ問い合わせを行ないます。もしこのサーバが死んでいれば、 サーバをマニュアルで指定しなければなりません。たとえば foo.edu のリストを 得るには、 .Pp .D1 Ic host -t ns foo.edu .Pp と指定して foo.edu のすべてのネームサーバ のリストを得てから、動作するものが見つかるまでリストにあるすべての ネームサーバについて .Pp .D1 Ic host -l foo.edu xxx .Pp (ここで .Dq Ic xxx はネームサーバ) を試みれば良いでしょう。 diff --git a/ja/man/man1/mail.1 b/ja/man/man1/mail.1 index d24051c2f1..2bff505900 100644 --- a/ja/man/man1/mail.1 +++ b/ja/man/man1/mail.1 @@ -1,1003 +1,1003 @@ .\" Copyright (c) 1980, 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. .\" .\" @(#)mail.1 8.2 (Berkeley) 12/30/93 .\" %Id: mail.1,v 1.15 1998/04/14 00:59:29 steve Exp % .\" jpman %Id: mail.1,v 1.3 1997/10/30 01:42:49 h-nokubi Stab % .\" .Dd December 30, 1993 .Dt MAIL 1 .Os BSD 4 .Sh 名称 .Nm mail .Nd メールの送信と受信 .Sh 書式 .Nm mail .Op Fl iInv .Op Fl s Ar subject .Op Fl c Ar cc-addr .Op Fl b Ar bcc-addr .Ar to-addr ... .Op \&- Ar sendmail-option ... .Nm mail .Op Fl iInNv .Fl f .Op Ar name .Nm mail .Op Fl iInNv .Op Fl u Ar user .Sh イントロダクション .Nm mail はインテリジェントなメール処理システムです。 コマンドシンタックスは .Xr \&ed 1 に似ており、 .Xr \&ed 1 での行の代わりにメッセージを扱う形になっています。 .Pp .Bl -tag -width flag .It Fl v 冗長 (verbose) モードです。 メールの配送の詳細がユーザのターミナルに表示されます。 .It Fl i tty の割り込みシグナルを無視します。 これは特に雑音の多い電話回線を通して .Nm mail を使う場合に役に立ちます。 .It Fl I 入力がターミナルでない場合にでも強制的に mail を対話モードで実行します。 特にメールを送る時の特殊文字 .Sq Ic \&~ は対話モードでのみ有効となります。 .It Fl n 起動時にシステム全体の .Pa mail.rc ファイルを読み込みません。 .It Fl N メールを読んだりメールフォルダを編集する時に、最初のメッセージヘッダの 表示を行いません。 .It Fl s コマンドラインからサブジェクトを指定します。 ( .Fl s フラグの後の最初の引数だけがサブジェクトとして使われます。空白を含む サブジェクトは引用符で囲むように注意して下さい。) .It Fl c カーボンコピーをユーザの .Ar list へ送ります。 .It Fl b ブラインドカーボンコピーを .Ar list へ送ります。 .Ar list はコンマで区切られた名前のリストとなります。 .It Fl f あなたの .Ar mbox (もしくは指定されたファイル) の内容を処理対象として読み込みます。 .Ar quit した時には .Nm mail は削除されなかったメッセージをこのファイルに書き戻します。 .It Fl u これは以下と等価です。 .Pp .Dl mail -f /var/mail/user .El .Ss メールを送る メッセージを 1 人かそれ以上の人に送るために .Nm mail をメールが送られる相手の名前を引数として起動することができます。 メッセージをタイプした後、行の先頭で .Sq Li control\-D を入力します。 下記の .Ar 「メールにリプライしたり、メールを始める」 のセクションでは手紙を編集する際に役に立つ .Nm mail の機能について説明しています。 .Pp .Ss メールを読む 通常の使い方では .Nm mail は引数を指定しないで起動すると、ポストオフィスのメールをチェックし、見 つかった各メッセージにつき 1 行ずつヘッダを表示します。 現在のメッセージは初期状態では最初のメッセージ ( 1 番に番号が振られて います) となっており、 .Ic print コマンド (省略形 .Ic p を使うことができます) によって表示することができます。 メッセージの位置を .Xr \&ed 1 と同様に .Ql Ic \&+ と .Ql Ic \&\- のコマンドを使って後や前に移動したり、単に数字を指定して移動したりする ことができます。 .Pp .Ss メールを廃棄する メッセージをチェックした後、メッセージを .Ic delete コマンド .Pq Ic d で削除したり、それに .Ic reply コマンド .Pq Ic r でリプライ (返事を出す) したりすることができます。 メッセージを削除すると .Nm mail プログラムはそのメッセージのことを忘れますが、 この操作は取り消すことができます。 メッセージは .Ic undeleted コマンド .Pq Ic u を使ってメッセージの番号を指定するか、 .Nm mail のセッションを .Ic exit コマンド .Pq Ic x で中途終了することによって削除をとりやめることができます。 しかし、削除されたメッセージは通常はなくなり二度と見ることはできませ ん。 .Pp .Ss メッセージを指定する .Ic print や .Ic delete のようなコマンドは、引数に複数のメッセージの番号を指定することによって 複数のメッセージに対して一度に適用することができます。 たとえば .Dq Li delete 1 2 はメッセージ 1 と 2 を削除し、 .Dq Li delete 1\-5 は 1 から 5 のメッセージを削除します。 特別な名前 .Ql Li \&* は全てのメッセージを意味し、 .Ql Li \&$ は最後のメッセージを意味します。 メッセージの最初の数行を表示するコマンド .Ic top を使って .Dq Li top \&* で全てのメッセージの最初の数行を表示することができます。 .Pp .Ss メールにリプライしたり、メールを始める .Ic reply コマンドを使ってメッセージに対する返事を用意して、それをメッセージの差 出人に送り返すことができます。 タイプインしたメッセージは end-of-file までがメッセージの内容として定 義されます。 メッセージを編集している時に .Nm mail は 文字 .Ql Ic \&~ で始まる行を特別に扱います。 例えば、 .Ql Ic \&~m とタイプする(行にこれだけタイプします)と現在のメッセージを タブの分 (下記の変数 .Em indentprefix を参照) だけ右にシフトして返事のメッセージにコピーします。 他のエスケープはサブジェクトの設定や、メッセージの受取人の追加や削除を 行なったり、またメッセージを修正するためにエディタを起動したり、コマン ドを実行するためにシェルを起動したりします。 (下にこれらのオプションの要約があります。) .Pp .Ss メールの処理セッションを終了する .Nm mail セッションは .Ic quit コマンド .Pq Ic q で終了することができます。 チェックされたメッセージは削除されていなければ .Ar mbox ファイルにセーブされます。削除されている場合は本当に廃棄されます。 チェックされていないメッセージはポストオフィスに書き戻されます (上記の .Fl f オプション参照)。 .Pp .Ss 個人の配布リストとシステム全体の配布リスト たとえば .Dq Li cohorts へメールを送ると複数の人に配布されるように、個人の配布リストを作成する こともできます。 このようなリストは .Pp .Dl alias cohorts bill ozalp jkf mark kridle@ucbcory .Pp というような行をホームディレクトリの .Pa \&.mailrc ファイルに書いておくことによって定義できます。 このようなエイリアス (別名) の現在のリストは .Nm mail 内で .Ic alias コマンドを使って表示することができます。 システム全体にわたる配布リストは .Pa /etc/aliases を編集することによって作成することができます。 これについては .Xr aliases 5 と .Xr sendmail 8 を参照してください。これらでは違った形式で記述されます。 あなたが送ったメールの中では個人のエイリアスが展開され、そのメールの受取 人が他の受取人に .Ic reply できるようになります。 システム全体の .Ic aliases はメールが送られた時には展開されませんが、 そのマシンに返信されたメールは .Xr sendmail によって処理される際にシステム全体のエイリアスで展開されます。 .Pp .Ss ネットワークメール (ARPA, UUCP, Berknet) ネットワークアドレスの説明については .Xr mailaddr 7 を参照してください。 .Pp .Nm mail には .Pa .mailrc ファイルの中でセットして動作方法を変更するためのオプションがたくさんあ ります。 たとえば .Dq Li set askcc は .Ar askcc 機能を有効にします。 (これらのオプションについては下にまとめてあります。) .Sh 要約 (`Mail Reference Manual' より抜粋) .Pp 各コマンドは行中に単独入力されるか、またコマンドの後に引数をとることも あります。 コマンドは全て入力する必要はありません。途中まで入力されたも のに最初にマッチしたコマンドが使われます。 メッセージリストを引数として取るコマンドについては、メッセージリストが 与えられなければコマンドに要求されるものを満たす次のメッセージが使われ ます。 次のメッセージがない場合にはサーチは逆順に行なわれ、もし適用されるメッ セージが発見できない場合には .Nm mail は .Dq Li No applicable messages と表示しコマンドを中断します。 .Bl -tag -width delete .It Ic \&\- 前のメッセージを表示します。 数字の引数 .Ar n が指定されると、 .Ar n 個前に移動してメッセージを表示します。 .It Ic \&# 行中のこれ以降をコメントとして無視します。 .It Ic \&? コマンドの短い要約を表示します。 .It Ic \&! これに引き続くシェルコマンドを実行します ( .Xr sh 1 と .Xr csh 1 を参照) 。 .It Ic Print .Pq Ic P .Ic print と同様ですが、無視されるヘッダフィールドも表示されます。 .Ic print , .Ic ignore , .Ic retain を参照してください。 .It Ic Reply .Pq Ic R 発信者に返信します。 元のメッセージの他の受取人には返信されません。 .It Ic Type .Pq Ic T .Ic Print と同じです。 .It Ic alias .Pq Ic a 引数がない場合は、現在定義されている全てのエイリアスを表示します。 引数がひとつ伴うと、そのエイリアスを表示します。 複数の引数が指定されると、新しいエイリアスを作成するか、古いものを変更 します。 .It Ic alternates .Pq Ic alt .Ic alternates コマンドはいくつかのマシンにアカウントがある場合に便利な機能です。 .Nm mail に対してリストされたアドレスがあなたのアドレスであることを指示するため に使われます。 .Ic reply コマンドによってメッセージに返信するときに .Nm mail は .Ic alternates リストにリストされているアドレスにはメッセージのコピーを送付しません。 .Ic alternates コマンドが引数なしで指定された場合、現在の alternate の内容が表示され ます。 .It Ic chdir .Pq Ic c ユーザの作業ディレクトリを指定されたものに変更します。 ディレクトリが指定されていなければ、ユーザのログインディレクトリに変更 します。 .It Ic copy .Pq Ic co .Ic copy コマンドは .Ic save と同様のことを行ないますが、終了時に削除を行なうためのマークをメッセー ジにつけません。 .It Ic delete .Pq Ic d メッセージのリストを引数として取り、それら全てを削除されたものとしてマー クします。 削除されるメッセージは .Ar mbox にはセーブされず、また他のほとんどのコマンドの対象となりません。 .It Ic dp (もしくは .Ic dt ) 現在のメッセージを削除し、次のメッセージを表示します。 次のメッセージがなければ、 .Nm mail は .Dq Li "at EOF" と表示します。 .It Ic edit .Pq Ic e メッセージのリストを引数として取り、各々を順にテキストエディタで開きま す。 メッセージはテキストエディタから戻ってきた時に再度読み込まれます。 .It Ic exit .Pf ( Ic ex もしくは .Ic x ) ユーザのシステムメールボックス、 .Ar mbox ファイル、 .Fl f での編集ファイルを変更せずにシェルへ直ちに戻ります。 .It Ic file .Pq Ic fi .Ic folder と同様です。 .It Ic folders フォルダディレクトリ内のフォルダ名をリストします。 .It Ic folder .Pq Ic fo .Ic folder コマンドは新しいメールファイルかフォルダに切替えます。 引数がないと、現在どのファイルを読んでいるかを表示します。 引数を指定すると、現在のファイルに対して行なった変更 (削除など) を書き 出し、新しいファイルを読み込みます。 引数の名前にはいくつかの特別な記法を使うことができます。 # は前のファイルを意味します。 % はあなたのシステムメールボックスを意味します。 %user は user のシステムメールボックスを意味します。 & はあなたの .Ar mbox ファイルを意味します。 \&+\&folder はあなたのフォルダディレクトリ中のファイルを意味します。 .It Ic from .Pq Ic f メッセージのリストを引数として取り、それらのメッセージのヘッダを表示し ます。 .It Ic headers .Pq Ic h 現在の範囲のヘッダをリストします。現在の範囲は 18 個のメッセージのグルー プです。 引数として .Ql \&+ が指定されると次の 18 個のメッセージのグループが表示され、 .Ql \&\- が指定されると前の 18 個のメッセージのグループが表示されます。 .It Ic help .Ic \&? と同じです。 .It Ic hold .Pf ( Ic ho , もしくは .Ic preserve ) メッセージのリストを引数として取り、各メッセージを .Ar mbox ではなくユーザのシステムメールボックスにセーブするためのマークをつけ ます。 .Ic delete によってマークが付けられているメッセージにはマークはつけません。 .It Ic ignore .Ar ignored list にヘッダフィールドのリストを追加します。 ignore list (無視リスト) に登録されているヘッダフィールドは メッセージを表示する際にターミナルに表示されません。 このコマンドはマシンが生成するヘッダフィールドの表示を省略するのに非常 に便利です。 .Ic Type と .Ic Print コマンドを使うと表示の際に無視するフィールドも含めメッセージの全てを表 示することができます。 .Ic ignore が引数なしで実行されると現在の無視するフィールドのリストが表示されます。 .It Ic mail .Pq Ic m ログイン名と配布グループ名を引数として取り、メールをそれらの人々に送付 します。 .It Ic more .Pq Ic \mo メッセージのリストを引数として取り、そのリストに対してページャを起動し ます。 .It Ic mbox 終了時にあなたのホームディレクトリの .Ic mbox へ書き込むメッセージのリストを指定します。 .Ic hold オプションをセットして .Em いなければ 、これはメッセージに対するデフォルトの動作となります。 .It Ic next .Pq Ic n ( .Ic \&+ や .Tn CR と同様) 次のメッセージへ進み、それを表示します。 引数リストを指定すると、次にマッチするメッセージを表示します。 .It Ic preserve .Pq Ic pre .Ic hold と同様です。 .It Ic print .Pq Ic p メッセージリストを引数として取り、各メッセージをユーザのターミナルに表 示します。 .It Ic quit .Pq Ic q セッションを終了し、全ての未削除のまだセーブしていないメッセージをユー ザのホームディレクトリの .Ar mbox ファイルへセーブし、 .Ic hold か .Ic preserve でマークされたメッセージか参照されなかったメッセージはシステムメールボッ クスに残し、その他の全てのメッセージをシステムメールボックスから削除し ます。 もし新しいメールがセッション中に届いていたら、メッセージ .Dq Li "You have new mail" を表示します。 もしメールボックスのファイルを .Fl f フラグ付きで編集している途中であれば、編集中のファイルは再度書き込まれ ます。 編集中のファイルの再書き込みが失敗しなければシェルに戻ります。 編集中のファイルの再書き込みが失敗した場合、ユーザは .Ic exit コマンドによって抜け出すことができます。 .It Ic reply .Pq Ic r メッセージリストを引数として取り、メールを指定されたメッセージの差出人 と全ての受取人に送ります。 デフォルトのメッセージは削除されていてはいけません。 .It Ic respond .Ic reply と同様です。 .It Ic retain .Ar retained list (保持リスト) にヘッダフィールドのリストを追加します。 -メッセージを表示する時には、retain list に登録されているヘッダーフィー -ルドのみがターミナルに表示されます。 +メッセージを表示する時には、retain list に登録されているヘッダ +フィールドのみがターミナルに表示されます。 他の全てのフィールドは省略されます。 .Ic Type と .Ic Print コマンドを使うとメッセージの全てを表示することができます。 .Ic retain が引数を指定されずに実行されると、現在 retain list に登録されているフィー ルドのリストを表示します。 .It Ic save .Pq Ic s メッセージのリストとファイル名を引数として取り、各メッセージを順にファ イルの末尾に追加します。 ファイル名が引用符で囲まれて表示され、それに続いて行数と文字数がユーザ のターミナルにエコーされます。 .It Ic set .Pq Ic se 引数がない場合には全ての変数の値を表示します。 引数が指定された場合はオプションをセットします。 引数は .Ar option=value ( = の前後にはスペースは入りません) か .Ar option の形式を取ります。 空白やタブを代入式に含めるために引用符を代入文の どの部分にでも 置いてかまいません。例えば次のようになります。 .Dq Li "set indentprefix=\*q->\*q" .It Ic saveignore .Ic saveignore は .Ic ignore コマンドが .Ic print や .Ic type の際に行なうことを .Ic save の際に行なうものです。 これでマークされたヘッダフィールドは .Ic save コマンドによって保存される時や自動的に .Ar mbox へ保存される時にフィルタリングされて取り除かれます。 .It Ic saveretain .Ic saveretain は .Ic retain が .Ic print や .Ic type の際に行なうことを .Ic save の際におこなうものです。 .Ic save コマンドによって保存される時や自動的に .Ar mbox へ保存される時には、これでマークされたヘッダフィールドのみが保存されます。 .Ic saveretain は .Ic saveignore に優先します。 .It Ic shell .Pq Ic sh シェルを対話モード起動します。 .It Ic size メッセージのリストを引数として取り、各メッセージのサイズを文字数で表示 します。 .It Ic source .Ic source コマンドはファイルからコマンドを読み込みます。 .It Ic top メッセージのリストを引数として取り、各メッセージの先頭の数行を表示しま す。 表示する行数は変数 .Ic toplines によって制御でき、デフォルトでは 5 行となっています。 .It Ic type .Pq Ic t .Ic print と同様です。 .It Ic unalias .Ic alias コマンドによって定義された名前のリストを引数として取り、記憶されている ユーザのグループを無効にします。 グループの名前は以後意味を持たなくなります。 .It Ic undelete .Pq Ic u メッセージのリストを引数として取り、各メッセージを削除されて .Ic いない ものとしてマークします。 .It Ic unread .Pq Ic U メッセージのリストを引数として取り、各メッセージを .Ic 未読 としてマークします。 .It Ic unset オプションの名前のリストを引数として取り、それらの記憶されている値を無 効とします。 .Ic set の逆です。 .It Ic visual .Pq Ic v メッセージのリストを引数として取り、各メッセージについてスクリーンエディ タを起動します。 .It Ic write .Pq Ic w .Ic save と同様ですが、 .Pq Ar ヘッダを除いて メッセージの本文 .Ic のみ が保存されます。 メッセージシステムを使ってソースプログラムテキストを送受信するような作 業で非常に便利です。 .It Ic xit .Pq Ic x .Ic exit と同様です。 .It Ic z .Nm mail は .Ic headers コマンドにて説明されているようにウィンドウいっぱいにメッセージヘッダを 表示します。 .Nm mail が指し示しているメッセージの位置は .Ic \&z コマンドによって次のウィンドウに進めることができます。 また、 .Ic \&z\&\- コマンドを使って前のウィンドウに戻ることもできます。 .El .Ss チルダ/エスケープ .Pp ここではチルダエスケープを要約します。 チルダエスケープはメッセージを編集している時に特別の機能を実行するため に使われます。 チルダエスケープは行の先頭でのみ認識されます。 実際のエスケープ文字は .Ic escape オプションによってセットできるので、 .Dq Em チルダエスケープ という呼び方は多少間違ったものです。 .Bl -tag -width Ds .It Ic \&~! Ns Ar command 指定されたシェルコマンドを実行し、メッセージに戻ります。 .It Ic \&~b Ns Ar name ... カーボンコピーの受取人のリストへ指定された name を追加します。 ただし name は Cc: 行へは表示されません ("ブラインド" カーボ ンコピー)。 .It Ic \&~c Ns Ar name ... 指定された name をカーボンコピーの受取人のリストに追加します。 .It Ic \&~d ホームディレクトリの .Dq Pa dead.letter ファイルをメッセージ中に読み込みます。 .It Ic \&~e 今までに編集したメッセージをテキストエディタで開きます。 編集セッションの終了後、メッセージに続けてテキストを追加することができ ます。 .It Ic \&~f Ns Ar messages 指定されたメッセージを送ろうとしているメッセージ中に読み込みます。 メッセージが指定されない場合は、現在のメッセージを読み込みます。 現在無視されているメッセージヘッダ ( .Ic ignore か .Ic retain コマンドによる) は読み込まれません。 .It Ic \&~F Ns Ar messages .Ic \&~f と同様ですが、全てのメッセージヘッダが含まれます。 .It Ic \&~h メッセージヘッダを順に各々を入力して編集し、テキストを末尾に追加したり、 現在のターミナルの erase 文字や kill 文字を使ってフィールドを変更した りします。 .It Ic \&~m Ns Ar messages 指定されたメッセージを現在送ろうとしているメッセージの中に読み込み、タ ブか .Ar indentprefix に設定されている値でインデントします。 メッセージが指定されていない場合は現在のメッセージが読み込まれます。 現在無視されているメッセージヘッダ ( .Ic ignore か .Ic retain コマンドによる) は読み込まれません。 .It Ic \&~M Ns Ar messages .Ic \&~m と同様ですが、全てのメッセージヘッダが読み込まれます。 .It Ic \&~p 今までに修正したメッセージをメッセージヘッダフィールドと共に表示します。 .It Ic \&~q 送ろうとしているメッセージを中断し、 .Ic save がセットされている場合はホームディレクトリの .Dq Pa dead.letter にメッセージをセーブします。 .It Ic \&~r Ns Ar filename 指定されたファイルをメッセージに読み込みます。 .It Ic \&~R Ns Ar string .Ar string を Reply-To: フィールドとして使用します。 .It Ic \&~s Ns Ar string 指定された文字列を現在のサブジェクトフィールドに設定します。 .It Ic \&~\&t Ns Ar name ... 指定された名前を受取人のリストに追加します。 .It Ic \&~\&v 別のエディタ ( .Ev VISUAL オプションによって定義されているもの) で現在までに修正したメッセージを 開きます。 通常は別のエディタはスクリーンエディタとなります。 エディタを終了した後、メッセージの末尾にテキストを追加できるようになり ます。 .It Ic \&~w Ns Ar filename 指定されたファイルにメッセージを書き込みます。 .It Ic \&~\&| Ns Ar command 指定されたコマンドをフィルタとし、パイプを通してメッセージに適用します。 コマンドから何の出力もないか、コマンドが異常終了した場合は、メッセージ のテキストは元のままとなります。 メッセージを整形するためによく .Xr fmt 1 コマンドが .Ic command として使われます。 .It Ic \&~: Ns Ar mail-command 指定されたメールコマンドを実行します。 しかし全てのコマンドが使えるわけではありません。 .It Ic \&~~ Ns Ar string メッセージに単独の ~ で始まるテキスト文字列を挿入します。 エスケープ文字が変更されている場合は、それを送るためにはエスケープ文字 を 2 つ指定しなければなりません。 .El .Ss メールオプション オプションは .Ic set と .Ic unset コマンドで制御します。 オプションは 2 値か文字列となります。 2 値の場合はセットされているか、されていないかだけが意味を持ちます。 文字列の場合は実際にセットしている値が意味を持ちます。 2 値のオプションには次のものがあります。 .Bl -tag -width append .It Ar append メッセージを .Ar mbox にセーブする場合、先頭に書くのではなく、末尾に追加します。 これは常にセットされていなければなりません (システムの .Pa mail.rc ファイルにおいて設定することが望ましいです)。 .It Ar ask .Nm mail は送ろうとしている各メッセージのサブジェクトの入力を促します。 改行のみを入力するとサブジェクトフィールドは送られません。 .It Ar askcc 各メッセージの編集後に追加のカーボンコピーの受取人の入力を促します。 現在のリストで十分な場合は改行のみを入力してください。 .It Ar autoprint .Ic delete コマンドを .Ic dp のように動作させます。 すなわちメッセージの削除後、次のものが自動的に表示されます。 .It Ar debug 2 値のオプション .Ar debug をセットするとコマンド行で .Fl d を指定した時と同じ動作になり、 .Nm mail はデバッグに有用な全ての種類の情報を出力します。 .It Ar dot 2 値のオプション .Ar dot をセットすることによって、 .Nm mail は行中にピリオドが単独で入力されると、送ろうとしているメッセージが終了した ものとみなします。 .It Ar hold このオプションはデフォルトでメッセージをシステムメールボックス中に保持 するために使われます。 .It Ar ignore ターミナルからの割り込み信号を無視し、@ としてエコーします。 .It Ar ignoreeof .Ar ignoreeof は .Ar dot に関連するオプションであり、 .Nm mail にメッセージの最後での control-d を無視させます。 .Ar Ignoreeof は .Nm mail のコマンドモード中でも有効となります。 .It Ar metoo 通常、差出人を含むグループの展開時には差出人は取り除かれます。 このオプションをセットすることによって差出人も展開されたグループに含ま れるようになります。 .It Ar noheader .Ar noheader オプションをセットすると、コマンド行で .Fl N フラグを指定するのと同様の動作となります。 .It Ar nosave 普通は .Tn RUBOUT (erase もしくは delete) を 2 回入力してメッセージの編集を中断する時、 .Nm mail はホームディレクトリのファイル .Dq Pa dead.letter に中断した手紙をコピーします。 この 2 値のオプション .Ar nosave をセットすると、ファイルへのコピーは行なわれません。 .It Ar Replyall .Ic reply コマンドと .Ic Reply コマンドの意味を逆転させます。 .It Ar quiet 最初に起動された時にバージョンの表示を省略します。 .It Ar searchheaders このオプションがセットされていると、``/x:y'' の形式でのメッセージリス トの指定はヘッダフィールド ``x'' 中にサブストリング ``y'' を含む全ての メッセージに展開されます。ストリングのサーチは大文字と小文字を区別しま せん。 .It Ar verbose .Ar verbose オプションをセットするとコマンド行で .Fl v フラグをセットした時と同様の動作となります。 .Nm mail が verbose (饒舌) モードで実行されている時、実際のメッセージの配送の様 子がターミナルに表示されます。 .El .Ss オプションストリング値 .Bl -tag -width Va .It Ev EDITOR .Ic edit コマンドと .Ic \&~e エスケープで使われるテキストエディタのパス名です。 定義されていない場合はデフォルトのエディタが使われます。 .It Ev LISTER .Ic folders コマンドで使われるディレクトリをリストするコマンドのパス名です。 デフォルトは .Pa /bin/ls です。 .It Ev PAGER .Ic more コマンドや変数 .Ic crt がセットされている時に使われるプログラムのパス名です。 このオプションが定義されていないとデフォルトのページャ .Xr more 1 が使われます。 .It Ev REPLYTO 設定されている場合、送信メッセージの Reply-To フィールドの初期化に使用 されます。 .It Ev SHELL .Ic \&! コマンドや .Ic \&~! エスケープで使われるシェルのパス名です。 このオプションが定義されていないとデフォルトのシェルが使われます。 .It Ev VISUAL .Ic visual コマンドや .Ic \&~v エスケープで使われるテキストエディタのパス名です。 .It Va crt 値をとるオプション .Va crt は、メッセージを読むために .Ev PAGER が使われるメッセージの長さの閾値として使われます。 .Va crt が値なしでセットされていると、システムに保存されているターミナルの画面 の高さが閾値の計算に使われます ( .Xr stty 1 を参照して下さい)。 .It Ar escape これが定義されていると、このオプションの最初のキャラクタがエスケープを 示すための ~ の代わりに使われます。 .It Ar folder メッセージのフォルダを置くためのディレクトリ名です。 これが `/' で始まっていると .Nm mail は絶対パスとして解釈します。それ以外の場合はフォルダのディレクトリはホー ムディレクトリからの相対パスとして扱われます。 .It Ev MBOX .Ar mbox の名前です。 これはフォルダの名前とすることもできます。 デフォルトはホームディレクトリの .Dq Li mbox となります。 .It Ar record これが定義されていると、全ての発信されるメールを記録するために使われる ファイルのパス名となります。 定義されていない場合は、発信メールはセーブされません。 .It Ar indentprefix チルダエスケープ ``~m'' で、通常のタブ文字 (^I) の代わりにメッセージを インデントするために使われる文字列となります。 これにスペースやタブが含まれている場合は引用符で囲んで下さい。 .It Ar toplines これが定義されていると、 .Ic top コマンドで表示するメッセージの行数となります。通常は先頭の 5 行が表示 されます。 .El .Sh 環境変数 .Nm mail は環境変数 .Ev HOME と .Ev USER を使用します。また、環境変数 .Ev MAIL がセットされていると、デフォルトの /var/mail の代わりにユーザのメール ボックスの位置として使われます。 .Sh 関連ファイル .Bl -tag -width /usr/share/misc/mail.*help -compact .It Pa /var/mail/* ポストオフィスです。 .It ~/mbox ユーザの古いメールです。 .It ~/.mailrc 起動時に実行されるメールコマンドを指定するファイルです。 .It Pa /tmp/R* 一時ファイルです。 .It Pa /usr/share/misc/mail.*help ヘルプファイルです。 .sp .It Pa /usr/share/misc/mail.rc .It Pa /usr/local/etc/mail.rc .It Pa /etc/mail.rc システムの初期化ファイルです。 各ファイルが存在すればこの順に読み込まれます。 .El .Sh 関連項目 .Xr fmt 1 , .Xr newaliases 1 , .Xr vacation 1 , .Xr aliases 5 , .Xr mailaddr 7 , .Xr sendmail 8 , .Rs .%T "The Mail Reference Manual" . .Re .Sh 歴史 .Nm コマンドは .At v1 で登場しました。 本マニュアルページは 元々 Kurt Shoens によって書かれた .%T "The Mail Reference Manual" をベースにしています。 .Sh バグ ここに文書化されていないフラグがいくつか存在します。 ほとんどは一般のユーザには役に立たないものです。 .Pp 混乱しやすいのですが、通常 .Nm mail は .Nm Mail への単なるリンクとなっています。 diff --git a/ja/man/man1/more.1 b/ja/man/man1/more.1 index 9716d16543..f1f79d322c 100644 --- a/ja/man/man1/more.1 +++ b/ja/man/man1/more.1 @@ -1,309 +1,310 @@ .\" Copyright (c) 1988, 1990 The Regents of the University of California. .\" Copyright (c) 1988 Mark Nudleman .\" 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. .\" .\" from: @(#)more.1 5.15 (Berkeley) 7/29/91 +.\" +.\" Original Revision: 1.7.2.2 .\" jpman %Id: more.1,v 1.4 1997/08/11 14:30:57 horikawa Stab % -.\" %Id: more.1,v 1.5 1994/01/11 18:22:48 jtc Exp % .\" .Dd April 18, 1994 .Dt MORE 1 .Os .Sh 名称 .Nm more .Nd CRT 上でファイルをページ単位に閲覧する .Sh 書式 .Nm .Op Fl ceinsu .Op Fl t Ar tag .Op Fl x Ar tabs .Op Fl / Ar pattern .Op Ar .Sh 解説 .Nm -は、画面上に一度に表示できる量の行数を 1 ページの行数とみなし、 +は、画面上に 1 度に表示できる量の行数を 1 ページの行数とみなし、 .Ar file が指定されていれば そのファイルを、指定されていないか ``-'' の場合は、標準入力 (標準入力が 端末の場合は、何もせずに終了します) を読み込んで、1 ページ分表示する毎に キー入力を待つようにします。 .Pp さまざまな端末に対応するため、 .Xr termcap 3 を使用します。また、制限はありますが、ハードコピー形式の端末も サポートしています。ハードコピー端末では、画面の上端に対応する位置に ``^'' が印刷されます。 .Sh オプション オプションとしては以下のものがあります。なお、これらのオプションは、 あらかじめ環境変数 .Ev MORE -で指定しておくことができます(``-'' をつけること)。 +で指定しておくことができます (``-'' をつけること)。 コマンドラインオプションでオーバーライドします。 .Bl -tag -width flag .It Fl c 通常、 .Nm は次のページを表示する時、現在表示されている画面を 1 行づつ スクロールしていって新しいページを表示していきますが、 このオプションを指定した場合、画面の上端から書き替えます。 .It Fl e 通常 .Nm は、ファイルの最後に達し次に表示すべきファイルがない 場合には終了しますが、このオプションを指定した場合にはファイルの最後に 達した時点でキー入力待ちになります。このオプションは、最後まで見た後、 前のページに遡って見たい場合に便利です。 .\"ただし、元々ファイルが小さく、最初の 1 ページに納まっている場合は、 .\"すぐ終了します。 .\"(訳中)原文で内容が削られていますが、とりあえずコメントで残します。 .\" 2.2.1R 対象(1997/05/06) Takeshi MUTOH .It Fl i サーチするとき、大文字と小文字を区別しないようにします。 .It Fl n 行番号の処理をしないようにします。デフォルトで、 .Xr more は、 .Cm = コマンドを使用した行情報の表示や、 .Cm v コマンドでエディタを起動して現在見ている行にジャンプさせるために、 行番号を内部で管理しています。しかし、この処理のために動作が 遅くなっており、これは、大きなファイルを扱う場合、特に顕著です。 このオプションを指定して行番号を使用しないことを 明示すれば、速度の低下を回避することができます。 .It Fl s 複数の空行が連続している場合、空行を 1 行にします。 .It Fl t Ar tag タグ情報を含むファイル ``tags'' から、tag で指定されたエントリを検索し、 対応するファイルの指定位置から表示を開始します。 タグファイル ``tags'' については、 .Xr ctags 1 を参照してください。 .It Fl u デフォルトでは、 .Nm は .Dv BS や .Dv CR-LF などのシーケンスを特別に処理します。 .Dv BS とアンダースコア文字があった場合は、文字にアンダーラインをつけて 表示しますし、2 つの同じ文字の間にBSがあったら、強調表示にします。 .Dv CR-LF は、1 つの改行にします。 このオプションは、これらの処理をやめ、 .Dv BS は ``^H'' に、 .Dv CR-LF は ``^M'' と改行にします。 .It Fl x タブ幅を .Ar N 文字にします。デフォルトでは 8 です。 .It Fl / .Ar pattern で指定した検索を実行し、見つかった位置から表示します。 .El .Pp .Sh コマンド .Nm は、1 ページ表示する毎に、キーボードから各種のコマンドを受け付けます。 コマンドは、 .Xr vi 1 のコマンド体系をベースにしたものです。 以下の説明で、``^''は``Control''キーを押しながら入力するキーの意味です。 また、コマンドのキーを押す前に数字を入力することで、そのコマンドに 対する引数を与えることができます。これは、説明のなかで``N''として 記述しています。 .Bl -tag -width Ic .It Ic h コマンドのヘルプを表示します。もし他の全てのコマンドを忘れても、 このコマンドは覚えておいてください。 .It Xo .Ic q .No or .Ic \&:q .No or .Ic ZZ .Xc .Nm を終了します。 .It Xo .Ic SPACE .No or .Ic f .No or .Ic \&^F .Xc 引数を指定しなかった場合は、1 ページ分スクロールします。 引数を指定した場合は、N 行分スクロールします。 .It Ic b No or Ic \&^B -テキストを 1 ページ分前にスクロールします(-zオプション参照)。 +テキストを 1 ページ分前にスクロールします (-z オプション参照)。 引数を指定した場合は、N 行分前にスクロールします。 .It Ic j No or Ic RETURN 1 行だけスクロールします。引数を指定した場合は、 N 行分スクロールします。 .It Ic k 1 行だけ前に戻るようにスクロールします。引数を指定 -した場合は、N行分戻ります。 +した場合は、N 行分戻ります。 .It Ic d No or Ic \&^D 画面の半分の行数を単位としてスクロールします。引数を 指定した場合は N 行分スクロールします。指定後は、この ``d'' コマンド および次の ``u'' コマンドでは、引数を指定しないでも半画面ではなく、 ここで指定した N 行単位でスクロールするようになります。 .It Ic u No or Ic \&^U 画面の半分の行数を単位として前の画面にスクロールします。 引数を指定した場合は、N 行分スクロールし、以後、N 行単位で スクロールするようになります。 .It Ic g ファイルの N 行目から表示します。引数を指定しなかった場合は、 ファイル先頭から表示します。 .It Ic G ファイルの N 行目から表示します。引数を指定しなかった場合は、 ファイルの最後から表示します。 .It Ic p No or Ic \&% ファイルの N パーセント目から表示します。 N は 0 から 100 までです。 file で指定したファイルの場合では、標準入力を読み込んで 表示するようにしている場合は、ファイルエンドに達してからでないと、 このコマンドは使用できません。 これは速いのですが、いつも有効とは限りません。 .It Ic r No or Ic \&^L 画面を表示し直します。 .It Ic R バッファに入っている入力を捨て、再読み込みして同じ行番号に当たる所から 画面を表示し直します。これは、表示を見ている間にファイルが 変更されたような場合に有効です。 .It Ic m 行マークをするコマンドです。``m'' を押すと、画 面下に ``mark: '' と表示されるので、a から z までの英小文字を使ってマークの 指定をすることができます。これで、現在の表示行がその文字にマーク されます。次の `` ' '' コマンドによって、ここでマークした行に ジャンプさせることができます。 .It Ic \&' m コマンドでマークした行にジャンプするコマンドで す。画面下に ``goto mark: '' と表示されますので、m コマンドで マークした a から z までの英小文字を入力すれば、 その行にジャンプできます。 なお、a から z のかわりに再度 `` ' '' を 入力すると、その前に大きく移動した位置に戻ります。この場合の大きな移動とは、 `` ' ''コマンドによる移動や、``g'' コマンドでのファイル先頭に移動することを 指します。 このあと、`` '' ''と入力すると、移動前の位置に戻ることができます。 全てのマークは、新しいファイルを読み込んだ時に失われます。 .It Ic \&/ Ns Ar pattern -現在行 (画面の一番上に表示されている行) の次の +現在行 (画面の 1 番上に表示されている行) の次の 行からファイルの末端に向かって、pattern で指定した検索を実行し、 一致した行から表示します。引数が指定された場合は、検索を繰り返し -実行し、N回目に一致した行からの表示になります。pattern には、 +実行し、N 回目に一致した行からの表示になります。pattern には、 .Xr re_format 7 で解説されているPOSIX.2 .Dq extended format 正規表現が使用できます。 .It Ic \&? Ns Ar pattern -現在行 (画面の一番上に表示されている行) の直前から +現在行 (画面の 1 番上に表示されている行) の直前から ファイルの先頭に向かって、 .Ar pattern で指定した検索を実行します。 .It Ic \&/\&! Ns Ar pattern .Ar pattern に一致しない行を検索する以外は ``/'' と同じです。 .It Ic \&?\&! Ns Ar pattern .Ar pattern に一致しない行を検索する以外は ``?'' と同じです。 .It Ic n 直前に実行した検索コマンドを再実行します。 .It Ic E Ns Op Ar filename コマンドラインのファイルリストの中から現在表示しているファイル -(N,Pコマンド参照)にかわって、 +(N, Pコマンド参照) にかわって、 filename で指定したファイルを表示対象にします。 ファイルが見つからない場合は、現在のファイルを再度表示します。 -ファイル名が"#"なら、一つ前に読み込んだファイルを再度表示します。 +ファイル名が "#" なら、1 つ前に読み込んだファイルを再度表示します。 .It Ic N No or Ic \&:n コマンドラインから file として複数のファイルを指 定して起動した場合に、現在表示しているファイルの次のファイルに表示を 切り替えます。引数を指定した場合は、N 個先のファイルになります。 .It Ic P No or Ic \&:p コマンドラインから file として複数のファイルを指 定して起動した場合に、現在表示しているファイルの 1 つ前のファイルに 表示を切り替えます。引数を指定した場合は、N 個前のファイルになります。 .It Ic \&:t タグエントリの入力をします。 ``:t'' を押すと、画面下に ``Tag: '' と表示されるので、新しいタグエントリの 入力をします。 対応するタグエントリが見つからなかった場合は、その旨を表示して、 前のファイルを表示します。 .It Ic v 現在表示しているファイルを編集対象にして、エディタを起動します。 エディタはデフォルトでは .Xr vi 1 が起動されるようになっていますが、 環境変数 .Ev EDITOR が指定されていた場合には、そこで指定したエディタが起動されます。 .It Ic \&= No or Ic \&^G 現在表示しているファイルについて、画面の最下行がファイル全体の 何行目にあたるか、また、ファイルの総バイト数に対する現在行の バイト数とそのパーセンテージを表示します。 .Nm が標準入力から読み込んでいるか、ファイルが一画面より短い場合は、 いくつかの情報は有効ではありません。これらの情報は、画面の最下行の最初の 1 バイトによって得られる事を覚えておいてください。 .El .Sh 環境変数 .Bl -tag -width Fl .It Ev MORE コマンドラインで指定するかわりに、あらかじめよく使うオプションを 設定しておくことができます。 .It Ev EDITOR 起動するエディタを指定します。 .It Ev SHELL 起動するシェルを指定します。通常、この変数はログイン時 にシェルが自分でセットします。 .It Ev TERM 端末のタイプを指定します。 .El .Sh 関連項目 .Xr ctags 1 , .Xr vi 1 .Sh バグ 長い行を含むファイルの読み込みは、遅いです。 .Pp CRLF で終端された 80 文字の行は、余計な改行を生じさせます。 .Sh 作者 このソフトウェアは .An Mark Nudleman によって Berkeley に寄贈されました。 .Sh 歴史 .Nm コマンドは .Bx 3.0 から登場しました。 diff --git a/ja/man/man1/netstat.1 b/ja/man/man1/netstat.1 index de4d1f61f1..35198e0aae 100644 --- a/ja/man/man1/netstat.1 +++ b/ja/man/man1/netstat.1 @@ -1,306 +1,307 @@ .\" Copyright (c) 1983, 1990, 1992, 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. .\" .\" from: @(#)netstat.1 8.8 (Berkeley) 4/18/94 +.\" +.\" Original Revision: 1.11.2.1 .\" jpman %Id: netstat.1,v 1.4 1997/10/11 07:45:56 horikawa Stab % -.\" %Id: netstat.1,v 1.6.2.1 1994/08/06 06:32:37 mycroft Exp % .\" .Dd April 18, 1994 .Dt NETSTAT 1 .Os BSD 4.2 .Sh 名称 .Nm netstat .Nd ネットワークの状態を表示する .Sh 書式 .Nm netstat .Op Fl Aan .Op Fl f Ar address_family .Op Fl M Ar core .Op Fl N Ar system .Nm netstat .Op Fl bdghimnrs .Op Fl f Ar address_family .Op Fl M Ar core .Op Fl N Ar system .Nm netstat .Op Fl bdn .Op Fl I Ar interface .Op Fl M Ar core .Op Fl N Ar system .Op Fl w Ar wait .Nm netstat .Op Fl p Ar protocol .Op Fl M Ar core .Op Fl N Ar system .Sh 解説 .Nm netstat コマンドは、ネットワークに関連したさまざまな情報を、シンボル表示を 交えてわかりやすく表示します。 出力の形式は指定オプションによって何種類かにわかれます。 -第1の形式は、プロトコルごとのアクティブソケットの一覧です。 -第2の形式は、選択したオプションによる、他のネットワークのデータ構造です。 -第3の形式は、コンフィギュレーションされているネットワークインタフェースの +第 1 の形式は、プロトコルごとのアクティブソケットの一覧です。 +第 2 の形式は、選択したオプションによる、他のネットワークのデータ構造です。 +第 3 の形式は、コンフィギュレーションされているネットワークインタフェースの パケットトラフィックを .Ar wait で指定したインターバル毎に継続して表示します。 -第4の形式は、指定したプロトコルに関する統計情報を表示します。 +第 4 の形式は、指定したプロトコルに関する統計情報を表示します。 .Pp 本コマンドでは、以下のオプションを指定可能です。 .Bl -tag -width flag .It Fl A デフォルトの表示では、ソケットと関係したすべてのプロトコル制御ブロックの アドレスが表示されます。通常これらはデバッグに用いられます。 .It Fl a デフォルトの表示では、すべてのソケットの状態が表示されます。通常 は、サーバプロセスで利用されているソケットは表示されません。 .It Fl b 本オプションをネットワークインタフェース表示 (後述の .Fl i -オプション)と併用した場合には、入力、出力したバイト数を表示します。 +オプション) と併用した場合には、入力、出力したバイト数を表示します。 .It Fl d -本オプションをネットワークインタフェース表示( +本オプションをネットワークインタフェース表示 ( .Fl i オプション、もしくは後述のインターバルオプション) と併用した場合には、欠落したパケット数を併せて表示します。 .It Fl f Ar address_family 表示する統計情報あるいはアドレス制御ブロック情報を .Ar address family の指定に合致するアドレスファミリのものに限定します。 アドレスファミリについては、 .Ar inet が .Dv AF_INET -(インターネットプロトコルファミリ)として、 +(インターネットプロトコルファミリ) として、 .Ar ipx が .Dv AF_IPX として、 .Ar atalk が .Dv AF_APPLETALK (ddp) -(アップルトークプロトコル)として、 +(アップルトークプロトコル) として、 .\".Ar ns .\"が .\".Dv AF_NS -.\"(XEROX NSプロトコルファミリ)として、 +.\"(XEROX NS プロトコルファミリ) として、 .\".Ar iso .\"が .\".Dv AF_ISO -.\"(ISOプロトコルファミリ)として、そして +.\"(ISO プロトコルファミリ) として、そして .Ar unix が .Dv AF_UNIX -(UNIXドメインプロトコルファミリ)として解釈されます。 +(UNIX ドメインプロトコルファミリ) として解釈されます。 .It Fl g -マルチキャスト(グループアドレス)ルーティングに関連した情報を表示します。 +マルチキャスト (グループアドレス) ルーティングに関連した情報を表示します。 デフォルトでは、IPマルチキャスト仮想インタフェースおよびルーティング テーブルについて表示します。 .Fl s オプションが同時に指定された場合、マルチキャストルーティングについての 統計情報も表示します。 .It Fl h .Tn IMP -ホストテーブルの状態を表示します(時代遅れ)。 +ホストテーブルの状態を表示します (時代遅れ)。 .It Fl I Ar interface 指定したインタフェースについての情報を表示します。本オプションは、 インターバルオプション .Ar wait と同時に指定し て使われます。このインターバルオプションについての詳細は後述します。 .It Fl i 自動コンフィギュレーションされているネットワークインタフェースの状態 -を表示します(静的にシステムにコンフィギュレーションされているインタ -フェースについて表示しますが、ブート時にコンフィギュレーションされて +を表示します (静的にシステムにコンフィギュレーションされている +インタフェースについて表示しますが、ブート時にコンフィギュレーションされて いないものについては表示しません)。 .Fl a オプションが同時に指定されている場合には、各イーサネットインタフェース -および各IPインタフェースアドレス +および各 IP インタフェースアドレス について、現在使用されているマルチキャストアドレスが表示 されます。マルチキャストアドレスは、 各々対応するインタフェースアドレスに続いて表示 されます。 .It Fl M デフォルトで使用される .Pa /dev/kmem の代わりに指定した core から、ネームリストに関連する各値を 取り出します。 .It Fl m メモリ管理ルーチンによって記録されているメモリ使用の統計情報を表 示します。 (ネットワーク管理システムは、独自にメモリバッファを確保しています)。 .It Fl N .Pa /kernel のかわりに、指定したカーネルモジュールからネームリストを取り出します。 .It Fl n -ネットワークアドレスを数字で表示します(通常、 +ネットワークアドレスを数字で表示します (通常、 .Nm netstat コマンドは、IPアドレスを可能な限りホスト名などのシンボリックなものに置 き換えようとします)。 本オプションは、どのような表示形式の場合にも使用できます。 .It Fl p Ar protocol .Ar protocol で指定したプロトコルについての統計情報を表示します。 プロトコルとしては、よく知られている名称、もしくは別名定義されている名称 を指定します。プロトコルのいくつかは .Pa /etc/protocols の中で定義されています。 特別なプロトコル名 ``bdg'' は、ブリッジの状態を表示するために使用します。 プロトコルについて情報が表示されない場合は、通常、 報告すべき有意な数値がないことを意味します。 .Ar protocol で指定したプロトコルが未知のものである場合、もしくはそのプロトコルの統 計情報記録ルーチンがない場合には、プログラムはその旨メッセージを出しま す。 .It Fl s プロトコルごとの統計情報を表示します。 -このオプションが複数指定された場合、カウンタの値がゼロのものは +このオプションが複数指定された場合、カウンタの値が 0 のものは 表示が抑制されます。 .It Fl r ルーティングテーブルを表示します。 .Fl s オプションが同時に指定された場合には、ルーティングの統計情報について 表示します。 .It Fl w Ar wait ネットワークインタフェースの統計情報について、 .Ar wait で指定した秒ごとに定期的に表示します。 .El .Pp -デフォルトのアクティブソケット表示では、ローカルおよびリモートアドレス、送 -受信キューのサイズ(バイト単位)、プロトコル、そしてプロトコルの内部状態が +デフォルトのアクティブソケット表示では、ローカルおよびリモートアドレス、 +送受信キューのサイズ(バイト単位)、プロトコル、そしてプロトコルの内部状態が それぞれ表示されます。 -アドレス形式については、``host.port''もしくは、ソケットのアドレスが -ネットワーク単位でしか特定できない場合には``network.port''という形式が採用 +アドレス形式については、``host.port'' もしくは、ソケットのアドレスが +ネットワーク単位でしか特定できない場合には ``network.port'' という形式が採用 されます。 ホストもしくはネットワークアドレスがデータベース .Pa /etc/hosts や .Pa /etc/networks の内容にしたがって変換可能である場合、各アドレスは名前で 表示されます。このような変換が不可能な場合、もしくは .Fl n オプションが指定された場合には、アドレスはアドレスファミリに従って 数値で表示されます。 インターネットアドレスの形式についてさらに知りたい場合には、 .Xr inet 3 を参照して下さい。 特にアドレスが指定されてない場合や、アドレスがワイルドカード 指定されている場合には、その部分のアドレスやポート番号のところには ``*'' が表示されます。 .Pp インタフェース表示では、パケット転送、エラー、コリジョンに関する 累積情報を見ることができます。また、インタフェースの -ネットワークアドレスおよび最大転送可能ユニットサイズ(``mtu'')も +ネットワークアドレスおよび最大転送可能ユニットサイズ (``mtu'') も 見ることができます。 .Pp ルーティングテーブル表示では、利用可能な経路とその状態が表示 されます。各経路は、到達先ホストもしくはネットワークと、 -パケットの転送(forward)に使用されるゲートウェイから成ります。 +パケットの転送 (forward) に使用されるゲートウェイから成ります。 フラグフィールドは、 ルーティングに関する状態の集合が表示されます。フラグフィールドの 各フラグについては、 .Xr route 8 および .Xr route 4 を参照して下さい。 表示される文字とフラグの間の対応は以下の通りです。 .Bl -column XXXX RTF_BLACKHOLE -1 RTF_PROTO1 ルーティングフラグ#1にて特定されるプロトコル -2 RTF_PROTO2 ルーティングフラグ#2にて特定されるプロトコル -3 RTF_PROTO3 ルーティングフラグ#3にて特定されるプロトコル +1 RTF_PROTO1 ルーティングフラグ #1 にて特定されるプロトコル +2 RTF_PROTO2 ルーティングフラグ #2 にて特定されるプロトコル +3 RTF_PROTO3 ルーティングフラグ #3 にて特定されるプロトコル B RTF_BLACKHOLE 破棄されるパケット b RTF_BROADCAST ブロードキャストアドレスを表現する経路 C RTF_CLONING 新しい経路を生成する c RTF_PRCLONING 使用時に、プロトコル専用の新しい経路を生成する -D RTF_DYNAMIC (リダイレクトによって)動的に生成される +D RTF_DYNAMIC (リダイレクトによって) 動的に生成される G RTF_GATEWAY ゲートウェイ等による中継を必要としている到達先 -H RTF_HOST ホストエントリ(これ以外はネットワーク) +H RTF_HOST ホストエントリ (これ以外はネットワーク) L RTF_LLINFO アドレス変換を連動させられる正当なアドレス -M RTF_MODIFIED (リダイレクトによって)動的に変更される +M RTF_MODIFIED (リダイレクトによって) 動的に変更される R RTF_REJECT 到達不可能なホストもしくはネットワーク S RTF_STATIC 手動で追加された U RTF_UP 使用可能経路 W RTF_WASCLONED クローンした結果として作成された経路 -X RTF_XRESOLVE 外部のdaemonがプロトコルからリンクアドレス変換を行なう +X RTF_XRESOLVE 外部の daemon がプロトコルからリンクアドレス変換を行なう .El .Pp 直接到達可能な経路は、ローカルホストにアタッチされた各インタフェースごとに 生成されます。このようなエントリのゲートウェイフィールドは、 対外インタフェースのアドレスを表します。 -refcntフィールドは、使用されている経路の現在数を示します。 +refcnt フィールドは、使用されている経路の現在数を示します。 コネクション指向のプロトコルは、通常、コネクションの間じゅう 単一の経路を保持します。 他方で、コネクションレス型のプロトコルは、同じ到達先に対して パケットを送る場合にも、新たに経路を確保します。 -useフィールドは、その経路を通って送られたパケット数を表示します。 +use フィールドは、その経路を通って送られたパケット数を表示します。 インタフェースエントリは、その経路用に用いられる ネットワークインタフェースを表示します。 .Pp .Nm netstat が .Fl w オプションと .Ar wait インターバル引数を与えられて起動された場合、ネットワークインタフェースに 関連した統計情報を定期的に表示します。 -ほとんど使われませんが、オプション指定なしで数字だけをnetstatの引数と +ほとんど使われませんが、オプション指定なしで数字だけを netstat の引数と して指定することもでき、本オプションと同様の動作をさせることができます。 しかし、この使い方は過去との互換性のためにのみ存在します。 デフォルトでは、本表示は すべてのインタフェースについてのサマリ情報からなります。 .Fl I オプションを用いることで、特定の インタフェースの情報を表示させることが可能です。 .Sh 関連項目 .Xr nfsstat 1 , .Xr ps 1 , .Xr hosts 5 , .Xr networks 5 , .Xr protocols 5 , .Xr services 5 , .Xr iostat 8 , .Xr trpt 8 , .Xr vmstat 8 .Sh 歴史 .Nm netstat コマンドは、 .Bx 4.2 にはじめて登場しました。 .\" .Sh 関連ファイル .\" .Bl -tag -width /dev/kmem -compact .\" .It Pa /netbsd .\" default kernel namelist .\" .It Pa /dev/kmem .\" default memory file .\" .El .Sh バグ エラーの概念については、定義が間違っています。 diff --git a/ja/man/man1/objformat.1 b/ja/man/man1/objformat.1 index 4ff26d9832..edb631fe0c 100644 --- a/ja/man/man1/objformat.1 +++ b/ja/man/man1/objformat.1 @@ -1,101 +1,102 @@ .\" .\" Copyright (c) 1998 David E. O'Brien .\" .\" 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 DEVELOPERS ``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 DEVELOPERS 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. .\" -.\" %Id: objformat.1,v 1.1 1998/10/25 13:25:42 obrien Exp % +.\" %Id: objformat.1,v 1.1.2.1 1999/06/15 19:21:17 mpp Exp % +.\" .\" jpman %Id: objformat.1,v 1.3 1999/02/01 13:15:56 kuma Stab % .\" .Dd October 25, 1998 .Os .Dt OBJFORMAT 1 .Sh 名称 .Nm objformat .Nd デフォルトのバイナリ形式を報告し、その形式用プログラムを実行する .Sh 書式 .Nm objformat .Nm prog .Sh 解説 .Nm として実行された時には、デフォルトのオブジェクトファイル形式を報告しま す。オブジェクトファイル形式は、 -.Ar a.out +.Ar aout と -.Ar ELF +.Ar elf の 2 種類です。 .Pp 他の名称で実行された時には、 .Nm prog は .Pa /usr/libexec//prog と展開されて、起動されます。 .Sh 診断 引数の数が不適切であったり、 .Nm prog を起動できなかった場合には、 .Nm ユーティリティは終了コード 1 を返し終了します。 .Sh 環境変数 .Bl -tag -width OBJFORMAT_PATH .It Ev OBJFORMAT 環境変数 .Ev OBJFORMAT が設定されている場合には、デフォルトのオブジェクト形式に優先します。 .Ev OBJFORMAT は .Pa /etc/objformat よりも優先されます。 .It Ev OBJFORMAT_PATH 環境変数 .Ev OBJFORMAT_PATH が設定されている場合には、その値が .Nm prog へのパスのベースとして使われます。デフォルトでは、 .Pa /usr/libexec です。 .El .Sh 関連ファイル .Bl -tag -width /etc/objformat -compact .It Pa /etc/objformat このファイルは、使用するオブジェクトファイル形式を 指定します。書式は、 .Ql OBJFORMAT=xxx です。 .Sh 関連項目 .Xr file 1 , .Xr getobjformat 3 .\" .Sh STANDARDS .Sh 歴史 .Nm は .Fx 3.0 から登場しました。 .Sh 作者 .Nm は、 .An Peter Wemm Aq peter@netplex.com.au によって書かれました。 このマニュアルページは、 .An David O'Brien Aq obrien@NUXI.com によって書かれました。 .\" .Sh BUGS diff --git a/ja/man/man1/rdist.1 b/ja/man/man1/rdist.1 index 0684f4b29b..f0cf54ad8a 100644 --- a/ja/man/man1/rdist.1 +++ b/ja/man/man1/rdist.1 @@ -1,446 +1,447 @@ .\" Copyright (c) 1985, 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. .\" .\" @(#)rdist.1 8.3 (Berkeley) 3/17/94 +.\" +.\" Original Revision: 1.10 .\" jpman %Id: rdist.1,v 1.2 1997/06/05 02:50:01 yugawa Stab % -.\" Original revision: 1.3.2.5 .\" .Dd March 17, 1994 .Dt RDIST 1 .Os BSD 4.3 .Sh 名称 .Nm rdist .Nd リモートファイル配布プログラム .Sh 書式 .Nm rdist .Op Fl nqbRhivwyD .Op Fl P Ar rshcmd .Op Fl f Ar distfile .Op Fl d Ar var=value .Op Fl m Ar host .Op Ar name ... .Nm rdist .Op Fl nqbRhivwyD .Op Fl P Ar rshcmd .Fl c .Ar name ... .Oo login@ Oc Ns Ar host Ns Op :dest .Sh 解説 .Nm は、複数のホストに対し、ファイルの内容を同一に維持するためのプログラムです。 本プログラムによるファイルコピーでは、可能な限り所有者、グループ、 アクセスモード、そして更新時刻を保存しようとします。 そして、現在実行中のプログラムの更新も可能です。 .Nm は、コマンドを .Ar distfile から読み出し、その内容に従ってファイルやディレクトリの更新を制御します。 .Pp 第 1 の書式特有のオプション: .Pp .Bl -tag -width indent .It Fl .Ar distfile に .Sq Fl を指定した場合、標準入力からデータを入力します。 .It Fl f Ar distfile 指定した .Ar distfile を使用します。 .El .Pp .Fl f オプションも .Sq Fl オプションも指定されない場合には、本プログラムは最初に .Dq Pa distfile を、次に .Dq Pa Distfile を探し、入力として使用します。 コマンド行にて何の指定も与えられない場合には、 .Nm は、 .Ar distfile に記述されたすべてのファイルとディレクトリを更新します。 それ以外の場合では、引数は、更新対象となるファイル名あるいは 実行されるコマンドのラベルと解釈されます。 ラベルやファイル名が衝突する場合には、すべてラベルとして取り扱います。 これらの名前は、指定したコマンドを用いて指定したファイルを更新するのに 用いられます。 .Pp 第 2 の書式特有のオプション: .Pp .Bl -tag -width Fl c .It Fl c .Nm に、残りの引数を小規模の .Ar distfile として解釈するように指示します。 .Pp このオプションを使用した場合と等価な distfile は、以下のようになります。 .Pp .Bd -filled -offset indent -compact .Pq Ar name ... .Li -> .Op Ar login@ .Ar host .Bd -filled -offset indent -compact .Li install .Op Ar dest ; .Ed .Ed .El .Pp 両方の書式に共通のオプション: .Pp .Bl -tag -width Ic .It Fl P Ar rshcmd .Xr rsh 1 と同様な機能を持つ他のプログラムをリモートサーバへの転送に使用します。 指定したプログラムはリモートサーバへバイナリ透過な経路を使用できる必要が あり、コマンド引数の書式が .Xr rsh 1 と互換でなければなりません。 .It Fl d Ar var=value .Ar var に対して .Ar value を代入することを定義します。 .Fl d オプションは、変数を定義したり、 .Ar distfile 中の変数を変更したりするのに用いられます。 .Ar value には、空白文字列、名前、もしくは括弧で囲まれて、タブやスペースで区切ら れた名前の列挙が指定可能です。 .It Fl h シンボリックリンクを追いかけます。リンクしてあるファイルの場合、リンクファ イルそのものでなく、リンク先にある実体をコピーします。 .It Fl i 解決できないリンクを無視します。 .Nm は、通常はリンクファイルについてもコピーを行ない、リンクが解決出来ない場合 には、その旨をユーザに通知します。 .It Fl m Ar host ファイルを更新するホストを制限します。 複数の .Fl m 引数を指定する事で、 .Ar distfile に記述のあるホスト名の中から複数のホスト名を選択して与えることが可能です。 .It Fl n 実行しないで、コマンド自身を表示します。本オプションは .Ar distfile のデバッグに有効です。 .It Fl q QUIETモードに入ります。更新されるファイルについては、通常は標準出力に 表示されますが、 .Fl q オプションはこの出力を抑制します。 .It Fl R 無関係なファイルを削除します。ディレクトリを更新する場合に、 リモートホスト上に存在するファイルが、配布元のディレクトリ中に存在しないなら、 該当するファイルを削除します。本オプションは、配布元と配布先で完全にディ レクトリ配下の内容を一致させたい場合に有効です。 .It Fl v すべてのホストのファイルが最新の物であるかの確認を行ないます。すべての 古いファイルについては一覧が表示されますが、そのファイルが変更されたり、 そのファイルに関してシステムからメールが届いたりすることはありません。 .It Fl w WHOLE モードを有効にします。指定されたファイル名全体が、配布先ディレクトリ名の 後に付加されます。通常は、ファイル名からディレクトリ名を取り除いた 最後の部分のみがファイル名を変更する時に使われます。 本オプションは、ディレクトリ構造をフラットにせず、配布元のディレクトリ 構造をそのまま配布先に持っていきたい場合に用いられます。例えば、 ( dir1/f1 dir2/f2 )のように表されるファイルを、dir3 というディレクトリに 配布した場合、配布先では dir3/f1 や dir3/f2 ではなく、 dir3/dir1/f1 や dir3/dir2/f2 が作成されます。 .It Fl y YOUNGERモードを有効にします。通常、ファイルの更新は、 .Ar mtime と .Ar size ( .Xr stat 2 参照) が一致しない場合に行なわれます。しかし、 .Fl y オプションが有効になっている場合には、 .Nm は、配布元のファイルより新しいファイルは更新しません。 通常本オプションは、他のホストに存在する、より新しいファイルを置き換えない 目的で用いられます。 配布元より新しいファイルが配布先にあった場合には、その旨を通知する メッセージが表示されます。 .It Fl D デバッグモード。 .El .Pp .Ar distfile は、コピーされるファイル、配布先ホスト、そして更新のための手順を指定 するエントリを含みます。各エントリは、以下の形式のいずれかに分類され ます。 .Pp .Bd -literal -offset indent -compact `=' [label:] `\->' [label:] `::' .Ed .Pp 一番目の形式は、値を定義するのに用いられます。 二番目の形式は、他のホストへファイルを配布するのに用いられます。 三番目の形式は、指定した日付以降に更新されたファイルの一覧を作成するのに 用いられます。 .Ar source list は、配布元のファイルやディレクトリの一覧を指定します。 .Ar destination list は、ファイルの配布先のホスト一覧です。配布元ファイルリスト (source list) 中の各ファイルが、更新を行なおうとしているホストにおいて古いもの である(二番目の形式)か、または、指定のファイルのタイムスタンプより新し い場合(三番目の形式)には、変更対象リストに追加されます。 .Pp ラベルの使用は、任意です。ラベルについては、部分的な変更を行う場合 に、コマンドを識別するために用いられます。 .Pp 改行、タブ、そして空白は、セパレータとしてのみ用いられ、それ以外の場で 用いられた場合には無視されます。コメントは、`#' で始まり改行で終ります。 .Pp `$' で始まり、1文字もしくは `{''}' でくくられた名前の変数については、処理中に その値に置き換えられます(最後に出てくる例を参照して下さい)。 .Pp 配布元ファイルリストと配布先ホストリストの一覧は、以下の形式を取ります。 .Bd -literal -offset indent <名前> .Ed または .Bd -literal -offset indent -compact `(' <空白で区切られた 0 個以上の名前> `)' .Ed .Pp シェルのメタ文字であるところの `[', `]', `{', `}', `*', そして `?' は、(配布元のホスト上でのみ) .Xr csh 1 同様に解釈され、展開されます。 これは、バックスラッシュを用いて回避する事が出来ます。 `~' 文字もまた、 .Xr csh 1 同様に展開されますが、配布元と配布先のホストで別々に展開されます。 .Fl w オプションが `~' ではじまるファイル名とともに用いられた場合、ホームディ レクトリを除くすべてのファイル/ディレクトリ名が配布先の名前に加えられます。 `/' や `~' 以外の文字ではじまるファイル名は、配布先のユーザのホームディ レクトリをルートディレクトリとみなして、指定されたファイルの名前を 追加して配布先でのファイル名を作成します。 .Pp コマンドリストは、以下の形式に従った、0 個以上のコマンドからなります。 .Bd -ragged -offset indent -compact .Bl -column except_patx pattern\ listx .It `install' opt_dest_name `;' .It `notify' `;' .It `except' `;' .It `except_pat' `;' .It `special' string `;' .El .Ed .Pp .Ic install コマンドは、古いファイルやディレクトリをコピーするのに用いられます。 各配布元のファイルは、配布先ホストリスト中の各ホストへコピーさ れます。ディレクトリも同様にして、再帰的にコピーされます。 .Ar Opt_dest_name は、ファイル名を変更するための任意的なパラメータです。 .Ic install コマンドがコマンドリストに存在しない場合や、配布先での ファイル名が指定されていない場合、配布元のファイル名がそ のまま配布先でのファイル名として採用されます。 パス名に含まれるディレクトリが配布先のホスト上に存在しない 場合には、そのディレクトリを作成します。 不慮の事故を回避するために、配布先のホスト上に空でないディレクトリがあっ ても、通常のファイルやシンボリックリンクに置き換えたりはしません。 しかし、`\-R'オプションを付加して実行した場合には、配布元のディレクト リに当該ファイルが存在しなければ、空でないディレクトリでも削除されます。 .Ar option には、`\-R', `\-h', `\-i', `\-v', `\-w', `\-y', `\-b' があり、それらが配布元ファイルリストに記述されたファイルに対 してのみ適用される事を除いて、コマンドライン中に指定した事と同じ意味と なります。 配布先ホストにおけるログイン名は、配布元でのログイン名と同じですが、配 布先のログイン名が ``login@host" という形式で指定されている場合にはこの 限りではありません。 .Pp .Ic notify コマンドは、更新されたファイル一覧(および、発生した何らかのエラー)をメール によって通知する場合に用いられます。 指定のメールアドレス中に `@' がない場合には、配布先のホスト名がメールア ドレスに付加されます(例: name1@host, name2@host, ...)。 .Pp .Ic except コマンドは、 .Ar name list に列挙されているファイルを除き、配布元ファイルリストに記述されているすべての ファイルを更新するのに用いられます。 本コマンドは、特定ファイルを除くすべてのファイルをコピーするのに用い られます。 .Pp .Ic except_pat コマンドは、 .Ic except コマンドと似てますが、 .Ar pattern list として正規表現を用いたリストを指定できるところが異なります (詳細については、 .Xr re_format 7 を参照して下さい)。 ファイル名に含まれる文字列が、正規表現のパターンに一致すると、そのファ イルは無視されます。 `\e' が文字をクオートする事に注意して下さい。正規表現に含めるためには、 2 個続ける必要があります。 .Ar pattern list の中の変数は展開されますが、シェルのファイルパターンマッチ方法とは異なります。 `$' を含めるためには、`\e' を用いてエスケープする必要があります。 .Pp .Ic special コマンドは、 .Ar name list にて指定されたファイルを更新、または、コピーした後に、配布先の ホスト上で実行される .Xr sh 1 コマンドを指定するのに用いられます。 .Ar name list が省略された場合には、シェルコマンドは各ファイルの更新が終了する度に 実行されます。シェル変数 `FILE' には、 文字列 .Ar string で指定したコマンドを実行する前に、直前に処理したファイル名が格納されます。 文字列 .Ar string を、`"'で囲む事で、 .Ar distfile において複数行にわたって記述する事が出来ます。 シェルに対する複数の実行コマンドは、`;'で区切られる必要があります。 指定されたコマンドは、ファイルの更新を行なおうとしている配布先ホストの 当該ユーザのホームディレクトリで実行されます。 .Ar special コマンドは、プログラムがファイルを更新した後にプライベートデータベース を再構築する用途をはじめとして、いろいろな場面で用いる事が出来ます。 .Pp 以下に示す例は簡単な一例です。 .Bd -literal -offset indent HOSTS = ( matisse root@arpa ) FILES = ( /bin /lib /usr/bin /usr/games \t/usr/include/{*.h,{stand,sys,vax*,pascal,machine}/*.h} \t/usr/lib /usr/man/man? /usr/ucb /usr/local/rdist ) EXLIB = ( Mail.rc aliases aliases.dir aliases.pag crontab dshrc \tsendmail.cf sendmail.fc sendmail.hf sendmail.st uucp vfont ) ${FILES} -> ${HOSTS} \tinstall -R ; \texcept /usr/lib/${EXLIB} ; \texcept /usr/games/lib ; \tspecial /usr/lib/sendmail "/usr/lib/sendmail -bz" ; srcs: /usr/src/bin -> arpa \texcept_pat ( \e\e.o\e$ /SCCS\e$ ) ; IMAGEN = (ips dviimp catdvi) imagen: /usr/local/${IMAGEN} -> arpa \tinstall /usr/local/lib ; \tnotify ralph ; ${FILES} :: stamp.cory \tnotify root@cory ; .Ed .Sh 関連ファイル .Bl -tag -width /tmp/rdist* -compact .It Pa distfile 入力コマンドファイル .It Pa /tmp/rdist* 更新リストのために用いられる一時ファイル .El .Sh 関連項目 .Xr csh 1 , .Xr sh 1 , .Xr stat 2 , .Xr re_format 7 .Sh 歴史 .Nm コマンドは、 .Bx 4.3 から登場しました。 .Sh 診断 .Nm のバージョン不一致についての通知は、実際にはシェルを起動する際の 何らかの問題に起因して発生します。例えば、ユーザの所属グループがあまり 多すぎるなどが挙げられます。 .Pp .Nm は、 .Xr rcmd 3 タイプのリモートサービス実行が、静かに成功することに依存します。 よくある誤りとしては、非対話の初期化スクリプト、例えば .Pa .cshrc が出力を行なってしまうことがあります (出力を行う他のプログラムを実行するものの、 そのプログラムが端末に接続されていないということもあります -- よくある原因が .Xr stty 1 です)。 このような余計な出力のために、 .Nm が失敗して次のようなエラーメッセージが表示されます: .Pp .Dl rdist: connection failed: version numbers don't match .Sh バグ 配布元ファイルは、 .Nm コマンドが起動される配布元ホストに存在しなければなりません。 .Pp ディレクトリ配下のすべてのファイルが更新された後に .Ic special コマンドを実行 するのは困難です。 .Pp 変数の置換は、name list に対してのみ働きます。より一般的なマクロ の機能があるべきでしょう。 .Pp .Nm は、負 (1970 年 1 月 1 日以前の日付)の mtime を持つファイルに対してのアクセスを 行うと異常終了します。 .Pp 空でないディレクトリを通常ファイルやシンボリックリンクで置換できる、 `force' オプションがあるべきでしょう。内容自体は一致しているファイルのモード や所有者を更新する方法も必要でしょう。 diff --git a/ja/man/man1/sh.1 b/ja/man/man1/sh.1 index 10c978a3ef..72d6366bff 100644 --- a/ja/man/man1/sh.1 +++ b/ja/man/man1/sh.1 @@ -1,1211 +1,1211 @@ .\" 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 .\" %Id: sh.1,v 1.23.2.2 1999/04/19 18:54:06 max 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 と同様に 見える機能を多数持っていますが、 Korn shell のクローンではありません (もし Korn shell クローンを望むなら、 Gnu の bash を使いましょう)。 このシェルには、POSIX で規定された仕様といくつかの Berkeley 拡張のみが 取り入れられています。 本マニュアルは、shell のチュートリアルでは ありませんし、仕様を完全に記述するものでもありません。 .Ss 概要 シェルは、ファイルまたは端末から 1 行ずつ読み込み、それを解釈し、 コマンドを実行します。シェルはユーザがシステムにログインしたときに起動 されるプログラムです (ただし、ユーザは chsh(1) コマンドによって他のシェルを選択することもできます)。 シェルは、制御構文を持つ言語であり、 データ記憶をはじめとして多様な機能を提供するマクロ機能、 ヒストリ、行編集機能も内蔵しています。 このシェルは対話的に使うときに便利な機能を多くとり入れており、 対話的に用いるときも非対話的に (シェルスクリプトとして) 用いるときも、 共通のインタプリタ言語を用いることができる利点があります。 すなわち、コマンド名をシェルに直接タイプする ことも、コマンド名をファイルに書いておいてそのファイルをシェルに 実行させることもできます。 .Ss 起動 引数が与えられず、かつシェルの標準入力が端末の場合 (または -i フラグが指定 された場合)、シェルは対話的に動作します。対話的シェルは、通常、コマンド 入力時にプロンプトを表示し、文法的なエラーとコマンドエラーを 異なった方法で処理します (後述します)。 起動時に、シェルは 0 番目の引数を検査します。もしそれが ダッシュ `-' で始まっているなら、シェルはログインシェルとして 動作します。ユーザがシステムにログインした場合は自動的にこの状況に なります。ログインシェルは、まず (以下の各ファイルが存在する場合)、 .Pa /etc/profile と .Pa .profile ファイルからコマンドを読み込みます。 シェル起動時に、もしくはログインシェルで .Pa .profile を実行中に環境変数 .Ev ENV が設定されているなら、シェルは、その次に環境変数 .Ev ENV で示されたファイルからコマンドを読み込みます。 つまり、ユーザはログイン時にのみ実行したいコマンドを .Pa .profile に書き、シェルが起動されるたびに実行したいコマンドを環境変数 .Ev ENV で示すファイルに書くことになります。 環境変数 .Ev ENV を設定するには、ユーザのホームディレクトリ下のファイル .Pa .profile に以下のように記述します。 .sp .Dl ENV=$HOME/.shinit; export ENV .sp ここで、 .Pa .shinit のかわりに好きな名前を指定することができます。 オプション以外にコマンドライン引数が指定された場合、シェルは最初の引数 を、コマンドを読み込むべきファイル (シェルスクリプト) の名前であると解釈し、 それ以後の引数はシェルの位置パラメータ ($1, $2, ...) に設定します。 それ以外の場合、シェルはコマンドを標準入力から読み込みます。 .Pp 古いバージョンの .Nm とは異なり、環境変数 .Ev ENV で指定したスクリプトが実行されるのは、対話的シェルの呼び出し時のみです。 これにより、いい加減に書かれた .Ev ENV スクリプトに起因する、簡単に食いものにされることが多い有名な セキュリティホールがふさがれたことになります。 .Ss 引数リスト処理 .Nm の 1 文字からなるオプションはそれぞれ対応する名前を持っており、 .Xr set 1 組み込みコマンド (後述) の引数として用いることができます。 これらの名前は、以下の説明で 1 文字オプションのすぐあとに書いてあります。 マイナス記号 .Dq - でオプションを指定することは、そのオプションを有効にすることを意味し、 プラス記号 .Dq + でオプションを指定することは、そのオプションを無効にすることを意味します。 .Dq -- または、単なる .Dq - はオプション処理を終了させ、 コマンドラインの残りの語を引数として解釈することを強制します。 .Bl -tag -width Ds .It Fl a Li allexport 値が代入された変数の全てをエクスポートします。 .It Fl b Li notify バックグラウンドジョブ実行の完了を、コマンドが実行中でも即座に報告しま す (未実装です)。 .It Fl C Li noclobber すでに存在するファイルに対して .Dq > リダイレクトにより上書きしません (未実装です)。 .It Fl E Li emacs 組み込みの .Xr emacs 1 風のコマンド行編集機能を有効にします (それ以前に .Fl V オプションが指定された場合、それを無効にします)。 .It Fl e Li errexit 非対話的シェルで、テスト状態にないコマンドの実行に失敗した場合、 直ちにシェルを終了します。 コマンドは、if, elif, while, until 構文を 制御するのに用いられている場合に、テスト状態であるとみなされます。 また、 .Dq && や .Dq || の左辺値として用いられているコマンドも、テスト状態とみなされます。 .It Fl f Li noglob パス名展開を行ないません。 .It Fl I Li ignoreeof 対話的シェルの場合、入力の 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 コマンドを標準入力から読み込みます (引数でファイル名が指定されていない 場合には、このオプションが自動的に設定されます)。 シェルが実行されてから本オプションを( .Xr set 1 などによって)設定しても効果はありません。 .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 各コマンドを実行する前に、そのコマンドを標準エラー出力に (各コマンドの 前に `+' を付加して) 書き出します。デバッグのときに便利です。 .It Fl c Ar string 文字列引数 string はシェルに渡され、入力として解釈されます。このオプショ ンは引数として文字列を一つだけ受け取ることに注意して下さい。ですから、複 数の単語からなる文字列は引用符で囲う必要があります。 .El .Ss 構文構造 シェルは、ファイルを行単位で読み込み、空白文字 (ブランクおよびタブ) や シェルにとって特別な意味を持つ特定の文字列 ( .Dq 演算子 と呼ばれるものです) を区切りとして、複数の単語に分割します。演算子には、制御演算子とリ ダイレクト演算子の 2 種類があります (これらの意味については後述します)。 以下に、それらの一覧を示します。 .Bl -tag -width Ds .It No 制御演算子: & && ( ) ; ;; | || .No \en .It No リダイレクト演算子: < > >| << >> <& >& <<- .El .Ss 引用 (クォート) 引用は、特殊な意味を持つ文字や単語 (演算子、空白、キーワードなど) の意味 を打ち消すために用います。引用には、シングルクォート文字のペアを使う方法、 ダブルクォート文字のペアを使う方法、バックスラッシュ文字を使う方法 の 3 種類があります。 .Bl -tag -width Ds .It シングルクォート文字 シングルクォートのペアで囲まれた文字は、すべてその文字そのまま (リテラル) として扱われます (ただしシングルクォートは別です。シングルクォート で囲った文字列の中にシングルクォートを含めることはできません)。 .It ダブルクォート文字 ダブルクォートのペアで囲まれた文字は、ドル記号文字 ($)、バッククォート 文字 (`)、バックスラッシュ文字 (\\) を除き、すべてリテラルとして扱われます。 ダブルクォート文字による引用の中にあるバックスラッシュ文字は、歴史 的経緯によりすこし変わった扱いを受けます。つまり、直後に $, `, ", \\, 改行文字 が来るときにのみ、それらの文字がリテラルとして扱われます。そ れ以外の文字が来る場合、バックスラッシュ文字自体がリテラルとして扱われ ます。 .It バックスラッシュ バックスラッシュは、その後ろの 1 文字を、リテラルとして扱うように指示 します。ただし改行文字は別です。改行文字の直前のバックスラッシュは、行 の継続であるとみなされます。 .El .Ss 予約語 予約語はシェルにとって特別な意味を持つ単語で、行の先頭または制御演算子 の直後でのみ予約語として認識されます。以下に予約語の一覧を挙げます。 .Bd -literal -offset indent ! { } case do done elif else esac fi for if then until while .Ed .Ss エイリアス エイリアスは、名前とそれと対応する値が対になったもので、 組み込みコマンド .Xr alias 1 によって定義されます。 シェルは、予約語が現れる可能性がある場所 (上記を参照) で、 ある単語に対して、それが予約語かどうかの検査を済ませたのち、 それがエイリアスに一致するかどうかを検査します。 もし一致したならば、入力行の中で、その単語をエイリアスの値に置き換えます。 たとえば、``lf'' という名前で ``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 単語の前にある ``name=value'' の形式の単語を取り除き、 単純コマンドの環境に代入します。 リダイレクト演算子とその引数 (後述) を取り除き、 あとで処理できるように保存します。 .It 残った単語を、「展開」の節で説明する方法で展開します。 展開後の最初の単語をコマンド名とみなし、コマンドの位置を探索します。 残りの単語はコマンドへの引数とみなされます。 処理の結果、コマンド名が残らなかった場合、手順 1) で 取り出した ``name=value'' の変数代入を、現在のシェルの環境に反映します。 .It 次節で説明する方法で、リダイレクトを行ないます。 .El .Ss リダイレクト リダイレクトは、コマンドがどこから入力するか、どこへ出力するかを 変更するときに用います。 一般には、リダイレクトでは、ファイルのオープン、クローズ、または ファイルへの参照の複写 (duplicate) を行います。 リダイレクトで用いられる全般的な形式は、以下のとおりです。 .sp .Dl [n] redir-op file .sp ここで、redir-op は前述したリダイレクト演算子のいずれかです。 これらの演算子をどのように利用するかの例をいくつか以下に挙げます。 .Bl -tag -width "1234567890" -offset indent .It [n]> file 標準出力 (またはファイル記述子 n への出力) をファイル file に書き出します。 .It [n]>| file 上と同様。ただし、-C オプションの効果を打ち消します。 .It [n]>> file 標準出力 (またはファイル記述子 n への出力) をファイル file に追加します。 .It [n]< file 標準入力 (またはファイル記述子 n からの入力) をファイル file から取ります。 .It [n1]<&n2 ファイル記述子 n2 を標準入力 (またはファイル記述子 n1) に複写します。 .It [n]<&- 標準入力 (またはファイル記述子 n) をクローズします。 .It [n1]>&n2 ファイル記述子 n2 を標準出力 (またはファイル記述子 n1) に複写します。 .It [n]>&- 標準出力 (またはファイル記述子 n) をクローズします。 .El .Pp 以下のリダイレクトは、しばしば``ヒア・ドキュメント(here-document)''と 呼ばれます。 .Bd -literal -offset indent [n]<< delimiter here-doc-text... delimiter .Ed .Pp シェルは、delimiter までの行を保存し、コマンドへの標準入力またはファイ ル記述子 n にリダイレクトします。最初の行の delimiter が引用 (クォート) されていた場合、here-doc-text の内容をリテラルとして扱います。 そうでない場合、パラメータ展開、コマンド置換、数値演算 (「展開」の節で 説明します) を適用します。演算子が (``<<'' でなく) ``<<-'' の場合は、 here-doc-text の各行の行頭のタブを取り除きます。 .Ss コマンド検索と実行 コマンドには、シェル関数、組み込みコマンド、通常プログラムの 3 種類があり、 コマンドを検索する際には、シェルは名前の検索をこの順序で行います。 それぞれのコマンドは異なる方法で実行されます。 .Pp シェル関数を実行するとき、$0 を除くすべての位置パラメータ ($1, $2,..) をシェル関数への引数として設定します。$0 は変更されません。シェル関数 の環境として指定された変数 (関数名の直前に ``name=value'' を置いて指定 されたもの) は、その関数に局所的な変数となり、指定された初期値が設定さ れます。そして、シェルは関数定義で与えられたコマンドを実行します。コマ ンドの実行が完了すると、位置パラメータを元の値に戻します。これは全て現 在のシェルの中で処理されます。 .Pp 組み込みコマンドは、新たなプロセスを作成せずにシェル内部で実行されます。 .Pp コマンドが関数でも組み込みコマンドでもない場合は、通常のプログラムとみなし (次節で説明するとおり) ファイルシステムの中でそのコマンドを検索します。 通常のプログラムを実行する場合、シェルは引数と 環境をプログラムに渡して、そのプログラムを実行します。 プログラムが通常の実行ファイル形式ではない場合 (つまり、 .Tn ASCII 表現で "#!" となる「マジックナンバ」でファイルが始まっておらず、 .Fn execve 2 が .Er ENOEXEC を返す場合)、 サブシェルの中でそのプログラムを解釈実行します。この場合、あたかも新たに シェルが起動されたかのような効果を得るために、子シェルは自分自身を 再初期化します。ただし、子プロセスは、親シェル中のハッシュされたコマンド 位置情報を憶えており、これは再初期化されません。 .Pp 本ドキュメントの古いバージョンや古いソースコードでは、ときおり、 マジックナンバのないシェルスクリプトのことを「シェル手続き」と呼んでいて、 まぎらわしい場合がありますので注意して下さい。 .Ss パス検索 コマンドを検索するとき、シェルは、まず、その名前のシェル関数があるかどうかを 調べます。次に、その名前の組み込みコマンドがあるかどうかを調べます。 組み込みコマンドでもない場合、以下のいずれかの処理が行われます: .Bl -enum .It コマンド名にスラッシュが含まれていれば、検索は行わず、 単にそのコマンドが実行されます。 .It 変数 .Ev PATH に含まれる各エントリに対して、順にそのコマンドを検索します。 変数 .Ev PATH の値はコロン (``:'') で区切られたエントリの列でなければなりません。 各エントリは、それぞれディレクトリ名一つに対応します。 カレントディレクトリは、 空のディレクトリ名を指定することで暗黙的に、 あるいは 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 パイプラインの形式は次のとおりです。 .Bd -literal -offset indent [!] command1 [ | command2 ...] .Ed .Pp command1 の標準出力は command2 の標準入力に接続されます。コマンドの標 準入出力がパイプラインによって割り当てられるのは、各コマンドに属する リダイレクト演算子で指定されたリダイレクトを処理する前のことだと考えて 下さい。 .Pp パイプラインがバックグラウンド (後述) でなければ、シェルはすべての コマンドが終了するのを待ちます。 .Pp パイプラインの直前に予約語 `!' が置かれなかった場合、終了ステータスは パイプラインの最後のコマンドの終了ステータスとなります。 `!' が前置された場合、終了ステータスはパイプラインの最後のコマンドの 終了ステータスの論理否定を取った値となります。 すなわち、最後のコマンドが 0 を返した場合、パイプラインの 終了ステータスは 1 に、最後のコマンドが 0 より大きな値を返した場合、 終了ステータスは 0 になります。 .Pp パイプラインによる標準入出力の接続はリダイレクトに先立って行われるため、 パイプラインの接続をリダイレクトによって修正することができます。たとえば、 .Bd -literal -offset indent $ command1 2>&1 | command2 .Ed .Pp は、command1 の標準出力と標準エラー出力の両方を command2 の標準入力に 接続します。 .Pp \&; または改行文字を終端として用いることにより、直前の AND-OR リスト (後述) を 順次実行します。& は、直前の AND-OR リストを非同期に実行します。 .Pp 注: 他のいくつかのシェルと異なり、パイプラインの各プロセスは 起動したシェルの子プロセスとなります (シェルの組み込みコマンドである ときは別です。その場合は現在のシェルで実行されます --- ただし 環境に対して行った操作は取り消されます)。 .Ss バックグラウンドコマンド -- & コマンドが制御演算子 & で終了している場合、シェルはそのコマンドを 非同期に実行します。すなわち、シェルはそのコマンドの終了を待たずに、 次のコマンドの実行を開始します。 .Pp コマンドをバックグラウンドで実行させるための形式は以下のとおりです。 .Bd -literal -offset indent command1 & [command2 & ...] .Ed .Pp シェルが対話的でない場合、非同期コマンドの標準入力には /dev/null が 接続されます。 .Ss リスト -- 一般的な話 リストは 0 個またはそれ以上のコマンドを改行文字、セミコロン文字、アン パーサント文字 (&) で区切った列です。リストは、これら 3 つの記号のいずれかで 終了させることもできます。リスト中のコマンドは並べられた順に実行 されます。もし、コマンドに続けてアンパーサント文字が置かれている場合、 シェルはそのコマンドを起動したあと、すぐに次のコマンドの処理を開始します。 その他の場合、そのコマンドの終了を待ってから次のコマンドの処理を開始します。 .Ss 短絡リスト演算子 (Short-Circuit List Operators) ``&&'' と ``||'' は AND-OR リスト演算子です。 ``&&'' は最初のコマンド を実行し、もし最初のコマンドの終了ステータスが 0 ならば次のコマンドを 実行します。 ``||'' も同様ですが、最初のコマンドの終了ステータスが 0 でない場合に、次のコマンドを実行します。 ``&&'' と ``||'' の優先順位は 同じです。 .Ss 制御構造 -- if, while, for, case if コマンドの文法は以下のとおりです。 .Bd -literal -offset indent if list then list [ elif list then list ] ... [ else list ] fi .Ed .Pp while コマンドの文法は以下のとおりです。 .Bd -literal -offset indent while list do list done .Ed .Pp 最初のリストの終了ステータスが 0 であるかぎり、2 つのリストを繰り返し 実行します。until コマンドも同様に実行しますが、 単語 while の代わりに単語 until を使うことと、 最初のリストの終了ステータスが 0 になるまで、 2 つのリストを繰り返し実行することが異なります。 .Pp for コマンドの文法は以下のとおりです。 .Bd -literal -offset indent for variable in word... do list done .Ed .Pp 各 word は展開され、変数 variable に word を順に設定しながらリストを 繰り返し実行します。do と done は ``{'' と ``}'' で置き換えることができます。 .Pp break と continue コマンドの文法は以下のとおりです。 .Bd -literal -offset indent break [ num ] continue [ num ] .Ed .Pp break は内側から num 個の for ループまたは while ループを終了します。 continue は、 num 個目のループの次の繰り返しに制御を移します。 .\" 上の文、原文では以下のようになっているが、the *num* innermost loop が .\" 正しいと思われる。実際の sh の動作もそうなっているようだ。 .\" --- 97/05/31 sakai@jp.freebsd.org ↓ .\" Continue continues with the next iteration of the innermost loop. これらのコマンドは組み込みコマンドとして実装されています。 .Pp case コマンドの文法は以下のとおりです。 .Bd -literal -offset indent case word in pattern) list ;; ... esac .Ed .Pp pattern は、1 つあるいは複数のパターン (後述の「シェルパターン」を参照 のこと) を ``|'' で接続したものです。 .Ss 複数のコマンドのグループ化 コマンドは、以下のいずれかの方法によりグループ化することができます。 .Bd -literal -offset indent (list) .Ed .Pp または、 .Bd -literal -offset indent { list; } .Ed .Pp 最初の形式では、コマンドはサブシェル上で実行されます。 (list) のなかの組み込みコマンドは、現在のシェルには影響を与えません。 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 は 通常、``{'' と ``}'' で囲まれたリストです。 .Pp local コマンドを用いて関数に局所的な変数を宣言することができます。 これは関数定義中の最初の文で行わなければなりません。構文は次のとおりです。 .Bd -literal -offset indent local [ variable | - ] ... .Ed .Pp local コマンドは、組み込みコマンドとして実装されています。 .Pp 変数を局所変数にする場合、関数を呼び出した環境に同じ名前の変数があれば、 新しい局所変数は値と export、readonly フラグを引き継ぎます。もし同じ名前の 変数がなければ、局所変数は初期値を持ちません。シェルは動的スコープ を用います。すなわち、関数 f に局所的な変数 x を作成し、関数 f から 関数 g を呼び出した場合、関数 g 内部での変数 x に対する操作は大域変数 x ではなく、関数 f で宣言された変数 x への操作となります。 .Pp 特殊パラメータのうち局所宣言できるのは ``-'' だけです。 ``-'' を 局所宣言すると、関数内で set コマンドを用いてシェルオプションを 変更しても、関数が終了するとそれらのオプションは元の値に戻ります。 .Pp return コマンドの文法は以下のとおりです。 .Bd -literal -offset indent return [ exitstatus ] .Ed .Pp return は現在実行中の関数を終了させます。return は組み込みコマンドとして 実装されています。 .Ss 変数とパラメータ シェルはパラメータの集合を管理しています。名前を持つパラメータを 変数と呼びます。シェルは、起動時にすべての環境変数をシェル変数に取り込みます。 新たな変数は、次の形式によって設定できます。 .Bd -literal -offset indent name=value .Ed .Pp ユーザが設定する変数は、アルファベット、数字、アンダースコア (_) のみ からなる名前を持つ必要があります。また、最初の文字が数字であっては いけません。 パラメータは、以下に示す数字または特殊記号により参照することもできます。 .Ss 位置パラメータ 位置パラメータは、数字 (n > 0) によって参照されるパラメータです。シェルは 位置パラメータの初期値としてシェルスクリプト名に続く引数を設定します。 組み込みコマンド .Xr set 1 により再設定や消去ができます。 .Ss 特殊パラメータ 特殊パラメータは、以下に挙げる特殊文字のいずれかにより参照される パラメータです。各パラメータの値の説明を各文字の後ろに示します。 .Bl -hang .It * 位置パラメータ 1,2,... に展開されます。ダブルクォート文字列内部で展開 される場合、展開結果は各位置パラメータの間を変数 IFS の先頭の文字 (IFS が設定されていない場合は空白文字) で区切った単一の文字列になります。 .It @ 位置パラメータ 1,2,... に展開されます。ダブルクォート引用の内部で展開 される場合、各位置パラメータは別々の引数となります。 もし、位置パラメータが設定されていない場合には、 @ の展開結果は 0 個の引数となります (ダブルクォート引用の内部であっても)。 すなわち、$1 が ``abc''、$2 が ``def ghi'' であった場合、"$@" は 次の 2 つの引数に展開されます。 .Bd -literal -offset indent "abc" "def ghi" .Ed .It # 位置パラメータの数に展開されます。 .It ? 最後に実行したパイプラインの終了ステータスに展開されます。 .It - (ハイフン) 現在のオプションフラグ (1 文字オプション名をつないだ文字列) に展開されます。起動時に指定されたもの、組み込みコマンド set で指定した もの、シェルが暗黙に設定したもののすべてを含みます。 .It $ 起動されたシェルのプロセス ID に展開されます。 サブシェルも親シェルと同じ値を持ちます。 .It ! 現在のシェルが最後にバックグラウンドで実行したコマンドのプロセス ID に 展開されます。パイプラインの場合、パイプラインの最後のコマンドの プロセス ID になります。 .It 0 (ゼロ) シェルの名前またはシェルスクリプト名に展開されます。 .El .Ss 単語展開 本節では、単語に対して適用されるさまざまな展開について説明します。あとで 述べるように、すべての展開がすべての単語に対して適用されるわけではありません。 .Pp 単一の単語に対して適用されたチルダ展開、パラメータ展開、コマンド置換、 数式展開、クォート削除の結果は単一のフィールドになります。単一の単語が 複数のフィールドに分割される可能性があるのは、フィールド分割または パス名展開の場合だけです。この規則の唯一の例外は、ダブルクォート中の パラメータ @ の展開です (前述)。 .Pp 単語展開の順序は以下のとおりです。 .Bl -enum .It チルダ展開、パラメータ展開、コマンド置換、数式展開 (これらはすべて 同時に行われます) .It 変数 IFS の値が空でなければ、(1) の結果の各フィールドに対して フィールド分割が行われる .It パス名展開 (-f オプションが無効の場合) .It クォート削除 .El .Pp 文字 $ はパラメータ展開、コマンド置換、数式評価を行うきっかけになります。 .Ss チルダ展開 (ユーザのホームディレクトリ名への置換) 引用されていないチルダ文字 (~) で始まる単語は、チルダ展開の対象になります。 チルダ文字からスラッシュ文字または単語の終端までのすべての文字がユーザ名 とみなされ、そのユーザのホームディレクトリに置換されます。もしユーザ名が 省略された場合 (たとえば ~/foobar)、チルダ文字は変数 HOME の値 (現在のユーザのホームディレクトリ) に置換されます。 .Ss パラメータ展開 パラメータ展開の形式は以下のとおりです。 .Bd -literal -offset indent ${expression} .Ed .Pp ここで、expression は対応した `}' までのすべての文字です。対応する`}' を調べる際に、バックスラッシュ文字によりエスケープされたり、クォート文字に 狭まれた `}' や、数式展開に埋め込まれている文字や、コマンド置換や変数展開中に ある文字は調べる対象になりません。 .Pp パラメータ展開の形式のうちもっとも単純なものは以下のとおりです。 .Bd -literal -offset indent ${parameter} .Ed .Pp そのパラメータに値が存在する場合、その値に置き換えられます。 .Pp パラメータ名やシンボルを中括弧 ({}) で囲んでも構いません。この中括弧は、 数字 2 文字以上からなる位置パラメータの場合や、パラメータ名の直後に パラメータ名の一部であるとみなし得る文字が続く場合を除き、 省略可能です。ダブルクォート引用中のパラメータ展開は以下 のようになります。 .Bl -enum .It パラメータ展開を行った結果の単語に対しては、パス名展開は適用されません。 .It パラメータが @ の場合を除き、フィールド分割は適用されません。 .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 通りのパラメータ展開は部分文字列切り出し処理を行います。各場合 において、パターンは正規表現ではなく、パターンマッチ記法 (シェルパターン の項を参照) が用いられます。パラメータが ` * ' または ` @ ' の場合、展開の結果 がどうなるかは規定しません (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 が標準出力 に出力したものから最後の改行文字を削除した結果で置換します (最後以外の 改行は削除しません。ただし、フィールド分割の際に、IFS の値や引用のされかたに よっては、ここで残った改行文字が結局は空白に置換されることもあります)。 .Ss 数式展開 数式展開とは、数式を評価し、その値に置換する仕組みです。数式展開の形式は以下 のとおりです。 .Bd -literal -offset indent $((expression)) .Ed .Pp 数式 expression は、その中のダブルクォート文字が特別扱いを受けないという 点を除いては、ダブルクォート文字で囲まれている文字列と同様に扱われます。 シェルは expression 中のすべてのトークンにパラメータ展開、コマンド置換、 クォート削除を適用します。 .Pp 次にシェルはその結果を数式として扱い、その値に置換します。 .Ss 空白文字による分割 (フィールド分割) パラメータ展開、コマンド置換、数式展開のあと、シェルは展開結果を調べて、 ダブルクォートの外にある部分に対してフィールド分割を適用します。 その結果、複数のフィールドになる場合もあります。 .Pp シェルは、変数 IFS に設定されている文字それぞれ区切り文字とみなし、 パラメータ展開の結果、およびコマンド置換の結果をフィールドに分割します。 .Ss パス名展開 (ファイル名生成) -f フラグが設定されていなければ、フィールド分割が行われたあと、ファイル名生成 が行われます。各単語は、スラッシュで区切られたパターンの列であるとみなさ れます。パス名展開処理において、単語は、条件を満たすファイル すべてのファイル名の列で置換されます。この各ファイル名は、単語の 各パターン部分を、そのパターンに一致する文字列に置換することで 生成されるものです。 これには 2 つの制限があります: まず、パターンはスラッシュを含む文字列には 一致しません。次に、パターンは、そのパターンがピリオドで始まらないかぎり、 ピリオドで始まる文字列に一致しません。 次節では、パス名展開と .Xr case 1 コマンドで用いられるパターンについて説明します。 .Ss シェルパターン パターンは、通常の文字とメタキャラクタからなります。通常の文字は、 その文字そのものに一致します。 メタキャラクタは ``!''、 ``*''、 ``?''、 ``['' です。これらの文字を引用 すると、各々の特殊な意味を失います。コマンド置換や変数置換において、 ドル記号やバッククォート文字がダブルクォート文字の中にない場合には、 変数の値やコマンドの出力の中に、これらの特殊な文字が存在するかどうかが 調べられ、それらがあれば、メタキャラクタとして扱われます。 .Pp アスタリスク文字 (``*'') は、どのような文字列とも一致します。 クエスチョンマーク文字 (``?'') は、任意の文字 1 文字と一致します。 左大括弧 (``['') は文字クラスを開始します。 文字クラスの最後は右大括弧 (``]'') です。``]'' がない場合 は、``['' は文字そのものに一致し、文字クラスの開始とは見なされません。文字 クラスは大括弧内に出現するすべての文字に一致します。 マイナス記号を用いれば、文字の範囲を指定することができます。 文字クラスの最初にエクスクラメーションマーク (``!'') を置くことで、 文字クラスの意味を反転させることができます。 .Pp 文字クラスに文字 ``]'' を含めるには、 ``]'' を文字クラスの最初 (``!'' を 置く場合はそのあと) に置きます。 文字クラスにマイナス記号を含めるときも同様で、 リストの最初もしくは最後に置きます。 .Ss 組み込みコマンド 本節では、別プロセスでは実行できない処理を行なうために組み込まれている コマンドを列挙します。 さらに、効率を上げるために組み込まれているかもしれないコマンド (例えば .Xr printf 1 , .Xr echo 1 , .Xr test 1 , 等) もあわせて列挙します。 .Bl -tag -width Ds .It : 終了ステータス 0 (真) を返すヌルコマンドです。 .It \&. file 指定されたファイル file に記述されたコマンドがシェルに読み込まれ、 実行されます。 .Ar file に .Ql / 文字を含む場合、その通りに扱われます。 そうでなければ、シェルは .Ev PATH を使用して、ファイルを検索します。 .Ev PATH を使用しても見付からない場合、カレントディレクトリを検索します。 .It alias [ name[=string] ... ] name=string が指定されている場合、シェルは名前 ``name'' を持つ値 ``value'' のエイリアスを定義します。単に ``name'' だけが指定された場合、 エイリアス ``name'' の値が表示されます。引数が指定されない場合、定義さ れているすべてのエイリアスの名前と値を表示します (unalias も参照)。 .It bg [ job ] ... 指定されたジョブ (指定されなかった場合は現在のジョブ) を、 続けてバックグラウンドで実行させます。 .It command command arg ... 指定された組み込みコマンドを実行します (組み込みコマンドと同じ名前のシェル関数 がある場合に使います)。 .It cd [ directory ] 指定されたディレクトリに移動します (directory 無指定時は $HOME に移動します)。 cd コマンドの 環境に CDPATH 変数があるか、シェル変数 CDPATH が設定されていて、かつ 指定されたディレクトリ directory がスラッシュ文字から始まっていないなら、 CDPATH に列挙されたディレクトリ以下に 指定されたディレクトリ directory がないか検索されます。 CDPATH の形式は PATH と同様です。対話的シェルでは、ユーザ が指定したディレクトリと異なる場所に移動した場合、移動先のディレクトリ名 を表示します。これは、CDPATH の機構が動作した場合と、シンボリックリンクを 辿った場合に発生します。 .It eval string ... 指定されたすべての引数を空白で結合し、その結果を解析し直してから コマンドとして実行します。 .It exec [ command arg ... ] コマンドが省略されない場合、そのシェルプロセスは指定されたプログラムに 置き換えられます (command は、シェル組み込みコマンドや関数ではない、本物の プログラムでなければなりません)。exec コマンドにおけるリダイレクトは、 永久性を持つと見なされ、 exec コマンド完了後にも引き続き効力を持ちます。 .It exit [ exitstatus ] シェルを終了します。指定された exitstatus は、シェルの終了ステータスに なります。exitstatus が省略された場合、直前に実行したコマンドの 終了ステータスがシェルの終了ステータスとなります。 .It export name ... それ以後にシェルから実行されるコマンドの環境に、指定された名前の変数が 含まれるようにします (変数のエクスポート)。 変数のエクスポートを取り消す唯一の方法は、変数を unset することです。 以下のように記述することで、エクスポートすると 同時に変数の値を設定することができます。 .Bd -literal -offset indent export name=value .Ed .Pp 引数を指定しない場合、すべてのエクスポートされている名前と値が表示されます。 .It fc [-e editor] [first [last]] .It fc -l [-nr] [first [last]] .It fc -s [old=new] [first] fc は、対話的シェルにそれ以前に入力されたコマンドの内容を 表示、編集、再実行します。 .Bl -tag -width Ds .It -e editor 編集に際し、指定されたエディタ editor を使用します。 editor は変数 PATH を通して検索できるコマンド名です。 -e が指定されなかった場合は、変数 FCEDIT の値が 用いられます。FCEDIT が設定されていないか空に設定されている場合は EDITOR の値が用いられ、それも設定されていないか空ならば .Xr ed 1 が用いられます。 .It -l (ell) (小文字のエル) エディタを起動せずに、コマンド履歴の内容を一覧出力します。 パラメータ first と last で指定した範囲のコマンドが順に (出力の順番は -r オプションの影響を受けます) 出力されます。 各コマンドの出力の際にはコマンド番号が付加されます。 .It -n -l で一覧出力する際にコマンド番号を付加しません。 .It -r -l オプションでの一覧や、 編集時 (-l も -s も指定されなかった場合) の順序を反転します。 .It -s エディタを起動せずにコマンドを再実行します。 .It first .It last 一覧出力や編集の対象となるコマンドを選択します。アクセス可能なコマンド の数は変数 HISTSIZE の値で決まります。 first、last の値は以下のいずれかの形式で指定します。 .It [+]number 正の数で、コマンド番号を指定します。コマンド番号は -l オプションで表示させて 調べることができます。 .It -number 負の数で、指定された数だけ現在から遡ったコマンドを指定します。たとえば、 -1 は直前に実行されたコマンドを指定します。 .It string 文字列 string は、過去に実行されたコマンドのうち、 その文字列から始まる最新のものを指定します。 もし -s オプションが指定されて ``old=new'' が指定されていなければ、 最初のオペランドにイコール記号 (``='') を含めることはできません。 .El .\" 次の行の .Pp はもともとコメントアウトされていた .Pp fc コマンドの実行にあたり、以下の環境変数の影響を受けます。 .Bl -tag -width Ds .It Va FCEDIT 使用するエディタ名 .It Va HISTSIZE アクセス可能なコマンド数 .El .It fg [ job ] 指定されたジョブまたは現在のジョブをフォアグラウンドに移動します。 .It getopts optstring var POSIX に準拠した getopts コマンドです。 この getopts コマンドにより、以前の getopt コマンドの必要性は減少しました。 最初の引数は文字の列です。各文字の後ろにはコロンをつけることができ、 そのオプションが引数をとることを指示します。 指定された変数に、解析され見つかったオプションが設定されます。 見つかったオプションの次の引数のインデックスはシェル変数 OPTIND に格納されます。 あるオプションが引数をとる場合、その引数はシェル変数 OPTARG に置かれます。 有効でないオプションに出くわすと、変数 var には `?' がセットされます。 getopts はオプション群の末尾に到達すると偽の値 (1) を返します。 .It hash -rv command ... シェルは、コマンドの位置を保持するハッシュテーブルを維持管理しています。 hash コマンドに引数が指定されなかった場合、このテーブルの内容が出力されます。 最後に cd コマンドが実行されてから参照されていない項目には アスタリスク文字 (``*'') が表示されます。 この項目は無効になっているかもしれません。 .Pp 引数を指定した場合、hash コマンドは指定したコマンドをハッシュテーブル から削除し (command が関数ではない場合)、その後でそのコマンドを検索します。 -v オプションを指定した場合、発見したコマンドの位置を表示します。-r オプション を指定した場合、関数以外のすべてのエントリをハッシュテーブルから 削除します。 .It jobid [ job ] ジョブ job 中の各プロセスのプロセス ID を表示します。引数 job が 省略された場合、現在のジョブに対して処理を行います。 .It jobs バックグラウンドで走行中の、現在のシェルプロセスの子プロセスの 一覧を出力します。 .It pwd カレントディレクトリを表示します。組み込みコマンドの pwd は カレントディレクトリ名を覚えており、表示するときに再計算しないので、 組み込みコマンドの pwd は同名のプログラムとは異なった表示をする場合があります。 このため処理は高速ですが、カレントディレクトリ の名前を変更した場合でも、以前のディレクトリ名を表示し続けます。 -.It Li "read [ -p prompt ] [ -e ] variable ... +.It Li "read [ -p prompt ] [ -t timeout ] [ -e ] variable ... -p オプションが指定され、かつ標準入力が端末の場合、 prompt をプロンプトとして表示します。 そして標準入力から 1 行入力します。行端の改行文字を削除し、行を前述の 単語分割の方法に従って分割し、各単語を、valiable... で指定する各変数に 順に代入します。 もし、指定された変数の数より分割された単語の数が多ければ、最後の変数に 残りの単語すべて (IFS の文字を区切りにしてそれらも一緒に) が代入されます。 分割された単語の数より多くの変数が指定されていたなら、 余った変数には空文字列が設定されます。 .Pp -t オプションが指定され、かつ入力がなされる前にタイムアウトすると、 read コマンドは値を割当てずに戻ります。 タイムアウト値の後にはオプションで 's', 'm', 'h' のいずれかの一文字 を付けることが出来、それぞれ秒, 分, 時間を陽に指定します。 どれも指定しない場合には 's' であるものとします。 .Pp -e オプションを指定すると、入力中のバックスラッシュ文字を特別扱いします。 バックスラッシュ文字が改行文字の直前にある場合、 バックスラッシュ文字と改行文字は削除されます。 その他の文字の直前にバックスラッシュがある場合、バックスラッシュは削除され、 文字が IFS に含まれていても、IFS の文字でないかのように扱われます。 .It readonly name ... 指定された名前の変数を読み出し専用とし、あとで値を変更したり unset した りすることができないようにします。以下のように記述することで、 変数を読み出し専用と宣言するのと同時に値を設定することも可能です。 .Bd -literal -offset indent readonly name=value .Ed .Pp 引数が指定されない場合、読み出し専用になっている変数の名前の一覧が表示され ます。 .It Li "set [ { -options | +options | -- } ] arg ... set コマンドは 3 通りの異なった機能を持ちます。 .Bl -item .It 引数を指定しなかった場合、すべてのシェル変数の名前と値の一覧を表示します。 .It options が指定された場合、「引数リスト処理」の節で説明した方法で、 指定されたオプションフラグを設定あるいは解除します。 .It 第 3 の用法は、シェルの位置パラメータを変更する際に使用します。オプションの 設定を変更せずに位置パラメータのみを変更したい場合は set コマンドへの最初 の引数として ``--'' を指定します。arg が指定されない場合、 すべての位置パラメータはクリアされます (``shift $#'' を実行することと 等価です)。 .El .Pp .It setvar variable value 変数に値を代入します。(一般に、setvar を使うよりも variable=value と書くほう が望ましいといえます。setvar は、関数内で、パラメータとして渡された名前を持つ 変数に値を代入するためのものです。) .It shift [ n ] 位置パラメータを n 回シフトします。1 回のシフトにより、$2 の値が $1 に、$3 の 値が $2 に代入されます (以下同様)。また、$# の値は 1 減少します。 位置パラメータがない場合、shift は何もしません。 .It trap [ action ] signal ... シェルが指定されたシグナル signal を受けとったときに、action を解析し実行する ように設定します。シグナルはシグナル番号で指定します。action は空文字列に したり、省略したりすることができます。空文字列の場合、指定されたシグナルは 無視され、省略した場合は、指定したシグナルを受けとったときデフォルトの処理を 行ないます。シェルがサブシェルを起動するとき、trap で指定された (かつ 無視するように設定されていない) シグナルの動作をデフォルトの処理に戻します。 シェルが起動したときにすでに無視されるように設定されていたシグナルに対して trap コマンドを使用しても効果はありません。 .It type [name] ... 各 name をコマンドとして解釈し、コマンド検索の結果を出力します。出力さ れる結果は以下のものがあります。シェルのキーワード、エイリアス、シェル の組み込みコマンド、コマンド、痕跡つきエイリアス (tracked alias)、最後に not found (見つからず) があります。エイリアスについては、エイリアス展開 の結果が出力されます。コマンドと痕跡つきエイリアスについては、そのコマンドの 完全なパス名が印刷されます。 .It ulimit [ -HSacdflmnust ] [ limit ] リソースのリミット値 (リミット値については .Xr getrlimit 2 参照) を設定あるいは表示します。 ``limit'' が指定されている場合、指定されたリソースが設定されます。 それ以外の場合、現在のリソース設定値が表示されます。 .Pp ``-H'' が指定された場合、ハードリミットが設定ないし表示されます。 ハードリミット値を下げることは誰にでもできますが、 それを増やすことができるのはスーパユーザだけです。 オプション ``-S'' を指定した場合はソフトリミットになります。 リミット値を表示する場合、``-S'' か ``-H'' のいずれか一方だけしか 指定できません。 デフォルトでは、表示はソフトリミット、設定はハード/ソフトリミット両方です。 .Pp オプション ``-a'' を指定すると全リソースの設定値が表示されます。 この場合、パラメータ ``limit'' は指定できません。 .Pp この他のオプションは、表示あるいは設定するリソースの種類を指定するものです。 これらは互いに排他的です。 .Bl -tag -width Ds .It -c coredumpsize コアダンプファイルの最大サイズ。512 バイトのブロック単位。 .It -d datasize プロセスのデータセグメントの最大サイズ。キロバイト単位。 .It -f filesize ファイルの最大サイズ。512 バイトブロック単位。これがデフォルトです。 .It -l lockedmem プロセスがロックできるメモリサイズの最大値。キロバイト単位。 .It -m memoryuse プロセスの常駐セットサイズの最大値。キロバイト単位。 .It -n nofiles あるプロセスがオープンできるファイル記述子の最大数。 .It -s stacksize スタックセグメントサイズの最大値。キロバイト単位。 .It -t time 各プロセスで消費できる CPU 時間の最大値。秒単位。 .It -u userproc このユーザ ID で同時に走らせうる最大プロセス数。 .El .It umask [ mask ] umask の値 ( .Xr umask 2 を参照) を、指定された 8 進数の値に設定します。引数が 省略された場合、現在の umask の値が表示されます。 .It unalias [-a] [name] ``name'' が指定された場合、指定された名前のエイリアスを削除します。 ``-a'' オプションが指定された場合、すべてのエイリアスを削除します。 .It unset name ... 指定された変数または関数を unset し、エクスポートされていない状態にします。 指定された名前の変数も関数も存在する場合、変数と関数の両方が unset されます。 .It wait [ job ] 指定されたジョブ job が終了するのを待ち、ジョブ内の最後のプロセスの 終了ステータスを返します。引数が省略された場合、すべてのジョブが終了する まで待ち、終了ステータス 0 を返します。 .El .Ss コマンド行編集 .Nm が端末から対話的に実行されている場合、現在入力中のコマンドおよび コマンド履歴 (組み込みコマンド fc 参照) を vi モードのコマンド行編集機能 により編集することができます。 このモードでは、vi のマニュアルに示されているコマンドのサブセットを用います。 コマンド `set -o vi' により vi モードが開始され、vi の挿入モードに移行します。 vi モード中では、 挿入モードとコマンドモードの両方を自由に切り替えることが可能です。 vi モードは vi と同様であり、 キー によりコマンドモードに移行し、コマンドモードで キーを叩くことで、 行の内容がシェルに渡されます。 .Pp 同様に、コマンド `set -o emacs' により emacs 風のコマンド行編集機能の サブセットを使うことができるようになります。 .Sh 関連項目 .Xr expr 1 , .Xr test 1 .Sh 歴史 .Nm コマンドは、 .At V.1 で登場しました。 .\" -Amended by N.Kumagai 97.12.30 diff --git a/ja/man/man1/telnet.1 b/ja/man/man1/telnet.1 index 7d503a0c12..fbb56e6d52 100644 --- a/ja/man/man1/telnet.1 +++ b/ja/man/man1/telnet.1 @@ -1,1328 +1,1329 @@ .\" Copyright (c) 1983, 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. .\" .\" @(#)telnet.1 8.5 (Berkeley) 3/1/94 -.\" %Id: telnet.1,v 1.10 1998/12/14 22:40:38 billf Exp % +.\" %Id: telnet.1,v 1.10.2.1 1999/06/17 07:27:45 ru Exp % +.\" .\" jpman %Id: telnet.1,v 1.2 1997/05/23 00:55:09 mutoh Stab % .\" .Dd March 1, 1994 .Dt TELNET 1 .Os BSD 4.2 .Sh 名称 .Nm telnet .Nd .Tn TELNET プロトコルを用いて他のホストと通信する .Sh 書式 .Nm -.Op Fl 8EFKLacdfrx +.Op Fl 8EFKLNacdfrx .Op Fl S Ar tos .Op Fl X Ar authtype .Op Fl e Ar escapechar .Op Fl k Ar realm .Op Fl l Ar user .Op Fl n Ar tracefile +.Op Fl s Ar src_addr .Oo .Ar host .Op Ar port .Oc .Sh 解説 .Nm コマンドは、 他のマシンとの間で .Tn TELNET プロトコルを用いた通信を行なう時に用いられます。 .Nm が、 .Ar host 引数なしで起動された場合には、 .Pq Nm telnet\&> プロンプトを表示して、コマンドを受け付けるモードに移行します。 本モードでは、telnet は、後述のコマンドを解釈し、実行できます。 .Nm が .Ar host 引数を付加して起動された場合には、 .Ic open コマンドをその引数で実行した場合と同様の動作を行ないます。 .Pp .Nm コマンドでは、以下のオプションが使用可能です。 .Bl -tag -width indent .It Fl 8 8ビットデータをそのまま通すよう指示します。本オプションは、データ入出力時に .Dv TELNET BINARY オプションを使用することを意味します。 .It Fl E エスケープ文字の解釈を禁止します。 .It Fl F もし Kerberos V5 ユーザ認証を使用している場合 .Fl F オプションはローカル credential をリモートシステムに送るのを許可します。 -すでにローカルに送られている全ての credential を含みます。 +すでにローカルに送られているすべての credential を含みます。 .It Fl K リモートシステムへの自動ログインを行なわないよう指示します。 .It Fl L -出力を8ビットクリーンにします。 +出力を 8 ビットクリーンにします。 本オプションは、データ出力時に .Dv BINARY オプションを使用することを意味します。 .It Fl N 接続先ホストが IP アドレスで与えられた場合、 IP アドレスを元にした名前の検索を抑止します。 .It Fl S Ar tos -IPのサービス型(TOS)を設定します。 TOS は、数字で指定するか、システムが +IP のサービス型 (TOS) を設定します。 TOS は、数字で指定するか、システムが .Pa /etc/iptos ファイルをサポートしている場合には、そのファイル中で定義された 値と対応するシンボルを指定します。 .It Fl X Ar atype .Ar atype で指定されたユーザ認証を無効にします。 .It Fl a 自動ログインを行ないます。リモートシステムで ENVIRON オプションの サポートをしている場合には、 .Ev ENVIRON オプションの .Ev USER 変数をログイン名として用います。 -使用されるログイン名は、カレントユーザIDとログイン名の対応が +使用されるログイン名は、カレントユーザ ID とログイン名の対応が 一致する場合には、 .Xr getlogin 2 で取得される名前です。それ以外の場合は、 UID に対応する名前が 用いられます。 .It Fl c ユーザの .Pa \&.telnetrc ファイルを使いません (本マニュアル中の .Ic toggle skiprc コマンドを参照してください)。 .It Fl d 変数 .Ic debug の初期値を .Dv TRUE に設定します。 .It Fl e Ar escapechar .Nm のエスケープ文字の初期値を .Ar escapechar に設定します。 .Ar escapechar が省略された場合には、 エスケープ文字は無いことになります。 .It Fl f もし Kerberos V5 ユーザ認証を使用している場合 .Fl f オプションはローカル credential をリモートシステムに送るのを許可します。 .It Fl k Ar realm もし Kerberos ユーザ認証を使用している場合 .Fl k オプションを指定すると、 .Xr krb_realmofhost 3 で決定されるリモートホストの realm の代わりに、 .Ar realm からリモートホストに対するチケットが得られるように要求します。 .It Fl l Ar user リモートシステムが .Ev ENVIRON オプションをサポートしている場合、リモートシステムへの接続時に リモートシステムに変数 .Ev USER の値として .Ar user を送信します。 本オプションは、 .Fl a オプションとともに使用します。 また、本オプションは、 .Ic open コマンドととも一緒に使用します。 .It Fl n Ar tracefile トレース情報を記録するために .Ar tracefile をオープンします。 後述の .Ic set tracefile コマンドを参照して下さい。 .It Fl r .Xr rlogin 1 と似たインタフェースを提供します。 -本モードでは、エスケープ文字はチルダ文字(~)に設定されます。 +本モードでは、エスケープ文字はチルダ文字 (~) に設定されます。 ただし、 .Fl e オプションで変更された場合には、この限りではありません。 +.It Fl s Ar src_addr +.Nm +接続の送信元 IP アドレスを、 +.Ar src_addr +に設定します。 +IP アドレスとホスト名のどちらでも指定可能です。 .It Fl x 可能であれば、データストリームの暗号化を有効にします。本オプション は、米国およびカナダ以外の国では使用できません。 .It Ar host -リモートホストの公式な名前、別名、またはIPアドレスを指定し -ます。 +リモートホストの公式な名前、別名、または IP アドレスを指定します。 .It Ar port -telnetが叩くリモートホストのTCPポート番号を指定します。指定されない +telnet が叩くリモートホストの TCP ポート番号を指定します。指定されない 場合には、デフォルトの .Nm ポート番号が使われます。 .El .Pp rlogin モードでは、~. をコマンドラインの先頭で入力すると、 -リモートホストとの接続が切れます。この時、 ~ は +リモートホストとの接続が切れます。この時、~ は .Nm のエスケープ文字 として働きます。 また、~^Z をコマンドラインの先頭で入力すると、 .Nm セッションはサスペンドされます。 そして、~^] をコマンドラインの先頭で入力すると、通常の .Nm のエスケーププロンプトが出力され、コマンド入力モードに移行します。 .Pp コネクションが開設されると、 .Nm は .Dv TELNET LINEMODE を有効にしようとします。 これが失敗すると、次に .Nm は \*(Lqcharacter at a time\*(Rq と \*(Lqold line by line\*(Rq の -2つの入力モードのうち、どちらか1つを選択します。 +2 つの入力モードのうち、どちらか 1 つを選択します。 これは、リモートシステムがサポートするモードに依存します。 .Pp .Dv LINEMODE が有効になった場合、 文字処理は、 リモートシステムの制御のもとでローカルシステムで行なわれます。 入力行の編集や、文字エコーは無効になり、 リモートシステムがそれらの操作情報を中継します。 リモートシステムは、 リモートシステムで生成された特殊文字をすべてローカルシステムに送ります。 その結果、ローカルシステムの制御が可能になります。 .Pp \*(Lqcharacter at a time\*(Rq モードでは、ほとんどのテキスト入力は、 すぐにリモートシステムに送られて処理されます。 .Pp -\*(Lqold line by line\*(Rqモードでは、全てのテキストはローカルにエコーバック +\*(Lqold line by line\*(Rq モードでは、すべてのテキストはローカルにエコーバック されます。そして、通常、完全な行のみがリモートホストに送信されます。 .Pp -\*(Lqold line by line\*(Rq モードでは、全てのテキストはローカルに +\*(Lqold line by line\*(Rq モードでは、すべてのテキストはローカルに エコーされ (普通は) 完全な行だけがリモートホストに送られます。 \*(Lqlocal echo character\*(Rq (初期設定は\*(Lq^E\*(Rq)は、ローカルエコー -の有効/無効を切り替えるのに用いられます(これは、パスワードをエコーバックし +の有効/無効を切り替えるのに用いられます (これは、パスワードをエコーバックし ないために、パスワード入力時によく用いられる機能です)。 .Pp .Dv LINEMODE オプションが有効になっている場合、もしくは .Ic localchars が .Dv TRUE -になっている場合には(デフォルトでは、\*(Lqold line by line\*(Rq に設定されて +になっている場合には (デフォルトでは、\*(Lqold line by line\*(Rq に設定されて います。以下を参照)、ユーザの .Ic quit , .Ic intr , -および .Ic flush 文字はローカルでトラップされます。そして、 .Tn TELNET プロトコルシーケンスとしてリモートホストに送信されます。 .Dv LINEMODE が有効になっている場合には、 ユーザの .Ic susp および .Ic eof もまた .Tn TELNET プロトコルシーケンスとしてリモートホストに送信されます。そして、 .Ic quit は .Dv BREAK のかわりに .Dv TELNET ABORT として送信されます。 また、 (リモートホストが TELNET シーケンスを認識するまで) -端末へのサブシーケンス出力をフラッシュするオプション( +端末へのサブシーケンス出力をフラッシュするオプション ( .Ic toggle , .Ic autoflush , .Ic toggle , .Ic autosynch を参照して下さい) や、( .Ic quit , .Ic intr の場合に) -端末の先行入力をフラッシュするオプション -もあります。 +端末の先行入力をフラッシュするオプションもあります。 .Pp リモートホストと接続中に \*(Lqescape character\*(Rq (初期値は -\*(Lq^]\*(Rq です)を入力することで、 +\*(Lq^]\*(Rq です) を入力することで、 .Nm コマンドモードに移行できます。 コマンドモードに移行すると、通常の対話的画面編集が可能になります。 .Pp .Nm のコマンドモードでは、以下のコマンドが使用できます。 コマンドを入力する場合には、先頭からコマンドを特定できるだけの文字を入れ るだけでコマンドが認識されます。 ( .Ic mode , .Ic set , .Ic toggle , .Ic unset , .Ic slc , .Ic environ , -そして .Ic display コマンドの引数についても同じことがいえます)。 .Pp .Bl -tag -width "mode type" .It Ic auth Ar argument ... auth コマンドは、 .Dv TELNET AUTHENTICATE オプションを用いて送られる認証情報を操作します。 .Ic auth コマンドのとりうる引数は、以下の通りです。 .Bl -tag -width "disable type" .It Ic disable Ar type 指定した認証タイプを無効にします。認証タイプの一覧を見たい場合には、 .Ic auth disable \&? とコマンドを実行して下さい。 .It Ic enable Ar type 指定された認証タイプを有効にします。 認証タイプの一覧を見たい場合には、 .Ic auth enable \&? とコマンドを実行して下さい。 .It Ic status 認証タイプの現在の状態一覧を表示します。 .El .It Ic close .Tn TELNET セッションを終了し、コマンドモードに復帰します。 .It Ic display Ar argument ... .Ic set および .Ic toggle -で設定された値(後述)のすべて、もしくは一部を表示します。 +で設定された値 (後述) のすべて、もしくは一部を表示します。 .It Ic encrypt Ar argument ... encrypt コマンドは、 .Dv TELNET ENCRYPT オプションによって送られる情報を操作します。 .Pp 注意: 輸出規制の関係上、 .Dv TELNET ENCRYPT オプションは、米国およびカナダ以外の国ではサポートされません。 .Pp .Ic encrypt コマンドのとりうる引数は以下の通り: .Bl -tag -width Ar .It Ic disable Ar type Ic [input|output] 指定されたタイプの暗号化を無効にします。 input か output かが省略された場合、両方が無効になります。 .Ic encrypt disable \&? コマンドを使えば type として何が使用できるかを表示できます。 .It Ic enable Ar type Ic [input|output] 指定されたタイプの暗号化を有効にします。 input か output かが省略された場合、両方が無効になります。 .Ic encrypt enable \&? コマンドを使えば type として何が使用できるかを表示できます。 .It Ic input .Ic encrypt start input コマンドと同じです。 .It Ic -input .Ic encrypt stop input コマンドと同じです。 .It Ic output .Ic encrypt start output コマンドと同じです。 .It Ic -output .Ic encrypt stop output コマンドと同じです。 .It Ic start Ic [input|output] 暗号化を開始します。 .Ic input か .Ic output かが省略された場合、 両方が暗号化されます。 .Ic encrypt enable \&? コマンドを使えば type として何が使用できるかを表示できます。 .It Ic status 暗号化の現在の状態を表示します。 .It Ic stop Ic [input|output] 暗号化を中止します。 input か output かを省略した場合は 両方に対して作用します。 .It Ic type Ar type .Ic encrypt start や .Ic encrypt stop が使われた時のデフォルトの暗号化タイプを設定します。 .El .It Ic environ Ar arguments... .Ic environ コマンドは、 .Dv TELNET ENVIRON オプションを用いて送られる変数を取り扱うのに用いられます。 最初に設定される変数は、ユーザ環境変数から取られ、 デフォルトでは .Ev DISPLAY および .Ev PRINTER のみ値が環境に取り込まれます。 変数 .Ev USER が環境に取り込まれるのは、 .Fl a もしくは .Fl l オプションが起動時に指定された場合です。 .Pp .Ic environ コマンドの取りうる引数は、以下の通りです。 .Bl -tag -width Fl .It Ic define Ar variable value 変数 .Ar variable を .Ar value と定義します。 本コマンドで定義された変数は、自動的に環境に取り込まれます。 .Ar value -については、スペースやタブを含む場合には、シングルクォーテー -ション、もしくはダブルクォーテーションで囲んでも構いません。 +については、スペースやタブを含む場合には、シングルクォーテーション、 +もしくはダブルクォーテーションで囲んでも構いません。 .It Ic undefine Ar variable 環境変数 .Ar variable の定義を無効にします。 .It Ic export Ar variable 変数 .Ar variable が、リモートホストの環境に取り込まれるように設定します。 .It Ic unexport Ar variable 変数 .Ar variable を、リモートホストに取り込まないように設定します。ただし、リモートホストへ 明示的に取り込むよう指定された変数に関しては、意味を持ちません。 .It Ic list 現在設定されている環境変数の一覧を表示します。 .Cm * マークが付加されている環境変数については、リモートホストに自動的に取り込ま れます。他の変数は、明示的に要求されない限り、取り込まれることはありません。 .It Ic \&? .Ic environ コマンドのヘルプメッセージを表示します。 .El .It Ic logout .Dv TELNET LOGOUT オプションをリモートホストに送信します。 本コマンドは、 .Ic close と似てますが、リモートホストが .Dv LOGOUT オプションをサポートしていない場合には、何も起きません。 しかしながら、リモートホストが .Dv LOGOUT オプションをサポートしている場合には、本コマンドはリモートホストに .Tn TELNET コネクションの切断を指示します。 リモートホストが再接続のためにセッションのサスペンドもサポートしている場合には、 logout 引数は、セッションを即時切断することを示します。 .It Ic mode Ar type .Ar type は、 .Tn TELNET セッションの状態に依存するオプションの 1 つです。 リモートホストはリクエストモードに入るための許可を求められます。 リモートホストが許可を得られればリクエストモードに入ります。 .Bl -tag -width Ar .It Ic character .Dv TELNET LINEMODE オプションを無効にする、 あるいはリモートホストが .Dv LINEMODE オプションを解釈できない場合に \*(Lqcharacter at a time\*(Rq モードに入ります。 .It Ic line .Dv TELNET LINEMODE オプションを有効にする、 あるいはリモートホストが .Dv LINEMODE オプションを解釈できない場合に \*(Lqold-line-by-line\*(Rq モードに入ろうとします。 .It Ic isig Pq Ic \-isig .Dv LINEMODE オプションの .Dv TRAPSIG -モードを有効(無効)にします。 +モードを有効 (無効) にします。 .Dv LINEMODE オプションが有効になっている必要があります。 .It Ic edit Pq Ic \-edit .Dv LINEMODE オプションの .Dv EDIT -モードを有効(無効)にします。 +モードを有効 (無効) にします。 .Dv LINEMODE オプションが有効になっている必要があります。 .It Ic softtabs Pq Ic \-softtabs .Dv LINEMODE オプションの .Dv SOFT_TAB -モードを有効(無効)にします。 +モードを有効 (無効) にします。 .Dv LINEMODE オプションが有効になっている必要があります。 .It Ic litecho Pq Ic \-litecho .Dv LINEMODE オプションの .Dv LIT_ECHO -モードを有効(無効)にします。 +モードを有効 (無効) にします。 .Dv LINEMODE オプションが有効になっている必要があります。 .It Ic \&? .Ic mode コマンドのヘルプメッセージを表示します。 .El .It Xo .Ic open Ar host .Op Fl l Ar user .Oo Op Fl .Ar port Oc .Xc 指定されたホストとの間で、コネクションを開設します。 ポート番号が指定されない場合は、 .Nm は、デフォルトのポート番号を用いて、指定されたホストの .Tn TELNET サーバとの接続を試みます。 -ホストの指定については、ホスト名( +ホストの指定については、ホスト名 ( .Xr hosts 5 -を参照して下さい)もしくは、 -ドット表記のIPアドレス( +を参照して下さい) もしくは、 +ドット表記のIPアドレス ( .Xr inet 3 -を参照して下さい)で指定します。 +を参照して下さい) で指定します。 .Fl l オプションは .Ev ENVIRON オプションによってリモートシステムに渡されるユーザ名を指定するのに 使われます。 標準でないポートにつなげた時は .Nm -は全ての +はすべての .Tn TELNET オプションの自動初期化を省略します。 マイナス記号の後にポート番号が指定されている場合は、 初期オプション交渉 (initial option negotiation) が行なわれます。 接続した後、ホームディレクトリの .Pa \&.telnetrc ファイルが読み込まれます。 # で始まる行はコメントです。 空行は無視されます。 空白以外で始まっている行は マシンエントリの始まりです。 最初の項目は接続しているマシンの名前です。 その後の項目、およびそれに続く空白で始まっている 行は .Nm コマンドであるとみなされ、 .Nm コマンドプロンプトでそのコマンドを入力した場合と 同じように処理されます。 .It Ic quit .Tn TELNET セッションをただちに切断し、 .Nm を終了します。 コマンドモードにおいて、 EOF を入力した場合も同様です。 .It Ic send Ar arguments 1つ以上の特殊文字シーケンスをリモートホストに送信します。 以下は指定可能な引数です -(1度に複数の引数を指定できます)。 +(1 度に複数の引数を指定できます)。 .Pp .Bl -tag -width escape .It Ic abort .Dv TELNET ABORT (Abort processes) シーケンスを送ります。 .It Ic ao .Dv TELNET AO (Abort Output) シーケンスを送ります。 これはリモートシステム .Em に 端末 .Em へ -全ての出力をフラッシュさせます。 +すべての出力をフラッシュさせます。 .It Ic ayt .Dv TELNET AYT (Are You There) シーケンスを送ります。 リモートシステムはそれに応答するかしないかを選択できます。 .It Ic brk .Dv TELNET BRK (Break) シーケンスを送ります。 リモートシステムにとって 重要な意味があるかもしれません。 .It Ic ec .Dv TELNET EC (Erase Character) シーケンスを送ります。 これはリモートシステムに最後に入力された文字を 消去させます。 .It Ic el .Dv TELNET EL (Erase Line) シーケンスを送ります。 これはリモートシステムに現在入力中の行を 消去させます。 .It Ic eof .Dv TELNET EOF (End Of File) シーケンスを送ります。 .It Ic eor .Dv TELNET EOR (End of Record) シーケンスを送ります。 .It Ic escape 現在の .Nm エスケープ文字を送ります (初期値は \*(Lq^\*(Rq です)。 .It Ic ga .Dv TELNET GA (Go Ahead) シーケンスを送ります。 おそらくリモートシステムにとってたいした意味は無いでしょう。 .It Ic getstatus リモートシステムが .Dv TELNET STATUS コマンドをサポートしていれば、 .Ic getstatus はサーバに現在のオプションステータスを送るように要求します。 .It Ic ip .Dv TELNET IP (Interrupt Process) シーケンスを送ります。 これはリモートシステムに現在実行中のプロセスを 中断させます。 .It Ic nop .Dv TELNET NOP (No OPeration) シーケンスを送ります。 .It Ic susp .Dv TELNET SUSP (SUSPend process) シーケンスを送ります。 .It Ic synch .Dv TELNET SYNCH シーケンスを送ります。 このシーケンスはリモートシステムに、 -それまでに送られた(しかしまだ読み込まれていない)入力を +それまでに送られた (しかしまだ読み込まれていない) 入力を 捨てさせます。 このシーケンスは .Tn TCP 緊急データとして送られます (しかしリモートシステムが .Bx 4.2 の場合、効かないかも知れません。 もし効かなかった場合は端末に \*(Lqr\*(Rq が返される場合があります)。 .It Ic do Ar cmd .It Ic dont Ar cmd .It Ic will Ar cmd .It Ic wont Ar cmd .Dv TELNET DO .Ar cmd シーケンスを送ります。 .Ar cmd は 0 から 255 までの十進数か、 特定の .Dv TELNET コマンドに対するシンボル名です。 .Ar cmd として 既知のシンボル名のリストを含むヘルプメッセージを表示する .Ic help または .Ic \&? を指定可能です。 .It Ic \&? .Ic send コマンドのヘルプメッセージを表示します。 .El .It Ic set Ar argument value .It Ic unset Ar argument value .Ic set コマンドは、指定した .Nm -変数の1つを、特定の値を設定するか、 +変数の 1 つを、特定の値を設定するか、 .Dv TRUE にします。 特別な値 .Ic off は、変数に関連する機能を無効にします。これは、 .Ic unset コマンドと同じです。 .Ic unset コマンドは、指定された機能を無効にするか、 .Dv FALSE に設定します。 変数の値は .Ic display コマンドによって調べることができます。 トグルでなく設定、無効にされる変数を以下に示します。 また .Ic toggle コマンドに対する変数は .Ic set および .Ic unset コマンドによって明示的に 設定および無効にすることができます。 .Bl -tag -width escape .It Ic ayt .Tn TELNET がローカル文字モードになっているか、 あるいは .Dv LINEMODE が有効になっていて、 ステータス文字が入力された場合、 .Dv TELNET AYT -シーケンス(前述の +シーケンス (前述の .Ic send ayt 参照) がリモートホストに送られます。\*(LqAre You There\*(Rq 文字の初期値は ターミナルステータス文字です。 .It Ic echo これは \*(Lqline by line\*(Rq モード時に -入力された文字をローカルに表示する(通常処理)か -しないか(たとえばパスワード入力時)を -切替えるのに使われる値(初期値は \*(Lq^E\*(Rq )です。 +入力された文字をローカルに表示する (通常処理) か +しないか (たとえばパスワード入力時) を +切替えるのに使われる値 (初期値は \*(Lq^E\*(Rq ) です。 .It Ic eof .Nm が .Dv LINEMODE あるいは \*(Lqold line by line\*(Rq モードで動作していれば、 行の最初の文字としてこの文字を入力すると、 この文字をリモートシステムに送ります。 初期値として、端末の .Ic eof 文字が使われます。 .It Ic erase .Nm が .Ic localchars -モード(後述の +モード (後述の .Ic toggle .Ic localchars を参照) になっていて、 .Sy そして \*(Lqcharacter at a time\*(Rq モードで動作していれば、 この文字が入力された時に .Dv TELNET EC -シーケンス(前述の +シーケンス (前述の .Ic send .Ic ec -を参照)が +を参照) が リモートシステムに送られます。 初期値として、端末の .Ic erase 文字が使われます。 .It Ic escape これは (リモートシステムと接続している時に) .Nm コマンドモードに入る .Nm -エスケープ文字(初期値 \*(Lq^[\*(Rq) です。 +エスケープ文字 (初期値 \*(Lq^[\*(Rq) です。 .It Ic flushoutput .Nm が .Ic localchars -モード(後述の +モード (後述の .Ic toggle .Ic localchars を参照) になっていて、 .Ic flushoutput 文字が入力された時に .Dv TELNET AO -シーケンス(前述の +シーケンス (前述の .Ic send .Ic ao -を参照)が +を参照) が リモートシステムに送られます。 初期値として、端末の .Ic flush 文字が使われます。 .It Ic forw1 .It Ic forw2 .Nm が .Dv LINEMODE で動作している時に この文字が入力されると 行の一部がリモートシステムに送られます。 初期値として、端末の eol および eol2 文字が 使われます。 .It Ic interrupt .Nm が .Ic localchars -モード(後述の +モード (後述の .Ic toggle .Ic localchars を参照) になっている時に、 .Ic interrupt 文字が入力されると .Dv TELNET IP -シーケンス(前述の +シーケンス (前述の .Ic send .Ic ip -を参照)が +を参照) が リモートホストに送られます。 初期値として、端末の .Ic intr 文字が使われます。 .It Ic kill .Nm が .Ic localchars -モード(後述の +モード (後述の .Ic toggle .Ic localchars を参照) になっていて、 .Ic そして \*(Lqcharacter at a time\*(Rq モードで動作していれば、この文字が入力された時に .Dv TELNET EL -シーケンス(前述の +シーケンス (前述の .Ic send .Ic el -を参照)がリモートシステムに送られます。 +を参照) がリモートシステムに送られます。 初期値として、端末の .Ic kill 文字が使われます。 .It Ic lnext .Nm が .Dv LINEMODE か \*(Lqold line by line\*(Rq モードで動作している時に、端末の .Ic lnext 文字がこの文字として使われます。 初期値として、端末の .Ic lnext 文字が使われます。 .It Ic quit .Nm が .Ic localchars -モード(後述の +モード (後述の .Ic toggle .Ic localchars を参照) になっていて、 .Ic quit 文字が入力されると、 .Dv TELNET BRK -シーケンス(前述の +シーケンス (前述の .Ic send .Ic brk -を参照)が +を参照) が リモートホストに送られます。 初期値として、端末の .Ic quit 文字が使われます。 .It Ic reprint .Nm が .Dv LINEMODE あるいは \*(Lqold line by line\*(Rq モードで動作している時に、端末の .Ic reprint 文字がこの文字として使われます。 初期値として、端末の .Ic reprint 文字が使われます。 .It Ic rlogin これは rlogin エスケープ文字です。 もし設定されていれば、行の最初でこの文字が入力されている場合を除き、 通常の .Nm エスケープ文字は無視されます。 行の最初でこの文字に続けて "." が入力された場合、 接続が切れます。 続けて ^Z が入力された場合、 .Nm コマンドが中断されます。 初期状態では .Nm rlogin エスケープ文字は 無効になっています。 .It Ic start もし .Dv TELNET TOGGLE-FLOW-CONTROL オプションが有効になっていれば、端末の .Ic start 文字としてこの文字が使われます。 初期値として、端末の .Ic start 文字が使われます。 .It Ic stop もし .Dv TELNET TOGGLE-FLOW-CONTROL オプションが有効になっていれば 端末の .Ic stop 文字がこの文字として使われます。 初期値として、端末の .Ic stop 文字が使われます。 .It Ic susp .Nm が .Ic localchars モードになっているか、 .Dv LINEMODE が有効になっている場合に .Ic suspend 文字が入力されると、 .Dv TELNET SUSP -シーケンス(前述の +シーケンス (前述の .Ic send .Ic susp -を参照)が +を参照) が リモートホストに送られます。 初期値として、端末の .Ic suspend 文字が使われます。 .It Ic tracefile これは .Ic netdata あるいは .Ic option によって トレースが .Dv TRUE になっている場合に、出力が書き出されるファイルです。 もし .Dq Fl に設定されていれば、 -トレース情報は標準出力(デフォルト)に書き出されます。 +トレース情報は標準出力 (デフォルト) に書き出されます。 .It Ic worderase .Nm が .Dv LINEMODE か \*(Lqold line by line\*(Rq モードで動作している時に、端末の .Ic worderase 文字がこの文字として使われます。 初期値として、端末の .Ic worderase 文字が使われます。 .It Ic \&? .Ic set .Pq Ic unset コマンドのヘルプメッセージを表示します。 .El .It Ic slc Ar state .Ic slc (Set Local Characters) コマンドは、 .Dv TELNET LINEMODE オプションが有効な時に働く特殊文字を設定したり変更したりします。 -特殊文字は( +特殊文字は ( .Ic ip や .Ic quit のような) .Tn TELNET コマンドシーケンスや、( .Ic erase .Ic kill のような) -ラインエディット文字に割り付けられます。 +行編集文字に割り付けられます。 特殊文字はデフォルトで環境に取り込まれます。 .Bl -tag -width Fl .It Ic check 現在の特殊文字の設定を確認します。 -現在の全ての特殊文字の設定を送るように +現在のすべての特殊文字の設定を送るように リモートに要求を送り、 もしローカルな設定と違いがあれば、 ローカルな設定をリモートの値にします。 .It Ic export ローカルの特殊文字のデフォルトを変えます。 ローカルの特殊文字のデフォルトは .Nm を起動した時の端末の特殊文字です。 .It Ic import リモートの特殊文字のデフォルトを変えます。 リモートの特殊文字のデフォルトは .Tn TELNET 接続が確立した時のリモートの特殊文字です。 .It Ic \&? .Ic slc コマンドのヘルプメッセージを表示します。 .El .It Ic status .Nm の現在のステータスを表示します。 これには現在のモードと同じくらい接続先のモードについての状態が含まれています。 .It Ic toggle Ar arguments ... .Nm -の動作を制御するさまざまな変数の値( +の動作を制御するさまざまな変数の値 ( .Dv TRUE か .Dv FALSE ) を切替えます。 この変数は前述の .Ic set や .Ic unset を使って明示的に .Dv TRUE または .Dv FALSE に設定できます。複数の引数を指定可能です。 これらの変数の値は .Ic display コマンドによって調べることができます。 有効な引数の値は以下の通りです。 .Bl -tag -width Ar .It Ic authdebug 認証コードに対するデバッグ情報を有効にする。 .It Ic autoflush .Ic autoflush と .Ic localchars が両方とも .Dv TRUE で、 .Ic ao または .Ic quit -文字が設定されている(そして +文字が設定されている (そして .Tn TELNET シーケンスに変換されている; 詳細は前述の .Ic set を参照)場合、 -リモートシステムが( +リモートシステムが ( .Dv TELNET TIMING MARK によって) それらの .Tn TELNET シーケンスを処理したと認められるまで、 .Nm がどんなデータも端末に表示しないようにします。 初期値は、端末で "stty noflsh" を実行していなければ .Dv TRUE 、 していれば .Dv FALSE -です( +です ( .Xr stty 1 参照)。 .It Ic autodecrypt .Dv TELNET ENCRYPT オプションが交渉 (negotiate) されている時、デフォルトでは -データの暗号(復号)化は自動的には始まりません。 +データの暗号 (復号) 化は自動的には始まりません。 autoencrypt (autodecrypt) コマンドは 出力 (入力) の暗号化ができるだけ早く有効になるようにします。 .Pp 注意: 輸出規制の関係上、 .Dv TELNET ENCRYPT オプションは、米国およびカナダ以外の国ではサポートされません。 .It Ic autologin もしリモートで .Dv TELNET AUTHENTICATION オプションがサポートされている場合、 .Nm は自動認証を行うために、それを使おうとします。 .Dv AUTHENTICATION オプションがサポートされていない場合、 ログイン名は .Dv TELNET ENVIRON オプションを使用して伝えられます。 このコマンドは .Ic open コマンドで .Fl a オプションが指定された場合と同じです。 .It Ic autosynch .Ic autosynch と .Ic localchars が両方とも .Dv TRUE になっている時に .Ic intr または .Ic quit -文字が入力されると( +文字が入力されると ( .Ic intr および .Ic quit 文字の詳細は前述の .Ic set を参照)、 .Tn TELNET シーケンスが送られた結果は .Dv TELNET SYNCH に従います。 これは、リモートシステムに、 両方の .Tn TELNET シーケンスが読み込まれて作用するまで、 -それまでの全ての入力を捨てさせる +それまでのすべての入力を捨てさせる .Ic べき です。 初期値は .Dv FALSE です。 .It Ic binary 入力と出力の両方に対して、 .Dv TELNET BINARY オプションを有効または無効にします。 .It Ic inbinary 入力に対する .Dv TELNET BINARY オプションを有効または無効にします。 .It Ic outbinary 出力に対する .Dv TELNET BINARY オプションを有効または無効にします。 .It Ic crlf もし .Dv TRUE なら、キャリッジリターンが .Li として送られます。 .Dv FALSE なら .Li として送られます。 初期値は .Dv FALSE です。 .It Ic crmod キャリッジリターンモードを切替えます。 このモードが有効なら リモートホストから受けとられたほとんどのキャリッジリターンは キャリッジリターンとラインフィードに割り当てられます。 このモードはこれらの文字が入力された時には作用せず、 受けとらえた時にだけ作用します。 このモードはリモートホストがキャリッジリターンだけを送らなければ、 ラインフィードしないので、必ず役に立つというわけではありません。 初期値は .Dv FALSE です。 .It Ic debug -ソケットレベルデバッグ( +ソケットレベルデバッグ ( .Ic スーパユーザ にのみ役立つ) を切替えます。 初期値は .Dv FALSE です。 .It Ic encdebug 暗号化コードに対するデバッグ情報を有効にする。 .It Ic localchars もし .Dv TRUE ならば、 .Ic flush , .Ic interrupt , .Ic quit , .Ic erase , -そして .Ic kill -文字(前述の +文字 (前述の .Ic set -参照)はローカルに認識され、(うまくいけば)適当な +参照) はローカルに認識され、(うまくいけば) 適当な .Tn TELNET -コントロールシーケンス(それぞれ +コントロールシーケンス (それぞれ .Ic ao , .Ic ip , .Ic brk , .Ic ec , -および .Ic el ; 前述の .Ic send -参照)に変換されます。 +参照) に変換されます。 初期値は \*(Lqold line by line\*(Rq モードでは .Dv TRUE \*(Lqcharacter at a time\*(Rq モードでは .Dv FALSE です。 .Dv LINEMODE オプションが有効の時は、 .Ic localchars の値は無視されて、常に .Dv TRUE になります。 もし .Dv LINEMODE が有効になったことがあれば、 .Ic quit は .Ic abort として送られ、 .Ic eof and .Ic suspend は .Ic eof and .Ic susp として送られます (前述の .Ic send 参照)。 .It Ic netdata -(16進フォーマットによる)全てのネットワークデータの表示を切替えます。 +(16 進フォーマットによる) すべてのネットワークデータの表示を切替えます。 初期値は .Dv FALSE です。 .It Ic options ( .Tn TELNET オプションを処理する時の) 内部の .Nm プロトコルの処理の表示を切替えます。 初期値は .Dv FALSE です。 .It Ic prettydump .Ic netdata が有効になっている時、 .Ic prettydump が有効になっていれば、 .Ic netdata コマンドの出力を、より見やすいフォーマットにします。 出力の各文字の間にはスペースがはさまれ、 .Nm エスケープシーケンスの前には、 探しやすいように '*' が置かれます。 .It Ic skiprc skiprc が .Dv TRUE になっていると、 .Nm はコネクションが開設される時に ホームディレクトリから .Pa \&.telnetrc を読まないようにします。 初期値は .Dv FALSE です。 .It Ic termdata -(16進フォーマットによる)全ての端末データの表示を切替えます。 +(16 進フォーマットによる) すべての端末データの表示を切替えます。 初期値は .Dv FALSE です。 .It Ic verbose_encrypt .Ic verbose_encrypt が .Dv TRUE になっていると、 .Nm はメッセージを表示するたびに暗号化が有効か無効かを表示します。 初期値は .Dv FALSE です。 注意: 輸出規制の関係上、 データの暗号化は、米国およびカナダ以外の国ではサポートされません。 .It Ic \&? .Ic toggle コマンドのヘルプメッセージを表示します。 .El .It Ic z .Nm コマンドをサスペンドします。このコマンドは、ユーザが .Xr csh 1 を使用している時にのみ使用可能です。 .It Ic \&! Op Ar command ローカルシステムのサブシェルで、コマンドを1つ実行できます。 .Ar command が指定されなかった場合、サブシェルが対話モードで起動されます。 .It Ic \&? Op Ar command ヘルプメッセージを表示します。 引数が指定されなかった場合、 .Nm はコマンド一覧を表示します。 .Ar command が指定された場合、 .Nm はそのコマンドのヘルプメッセージを表示します。 .El .Sh 環境変数 .Nm は、少なくとも .Ev HOME , .Ev SHELL , .Ev DISPLAY , -および .Ev TERM 環境変数を用います。 他の環境変数は、 .Dv TELNET ENVIRON オプションによりリモートホストに送られます。 .Sh 関連項目 .Xr rlogin 1 , .Xr rsh 1 , .Xr hosts 5 , .Xr nologin 5 , .Xr telnetd 8 .Sh 関連ファイル .Bl -tag -width ~/.telnetrc -compact .It Pa ~/.telnetrc -ユーザカスタマイズ可能なtelnet初期設定ファイル +ユーザカスタマイズ可能な telnet 初期設定ファイル .El .Sh 歴史 .Nm コマンドは、 .Bx 4.2 ではじめて実装されました。 .Sh 注意 リモートシステムの中には、\*(Lqold line by line\*(Rq モードで 手動でエコーバックを切り替えなければならない場合があります。 .Pp \*(Lqold line by line\*(Rq モードもしくは .Dv LINEMODE では、端末の .Ic eof 文字は、 それが行の先頭にある時だけ -認識され(リモートシステムに送られ)ます。 +認識され (リモートシステムに送られ) ます。 diff --git a/ja/man/man1/top.1 b/ja/man/man1/top.1 index 1614f82dba..e44d831132 100644 --- a/ja/man/man1/top.1 +++ b/ja/man/man1/top.1 @@ -1,382 +1,382 @@ .\" NOTE: changes to the manual page for "top" should be made in the .\" file "top.X" and NOT in the file "top.1". .\" jpman %Id: top.1,v 1.3 1997/08/19 03:06:41 h-nokubi Stab % .nr N %topn% .nr D %delay% .TH TOP 1 Local .UC 4 .SH 名称 top \- CPU プロセスの上位リストに関する情報を表示/更新する .SH 書式 .B top [ .B \-SbiInqut ] [ .BI \-d count ] [ .BI \-s time ] [ .BI \-o field ] [ .BI \-U username ] [ .I number ] .SH 解説 .\" This defines appropriate quote strings for nroff and troff .ds lq \&" .ds rq \&" .if t .ds lq `` .if t .ds rq '' .\" Just in case these number registers aren't set yet... .if \nN==0 .nr N 10 .if \nD==0 .nr D 5 .I top はシステム内の上位 .if !\nN==-1 \nN プロセスを表示し、その情報を定期的に更新します。 .if \nN==-1 \ \{\ 標準出力がインテリジェント端末 (以下を参照) なら、 デフォルトでは端末画面に合わせて表示プロセス数を決定します。 それ以外の場合、適切な数のプロセス (約 20 プロセス) が表示されます。 .\} 生の CPU パーセンテージを用いてプロセス順位を決めます。もし .I number が指定されると、デフォルト値に代えて、上位 .I number プロセスが表示されます。 .PP .I top の動作は高機能端末とそうでない端末とで異なります。 この差異によって、いくつかのオプションのデフォルト値も変わってきます。 以下の部分では、\*(lqインテリジェント\*(rq 端末とは、 カーソルアドレシング、画面クリアおよび行末までのクリアをサポートしている 端末のことを指します。 逆に \*(lqダム\*(rq 端末とは、そのような機能をサポートしていないものを いいます。 .I top の出力をファイルにリダイレクトすると、 あたかもダム端末上で動作しているように振る舞います。 .SH オプション .TP .B \-S システムプロセスも画面に表示します。 pager や swapper といったシステムプロセスは通常、表示されませんが、 このオプションによりそれらも見えるようになります。 .TP .B \-b \*(lqバッチ\*(rq モードにします。 バッチモードでは、端末からの入力は全て無視されます。 ただし割り込みキャラクタ (^C や ^\e など) は有効です。 ダム端末上で実行する場合や出力先が端末以外の場合は、これがデフォルトです。 .TP .B \-i \*(lq対話的実行\*(rq モードにします。 対話的実行モードでは、あらゆる入力は直ちに読み込んで処理されます。 どのキーがどういう機能をもっているかについては、 \*(lq対話的実行モード\*(rq のセクションを参照して下さい。 コマンドが処理されると、そのコマンドが理解されなかった場合でも、 画面は直ちに更新されます。 出力先がインテリジェント端末の場合は、これがデフォルトです。 .TP .B \-I アイドル状態のプロセスを表示しません。 デフォルトでは、 top はアクティブプロセスもアイドルプロセスも両方とも表示します。 .TP .B \-t .I top プロセスを表示しないようにします。 .TP .B \-n \*(lq非対話的実行\*(rq モードにします。 これは \*(lqバッチ\*(rq モードと同じです。 .TP .B \-q .I top を -20 に renice し、より高速に実行されるようにします。 この機能は、システムが大変重い場合に、問題箇所を発見する可能性を高めるために 用いられます。 このオプションは root のみ使用可能です。 .TP .B \-u uid 値をユーザ名に変換する時間を割かないようにします。 通常、 .I top は必要に応じてファイル \*(lq/etc/passwd\*(rq を読み、 出現する全てのユーザ id 値をログイン名に変換します。 このオプションはその変換を全て止め、できるだけ実行時間を低減させます。 ログイン名の代わりに uid 値が表示されます。 .TP .BI \-d count .I count 回だけ表示し、その後終了します。 1 回の表示とは、1 回の画面更新のことです。 このオプションにより、ユーザは希望する回数だけ状況を表示し、 その後自動的に .I top を終了させることができます。 インテリジェント端末では、表示回数の上限は設定されていません。 ダム端末ではデフォルト値は 1 回です。 .TP .BI \-s time 画面更新間隔を .I time 秒に設定します。デフォルトの画面更新間隔は \nD 秒です。 .TP .BI \-o field プロセス表示領域を指定したフィールドによってソートします。 フィールド名には出力で示されているカラム名を用いますが、小文字で指定します。 しばしば用いられる値は \*(lqcpu\*(rq, \*(lqsize\*(rq, \*(lqres\*(rq, \*(lqtime\*(rq ですが、これは OS によっても異なります。 必ずしも全ての OS でこのオプションがサポートされているわけではないことに 注意して下さい。 .TP .BI \-U username ユーザ .IR username が所有しているプロセスのみ表示します。 現在のところ、このオプションはユーザ名指定のみ可能で、uid 値は指定できません。 .PP .I count と .I number はいずれも \*(lq無限\*(rq を指定でき、 その場合、それらは可能な限り引き延ばされます。 これは、キーワード \*(lqinfinity\*(rq, \*(lqmaximum\*(rq, \*(lqall\*(rq のいずれかの、 一意に識別可能な先頭からの部分文字列を指定することで行われます。 実際、インテリジェント端末での .I count のデフォルト値は .BI infinity となっています。 .PP コマンドラインのオプションを調べる前に、 環境変数 .B TOP が調べられます。これによりユーザ自身のデフォルト値を設定できます。 表示プロセス数も環境変数 .BR TOP で指定可能です。 オプション .BR \-I , .BR \-S , .BR \-u , .B \-t は実際はトグルオプションです。これらのオプションを 2 回指定すると、 最初の指定を無効にします。 ですから、環境変数 .B TOP を \*(lq\-I\*(rq と設定しているユーザは、 \*(lqtop \-I\*(rq とすることでアイドルプロセスの状況を見ることができます。 .SH 対話的実行モード \*(lq対話的実行モード\*(rq で動作している場合、 .I top は端末からコマンドを読み込み、それに応じて動作を行います。 このモードでは端末は \*(lqCBREAK\*(rq モードに設定され、 入力文字が速やかに処理されるようになります。 .I top の表示と表示の間、 つまり .I top が .I time 秒が経過するのを待っている間、ほとんどいつでもキー入力可能です。 実際キーが押されると、そのコマンドは直ちに処理され、 画面が更新されます (そのコマンドが指示した変更も反映されます)。 これはコマンドが正しくない場合にも行われます。 画面を更新している最中にキーが押されると、 .I top は画面更新を終らせて、そのコマンドを処理します。 コマンドによっては更に情報の指定が必要になるものもありますが、 その場合、それに応じてユーザに入力が求められます。 その情報を入力する間、ユーザの削除キーと行削除キー ( .IR stty コマンドで設定される) が利用でき、改行により入力が完了します。 .PP 現在のところ、以下のコマンドが利用可能です (^L は control-L を表します): .TP .B ^L 画面を再描画します。 .IP "\fBh\fP\ or\ \fB?\fP" コマンド一覧 (ヘルプ画面) を表示します。 .TP .B q .I top を終了します。 .TP .B d 表示する画面数を変更します (新しい数値入力が求められます)。 次回の表示が 1 回目となります。ですから .B d1 と入力すると、 .I top は 1 回表示して直ちに終了します。 .TP .B n or # 表示するプロセス数を変更します (新しい数値入力が求められます)。 .TP .B s 表示間隔の秒数を変更します (新しい数値入力が求められます)。 .TP .B k プロセスリストにシグナル (デフォルトでは \*(lqkill\*(rq) を送ります。 .IR kill (1) コマンドと同様の働きをします。 .TP .B r プロセスリストの優先度 (\*(lqnice\*(rq 値) を変更します。 .IR renice (8) コマンドと同様の働きをします。 .TP .B u 指定したユーザ名のユーザが所有するプロセスのみ表示します (ユーザ名入力 が求められます)。 ユーザ名として単に \*(lq+\*(rq が指定された場合、 全ユーザのプロセスが表示されます。 .TP .B e 前回の .BR k ill または .BR r enice コマンドで生じたシステムエラーがあれば、そのリストを表示します。 .TP .B i (または .BR I ) アイドルプロセスの表示有無を切り替えます。 .TP .B t .I top の表示有無を切り替えます。 .SH 表示 実際の表示画面は、そのマシンで動作している Unix の種類によって異なります。 ここでの説明は、この特定マシンで動作する top コマンドの出力と 厳密には合っていないかもしれません。 相違点はこのマニュアルの終りに示してあります。 .PP 表示画面の先頭数行にはシステム状態に関する情報として、 プロセスに割り当てられた最終プロセス ID (ほとんどのシステム)、 3 種のロードアベレージ、現在時刻、存在するプロセス数、 各状態 (sleep 中、実行中、実行開始中、ゾンビ、停止中) のプロセス数、 各プロセッサ状態 (ユーザ, nice, システム, アイドル) で消費した時間の割合 等が表示されます。 物理メモリおよび仮想メモリの割り当てに関する情報も表示されます。 .PP 画面の残りの部分には各プロセスに関する情報が表示されます。 表示項目は、内容的には .IR ps (1) に似ていますが、正確には同じではありません。 PID はプロセス id、USERNAME はプロセス所有者名 ( .B \-u 指定時は UID カラムが USERNAME に取って替わる)、 PRI は現在のプロセス優先度、 NICE は nice 値 (\-20 から 20 までの範囲)、 SIZE はプロセスサイズの合計 (text, data, stack)、 RES は現在のメモリ常駐量 (SIZE と RES はいずれもキロバイト単位)、 STATE は現在の状態 (\*(lqsleep\*(rq, \*(lqWAIT\*(rq, \*(lqrun\*(rq, \*(lqidl\*(rq, \*(lqzomb\*(rq, \*(lqstop\*(rq のいずれか)、 TIME はプロセスが消費したシステム時間およびユーザ時間の秒数、 WCPU は (もしあれば) 重み付き CPU パーセンテージ (これは .IR ps (1) が CPU として表示するものと同じ)、 CPU は生のパーセンテージで、プロセス順序を決めるソート処理に用いられるもの、 そして COMMAND はプロセスが現在実行しているコマンド名です (もしプロセスが スワップアウト中なら、このカラムには \*(lq\*(rq という印がつく)。 .SH 注意 \*(lqABANDONED\*(rq 状態 (カーネル中では \*(lqSWAIT\*(rq 状態として 知られています) は捨て去られたものゆえ、この名称がついています。 プロセスはこの状態で終るべきではありません。 .SH 作者 William LeFebvre, EECS Department, Northwestern University .SH 環境変数 .DT TOP ユーザが設定できるオプションのデフォルト値 .SH 関連ファイル .DT /dev/kmem カーネルメモリ .br /dev/mem 物理メモリ .br /etc/passwd uid 値をユーザ名に変換するのに使用 .br /kernel システムイメージ .SH バグ .B \-I のデフォルト値が もう一度変更されましたが、私を責めないで下さい。 .I top が全プロセスを表示するわけではないことで大変多くの人が混乱したため、 バージョン 2 の頃と同様、デフォルトでアイドルプロセスも表示することに 決めました。 しかしこの動作に耐えられない人々のために、環境変数 .B TOP に \*(lqデフォルト\*(rq オプションを設定しておく機能を 追加しました (オプションのセクションを参照)。 バージョン 3.0 が持っている振る舞いが必要な人は、環境変数 .B TOP に値 \*(lq\-I\*(rq を設定するだけで OK です。 .PP スワップされたプロセスに対するコマンド名は追跡すべきですが、 それを行うとプログラムの動作が遅くなるでしょう。 .PP .IR ps (1) と同様、 .I top が更新情報を収集している間に事態が変化する可能性があります。 表示内容は現実に近い近似値に過ぎません。 .SH 関連項目 kill(1), ps(1), stty(1), mem(4), renice(8) -.SH FreeBSD 2.x 版 +.SH FreeBSD に関する注釈 .SH メモリに関する説明 Mem: 9220K Active, 1032K Inact, 3284K Wired, 1MB Cache, 2M Buf, 1320K Free Swap: 91M Total, 79M Free, 13% Inuse, 80K In, 104 K Out .B K: キロバイト。 .TP .B M: メガバイト。 .TP .B %: 1/100。 .TP .B Active: アクティブなページ数。 .TP .B Inact: アクティブでないページ数。 .TP .B Wired: 固定されているページ数。キャッシュされたファイルデータページを含む。 .TP .B Cache: VM レベルのディスクキャッシュに使用しているページ数。 .TP .B Buf: BIO レベルのディスクキャッシュに使用しているページ数。 .TP .B Free: 未使用ページ数。 .TP .B Total: 使用可能なスワップ合計。 .TP .B Free: 未使用スワップ合計。 .TP .B Inuse: 使用中スワップ。 .TP .B In: (直前の表示間隔において) スワップデバイスからページインしたページ数 .TP .B Out: (直前の表示間隔において) スワップデバイスにページアウトしたページ数 diff --git a/ja/man/man1/vidcontrol.1 b/ja/man/man1/vidcontrol.1 index 4dc7a0276a..3471acab28 100644 --- a/ja/man/man1/vidcontrol.1 +++ b/ja/man/man1/vidcontrol.1 @@ -1,159 +1,208 @@ +.\" t .\" .\" vidcontrol - a utility for manipulating the syscons video driver .\" .\" 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. .\" .\" @(#)vidcontrol.1 -.\" %Id: vidcontrol.1,v 1.14.2.1 1999/04/08 13:53:31 ghelmer Exp % +.\" %Id: vidcontrol.1,v 1.14.2.2 1999/06/03 12:44:49 yokota Exp % .\" .\" jpman %Id: vidcontrol.1,v 1.3 1997/08/04 01:31:25 mitchy Stab % .Dd May 22, 1994 .Dt VIDCONTROL 1 .Os .Sh 名称 .Nm vidcontrol .Nd syscons 画面ドライバの操作ユーティリティ .Sh 書式 .Nm .Op Fl r Ar fg Ar bg .Op Fl b Ar color .Op Fl c Ar appearance .Op Fl d .Op Fl i Ar adapter|mode .Op Fl l Ar scrmap .Op Fl L .Op Fl m Ar on|off .Op Fl f Ar size Ar file .Op Fl s Ar number .Op Fl t Ar N|off .Op Fl x .Op mode .Op fgcol Op bgcol .Op show .Sh 解説 .Nm コマンドを用いて syscons 画面ドライバの様々なオプション、例えば、 画面モード、色、カーソル、画面マップ (scrnmap)、 フォント、スクリーンセーバタイムアウトを設定することができます。 .Pp 以下のコマンドラインオプションをサポートしています: .Bl -tag -width indent .It mode 新しいビデオモードを選択します。 現在サポートしているモードは次の通りです: .Ar 40x25 , .Ar 80x25 , .Ar 80x30 , .Ar 80x43 , .Ar 80x50 , .Ar 80x60 , .Ar 132x25 , .Ar 132x30 , .Ar 132x43 , .Ar 132x50 , .Ar 132x60 , .Ar VGA_40x25 , .Ar VGA_80x25 , .Ar VGA_80x50 , .Ar EGA_80x25 , .Ar EGA_80x43 , .Ar VESA_132x25 , .Ar VESA_132x30 , .Ar VESA_132x43 , .Ar VESA_132x50 , .Ar VESA_132x60 。 -また、グラフィックモード -.Ar VGA_320x200 , +.\" また、グラフィックモード +.\" .Ar VGA_320x200 , +ラスタテキストモード .Ar VGA_800x600 も選択できます。 -前記の全モードを -ビデオカードがサポートしているとは限らないことに注意してください。 -また、 VESA ビデオモードもしくは 132 桁モードを使用する場合には、 -VESA BIOS サポートをカーネルにリンクするか KLD にてロードする必要があることにも -注意してください。 +後述の +.Sx ビデオモードサポート +を参照してください。 .It fgcol Op bgcol テキストを表示する際の色を変更します。 前景色 (例: "vidcontrol white")、あるいは 前景色および背景色 (例: "vidcontrol yellow blue") を指定することにより 変更できます。 .It show 指定したプラットフォームでサポートされている色を表示します。 .It Fl r Ar foreground Ar background 反転表示モードで用いる色を前景色 .Ar foreground および背景色 .Ar background に変更します。 .It Fl b Ar color ボーダ色を .Ar color に設定します (VGA ハードウェアでのみサポートされています)。 .It Fl c Ar normal|blink|destructive カーソルの外観を変更します。 カーソルは、反転ブロック (normal)、反転ブロックの点滅 (blink)、 あるいは古いハードウェアカーソル様のもの (destructive) のいずれかです。 後者は実際にはシミュレートしています。 .It Fl d 現在の画面出力マップを表示します。 .It Fl l Ar scrmap 画面出力マップをファイル .Ar scrmap から読み込んで設定します。 .It Fl L 画面出力マップをデフォルトに設定します。 .It Fl i Ar adapter 現在のビデオアダプタに関する情報を表示します。 .It Fl i Ar mode 現在のビデオハードウェアにて使用可能なビデオモードを表示します。 .It Fl m Ar on|off マウスポインタを .Ar on または .Ar off します。 テキストモードでのカット & ペースト機能を利用するために moused デーモンと共に 使用します。 .It Fl f Ar size Ar file サイズ .Ar size 用のフォントをファイル .Ar file から読み込みます。 現在のところ .Ar size には 8x8, 8x14, 8x16 のみが指定できます。 フォントファイルは uuencode された形式でも 生のバイナリフォーマットでも構いません。 .It Fl s Ar number 現在の vty を .Ar number に設定します。 .It Fl t Ar N|off スクリーンセーバのタイムアウト値を .Ar N 秒に設定、あるいはスクリーンセーバを無効 ( .Ar off )にします。 .It Fl x 出力に 16 進数を用います。 .El +.Ss ビデオモードサポート +前記の全モードを +ビデオカードがサポートしているとは限らないことに注意してください。 +.Fl i Ar mode +オプションを使用することにより、 +ビデオカードがサポートしているモードを調べることが可能です。 +.Pp +VESA ビデオモードもしくは 132 桁モードを使用する場合には、 +VESA BIOS サポートをカーネルにリンクするか KLD にてロードする必要があることにも +注意してください ( +.Xr vga 4 +を参照してください)。 +.Pp +25 または 30 行モード以外のビデオモードは、 +特定の大きさのフォントが必要となるかもしれません。 +前述の +.Fl f +オプションを使用し、フォントファイルをカーネルにロードしてください。 +必要な大きさのフォントがカーネルにロードされていないと、 +ユーザが新規ビデオモードを設定しようとした場合に +.Nm +は失敗します。 +.Pp +.TS +c s +c c +l c. +ビデオモードとフォントの大きさ +モード フォントの大きさ +25 行モード 8x16 (VGA), 8x14 (EGA) +30 行モード 8x16 +43 行モード 8x8 +50 行モード 8x8 +60 行モード 8x8 +.TE +.Pp +同じフォントの 3 つの大きさすべて (8x8, 8x14, 8x16) を +常にロードすることが望ましいです。 +.Pp +.Pa /etc/rc.conf.local +中の変数 +.Ar font8x8 , +.Ar font8x14 , +.Ar font8x16 +を希望のフォントファイルに設定できます。 +これにより、システム起動時にこれらのフォントが自動的にロードされます。 .Sh 関連ファイル .Bl -tag -width /usr/share/syscons/scrnmaps -compact .It Pa /usr/share/syscons/fonts .It Pa /usr/share/syscons/scrnmaps .El .Sh 関連項目 .Xr kbdcontrol 1 , .Xr keyboard 4 , .Xr screen 4 , +.Xr syscons 4 , +.Xr vga 4 , +.Xr rc.conf 5 , .Xr moused 8 .Sh 作者 -.An Sen Schmidt Aq sos@FreeBSD.org +.An Soren Schmidt Aq sos@FreeBSD.org diff --git a/ja/man/man1/zmore.1 b/ja/man/man1/zmore.1 index 6b0c8f0166..43c6c53a7c 100644 --- a/ja/man/man1/zmore.1 +++ b/ja/man/man1/zmore.1 @@ -1,138 +1,140 @@ +.\" %Id: zmore.1,v 1.2.12.1 1999/06/07 14:07:34 kris Exp % +.\" .\" jpman %Id: zmore.1,v 1.4 1997/06/12 11:20:32 jsakai Stab % .TH ZMORE 1 .SH 名称 zmore \- 圧縮したままファイルを閲覧する .SH 書式 .B zmore [ name ... ] .SH 解説 .I zmore は、圧縮を施したファイルもしくはプレーンテキストファイルの 閲覧に使用するフィルタです。 .I zmore は、 .I compress, pack, gzip によって圧縮されたファイルを閲覧することが出来ますが、 非圧縮ファイルも閲覧することが出来ます。 もし、ファイルが見つからない時には .I zmore は同じ名前に .gz, .z, .Z が付いたファイルを探します。 .PP .I zmore は各々の画面の一番下に --More-- と表示をして停止します。 -リターンキーを押すともう一行表示されます。 +リターンキーを押すともう 1 行表示されます。 スペースキーを押すと次の画面が表示されます。 他の操作は後で説明します。 .PP .zmore は端末の性質やデフォルトのウィンドウの大きさを決めるために -.I /etc/termcap +.I /usr/share/misc/termcap を見ます。 -ターミナルが 24 ライン表示できる時には、 -デフォルトのウィンドウのサイズは 22 ラインとなります。 +端末が 24 行表示できる時には、 +デフォルトのウィンドウの大きさは 22 行となります。 .I zmore は、通常はページャとして .I more を用いますが 環境変数 PAGER を指定することで .I less のような他のページャを使用することが出来ます。 .PP .I zmore が停止した時に使える他の文字とその効果は以下の通りです。 (\fIi\fP は整数の引数である。デフォルトは 1 です): .PP .IP \fIi\|\fP さらに .I i 行表示します。 (引数が与えられなければ次の画面を表示します) .PP .IP ^D -さらに11行表示します(``スクロールする'')。 +さらに 11 行表示します (``スクロールする'')。 .I i が与えられていれば、スクロールする大きさは \fIi\|\fP になります。 .PP .IP d -^D (control-D)と同じです。 +^D (control-D) と同じです。 .PP .IP \fIi\|\fPz \fIi\|\fP が与えられた時に 新しいウィンドウの大きさになる以外は、スペースキーを押すのと同じです。 ウィンドウの大きさは現在のファイルが終了した時にデフォルトに戻ります。 .PP .IP \fIi\|\fPs \fIi\|\fP 行飛ばして画面に表示します。 .PP .IP \fIi\|\fPf \fIi\fP 画面分飛ばして画面に表示します。 .PP .IP "q または Q" 現在のファイルを読むのを終了します。もしあるならば次のファイルに行きます。 .PP .IP "e または q" --More--(Next file: .IR file ) が表示された時に、このコマンドは zmore を終了させます。 .PP .IP s --More--(Next file: .IR file ) が表示された時に、このコマンドは次のファイルをスキップし、続けます。 .PP .IP = 現在の行番号を表示します。 .PP .IP \fIi\|\fP/expr 入力した正規表現 \fIexpr\fP の \fIi\|\fP 番目に現れるものを検索します。 もし、それが見付からなかったら、 .I zmore -は(あるならば)次のファイルに行きます。 +は (あるならば) 次のファイルに行きます。 そうでなければ、その正規表現が見付かった場所の前 2 行を先頭として、 検索結果を表示します。 ユーザが文字を消す事は正規表現の編集の時に用いられるかもしれません。 最初のカラムの前の文字を消す事は検索コマンドをキャンセルする事になります。 .PP .IP \fIi\|\fPn 最後に入力した正規表現の \fIi\|\fP 番目に現れるものを検索します。 .PP .IP !command シェルをよびだし、\fIcommand\|\fP を実行します。 コマンドに出て来る `!' は直前に行ったシェルのコマンドに置き換えられます。 "\\!" の文字列が "!" に置き換えられます。 .PP .IP ":q or :Q" 現在のファイルを読むのを終了します。もしあるならば次のファイルに行きます。 (q や Q と同じです)。 .PP .IP . (ドット) 直前のコマンドを繰り返します。 .PP コマンドはすぐに効果が現れます。つまり、リターンキーを押す必要がありません。 コマンド文字列を与えるまでに、ユーザは行消去文字を入力し、 数字の引数を消去するかも知れません。 また、ユーザは消去文字を入力し、 --More-- メッセージを再表示するかもしれません。 .PP 出力は端末画面に送られている時はいつでも、 ユーザは終了キーを押す事ができます。(普通はcontrol\-\\) .I zmore は出力を止め、いつもの --More-- を表示します。 ユーザはそこで通常の形式で上記のコマンドの 1 つを入力します。 終了信号が送られると端末画面の出力を待っていたキューの中の文字は 消去されるために、いくつかの出力はこれが行われると失われてしまいます。 .PP 端末出力が連続して行われるように、端末はプログラムによって .I noecho モードにセットされます。 あなたがタイプした / と ! 以外のコマンドは端末に表示されません。 .PP 標準出力がテレタイプで無い時は、 .I zmore -はヘッダー各々のファイルの前に印刷される以外は +はヘッダ各々のファイルの前に印刷される以外は .I zcat のように働きます。 .SH 関連ファイル .DT -/etc/termcap ターミナル・データ・ベース +/etc/termcap 端末データベース .SH 関連項目 more(1), gzip(1), zdiff(1), zgrep(1), znew(1), zforce(1), gzexe(1) diff --git a/ja/man/man5/a.out.5 b/ja/man/man5/a.out.5 index dc8791f577..21f0b138c1 100644 --- a/ja/man/man5/a.out.5 +++ b/ja/man/man5/a.out.5 @@ -1,485 +1,485 @@ .\" Copyright (c) 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" This man page is derived from documentation contributed to Berkeley by .\" Donn Seeley at UUNET Technologies, 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. .\" .\" @(#)a.out.5 8.1 (Berkeley) 6/5/93 .\" %Id: a.out.5,v 1.7 1997/02/22 13:25:56 peter Exp % .\" .\" jpman %Id: a.out.5,v 1.3 1998/08/09 12:51:56 horikawa Stab % .\" WORD: byte order バイト順 .\" WORD: posision independent 位置独立(な) .\" WORD: link editor リンクエディタ .\" WORD: link edit リンクエディット .\" .Dd June 5, 1993 .Dt A.OUT 5 .Os .Sh 名称 .Nm a.out .Nd 実行可能バイナリファイルのフォーマット .Sh 書式 .Fd #include .Sh 解説 インクルードファイル .Aq Pa a.out.h では 3 つの構造体といくつかのマクロが宣言されています。 これらの構造体は、このシステムで実行可能な機械語コードファイル .Pq Sq バイナリ のフォーマットを規定します。 .Pp バイナリファイルは最大で 7 つのセクションから構成されます。 これらのセクションを順にあげると以下のようになります: .Bl -tag -width "テキストリロケーション" .It exec ヘッダ バイナリファイルをメモリ上にロードして実行するために カーネルが用いるパラメータを含んでいます。 これらのパラメータはリンクエディタ .Xr ld 1 がバイナリファイルを他のバイナリファイルと結合する際にも 用いられます。 このセクションは唯一の必須セクションです。 .It テキストセグメント プログラムが実行される際にメモリ上にロードされる 機械語コード及び関連データを含んでいます。 読み込み専用でロードされる場合があります。 .It データセグメント 初期化済データを含んでいます。 常に書き込み可能なメモリ上にロードされます。 .It テキストリロケーション バイナリファイル結合時にテキストセグメント内のポインタを修正するために、 リンクエディタによって用いられるレコードを含んでいます。 .It データリロケーション 前出のテキストリロケーションセクションと似ていますが、 データセグメント内のポインタ修正用です。 .It シンボルテーブル バイナリファイル間で 名前付きの変数や関数 .Pq Sq シンボル のアドレス相互参照を解決するために、 リンクエディタによって用いられるレコードを含んでいます。 .It string table シンボル名に対応する文字列を含んでいます。 .El .Pp 全てのバイナリファイルは次の .Fa exec 構造体で始まります: .Bd -literal -offset indent struct exec { unsigned long a_midmag; unsigned long a_text; unsigned long a_data; unsigned long a_bss; unsigned long a_syms; unsigned long a_entry; unsigned long a_trsize; unsigned long a_drsize; }; .Ed .Pp これらのフィールドは以下の機能を持っています: .Bl -tag -width a_trsize .It Fa a_midmag このフィールドはホストのバイト順 (host byte-order) で格納されます。 このフィールドはいくつかのサブコンポーネントを持っており、それらは 以下のマクロ .Dv N_GETFLAG() , .Dv N_GETMID() , .Dv N_GETMAGIC() で参照され、マクロ .Dv N_SETMAGIC() で設定されます。 .Pp マクロ .Dv N_GETFLAG() は以下のフラグを返します: .Bl -tag -width EX_DYNAMIC .It Dv EX_DYNAMIC この実行可能ファイルがランタイムリンクエディタのサービスを要求することを 示します。 .It Dv EX_PIC このオブジェクトファイルが位置独立 (position independent) なコードを 含んでいることを示します。 このフラグは .Sq -k フラグ指定時に .Xr as 1 によって設定され、必要なら .Xr ld 1 はこれを保存します。 .El .Pp EX_DYNAMIC と EX_PIC の両方がセットされている場合、 そのオブジェクトファイルは位置独立な実行可能イメージです (例: 共有ライブラリ)。 これはランタイムリンクエディタによってプロセスのアドレス空間にロードされます。 .Pp マクロ .Dv N_GETMID() はマシン識別コード (machine-id) を返します。 これは、バイナリファイルが実行されるべきマシンを示しています。 .Pp .Dv N_GETMAGIC() はマジックナンバを示します。 マジックナンバはバイナリファイル種別を一意に識別し、 様々なロード方法を区別します。 このフィールドは以下の値のいずれか 1 つを含んでいなければなりません: .Bl -tag -width ZMAGIC .It Dv OMAGIC テキストセグメントとデータセグメントはヘッダの直後にあり、 連続しています。 カーネルはテキスト/データセグメントの両方を書き込み可能メモリ領域に ロードします。 .It Dv NMAGIC .Dv OMAGIC と同様、テキスト/データセグメントはヘッダの直後にあり、連続しています。 しかし、カーネルはテキストセグメントを読み込み専用メモリ領域にロードし、 テキストに続くページ境界から始まる 書き込み可能メモリ領域にデータセグメントをロードします。 .It Dv ZMAGIC カーネルは各々のページを必要に応じてバイナリからロードします。 ヘッダ、テキストセグメント及びデータセグメントはいずれも、 ページサイズの倍数の大きさになるよう、 リンクエディタによってパディングされます。 カーネルがテキストセグメントからロードしたページは読み込み専用ですが、 データセグメントからロードしたページは書き込み可能です。 .El .It Fa a_text テキストセグメントのサイズ (バイト単位) を保持します。 .It Fa a_data データセグメントのサイズ (バイト単位) を保持します。 .It Fa a_bss .Sq bss セグメント のバイト数を保持します。 この値はカーネルが最初の break 値 .Pq Xr brk 2 をデータセグメントの後ろに設定するのに用いられます。 カーネルは、ここに示されるサイズの書き込み可能メモリ領域が データセグメントの後ろに用意され、それらの初期状態が 0 になるように、 プログラムをロードします。 .It Fa a_syms シンボルテーブルセクションのサイズ (バイト単位) を保持します。 .It Fa a_entry カーネルがバイナリファイルをロードした後の、 プログラムのエントリポイントのメモリアドレスを保持します。 カーネルは、このアドレスにある機械命令からプログラムの実行を開始します。 .It Fa a_trsize テキストリロケーションテーブルのサイズ (バイト単位) を保持します。 .It Fa a_drsize データリロケーションテーブルのサイズ (バイト単位) を保持します。 .El .Pp インクルードファイル .Pa a.out.h では、 .Fa exec 構造体を用いて一貫性をテストしたりバイナリファイル中のセクションオフセットを 知るためのマクロが定義されています。 .Bl -tag -width N_BADMAG(exec) .It Fn N_BADMAG exec .Fa a_magic フィールドに、認識できない値が含まれている場合、非 0 を返します。 .It Fn N_TXTOFF exec バイナリファイルにおけるテキストセグメントの先頭のバイトオフセットを返します。 .It Fn N_SYMOFF exec シンボルテーブルの先頭のバイトオフセットを返します。 .It Fn N_STROFF exec 文字列テーブルの先頭のバイトオフセットを返します。 .El .Pp リロケーションレコードは、 .Fa relocation_info 構造体で規定される標準フォーマットです: .Bd -literal -offset indent struct relocation_info { int r_address; unsigned int r_symbolnum : 24, r_pcrel : 1, r_length : 2, r_extern : 1, r_baserel : 1, r_jmptable : 1, r_relative : 1, r_copy : 1; }; .Ed .Pp .Fa relocation_info 構造体の各フィールドは以下のように用いられます: .Bl -tag -width r_symbolnum .It Fa r_address リンクエディットが必要なポインタのバイトオフセットを保持します。 テキストリロケーションオフセットはテキストセグメントの先頭から、 データリロケーションオフセットはデータセグメントの先頭から、 それぞれ計算します。 リンクエディタはこのオフセットにストアされている値を加算し、 このリロケーションレコードを用いて計算した新しい値に変換します。 .It Fa r_symbolnum シンボルテーブルにおけるシンボル構造体の順序番号 ( バイトオフセット .Em ではありません ) を保持します。 リンクエディタはこのシンボルの絶対アドレスを解決した後、 そのアドレスをリロケーション中のポインタに加算します。 (もし .Fa r_extern ビットが立っていなければ状況は異なります。以下を参照して下さい。) .It Fa r_pcrel もしこのビットが立っていれば、 -リンクエディタは、PC 相対アドレシングを用いる機械語命令の一部である +リンクエディタは、PC 相対アドレッシングを用いる機械語命令の一部である ポインタを更新しているものと仮定します。 リロケートされるポインタのアドレスは、実行中のプログラムがそれを用いる際に、 暗黙的にその値に加算されます。 .It Fa r_length ポインタの長さを 2 を底とする対数で表したバイト単位で保持します。 1 バイトディスプレースメントなら 0、 2 バイトディスプレースメントなら 1、 4 バイトディスプレースメントなら 2 となります。 .It Fa r_extern このリロケーションが外部参照を必要としている場合にセットされます。 リンクエディタは、シンボルアドレスを用いてこのポインタを 更新しなければなりません。 .Fa r_extern ビットが立っていない場合、そのリロケーションは .Sq ローカル です。 リンクエディタは、シンボル値の変化ではなく、 各セグメントのロードアドレスの変化に応じてポインタを更新します (ただし、 .Fa r_baserel もセットされている場合(後述)は除きます)。 この場合、 .Fa r_symbolnum フィールドの内容は .Fa n_type の値となります(後述)。 リンクエディタは、この型フィールドから、 リロケートされるポインタがどのセグメントを指しているのかの情報を得ます。 .It Fa r_baserel セットされている場合、 .Fa r_symbolnum フィールドで指定される場合のように、 このシンボルはグローバルオフセットテーブルへのオフセットに リロケートされます。 実行時に、グローバルオフセットテーブル中の、このオフセット位置にある エントリが、シンボルのアドレスを持つようにセットされます。 .It Fa r_jmptable セットされている場合、 .Fa r_symbolnum フィールドで指定される場合のように、 このシンボルはプロシージャリンケージテーブルへのオフセットに リロケートされます。 .It Fa r_relative セットされている場合、 このリロケーションは、このオブジェクトファイルが含まれる イメージの (実行時の) ロードアドレスとの相対値となります。 この種のリロケーションは共有オブジェクトにのみ現れます。 .It Fa r_copy セットされている場合、 このリロケーションレコードは、 その内容を .Fa r_address で指定される位置にコピーしなければならないシンボルを示します。 コピー処理は、実行時のリンクエディタによって、 共有オブジェクト中の適切なデータアイテムから行われます。 .El .Pp シンボルは名前とアドレスを対応づけます (より一般的には、 文字列を値へ対応づけます)。 リンクエディタがアドレスを調節するため、 絶対値が割り当てられるまではシンボルを用いてアドレスを表現しなければ なりません。 シンボルは、シンボルテーブル中の固定長のレコードと、 文字列テーブル中の可変長の名前から成ります。 シンボルテーブルは .Fa nlist 構造体の配列です: .Bd -literal -offset indent struct nlist { union { char *n_name; long n_strx; } n_un; unsigned char n_type; char n_other; short n_desc; unsigned long n_value; }; .Ed .Pp これらのフィールドは以下のように用いられます: .Bl -tag -width n_un.n_strx .It Fa n_un.n_strx このシンボルの名前の、文字列テーブルでのバイトオフセットを保持します。 プログラムが .Xr nlist 3 関数を用いてシンボルテーブルをアクセスする場合、 このフィールドは、 メモリ中の文字列へのポインタである .Fa n_un.n_name フィールドに置き換えられます。 .It Fa n_type リンクエディタがシンボル値の更新方法を決定するのに用いられます。 .Fa n_type フィールドは、ビットマスクを用いた 3 つのサブフィールドに分けられます。 リンクエディタは .Dv N_EXT ビットがセットされているシンボルを .Sq external シンボルとして扱い、他のバイナリファイルからの参照を許可します。 .Dv N_TYPE マスクはリンクエディタに必要なビットを選択します: .Bl -tag -width N_TEXT .It Dv N_UNDF 未定義シンボル。 リンクエディタは、他のバイナリファイル中の同じ名前の外部シンボルを探して このシンボルの絶対値を決定しなければなりません。 特別な場合として、もし .Fa n_value フィールドが非 0 で、リンクエディット対象のどのバイナリファイルも このシンボルを定義していない場合、 リンクエディタはこのシンボルが bss セグメント中のアドレスであるとみなし、 .Fa n_value に等しいバイト数の領域を予約します。 もしこのシンボルが複数のバイナリファイル中で未定義となっており、 それらのバイナリファイル間でサイズが異なっている場合、 リンクエディタはそれらのサイズの最大値を選びます。 .It Dv N_ABS 絶対シンボル。 リンクエディタは絶対シンボルは更新しません。 .It Dv N_TEXT テキストシンボル。 このシンボルの値はテキストアドレスであり、 リンクエディタはバイナリファイルをマージする際、その値を更新します。 .It Dv N_DATA データシンボル。 .Dv N_TEXT と同様ですが、データアドレスを表します。 テキストシンボル及びデータシンボルの値は、 ファイルオフセットではなくアドレスです。 ファイルオフセットを復元するために、 対応するセクションの先頭のロードアドレスを見つけてそれを減じ、 次にそのセクションのオフセットを加算する必要があります。 .It Dv N_BSS bss シンボル。テキストシンボルやデータシンボルと似ていますが、 バイナリファイル中に対応するオフセットを持ちません。 .It Dv N_FN ファイル名シンボル。 バイナリファイルをマージする際、 リンクエディタはバイナリファイルの他のシンボルの前にこのシンボルを 挿入します。 このシンボルの名前はリンクエディタに与えられたファイル名で、 シンボルの値はバイナリファイルから得た先頭テキストアドレスです。 ファイル名シンボルはリンクエディト処理やロード処理には不要ですが、 デバッガには有用な情報です。 .El .Pp .Dv N_STAB マスクは .Xr gdb 1 等のシンボリックデバッガに必要なビットを選択します。 その値は .Xr stab 5 に示されています。 .It Fa n_other このフィールドは、 .Fa n_type フィールドで決定されるセグメントに関して、 そのシンボルのロケーションとは独立した シンボルの特質に関する情報を提供します。 現在のところ、 .Fa n_other フィールドの下位 4 ビットは .Dv AUX_FUNC あるいは .Dv AUX_OBJECT のいずれかをとります .Po これらの定義については .Aq Pa link.h を参照してください .Pc 。 .Dv AUX_FUNC はシンボルと呼び出し可能な関数を関連づけ、他方、 .Dv AUX_OBJECT はシンボルとデータを関連づけます。 これらの関連はテキストセグメント/データセグメントの別とは無関係です。 このフィールドは、 .Xr ld 1 が動的な実行可能形式を構築するために使うことを意図しています。 .It Fa n_desc デバッガ用に予約されており、リンクエディタはこのフィールドを全く変更しません。 デバッガによって異なった目的に使われます。 .It Fa n_value シンボルの値を保持します。 テキスト, データおよび bss シンボルの場合、その値はアドレスです。 他のシンボル (例えばデバッガシンボル等) の場合、その値は様々です。 .El .Pp 文字列テーブルは .Em unsigned long 型の長さと、それに続くナル終端のシンボル文字列から成ります。 この長さは、テーブル全体のサイズをバイト単位で表します。 つまり、その最小値 (言い替えれば、最初の文字列のオフセット) は、 32 ビットマシンでは常に 4 となります。 .Sh 関連項目 .Xr as 1 , .Xr gdb 1 , .Xr ld 1 , .Xr brk 2 , .Xr execve 2 , .Xr nlist 3 , .Xr core 5 , .Xr link 5 , .Xr stab 5 .Sh 歴史 インクルードファイル .Pa a.out.h は .At v7 で登場しました。 .Sh バグ 必ずしも全てのサポート対象アーキテクチャが .Fa a_midmag フィールドを用いるわけではないので、 あるバイナリがどのようなアーキテクチャ上で実行されるのかは、 実際のマシンコードを調べない限り判定困難な可能性があります。 マシン ID があったとしても、 .Fa exec ヘッダのバイト順はマシン依存です。 .Pp .Em bss が何の略なのか、に関する合意はないようです。 .Pp 将来、新しいバイナリファイルフォーマットがサポートされるかも知れませんが、 その新フォーマットは恐らく、 あらゆるレベルでこの太古のフォーマットと互換性がないでしょう。 diff --git a/ja/man/man5/groff_font.5 b/ja/man/man5/groff_font.5 index 56d03f27b2..f99840f65f 100644 --- a/ja/man/man5/groff_font.5 +++ b/ja/man/man5/groff_font.5 @@ -1,370 +1,374 @@ -.\" jpman %Id: groff_font.5,v 1.3 1998/08/09 15:05:21 ryo2 Stab % -.\" FreeBSD jpman project 訳語表 -.\" WORD: machine unit マシン単位 -.\" WORD: scaled point スケールドポイント (troff.1 の記述にあわせた) -.\" WORD: font position フォント位置 (troff.1 の記述にあわせた) -.\" WORD: mount マウント .ig \"-*- nroff -*- Copyright (C) 1989-1995 Free Software Foundation, Inc. Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this manual 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. Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions, except that this permission notice may be included in translations approved by the Free Software Foundation instead of in the original English. .. .de TQ .br .ns .TP \\$1 .. .\" Like TP, but if specified indent is more than half .\" the current line-length - indent, use the default indent. .de Tp .ie \\n(.$=0:((0\\$1)*2u>(\\n(.lu-\\n(.iu)) .TP .el .TP "\\$1" .. +.\" +.\" Original Revision: 1.1.1.1 +.\" jpman %Id: groff_font.5,v 1.3 1998/08/09 15:05:21 ryo2 Stab % +.\" +.\" FreeBSD jpman project 訳語表 +.\" WORD: machine unit マシン単位 +.\" WORD: scaled point スケールドポイント (troff.1 の記述にあわせた) +.\" WORD: font position フォント位置 (troff.1 の記述にあわせた) +.\" WORD: mount マウント +.\" .TH GROFF_FONT 5 "7 September 1996" "Groff Version 1.11" .SH 名称 groff_font \- groff のデバイスとフォントを記述するファイルの書式 .SH 解説 groff のフォントの書式は ditroff のフォントの書式に対し、 ほぼスーパセットになっています。 ditroff のフォントの書式とは異なり、 関連したバイナリ書式はありません。 .I name というデバイス用のフォントファイルは .BI dev name というディレクトリに納められます。 ファイルには 2 つの種類があります: それは .B DESC と呼ばれるデバイス記述ファイルと、各フォント .I F ごとに存在する .IR F と呼ばれるフォントファイルです。 これらはテキストファイルであり、関連したバイナリ書式の ファイルはありません。 .SS DESC ファイルの書式 DESC ファイルは以下の形式の行を含むことができます: .TP .BI res\ n 1 インチあたりのマシン単位は .I n です。 .TP .BI hor\ n 水平解像度は .I n マシン単位です。 .TP .BI vert\ n 垂直解像度は .I n マシン単位です。 .TP .BI sizescale\ n ポイント数への倍率を指定します。デフォルトの値は 1 です。1 .I スケールドポイント は、1 .RI ポイント/ n と等しくなります。 .B unitwidth コマンドと .B sizes コマンドへの引数はスケールドポイントで指定されます。 .TP .BI unitwidth\ n ポイントサイズが .I n スケールドポイントのフォントに対して、 フォントファイル毎の数量をマシン単位で与えます。 .TP .B tcommand ポストプロセッサが .B t と .B u の出力コマンドを扱えることを表します。 .TP .BI sizes\ s1\ s2\|.\|.\|.\|sn\ 0 デバイスが .IR s1 , .IR s2 ,\|.\|.\|.\| sn スケールドポイントのフォントを持つことを表します。 大きさのリストは .BR 0 で終らなければなりません。 各 .BI s i は大きさの範囲 .IR m \- n でも指定できます。 リストは複数行にわたることも可能です。 .TP .BI styles\ S1\ S2\|.\|.\|.\|Sm 先頭 .I m 個のフォント位置が、スタイル .IR S1\|.\|.\|.\|Sm に関連づけられます。 .TP .BI fonts\ n\ F1\ F2\ F3\|.\|.\|.\|Fn フォント .I F1\|.\|.\|.\|Fn がフォント位置 .IR m +1,\|.\|.\|., m + n にマウントされます( .I m はスタイル数)。 このコマンドは複数行にわたることができます。 .B 0 というフォント名を指定すると、 対応するフォント位置にはフォントはマウントされません。 .TP .BI family\ fam デフォルトのフォントファミリは .IR fam です。 .TP .B charset この行とファイル内の以下に続く行はすべて無視されます。 これは下位互換性のために許されています。 .LP res, unitwidth, fonts, sizes の行は必須です。 他のコマンドは .B troff には無視されますが、デバイスに関する任意の情報を DESC ファイルに 入れておくためにポストプロセッサにより使われるかもしれません。 .SS フォントファイルの書式 フォントファイルには 2 つのセクションがあります。 最初のセクションは空白で区切られた単語が並んだ一連の行からなります。 行の最初の単語はキーで、以降の単語はそのキーに対する値となります。 .TP .BI name\ F フォントの名前は .IR F です。 .TP .BI spacewidth\ n 空白の通常の幅は .IR n です。 .TP .BI slant\ n フォントの文字が .I n 度傾斜していることを表します (正の値は進行方向を意味します)。 .TP .BI ligatures\ lig1\ lig2\|.\|.\|.\|lign\ \fR[ 0 \fR] 文字 .IR lig1 , .IR lig2 ,\|.\|.\|., lign は合字 (リガチャ; ligature) です。合字には .BR ff , .BR fi , .BR fl , .BR ffl が使用可能です。 下位互換性のために、合字のリストは .BR 0 で終ってもかまいません。 合字のリストは複数行にわたってはいけません。 .TP .B special フォントは .IR スペシャル です。これは現在のフォントに存在しない文字が要求された場合、 マウントされた全てのスペシャルフォントが検索されることを示しています。 .LP 他のコマンドは .B troff には無視されますが、フォントに関する任意の情報をフォントファイルに 入れておくためにポストプロセッサにより使われるかも知れません。 .LP 最初のセクションには .B # 文字ではじまるコメントを、行末まで入れることができます。 .LP 次のセクションには 1 つか 2 つのサブセクションが含まれます。 サブセクション .I charset は必須で、サブセクション .I kernpairs はオプションです。 これらのサブセクションは任意の順番で書くことができます。 各サブセクションは、サブセクション名のみからなる行から始まります。 .LP 単語 .B charset で charset サブセクションを開始します。 .B charset 行には一連の行が続きます。 各行は 1 文字の情報を与えます。 行は空白かタブにより区切られたいくつかのフィールドから成ります。 書式は .IP .I name metrics type code comment .LP で、 .I name は文字を識別します: .I name が単一の文字 .I c ならば、それは groff の入力文字 .I c を表します。 .BI \e c という形式で c が単一の文字なら、groff の入力文字 .BI \e c を表します。それ以外は groff の入力文字 .BI \e[ name ] を表します (2 文字の .I xx だとすると、 .BI \e( xx として入力されます) 。 groff は 8 ビット文字に対応していますが、いくつかのユーティリティでは 8 ビット文字を扱うのが困難です。 このような理由から、文字コードが .I n である単一の文字と等価な .BI char n という表記法が存在します。 例えば、 .B char163 は ISO Latin-1 で英国ポンド記号を表す文字コード 163 の文字と等価です。 .B \-\-\- という name は特別で、その文字に名前が無いことを示します。 そのような文字は .BR troff 中でエスケープシーケンス .B \eN によってのみ使われます。 .LP .I type フィールドは文字の種類を示します: .TP 1 は descender (ベースラインより下にはみ出した部分) を持つ 文字であることを表します。例えば p があてはまります。 .TP 2 は ascender (x の高さより上に出る部分) を持つ文字であることを表します。 例えば b があてはまります。 .TP 3 は ascender と descender の両方を持つ文字であることを表します。 例えば ( があてはまります。 .LP .I code フィールドはポストプロセッサが文字を印字するために使うコードを示します。 .B \eN というエスケープシーケンスを用いたこのコードを使って、groff に文字を 入力することもできます。 code はどんな整数でもかまいません。 .B 0 から始まると、8 進数として扱われ、 .B 0x や .B 0X で始まると 16 進数として扱われます。 .LP 行の code フィールド以降はすべて無視されます。 .LP .I metrics フィールドの形式はこのようになります: .IP .IR width [\fB, height [\fB, depth [\fB, italic_correction [\fB, \ left_italic_correction [\fB, subscript_correction ]]]]] .LP サブフィールド間には空白を入れてはいけません。 サブフィールドが存在しない場合は 0 として扱われます。 サブフィールドは全て 10 進数の整数で指定されます。 対応するバイナリフォーマットが存在しないので、 ditroff のようにこれらの値を .B char 型変数の範囲に合わせるという必要はありません。 サブフィールド .I width では文字の幅を指定します。 サブフィールド .I height では文字の高さを指定します (上が正)。 文字がベースラインよりも上にいかない場合、負の高さを持つとするのではなく 高さが 0 であるとします。 サブフィールド .I depth では文字の深さを指定します。これはベースラインから文字の一番下までの 長さです (下が正) 。 文字がベースラインより下に出ていない場合、負の深さを持つとするのではなく 深さが 0 であるとします。 サブフィールド .I italic_correction では直後にローマンフォントの文字が続く時に、文字の後に加えられる空白の 量を指定します。 サブフィールド .I left_italic_correction では直前にローマンフォントの文字がある時に、文字の前に加えられる空白の 量を指定します。 サブフィールド .I subscript_correction では添字 (subscript) を加える際に文字の後に加えられる空白の量を 指定します。 これはイタリック補正 (上記の italic_correction) よりは少なくなければ なりません。 .LP charset セクション内では、以下のような書式の行も可能です .IP .I name \fB" .LP これは .I name が前の行で言及した文字の別名であることを表します。 .LP kernpairs セクションは .B kernpairs という単語から始まります。このセクションは以下のような書式の 行からなります: .IP .I c1 c2 n .LP 文字 .I c1 が文字 .I c2 の次に現れる時には、それらの間の空白に .IR n を加えることを意味します。 kernpairs セクションのほとんどのエントリは .IR n に負の値を持つことになります。 .SH 関連ファイル .Tp \w'/usr/share/groff_font/devname/DESC'u+3n .BI /usr/share/groff_font/dev name /DESC デバイス .IR name 用のデバイス記述ファイル .TP .BI /usr/share/groff_font/dev name / F デバイス .IR name のフォント .I F 用のフォントファイル .SH 関連項目 .BR groff_out (5), .BR troff (1). diff --git a/ja/man/man5/groff_out.5 b/ja/man/man5/groff_out.5 index 741ce343f8..84905f97f2 100644 --- a/ja/man/man5/groff_out.5 +++ b/ja/man/man5/groff_out.5 @@ -1,226 +1,228 @@ '\" e .ig \"-*- nroff -*- Copyright (C) 1989-1995 Free Software Foundation, Inc. Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this manual 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. Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions, except that this permission notice may be included in translations approved by the Free Software Foundation instead of in the original English. .. .\" This man page must be preprocessed with eqn. .\" +.\" Original Revision: 1.1.1.1 .\" jpman %Id: groff_out.5,v 1.3 1998/08/09 15:06:44 ryo2 Stab % +.\" .\" FreeBSD jpman project 訳語表 .\" WORD: scaled point スケールドポイント (troff.1, groff_font.5 参照) .\" WORD: special character 特殊文字 (troff.1 参照) .\" WORD: special font スペシャルフォント (troff.1 参照) .\" WORD: machine unit マシン単位 (pic.1, groff_font.5 参照) .\" WORD: print 印字 .ie \n(.g .ds ic \/ .el .ds ic \^ .TH GROFF_OUT 5 "11 May 1998" "Groff Version 1.11" .SH 名称 groff_out \- groff の中間出力フォーマット .SH 解説 このマニュアルページは、GNU troff の出力フォーマットについて記述します。 GNU troff が使用する出力フォーマットは、 UNIX のデバイス非依存 troff が使用するものと似ています。 ここでは両者の差のみを記述します。 .LP .B s コマンドへの引数はスケールドポイントです (これは .IR ポイント/ n を意味します。 .I n は DESC ファイル中の .B sizescale コマンドへの引数です)。 .B x\ Height コマンドへの引数もまたスケールドポイントです。 .LP 最初の 3 つの出力コマンドは次のようになっていなければなりません: .IP .BI x\ T\ device .br .BI x\ res\ n\ h\ v .br .B x init .LP DESC ファイル中に .B tcommand 行が存在する場合には、troff は以下の 2 つのコマンドを使用します。 .TP .BI t xxx .I xxx は、任意の文字のシーケンスであり、空白または改行を終端とします; 最初の文字を現在位置で印字し、 現在の水平位置を最初の文字の幅だけ増加させます。 続けて、同じ処理を各文字に対して実行します。 文字の幅は、フォントファイルにおいて与えられたものを 現在のポイントサイズに応じて適切にスケーリングしてから、 水平解像度の倍数となるように丸めます。 特殊文字はこのコマンドでは印字できません。 .TP .BI u n\ xxx .B t コマンドと同様ですが、各文字の印字後に現在の水平位置に加えられるものが、 文字幅と .IR n の和である点が違います。 .LP 単一文字は 8 ビット目がセットされていてもかまわないことに注意してください。 これはフォント名や特殊文字名にもあてはまります。 .LP 文字名やフォント名は任意の長さが許されます; ドライバはこれらの長さが 2 文字のみであると仮定してはなりません。 .LP 文字を印字する時、その文字は常に現在のフォント中に存在します。 デバイス非依存 troff とは異なり、 ドライバがスペシャルフォントから文字を探す必要はありません。 .LP .B D 描画コマンドは拡張されています。 .B \-n オプション指定時には、GNU pic はこれらの拡張を使用しません。 .TP \fBDf \fIn\fR\*(ic\en オブジェクトの塗り潰しに使用する陰影を .IR n に設定します; ここで .I n は 0 から 1000 の範囲の整数である必要があり、0 は白の塗り潰しを、 1000 は黒の塗り潰しを、 そしてそれらの間の値は中間の陰影を意味します。 この設定は、円の塗り潰し、楕円の塗り潰し、多角形の塗り潰しにのみ適用されます。 デフォルトでは 1000 が使用されます。 塗り潰しオブジェクトが色を持つ場合、 その色でそのオブジェクトの下の全てのものを完全に隠します。 1000 より大きい値や 0 より小さい値も使用される可能性があります: これらの値を指定すると、 現在線やテキストで使用している陰影で塗り潰すことを意味します。 通常はこれは黒ですが、 ドライバによってはこれを変更する手段を提供するものがあります。 .TP \fBDC \fId\fR\*(ic\en 現在位置を最左端とする、半径 .I d の塗り潰された円を描画します。 .TP \fBDE \fIdx dy\fR\*(ic\en 現在位置を最左端とする、水平半径 .I dx 垂直半径 .I dy の塗り潰された楕円を描画します。 .EQ delim $$ .EN .TP \fBDp\fR $dx sub 1$ $dy sub 1$ $dx sub 2$ $dy sub 2$ $...$ $dx sub n$ $dy sub n$\en $i = 1 ,..., n+1$ に対し、 .I i 番目の頂点を現在位置 $+ sum from j=1 to i-1 ( dx sub j , dy sub j )$ とする多角形を描画します。 今のところ、GNU pic のみがこのコマンドを使用し、三角形と矩形を生成します。 .TP \fBDP\fR $dx sub 1$ $dy sub 1$ $dx sub 2$ $dy sub 2$ $...$ $dx sub n$ $dy sub n$\en .B Dp と同様ですが、多角形の外形のみの描画でなく、塗り潰しも行います。 .TP \fBDt \fIn\fR\*(ic\en 現在の線の太さを .I n マシン単位に設定します。 伝統的に UNIX troff ドライバは、 現在のポイントサイズに比例する線の太さを使用します; .B Dt コマンドが指定されない場合や、 .B Dt コマンドに負の .IR n が指定された場合は、ドライバはこの方法を使用する必要があります。 .I n に 0 を指定すると、利用可能な最小の線の太さを選択します。 .LP これらのコマンドを実行した後、 現在位置をどのように変更するのかという問題が生じます。 GNU pic が生成するコードはこの問題に依存しませんので、 これはたいして重要ではありません。 .IP \fB\eD\(fm\fIc\fR $x sub 1$ $y sub 1$ $x sub 2$ $y sub 2$ $...$ $x sub n$ $y sub n$\(fm .LP の形式、ただし .I c は .BR c , .BR e , .BR l , .BR a , .BR ~ のいずれでもない描画コマンドが与えられた時、 UNIX troff は各 $x sub i$ を水平の単位で扱い、$y sub i$ を垂直の単位で扱い、 描画されるオブジェクトの幅は $sum from i=1 to n x sub i$ であり、 高さは $sum from i=1 to n y sub i$ であると仮定します。 (高さに関する仮定は、このような .B D コマンドを \ew エスケープシーケンス中で使用した後、 .B st レジスタおよび .B sb レジスタを検査することにより確認できます。) この規則は全てのオリジナルの描画コマンドにあてはまりますが、 .B De は例外です。 .BR Df , .B Dt コマンドや、影響は少ないですが .B DE コマンドにおいて、たとえ醜い結果となったとしても、 GNU troff もまた互換性のためにこの規則に従います。 それゆえ、 .IP \fBD\fIc\fR $x sub 1$ $y sub 1$ $x sub 2$ $y sub 2$ $...$ $x sub n$ $y sub n$\en .LP の形式の .B D コマンドを実行した後は、現在位置は $( sum from i=1 to n x sub i , sum from i=1 to n y sub i )$ だけ増えます。 .LP .B x\ X コマンドへの引数に改行を含めることを許すという、 継続に関する取り決めがあります: .B x\ X コマンドへの引数を出力する時、GNU troff は 引数中の .B + 文字付きの改行を辿ります (通常は改行で引数全体が終端されます); それゆえ、 .B x\ X コマンドを含む行の次行が .B + で開始する場合には、 .B x\ X コマンドを含む行の終端となっている改行は .B x\ X コマンドへの引数の一部として扱い、 .B + を無視し、行の .B + に続く部分を .B x\ X コマンドに続く行の部分として扱います。 .SH "関連項目" .BR groff_font (5) diff --git a/ja/man/man7/groff_char.7 b/ja/man/man7/groff_char.7 index c7021757f4..820713bb89 100644 --- a/ja/man/man7/groff_char.7 +++ b/ja/man/man7/groff_char.7 @@ -1,572 +1,573 @@ .ig \"-*- nroff -*- Copyright (C) 1989-1995 Free Software Foundation, Inc. Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this manual 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. Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions, except that this permission notice may be included in translations approved by the Free Software Foundation instead of in the original English. .. +.\" Original Revision: 1.1.1.1 .\" jpman %Id: groff_char.7,v 1.3 1998/12/13 13:23:18 horikawa Stab % .\" .\" groff_char.7 の表記を尊重しました。 .\" JIS X 0212 の附属書 3 表 3「0208とJISX0221との対応表」を、 .\" 文字の名前の参考としてではなく、英単語と日本語の単語の対応の .\" 参考としました。 .\" Kazuo Horikawa 1998/12/06 .\" .\" For best results, print this with groff. .ds aq \(aq .ie !\n(.g .if '\(aq'' .ds aq \' .el \{\ . tr \(aq\(aq . if !c\(aq .ds aq \' .\} .if !\n(.g .ig .\" .Ac accented-char accent char .de Ac .char \\$1 \\$3\ \k[acc]\ \h'(u;-\w'\\$2'-\w'\\$3'/2+\\\\n[skw]+(\w'x'*0)-\\\\n[skw])'\ \v'(u;\w'x'*0+\\\\n[rst]+(\w'\\$3'*0)-\\\\n[rst])'\ \\$2\ \v'(u;\w'x'*0-\\\\n[rst]+(\w'\\$3'*0)+\\\\n[rst])'\ \h'|\\\\n[acc]u' .hcode \\$1\\$3 .. .Ac \(vc \(ah c .Ac \(vC \(ah C .TH GROFF_CHAR 7 "7 September 1996" "Groff Version 1.11" .SH 名称 groff_char \- groff の文字名 .SH 解説 このマニュアルページは標準的な .B groff への入力文字を列挙しています。 このマニュアルページを印刷 (表示) するのに用いられるデバイスで 利用可能な文字のみが表示されます。 .I "Input code" 欄は単一の文字で入力することのできる文字において用いられ、 その文字の ISO Latin-1 コードが書かれています。 .I "PostScript name\" 欄には出力文字の一般的な PostScript 名が示されます。 .LP ISO Latin-1 のブレイク無しスペース (8 進数で 0240) は .BR \e (スペース) と等価です。 他の ISO Latin-1 の文字はすべて、次の例外を除いてそのまま表示されます: .B \` は ` として表示され、 .B \*(aq は ' として表示されます。対応する ISO Latin-1 文字は .B \e` と .BR \e(aq で得られます。 ISO Latin-1 の `ハイフン、負符号' (コード 45) はハイフンとして 表示されます; 負符号は .BR \e- で得られます。 ISO Latin-1 の `チルド' (コード 126) は ~ として表示されます; より大きいグリフは .BR \e(ti で得られます。 ISO Latin-1 の `サーカムフレクスアクセント' (コード 94) は ^ として表示されます; より大きいグリフは .BR \e(ha で得られます。 .sp 'nf .nr Sp 3n .ta \w'\fIOutput'u+\n(Spu +\w'\fIInput'u+\n(Spu +\w'\fIInput'u+\n(Spu \ +\w'periodcentered'u+\n(Spu .de C0 .C \\$1 "" \\$1 \\$2 "\\$3" .. .de C1 .C \e\\$1 "" \\\\\\$1 \\$2 "\\$3" .. .de C2 .C \e(\\$1 "" \\(\\$1 \\$2 "\\$3" .. .if !\n(.g .ig .de CD .C \[char\\$1] \\$1 \[char\\$1] \\$2 "\\$3" .. .do fspecial CR R .\" input-name decimal-code output-name ps-name description .if !\n(.g .ig .de C .if c\\$3 \{\ .ft CR .tr `\`'\*(aq .in 0 .di CH \&\\$1 .br .di .in .ft .ds CH \\*(CH\ .tr ``'' \&\\$3\t\\*(CH\t\\$2\t\\$4\t\\$5 .\} .. .if \n(.g .ig .de C .if !'\\$3'' \{\ .ft B .tr `\`'\*(aq .in 0 .di CH \&\\$1 .br .di .in .ft .ds CH \\*(CH\ .tr ``'' \&\\$3\t\\*(CH\t\\$2\t\\$4\t\\$5 .\} .. .wh \n(nlu+\n(.tu-\n(.Vu Fo .de Fo 'bp .He .. .de He .ft I Output Input Input PostScript Notes name code name .ft .LP 'nf .. .He .CD 33 exclam .CD 34 quotedbl .CD 35 numbersign .CD 36 dollar .CD 37 percent .CD 38 ampersand .CD 39 quoteright .CD 40 parenleft .CD 41 parenright .CD 42 asterisk .CD 43 plus .CD 44 comma .CD 45 hyphen .CD 46 period .CD 47 slash .CD 58 colon .CD 59 semicolon .CD 60 less .CD 61 equal .CD 62 greater .CD 63 question .CD 64 at .CD 91 bracketleft .CD 92 backslash .CD 93 bracketright .CD 94 circumflex "サーカムフレクスアクセント" .CD 95 underscore .CD 96 quoteleft .CD 123 braceleft .CD 124 bar .CD 125 braceright .CD 126 tilde "チルドアクセント" .CD 161 exclamdown .CD 162 cent .CD 163 sterling .CD 164 currency .CD 165 yen .CD 166 brokenbar .CD 167 section .CD 168 dieresis .CD 169 copyright .CD 170 ordfeminine .CD 171 guillemotleft .CD 172 logicalnot .CD 173 hyphen .CD 174 registered .CD 175 macron .CD 176 degree .CD 177 plusminus .CD 178 twosuperior .CD 179 threesuperior .CD 180 acute "アキュートアクセント" .CD 181 mu .CD 182 paragraph .CD 183 periodcentered .CD 184 cedilla .CD 185 onesuperior .CD 186 ordmasculine .CD 187 guillemotright .CD 188 onequarter .CD 189 onehalf .CD 190 threequarters .CD 191 questiondown .CD 192 Agrave .CD 193 Aacute .CD 194 Acircumflex .CD 195 Atilde .CD 196 Adieresis .CD 197 Aring .CD 198 AE .CD 199 Ccedilla .CD 200 Egrave .CD 201 Eacute .CD 202 Ecircumflex .CD 203 Edieresis .CD 204 Igrave .CD 205 Iacute .CD 206 Icircumflex .CD 207 Idieresis .CD 208 Eth .CD 209 Ntilde .CD 210 Ograve .CD 211 Oacute .CD 212 Ocircumflex .CD 213 Otilde .CD 214 Odieresis .CD 215 multiply .CD 216 Oslash .CD 217 Ugrave .CD 218 Uacute .CD 219 Ucircumflex .CD 220 Udieresis .CD 221 Yacute .CD 222 Thorn .CD 223 germandbls .CD 224 agrave .CD 225 aacute .CD 226 acircumflex .CD 227 atilde .CD 228 adieresis .CD 229 aring .CD 230 ae .CD 231 ccedilla .CD 232 egrave .CD 233 eacute .CD 234 ecircumflex .CD 235 edieresis .CD 236 igrave .CD 237 iacute .CD 238 icircumflex .CD 239 idieresis .CD 240 eth .CD 241 ntilde .CD 242 ograve .CD 243 oacute .CD 244 ocircumflex .CD 245 otilde .CD 246 odieresis .CD 247 divide .CD 248 oslash .CD 249 ugrave .CD 250 uacute .CD 251 ucircumflex .CD 252 udieresis .CD 253 yacute .CD 254 thorn .CD 255 ydieresis .C2 -D Eth "アイスランド語の大文字 eth" .C2 Sd eth "アイスランド語の小文字 eth" .C2 TP Thorn "アイスランド語の大文字 thorn" .C2 Tp thorn "アイスランド語の小文字 thorn" .C2 AE AE .C2 ae ae .C2 OE OE .C2 oe oe .C2 IJ IJ "オランダ語の IJ リゲチャ" .C2 ij ij "オランダ語の ij リゲチャ" .C2 ss germandbls .C2 'A Aacute .C2 'C Cacute .C2 'E Eacute .C2 'I Iacute .C2 'O Oacute .C2 'U Uacute .C2 'a aacute .C2 'c cacute .C2 'e eacute .C2 'i iacute .C2 'o oacute .C2 'u uacute .C2 :A Adieresis .C2 :E Edieresis .C2 :I Idieresis .C2 :O Odieresis .C2 :U Udieresis .C2 :Y Ydieresis .C2 :a adieresis .C2 :e edieresis .C2 :i idieresis .C2 :o odieresis .C2 :u udieresis .C2 :y ydieresis .C2 ^A Acircumflex .C2 ^E Ecircumflex .C2 ^I Icircumflex .C2 ^O Ocircumflex .C2 ^U Ucircumflex .C2 ^a acircumflex .C2 ^e ecircumflex .C2 ^i icircumflex .C2 ^o ocircumflex .C2 ^u ucircumflex .C2 `A Agrave .C2 `E Egrave .C2 `I Igrave .C2 `O Ograve .C2 `U Ugrave .C2 `a agrave .C2 `e egrave .C2 `i igrave .C2 `o ograve .C2 `u ugrave .C2 ~A Atilde .C2 ~N Ntilde .C2 ~O Otilde .C2 ~a atilde .C2 ~n ntilde .C2 ~o otilde .C2 vS Scaron .C2 vs scaron .C2 vZ Zcaron .C2 vz zcaron .C2 ,C Ccedilla .C2 ,c ccedilla .C2 /L Lslash "ポーランド語のスラッシュ付き L" .C2 /l lslash "ポーランド語のスラッシュ付き l" .C2 /O Oslash .C2 /o oslash .C2 oA Aring .C2 oa aring .C2 a" hungarumlaut "ハンガリー語のウムラウト" .C2 a- macron "マクロン、バーアクセント" .C2 a. dotaccent "ドットアクセント" .C2 a^ circumflex "サーカムフレクスアクセント" .C2 aa acute "アキュートアクセント" .C2 ga grave "グレーブアクセント" .C2 ab breve "ブリーブアクセント" .C2 ac cedilla "セディラアクセント" .C2 ad dieresis "ウムラウト、ダイエレシス" .C2 ah caron "h\('a\(vcek アクセント" .C2 ao ring "リングもしくはサークルアクセント" .C2 a~ tilde "チルドアクセント" .C2 ho ogonek "フックもしくはオゴネクアクセント" .C2 .i dotlessi "点のない i" .C2 .j dotlessj "点のない j" .C2 Cs currency "スカンジナビアの通貨記号" .C2 Do dollar .C2 Po sterling .C2 Ye yen .C2 Fn florin .C2 ct cent .C2 Fo guillemotleft .C2 Fc guillemotright .C2 fo guilsinglleft .C2 fc guilsinglright .C2 r! exclamdown .C2 r? questiondown .C2 ff ff "ff のリゲチャ" .C2 fi fi "fi のリゲチャ" .C2 fl fl "fl のリゲチャ" .C2 Fi ffi "ffi のリゲチャ" .C2 Fl ffl "ffl のリゲチャ" .C2 OK \& "チェックマーク、照合のしるし" .C2 Of ordfeminine .C2 Om ordmasculine .C2 S1 onesuperior .C2 S2 twosuperior .C2 S3 threesuperior .C2 <- arrowleft .C2 -> arrowright .C2 <> arrowboth "左右向き矢印" .C2 da arrowdown .C2 ua arrowup .C2 va \& "上下向き矢印" .C2 lA arrowdblleft .C2 rA arrowdblright .C2 hA arrowdblboth "左右向き二重矢印" .C2 dA arrowdbldown .C2 uA arrowdblup .C2 vA \& "上下向き二重矢印" .C2 ba bar .C2 bb brokenbar .C2 br br "従来の troff で利用された箱罫線" .C2 ru ru "ベースラインの罫線" .C2 ul ul "従来の troff で利用された下線" .C2 bv bv "太い縦棒" .C2 bs bell .C2 ci circle .C2 bu bullet .C2 co copyright .C2 rg registered .C2 tm trademark .C2 dd daggerdbl "ダブルダガーサイン" .C2 dg dagger .C2 ps paragraph .C2 sc section .C2 de degree .C2 em emdash "全角 (M の幅の) ダッシュ" .C2 en endash "半角 (n の幅の) ダッシュ" .C2 %0 perthousand "千分の一記号、パーミル" .C2 12 onehalf .C2 14 onequarter .C2 34 threequarters .C2 f/ fraction "除算の棒" .C2 fm minute "フィート記号、プライム" .C2 sd second .C2 ha asciicircum "\s-2ASCII\s+2 サーカムフレクス、ハット、キャレット" .C2 ti asciitilde "\s-2ASCII\s0 チルド、大きいチルド" .C2 hy hyphen .C2 lB bracketleft .C2 rB bracketright .C2 lC braceleft .C2 rC braceright .C2 la angleleft "始め山括弧" .C2 ra angleright "終り山括弧" .C2 lh handleft .C2 rh handright .C2 Bq quotedblbase "低い二重コンマ引用符" .C2 bq quotesinglbase "低い一重コンマ引用符" .C2 lq quotedblleft .C2 rq quotedblright .C2 oq quoteleft "一重開き引用符" .C2 aq quotesingle "アポストロフィ引用符" .C2 or bar .C2 at at .C1 - minus "現在のフォントの負符号" .C2 sh numbersign .C2 sl slash .C2 rs backslash .C2 sq square .C2 3d therefore .C2 tf therefore .C2 *A Alpha .C2 *B Beta .C2 *C Xi .C2 *D Delta .C2 *E Epsilon .C2 *F Phi .C2 *G Gamma .C2 *H Theta .C2 *I Iota .C2 *K Kappa .C2 *L Lambda .C2 *M Mu .C2 *N Nu .C2 *O Omicron .C2 *P Pi .C2 *Q Psi .C2 *R Rho .C2 *S Sigma .C2 *T Tau .C2 *U Upsilon .C2 *W Omega .C2 *X Chi .C2 *Y Eta .C2 *Z Zeta .C2 *a alpha .C2 *b beta .C2 *c xi .C2 *d delta .C2 *e epsilon .C2 *f phi .C2 +f phi1 "ファイ変形" .C2 *g gamma .C2 *h theta .C2 +h theta1 "シータ変形" .C2 *i iota .C2 *k kappa .C2 *l lambda .C2 *m mu .C2 *n nu .C2 *o omicron .C2 *p pi .C2 +p omega1 "パイ変形、オメガ風" .C2 *q psi .C2 *r rho .C2 *s sigma .C2 *t tau .C2 *u upsilon .C2 *w omega .C2 *x chi .C2 *y eta .C2 *z zeta .C2 ts sigma1 "語尾小文字σ" .C2 ~~ approxequal .C2 ~= approxequal .C2 != notequal .C2 ** asteriskmath .C2 -+ minusplus .C2 +- plusminus .C2 <= lessequal .C2 == equivalence .C2 =~ congruent .C2 >= greaterequal .C2 AN logicaland .C2 OR logicalor .C2 no logicalnot .C2 te existential "存在する、存在限定子" .C2 fa universal "すべての、普通限定子" .C2 Ah aleph .C2 Im Ifraktur "フラクトゥール(ドイツ字体) I, 虚数" .C2 Re Rfraktur "フラクトゥール(ドイツ字体) R, 実数" .C2 if infinity .C2 md dotmath .C2 mo element .C2 mu multiply .C2 nb notsubset .C2 nc notpropersuperset .C2 ne notequivalence .C2 nm notelement .C2 pl plusmath "特殊フォントの正符号" .C2 eq equalmath "特殊フォントの等号" .C2 pt proportional .C2 pp perpendicular .C2 sb propersubset .C2 sp propersuperset .C2 ib reflexsubset .C2 ip reflexsuperset .C2 ap similar .C2 pd partialdiff "偏微分記号" .C2 c* circlemultiply "円の中に積の記号" .C2 c+ circleplus "円の中に正符号" .C2 ca intersection "共通集合、キャップ" .C2 cu union "合併集合、カップ" .C2 di divide "除算記号" .C2 -h hbar .C2 gr gradient .C2 es emptyset .C2 CL club "クラブスート" .C2 SP spade "スペードスート" .C2 HE heart "ハートスート" .C2 DI diamond "ダイヤスート" .C2 CR carriagereturn "改行の記号" .C2 st suchthat .C2 /_ angle .C2 << "" "非常に小さい" .C2 >> "" "非常に大きい" .C2 wp weierstrass "ヴァイヤーシュトラースの p" .C2 lz lozenge .C2 an arrowhorizex "水平な矢印の延長" .ch Fo .SH "関連項目" .BR groff (1) .br .IR "An extension to the troff character set for Europe" , E.G. Keizer, K.J. Simonsen, J. Akkerhuis, EUUG Newsletter, Volume 9, No. 2, Summer 1989 diff --git a/ja/man/man7/groff_mm.7 b/ja/man/man7/groff_mm.7 index 43574f5f2f..459b643758 100644 --- a/ja/man/man7/groff_mm.7 +++ b/ja/man/man7/groff_mm.7 @@ -1,1877 +1,1879 @@ .ig \"-*- nroff -*- Copyright (C) 1991-1995 Free Software Foundation, Inc. Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this manual 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. Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions, except that this permission notice may be included in translations approved by the Free Software Foundation instead of in the original English. .. .\" %Id: groff_mm.man,v 1.27 1995/04/24 05:37:46 jh Exp % +.\" +.\" Original Revision: 1.1.1.1 .\" jpman %Id: groff_mm.7,v 1.4 1999/01/20 17:21:55 kuma Stab % .\" .\" WORD: abstract アブストラクト .\" WORD: broken varable list 変則可変リスト .\" WORD: bullet list 黒丸リスト .\" WORD: diversion 転換 .\" WORD: exhibit エグジビット .\" WORD: front page 表題紙 .\" WORD: hanging indent ハンギングインデント .\" WORD: heading 見出し .\" WORD: justification 行末揃え .\" WORD: memorandum 覚書 .\" WORD: multiple columns 多段組 .\" WORD: nesting 入れ子 .\" WORD: overprint 重ね打ちする .\" WORD: released paper style 公開論文形式 .\" WORD: separate environment 隔離された環境 .\" WORD: static display スタティックディスプレイ .\" WORD: trap トラップ .\" WORD: variable item list 可変項目リスト .\" " .de T2 .ne 2v .ti -.5i \\$1 .sp -1 .. .de T3 .ne 2v .ti -.5i \fB\\$1\fP .br .. .TH GROFF_MM 7 "7 September 1996" "Groff Version 1.11" .SH 名称 groff_mm \- groff mm マクロ .SH 書式 .B groff .B \-mm [ .IR options .\|.\|. ] [ .IR files .\|.\|. ] .SH 解説 groff mm マクロは、DWB mm マクロと互換であるように設計されています。 しかし、以下のような制限があります: .TP .B \(bu ベル研の方言は実装されていません。 .TP .B \(bu マクロ OK 及び PM は実装されていません。 .TP .B \(bu groff mm は、カットマークをサポートしません。 .LP \fBmm\fP は、国際化されて設計されています。 そのため、各国語対応用の短いマクロファイルを書き換えて、 英語のテキストを好みの言語対応に置き換えることができます。 \fBmmse\fP を例として用いて下さい。 .LP 新しいマクロ: \fBAPP\fP, \fBAPPSK\fP, \fBB1\fP, \fBB2\fP, \fBBVL\fP, \fBCOVER\fP, \fBCOVEND\fP, \fBGETHN\fP, \fBGETPN\fP, \fBGETR\fP, \fBGETST\fP, \fBINITR\fP, \fBMC\fP, \fBMOVE\fP, \fBMULB\fP, \fBMULN\fP, \fBMULE\fP, \fBPGFORM\fP, \fBPGNH\fP, \fBSETR\fP, \fBTAB\fP, \fBVERBON\fP, \fBVERBOFF\fP .LP .\"########################################################################" .LP 大域変数の初期化後に \fBlocale\fP か \fIlang\fP\fB_locale\fP という ファイルを読み込みます。そのため、企業名などについてのマクロを ローカライズすることができます。 .sp このマニュアルでは、角括弧は省略可能な引数を表示するのに用いられます。 .sp 3 \fB数値レジスタと文字列変数\fP .br 多くのマクロを数値レジスタと文字列変数によって制御することが出来ます。 数値レジスタは、\fBnr\fP コマンドによって、代入が出来ます。 .br \fB\&.nr\fP \fIXXX\fP \fI[+-]n [i]\fP .br \fBXXX\fP はレジスタの名前です。 \fBn\fP は、代入されるべき値です。 そして、\fBi\fP は、自動増加に使われる増分値です。 もし現在値の増減が必要ならば、\fBn\fP には、 前に接頭辞として正符号や負符号をつけることが出来ます。 (自動増加や自動減少が行なわれるのは、 数値レジスタが正符号か負符号とともに用いられた時のことで、 \fB\en+[XXX]\fP か \fB\en-[XXX]\fP の様になります。) .sp 文字列変数は、\fBds\fP により定義されます。 .br \fB\&.ds\fP \fIYYY string\fP .br 文字列 \fIstring\fP としては、空白も含めて行末までの全部が割り当てられます。 \fIstring\fP の中の最初の空白は、二重引用符が前につけられなければなりません。 (テキストの中では、文字列変数は \fB\e*[YYY]\fP の様に使われます。) .sp \fB数値レジスタの特殊な形式\fP .br 数値レジスタというものは、形式が何も指定されなければ、 通常の数字で表示されます。 形式は \fBaf\fP によって設定出来ます: .br \fB\&.af\fP \fIR c\fP .br \fIR\fP はレジスタの名前で、\fIc\fP はその形式です。 .in +.5i .T2 \fB形式\fP \fB数の並び\fP .T2 1 0, 1, 2, 3, ... .T2 001 000, 001, 002, 003, ... .T2 i 0, i, ii, iii, iv, ... .T2 I 0, I, II, III, IV, ... .T2 a 0, a, b, c, ..., z, aa, ab, ... .T2 A 0, A, B, C, ..., Z, AA, AB, ... .in .LP \fBマクロ:\fP .TP .B "1C [1]" 1 段の段組処理を開始します。引数としての \fB1\fP はページ区切りを無効にします。 広い脚注を用いて下さい。 狭い脚注は重ね打ちになってしまうでしょう。 .TP .B 2C 2 段の段組処理を開始します。ページを 2 段のカラムに分割します。 これは、\fBMC\fP の特殊な場合になります。 関連項目は \fB1C\fP です。 .TP .B AE アブストラクトの終わり。 \&\fBAS\fP を参照して下さい。 .TP .B "AF [企業名]" 著者の帰属する企業。\fBAU\fP の前に呼び出さなければなりません。 関連項目は \fBCOVER\fP です。 .TP .B "AL [type [text-indent [1]]]" 自動番号付けリストを開始します。 項目は、1 から始められる番号を振付けられます。 引数の \fItype\fP は数字の型を制御します。 .in +.5i .T2 引数 数字の型 .T2 1 アラビア数字 (デフォルト) .T2 A 大文字 (A-Z) .T2 a 小文字 (a-z) .T2 I 大文字 ローマ数字 .T2 i 小文字 ローマ数字 .in \fItext-indent\fP はインデントを設定し、\fBLi\fP よりも優先されます。 3 番目の引数は、各項目の前に空行を出力することを禁止します。 .TP .B "APP name text" \fIname\fP という名前の付録を開始します。 \fIname\fP が "" である場合には、自動的に名前がつけられます。 名前が自動生成されるならば、付録は \fBA\fP から始まります。 数値変数の \fBAph\fP が非 0 であれば、新しいページに切り替えられ、 ヘッダも生成されます。 これが、デフォルトです。 付録は、常に「List of contents」の中に正しいページ番号とともに表示されます。 \fIAPPENDIX\fP という名前は、 文字列変数の \fBApp\fP に望みのテキストを代入すれば、 変えることが出来ます。 .TP .B "APPSK name pages text" \&\fB.APP\fP とほぼ同じです。異なるのは、\fIpages\fP だけ ページ番号が増加されることです。 これが使用されるのは、図表や、その他整形されていない文書が 付録に含まれる時です。 .TP .B "AS [arg [indent]]" アブストラクトの開始。 インデントは、「en (半角)」で指定されますが、単位付きの指定も可能です。 引数の \fIarg\fP は、アブストラクトが印字される場所を制御します。 .in +.5i .T2 arg 配置 .T2 0 公開論文形式 (\fBMT 4\fP) の場合には、 アブストラクトは第 1 ページと表紙に印字されます。 それ以外の場合には、表紙はなく、第 1 ページに印字されます。 .T2 1 アブストラクトは第 1 ページだけに印字されます (\fBMT 4\fP の場合のみ)。 .T2 2 アブストラクトは表紙だけに印字されます。 表紙の印字には、\fBCS\fP は必要ありません。 .in 外部へのレター形式 (\fBMT 5\fP) では、アブストラクトは全く印字されません。 \fIindent\fP は両側マージンのインデントを制御します。 指定されない時は、通常のテキストのインデントが用いられます。 .TP .B "AST [title]" アブストラクトの題目。 デフォルトでは、\fBABSTRACT\fP です。 アブストラクトのテキストの上にそのテキストを設定します。 .TP .B "AT title1 [title2 ...]" 著者の肩書。\fBAT\fP は、各々の \fBAU\fP のすぐ後に現れなければなりません。 肩書は、署名ブロックで名前の後に現れます。 .TP .B "AU name [initials [loc [dept [ext [room [arg [arg [arg]]]]]]]]" 著者に関する情報。これは、覚書や論文の著者を明示し、表紙や他の同様の場所に 印字されます。 \fBAU\fP は \fBTL\fP の前に現れなければなりません。 著者情報には、イニシャル (initials)、所在地 (loc)、部局 (dept)、 電話内線番号 (ext)、部屋番号又は部屋の名前 (room)、そして 3 個までの 追加引数を含めることが出来ます。 .TP .B "AV [name [1]]" 承認署名。これは、署名と日付を伴う承認欄を生成します。 変数 \fBLetapp\fP を用いて文字列 \fBAPPROVED:\fP を変更することが出来ます。 また、文字列 \fBDate\fP は \fBLetdate\fP に入っています。 .TP .B "B [bold-text [prev-font-text [bold...]]]" ボールド体の開始。引数の数には、制限はありません。 すべての引数は、1 個の単語に結合されます。 第 1 番目の引数、第 3 番目の引数、などなどがボールド体で印字されます。 .TP .B B1 (ms マクロのような) ボックスの開始。テキストの周りにボックスを描きます。 テキストは 1 文字インデントされ、右マージンは 1 文字短くなります。 .TP .B B2 ボックスの終了。\fBB1\fP によって開始されたボックスを終了します。 .TP .B BE ページ底部のブロックの終了。\fBBS\fP を参照して下さい。 .TP .B "BI [bold-text [italic-text [bold-text [...]]]]" ボールド体とイタリック体。 引数の数には制限はありません。 \fBB\fP を参照して下さい。 .TP .B "BL [text-indent [1]]" 黒丸リストの開始。これは、黒丸記号と空白を各リスト項目の先頭部分に配置する リストを初期化します (\fBLI\fP を参照して下さい)。 \fItext-indent\fP は、数値レジスタ \fBPi\fP により設定されるリスト項目の デフォルトのインデントより優先されます。 第 3 番目の引数により、各項目前の空行の出力が禁止されます。 .TP .B "BR [bold-text [roman-text [bold-text [...]]]]" ボールド体とローマン体。 引数の数には、制限はありません。 .TP .B BS ページ底部のブロック開始。これは、テキストブロックの定義を開始します。 このブロックは各ページの底部に印字されます。 ブロックは、\fBBE\fP で終了します。 .TP .B BVL 変則可変項目リスト。 この変則可変項目リストには、定まった項目記号がありません。 その代わり、各 \fBLI\fP に項目記号が定義されていると仮定しています。 テキストは必ず、項目記号の後の次の行で始まります。 \fItext-indent\fP によって、テキストのインデントが設定されます。 そして、\fImark-indent\fP によって、現在のインデントから項目記号までの 距離が設定されます。 第 3 番目の引数は、各項目の前に空行を出力することを禁止します。 .TP .B "COVER [arg]" \&\fBCOVER\fP は表紙の定義を開始します。 重要なことは、\fB.COVER\fP がすべての通常のテキストより前に現れることです。 \&\fB.COVER\fP では、\fIarg\fP を使用して、 /usr/share/tmac/mm/\fIarg\fP.cov というファイル名を構成します。 このお陰で、無制限な型の表紙を創作することが可能です。 \fIms.cov\fP の目的としていることは、\fBms\fP の表紙に似せることです。 \&\fB.COVER\fP では、表紙の定義の最後に \fB.COVEND\fP があることが要求されます。 必ず、以下のような順番で表紙マクロを使用して下さい: .nf \&.COVER \&.TL \&.AF \&.AU \&.AT \&.AS \&.AE \&.COVEND .fi しかし、必ず必要なのは \fB.TL\fP と \fB.AU\fP だけです。 .TP .B COVEND これによって表紙の記述は終了し、表紙が印字されます。 このマクロは、表紙ファイルに定義されています。 .TP .B DE ディスプレイ終了。これは、\fBDS\fP 又は \fBDF\fP で始まったテキストブロック やディスプレイを終了させます。 .TP .B "DF [format [fill [rindent]]]" フローティングディスプレイを開始します (入れ子にはできません)。 フローティングディスプレイは、キューに保存され、入れられた順番で印字されます。 \fIformat\fP, \fIfill\fP, \fIrindent\fP は、\fBDS\fP の場合と同じです。 フローティングディスプレイは、2 個の数値レジスタ \fBDe\fP と \fBDf\fP とによって制御されます。 .sp \fBDe レジスタ\fP .in +.5i .T2 0 特別なことは何もありません。これがデフォルトです。 .T2 1 ディスプレイが印字された後で改ページが行われます。 その為、1 ページに唯 1 つのディスプレイが出力されます。 その後ろには、テキストは何も続きません。 .in .sp \fBDf レジスタ\fP .in +.5i .T2 0 (セクション - ページの番号付けが有効な時は) 各セクションの最後に、 そうでない時には文書の最後に、ディスプレイは印字されます。 .T2 1 充分な余地があれば、新しいディスプレイは現在のページに印字されます。 そのような余地がなければ、ディスプレイは文書の最後に印字されます。 .T2 2 1 つのディスプレイが、各ページの、又は (多段組のモードでは) 各カラムの一番上に印字されます。 .T2 3 もし充分な余地があるならば、1 つのディプレイを印字します。 余地がなければ、ディスプレイは次ページか次のカラムの一番上に印字されます。 .T2 4 新しいページまたはカラムに、入るだけのディスプレイを印字します。 もし \fBDe\fP が 0 でなければ、各ディスプレイの間に改ページが出力されます。 .T2 5 現在のページをディスプレイで満たします。 そして、残りは、新しいページまたはカラムから始めます。(これがデフォルトです)。 もし \fBDe\fP が 0 でなければ、各ディスプレイの間に改ページが出力されます。 .in .TP .B "DL [text-indent [1]]" ダッシュリストの開始。これは、各項目がダッシュの後に印字されるリスト を開始します。 \fItext-indent\fP は、数値レジスタの \fBPi\fP によって設定される、リスト項目の デフォルトのインデントを変更します。 第 3 引数は各項目の前に空行を印字することを禁止します。 第 2 引数は印字されるべきリスト項目の間の空行を抑止します。 \fBLI\fP を参照して下さい。 .TP .B "DS [format [fill [rindent]]]" スタティックディスプレイの開始。これは、\fBDE\fP に至るまでテキストの収集を 始めます。 テキストは、ページ長より長くならない限り同一のページに印字されます。 \fBDS\fP は入れ子にできます。入れ子の深さには限度はありません (合理的な程度に :-)。 .sp \fBformat\fP .in +.5i .ds x " .\" " .T2 """""" インデントしません。 .T2 none インデントしません。 .T2 L インデントしません。 .T2 I 数値レジスタ \fBSi\fP の値だけテキストをインデントします。 .T2 C 各行を中央揃えします。 .T2 CB ディスプレイ全体をブロックとして中央揃えします。 .T2 R 行を右揃えします。 .T2 RB ディスプレイ全体をブロックとして右揃えします。 .in .sp L, I, C, CB は 0, 1, 2, 3 とも指定できます。これは互換性の理由からです。 (この機能は使用しないで下さい。:-) .sp \fBfill\fP .in +.5i .T2 """""" 行詰め機能を無効にします。 .T2 none 行詰め機能を無効にします。 .T2 N 行詰め機能を無効にします。 .T2 F 行詰め機能を有効にします。 .in .sp N と F は 0 と 1 とも指定できます。 通常は空行がディスプレイの前と後に印字されます。 数値レジスタ \fBDs\fP に 0 を設定すればこれを抑止出来ます。 \fIrindent\fP を指定すれば、行の長さをその量だけ短く出来ます。 .TP .B "EC [title [override [flag [refname]]]]" 数式の題目。 数式に題目をつけます。 引数に \fIoverride\fP を指定すれば、数式番号を変更出来ます。 .sp \fBflag\fP .in +.5i .T2 none \fIoverride\fP は、番号の接頭辞となります。 .T2 0 \fIoverride\fP は、番号の接頭辞となります。 .T2 1 \fIoverride\fP は、番号の接尾辞となります。 .T2 2 番号は \fIoverride\fP に置き換えられます。 .in \&\fBEC\fP は数値レジスタの \fBEc\fP をカウンタとして使います。 番号の形式を変更する為に、\fB.af\fP を用いることが出来ます。 もし数値レジスタの \fBOf\fP が 1 であれば、題目の形式として番号の後にはドット の代わりにダッシュが使われます。 文字列変数の \fBLe\fP は、数式のリスト (List of Equations) の題目を 制御します。 これは、デフォルトでは \fILIST OF EQUATIONS\fP です。 数値レジスタの \fBLiec\fP は単語 \fIEquation\fP を含みます。 この文字列は番号の前に印字されます。 もし \fIrefname\fP が指定されている時には、数式番号が \fB.SETR\fP によって 保存されます。これは、\fB.GETST\fP \fIrefname\fP によって取り出せます。 .TP .B "EF [arg]" 偶数ページのフッタ。これは偶数ページの通常のページフッタの すぐ上に印字されます。 \&\fBPF\fP を参照して下さい。 .TP .B "EH [arg]" 偶数ページのヘッダ。これは偶数ページの通常のページヘッダの すぐ下に印字されます。 \&\fBPH\fP を参照して下さい。 .TP .B EN 数式の終了。 \&\fBEQ\fP を参照して下さい。 .TP .B EOP ページ終了のユーザ定義マクロ。 フッタを通常通り印字する代わりにこのマクロが呼び出されます。 このマクロは何のトラップもアクティブではない状態の隔離された環境下で 実行されます。 \&\fBTP\fPを参照して下さい。 .sp \fBEOP に利用できる文字列変数\fP .in +.5i .T2 EOPf \&\fBPF\fP からの引数。 .T2 EOPef \&\fBEF\fP からの引数。 .T2 EOPof \&\fBOF\fP からの引数。 .in .TP .B "EQ [label]" 数式の開始。 \fBEQ\fP/\fBEN\fP は、\fBeqn\fP への入力として書かれた数式の区切り記号です。 \fBEQ\fP/\fBEN\fP は \fBDS\fP/\fBDE\fP ペアに囲まれていなければなりません。 しかし、\fBEQ\fP が \fBeqn\fP のオプションを設定するのに使用されているだけ ならば、その必要はありません。 数値レジスタの \fBEq\fP が 1 でなければ、\fIlabel\fP は数式の右マージンに 現れます。1 であれば、ラベルは左マージンに現れます。 .TP .B "EX [title [override [flag [refname]]]]" エグジビットの題目。 引数は \fBEC\fP と同じです。 \&\fBEX\fP は数値レジスタの \fBEx\fP をカウンタとして使用します。 文字列変数の \fBLx\fP は、エグジビットのリスト (List of Exhibits) の題名を 制御します。デフォルトでは \fILIST OF EXHIBITS\fP となります。 文字列変数の \fBLiex\fP は、\fIExhibit\fP という単語を含みます。 この単語は、番号の前に印字されます。 もし \fIrefname\fP が指定されたなら、その時はエグジビット番号は、 \&\fB.SETR\fP により保存されます。 これは、\fB.GETST\fP \fIrefname\fP によって取り出せます。 .TP .B "FC [closing]" レターや覚書の正式な締めくくりとして \fIYours\ very\ truly,\fP を印字します。 引数でデフォルトの文字列を置き換えられます。 デフォルトは文字列変数の \fBLetfc\fP に保管されています。 .TP .B "FD [arg [1]]" 脚注のデフォルトの形式。 これは、ハイフネーション (hyphen)、右マージン揃え (adjust)、 脚注テキストのインデント (indent) を制御します。 また、ラベル揃え (ljust) も変更することが出来ます。 .sp .ne 14v .nf .ta .5i +.8i +.8i +.8i +.8i \fBarg hyphen adjust indent ljust\fP 0 no yes yes left 1 yes yes yes left 2 no no yes left 3 yes no yes left 4 no yes no left 5 yes yes no left 6 no no no left 7 yes no no left 8 no yes yes right 9 yes yes yes right 10 no no yes right 11 yes no yes right .sp .fi .DT 11 以上の引数は、引数 0 と見なされます。mm でのデフォルトは 10 です。 .TP .B FE 脚注の終了。 .TP .B "FG [title [override [flag [refname]]]]" 図の題名。 もし \fIrefname\fP が指定されていれば、図番号が \&\fB.SETR\fP によって保存されます。 これは、\fB.GETST\fP \fIrefname\fP によって取り出せます。 .TP .B "FS [label]" 脚注の開始。 脚注は \fBFE\fP で閉じられます。 通常脚注は自動的に番号が付されます。 この番号は、文字列変数の \fBF\fP により利用出来ます。 ただ \fB\e*F\fP をテキストに加えて下さい。 また、\fIlabel\fP を引数として加えることで、 他の番号や名前を脚注に付けることが出来ます。 ディスプレイの中の脚注も今では可能です。 空行が、脚注同士を分離します。 行の高さは、数値レジスタの \fBFs\fP により制御されます。 デフォルト値は 1 です。 .TP .B "GETHN refname [varname]" これは、対応する \fBSETR\fP \fIrefname\fP が配置された場所の セクションヘッダ番号を挿入します。 これは、1 回目のパスでは、X.X.X. となっているでしょう。 \fBINITR\fP を参照して下さい。 もし varname が指定されているなら、\fBGETHN\fP により文字列変数の \&\fIvarname\fP にはセクションヘッダ番号が代入されます。 .TP .B "GETPN refname [varname]" これは、対応する \fBSETR\fP \fIrefname\fP が配置された場所の ページ番号を挿入します。 これは、1 回目のパスでは、9999 となっているでしょう。 \fBINITR\fP を参照して下さい。 もし varname が指定されているなら、\fBGETPN\fP により文字列変数の \&\fIvarname\fP にはページ番号が代入されます。 .TP .B "GETR refname" これは \fBGETHN\fP と \fBGETPN\fP をテキストの 「chapter」と「, page」とともに結合します。 文字列変数の \fIQrf\fP は参照用のテキストを保持しています: .ti +.5i \&.ds Qrf See chapter \e\e*[Qrfh], page \e\e*[Qrfp]. .br \fIQrf\fP は他の言語をサポートする為に変更出来ます。 文字列変数の \fIQrfh\fP と \fIQrfp\fP は \fBGETR\fP により設定され、 セクションヘッダ番号とページ番号が入っています。 .TP .B "GETST refname [varname]" これは、\fB.SETR\fP の第 2 引数により保存された文字列を挿入します。 これは、1 回目のパスでは、ダミー文字列になっているでしょう。 もし varname が指定されたなら、\fBGETST\fP により文字列変数の \fIvarname\fP には保存された文字列が代入されます。 \&\fBINITR\fP を参照して下さい。 .TP .B "H level [heading-text [heading-suffix]]" 番号付セクション見出し。 セクションヘッダには、1 から 7 迄のレベルを付けられます。 レベル 1 が、トップレベルです。 テキストは引数 \fIheading-text\fP に与えられます。 テキストに空白があるときには、二重引用符で括らなければなりません。 \fBheading-suffix\fP をセクションヘッダのテキスト中に付け加えられます。 しかし、これは目次には現れません。 通常、これは脚注マークや同様のものに用いられます。 \fIheading-suffix\fP の中では \fB\e*F\fP を使わないで下さい。 \fB\e*F\fP は機能しません。 手動のラベルを使わなければなりません。 \fBFS\fP を参照して下さい。 .sp \fBH\fP の直後に置かれた段落 \fBP\fP は、無視されます。 \fBH\fP によって、行送りとインデントの処理が行われます。 .sp \fB見出しの前のページ切替\fP .br 数値レジスタの \fBEj\fP は見出しの前のページ切替を制御します。 通常、レベル 1 の見出しは、その前に 2 行の空行が印字されます。 それより高次のレベルの見出しの前では 1 行になります。 数値レジスタの \fBEj\fP が 1 であれば、各第 1 レベルの見出しの前で 新しいページが排出されます。 レベルが \fBEj\fP の値以下の見出しすべてについて、ページが切り替えられます。 \fBEj\fP のデフォルト値は 0 です。 .sp \fB見出しの行区切りレベル\fP .br もし見出しレベルが数値レジスタ \fBHb\fP 以下ならば、 見出しの後で行区切りが起こります。 このレジスタのデフォルト値は 2 です。 .sp \fB見出しの空白行のレベル\fP .br もし見出しレベルが数値レジスタ \fBHs\fP 以下ならば、 空白行が見出しの後に挿入されます。 このレジスタのデフォルト値は 2 です。 .sp もしレベルが \fBHb\fP と \fBHs\fP の両方より大きければ、 テキストは同じ行で見出しの後に続きます。 .sp \fB見出しの後のインデント\fP .br 見出しの後のテキストのインデントは数値レジスタの \fBHi\fP によって制御 されます。 このレジスタのデフォルト値は 0 です。 .sp \fBHi\fP .in +.5i .T2 0 テキストは左揃えされます。 .T2 1 テキストのインデントは数値レジスタの \fBPt\fP の値に従います。 \fBP\fP を参照して下さい。 .T2 2 テキストは見出しの最初の単語に合わせて 1 列に並べられます。 .in .sp \fBセクション見出しの中央揃え\fP .br そのレベルが数値レジスタの \fBHc\fP 以下で、かつ \fBHb\fP 又は \fBHs\fP 以下の見出しはすべて、中央揃えされます。 .sp \fB見出しのフォントの管理\fP .br 各見出しレベルでのフォントは文字列変数の \fBHF\fP を用いて管理されています。 この変数には各レベルでのフォント番号又はフォント名が入れられています。 デフォルトでは \fB2\ 2\ 2\ 2\ 2\ 2\ 2\fP (すべての見出しでイタリック体) です。 これをまた \fBI\ I\ I\ I\ I\ I\ I\fP の様にも書くことが出来ます。 省略された値はすべて 1 であると推定されます。 .sp \fBポイントサイズの管理\fP .br 各見出しのポイントサイズは、フォントが \fBHF\fP により管理されるのと同様な 方法で、文字列変数の \fBHP\fP により管理されます。 値 0 は、デフォルトのポイントサイズを選びます。 デフォルト値は \fB0\ 0\ 0\ 0\ 0\ 0\ 0\fP です。 ポイントサイズのみが変わるのであって、垂直サイズではないことに気をつけて下さい。 垂直サイズはユーザにより指定されるマクロ \fBHX\fP や \fBHZ\fP によって 管理出来ます。 .sp \fB見出しカウンタ\fP .br \fBH1\fP から \fBH7\fP 迄の名前をつけられた 7 個の数値レジスタには 各見出しレベルのカウンタが入れられています。 それらの値はアラビア数字を使って印字されます。 これらは、マクロの \fBHM\fP (下記参照) によって変えられます。 すべての記号は印字する前に結合されます。 これを避ける為には、数値レジスタの \fBHt\fP に 1 を代入して下さい。 これにより各見出しでは、現在の見出しのカウンタだけが印字されます。 .sp \fB自動の目次\fP .br その見出しレベルが数値レジスタ \fBCl\fP 以下の見出しは、 目次に印字する為に保存されます。 このレジスタのデフォルト値は 2 です。 .sp \fB見出しの特別な管理、ユーザ定義マクロ\fP .br これから記述するマクロは垂直行送り、フォント、または他の機能を細かく 制御するためにユーザが定義できるものです。 引数 \fIlevel\fP は \fBH\fP へのレベル引数です。 しかし、これは番号無し見出しでは 0 になります (\fBHU\fP を参照して下さい)。 引数 \fIrlevel\fP は実際のレベルです。 これは、番号無し見出しの為に数値レジスタ \fBHu\fP に代入されます。 引数 \fIheading-text\fP は、\fBH\fP や \fBHU\fP へのテキスト引数です。 .sp \fBHX\ \fP\fIlevel\ rlevel\ heading-text\fP .br \fBHX\fP は見出し印字の直前に呼び出されます。 以下のようなレジスタが \fBHX\fP に利用出来ます。 \fBHX\fP は\ \fB}0\fP, \fB}2\fP, \fB;3\fP を変更してもかまいません。 .in +.5i .T3 "文字列変数\ }0" もし \fIrlevel\fP が非 0 であれば、見出し記号と 2 個のスペースが入っています。 そうでなければ、空です。 .T3 "数値レジスタ\ ;0" 見出しの後のテキストの位置が入っています。 0 はテキストが見出しと同じ行に続くはずであることを意味しています。 1 はテキストの前で行区切りが生ずるはずであることを意味します。 2 は空白行が見出しとテキストを分離するはずであることを 意味します。 .T3 "文字列変数\ }2" 数値レジスタの \fB;0\fP が 0 であれば、このレジスタには 2 個のスペースが入ります。 これは見出しからテキストを分離するのに使われます。 もし \fB;0\fP が非 0 であれば、この文字列変数は空です。 .T3 "数値レジスタ\ ;3" これには見出しの後に必要とされる行送りが単位付きで入ります。 デフォルトは 2v です。 これらは番号付け (\fB}0\fP)、垂直行送り (\fB}2\fP)、そして 見出しの後に必要な行送りの様な事柄を変更するのに使用出来ます。 .in .sp \fBHY\ \fP\fIdlevel\ rlevel\ heading-text\fP .br \fBHY\fP はサイズとフォントの計算の後に呼び出されます。 インデントを変更するために使えるでしょう。 .sp \fBHZ\ \fP\fIdlevel\ rlevel\ heading-text\fP .br \fBHZ\fP は見出しの印字の後で、\fBH\fP 又は \fBHU\fP が終了する直前に、 呼ばれます。 これは、セクション見出しに従いページヘッダを変更する為に使うことが出来るでしょう。 .TP .B "HC [hyphenation-character]" ハイフネーション文字を設定します。 デフォルト文字は \e% です。 引数なしで呼ばれた時はデフォルトに再設定します。 ファイルの初めで数値レジスタ \fBHy\fP に 0 を設定すれば、 ハイフネーションを止められます。 .TP .B "HM [arg1 [arg2 [... [arg7]]]]" 見出し記号の型。 見出しカウンタを印字する為の記号の型を制御します。 デフォルトは、すべてのレベルで 1 です。 .sp \fB引数\fP .in +.5i .T2 1 アラビア数字 .T2 0001 ひとつ以上の 0 を先行したアラビア数字 .T2 A 大文字のアルファベット .T2 a 小文字のアルファベット .T2 I 大文字のローマ数字 .T2 i 小文字のローマ数字 .T2 \fI空\fP アラビア数字 .in .TP .B "HU heading-text" 番号無しセクションヘッダ。 数値レジスタ \fBHu\fP をレベルとして \fBHU\fP は \fBH\fP の様に振舞います。 \fBH\fP を参照して下さい。 .TP .B "HX dlevel rlevel heading-text" ユーザ定義見出しの終了。 セクションヘッダを印字する直前に呼ばれます。 \fBH\fP を参照して下さい。 .TP .B "HY dlevel rlevel heading-text" ユーザ定義見出しの終了。 セクションヘッダを印字する直前に呼ばれます。 \fBH\fP を参照して下さい。 .TP .B "HZ dlevel rlevel heading-text" ユーザ定義見出しの終了。 セクションヘッダを印字した直後に呼ばれます。 \fBH\fP を参照して下さい。 .TP .B "I [italic-text [prev-font-text [italic-text [...]]]]" イタリック体です。 これは引数なしで呼ばれたならフォントをイタリック体に変更します。 引数が 1 個の場合には、これはその単語をイタリック体にします。 引数が 2 個の場合には、これは引数を連結し最初の単語にイタリック体を 設定し、2 番目に以前のままのフォントを設定します。 引数の数には制限はありません。 すべての引数は、連結されます。 .TP .B "IA [addressee-name [title]]" これはレター形式の受信人 (addressee) と受信人のアドレスの記述を 開始します。 いくつかの名前が空の \fBIA\fP/\fBIE\fP ペアにより指定できます。 しかし、アドレスは唯 1 つになります。 \fBLT\fP を参照して下さい。 .TP .B "IB [italic-text [bold-text [italic-text [...]]]]" イタリック体とボールド体。 偶数番目の引数がイタリック体で、奇数番目がボールド体で印字されます。 \fBI\fP を参照して下さい。 .TP .B IE \fPIA\fP の後でアドレス指定を終了します。 .TP .B "INITR filename" 参照用マクロの初期化。 参照はファイル \fIfilename.tmp\fP と \fIfilename.qrf\fP とに 書き込まれます。 これには、groff の 2 回のパスが必要とされます。 最初のパスでは参照を探し、2 回目のパスではそれらを取り込みます。 \fBINITR\fP は数回使用できます。 しかし、有効なのは最初に出現した \fBINITR\fP だけです。 関連項目は、\fBSETR\fP, \fBGETPN\fP, \fBGETHN\fP です。 .TP .B "IR [italic-text [roman-text [italic-text [...]]]]" イタリック体とローマン体。 偶数番目の引数がイタリック体で、奇数番目がローマン体で印字されます。 \fBI\fP を参照して下さい。 .TP .B "LB text-indent mark-indent pad type [mark [LI-space [LB-space]]]" リスト開始マクロ。 これはすべてのリストに使用される共通のマクロです。 引数 \fItext-indent\fP は現在のインデントからテキストをインデントする スペースの数です。 .sp \fIpad\fP と \fImark-indent\fP は項目記号を置く所を指定します。 項目記号は記号領域に配置されます。 \fImark-indent\fP はこの領域の前のスペースの数を設定します。 これは通常 0 です。 記号領域はテキストが始まる所で終ります。 それでもなお、テキストの開始は \fItext-indent\fP により決められます。 .sp もし \fIpad\fP が 0 ならば、項目記号は記号領域の中で左揃えされます。 もし\fIpad\fP が 0 より大きければ、その時は \fImark-indent\fP は無視されます。 そして項目記号はテキストに対しスペースで \fIpad\fP 個分前に配置されます。 この操作では、項目記号は右揃えされます。 .sp もし \fItype\fP が 0 であれば、リストはハンギングインデントになるか、又は 引数の \fImark\fP が与えられていたら、文字列の \fImark\fP が項目記号 となります。 .sp もし \fItype\fP が 0 より大きければ、自動的な番号付けが行われます。 更に \fImark\fP が空であれば、番号はアラビア数字となります。 この時、\fImark\fP には \fB1\fP, \fBA\fP, \fBa\fP, \fBI\fP, \fBi\fP のどれでも指定出来ます。 .sp \fItype\fP には項目記号を表示するため 6 通りの可能な方法の中から 1 つを選べます。 .br \fBtype\fP .in +.6i .T2 1 x. .T2 2 x) .T2 3 (x) .T2 4 [x] .T2 5 .T2 6 {x} .in .sp リストの各項目の前には \fILI-space\fP 行の空行が置かれます。 デフォルトは 1 です。 .sp \fBLB\fP 自体には \fILB-space\fP 行の空行が印字されます。 デフォルトは 0 です。 .TP .B "LC [list-level]" リスト状態情報のクリア。 これにより、アクティブなリストが \fIlist-level\fP レベル迄、 あるいは引数が指定されなかった場合には 0 レベル迄、すべて終了されます。 これはアクティブなリストをすべてクリアする為に \fBH\fP により使用されます。 .TP .B "LE [1]" リストの終了。 これは現在のリストを終了します。 \fBLE\fP はもし引数が指定されているなら、空行を印字します。 .TP .B "LI [mark [1]]" リスト項目。 これは、リストの各項目の最初に置かれます。 引数がないときは、\fBLI\fP は、現在のリスト形式で決められる項目記号 を印字します。 \fBLI\fP に引数を 1 つ指定すると、それが代わりの項目記号として使用されます。 \fBLI\fP に引数を 2 つ指定すれば、\fImark\fP は現在の項目記号の接頭辞と なります。 長さ 0 の \fImark\fP を指定した場合はハンギングインデントが生成されます。 .sp 通常はリスト項目の前に空行が印字されます。 この挙動は数値レジスタの \fBLs\fP を用いて制御出来ます。 \fBLs\fP 以下のすべてのリストレベルで先行する行送りが生成されます。 このレジスタのデフォルト値は 99 です。 (リストの入れ子は無制限です。:-) .sp インデントは数値レジスタの \fBLi\fP によって変えられます。 デフォルトは 6 です。 .sp すべてのリストはリスト初期化マクロの \fBLB\fP により始まります。 しかし、リストを使いやすくする為に予め定義されているリストの形式が 7 つあります。 これらの形式はすべて異なったデフォルト値で \fBLB\fP を呼び出します。 .in +.5i .T2 \fBAL\fP 自動増加番号リスト .T2 \fBML\fP 記号付きリスト .T2 \fBVL\fP 可変項目リスト .T2 \fBBL\fP 黒丸リスト .T2 \fBDL\fP ダッシュリスト .T2 \fBRL\fP 参照文献リスト .T2 \fBBVL\fP 変則可変リスト .in これらのリストについてはこのマニュアルのほかの所に記述してあります。 関連項目は \fBLB\fP です。 .TP .B "LT [arg]" 引数に基づいて 4 つの異なった形式の内の 1 つでレターを構成します。 関連項目は \fB内部\fP セクションです。 .in +.5i .T2 \fBarg 形式\fP .T2 BL ブロック形式。日付欄、返送先アドレス、著者のアドレスと結辞は行の中央から始まります。 他のすべての行は左マージンから始まります。 .T2 SB 半ブロック形式。ブロック形式と同様ですが、 各段落の最初の行が スペース 5 個分インデントされます。 .T2 FB 全ブロック形式。すべての行が左マージンから始まります。 .T2 SP 簡易形式。全ブロック形式とほぼ同じです。 主題と著者の身分がすべて大文字で印字されます。 .in .TP .B "LO type [arg]" レターのオプションを指定します (\fB.LT\fP を参照して下さい)。 以下に示すのは標準のオプションです。 .in +.5i .T2 CN 機密表記。 日付欄の下 2 行目に \fBRESTRICTED\fP を印字します。 引数で \fBRESTRICTED\fP を置き換えられます。 関連項目は文字列変数 \fBLetCN\fP です。 .T2 RN 参考文献表記。 \fBIn reference to:\fP と引数を日付欄の 2 行下に印字します。 関連項目は文字列変数 \fBLetRN\fP です。 .T2 AT 気付。\fBATTENTION:\fP と引数を内部アドレスの下に印字します。 関連項目は文字列変数 \fBLetAT\fP です。 .T2 SA 頭辞。\fBTo Whom It May Concern:\fP か、又はもし指定されていた時には引数を 印字します。 頭辞は内部アドレスの 2 行下に印字されます。 関連項目は \fBLetSA\fP です。 .T2 SJ 主題欄。 レター形式 \fBSP\fP 以外の場合には、主題として \fBSUBJECT:\fP を 接頭辞として付けた引数を内部アドレスの 2 行下に印字します。 レター形式 \fBSP\fP の場合には、主題は接頭辞なしで、すべて大文字で印字されます。 関連項目は文字列変数の \fBLetSJ\fP です。 .in .TP .B "MC column-size [column-separation] " 多段組の開始。\fB1C\fP で通常状態に戻ります。 \fBMC\fP により現在の行長に入るだけの数のカラムが作られます。 \fIcolumn-size\fP は各カラムの幅で、\fIcolumn-separation\fP はカラムの間の 間隔です。 デフォルトの間隔は column-size/15 です。 関連項目は \fB1C\fP です。 .TP .B "ML mark [text-indent [1]]" 記号付きリストの開始。 各リスト項目の前に引数の \fImark\fP が印字されます。 \fItext-indent\fP の指定により、インデントが設定され、 \fBLi\fP よりも優先されます。 第 3 引数により各項目の前の空行の印字が禁止されます。 .TP .B "MT [arg [addressee]]" 覚書形式。 引数 \fIarg\fP は \fI/usr/share/tmac/mm/*.MT\fP というファイル名の部分です。 覚書の形式としては、\fI"string"\fP を含んで 0 から 5 迄サポートされています。 \fIaddressee\fP は単に、AT&T のマクロで使われる変数を設定するだけです。 .br \fBarg\fP .in +.5i .T2 0 通常の覚書。形式は印字されません .T2 1 \fIMEMORANDUM FOR FILE\fP が印字される覚書。 .T2 2 \fIPROGRAMMER'S NOTES\fP が印字される覚書。 .T2 3 \fIENGINEER'S NOTES\fP が印字される覚書。 .T2 4 公開論文形式。 .T2 5 外部へのレター形式。 .in 関連項目は、もっと柔軟な表題紙 \fBCOVER\fP/\fBCOVEND\fP です。 .TP .B "MOVE y-pos [x-pos [line-length]]" ある位置へ移動し、ページオフセットが \fIx-pos\fP に設定されます。 もし \fIline-length\fP が指定されなかったときは、現在の行長と 新しいページオフセットの差が使われます。 正常状態に戻るには、引数なしの \fBPGFORM\fP を使って下さい。 .TP .B "MULB cw1 space1 [cw2 space2 [cw3 ...]]" 特殊多段組モードの開始。 各カラムの幅を指定しなければなりません。 また、カラム間の間隔も指定しなければなりません。 最後のカラムの後には間隔指定は必要ありません。 MULB により転換が開始し、MULE により転換が終了しカラムが印字されます。 幅と間隔の単位は「n」です。 しかし、MULB は「c」や「i」のような通常の単位指定をすべて受け付けます。 MULB は、隔離された環境下で機能します。 .TP .B "MULN" 次のカラムの開始。 これは、カラムを切り替える唯一の方法です。 .TP .B "MULE" 多段組モードの終了とカラムの印字。 .TP .B "nP [type]" 2 段階のヘッダレベルを持つ番号付き段落の印字。 \&\fB.P\fP を参照して下さい。 .TP .B "NS [arg [1]]" 異なる形式の注釈を印字します。 引数は予め定義された形式の注釈の中から選びます。 もし 2 番目の引数が利用可能であれば、引数が注釈全体になります。 もし引数が予め定義されたものの中になければ、このマクロは \&\fBCopy (\fP\fIarg\fP\fB) to\fP のように印字されます。 さらに標準の注釈を加えることも可能です。 文字列変数の \fBLetns\fP と \fBLetnsdef\fP を参照して下さい。 .nf .in +.5i .T2 \fBarg 注釈\fP .T2 \fIなし\fP Copy To .T2 """"" .\" " Copy To .T2 1 Copy To (with att.) to .T2 2 Copy To (without att.) to .T2 3 Att. .T2 4 Atts. .T2 5 Enc. .T2 6 Encs. .T2 7 Under separate cover .T2 8 Letter to .T2 9 Memorandum to .T2 10 Copy (with atts.) to .T2 11 Copy (without atts.) to .T2 12 Abstract Only to .T2 13 Complete Memorandum to .T2 14 CC .in .fi .TP .B "ND new-date" 新しい日付。 現在の日付を置き換えます。 もし \fInew-date\fP が空文字列であれば、日付は印字されません。 .TP .B "OF [arg]" 奇数ページフッタ。 通常のフッタのすぐ上に 1 行印字されます。 \fBEF\fP と \fBPF\fP を参照して下さい。 .TP .B "OH [arg]" 奇数ページヘッダ。 通常のヘッダのすぐ下に 1 行印字されます。 \fBEH\fP と \fBPH\fP を参照して下さい。 .TP .B OP 後続するテキストが奇数ページの一番上に印字されることを確認します。 もし現在奇数ページの一番上にいるなら、白紙ページの出力はしません。 .TP .B "P [type]" 新しい段落の開始。 引数なしの \fBP\fP は、段落の一番最初の行も左揃えしたテキストを生成します。 これは、\fItype\fP に 0 を指定するのと同じです。 もし引数が 1 であれば、\fBP\fP に続くテキストの最初の行は 数値レジスタ \fBPi\fP に設定された数のスペースだけインデントされます。 この値は通常 5 です。 .sp \&\fBP\fP への引数として 1 を指定する代わりに、数値レジスタ \fBPt\fP に 段落の形式を設定することも可能です。 0 と 1 を設定することは、その値を \fBP\fP に与えることと同じになります。 値 2 により、すべての段落がインデントされます。 ただし見出し、リスト、ディスプレイの後は例外です。 .sp 段落間の間隔は数値レジスタの \fBPs\fP により制御され、 デフォルトでは 1 です(1 行の空白行)。 .TP .B "PGFORM [linelength [pagelength [pageoffset [1]]]]" 行長やページ長、ページオフセットを設定します。 このマクロは、レターヘッドや他のものの様に、特別の形式を生成するために 使用出来ます。 これは、通常はファイル中の最初のコマンドですが、必須ではありません。 \&\fBPGFORM\fP を引数なしで使用すれば、 \&\fBMOVE\fP の後ですべてを再初期化することが出来ます。 4 番目の引数が指定されなければ、行区切りが生成されます。 このマクロは、新しい行長とページ長を設定する一方、 最初のページにページ番号を出力するのを避けるために使用できます。 .TP .B PGNH 次のページにヘッダが印字されません。 レターや他の特殊なテキストのヘッダを取り除くために使われます。 最初のページのページヘッダを禁止するためには、いかなるテキストよりも前に このマクロが使われなければなりません。 .TP .B PE ピクチャの終り。 \&\fBpic\fP コマンドの為のピクチャを終了します。 \&\fBpic\fP コマンドのマニュアルを参照して下さい。 .TP .B "PF [arg]" ページフッタ。 \&\fBPF\fP は各ページの一番下に印字される行を設定します。 通常は空です。 引数の指定に関しては \fBPH\fP を参照して下さい。 .TP .B "PH [arg]" ページヘッダ。 各ページの一番上に 1 行印字されます。 引数は「'left-part'center-part'right-part'」のように 指定されなければなりません。 ここで、left-part, center-part, right-part はそれぞれ左揃え、中央揃え、右揃え に印字されます。 文字 \fB%\fP は現在のページ番号に変更されます。 デフォルトのページヘッダは「''- % -''」で、ページ番号が 2 個のダッシュ記号に はさまれます。 .TP .B PS ピクチャの開始 (pic コマンドより)。 \&\fB@TMAC@pic\fP の為のピクチャを開始します。 マニュアルを参照して下さい。 .TP .B PX ページヘッダのユーザ定義による出口マクロ。 \&\fIno-space\fP モードでページヘッダの印字の直後に \fBPX\fP は呼び出されます。 .TP .B R ローマン体。 ローマンフォントに戻ります。 関連項目は \fBI\fP です。 .TP .B "RB [roman-text [bold-text [roman-text [...]]]]" ローマン体とボールド体。 偶数番目の引数はローマン体で印字されます。 奇数番目は、ボールド体で印字されます。 \fBI\fP を参照して下さい。 .TP .B "RD [prompt [diversion [string]]]" 標準入力から転換や文字列変数に読み込みます。 テキストは \fIdiversion\fP という名前の転換に保存されます。 テキストを取り出すには、空行にドットの後に転換の名前を書いて下さい。 もし \fIstring\fP が指定されたなら文字列変数 \fIstring\fP も定義されます。 \&\fIdiversion\fP や \fIprompt\fP は空 ("") にすることが出来ます。 .TP .B RF 参考文献の終了。 参考文献の定義を終了し、通常の処理に復帰します。 \&\fBRS\fP を参照して下さい。 .TP .B "RI [roman-text [italic-text [roman-text [...]]]]" 偶数番目の引数はローマン体で印字されます。 奇数番目はイタリック体で印字されます。 \&\fBI\fP を参照して下さい。 .TP .B "RL [text-indent [1]]" 参考文献リストの開始。 各項目の前に角括弧で挟まれた自動増加の番号を付けたリストを開始します。 \&\fItext-indent\fP によって、デフォルトのインデントを変更出来ます。 .TP .B "RP [arg1 [arg2]]" 参考文献ページを生成します。 もし参考文献ページが文書のどこかで必要とされているなら \fBRP\fP を用いることが出来ます。 もし \fBTC\fP が目次の生成に使われているなら、このマクロは必要ありません。 その時は参考文献ページは自動的に印字されます。 .sp もし \fIarg1\fP が 1 ならば参考文献カウンタは再初期化されません。 .sp 引数 \fIarg2\fP により \fBRP\fP に対しページ切替が行われるか否か を指定出来ます。 .br \fBarg2\fP .in +.5i .T2 0 参考文献ページは別のページに印字されます。 これがデフォルトです。 .T2 1 リストの後でページを切り替えません。 .T2 2 ページの前でページを切り替えません。 .T2 3 リストの前後でページを切り替えません。 .in 参考文献の項目は空行で分離されます。 数値レジスタの \fBLs\fP を 0 に設定すれば、この空行は抑止出来ます。 .sp 文字列変数の \fBRp\fP には参考文献ページの題名が入っています。 この題名は通常は \fIREFERENCES\fP に設定されています。 .TP .B "RS [string-name]" \&\fBRS\fP により自動番号付けの参考文献の定義が開始します。 文字列変数の \fB\e*(Rf\fP を参考文献記号があるべき所に配置し、 参考文献を参考文献記号の後の次の改行のところから \fBRS\fP/\fBRF\fP の間に挟んで書いて下さい。 参考文献番号は数値レジスタの \fB:R\fP に保存されています。 もし \fIstring-name\fP が指定されたら、その名前の文字列変数が 定義され、現在の参考文献記号が入れられます。 文字列変数はその後テキスト中で \fB\e*[\fIstring-name\fP]\fP により 参照することが出来ます。 .TP .B "S [size [spacing]]" ポイントサイズと垂直行送りを設定します。 もし引数のどれかが「P」に等しければ、そのときは以前の値が用いられます。 「C」は現在の値を表し、「D」はデフォルトの値を表します。 もし、「+」又は「-」が値の前に用いられているなら、現在の値に加算又は減算 が行われます。 .TP .B "SA [arg]" 右マージン行末揃えが設定されます。 通常、行末揃えは機能しています。 引数がないか、または \fB0\fP であれば、行末揃えは機能を止められます。 引数が \fB1\fP であれば、行末揃えは機能を働かせます。 .TP .B "SETR refname [string]" 現在のヘッダ番号とページ番号を refname として記憶します。 もし \fIstring\fP が定義されていれば、\fIstring\fP を保存します。 \fIstring\fP は \fB.GETST\fP によって取り出されます。 \fBINITR\fP を参照して下さい。 .TP .B "SG [arg [1]]" 署名欄。 正式な結辞の後に著者(達)の名前を印字します。 引数は参照データに加えられて、最初か最後の著者の箇所に印字されます。 参照データとは \fB.AU\fP により指定される 所在地、部局、及びイニシャルです。 このデータは、最初の著者か、そうでなければ最後の著者の箇所に印字されます。 著者(達)が \fB.WA\fP/\fB.WE\fP で指定されていれば、 何の参照データも印字されません。 \&\fBLetter 内部\fP セクションを参照して下さい。 .TP .B "SK [pages]" ページ送りします。 もし \fIpages\fP が \fB0\fP であるか省略されている場合には、既に印字位置が ページの一番上でなければ、次のページ迄ページ送りされます。 また、\fIpages\fP がこれら以外であれば、\fIpages\fP のページを ページ送りします。 .TP .B "SM string1 [string2 [string3]]" 文字列を小さくします。 もし \fIstring2\fP が指定されたときには、\fIstring1\fP は小さくなり、\fIstring2\fP は通常の大きさで \fIstring1\fP に結合されます。 引数が 3 個あるときには、すべての引数が結合され、 \fIstring2\fP だけが小さくなります。 .TP .B "SP [lines]" 垂直に行送りします。 \fIlines\fP には \fI3i\fP や \fI8v\fP の様に、何らかの単位を付けられます。 1 行にいくつかの \fBSP\fP を記述しても、それらの合計の行数ではなく、 それらのうちで最大の行数の行送りを生成します。 またページの最初のテキスト行までは \fBSP\fP は無視されます。 これを避けるには、\fBSP\fP の前に \fB\e&\fP を加えて下さい。 .TP .B TAB タブ位置を 5n 毎に再設定します。 通常はそれまでの任意のタブ設定位置を再設定するのに使用されます。 .TP .B "TB [title [override [flag [refname]]]]" 表の題目。 もし \fIrefname\fP が指定されれば、表番号が \&\fB.SETR\fP によって保存されます。 これは、\fB.GETST\fP \fIrefname\fP によって取り出せます。 .TP .B "TC [slevel [spacing [tlevel [tab [h1 [h2 [h3 [h4 [h5]]]]]]]]]" 目次。 通常このマクロは文書の最後の行に置かれます。 このマクロは、数値レジスタの \fBCl\fP によって制御されるレベルまでの 見出しで構成される目次を生成します。 \fBCl\fP は見出しの保存を制御するのであって、\fBTC\fP には 何の関わりもないことに注意して下さい。 \fIslevel\fP 以下のレベルの見出しにはそれらの前に \fIspacing\fP だけの空行が生成されます。 \fItlevel\fP 以下のレベルの見出しには右揃えした対応するページ番号が置かれます。 これらの見出しのテキストとページ番号はドットか空白によって分離されます。 もし \fItab\fP が 0 より大きければ、空白が用いられます。 そうでなければ、ドットが用いられます。 その他の見出しには見出しテキストの末尾にページ番号が直接置かれます (\fI右揃えしない\fP)。 .sp 引数の残りのものは、目次の前に中央揃えで印字されます。 .sp もし \fBTC\fP が多くて 4 個の引数を伴って呼び出されるならば、ユーザ定義の マクロ \fBTX\fP と \fBTY\fP が使われます。 \fBTX\fP は \fICONTENTS\fP の印字の前に呼び出されます。 そして \fBTY\fP は \fICONTENTS\fP を印字する代わりに呼び出されます。 .sp 文字列変数 \fBCi\fP を各見出しレベルのインデントを制御するために 設定できます。 インデントには \fB.ds\ Ci\ .25i\ .5i\ .75i\ 1i\ 1i\fP の様に 単位を付けなければなりません。 インデントは通常各レベルの見出しの最大長によって制御されます。 .sp すべてのテキストは再定義が出来ます。 新しい文字列変数の \fILifg\fP, \fILitb\fP, \fILiex\fP, \fILiec\fP, \fILicon\fP にはそれぞれ 「Figure」、「TABLE」、「Exhibit」、「Equation」及び「CONTENTS」 が入っています。 これらの変数は、他の言語に再定義できます。 .TP .B TE 表の終了。 \&\fBTS\fP を参照して下さい。 .TP .B "TH [N]" 表のヘッダ。 \&\fBTS\fP を参照して下さい。 \&\fBTH\fP により表のヘッダが終了します。 もしページ区切りが起こればこのヘッダはもう一度印字されます。 引数の \fIN\fP はまだ実装されていません。 .TP .B TL [charging-case number(s) [filing-case number(s)]] 覚書の題名の開始。 次の \fBAU\fP 迄のすべてのテキストが題名に含められます。 \&\fIcharging-case number\fP と \fIfiling-case number\fP は 表題紙を処理するために保存されます。 .TP .B TM [num1 [num2 [...]]] \&\fB.MT\fP で使われる技術覚書番号。 無制限な数の引数を指定できます。 .TP .B TP ユーザが定義するページ最上部のマクロです。 このマクロは通常のページヘッダの代わりに呼ばれます。 ヘッダに対して完全な制御が出来ます。 ヘッダとフッタは隔離された環境下で印字されることに注意して下さい。 ただし、行長は保持されています。 .TP .B "TS [H]" 表の開始。 これは \fB@TMAC@tbl\fP に対する表の指定の開始です。 \&\fB@TMAC@tbl\fP については別個のマニュアルを参照して下さい。 \&\fBTS\fP は、\fBTE\fP により終了します。 引数 \fIH\fP は \fBm@TMAC@m\fP に対し表にはヘッダがあることを指定します。 \&\fBTH\fP を参照して下さい。 .TP .B TX ユーザが定義する目次の出口マクロ。 このマクロは \fBTC\fP が単語 \fICONTENTS\fP を印字する直前に呼び出されます。 \&\fBTC\fP を参照して下さい。 .TP .B TY ユーザが定義する目次の出口マクロ (「CONTENTS」は印字しません)。 \&\fICONTENTS\fP を印字する代わりにこのマクロが呼び出されます。 \&\fBTC\fP を参照して下さい。 .TP .B VERBON [flag [pointsize [font]]] クーリエフォントを用いた逐語的な出力の開始。 通常プログラムの印字のためです。 すべての文字が等しい幅を持ちます。 ポイントサイズは第 2 引数により変更できます。 font 引数を指定すればクーリエの代わりに他のフォントを使うことが出来ます。 \fIflag\fP によりいくつかの特別な機能を制御します。 この引数は必要とする機能をすべて合計したものとなります。 .in +.5i .T2 値 説明 .T2 1 エスケープ文字 (\e) を無効にします。 通常、これは冗長出力の間は働いています。 .T2 2 冗長テキストの前に空行を付加します。 .T2 4 冗長テキストの後に空行を付加します。 .T2 8 冗長テキストに行番号を振って印字します。 これにより各行の先頭に数字幅のスペースが 4 個付加されます。 文字列変数の \fBVerbnm\fP でより微妙な調節が可能です。 この変数には、\fBtroff\fP コマンドの \fB.nm\fP に指定できる すべての引数が入ります。 通常は「1」が指定されています。 .T2 16 冗長テキストを 5 個の「n」だけインデントします。 これは数値変数の \fBVerbin\fP (単位付き) により管理されます。 .in .TP .B VERBOFF 逐語的出力を終了させます。 .TP .B "VL text-indent [mark-indent [1]]" 可変項目リストには決まった項目記号はありません。 代わりに、このマクロでは各 \fBLI\fP に項目記号が指定されている と仮定しています。 \fItext-indent\fP によりテキストへのインデントが設定されます。 そして \fImark-indent\fP により現在のインデント位置から項目記号までの 距離が設定されます。 第 3 引数は各項目の前に空行が印字されることを禁止します。 .TP .B "VM [top [bottom]]" 垂直マージン。 .TP .B "WA [writer-name [title]]" 著者と著者のアドレスの記述を開始します。 空の \fBWA\fP/\fBWE\fP ペアでいくつかの名前を指定出来ます。 しかしアドレスについては 1 つだけです。 .TP .B WE \&\fP.WA\fP の後でアドレスの指定を終了します。 .TP .B "WC [format]" 脚注とディスプレイの幅の調整。 .in +.5i .T2 N デフォルトのモードを設定します。 \&\fB-WF\fP, \fB-FF\fP, \fB-WD\fP 及び \fBFB\fP です。 .T2 WF 広い脚注です。2 段組モードでもやはり広い脚注です。 .T2 -WF 通常の脚注の幅です。段組モードに従います。 .T2 FF すべての脚注は最初に出現した脚注と同じ幅になります。 .T2 -FF 通常の脚注です。幅は \fBWF\fP と \fB-WF\fP に従います。 .T2 WD 広いディスプレイです。2 段組モードでもやはり広いディスプレイです。 .T2 -WD 通常のディスプレイの幅です。段組モードに従います。 .T2 FB フローティングディスプレイが現在のページに印字された時には 行区切りを生成します。 .T2 -FB フローティングディスプレイは行区切を生成しません。 .in .sp 3 .LP .\"########################################################################" .LP .B "mm で用いられている文字列変数:" .TP .B App 単語「APPENDIX」が入れてある文字列変数です。 .TP .B "EM" em ダッシュ文字列です。 .TP .B HF 見出し用のフォントの目録です。 通常は「2 2 2 2 2 2 2」です。 数字ではないフォント名も使用できます。 .TP .B HP 見出し用のポイントサイズの目録です。 通常は「0 0 0 0 0 0 0」です。 これは、「10 10 10 10 10 10 10」と同じです。 .TP .B Lifg \fIFigure\fP を入れている文字列変数です。 .TP .B Litb \fITABLE\fP を入れている文字列変数です。 .TP .B Liex \fIExhibit\fP を入れている文字列変数です。 .TP .B Liec \&\fIEquation\fP を入れている文字列変数です。 .TP .B Licon \&\fICONTENTS\fP を入れている文字列変数です。 .TP .B Lf 「LIST OF FIGURES」を入れています。 .TP .B Lt 「LIST OF TABLES」を入れています。 .TP .B Lx 「LIST OF EXHIBITS」を入れています。 .TP .B Le 「LIST OF EQUATIONS」を入れています。 .TP .B Letfc 「Yours very truly,」を入れています。 \&\fB.FC\fP で使用されます。 .TP .B Letapp 「APPROVED:」を入れています。 \&\fB.AV\fP で使用されます。 .TP .B Letdate 「Date」を入れています。 \&\fB.AV\fP で使用されます。 .TP .B LetCN 「CONFIDENTIAL」を入れています。 \&\fB.LO CN\fP で使用されます。 .TP .B LetSA 「To Whom It May Concern:」を入れています。 \&\fB.LO SA\fP で使用されます。 .TP .B LetAT 「ATTENTION:」を入れています。 \&\fB.LO AT\fP で使用されます。 .TP .B LetSJ 「SUBJECT:」を入れています。 \&\fB.LO SJ\fP で使用されます。 .TP .B LetRN 「In reference to:」を入れています。 \&\fB.LO RN\fP で使用されます。 .TP .B Letns これは \fB.NS\fP で使用されている色々な文字列を入れている配列です。 これらは実は、\fBLetns!\fP を接頭辞とするいくつかの文字列変数です。 もし \fB.NS\fP への引数が (訳注: 予め定義されているものの中に) 存在しなければ、 その引数は \fBLetns!copy\fP を接頭辞とし \fBLetns!to\fP を接尾辞 として \fB()\fP の間に挟まれます。 \fBcopy\fP の後と \fBto\fP の前の空白に注意して下さい。 .nf .ta 1.5i \fB変数名 値\fP Letns!0 Copy to Letns!1 Copy (with att.) to Letns!2 Copy (without att.) to Letns!3 Att. Letns!4 Atts. Letns!5 Enc. Letns!6 Encs. Letns!7 Under separate cover Letns!8 Letter to Letns!9 Memorandum to Letns!10 Copy (with atts.) to Letns!11 Copy (without atts.) to Letns!12 Abstract Only to Letns!13 Complete Memorandum to Letns!14 CC Letns!copy Copy " Letns!to " to .fi .TP .B Letnsdef \&\fB.NS\fP に何も引数が指定されていないときに使用される標準的な注釈を 定義します。 デフォルトは \fB0\fP です。 .TP .B "MO1 - MO12" \&\fIJanuary\fP から \fIDecember\fP 迄が入っている文字列変数です。 .TP .B Qrf 「See chapter \e\e*[Qrfh], page \e\en[Qrfp].」 が入っている文字列変数です。 .TP .B Rp 「REFERENCES」が入っています。 .TP .B Tm 商標記号 \e(tm が入っています。 .TP .B Verbnm \&\fB.VERBON\fP で使用されている \fB.nm\fP への引数です。 デフォルト: \fB1\fP。 .\"-----------------------------------" .LP .B "mm で使用されている数値変数:" .TP .B Aph もしこの数値変数が非 0 であれば、 各々の新しい付録について新しい付録ページに印字します。 もし \fBAph\fP が 0 であれば何も出力されません。 しかし、「目次」には付録の見出し項目が常に含まれます。 .TP .B Cl 目次の見出し項目レベル。範囲は [0:7] です。 もし見出しレベルが Cl 以下であれば、目次の見出し項目は保存されます。 デフォルトは 2 です。 .TP .B Cp もし、Cp が 0 であれば、LIST OF XXXX の間で改ページを行います。 デフォルトは 0 です。 .TP .B D デバッグフラグ。 値が正値であれば、様々な段階のデバッグリストを出力します。 値が 1 であれば整形についての進行情報を提供します。 デフォルトは 0 です。 .TP .B De フローティングディスプレイの後で改ページが出力されます。 範囲は [0:1] です。デフォルトは 0 です。 .TP .B Df フローティングキープの出力形式。 範囲は [0:5] です。デフォルトは 5 です。 .TP .B Ds もし 1 であれば、ディスプレイの前後で行送りします。 範囲は [0:1] です。デフォルトは 1 です。 .TP .B Ej 改ページ。デフォルトは 0 です。 .TP .B Eq 数式ラベルの行揃え。 0 なら左揃え、1 なら右揃え。デフォルトは 0 です。 .TP .B Fs 脚注の行送り。デフォルトは 1 です。 .TP .B "H1-H7" 見出しカウンタ。 .TP .B Hb 見出し行区切りのレベル。 範囲は [0:7] です。デフォルトは 2 です。 .TP .B Hc 見出し中央揃えのレベル。 範囲は [0:7] です。デフォルトは 0 です。 .TP .B Hi 見出しの一時的なインデント。 範囲は [0:2] です。デフォルトは 1 です。 .br 0\ ->\ 0 インデント、左マージン .br 1\ ->\ 右へインデント、.P 1 と同様 .br 2\ ->\ 先行する見出しのテキスト部分に合わせてインデント .TP .B Hps 見出しに先立つ行送りのレベルについての数値変数です。 もし見出しレベルが \fBHps\fP 以下ならば、 セクション見出しには 1 行ではなく 2 行が先行します。 デフォルトは第 1 レベルだけです。 行送りの実際の量は変数 \fBHps1\fP と \fBHps2\fP により制御されます。 .TP .B Hps1 見出しレベルが \fBHps\fP より大きい場合に \fB.H\fP に先行する行数です。 値には単位を付けます。通常は 0.5v です。 .TP .B Hps2 見出しレベルが \fBHps\fP 以下の場合に \fB.H\fP に先行する行数です。 値には単位を付けます。通常は 1v です。 .TP .B Hs 見出し行送りレベル。 範囲は [0:7] です。デフォルトは 2 です。 .TP .B Ht 見出し番号の形式。デフォルトは 0 です。 0 -> 複合番号 (1.1.1 ...) .br 1 -> 単一番号。 .TP .B Hu 番号無し見出しのレベル。デフォルトは 2 です。 .TP .B Hy 本文のハイフネーション。デフォルトは 1 です。 .br 0\ ->\ ハイフネーションしない。 .br 1\ ->\ 14 でハイフネーションをする。 .TP .B Letwam \fB.WA\fP/\fB.WE\fP で使われる返送先アドレスの最大行数。 デフォルトは 14 です。 .TP .B "Lf, Lt, Lx, Le" それぞれ、図のリスト、表のリスト、エグジビットのリスト、数式のリストの 印字の許可 (1)、又は禁止 (0) です。 デフォルトは、Lf=1, Lt=1, Lx=1, Le=0 です。 .TP .B Li \&.AL で使われるリストのインデントです。 デフォルトは 6 です。 .TP .B Ls リストの行送り。 もし現在のリストレベルが Ls より大きければ、 リストの周囲には行送りは生じません。 デフォルトは 99 です。 .TP .B Lsp 空行の大きさ。通常は 0.5v です。 しかし、もし \fBn\fP が設定されていれば (\fB.nroff\fP)、1v となります。 .TP .B N 番号付けの形式。範囲は [0:5] です。デフォルトは 0 です。 .br 0\ ==\ (デフォルト) すべてのページで通常のヘッダ。 .br 1\ ==\ 最初のページのフッタはヘッダに置き換えられます。 ヘッダ部分には何もありません。 .br 2\ ==\ 最初のページのページヘッダは取り除かれます。 .br 3\ ==\ 「セクション - ページ」の番号付けが有効になります。 .br 4\ ==\ 最初のページのページヘッダは取り除かれます。 .br 5\ ==\ 「セクション - ページ」と「セクション - 図」の番号付けが有効になります。 関連項目は数値レジスタの Sectf と Sectp です。 .TP .B Np 番号付きの段落です。デフォルトは 0 です。 .br 0\ ==\ 番号を振りません。 .br 1\ ==\ 第 1 レベルの見出しに番号を振ります。 .TP .B Of 図、表、エグジビット、数式の題目の形式です。 デフォルトは 0 です。 .br 0\ =\ ". " .br 1\ =\ " - " .TP .B P 現在のページ番号です。 「セクション - ページ」の番号付けが有効でなければ、 通常は % と同じです。 .TP .B Pi 段落のインデントです。 デフォルトは 5 です。 .TP .B Pgps ヘッダとフッタのポイントサイズが、現在の設定に従うべきか、 あるいはヘッダとフッタが定義されたときにだけ変更されるべきかを制御します。 .in +.5i .ti -.5i .T2 値 説明 .T2 0 \fB.PH\fP, \fB.PF\fP, \fB.OH\fP, \fP.EH\fP, \fB.OF\fP, \fB.OE\fP が実行された時だけ、ポイントサイズが現在の設定に変更されます。 .T2 1 ポイントサイズは \fB.S\fP のたびに変更されます。 これがデフォルトです。 .in .TP .B Ps 段落の行送り。デフォルトは 1 です。 .TP .B Pt 段落の形式です。デフォルトは 0 です。 .br 0\ ==\ 左揃え .br 1\ ==\ インデントする .P .br 2\ ==\ .H, .DE, .LE の後以外では、インデントする .P .TP .B Sectf 「セクション - 図」を制御するフラグです。 非 0 値であれば有効になります。 関連項目はレジスタ N です。 .TP .B Sectp 「セクション - ページ番号」を制御するフラグです。 非 0 値であれば有効になります。 関連項目はレジスタ N です。 .TP .B Si ディスプレイのインデントです。デフォルトは 5 です。 .TP .B Verbin \&\fB.VERBON\fP のインデントです。デフォルトは 5n です。 .TP .B .mgm 常に 1 です。 .LP .SH 内部 レターマクロではレターの形式により決まる種々の副マクロが使用されています。 副マクロの名前にはレターの形式が接尾辞として入っています。 そのため他のレターの形式の定義を、 その国のマクロファイル内や、局所的な追加として行うことが可能です。 \&\fB.LT\fP は数値変数の \fBPt\fP と \fBPi\fP を 0 と 5 に設定します。 新しいレター形式については、 以下の文字列変数とマクロを定義しなければなりません: .TP \fBlet@init_\fP\fItype\fP このマクロは \fB.LT\fP によって直接呼び出されます。 変数や他の要素を初期化することになっています。 .TP \fBlet@head_\fP\fItype\fP このマクロはレターヘッドを印字します。 通常のページヘッダの代わりに呼び出されます。 \fBlet@header\fP という別名を取り除くことになっています。 そうしなければ、この別名はすべてのページにおいて呼び出されてしまいます。 .TP \fBlet@sg_\fP\fItype\ name\ title\ n\ flag\ [arg1\ [arg2\ [...]]]\fP レターの場合だけ、\fB.SG\fP がこのマクロを呼び出します。 覚書にはそれ独自の処理機構があります。 \fIname\fP と \fItitle\fP は \fB.WA\fP/\fB.WB\fP によって指定されます。 \fIn\fP はカウンタで、1 から max までです。 そして \fIflag\fP は、\fIname\fP が最後の名前であれば真の値になります。 \&\fB.SG\fP に対する他の引数が追加されます。 .TP \fBlet@fc_\fP\fItype\ closing\fP このマクロは \fB.FC\fP によって呼び出され、正式な結辞を引数とします。 .LP \&\fB.LO\fP が包括的なオプションマクロとして実装されています。 \&\fB.LO\fP には \fBLet\fP\fItype\fP という名前の文字列変数が 定義されていることが必要とされます。 ここで、\fItype\fP はレターの形式です。 そのとき、\fB.LO\fP は引数を文字列変数 \fBlet*lo-\fP\fItype\fP に 割り当てます。 .LP .\".SH バグ .\" " .SH 作者 .ie t J\(:orgen H\(:agg, Lund, Sweden .el Jorgen Hagg, Lund, Sweden .SH 関連ファイル .TP .B /usr/share/tmac/tmac.m .TP .B /usr/share/tmac/mm/*.cov .TP .B /usr/share/tmac/mm/*.MT .TP .B /usr/share/tmac/mm/locale .SH 関連項目 .BR groff (1), .BR troff (1), .BR tbl (1), .BR pic (1), .BR eqn (1) .br .BR mm (7) .BR mmse (7) .\" Translated by Tetsuro FURUYA , Dec., 1998. diff --git a/ja/man/man7/groff_mmse.7 b/ja/man/man7/groff_mmse.7 index 3ce7717a6f..edf234de0c 100644 --- a/ja/man/man7/groff_mmse.7 +++ b/ja/man/man7/groff_mmse.7 @@ -1,96 +1,97 @@ .\" -*- nroff -*- .\" %Id: groff_mmse.man,v 1.27 1995/04/24 05:37:46 jh Exp % -.\" jpman %Id: groff_mmse.7,v 1.3 1998/11/21 12:55:00 horikawa Stab % .\" Skrivet av Joergen Haegg, Lund, Sverige .\" +.\" Original Revision: 1.1.1.1 +.\" jpman %Id: groff_mmse.7,v 1.3 1998/11/21 12:55:00 horikawa Stab % .TH GROFF_MMSE 7 "7 September 1996" "Groff Version 1.11" .SH 名称 groff_mmse \- groff 用スウェーデン語版 mm マクロ .SH 書式 .B groff .B \-mmmse [ .IR flaggor .\|.\|. ] [ .IR filer .\|.\|. ] .SH 解説 .\"X DESCRIPTION .\"X mmse is a swedish flavor of mm. All internal texts are .\"X translated. An A4-page gets 13 cm long text lines, 3.5 cm .\"X left margin and 28.5 cm in height. There are support for .\"X swedish letter standard, both left and right adjusted text. .\"X .\"X The macro COVER can use se_ms as an argument which will .\"X produce a swedish front page. Look in groff_mm(7) for more .\"X details. \fBmmse\fP はスウェーデン語風の \fBmm\fP マクロです。すべての内部 テキストは翻訳されます。A4 ページでは、テキスト行の長さが 13 cm、 左マージンが 3.5 cm、高さが 28.5 cm です。スウェーデンのレター清書標準を、 右揃えと左揃えともにサポートしています。 .LP マクロ \fBCOVER\fP に引数 \fIse_ms\fP を使用することにより、 スウェーデン語のフロントページを生成することができます。詳細については \fBgroff_mm(7)\fP を参照して下さい。 .PP (訳注: 以下未訳) .SH 謝辞 Jorgen Hagg, Lund, Sweden 本和訳のために、解説部分の英訳をわざわざ用意下さいました。 .SH BREV Tillgangliga brevtyper: .TP .B ".LT SVV" Vansterstalld loptext med adressat i position T0 (vansterstallt). .TP .B ".LT SVH" Hoverstalld loptext med adressat i position T4 (passar forsterkuvert). .LP Foljande extra LO-variabler anvands. .TP .B ".LO DNAMN\fI namn\fP" Anger dokumentets namn. .TP .br .B ".LO MDAT\fI datum\fP" Mottagarens datum, anges under \fBErt datum:\fP (\fBLetMDAT\fP). .TP .br .B ".LO BIL\fI strang\fP" Anger bilaga, nummer eller strang med \fBBilaga\fP (\fBLetBIL\fP) som prefix. .TP .br .B ".LO KOMP\fI text\fP" Anger kompletteringsuppgift. .TP .br .B ".LO DBET\fI beteckning\fP" Anger dokumentbeteckning eller dokumentnummer. .TP .br .B ".LO BET\fI beteckning\fP" Anger beteckning (arendebeteckning i form av diarienummer eller liknande). .TP .br .B ".LO SIDOR\fI antal\fP" Anger totala antalet sidor och skrivs ut efter sidnumret inom parenteser. .LP Om makrot \fB.TP\fP ar definierat anropas det efter utskrift av brevhuvudet. Dar lagger man lampligen in postadress och annat som brevfot. .SH "SKRIVET AV" Jorgen Hagg, Lund, Sweden .SH FILER .B /usr/share/tmac/tmac.mmse .B /usr/share/tmac/mm/se_*.cov .SH "SE OCKSO" .BR groff (1), .BR troff (1), .BR tbl (1), .BR pic (1), .BR eqn (1) .br .BR mmm (7) diff --git a/ja/man/man7/groff_ms.7 b/ja/man/man7/groff_ms.7 index f2b8046c71..fc69fc944a 100644 --- a/ja/man/man7/groff_ms.7 +++ b/ja/man/man7/groff_ms.7 @@ -1,252 +1,253 @@ .ig \"-*- nroff -*- Copyright (C) 1989-1995 Free Software Foundation, Inc. Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this manual 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. Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions, except that this permission notice may be included in translations approved by the Free Software Foundation instead of in the original English. .. +.\" Original Revision: 1.1.1.1 .\" jpman %Id: groff_ms.7,v 1.3 1999/01/06 22:32:03 vanitas Stab % .TH GROFF_MS 7 "7 September 1996" "Groff Version 1.11" .SH 名称 groff_ms \- groff ms マクロ .SH 書式 .B groff .B \-ms [ .IR options .\|.\|. ] [ .IR files .\|.\|. ] .SH 解説 このマニュアルページは GNU バージョンの ms マクロの解説をします。 このマクロは、groff 文書整形システムの一部分です。 この groff ms マクロは、4.3 .SM BSD Unix ms マクロの文書化された機能と互換であるように設計されています。 しかし、次のような制限があります: .IP \(bu groff ms の内部は Unix ms の内部とは同じではありません。 したがって、Unix ms の実装の細部に依存する書式については、 機能しないとしてももっともでしょう。 .IP \(bu タイプライタ様のデバイスには、サポートはありません。 .IP \(bu バークレイ方言、特に、 .B TM や .B CT マクロは、実装されていません。 .IP \(bu groff ms では、 .\" ページ間の カットマーク .\" (.CM マクロ etc.) は提供しません。 .IP \(bu 重複した行送りは許されません (代わりに、大きな垂直行送りを使用して下さい)。 .IP \(bu groff ms は、互換モードでは機能しません (例えば、 .B \-C オプションなど)。 .IP \(bu エラー処理の方針については、groff ms は、沈黙したままエラーを無視 したりせず、エラーを検出してレポートします。 .LP groff ms マクロは、GNU troff の多くの機能を利用しています。 したがって、これは他のいかなる troff によっても使用できません。 .LP ベル研の方言は、 .SM BSD ms マクロにも groff ms マクロのいずれにも実装されていません。 .LP ある Unix ms の文書には、数値レジスタの .B CW と .B GW とが、それぞれカラム幅とガター幅 .\" (マルチカラム間の幅) を制御する為に 使用できると述べられています。 しかし、ここでは事実はそうではありません。 これらの数値レジスタは、groff ms では使用できません。 .LP リセットを引き起こすマクロはインデントを設定します。 インデントを変更するマクロはインデントを増減するのではなく、 むしろインデントを絶対的に設定します。 このことによって、独自のマクロを追加定義している文書に 問題が生じるかも知れません。 これを解決するには、 .B in リクエストを用いずに、代わりに .B RS や .B RE マクロを用いて下さい。 .LP 数値レジスタの .B GS は、groff ms マクロによって 1 に設定されます。 しかし、この数値レジスタは Unix ms マクロでは使用されていません。 このレジスタの目的は、 Unix ms か groff ms かのどちらによってフォーマットされているのかを確定する 必要のある文書によって利用されることです。 .LP 脚注はキープやディスプレイの中で安全に使用できるように実装されています。 自動的に番号を割り振る脚注をフローティングキープの中で使うことは、推奨 できません。 .B \e** と 対応する .BR .FS との間にもう一つの .B \e** があるようにすると安全です。 その際には、次のようなことだけが要求されています。 つまり、各 .B .FS は対応する .B \e** の後に出現することと、 対応する .B \e** の置かれる順番と同じ順番で .B .FS が出現することです。 .LP 文字列の .B \e*{ や .B \e*} は、上付き文字を開始したり終了したりするのに使うことができます。 .LP いくつかの Unix V10 ms の機能が実装されています。 .BR B , .BR I や .B BI マクロでは、第 3 番目の引数がオプションとして指定できます。 この引数は、現在のフォントで最初の引数の直前に印字されます。 .B B と同じようなマクロ .B CW があります。 これは、定幅フォントにします。 .LP 次の文字列は、groff ms マクロを英語以外の言語に適合させるために 再定義することができます。 .LP .nf .ta \w'REFERENCES'u+2n 文字列 デフォルト値 .sp .3v REFERENCES References ABSTRACT ABSTRACT TOC Table of Contents MONTH1 January MONTH2 February MONTH3 March MONTH4 April MONTH5 May MONTH6 June MONTH7 July MONTH8 August MONTH9 September MONTH10 October MONTH11 November MONTH12 December .fi .LP フォントファミリは、リセットで文字列 .BR FAM から取られて置き直されます。 初期化時にこの文字列が未定義であった場合は、現在のフォントファミリが 設定されます。 脚注のポイントサイズ、垂直行送り幅、そして段落間の行送り幅は、 数値レジスタの .BR FPS , .BR FVS , や .B FPD から取り出されます。 初期化時に、これらは、それぞれ .BR \en(PS-2 , .BR \en[FPS]+2 , および .B \en(PD/2 に等しく設定されます。 しかし、これらのレジスタのいずれかでも初期化前に定義されていれば、 そのレジスタは、これらの値に設定されません。 ( .B .hy リクエストによって設定される)ハイフネーションフラグは、 .B HY レジスタから取られて設定されます。 これが初期化時に定義されていない場合には、 .B HY レジスタは 14 に設定されます。 .LP 右詰めのディスプレイは .B ".DS R" および .BR .RD を用いて利用可能です。 .LP 次のような慣行がマクロ、文字列そして数値レジスタの名前に行なわれています。 groff ms マクロを使用する文書に利用出来る外部名は大文字と数字だけから なります。 内部的には、マクロはモジュールに分割されます。 ある一つのモジュールの中だけで使用される名前は、 .IB mudule * name\fR という形をしています。 定義されているモジュールの外部で使用される名前は、 .IB module @ name\fR という形をしています。 ある特別の環境に関わる名前は、 .IB environment : name\fR という形をしています。 これらの名前は、 .B par モジュールの中でのみ使われ、 .I name には、モジュールは接頭辞としてつきません。 組み合わされた名前で配列を実装するのに使われるものは、 .IB array ! index\fR という形をしています。 以上より groff ms では以下の名前を予約しています: .IP \(bu .BR * を含んでいる名前。 .IP \(bu .BR @ を含んでいる名前。 .IP \(bu .BR : を含んでいる名前。 .IP \(bu 大文字と数字だけを含んでいる名前。 .SH 関連ファイル .B /usr/share/tmac/tmac.s .SH 関連項目 .BR groff (1), .BR troff (1), .BR tbl (1), .BR pic (1), .BR eqn (1) .br .BR ms (7) .\" Translated by Tetsuro FURUYA on Nov 24, 1998. diff --git a/ja/man/man7/mdoc.7 b/ja/man/man7/mdoc.7 index 6a8856c323..8ff7bee5e2 100644 --- a/ja/man/man7/mdoc.7 +++ b/ja/man/man7/mdoc.7 @@ -1,413 +1,415 @@ .\" Copyright (c) 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. .\" .\" @(#)mdoc.7 8.2 (Berkeley) 12/30/93 -.\" %Id: mdoc.7,v 1.8 1998/12/04 00:51:17 jkoshy Exp % +.\" %Id: mdoc.7,v 1.8.2.1 1999/06/15 19:07:24 mpp Exp % .\" .\" jpman %Id: mdoc.7,v 1.5 1999/01/21 18:02:11 kuma Stab % .\" .\" WORD: display ディスプレイ (表示よりも展示に意味が近いと思います) .\" WORD: enclose 囲む、囲み .\" WORD: quote クォート .\" WORD: open (quote) 開き… .\" WORD: close (quote) 閉じ… .\" WORD: content macro コンテントマクロ .\" WORD: parse 解析する .Dd December 30, 1993 .Os .Dt MDOC 7 .Sh 名称 .Nm mdoc .Nd マクロパッケージ .Nm \-mdoc のクイックリファレンスガイド .Sh 書式 .Nm groff .Fl m Ns Ar doc .Ar files ... .Sh 解説 .Nm \-mdoc パッケージは、 .Bx マニュアルページをフォーマットするのに 使うコンテントベースおよび領域ベースのマクロのセットです。 マクロ名とその意味はクイックリファレンスとして以下に一覧が あります。パッケージを使う上での詳細な説明は、サンプルチュートリアルの .Xr mdoc.samples 7 を見て下さい。 .Pp マクロは 2 つのグループに分けて述べられています。1 つ目は 構造的なページレイアウトマクロと物理的な ページレイアウトマクロです。 2 つ目は、 マニュアル領域マクロと 一般テキスト領域マクロであり、 .Nm -\mdoc パッケージを他の .Xr troff フォーマットパッケージとは異なるものとしています。 .Sh ページ構造領域 .Ss タイトルマクロ 正しいマニュアルを生成するために、以下の 3 つのマクロがこの順序で 必要になります: .Bl -tag -width "xxxx.Os OPERATINGxSYSTEM [version/release]" -compact .It Li "\&.Dd " Ar "Month day, year" ドキュメントの日付 .It Li "\&.Dt " Ar "DOCUMENT_TITLE [section] [volume]" 大文字で記述したタイトル .It Li "\&.Os " Ar "OPERATING_SYSTEM [version/release]" オペレーティングシステム .Pq Tn BSD .El .Ss ページレイアウトマクロ セクションヘッダ、段落の区切り、リスト、ディスプレイです。 .Bl -tag -width flag -compact .It Li \&.Sh セクションヘッダ。 正しいヘッダを、登場する順に示します: -.Bl -tag -width "RETURN VALUES" -compact +.Bl -tag -width "IMPLEMENTATION NOTES" -compact .It Ar NAME 名称セクション。 .Ql \&.Nm もしくは .Ql \&.Fn と、 .Ql \&.Nd マクロを含む必要があります。 .It Ar SYNOPSIS 使用方法。 .It Ar DESCRIPTION 一般的な解説。オプションとパラメータを含む必要があります。 +.It Ar IMPLEMENTATION NOTES +実装に固有の情報。 .It Ar RETURN VALUES セクション 2, 3 の関数呼び出しが使用します。 .It Ar ENVIRONMENT 環境変数を記述します。 .It Ar FILES その題材に関係があるファイル群。 .It Ar EXAMPLES 例と助言。 .It Ar DIAGNOSTICS 普通、セクション 4 のデバイスインタフェースの診断のために使用します。 .It Ar ERRORS セクション 2, 3 で、エラーとシグナルを取り扱います。 .It Ar SEE ALSO クロスリファレンスと引用。 .It Ar STANDARDS 適用できるなら、規格準拠を示します。 .It Ar HISTORY 規格が適用できない場合、題材の歴史が必要です。 .It Ar BUGS 思い違い (gotcha) と警告。 .It Ar その他 著者の裁量によりカスタマイズしたヘッダを加えてもかまいません。 .El .It Li \&.Ss サブセクションヘッダ。 .It Li \&.Pp 段落区切り。 垂直な空白 (1 行) です。 .It Li \&.D1 (D-one) 1 個分のディスプレイ。 インデントして、1 テキスト行をディスプレイします。 .It Li \&.Dl (D-ell) 1 個分のリテラルディスプレイ。 インデントして、リテラルテキストを 1 行でディスプレイします。 .It Li \&.Bd ディスプレイブロックを開始します。 表示オプション: .Bl -tag -width "xoffset string " -compact .It Fl ragged 揃えない(行末はちぎれた状態)。 .It Fl filled 揃える。 .It Fl literal リテラルテキストやコード。 .It Fl file Ar name .Ar file を読み込み、ディスプレイします。 .It Fl offset Ar string オフセットディスプレイ。使用可能な .Ar string 値: .Bl -tag -width indent-two -compact .It Ar left ブロックの左寄せ (デフォルト)。 .It Ar center センタリングするように余白を取ります。 .It Ar indent 6 つの一定幅の空白 (タブ 1 個)。 .It Ar indent-two タブ 2 個。 .It Ar right 右から 2 インチのところにブロックを左寄せします。 .It Ar xx Ns Cm n .Ar xx には、 .No \&4 Ns Cm n から .No \&9\&9 Ns Cm n までの数字。 .It Ar Aa .Ar Aa は、呼び出し可能なマクロ名。 .It Ar string .Ar string の幅が使われます。 .El .El .It Li \&.Ed ディスプレイの終り (\&.Bd に対応)。 .It Li \&.Bl リストの開始。リストまたは列を作成します。 オプション: .Bl -tag -width flag -compact .It Ar リストの型 .Bl -column xbullet -compact .It Fl bullet Ta "丸印付きの項目リスト" .It Fl item Ta "ラベル無しのリスト" .It Fl enum Ta "番号付けしたリスト" .It Fl tag Ta "タグラベルのリスト" .It Fl diag Ta "診断リスト" .It Fl hang Ta "ぶら下がりラベルのリスト" .It Fl ohang Ta "突き出したラベルのリスト" .It Fl inset Ta "挿入または追い込みラベルのリスト" .El .It リストのパラメータ .Bl -tag -width "xcompact " -compact .It Fl offset (すべてのリスト) 上記の .Ql \&.Bd ディスプレイ開始を参照。 .It Fl width .Pf ( Fl tag と .Fl hang リストのみ) .Ql \&.Bd を参照。 .It Fl compact (すべてのリスト) 空行を作らない。 .El .El .It Li \&.El リストの終り。 .It Li \&.It リストの項目。 .El .Sh マニュアル領域と一般テキスト領域のマクロ マニュアル領域マクロと一般テキスト領域マクロは、 そのほとんどが呼び出し可能なマクロに解析されるという点で特別です。例えば: .Bl -tag -width ".Op Fl s Ar filex" -offset indent .It Li "\&.Op Fl s Ar file" は .Op Fl s Ar file を生成します。 .El .Pp この例では、オプション囲みマクロ .Ql \&.Op が解析されると、引数 .Ql s を操作する 呼び出し可能なコンテントマクロ .Ql \&Fl を呼び出してから、引数 .Ql file を操作する 呼び出し可能なコンテントマクロ .Ql \&Ar を呼びます。 呼び出し可能ではあるものの解析はされないマクロがありますし、 その逆もあります。 これらのマクロを、後述の .Em 解析対象 (parsed) と .Em 呼出可 (callable) の列に示します。 .Pp 言及していなければ、マニュアル領域マクロは、次の共通の構文をとります: .Pp .Dl \&.Va argument [\ .\ ,\ ;\ :\ (\ )\ [\ ]\ argument \...\ ] .Pp .Sy 注意 : 開く句読点文字と閉じる句読点文字 (訳注: 句読点文字には括弧なども含みます) がそのように認識されるのは、 ひとつずつ登場する場合だけです。 文字列 .Ql ")," は、句読点とは認識されず、 先行する空白文字とともに呼び出しマクロが使用しているフォントで出力されます。 引数リスト .Ql "] ) ," は 3 つの連続した閉じる句読点と認識され、 文字間および (存在する場合には) 先行する引数との間には、 先行する空白文字は出力されません。 句読点文字の特別の意味は、文字列 .Ql \e& によりエスケープされます。 例えば、次の文字列 .Bl -tag -width "&.Ar file1\ , file2\ , file3\ )\ ." -offset indent .It Li "\&.Ar file1\ , file2\ , file3\ )\ ." は .Ar file1 , file2 , file3 ) . を生成します。 .El .ne 1i .Ss マニュアル領域のマクロ .Bl -column "名称" "解析対象" "呼出可" -compact .It Em 名称 解析対象 呼出可 解説 .It Li \&Ad Ta Yes Ta Yes Ta "アドレス (このマクロは使用しないように言われています)。" .It Li \&An Ta Yes Ta Yes Ta "著者名。" .It Li \&Ar Ta Yes Ta Yes Ta "コマンドラインの引数。" .It Li \&Cd Ta \&No Ta \&No Ta "コンフィギュレーション宣言 (セクション 4 のみ)。" .It Li \&Cm Ta Yes Ta Yes Ta "コマンドライン引数修飾子。" .It Li \&Dv Ta Yes Ta Yes Ta "定義された変数 (ソースコード)。" .It Li \&Er Ta Yes Ta Yes Ta "エラー番号 (ソースコード)。" .It Li \&Ev Ta Yes Ta Yes Ta "環境変数。" .It Li \&Fa Ta Yes Ta Yes Ta "関数の引数。" .It Li \&Fd Ta Yes Ta Yes Ta "関数の定義。" .It Li \&Fn Ta Yes Ta Yes Ta "関数呼び出し (.Fo や .Fc も同様)。" .It Li \&Ic Ta Yes Ta Yes Ta "対話的なコマンド。" .It Li \&Li Ta Yes Ta Yes Ta "リテラルテキスト。" .It Li \&Nm Ta Yes Ta Yes Ta "コマンド名。" .It Li \&Op Ta Yes Ta Yes Ta "オプション (.Oo や .Oc も同様)。" .It Li \&Ot Ta Yes Ta Yes Ta "古いスタイルの関数型 (Fortran のみ)。" .It Li \&Pa Ta Yes Ta Yes Ta "パス名やファイル名。" .It Li \&St Ta Yes Ta Yes Ta "規格 (-p1003.2 や -p1003.1 や -ansiC)。" .It Li \&Va Ta Yes Ta Yes Ta "変数名。" .It Li \&Vt Ta Yes Ta Yes Ta "変数の型 (Fortran のみ)。" .It Li \&Xr Ta Yes Ta Yes Ta "マニュアルのクロスリファレンス。" .El .Ss 一般テキスト領域のマクロ .Bl -column "名称" "解析対象" "呼出可" -compact .It Em "名称 解析対象 呼出可 解説" .It Li \&%A Ta Yes Ta \&No Ta "参照の著者。" .It Li \&%B Ta Yes Ta Yes Ta "参照の図書タイトル。" .It Li \&%\&C Ta \&No Ta \&No Ta "参照の発行場所(市)。" .It Li \&%\&D Ta \&No Ta \&No Ta "参照の日付。" .It Li \&%J Ta Yes Ta Yes Ta "参照の雑誌タイトル。" .It Li \&%N Ta \&No Ta \&No Ta "参照の刊行番号。" .It Li \&%\&O Ta \&No Ta \&No Ta "参照の追加的な情報。" .It Li \&%P Ta \&No Ta \&No Ta "参照のページ番号。" .It Li \&%R Ta \&No Ta \&No Ta "参照のレポート名。" .It Li \&%T Ta Yes Ta Yes Ta "参照の記事タイトル。" .It Li \&%V Ta \&No Ta \&No Ta "参照の巻名。" .It Li \&Ac Ta Yes Ta Yes Ta "カギ括弧(angle)閉じクォート。" .It Li \&Ao Ta Yes Ta Yes Ta "カギ括弧(angle)開きクォート。" .It Li \&Ap Ta Yes Ta Yes Ta "アポストロフィ。" .It Li \&Aq Ta Yes Ta Yes Ta "カギ括弧(angle)クォート。" .It Li \&At Ta \&No Ta \&No Ta Tn "AT&T UNIX。" .It Li \&Bc Ta Yes Ta Yes Ta "角括弧(bracket)閉じクォート。" .It Li \&Bf Ta \&No Ta \&No Ta "フォントモード始点。" .It Li \&Bo Ta Yes Ta Yes Ta "角括弧(bracket)開きクォート。" .It Li \&Bq Ta Yes Ta Yes Ta "角括弧(bracket)クォート。" .It Li \&Bx Ta Yes Ta Yes Ta "BSD UNIX。" .It Li \&Db Ta \&No Ta \&No Ta "デバッグ (デフォルトは \\*qoff\\*q)。" .It Li \&Dc Ta Yes Ta Yes Ta "ダブル(double)閉じクォート。" .It Li \&Do Ta Yes Ta Yes Ta "ダブル(double)開きクオート。" .It Li \&Dq Ta Yes Ta Yes Ta "ダブル(double)クォート。" .It Li \&Ec Ta Yes Ta Yes Ta "文字列で囲む閉じクォート。" .It Li \&Ef Ta \&No Ta \&No Ta "フォントモード終了。" .It Li \&Em Ta Yes Ta Yes Ta "強調 (古風な英語)。" .It Li \&Eo Ta Yes Ta Yes Ta "文字列で囲む開きクォート。" .It Li \&Fx Ta \&No Ta \&No Ta Tn "FreeBSD オペレーティングシステム。" .It Li \&No Ta Yes Ta Yes Ta "通常のテキスト (no-op)。" .It Li \&Ns Ta Yes Ta Yes Ta "空白なし。" .It Li \&Pc Ta Yes Ta Yes Ta "丸括弧(parenthesis)閉じクォート。" .It Li \&Pf Ta Yes Ta \&No Ta "接頭文字列。" .It Li \&Po Ta Yes Ta Yes Ta "丸括弧(parenthesis)開きクォート。" .It Li \&Pq Ta Yes Ta Yes Ta "丸括弧クォート。" .It Li \&Qc Ta Yes Ta Yes Ta "まっすぐなダブル(double)閉じクォート。" .It Li \&Ql Ta Yes Ta Yes Ta "クォートされたリテラル。" .It Li \&Qo Ta Yes Ta Yes Ta "まっすぐなダブル(double)開きクォート。" .It Li \&Qq Ta Yes Ta Yes Ta "まっすぐなダブル(double)クォート。" .It Li \&Re Ta \&No Ta \&No Ta "参照終了。" .It Li \&Rs Ta \&No Ta \&No Ta "参照開始。" .It Li \&Rv Ta \&No Ta \&No Ta "戻り値 (セクション 2 と 3 のみ)。" .It Li \&Sc Ta Yes Ta Yes Ta "(single)閉じクォート。" .It Li \&So Ta Yes Ta Yes Ta "(single)開きクォート。" .It Li \&Sq Ta Yes Ta Yes Ta "(single)クォート。" .It Li \&Sm Ta \&No Ta \&No Ta "空白モード(デフォルトは \\*qon\\*q)。" .It Li \&Sx Ta Yes Ta Yes Ta "セクションクロスリファレンス。" .It Li \&Sy Ta Yes Ta Yes Ta "シンボリック (古風な英語)。" .It Li \&Tn Ta Yes Ta Yes Ta "商標またはタイプ名 (小さい大文字)。" .It Li \&Ux Ta Yes Ta Yes Ta "UNIX。" .It Li \&Xc Ta Yes Ta Yes Ta "拡張引数リスト終了。" .It Li \&Xo Ta Yes Ta Yes Ta "拡張引数リスト開始。" .El .\" .It Sy \&Hf Ta \&No Ta \&No Ta "Include file with header" .Pp .Ql q で終わるマクロ名は、引数リストの残りの項目をクォートします。 .Ql o で終わるマクロ名はクォートの開始であり、複数行の入力に渡ります。 .Ql c で終わる対応するマクロ名は、このクォートを閉じます。 囲みマクロは入れ子になっても良く、引数は 8 個に制限されます。 .Pp 注意: 拡張引数リストマクロ .Pf ( Ql \&.Xo , .Ql \&.Xc ) と関数囲みマクロ .Pf ( Ql \&.Fo , .Ql \&.Fc ) は、変則です。 拡張リストマクロは、マクロ引数が .Xr troff の制限である 9 個を越える場合に使われます。 .Sh コンフィギュレーション マクロパッケージのサイト依存コンフィギュレーションのために、 ファイル .Pa /usr/src/share/tmac/README を参照して下さい。 .Sh 関連ファイル .Bl -tag -width "tmac.doc-ditroff" -compact .It Pa tmac.doc マニュアル領域と一般テキスト領域のマクロ。 .It Pa tmac.doc-common 共通構造マクロと定義。 .It Pa tmac.doc-nroff サイト依存の .Xr nroff スタイルファイル。 .It Pa tmac.doc-ditroff サイト依存の .Xr troff スタイルファイル。 .It Pa tmac.doc-syms (標準マクロのような) 特殊定義。 .El .Sh 関連項目 .Xr mdoc.samples 7 .\"ZZZ: 3.0-RELEASE compliant by N. Kumagai 99-1.21 diff --git a/ja/man/man7/re_format.7 b/ja/man/man7/re_format.7 index b6376ca099..a7c3211c4c 100644 --- a/ja/man/man7/re_format.7 +++ b/ja/man/man7/re_format.7 @@ -1,275 +1,277 @@ .\" Copyright (c) 1992, 1993, 1994 Henry Spencer. .\" Copyright (c) 1992, 1993, 1994 .\" The Regents of the University of California. All rights reserved. .\" .\" This code is derived from software contributed to Berkeley by .\" Henry Spencer. .\" .\" 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. .\" .\" @(#)re_format.7 8.3 (Berkeley) 3/20/94 +.\" +.\" Original Revision: 1.2 .\" jpman %Id: re_format.7,v 1.4 1999/01/21 17:51:03 kuma Stab % .\" .\" WORD: branch 枝 .\" WORD: bracket expression 角括弧式 .\" WORD: substring サブストリング .\" WORD: subexpression サブ式 .\" WORD: collating element 連続要素 .\" WORD: case ケース (大文字/小文字) .\" WORD: bound 領域 .\" .TH RE_FORMAT 7 "March 20, 1994" .SH 名称 re_format \- POSIX 1003.2 正規表現 .SH 解説 POSIX 1003.2 において定義されているように、 正規表現 (``RE'') には 2 つの形式があります。 ひとつは現代正規表現 (大雑把にいうと .IR egrep で使用されているもので、1003.2 での ``拡張'' 正規表現) で、もうひとつは旧式正規表現 (これも大雑把には .IR ed で使用されているもので、1003.2 での ``基本''正規表現) です。 旧式正規表現は大抵の場合いくつかの古くからあるプログラムでの 旧バージョンとの互換性のために存在しています。 これについては最後に説明します。 1003.2 は正規表現の構文と意味のいくつかの部分を明確に定めないままに しています。 他の 1003.2 の実装とは完全な互換性がないかもしれない これらの部分については、`\(dg' によって印をつけて示します。 .PP 正規表現 (現代正規表現) はひとつ\(dgもしくはそれ以上の空でない \(dg \fI枝 (branch)\fR を `|' によって区切ったものです。 いずれかの枝にマッチすると正規表現はマッチします。 .PP 枝はひとつ\(dg以上の \fIピース (piece)\fR が結合されたものです。 枝は最初のピース、次のピース...とすべてがマッチしたものにマッチします。 .PP ピースは \fIアトム (atom)\fR、もしくはそれに \(dg `*', `+', `?' のいずれかか、\fI領域 (bound)\fR が続いたものです。 アトムに `*' が続いたものは、 そのアトムの 0 個以上のシーケンスにマッチします。 アトムに `+' が続いたものは、 そのアトム 1 個以上のシーケンスにマッチします。 アトムに `?' が続いたものは、 そのアトムの 0 個か 1 個のシーケンスにマッチします。 .PP \fI領域\fRは `{' で始まり、符号なしの 10 進数の整数が続き、 その次に `,' が続くことがあり、 またその次にもうひとつ符号なしの 10 進数の整数が続くことがあり、 最後には常に `}' が続きます。 ここでの整数は 0 から RE_DUP_MAX (255\(dg) の範囲 (これらの数値を含む) でなくてはならず、 数値が 2 つある場合は、 最初のものは 2 番目のもの以下でなければなりません。 ひとつの整数値 \fIi\fR が含まれコンマが含まれない領域がアトムに続くと、 アトムがちょうど \fIi\fR 個のシーケンスにマッチします。 ひとつの整数値 \fIi\fR とコンマが含まれる領域がアトムに続くと、 \fIi\fR 個以上のアトムのシーケンスにマッチします。 2 つの整数値 \fIi\fR と \fIj\fR が含まれる領域がアトムに続くと、 \fIi\fR 個以上 \fIj\fR 個以下のアトムからなるシーケンスにマッチします。 .PP アトムは次のいずれかです: `()' に囲まれた正規表現 (その正規表現にマッチ) 、 `()' の空のセット (ヌルストリングにマッチ)\(dg、 \fI角括弧式\fR (下記参照)、 `.' (任意の 1 文字にマッチ)、 `^' (行の先頭のヌルストリングにマッチ)、 `$' (行の末尾のヌルストリングにマッチ)、 `\e' とそれに続く `^.[$()|*+?{\e' の内のどれか 1 文字 (それらの通常の扱いでの文字にマッチ)、 `\e' とそれに続くその他の文字\(dg (それらの通常の扱いでの文字にマッチ、`\e' がない場合と同様\(dg)、 もしくはその他に何も指定されていない文字 (その文字にマッチ)。 `{' に数字以外の文字が続くものは通常の文字であり、 領域の開始とはなりません\(dg。 `\e' で終了する正規表現は規則違反となります。 .PP \fI角括弧式 (bracket expression)\fR とは `[]' で囲まれた文字のリストです。 通常はリスト中のどれか 1 文字にマッチします (下記を除く)。 リストの最初が `^' で始まる場合、 リストの残りの文字 \fIでない\fR 1 文字にマッチします (下記を除く)。 リスト中の 2 文字が `\-' で分割されている場合は、 これら 2 文字の \fI範囲\fR (その 2 文字を含む) にある文字の省略形となり、 例えば ASCII では `[0-9]' は 10 進数数字にマッチします。 `a-c-e' のように 2 つの文字範囲がひとつの文字を共有することはできません\(dg。 文字範囲は文字コードの配列に非常に依存しており、 移植性の良いプログラムを書くにはこれに頼ることを避けるのが賢明でしょう。 .PP リスト中に文字 `]' を含めるには、これを最初の文字にする (もしくは `^' に続ける) ようにします。 文字 `\-' を含めるには、これを最初もしくは最後の文字にするか、 文字範囲の終了文字とします。 文字 `\-' を文字範囲の開始文字とするには、 これを連続要素とするために `[.' と `.]' で括ります (下記参照)。 これらと `[' を使用したいくつかの組合せの例外を除いて、 `\e' を含むすべての他の特殊文字は角括弧式の中では それらの特殊な作用は無効となります。 .PP 角括弧式の中では、連続要素 (文字、1 文字のように扱われる複数文字からなるシーケンス、 またはそれら連続シーケンスの名称) は、 `[.' と `.]' で括られ、 その連続要素の文字のシーケンスの意味となります。 このシーケンスは角括弧式のリストのひとつの要素となります。 複数文字からなる連続要素を含む角括弧式はこのように 1 文字以上のものに マッチすることができます。 例えば、連続シーケンスが連続要素として 'ch' を含む場合、 正規表現 `[[.ch.]]*c' は `chchcc' の最初の 5 文字にマッチします。 .PP 角括弧式の中では、`[=' と`=]' で囲まれた連続要素は ひとつの等価クラスであり、 それ自身を含むすべての連続要素の文字のシーケンスを示しています。 (もしその他に等価な連続要素がない場合は、 それはそれを囲うものが `[.' と `.]' であるもののように扱われます。) 例えば、o と \o'o^' が等価クラスのメンバである時、 `[[=o=]]' と `[[=\o'o^'=]]' と `[o\o'o^']' はすべて同じ意味を持ちます。 等価クラスは文字範囲の終了点とすることはできません\(dg。 .PP 角括弧式の中では、`[:' と `:]' で囲まれた \fI文字クラス\fR の名称は そのクラスに属するすべての文字のリストを表わします。 標準の文字クラスの名称には次のものがあります。 .PP .RS .nf .ta 3c 6c 9c alnum digit punct alpha graph space blank lower upper cntrl print xdigit .fi .RE .PP これらは .IR ctype (3) において定義されている文字クラスを表わしています。 ロケールによってはこれら以外のものがあることがあります。 文字クラスは文字範囲の終了点として使うことは出来ません。 .PP 角括弧式には 2 つの特殊なケース\(dgがあります。 角括弧式 `[[:<:]]' と `[[:>:]]' はそれぞれ単語の開始および終了点に おけるヌルストリングにマッチします。 単語は単語文字が前にも後にも付加されない 単語文字のシーケンスとして定義されます。 単語文字は .I alnum (アルファベットと数字) 文字 ( .IR ctype (3) で定義されているように) か下線文字です。 これは拡張して定義されているもので、 POSIX 1003.2 に互換性はありますが、指定はされていません。 この拡張はソフトウェアにおいては、 他のシステムへの移植性をよく考えて使うべきです。 .PP 与えられた文字列の複数のサブストリング (文字列の一部) に、ある正規表現がマッチ可能な場合、 その正規表現は文字列の中で最初に現れたものにマッチします。 もし正規表現が同じ位置に現れた複数のサブストリングにマッチする場合は、 最も長いものにマッチします。 サブ式 (subexpression - 式の一部) も最も長いサブストリングにマッチしますが、 マッチ全体が最も長くなるように、 また正規表現中で先に開始しているサブ式が遅く開始しているものより 高い優先度をもつような条件があります。 高いレベルのサブ式はこのため低いレベルの部品的なサブ式より 高い優先度を持ちます。 .PP マッチの長さは連続要素ではなく、文字数で計られます。 ヌルストリングは全くマッチしないものよりは長いものであると考えられます。 例えば、 `bb*' は `abbbc' の 3 つの真中の文字にマッチし、 `(wee|week)(knights|nights)' は `weeknights' の 10 個すべての文字にマッチし、 `(.*).*' が `abc' にマッチする時には、括弧で囲まれたサブ式は 3 つすべての文字にマッチします。 そして `(a*)*' が `bc' にマッチする時には、 正規表現全体と括弧で囲まれたサブ式の両方がヌルストリングにマッチします。 .PP ケース (大文字/小文字) 非依存マッチが指定された場合、 アルファベットからケースの区別がすべて消え去ったような効果があります。 ケースが複数あるアルファベットが角括弧式の外に通常の文字として現れた時、 それは事実上すべてのケースを含む角括弧式 (たとえば `x' は `[xX]' に) に変換されます。 角括弧式の中に現れたときは、 その文字の異なるケースがその角括弧式に追加されます。 すなわち `[x]' は `[xX]' となり、また `[^x]' は `[^xX]' となります。 .PP 正規表現の長さは特に制限は設けられていません\(dg。 プログラムに移植性を持たせたい場合は 正規表現は 256 バイトにとどめるべきでしょう。 256 バイトを越える正規表現の受理を拒否するにもかかわらず、 POSIX 準拠であるとする実装がありうるからです。 .PP 旧式 (``基本'') 正規表現はいくつかの点で異なっています。 `|' は通常の文字であり、 これらの機能の等価なものは存在しません。 `+' や `?' は通常の文字であり、それらの機能は 領域を用いて表されます (それぞれ \&{1,\&} or \&{0,1\&})。 また、現代正規表現の `x+' は `xx*' と等価であることに注意して下さい。 領域の区切り文字は `\e{' と `\e}' であり、 `{' と `}' は通常の文字として扱われます。 ネストしたサブ式での括弧は `\e(' と`\e)' であり、 `(' と `)' は通常の文字となります。 `^' は正規表現の先頭、もしくは\(dg 括弧で囲まれたサブ式の先頭を除いて通常の文字となり、 `$' は正規表現の末尾、もしくは\(dg 括弧で囲まれたサブ式の末尾を除いて通常の文字となり、 `*' はもしこれが正規表現の先頭、もしくは括弧で囲まれたサブ式の先頭 (か、先頭の `^' のあと) に現れると通常の文字となります。 最後にひとつ新しい型のアトム - \fI後方参照\fR があります。 `\e' に 0 でない 10 進数 \fId\fR が続いたものは、 \fId\fR 番目の括弧で囲まれたサブ式によってマッチする文字の同じ シーケンスにマッチします (開き括弧の位置によって左から右へサブ式に番号を付けます)。 すなわち `\e([bc]\e)\e1' は `bb' や `cc' にマッチしますが、 `bc' にはマッチしません。 .SH 関連項目 regex(3) .PP POSIX 1003.2, セクション 2.8 (正規表現表記法)。 .SH バグ 正規表現が 2 種類もあるのはへまなことです。 .PP 現在の 1003.2 仕様では `)' は マッチする `(' がない場合に 普通の文字として扱われることになっています。 これは言葉使い上の誤りの意図しない結果であり、 変更される可能性があります。 よって、この仕様に依存すべきではありません。 .PP 後方参照はひどいへまであり、 効率的な実装をおこなう上で大きな問題を引き起こします。 さらに、それらの定義はどこかあいまいです。 (`a\e(\e(b\e)*\e2\e)*d' は `abbbd' にマッチするでしょうか ?) これらを使うのは避けてください。 .PP 1003.2 のケース非依存マッチの仕様はあいまいです。 上記での``ひとつのケースはすべてのケースを表わす'' という定義は 実装を行ったものの間では正しい解釈として現在同意されているものです。 .PP 語の境界の構文は信じられないほど醜いものです。 .\"ZZZ: 3.0-RELEASE compliant by N. Kumagai 99-1-21 diff --git a/ja/man/man8/ipfw.8 b/ja/man/man8/ipfw.8 index a414e0d4e1..55fc280e01 100644 --- a/ja/man/man8/ipfw.8 +++ b/ja/man/man8/ipfw.8 @@ -1,601 +1,612 @@ .\" -.\" %Id: ipfw.8,v 1.47.2.3 1999/04/29 19:22:13 ghelmer Exp % +.\" %Id: ipfw.8,v 1.47.2.5 1999/06/17 13:03:37 ru Exp % .\" .\" jpman %Id: ipfw.8,v 1.4 1997/05/19 17:19:51 horikawa Stab % .Dd July 20, 1996 .Dt IPFW 8 SMM .Os FreeBSD .Sh 名称 .Nm ipfw .Nd IPファイアウォール制御ユーティリィティ .Sh 書式 .Nm ipfw .Op Fl q .Oo .Fl p Ar preproc .Op Fl D Ar macro Ns Op Ns =value .Op Fl U Ar macro .Oc -file +.Ar file .Nm ipfw .Oo .Fl f | .Fl q .Oc flush .Nm ipfw .Oo .Fl q .Oc zero .Op Ar number ... .Nm ipfw delete .Ar number ... .Nm ipfw .Op Fl aftN list .Op Ar number ... .Nm ipfw .Oo .Fl ftN .Oc show .Op Ar number ... .Nm ipfw .Oo .Fl q .Oc add .Op Ar number .Ar action .Op log .Ar proto from .Ar src to .Ar dst .Op via Ar name | ipno .Op Ar options .Sh 解説 書式の 1 行目のようにファイル名を指定した場合は、 .Ar file を 1 行ずつ、引数として読み込みます。 .Pp .Fl p Ar preproc を使用して、 .Ar file がパイプされるプリプロセッサを指定することもできます。 有用なプリプロセッサには .Xr cpp 1 と .Xr m4 1 があります。 .Ar preproc の最初の文字がスラッシュから始まらない場合、 .Ev PATH を使用した通常の名前検索行われます。 .Nm が実行されるときまでに全ファイルシステムが (まだ) マウントされないような環境 (例えば NFS 経由でマウントされる場合) では、本件に注意してください。 ひとたび .Fl p が指定されると、オプションの .Fl D と .Fl U の指定を続けることが可能となり、これらがプリプロセッサに渡されます。 これにより、(ローカルホスト名により条件付けするなど) 柔軟性のある設定ファイルを作成可能となり、IP アドレスのように 頻繁に必要となる引数を集中管理するためのマクロを使用可能となります。 .Pp .Nm はパケットごとに、マッチするルールが見つかるまでルールリストを調べます。 各ルールにはパケット数とパケットサイズの 2 つのカウンタが用意されていて、 パケットがマッチするとカウンタ値は更新されます。 .Pp 全ルールは 1 から 65534 の範囲の行番号で順序付けられます。この番号によって ルールの並べ変えと削除を行ないます。 ルールのマッチングは昇順で行なわれ、最初にマッチしたものが適用されます。 複数のルールが同じ番号を共有することも可能です。この場合はルールが追加された 順序でマッチングが行なわれます。 .Pp 番号を指定せずにルールを追加した場合は、 既に定義されているルールの最大の番号に 100 を加えたものとなります。 ルールの番号が 65435 以上の場合は、新しいルールは同じ番号が与えられます。 。 .Pp delete 操作は .Ar number で指定された番号を持つ最初のルールを、もし有れば、削除します。 .Pp list 操作は現在のルール一覧を出力します。 .Pp show 操作は `ipfw -a list' と同じ結果を出力します。 .Pp zero 操作は .Ar number で指定された番号を持つルールのカウンタをクリアします。 .Pp flush 操作は全ルールを削除します。 .Pp 記号 `#' で始まる行および空行は無視されます。 .Pp どんな場合でも次のルールは存在します: .Bd -literal -offset center 65535 deny all from any to any .Ed .Pp -全パケットを拒否するのがデフォルトのポリシーです。 +全パケットを拒否するのがデフォルトのポリシです。 これを修正し、必要なルールを設定して下さい。 .Pp しかしながら、カーネルオプション .Dq IPFIREWALL_DEFAULT_TO_ACCEPT が有効な場合、ルールは次のようになります: .Bd -literal -offset center 65535 allow all from any to any .Ed .Pp -このバリエーションでは全てが通過可能です。 +このバリエーションではすべてが通過可能です。 このオプションを有効にしてよいのは特定の状況だけであり、 例えば通常は解放しており、 必要に応じてサービス拒否 (denial-of-service) フィルタとなる ファイアウォールシステムを使用する場合がこれに該当します。 .Pp オプションは以下のものが利用可能です。 -.Bl -tag -width flag +.Bl -tag -width indent .It Fl a list 操作の時、カウンタの値を表示します。 show の項を参照のこと。 .It Fl f 操作を実行する際に確認メッセージを表示しません。 flush 操作も無条件に実行されます。 .Ar (注意) プロセスに tty が関連付けられていない場合には、 このオプションが指定されているものとして実行されます。 .It Fl q ルールを add, zero, flush する際に、メッセージの出力を抑制します ( .Fl f も含まれます)。 このオプションは、リモートログインセッションでルールを調整する際に、 -(例えば sh /etc/rc.firewall のようにして)スクリプトの中から複数の ipfw コマンド +(例えば sh /etc/rc.firewall のようにして) +スクリプトの中から複数の ipfw コマンド を 実行する場合や、 多数の ipfw ルールを記述したファイルを用いる場合に 便利です。 -flush 操作が通常の(冗舌な)状態(デフォルトのカーネルの設定) +flush 操作が通常の (冗舌な) 状態 (デフォルトのカーネルの設定) で実行されると、メッセージが出力されます。 ここで、すべてのルールは削除されるので、メッセージをログインセッションに 送ることができず、ログインセッションがクローズされてしまうので、 残りのルールセットは実行されません。 この状態を修復するにはコンソールへのアクセスが必要となります。 .It Fl t list 操作の時に、最後にマッチしたパケットのタイムスタンプを表示します。 .It Fl N IPアドレスとサービス名をリゾルブしてホスト名で表示します。 .El .Pp .Ar action : .Bl -hang -offset flag -width 1234567890123456 .It Ar allow マッチするパケットを通過させ、マッチングを終了します。 .Ar pass , .Ar permit , .Ar accept と同じです。 .It Ar deny マッチするパケットを破棄し、マッチングを終了します。 .Ar drop は .Ar deny と同じです。 .It Ar reject -(パケットを送らないよう嘆願) マッチするパケットを破棄し、 +(価値が低下しています。) +マッチするパケットを破棄し、 ICMP の host unreachable を送信して、終了します。 .It Ar unreach code -パケットを破棄し、ICMP の unreachable に +マッチするパケットを破棄し、 +ICMP の unreachable に .Ar code を付けて送信します。 .Ar code -は、 0 から 256 までの数字、もしくは、以下に列挙する別名のいずれかです: +は、0 から 256 までの数字、もしくは、以下に列挙する別名のいずれかです: .Ar net, .Ar host , .Ar protocol , .Ar port , .Ar needfrag , .Ar srcfail , .Ar net-unknown , .Ar host-unknown , .Ar isolated , .Ar net-prohib , .Ar host-prohib , .Ar tosnet , .Ar toshost , .Ar filter-prohib , .Ar host-precedence , .Ar precedence-cutoff 。送信後、終了します。 .It Ar reset TCP パケットのみに対応。 パケットを破棄し、TCP の (RST) を送信し、終了します。 .It Ar count マッチするパケットのカウンタを更新し、引続きマッチングを行ないます。 .It Ar divert port マッチするパケットを .Ar port で指定されたポートにバインドされている .Xr divert 4 ソケットに送り、マッチングを終了します。 .It Ar tee port マッチするパケットのコピーを .Ar port で指定されたポートにバインドされている .Xr divert 4 ソケットに送り、引続きマッチングを行ないます。 この機能は未実装です。 .It Ar fwd ipaddr Op ,port マッチしたパケットの次のホップを .Ar ipaddr に変更します。これはドット付き 4 つ組の IP アドレスでもホスト名でもよいです。 .Ar ipaddr が直接到達可能なアドレスではない場合、その IP に対して ローカルルーティングテーブルでみつかる経路を使用します。 .Ar ipaddr がローカルアドレスの場合、 リモートホストからこのシステムにパケットが到着すると、 そのパケットをローカルマシンの .Ar port に転換します。 その際、 ソケットのローカルアドレスは、 パケットの元々の宛先の IP アドレスのままとします。 これは透過的プロキシサーバのためにあります。 IP が ローカルアドレスではない場合、ポート番号は (指定されていても) 無視され、 ルールはシステムから出て行くパケットに対してのみ適用されます。 また、」 パケットローカルに生成された時にもアドレスをローカルポートにマップします。 検索はルールがマッチしたときに終了します。 ポート番号が与えられなかった場合、パケット中のポート番号が使用され、 外部マシンのポート Y へのパケットは ローカルポート Y へ転送されます。 カーネルは、 オプション IPFIREWALL_FORWARD 付きでコンパイルされている必要があります。 .It Ar skipto number .Ar number より小さな番号のルールを飛び越して、 .Ar number 以上の番号のルールで最初に存在するものから、マッチングを継続します。 .El .Pp パケットが .Ar divert や .Ar tee のどちらかひとつ以上、もしくは両方の組み合わせの、複数のルールにマッチした場合、 最後のものを除き、無視します。 .Pp カーネルが .Dv IPFIREWALL_VERBOSE オプション付きでコンパイルされている場合に、``log'' が指定されているルールと マッチした時は、メッセージをコンソールに表示します。 もし、 .Dv IPFIREWALL_VERBOSE_LIMIT オプション付きでコンパイルされている場合、一連のルールに対し指定されたパケット 数を受信した後、メッセージの表示を中止します。 パケットのカウンタをクリアすれば再びメッセージを出力します。 .Pp コンソールへの表示とその制限数は、 .Xr sysctl 8 を通し、直接設定できます。 .Pp .Ar proto : .Bl -hang -offset flag -width 1234567890123456 .It Ar ip 全パケットがマッチします。別名 .Ar all も使えます。 .It Ar tcp TCP パケットのみマッチします。 .It Ar udp UDP パケットのみマッチします。 .It Ar icmp ICMP パケットのみマッチします。 .It Ar 指定されたプロトコルのパケットのみマッチします ( .Pa /etc/protocols のリストを参照の事) .El .Pp .Ar src と .Ar dst : .Pp .Bl -hang -offset flag .It Ar
.Op Ar ports .El .Pp .Em
は以下のように指定できます。 .Bl -hang -offset flag -width 1234567890123456 .It Ar ipno IP番号を 1.2.3.4 の形式で指定します。指定されたアドレスのみがマッチします。 .It Ar ipno/bits IP番号とネットマスクの幅を 1.2.3.4/24 の形式で指定します。 この場合は 1.2.3.0 から 1.2.3.255 のアドレスがマッチします。 .It Ar ipno:mask IP番号とネットマスクの幅を 1.2.3.4:255.255.240.0 の形式で指定します。 この場合は 1.2.0.0 から 1.2.15.255 のアドレスがマッチします。 .El .Pp アドレスの前に ``not'' を付けることによって、マッチの意味を反転させる -ことができます(指定されたアドレス以外の総てのアドレスがマッチします)。 +ことができます (指定されたアドレス以外の総てのアドレスがマッチします)。 これはポート番号には影響しません。 .Pp TCP と UDP ではさらに、 .Em ports を以下のように指定できます。 .Pp .Bl -hang -offset flag .It Ns {port|port-port} Ns Op ,port Ns Op ,... .El .Pp -ポート番号の代わりに(ファイル +ポート番号の代わりに (ファイル .Pa /etc/services -から取った)サービス名を使用できます。 +から取った) サービス名を使用できます。 port-port の書式で、最初の値に限り範囲指定できます。 列挙出来るポート数は .Pa /usr/src/sys/netinet/ip_fw.h で .Dv IP_FW_MAX_PORTS として定義されています。 +.Ql \e +を使用することにより、サービス名中の +.Ql - +文字をエスケープ可能です: +.Pp +.Dl ipfw add count tcp from any ftp\e\e-data-ftp to any .Pp 断片化されたパケットでオフセットが非 0 のもの (すなわち、最初の断片ではないもの) は、 -一つ以上のポート仕様を持つルールにはマッチしません。? +1 つ以上のポート仕様を持つルールにはマッチしません。 断片化されたパケットへのマッチングに関する詳細は .Ar frag オプションを参照してください。 .Pp マッチングのルールは、入ってくるパケットか、出ていくパケット、もしくはその両方 に対し適応されます。 .Ar in を指定すれば、入ってくるパケットのみにルールを適応します。 .Ar out を指定すれば、出ていくパケットのみに適応します。 .Pp 特定のインタフェースを通過するパケットには、 .Ar via を用いてインタフェースを指定します: .Bl -hang -offset flag -width 1234567890123456 .It Ar via ifX .Ar ifX を通過するパケットを指定します。 .It Ar via if* .Ar ifX を通過するパケットを指定します。X はいずれかのユニットの番号です。 .It Ar via any .Em いずれか のインタフェースを通過するパケットを指定します。 .It Ar via ipno IP アドレスが .Ar ipno のインタフェースを通過するパケットを指定します。 .El .Pp .Ar via を用いると、常時指定されたインタフェースがチェックされます。 .Ar recv や .Ar xmit を、 .Ar via の代わりに指定すると、 -受信、もしくは送信インタフェースのみが(各々に)チェックされます。 +受信、もしくは送信インタフェースのみが (各々に) チェックされます。 両方を指定すれば、 受信と送信の両方のインタフェースを通るパケットを指定できます。 例 : .Pp .Dl "ipfw add 100 deny ip from any to any out recv ed0 xmit ed1" .Pp .Ar recv で指定したインタフェースでは、受信と送信、両方のパケットをチェックできます。 それに対し、 .Ar xmit で指定したインタフェースでは、送信パケットのみとなります。 それゆえに、 .Ar xmit を指定すると .Ar out -が、必須です( +が、必須です ( .Ar in は不可)。 .Ar via と共に .Ar xmit もしくは、 .Ar recv を指定する事はできません。 .Pp 個々のパケットは、受信用ないし送信用インタフェースを持たないかもしれません。 ローカルホストで発生したパケットには受信用のインタフェースはないし、 ローカルホスト内宛のパケットは、送信用インタフェースが有りません。 .Pp 追加用 .Ar options : .Bl -hang -offset flag -width 1234567890123456 .It frag -パケットが断片(フラグメント)化されたデータグラムの一部で、かつデータグラムの +パケットが断片 (フラグメント) 化されたデータグラムの一部で、かつデータグラムの 先頭の断片でない場合にマッチします。 .Ar frag を、 .Ar tcpflags や TCP/UDP ポート仕様と共に使用することはできません。 .It in ネットワークから受信したパケットのみマッチします。 .It out ネットワークへ送信するパケットのみマッチします。 .It ipoptions Ar spec IP ヘッダが、 .Ar spec に指定されたコンマで区切られたオプションのリストを含む場合にのみマッチします。 サポートされている IP オプションは .Ar ssrr (strict source route), .Ar lsrr (loose source route), .Ar rr (record packet route), .Ar ts (timestamp) です。 ``!'' によって、特定のオプションを含めないよう指定できます。 .It established RST または ACK ビットがセットされているパケットのみマッチします。 このビットがセットされることがあるのは TCP のパケットのみです。 .It setup SYN ビットがセットされ ACK がセットされていないパケットのみマッチします。 このビットがセットされることがあるのは TCP のパケットのみです。 .It tcpflags Ar spec TCP ヘッダが .Ar spec に指定されたコンマで区切られたフラグのリストを含む場合にのみマッチします。 サポートされているフラグは、 .Ar fin , .Ar syn , .Ar rst , .Ar psh , .Ar ack , .Ar urg です。 ``!'' によって、特定のフラグを含めないよう指定できます。 .Ar tcpflags 仕様を含むルールは非 0 のオフセットを持つ断片化されたパケットに マッチすることはありません。 断片化されたパケットに関するマッチについての詳細は .Ar frag オプションを参照してください。 .It icmptypes Ar types ICMP タイプが .Ar types で指定されたリスト中に存在する場合にのみ適用されるルールとなります。 リストはレンジの組み合わせでも、各タイプをコンマで区切ったものでもどちらでも かまいません。 .El .Sh チェックリスト ルールを構成する際に考慮すべき重要な点を述べます。 .Bl -bullet -hang -offset flag .It かならず送信パケットと受信パケットの両方のパケットをフィルタリングします。 ほとんどのネットワークコネクションではパケットが双方向に流れることが必要です。 .It テストは細心の注意を払って行ないます。テストの際にはコンソールの近くにいる のがよいでしょう。 .It ループバックインタフェースのことを忘れてはなりません。 .El .Sh 長所 ファイアウォールが常に破棄するパケットが 1 種類あります。 フラグメントオフセットが 1 のフラグメントパケットです。 これはパケットとしては有効なものですが、利用目的はファイアウォールを かいくぐることしかありません。 .Pp ネットワーク越しにログインしている場合、KLD 版の .Nm をロードすることはそれほど単純なことではありません。 以下のコマンドを奨めます。 .Bd -literal -offset center kldload /modules/ipfw.ko && \e ipfw add 32000 allow all from any to any .Ed .Pp これに引続き、同じような状況で .Bd -literal -offset center ipfw flush .Ed .Pp とするのは良くありません。 .Pp システムセキュリティレベルが 3 以上に設定されている場合、 IP フィルタリストを変更できません (システムセキュリティレベルについては .Xr init 8 を参照してください)。 .Sh パケットの行き先変更 指定されたポートを見ているソケットは、そのポートへ行き先変更されたパケットを、 全部受けとります。 .Xr divert 4 -を参照して下さい。ポートを見ているソケットがない場合やカーネルがパケットの行き -先変更をサポートするようにはコンパイルされていない場合、パケットは破棄されます -。 +を参照して下さい。ポートを見ているソケットがない場合やカーネルがパケットの +行き先変更をサポートするようにはコンパイルされていない場合、 +パケットは破棄されます。 .Sh 使用例 次のコマンドは .Em cracker.evil.org から .Em wolf.tambov.su -の telnet ポートへ送られる全ての TCP パケットを拒否するルールを追加します。 +の telnet ポートへ送られるすべての TCP パケットを拒否するルールを追加します。 .Pp .Dl ipfw add deny tcp from cracker.evil.org to wolf.tambov.su 23 .Pp -次のコマンドはネットワーク hackers からホスト my への全てのコネクションを +次のコマンドはネットワーク hackers からホスト my へのすべてのコネクションを 拒否します。 .Pp .Dl ipfw add deny all from 123.45.67.0/24 to my.host.org .Pp 次はカウントされている情報とタイムスタンプを見る例です .Pp .Dl ipfw -at l .Pp これはタイムスタンプを省略して次のように指定できます。 .Pp .Dl ipfw -a l .Pp -次のルールは 192.168.2.0/24 からの全ての受信パケットを、5000番のポートに +次のルールは 192.168.2.0/24 からのすべての受信パケットを、5000 番のポートに 行き先変更するものです。 .Pp .Dl ipfw divert 5000 all from 192.168.2.0/24 to any in .Sh 関連項目 .Xr cpp 1 , .Xr m4 1 , .Xr divert 4 , .Xr ip 4 , .Xr ipfirewall 4 , .Xr protocols 5 , .Xr services 5 , .Xr init 8 , .Xr kldload 8 , .Xr reboot 8 , .Xr sysctl 8 , .Xr syslogd 8 .Sh バグ .Pp .Em WARNING!!WARNING!!WARNING!!WARNING!!WARNING!!WARNING!!WARNING!! .Pp このプログラムはコンピュータをかなり使いにくい状態にしてしまう可能性があります 。 はじめて使用する時はコンソール上で実行し、理解していない操作は .Em 絶対に実行しない ようにして下さい。 .Pp 連続したエントリの操作もしくは追加に際し、サービス名やプロトコル名は使用できま せん。 .Pp -入ってきたパケットの断片(フラグメント)が +入ってきたパケットの断片 (フラグメント) が .Ar divert によって行き先を変更されると、ソケットに配送される前に、組み立て直しをします。 それに対し、 .Ar tee -を経由した断片(フラグメント)は、組み立て直しされません。 +を経由した断片 (フラグメント) は、組み立て直しされません。 .Pp ポートの別名でダッシュ (-) を含むものは、リストの最初には書けません。 .Pp ``tee'' アクションは未実装です。 .Sh 作者 .An Ugen J. S. Antsilevich , .An Poul-Henning Kamp , .An Alex Nash , .An Archie Cobbs . API は .An Daniel Boulet が BSDI 向けに記述したコードに基づいています。 .Sh 歴史 .Nm -は、FreeBSD 2.0 で最初に現れました。 +は、 +.Fx 2.0 +で最初に現れました。 diff --git a/ja/man/man8/locate.updatedb.8 b/ja/man/man8/locate.updatedb.8 index bcfec558fe..1ea4ad1211 100644 --- a/ja/man/man8/locate.updatedb.8 +++ b/ja/man/man8/locate.updatedb.8 @@ -1,70 +1,77 @@ .\" Copyright (c) 1996 .\" Mike Pritchard . 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 Mike Pritchard. .\" 4. Neither the name of the author 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 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 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. .\" +.\" Original Revision: 1.3.2.1 .\" jpman %Id: locate.updatedb.8,v 1.3 1997/09/04 16:39:10 horikawa Stab % .Dd February 11, 1996 .Dt LOCATE.UPDATEDB 8 .Os BSD 4.4 .Sh 名称 .Nm locate.updatedb .Nd locate データベースの更新 .Sh 書式 .Nm /usr/libexec/locate.updatedb .Sh 解説 .Nm locate.updatedb は、 .Xr locate 1 で使用されるデータベースの更新を行います。 通常は、 .Pa /etc/weekly スクリプト により週に一度実行されます。 .Pp 新規に構築されるデータベースの内容は、 .Pa /etc/locate.rc ファイル を用いて設定することが出来ます。 .Sh 関連ファイル .Bl -tag -width /var/db/locate.database -compact .It Pa /var/db/locate.database デフォルトのデータベース .It Pa /etc/locate.rc 設定ファイル .El +.Sh ENVIRONMENT +.Bl -tag -width /var/db/locate.database -compact +.It Pa LOCATE_CONFIG +設定ファイルのパス +.El .Sh 関連項目 -.Xr locate 1 +.Xr locate 1 , +.Xr periodic 8 .Rs .%A Woods, James A. .%D 1983 .%T "Finding Files Fast" .%J ";login" .%V 8:1 .%P pp. 8-10 .Re diff --git a/ja/man/man8/mount_msdos.8 b/ja/man/man8/mount_msdos.8 index cbf098151b..71c809bf88 100644 --- a/ja/man/man8/mount_msdos.8 +++ b/ja/man/man8/mount_msdos.8 @@ -1,214 +1,214 @@ .\" $NetBSD: mount_msdos.8,v 1.13 1998/02/06 05:57:00 perry Exp $ .\" .\" Copyright (c) 1993,1994 Christopher G. Demetriou .\" 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 acknowledgment: .\" This product includes software developed by Christopher G. Demetriou. .\" 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. .\" -.\" %Id: mount_msdos.8,v 1.14 1998/06/30 06:23:41 charnier Exp % +.\" %Id: mount_msdos.8,v 1.15 1999/01/11 18:35:14 dt Exp % .\" jpman %Id: mount_msdos.8,v 1.3 1997/09/08 01:55:26 seki Stab % .\" .Dd April 7, 1994 .Dt MOUNT_MSDOS 8 .Os .Sh 名称 .Nm mount_msdos .Nd MS-DOS ファイルシステムをマウントする .Sh 書式 .Nm mount_msdos .Op Fl o Ar options .Op Fl u Ar uid .Op Fl g Ar gid .Op Fl m Ar mask .Op Fl s .Op Fl l .Op Fl 9 .\".Op Fl G .Op Fl L Ar locale .Op Fl W Ar table .Pa special .Pa node .Sh 解説 .Nm コマンドは、デバイス名 .Pa special 上の MS-DOS ファイルシステムを、 グローバルファイルシステムの名前空間の .Pa node の示す位置に接続します。 通常このコマンドは、ブート時に .Xr mount 8 によって実行されますが、 任意のユーザが、 自分の所有する任意のディレクトリに MS-DOS ファイルシステムをマウントするために使うこともできます。 (もちろん、 そのファイルシステムを含むデバイスに対して 適切なアクセスを行えることが条件ですが。) .Pp オプションは以下のものが使用できます: .Bl -tag -width Ds .It Fl o Ar options 指定されたマウントオプション .Ar options を .Xr mount 8 の記述通り使用します。 .It Fl u Ar uid ファイルシステム上のファイルの所有者を .Ar uid にします。デフォルトの所有者はファイルシステムがマウントされるディレクトリの 所有者です。 .It Fl g Ar gid ファイルシステム上のファイルのグループを .Ar gid にします。デフォルトのグループはファイルシステムがマウントされるディレクトリの グループです。 .It Fl m Ar mask ファイルシステム上のファイルの最大のパーミッションを指定します。 (例えば、 Ar mask .Li 755 は、デフォルトで、 .\" ここでの by default は「MS-DOS の『ファイル属性』として特別な指定 .\" がないとき」という意味であると思われる。意味がわかりにくいが、原文 .\" もわかりにくいので、特に説明を補わない。 .\" by 所有者がファイルの読み書き実行の権限を持ち、 他のユーザが読みと実行の権限だけを持つことを指定します。 8 進のファイルモードに関しては .Xr chmod 1 を御覧下さい。) .Ar mask の下位 9 ビットのみが使用されます。 デフォルトの .Ar mask は、 ファイルシステムがマウントされるディレクトリから取得されます。 .It Fl s Win'95 のロングファイル名を無視および生成しないように強制します。 .It Fl l Win'95 のロングファイル名のリストおよび生成と、 生成/修正/アクセス日を分離するように強制します。 .Pp .Fl s も .Fl l も指定されない場合、 .Nm は既存の Win'95 のロングファイル名から マウントすべきファイルシステムのルートディレクトリを探してマウントします。 このようなエントリが見付からなかった場合で、 短い DOS ファイル名が見付かった場合、 .Fl s がデフォルトです。そうでない場合、 .Fl l が仮定されます。 .It Fl 9 ファイルを削除およびリネームするときにおいても、 特殊な Win'95 のディレクトリエントリを無視します。 これは .Fl s を強制します。 .\".It Fl G .\"This option causes the filesystem to be interpreted as an Atari-Gemdos .\"filesystem. The differences to the MS-DOS filesystem are minimal and .\"limited to the boot block. This option enforces .\".Fl s . .It Fl L Ar locale DOS と Win'95 の国際大文字小文字名前変換において使用される ロケール名を指定します。 デフォルトでは ISO 8859-1 がローカルな文字セットと仮定されます。 .It Fl W Ar table 3 個の変換表を含むテキストファイルを指定します: .Bl -enum .It Win'95 のロングファイル名に対して、 ローカル文字セットから Unicode へ変換する表 (上半分)であり、 128 Unicode コードです。 Unicode に存在しないコードがあった場合、 0x003F コード ('?') を代わりに使用します。 .It DOS 名に対して、 DOS からローカル文字セットへ変換する表 (上半分) であり、 128 文字コードです。 変換できないものに対しては、 コード 0x3F ('?') を使用します。 .It DOS 名に対して、 DOS からローカル文字セットへ変換する表 (上半分) であり、 128 文字コードです。 特殊な意味を持つコードがあります: .Bl -hang .It 0x00 DOS フィイル名において禁止されている文字; .It 0x01 DOS ファイル名において '_' に変換されるべき文字; .It 0x02 DOS ファイル名においてスキップされるべき文字; .El .El .Pp デフォルトでは ISO 8859-1 がローカル文字セットとして仮定されます。 パスが絶対パスでない場合、 .Pa /usr/libdata/msdosfs/ プレフィックスが前に付きます。 .El .Sh 関連ファイル .Bl -tag -width /usr/libdata/msdosfs -compact .It Pa /usr/libdata/msdosfs 文字セット変換表のデフォルトの置き場所 .El .Sh 関連項目 .Xr mount 2 , .Xr unmount 2 , .Xr fstab 5 , .Xr mount 8 .Sh 警告 Win'95 で使用しているものと同様の手続きを使用して注意しているにもかかわらず、 .Fl 9 フラグを使用するとファイルシステムを破壊することがあります。 .Pp .Fx 2.1 およびそれ以前のバージョンでは 16K より大きなクラスタサイズを扱えませんでした。 MS-DOS ファイルシステムをマウントするだけで、 そのファイルシステムを破壊してしまうことがありました。 16K より大きなクラスタサイズは 1G より大きなファイルシステムでは避けようがありませんし、 1G より大きなファイルシステムを FIPS で縮めたときにも発生し得ます。 .Sh 歴史 .Nm は .Fx 2.0 にて初めて登場しました。 この元になった、 .Nm mount_pcfs は .Fx 1.0 にて登場しましたが、 よりそれらしい名前の .Nm が出来たため廃止されました。 diff --git a/ja/man/man8/mount_umap.8 b/ja/man/man8/mount_umap.8 index 894ed9c280..93f2c3b4fa 100644 --- a/ja/man/man8/mount_umap.8 +++ b/ja/man/man8/mount_umap.8 @@ -1,135 +1,136 @@ .\" Copyright (c) 1992, 1993, 1994 .\" The Regents of the University of California. All rights reserved. .\" All rights reserved. .\" .\" This code is derived from software donated to Berkeley by .\" Jan-Simon Pendry and from John Heidemann of the UCLA Ficus project. .\" .\" 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. .\" .\" @(#)mount_umap.8 8.4 (Berkeley) 5/1/95 -.\" %Id: mount_umap.8,v 1.8 1998/07/15 06:12:31 charnier Exp % +.\" %Id: mount_umap.8,v 1.9 1998/12/22 11:52:10 jkh Exp % +.\" .\" jpman %Id: mount_umap.8,v 1.2 1997/04/12 15:56:14 horikawa Stab % .\" .Dd May 1, 1995 .Dt MOUNT_UMAP 8 .Os BSD 4.4 .Sh 名称 .Nm mount_umap .Nd ファイルシステム層のサンプルファイルシステム .Pp .Sh 書式 .Nm mount_umap .Op Fl o Ar options .Fl u Ar uid-mapfile .Fl g Ar gid-mapfile .Ar target .Ar mount-point .Sh 解説 .Nm は、ローカルシステムとは異なる uid, gid を使用するファイルシステムの サブトリーをマウントするために使用します。 そのようなファイルシステムには、別のサイトの NFS や 別のパスワードを使用する場所から持って来たリムーバブルメディア上の ファイルシステムです。 .Pp .Nm はユーザが提供するファイルのセットを使用し、 サブトリーの元の環境とローカルの環境との uid, gid の対応を取ります。 元の環境では smith は uid 1000 を持ち、ローカル環境では uid 2000 を持ちます。 .Nm は、smith のオリジナルの環境で持っているファイルを次のようにマップさせます: uid 1000 が所有するファイルを、実際には uid 2000 が所有者である かのように見せます。 .Pp 以下のオプションを使用可能です: .Bl -tag -width indent .It Fl o .Fl o のあとに、コンマで区切ってオプション文字列を指定することができます。 可能なオプションとその意味は .Xr mount 8 を参照してください。 .It Ar target ローカルシステムの名前空間において、サブツリーの現在位置。 .It Ar mount-point マップされたサブツリーが置かれるディレクトリ。 .It Fl u Ar uid-mapfile .It Fl g Ar gid-mapfile 識別子の対応が記述されます。 それぞれのファイルの1行目には、そのファイルがいくつの対応を持っている かを記述します。 2行目からは、各行に対応を記述します。 最初の項目はローカル環境での id で、次の項目がオリジナル環境での idで、 項目は空白で区切ります。 .Ar uid-mapfile にはすべての uid の対応を、 .Ar gid-mapfile にはすべての gid の対応を記述するべきです。 .Ar uid-mapfile に記載されない uid は NOBODY と、 .Ar gid-mapfile に記載されない gid は NULLGROUP と扱われます。 uid の対応は64個まで、gid の対応は16個まで記述することができます。 .El .Pp マップファイルはファイル階層のどこにでも置くことができますが、 ファイルの所有者はrootで、rootのみが書き込めるようにしておかなければ なりません。 .Nm は、もしこれらのファイルの所有者や権限が 不適切な場合はサブトリーをマップしません。 もしマップファイルの1行目の対応数と実際の対応数が異なる場合も、 実行を停止します。 .Pp .Nm コマンドで作られるファイルシステム層は、簡単なファイルシステム層の 例となっています。商品としての利用は考えられていません。 そのため、あまり洗練された実装ではありません。 .Sh 関連項目 .Xr mount 8 , .Xr mount_null 8 .Sh バグ 本ファイルシステムタイプは、まだ完全にはサポートされていません (注: 機能しないということです) し、 実際のところ使用するとシステム上のデータを破壊するかもしれません。 自己責任において使用してください。 猛犬注意。濡れていて滑ります。 危険性を減らすためには、このコードもまた所有者を必要としています - 真面目なハッカーの方はメールを hackers@freebsd.org に送って 引き継ぎの意思を宣言してください。 .Sh 歴史 .Nm は .Bx 4.4 から実装されました。 diff --git a/ja/man/man8/mount_union.8 b/ja/man/man8/mount_union.8 index 8e153bfce9..a8a3c4f67a 100644 --- a/ja/man/man8/mount_union.8 +++ b/ja/man/man8/mount_union.8 @@ -1,210 +1,211 @@ .\" Copyright (c) 1994 .\" The Regents of the University of California. All rights reserved. .\" .\" This code is derived from software donated to Berkeley by .\" Jan-Simon Pendry. .\" .\" 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. .\" .\" @(#)mount_union.8 8.6 (Berkeley) 3/27/94 -.\" %Id: mount_union.8,v 1.4 1998/07/15 06:13:45 charnier Exp % +.\" %Id: mount_union.8,v 1.5 1998/12/22 11:52:10 jkh Exp % +.\" .\" jpman %Id: mount_union.8,v 1.3 1997/08/31 14:06:42 horikawa Stab % .\" .Dd March 27, 1994 .Dt MOUNT_UNION 8 .Os BSD 4.4 .Sh 名称 .Nm mount_union .Nd ユニオンファイルシステムをマウントする .Sh 書式 .Nm mount_union .Op Fl br .Op Fl o Ar options .Ar directory .Ar uniondir .Sh 解説 .Nm コマンドは .Ar directory を .Ar uniondir の上に接続し、そこから両方のディレクトリツリーの内容が見えるようにします。 デフォルトでは、 .Ar directory が .Em 上の 層に、 .Ar uniondir が .Em 下の 層になります。 .Pp オプションには以下のものがあります: .Bl -tag -width indent .It Fl b デフォルトの上下関係を反転します。つまり、 .Ar directory が下の層に、 .Ar uniondir が上の層になります。ただし、マウントポイントは .Ar uniondir のままになります。 .It Fl o .Fl o フラグの後には、オプション文字列をコンマで区切って指定します。 指定可能なオプションと、その意味については .Xr mount 8 を参照してください。 .It Fl r .Xr mount_null 8 でマウントした場合と同様に、下の層を完全に隠すようになります。 .El .Pp ファイルシステムのセキュリティを維持するため、 ファイルシステムをマウントするユーザは、スーパユーザか、 マウントポイントのディレクトリに書き込み許可を持つ者でなければなりません。 .Pp ファイルの検索は、上の層、下の層の順におこなわれます。 上の層にはエントリのないディレクトリが、下の層で見つかった場合には、上の層に .Em シャドウ ディレクトリが作られます。 このディレクトリはユニオンマウントを実行したユーザの所有になり、モードは .Dq rwxrwxrwx (0777) をその時点で有効な umask で修正したものになります。 .Pp あるファイルが上の層に存在している場合、下の層にある 同じ名前のファイルをアクセスする方法はありません。 どうしても必要なら、ループバックマウントとユニオンマウントを 組み合せることで、別のパス名を使って下の層のファイルを アクセスできるようにしておくことができます。 .Pp オブジェクトへのアクセスは、それがディレクトリである場合を除き、 通常のファイルシステムのアクセス権チェックのあとで実行されます。 ディレクトリの場合には、アクセスをおこなうユーザは上の層と下の層の 両方のディレクトリのアクセス権を持っていなければなりません (両方のディレクトリが存在している必要があります)。 .Pp いくつかの特別な場合を除き、 .Ar uniondir 中のオブジェクトの作成や変更の要求は上の層に渡されます。 下の層に存在するファイルを書き込み用にオープンしようとすると、 そのファイルの .Em 完全な コピーが上の層に作成され、それから上の層のコピーがオープンされます。 同様に、下の層のファイルを切り詰めてサイズを 0 にしようとすると、 空のファイルが上の層に作成されることになります。 これ以外の、本当に下の層の変更が必要となる操作は失敗し、 .Dv EROFS が返されます。 .Pp ユニオンファイルシステムは、個々のファイルシステムを扱うというよりも 名前空間を扱うものです。ユニオンマウントは .Ar uniondir 以下のディレクトリツリーに再帰的に影響します。 このため .Ar uniondir 以下にマウントされたファイルシステムは、すべて ユニオン効果を持つようになります。これが .Xr mount 8 の .Em union オプションとは異なる点です。 union オプションでは、ユニオン効果はマウントポイントだけに働き、 ファイル名の探索のみに使われます。 .Sh 使用例 コマンド .Bd -literal -offset indent mount -t cd9660 -o ro /dev/cd0a /usr/src mount -t union /var/obj /usr/src .Ed .Pp は、CD-ROM ドライブ .Pa /dev/cd0a を .Pa /usr/src にマウントし、その上に .Pa /var/obj を重ねます。ほとんどの場合、これはソースツリーが実際には CD-ROM 上に あるにもかかわらず、書き込みが可能になるという効果を目的としています。 .Pp コマンド .Bd -literal -offset indent mount -t union -o -b /sys $HOME/sys .Ed .Pp は、ユーザのホームディレクトリの下の .Pa sys ディレクトリに、システムのソースツリーを下の層として重ね合わせます。 これにより、個々のユーザがそのソースツリーに対して個人的な変更を加えて、 新しいカーネルを構築することができるようになります。 他のユーザはその変更に関知しません。 下の層のファイルは、そのまま .Pa /sys からアクセスできることに注意してください。 .Sh 関連項目 .Xr intro 2 , .Xr mount 2 , .Xr unmount 2 , .Xr fstab 5 , .Xr mount 8 , .Xr mount_null 8 .Sh バグ 本ファイルシステムタイプは、まだ完全にはサポートされていません (注: 機能しないということです) し、 実際のところ使用するとシステム上のデータを破壊するかもしれません。 自己責任において使用してください。 猛犬注意。濡れていて滑ります。 危険性を減らすためには、このコードもまた所有者を必要としています - 真面目なハッカーの方はメールを hackers@freebsd.org に送って 引き継ぎの意思を宣言してください。 上の層を支えているファイルシステムで、ホワイトアウトが サポートされていないため、下の層のオブジェクトに対して 削除や名前変更の操作をおこなう方法はありません。 このような操作や、下の層を変更する操作、たとえば .Xr chmod 1 のような操作に対しては、 .Dv EROFS が返されます。 .Pp ユニオンツリーの上で .Xr find 1 を実行すると、上の層にシャドウディレクトリのツリーが 作成されてしまうという副作用があります。 .Sh 歴史 .Nm コマンドは .Bx 4.4 で初めて登場しました。 最初に動作したのは FreeBSD-(要記入) です (訳注: 原文 は FreeBSD-(fill this in))。 .\" 本訳注は horikawa@jp.freebsd.org が 19990115 に記載 diff --git a/ja/man/man8/moused.8 b/ja/man/man8/moused.8 index 2aa25b9727..9f0f64f617 100644 --- a/ja/man/man8/moused.8 +++ b/ja/man/man8/moused.8 @@ -1,578 +1,591 @@ .\" Copyright (c) 1996 .\" Mike Pritchard . 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 Mike Pritchard. .\" 4. Neither the name of the author 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 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. .\" -.\" %Id: moused.8,v 1.18 1998/11/20 11:22:16 yokota Exp % +.\" %Id: moused.8,v 1.18.2.1 1999/06/03 12:43:41 yokota Exp % .\" .\" jpman %Id: moused.8,v 1.3 1997/07/22 16:52:17 horikawa Stab % .Dd December 3, 1997 .Dt MOUSED 8 .Os FreeBSD .Sh 名称 .Nm moused .Nd マウスデータをコンソールドライバに渡す .Sh 書式 .Nm .Op Fl 3DPRcdfs .Op Fl I Ar file .Op Fl F Ar rate .Op Fl r Ar resolution .Op Fl S Ar baudrate .Op Fl C Ar threshold .Op Fl m Ar N=M .Op Fl w Ar N .Op Fl z Ar target .Op Fl t Ar mousetype .Fl p Ar port .Pp .Nm .Op Fl Pd .Fl p Ar port .Fl i Ar info .Sh 解説 マウスデーモン .Nm とコンソールドライバは協力し、 テキストコンソールやユーザプログラムにおけるマウス操作をサポートします。 マウスの仮想化とユーザプログラムへのマウスデータの提供は標準フォーマット にて行われます .Pq Xr sysmouse 4 を御覧ください 。 .Pp マウスデーモンはマウスデータの読みとりのために指定されたポートを監視し、 解釈したデータを ioctl を介してコンソールドライバに渡します。 マウスデーモンは、移動、ボタンの押し/離しイベント、 存在するならばローラやホイールの移動も報告します。 ローラ/ホイールの移動は ``Z'' 軸での移動として報告されます。 .Pp マウスポインタが .Xr vidcontrol 4 によって有効にされていれば、 コンソールドライバはマウスポインタをスクリーンに表示し、 カットとペーストの機能を提供します。 .Xr sysmouse 4 をユーザプログラムがオープンすると、コンソールドライバは マウスデータをこのデバイスに送るので、 ユーザプログラムはこのデータを使用できます。 .Pp マウスデーモンがシグナル .Dv SIGHUP を受けとると、マウスポートを再オープンし、自己を再初期化します。 システムがサスペンドされている間にマウスの挿抜を行なった場合に有用です。 .Pp 以下のオプションがあります: .Bl -tag -width indent .It Fl 3 2 ボタンマウスで 3 番目(中)のボタンをエミュレートします。 物理的なボタンで左と右のものを同時に押すとエミュレートされます。 .It Fl C Ar threshold ダブルクリック速度をボタンクリック間最大インターバルとしてミリ秒で指定します。 このオプションを指定しないと、デフォルト値は 500 ミリ秒が仮定されます。 このオプションは、 テキストモードコンソールのカットとペーストの操作においてのみ有効です。 .Xr sysmouse 4 を介してマウスデータを得るユーザプログラムは影響を受けません。 .It Fl D シリアルポートの DTR を下げます。 このオプションが有効なのは、 .Ar mousesystems がマウスプロトコルとして選択されている場合のみです。 .Ar mousesystems モードで 3 ボタンマウスを操作するためには、 DTR ラインを落とすことが必要かもしれません。 .It Fl F Ar rate サポートされていれば、デバイスのレポート頻度(秒あたりの回数)を設定します。 .It Fl I Ar file .Nm デーモンのプロセス ID を、指定されたファイルに書きます。 このオプションを指定しないと、プロセス ID は .Pa /var/run/moused.pid に格納されます。 .It Fl P シリアルマウス識別時に、 プラグアンドプレイ COM デバイス列挙処理を開始しません。 .Fl i オプションと共にこのオプションが指定された場合、 .Nm はシリアルマウスに関する有用な情報を表示できません。 .It Fl R シリアルポートの RTS を下げます。 このオプションが有効なのは .Ar mousesystems がプロトコルタイプとして、後述する .Fl t オプションで指定されている場合のみです。 これは前記 .Fl D オプションと共によく使用されます。 .Ar mousesystems モードで 3 ボタンマウスを操作するためには、 RTS と DTR のラインを共に下げる必要があるかもしれません。 .It Fl S Ar baudrate シリアルポートの速度を指定します (1200 から 9600)。 全シリアルマウスがこのオプションをサポートするわけではありません。 .It Fl c マウスによっては、中ボタンを押したイベントを、 左右ボタンが押されたかのようにレポートするものがあります。 このオプションはこれを扱うものです。 .It Fl d デバッグ用のメッセージを有効にします。 .It Fl f デーモンにならずに、フォアグラウンドプロセスとして実行します。 テストやデバッグに有用です。 .It Fl i Ar info 指定された情報を表示し終了します。指定可能な情報を以下に示します: .Pp .Bl -tag -compact -width modelxxx .It Ar port ポート(デバイスファイル)名、例えば .Pa /dev/cuaa0 , .Pa /dev/mse0 , .Pa /dev/psm0 です。 .It Ar if インタフェースタイプ: serial, bus, inport, ps/2 です。 .It Ar type プロトコルタイプ。 .Fl t オプションの説明の後でリストされているものか、 ドライバが .Ar sysmouse データフォーマット標準をサポートする場合には .Ar sysmouse です。 .It Ar model マウスモデル。 .Nm コマンドは常にモデルを識別できるわけではありません。 .It Ar all 上記全部。ポート、インタフェース、タイプ、モデルをこの順に一行に表示します。 .El .Pp .Nm は要求された情報を判別できない場合、``unknown'' か ``generic'' を表示します。 .It Fl m Ar N=M 物理ボタン .Ar M に論理ボタン .Ar N を割当てます。 このオプションは任意個数指定可能です。 複数の物理ボタンを単一の論理ボタンに割り当て可能です。 この場合、指定された物理ボタンのいずれかが押されている場合、 論理ボタンが押されていることになります。`=' の周りにスペースを入れてはなりません。 .It Fl p Ar port マウスと通信するためのポートとして .Ar port を使います。 .It Fl r Ar resolution デバイスの解像度を設定します; インチあたりのドット数または、 .Ar low , .Ar medium-low , .Ar medium-high , .Ar high のいずれかです。 全デバイスにてこのオプションがサポートされているわけではありません。 .It Fl s シリアルラインのために 9600 ボーを選びます。 全シリアルマウスがこのオプションをサポートしているわけではありません。 .It Fl t Ar type ポートに接続されているマウスのプロトコルタイプを指定します。 以下に列挙されるタイプを陽に指定するか、 .Ar auto を指定して .Nm コマンドに適切なプロトコルを自動選択させることができます。 コマンドラインにてこのオプションを指定しないと、 .Fl t Ar auto が仮定されます。 通常では、 .Nm コマンドがプロトコルの自動検出ができない場合に必要です .Po Sx マウスデーモンの構成 を参照 .Pc 。 .Pp -また、 このオプションでプロトコルタイプを指定した場合、 前記 .Fl P オプションが暗示され、プラグアンドプレイ COM デバイス列挙処理が無効になります。 .Pp +また、マウスを PS/2 マウスポートに接続している場合、 +常に +.Ar auto +か +.Ar ps/2 +を選択すべきです。 +これは、マウスのブランドやモデルとは関係ありません。 +同様に、マウスをバスマウスポートに接続している場合、 +.Ar auto +か +.Ar busmouse +を選択してください。 +これらのマウスではシリアルマウスプロトコルは動作しません。 +.Pp このオプションにおける有効なタイプを以下に列挙します。 .Pp シリアルマウス: .Bl -tag -compact -width mousesystemsxxx .It Ar microsoft Microsoft シリアルマウスプロトコル。 大抵の 2 ボタンマウスはこのプロトコルを使用します。 .It Ar intellimouse Microsoft IntelliMouse プロトコル。 Genius NetMouse, ASCII Mie Mouse, Logitech MouseMan+, FirstMouse+ もこのプロトコルを使用します。 他のローラ/ホイールを持つマウスもこのプロトコル互換でしょう。 .It Ar mousesystems MouseSystems の 5 バイトプロトコル。 3 ボタンマウスはこのプロトコルを使用するかもしれません。 .It Ar mmseries MM Series マウスプロトコル。 .It Ar logitech Logitech マウスプロトコル。 これは古い Logitech モデルであることに注意。 新しいモデルには .Ar mouseman もしくは .Ar intellimouse を指定します。 .It Ar mouseman Logitech MouseMan と TrackMan のプロトコル。 3 ボタンマウスによってはこのプロトコル互換かもしれません。 MouseMan+ と FirstMouse+ は、このプロトコルではなく、 .Ar intellimouse プロトコルを使用します .It Ar glidepoint ALPS GlidePoint プロトコル。 .It Ar thinkingmouse Kensington ThinkingMouse プロトコル。 .It Ar mmhitab Hitachi タブレットプロトコル。 .It Ar x10mouseremote X10 MouseRemote。 .It Ar kidspad Genius の Kidspad と Easypad のプロトコル。 .El .Pp バスおよび InPort マウス: .Bl -tag -compact -width mousesystemsxxx .It Ar busmouse バスおよび InPort マウスはこのプロトコルのみ使用可能であり、 バスおよび InPort マウスはブランドに依らずこのオプションを 指定する必要があります。 .El .Pp PS/2 マウス: .Bl -tag -compact -width mousesystemsxxx .It Ar ps/2 PS/2 マウスはこのプロトコルのみ使用可能であり、 PS/2 マウスはブランドに依らずこのオプションを 指定する必要があります。 .El .It Fl w Ar N 物理ボタン .Ar N が、ホイールモードボタンとして動作するようにします。 このボタンが押されている間、X 軸および Y 軸の移動は 0 と報告され、 Y 軸の移動は Z 軸の移動に割り付けられます。 後述する .Fl z オプションを使用することにより、 Z 軸の移動を更に仮想ボタンに割り付けることができます。 .It Fl z Ar target Z 軸(ローラ/ホイール)動作を別の軸や仮想ボタンに割り付けます。 有効な .Ar target は以下のいずれかです: .Bl -tag -compact -width x__ .It Ar x .It Ar y X または Y 軸の移動として、検知した Z 軸移動を報告します。 .It Ar N 仮想ボタン .Ar N および .Ar N+1 を押したイベントとして、検知した負/正の Z 軸移動をそれぞれ報告します。 物理ボタン .Ar N と .Ar N+1 が存在する必要はありません。 論理ボタンへの割り付けは Z 軸移動を仮想ボタンへ割り付けた後に行われます。 .El .El .Ss マウスデーモンの構成 まず、使用予定マウスのインタフェースタイプを知ることが必要です。 これはマウスのコネクタを見れば分かります。 シリアルアウスは D-Sub の 9 ピンまたは 25 ピンのメスです。 バスおよび InPort のマウスは D-Sub 9 ピンのオスか丸い DIN 9 ピンコネクタです。 PS/2 マウスは小さくて丸い DIN 6 ピンコネクタです。 マウスによってはコネクタを別の形状に変換可能なコネクタが附属しています。 このようなアダプタを使用する場合には、 マウスから一番遠いコネクタの形状を見てください。 .Pp 次に決めねばならないことは、インタフェースのために使用するポートです。 バス、InPort、PS/2 マウスでは、選択肢はありません: バスおよび InPort マウスは常に .Pa /dev/mse0 を使用し、 PS/2 マウスは常に .Pa /dev/psm0 を使用します。 シリアルマウスの場合、接続可能なポートが複数ありえます。 多くの人が組み込みのシリアルポート .Pa /dev/cuaa0 をマウスに割当てます。 シンボリックリンク .Pa /dev/mouse でマウスの実際のポートを指すようにして、 どのマウスポートか後で簡単に分かるようにするのが良いかもしれません。 .Pp 次に適切なマウスプロトコルを選択します。 .Nm コマンドはマウスタイプを自動決定可能かもしれません。 .Nm コマンドを .Fl i オプションを付けて実行し、表示を見ます。 コマンドがプロトコルタイプを識別した場合、あなたは何も調べる必要はありません。 プロトコルタイプを指定せずにデーモンを起動可能です .Po Sx 使用例 を参照 .Pc 。 .Pp コマンドは、マウスドライバが .Ar sysmouse プロトコルをサポートする場合、 .Ar sysmouse と表示するかもしれません。 .Pp 表示される .Dv type と .Dv model は、対象のポインティングデバイスの製品名では必ずしもありませんが、 互換性のあるデバイスの名前でしょう。 .Pp .Fl i オプションがなにも表示しない場合、 .Nm に対して .Fl t オプションを使用し、プロトコルタイプを指定する必要があります。 予測して試行する必要があります。 以下に経験則を示します: .Pp .Bl -tag -compact -width 1.X .It 1. バスおよび InPort マウスはブランドに依らず .Ar busmouse プロトコルを使用します .It 2. PS/2 マウスはブランドに依らず .Ar ps/2 プロトコルを使用します .It 3. ほとんどの 2 ボタンシリアルマウスは .Ar microsoft プロトコルをサポートします。 .It 4. 3 ボタンシリアルマウスは .Ar mousesystems プロトコルで動作するかもしれません。動作しない場合には、 三番目(中)ボタンが機能せずに .Ar microsoft プロトコルで動作するでしょう。 3 ボタンシリアルマウスは、期待通り三番目のボタンが動作しつつ .Ar mouseman プロトコルで動作するかもしれません。 .It 5. 3 ボタンマウスには小さなスイッチが付いていて、 ``MS'' と ``PC'' または ``2'' と ``3'' とで選択できるできるようになっている かもしれません。 ``MS'' と ``2'' は通常 .Ar microsoft プロトコルを意味します。 ``PC'' と ``3'' は .Ar mousesystems プロトコルを選択します。 .It 6. マウスにローラやホイールが付いている場合、 .Ar intellimouse プロトコル互換でしょう。 .El .Pp マウスのために選択したプロトコルタイプが正しいかどうかテストする目的で、 現在の仮想コンソールでマウスポインタを有効にします。 .Pp .Dl vidcontrol -m on .Pp マウスデーモンをフォアグラウンドで開始します。 .Pp .Dl moused -f -p Ar _selected_port_ -t Ar _selected_protocol_ .Pp マウスポインタがマウスの移動に伴い、 正しく移動することを確認してください。 そして、カットとペーストの機能を左、右、中のボタンを使用して確認してください。 ^C をタイプすると、コマンドは停止します。 .Ss 複数のマウス システムに接続したマウスと同じ数だけ、マウスデーモンを同時実行可能です; 一つのマウスデーモンが一つのマウスに対応します。 ラップトップコンピュータ組み込みの PS/2 ポインティングデバイスを移動中使用し、 オフィスではドッキングステーション接続のシリアルマウスを使用する 場合に有用です。 マウスデーモンを二つ実行し、アプリケーションプログラム .Pq 例えば X Window System に .Xr sysmouse を使用させます。 するとアプリケーションプログラムは常に両マウスからマウスデータを受け取ります。 シリアルマウスが取り付けられていない場合、 対応するマウスデーモンは移動やボタン状態の変化を検出しませんので、 アプリケーションプログラムは PS/2 マウスのデーモンからのマウスデータ のみを使います。 一方この構成で両方のマウスを接続し同時に両方を動かした場合、 マウスの移動をすべて組み合わせたようにマウスポインタがスクリーン上を移動します。 .Sh 関連ファイル .Bl -tag -width /dev/consolectl -compact .It Pa /dev/consolectl コンソール制御デバイス .It Pa /dev/mse%d バスおよび InPort マウスのドライバ .It Pa /dev/psm%d PS/2 マウスドライバ .It Pa /dev/sysmouse 仮想化されたマウスドライバ .It Pa /dev/ttyv%d 仮想コンソール .It Pa /var/run/moused.pid 現在実行中の .Nm デーモンのプロセス ID .It Pa /var/run/MouseRemote X10 MouseRemote のイベントのための UNIX ドメインストリームソケット .El .Sh 使用例 .Pp .Dl moused -p /dev/cuaa0 -i type .Pp .Nm コマンドにシリアルポート .Pa /dev/cuaa0 に接続されたマウスのプロトコルタイプを識別させます。 成功すると、コマンドはタイプを表示しますが、 失敗すると ``unknown'' が表示されます。 .Pp .Dl moused -p /dev/cuaa0 .Dl vidcontrol -m on .Pp .Nm が指定されたポートのマウスプロトコルタイプを識別可能な場合、 .Fl t オプション無してデーモンを起動可能であり、 前記のようにマウスポインタをテキストコンソール上で有効にできます。 .Pp .Dl moused -p /dev/mouse -t microsoft .Dl vidcontrol -m on .Pp シリアルポート .Pa /dev/mouse に対してマウスデーモンを起動します。 プロトコルタイプは .Ar microsoft を .Fl t オプションにて陽に指定しています。 .Pp .Dl moused -p /dev/mouse -m 1=3 -m 3=1 .Pp 物理ボタン 3 (右ボタン) を論理ボタン 1 (論理的に左) に、 物理ボタン 1 (左ボタン) を論理ボタン 3 (論理的に右) に、 それぞれ割当てます。 左右のボタンを事実上交換します。 .Pp .Dl moused -p /dev/mouse -t intellimouse -z 4 .Pp Z 軸(ローラ)における負の移動をボタン 4 が押されたものとし、 Z 軸における正の移動をボタン 5 が押されたものとします。 .Sh 警告 .Nm コマンドは現在別のコンソールドライバ .Xr pcvt 4 では動作しません。 .Pp バッドデバイスの多くは、 ユーザがパッド表面を ``タップ'' した場合に最初の(左) ボタンが 押されたものとします。 また、ALPS GlidePoint モデルによっては、 タップ動作を 4 番目のボタンのイベントとして扱います。 このようなモデルでは、オプション ``-m 1=4'' を使用して、 他のパッドデバイスと同様の効果を得られます。 .Pp 仮想コンソールでのカットとペーストの機能は、 マウスに 3 ボタンあることを仮定しています。 論理ボタン 1 (論理的に左) は、 コンソールのテキスト領域を選択してカットバッファにコピーします。 論理ボタン 3 (論理的に右) は、 選択された領域を拡張します。 論理ボタン 2 (論理的に中) は、 選択されたテキストをテキストカーソル位置にペーストします。 マウスに 2 つしかボタンが無い場合、中央の `ペースト' ボタン は使用できません。 ペースト機能を使用するためには、 .Fl 3 オプションを使用して中ボタンをエミュレートするか、 .Fl m オプションを ``-m 2=3'' のように使用して 物理右ボタンに論理中ボタンを割当てます。 .Sh 関連項目 .Xr kill 1 , .Xr vidcontrol 1 , .Xr keyboard 4 , .Xr mse 4 , .Xr pcvt 4 , .Xr psm 4 , .Xr screen 4 , .Xr sysmouse 4 .Sh 規格 .Nm コマンドは ``Plag and Play External COM Device Specification'' の一部を サポートし、PnP シリアルマウスをサポートします。 しかしながら、シリアルマウスごとに仕様充足の度合が異なりますので、 標準のバージョン 1.0 に完全に従ってはいません。 このように厳密さを欠いた方法でも、シリアルマウスの適切なプロトコルタイプ を常に決定できるわけではありません。 .Sh 作者 .Nm コマンドは、 .An Michael Smith Aq msmith@FreeBSD.org によって書かれました。 このマニュアルは、 .An Mike Pritchard Aq mpp@FreeBSD.org によって書かれました。 コマンドとマニュアルページを、 .An Kazutaka Yokota Aq yokota@FreeBSD.org が更新しました。 .Sh 歴史 .Nm コマンドは、 .Fx 2.2 から導入されました。 diff --git a/ja/man/man8/ppp.8 b/ja/man/man8/ppp.8 index a60c8887dd..a625533466 100644 --- a/ja/man/man8/ppp.8 +++ b/ja/man/man8/ppp.8 @@ -1,4700 +1,4727 @@ -.\" %Id: ppp.8,v 1.142.2.6 1999/05/02 08:59:50 brian Exp % +.\" %Id: ppp.8,v 1.142.2.7 1999/06/08 11:59:49 brian Exp % +.\" .\" jpman %Id: ppp.8,v 1.4 1997/06/08 18:41:58 saeki Stab % .\" WORD: expect string 受信待ち文字列 (chat.8) .\" WORD: negotiation 交渉 .Dd 20 September 1995 .nr XX \w'\fC00' .Os FreeBSD .Dt PPP 8 .Sh 名称 .Nm ppp .Nd PPP (Point to Point Protocol) (別名 user-ppp) .Sh 書式 .Nm .Oo .Fl auto | .Fl background | .Fl ddial | .Fl direct | .Fl dedicated .Oc .Op Fl alias .Op Ar system Ns .No ... .Sh 解説 本プログラムは、ユーザプロセスとして動作する .Em PPP パッケージです。 .Em PPP は通常、( .Xr pppd 8 でそうなっているように) カーネルの一部として実装されますが、 そのため、デバッグや動作の変更が少々難しい場合があります。 それに対し、この実装ではトンネルデバイスドライバ (tun) を利用して、 ユーザプロセスで .Em PPP を実現しています。 .Sh 主な特徴 .Bl -diag .It 対話的なユーザインタフェースを提供 コマンドモードで利用する場合、ユーザがコマンドを 入力することで、簡単にリモートコンピュータとの接続の確立、 接続状態の確認、 接続の切断を行うことができます。 オプションとして、セキュリティ確保のために すべての機能をパスワードで保護することができます。 .It 手動と自動でのダイヤルをサポート 対話モードでは、直接モデムと通信できるように .Dq term コマンドが用意されています。 モデムがリモートホストと接続されて、 .Em PPP での通信が始まったら、 .Nm はそれを検出して自動的にパケットモードに移行します。 ひとたびリモートホストとの接続に必要なコマンドシーケンスがわかったら、 後々の接続を簡単にするため、必要なダイヤル手順やログイン手順を定義した チャットスクリプトを書くことができます。 .It オンデマンドでのダイヤルアップをサポート .Fl auto モード (自動モード) では .Nm はデーモンとして動作し、 .Em PPP リンクを通して送られるパケットを待ちうけます。 パケットを検出すると、デーモンが自動的にダイヤルを行って接続を確立します。 .Fl ddial モード (直接ダイヤルモード) でも ほぼ同様に、自動ダイヤルと接続の確立を行います。 しかしながらこのモードは、送るべきパケットが存在しない場合にも、 リンクが切れていることを検出するといつでもリモートへダイヤルするという点が auto モードと異なります。 このモードは、電話料金よりも常時接続されていることが重視される場合に有用です。 3 番目の .Fl dedicated モード (専用線モード) も利用可能です。 このモードは 2 つのマシン間の専用線を対象にしています。 専用線モードでは .Nm は自発的に動作を終了することはありません - 終了するには .Dq quit all コマンドを診断ソケットを介して送る必要があります。 .Dv SIGHUP は LCP の再交渉を強要し、 .Dv SIGTERM は終了を強要します。 .It クライアントコールバックをサポート .Nm は標準 LCP コールバックプロトコルならびに Microsoft コールバック制御プロトコル (ftp://ftp.microsoft.com/developr/rfc/cbcp.txt) を使用できます。 .It パケットエイリアシングをサポート パケットエイリアシング (別名: IP マスカレード) により、 未登録でプライベートなネットワーク上のコンピュータからも インターネットにアクセスすることが可能です。 .Em PPP ホストはマスカレードゲートウェイとして動作します。 送信パケットの IP アドレスと TCP や UDP のポート番号は どちらもエイリアスされ、返信パケットではエイリアスが元に戻されます。 .It バックグラウンド PPP 接続をサポート バックグラウンドモードでは、接続を確立するのに成功した場合に .Nm はデーモンになります。 それ以外の場合はエラーで終了します。 これにより、 接続が成功裏に確立した場合のみコマンドを実行するようなスクリプト をセットアップすることが出来ます。 .It サーバとしての PPP 接続をサポート ダイレクトモードでは、 .Nm は標準入力/標準出力からの .Em PPP 接続を受け入れるサーバとして動作させることができます。 .It PAP と CHAP (rfc 1994) による認証をサポート PAP もしくは CHAP を用いることにより、Unix スタイルの .Xr login 1 手続きをスキップし、 .Em PPP プロトコルを代りに認証に使用することが可能です。 相手が Microsoft CHAP 認証を要求し、かつ .Nm が DES をサポートするようにコンパイルされている場合、適当な MD4/DES 応答がなされます。 .It RADIUS (rfc 2138) 認証をサポート PAP と CHAP の拡張である .Em \&R Ns No emote .Em \&A Ns No ccess .Em \&D Ns No ial .Em \&I Ns No n .Em \&U Ns No ser .Em \&S Ns No ervice は、集中データベースまたは分散データベースに、 ユーザごとに異なる接続特性を含んだ認証情報を、格納できます。 コンパイル時に .Pa libradius が利用可能な場合、利用するように設定すると、 .Nm はこれを使用して .Em RADIUS 要求を作成します。 .It 代理 arp (Proxy Arp) をサポート .Nm が相手のために 1 個以上の代理 arp エントリを作成するように、設定可能です。 LAN 上の各マシンでの設定を行わずに、 相手側から LAN へのルーティングを可能とします。 .It パケットのフィルタリングをサポート ユーザは 4 種類のフィルタを定義できます。 .Em in は受信パケットに対するフィルタです。 .Em out は送信パケットに対するフィルタです。 .Em dial はダイヤルを行うきっかけとなるパケットを定義するフィルタで、 .Em alive は接続を保持するためのパケットを定義するフィルタです。 .It トンネルドライバは bpf (Berkeley Packet Filter) をサポート .Em PPP リンクを流れるパケットを調べるために、 .Xr tcpdump 1 を使うことができます。 .It PPP オーバ TCP をサポート デバイス名が .Em host Ns No : Ns Em port 形式で指定された場合、 .Nm は通常のシリアルデバイスを使うのではなく、データ転送のための TCP 接続を開きます。 .It "IETF ドラフトの Predictor-1 (rfc 1978) と DEFLATE (rfc 1979) 圧縮をサポート .Nm は VJ 圧縮の他に Predictor-1 と DEFLATE 圧縮もサポートしています。 モデムは通常 (例えば v42.bis のような) 組み込みの圧縮機能を持っており、 その結果システムは .\"(訳注)「転送データレートよりも」をここにいれたいと考えています。 .\" 2.2.1R 対象(1997/04/02) Takeshi MUTOH より高いデータレートで通信できます。 これは一般には良いことですが、より高速のデータによってシリアル回線からの 割り込みが増加します。 システムはこの割り込みをモデムと通信して処理しなくてはならないため、 システムの負荷と遅延時間が増加することになります。 VJ 圧縮とは異なり、Predictor-1 と DEFLATE 圧縮はリンクを通る .Em すべての ネットワークトラフィックをあらかじめ圧縮しておくことで、オーバヘッドを 最小にします。 .It Microsoft の IPCP 拡張をサポート Microsoft の .Em PPP スタックを使用するクライアント (つまり Win95, WinNT) との間で ネームサーバのアドレスと NetBIOS ネームサーバのアドレスを 交渉することができます。 .It マルチリンク PPP をサポート (rfc 1990) 接続先への複数の物理的な回線をオープンし、すべてのリンクの 帯域幅を合わせてより高いスループットを得ることができます。 .El .Sh パーミッション .Nm はユーザ .Dv root 、グループ .Dv network 、パーミッション .Dv 04554 でインストールされます。 デフォルトでは .Nm は、起動したユーザ ID が 0 でない場合には実行しません。 これは .Dq allow users コマンドを .Pa /etc/ppp/ppp.conf に記載することにより変更することが可能です。 通常ユーザとして実行する場合には、 .Nm はユーザ ID 0 に変わり、システムの経路表の変更と、 システムロックファイルの作成と、 ppp の設定ファイルの読み込みを行います。 すべての外部コマンド ("shell" や "!bg" で実行されます) は、 .Nm を起動したユーザ ID で実行されます。 ユーザ ID 0 にて正確になにが行われているのかに興味がある場合には、 ログ機能の .Sq ID0 を参照してください。 .Sh 始める前に 次のコマンドラインスイッチを .Nm ppp は理解します: .Bl -tag -width XXX -offset XXX .It Fl auto .Nm は tun インタフェースをオープンし、これを設定した後バックグラウンドになります。 出力データが tun インタフェース上で検出されるまでリンクはアップせず、 出力データが tun インタフェース上で検出されると .Nm はリンクをアップしようとします。 .Nm がリンクをアップしようとしている間に受信したパケット (最初のものを含みます) は、デフォルトで 2 分間キューにとどまります。 後述の .Dq set choked コマンドを参照してください。 .Pp コマンドラインには少なくとも 1 つの .Dq system を指定する必要があり (後述)、 インタフェース設定時に使用する相手の IP アドレスを指定する .Dq set ifaddr を、システムプロファイルで実行する必要があります。 通常、 .Dq 10.0.0.1/0 のようなものが適切です。例としては、 .Pa /usr/share/examples/ppp/ppp.conf.sample の .Dq pmdemand システムを参照してください。 .It Fl background この場合、 .Nm は相手との接続をすぐに確立しようとします。 成功すると、 .Nm はバックグラウンドになり、親プロセスは終了コード 0 を返します。 失敗すると、 .Nm は非 0 の結果で終了します。 .It Fl direct これは入力接続を受け付けるために使用します。 .Nm は .Dq set device 行を無視し、リンクにデスクリプタ 0 を使用します。 .Pp コールバックの設定を行うと、ダイヤルバック時に .Nm は .Dq set device 情報を使用します。 .It Fl dedicated このオプションは、専用線で接続されたマシンのためにデザインされています。 .Nm はデバイスを常にオープンに保ち、設定チャットスクリプトは一切使用しません。 .It Fl ddial .Fl auto モードと等価ですが、なんらかの理由でリンクが落ちた場合に .Nm が再度リンクをアップすることが違います。 .It Fl interactive これは no-op であり、前述のフラグがどれも指定されなかった場合の動作を行います。 .Nm -はコマンドラインで指定されたシステムをロードし、対話プロンプトを提供します。 +はコマンドラインで指定されたセクションをロードし、対話プロンプトを提供します。 .It Fl alias このフラグは .Nm のモードを制御しません。 .Dq enable alias yes と等価です。さらに、 .Fl auto もまた指定されている場合、暗黙的に .Dq enable iface-alias が実行されます。 詳細については後述しているものを参照してください。 .Pp IP エイリアシングを有効にすると、 .Nm は、内部 LAN 上の全マシンに対する NAT もしくはマスカレーディングエンジンとして動作します。詳細は .Xr libalias 3 を参照してください。 .El .Pp -さらに、1 つ以上の system をコマンドライン上に指定可能です。 -.Sq system -は -.Pa /etc/ppp/ppp.conf -の設定エントリです。起動時に +さらに、1 つ以上の設定エントリ +.Pq Pa /etc/ppp/ppp.conf で指定されます +をコマンドライン上に指定可能です。 +起動時に .Nm は .Pa /etc/ppp/ppp.conf から .Dq default システムを読み込み、その後コマンドラインで指定した各 system を読み込みます。 .Pp .Fl auto , .Fl background , .Fl ddial , .Fl direct , .Fl dedicated , .Fl interactive のいずれか 1 つのスイッチのみ指定可能です。 .Nm の .Sq モード は、 .Dq set mode コマンド (後述) を使用することで後で変更可能です。 .Pp 以降、対話モードの使用方法について説明します。 .Pp 最初に .Nm を実行する時には、いくつかの初期設定を整える必要があります。 .Bl -bullet .It カーネルにトンネルデバイスが含まれていなければ なりません (GENERIC カーネルではデフォルトで 1 つ含まれます)。 もし含まれていない場合や複数の tun インタフェースが必要な場合、 次の行をカーネル設定ファイルに追加して、 カーネルを再構築する必要があります: .Pp .Dl pseudo-device tun N .Pp ここで .Ar N は .Em PPP 接続を行いたい最大の数です。 .It .Pa /dev ディレクトリにトンネルデバイスのエントリ .Pa /dev/tunN があるかどうかを調べてください。 ここで .Sq N は、0 から始まる tun デバイスの番号です。 もし無いようならば、"sh ./MAKEDEV tunN" を実行すれば作ることができます。 これにより 0 から .Ar N までの tun デバイスが作成されます。 .It あなたのシステムの .Pa /etc/group ファイルに .Dq network グループがあり、そのグループが .Nm を使うと想定されるすべてのユーザ名を含んでいることを確かめてください。 詳細は .Xr group 5 マニュアルページを参照してください。また、これらのユーザは .Pa /etc/ppp/ppp.conf ファイルで .Dq allow users コマンドを使用してアクセス権が与えられなければなりません。 .It ログファイルを作成します。 .Nm は .Xr syslog 3 を使用して情報を記録します。通常のログファイル名は .Pa /var/log/ppp.log です。 このファイルに出力を行うためには、次の行を .Pa /etc/syslog.conf ファイルに記述してください: .Bd -literal -offset indent !ppp *.*/var/log/ppp.log .Ed .Pp .Nm の実行形式にリンクを作成することにより、複数の .Em PPP ログファイルを持つことが可能です: .Pp .Dl # cd /usr/sbin .Dl # ln ppp ppp0 .Pp として .Pa /etc/syslog.conf で .Bd -literal -offset indent !ppp0 *.*/var/log/ppp0.log .Ed .Pp とします。 .Pa /etc/syslog.conf を更新した後に、 .Xr syslogd 8 に .Dv HUP シグナルを送ることをお忘れなく。 .It 厳密には .Nm の操作とは関係ありませんが、リゾルバが正しく働くように設定した方が 良いでしょう。 これは .Pq Xr named 8 を用いて ローカルな DNS サーバを設定するか、もしくは .Pa /etc/resolv.conf ファイルに適切な .Sq name-server 行を加えることで行われます。 詳細は .Xr resolv.conf 5 のマニュアルを参照してください。 .Pp 他の方法として、もし接続先がサポートしている場合には .Nm が接続先にネームサーバのアドレスを尋ねて、自動的に .Pa /etc/resolv.conf を更新することができます。詳細は後述の .Dq enable dns コマンドを参照してください。 .El .Sh 手動ダイヤル 次の例では、あなたのマシン名が .Dv awfulhak であるとして説明します。 .Nm を引数無しで起動すると (前述の .Sx パーミッション 参照) 次のプロンプトが表示されます: .Bd -literal -offset indent ppp ON awfulhak> .Ed .Pp プロンプトの .Sq ON の部分は常に大文字であるべきです。ここが小文字の場合、 .Dq passwd コマンドを使用してパスワードを入力しなければならないことを意味します。 実行中の .Nm に接続し、 まだ正しいパスワードを入力していない場合にのみこのような状態になります。 .Pp .Bd -literal -offset indent ppp ON awfulhak> set device /dev/cuaa0 ppp ON awfulhak> set speed 38400 .Ed .Pp 通常ハードウェアフロー制御 (CTS/RTS) を使用します。 しかし、特定の場合 (特定の PPP 可能な端末サービスに直接接続している場合に起り得ます)、 .Nm が通信リンクにデータを書き込もうとしたときに、 永遠に来ない CTS (送信時にクリア) シグナルを待つことにより .Nm がハングします。 直通線で接続できない場合は、 .Dq set ctsrts off で CTS/RTS をオフにしてみてください。 これが必要な場合、後述の .Dq set accmap の記述も参照してください - .Dq set accmap 000a0000 も必要かもしれません。 .Pp 通常、パリティは .Dq none に設定します。これが .Nm ppp のデフォルトです。 パリティはどちらかというと古風なエラーチェック機構であり、 今となっては使用しません。 最近のモデムは各自のエラーチェック機構を持っており、 ほとんどのリンク層プロトコル ( .Nm はこれです) はより信頼できるチェック機構を使用します。 パリティは相対的に大きなオーバヘッドを持ちますので (トラフィックが 12.5% 増加します)、 .Dv PPP がオープンされると常に無効化 .Pq set to Dq none されます。 しかし、ISP (インターネットサービスプロバイダ) によっては、 特定のパリティ設定を接続時 ( .Dv PPP がオープンする前) に使用するものがあります。 特に、Compuserve はログイン時に偶数パリティに固執しています: .Bd -literal -offset indent ppp ON awfulhak> set parity even .Ed .Pp ここで、現在のモデム設定がどのようになっているか見られます: .Bd -literal -offset indent ppp ON awfulhak> show modem Name: deflink State: closed Device: N/A Link Type: interactive Connect Count: 0 Queued Packets: 0 Phone Number: N/A Defaults: Device List: /dev/cuaa0 Characteristics: 38400bps, cs8, even parity, CTS/RTS on Connect time: 0 secs 0 octets in, 0 octets out Overall 0 bytes/sec ppp ON awfulhak> .Ed .Pp ここでは、直接モデムと通信するために term コマンドを使用可能です: .Bd -literal -offset indent ppp ON awfulhak> term at OK atdt123456 CONNECT login: myispusername Password: myisppassword Protocol: ppp .Ed .Pp 相手が .Em PPP で話しはじめると、 .Nm はそれを自動的に検出してコマンドモードに戻ります。 .Bd -literal -offset indent ppp ON awfulhak> # リンクは確立していません Ppp ON awfulhak> # 接続完了、LCP 完了 PPp ON awfulhak> # 認証完了 PPP ON awfulhak> # IP アドレス合意完了 .Ed .\" your end で「あなた側」 .Pp このようにならない場合、接続先がこちらの開始交渉を 待っている可能性があります。 強制的に .Nm に接続先への PPP 設定パケットの送出を開始させるためには .Dq ~p コマンドを使い、端末モードを抜けてパケットモードに移行して下さい。 .Pp それでもログインプロンプトが得られない場合、 Unix 的なログイン/パスワード認証ではなく、PAP または CHAP の認証を、 相手は要求している可能性が非常に高いです。 正しく設定するためには、プロンプトに戻り、 認証用の名前とキーを設定し、再度接続します: .Bd -literal -offset indent ~. ppp ON awfulhak> set authname myispusername ppp ON awfulhak> set authkey myisppassword ppp ON awfulhak> term at OK atdt123456 CONNECT .Ed .Pp ここで再度、交渉開始するように ppp に指定できます: .Bd -literal -offset indent ~p ppp ON awfulhak> # リンクは確立していません Ppp ON awfulhak> # 接続完了、LCP 完了 PPp ON awfulhak> # 認証完了 PPP ON awfulhak> # IP アドレス合意完了 .Ed .Pp これで接続されました! プロンプトの .Sq PPP が大文字に変化して、接続されたことを知らせます。もし 3 つの P の内 いくつかだけが大文字になっている場合には、すべての文字が大文字もしくは 小文字になるまで待ってください。もし小文字に戻った場合には、それは .Nm が接続先との交渉に成功しなかったことをを意味します。 この時点での問題解決の第一歩としては、次のようにし、再挑戦します。 .Bd -literal -offset indent ppp ON awfulhak> set log local phase lcp ipcp .Ed .Pp 詳細は、下記の .Dq set log コマンドの説明を参照してください。 この時点でも失敗する場合、 ログを有効にして再挑戦することが非常に重要です。 プロンプトの変化に注意し、あなたを助けてくれる人に報告することもまた重要です。 .Pp リンクが確立したら、show コマンドを使用することで、 どのように事態が進行しているのかが分ります: .Bd -literal -offset indent PPP ON awfulhak> show modem * モデム関連の情報がここに表示されます * PPP ON awfulhak> show ccp * CCP (圧縮) 関連の情報がここに表示されます * PPP ON awfulhak> show lcp * LCP (回線制御) 関連の情報がここに表示されます * PPP ON awfulhak> show ipcp * IPCP (IP) 関連の情報がここに表示されます * PPP ON awfulhak> show link * (高レベル) リンク関係の情報がここに表示されます * PPP ON awfulhak> show bundle * (高レベル) 論理接続関係の情報がここに表示されます * .Ed .Pp この時点で、マシンは接続先に対するホスト単位の経路 (host route) を持っています。 これはリンクの相手のホストとのみ接続可能であるという意味です。 デフォルト経路のエントリ (他の経路エントリを持たずに、全パケットを .Em PPP リンクの相手に送る ように、あなたのマシンに指示します)を追加したければ、 次のコマンドを入力してください。 .Bd -literal -offset indent PPP ON awfulhak> add default HISADDR .Ed .Pp .Sq HISADDR という文字列は、相手側の IP アドレスを表します。 既存の経路のために失敗する場合には、 .Bd -literal -offset indent PPP ON awfulhak> add! default HISADDR .Ed .Pp を用いることで既存の経路を上書きできます。 このコマンドは、実際に接続を作成する前に実行可能です。 新しい IP アドレスを接続時に交渉する場合、これに従って .Nm がデフォルト経路を更新します。 .Pp ここで、(ping, telnet, ftp のような) ネットワークアプリケーションを、 あなたのマシンの別のウィンドウまたは端末で使用可能です。 現在の端末を再利用したい場合、 .Nm をバックグラウンドモードにするために、 標準のシェルのサスペンドとバックグラウンドコマンド (通常 .Dq ^Z の後に .Dq bg ) を使用可能です。 .Pp 使用可能コマンドの詳細は .Sx PPP コマンドリスト の節を参照してください。 .Sh 自動ダイヤル 自動ダイヤルを行うためには、ダイヤルとログインのチャットスクリプトを 用意しなければなりません。定義の例は .Pa /usr/share/examples/ppp/ppp.conf.sample を見てください ( .Pa /etc/ppp/ppp.conf の書式は非常に簡単です)。 各行は単一のコメント、インクルード、ラベル、コマンドのいずれかを含みます。 .Bl -bullet .It .Pq Dq # 文字で始まる行は、コメントとして扱われます。 コメント行と認識した場合、先行する空白は無視されます。 .It インクルードは語 .Sq !include から始まる行です。 1 つの引数 - インクルードするファイル - を持つ必要があります。 古いバージョンの .Nm との互換性のために、 .Dq !include ~/.ppp.conf を使用したいかもしれません。 .It ラベルは行頭から始まり、最後にコロン .Pq Dq \&: が続かなければなりません。 .It コマンド行は、最初の桁に空白かタブを含む必要があります。 .El .Pp .Pa /etc/ppp/ppp.conf ファイルには少なくとも .Dq default セクションが存在する必要があります。 このセクションは常に実行されます。 このファイルには 1 つ以上のセクションが含まれます。 セクション名は用途に応じて付けます。例えば、 .Dq MyISP はあなたの ISP を表したり、 .Dq ppp-in は入力の .Nm 構成を表したります。 .Nm ppp を立ち上げる際に、接続先のラベル名を指定可能です。 .Dq default ラベルに関係づけられたコマンドが実行されてから、 接続先ラベルに関連づけられたコマンドが実行されます。 .Nm を引数無しで起動した場合、 .Dq default だけは実行されます。load コマンドを使用して、 .Pa /etc/ppp/ppp.conf のセクションを手動でロード可能です: .Bd -literal -offset indent -PPP ON awfulhak> load MyISP +ppp ON awfulhak> load MyISP .Ed .Pp +セクションロード後には、 +.Nm +はいかなる動作も行わないことに注意してください。 +これは、コマンドラインでラベルを指定した結果でも、 +.Dq load +コマンドを使用した結果でも同様です。 +設定ファイル中で、そのラベルに対して指定されたコマンドのみが、実行されます。 +一方、 +.Nm +を +.Fl background , +.Fl ddial , +.Fl dedicated +のいずれかのスイッチ付きで起動したときには、 +.Nm +が接続を確立するように、リンクモードが指示します。 +更なる詳細については、後述の +.Dq set mode +コマンドを参照してください。 +.Pp ひとたび接続が確立したなら、プロンプトの .Sq ppp は .Sq PPP に変わります: .Bd -literal -offset indent # ppp MyISP \&... ppp ON awfulhak> dial Ppp ON awfulhak> PPp ON awfulhak> PPP ON awfulhak> .Ed .Pp Ppp プロンプトは .Nm が認証フェースに入ったことを示します。PPp プロンプトは .Nm がネットワークフェーズに入ったことを示します。PPP プロンプトは .Nm がネットワーク層プロトコルの交渉に成功し、使用可能状態にあることを示します。 .Pp もし .Pa /etc/ppp/ppp.linkup が利用可能ならば、 .Em PPP 接続が確立された時に、その内容が実行されます。 接続が確立された後のバックグラウンドでのスクリプト実行については、 提供されている .Pa /usr/share/examples/ppp/ppp.conf.sample (使用可能な置換文字列については、後述の .Dq shell と .Dq bg を参照してください) の .Dq pmdemand の例を参照してください。 同様に、接続が閉じられると、 .Pa /etc/ppp/ppp.linkdown ファイルの内容が実行されます。 これらのファイルのフォーマットは .Pa /etc/ppp/ppp.conf と同じです。 .Pp 以前のバージョンの .Nm では、デフォルト経路のような経路は .Pa ppp.linkup ファイルで追加し直す必要がありました。 現在では .Nm は、 .Dv HISADDR もしくは .Dv MYADDR が変化したときに、自動的に .Dv HISADDR もしくは .Dv MYADDR 文字列を含むすべての経路を更新する .Sq スティッキー経路 をサポートします。 .Sh バックグラウンドダイヤル .Nm を使って非対話的に接続を確立したい場合 (例えば .Xr crontab 5 エントリや .Xr at 1 ジョブから使うような場合) には、 .Fl background オプションを使います。 .Fl background が指定された場合、 .Nm はすぐに接続を確立しようとします。 複数の電話番号が指定された場合には、各電話番号が 1 回づつ試されます。 これらに失敗すると、 .Nm は即座に終了し、0 でない終了コードを返します。 接続に成功すると .Nm はデーモンになり、呼び出し側に終了コード 0 を返します。 デーモンは、リモートシステムが接続を終了した場合、 もしくは .Dv TERM シグナルを受け取った場合に、自動的に終了します。 .Sh ダイヤルオンデマンド デマンドダイヤル機能は .Fl auto または .Fl ddial オプションにて有効にされます。この場合にも .Pa /etc/ppp/ppp.conf で定義された接続先のラベルを指定しなければなりません。 これには、リモート接続先の IP アドレスを指定するための .Dq set ifaddr コマンドも書かれていなければなりません ( .Pa /usr/share/examples/ppp/ppp.conf.sample を参照してください)。 .Bd -literal -offset indent # ppp -auto pmdemand .Ed .Pp .Fl auto または .Fl ddial が指定された時に .Nm はデーモンとして動作しますが、 .Pa /etc/ppp/ppp.conf 中で .Dq set server コマンドを使うことで、設定を確認したり変更したりすることができます。 .Po たとえば、 .Dq set server +3000 mypasswd とすると .Pc 次のように診断ポートを通じて接続することができます。 .Bd -literal -offset indent # pppctl 3000 (tun0 を仮定) Password: PPP ON awfulhak> show who tcp (127.0.0.1:1028) * .Ed .Pp .Dq show who コマンドは現在 .Nm 自身に接続しているユーザの一覧を表示します。診断ソケットが閉じられる、 もしくは異なるソケットに変更された場合、すべての接続は即座に終了します。 .Pp .Fl auto モードにて 送信パケットが検出された時、 .Nm は (チャットスクリプトに基づいて) ダイヤルを行い、 通信相手に接続しようとします。 .Fl ddial モードでは回線がダウンしていることが確認された場合にはいつでも ダイヤルが行われます。 接続に失敗したら、デフォルトの動作では 30 秒間待ってから、 別の送信パケットが検出された時に接続しようとします。 .Pp この動作は .Dq set redial コマンドで変更できます。 .Pp .No set redial Ar secs Ns Xo .Oo + Ns Ar inc Ns .Op - Ns Ar max Ns .Oc Op . Ns Ar next .Op Ar attempts .Xc .Pp .Bl -tag -width attempts -compact .It Ar secs は、再び接続しようとするまでの秒数です。 引数がリテラル文字列 .Sq Li random の場合には、待ち時間を 1 秒以上から 30 秒以下の間でランダムに選びます。 .It Ar inc は秒数であり、 新規にダイヤルするときに .Ar secs に加えられます。 このタイムアウト値が .Ar secs に戻るのは、接続が成功裏に確立した後だけです。 .Ar inc のデフォルト値は 0 です。 .It Ar maxinc は、 .Nm が .Ar secs を増加させる最大回数です。 .Ar maxinc のデフォルト値は 10 です。 .It Ar next は電話番号リストの中の次の番号をダイヤルする前に待つ秒数です。( .Dq set phone コマンドを参照してください)。これのデフォルトは 3 秒です。 繰り返しますが、引数がリテラル文字列 .Sq Li random の場合には、待ち時間を 1 秒以上 30 秒以下の間でランダムに選びます。 .It Ar attempts は、受け取った個々の送信パケットに対して、何回接続を試みるのかを示す 数字です。 .It Ar attempts に 0 を指定すると、接続されるまで試みを続けます。 .Bd -literal -offset indent set redial 10.3 4 .Ed .Pp は個々の送信パケットに対して 4 回接続を試み、 番号間の待ち時間が 3 秒で、すべての番号を試した後に 10 秒待つことを表します。 複数の電話番号が指定されている場合でも、トータルのダイヤル回数は 4 回のままです。 (それぞれの番号を 4 回ダイヤルするのではありません)。 .Pp 代りに、 .Pp .Bd -literal -offset indent set redial 10+10-5.3 20 .Ed .Pp は、 .Nm に接続を 20 回試みさせます。最初の試みの後は、 .Nm は 10 秒待ちます。 次の試みの後は 20 秒待ちということを、 6 番目の試みの後では 1 分待つところまで行います。 次の 14 回の停止は、同じ 1 分間となります。 .Nm が接続し、切断した後、再度接続に失敗した場合、 タイムアウト値は再度 10 秒から開始します。 .Pp リンクの両端が .Nm の .Fl auto ダイヤルモードを利用している場合は、 ダイヤル間隔を変更しておくのが良いでしょう。 もし、リンクの両端が同じタイムアウト時間に設定されていて、 リンクが切れて両方に送信待ちのパケットがあった場合、 両方が同時に相手を呼び出しあうことになってしまいます。 場所によっては、シリアルリンクに信頼性がなく、 切れるべきでない時にキャリアが失われるかもしれません。 セッションの途中で予期せずキャリアが失われた場合、 .Nm にリダイヤルさせることができます。 .Bd -literal -offset indent set reconnect timeout ntries .Ed .Pp このコマンドは、キャリアが失われた時に .Ar timeout 秒の間隔を置いて .Ar ntries 回まで接続を再確立するよう .Nm に指示します。例えば、 .Bd -literal -offset indent set reconnect 3 5 .Ed .Pp は、予期せぬキャリア喪失の際に .Ar 3 秒待ってから再接続を試みるように .Nm に指示します。これは .Nm があきらめる前に .Ar 5 回まで行われます。 ntries のデフォルト値は 0 (再接続しない) です。 このオプションを使用する際には注意が必要です。 もしローカル側のタイムアウトがリモート側よりもわずかに長いと、 リモート側がタイムアウトにより回線を切断した場合に、 再接続機能が (指定した回数まで) 起動されてしまいます。 注: この文脈においては、多くの LQR を喪失するとキャリア喪失を引き起こし、 ひいては再接続を引き起こします。 .Fl background フラグが指定された場合、接続が行えるまで すべての電話番号が最大 1 回ダイヤルされます。 .Dq set redial コマンドにて、リダイヤル期間の後に、 再接続回数を指定します。 リダイヤル値が指定した電話番号数より少ない場合、 指定した電話番号で使用されないものが出来ます。 プログラムを終了させるには、次のように入力してください。 .Bd -literal -offset indent PPP ON awfulhak> close ppp ON awfulhak> quit all .Ed .Pp .Dq quit コマンドは .Xr pppctl 8 もしくは .Xr telnet 1 による接続を終了しますが、 プログラム自身は終了させません。 .Nm も終了させたい場合には、 .Dq quit all を実行してください。 .Sh PPP 接続の受け入れ (方法その 1) .Em PPP 接続要求を受け入れるには、次の手順にしたがってください。 .Bl -enum .It モデムと、 (必要であれば) .Pa /etc/rc.serial が正しく設定されていることを確認します。 .Bl -bullet -compact .It フロー制御にはハードウェアハンドシェイク (CTS/RTS) を使います。 .It モデムはエコーバックを行わず (ATE0) 、コマンドの結果も報告しない (ATQ1) ように設定されていなければなりません。 .El .Pp .It モデムが接続されているポートで .Xr getty 8 が起動されるように .Pa /etc/ttys を編集します。 例えば、次のように設定すれば良いでしょう: .Pp .Dl ttyd1 "/usr/libexec/getty std.38400" dialup on secure .Pp .Xr getty 8 を起動するために .Xr init 8 プロセスに .Dv HUP シグナルを送るのを 忘れないでください: .Pp .Dl # kill -HUP 1 .It .Pa /usr/local/bin/ppplogin ファイルを次のような内容で作成します: .Bd -literal -offset indent #!/bin/sh exec /usr/sbin/ppp -direct incoming .Ed .Pp ダイレクトモード .Pq Fl direct では、 .Nm は標準入力と標準出力を使って動作します。クライアント動作の .Nm と同様に、 .Xr pppctl 8 を使用することで、構成された診断ポートに接続可能です。 .Pp ここで .Pa /etc/ppp/ppp.conf 中の .Ar incoming セクションが設定されていなければなりません。 .Pp .Ar incoming セクションに適当な .Dq allow users コマンドがあることを確かめておいてください。 .It 受け入れるユーザのアカウントを用意してください。 .Bd -literal ppp:xxxx:66:66:PPP Login User:/home/ppp:/usr/local/bin/ppplogin .Ed .Pp 詳細は .Xr adduser 8 と .Xr vipw 8 のマニュアル項目を参照してください。 .Dq accept dns および .Dq set nbns コマンドを使うことで IPCP によるドメインネームサーバと NetBIOS ネームサーバの 交渉を有効にすることが可能です。 下記の記述を参照してください。 .El .Pp .Sh PPP 接続の受け入れ (方法その 2) この方法は、 .Xr login 1 ではなく .Nm ppp で接続の認証を行うという点が異なります。 .Bl -enum .It .Pa /etc/gettytab の default セクションに .Dq pp ケーパビリティを指定することで ppp を自動的に認識するように 設定してください。 .Bd -literal default:\\ :pp=/usr/local/bin/ppplogin:\\ ..... .Ed .It 上記の方法その 1 の最初の 3 手順と同じように、 シリアルデバイスを設定し、 .Xr getty 8 を有効にして、 .Pa /usr/local/bin/ppplogin を作成してください。 .It .Pa /etc/ppp/ppp.conf の .Sq incoming ラベル (もしくは .Pa ppplogin が用いるラベルならなんでも構いません) 下に .Dq enable chap か .Dq enable pap .Pq もしくはその両方 を加えてください。 .It .Pa /etc/ppp/ppp.secret に、受け入れるユーザそれぞれについて、エントリを作成してください。 .Bd -literal Pfredxxxx Pgeorgeyyyy .Ed .El .Pp これで、 .Xr getty 8 は (HDLC フレームヘッダを認識することで) ppp 接続を検出すると、すぐに .Dq /usr/local/bin/ppplogin を実行します。 .Pp 上記のように PAP もしくは CHAP を有効にすることは .Em 必須 です。そうしなければ、あらゆる人があなたのマシンにパスワード .Em なしに ppp セッションを確立することを許可し、 あらゆる種類の潜在的な攻撃に対して門戸を開いていることになります。 .Sh 内向き接続の認証 通常、接続の受信側は相手が相手自身を認証することを要求します。 これは通常 .Xr login 1 にて行われますが、代りに PAP か CHAP を使用可能です。 2 つのうちで CHAP の方がより安全ですが、 クライアントによってはサポートしていないものがあります。 どちらを使いたいか決めたら、 .Sq enable chap または .Sq enable pap を .Pa ppp.conf の適切なセクションに追加してください。 .Pp その後、 .Pa /etc/ppp/ppp.secret ファイルの設定を行う必要があります。 このファイルは、クライアントになりうるマシンごとに 1 行を含みます。 各行は 5 つまでのフィールドからなります: .Pp .Ar name Ar key Oo .Ar hisaddr Op Ar label Op Ar callback-number .Oc .Pp .Ar name と .Ar key は期待されるクライアントのユーザ名とパスワードを指定します。 .Ar key が .Dq \&* で PAP が使用される場合、 .Nm は認証時にパスワードデータベース .Pq Xr passwd 5 を検索します。 .Pa ppp.secret の如何なる .Ar name Ns No / Ar key の組み合わせにおいても適切でない返答をクライアントが与える場合、 認証は失敗します。 .Pp 認証に成功したならば、 .Pq 指定時には .Ar hisaddr を IP 番号交渉時に使用します。詳細は .Dq set ifaddr コマンドを参照してください。 .Pp 認証に成功し .Ar label が指定された場合、現在のシステムラベルは .Ar label にマッチするように修正されます。 このことはファイル .Pa ppp.linkup と .Pa ppp.linkdown の後続のパーズに影響があります。 .Pp 認証に成功し .Ar callback-number が指定され .Dq set callback が .Pa ppp.conf で指定された場合、クライアントは指定された番号でコールバックされます。 CBCP が使用される場合、 .Dq set cbcp コマンドに渡すのと同様の形式で、 .Ar callback-number にもまた番号のリストまたは .Dq \&* を含むことが可能です。 この値は、 .Nm で後続する CBCP フェーズで使用します。 .Sh PPP オーバ TCP (別名: トンネリング) シリアルリンク上以外の .Nm の使用方法として、 device にホストとポートを指定することにより、 TCP 接続を使用することが可能です: .Pp .Dl set device ui-gate:6669 .Pp シリアルデバイスをオープンする代りに、 .Nm は指定されたマシンの指定されたソケットへの TCP 接続をオープンします。 .Nm は telnet プロトコルを使用しないこと、 telnet サーバと交渉できないことに注意を払うべきです。 受信マシン (ui-gate) 上に、 この ppp 接続を受信するポートを設定する必要があります。まず .Pa /etc/services を更新して、サービスを定義します: .Pp .Dl ppp-in 6669/tcp # Incoming PPP connections over tcp .Pp そして .Pa /etc/inetd.conf を更新して、このポートへの受信接続をどのように扱うかを .Xr inetd 8 に指示します: .Pp .Dl ppp-in stream tcp nowait root /usr/sbin/ppp ppp -direct ppp-in .Pp .Pa /etc/inetd.conf を更新した後には、 .Xr inetd 8 に .Dv HUP シグナルを送るのをお忘れなく。 ここではラベル名 .Dq ppp-in を使用します。 ui-gate (受信側) の .Pa /etc/ppp/ppp.conf エントリは次の内容を含みます: .Bd -literal -offset indent ppp-in: set timeout 0 set ifaddr 10.0.4.1 10.0.4.2 add 10.0.1.0/24 10.0.4.2 .Ed .Pp セキュリティのために PAP もしくは CHAP の設定をしたいかもしれません。 PAP を有効にするには次の行を追加します: .Bd -literal -offset indent enable PAP .Ed .Pp また、次のエントリを .Pa /etc/ppp/ppp.secret に作成する必要があります: .Bd -literal -offset indent MyAuthName MyAuthPasswd .Ed .Pp .Ar MyAuthPasswd が .Pq Dq * の場合には、パスワードは .Xr passwd 5 データベースから検索されます。 .Pp awfulhak (起動側) の .Pa /etc/ppp/ppp.conf エントリは次の内容を含む必要があります: .Bd -literal -offset indent ui-gate: set escape 0xff set device ui-gate:ppp-in set dial set timeout 30 set log Phase Chat Connect hdlc LCP IPCP CCP tun set ifaddr 10.0.4.2 10.0.4.1 add 10.0.2.0/24 10.0.4.1 .Ed .Pp PAP を有効にしようとしている場合、次の設定も必要です: .Bd -literal -offset indent set authname MyAuthName set authkey MyAuthKey .Ed .Pp 我々は、 ui-gate に 10.0.4.1 のアドレスを割り当て、 awfulhak に 10.0.4.2 のアドレスを割り当てようとしています。 接続をオープンするためには、次の内容をタイプするだけで良いです。 .Pp .Dl awfulhak # ppp -background ui-gate .Pp 結果として、 awfulhak にはネットワーク 10.0.2.0/24 への新たな「経路」が、 ui-gate にはネットワーク 10.0.1.0/24 への新たな「経路」が、 TCP 接続経由でそれぞれ作成されます。 ネットワークは実質的にブリッジされます - 下位レベルの TCP 接続はパブリックなネットワーク (例えばインターネット) を またがっても良いです。 また 2 つのゲートウェイ間では ppp トラフィックは 概念的に TCP ストリーム中でカプセル化されます (パケットがパケットに対応するわけではありません)。 この機構の大きな欠点は、同時に 2 つの「配送保証」機構が存在することです - この 2 つとは、下位レベルの TCP ストリームと .Em PPP リンク上で使用されるプロトコルであり、おそらくまた TCP でしょう。 パケット喪失が起ると、両者はそれぞれの方法で喪失した パケットを再送しようと するでしょう。 .Sh パケットエイリアシング .Fl alias コマンドラインオプションにより、 パケットエイリアシングが有効になります。 これにより、 .Nm ホストがローカルエリアネットワークの他のコンピュータに対して マスカレードゲートウェイとして動作するようになります。 送信される IP パケットは、まるで .Nm ホストから来たかのようにエイリアスされ、 受信パケットは、それがローカルエリアネットワークの正しいマシンに 送られるようにエイリアスが戻されます。 パケットエイリアシングにより、 未登録でプライベートなサブネット上のコンピュータを 外部から見えないようにしつつ、 インターネットへアクセス可能とします。 一般に、 .Nm が正しく動作していることの確認は、 まず最初にパケットエイリアシングを禁止して行います。 次に .Fl alias オプションを有効にして、 .Nm ホストの上で (ウェブブラウザや .Xr telnet 1 , .Xr ftp 1 , .Xr ping 8 , .Xr traceroute 8 などの) ネットワークアプリケーションの動作を確認します。 最後に、LAN 上の別のコンピュータの上で同様なアプリケーションの 動作を確認することになります。 .Nm ホストではネットワークアプリケーションが正しく動作するのに、 LAN 上の別のコンピュータでは動かないのであれば、マスカレードソフトウェアは 正しく動いているけれども、ホストが IP パケットをフォワーディングしないか、 ひょっとするとパケットが送られて来ていないかのどちらかです。 .Pa /etc/rc.conf で IP フォワーディングが有効にされていることと、 他のコンピュータで .Nm ホストがその LAN のゲートウェイとして 指定されていることを確認してください。 .Sh パケットのフィルタリング この実装では、パケットのフィルタリングがサポートされています。 .Em in フィルタ、 .Em out フィルタ、 .Em dial フィルタ、そして .Em alive フィルタの 4 種類のフィルタがあります。 ここでは基本的なことについて書くことにします。 .Bl -bullet .It フィルタ定義は次のような構文になっています。 .Pp set filter .Ar name .Ar rule-no .Ar action .Oo .Ar src_addr Ns Op / Ns Ar width .Op Ar dst_addr Ns Op / Ns Ar width .Oc .Oo Ar proto Op src Ar cmp port .Op dst Ar cmp port .Op estab .Op syn .Op finrst .Oc .Bl -enum .It .Ar name は .Sq in , .Sq out , .Sq dial , .Sq alive のいずれかです。 .It .Ar rule-no は .Sq 0 から .Sq 19 までの数値で、ルール番号を指定します。 ルールは .Ar rule-no の番号順に指定されます。 ただしルール .Sq 0 が指定されている場合のみです。 .It .Ar action は .Sq permit , .Sq deny のいずれかです。 もし、あるパケットがルールに一致した場合、 結びつけられた action が直ちに実行されます。 .It .Op Ar src_addr Ns Op / Ns Ar width と .Op Ar dst_addr Ns Op / Ns Ar width は始点と終点の IP アドレスです。 .Op / Ns Ar width が指定された場合には、それによって適切なネットマスクのビット値を与え、 アドレスの範囲を指定することができます。 .It .Ar proto は .Sq icmp , .Sq udp , .Sq tcp のうちのいずれか 1 つです。 .It .Ar cmp は .Sq \< , .Sq \&eq , .Sq \> のうちいずれか 1 つです。それぞれ、より小さい、等しい、 より大きいを意味します。 .Ar port はポート番号で指定するか、 .Pa /etc/services のサービス名で指定することができます。 .It .Sq estab , .Sq syn , .Sq finrst フラグは .Ar proto が .Sq tcp に設定されているときにのみ許可され、それぞれ TH_ACK、TH_SYN、および TH_FIN もしくは TH_RST という TCP フラグを表わします。 .El .Pp .It 各フィルタはルール 0 から始まり、40 個までのルールをもつことができます。 規則のルールは、ルール 0 が定義されていなければ、有効にはなりません。 すなわち、デフォルトではすべてが通されます。 .It パケットにマッチするルールが無い場合は、パケットは破棄 (ブロック) されます。 .It すべての規則を消去するには、 .Dq set filter Ar name No -1 を使ってください。 .El .Pp .Pa /usr/share/examples/ppp/ppp.conf.sample . を参照してください。 .Sh アイドルタイマの設定 アイドルタイマを調べたり/設定するためには、それぞれ .Dq show bundle と .Dq set timeout コマンドを使ってください: .Bd -literal -offset indent ppp ON awfulhak> set timeout 600 .Ed .Pp タイムアウト時間は秒数で指定します。デフォルト値は timeout が 180 秒 .Pp 3 分 です。 アイドルタイマ機能を使わないようにするためには、 次のコマンドを利用してください。 .Bd -literal -offset indent ppp ON awfulhak> set timeout 0 .Ed .Pp .Fl ddial と .Fl dedicated モードではアイドルタイムアウトは無視されます。 .Fl auto モードでは、アイドルタイムアウトが発生すると .Nm プログラムは実行したままで .Em PPP セッションを終了します。別の引金となるパケットがきた時に リンクを再び確立しようとします。 .Sh Predictor-1 および DEFLATE 圧縮 .Nm は Predictor type 1 圧縮および deflate 圧縮をサポートしています。 デフォルトでは、 .Nm は、接続相手が同意 .Pq あるいは要求 した場合に、 この機能を使おうと (もしくは受け入れようと) します。 .Nm は deflate プロトコルを優先します。 これらの機能を使用したくない時には .Dq disable と .Dq deny のコマンドを参照してください。 .Pp .Dq disable deflate か .Dq deny deflate の一方を使用することにより、 方向ごとに異ったアルゴリズムを使用することができます。 .Pq 接続相手が両方のプロトコルをサポートしていると仮定しています。 .Pp デフォルトでは、DEFLATE について交渉するときには .Nm はウィンドウサイズとして 15 を使います。この動作を変更したい場合には .Dq set deflate コマンドを参照してください。 .Pp デフォルトでは無効にされ受け付けませんが、DEFLATE24 と呼ばれる特殊な アルゴリズムを使用することもできます。これは CCP ID 24 を 交渉に使う点を除いては DEFLATE と完全に同じものです。 これを使用することで .Nm は .Nm pppd バージョン 2.3.* と DEFLATE 交渉を成功させることができます。 .Sh IP アドレスの制御 .Nm は IP アドレスの交渉のために IPCP を使います。接続の両側は、自分が 使おうとするアドレスを提示し、要求された IP アドレスが受け入れ可能な ものであれば、相手に ACK (肯定応答) を返します。 受け入れることができなければ、別の IP アドレスの使用を促すために .Nm は相手に NAK (否定応答) を返します。 接続の両側が受け取った要求に同意し (ACK を送っ) た時、 IPCP はオープン状態にセットされ、ネットワーク層での接続が確立されます。 IPCP の動作を制御するために、この実装はローカルとリモートの IP アドレスを定義するための .Dq set ifaddr コマンドを持っています。 .Bd -literal -offset indent .No set ifaddr Oo Ar src_addr Ns .Op / Ns Ar \&nn .Oo Ar dst_addr Ns Op / Ns Ar \&nn .Oo Ar netmask .Op Ar trigger_addr .Oc .Oc .Oc .Ed .Pp ここで、 .Sq src_addr はローカル側で使おうと思っている IP アドレスで、 .Sq dst_addr はリモート側が使用すべき IP アドレスです。 .Sq netmask は使用すべきネットマスクです。 .Sq src_addr のデフォルトは現在の .Xr hostname 1 のもの、 .Sq dst_addr のデフォルトは 0.0.0.0 であり、 .Sq netmask のデフォルトは .Sq src_addr に適したマスク値です。 .Sq netmask はデフォルトより小さくすることのみ可能です。 ほとんどのカーネルが POINTOPOINT インタフェースのネットマスクを 無視するので、便利な値は 255.255.255.255 でしょう。 .Pp 誤った .Em PPP の実装には、接続交渉のために、 .Sq src_addr ではなく特別な IP アドレスを使用しなければならないものがあります。 この場合、 .Sq trigger_addr で指定した IP アドレスが使用されます。 相手がこの提案された番号に同意しない限り、経路表には影響しません。 .Bd -literal -offset indent set ifaddr 192.244.177.38 192.244.177.2 255.255.255.255 0.0.0.0 .Ed .Pp 上の例の意味は次の通りです: .Pp .Bl -bullet -compact .It 自分の IP アドレスとしてまず 0.0.0.0 を提案しますが、アドレス 192.244.177.38 のみは受け付けます。 .It 相手側のアドレスとして 192.244.177.2 を使うように要求し, 192.244.177.2 以外のどんなアドレスを使うことも許可しません。 相手側が別の IP アドレスを要求してきた時は、いつでも 192.244.177.2 を提案します。 .It 経路表のネットマスク値は 0xffffffff に設定されます。 .El .Pp これは、両側が既に決まった IP アドレスを持っている場合には うまくいきますが、多くの場合、一方がすべての IP アドレスを制御する サーバとして動作しており、もう一方はその方針に従います。 より柔軟な動作をさせるために、 .Dq set ifaddr コマンドで IP アドレス指定をもっと緩やかにすることが可能です: .Pp .Dl set ifaddr 192.244.177.38/24 192.244.177.2/20 .Pp スラッシュ .Pq Dq / に続く数字は、この IP アドレスで意味のあるビットの数を 表現しています。上の例は次のことを示しています。 .Pp .Bl -bullet -compact .It 可能なら自分のアドレスとして 192.244.177.38 を使おうとしますが、 192.244.177.0 から 192.244.177.255 の間の任意の IP アドレスも受け入れます。 .It 相手のアドレスとして 192.244.177.2 を使うことを希望しますが、 192.244.176.0 から 192.244.191.255 の間の任意の IP アドレスも許可します。 .It すでにお気づきと思いますが、 192.244.177.2 は 192.244.177.2/32 と書くことと 等価です。 .It 例外として、0 は 0.0.0.0/0 と等価であり、希望する IP アドレスは 特に無く、リモート接続先の選択に従うことを意味します。 0 を使用した場合は、接続が確立するまで、経路表のエントリは まったく設定されません。 .It 192.244.177.2/0 は、どんな IP アドレスでも受け入れる/許可することを 意味しますが、最初に 192.244.177.2 を使うように提案します。 .El .Pp .Sh インターネットサービスプロバイダと接続する プロバイダに接続する際には、次のステップを踏む必要があるでしょう: .Bl -enum .It .Dq set phone コマンドを使って、ダイヤルスクリプトにプロバイダの電話番号を記述します。 ダイヤルやリダイヤルに使用する電話番号は、 パイプ .Pq Dq \&| またはコロン .Pq Dq \&: で区切って複数指定することができます。例えば、次のようになります。 .Pq Dq \&: : .Bd -literal -offset indent .No set phone Ar telno Ns Xo .Oo \&| Ns Ar backupnumber .Oc Ns ... Ns Oo : Ns Ar nextnumber .Oc Ns ... .Xc .Ed .Pp 最初のパイプで区切られたリストの番号は、 直前の番号でダイヤルもしくはログインスクリプトが失敗した場合のみ使用されます。 コロンで区切られた番号は、直前の番号の使用によりなにが起ったのかにかかわらず、 この順番で使用されます。例えば: .Bd -literal -offset indent set phone "1234567|2345678:3456789|4567890" .Ed .Pp この場合、まず 1234567 にダイヤルしてみます。 ダイヤルもしくはログインスクリプトに失敗したら、 次は 2345678 を使用します。 しかしこれはダイヤルもしくはログインスクリプトに失敗したとき *のみ* です。 このダイヤルの後、3456789 が使用されます。 4567890 は 345689 でダイヤルもしくはログインスクリプトに失敗したときのみ 使用されます。 2345678 のログインスクリプトが失敗したとしても、次の番号は 3456789 です。 必要な数だけ、パイプとコロンを使用可能です (しかし、通常はパイプのみかコロンのみであり両方の使用はないでしょう)。 次の番号へのリダイヤルまでのタイムアウトは、すべての番号にて使用されます。 リストが終了すると、 通常のリダイヤル期間だけ待ち、 最初から再開します。 .Dq set dial コマンドの \\\\T 文字列は選択された番号で置きかえられます。 (以降を参照してください)。 .It リダイヤルに関する設定は、 .Dq set redial で行います。 例えば回線の調子が悪かったり、 (最近では それほど多くないでしょうが) プロバイダがいつも話中だったりすると、 次のように設定したくなるかもしれません: .Bd -literal -offset indent set redial 10 4 .Ed .Pp これは最初の番号にリダイヤルを行う前に 10 秒待って、 4 回までダイヤルしてみるという意味になります。 .It .Dq set dial と .Dq set login コマンドを使ってログイン手続きを記述します。 .Dq set dial コマンドはモデムと通信してプロバイダへのリンクを確立するのに使われます。 例えば、次のようになります: .Bd -literal -offset indent set dial "ABORT BUSY ABORT NO\\\\sCARRIER TIMEOUT 4 \\"\\" \e ATZ OK-ATZ-OK ATDT\\\\T TIMEOUT 60 CONNECT" .Ed .Pp このモデム「チャット」文字列の意味は次の通りです。 .Bl -bullet .It \&"BUSY" または "NO CARRIER" を受信した場合には処理を中止します。 .It タイムアウトを 4 秒にセットします。 .It 文字列の受信待ちは行いません。 .It ATZ を送信します。 .It OK の受信待ちを行います。もし 4 秒以内に受信できなければ、 もう 1 度 ATZ を送信し、OK の受信待ちを行います。 .It ATDTxxxxxxx を送信します。xxxxxxx は 上記の電話番号リストの中の、次にダイヤルする番号です。 .It タイムアウトを 60 にセットします。 .It 文字列 CONNECT の受信待ちを行います。 .El .Pp 一旦接続が確立されると、ログインスクリプトが実行されます。 このスクリプトはダイヤルスクリプトと同じスタイルで書かれますが、 パスワードが記録されないように注意してください: .Bd -literal -offset indent set authkey MySecret set login "TIMEOUT 15 login:-\\\\r-login: awfulhak \e word: \\\\P ocol: PPP HELLO" .Ed .Pp このログイン「チャット」文字列の意味は次の通りです。 .Bl -bullet .It タイムアウトを 15 秒にセットします。 .It "login:" の受信待ちを行います。もし受信できなければ 復改文字を送信して、再び "login:" の受信待ちを行います。 .It "awfulhak" を送信します。 .It "word:" ("Password:" プロンプトの末尾) の受信待ちを行います。 .It .Ar authkey に現在設定されている値を送信します。 .It "ocol:" ("Protocol:" プロンプトの末尾) の受信待ちを行います。 .It "PPP" を送信します。 .It "HELLO" の受信待ちを行います。 .El .Pp .Dq set authkey コマンドのログは特別な方法でとられます。 .Ar command または .Ar chat のログが有効な時は、実際のパスワードは記録されません。 代りに .Sq ******** Ns が記録されます。 .Pp ログインスクリプトはプロバイダによって大きく違うものになるでしょう。 始めてそれを設定するときには .Em チャットログを有効化 することで、あなたのスクリプトが予定通りに動いているかを 調べることができます。 .It シリアル回線と通信速度を指定するためには .Dq set device と .Dq set speed を使います。例えば次のようになります。 .Bd -literal -offset indent set device /dev/cuaa0 set speed 115200 .Ed .Pp FreeBSD では cuaa0 が 1 つめのシリアルポートになります。 OpenBSD で .Nm を実行している場合には cua00 が 1 つめです。 あなたのモデムが 28800 かそれ以上のビットレートで通信することが できるなら、シリアルポートの速度には 115200 を指定しておくべきでしょう。 一般に、シリアルポートの速度はモデムの速度の約 4 倍にしておきます。 .It .Dq set ifaddr コマンドで IP アドレスを定義します。 .Bl -bullet .It プロバイダがどの IP アドレスを使っているのか知っている場合には、 それをリモートアドレス (dst_addr) として使ってください。 知らない場合には、10.0.0.2/0 か何かを使ってください (以降を参照してください)。 .It 特定の IP アドレスをプロバイダから割り当てられている場合は、 それをローカルアドレス (src_addr) として使ってください。 .It プロバイダが IP アドレスを動的に割り当てる場合は、適当に控えめで 緩やかに記述した IP アドレスをローカルアドレスに選んでください。 10.0.0.1/0 が適切でしょう。 / に続く数値は、このアドレスのうち何ビットを重視しているかを示します。 もしもクラス C のネットワーク 1.2.3.0 上のアドレスを使うことを 主張したいのなら、1.2.3.1/24 と指定することができます。 .It プロバイダがあなたが提示した最初の IP 番号を受け付ける場合、 第 3, 4 の引数に .Dq 0.0.0.0 を指定してください。 これによりプロバイダが番号を割り当てます。 (3 つめの引数は、 .Sq src_addr に対してデフォルトのマスクよりも制約が緩いため、無視されます。) .El .Pp 自分の IP アドレスもプロバイダの IP アドレスも 知らない場合には、次の例のようにするとよいでしょう。 .Bd -literal -offset indent set ifaddr 10.0.0.1/0 10.0.0.2/0 0.0.0.0 0.0.0.0 .Ed .Pp .It ほとんどの場合、プロバイダはデフォルトルータでもあるでしょう。 この場合、次の行を .Pa /etc/ppp/ppp.conf に追加します。 .Bd -literal -offset indent add default HISADDR .Ed .Pp これは、 .Nm 接続先のアドレスが何であっても .Pq この例では 10.0.0.2 デフォルト経路として追加するように指示します。 この経路は .Sq スティッキー です。これは .Dv HISADDR の値が変わると、経路もそれに従って自動的に更新されるという意味です。 .Pp 以前のバージョンの .Nm では .Pa /etc/ppp/ppp.linkup ファイルにこれと似たエントリが必要でした。 .Sq スティッキー経路 の出現により、これはもはや必要ではなくなりました。 .It プロバイダが PAP/CHAP による認証を要求している場合は、 .Pa /etc/ppp/ppp.conf ファイルに次の行を追加してください: .Bd -literal -offset indent set authname MyName set authkey MyPassword .Ed .Pp デフォルトではどちらも受け付けられますので、ISP が何を要求しても大丈夫です。 .Pp PAP もしくは CHAP を使用する場合、ログインスクリプトはほとんどの場合、 必要とされないことを記述しておくべきでしょう。 .It 次のような行を加え、ISP にネームサーバアドレスを確認してください。 .Bd -literal -offset indent enable dns .Pp .Ed ローカル DNS を走らせている場合には、これを .Em やらない でください。 .Nm は単純に .Pa /etc/resolv.conf に nameserver 行を入れることで、ローカル DNS の使用を 出し抜いてしまうからです。 .El .Pp 現実の例を見たい場合には、 .Pa /usr/share/examples/ppp/ppp.conf.sample と .Pa /usr/share/examples/ppp/ppp.linkup.sample を参照してください。 ラベル pmdemand は、ほとんどのプロバイダで使用できるでしょう。 .Sh ログ機能 .Nm は次のログ情報を、 .Xr syslog 3 経由で、もしくはスクリーンに出力することができます: .Pp .Bl -tag -width XXXXXXXXX -offset XXX -compact .It Li Async 非同期レベルパケットの 16 進ダンプ。 .It Li CBCP CBCP (CallBack Control Protocol) ログの生成。 .It Li CCP CCP パケットトレースの生成。 .It Li Chat .Sq dial , .Sq login , .Sq hangup のチャットスクリプトのトレースログの生成。 .It Li Command コマンド実行のログ。 .It Li Connect 文字列 "CONNECT" を含むチャット行のログ。 .It Li Debug デバッグ情報のログ。 .It Li HDLC HDLC パケットの 16 進ダンプ。 .It Li ID0 ユーザ ID 0 で実行された全関数呼び出しを詳細に記録。 .It Li IPCP IPCP パケットトレースの生成。 .It Li LCP LCP パケットトレースの生成。 .It Li LQM LQR レポートの生成。 .It Li Phase フェーズ遷移ログの出力。 .It Li TCP/IP 全 TCP/IP パケットのダンプ。 .It Li Timer タイマ操作のログ。 .It Li TUN ログの各行に tun デバイスを含めます .It Li Warning 端末デバイスへの出力。端末が存在しない場合は、 .Dv LOG_WARNING を使用してログファイルに送ります。 .It Li Error 端末デバイスとログファイルへの出力で、 .Dv LOG_ERROR を使用します。 .It Li Alert ログファイルへの出力で、 .Dv LOG_ALERT を使用します。 .El .Pp .Dq set log コマンドで、ログの出力レベルを設定することができます。 また、複数のレベルを単一コマンドラインにて指定することも可能です。 デフォルトは、 .Dq set log Phase です。 .Pp スクリーンに直接ログを表示することも可能です。 文法は同じで、語 .Dq local が .Dq set log の直後に付くことだけが違います。 デフォルトは .Dq set log local (つまり、マスクされない警告、エラーと注意のみ出力) です。 .Pp .Dq set log Op local への最初の引数が .Sq + か .Sq - の文字で始まる場合、現在のログレベルを消去せずに修正します。例えば: .Bd -literal -offset indent PPP ON awfulhak> set log phase PPP ON awfulhak> show log Log: Phase Warning Error Alert Local: Warning Error Alert PPP ON awfulhak> set log +tcp/ip -warning PPP ON awfulhak> set log local +command PPP ON awfulhak> show log Log: Phase TCP/IP Warning Error Alert Local: Command Warning Error Alert .Ed .Pp レベル Warning, Error, Alert のメッセージログは .Dq set log Op local では制御できません。 .Pp .Ar Warning レベルは特別で、ローカルに表示可能な場合には記録されません。 .Sh シグナルハンドリング .Nm は次のシグナルを扱います: .Bl -tag -width XX .It INT このシグナルを受信すると、現在の接続がもしあればそれを終了します。 .Fl auto もしくは .Fl ddial のモードではない場合、 .Nm は終了します。 .It HUP, TERM, QUIT .Nm を終了させます。 .It USR2 .Nm に全サーバソケットを閉じさせ、すべての既存の診断ポートへの接続を 取り下げます。 .El .Pp .Sh マルチリンク PPP .Em PPP 相手に接続するのに複数の物理的なリンクを利用したいなら、 接続相手も .Em マルチリンク PPP プロトコルを理解する必要があります。 仕様の詳細は RFC 1990 を参照してください。 .Pp 接続先は、 .Dq 終点の選択 とその .Dq 認証 ID の組み合わせによって識別されます。 これらの一方、もしくは両方を指定することができます。 最低でも片方は指定しておくことが推奨されます。 そうでないと、すべてのリンクが実際に同一のプログラムに接続されていることを 確認する方法がなくなり、 混乱してロックアップを引き起こすことがあります。 ローカルには、これらの識別変数は .Dq set enddisc と .Dq set authname コマンドを用いることで指定されます。先立って接続相手と .Sq authname .Pq と Sq authkey について合意しておく必要があります。 .Pp マルチリンクの能力は .Dq set mrru コマンド (set maximum reconstructed receive unit) を用いることで 有効になります。一度マルチリンクが有効になれば、 .Nm は接続相手とマルチリンク接続の交渉を行います。 .Pp デフォルトでは .Po .Sq deflink と呼ばれる .Pc ただ 1 つの .Sq リンク のみが有効です。さらにリンクを作成するには .Dq clone コマンドが使われます。このコマンドは既存のリンクを複製します。 それは次の点を除いてすべての性質が同じものです: .Bl -enum .It 新しいリンクは .Dq clone コマンドラインで指定された独自の名前を持ちます。 .It 新しいリンクは .Sq interactive リンクです。そのモードは次の .Dq set mode コマンドで変更することができます。 .It 新しいリンクは .Sq closed の状態にあります。 .El .Pp すべての有効なリンクのまとめは、 .Dq show links コマンドを用いて見ることができます。 .Pp 一度リンクが作成されると、コマンドの使用方法が変わります。 すべてのリンク固有のコマンドの前には、 .Dq link Ar name プレフィックスをつけて、 コマンドを適用するリンクを指定する必要があります。 .Nm は十分賢いので、 利用可能なリンクが 1 つだけの場合には、 .Dq link Ar name プレフィックスは不要です。 .Pp コマンドの中には依然としてリンクの指定なしに使用できるものがあり、それは .Sq バンドル レベルの操作を行います。たとえば、2 つ以上のリンクが存在するとき .Dq show ccp はマルチリンクレベルの CPP 設定と統計を表示し .Dq link deflink show ccp は .Dq deflink のリンクレベルの同じ情報を表示します。 .Pp これらの情報を用いて、次の設定を用いることができます: .Pp .Bd -literal -offset indent mp: set timeout 0 set log phase chat set device /dev/cuaa0 /dev/cuaa1 /dev/cuaa2 set phone "123456789" set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \\"\\" ATZ \e OK-AT-OK \\\\dATDT\\\\T TIMEOUT 45 CONNECT" set login set ifaddr 10.0.0.1/0 10.0.0.2/0 set authname ppp set authkey ppppassword set mrru 1500 clone 1,2,3 link deflink remove .Ed .Pp すべての複製が設定の最後で行われていることに注意してください。 一般にはリンクは最初に設定され、そして複製されます。 あなたが常にすべてのリンクがアップ状態であることを望む場合には、 設定の最後に次の行を追加することができます。 .Pp .Bd -literal -offset indent link 1,2,3 set mode ddial .Ed .Pp リンクが必要に応じてダイヤルされることを望む場合には、次のコマンドを 使うことができます。 .Pp .Bd -literal -offset indent link * set mode auto .Ed .Pp 上記の .Dq set device 行を取り除き、 .Dq clone コマンドに続けて次の内容を指定することで、 リンクを特定の名前に結びつけることもできます: .Pp .Bd -literal -offset indent link 1 set device /dev/cuaa0 link 2 set device /dev/cuaa1 link 3 set device /dev/cuaa2 .Ed .Pp どのコマンドが ( .Dq link コマンドを使用した) コンテキスト (文脈) を要求し、 どのコマンドがコンテキストをオプションとし、 そしてどのコマンドがコンテキストを一切とらないかを調べるには、 .Dq help コマンドを使用します。 .Pp .Nm が接続相手と .Em マルチリンク モードで交渉をすると、 .Nm はローカルドメインソケットを .Pa /var/run ディレクトリに作成します。このソケットは、 リンク情報 (実際のリンクファイル記述子も含む) を、異なる .Nm の間で受け渡しするために使われます。 この機能によって、 .Nm はシリアル回線の初期制御を行う必要なしに .Xr getty 8 から、もしくは直接 .Pa /etc/gettydefs から ( .Sq pp= ケーパビリティを用いて) 実行することが可能となっています。 ひとたび .Nm がマルチリンクモードの交渉を行うと、 .Nm は自分がオープンした リンクをすでに実行されている任意の他のプロセスに渡すことができます。 すでに実行されているプロセスがない場合、 .Nm はマスタとして振る舞い、ソケットを作成し、新たな接続を待ちます。 .Sh PPP コマンドリスト この節では利用可能コマンドとその効果をリストします。 .Nm ppp セッションで対話的に使用することも、 設定ファイルで指定することも、 .Xr pppctl 8 もしくは .Xr telnet 1 セッションで指定することも可能です。 .Bl -tag -width XX .It accept|deny|enable|disable Ar option.... これらのディレクティブは 最初の接続においてどのように相手と交渉するかを .Nm に指示します。各 .Dq option は、accept/deny および enable/disable のデフォルトを持ちます。 .Dq accept は相手がこのオプションを要求したら、ACK を送ることを意味します。 .Dq deny は相手がこのオプションを要求したら、NAK を送ることを意味します。 .Dq enable はこのオプションを当方が要求することを意味します。 .Dq disable はこのオプションを当方が要求しないことを意味します。 .Pp .Dq option は次のいずれかです: .Bl -tag -width XX .It acfcomp デフォルト: enable かつ accept。 ACFComp はアドレスおよびコントロールフィールド圧縮 (Address and Control Field Compression) を意味します。 LCP パケット以外は通常、 アドレスフィールド 0xff (全ステーションアドレス) と 制御フィールド 0x03 (番号付けされていない情報コマンド) を持ちます。 このオプションが交渉されると、これらの 2 バイトは単に送信されなくなり、 流量が少なくなります。 .Pp 詳細は .Pa rfc1662 を参照してください。 .It chap Ns Op \&05 デフォルト: disable かつ accept。 CHAP はチャレンジ交換認証プロトコル (Challenge Handshake Authentication Protocol) を意味します。 CHAP もしくは PAP (後述) のどちらか一方のみ交渉可能です。 CHAP では、認証者は「チャレンジ」メッセージを相手に送ります。 相手は一方向ハッシュ関数を使用して「チャレンジ」を暗号化し、 結果を送り返します。 認証者は同じことを行い結果を比較します。 この機構の利点は、接続を介してパスワードを送らないことです。 接続が最初に確立する時にチャレンジが行われます。 更なるチャレンジが行われるかもしれません。 相手の認証を行いたい場合は、 .Dq enable chap を .Pa /etc/ppp/ppp.conf に書き、相手のエントリを .Pa /etc/ppp/ppp.secret に書く必要があります。 .Pp クライアントとして CHAP を使用する場合、 .Dq AuthName と .Dq AuthKey を .Pa /etc/ppp/ppp.conf に指定するだけで良いです。 CHAP はデフォルトで accept されます。 .Em PPP の実装によっては、チャレンジの暗号化に MD5 ではなく "MS-CHAP" を使用するものがあります。 MS-CHAP は MD4 と DES の組み合わせです。もし .Nm が DES ライブラリの存在するマシン上で構築された場合 MS-CHAP 認証要求に応答しますが、MS-CHAP 認証を要求することは 決してありません。 .It deflate デフォルト: enable かつ accept。 このオプションは圧縮制御プロトコル (Compression Control Protocol; CCP) に deflate 圧縮を使用するか否かを決定します。 使用されるアルゴリズムは .Xr gzip 1 プログラムが使用するものと同じです。 注: .Xr pppd 8 - 多くのオペレーティングシステムで使用可能な .Em PPP の実装 - との .Ar deflate 能力についての交渉には問題があります。 .Nm pppd (バージョン 2.3.1) が .Ar deflate 圧縮の交渉を行おうとする CCP コンフィギュレーションタイプは、 .Pa rfc1979 に規定されたタイプ .Em 26 ではなくタイプ .Em 24 であり、誤っています。 タイプ .Ar 24 は実際には .Pa rfc1975 では .Dq PPP Magna-link Variable Resource Compression と指定されています! .Nm は .Nm pppd と交渉する能力がありますが、 .Dq deflate24 が .Ar enable かつ .Ar accept されている場合のみです。 .It deflate24 デフォルト: disable かつ deny。 これは .Ar deflate のバリエーションで、 .Xr pppd 8 プログラムとの交渉を許可します。 詳細は上記の .Ar deflate セクションを参照してください。 これは .Pa rfc1975 に反するため、デフォルトでは disable となっています。 .It dns デフォルト: disable かつ deny。 このオプションは DNS 交渉を許可します。 .Pp .Dq enable にすることにより、 .Nm は接続相手が .Pa /etc/resolv.conf ファイルのエントリを確認することを要求します。 もし接続相手が当方の要求に否定応答をした場合 (新しい IP アドレスを 提案したら)、 .Pa /etc/resolv.conf ファイルは更新され、新しいエントリを確認するように要求を送ります。 .Pp .Dq accept にすることにより、 .Nm は接続相手からの DNS 検索要求を拒否せずに、返答します。 .Dq set dns コマンドの使用によって上書きされていない場合には、応答は .Pa /etc/resolv.conf から採られます。 .It LANMan|chap80lm デフォルト: disable かつ accept。 この認証プロトコルの使用は勧められません。 単一の CHAP タイプ (0x80) を装って、 2 つの異った機構 (LANMan と NT) を実装することにより、 部分的に認証プロトコルを侵害しているからです。 .Dq LANMan は単純な DES 暗号化機構を使用するものであり、 CHAP 代替としては最低の安全性のものです (それでも PAP よりは安全です)。 .Pp 更なる詳細は後述の .Dq MSChap の記述を参照してください。 .It lqr デフォルト: disable かつ accept。 このオプションはリンク品質要求 (Link Quality Request) を送信する、 もしくは受け入れるかどうかを決定します。 LQR は、モデムのキャリア検出を使用せずに、リンクダウンを .Nm に決定させるプロトコルです。 LQR が enable になっていると、 .Nm は LCP 要求の一部として .Em QUALPROTO オプション (後述の .Dq set lqrperiod を参照) を送ります。 接続相手が同意した場合、両端は同意した間隔で LQR パケットを交換し、 LQM ロギングを有効にすることで、詳細なリンク品質を監視することが 可能になります。 接続相手が同意しなかった場合、ppp は代りに ECHO LQR 要求を 送ります。これらのパケットは興味ある情報を何も渡しませんが、 .Em 必ず 接続相手に応答しなければなりません。 .Pp LQR, ECHO LQR のいずれを用いるにせよ、 .Nm は 5 つのパケットを送ったが確認応答が無い場合、6 つ目のパケットを送らずに 回線を切断します。 メッセージを .Em PHASE レベルで記録し、回線切断の原因が接続相手にあるものとして、適当な .Dq reconnect 値を使用します。 .It MSChap|chap80nt デフォルト: disable かつ accept。 この認証プロトコルの使用は勧められません。 単一の CHAP タイプ (0x80) を装って、 2 つの異った機構 (LANMan と NT) を実装することにより、 部分的に認証プロトコルを侵害しているからです。 標準の CHAP (タイプ 0x05) に非常に良く似ていますが、 チャレンジを固定 8 バイト長で発行し、 標準の MD5 機構ではなく MD4 と DES を組み合わせてチャレンジを暗号化するところが違います。 LANman 用の CHAP タイプ 0x80 もまたサポートされています - 詳細は .Dq enable LANMan を参照してください。 .Pp .Dq LANMan と .Dq NT の両方が CHAP タイプ 0x80 を使用しますので、両方を .Dq enable にして認証者として動作するときには、 相手が誤った方のプロトコルを使用して応答した場合には、 .Nm は最大 3 回相手に再チャレンジします。 これにより、相手が両方のプロトコルを使用する機会を与えます。 .Pp 逆に、両プロトコルを .Dq enable にして .Nm が被認証者となる場合、チャレンジに答えるたびに使用プロトコルを交換します。 .Pp 注釈: LANMan のみが enable にされた場合、 .Xr pppd 8 (バージョン 2.3.5) は被認証者としては誤った動作を行います。 NT と LANMan の両方の応答を行いますが、 NT の応答のみ使用すべきことも指示してしまうのです。 .It pap デフォルト: disable かつ accept。 PAP はパスワード認証プロトコル (Password Authentication Protocol) を 意味します。 CHAP (前述) もしくは PAP のどちらか一方のみ交渉可能です。 PAP では、ID とパスワードが相手に送られ続け、 認証されるか接続が終了されるまでこれが続きます。 これは比較的良くないセキュリティ機構です。 接続が最初に確立した時のみ実行可能です。 相手の認証を行いたい場合は、 .Dq enable pap を .Pa /etc/ppp/ppp.conf に書き、相手のエントリを .Pa /etc/ppp.secret に書く必要があります (ただし、後述の .Dq passwdauth と .Dq set radius オプションを参照)。 .Pp クライアントとして PAP を使用する場合、 .Dq AuthName と .Dq AuthKey を .Pa /etc/ppp/ppp.conf に指定するだけで良いです。 PAP はデフォルトで accept されます。 .It pred1 デフォルト: enable かつ accept。 このオプションは圧縮制御プロトコル (Compression Control Protocol; CCP) に Predictor 1 圧縮を使用するかどうかを決定します。 .It protocomp デフォルト: enable かつ accept。 このオプションは PFC (プロトコルフィールド圧縮) の交渉を行うために使用されます。 この機構により、 プロトコルフィールド数が 2 オクテットから 1 オクテットに減ります。 .It shortseq デフォルト: enable かつ accept。 このオプションは .Nm がマルチリンクモードの交渉時に .Pq 12 ビットの 短いシーケンス番号を要求し、そして受け入れるかどうかを決定します。 これは、当方の MMRU が設定されたときのみ (マルチリンクが有効になっているときのみ) 適用されます。 .It vjcomp デフォルト: enable かつ accept。 このオプションは Van Jacobson ヘッダ圧縮を使用するかどうかを決定します。 .El .Pp 次に示すオプションは、実際には相手と交渉しません。 それゆえ accept および deny は意味を持ちません。 .Bl -tag -width 20 .It idcheck デフォルト: enable。 低レベルな LCP, CCP, IPCP 設定トラフィックを交換するときに、 すべての応答の識別子フィールドはその要求の識別子フィールドと 同一であることが予定されています。デフォルトでは .Nm は予定された識別子フィールドを持たないすべての応答パケットを 捨て、それぞれのログレベルで報告します。もし .Ar idcheck が disable になっている場合、 .Nm は識別子フィールドを無視します。 .It loopback デフォルト: enable。 .Ar loopback が enable の場合、 .Nm は自動的に .Em PPP インタフェースと同じ終点アドレス宛に送出されたパケットを ループバックします。 disable の場合、 .Nm がパケットを送ると、おそらく他の終点からの ICMP リダイレクトとなります。 インタフェースがデフォルト経路であるため、 ループバック経路を必要とすることを避けたい場合、 このオプションを enable にすると便利です。 .It passwdauth デフォルト: disable。 このオプションを enable にすることにより、 PAP 認証コードが呼び出し側を認証する時に、 .Pa /etc/ppp/ppp.secret ファイル中でみつからない場合、パスワードデータベース ( .Xr passwd 5 参照) を使用します。 .Pa /etc/ppp/ppp.secret は常に、最初に調べられます。 .Xr passwd 5 からパスワードを調べ、かつそのクライアントに対して IP アドレスもしくは ラベルを指定したい場合には、 .Pa /etc/ppp/ppp.secret ファイル中のクライアントのパスワードとして .Dq \&* を用いてください。 .It proxy デフォルト: disable。 このオプションを enable にすることにより、 .Nm に相手のために代理 ARP をさせます。 .Dv HISADDR と .Dv HISADDR がいるローカルネットワークの .Dv MAC アドレスを使用して、 .Nm が ARP 表に単一エントリを作成することを意味します。 .Dv HISADDR が LAN からのアドレスではない場合、代理エントリは作成できません。 .It proxyall デフォルト: disable。 このオプションを enable にすることにより、 .Nm に代理 ARP エントリを追加させます。 追加されるエントリは、 tun インタフェースによってルーティングされる すべてのクラス C もしくはそれ以下のサブネットの中の、全 IP アドレスです。 .Pp 代理 arp エントリは、 .Dq add コマンドによって追加されたスティッキー経路に対してのみ作成されます。( .Dq set ifaddr コマンドによって作成された) インタフェースアドレス自身に対しては、代理 arp エントリは作成されません。 .It sroutes デフォルト: enable。 .Dq add コマンドが .Dv HISADDR もしくは .Dv MYADDR という値とともに用いられると、エントリは .Sq スティック経路 リストに格納されます。 .Dv HISADDR もしくは .Dv MYADDR が変更される度に、このリストが経路表に適用されます。 .Pp このオプションを disable にすると、 スティッキー経路が適用されなくなります。 .Sq スティック経路 リストは依然として保守されます。 .It throughput デフォルト: enable。 このオプションを有効にすると、 .Nm はスループット統計を収集します。 ずれ動く 5 秒間のウィンドウにおいて入出力が検査され、 現在、最良時、総計の数値が保持されます。 このデータは関連する .Em PPP 層が終了するときに出力され、また .Dq show コマンドで表示することで得られます。スループット統計は .Dq IPCP と .Dq modem のレベルで利用可能です。 .It utmp デフォルト: enable。 通常ユーザが PAP もしくは CHAP で認証された時で、 .Nm が .Fl direct モードで実行されている時は、このユーザのエントリが utmp ファイルおよび wtmp ファイルに作成されます。 このオプションを disable にすると、 .Nm は utmp および wtmp のエントリを作成しません。 通常、 ユーザがログインしかつ認証することを要求する場合のみ必要です。 .It iface-alias デフォルト: .Fl alias が指定された場合 enable。 このオプションは、 インタフェースのアドレスを交換するのではなく、 インタフェースに新規アドレスを追加するように、 .Nm に指示します。 IP エイリアシングが有効な場合のみ .Pq Dq alias enable yes 、本オプションを enable にできます。 .Pp 本オプションを enable にすると、 .Nm は古いインタフェースアドレスのトラフィックを IP エイリアスエンジン .Pq Xr libalias 5 参照 を通すようになり、( .Fl auto モードでは) 最初に PPP リンクを立ち上げたプロセスが正しく接続できるようにします。 .Pp .Dq alias enable off として IP エイリアシングを disable すると、 .Sq iface-alias も disable します。 .El .Pp .It add Ns Xo .Op \&! .Ar dest Ns Op / Ns Ar nn .Op Ar mask .Op Ar gateway .Xc .Ar dest は宛先 IP アドレスです。 ネットマスクは .Ar /nn によってビット数で指定するか、もしくは .Ar mask を用いて IP 番号で指定します。 .Ar 0 0 ならびにマスクなしの .Ar 0 はデフォルト経路を意味します。 .Ar 0 の代りにシンボル名 .Ar default を使うことが可能です。 .Ar gateway は、 .Ar dest マシン/ネットワークに至る、次のホップのゲートウェイです。 詳細は .Xr route 8 コマンドを参照してください。 .Pp 宛先にシンボル名 .Sq MYADDR と .Sq HISADDR を使用可能であり、 .Ar gateway には .Sq HISADDR を使用可能です。 .Sq MYADDR はインタフェースアドレスに置き換えられ、 .Sq HISADDR はインタフェースの宛先 (相手の) アドレスに置き換えられます。 .Pp .Ar add! コマンド .Po .Dq \&! に注意 .Pc 使用時には、経路が存在する場合には .Sq route change コマンド (詳細は .Xr route 8 参照) にて経路を更新します。 .Pp .Dq HISADDR もしくは .Dq MYADDR を含む経路は .Sq スティッキー と見なされます。これらはリスト (リストを見るには .Dq show ipcp コマンドを使用します) に格納され、 .Dv HISADDR もしくは .Dv MYADDR の値が変更される度に、経路表の関連するエントリが更新されます。 この機能は .Dq disable sroutes を使用することで無効にできます。 .It allow user Ns Xo .Op s .Ar logname Ns No ... .Xc このコマンドは .Nm と設定ファイルへのアクセスを制御します。 ユーザレベルでのアクセスは可能であり、 設定ファイルのラベルと .Nm の実行モードに依存します。 例えば、ユーザ .Sq fred のみがラベル .Sq fredlabel に .Fl background モードでアクセスできるように、 .Nm を構成したいかもしれません。 .Pp ユーザ ID 0 はこれらのコマンドの対象外です。 .Bl -tag -width XX .It allow user[s] Ar logname... デフォルトでは、ユーザ ID 0 のみが .Nm へのアクセスを許されています。 このコマンドが指定されると、 .Dq allow users が記載されているセクションに列挙されているユーザのアクセスが可能となります。 .Sq default セクションは 常に最初にチェックされます (スタートアップ時に常にロードされる唯一の セクションです)。後続する .Dq allow users コマンドは、先行するコマンドに優先します。 あるラベル以外のすべてにアクセスを許すことが可能であり、 そのためにはデフォルトユーザを .Sq default セクションで指定し、新しいユーザリストをこのあるラベルに指定します。 .Pp ユーザ .Sq * が指定されると、全ユーザにアクセスが許されます。 .It allow mode Ns Xo .Op s .Ar mode Ns No ... .Xc デフォルトでは全 .Nm モードが使用可能です。 このコマンドが使用されると、 このコマンドが指定されたラベルのロードに許されるアクセス .Ar mode が制限されます。 .Dq allow users コマンドと同様、 各 .Dq allow modes コマンドは先行するコマンドに優先し、 .Sq default セクションは常に最初にチェックされます。 .Pp 使用可能なモードは次の通りです: .Sq interactive , .Sq auto , .Sq direct , .Sq dedicated , .Sq ddial , .Sq background , .Sq * 。 .Pp マルチリンクモードで動作するときには、 現在存在する回線モードを許可するセクションをロード可能です。 .El .Pp .It alias Ar command Op Ar args このコマンドは .Nm 組込みのエイリアシング (マスカレーディング) 機能を 制御するために使用します。 あなたのシステムでエイリアシングが有効になると (コンパイル時に削除できます)、 次のコマンドが使用可能となります: .Bl -tag -width XX .It alias enable Op yes|no エイリアシングを有効もしくは無効にします。 .Fl alias コマンドラインフラグは .Dq alias enable yes と同じ意味です。 .It alias addr Op Ar addr_local addr_alias このコマンドには、 .Ar addr_alias のデータを .Ar addr_local へリダイレクトします。 少数の実 IP アドレスを持ち、 それらをゲートウェイの後の特定のマシンにマップしたい場合に有用です。 .It alias deny_incoming Op yes|no yes に設定すると、 ファイアウォールとほぼ同様にパケットを落とすことにより、 このコマンドは全入力接続を拒否します。 .It alias help|? このコマンドは、使用可能な alias コマンドのまとめを表示します。 .It alias log Op yes|no このオプションは、alias の様々な統計と情報がファイル .Pa /var/log/alias.log に記録されるようにします。 .It alias port Ar proto Ar targetIP Ns Xo .No : Ns Ar port Ns .Oo .No - Ns Ar port .Oc Ar aliasport Ns .Oo .No - Ns Ar aliasport Ns .Oc .Xc このコマンドは、ポート .Ar aliasport への入力の .Ar proto 接続を、 .Ar targetIP のポート .Ar port へリダイレクトします。 .Ar proto は、 .Dq tcp または .Dq udp です。 .Pp ポート番号の範囲は、前述のように指定可能です。 範囲は同じ大きさであることが必要です。 .Pp あなたのゲートウェイの後のマシンでインターネット電話等を実行したい場合に、 このオプションは有用です。 しかし、ポートあたり内部マシン 1 台のみに接続可能という制限があります。 .It alias pptp Op Ar addr すべての .Em G Ns No eneral .Em R Ns No outing .Em E Ns No encapsulated .Pq Dv IPPROTO_GRE パケットを、ローカルインタフェースアドレスではなく .Ar addr を使用することにより、 .Nm にエイリアスさせます。 これは、マシンの内部ネットワーク上で .Em P Ns No oint to .Em P Ns No oint .Em T Ns No unneling .Em P Ns No rotocol の使用を許します。 .Pp .Ar addr を指定しないと、 .Dv PPTP エイリアスは無効になります。 .It "alias proxy cmd" Ar arg Ns No ... このコマンドは、 .Nm に特定の接続に対する代理をさせ、 これらの接続を指定したサーバにリダイレクトします。 使用可能なコマンドについての詳細は .Xr libalias 3 の .Fn PacketAliasProxyRule の記述を参照してください。 .It alias same_ports Op yes|no 有効になると、 エイリアスライブラリが出力パケットのポート番号を変更しようとすることを 止めさせます。 RPC や LPD といった、 ウェルノウンポート (well known port) からの接続を要求する プロトコルをサポートするのに有用です。 .It alias use_sockets Op yes|no 有効になると、 エイリアスライブラリにソケットを作成させ、 正しい ftp データ入力や IRC 接続を保証できるようになります。 .It alias unregistered_only Op yes|no 登録されていない送信元アドレスの出力パケットのみを、変更します。 RFC1918 によると、登録されていない送信元アドレスは 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 です。 .El .Pp これらのコマンドはソース配布物の .Pa README.alias ファイル中でも議論されています。 .Pp .It Op \&! Ns Xo .No bg Ar command .Xc 指定した .Ar command を、次の語を置換した後に、バックグラウンドで実行します: .Bl -tag -width PEER_ENDDISC .It Li AUTHNAME これは、ローカルの .Ar authname の値と置き換えられます。後述の .Dq set authname コマンドを参照してください。 .It Li ENDDISC これは、ローカルの終点選択値と置き換えられます。 後述の .Dq set enddisc コマンドを参照してください。 .It Li HISADDR これは、相手の IP 番号と置き換えられます。 .It Li INTERFACE これは、使用中のインタフェース名と置き換えられます。 .It Li LABEL これは、最後に使用したラベル名と置き換えられます。 ラベルは、 .Nm のコマンドラインから .Dq load または .Dq dial のコマンドから指定するか、 .Pa ppp.secret ファイルから指定可能です。 .It Li MYADDR これは、ローカルインタフェースに割り当てられた IP 番号と置き換えられます。 .It Li PEER_ENDDISC これは、相手の終点選択番号と置き換えられます。 .It Li PROCESSID これは、現在のプロセス ID と置き換えられます。 .It Li USER これは、PAP もしくは CHAP で認証されたユーザ名と置き換えられます。 通常、この変数は -direct モードでのみ割り当てられます。 この値は、utmp ロギングが有効になっているかどうかに関わらず、利用可能です。 .El .Pp これらの置換は .Dq set proctitle コマンドによっても実行されます。 .Pp コマンド実行中に .Nm を停止させたい場合は、 .Dq shell コマンドを使用してください。 .It clear modem|ipcp Op current|overall|peak... .Dq modem もしくは .Dq ipcp 階層で、指定されたスループット値をクリアします。 .Dq modem を指定する場合にはコンテキストが与えられなければなりません (後述の .Dq link コマンドを参照)。 第 2 引数が与えられない場合、すべての値がクリアされます。 .It clone Ar name Ns Xo .Op \&, Ns Ar name Ns .No ... .Xc 指定されたリンクを複製し、引数の .Ar name に関連づけた新しいリンクを作成します。 このコマンドは、リンクが 1 つしかない場合 (この場合にはそのリンクがデフォルトになります) を除いて後述の .Dq link コマンドから使用する必要があります。 リンクは下記の .Dq remove コマンドで削除できます。 .Pp デフォルトのリンク名は .Dq deflink です。 .It close Op lcp|ccp Ns Op \&! 引数が与えられないと、適切なプロトコル層がダウンし、リンクが閉じられます。 .Dq lcp が指定されると LCP 層がダウンしますが、 .Nm をオフラインにはしません。例えば .Dq slirp のようなものを使用すれば、 .Dq term .Pq 後述 を使用して相手のマシンと会話できます。 .Dq ccp が指定されると適切な圧縮層が閉じられます。 .Dq \&! が使用されると、圧縮層はクローズ状態のままとなります。 使用されない場合には、STOPPED 状態へ再度入り、 相手が更なる CCP 交渉を開始するのを待ちます。 なにが起きようとも、ユーザを .Nm から切り離すことはありませんし、 .Nm を終了させることもありません。 後述の .Dq quit を参照してください。 .It delete Ns Xo .Op \&! .Ar dest .Xc このコマンドは指定した .Ar dest IP アドレスの経路を削除します。 .Ar dest に .Sq ALL が指定された場合、 現在のインタフェースの経路表の非直接エントリと .Sq スティッキー経路 がすべて削除されます。 .Ar dest に .Sq default が指定された場合、デフォルト経路が削除されます。 .Pp .Ar delete! コマンドが使用された場合 .Po 最後の .Dq \&! に注意 .Pc 、存在しない経路について .Nm は文句を言わなくなります。 -.It dial|call Op Ar label -引数なしで使用された場合、このコマンドは +.It dial|call Op Ar label Ns Xo +.No ... +.Xc +このコマンドは、 +.Dq load label +の次に .Dq open -コマンドと同一です。 -.Ar label -が 1 つ以上指定された場合、最初に -.Dq load -が実行されます。 +を指定することと同等です。後方互換性のために提供されています。 .It down Op Ar lcp|ccp 適切な階層をダウンさせますが、 綺麗な方法ではなく、下位層が使用不能になったように見えます。 オープン状態にある有限状態機械でこのコマンドを使用することは、 丁寧ではないとされています。 引数が与えられない場合、すべてのリンクが閉じられます (コンテキストが与えられない場合にはすべてのリンクが終了されます)。 .Sq lcp が指定された場合、 .Em LCP 層は終了されますが、モデムはオフラインに移行せず、 リンクも閉じられません。 .Sq ccp が指定された場合、 関連する圧縮層のみが終了されます。 .It help|? Op Ar command 利用可能なコマンドをリストします。 .Ar command を指定した場合、このコマンドの使用方法を表示します。 .It iface add Ns Xo .Op \&! .Ar addr Ns Op / Ns Ar bits .Op Ar peer .Xc .It iface add Ns Xo .Op \&! .Ar addr .Ar mask .Ar peer .Xc このコマンドは、 .Nm ppp が使用するインタフェースを制御します。 .Ar command は次のいずれかです: .Bl -tag -width XX .It iface add[!] Ar addr[[/bits| mask] peer] 指定された .Ar addr mask peer の組み合わせをインタフェースに追加します。 .Ar mask を指定する代りに、 .Ar /bits を使用可能です .Pq addr との間に空白を入れてはなりません 。指定したアドレスが既に存在する場合、 .Dq \&! を使用していない限りコマンドは失敗します - この場合、 以前のインタフェースアドレスエントリは新しいもので置き換えられ、 ネットマスクと相手のアドレスの変更を許します。 .Pp .Ar addr のみが指定されると、 .Ar bits はデフォルト値 .Dq 32 になり、 .Ar peer はデフォルト値 .Dq 255.255.255.255 になります。 このアドレス (ブロードキャストアドレス) は、 相手のアドレスとして複数存在することを .Nm が唯一許すものです。 .It iface clear .Nm が OPENED 状態または .Fl auto モードの場合にこのコマンドを使用すると、 IPCP 交渉されたアドレス以外の全アドレスがインタフェースから削除されます。 .Nm が OPENED 状態でも .Fl auto モードでもない場合、全インタフェースアドレスが削除されます。 .Pp .It iface delete Ns Xo .Op \&! Ns .No |rm Ns Op \&! .Ar addr .Xc このコマンドは、指定した .Ar addr をインタフェースから削除します。 .Dq \&! が指定されると、現在そのアドレスがインタフェースに割り当てられていなくても、 エラーは報告されません (削除も行われません)。 .It iface show インタフェースの現在の状態と現在のアドレスを表示します。 .Dq ifconfig INTERFACE を実行することと、ほとんど同じです。 .It iface help Op Ar sub-command このコマンドを .Ar sub-command 無しで起動すると、利用可能な .Dq iface サブコマンドと、おのおのの短い書式を表示します。 .Ar sub-command 付きで起動すると、指定した sub-command の書式のみを表示します。 .El .It Op data Ns Xo .No link .Ar name Ns Op , Ns Ar name Ns .No ... Ar command Op Ar args .Xc コマンドが影響を与えるリンクを特定したい場合に、このコマンドを 任意の他のコマンドのプレフィックスとして使うことができます。 これはマルチリンクモードで .Dq clone コマンドを使って複数のリンクを作成した後でのみ適用されます。 .Pp .Ar name は存在するリンク名を指定します。 .Ar name がコンマ区切りのリストの場合には、 .Ar command はそれぞれのリンクに対して実行されます。 .Ar name が .Dq * の場合には、 .Ar command はすべてのリンクに対して実行されます。 .It load Op Ar label Ns Xo .No ... .Xc .Pa ppp.conf ファイルから指定された .Dq label (複数指定可) をロードします。 .Dq label が指定されない場合、 .Dq default ラベルが仮定されます。 +.Pp +.Ar label +セクションが +.Dq set mode , +.Dq open , +.Dq dial +のいずれのコマンドも使用しない場合、 +.Nm +はすぐに接続を確立しようとはしません。 .It open Op lcp|ccp|ipcp これは .Dq close の反対のコマンドです。 -.Dq open -コマンドを引数なしで用いることは -.Dq dial -を引数なしで用いることと同一です。 -すなわちすべての閉じられたリンクが、現在の設定を用いて起動されます ( +閉じられている全リンクがすぐに立ち上がります +(しかしながら auto リンクによっては立ち上がらないものがあります。 +これは、どのような .Dq set autoload -コマンドに基づいた自動リンクの中には起動されないものもあります)。 +コマンドが使用されたかに依存します)。 .Pp LCP 層がすでにオープンされているときに .Dq lcp -を指定すると、LCP は再度交渉されます。 +引数を指定すると、LCP は再度交渉されます。 したがって、種々の LCP オプションを変更したあとで .Dq open lcp コマンドを用いることで、変更を有効にすることができます。 LCP が再度交渉された後、 同意したあらゆる認証が実行されます。 .Pp .Dq ccp 引数が用いられると、関連する圧縮層がオープンされます。 すでにオープンされている場合には、再度交渉されます。 .Pp .Dq ipcp 引数が用いられると、リンクが通常通り起動されます。すでに IPCP が オープンされている場合には、IPCP は再度交渉され、 ネットワークインタフェースが再設定されます。 .Pp このようにして PPP の状態機械を再オープンするのは、 おそらく良い手段ではありません。 接続相手が正しく振る舞わない可能性があるためです。 しかしながら、強制的に CCP もしくは VJ 辞書をリセットする手段としては 便利です。 .It passwd Ar pass すべての .Nm コマンドセットにアクセスするために要求されるパスワードを指定します。 このパスワードは診断ポート ( .Dq set server コマンド参照) に接続するときに必要です。 .Ar pass は .Dq set server コマンドラインで指定します。 .Ar command ログが有効でも、値 .Ar pass は記録されず、文字列 .Sq ******** が記録されます。 .It quit|bye Op all .Dq quit が制御接続もしくはコマンドファイルから実行されると、 ppp はすべての接続を閉じた後に終了します。その他の場合、 つまりユーザが診断ソケットから接続している場合には、 単にその接続が失われます。 .Pp .Ar all 引数が与えられた場合、 .Nm はコマンドがどこから発行されたかに関わらず、 すべての存在する接続を閉じて終了します。 .It remove|rm このコマンドは与えられたリンクを消去します。 これはマルチリンクモードでのみ有用です。リンクは消去する前に .Dv CLOSED 状態になっていなければなりません。 .It rename|mv Ar name このコマンドは与えられたリンクの名前を .Ar name に変更します。 .Ar name がすでに他のリンクで使用されている場合には、失敗します。 .Pp デフォルトリンクの名前は .Sq deflink です。これを .Sq modem , .Sq cuaa0 , .Sq USR のいずれかに変更すると、ログファイルの可読性が向上するかも知れません。 .It save このオプションは (まだ) 実装されていません。 .It set Ns Xo .No Op up .Ar var value .Xc このオプションは次に示す変数の設定のために使用します: .Bl -tag -width XX .It set accmap Ar hex-value ACCMap は非同期制御文字マップ (Asyncronous Control Character Map) を 意味します。 これはいつも相手と交渉され、デフォルト値は 16 進数で 00000000 です。 このプロトコルが必要なのは、 (XON/XOFF などの) 特定の文字を終点間で受渡すことに依存するハードウェアを 使用する場合です。 .Pp XON/XOFF については .Dq set accmap 000a0000 を使用します。 .It set Op auth Ns Xo .No key Ar value .Xc クライアントモードでの PAP または CHAP の交渉で使用される 認証キー (もしくはパスワード) を、指定した値に設定します。 ダイヤルまたはログインスクリプトの .Sq \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\P シーケンスで使用するパスワードもまた指定します。 これにより実際のパスワードは記録されません。 .Ar command または .Ar chat のログが有効な場合、セキュリティの観点から、 .Ar value は .Sq ******** として記録されます。 .Pp .Ar value の最初の文字がエクスクラメーションマーク .Pq Dq \& の場合、 .Nm は残りの文字列を、 .Dq authname と .Dq authkey の値を確定するために実行すべきプログラムとして扱います。 .Pp .Dq \&! を無視し、前述の .Dq !bg コマンドと同様に特殊な名前を同様に置換しながら、 .Ar value は実行すべきプログラムとしてパーズされます。 プログラムを実行すると、 .Nm はこのプログラムに対して 3 行の入力を与えます。 各行は改行文字で終了しています: .Bl -bullet .It CHAP チャレンジに含めて送られるホスト名。 .It CHAP チャレンジに含めて送られるチャレンジ文字列。 .It ローカルに定義された .Dq authname 。 .El .Pp 2 行の出力が期待されています: .Bl -bullet .It CHAP 応答と共に送るべき .Dq authname 。 .It チャレンジと要求 ID で暗号化した .Dq authkey であり、応答は CHAP 応答パケットに含めて送られます。 .El .Pp .Nm をこのように設定するとき、 ホストチャレンジは ASCII の数値もしくは文字であることが期待されます。 指定されたチャレンジに対する適切な秘密情報を、 暗号化デバイスまたは Secure ID カードが計算することが求められています。 .It set authname Ar id クライアントモードでの PAP または CHAP の交渉で使用される 認証 ID を設定します。 .Pp CHAP を enable にして .Fl direct モードで利用すると、 .Ar id は初期認証チャレンジで用いられ、通常はローカルマシン名に設定されます。 .It set autoload Xo .Ar max-duration max-load Op Ar min-duration min-load .Xc これらの設定はマルチリンクモードでのみ適用され、 デフォルト値はすべて 0 です。 1 つ以上の .Ar demand-dial .Po .Fl auto としても知られる .Pc モードのリンクが存在する場合、 .Nm が最初に tun デバイスからデータを読むときには最初のリンクのみが 有効になっています。 次の .Ar demand-dial リンクは、 .Ar max-duration 秒の間、送出キューに .Ar max-load 以上のパケットが存在した場合にのみ開かれます。 両方のデフォルト値が 0 であるため、 .Ar demand-dial リンクはデフォルトでは 1 つだけオープンされます。 .Pp 複数のリンクが開かれていて、少なくともその内の 1 つが .Ar demand-dial リンクである場合、 .Ar min-duration 秒の間、送出キューに最大 .Ar min-packets 未満のパケットしか存在しなかったときに閉じられます。 .Ar min-duration が 0 の場合には、タイマは無効になります。 デフォルトでは両方の値が 0 であるため、 .Ar demand-dial リンクはバンドルされたアイドルタイマが期限切れになるまで アクティブであり続けます。 .It set callback Ar option Ns No ... 引数が与えられない場合、コールバックは disable になります。 そうでない場合には、 .Nm は与えられた .Ar option でコールバックを要求します (もしくは .Ar direct モードでは受け付けます)。 クライアントモードで、 .Ar option の否定応答が返されると、 .Nm は他に選択肢がなくなるまで別の .Ar option 要求を出します ( .Ar option のひとつとして .Dq none を指定していた場合を除きます)。 サーバモードでは、 .Nm は与えられるプロトコルをなんでも受け付けますが、 クライアントがいずれかひとつを要求する .Em 必要があります 。コールバックをオプションにしたいのであれば、オプションとして .Ar none を指定する必要があります。 .Pp .Ar option は下記の通りです (優先度順): .Pp .Bl -tag .It auth コールバック応答側は、認証に基づいてコールバック番号を 決定することが求められます。 .Nm がコールバック応答側である場合、番号は .Pa /etc/ppp/ppp.secret 中の接続先エントリの 5 番目のフィールドで指定されます。 .It cbcp Microsoft コールバック制御プロトコルが用いられます。後述の .Dq set cbcp を参照してください。 .It E.164 *| Ns Xo .Ar number Ns Op , Ns Ar number Ns .No ... .Xc コールバック要求側が .Ar number を指定します。 .Nm がコールバック応答側である場合、 .Ar number は許可する番号をコンマで区切って並べたリスト、もしくは 任意の番号を許可するという意味の .Dq \&* とします。 .Nm がコールバック要求側である場合、1 つの数字だけを指定します。 .Pp .Dq \&* を用いる場合、このオプションはとても危険なものとなることに 注意してください。 というのは、悪意あるコールバック要求者が、最初の認証なしに 電話すべき番号として任意の (国際通話番号も可能です) 番号を 伝えることができるからです。 .It none 接続相手がコールバックをまったく望まない場合、 .Nm はそのことを受け入れ、接続を終了するのではなく コールバックせずに処理を続けます。 コールバックをオプションにしたいのであれば、これを指定する必要があります。 .El .Pp .It set cbcp Oo Xo .No *| Ns Ar number Ns No .Oo .No , Ns Ar number Ns .Oc .No ... .Op Ar delay Op Ar retry .Oc .Xc 引数が与えられない場合、CBCP (Microsofts CallBack Control Protocol) は disable です。言い換えれば .Dq set callback コマンドで CBCP を設定すると .Nm が CBCP フェーズでコールバック要求を行わなくなります。 そうでない場合、 .Nm は与えられた電話番号 .Ar number を使おうとします。 .Pp サーバモード .Pq Fl direct では、 .Dq \&* を使わない限り .Nm はクライアントがこれらの番号の 1 つを使うことを主張します。 .Dq \&* を使った場合には、クライアントが番号を指定するものと想定します。 .Pp クライアントモードでは .Nm は与えられた番号 (そのうち接続相手と合意可能なもの) を使用しようとします。 .Dq \&* が指定された場合には、 .Nm 接続相手が番号を指定するものと想定します。 .It set cd Ar seconds Ns Op \&! 通常、ログインスクリプト完了の 1 秒後に、 .Nm はキャリアの存在をチェックします。 キャリアが設定されていないと、 デバイスがキャリアをサポートしていない (ほとんどのヌルモデムケーブルの場合がそうです) と .Nm は仮定し、この事実を記録して、キャリアのチェックを止めます。 しかし、モデムによってはキャリアのアサートに時間がかかるものがあるので、 リンクが落ちたときを .Nm ppp は検知できなくなります。 .Ar seconds は、ログインスクリプトが完了してから最初のキャリアチェックを行う前に、 .Nm が待つべき秒数を指定します。 .Pp .Ar seconds の直後にエクスクラメーションマーク .Pq Dq \&! がある場合、 .Nm はキャリアを .Em 要求 します。 最初のチェックでキャリアを検知しないと、リンクは切断されているとみなされます。 .Pp リンクが tty でない場合、キャリアの .Em 必要性 は無視されます。 .It set choked Op Ar timeout これは .Nm がすべての未送出パケットを破棄する前に 送出キュー詰まりを保持する秒数を設定します。 .Ar timeout が 0 以下もしくは .Ar timeout が指定されない場合、デフォルト値の .Em 120 秒 に設定されます。 .Pp 送出キュー詰まりは .Nm がローカルネットワークから特定の数の送出パケットを読み込んだが、 リンク失敗 (接続相手がビジーなど) のためにデータを送れない場合に 発生します。 .Nm はパケットを無限には読み込みません。代りに .Em 20 パケット (マルチリンクモードでは .Em 20 No + .Em nlinks No * .Em 2 パケット) まで読み込み、 .Ar timeout 秒経過するか、1 つ以上のパケットが送られるまで ネットワークインタフェースの読み込みを停止します。 .Pp .Ar timeout 秒が経過すると、すべての未送出パケットは破棄されます。 .It set ctsrts|crtscts on|off ハードウェアフロー制御をセットします。 デフォルトではハードウェアフロー制御は .Ar on です。 .It set deflate Ar out-winsize Op Ar in-winsize DEFLATE アルゴリズムの、 デフォルトの出力ウィンドウサイズと入力ウィンドウサイズを設定します。 .Ar out-winsize および .Ar in-winsize は、 .Em 8 から .Em 15 までの値をとる必要があります。 .Ar in-winsize が指定されると、 .Nm はこのウィンドウサイズの使用を強要し、相手が他の値を示しても受け入れません。 .It set dns Op Ar primary Op Ar secondary .Dq accept dns コマンドで使用される、DNS 上書きを設定します。 詳細については前述の .Dq accept コマンドの記述を参照してください。本コマンドは .Dq enable dns を使用して要求される IP 番号には影響を与えません。 .It set device|line Xo .Ar value Ns No ... .Xc .Nm が使用するデバイスを、指定された .Dq value に設定します。 全シリアルデバイス名は .Pa /dev/ から始まることが仮定されています。 .Dq value が .Pa /dev/ から始まらない場合、エクスクラメーションマーク .Pq Dq \&! から始めるか、 .Dq host:port の形式である必要があります。 .Pp エクスクラメーションマークで始まる場合、 デバイス名の残りはプログラム名として扱われ、 そのデバイスがオープンされるときにそのプログラムが実行されます。 標準入出力およびエラーは .Nm にフィードバックされ、それらが通常デバイスであるかのように読み書きされます。 .Pp .Dq host:port の組が与えられる場合、 .Nm は、指定された .Dq host の指定された .Dq port と接続しようとします。 詳細は上述の .Em PPP オーバ TCP の節を参照してください。 .Pp 複数の .Dq value を指定した場合、 .Nm は成功するか全デバイスについて実行し終るまで、順番にオープンを試みます。 .It set dial Ar chat-script 相手へダイヤルする際に使用されるチャットスクリプトを指定します。 後述の .Dq set login コマンドも参照してください。 チャットスクリプトのフォーマットの詳細については、 .Xr chat 8 と設定ファイルの例を参照してください。 次の特殊な .Sq value をチャットスクリプトに指定可能です: .Bd -unfilled -offset indent .It \\\\\\\\\\\\\\\\c .Sq 送信 文字列の最後の文字として使用した場合、 改行を追加してはならないことを意味します。 .It \\\\\\\\\\\\\\\\d チャットスクリプトがこのシーケンスに出会うと、2 秒待ちます。 .It \\\\\\\\\\\\\\\\p チャットスクリプトがこのシーケンスに出会うと、1/4 秒待ちます。 .It \\\\\\\\\\\\\\\\n 改行文字と置き換えられます。 .It \\\\\\\\\\\\\\\\r 復改文字と置き換えられます。 .It \\\\\\\\\\\\\\\\s 空白文字と置き換えられます。 .It \\\\\\\\\\\\\\\\t タブ文字と置き換えられます。 .It \\\\\\\\\\\\\\\\T 現在の電話番号と置き換えられます (後述の .Dq set phone 参照)。 .It \\\\\\\\\\\\\\\\P 現在の .Ar authkey 値と置き換えられます (前述の .Dq set authkey 参照)。 .It \\\\\\\\\\\\\\\\U 現在の .Ar authname 値と置き換えられます (前述の .Dq set authname 参照)。 .Ed .Pp 2 つのパーザがこれらのエスケープシーケンスを検査することに注意してください。 .Sq チャットのパーザ にエスケープ文字を見せるには、 .Sq コマンドパーザ からエスケープする必要があります。 つまり、2 つのエスケープを使用する必要があります。例えば次のようにします: .Bd -literal -offset indent set dial "... ATDT\\\\T CONNECT" .Ed .Pp チャットスクリプトから外部コマンドを実行することもできます。 そうするためには、 受信待ち文字列または送信文字列の最初の文字をエクスクラメーションマーク .Pq Dq \&! にします。 コマンドが実行されると、標準入力と標準出力がモデムデバイス ( .Dq set device 参照) に向けられ、標準エラー出力が .Nm に読まれて受信待ち文字列もしくは送信文字列に置き換えられます。 .Nm が対話モードで実行されている場合、ファイルデスクリプタ 3 は .Pa /dev/tty に接続されます。 .Pp 例えば (読み易さのために折り返しています); .Bd -literal -offset indent set login "TIMEOUT 5 \\"\\" \\"\\" login:--login: ppp \e word: ppp \\"!sh \\\\\\\\-c \\\\\\"echo \\\\\\\\-n label: >&2\\\\\\"\\" \e \\"!/bin/echo in\\" HELLO" .Ed .Pp は次のチャットシーケンスになります (ダイヤル前の .Sq set log local chat コマンドによる出力): .Bd -literal -offset indent Dial attempt 1 of 1 dial OK! Chat: Expecting: Chat: Sending: Chat: Expecting: login:--login: Chat: Wait for (5): login: Chat: Sending: ppp Chat: Expecting: word: Chat: Wait for (5): word: Chat: Sending: ppp Chat: Expecting: !sh \\-c "echo \\-n label: >&2" Chat: Exec: sh -c "echo -n label: >&2" Chat: Wait for (5): !sh \\-c "echo \\-n label: >&2" --> label: Chat: Exec: /bin/echo in Chat: Sending: Chat: Expecting: HELLO Chat: Wait for (5): HELLO login OK! .Ed .Pp 複数レベルのネストについて、 エスケープ文字の使用方法に (再度) 注意してください。 ここでは、4 つのパーザが動作してます。 1 番目は、オリジナルの行をパーズし、3 つの引数として読みます。 2 番目は、第 3 引数を 11 個の引数として読みます。 ここで、 .Dq \&- 記号がエスケープされていることが重要です。 そうでなければパーザは、 受信待ち-送信-受信待ちのシーケンスとして見てしまいます。 .Dq \&! 文字を見付けると、実行パーザは最初のコマンドを 3 つの引数として読み、 .Xr sh 1 自身が .Fl c 以降の引数を展開します。 我々は出力をモデムに送り返したいので、 1 番目の例では出力をファイルデスクリプタ 2 (stderr) にリダイレクトして .Nm 自身に送信および記録させ、 2 番目の例では単に stdout に出力して直接モデムに出力させます。 .Pp もちろん全体を、組み込みのものではなく外部の .Dq chat コマンドに実行させることが可能です。 良い代替方法については .Xr chat 8 を参照してください。 .Pp 実行される外部コマンドは、 .Dq !bg コマンドと同様に、特殊語の展開対象となります。 .It set enddisc Op label|IP|MAC|magic|psn value このコマンドは、ローカル終点の選択値を設定します。 LCP 交渉の前に設定されると、 .Nm は LCP 終点選択値オプションを使用して、相手に情報を送ります。 次の選択値を設定可能です。 .Bd -unfilled -offset indent .It Li label 現在のラベルが使用されます。 .It Li IP 当方のローカル IP 番号を使用します。 LCP は IPCP より前に交渉されますので、 IPCP 層が後からこの値を変更することが可能です。 その場合、手動でリセットしない限り、終点の選択値は古い値のままとなります。 .It Li MAC 前述の .Ar IP オプションに似ていますが、 ローカル IP 番号に関係する MAC アドレスが使用される点が異なります。 ローカル IP 番号がどのイーサネットインタフェースにも存在しない場合、 本コマンドは失敗します。 .Pp ローカル IP 番号のデフォルトは、 マシンホスト名がなんであれ、その名前になりますので、通常 .Dq set enddisc mac を .Dq set ifaddr コマンドよりも先に実行します。 .It Li magic 20 桁の乱数が使用されます。 .It Li psn Ar value 指定された .Ar value が使用されます。 .Ar value は、絶対的な公衆スイッチネットワーク番号の先頭に 国コードを付けたものであるべきです。 .Ed .Pp 引数が与えられない場合、終点の選択値はリセットされます。 .It set escape Ar value... このオプションは前述の .Dq set accmap オプションに似ています。 リンクを経由する時に .Sq エスケープ される文字を指定するために使用します。 .It set filter dial|alive|in|out Ar rule-no Xo .No permit|deny .Oo Ar src_addr Ns Op / Ns Ar width .Op Ar dst_addr Ns Op / Ns Ar width .Oc Oo tcp|udp|icmp Op src lt|eq|gt Ar port .Op dst lt|eq|gt Ar port .Op estab .Op syn .Op finrst .Oc .Xc .Nm は 4 つのフィルタセットをサポートします。 .Em alive フィルタは接続を活性状態に保つパケットを指定します - アイドルタイマをリセットします。 .Em dial フィルタは、 .Fl auto モード時に .Nm にダイヤルさせるパケットを指定します。 .Em in フィルタは、マシンに入力可能なパケットを指定します。 .Em out フィルタは、マシンから出力可能なパケットを指定します。 .Pp フィルタリングは、 エイリアスエンジンが行う IP 変更の前に適用されます。 デフォルトでは、全フィルタセットが全パケットの通過を許可します。 ルールは .Ar rule-no に従って順番に処理されます。 各セットに対し 40 までのルールを指定可能です。 指定されるセットにおけるどのルールにもマッチしないパケットは破棄されます。 .Em in と .Em out のフィルタでは、パケットをドロップすることを意味します。 .Em alive フィルタでは、アイドルタイマをリセットしないことを意味します。 .Em dial フィルタではダイヤルさせることにはならないことを意味します。 ダイヤルを引き起こさないパケットは、 キューされるのではなく、捨てられることに注意してください。 上述の .Sx パケットのフィルタリング の節を参照してください。 .It set hangup Ar chat-script モデムを閉じる前にこれをリセットする時に使用する、 チャットスクリプトを指定します。 通常は不要であるべきですが、 閉じる時に自己を正しくリセットできないデバイスに対して使用できます。 .It set help|? Op Ar command 利用可能な set コマンドのまとめを表示するか、 .Ar command が指定されると、コマンドの使用方法を表示します。 .It set ifaddr Oo Ar myaddr Ns .Op / Ns Ar \&nn .Oo Ar hisaddr Ns Op / Ns Ar \&nn .Oo Ar netmask .Op Ar triggeraddr .Oc Oc .Oc このコマンドは、IPCP 交渉の間使用される IP アドレスを指定します。 アドレスのフォーマットは次の通りです。 .Pp .Dl a.b.c.d/nn .Pp ここで .Dq a.b.c.d は希望する IP アドレスであり、 .Ar nn はこのうち何ビットが有効であるかを示します。 .No / Ns Ar nn が省略された場合、デフォルトの .Dq /32 になります。 ただし IP アドレスが 0.0.0.0 である場合には、マスクのデフォルトは .Dq /0 です。 .Pp .Ar hisaddr に IP 番号の範囲として .Bd -literal -offset indent .Ar \&IP Ns Oo \&- Ns Ar \&IP Ns Xo .Oc Oo , Ns Ar \&IP Ns .Op \&- Ns Ar \&IP Ns .Oc No ... .Xc .Ed .Pp のフォーマットを指定できます。例えば: .Pp .Dl set ifaddr 10.0.0.1 10.0.1.2-10.0.1.10,10.0.1.20 .Pp は .Dq 10.0.0.1 のみをローカル IP 番号として交渉しますが、指定された 10 個の IP 番号から 相手に割り当てを行います。 相手がこれらの番号のうちの 1 つを要求し、この番号が未使用な場合には、 .Nm は相手の要求を認めます。 相手がリンクを再確立して前回割り当てていた IP 番号を使用したい場合に有用です (既存の TCP 接続を保存します)。 .Pp 相手が要求した IP 番号が範囲外もしくは使用中の場合、 .Nm は範囲内の未使用 IP 番号をランダムに指示します。 .Pp .Ar triggeraddr が指定された場合、この値が .Ar myaddr の代りに IPCP 交渉で使用されます。 ただし、 .Ar myaddr の範囲のアドレスのみ受け入れられます。 これが有用なのは、相手が .Dq 0.0.0.0 を要求しない限り IP アドレスを割り当てようとしない .Dv PPP 実装と交渉するときです。 .Pp .Fl auto モードでは設定ファイルの .Dq set ifaddr 行を読んだ直後に .Nm がインタフェースを構成することに注意してください。 他のモードではこれらの値は IPCP 交渉で使用され、 IPCP 層がアップするまでこれらのインタフェースは構成されません。 .Pp .Po PAP か CHAP が .Dq enable である場合 .Pc クライアントが自己証明をした後では、 .Ar HISADDR 引数は .Pa ppp.secret ファイルの第 3 引数で上書きされうることに注意してください。 .Sx 内向き接続の認証 の節を参照してください。 .Pp どの場合でも、インタフェースが既に構成されている場合には、 .Nm はインタフェースの IP 番号を保存して、 既にバインドされているソケットが正しいままであるようにします。 .It set ccpretry|ccpretries Oo Ar timeout .Op Ar reqtries Op Ar trmtries .Oc .It set chapretry|chapretries Oo Ar timeout .Op Ar reqtries .Oc .It set ipcpretry|ipcpretries Oo Ar timeout .Op Ar reqtries Op Ar trmtries .Oc .It set lcpretry|lcpretries Oo Ar timeout .Op Ar reqtries Op Ar trmtries .Oc .It set papretry|papretries Oo Ar timeout .Op Ar reqtries .Oc これらのコマンドは .Nm が有限状態機械 (Finite State Machine; FSM) に要求パケットを送る前に 待つ秒数を指定します。 .Ar timeout のデフォルトは、全 FSM において 3 秒です (ほとんどの場合十分です)。 .Pp .Ar reqtries を指定すると、 相手から応答を受信しなくても諦めるまでに設定要求を作成する回数を、 .Nm に指示します。 デフォルトの試行回数は、CCP, LCP, IPCP の場合 5 回であり、 PAP と CHAP の場合 3 回です。 .Pp .Ar trmtries を指定すると、 相手の応答を待つことを諦めるまでに終了要求を作成する回数を、 .Nm に指示します。 デフォルトの試行回数は 3 回です。 認証プロトコルは終了されませんので、 PAP や CHAP に対して指定することは不正です。 .Pp 合意できない相手との交渉を避けるために、 どのような交渉セッションであっても諦めたり層をクローズする前には、 .Nm は最大で .Ar reqtries の設定値の 3 倍までのみ送信します。 .It set log Xo .Op local .Op +|- Ns .Ar value Ns No ... .Xc このコマンドにより現在のログレベルを修正できます。 詳細はログ機能の節を参照してください。 .It set login chat-script この .Ar chat-script はダイヤルスクリプトを補います。 もし両方が指定された場合、ダイヤルスクリプトの後で、 ログインスクリプトが実行されます。 ダイヤルスクリプト中で使用可能なエスケープシーケンスはここでも使用可能です。 .It set lqrperiod Ar frequency このコマンドは、 .Em LQR または .Em ECHO LQR のパケットが送信される頻度 .Ar frequency を秒で指定します。デフォルトは 30 秒です。 相手に LQR 要求を送りたい場合には、 .Dq enable lqr コマンドもまた使用する必要があります。 .It set mode Ar interactive|auto|ddial|background 指定したリンクにおけるモード .Sq mode を変更できます。通常マルチリンクモードでのみ有用ですが、 単一リンクモードでも使用可能です。 .Pp .Sq direct または .Sq dedicated のリンクを変更することはできません。 .Pp 注釈: コマンド .Dq set mode auto を発行し、IP エイリアシングが enable にされていた場合、後で .Dq enable iface-alias を行うと便利です。 .Nm が必要なアドレス変換を行うようにすることにより、 相手が当方に新しい (動的な) IP アドレスを割り当てたとしても、 リンクがアップすると接続のトリガとなるプロセスが接続できるようにします。 .It set mrru Op Ar value このオプションを設定すると、 マルチリンクプロトコルまたは MP としても知られる、 マルチリンク PPP 交渉を有効にします。 MRRU (Maximum Reconstructed Receive Unit) の値にはデフォルトはありません。 引数を指定しないと、マルチリンクモードは無効にされます。 .It set mru Op Ar value デフォルトの MRU (最大受信単位; Maximum Receive Unit) は 1500 です。 この値を増加させた場合、相手は MTU を増加させても *かまいません*。 デフォルトの MRU より減らすことは意味がありません。 なぜなら、 .Em PPP プロトコルでは少なくとも 1500 オクテットのパケットを 受信できなければ *ならない* からです。 引数が指定されないと、1500 が仮定されます。 .It set mtu Op Ar value デフォルトの MTU は 1500 です。 交渉時に、(296 バイト未満でなければ) 相手が望むいかなる MRU および MRRU も受け付け可能です。 MTU が設定されると、 .Nm は .Ar value よりも小さい MRU/MRRU の値を受け付けなくなります。 交渉が完了すると、相手がより大きな MRU/MRRU を要求していたとしても、 インタフェースに対して MTU が割り当てられます。 当方のパケットサイズを制限するのに有用です (よりよくバンド幅を共有できるようになりますが、 ヘッダデータが増えるというコストがかかります)。 .Pp .Ar value を指定しないと、1500 または相手が要求した値が使用されます。 .It set nbns Op Ar x.x.x.x Op Ar y.y.y.y このオプションは、相手の要求によって返される Microsoft NetBIOS ネームサーバの値を設定します。 値を指定しないと、 .Nm はそのような要求を拒否するようになります。 .It set openmode active|passive Op Ar delay デフォルトでは、 .Ar openmode は常に、1 秒の .Ar delay をもって .Ar active となります。 この場合、 .Nm は回線が設定されてから 1 秒が経過したなら いつでも LCP/IPCP/CCP の交渉を開始します。 相手が交渉を開始するのを待ちたい場合は、値 .Dq passive を使用します。 直ちにもしくは 1 秒以上待ってから交渉を開始したい場合、 .Ar delay を秒単位で指定します。 .It set parity odd|even|none|mark 回線のパリティを設定できます。デフォルト値は .Ar none です。 .It set phone Ar telno Ns Xo .Oo \&| Ns Ar backupnumber .Oc Ns ... Ns Oo : Ns Ar nextnumber .Oc Ns ... .Xc ダイヤルおよびログインのチャットスクリプトで使用される \\\\T 文字列が 置き換えられる電話番号を指定できます。 複数の電話番号をパイプ .Pq Dq \&| もしくはコロン .Pq Dq \&: で区切って指定可能です。 .Pp パイプの後の番号がダイヤルされるのは、 直前の番号へのダイヤルもしくはログインのスクリプトが失敗した場合のみです。 回線の切断の理由にかかわらず、 コロンで区切られた番号は順番に試行されます。 .Pp 複数の番号を指定した場合、接続が確立するまで .Nm はこのルールに基づいてダイヤルします。 再試行の最大値は、後述の .Dq set redial で指定します。 .Fl background モードでは各番号は最大 1 回試行されます。 .It set Op proc Ns Xo .No title Op Ar value .Xc .Xr ps 1 が表示する現在のプロセスタイトルを、 .Ar value に従って変更します。 .Ar value が指定されないと、元のプロセスタイトルが回復されます。 シェルコマンドが行うすべての語置換 (前述の .Dq bg コマンドを参照してください) は、ここでも行われます。 .Pp プロセスタイトル中に USER が必要な場合、 .Dq set proctitle コマンドは .Pa ppp.linkup 中に登場する必要があることに注意してください。 .Pa ppp.conf が実行されているときには、分からないからです。 .It set radius Op Ar config-file このコマンドは RADIUS サポートを (組み込まれていれば) 有効にします。 .Ar config-file は、 .Xr radius.conf 5 に記述されている radius クライアント設定ファイルを参照します。 PAP または CHAP が .Dq enable にされている場合、 .Nm は .Em \&N Ns No etwork .Em \&A Ns No ccess .Em \&S Ns No erver として振舞い、設定されている RADIUS サーバを使用して認証し、 .Pa ppp.secret ファイルやパスワードデータベースによる認証は行いません。 .Pp PAP と CHAP のいずれも有効になっていない場合、 .Dq set radius は効果がありません。 .Pp .Nm は、RADIUS 応答中の、次の属性を使用します: .Bl -tag -width XXX -offset XXX .It RAD_FRAMED_IP_ADDRESS 相手の IP アドレスは指定された値に設定されました。 .It RAD_FRAMED_IP_NETMASK tun インタフェースのネットマスクは指定された値に設定されました。 .It RAD_FRAMED_MTU 指定された MTU が LCP 交渉で合意された相手の MRU より小さい場合であり、 *かつ* 設定された MTU のいずれよりも小さい場合 ( .Dq set mru コマンド参照)、 tun インタフェースの MTU は指定した値に設定されます。 .It RAD_FRAMED_COMPRESSION 受信した圧縮タイプが .Dq 1 の場合、 .Dq disable vj 設定コマンドが指定されていたとしても、IPCP 交渉において .Nm は VJ 圧縮を要求します。 .It RAD_FRAMED_ROUTE 受信した文字列は、 .Ar dest Ns Op / Ns Ar bits .Ar gw .Op Ar metrics という書式であると期待します。 指定した metrics は無視されます。 .Dv MYADDR と .Dv HISADDR は、 .Ar dest と .Ar gw の正当な値として理解されます。 .Dq default を .Ar dest に使用可能であり、デフォルト経路を指定します。 .Dq 0.0.0.0 は、 .Ar dest に対する .Dq default と同じであると解釈され、 .Ar gw に対する .Dv HISADDR と同じであると解釈されます。 .Pp 例えば、戻り値 .Dq 1.2.3.4/24 0.0.0.0 1 2 -1 3 400 は 1.2.3.0/24 ネットワークへは .Dv HISADDR を介するという経路表エントリになり、 戻り値 .Dq 0.0.0.0 0.0.0.0 または .Dq default HISADDR は .Dv HISADDR 行きのデフォルト経路になります。 .Pp すべての RADIUS の経路は、 すべてのスティッキーな経路が適用された後で適用されます。 これにより、RADIUS の経路が、設定済みの経路に優先します。 これは、 .Dv MYADDR または .Dv HISADDR というキーワードを含まない RADIUS の経路にもあてはまります。 .Pp .El RADIUS サーバから受信した値は、 .Dq show bundle を使用して見られます。 .It set reconnect Ar timeout ntries (CD の喪失もしくは LQR の失敗により) 予想外の回線切断となった場合、 指定した .Ar timeout の後に接続が再確立されます。 回線は最大 .Ar ntries 回、再接続されます。 .Ar ntries のデフォルトは 0 です。 .Ar timeout に .Ar random を指定すると、1 から 30 秒の間の任意時間の停止となります。 .It set recvpipe Op Ar value ルーティングテーブルの RECVPIPE 値を設定します。 最適な値は、MTU 値を 2 倍した値を丁度越える値です。 .Ar value が指定されないまたは 0 の場合、デフォルトの、カーネルが制御する値を使用します。 .It set redial Ar secs Ns Xo .Oo + Ns Ar inc Ns .Op - Ns Ar max Ns .Oc Op . Ns Ar next .Op Ar attempts .Xc .Nm に .Ar attempts 回のリダイヤルを指示できます。 1 より大きな数を指定した場合 (前述の .Ar set phone 参照)、 各番号にダイヤルする前に、 .Ar next だけ停止します。 最初の番号に戻ってダイヤル開始する前に .Ar secs だけ停止します。リテラル値 .Dq Li random を .Ar secs および .Ar next のところで使用でき、1 から 30 秒の間の任意時間の停止となります。 .Pp .Ar inc が指定されると、 .Nm が新規番号を試すたびに、この値が .Ar secs に加えられます。 .Ar secs が増加されるのは、最大 .Ar maxinc 回だけです。 .Ar maxinc のデフォルト値は 10 です。 .Ar attempts が経過した後でも .Ar secs の遅延は効果があるので、 すぐに手動でダイヤルしても何も起ってないように見えるかもしれません。 すぐにダイヤルする必要がある場合、 .Dq \&! を .Dq open キーワードの直後に付けます。 更なる詳細については、前述の .Dq open の記述を参照してください。 .It set sendpipe Op Ar value ルーティングテーブルの SENDPIPE 値を設定します。 最適な値は、MTU 値を 2 倍した値を丁度越える値です。 .Ar value が指定されないまたは 0 の場合、デフォルトの、カーネルが制御する値を使用します。 .It set server|socket Ar TcpPort|LocalName|none password Op Ar mask このコマンドは .Nm に指定したソケットもしくは .Sq 診断ポート にてコマンド接続の入力を listen するように指示します。 .Pp 語 .Ar none は .Nm に既に存在するソケットを閉じさせます。 .Pp ローカルドメインソケットを指定したい場合、 .Ar LocalName に絶対ファイル名を指定します。そうしないと、TCP ポートの名前もしくは番号 であると解釈されます。 ローカルドメインソケットに使用される 8 進 umask を指定する必要があります。 .Sq 0 から始まる 4 桁 8 進数で指定します。 umask の詳細については .Xr umask 2 を参照してください。TCP ポート名がどのように変換されるかについては .Xr services 5 を参照してください。 .Pp このソケットにクライアントが接続するときに使用されねばならないパスワードも 指定可能です ( 前述の .Dq passwd コマンドを使用します)。 パスワードが空文字列として指定される場合、 クライアントが接続するときにパスワードを必要とされません。 .Pp ローカルドメインソケットが指定される場合、ソケット名中の最初の .Dq %d シーケンスは現在のインタフェースユニット番号で置換されます。 複数接続のために同一のプロファイルを使用したい場合に便利です。 .Pp 同様の方法で TCP ソケットの前に .Dq + 文字を付けることができます。 この場合、現在のインタフェースユニット番号が、ポート番号に加算されます。 .Pp .Nm をサーバソケットと共に使用する場合、通信機構として .Xr pppctl 8 コマンドを使用することが好ましいです。 現在 .Xr telnet 1 も使用可能ですが、将来リンク暗号化が実装されるかもしれませんので、 .Xr telnet 1 に依存しないようにしてください。 .It set speed Ar value シリアルデバイスの速度を指定します。 .It set stopped Op Ar LCPseconds Op Ar CCPseconds このオプションが指定されると、 指定した FSM (有限状態機械; Finite State Machine) が停止状態になってから .Dq seconds で指定した秒数だけ停止したのち、 .Nm はタイムアウトします。 このオプションは、 相手が終了要求を送り我々が終了確認応答を送ったにもかかわらず 実際には接続を閉じない場合に、有用かもしれません。また、 .Dq set openmode passive を使用した場合に相手が指定時間内に Configure Request を送らないことを タイムアウト検出する場合には、便利かもしれません。 .Dq set log +lcp +ccp を使用すると、 .Nm は適切な状態遷移を記録します。 .Pp デフォルト値は 0 であり、 停止状態による .Nm のタイムアウトは発生しません。 .Pp この値は openmode の遅延 (上述の .Dq set openmode 参照) より小さくなってはなりません。 .It set timeout Ar idleseconds このコマンドはアイドルタイマの値を指定します。 更なる詳細については .Sx アイドルタイマの設定 というタイトルの節を参照してください。 .It set vj slotcomp on|off このコマンドは .Nm に VJ スロット圧縮を交渉するか否かを指示します。 デフォルトではスロット圧縮は .Ar on です。 .It set vj slots Ar nslots このコマンドは最初の .Ar slots 番号を指定します。 .Nm は VJ 圧縮が enable されている時には、 これを使用して相手と交渉をします (前述の .Sq enable コマンドを参照してください)。 デフォルト値は 16 です。 .Ar nslots は .Ar 4 以上 .Ar 16 以下の値です。 .El .Pp .It shell|! Op Ar command .Ar command が指定されない場合、 .Dv SHELL 環境変数で指定されるシェルが起動されます。 そうでなければ指定された .Ar command が実行されます。 語の置換は、前述の .Dq !bg コマンドと同様の方法で行われます。 .Pp 文字 ! を使用する場合、コマンドとの間に空白が必要です。 このコマンドはフォアグラウンドで実行されることに注意してください - .Nm はプロセスが終了するまでは実行を続けません。 バックグラウンドでコマンド処理を行いたい場合には、 .Dv bg コマンドを使用してください。 .It show Ar var このコマンドを使用して、次の内容を確認できます: .Bl -tag -width 20 .It show bundle 現在のバンドル設定を表示します。 .It show ccp 現在の CCP 圧縮統計を表示します。 .It show compress 現在の VJ 圧縮統計を表示します。 .It show escape 現在のエスケープ文字を表示します。 .It show filter Op Ar name 指定したフィルタの現在のルールをリストします。 .Ar name を指定しないと、全フィルタが表示されます。 .It show hdlc 現在の HDLC 統計を表示します。 .It show help|? 利用可能な show コマンドのまとめを表示します。 .It show iface 現在のインタフェース情報 .Po Dq iface show と同じです .Pc を表示します。 .It show ipcp 現在の IPCP 統計を表示します。 .It show lcp 現在の LCP 統計を表示します。 .It show Op data Ns Xo .No link .Xc 高レベルリンク情報を表示します。 .It show links 利用可能な論理リンクのリストを表示します。 .It show log 現在のログ値を表示します。 .It show mem 現在のメモリ統計を表示します。 .It show modem 現在の下位レベルリンク情報を表示します。 .It show mp マルチリンク情報を表示します。 .It show proto 現在のプロトコルの総計を表示します。 .It show route 現在の経路表を表示します。 .It show stopped 現在の stopped タイムアウト値を表示します。 .It show timer アクティブアラームタイマを表示します。 .It show version .Nm の現在のバージョン番号を表示します。 .El .Pp .It term 端末モードに移行します。 キーボードからタイプした文字はモデムに送られます。 モデムから読んだ文字はスクリーンに表示されます。 モデムの相手側に .Nm の相手が認識された時には、 .Nm は自動的にパケットモードを有効にし、コマンドモードに戻ります。 .El .Pp .Sh 更に詳細について .Bl -bullet .It 設定ファイルの例を読んでください。良い情報源です。 .It 何が利用できるかについては、 .Dq help , .Dq alias ? , .Dq enable ? , .Dq set ? , .Dq show ? コマンドを使って、オンライン情報を取得してください。 .It 次の URL に有用な情報があります: .Bl -bullet -compact .It http://www.FreeBSD.org/FAQ/userppp.html .It http://www.FreeBSD.org/handbook/userppp.html .El .Pp .El .Pp .Sh 関連ファイル .Nm は、4 つのファイル .Pa ppp.conf , .Pa ppp.linkup , .Pa ppp.linkdown , .Pa ppp.secret を参照します。 これらのファイルは .Pa /etc/ppp に置かれます。 .Bl -tag -width XX .It Pa /etc/ppp/ppp.conf システムのデフォルト設定ファイル。 .It Pa /etc/ppp/ppp.secret 各システム用の認証設定ファイル。 .It Pa /etc/ppp/ppp.linkup .Nm がネットワークレベルの接続を確立した時に実行されるファイル。 .It Pa /etc/ppp/ppp.linkdown .Nm がネットワークレベルの接続を閉じる時にチェックするファイル。 .It Pa /var/log/ppp.log ログとデバッグ情報のファイル。このファイル名は .Pa /etc/syslogd.conf にて指定されます。詳細は .Xr syslog.conf 5 を参照してください。 .It Pa /var/spool/lock/LCK..* tty ポートをロックするためのファイル。詳細は .Xr uucplock 3 を参照してください。 .It Pa /var/run/tunN.pid tunN デバイスに接続されている .Nm プログラムのプロセス ID (pid) 。 ここで .Sq N はデバイスの番号です。 .It Pa /var/run/ttyXX.if このポートで使われている tun インタフェース。 このファイルも .Fl background , .Fl auto , .Fl ddial のいずれかのモードの時のみ作成されます。 .It Pa /etc/services サービス名でポート番号が指定されている場合に、ポート番号を取得します。 .It Pa /var/run/ppp-authname-class-value マルチリンクモードでは、 相手の認証名称 .Pq Sq authname と相手の終点選択クラス .Pq Sq class と相手の終点選択値 .Pq Sq value を使用して、ローカルドメインソケットが生成されます。 終点選択値はバイナリ値であってもかまわないため、 実際のファイル名を判定するために 16 進数に変換されます。 .Pp このソケットは、別の .Nm のインスタンスとリンクを受け渡しを行うために使用します。 .El .Pp .Sh 関連項目 .Xr at 1 , .Xr ftp 1 , .Xr gzip 1 , .Xr hostname 1 , .Xr login 1 , .Xr tcpdump 1 , .Xr telnet 1 , .Xr libalias 3 , .Xr syslog 3 , .Xr uucplock 3 , .Xr crontab 5 , .Xr group 5 , .Xr passwd 5 , .Xr radius.conf 5 , .Xr resolv.conf 5 , .Xr syslog.conf 5 , .Xr adduser 8 , .Xr chat 8 , .Xr getty 8 , .Xr inetd 8 , .Xr init 8 , .Xr named 8 , .Xr ping 8 , .Xr pppctl 8 , .Xr pppd 8 , .Xr route 8 , .Xr syslogd 8 , .Xr traceroute 8 , .Xr vipw 8 .Sh 歴史 元のプログラムは Toshiharu OHNO (tony-o@iij.ad.jp) が作成し、 FreeBSD-2.0.5 に Atsushi Murai (amurai@spec.co.jp) が提出しました。 .Pp 1997 年中に Brian Somers (brian@Awfulhak.org) が本格的な修正をし、 11 月に OpenBSD に移植されました (2.2-RELEASE の直後です)。 .Pp 1998 年初頭にマルチリンク ppp サポートが追加されたときに、 ほとんどのコードを Brian Somers が書き直しました。 diff --git a/ja/man/man8/pppctl.8 b/ja/man/man8/pppctl.8 index 30aa5994ed..38df5389b4 100644 --- a/ja/man/man8/pppctl.8 +++ b/ja/man/man8/pppctl.8 @@ -1,200 +1,200 @@ -.\" %Id: pppctl.8,v 1.10 1998/05/13 07:57:44 phk Exp % +.\" %Id: pppctl.8,v 1.11 1998/08/31 16:41:09 wosch Exp % .Dd 26 June 1997 .Os FreeBSD .Dt PPPCTL 8 .Sh 名称 .Nm pppctl .Nd PPP 制御プログラム .Sh 書式 .Nm .Op Fl v .Op Fl t Ar n .Op Fl p Ar passwd .Ar [host:]Port | LocalSocket .Op command[;command]... .Sh 解説 このプログラムは .Xr ppp 8 デーモンのコマンドラインからの制御手段を提供します。 基本的な使い方は、実行中のデーモンを制御する単純なスクリプトを 簡単に書けるようにすることです。 .Pp .Nm ppp デーモンが listen しているソケットをあらわす 少なくともひとつの引数を必要とします。 詳細については、 .Nm ppp コマンドの .Sq set server を参照して下さい。 ソケットが先頭に '/' を含んでいると、 .Dv AF_LOCAL ソケットとして扱われます。 コロンを含んでいると .Ar host:port の組として扱われ、 それ以外は単にローカルマシン (127.0.0.1) の TCP ポートを 指定したものとみなされます。 DNS 検索を避けたい場合や、 .Pa /etc/services 内に指定されたポートのエントリがない場合には、 .Ar host と .Ar port には数字で指定することができます。 .Pp 残りの引数はすべて、 .Nm ppp デーモンに送られる (複数の) .Ar コマンド を形成するために連結されます。 セミコロン文字はコマンドデリミタとして扱われ、ひとつの .Sq セッション で複数の .Ar コマンド を指定することが可能です。 例えば: .Bd -literal -offset indent pppctl 3000 set timeout 300\\; show timeout .Ed .Pp ほとんどのシェルでは ';' は特殊文字として扱われるので、 エスケープかクォートすることを忘れないようにしてください。 .Pp もし、 .Ar コマンド 引数が与えられなかった場合、 .Nm はインタラクティブモードになります。 ここで、コマンドは標準入力から読み込まれます。 コマンドを読んでいる時に、 .Xr editline 3 が使われていれば、( .Xr editrc 5 で指定した振る舞いで) 行編集が可能になります。 履歴の大きさはデフォルトでは .Em 20 行 です。 .Pp 以下のコマンドラインオプションが利用可能です: .Bl -tag -width Ds .It Fl v .Nm ppp デーモンに送られたデータ、 .Nm ppp デーモンから受け取ったデータをすべて表示します。 .Nm は通常、受け取った非プロンプト行のみ表示します。 このオプションはインタラクティブモードでは無視されます。 .It Fl t Ar n 接続時のデフォルトの 2 秒の代わりに .Ar n をタイムアウトの値として用います。 これは (ダイヤルアップも含む) 遅いリンク上でデーモンを制御しようとする 場合に必要かもしれません。 .It Fl p Ar passwd .Nm ppp デーモンが必要とするパスワードを指定します。 このスイッチが指定されないと、 .Nm は .Nm ppp への接続が成功した時にパスワードの入力を促します。 .El .Pp .Sh 使用例 .Nm ppp を .Fl auto モードで実行する場合、 .Nm は多くの仕事を自動化するのに利用できます (もちろん、実際に .Nm ppp をインタラクティブモードを除くどんなモードでも制御することができます) 。 .Xr ps 1 によりあなたの秘密がもれてしまう可能性のために、 .Fl p オプションは (たとえスクリプトが他の人に読めないようになっていたとしても) お勧めできません。 .Pp .Nm への簡単で安全なアクセスを提供するもっとも良い方法は、 .Pa /etc/ppp/ppp.conf (の正しいセクション) に以下のようにローカルサーバソケットを作成することです: .Bd -literal -offset indent set server /var/run/internet "" 0177 .Ed .Pp これは、 .Nm ppp を実行したユーザだけにアクセスできるように、 パスワード無しでパーミッションが srw------- の ローカルドメインソケットを作成するように .Nm ppp に指示します。より詳しい解説はマニュアルページ .Xr ppp 8 を参照してください。 .Pp このようにするといくつかのお気楽スクリプトが作成可能になります。 インターネットに接続するには: .Bd -literal -offset indent #! /bin/sh test $# -eq 0 && time=300 || time=$1 exec pppctl /var/run/internet set timeout $time\\; dial .Ed .Pp 切断するには: .Bd -literal -offset indent #! /bin/sh exec pppctl /var/run/internet set timeout 300\\; close .Ed .Pp 接続されているかどうか確かめるには: .Bd -literal -offset indent #! /bin/sh pppctl -p '' -v /var/run/internet quit | grep ^PPP >/dev/null if [ $? -eq 0 ]; then echo Link is up else echo Link is down fi .Ed .Pp このような汎用スクリプトも作成可能です: .Bd -literal -offset indent #! /bin/sh exec pppctl /var/run/internet "$@" .Ed .Pp .Sh 環境変数 以下の環境変数が、インタラクティブモード中の .Nm によって理解されます: .Bl -tag -width XXXXXXXXXX .It Dv EL_SIZE 履歴行の数です。デフォルトでは 20 です。 .It Dv EL_EDITOR 編集モードです。 "emacs" もしくは "vi" だけが受け付けられます。 他の値は無視します。この環境変数は .Pa ~/.editrc の .Ar bind -v や .Ar bind -e で上書きされます。 .El .Pp .Sh 関連項目 +.Xr ps 1 , .Xr editline 3 , .Xr editrc 5 , -.Xr ppp 8 , -.Xr ps 1 , -.Xr services 5 +.Xr services 5 , +.Xr ppp 8 .Sh 歴史 .Nm コマンドは FreeBSD 2.2.5 で最初に登場しました。 diff --git a/ja/man/man8/procctl.8 b/ja/man/man8/procctl.8 index ded7a3107e..7df1c14a6d 100644 --- a/ja/man/man8/procctl.8 +++ b/ja/man/man8/procctl.8 @@ -1,40 +1,41 @@ -.\" %Id: procctl.8,v 1.3 1998/01/05 07:19:14 charnier Exp % +.\" %Id: procctl.8,v 1.3.2.1 1999/06/15 14:36:46 ru Exp % +.\" .\" jpman %Id: procctl.8,v 1.3 1998/10/12 14:27:48 horikawa Stab % .Dd Nov 23, 1997 -.Dt PROCCTL 1 +.Dt PROCCTL 8 .Os FreeBSD .Sh 名称 .Nm procctl .Nd procfs イベントフラグのクリア .Sh 書式 .Nm .Ar command .Op Ar ... .Sh 解説 .Nm は .Xr truss 1 によって使われる .Xr procfs 5 イベントマスクをクリアします。 .Xr procfs 5 のイベントによって殺せないプロセスが結果として生じてしまった為に、 プロセスが立往生して残ってしまった場合に、 この .Nm コマンドを使うことが出来ます。 コマンドオプションはプロセスIDのリストです; .Nm コマンドはこのリストを順次評価します。 そして、リストに明示されたそれぞれのプロセスに対応するイベントマスク をクリアします。 .Sh 関連項目 .Xr truss 1 , .Xr procfs 5 .Sh 歴史 .Nm コマンドは .An Sean Eric Fagan によって .Bx Free の為に書かれました。 diff --git a/ja/man/man8/vmstat.8 b/ja/man/man8/vmstat.8 index 13ea27c540..37e28d671d 100644 --- a/ja/man/man8/vmstat.8 +++ b/ja/man/man8/vmstat.8 @@ -1,311 +1,315 @@ .\" Copyright (c) 1986, 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. .\" .\" @(#)vmstat.8 8.1 (Berkeley) 6/6/93 .\" %Id: vmstat.8,v 1.10 1998/09/15 08:16:43 gibbs Exp % .\" jpman %Id: vmstat.8,v 1.2 1997/05/29 07:57:00 yugawa Stab % .\" .Dd June 6, 1996 .Dt VMSTAT 8 .Os BSD 4 .Sh 名称 .Nm vmstat .Nd 仮想メモリの統計情報を報告する .Sh 書式 .Nm vmstat .\" .Op Fl fimst .Op Fl ims .Op Fl c Ar count .Op Fl M Ar core .Op Fl N Ar system .Op Fl w Ar wait .Op Fl n Ar devs .Op Fl p Ar type,if,pass .Op Ar disks .Sh 解説 .Nm は、プロセス、仮想メモリ、ディスク、トラップ、CPU の活動状況 などについてカーネルが持っている統計情報を報告します。 .Pp オプション: .Bl -tag -width indent .It Fl c 表示を .Ar count 回繰り返します。 最初の表示はリブート時からの統計で、 その後の表示は直前の表示から現在までの間の統計です。 -.Ar wait -間隔を指定しないと、デフォルトは 1 秒となります。 +繰り返し回数 +.Ar count +を指定せず、 +.Fl w +を指定しないと、デフォルトは無限になります。 +そうでない場合、デフォルトは 1 になります。 .\" .It Fl f .\" システムが起動してからの .\" .Xr fork 2 .\" と .\" .Xr vfork 2 .\" システムコールの回数と、それぞれのシステムコールで使われた .\" 仮想メモリのページ数を表示します。 .It Fl i システムが起動してから各デバイスで起こった割り込みの回数を表示します。 .It Fl M 名前に関するリストから値を取り出す際に、デフォルトの .Pa /dev/kmem の代わりに指定された .Ar core を使います。 .It Fl N 名前のリストを取り出す際に、デフォルトの .Pa /kernel の代わりに指定された .Ar system を使います。 .It Fl m カーネルの動的メモリの利用状況について、確保したサイズ、利用のタイプの 順で一覧にして表示します。 .It Fl n 表示する最大ディスク数を、デフォルトの 3 から変更します。 .It Fl p どのタイプのデバイスを表示するのかを指定します。 3 種類のカテゴリのデバイスがあります: .Bl -tag -width indent -compact .It デバイスタイプ: .Bl -tag -width 123456789 -compact .It da ダイレクトアクセス .It sa シーケンシャルアクセスデバイス .It printer プリンタ .It proc プロセッサデバイス .It worm ライトワンスリードマルチプルデバイス .It cd CD デバイス .It scanner スキャナデバイス .It optical オプティカルメモリデバイス .It changer メディアチェンジャデバイス .It comm コミュニケーションデバイス .It array ストレージアレイデバイス .It enclosure エンクロージャサービスデバイス .It floppy フロッピデバイス .El .Pp .It インタフェース: .Bl -tag -width 123456789 -compact .It IDE Integrated Drive Electronics デバイス .It SCSI Small Computer System Interface デバイス .It other その他のデバイス .El .Pp .It パススルー: .Bl -tag -width 123456789 -compact .It pass パススルーデバイス .El .El .Pp ユーザは少なくとも 1 つのデバイスタイプを指定する必要があり、 各カテゴリにおいては最大 1 つのデバイスタイプを指定可能です。 1 つのデバイスタイプ文に複数のデバイスタイプを指定するには、 コンマで区切ります。 .Pp コマンドライン上では、 .Fl p 引数をいくつ指定してもかまいません。 .Fl p 引数はすべて OR がとられ、 システム内の全デバイスが対象となる比較式が形成されます。 いずれかの .Fl p 引数に完全に合致するデバイスは、 .Nm の出力に含まれます。 ただし、3 デバイスもしくはユーザが指定した最大デバイス数の範囲に限られます。 .It Fl s .Em sum 構造体の内容を表示し、システムが起動してから起こったいくつかの 種類のページング関連のイベントの合計を報告します。 .\" .It Fl t .\" システムが起動してからのページインと際利用されたページ数、 .\" それぞれが要求した時間の合計を表示します。 .It Fl w 各表示の間で、 .Ar wait -秒ポーズします。 -繰り返し回数 -.Ar count -を指定していなければ、デフォルトでは無限に繰り返します。 +秒停止します。 +停止間隔 +.Ar wait +を指定していなければ、デフォルトは 1 秒になります。 .El .Pp デフォルトでは、 .Nm は以下の情報を表示します。 .Pp .Bl -tag -width indent .It procs 以下の各状態でのプロセス数に関する情報 .Pp .Bl -tag -width indent -compact .It r 実行待ち行列にある状態 .It b リソース確保 (i/o やページングなど) のためにブロックされている状態 .It w 実行可能または短期間のスリープ中 (20 秒以内) であるが、スワップされている状態 .El .It memory 仮想メモリと実メモリの使用状況に関する情報を表示します。 実行中または最近 20 秒間で実行されたプロセスに属する仮想ページ (1024 バイト単位で表示される) は、アクティブであるとみなします。 .Pp .Bl -tag -width indent -compact .It avm アクティブな仮想ページ .It fre フリーリストのサイズ .El .It page ページフォルトとページングの活動状況に関する情報を表示します。 これらは 5 秒間の平均として、秒単位で表示します。 .Pp .Bl -tag -width indent -compact .It flt ページフォルトの総数 .It re 要求されたページ数 (参照ビットをシミュレート) .\" .It at .\" アタッチされたページ数(フリーリストの中から見つけ出されたもの) .It pi ページインされたページ数 .It po ページアウトされたページ数 .It fr 秒単位の開放されたページ数 .\" .It de .\" 予期される短期的なメモリ不足 .It sr クロックアルゴリズムによってスキャンされたページ数 (秒単位) .El .It disks 秒単位のディスク操作に関する情報 (このフィールドはシステム依存です)。 通常、ページングは使用可能なドライブにまたがって分割されます。 このフィールドのヘッダは、ディスク名の最初の 2 文字とユニット番号です。 システムが 3 つ以上のディスクドライブを扱うように設定されている場合、 .Nm は最初の 3 つのドライブしか表示しません。 ただし、ユーザが .Fl n 引数を指定して表示するデバイス数を増した場合は別です。 この場合、表示が 80 桁を越えてしまうかもしれません。 .Nm で特定のドライブを表示するには、コマンド行でドライブ名を指定します。 デフォルトでは、 .Nm はディスクを最初に、 それからシステム内の他の様々なランダムデバイスを合計 3 つまで、 もしあれば表示します。 デバイスをコマンドラインで指定した場合、 もしくはデバイスタイプが合致するパターンが指定された場合 (前述)、 .Nm は指定されたデバイスもしくはパターンに合致するデバイスのみを表示し、 システム内の他のデバイスをランダムに選択するということはありません。 .It faults 最近 5 秒間のトラップ/割り込みの平均レート (秒単位)。 .Pp .Bl -tag -width indent -compact .It in デバイス割り込み (クロック割り込みを含む) の回数 .It sy システムコールの回数 .It cs cpu のコンテキストスイッチの回数 .El .It cpu CPU 使用時間の内訳 (%) .Pp .Bl -tag -width indent -compact .It us 通常およびそれより低い優先度のプロセスのユーザ時間 .It sy システム時間 .It id CPU アイドル時間 .El .El .Sh 使用例 コマンド: .Dl vmstat -w 5 は、システムがどのように動作しているかを 5 秒おきに表示します。 5 秒おきにサンプリングされている統計情報があるため、 この間隔で表示するのがちょうどよいです。 その他の統計情報は 1 秒毎に変化します。 しばらく出力を続ければ、どれが毎秒計算し直されているかがわかるでしょう。 .Pp コマンド: .Dl vmstat -p da -p cd -w 1 は、ダイレクトアクセスデバイスもしくは CDROM デバイスから最初の 3 つの デバイスを選択し、 他のシステム統計情報と同様に、 毎秒これらのデバイスの統計情報を表示します。 .Sh 関連ファイル .Bl -tag -width /dev/kmemxxx -compact .It Pa /kernel デフォルトのカーネル名前リスト .It Pa /dev/kmem デフォルトのメモリファイル .El .Sh 関連項目 .Xr fstat 1 , .Xr netstat 1 , .Xr nfsstat 1 , .Xr ps 1 , .Xr systat 1 , .Xr iostat 8 , .Xr pstat 8 .Pp .%T "Installing and Operating 4.3BSD" の ``Interpreting system activity'' で始まるセクション .Sh バグ .Fl c と .Fl w オプションは、デフォルトの出力を行うときにのみ有効です。 diff --git a/ja_JP.eucJP/man/man1/awk.1 b/ja_JP.eucJP/man/man1/awk.1 index bd399fa6c8..db26953b31 100644 --- a/ja_JP.eucJP/man/man1/awk.1 +++ b/ja_JP.eucJP/man/man1/awk.1 @@ -1,2534 +1,2536 @@ .\" 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" .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 オプショオン +.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 プログラムとして用います。本オプションにより、ライブラリ化された関数( +を 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 プログラムは、パターンとアクションの組の列と、(もし必要なら)関数定義か +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)がある場合、 +の要素に空 (\fB""\fR) がある場合、 .I gawk はその要素を無視します。 .PP .I gawk は、入力された各レコードに対してマッチする .I パターン が AWK プログラム内にあるかどうかを 検索します。そのレコードにマッチしたパターンすべてについて、それぞれ対応する .I アクション が実行されます。 パターンは、プログラムテキストに出現した順序で検索されます。 .PP 入力が尽きると、 .I gawk -は(もしあれば) +は (もしあれば) .B END -ブロック(複数存在可)を実行します。 +ブロック (複数存在可) を実行します。 .SH 変数、レコード、フィールド AWK における変数は動的、すなわち、最初に使用されたときに生成されます。 変数の値は、浮動小数点数か、文字列か、あるいは両方です。変数の用い -られ方により変化します。AWK ではまた、1次元配列を利用することができます。 +られ方により変化します。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 を、文字列としては "" (空文字列)を +初期化されていない変数は、数値としては 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 ステートメント -が実行されたとき)に実行されます。 +ブロックは結合され、すべての入力ファイルの処理後 (あるいは、exit ステートメント +が実行されたとき) に実行されます。 .B BEGIN と .B END はパターン式内で他のパターンと混ぜて使うことはできません。また、 .B BEGIN と .B END パターンはアクション部を省略することができません。 .PP .BI / "regular expression" / -パターンでは、正規表現(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 代入演算子も存在する)。 +べき乗 +(\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 と等価であり、これは通常意図するものとは異なります。 +\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 に対応しない +を実行し、終了ステータスを返します (\*(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 +て文字に変換します。そうでなければ、引数は文字列であると解釈され、その 1 文字目が出力されます。 .TP .B %d .PD 0 .TP .B %i -10進数(整数部分)。 +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 進数(整数)。 +符号なしの 8 進数 (整数)。 .TP .B %s 文字列。 .TP .PD 0 .B %x .TP .PD .B %X -符号なしの 16 進数(整数)。 +符号なしの 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進数で、最後に改行が付きます)を +現在のプロセスのプロセスID (10 進数で、最後に改行が付きます) を 読み込むことができます。 .TP .B /dev/ppid -現在のプロセスの親のプロセスのプロセスID(10進数で、最後に改行が付きます)を +現在のプロセスの親のプロセスのプロセスID (10 進数で、最後に改行が付きます) を 読み込むことができます。 .TP .B /dev/pgrpid -現在のプロセスのプロセスグループ ID(10進数で、最後に改行が付きます) +現在のプロセスのプロセスグループ 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)に狭まれた文字の列です。 +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 は +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 .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)。 +利用者の方で気を付けるようにしてください (Caveat Emptor)。 .PP 文法的に誤った単一文字プログラムはパーズスタックを溢れさせる傾向があり、 まったく分からないメッセージを生成する傾向にあります。 このようなプログラムの診断は驚くべきことに一般に難しく、 診断の努力はまったく無意味になります。 .SH バージョン情報 このマニュアルは .IR gawk バージョン 3.0.2 について記載しています。 .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 arnold@gnu.ai.mit.edu 宛に送ってください。 電子メールには、オペレーティングシステムとそのリビジョン、 .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. .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/cccp.1 b/ja_JP.eucJP/man/man1/cccp.1 index 191f47a0d9..b418cc88fa 100644 --- a/ja_JP.eucJP/man/man1/cccp.1 +++ b/ja_JP.eucJP/man/man1/cccp.1 @@ -1,650 +1,650 @@ .\" Copyright (c) 1991, 1992, 1993 Free Software Foundation -*- nroff -*- .\" See section COPYING for conditions for redistribution .\" -.\" %Id: cpp.1,v 1.3 1994/11/02 09:07:33 deraadt Exp % +.\" Original Revision: 1.2 .\" jpman %Id: cccp.1,v 1.2 1997/05/12 00:19:12 jsakai Stab % .\" .TH cpp 1 "April 30, 1993" "FreeBSD" "GNU Tools" .SH 名称 cpp \- GNU-C 互換のコンパイラプリプロセッサ .SH 書式 .hy 0 .na .TP .B cpp .RB "[\|" \-$ "\|]" .RB "[\|" \-A \c .I predicate\c .RB [ (\c .I value\c .BR ) ]\|] .RB "[\|" \-C "\|]" .RB "[\|" \-D \c .I name\c .RB [ =\c .I definition\c \&]\|] .RB "[\|" \-dD "\|]" .RB "[\|" \-dM "\|]" .RB "[\|" "\-I\ "\c .I directory\c \&\|] .RB "[\|" \-H "\|]" .RB "[\|" \-I\- "\|]" .RB "[\|" "\-imacros\ "\c .I file\c \&\|] .RB "[\|" "\-include\ "\c .I file\c \&\|] .RB "[\|" "\-idirafter\ "\c .I dir\c \&\|] .RB "[\|" "\-iprefix\ "\c .I prefix\c \&\|] .RB "[\|" "\-iwithprefix\ "\c .I dir\c \&\|] .RB "[\|" \-lang\-c "\|]" .RB "[\|" \-lang\-c++ "\|]" .RB "[\|" \-lang\-objc "\|]" .RB "[\|" \-lang\-objc++ "\|]" .RB "[\|" \-lint "\|]" .RB "[\|" \-M\ [ \-MG "\|]]" .RB "[\|" \-MM\ [ \-MG "\|]]" .RB "[\|" \-MD\ \c .I file\ \c \&\|] .RB "[\|" \-MMD\ \c .I file\ \c \&\|] .RB "[\|" \-nostdinc "\|]" .RB "[\|" \-nostdinc++ "\|]" .RB "[\|" \-P "\|]" .RB "[\|" \-pedantic "\|]" .RB "[\|" \-pedantic\-errors "\|]" .RB "[\|" \-traditional "\|]" .RB "[\|" \-trigraphs "\|]" .RB "[\|" \-U \c .I name\c \&\|] .RB "[\|" \-undef "\|]" .RB "[\|" \-Wtrigraphs "\|]" .RB "[\|" \-Wcomment "\|]" .RB "[\|" \-Wall "\|]" .RB "[\|" \-Wtraditional "\|]" .br .RB "[\|" \c .I infile\c .RB | \- "\|]" .RB "[\|" \c .I outfile\c .RB | \- "\|]" .ad b .hy 1 .SH 解説 C プリプロセッサは、 実際のコンパイルの前にプログラムを変換するために C コンパイラから自動的に利用される .I マクロプロセッサ\c です。 長い記述を簡略してマクロとして定義することができるため、 マクロプロセッサと呼ばれます。 C プリプロセッサは、以下の4つの機能を提供します。 .TP \(bu ヘッダファイルを読み込みます。 これは プログラムに組み込まれる (C 言語の)宣言の入ったファイルです。 .TP \(bu C 言語の任意の部分の省略形として \c .I マクロ\c \&を定義し、C プリプロセッサがプログラム内の全てのマクロを その定義で置き換えます。 .TP \(bu 条件文の処理をします。専用のプリプロセッサコマンドを用いて、 いろいろな条件にしたがってプログラムの一部を含めたり除外したりできます。 .TP \(bu 行番号の制御をします。 ソースファイルと コンパイルされた中間ファイルとを組み合わせたり再アレンジしたりするプログラムを 用いる場合、 コンパイラにオリジナルのソースの何行目であるかを知らせるための、 行番号制御のプリプロセッサコマンドを利用できます。 .PP C プリプロセッサは、そのインプリメントによって細かな部分に違いが いくつかあります。GNU C プリプロセッサの完全なドキュメントは、 .B info ファイルの `\|\c .B cpp.info\c \&\|', もしくは、マニュアルの .I The C Preprocessor\c \&を参照して下さい。 この双方は `\|\c .B cpp.texinfo\c \&\|'から生成されます。GNU C プリプロセッサは ANSI Standard C のスーパセットと なっています。 ANSI Standard C では、今日 C プログラムで一般的に用いられている多くの (無害な)構造が認められていません。 この非互換性はユーザにとっては不便であり、そのため GNU C preprocessor ではこの記述をデフォルトで受け付けるように作られています。 厳密にいえば、 ANSI Standard C にするためには オプションとして `\|\c .B \-trigraphs\c \&\|', `\|\c .B \-undef\c \&\|', `\|\c .B \-pedantic\c \&\|'をつけなければなりません。 しかし経験則から、厳密な ANSI Standard C にあわせてこうした設定を 行なうと支障のある場合が多いことがわかっています。 ほとんどの場合は、C プリプロセッサは明示的に実行する必要はありません。 C コンパイラが自動的に実行してくれるからです。しかしながら、 明示的にプリプロセッサを実行するのが有効なことが個々にはあります。 C プリプロセッサ は、引数として \c .I infile\c \& と \c .I outfile\c \&の 2 つのファイル名を期待します。 プリプロセッサは `\|\c .B #include\c \&\|'で指定したファイルと一緒に \c .I infile\c を読み込みます。 入力ファイルの組み合わせで作られた出力は、 全て \c .I outfile\c \&に書かれます。 .I infile\c \& と \c .I outfile\c \& の指定に `\|\c .B \-\c \&\|'を使用することができます。\c .I infile\c \& が `\|\c .B \-\c \&\|' であれば\c \& 標準入力からデータを読み、\c .I outfile\c \& が `\|\c .B \-\c \&\|' であれば標準出力へ結果を書きます。もし \c .I outfile\c \& もしくは両方のファイル名が省略された場合、 省略されたファイルの代わりに標準入力と標準出力が使われます。 .SH オプション 以下が C プリプロセッサが受け付けるオプションの一覧です。 これらのオプションは、 プリプロセッサがコンパイラから起動されている場合にも 自動的に引き渡されるので、 C プログラムをコンパイルする際にも指定することができます。 .TP .B \-P `\|\c .B #\c \&\|'-行番号 という行番号情報をプリプロセッサの出力に含めません。 これは、C 以外の言語で行番号情報が含まれているとエラーを起こす言語を 処理する場合に有用でしょう。 .TP .B \-C コメントを削除せず、そのまま出力ファイルに含めます。 マクロ呼び出しの引数に現れるコメントはマクロ呼び出しの展開後にコピーされます。 .TP .B -traditional ANSI ではなく、旧形式の C の文法として解釈します。 .TP .B -trigraphs ANSI標準のトリグラフ(trigraph)構文を処理します。 これは ANSI C で 1 文字を表示すると定められた `\|\c .B ??\c \&\|' で始まる 3 文字の並びです。例えば、`\|\c .B ??/\c \&\|' は `\|\c .BR "\e" "\|'" を表しますので、`\|\c .B '??/n'\c \&\|' は改行文字の文字定数となります。 厳密に言えば、GNU C プリプロセッサの `\|\c .B \-trigraphs\c \&\|' オプションは ANSI C 標準を完全にはサポートしません。 が、普通のユーザならばその違いに気づく事は稀でしょう。 トリグラフについで、これ以上知りたいとは思わないでしょ? .TP .B \-pedantic `\|\c .B #else\c \&\|' や `\|\c .B #endif\c \&\|' の後にコメント以外のテキストがつくといった場合に、 ANSI C 標準で求められる警告を出力します。 .TP .B \-pedantic\-errors `\|\c .B \-pedantic\c \&\|' に似ていますが、警告ではなくエラーにします。 .TP .B \-Wtrigraphs トリグラフがあると警告を出力します(ただし、トリグラフの処理は行います)。 .TP .B \-Wcomment .TP .B \-Wcomments コメント開始シーケンスである `\|\c .B /*\c \&\|' がコメント中に存在したならば警告を発生します (両形式は同じ効果を持ちます)。 .TP .B \-Wall `\|\c .B \-Wtrigraphs\c \&\|' と `\|\c .B \-Wcomment\c \&\|' (ただし `\|\c .B \-Wtraditional\c \&\|' は除く) を指定したのと同じです。 .TP .B \-Wtraditional ANSI と伝統派の C とで異なる振る舞いをとる構文が出現した場合に 警告を発します。 .TP .BI "\-I " directory\c \& ディレクトリ \c .I directory\c \& をヘッダファイルを検索するディレクトリリストの末尾に追加します。 このオプションは、指定したディレクトリが システムのヘッダファイルが格納されているディレクトリよりも先に 検索されるので、ユーザ自身の作成したバージョンで システムが提供するヘッダファイルを上書きさせることもできます。 1 つ以上の `\|\c .B \-I\c \&\|' オプションを使用する場合、ディレクトリは左から右の順番で検索され、 標準のシステムヘッダファイルはその後になります。 .TP .B \-I\- `\|\c .B \-I\-\c \&\|' オプションよりも前に指定された `\|\c .B \-I\c \&\|' オプションで与えられたディレクトリは、`\|\c .B #include \c \&"\c .I file\c \&"\c \&\|' のインクルード文の場合にのみ検索されます。`\|\c .B #include <\c .I file\c \&>\c \&\|' では検索されません。 オプション `\|\c .B \-I\-\c \&\|' の後のオプション `\|\c .B \-I\c \&\|' に追加のディレクトリが指定された場合、それらのディレクトリは 全ての `\|\c .B #include\c \&\|' 文で検索されます。 付け加えて言うならば、`\|\c .B \-I\-\c \&\|' オプションを指定すると、カレントディレクトリは `\|\c .B #include \c .I \&"file\c \&"\c \&\|' 文に対する最初の検索ディレクトリではなくなります。 それゆえ、カレントディレクトリは明示的に `\|\c .B \-I.\c \&\|' として指定された場合にのみ検索されることになります。 `\|\c .B \-I\-\c \&\|' と `\|\c .B \-I.\c \&\|' を双方とも指定することで、どのディレクトリがカレントディレクトリ の前に、あるいは後に検索されるかを厳密に指定することができます。 .TP .B \-nostdinc ヘッダファイルの検索に標準システムディレクトリを用いません。`\|\c .B \-I\c \&\|' オプションで指定したディレクトリ(と、もし適切であるならば カレントディレクトリ)が検索されます。 .TP .B \-nostdinc++ ヘッダファイルの検索に C++ 仕様の標準ディレクトリを用いません。 が、その他の標準ディレクトリは検索します。 (このオプションは libg++ の構築時に用いられます。) .TP .BI "\-D " "name"\c \& \c .I name\c \& を既定義のマクロとして、`\|\c .B 1\c \&\|' に定義します。 .TP .BI "\-D " "name" = definition \& \c .I name\c \& をマクロとして\c .I definition\c \& に定義します。\c .I definition\c \& の内容に制限はありませが、プリプロセッサをシェルやシェルに類似した プログラムから起動している場合、シェルの文法上意味を持つスペース などの文字を保護するため、そのシェルのクォート文法を使用する必要が あります。もし、1 つの .I name\c \& に対して複数の `\|\c .B \-D\c \&\|' を指定したならば、もっとも右側の定義が有効となります。 .TP .BI "\-U " "name"\c \&\c .I name\c \& を定義しません。同一の \c .I name\c \& に対して `\|\c .B \-U\c \&\|' と `\|\c .B \-D\c \&\|' の双方が指定された場合、`\|\c .B \-U\c \&\|' が `\|\c .B \-D\c \&\|' に優先し、 \c .I name\c \& は定義されません。 .TP .B \-undef 非標準のマクロを一切定義しません。 .TP .BI "\-A " "name(" value ) (\c .B #assert\c \& コマンドと同じ方法で) 述語 \c .I name\c \& にトークンリスト \c .I value\c \& をアサートします。シェルのコマンドライン上では括弧を エスケープするなりクォートすることを忘れないで下さい。 既定義のアサーション全てを取り消すのに、`\|\c .B \-A-\c \&\|' を使えます。これはまた、既定義のマクロ全てを無効にします。 .TP .B \-dM プリプロセッサの結果を出力する代わりに、 プリプロセッサの実行中に定義された、既定義のものも含む全てのマクロの `\|\c .B #define\c \&\|' コマンドのリストを出力します。 これは、使用しているプリプロセッサのそのバージョンで、 どんなマクロが既定義であるかを知る方法を提供してくれます。 それには、空のファイル `\|\c .B foo.h\c \&\|' をこのオプションで処理してみればよいのです。 .sp .br touch\ foo.h;\ cpp\ \-dM\ foo.h .br .sp はすべての既定義マクロの値を見せてくれるでしょう。 .TP .B \-dD `\|\c .B \-dM\c \&\|' に似てますが、2 つの相違点があります。これは既定義マクロを 出力\c .I しません\c \&。また、`\|\c .B #define\c \&\|' コマンドとプリプロセス結果の\c .I 双方\c \& を出力します。これらの出力は両方とも標準出力に行われます。 .PP .TP .BR \-M\ [ \-MG ] プリプロセスの結果を出力する代わりに、main のソースファイルの依存性を 記述する\c .B make\c \& 規則を出力します。 プリプロセッサはソースファイルのオブジェクトファイル名、コロン、 そのすべてのインクルードファイル名から成る\c .B make\c \& 規則を出力します。複数のインクルードファイルがある場合、規則は`\|\c .B \\\\\c \&\|'-改行で複数行に区切られます。 `\|\c .B \-MG\c \&\|' は、見つけられなかったヘッダファイルは(コンパイルの途中で)生成され、 ソースファイルと同じディレクトリに存在するものとして扱います。`\|\c .B \-M\c \&\|' と共に指定しなければなりません。 この機能は自動的に Makefile を更新するのに使います。 .TP .BR \-MM\ [ \-MG ] これは `\|\c .B \-M\c \&\|' に似てますが、`\|\c .B #include "\c .I file\c \&"\c \&\|' でインクルードされるファイルのみを扱う点が異なります。`\|\c .B #include <\c .I file\c \&>\c \&\|' でインクルードされるシステムヘッダファイルは無視されます。 .TP .BI \-MD\ file これも `\|\c .B \-M\c \&\|' に似てますが、依存情報が`\|\c .I file\c \&\|' に書き出されます。\(em\&`\|\c .B \-MD\c \&\|' を指定したファイルの処理もこれに加えて行われ、`\|\c .B \-M\c \&\|' のように通常の処理を抑制することはありません。 gcc を実行する場合は `\|\c .I file\c \&\|' 引数を指定してはいけません。gcc は、入力ファイル名の末尾の `\|\c .B .c\c \&\|' を `\|\c .B .d\c \&\|' で置き換えたファイル名を出力に用いるからです。 Mach では、`\|\c .B make\c \&\|' コマンドで便利なように複数のファイルを 1 つの依存規則ファイルに まとめるユーティリティ \c .B md\c \& が利用できます。 .TP .BI \-MMD\ file `\|\c .B \-MD\c \&\|' に似てますが、ユーザのヘッダファイルのみを扱い、システムヘッダは 無視する点が異なります。 .TP .B \-H 通常の動作に加えて、 使用されたヘッダファイルのファイル名を出力します。 .TP .BI "\-imacros " "file"\c \& ファイル \c .I file\c \& を入力として処理しますが、 標準の入力ファイルを処理する前にその結果の出力を破棄します。 .I file\c \& によって生成される出力は捨てられるため、`\|\c .B \-imacros \c .I file\c \&\c \&\|' の処理結果の影響は、\c .I file\c \& 中に記述されたマクロがメインの入力ファイル中で使用可能になることだけです。 プリプロセッサは、`\|\c .B \-imacros\c .I file\c \&\|' を処理する前に、 コマンドラインから与えられた全ての `\|\c .B \-D\c \&\|' や `\|\c .B \-U\c \&\|' オプションを評価します。 .TP .BI "\-include " "file"\c \& ファイル \c .I file\c \& を、標準の入力ファイルの前に処理し、その結果出力をインクルードします。 .TP .BI "\-idirafter " "dir" ディレクトリ \c .I dir\c \& を第 2 インクルードパスに加えます。第 2 インクルードパス中の ディレクトリは、メインインクルードパス (オプション `\|\c .B \-I\c \&\|' によって追加されます) 中にヘッダファイルを探した結果 発見できなかった場合に検索されます。 .TP .BI "\-iprefix " "prefix" \c .I prefix\c \& を、その後に続く `\|\c .B \-iwithprefix\c \&\|' オプション用のプレフィックスとして使用します。 .TP .BI "\-iwithprefix " "dir" ディレクトリを第 2 インクルードパスに追加します。ディレクトリ名は \c .I prefix\c \& と \c .I dir\c \& を連結することによって得られます。ここで \c .I prefix は `\|\c .B \-iprefix\c \&\|' オプションによって指定されたものです。 .TP .B \-lang-c .TP .B \-lang-c++ .TP .B \-lang-objc .TP .B \-lang-objc++ ソースの言語を指定します。`\|\c .B \-lang-c++\c \&\|' は、プリプロセッサに C++ のコメント文と、C++ 用の追加の デフォルトインクルードディレクトリを処理させ、`\|\c .B \-lang-objc\c \&\|' は、Objective C の `\|\c .B #import\c \&\|' ディレクティブを使用可能にします。`\|\c .B \-lang-c\c \&\|' は明示的にこれらの機能の切り離しを指定し、`\|\c .B \-lang-objc++\c \&\|' は双方を利用可能にします。 これらのオプションはコンパイラドライバ \c .B gcc\c \& によって生成されますが、`\|\c .B gcc\c \&\|' のコマンドラインから引き渡すことはできません。 .TP .B \-lint コメント中に埋め込まれた、プログラムチェッカ \c .B lint\c \& のコマンドを見つけ出し、それらの前に `\|\c .B #pragma lint\c \&\|' を埋め込みます。例えば、コメント `\|\c .B /* NOTREACHED */\c \&\|' は `\|\c .B #pragma lint NOTREACHED\c \&\|' になります。 このオプションは直接 \c .B cpp\c \& を呼び出す場合にのみ使えます。\c .B gcc\c \& は、コマンドラインからこのオプションを引き渡しません。 .TP .B \-$ 識別子中での `\|\c .B $\c \&\|' の使用を禁止します。これは ANSI 規格からの要求です。 オプション `\|\c .B \-ansi\c \&\|' を指定した場合、\c .B gcc\c \& は自動的にこのオプションを設定します。が、\c .B gcc\c \& は `\|\c .B \-$\c \&\|' オプションそれ自身を認識しているわけではありません。 \(em\& `\|\c .B \-ansi\c \&\|' の他の効果を抜きにこれを使うには、 プリプロセッサを直接呼び出さねばなりません。 .SH 関連項目 .B info\c \&; .I The C Preprocessor\c , Richard M. Stallman. 中のエントリ .RB "`\|" cpp "\|'" .br .BR gcc "(" 1 ");" .B info\c \&; .I Using and Porting GNU CC (for version 2.0)\c , Richard M. Stallman. 中のエントリ .RB "`\|" gcc "\|'" .SH COPYING Copyright (c) 1991, 1992, 1993 Free Software Foundation, Inc. .PP Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. .PP Permission is granted to copy and distribute modified versions of this manual 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 into another language, under the above conditions for modified versions, except that this permission notice may be included in translations approved by the Free Software Foundation instead of in the original English. diff --git a/ja_JP.eucJP/man/man1/dig.1 b/ja_JP.eucJP/man/man1/dig.1 index ceef0e6b06..e8dc12d3c1 100644 --- a/ja_JP.eucJP/man/man1/dig.1 +++ b/ja_JP.eucJP/man/man1/dig.1 @@ -1,669 +1,670 @@ .\" %Id: dig.1,v 8.3 1998/03/21 01:01:23 halley Exp % -.\" jpman %Id: dig.1,v 1.4 1997/07/26 21:31:55 horikawa Stab % .\" .\" ++Copyright++ 1993 .\" - .\" Copyright (c) 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. .\" - .\" Portions Copyright (c) 1993 by Digital Equipment Corporation. .\" .\" Permission to use, copy, modify, and distribute this software for any .\" purpose with or without fee is hereby granted, provided that the above .\" copyright notice and this permission notice appear in all copies, and that .\" the name of Digital Equipment Corporation not be used in advertising or .\" publicity pertaining to distribution of the document or software without .\" specific, written prior permission. .\" .\" THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL .\" WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES .\" OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL DIGITAL EQUIPMENT .\" CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL .\" DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR .\" PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS .\" ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS .\" SOFTWARE. .\" - .\" --Copyright-- .\" .\" Distributed with 'dig' version 2.0 from University of Southern .\" California Information Sciences Institute (USC-ISI). .\" .\" dig.1 2.0 (USC-ISI) 8/30/90 .\" +.\" Original Regision: 1.1.1.1 +.\" jpman %Id: dig.1,v 1.4 1997/07/26 21:31:55 horikawa Stab % .Dd August 30, 1990 .Dt DIG 1 .Os BSD 4 .Sh 名称 dig \- ドメイン名問い合わせパケットをネームサーバに送る .Sh 書式 .Nm dig .Op Ic @ Ns Ar server .Ar domain .Op Aq Ar query-type .Op Aq Ar query-class .Op Ic + Ns Aq Ar query-option .Op Fl Aq Ar dig-option .Op Ar %comment .Sh 解説 .Ic dig (ドメイン情報手探り器; domain information groper) は、 DNS (Domain Name System) サーバから情報を集めるために使われる 柔軟なコマンドラインツールです。 .Ic dig は 2 つのモードを持っています。 これは、1 つの問い合わせを行う単純な対話的利用モードと、 いくつかの問い合わせ行のリスト中の各問い合わせを実行するバッチモードです。 すべての問い合わせオプションは、コマンドラインから利用可能です。 .Pp 普通の簡単な .Ic dig の使用法は、以下のような形式です。 .Pp .Bd -ragged -offset indent-two .Ic dig @ NS Ar server domain query-type query-class .Ed .Pp ここで、 .Bl -tag -width Fl .It Ar server は、ドメイン名かドット表記のインターネットアドレスのどちらかです。 もし、このオプションフィールドが省略された場合、 .Ic dig は、そのマシンのデフォルトのネームサーバを利用しようとします。 .Pp .Em 注釈: ドメイン名が指定された時は、ドメイン名システムリゾルバ (つまり、BIND) を使うことで解決しようとします。システムが DNS を 提供していない時は、ドット形式のアドレスを指定する必要があります。 利用できるサーバがどこかにある場合は、必要なことは .Pa /etc/resolv.conf が存在し、 .Ar server 自身が解決できるように、そのデフォルトネームサーバがどこにあるかが 記述されていることだけです。 .Pa /etc/resolv.conf についての情報は .Xr resolver 5 を参照してください。 .Sy 警告: .Pa /etc/resolv.conf を変更すると、標準のリゾルバライブラリと .Pq 潜在的に それを使ういくつかのプログラムに影響を与えます。 オプションとして、ユーザは環境変数 .Ev LOCALRES を設定し、 .Pa /etc/resolv.conf の代わりに使うファイルの名前を指定できます。 .Po Ns Ev LOCALRES 変数は .Ic dig リゾルバ固有のもので、標準のリゾルバでは 参照されません .Pc 。 .Ev LOCALRES 変数が設定されていないか、 設定されたファイルが読み込めない場合は、 .Pa /etc/resolv.conf が使われます。 .It Ar domain は、あなたが情報を要求しているドメイン名です。 逆アドレスの問い合わせのための便利な方法は、 .Fl x オプションを参照してください(この節の .Sx その他のオプション の項で述べられています)。 .It Ar query-type は、あなたが要求している情報のタイプ(DNS 問い合わせタイプ)です。 省略された場合のデフォルトは、 .Dq Ar a .Pq Dv T_A = アドレス が使われます。以下のタイプが認識されます。 .Pp .Bl -hang -width "hinfo T_HINFO " -compact .It Ar a\ \ \ \ \ \ Dv T_A ネットワークアドレス .It Ar any\ \ \ \ Dv T_ANY 指定されたドメインのすべて/任意の情報 .It Ar mx\ \ \ \ \ Dv T_MX ドメインのメール交換情報 (MX) .It Ar ns\ \ \ \ \ Dv T_NS ネームサーバ .It Ar soa\ \ \ \ Dv T_SOA ゾーンの権威者を表すレコード .It Ar hinfo\ \ Dv T_HINFO ホスト情報 .It Ar axfr\ \ \ Dv T_AXFR ゾーン転送情報(権威を持ったサーバに尋ねなければなりません) .It Ar txt\ \ \ \ Dv T_TXT 任意の数の文字列 .El .Pp (完全なリストは、RFC 1035 を参照してください。) .It Ar query-class は、問い合わせで要求されるネットワーククラスです。 省略された場合のデフォルトは、 .Dq Ar in .Pq Dv C_IN = Internet です。 以下のクラスが認識されます。 .Pp .Bl -tag -width "hinfo T_HINFO " -compact .It Ar in\ \ \ \ \ Dv C_IN インターネットクラスドメイン .It Ar any\ \ \ \ Dv C_ANY すべて/任意のクラスの情報 .El .Pp (完全なリストは、RFC 1035 を参照してください。) .Pp .Em 注釈: .Dq Ar any は、 .Em クラス や問い合わせの .Em タイプ を指定するために使われます。 .Ic dig は、最初に現れた .Dq Ar any を .Ar query-type = Dv T_ANY として解析します。 .Ar query-class = Dv C_ANY にするためには、 .Dq any を 2 度指定するか、 .Fl c オプション(以下参照)を利用して問い合わせクラスを 指定しなければなりません。 .El .Ss その他のオプション .Bl -tag -width Fl .It % Ns Ar ignored-comment .Dq % は、単に解析されない引数を含むために使われます。 これは、 .Ic dig をバッチモードで実行する時に有効です。 問い合わせリスト中のすべての .Ar @server-domain-name を解決する代わりに、 そのオーバヘッドを避けつつコマンドライン上にドメイン名を書くことが出来ます。 以下の例を参照。 .Pp .Bd -ragged -offset indent-two .Ic dig @128.9.0.32 %venera.isi.edu mx isi.edu .Ed .Pp .It Fl Aq Ar dig option .Dq Fl は、 .Ic dig の操作に影響を与えるオプションを指定するために 使われます。以下のオプションが現在利用可能です ( 便利であるかどうかは保証しません )。 .Bl -tag -width Fl .It Fl x Ar dot-notation-address 逆アドレス変換を指定する便利な形式です。 .Dq Ic dig 32.0.9.128.in-addr.arpa の代わりに、 .Dq Ic dig -x 128.9.0.32 と指定できます。 .It Fl f Ar file .Ic dig のバッチモードのためのファイルです。ファイルは、 つづいて実行される問い合わせの指定 ( .Ns Ic dig のコマンドライン) の リストを含んでいます。 .Sq \&; , .Sq # , .Sq \en で始まる行は無視されます。その他のオプションは、 コマンドラインで現れるものは、個々のバッチによる問い合わせでも 影響があります。 .It Fl T Ar time バッチモードで実行した時、連続した問い合わせの始まる時間間隔を秒で与え ます。2 つ以上のバッチ .Ic dig コマンドの実行を大体同期することができる ようになります。デフォルトは 0 です。 .It Fl p Ar port ポート番号です。標準でないポート番号で待つネームサーバに問い合わせます。 デフォルトは 53 です。 .It Fl p Ns Bq Ar ping-string 問い合わせからかえってきた後で、 .Xr ping 8 コマンドを応答時間の比較のために実行します。これは、美しくないのですが、 シェルを呼び出します。統計の最後の 3 行がコマンドのために 表示されます。 .Pp .Bd -ragged -offset indent-two .Ic ping Fl s server_name 56 3 .Ed .Pp オプションの .Dq Ar ping-string が存在した時は、シェルコマンドでは .Dq Ic ping Fl s を置き換えます。 .It Fl t Ar query-type 問い合わせのタイプを指定します。タイプフィールド内の整数値か、 上で述べたニーモニック表現 (つまり .Ar mx = Dv T_MX ) かで 指定することができます。 .It Fl c Ar query-class 問い合わせのクラスを指定します。クラスフィールド内の整数値か、 上で述べたニーモニック表現 (つまり in = C_IN) で 指定することができます。 .It Fl envsav このフラグを指定すると、すべての引数が解析された後で .Ic dig 環境 (デフォルトや表示オプション等) を デフォルト環境としてファイルに保存します。 標準のデフォルトが気に入らず、 .Ic dig を使う度にたくさんのオプションを指定することが嫌な場合は便利です。 環境は、 .Ic dig 出力 (以下参照) で詳しく述べられるフラグと同じように、 リゾルバの状態変数フラグや、タイムアウト、再試行回数からなります。 シェル環境変数 .Ev LOCALDEF がファイルの名前に設定されている場合、 これが、デフォルトの .Ic dig 環境が保存される場所となります。 そうでない場合は、ファイル .Dq DiG.env が現在の作業ディレクトリに 作成されます。 .Pp .Em 注釈: .Ev LOCALDEF は、 .Ic dig のリゾルバ固有であり、 標準のリゾルバライブラリの操作には影響を与えません。 .Pp .Ic dig が実行される度に、 .Dq ./DiG.env またはシェル環境変数 .Ev LOCALDEF で指定されたファイルが探されます。そのようなファイルが 存在し読める場合は、引数を解析する前にこのファイルから環境が 読み込まれます。 .It Fl envset このフラグは、バッチ問い合わせを実行する時にだけ影響があります。 .Ic dig バッチファイル中で .Dq Fl envset が指定されていると、 この引数が解析された後の .Ic dig 環境は、バッチファイルが実行されている間もしくは、次の .Dq Fl envset が指定されるまでの間は、 デフォルトの環境となります。 .It Xo .Fl Op Cm no .Ns Cm stick .Xc このフラグは、バッチ問い合わせ実行にだけ影響を与えます。 これは、 .Ic dig 環境を .Ic dig バッチファイル中での 各問い合わせ (行) の前に (初期状態もしくは、 .Dq Fl envset で設定された) 元の状態に戻すことを指定します。 デフォルトの .Dq Fl nostick は、 .Ic dig 環境を回復しないという意味ですので、 .Ic dig バッチファイルの各行で指定されたオプションは、 後の行でもその効果が残ったままになります (つまり .Dq sticky 時のデフォルトのようには回復されません)。 .El .It Ic + Ns Aq Ar query option .Dq + はパケット問い合わせ中のオプション変更や .Ic dig 出力仕様を変更するために使われます。 これらの多くは、 .Xr nslookup 8 で受け入れられるパラメータと同じものです。 オプションが値を必要とする場合、その指定形式は以下のようになります。 .Pp .Bd -ragged -offset indent-two .Ic + .Ns Ar keyword .Ns Op = Ns Ar value .Ed .Pp ほとんどのキーワードは、省略が可能です。 .Dq + オプションの解釈は非常に単純です。 値はキーワードとスペースで区切ってはなりません。 以下のキーワードが現在利用可能です。 .Pp .Pp キーワード 省略形 意味 [デフォルト] .Pp .Bl -tag -width "[no]primary (ret) " -compact .It Xo .Op Cm no .Ns Cm debug\ \ \ \ .Pq Cm deb .Xc デバッグモードを変更 .Bq Cm deb .It Xo .Op Cm no .Ns Cm d2\ \ \ \ \ \ \ \ \ \ .Xc 追加のデバッグモードを変更 .Bq Cm nod2 .It Xo .Op Cm no .Ns Cm recurse\ \ .Pq Cm rec .Xc 再帰的探索を使うかどうか指定 .Bq Cm rec .It Xo .Cm retry= Ns Ar # .Cm \ \ \ \ \ .Pq Cm ret .Xc 再試行の回数を # に設定 .Bq 4 .It Xo .Cm time= Ns Ar # .Cm \ \ \ \ \ \ .Pq Cm ti .Xc タイムアウト時間を # 秒に設定 .Bq 4 .It Xo .Op Cm no .Ns Cm ko .Xc 繋げておくオプション(vc を暗黙指定) .Bq Cm noko .It Xo .Op Cm no .Ns Cm vc .Xc 仮想回線を使うかどうか指定 .Bq Cm novc .It Xo .Op Cm no .Ns Cm defname\ \ .Pq Cm def .Xc デフォルトドメイン名を使うかどうか指定 .Bq Cm def .It Xo .Op Cm no .Ns Cm search\ \ \ .Pq Cm sea .Xc ドメインサーチリストを使うかどうか指定 .Bq Cm sea .It Xo .Cm domain= Ns Ar NAME\ \ .Pq Cm do .Xc デフォルトドメイン名を .Ar NAME に指定 .It Xo .Op Cm no .Ns Cm ignore\ \ \ .Pq Cm i .Xc trunc. エラーを無視するかどうか指定 .Bq Cm noi .It Xo .Op Cm no .Ns Cm primary\ \ .Pq Cm pr .Xc プライマリサーバを使うかどうか指定 .Bq Cm nopr .It Xo .Op Cm no .Ns Cm aaonly\ \ \ .Pq Cm aa .Xc 権威を持った問い合わせのみのフラグ .Bq Cm noaa .It Xo .Op Cm no .Ns Cm cmd .Xc 解析された引数を表示 .Bq Cm cmd .It Xo .Op Cm no .Ns Cm stats\ \ \ \ .Pq Cm st .Xc 問い合わせの統計を表示 .Bq Cm st .It Xo .Op Cm no .Ns Cm Header\ \ \ .Pq Cm H .Xc 基本的なヘッダを表示 .Bq Cm H .It Xo .Op Cm no .Ns Cm header\ \ \ .Pq Cm he .Xc ヘッダフラグを表示 .Bq Cm he .It Xo .Op Cm no .Ns Cm ttlid\ \ \ \ .Pq Cm tt .Xc TTL を表示 .Bq Cm tt .It Xo .Op Cm no .Ns Cm cl .Xc クラス情報を表示 .Bq Cm nocl .It Xo .Op Cm no .Ns Cm qr .Xc 出て行った問い合わせを表示 .Bq Cm noqr .It Xo .Op Cm no .Ns Cm reply\ \ \ \ .Pq Cm rep .Xc 応答節を表示 .Bq Cm rep .It Xo .Op Cm no .Ns Cm ques\ \ \ \ \ .Pq Cm qu .Xc 質問節を表示 .Bq Cm qu .It Xo .Op Cm no .Ns Cm answer\ \ \ .Pq Cm an .Xc 回答節を表示 .Bq Cm an .It Xo .Op Cm no .Ns Cm author\ \ \ .Pq Cm au .Xc 権威節を表示 .Bq Cm au .It Xo .Op Cm no .Ns Cm addit\ \ \ \ .Pq Cm ad .Xc 追加節を表示 .Bq Cm ad .It Cm pfdef デフォルト表示フラグを設定 .It Cm pfmin 最小のデフォルト表示フラグを設定 .It Cm pfset= Ns Ar # 表示フラグを # に設定 (# は 16 進 /8 進/10 進が可能です) .It Cm pfand= Ns Ar # 表示フラグに # とのビット論理積 (and) 適用 .It Cm pfor= Ns Ar # 表示フラグに # とのビット論理和 (or) 適用 .El .Pp .Cm 再試行回数 と .Cm 時間 のオプションは、問い合わせデータグラムを送る際に、 リゾルバライブラリによって使われる再送戦略に影響を与えます。 アルゴリズムは以下の通りです .Pp .Bd -literal -offset indent for i = 0 to retry - 1 for j = 1 to num_servers send_query wait((time * (2**i)) / num_servers) end end .Ed .Pp (注釈: .Ic dig はいつも .Dq Li num_servers として値 1 を使います。) .El .Ss 詳細 .Ic dig は、かつて BINDの .Xr resolver 3 ライブラリの変更版を要求しました。 BIND のリゾルバは、(BIND 4.9のように) .Ic dig を正しく動作させるようになって来ています。本質的には、 .Ic dig は、引数の解釈と適切なパラメータ設定を(見事にではなく)卒直に行うものです。 .Ic dig はリゾルバの関数 .Fn res_init , .Fn res_mkquery , .Fn res_send を使い、また .Ft _res 構造体を操作します。 .Sh 環境変数 .Bl -tag -width "LOCALRES " -compact .It Ev LOCALRES .Pa /etc/resolv.conf の代わりに使うファイル .It Ev LOCALDEF デフォルトの環境ファイル .El .Pp 上述した .Fl envsav , .Fl envset , .Xo .Fl Op Cm no .Ns Cm stick .Xc オプションの説明も参照してください。 .Sh 関連ファイル .Bl -tag -width "/etc/resolv.conf " -compact .It Pa /etc/resolv.conf 初期状態のドメイン名とネームサーバのアドレス .It Pa \./DiG.env デフォルトオプションを保存するデフォルトファイル .El .Sh 関連項目 .Xr named 8 , .Xr resolver 3 , .Xr resolver 5 , .Xr nslookup 8 .Sh 規格 RFC 1035 .Sh 作者 Steve Hotz hotz@isi.edu .Sh 謝辞 .Ic dig は、Andrew Cherenson によって書かれた .Xr nslookup 8 の関数を使っています。 .Sh バグ .Ic dig は "這い回る機能主義 (creeping featurism)" の深刻事例 -- 開発中に潜在的な用途をいくつか考えた結果です。 おそらく苛酷なダイエットが有効でしょう。 同様に、表示フラグと項目の粒度は、その場限りで 生まれたもので、存在理由はそれほどありません。 .Pp 問題がリゾルバ中のどこかで起こった時に、 .Ic dig は、(適切な状態を持って)一貫性のあるように終了しません .Po Sy 注釈: 大部分の共通の終了状態はちゃんと扱います .Pc 。 これは、バッチモードで実行している時に特に悩まされます。 異常終了した時(さらにそれを捕まえられなかった時)、バッチ全体が終了します。 そのようなイベントをとらえた時、 .Ic dig は単に次の問い合わせを 続けます。 diff --git a/ja_JP.eucJP/man/man1/host.1 b/ja_JP.eucJP/man/man1/host.1 index a41b951651..52a6f686d2 100644 --- a/ja_JP.eucJP/man/man1/host.1 +++ b/ja_JP.eucJP/man/man1/host.1 @@ -1,308 +1,310 @@ .\" ++Copyright++ 1993 .\" - .\" Copyright (c) 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. .\" - .\" Portions Copyright (c) 1993 by Digital Equipment Corporation. .\" .\" Permission to use, copy, modify, and distribute this software for any .\" purpose with or without fee is hereby granted, provided that the above .\" copyright notice and this permission notice appear in all copies, and that .\" the name of Digital Equipment Corporation not be used in advertising or .\" publicity pertaining to distribution of the document or software without .\" specific, written prior permission. .\" .\" THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL .\" WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES .\" OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL DIGITAL EQUIPMENT .\" CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL .\" DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR .\" PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS .\" ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS .\" SOFTWARE. .\" - .\" --Copyright-- .\" %Id: host.1,v 8.2 1997/03/14 02:29:44 vixie Exp % +.\" +.\" Original Revision: 1.2 .\" jpman %Id: host.1,v 1.3 1997/08/20 12:10:27 horikawa Stab % .Dd December 15, 1994 .Dt HOST 1 .Os BSD 4 .Sh 名称 .Nm host .Nd ドメインサーバを使ってホスト名の検索を行なう .Sh 書式 .Nm host .Op Fl l .Op Fl v .Op Fl w .Op Fl r .Op Fl d .Op Fl t Ar querytype .Op Fl a .Ar host .Op Ar server .Sh 解説 .Ic host はインターネットホストに関する情報の検索を行ないます。 情報は世界中に広がった相互に接続されたサーバ群から得ます。 デフォルトではホスト名とインターネットアドレス間の変換のみを行ないます。 .Dq Fl t や .Dq Fl a オプションとともに使うと、そのホストに関するドメインサーバによって保守 されている情報のすべてを得ることができます。 .Pp 引数にはホスト名かホスト番号のいずれかを指定できます。 本プログラムはまず引数をホスト番号として解釈を試みます。 それがうまくいかなければ、ホスト名として扱います。 ホスト番号は 128.6.4.194 のようにドットによって区切られた 4 つの 10 進数からなります。 ホスト名は topaz.rutgers.edu のようにドットで区切られた複数の名前からなります。 名前がドットで終っていなければ、ローカルドメインが自動的に末尾に 付け加えられます。たとえば Rutgers のユーザは .Pp .D1 Ic host topaz .Pp というように使うことができ、これは実際には "topaz.rutgers.edu" が検索されます。 これがうまくいかなければ、名前は変更されずに (この例では "topaz" として) 試みられます。このやりかたはメールやその他のネットワークユーティリティ でも使うことができます。 実際に末尾に付け加えられる接尾辞は、 .Xr hostname 1 を呼び出した結果の最初のドット以降となります。(下記の .Sx ホスト名検索のカスタマイズ の節を参照してください。) .Pp 最初の引数は検索を行なうホスト名となります。これが数字の場合、 .Dq 逆引き が実行されます。すなわちドメインシステムは数字を名前に変換するための別 のデータベース群を参照します。 .Pp 2 番目の引数は省略可能です。ここでは問い合わせを行なうサーバを指定する ことができます。この引数が指定されなければ、デフォルトのサーバ (通常は ローカルマシン) が使われます。 .Pp 名前が指定された場合、3 つの異なった種類の結果が出力されます。 以下はそれらの例です。 .Pp .D1 Ic % host sun4 .Dl sun4.rutgers.edu is a nickname for ATHOS.RUTGERS.EDU .Dl ATHOS.RUTGERS.EDU has address 128.6.5.46 .Dl ATHOS.RUTGERS.EDU has address 128.6.4.4 .Dl ATHOS.RUTGERS.EDU mail is handled by ARAMIS.RUTGERS.EDU .Pp ここでユーザはコマンド .Dq Ic host sun4 を入力しています。最初の行は名前 .Dq Li sun4.rutgers.edu は実際にはニックネームであることを示しています。 正式なホスト名は .Dq Li ATHOS.RUTGERS.EDU です。続く 2 行ではアドレスが表示 されています。もし複数のネットワークインタフェースをもつシステムであ れば、その各々は別のアドレスを持ちます。最後の行では .Li ATHOS.RUTGERS.EDU は自分に対するメールは受け取らないことを示しています。このホスト宛ての メールは .Li ARAMIS.RUTGERS.EDU によって取り込まれます。いくつかのシステム ではそのメールを扱うシステムが複数存在することがあり、その場合はこの行 のような情報がさらに出力されます。技術的にはメールを受け取ることのでき るすべてのシステムがこのようなエントリを持つと考えられます。もしシステム がそのメールを自分自身で受け取る場合、 .Pp .D1 Li XXX mail is handled by XXX .Pp のように、そのシステム自身について言及したエントリがあるはずです。しかし、 メールを自分で受け取る多くのシステムではわざわざその事実について言及し ていません。もしあるシステムに .Dq Li mail is handled by のエントリがあるのにアドレスがなければ、 それは本当はインターネットの構成員ではないが、 ネットワーク上のあるシステムがメールをそこに転送してくることを示しています。 Usenet や Bitnet やその他の多くのネットワーク上のシステムではこの種の エントリを持っています。 .Sh オプション ホスト名の前に指定できるオプションは沢山あります。これらのオプションの ほとんどはドメインデータベースを保守しているスタッフにのみ意味のあるも のです。 .Bl -tag -width Fl .It Fl w このオプションを指定すると、 .Ic host は応答があるまで永遠に待ち続けます。通常は 1 分程でタイムアウトになります。 .It Fl v 「冗長」な (verbose) 形式で表示されます。これは正式な ドメインマスタのファイル形式となります。この形式については .Xr named 8 の man ページに文書化されています。このオプションがなくても出力の形式は 一般的な意味ではこの正式な形式に準拠したものとなりますが、通常のユーザに とって分かりやすいものにされます。 .Dq Fl v が指定されなければ、"a", "mx", "cname" の各レコードは それぞれ "has address", "mail is handled by", "is a nickname for" と出力され、TTL とクラスフィールドは表示されません。 .It Fl r 再帰的な問い合わせを行ないません。これは ネームサーバがそのサーバ自身のデータベースに所持しているデータのみを返すこ とを意味します。サーバは他のサーバに情報の問い合わせを行ないません。 .It Fl d デバッグモードとなります。ネットワークトランザクションが詳細に表示されます。 .It Fl t Ar querytype 特定の .Ar querytype の情報の検索を指定することができます。 引数は .Xr named 8 の man ページにおいて定義されています。現在サポートされ ているタイプには以下のものが含まれます: .Dq Cm a , .Dq Cm ns , .Dq Cm md , .Dq Cm mf , .Dq Cm cname , .Dq Cm soa , .Dq Cm mb , .Dq Cm mg , .Dq Cm mr , .Dq Cm null , .Dq Cm wks , .Dq Cm ptr , .Dq Cm hinfo , .Dq Cm minfo , .Dq Cm mx , .Dq Cm uinfo , .Dq Cm uid , .Dq Cm gid , .Dq Cm unspec さらに、ワイルドカード (これは .Dq Cm any か .Dq Cm * として指定されます) があり、上記のすべてのタイプを指定するためにつかいます。 タイプは小文字で指定しなければなりません。 デフォルトでは最初に .Dq Cm a が検索され、次に .Dq Cm mx が検索されます。ただし、verbose オプションが指定されていると、デフォルトでは .Dq Cm a のみの検索を行ないます。オプション .Dq Fl t は .Ic host が返す情報にフィルタをかけるのに特に有効です。 それ以上の情報は下記の .Dq Fl l オプションの説明を参照してください。 .It Fl a .Dq all の意。 .Dq Fl v Fl t Cm any と同じです。 .It Fl l 完全なドメインのリストを表示します。例えば .Pp .D1 Ic host -l rutgers.edu .Pp を実行すると、rutgers.edu ドメインのすべてのホストのリストを表示します。 .Dq Fl t オプションを使うことによって表示する情報にフィルタをかけることがで きます。デフォルトでは PTR と NS レコードを含んだアドレス情報が表示さ れます。 .Pp .D1 Ic host -l -v -t any rutgers.edu .Pp このコマンドでは rutgers.edu の完全なゾーンデータを正式なマスタファイル の形式でダウンロードします。(しかし不思議な理由により SOA レコードは 2 回リストされます。) .Pp .Sy 注: .Dq Fl l フラグは完全なゾーン転送を行なった後、 要求した情報をフィルタリングするように実装されています。このコマンドは 絶対に必要な時に限って使うべきです。 .Sh ホスト名検索のカスタマイズ 一般にユーザによって指定された名前にドットが含まれていなければ、 デフォルトのドメインがその末尾に付け加えられます。このドメインは .Pa /etc/resolv.conf において定義することができますが、通常はローカルの ホスト名の最初のドット以降を取ることによって求められます。ユーザは環境変数 .Ev LOCALDOMAIN を使って異なるデフォルトドメインを指定することによって、これを オーバーライドすることができます。さらに、ユーザはホスト名の独自の略称を使うこ ともできます。略称は 1 つの略称につき 1 行からなるファイルにおいて指定 します。各行には略称、スペース、そして完全なホスト名が含まれます。この ファイルは環境変数 .Ev HOSTALIASES にてファイル名を指定します。 .Sh 環境変数 .Bl -tag -width "/etc/resolv.conf " -compress .It Ev HOSTALIASES .Pq Ar ホストの別名 , 完全なホスト名 のペアを含んでいるファイルのファイル名 .El .Sh 関連ファイル .Bl -tag -width "/etc/resolv.conf " -compress .It Pa /etc/resolv.conf .Xr resolver 5 を参照してください。 .It Ev HOSTALIASES .Pq Ar ホストの別名 , 完全なホスト名 のペアを含んでいるファイルのファイル名 .El .Sh 関連項目 .Xr named 8 、 .Xr resolver 5 .Sh バグ ローカルドメインに含まれない名前を入力すると予期できない影響が起こり得 ます。名前がドットで終っていない限り、ローカルドメイン名がすべての名前の 末尾に付加されることをいつも心に留めておいてください。 ローカルドメインの補完に失敗した時のみ、名前は変更されずに使用されます。 .Pp .Dq Fl l オプションでは要求されたドメインにおいてリストされている最初の ネームサーバにのみ問い合わせを行ないます。もしこのサーバが死んでいれば、 サーバをマニュアルで指定しなければなりません。たとえば foo.edu のリストを 得るには、 .Pp .D1 Ic host -t ns foo.edu .Pp と指定して foo.edu のすべてのネームサーバ のリストを得てから、動作するものが見つかるまでリストにあるすべての ネームサーバについて .Pp .D1 Ic host -l foo.edu xxx .Pp (ここで .Dq Ic xxx はネームサーバ) を試みれば良いでしょう。 diff --git a/ja_JP.eucJP/man/man1/mail.1 b/ja_JP.eucJP/man/man1/mail.1 index d24051c2f1..2bff505900 100644 --- a/ja_JP.eucJP/man/man1/mail.1 +++ b/ja_JP.eucJP/man/man1/mail.1 @@ -1,1003 +1,1003 @@ .\" Copyright (c) 1980, 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. .\" .\" @(#)mail.1 8.2 (Berkeley) 12/30/93 .\" %Id: mail.1,v 1.15 1998/04/14 00:59:29 steve Exp % .\" jpman %Id: mail.1,v 1.3 1997/10/30 01:42:49 h-nokubi Stab % .\" .Dd December 30, 1993 .Dt MAIL 1 .Os BSD 4 .Sh 名称 .Nm mail .Nd メールの送信と受信 .Sh 書式 .Nm mail .Op Fl iInv .Op Fl s Ar subject .Op Fl c Ar cc-addr .Op Fl b Ar bcc-addr .Ar to-addr ... .Op \&- Ar sendmail-option ... .Nm mail .Op Fl iInNv .Fl f .Op Ar name .Nm mail .Op Fl iInNv .Op Fl u Ar user .Sh イントロダクション .Nm mail はインテリジェントなメール処理システムです。 コマンドシンタックスは .Xr \&ed 1 に似ており、 .Xr \&ed 1 での行の代わりにメッセージを扱う形になっています。 .Pp .Bl -tag -width flag .It Fl v 冗長 (verbose) モードです。 メールの配送の詳細がユーザのターミナルに表示されます。 .It Fl i tty の割り込みシグナルを無視します。 これは特に雑音の多い電話回線を通して .Nm mail を使う場合に役に立ちます。 .It Fl I 入力がターミナルでない場合にでも強制的に mail を対話モードで実行します。 特にメールを送る時の特殊文字 .Sq Ic \&~ は対話モードでのみ有効となります。 .It Fl n 起動時にシステム全体の .Pa mail.rc ファイルを読み込みません。 .It Fl N メールを読んだりメールフォルダを編集する時に、最初のメッセージヘッダの 表示を行いません。 .It Fl s コマンドラインからサブジェクトを指定します。 ( .Fl s フラグの後の最初の引数だけがサブジェクトとして使われます。空白を含む サブジェクトは引用符で囲むように注意して下さい。) .It Fl c カーボンコピーをユーザの .Ar list へ送ります。 .It Fl b ブラインドカーボンコピーを .Ar list へ送ります。 .Ar list はコンマで区切られた名前のリストとなります。 .It Fl f あなたの .Ar mbox (もしくは指定されたファイル) の内容を処理対象として読み込みます。 .Ar quit した時には .Nm mail は削除されなかったメッセージをこのファイルに書き戻します。 .It Fl u これは以下と等価です。 .Pp .Dl mail -f /var/mail/user .El .Ss メールを送る メッセージを 1 人かそれ以上の人に送るために .Nm mail をメールが送られる相手の名前を引数として起動することができます。 メッセージをタイプした後、行の先頭で .Sq Li control\-D を入力します。 下記の .Ar 「メールにリプライしたり、メールを始める」 のセクションでは手紙を編集する際に役に立つ .Nm mail の機能について説明しています。 .Pp .Ss メールを読む 通常の使い方では .Nm mail は引数を指定しないで起動すると、ポストオフィスのメールをチェックし、見 つかった各メッセージにつき 1 行ずつヘッダを表示します。 現在のメッセージは初期状態では最初のメッセージ ( 1 番に番号が振られて います) となっており、 .Ic print コマンド (省略形 .Ic p を使うことができます) によって表示することができます。 メッセージの位置を .Xr \&ed 1 と同様に .Ql Ic \&+ と .Ql Ic \&\- のコマンドを使って後や前に移動したり、単に数字を指定して移動したりする ことができます。 .Pp .Ss メールを廃棄する メッセージをチェックした後、メッセージを .Ic delete コマンド .Pq Ic d で削除したり、それに .Ic reply コマンド .Pq Ic r でリプライ (返事を出す) したりすることができます。 メッセージを削除すると .Nm mail プログラムはそのメッセージのことを忘れますが、 この操作は取り消すことができます。 メッセージは .Ic undeleted コマンド .Pq Ic u を使ってメッセージの番号を指定するか、 .Nm mail のセッションを .Ic exit コマンド .Pq Ic x で中途終了することによって削除をとりやめることができます。 しかし、削除されたメッセージは通常はなくなり二度と見ることはできませ ん。 .Pp .Ss メッセージを指定する .Ic print や .Ic delete のようなコマンドは、引数に複数のメッセージの番号を指定することによって 複数のメッセージに対して一度に適用することができます。 たとえば .Dq Li delete 1 2 はメッセージ 1 と 2 を削除し、 .Dq Li delete 1\-5 は 1 から 5 のメッセージを削除します。 特別な名前 .Ql Li \&* は全てのメッセージを意味し、 .Ql Li \&$ は最後のメッセージを意味します。 メッセージの最初の数行を表示するコマンド .Ic top を使って .Dq Li top \&* で全てのメッセージの最初の数行を表示することができます。 .Pp .Ss メールにリプライしたり、メールを始める .Ic reply コマンドを使ってメッセージに対する返事を用意して、それをメッセージの差 出人に送り返すことができます。 タイプインしたメッセージは end-of-file までがメッセージの内容として定 義されます。 メッセージを編集している時に .Nm mail は 文字 .Ql Ic \&~ で始まる行を特別に扱います。 例えば、 .Ql Ic \&~m とタイプする(行にこれだけタイプします)と現在のメッセージを タブの分 (下記の変数 .Em indentprefix を参照) だけ右にシフトして返事のメッセージにコピーします。 他のエスケープはサブジェクトの設定や、メッセージの受取人の追加や削除を 行なったり、またメッセージを修正するためにエディタを起動したり、コマン ドを実行するためにシェルを起動したりします。 (下にこれらのオプションの要約があります。) .Pp .Ss メールの処理セッションを終了する .Nm mail セッションは .Ic quit コマンド .Pq Ic q で終了することができます。 チェックされたメッセージは削除されていなければ .Ar mbox ファイルにセーブされます。削除されている場合は本当に廃棄されます。 チェックされていないメッセージはポストオフィスに書き戻されます (上記の .Fl f オプション参照)。 .Pp .Ss 個人の配布リストとシステム全体の配布リスト たとえば .Dq Li cohorts へメールを送ると複数の人に配布されるように、個人の配布リストを作成する こともできます。 このようなリストは .Pp .Dl alias cohorts bill ozalp jkf mark kridle@ucbcory .Pp というような行をホームディレクトリの .Pa \&.mailrc ファイルに書いておくことによって定義できます。 このようなエイリアス (別名) の現在のリストは .Nm mail 内で .Ic alias コマンドを使って表示することができます。 システム全体にわたる配布リストは .Pa /etc/aliases を編集することによって作成することができます。 これについては .Xr aliases 5 と .Xr sendmail 8 を参照してください。これらでは違った形式で記述されます。 あなたが送ったメールの中では個人のエイリアスが展開され、そのメールの受取 人が他の受取人に .Ic reply できるようになります。 システム全体の .Ic aliases はメールが送られた時には展開されませんが、 そのマシンに返信されたメールは .Xr sendmail によって処理される際にシステム全体のエイリアスで展開されます。 .Pp .Ss ネットワークメール (ARPA, UUCP, Berknet) ネットワークアドレスの説明については .Xr mailaddr 7 を参照してください。 .Pp .Nm mail には .Pa .mailrc ファイルの中でセットして動作方法を変更するためのオプションがたくさんあ ります。 たとえば .Dq Li set askcc は .Ar askcc 機能を有効にします。 (これらのオプションについては下にまとめてあります。) .Sh 要約 (`Mail Reference Manual' より抜粋) .Pp 各コマンドは行中に単独入力されるか、またコマンドの後に引数をとることも あります。 コマンドは全て入力する必要はありません。途中まで入力されたも のに最初にマッチしたコマンドが使われます。 メッセージリストを引数として取るコマンドについては、メッセージリストが 与えられなければコマンドに要求されるものを満たす次のメッセージが使われ ます。 次のメッセージがない場合にはサーチは逆順に行なわれ、もし適用されるメッ セージが発見できない場合には .Nm mail は .Dq Li No applicable messages と表示しコマンドを中断します。 .Bl -tag -width delete .It Ic \&\- 前のメッセージを表示します。 数字の引数 .Ar n が指定されると、 .Ar n 個前に移動してメッセージを表示します。 .It Ic \&# 行中のこれ以降をコメントとして無視します。 .It Ic \&? コマンドの短い要約を表示します。 .It Ic \&! これに引き続くシェルコマンドを実行します ( .Xr sh 1 と .Xr csh 1 を参照) 。 .It Ic Print .Pq Ic P .Ic print と同様ですが、無視されるヘッダフィールドも表示されます。 .Ic print , .Ic ignore , .Ic retain を参照してください。 .It Ic Reply .Pq Ic R 発信者に返信します。 元のメッセージの他の受取人には返信されません。 .It Ic Type .Pq Ic T .Ic Print と同じです。 .It Ic alias .Pq Ic a 引数がない場合は、現在定義されている全てのエイリアスを表示します。 引数がひとつ伴うと、そのエイリアスを表示します。 複数の引数が指定されると、新しいエイリアスを作成するか、古いものを変更 します。 .It Ic alternates .Pq Ic alt .Ic alternates コマンドはいくつかのマシンにアカウントがある場合に便利な機能です。 .Nm mail に対してリストされたアドレスがあなたのアドレスであることを指示するため に使われます。 .Ic reply コマンドによってメッセージに返信するときに .Nm mail は .Ic alternates リストにリストされているアドレスにはメッセージのコピーを送付しません。 .Ic alternates コマンドが引数なしで指定された場合、現在の alternate の内容が表示され ます。 .It Ic chdir .Pq Ic c ユーザの作業ディレクトリを指定されたものに変更します。 ディレクトリが指定されていなければ、ユーザのログインディレクトリに変更 します。 .It Ic copy .Pq Ic co .Ic copy コマンドは .Ic save と同様のことを行ないますが、終了時に削除を行なうためのマークをメッセー ジにつけません。 .It Ic delete .Pq Ic d メッセージのリストを引数として取り、それら全てを削除されたものとしてマー クします。 削除されるメッセージは .Ar mbox にはセーブされず、また他のほとんどのコマンドの対象となりません。 .It Ic dp (もしくは .Ic dt ) 現在のメッセージを削除し、次のメッセージを表示します。 次のメッセージがなければ、 .Nm mail は .Dq Li "at EOF" と表示します。 .It Ic edit .Pq Ic e メッセージのリストを引数として取り、各々を順にテキストエディタで開きま す。 メッセージはテキストエディタから戻ってきた時に再度読み込まれます。 .It Ic exit .Pf ( Ic ex もしくは .Ic x ) ユーザのシステムメールボックス、 .Ar mbox ファイル、 .Fl f での編集ファイルを変更せずにシェルへ直ちに戻ります。 .It Ic file .Pq Ic fi .Ic folder と同様です。 .It Ic folders フォルダディレクトリ内のフォルダ名をリストします。 .It Ic folder .Pq Ic fo .Ic folder コマンドは新しいメールファイルかフォルダに切替えます。 引数がないと、現在どのファイルを読んでいるかを表示します。 引数を指定すると、現在のファイルに対して行なった変更 (削除など) を書き 出し、新しいファイルを読み込みます。 引数の名前にはいくつかの特別な記法を使うことができます。 # は前のファイルを意味します。 % はあなたのシステムメールボックスを意味します。 %user は user のシステムメールボックスを意味します。 & はあなたの .Ar mbox ファイルを意味します。 \&+\&folder はあなたのフォルダディレクトリ中のファイルを意味します。 .It Ic from .Pq Ic f メッセージのリストを引数として取り、それらのメッセージのヘッダを表示し ます。 .It Ic headers .Pq Ic h 現在の範囲のヘッダをリストします。現在の範囲は 18 個のメッセージのグルー プです。 引数として .Ql \&+ が指定されると次の 18 個のメッセージのグループが表示され、 .Ql \&\- が指定されると前の 18 個のメッセージのグループが表示されます。 .It Ic help .Ic \&? と同じです。 .It Ic hold .Pf ( Ic ho , もしくは .Ic preserve ) メッセージのリストを引数として取り、各メッセージを .Ar mbox ではなくユーザのシステムメールボックスにセーブするためのマークをつけ ます。 .Ic delete によってマークが付けられているメッセージにはマークはつけません。 .It Ic ignore .Ar ignored list にヘッダフィールドのリストを追加します。 ignore list (無視リスト) に登録されているヘッダフィールドは メッセージを表示する際にターミナルに表示されません。 このコマンドはマシンが生成するヘッダフィールドの表示を省略するのに非常 に便利です。 .Ic Type と .Ic Print コマンドを使うと表示の際に無視するフィールドも含めメッセージの全てを表 示することができます。 .Ic ignore が引数なしで実行されると現在の無視するフィールドのリストが表示されます。 .It Ic mail .Pq Ic m ログイン名と配布グループ名を引数として取り、メールをそれらの人々に送付 します。 .It Ic more .Pq Ic \mo メッセージのリストを引数として取り、そのリストに対してページャを起動し ます。 .It Ic mbox 終了時にあなたのホームディレクトリの .Ic mbox へ書き込むメッセージのリストを指定します。 .Ic hold オプションをセットして .Em いなければ 、これはメッセージに対するデフォルトの動作となります。 .It Ic next .Pq Ic n ( .Ic \&+ や .Tn CR と同様) 次のメッセージへ進み、それを表示します。 引数リストを指定すると、次にマッチするメッセージを表示します。 .It Ic preserve .Pq Ic pre .Ic hold と同様です。 .It Ic print .Pq Ic p メッセージリストを引数として取り、各メッセージをユーザのターミナルに表 示します。 .It Ic quit .Pq Ic q セッションを終了し、全ての未削除のまだセーブしていないメッセージをユー ザのホームディレクトリの .Ar mbox ファイルへセーブし、 .Ic hold か .Ic preserve でマークされたメッセージか参照されなかったメッセージはシステムメールボッ クスに残し、その他の全てのメッセージをシステムメールボックスから削除し ます。 もし新しいメールがセッション中に届いていたら、メッセージ .Dq Li "You have new mail" を表示します。 もしメールボックスのファイルを .Fl f フラグ付きで編集している途中であれば、編集中のファイルは再度書き込まれ ます。 編集中のファイルの再書き込みが失敗しなければシェルに戻ります。 編集中のファイルの再書き込みが失敗した場合、ユーザは .Ic exit コマンドによって抜け出すことができます。 .It Ic reply .Pq Ic r メッセージリストを引数として取り、メールを指定されたメッセージの差出人 と全ての受取人に送ります。 デフォルトのメッセージは削除されていてはいけません。 .It Ic respond .Ic reply と同様です。 .It Ic retain .Ar retained list (保持リスト) にヘッダフィールドのリストを追加します。 -メッセージを表示する時には、retain list に登録されているヘッダーフィー -ルドのみがターミナルに表示されます。 +メッセージを表示する時には、retain list に登録されているヘッダ +フィールドのみがターミナルに表示されます。 他の全てのフィールドは省略されます。 .Ic Type と .Ic Print コマンドを使うとメッセージの全てを表示することができます。 .Ic retain が引数を指定されずに実行されると、現在 retain list に登録されているフィー ルドのリストを表示します。 .It Ic save .Pq Ic s メッセージのリストとファイル名を引数として取り、各メッセージを順にファ イルの末尾に追加します。 ファイル名が引用符で囲まれて表示され、それに続いて行数と文字数がユーザ のターミナルにエコーされます。 .It Ic set .Pq Ic se 引数がない場合には全ての変数の値を表示します。 引数が指定された場合はオプションをセットします。 引数は .Ar option=value ( = の前後にはスペースは入りません) か .Ar option の形式を取ります。 空白やタブを代入式に含めるために引用符を代入文の どの部分にでも 置いてかまいません。例えば次のようになります。 .Dq Li "set indentprefix=\*q->\*q" .It Ic saveignore .Ic saveignore は .Ic ignore コマンドが .Ic print や .Ic type の際に行なうことを .Ic save の際に行なうものです。 これでマークされたヘッダフィールドは .Ic save コマンドによって保存される時や自動的に .Ar mbox へ保存される時にフィルタリングされて取り除かれます。 .It Ic saveretain .Ic saveretain は .Ic retain が .Ic print や .Ic type の際に行なうことを .Ic save の際におこなうものです。 .Ic save コマンドによって保存される時や自動的に .Ar mbox へ保存される時には、これでマークされたヘッダフィールドのみが保存されます。 .Ic saveretain は .Ic saveignore に優先します。 .It Ic shell .Pq Ic sh シェルを対話モード起動します。 .It Ic size メッセージのリストを引数として取り、各メッセージのサイズを文字数で表示 します。 .It Ic source .Ic source コマンドはファイルからコマンドを読み込みます。 .It Ic top メッセージのリストを引数として取り、各メッセージの先頭の数行を表示しま す。 表示する行数は変数 .Ic toplines によって制御でき、デフォルトでは 5 行となっています。 .It Ic type .Pq Ic t .Ic print と同様です。 .It Ic unalias .Ic alias コマンドによって定義された名前のリストを引数として取り、記憶されている ユーザのグループを無効にします。 グループの名前は以後意味を持たなくなります。 .It Ic undelete .Pq Ic u メッセージのリストを引数として取り、各メッセージを削除されて .Ic いない ものとしてマークします。 .It Ic unread .Pq Ic U メッセージのリストを引数として取り、各メッセージを .Ic 未読 としてマークします。 .It Ic unset オプションの名前のリストを引数として取り、それらの記憶されている値を無 効とします。 .Ic set の逆です。 .It Ic visual .Pq Ic v メッセージのリストを引数として取り、各メッセージについてスクリーンエディ タを起動します。 .It Ic write .Pq Ic w .Ic save と同様ですが、 .Pq Ar ヘッダを除いて メッセージの本文 .Ic のみ が保存されます。 メッセージシステムを使ってソースプログラムテキストを送受信するような作 業で非常に便利です。 .It Ic xit .Pq Ic x .Ic exit と同様です。 .It Ic z .Nm mail は .Ic headers コマンドにて説明されているようにウィンドウいっぱいにメッセージヘッダを 表示します。 .Nm mail が指し示しているメッセージの位置は .Ic \&z コマンドによって次のウィンドウに進めることができます。 また、 .Ic \&z\&\- コマンドを使って前のウィンドウに戻ることもできます。 .El .Ss チルダ/エスケープ .Pp ここではチルダエスケープを要約します。 チルダエスケープはメッセージを編集している時に特別の機能を実行するため に使われます。 チルダエスケープは行の先頭でのみ認識されます。 実際のエスケープ文字は .Ic escape オプションによってセットできるので、 .Dq Em チルダエスケープ という呼び方は多少間違ったものです。 .Bl -tag -width Ds .It Ic \&~! Ns Ar command 指定されたシェルコマンドを実行し、メッセージに戻ります。 .It Ic \&~b Ns Ar name ... カーボンコピーの受取人のリストへ指定された name を追加します。 ただし name は Cc: 行へは表示されません ("ブラインド" カーボ ンコピー)。 .It Ic \&~c Ns Ar name ... 指定された name をカーボンコピーの受取人のリストに追加します。 .It Ic \&~d ホームディレクトリの .Dq Pa dead.letter ファイルをメッセージ中に読み込みます。 .It Ic \&~e 今までに編集したメッセージをテキストエディタで開きます。 編集セッションの終了後、メッセージに続けてテキストを追加することができ ます。 .It Ic \&~f Ns Ar messages 指定されたメッセージを送ろうとしているメッセージ中に読み込みます。 メッセージが指定されない場合は、現在のメッセージを読み込みます。 現在無視されているメッセージヘッダ ( .Ic ignore か .Ic retain コマンドによる) は読み込まれません。 .It Ic \&~F Ns Ar messages .Ic \&~f と同様ですが、全てのメッセージヘッダが含まれます。 .It Ic \&~h メッセージヘッダを順に各々を入力して編集し、テキストを末尾に追加したり、 現在のターミナルの erase 文字や kill 文字を使ってフィールドを変更した りします。 .It Ic \&~m Ns Ar messages 指定されたメッセージを現在送ろうとしているメッセージの中に読み込み、タ ブか .Ar indentprefix に設定されている値でインデントします。 メッセージが指定されていない場合は現在のメッセージが読み込まれます。 現在無視されているメッセージヘッダ ( .Ic ignore か .Ic retain コマンドによる) は読み込まれません。 .It Ic \&~M Ns Ar messages .Ic \&~m と同様ですが、全てのメッセージヘッダが読み込まれます。 .It Ic \&~p 今までに修正したメッセージをメッセージヘッダフィールドと共に表示します。 .It Ic \&~q 送ろうとしているメッセージを中断し、 .Ic save がセットされている場合はホームディレクトリの .Dq Pa dead.letter にメッセージをセーブします。 .It Ic \&~r Ns Ar filename 指定されたファイルをメッセージに読み込みます。 .It Ic \&~R Ns Ar string .Ar string を Reply-To: フィールドとして使用します。 .It Ic \&~s Ns Ar string 指定された文字列を現在のサブジェクトフィールドに設定します。 .It Ic \&~\&t Ns Ar name ... 指定された名前を受取人のリストに追加します。 .It Ic \&~\&v 別のエディタ ( .Ev VISUAL オプションによって定義されているもの) で現在までに修正したメッセージを 開きます。 通常は別のエディタはスクリーンエディタとなります。 エディタを終了した後、メッセージの末尾にテキストを追加できるようになり ます。 .It Ic \&~w Ns Ar filename 指定されたファイルにメッセージを書き込みます。 .It Ic \&~\&| Ns Ar command 指定されたコマンドをフィルタとし、パイプを通してメッセージに適用します。 コマンドから何の出力もないか、コマンドが異常終了した場合は、メッセージ のテキストは元のままとなります。 メッセージを整形するためによく .Xr fmt 1 コマンドが .Ic command として使われます。 .It Ic \&~: Ns Ar mail-command 指定されたメールコマンドを実行します。 しかし全てのコマンドが使えるわけではありません。 .It Ic \&~~ Ns Ar string メッセージに単独の ~ で始まるテキスト文字列を挿入します。 エスケープ文字が変更されている場合は、それを送るためにはエスケープ文字 を 2 つ指定しなければなりません。 .El .Ss メールオプション オプションは .Ic set と .Ic unset コマンドで制御します。 オプションは 2 値か文字列となります。 2 値の場合はセットされているか、されていないかだけが意味を持ちます。 文字列の場合は実際にセットしている値が意味を持ちます。 2 値のオプションには次のものがあります。 .Bl -tag -width append .It Ar append メッセージを .Ar mbox にセーブする場合、先頭に書くのではなく、末尾に追加します。 これは常にセットされていなければなりません (システムの .Pa mail.rc ファイルにおいて設定することが望ましいです)。 .It Ar ask .Nm mail は送ろうとしている各メッセージのサブジェクトの入力を促します。 改行のみを入力するとサブジェクトフィールドは送られません。 .It Ar askcc 各メッセージの編集後に追加のカーボンコピーの受取人の入力を促します。 現在のリストで十分な場合は改行のみを入力してください。 .It Ar autoprint .Ic delete コマンドを .Ic dp のように動作させます。 すなわちメッセージの削除後、次のものが自動的に表示されます。 .It Ar debug 2 値のオプション .Ar debug をセットするとコマンド行で .Fl d を指定した時と同じ動作になり、 .Nm mail はデバッグに有用な全ての種類の情報を出力します。 .It Ar dot 2 値のオプション .Ar dot をセットすることによって、 .Nm mail は行中にピリオドが単独で入力されると、送ろうとしているメッセージが終了した ものとみなします。 .It Ar hold このオプションはデフォルトでメッセージをシステムメールボックス中に保持 するために使われます。 .It Ar ignore ターミナルからの割り込み信号を無視し、@ としてエコーします。 .It Ar ignoreeof .Ar ignoreeof は .Ar dot に関連するオプションであり、 .Nm mail にメッセージの最後での control-d を無視させます。 .Ar Ignoreeof は .Nm mail のコマンドモード中でも有効となります。 .It Ar metoo 通常、差出人を含むグループの展開時には差出人は取り除かれます。 このオプションをセットすることによって差出人も展開されたグループに含ま れるようになります。 .It Ar noheader .Ar noheader オプションをセットすると、コマンド行で .Fl N フラグを指定するのと同様の動作となります。 .It Ar nosave 普通は .Tn RUBOUT (erase もしくは delete) を 2 回入力してメッセージの編集を中断する時、 .Nm mail はホームディレクトリのファイル .Dq Pa dead.letter に中断した手紙をコピーします。 この 2 値のオプション .Ar nosave をセットすると、ファイルへのコピーは行なわれません。 .It Ar Replyall .Ic reply コマンドと .Ic Reply コマンドの意味を逆転させます。 .It Ar quiet 最初に起動された時にバージョンの表示を省略します。 .It Ar searchheaders このオプションがセットされていると、``/x:y'' の形式でのメッセージリス トの指定はヘッダフィールド ``x'' 中にサブストリング ``y'' を含む全ての メッセージに展開されます。ストリングのサーチは大文字と小文字を区別しま せん。 .It Ar verbose .Ar verbose オプションをセットするとコマンド行で .Fl v フラグをセットした時と同様の動作となります。 .Nm mail が verbose (饒舌) モードで実行されている時、実際のメッセージの配送の様 子がターミナルに表示されます。 .El .Ss オプションストリング値 .Bl -tag -width Va .It Ev EDITOR .Ic edit コマンドと .Ic \&~e エスケープで使われるテキストエディタのパス名です。 定義されていない場合はデフォルトのエディタが使われます。 .It Ev LISTER .Ic folders コマンドで使われるディレクトリをリストするコマンドのパス名です。 デフォルトは .Pa /bin/ls です。 .It Ev PAGER .Ic more コマンドや変数 .Ic crt がセットされている時に使われるプログラムのパス名です。 このオプションが定義されていないとデフォルトのページャ .Xr more 1 が使われます。 .It Ev REPLYTO 設定されている場合、送信メッセージの Reply-To フィールドの初期化に使用 されます。 .It Ev SHELL .Ic \&! コマンドや .Ic \&~! エスケープで使われるシェルのパス名です。 このオプションが定義されていないとデフォルトのシェルが使われます。 .It Ev VISUAL .Ic visual コマンドや .Ic \&~v エスケープで使われるテキストエディタのパス名です。 .It Va crt 値をとるオプション .Va crt は、メッセージを読むために .Ev PAGER が使われるメッセージの長さの閾値として使われます。 .Va crt が値なしでセットされていると、システムに保存されているターミナルの画面 の高さが閾値の計算に使われます ( .Xr stty 1 を参照して下さい)。 .It Ar escape これが定義されていると、このオプションの最初のキャラクタがエスケープを 示すための ~ の代わりに使われます。 .It Ar folder メッセージのフォルダを置くためのディレクトリ名です。 これが `/' で始まっていると .Nm mail は絶対パスとして解釈します。それ以外の場合はフォルダのディレクトリはホー ムディレクトリからの相対パスとして扱われます。 .It Ev MBOX .Ar mbox の名前です。 これはフォルダの名前とすることもできます。 デフォルトはホームディレクトリの .Dq Li mbox となります。 .It Ar record これが定義されていると、全ての発信されるメールを記録するために使われる ファイルのパス名となります。 定義されていない場合は、発信メールはセーブされません。 .It Ar indentprefix チルダエスケープ ``~m'' で、通常のタブ文字 (^I) の代わりにメッセージを インデントするために使われる文字列となります。 これにスペースやタブが含まれている場合は引用符で囲んで下さい。 .It Ar toplines これが定義されていると、 .Ic top コマンドで表示するメッセージの行数となります。通常は先頭の 5 行が表示 されます。 .El .Sh 環境変数 .Nm mail は環境変数 .Ev HOME と .Ev USER を使用します。また、環境変数 .Ev MAIL がセットされていると、デフォルトの /var/mail の代わりにユーザのメール ボックスの位置として使われます。 .Sh 関連ファイル .Bl -tag -width /usr/share/misc/mail.*help -compact .It Pa /var/mail/* ポストオフィスです。 .It ~/mbox ユーザの古いメールです。 .It ~/.mailrc 起動時に実行されるメールコマンドを指定するファイルです。 .It Pa /tmp/R* 一時ファイルです。 .It Pa /usr/share/misc/mail.*help ヘルプファイルです。 .sp .It Pa /usr/share/misc/mail.rc .It Pa /usr/local/etc/mail.rc .It Pa /etc/mail.rc システムの初期化ファイルです。 各ファイルが存在すればこの順に読み込まれます。 .El .Sh 関連項目 .Xr fmt 1 , .Xr newaliases 1 , .Xr vacation 1 , .Xr aliases 5 , .Xr mailaddr 7 , .Xr sendmail 8 , .Rs .%T "The Mail Reference Manual" . .Re .Sh 歴史 .Nm コマンドは .At v1 で登場しました。 本マニュアルページは 元々 Kurt Shoens によって書かれた .%T "The Mail Reference Manual" をベースにしています。 .Sh バグ ここに文書化されていないフラグがいくつか存在します。 ほとんどは一般のユーザには役に立たないものです。 .Pp 混乱しやすいのですが、通常 .Nm mail は .Nm Mail への単なるリンクとなっています。 diff --git a/ja_JP.eucJP/man/man1/more.1 b/ja_JP.eucJP/man/man1/more.1 index 9716d16543..f1f79d322c 100644 --- a/ja_JP.eucJP/man/man1/more.1 +++ b/ja_JP.eucJP/man/man1/more.1 @@ -1,309 +1,310 @@ .\" Copyright (c) 1988, 1990 The Regents of the University of California. .\" Copyright (c) 1988 Mark Nudleman .\" 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. .\" .\" from: @(#)more.1 5.15 (Berkeley) 7/29/91 +.\" +.\" Original Revision: 1.7.2.2 .\" jpman %Id: more.1,v 1.4 1997/08/11 14:30:57 horikawa Stab % -.\" %Id: more.1,v 1.5 1994/01/11 18:22:48 jtc Exp % .\" .Dd April 18, 1994 .Dt MORE 1 .Os .Sh 名称 .Nm more .Nd CRT 上でファイルをページ単位に閲覧する .Sh 書式 .Nm .Op Fl ceinsu .Op Fl t Ar tag .Op Fl x Ar tabs .Op Fl / Ar pattern .Op Ar .Sh 解説 .Nm -は、画面上に一度に表示できる量の行数を 1 ページの行数とみなし、 +は、画面上に 1 度に表示できる量の行数を 1 ページの行数とみなし、 .Ar file が指定されていれば そのファイルを、指定されていないか ``-'' の場合は、標準入力 (標準入力が 端末の場合は、何もせずに終了します) を読み込んで、1 ページ分表示する毎に キー入力を待つようにします。 .Pp さまざまな端末に対応するため、 .Xr termcap 3 を使用します。また、制限はありますが、ハードコピー形式の端末も サポートしています。ハードコピー端末では、画面の上端に対応する位置に ``^'' が印刷されます。 .Sh オプション オプションとしては以下のものがあります。なお、これらのオプションは、 あらかじめ環境変数 .Ev MORE -で指定しておくことができます(``-'' をつけること)。 +で指定しておくことができます (``-'' をつけること)。 コマンドラインオプションでオーバーライドします。 .Bl -tag -width flag .It Fl c 通常、 .Nm は次のページを表示する時、現在表示されている画面を 1 行づつ スクロールしていって新しいページを表示していきますが、 このオプションを指定した場合、画面の上端から書き替えます。 .It Fl e 通常 .Nm は、ファイルの最後に達し次に表示すべきファイルがない 場合には終了しますが、このオプションを指定した場合にはファイルの最後に 達した時点でキー入力待ちになります。このオプションは、最後まで見た後、 前のページに遡って見たい場合に便利です。 .\"ただし、元々ファイルが小さく、最初の 1 ページに納まっている場合は、 .\"すぐ終了します。 .\"(訳中)原文で内容が削られていますが、とりあえずコメントで残します。 .\" 2.2.1R 対象(1997/05/06) Takeshi MUTOH .It Fl i サーチするとき、大文字と小文字を区別しないようにします。 .It Fl n 行番号の処理をしないようにします。デフォルトで、 .Xr more は、 .Cm = コマンドを使用した行情報の表示や、 .Cm v コマンドでエディタを起動して現在見ている行にジャンプさせるために、 行番号を内部で管理しています。しかし、この処理のために動作が 遅くなっており、これは、大きなファイルを扱う場合、特に顕著です。 このオプションを指定して行番号を使用しないことを 明示すれば、速度の低下を回避することができます。 .It Fl s 複数の空行が連続している場合、空行を 1 行にします。 .It Fl t Ar tag タグ情報を含むファイル ``tags'' から、tag で指定されたエントリを検索し、 対応するファイルの指定位置から表示を開始します。 タグファイル ``tags'' については、 .Xr ctags 1 を参照してください。 .It Fl u デフォルトでは、 .Nm は .Dv BS や .Dv CR-LF などのシーケンスを特別に処理します。 .Dv BS とアンダースコア文字があった場合は、文字にアンダーラインをつけて 表示しますし、2 つの同じ文字の間にBSがあったら、強調表示にします。 .Dv CR-LF は、1 つの改行にします。 このオプションは、これらの処理をやめ、 .Dv BS は ``^H'' に、 .Dv CR-LF は ``^M'' と改行にします。 .It Fl x タブ幅を .Ar N 文字にします。デフォルトでは 8 です。 .It Fl / .Ar pattern で指定した検索を実行し、見つかった位置から表示します。 .El .Pp .Sh コマンド .Nm は、1 ページ表示する毎に、キーボードから各種のコマンドを受け付けます。 コマンドは、 .Xr vi 1 のコマンド体系をベースにしたものです。 以下の説明で、``^''は``Control''キーを押しながら入力するキーの意味です。 また、コマンドのキーを押す前に数字を入力することで、そのコマンドに 対する引数を与えることができます。これは、説明のなかで``N''として 記述しています。 .Bl -tag -width Ic .It Ic h コマンドのヘルプを表示します。もし他の全てのコマンドを忘れても、 このコマンドは覚えておいてください。 .It Xo .Ic q .No or .Ic \&:q .No or .Ic ZZ .Xc .Nm を終了します。 .It Xo .Ic SPACE .No or .Ic f .No or .Ic \&^F .Xc 引数を指定しなかった場合は、1 ページ分スクロールします。 引数を指定した場合は、N 行分スクロールします。 .It Ic b No or Ic \&^B -テキストを 1 ページ分前にスクロールします(-zオプション参照)。 +テキストを 1 ページ分前にスクロールします (-z オプション参照)。 引数を指定した場合は、N 行分前にスクロールします。 .It Ic j No or Ic RETURN 1 行だけスクロールします。引数を指定した場合は、 N 行分スクロールします。 .It Ic k 1 行だけ前に戻るようにスクロールします。引数を指定 -した場合は、N行分戻ります。 +した場合は、N 行分戻ります。 .It Ic d No or Ic \&^D 画面の半分の行数を単位としてスクロールします。引数を 指定した場合は N 行分スクロールします。指定後は、この ``d'' コマンド および次の ``u'' コマンドでは、引数を指定しないでも半画面ではなく、 ここで指定した N 行単位でスクロールするようになります。 .It Ic u No or Ic \&^U 画面の半分の行数を単位として前の画面にスクロールします。 引数を指定した場合は、N 行分スクロールし、以後、N 行単位で スクロールするようになります。 .It Ic g ファイルの N 行目から表示します。引数を指定しなかった場合は、 ファイル先頭から表示します。 .It Ic G ファイルの N 行目から表示します。引数を指定しなかった場合は、 ファイルの最後から表示します。 .It Ic p No or Ic \&% ファイルの N パーセント目から表示します。 N は 0 から 100 までです。 file で指定したファイルの場合では、標準入力を読み込んで 表示するようにしている場合は、ファイルエンドに達してからでないと、 このコマンドは使用できません。 これは速いのですが、いつも有効とは限りません。 .It Ic r No or Ic \&^L 画面を表示し直します。 .It Ic R バッファに入っている入力を捨て、再読み込みして同じ行番号に当たる所から 画面を表示し直します。これは、表示を見ている間にファイルが 変更されたような場合に有効です。 .It Ic m 行マークをするコマンドです。``m'' を押すと、画 面下に ``mark: '' と表示されるので、a から z までの英小文字を使ってマークの 指定をすることができます。これで、現在の表示行がその文字にマーク されます。次の `` ' '' コマンドによって、ここでマークした行に ジャンプさせることができます。 .It Ic \&' m コマンドでマークした行にジャンプするコマンドで す。画面下に ``goto mark: '' と表示されますので、m コマンドで マークした a から z までの英小文字を入力すれば、 その行にジャンプできます。 なお、a から z のかわりに再度 `` ' '' を 入力すると、その前に大きく移動した位置に戻ります。この場合の大きな移動とは、 `` ' ''コマンドによる移動や、``g'' コマンドでのファイル先頭に移動することを 指します。 このあと、`` '' ''と入力すると、移動前の位置に戻ることができます。 全てのマークは、新しいファイルを読み込んだ時に失われます。 .It Ic \&/ Ns Ar pattern -現在行 (画面の一番上に表示されている行) の次の +現在行 (画面の 1 番上に表示されている行) の次の 行からファイルの末端に向かって、pattern で指定した検索を実行し、 一致した行から表示します。引数が指定された場合は、検索を繰り返し -実行し、N回目に一致した行からの表示になります。pattern には、 +実行し、N 回目に一致した行からの表示になります。pattern には、 .Xr re_format 7 で解説されているPOSIX.2 .Dq extended format 正規表現が使用できます。 .It Ic \&? Ns Ar pattern -現在行 (画面の一番上に表示されている行) の直前から +現在行 (画面の 1 番上に表示されている行) の直前から ファイルの先頭に向かって、 .Ar pattern で指定した検索を実行します。 .It Ic \&/\&! Ns Ar pattern .Ar pattern に一致しない行を検索する以外は ``/'' と同じです。 .It Ic \&?\&! Ns Ar pattern .Ar pattern に一致しない行を検索する以外は ``?'' と同じです。 .It Ic n 直前に実行した検索コマンドを再実行します。 .It Ic E Ns Op Ar filename コマンドラインのファイルリストの中から現在表示しているファイル -(N,Pコマンド参照)にかわって、 +(N, Pコマンド参照) にかわって、 filename で指定したファイルを表示対象にします。 ファイルが見つからない場合は、現在のファイルを再度表示します。 -ファイル名が"#"なら、一つ前に読み込んだファイルを再度表示します。 +ファイル名が "#" なら、1 つ前に読み込んだファイルを再度表示します。 .It Ic N No or Ic \&:n コマンドラインから file として複数のファイルを指 定して起動した場合に、現在表示しているファイルの次のファイルに表示を 切り替えます。引数を指定した場合は、N 個先のファイルになります。 .It Ic P No or Ic \&:p コマンドラインから file として複数のファイルを指 定して起動した場合に、現在表示しているファイルの 1 つ前のファイルに 表示を切り替えます。引数を指定した場合は、N 個前のファイルになります。 .It Ic \&:t タグエントリの入力をします。 ``:t'' を押すと、画面下に ``Tag: '' と表示されるので、新しいタグエントリの 入力をします。 対応するタグエントリが見つからなかった場合は、その旨を表示して、 前のファイルを表示します。 .It Ic v 現在表示しているファイルを編集対象にして、エディタを起動します。 エディタはデフォルトでは .Xr vi 1 が起動されるようになっていますが、 環境変数 .Ev EDITOR が指定されていた場合には、そこで指定したエディタが起動されます。 .It Ic \&= No or Ic \&^G 現在表示しているファイルについて、画面の最下行がファイル全体の 何行目にあたるか、また、ファイルの総バイト数に対する現在行の バイト数とそのパーセンテージを表示します。 .Nm が標準入力から読み込んでいるか、ファイルが一画面より短い場合は、 いくつかの情報は有効ではありません。これらの情報は、画面の最下行の最初の 1 バイトによって得られる事を覚えておいてください。 .El .Sh 環境変数 .Bl -tag -width Fl .It Ev MORE コマンドラインで指定するかわりに、あらかじめよく使うオプションを 設定しておくことができます。 .It Ev EDITOR 起動するエディタを指定します。 .It Ev SHELL 起動するシェルを指定します。通常、この変数はログイン時 にシェルが自分でセットします。 .It Ev TERM 端末のタイプを指定します。 .El .Sh 関連項目 .Xr ctags 1 , .Xr vi 1 .Sh バグ 長い行を含むファイルの読み込みは、遅いです。 .Pp CRLF で終端された 80 文字の行は、余計な改行を生じさせます。 .Sh 作者 このソフトウェアは .An Mark Nudleman によって Berkeley に寄贈されました。 .Sh 歴史 .Nm コマンドは .Bx 3.0 から登場しました。 diff --git a/ja_JP.eucJP/man/man1/netstat.1 b/ja_JP.eucJP/man/man1/netstat.1 index de4d1f61f1..35198e0aae 100644 --- a/ja_JP.eucJP/man/man1/netstat.1 +++ b/ja_JP.eucJP/man/man1/netstat.1 @@ -1,306 +1,307 @@ .\" Copyright (c) 1983, 1990, 1992, 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. .\" .\" from: @(#)netstat.1 8.8 (Berkeley) 4/18/94 +.\" +.\" Original Revision: 1.11.2.1 .\" jpman %Id: netstat.1,v 1.4 1997/10/11 07:45:56 horikawa Stab % -.\" %Id: netstat.1,v 1.6.2.1 1994/08/06 06:32:37 mycroft Exp % .\" .Dd April 18, 1994 .Dt NETSTAT 1 .Os BSD 4.2 .Sh 名称 .Nm netstat .Nd ネットワークの状態を表示する .Sh 書式 .Nm netstat .Op Fl Aan .Op Fl f Ar address_family .Op Fl M Ar core .Op Fl N Ar system .Nm netstat .Op Fl bdghimnrs .Op Fl f Ar address_family .Op Fl M Ar core .Op Fl N Ar system .Nm netstat .Op Fl bdn .Op Fl I Ar interface .Op Fl M Ar core .Op Fl N Ar system .Op Fl w Ar wait .Nm netstat .Op Fl p Ar protocol .Op Fl M Ar core .Op Fl N Ar system .Sh 解説 .Nm netstat コマンドは、ネットワークに関連したさまざまな情報を、シンボル表示を 交えてわかりやすく表示します。 出力の形式は指定オプションによって何種類かにわかれます。 -第1の形式は、プロトコルごとのアクティブソケットの一覧です。 -第2の形式は、選択したオプションによる、他のネットワークのデータ構造です。 -第3の形式は、コンフィギュレーションされているネットワークインタフェースの +第 1 の形式は、プロトコルごとのアクティブソケットの一覧です。 +第 2 の形式は、選択したオプションによる、他のネットワークのデータ構造です。 +第 3 の形式は、コンフィギュレーションされているネットワークインタフェースの パケットトラフィックを .Ar wait で指定したインターバル毎に継続して表示します。 -第4の形式は、指定したプロトコルに関する統計情報を表示します。 +第 4 の形式は、指定したプロトコルに関する統計情報を表示します。 .Pp 本コマンドでは、以下のオプションを指定可能です。 .Bl -tag -width flag .It Fl A デフォルトの表示では、ソケットと関係したすべてのプロトコル制御ブロックの アドレスが表示されます。通常これらはデバッグに用いられます。 .It Fl a デフォルトの表示では、すべてのソケットの状態が表示されます。通常 は、サーバプロセスで利用されているソケットは表示されません。 .It Fl b 本オプションをネットワークインタフェース表示 (後述の .Fl i -オプション)と併用した場合には、入力、出力したバイト数を表示します。 +オプション) と併用した場合には、入力、出力したバイト数を表示します。 .It Fl d -本オプションをネットワークインタフェース表示( +本オプションをネットワークインタフェース表示 ( .Fl i オプション、もしくは後述のインターバルオプション) と併用した場合には、欠落したパケット数を併せて表示します。 .It Fl f Ar address_family 表示する統計情報あるいはアドレス制御ブロック情報を .Ar address family の指定に合致するアドレスファミリのものに限定します。 アドレスファミリについては、 .Ar inet が .Dv AF_INET -(インターネットプロトコルファミリ)として、 +(インターネットプロトコルファミリ) として、 .Ar ipx が .Dv AF_IPX として、 .Ar atalk が .Dv AF_APPLETALK (ddp) -(アップルトークプロトコル)として、 +(アップルトークプロトコル) として、 .\".Ar ns .\"が .\".Dv AF_NS -.\"(XEROX NSプロトコルファミリ)として、 +.\"(XEROX NS プロトコルファミリ) として、 .\".Ar iso .\"が .\".Dv AF_ISO -.\"(ISOプロトコルファミリ)として、そして +.\"(ISO プロトコルファミリ) として、そして .Ar unix が .Dv AF_UNIX -(UNIXドメインプロトコルファミリ)として解釈されます。 +(UNIX ドメインプロトコルファミリ) として解釈されます。 .It Fl g -マルチキャスト(グループアドレス)ルーティングに関連した情報を表示します。 +マルチキャスト (グループアドレス) ルーティングに関連した情報を表示します。 デフォルトでは、IPマルチキャスト仮想インタフェースおよびルーティング テーブルについて表示します。 .Fl s オプションが同時に指定された場合、マルチキャストルーティングについての 統計情報も表示します。 .It Fl h .Tn IMP -ホストテーブルの状態を表示します(時代遅れ)。 +ホストテーブルの状態を表示します (時代遅れ)。 .It Fl I Ar interface 指定したインタフェースについての情報を表示します。本オプションは、 インターバルオプション .Ar wait と同時に指定し て使われます。このインターバルオプションについての詳細は後述します。 .It Fl i 自動コンフィギュレーションされているネットワークインタフェースの状態 -を表示します(静的にシステムにコンフィギュレーションされているインタ -フェースについて表示しますが、ブート時にコンフィギュレーションされて +を表示します (静的にシステムにコンフィギュレーションされている +インタフェースについて表示しますが、ブート時にコンフィギュレーションされて いないものについては表示しません)。 .Fl a オプションが同時に指定されている場合には、各イーサネットインタフェース -および各IPインタフェースアドレス +および各 IP インタフェースアドレス について、現在使用されているマルチキャストアドレスが表示 されます。マルチキャストアドレスは、 各々対応するインタフェースアドレスに続いて表示 されます。 .It Fl M デフォルトで使用される .Pa /dev/kmem の代わりに指定した core から、ネームリストに関連する各値を 取り出します。 .It Fl m メモリ管理ルーチンによって記録されているメモリ使用の統計情報を表 示します。 (ネットワーク管理システムは、独自にメモリバッファを確保しています)。 .It Fl N .Pa /kernel のかわりに、指定したカーネルモジュールからネームリストを取り出します。 .It Fl n -ネットワークアドレスを数字で表示します(通常、 +ネットワークアドレスを数字で表示します (通常、 .Nm netstat コマンドは、IPアドレスを可能な限りホスト名などのシンボリックなものに置 き換えようとします)。 本オプションは、どのような表示形式の場合にも使用できます。 .It Fl p Ar protocol .Ar protocol で指定したプロトコルについての統計情報を表示します。 プロトコルとしては、よく知られている名称、もしくは別名定義されている名称 を指定します。プロトコルのいくつかは .Pa /etc/protocols の中で定義されています。 特別なプロトコル名 ``bdg'' は、ブリッジの状態を表示するために使用します。 プロトコルについて情報が表示されない場合は、通常、 報告すべき有意な数値がないことを意味します。 .Ar protocol で指定したプロトコルが未知のものである場合、もしくはそのプロトコルの統 計情報記録ルーチンがない場合には、プログラムはその旨メッセージを出しま す。 .It Fl s プロトコルごとの統計情報を表示します。 -このオプションが複数指定された場合、カウンタの値がゼロのものは +このオプションが複数指定された場合、カウンタの値が 0 のものは 表示が抑制されます。 .It Fl r ルーティングテーブルを表示します。 .Fl s オプションが同時に指定された場合には、ルーティングの統計情報について 表示します。 .It Fl w Ar wait ネットワークインタフェースの統計情報について、 .Ar wait で指定した秒ごとに定期的に表示します。 .El .Pp -デフォルトのアクティブソケット表示では、ローカルおよびリモートアドレス、送 -受信キューのサイズ(バイト単位)、プロトコル、そしてプロトコルの内部状態が +デフォルトのアクティブソケット表示では、ローカルおよびリモートアドレス、 +送受信キューのサイズ(バイト単位)、プロトコル、そしてプロトコルの内部状態が それぞれ表示されます。 -アドレス形式については、``host.port''もしくは、ソケットのアドレスが -ネットワーク単位でしか特定できない場合には``network.port''という形式が採用 +アドレス形式については、``host.port'' もしくは、ソケットのアドレスが +ネットワーク単位でしか特定できない場合には ``network.port'' という形式が採用 されます。 ホストもしくはネットワークアドレスがデータベース .Pa /etc/hosts や .Pa /etc/networks の内容にしたがって変換可能である場合、各アドレスは名前で 表示されます。このような変換が不可能な場合、もしくは .Fl n オプションが指定された場合には、アドレスはアドレスファミリに従って 数値で表示されます。 インターネットアドレスの形式についてさらに知りたい場合には、 .Xr inet 3 を参照して下さい。 特にアドレスが指定されてない場合や、アドレスがワイルドカード 指定されている場合には、その部分のアドレスやポート番号のところには ``*'' が表示されます。 .Pp インタフェース表示では、パケット転送、エラー、コリジョンに関する 累積情報を見ることができます。また、インタフェースの -ネットワークアドレスおよび最大転送可能ユニットサイズ(``mtu'')も +ネットワークアドレスおよび最大転送可能ユニットサイズ (``mtu'') も 見ることができます。 .Pp ルーティングテーブル表示では、利用可能な経路とその状態が表示 されます。各経路は、到達先ホストもしくはネットワークと、 -パケットの転送(forward)に使用されるゲートウェイから成ります。 +パケットの転送 (forward) に使用されるゲートウェイから成ります。 フラグフィールドは、 ルーティングに関する状態の集合が表示されます。フラグフィールドの 各フラグについては、 .Xr route 8 および .Xr route 4 を参照して下さい。 表示される文字とフラグの間の対応は以下の通りです。 .Bl -column XXXX RTF_BLACKHOLE -1 RTF_PROTO1 ルーティングフラグ#1にて特定されるプロトコル -2 RTF_PROTO2 ルーティングフラグ#2にて特定されるプロトコル -3 RTF_PROTO3 ルーティングフラグ#3にて特定されるプロトコル +1 RTF_PROTO1 ルーティングフラグ #1 にて特定されるプロトコル +2 RTF_PROTO2 ルーティングフラグ #2 にて特定されるプロトコル +3 RTF_PROTO3 ルーティングフラグ #3 にて特定されるプロトコル B RTF_BLACKHOLE 破棄されるパケット b RTF_BROADCAST ブロードキャストアドレスを表現する経路 C RTF_CLONING 新しい経路を生成する c RTF_PRCLONING 使用時に、プロトコル専用の新しい経路を生成する -D RTF_DYNAMIC (リダイレクトによって)動的に生成される +D RTF_DYNAMIC (リダイレクトによって) 動的に生成される G RTF_GATEWAY ゲートウェイ等による中継を必要としている到達先 -H RTF_HOST ホストエントリ(これ以外はネットワーク) +H RTF_HOST ホストエントリ (これ以外はネットワーク) L RTF_LLINFO アドレス変換を連動させられる正当なアドレス -M RTF_MODIFIED (リダイレクトによって)動的に変更される +M RTF_MODIFIED (リダイレクトによって) 動的に変更される R RTF_REJECT 到達不可能なホストもしくはネットワーク S RTF_STATIC 手動で追加された U RTF_UP 使用可能経路 W RTF_WASCLONED クローンした結果として作成された経路 -X RTF_XRESOLVE 外部のdaemonがプロトコルからリンクアドレス変換を行なう +X RTF_XRESOLVE 外部の daemon がプロトコルからリンクアドレス変換を行なう .El .Pp 直接到達可能な経路は、ローカルホストにアタッチされた各インタフェースごとに 生成されます。このようなエントリのゲートウェイフィールドは、 対外インタフェースのアドレスを表します。 -refcntフィールドは、使用されている経路の現在数を示します。 +refcnt フィールドは、使用されている経路の現在数を示します。 コネクション指向のプロトコルは、通常、コネクションの間じゅう 単一の経路を保持します。 他方で、コネクションレス型のプロトコルは、同じ到達先に対して パケットを送る場合にも、新たに経路を確保します。 -useフィールドは、その経路を通って送られたパケット数を表示します。 +use フィールドは、その経路を通って送られたパケット数を表示します。 インタフェースエントリは、その経路用に用いられる ネットワークインタフェースを表示します。 .Pp .Nm netstat が .Fl w オプションと .Ar wait インターバル引数を与えられて起動された場合、ネットワークインタフェースに 関連した統計情報を定期的に表示します。 -ほとんど使われませんが、オプション指定なしで数字だけをnetstatの引数と +ほとんど使われませんが、オプション指定なしで数字だけを netstat の引数と して指定することもでき、本オプションと同様の動作をさせることができます。 しかし、この使い方は過去との互換性のためにのみ存在します。 デフォルトでは、本表示は すべてのインタフェースについてのサマリ情報からなります。 .Fl I オプションを用いることで、特定の インタフェースの情報を表示させることが可能です。 .Sh 関連項目 .Xr nfsstat 1 , .Xr ps 1 , .Xr hosts 5 , .Xr networks 5 , .Xr protocols 5 , .Xr services 5 , .Xr iostat 8 , .Xr trpt 8 , .Xr vmstat 8 .Sh 歴史 .Nm netstat コマンドは、 .Bx 4.2 にはじめて登場しました。 .\" .Sh 関連ファイル .\" .Bl -tag -width /dev/kmem -compact .\" .It Pa /netbsd .\" default kernel namelist .\" .It Pa /dev/kmem .\" default memory file .\" .El .Sh バグ エラーの概念については、定義が間違っています。 diff --git a/ja_JP.eucJP/man/man1/objformat.1 b/ja_JP.eucJP/man/man1/objformat.1 index 4ff26d9832..edb631fe0c 100644 --- a/ja_JP.eucJP/man/man1/objformat.1 +++ b/ja_JP.eucJP/man/man1/objformat.1 @@ -1,101 +1,102 @@ .\" .\" Copyright (c) 1998 David E. O'Brien .\" .\" 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 DEVELOPERS ``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 DEVELOPERS 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. .\" -.\" %Id: objformat.1,v 1.1 1998/10/25 13:25:42 obrien Exp % +.\" %Id: objformat.1,v 1.1.2.1 1999/06/15 19:21:17 mpp Exp % +.\" .\" jpman %Id: objformat.1,v 1.3 1999/02/01 13:15:56 kuma Stab % .\" .Dd October 25, 1998 .Os .Dt OBJFORMAT 1 .Sh 名称 .Nm objformat .Nd デフォルトのバイナリ形式を報告し、その形式用プログラムを実行する .Sh 書式 .Nm objformat .Nm prog .Sh 解説 .Nm として実行された時には、デフォルトのオブジェクトファイル形式を報告しま す。オブジェクトファイル形式は、 -.Ar a.out +.Ar aout と -.Ar ELF +.Ar elf の 2 種類です。 .Pp 他の名称で実行された時には、 .Nm prog は .Pa /usr/libexec//prog と展開されて、起動されます。 .Sh 診断 引数の数が不適切であったり、 .Nm prog を起動できなかった場合には、 .Nm ユーティリティは終了コード 1 を返し終了します。 .Sh 環境変数 .Bl -tag -width OBJFORMAT_PATH .It Ev OBJFORMAT 環境変数 .Ev OBJFORMAT が設定されている場合には、デフォルトのオブジェクト形式に優先します。 .Ev OBJFORMAT は .Pa /etc/objformat よりも優先されます。 .It Ev OBJFORMAT_PATH 環境変数 .Ev OBJFORMAT_PATH が設定されている場合には、その値が .Nm prog へのパスのベースとして使われます。デフォルトでは、 .Pa /usr/libexec です。 .El .Sh 関連ファイル .Bl -tag -width /etc/objformat -compact .It Pa /etc/objformat このファイルは、使用するオブジェクトファイル形式を 指定します。書式は、 .Ql OBJFORMAT=xxx です。 .Sh 関連項目 .Xr file 1 , .Xr getobjformat 3 .\" .Sh STANDARDS .Sh 歴史 .Nm は .Fx 3.0 から登場しました。 .Sh 作者 .Nm は、 .An Peter Wemm Aq peter@netplex.com.au によって書かれました。 このマニュアルページは、 .An David O'Brien Aq obrien@NUXI.com によって書かれました。 .\" .Sh BUGS diff --git a/ja_JP.eucJP/man/man1/rdist.1 b/ja_JP.eucJP/man/man1/rdist.1 index 0684f4b29b..f0cf54ad8a 100644 --- a/ja_JP.eucJP/man/man1/rdist.1 +++ b/ja_JP.eucJP/man/man1/rdist.1 @@ -1,446 +1,447 @@ .\" Copyright (c) 1985, 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. .\" .\" @(#)rdist.1 8.3 (Berkeley) 3/17/94 +.\" +.\" Original Revision: 1.10 .\" jpman %Id: rdist.1,v 1.2 1997/06/05 02:50:01 yugawa Stab % -.\" Original revision: 1.3.2.5 .\" .Dd March 17, 1994 .Dt RDIST 1 .Os BSD 4.3 .Sh 名称 .Nm rdist .Nd リモートファイル配布プログラム .Sh 書式 .Nm rdist .Op Fl nqbRhivwyD .Op Fl P Ar rshcmd .Op Fl f Ar distfile .Op Fl d Ar var=value .Op Fl m Ar host .Op Ar name ... .Nm rdist .Op Fl nqbRhivwyD .Op Fl P Ar rshcmd .Fl c .Ar name ... .Oo login@ Oc Ns Ar host Ns Op :dest .Sh 解説 .Nm は、複数のホストに対し、ファイルの内容を同一に維持するためのプログラムです。 本プログラムによるファイルコピーでは、可能な限り所有者、グループ、 アクセスモード、そして更新時刻を保存しようとします。 そして、現在実行中のプログラムの更新も可能です。 .Nm は、コマンドを .Ar distfile から読み出し、その内容に従ってファイルやディレクトリの更新を制御します。 .Pp 第 1 の書式特有のオプション: .Pp .Bl -tag -width indent .It Fl .Ar distfile に .Sq Fl を指定した場合、標準入力からデータを入力します。 .It Fl f Ar distfile 指定した .Ar distfile を使用します。 .El .Pp .Fl f オプションも .Sq Fl オプションも指定されない場合には、本プログラムは最初に .Dq Pa distfile を、次に .Dq Pa Distfile を探し、入力として使用します。 コマンド行にて何の指定も与えられない場合には、 .Nm は、 .Ar distfile に記述されたすべてのファイルとディレクトリを更新します。 それ以外の場合では、引数は、更新対象となるファイル名あるいは 実行されるコマンドのラベルと解釈されます。 ラベルやファイル名が衝突する場合には、すべてラベルとして取り扱います。 これらの名前は、指定したコマンドを用いて指定したファイルを更新するのに 用いられます。 .Pp 第 2 の書式特有のオプション: .Pp .Bl -tag -width Fl c .It Fl c .Nm に、残りの引数を小規模の .Ar distfile として解釈するように指示します。 .Pp このオプションを使用した場合と等価な distfile は、以下のようになります。 .Pp .Bd -filled -offset indent -compact .Pq Ar name ... .Li -> .Op Ar login@ .Ar host .Bd -filled -offset indent -compact .Li install .Op Ar dest ; .Ed .Ed .El .Pp 両方の書式に共通のオプション: .Pp .Bl -tag -width Ic .It Fl P Ar rshcmd .Xr rsh 1 と同様な機能を持つ他のプログラムをリモートサーバへの転送に使用します。 指定したプログラムはリモートサーバへバイナリ透過な経路を使用できる必要が あり、コマンド引数の書式が .Xr rsh 1 と互換でなければなりません。 .It Fl d Ar var=value .Ar var に対して .Ar value を代入することを定義します。 .Fl d オプションは、変数を定義したり、 .Ar distfile 中の変数を変更したりするのに用いられます。 .Ar value には、空白文字列、名前、もしくは括弧で囲まれて、タブやスペースで区切ら れた名前の列挙が指定可能です。 .It Fl h シンボリックリンクを追いかけます。リンクしてあるファイルの場合、リンクファ イルそのものでなく、リンク先にある実体をコピーします。 .It Fl i 解決できないリンクを無視します。 .Nm は、通常はリンクファイルについてもコピーを行ない、リンクが解決出来ない場合 には、その旨をユーザに通知します。 .It Fl m Ar host ファイルを更新するホストを制限します。 複数の .Fl m 引数を指定する事で、 .Ar distfile に記述のあるホスト名の中から複数のホスト名を選択して与えることが可能です。 .It Fl n 実行しないで、コマンド自身を表示します。本オプションは .Ar distfile のデバッグに有効です。 .It Fl q QUIETモードに入ります。更新されるファイルについては、通常は標準出力に 表示されますが、 .Fl q オプションはこの出力を抑制します。 .It Fl R 無関係なファイルを削除します。ディレクトリを更新する場合に、 リモートホスト上に存在するファイルが、配布元のディレクトリ中に存在しないなら、 該当するファイルを削除します。本オプションは、配布元と配布先で完全にディ レクトリ配下の内容を一致させたい場合に有効です。 .It Fl v すべてのホストのファイルが最新の物であるかの確認を行ないます。すべての 古いファイルについては一覧が表示されますが、そのファイルが変更されたり、 そのファイルに関してシステムからメールが届いたりすることはありません。 .It Fl w WHOLE モードを有効にします。指定されたファイル名全体が、配布先ディレクトリ名の 後に付加されます。通常は、ファイル名からディレクトリ名を取り除いた 最後の部分のみがファイル名を変更する時に使われます。 本オプションは、ディレクトリ構造をフラットにせず、配布元のディレクトリ 構造をそのまま配布先に持っていきたい場合に用いられます。例えば、 ( dir1/f1 dir2/f2 )のように表されるファイルを、dir3 というディレクトリに 配布した場合、配布先では dir3/f1 や dir3/f2 ではなく、 dir3/dir1/f1 や dir3/dir2/f2 が作成されます。 .It Fl y YOUNGERモードを有効にします。通常、ファイルの更新は、 .Ar mtime と .Ar size ( .Xr stat 2 参照) が一致しない場合に行なわれます。しかし、 .Fl y オプションが有効になっている場合には、 .Nm は、配布元のファイルより新しいファイルは更新しません。 通常本オプションは、他のホストに存在する、より新しいファイルを置き換えない 目的で用いられます。 配布元より新しいファイルが配布先にあった場合には、その旨を通知する メッセージが表示されます。 .It Fl D デバッグモード。 .El .Pp .Ar distfile は、コピーされるファイル、配布先ホスト、そして更新のための手順を指定 するエントリを含みます。各エントリは、以下の形式のいずれかに分類され ます。 .Pp .Bd -literal -offset indent -compact `=' [label:] `\->' [label:] `::' .Ed .Pp 一番目の形式は、値を定義するのに用いられます。 二番目の形式は、他のホストへファイルを配布するのに用いられます。 三番目の形式は、指定した日付以降に更新されたファイルの一覧を作成するのに 用いられます。 .Ar source list は、配布元のファイルやディレクトリの一覧を指定します。 .Ar destination list は、ファイルの配布先のホスト一覧です。配布元ファイルリスト (source list) 中の各ファイルが、更新を行なおうとしているホストにおいて古いもの である(二番目の形式)か、または、指定のファイルのタイムスタンプより新し い場合(三番目の形式)には、変更対象リストに追加されます。 .Pp ラベルの使用は、任意です。ラベルについては、部分的な変更を行う場合 に、コマンドを識別するために用いられます。 .Pp 改行、タブ、そして空白は、セパレータとしてのみ用いられ、それ以外の場で 用いられた場合には無視されます。コメントは、`#' で始まり改行で終ります。 .Pp `$' で始まり、1文字もしくは `{''}' でくくられた名前の変数については、処理中に その値に置き換えられます(最後に出てくる例を参照して下さい)。 .Pp 配布元ファイルリストと配布先ホストリストの一覧は、以下の形式を取ります。 .Bd -literal -offset indent <名前> .Ed または .Bd -literal -offset indent -compact `(' <空白で区切られた 0 個以上の名前> `)' .Ed .Pp シェルのメタ文字であるところの `[', `]', `{', `}', `*', そして `?' は、(配布元のホスト上でのみ) .Xr csh 1 同様に解釈され、展開されます。 これは、バックスラッシュを用いて回避する事が出来ます。 `~' 文字もまた、 .Xr csh 1 同様に展開されますが、配布元と配布先のホストで別々に展開されます。 .Fl w オプションが `~' ではじまるファイル名とともに用いられた場合、ホームディ レクトリを除くすべてのファイル/ディレクトリ名が配布先の名前に加えられます。 `/' や `~' 以外の文字ではじまるファイル名は、配布先のユーザのホームディ レクトリをルートディレクトリとみなして、指定されたファイルの名前を 追加して配布先でのファイル名を作成します。 .Pp コマンドリストは、以下の形式に従った、0 個以上のコマンドからなります。 .Bd -ragged -offset indent -compact .Bl -column except_patx pattern\ listx .It `install' opt_dest_name `;' .It `notify' `;' .It `except' `;' .It `except_pat' `;' .It `special' string `;' .El .Ed .Pp .Ic install コマンドは、古いファイルやディレクトリをコピーするのに用いられます。 各配布元のファイルは、配布先ホストリスト中の各ホストへコピーさ れます。ディレクトリも同様にして、再帰的にコピーされます。 .Ar Opt_dest_name は、ファイル名を変更するための任意的なパラメータです。 .Ic install コマンドがコマンドリストに存在しない場合や、配布先での ファイル名が指定されていない場合、配布元のファイル名がそ のまま配布先でのファイル名として採用されます。 パス名に含まれるディレクトリが配布先のホスト上に存在しない 場合には、そのディレクトリを作成します。 不慮の事故を回避するために、配布先のホスト上に空でないディレクトリがあっ ても、通常のファイルやシンボリックリンクに置き換えたりはしません。 しかし、`\-R'オプションを付加して実行した場合には、配布元のディレクト リに当該ファイルが存在しなければ、空でないディレクトリでも削除されます。 .Ar option には、`\-R', `\-h', `\-i', `\-v', `\-w', `\-y', `\-b' があり、それらが配布元ファイルリストに記述されたファイルに対 してのみ適用される事を除いて、コマンドライン中に指定した事と同じ意味と なります。 配布先ホストにおけるログイン名は、配布元でのログイン名と同じですが、配 布先のログイン名が ``login@host" という形式で指定されている場合にはこの 限りではありません。 .Pp .Ic notify コマンドは、更新されたファイル一覧(および、発生した何らかのエラー)をメール によって通知する場合に用いられます。 指定のメールアドレス中に `@' がない場合には、配布先のホスト名がメールア ドレスに付加されます(例: name1@host, name2@host, ...)。 .Pp .Ic except コマンドは、 .Ar name list に列挙されているファイルを除き、配布元ファイルリストに記述されているすべての ファイルを更新するのに用いられます。 本コマンドは、特定ファイルを除くすべてのファイルをコピーするのに用い られます。 .Pp .Ic except_pat コマンドは、 .Ic except コマンドと似てますが、 .Ar pattern list として正規表現を用いたリストを指定できるところが異なります (詳細については、 .Xr re_format 7 を参照して下さい)。 ファイル名に含まれる文字列が、正規表現のパターンに一致すると、そのファ イルは無視されます。 `\e' が文字をクオートする事に注意して下さい。正規表現に含めるためには、 2 個続ける必要があります。 .Ar pattern list の中の変数は展開されますが、シェルのファイルパターンマッチ方法とは異なります。 `$' を含めるためには、`\e' を用いてエスケープする必要があります。 .Pp .Ic special コマンドは、 .Ar name list にて指定されたファイルを更新、または、コピーした後に、配布先の ホスト上で実行される .Xr sh 1 コマンドを指定するのに用いられます。 .Ar name list が省略された場合には、シェルコマンドは各ファイルの更新が終了する度に 実行されます。シェル変数 `FILE' には、 文字列 .Ar string で指定したコマンドを実行する前に、直前に処理したファイル名が格納されます。 文字列 .Ar string を、`"'で囲む事で、 .Ar distfile において複数行にわたって記述する事が出来ます。 シェルに対する複数の実行コマンドは、`;'で区切られる必要があります。 指定されたコマンドは、ファイルの更新を行なおうとしている配布先ホストの 当該ユーザのホームディレクトリで実行されます。 .Ar special コマンドは、プログラムがファイルを更新した後にプライベートデータベース を再構築する用途をはじめとして、いろいろな場面で用いる事が出来ます。 .Pp 以下に示す例は簡単な一例です。 .Bd -literal -offset indent HOSTS = ( matisse root@arpa ) FILES = ( /bin /lib /usr/bin /usr/games \t/usr/include/{*.h,{stand,sys,vax*,pascal,machine}/*.h} \t/usr/lib /usr/man/man? /usr/ucb /usr/local/rdist ) EXLIB = ( Mail.rc aliases aliases.dir aliases.pag crontab dshrc \tsendmail.cf sendmail.fc sendmail.hf sendmail.st uucp vfont ) ${FILES} -> ${HOSTS} \tinstall -R ; \texcept /usr/lib/${EXLIB} ; \texcept /usr/games/lib ; \tspecial /usr/lib/sendmail "/usr/lib/sendmail -bz" ; srcs: /usr/src/bin -> arpa \texcept_pat ( \e\e.o\e$ /SCCS\e$ ) ; IMAGEN = (ips dviimp catdvi) imagen: /usr/local/${IMAGEN} -> arpa \tinstall /usr/local/lib ; \tnotify ralph ; ${FILES} :: stamp.cory \tnotify root@cory ; .Ed .Sh 関連ファイル .Bl -tag -width /tmp/rdist* -compact .It Pa distfile 入力コマンドファイル .It Pa /tmp/rdist* 更新リストのために用いられる一時ファイル .El .Sh 関連項目 .Xr csh 1 , .Xr sh 1 , .Xr stat 2 , .Xr re_format 7 .Sh 歴史 .Nm コマンドは、 .Bx 4.3 から登場しました。 .Sh 診断 .Nm のバージョン不一致についての通知は、実際にはシェルを起動する際の 何らかの問題に起因して発生します。例えば、ユーザの所属グループがあまり 多すぎるなどが挙げられます。 .Pp .Nm は、 .Xr rcmd 3 タイプのリモートサービス実行が、静かに成功することに依存します。 よくある誤りとしては、非対話の初期化スクリプト、例えば .Pa .cshrc が出力を行なってしまうことがあります (出力を行う他のプログラムを実行するものの、 そのプログラムが端末に接続されていないということもあります -- よくある原因が .Xr stty 1 です)。 このような余計な出力のために、 .Nm が失敗して次のようなエラーメッセージが表示されます: .Pp .Dl rdist: connection failed: version numbers don't match .Sh バグ 配布元ファイルは、 .Nm コマンドが起動される配布元ホストに存在しなければなりません。 .Pp ディレクトリ配下のすべてのファイルが更新された後に .Ic special コマンドを実行 するのは困難です。 .Pp 変数の置換は、name list に対してのみ働きます。より一般的なマクロ の機能があるべきでしょう。 .Pp .Nm は、負 (1970 年 1 月 1 日以前の日付)の mtime を持つファイルに対してのアクセスを 行うと異常終了します。 .Pp 空でないディレクトリを通常ファイルやシンボリックリンクで置換できる、 `force' オプションがあるべきでしょう。内容自体は一致しているファイルのモード や所有者を更新する方法も必要でしょう。 diff --git a/ja_JP.eucJP/man/man1/sh.1 b/ja_JP.eucJP/man/man1/sh.1 index 10c978a3ef..72d6366bff 100644 --- a/ja_JP.eucJP/man/man1/sh.1 +++ b/ja_JP.eucJP/man/man1/sh.1 @@ -1,1211 +1,1211 @@ .\" 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 .\" %Id: sh.1,v 1.23.2.2 1999/04/19 18:54:06 max 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 と同様に 見える機能を多数持っていますが、 Korn shell のクローンではありません (もし Korn shell クローンを望むなら、 Gnu の bash を使いましょう)。 このシェルには、POSIX で規定された仕様といくつかの Berkeley 拡張のみが 取り入れられています。 本マニュアルは、shell のチュートリアルでは ありませんし、仕様を完全に記述するものでもありません。 .Ss 概要 シェルは、ファイルまたは端末から 1 行ずつ読み込み、それを解釈し、 コマンドを実行します。シェルはユーザがシステムにログインしたときに起動 されるプログラムです (ただし、ユーザは chsh(1) コマンドによって他のシェルを選択することもできます)。 シェルは、制御構文を持つ言語であり、 データ記憶をはじめとして多様な機能を提供するマクロ機能、 ヒストリ、行編集機能も内蔵しています。 このシェルは対話的に使うときに便利な機能を多くとり入れており、 対話的に用いるときも非対話的に (シェルスクリプトとして) 用いるときも、 共通のインタプリタ言語を用いることができる利点があります。 すなわち、コマンド名をシェルに直接タイプする ことも、コマンド名をファイルに書いておいてそのファイルをシェルに 実行させることもできます。 .Ss 起動 引数が与えられず、かつシェルの標準入力が端末の場合 (または -i フラグが指定 された場合)、シェルは対話的に動作します。対話的シェルは、通常、コマンド 入力時にプロンプトを表示し、文法的なエラーとコマンドエラーを 異なった方法で処理します (後述します)。 起動時に、シェルは 0 番目の引数を検査します。もしそれが ダッシュ `-' で始まっているなら、シェルはログインシェルとして 動作します。ユーザがシステムにログインした場合は自動的にこの状況に なります。ログインシェルは、まず (以下の各ファイルが存在する場合)、 .Pa /etc/profile と .Pa .profile ファイルからコマンドを読み込みます。 シェル起動時に、もしくはログインシェルで .Pa .profile を実行中に環境変数 .Ev ENV が設定されているなら、シェルは、その次に環境変数 .Ev ENV で示されたファイルからコマンドを読み込みます。 つまり、ユーザはログイン時にのみ実行したいコマンドを .Pa .profile に書き、シェルが起動されるたびに実行したいコマンドを環境変数 .Ev ENV で示すファイルに書くことになります。 環境変数 .Ev ENV を設定するには、ユーザのホームディレクトリ下のファイル .Pa .profile に以下のように記述します。 .sp .Dl ENV=$HOME/.shinit; export ENV .sp ここで、 .Pa .shinit のかわりに好きな名前を指定することができます。 オプション以外にコマンドライン引数が指定された場合、シェルは最初の引数 を、コマンドを読み込むべきファイル (シェルスクリプト) の名前であると解釈し、 それ以後の引数はシェルの位置パラメータ ($1, $2, ...) に設定します。 それ以外の場合、シェルはコマンドを標準入力から読み込みます。 .Pp 古いバージョンの .Nm とは異なり、環境変数 .Ev ENV で指定したスクリプトが実行されるのは、対話的シェルの呼び出し時のみです。 これにより、いい加減に書かれた .Ev ENV スクリプトに起因する、簡単に食いものにされることが多い有名な セキュリティホールがふさがれたことになります。 .Ss 引数リスト処理 .Nm の 1 文字からなるオプションはそれぞれ対応する名前を持っており、 .Xr set 1 組み込みコマンド (後述) の引数として用いることができます。 これらの名前は、以下の説明で 1 文字オプションのすぐあとに書いてあります。 マイナス記号 .Dq - でオプションを指定することは、そのオプションを有効にすることを意味し、 プラス記号 .Dq + でオプションを指定することは、そのオプションを無効にすることを意味します。 .Dq -- または、単なる .Dq - はオプション処理を終了させ、 コマンドラインの残りの語を引数として解釈することを強制します。 .Bl -tag -width Ds .It Fl a Li allexport 値が代入された変数の全てをエクスポートします。 .It Fl b Li notify バックグラウンドジョブ実行の完了を、コマンドが実行中でも即座に報告しま す (未実装です)。 .It Fl C Li noclobber すでに存在するファイルに対して .Dq > リダイレクトにより上書きしません (未実装です)。 .It Fl E Li emacs 組み込みの .Xr emacs 1 風のコマンド行編集機能を有効にします (それ以前に .Fl V オプションが指定された場合、それを無効にします)。 .It Fl e Li errexit 非対話的シェルで、テスト状態にないコマンドの実行に失敗した場合、 直ちにシェルを終了します。 コマンドは、if, elif, while, until 構文を 制御するのに用いられている場合に、テスト状態であるとみなされます。 また、 .Dq && や .Dq || の左辺値として用いられているコマンドも、テスト状態とみなされます。 .It Fl f Li noglob パス名展開を行ないません。 .It Fl I Li ignoreeof 対話的シェルの場合、入力の 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 コマンドを標準入力から読み込みます (引数でファイル名が指定されていない 場合には、このオプションが自動的に設定されます)。 シェルが実行されてから本オプションを( .Xr set 1 などによって)設定しても効果はありません。 .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 各コマンドを実行する前に、そのコマンドを標準エラー出力に (各コマンドの 前に `+' を付加して) 書き出します。デバッグのときに便利です。 .It Fl c Ar string 文字列引数 string はシェルに渡され、入力として解釈されます。このオプショ ンは引数として文字列を一つだけ受け取ることに注意して下さい。ですから、複 数の単語からなる文字列は引用符で囲う必要があります。 .El .Ss 構文構造 シェルは、ファイルを行単位で読み込み、空白文字 (ブランクおよびタブ) や シェルにとって特別な意味を持つ特定の文字列 ( .Dq 演算子 と呼ばれるものです) を区切りとして、複数の単語に分割します。演算子には、制御演算子とリ ダイレクト演算子の 2 種類があります (これらの意味については後述します)。 以下に、それらの一覧を示します。 .Bl -tag -width Ds .It No 制御演算子: & && ( ) ; ;; | || .No \en .It No リダイレクト演算子: < > >| << >> <& >& <<- .El .Ss 引用 (クォート) 引用は、特殊な意味を持つ文字や単語 (演算子、空白、キーワードなど) の意味 を打ち消すために用います。引用には、シングルクォート文字のペアを使う方法、 ダブルクォート文字のペアを使う方法、バックスラッシュ文字を使う方法 の 3 種類があります。 .Bl -tag -width Ds .It シングルクォート文字 シングルクォートのペアで囲まれた文字は、すべてその文字そのまま (リテラル) として扱われます (ただしシングルクォートは別です。シングルクォート で囲った文字列の中にシングルクォートを含めることはできません)。 .It ダブルクォート文字 ダブルクォートのペアで囲まれた文字は、ドル記号文字 ($)、バッククォート 文字 (`)、バックスラッシュ文字 (\\) を除き、すべてリテラルとして扱われます。 ダブルクォート文字による引用の中にあるバックスラッシュ文字は、歴史 的経緯によりすこし変わった扱いを受けます。つまり、直後に $, `, ", \\, 改行文字 が来るときにのみ、それらの文字がリテラルとして扱われます。そ れ以外の文字が来る場合、バックスラッシュ文字自体がリテラルとして扱われ ます。 .It バックスラッシュ バックスラッシュは、その後ろの 1 文字を、リテラルとして扱うように指示 します。ただし改行文字は別です。改行文字の直前のバックスラッシュは、行 の継続であるとみなされます。 .El .Ss 予約語 予約語はシェルにとって特別な意味を持つ単語で、行の先頭または制御演算子 の直後でのみ予約語として認識されます。以下に予約語の一覧を挙げます。 .Bd -literal -offset indent ! { } case do done elif else esac fi for if then until while .Ed .Ss エイリアス エイリアスは、名前とそれと対応する値が対になったもので、 組み込みコマンド .Xr alias 1 によって定義されます。 シェルは、予約語が現れる可能性がある場所 (上記を参照) で、 ある単語に対して、それが予約語かどうかの検査を済ませたのち、 それがエイリアスに一致するかどうかを検査します。 もし一致したならば、入力行の中で、その単語をエイリアスの値に置き換えます。 たとえば、``lf'' という名前で ``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 単語の前にある ``name=value'' の形式の単語を取り除き、 単純コマンドの環境に代入します。 リダイレクト演算子とその引数 (後述) を取り除き、 あとで処理できるように保存します。 .It 残った単語を、「展開」の節で説明する方法で展開します。 展開後の最初の単語をコマンド名とみなし、コマンドの位置を探索します。 残りの単語はコマンドへの引数とみなされます。 処理の結果、コマンド名が残らなかった場合、手順 1) で 取り出した ``name=value'' の変数代入を、現在のシェルの環境に反映します。 .It 次節で説明する方法で、リダイレクトを行ないます。 .El .Ss リダイレクト リダイレクトは、コマンドがどこから入力するか、どこへ出力するかを 変更するときに用います。 一般には、リダイレクトでは、ファイルのオープン、クローズ、または ファイルへの参照の複写 (duplicate) を行います。 リダイレクトで用いられる全般的な形式は、以下のとおりです。 .sp .Dl [n] redir-op file .sp ここで、redir-op は前述したリダイレクト演算子のいずれかです。 これらの演算子をどのように利用するかの例をいくつか以下に挙げます。 .Bl -tag -width "1234567890" -offset indent .It [n]> file 標準出力 (またはファイル記述子 n への出力) をファイル file に書き出します。 .It [n]>| file 上と同様。ただし、-C オプションの効果を打ち消します。 .It [n]>> file 標準出力 (またはファイル記述子 n への出力) をファイル file に追加します。 .It [n]< file 標準入力 (またはファイル記述子 n からの入力) をファイル file から取ります。 .It [n1]<&n2 ファイル記述子 n2 を標準入力 (またはファイル記述子 n1) に複写します。 .It [n]<&- 標準入力 (またはファイル記述子 n) をクローズします。 .It [n1]>&n2 ファイル記述子 n2 を標準出力 (またはファイル記述子 n1) に複写します。 .It [n]>&- 標準出力 (またはファイル記述子 n) をクローズします。 .El .Pp 以下のリダイレクトは、しばしば``ヒア・ドキュメント(here-document)''と 呼ばれます。 .Bd -literal -offset indent [n]<< delimiter here-doc-text... delimiter .Ed .Pp シェルは、delimiter までの行を保存し、コマンドへの標準入力またはファイ ル記述子 n にリダイレクトします。最初の行の delimiter が引用 (クォート) されていた場合、here-doc-text の内容をリテラルとして扱います。 そうでない場合、パラメータ展開、コマンド置換、数値演算 (「展開」の節で 説明します) を適用します。演算子が (``<<'' でなく) ``<<-'' の場合は、 here-doc-text の各行の行頭のタブを取り除きます。 .Ss コマンド検索と実行 コマンドには、シェル関数、組み込みコマンド、通常プログラムの 3 種類があり、 コマンドを検索する際には、シェルは名前の検索をこの順序で行います。 それぞれのコマンドは異なる方法で実行されます。 .Pp シェル関数を実行するとき、$0 を除くすべての位置パラメータ ($1, $2,..) をシェル関数への引数として設定します。$0 は変更されません。シェル関数 の環境として指定された変数 (関数名の直前に ``name=value'' を置いて指定 されたもの) は、その関数に局所的な変数となり、指定された初期値が設定さ れます。そして、シェルは関数定義で与えられたコマンドを実行します。コマ ンドの実行が完了すると、位置パラメータを元の値に戻します。これは全て現 在のシェルの中で処理されます。 .Pp 組み込みコマンドは、新たなプロセスを作成せずにシェル内部で実行されます。 .Pp コマンドが関数でも組み込みコマンドでもない場合は、通常のプログラムとみなし (次節で説明するとおり) ファイルシステムの中でそのコマンドを検索します。 通常のプログラムを実行する場合、シェルは引数と 環境をプログラムに渡して、そのプログラムを実行します。 プログラムが通常の実行ファイル形式ではない場合 (つまり、 .Tn ASCII 表現で "#!" となる「マジックナンバ」でファイルが始まっておらず、 .Fn execve 2 が .Er ENOEXEC を返す場合)、 サブシェルの中でそのプログラムを解釈実行します。この場合、あたかも新たに シェルが起動されたかのような効果を得るために、子シェルは自分自身を 再初期化します。ただし、子プロセスは、親シェル中のハッシュされたコマンド 位置情報を憶えており、これは再初期化されません。 .Pp 本ドキュメントの古いバージョンや古いソースコードでは、ときおり、 マジックナンバのないシェルスクリプトのことを「シェル手続き」と呼んでいて、 まぎらわしい場合がありますので注意して下さい。 .Ss パス検索 コマンドを検索するとき、シェルは、まず、その名前のシェル関数があるかどうかを 調べます。次に、その名前の組み込みコマンドがあるかどうかを調べます。 組み込みコマンドでもない場合、以下のいずれかの処理が行われます: .Bl -enum .It コマンド名にスラッシュが含まれていれば、検索は行わず、 単にそのコマンドが実行されます。 .It 変数 .Ev PATH に含まれる各エントリに対して、順にそのコマンドを検索します。 変数 .Ev PATH の値はコロン (``:'') で区切られたエントリの列でなければなりません。 各エントリは、それぞれディレクトリ名一つに対応します。 カレントディレクトリは、 空のディレクトリ名を指定することで暗黙的に、 あるいは 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 パイプラインの形式は次のとおりです。 .Bd -literal -offset indent [!] command1 [ | command2 ...] .Ed .Pp command1 の標準出力は command2 の標準入力に接続されます。コマンドの標 準入出力がパイプラインによって割り当てられるのは、各コマンドに属する リダイレクト演算子で指定されたリダイレクトを処理する前のことだと考えて 下さい。 .Pp パイプラインがバックグラウンド (後述) でなければ、シェルはすべての コマンドが終了するのを待ちます。 .Pp パイプラインの直前に予約語 `!' が置かれなかった場合、終了ステータスは パイプラインの最後のコマンドの終了ステータスとなります。 `!' が前置された場合、終了ステータスはパイプラインの最後のコマンドの 終了ステータスの論理否定を取った値となります。 すなわち、最後のコマンドが 0 を返した場合、パイプラインの 終了ステータスは 1 に、最後のコマンドが 0 より大きな値を返した場合、 終了ステータスは 0 になります。 .Pp パイプラインによる標準入出力の接続はリダイレクトに先立って行われるため、 パイプラインの接続をリダイレクトによって修正することができます。たとえば、 .Bd -literal -offset indent $ command1 2>&1 | command2 .Ed .Pp は、command1 の標準出力と標準エラー出力の両方を command2 の標準入力に 接続します。 .Pp \&; または改行文字を終端として用いることにより、直前の AND-OR リスト (後述) を 順次実行します。& は、直前の AND-OR リストを非同期に実行します。 .Pp 注: 他のいくつかのシェルと異なり、パイプラインの各プロセスは 起動したシェルの子プロセスとなります (シェルの組み込みコマンドである ときは別です。その場合は現在のシェルで実行されます --- ただし 環境に対して行った操作は取り消されます)。 .Ss バックグラウンドコマンド -- & コマンドが制御演算子 & で終了している場合、シェルはそのコマンドを 非同期に実行します。すなわち、シェルはそのコマンドの終了を待たずに、 次のコマンドの実行を開始します。 .Pp コマンドをバックグラウンドで実行させるための形式は以下のとおりです。 .Bd -literal -offset indent command1 & [command2 & ...] .Ed .Pp シェルが対話的でない場合、非同期コマンドの標準入力には /dev/null が 接続されます。 .Ss リスト -- 一般的な話 リストは 0 個またはそれ以上のコマンドを改行文字、セミコロン文字、アン パーサント文字 (&) で区切った列です。リストは、これら 3 つの記号のいずれかで 終了させることもできます。リスト中のコマンドは並べられた順に実行 されます。もし、コマンドに続けてアンパーサント文字が置かれている場合、 シェルはそのコマンドを起動したあと、すぐに次のコマンドの処理を開始します。 その他の場合、そのコマンドの終了を待ってから次のコマンドの処理を開始します。 .Ss 短絡リスト演算子 (Short-Circuit List Operators) ``&&'' と ``||'' は AND-OR リスト演算子です。 ``&&'' は最初のコマンド を実行し、もし最初のコマンドの終了ステータスが 0 ならば次のコマンドを 実行します。 ``||'' も同様ですが、最初のコマンドの終了ステータスが 0 でない場合に、次のコマンドを実行します。 ``&&'' と ``||'' の優先順位は 同じです。 .Ss 制御構造 -- if, while, for, case if コマンドの文法は以下のとおりです。 .Bd -literal -offset indent if list then list [ elif list then list ] ... [ else list ] fi .Ed .Pp while コマンドの文法は以下のとおりです。 .Bd -literal -offset indent while list do list done .Ed .Pp 最初のリストの終了ステータスが 0 であるかぎり、2 つのリストを繰り返し 実行します。until コマンドも同様に実行しますが、 単語 while の代わりに単語 until を使うことと、 最初のリストの終了ステータスが 0 になるまで、 2 つのリストを繰り返し実行することが異なります。 .Pp for コマンドの文法は以下のとおりです。 .Bd -literal -offset indent for variable in word... do list done .Ed .Pp 各 word は展開され、変数 variable に word を順に設定しながらリストを 繰り返し実行します。do と done は ``{'' と ``}'' で置き換えることができます。 .Pp break と continue コマンドの文法は以下のとおりです。 .Bd -literal -offset indent break [ num ] continue [ num ] .Ed .Pp break は内側から num 個の for ループまたは while ループを終了します。 continue は、 num 個目のループの次の繰り返しに制御を移します。 .\" 上の文、原文では以下のようになっているが、the *num* innermost loop が .\" 正しいと思われる。実際の sh の動作もそうなっているようだ。 .\" --- 97/05/31 sakai@jp.freebsd.org ↓ .\" Continue continues with the next iteration of the innermost loop. これらのコマンドは組み込みコマンドとして実装されています。 .Pp case コマンドの文法は以下のとおりです。 .Bd -literal -offset indent case word in pattern) list ;; ... esac .Ed .Pp pattern は、1 つあるいは複数のパターン (後述の「シェルパターン」を参照 のこと) を ``|'' で接続したものです。 .Ss 複数のコマンドのグループ化 コマンドは、以下のいずれかの方法によりグループ化することができます。 .Bd -literal -offset indent (list) .Ed .Pp または、 .Bd -literal -offset indent { list; } .Ed .Pp 最初の形式では、コマンドはサブシェル上で実行されます。 (list) のなかの組み込みコマンドは、現在のシェルには影響を与えません。 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 は 通常、``{'' と ``}'' で囲まれたリストです。 .Pp local コマンドを用いて関数に局所的な変数を宣言することができます。 これは関数定義中の最初の文で行わなければなりません。構文は次のとおりです。 .Bd -literal -offset indent local [ variable | - ] ... .Ed .Pp local コマンドは、組み込みコマンドとして実装されています。 .Pp 変数を局所変数にする場合、関数を呼び出した環境に同じ名前の変数があれば、 新しい局所変数は値と export、readonly フラグを引き継ぎます。もし同じ名前の 変数がなければ、局所変数は初期値を持ちません。シェルは動的スコープ を用います。すなわち、関数 f に局所的な変数 x を作成し、関数 f から 関数 g を呼び出した場合、関数 g 内部での変数 x に対する操作は大域変数 x ではなく、関数 f で宣言された変数 x への操作となります。 .Pp 特殊パラメータのうち局所宣言できるのは ``-'' だけです。 ``-'' を 局所宣言すると、関数内で set コマンドを用いてシェルオプションを 変更しても、関数が終了するとそれらのオプションは元の値に戻ります。 .Pp return コマンドの文法は以下のとおりです。 .Bd -literal -offset indent return [ exitstatus ] .Ed .Pp return は現在実行中の関数を終了させます。return は組み込みコマンドとして 実装されています。 .Ss 変数とパラメータ シェルはパラメータの集合を管理しています。名前を持つパラメータを 変数と呼びます。シェルは、起動時にすべての環境変数をシェル変数に取り込みます。 新たな変数は、次の形式によって設定できます。 .Bd -literal -offset indent name=value .Ed .Pp ユーザが設定する変数は、アルファベット、数字、アンダースコア (_) のみ からなる名前を持つ必要があります。また、最初の文字が数字であっては いけません。 パラメータは、以下に示す数字または特殊記号により参照することもできます。 .Ss 位置パラメータ 位置パラメータは、数字 (n > 0) によって参照されるパラメータです。シェルは 位置パラメータの初期値としてシェルスクリプト名に続く引数を設定します。 組み込みコマンド .Xr set 1 により再設定や消去ができます。 .Ss 特殊パラメータ 特殊パラメータは、以下に挙げる特殊文字のいずれかにより参照される パラメータです。各パラメータの値の説明を各文字の後ろに示します。 .Bl -hang .It * 位置パラメータ 1,2,... に展開されます。ダブルクォート文字列内部で展開 される場合、展開結果は各位置パラメータの間を変数 IFS の先頭の文字 (IFS が設定されていない場合は空白文字) で区切った単一の文字列になります。 .It @ 位置パラメータ 1,2,... に展開されます。ダブルクォート引用の内部で展開 される場合、各位置パラメータは別々の引数となります。 もし、位置パラメータが設定されていない場合には、 @ の展開結果は 0 個の引数となります (ダブルクォート引用の内部であっても)。 すなわち、$1 が ``abc''、$2 が ``def ghi'' であった場合、"$@" は 次の 2 つの引数に展開されます。 .Bd -literal -offset indent "abc" "def ghi" .Ed .It # 位置パラメータの数に展開されます。 .It ? 最後に実行したパイプラインの終了ステータスに展開されます。 .It - (ハイフン) 現在のオプションフラグ (1 文字オプション名をつないだ文字列) に展開されます。起動時に指定されたもの、組み込みコマンド set で指定した もの、シェルが暗黙に設定したもののすべてを含みます。 .It $ 起動されたシェルのプロセス ID に展開されます。 サブシェルも親シェルと同じ値を持ちます。 .It ! 現在のシェルが最後にバックグラウンドで実行したコマンドのプロセス ID に 展開されます。パイプラインの場合、パイプラインの最後のコマンドの プロセス ID になります。 .It 0 (ゼロ) シェルの名前またはシェルスクリプト名に展開されます。 .El .Ss 単語展開 本節では、単語に対して適用されるさまざまな展開について説明します。あとで 述べるように、すべての展開がすべての単語に対して適用されるわけではありません。 .Pp 単一の単語に対して適用されたチルダ展開、パラメータ展開、コマンド置換、 数式展開、クォート削除の結果は単一のフィールドになります。単一の単語が 複数のフィールドに分割される可能性があるのは、フィールド分割または パス名展開の場合だけです。この規則の唯一の例外は、ダブルクォート中の パラメータ @ の展開です (前述)。 .Pp 単語展開の順序は以下のとおりです。 .Bl -enum .It チルダ展開、パラメータ展開、コマンド置換、数式展開 (これらはすべて 同時に行われます) .It 変数 IFS の値が空でなければ、(1) の結果の各フィールドに対して フィールド分割が行われる .It パス名展開 (-f オプションが無効の場合) .It クォート削除 .El .Pp 文字 $ はパラメータ展開、コマンド置換、数式評価を行うきっかけになります。 .Ss チルダ展開 (ユーザのホームディレクトリ名への置換) 引用されていないチルダ文字 (~) で始まる単語は、チルダ展開の対象になります。 チルダ文字からスラッシュ文字または単語の終端までのすべての文字がユーザ名 とみなされ、そのユーザのホームディレクトリに置換されます。もしユーザ名が 省略された場合 (たとえば ~/foobar)、チルダ文字は変数 HOME の値 (現在のユーザのホームディレクトリ) に置換されます。 .Ss パラメータ展開 パラメータ展開の形式は以下のとおりです。 .Bd -literal -offset indent ${expression} .Ed .Pp ここで、expression は対応した `}' までのすべての文字です。対応する`}' を調べる際に、バックスラッシュ文字によりエスケープされたり、クォート文字に 狭まれた `}' や、数式展開に埋め込まれている文字や、コマンド置換や変数展開中に ある文字は調べる対象になりません。 .Pp パラメータ展開の形式のうちもっとも単純なものは以下のとおりです。 .Bd -literal -offset indent ${parameter} .Ed .Pp そのパラメータに値が存在する場合、その値に置き換えられます。 .Pp パラメータ名やシンボルを中括弧 ({}) で囲んでも構いません。この中括弧は、 数字 2 文字以上からなる位置パラメータの場合や、パラメータ名の直後に パラメータ名の一部であるとみなし得る文字が続く場合を除き、 省略可能です。ダブルクォート引用中のパラメータ展開は以下 のようになります。 .Bl -enum .It パラメータ展開を行った結果の単語に対しては、パス名展開は適用されません。 .It パラメータが @ の場合を除き、フィールド分割は適用されません。 .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 通りのパラメータ展開は部分文字列切り出し処理を行います。各場合 において、パターンは正規表現ではなく、パターンマッチ記法 (シェルパターン の項を参照) が用いられます。パラメータが ` * ' または ` @ ' の場合、展開の結果 がどうなるかは規定しません (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 が標準出力 に出力したものから最後の改行文字を削除した結果で置換します (最後以外の 改行は削除しません。ただし、フィールド分割の際に、IFS の値や引用のされかたに よっては、ここで残った改行文字が結局は空白に置換されることもあります)。 .Ss 数式展開 数式展開とは、数式を評価し、その値に置換する仕組みです。数式展開の形式は以下 のとおりです。 .Bd -literal -offset indent $((expression)) .Ed .Pp 数式 expression は、その中のダブルクォート文字が特別扱いを受けないという 点を除いては、ダブルクォート文字で囲まれている文字列と同様に扱われます。 シェルは expression 中のすべてのトークンにパラメータ展開、コマンド置換、 クォート削除を適用します。 .Pp 次にシェルはその結果を数式として扱い、その値に置換します。 .Ss 空白文字による分割 (フィールド分割) パラメータ展開、コマンド置換、数式展開のあと、シェルは展開結果を調べて、 ダブルクォートの外にある部分に対してフィールド分割を適用します。 その結果、複数のフィールドになる場合もあります。 .Pp シェルは、変数 IFS に設定されている文字それぞれ区切り文字とみなし、 パラメータ展開の結果、およびコマンド置換の結果をフィールドに分割します。 .Ss パス名展開 (ファイル名生成) -f フラグが設定されていなければ、フィールド分割が行われたあと、ファイル名生成 が行われます。各単語は、スラッシュで区切られたパターンの列であるとみなさ れます。パス名展開処理において、単語は、条件を満たすファイル すべてのファイル名の列で置換されます。この各ファイル名は、単語の 各パターン部分を、そのパターンに一致する文字列に置換することで 生成されるものです。 これには 2 つの制限があります: まず、パターンはスラッシュを含む文字列には 一致しません。次に、パターンは、そのパターンがピリオドで始まらないかぎり、 ピリオドで始まる文字列に一致しません。 次節では、パス名展開と .Xr case 1 コマンドで用いられるパターンについて説明します。 .Ss シェルパターン パターンは、通常の文字とメタキャラクタからなります。通常の文字は、 その文字そのものに一致します。 メタキャラクタは ``!''、 ``*''、 ``?''、 ``['' です。これらの文字を引用 すると、各々の特殊な意味を失います。コマンド置換や変数置換において、 ドル記号やバッククォート文字がダブルクォート文字の中にない場合には、 変数の値やコマンドの出力の中に、これらの特殊な文字が存在するかどうかが 調べられ、それらがあれば、メタキャラクタとして扱われます。 .Pp アスタリスク文字 (``*'') は、どのような文字列とも一致します。 クエスチョンマーク文字 (``?'') は、任意の文字 1 文字と一致します。 左大括弧 (``['') は文字クラスを開始します。 文字クラスの最後は右大括弧 (``]'') です。``]'' がない場合 は、``['' は文字そのものに一致し、文字クラスの開始とは見なされません。文字 クラスは大括弧内に出現するすべての文字に一致します。 マイナス記号を用いれば、文字の範囲を指定することができます。 文字クラスの最初にエクスクラメーションマーク (``!'') を置くことで、 文字クラスの意味を反転させることができます。 .Pp 文字クラスに文字 ``]'' を含めるには、 ``]'' を文字クラスの最初 (``!'' を 置く場合はそのあと) に置きます。 文字クラスにマイナス記号を含めるときも同様で、 リストの最初もしくは最後に置きます。 .Ss 組み込みコマンド 本節では、別プロセスでは実行できない処理を行なうために組み込まれている コマンドを列挙します。 さらに、効率を上げるために組み込まれているかもしれないコマンド (例えば .Xr printf 1 , .Xr echo 1 , .Xr test 1 , 等) もあわせて列挙します。 .Bl -tag -width Ds .It : 終了ステータス 0 (真) を返すヌルコマンドです。 .It \&. file 指定されたファイル file に記述されたコマンドがシェルに読み込まれ、 実行されます。 .Ar file に .Ql / 文字を含む場合、その通りに扱われます。 そうでなければ、シェルは .Ev PATH を使用して、ファイルを検索します。 .Ev PATH を使用しても見付からない場合、カレントディレクトリを検索します。 .It alias [ name[=string] ... ] name=string が指定されている場合、シェルは名前 ``name'' を持つ値 ``value'' のエイリアスを定義します。単に ``name'' だけが指定された場合、 エイリアス ``name'' の値が表示されます。引数が指定されない場合、定義さ れているすべてのエイリアスの名前と値を表示します (unalias も参照)。 .It bg [ job ] ... 指定されたジョブ (指定されなかった場合は現在のジョブ) を、 続けてバックグラウンドで実行させます。 .It command command arg ... 指定された組み込みコマンドを実行します (組み込みコマンドと同じ名前のシェル関数 がある場合に使います)。 .It cd [ directory ] 指定されたディレクトリに移動します (directory 無指定時は $HOME に移動します)。 cd コマンドの 環境に CDPATH 変数があるか、シェル変数 CDPATH が設定されていて、かつ 指定されたディレクトリ directory がスラッシュ文字から始まっていないなら、 CDPATH に列挙されたディレクトリ以下に 指定されたディレクトリ directory がないか検索されます。 CDPATH の形式は PATH と同様です。対話的シェルでは、ユーザ が指定したディレクトリと異なる場所に移動した場合、移動先のディレクトリ名 を表示します。これは、CDPATH の機構が動作した場合と、シンボリックリンクを 辿った場合に発生します。 .It eval string ... 指定されたすべての引数を空白で結合し、その結果を解析し直してから コマンドとして実行します。 .It exec [ command arg ... ] コマンドが省略されない場合、そのシェルプロセスは指定されたプログラムに 置き換えられます (command は、シェル組み込みコマンドや関数ではない、本物の プログラムでなければなりません)。exec コマンドにおけるリダイレクトは、 永久性を持つと見なされ、 exec コマンド完了後にも引き続き効力を持ちます。 .It exit [ exitstatus ] シェルを終了します。指定された exitstatus は、シェルの終了ステータスに なります。exitstatus が省略された場合、直前に実行したコマンドの 終了ステータスがシェルの終了ステータスとなります。 .It export name ... それ以後にシェルから実行されるコマンドの環境に、指定された名前の変数が 含まれるようにします (変数のエクスポート)。 変数のエクスポートを取り消す唯一の方法は、変数を unset することです。 以下のように記述することで、エクスポートすると 同時に変数の値を設定することができます。 .Bd -literal -offset indent export name=value .Ed .Pp 引数を指定しない場合、すべてのエクスポートされている名前と値が表示されます。 .It fc [-e editor] [first [last]] .It fc -l [-nr] [first [last]] .It fc -s [old=new] [first] fc は、対話的シェルにそれ以前に入力されたコマンドの内容を 表示、編集、再実行します。 .Bl -tag -width Ds .It -e editor 編集に際し、指定されたエディタ editor を使用します。 editor は変数 PATH を通して検索できるコマンド名です。 -e が指定されなかった場合は、変数 FCEDIT の値が 用いられます。FCEDIT が設定されていないか空に設定されている場合は EDITOR の値が用いられ、それも設定されていないか空ならば .Xr ed 1 が用いられます。 .It -l (ell) (小文字のエル) エディタを起動せずに、コマンド履歴の内容を一覧出力します。 パラメータ first と last で指定した範囲のコマンドが順に (出力の順番は -r オプションの影響を受けます) 出力されます。 各コマンドの出力の際にはコマンド番号が付加されます。 .It -n -l で一覧出力する際にコマンド番号を付加しません。 .It -r -l オプションでの一覧や、 編集時 (-l も -s も指定されなかった場合) の順序を反転します。 .It -s エディタを起動せずにコマンドを再実行します。 .It first .It last 一覧出力や編集の対象となるコマンドを選択します。アクセス可能なコマンド の数は変数 HISTSIZE の値で決まります。 first、last の値は以下のいずれかの形式で指定します。 .It [+]number 正の数で、コマンド番号を指定します。コマンド番号は -l オプションで表示させて 調べることができます。 .It -number 負の数で、指定された数だけ現在から遡ったコマンドを指定します。たとえば、 -1 は直前に実行されたコマンドを指定します。 .It string 文字列 string は、過去に実行されたコマンドのうち、 その文字列から始まる最新のものを指定します。 もし -s オプションが指定されて ``old=new'' が指定されていなければ、 最初のオペランドにイコール記号 (``='') を含めることはできません。 .El .\" 次の行の .Pp はもともとコメントアウトされていた .Pp fc コマンドの実行にあたり、以下の環境変数の影響を受けます。 .Bl -tag -width Ds .It Va FCEDIT 使用するエディタ名 .It Va HISTSIZE アクセス可能なコマンド数 .El .It fg [ job ] 指定されたジョブまたは現在のジョブをフォアグラウンドに移動します。 .It getopts optstring var POSIX に準拠した getopts コマンドです。 この getopts コマンドにより、以前の getopt コマンドの必要性は減少しました。 最初の引数は文字の列です。各文字の後ろにはコロンをつけることができ、 そのオプションが引数をとることを指示します。 指定された変数に、解析され見つかったオプションが設定されます。 見つかったオプションの次の引数のインデックスはシェル変数 OPTIND に格納されます。 あるオプションが引数をとる場合、その引数はシェル変数 OPTARG に置かれます。 有効でないオプションに出くわすと、変数 var には `?' がセットされます。 getopts はオプション群の末尾に到達すると偽の値 (1) を返します。 .It hash -rv command ... シェルは、コマンドの位置を保持するハッシュテーブルを維持管理しています。 hash コマンドに引数が指定されなかった場合、このテーブルの内容が出力されます。 最後に cd コマンドが実行されてから参照されていない項目には アスタリスク文字 (``*'') が表示されます。 この項目は無効になっているかもしれません。 .Pp 引数を指定した場合、hash コマンドは指定したコマンドをハッシュテーブル から削除し (command が関数ではない場合)、その後でそのコマンドを検索します。 -v オプションを指定した場合、発見したコマンドの位置を表示します。-r オプション を指定した場合、関数以外のすべてのエントリをハッシュテーブルから 削除します。 .It jobid [ job ] ジョブ job 中の各プロセスのプロセス ID を表示します。引数 job が 省略された場合、現在のジョブに対して処理を行います。 .It jobs バックグラウンドで走行中の、現在のシェルプロセスの子プロセスの 一覧を出力します。 .It pwd カレントディレクトリを表示します。組み込みコマンドの pwd は カレントディレクトリ名を覚えており、表示するときに再計算しないので、 組み込みコマンドの pwd は同名のプログラムとは異なった表示をする場合があります。 このため処理は高速ですが、カレントディレクトリ の名前を変更した場合でも、以前のディレクトリ名を表示し続けます。 -.It Li "read [ -p prompt ] [ -e ] variable ... +.It Li "read [ -p prompt ] [ -t timeout ] [ -e ] variable ... -p オプションが指定され、かつ標準入力が端末の場合、 prompt をプロンプトとして表示します。 そして標準入力から 1 行入力します。行端の改行文字を削除し、行を前述の 単語分割の方法に従って分割し、各単語を、valiable... で指定する各変数に 順に代入します。 もし、指定された変数の数より分割された単語の数が多ければ、最後の変数に 残りの単語すべて (IFS の文字を区切りにしてそれらも一緒に) が代入されます。 分割された単語の数より多くの変数が指定されていたなら、 余った変数には空文字列が設定されます。 .Pp -t オプションが指定され、かつ入力がなされる前にタイムアウトすると、 read コマンドは値を割当てずに戻ります。 タイムアウト値の後にはオプションで 's', 'm', 'h' のいずれかの一文字 を付けることが出来、それぞれ秒, 分, 時間を陽に指定します。 どれも指定しない場合には 's' であるものとします。 .Pp -e オプションを指定すると、入力中のバックスラッシュ文字を特別扱いします。 バックスラッシュ文字が改行文字の直前にある場合、 バックスラッシュ文字と改行文字は削除されます。 その他の文字の直前にバックスラッシュがある場合、バックスラッシュは削除され、 文字が IFS に含まれていても、IFS の文字でないかのように扱われます。 .It readonly name ... 指定された名前の変数を読み出し専用とし、あとで値を変更したり unset した りすることができないようにします。以下のように記述することで、 変数を読み出し専用と宣言するのと同時に値を設定することも可能です。 .Bd -literal -offset indent readonly name=value .Ed .Pp 引数が指定されない場合、読み出し専用になっている変数の名前の一覧が表示され ます。 .It Li "set [ { -options | +options | -- } ] arg ... set コマンドは 3 通りの異なった機能を持ちます。 .Bl -item .It 引数を指定しなかった場合、すべてのシェル変数の名前と値の一覧を表示します。 .It options が指定された場合、「引数リスト処理」の節で説明した方法で、 指定されたオプションフラグを設定あるいは解除します。 .It 第 3 の用法は、シェルの位置パラメータを変更する際に使用します。オプションの 設定を変更せずに位置パラメータのみを変更したい場合は set コマンドへの最初 の引数として ``--'' を指定します。arg が指定されない場合、 すべての位置パラメータはクリアされます (``shift $#'' を実行することと 等価です)。 .El .Pp .It setvar variable value 変数に値を代入します。(一般に、setvar を使うよりも variable=value と書くほう が望ましいといえます。setvar は、関数内で、パラメータとして渡された名前を持つ 変数に値を代入するためのものです。) .It shift [ n ] 位置パラメータを n 回シフトします。1 回のシフトにより、$2 の値が $1 に、$3 の 値が $2 に代入されます (以下同様)。また、$# の値は 1 減少します。 位置パラメータがない場合、shift は何もしません。 .It trap [ action ] signal ... シェルが指定されたシグナル signal を受けとったときに、action を解析し実行する ように設定します。シグナルはシグナル番号で指定します。action は空文字列に したり、省略したりすることができます。空文字列の場合、指定されたシグナルは 無視され、省略した場合は、指定したシグナルを受けとったときデフォルトの処理を 行ないます。シェルがサブシェルを起動するとき、trap で指定された (かつ 無視するように設定されていない) シグナルの動作をデフォルトの処理に戻します。 シェルが起動したときにすでに無視されるように設定されていたシグナルに対して trap コマンドを使用しても効果はありません。 .It type [name] ... 各 name をコマンドとして解釈し、コマンド検索の結果を出力します。出力さ れる結果は以下のものがあります。シェルのキーワード、エイリアス、シェル の組み込みコマンド、コマンド、痕跡つきエイリアス (tracked alias)、最後に not found (見つからず) があります。エイリアスについては、エイリアス展開 の結果が出力されます。コマンドと痕跡つきエイリアスについては、そのコマンドの 完全なパス名が印刷されます。 .It ulimit [ -HSacdflmnust ] [ limit ] リソースのリミット値 (リミット値については .Xr getrlimit 2 参照) を設定あるいは表示します。 ``limit'' が指定されている場合、指定されたリソースが設定されます。 それ以外の場合、現在のリソース設定値が表示されます。 .Pp ``-H'' が指定された場合、ハードリミットが設定ないし表示されます。 ハードリミット値を下げることは誰にでもできますが、 それを増やすことができるのはスーパユーザだけです。 オプション ``-S'' を指定した場合はソフトリミットになります。 リミット値を表示する場合、``-S'' か ``-H'' のいずれか一方だけしか 指定できません。 デフォルトでは、表示はソフトリミット、設定はハード/ソフトリミット両方です。 .Pp オプション ``-a'' を指定すると全リソースの設定値が表示されます。 この場合、パラメータ ``limit'' は指定できません。 .Pp この他のオプションは、表示あるいは設定するリソースの種類を指定するものです。 これらは互いに排他的です。 .Bl -tag -width Ds .It -c coredumpsize コアダンプファイルの最大サイズ。512 バイトのブロック単位。 .It -d datasize プロセスのデータセグメントの最大サイズ。キロバイト単位。 .It -f filesize ファイルの最大サイズ。512 バイトブロック単位。これがデフォルトです。 .It -l lockedmem プロセスがロックできるメモリサイズの最大値。キロバイト単位。 .It -m memoryuse プロセスの常駐セットサイズの最大値。キロバイト単位。 .It -n nofiles あるプロセスがオープンできるファイル記述子の最大数。 .It -s stacksize スタックセグメントサイズの最大値。キロバイト単位。 .It -t time 各プロセスで消費できる CPU 時間の最大値。秒単位。 .It -u userproc このユーザ ID で同時に走らせうる最大プロセス数。 .El .It umask [ mask ] umask の値 ( .Xr umask 2 を参照) を、指定された 8 進数の値に設定します。引数が 省略された場合、現在の umask の値が表示されます。 .It unalias [-a] [name] ``name'' が指定された場合、指定された名前のエイリアスを削除します。 ``-a'' オプションが指定された場合、すべてのエイリアスを削除します。 .It unset name ... 指定された変数または関数を unset し、エクスポートされていない状態にします。 指定された名前の変数も関数も存在する場合、変数と関数の両方が unset されます。 .It wait [ job ] 指定されたジョブ job が終了するのを待ち、ジョブ内の最後のプロセスの 終了ステータスを返します。引数が省略された場合、すべてのジョブが終了する まで待ち、終了ステータス 0 を返します。 .El .Ss コマンド行編集 .Nm が端末から対話的に実行されている場合、現在入力中のコマンドおよび コマンド履歴 (組み込みコマンド fc 参照) を vi モードのコマンド行編集機能 により編集することができます。 このモードでは、vi のマニュアルに示されているコマンドのサブセットを用います。 コマンド `set -o vi' により vi モードが開始され、vi の挿入モードに移行します。 vi モード中では、 挿入モードとコマンドモードの両方を自由に切り替えることが可能です。 vi モードは vi と同様であり、 キー によりコマンドモードに移行し、コマンドモードで キーを叩くことで、 行の内容がシェルに渡されます。 .Pp 同様に、コマンド `set -o emacs' により emacs 風のコマンド行編集機能の サブセットを使うことができるようになります。 .Sh 関連項目 .Xr expr 1 , .Xr test 1 .Sh 歴史 .Nm コマンドは、 .At V.1 で登場しました。 .\" -Amended by N.Kumagai 97.12.30 diff --git a/ja_JP.eucJP/man/man1/telnet.1 b/ja_JP.eucJP/man/man1/telnet.1 index 7d503a0c12..fbb56e6d52 100644 --- a/ja_JP.eucJP/man/man1/telnet.1 +++ b/ja_JP.eucJP/man/man1/telnet.1 @@ -1,1328 +1,1329 @@ .\" Copyright (c) 1983, 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. .\" .\" @(#)telnet.1 8.5 (Berkeley) 3/1/94 -.\" %Id: telnet.1,v 1.10 1998/12/14 22:40:38 billf Exp % +.\" %Id: telnet.1,v 1.10.2.1 1999/06/17 07:27:45 ru Exp % +.\" .\" jpman %Id: telnet.1,v 1.2 1997/05/23 00:55:09 mutoh Stab % .\" .Dd March 1, 1994 .Dt TELNET 1 .Os BSD 4.2 .Sh 名称 .Nm telnet .Nd .Tn TELNET プロトコルを用いて他のホストと通信する .Sh 書式 .Nm -.Op Fl 8EFKLacdfrx +.Op Fl 8EFKLNacdfrx .Op Fl S Ar tos .Op Fl X Ar authtype .Op Fl e Ar escapechar .Op Fl k Ar realm .Op Fl l Ar user .Op Fl n Ar tracefile +.Op Fl s Ar src_addr .Oo .Ar host .Op Ar port .Oc .Sh 解説 .Nm コマンドは、 他のマシンとの間で .Tn TELNET プロトコルを用いた通信を行なう時に用いられます。 .Nm が、 .Ar host 引数なしで起動された場合には、 .Pq Nm telnet\&> プロンプトを表示して、コマンドを受け付けるモードに移行します。 本モードでは、telnet は、後述のコマンドを解釈し、実行できます。 .Nm が .Ar host 引数を付加して起動された場合には、 .Ic open コマンドをその引数で実行した場合と同様の動作を行ないます。 .Pp .Nm コマンドでは、以下のオプションが使用可能です。 .Bl -tag -width indent .It Fl 8 8ビットデータをそのまま通すよう指示します。本オプションは、データ入出力時に .Dv TELNET BINARY オプションを使用することを意味します。 .It Fl E エスケープ文字の解釈を禁止します。 .It Fl F もし Kerberos V5 ユーザ認証を使用している場合 .Fl F オプションはローカル credential をリモートシステムに送るのを許可します。 -すでにローカルに送られている全ての credential を含みます。 +すでにローカルに送られているすべての credential を含みます。 .It Fl K リモートシステムへの自動ログインを行なわないよう指示します。 .It Fl L -出力を8ビットクリーンにします。 +出力を 8 ビットクリーンにします。 本オプションは、データ出力時に .Dv BINARY オプションを使用することを意味します。 .It Fl N 接続先ホストが IP アドレスで与えられた場合、 IP アドレスを元にした名前の検索を抑止します。 .It Fl S Ar tos -IPのサービス型(TOS)を設定します。 TOS は、数字で指定するか、システムが +IP のサービス型 (TOS) を設定します。 TOS は、数字で指定するか、システムが .Pa /etc/iptos ファイルをサポートしている場合には、そのファイル中で定義された 値と対応するシンボルを指定します。 .It Fl X Ar atype .Ar atype で指定されたユーザ認証を無効にします。 .It Fl a 自動ログインを行ないます。リモートシステムで ENVIRON オプションの サポートをしている場合には、 .Ev ENVIRON オプションの .Ev USER 変数をログイン名として用います。 -使用されるログイン名は、カレントユーザIDとログイン名の対応が +使用されるログイン名は、カレントユーザ ID とログイン名の対応が 一致する場合には、 .Xr getlogin 2 で取得される名前です。それ以外の場合は、 UID に対応する名前が 用いられます。 .It Fl c ユーザの .Pa \&.telnetrc ファイルを使いません (本マニュアル中の .Ic toggle skiprc コマンドを参照してください)。 .It Fl d 変数 .Ic debug の初期値を .Dv TRUE に設定します。 .It Fl e Ar escapechar .Nm のエスケープ文字の初期値を .Ar escapechar に設定します。 .Ar escapechar が省略された場合には、 エスケープ文字は無いことになります。 .It Fl f もし Kerberos V5 ユーザ認証を使用している場合 .Fl f オプションはローカル credential をリモートシステムに送るのを許可します。 .It Fl k Ar realm もし Kerberos ユーザ認証を使用している場合 .Fl k オプションを指定すると、 .Xr krb_realmofhost 3 で決定されるリモートホストの realm の代わりに、 .Ar realm からリモートホストに対するチケットが得られるように要求します。 .It Fl l Ar user リモートシステムが .Ev ENVIRON オプションをサポートしている場合、リモートシステムへの接続時に リモートシステムに変数 .Ev USER の値として .Ar user を送信します。 本オプションは、 .Fl a オプションとともに使用します。 また、本オプションは、 .Ic open コマンドととも一緒に使用します。 .It Fl n Ar tracefile トレース情報を記録するために .Ar tracefile をオープンします。 後述の .Ic set tracefile コマンドを参照して下さい。 .It Fl r .Xr rlogin 1 と似たインタフェースを提供します。 -本モードでは、エスケープ文字はチルダ文字(~)に設定されます。 +本モードでは、エスケープ文字はチルダ文字 (~) に設定されます。 ただし、 .Fl e オプションで変更された場合には、この限りではありません。 +.It Fl s Ar src_addr +.Nm +接続の送信元 IP アドレスを、 +.Ar src_addr +に設定します。 +IP アドレスとホスト名のどちらでも指定可能です。 .It Fl x 可能であれば、データストリームの暗号化を有効にします。本オプション は、米国およびカナダ以外の国では使用できません。 .It Ar host -リモートホストの公式な名前、別名、またはIPアドレスを指定し -ます。 +リモートホストの公式な名前、別名、または IP アドレスを指定します。 .It Ar port -telnetが叩くリモートホストのTCPポート番号を指定します。指定されない +telnet が叩くリモートホストの TCP ポート番号を指定します。指定されない 場合には、デフォルトの .Nm ポート番号が使われます。 .El .Pp rlogin モードでは、~. をコマンドラインの先頭で入力すると、 -リモートホストとの接続が切れます。この時、 ~ は +リモートホストとの接続が切れます。この時、~ は .Nm のエスケープ文字 として働きます。 また、~^Z をコマンドラインの先頭で入力すると、 .Nm セッションはサスペンドされます。 そして、~^] をコマンドラインの先頭で入力すると、通常の .Nm のエスケーププロンプトが出力され、コマンド入力モードに移行します。 .Pp コネクションが開設されると、 .Nm は .Dv TELNET LINEMODE を有効にしようとします。 これが失敗すると、次に .Nm は \*(Lqcharacter at a time\*(Rq と \*(Lqold line by line\*(Rq の -2つの入力モードのうち、どちらか1つを選択します。 +2 つの入力モードのうち、どちらか 1 つを選択します。 これは、リモートシステムがサポートするモードに依存します。 .Pp .Dv LINEMODE が有効になった場合、 文字処理は、 リモートシステムの制御のもとでローカルシステムで行なわれます。 入力行の編集や、文字エコーは無効になり、 リモートシステムがそれらの操作情報を中継します。 リモートシステムは、 リモートシステムで生成された特殊文字をすべてローカルシステムに送ります。 その結果、ローカルシステムの制御が可能になります。 .Pp \*(Lqcharacter at a time\*(Rq モードでは、ほとんどのテキスト入力は、 すぐにリモートシステムに送られて処理されます。 .Pp -\*(Lqold line by line\*(Rqモードでは、全てのテキストはローカルにエコーバック +\*(Lqold line by line\*(Rq モードでは、すべてのテキストはローカルにエコーバック されます。そして、通常、完全な行のみがリモートホストに送信されます。 .Pp -\*(Lqold line by line\*(Rq モードでは、全てのテキストはローカルに +\*(Lqold line by line\*(Rq モードでは、すべてのテキストはローカルに エコーされ (普通は) 完全な行だけがリモートホストに送られます。 \*(Lqlocal echo character\*(Rq (初期設定は\*(Lq^E\*(Rq)は、ローカルエコー -の有効/無効を切り替えるのに用いられます(これは、パスワードをエコーバックし +の有効/無効を切り替えるのに用いられます (これは、パスワードをエコーバックし ないために、パスワード入力時によく用いられる機能です)。 .Pp .Dv LINEMODE オプションが有効になっている場合、もしくは .Ic localchars が .Dv TRUE -になっている場合には(デフォルトでは、\*(Lqold line by line\*(Rq に設定されて +になっている場合には (デフォルトでは、\*(Lqold line by line\*(Rq に設定されて います。以下を参照)、ユーザの .Ic quit , .Ic intr , -および .Ic flush 文字はローカルでトラップされます。そして、 .Tn TELNET プロトコルシーケンスとしてリモートホストに送信されます。 .Dv LINEMODE が有効になっている場合には、 ユーザの .Ic susp および .Ic eof もまた .Tn TELNET プロトコルシーケンスとしてリモートホストに送信されます。そして、 .Ic quit は .Dv BREAK のかわりに .Dv TELNET ABORT として送信されます。 また、 (リモートホストが TELNET シーケンスを認識するまで) -端末へのサブシーケンス出力をフラッシュするオプション( +端末へのサブシーケンス出力をフラッシュするオプション ( .Ic toggle , .Ic autoflush , .Ic toggle , .Ic autosynch を参照して下さい) や、( .Ic quit , .Ic intr の場合に) -端末の先行入力をフラッシュするオプション -もあります。 +端末の先行入力をフラッシュするオプションもあります。 .Pp リモートホストと接続中に \*(Lqescape character\*(Rq (初期値は -\*(Lq^]\*(Rq です)を入力することで、 +\*(Lq^]\*(Rq です) を入力することで、 .Nm コマンドモードに移行できます。 コマンドモードに移行すると、通常の対話的画面編集が可能になります。 .Pp .Nm のコマンドモードでは、以下のコマンドが使用できます。 コマンドを入力する場合には、先頭からコマンドを特定できるだけの文字を入れ るだけでコマンドが認識されます。 ( .Ic mode , .Ic set , .Ic toggle , .Ic unset , .Ic slc , .Ic environ , -そして .Ic display コマンドの引数についても同じことがいえます)。 .Pp .Bl -tag -width "mode type" .It Ic auth Ar argument ... auth コマンドは、 .Dv TELNET AUTHENTICATE オプションを用いて送られる認証情報を操作します。 .Ic auth コマンドのとりうる引数は、以下の通りです。 .Bl -tag -width "disable type" .It Ic disable Ar type 指定した認証タイプを無効にします。認証タイプの一覧を見たい場合には、 .Ic auth disable \&? とコマンドを実行して下さい。 .It Ic enable Ar type 指定された認証タイプを有効にします。 認証タイプの一覧を見たい場合には、 .Ic auth enable \&? とコマンドを実行して下さい。 .It Ic status 認証タイプの現在の状態一覧を表示します。 .El .It Ic close .Tn TELNET セッションを終了し、コマンドモードに復帰します。 .It Ic display Ar argument ... .Ic set および .Ic toggle -で設定された値(後述)のすべて、もしくは一部を表示します。 +で設定された値 (後述) のすべて、もしくは一部を表示します。 .It Ic encrypt Ar argument ... encrypt コマンドは、 .Dv TELNET ENCRYPT オプションによって送られる情報を操作します。 .Pp 注意: 輸出規制の関係上、 .Dv TELNET ENCRYPT オプションは、米国およびカナダ以外の国ではサポートされません。 .Pp .Ic encrypt コマンドのとりうる引数は以下の通り: .Bl -tag -width Ar .It Ic disable Ar type Ic [input|output] 指定されたタイプの暗号化を無効にします。 input か output かが省略された場合、両方が無効になります。 .Ic encrypt disable \&? コマンドを使えば type として何が使用できるかを表示できます。 .It Ic enable Ar type Ic [input|output] 指定されたタイプの暗号化を有効にします。 input か output かが省略された場合、両方が無効になります。 .Ic encrypt enable \&? コマンドを使えば type として何が使用できるかを表示できます。 .It Ic input .Ic encrypt start input コマンドと同じです。 .It Ic -input .Ic encrypt stop input コマンドと同じです。 .It Ic output .Ic encrypt start output コマンドと同じです。 .It Ic -output .Ic encrypt stop output コマンドと同じです。 .It Ic start Ic [input|output] 暗号化を開始します。 .Ic input か .Ic output かが省略された場合、 両方が暗号化されます。 .Ic encrypt enable \&? コマンドを使えば type として何が使用できるかを表示できます。 .It Ic status 暗号化の現在の状態を表示します。 .It Ic stop Ic [input|output] 暗号化を中止します。 input か output かを省略した場合は 両方に対して作用します。 .It Ic type Ar type .Ic encrypt start や .Ic encrypt stop が使われた時のデフォルトの暗号化タイプを設定します。 .El .It Ic environ Ar arguments... .Ic environ コマンドは、 .Dv TELNET ENVIRON オプションを用いて送られる変数を取り扱うのに用いられます。 最初に設定される変数は、ユーザ環境変数から取られ、 デフォルトでは .Ev DISPLAY および .Ev PRINTER のみ値が環境に取り込まれます。 変数 .Ev USER が環境に取り込まれるのは、 .Fl a もしくは .Fl l オプションが起動時に指定された場合です。 .Pp .Ic environ コマンドの取りうる引数は、以下の通りです。 .Bl -tag -width Fl .It Ic define Ar variable value 変数 .Ar variable を .Ar value と定義します。 本コマンドで定義された変数は、自動的に環境に取り込まれます。 .Ar value -については、スペースやタブを含む場合には、シングルクォーテー -ション、もしくはダブルクォーテーションで囲んでも構いません。 +については、スペースやタブを含む場合には、シングルクォーテーション、 +もしくはダブルクォーテーションで囲んでも構いません。 .It Ic undefine Ar variable 環境変数 .Ar variable の定義を無効にします。 .It Ic export Ar variable 変数 .Ar variable が、リモートホストの環境に取り込まれるように設定します。 .It Ic unexport Ar variable 変数 .Ar variable を、リモートホストに取り込まないように設定します。ただし、リモートホストへ 明示的に取り込むよう指定された変数に関しては、意味を持ちません。 .It Ic list 現在設定されている環境変数の一覧を表示します。 .Cm * マークが付加されている環境変数については、リモートホストに自動的に取り込ま れます。他の変数は、明示的に要求されない限り、取り込まれることはありません。 .It Ic \&? .Ic environ コマンドのヘルプメッセージを表示します。 .El .It Ic logout .Dv TELNET LOGOUT オプションをリモートホストに送信します。 本コマンドは、 .Ic close と似てますが、リモートホストが .Dv LOGOUT オプションをサポートしていない場合には、何も起きません。 しかしながら、リモートホストが .Dv LOGOUT オプションをサポートしている場合には、本コマンドはリモートホストに .Tn TELNET コネクションの切断を指示します。 リモートホストが再接続のためにセッションのサスペンドもサポートしている場合には、 logout 引数は、セッションを即時切断することを示します。 .It Ic mode Ar type .Ar type は、 .Tn TELNET セッションの状態に依存するオプションの 1 つです。 リモートホストはリクエストモードに入るための許可を求められます。 リモートホストが許可を得られればリクエストモードに入ります。 .Bl -tag -width Ar .It Ic character .Dv TELNET LINEMODE オプションを無効にする、 あるいはリモートホストが .Dv LINEMODE オプションを解釈できない場合に \*(Lqcharacter at a time\*(Rq モードに入ります。 .It Ic line .Dv TELNET LINEMODE オプションを有効にする、 あるいはリモートホストが .Dv LINEMODE オプションを解釈できない場合に \*(Lqold-line-by-line\*(Rq モードに入ろうとします。 .It Ic isig Pq Ic \-isig .Dv LINEMODE オプションの .Dv TRAPSIG -モードを有効(無効)にします。 +モードを有効 (無効) にします。 .Dv LINEMODE オプションが有効になっている必要があります。 .It Ic edit Pq Ic \-edit .Dv LINEMODE オプションの .Dv EDIT -モードを有効(無効)にします。 +モードを有効 (無効) にします。 .Dv LINEMODE オプションが有効になっている必要があります。 .It Ic softtabs Pq Ic \-softtabs .Dv LINEMODE オプションの .Dv SOFT_TAB -モードを有効(無効)にします。 +モードを有効 (無効) にします。 .Dv LINEMODE オプションが有効になっている必要があります。 .It Ic litecho Pq Ic \-litecho .Dv LINEMODE オプションの .Dv LIT_ECHO -モードを有効(無効)にします。 +モードを有効 (無効) にします。 .Dv LINEMODE オプションが有効になっている必要があります。 .It Ic \&? .Ic mode コマンドのヘルプメッセージを表示します。 .El .It Xo .Ic open Ar host .Op Fl l Ar user .Oo Op Fl .Ar port Oc .Xc 指定されたホストとの間で、コネクションを開設します。 ポート番号が指定されない場合は、 .Nm は、デフォルトのポート番号を用いて、指定されたホストの .Tn TELNET サーバとの接続を試みます。 -ホストの指定については、ホスト名( +ホストの指定については、ホスト名 ( .Xr hosts 5 -を参照して下さい)もしくは、 -ドット表記のIPアドレス( +を参照して下さい) もしくは、 +ドット表記のIPアドレス ( .Xr inet 3 -を参照して下さい)で指定します。 +を参照して下さい) で指定します。 .Fl l オプションは .Ev ENVIRON オプションによってリモートシステムに渡されるユーザ名を指定するのに 使われます。 標準でないポートにつなげた時は .Nm -は全ての +はすべての .Tn TELNET オプションの自動初期化を省略します。 マイナス記号の後にポート番号が指定されている場合は、 初期オプション交渉 (initial option negotiation) が行なわれます。 接続した後、ホームディレクトリの .Pa \&.telnetrc ファイルが読み込まれます。 # で始まる行はコメントです。 空行は無視されます。 空白以外で始まっている行は マシンエントリの始まりです。 最初の項目は接続しているマシンの名前です。 その後の項目、およびそれに続く空白で始まっている 行は .Nm コマンドであるとみなされ、 .Nm コマンドプロンプトでそのコマンドを入力した場合と 同じように処理されます。 .It Ic quit .Tn TELNET セッションをただちに切断し、 .Nm を終了します。 コマンドモードにおいて、 EOF を入力した場合も同様です。 .It Ic send Ar arguments 1つ以上の特殊文字シーケンスをリモートホストに送信します。 以下は指定可能な引数です -(1度に複数の引数を指定できます)。 +(1 度に複数の引数を指定できます)。 .Pp .Bl -tag -width escape .It Ic abort .Dv TELNET ABORT (Abort processes) シーケンスを送ります。 .It Ic ao .Dv TELNET AO (Abort Output) シーケンスを送ります。 これはリモートシステム .Em に 端末 .Em へ -全ての出力をフラッシュさせます。 +すべての出力をフラッシュさせます。 .It Ic ayt .Dv TELNET AYT (Are You There) シーケンスを送ります。 リモートシステムはそれに応答するかしないかを選択できます。 .It Ic brk .Dv TELNET BRK (Break) シーケンスを送ります。 リモートシステムにとって 重要な意味があるかもしれません。 .It Ic ec .Dv TELNET EC (Erase Character) シーケンスを送ります。 これはリモートシステムに最後に入力された文字を 消去させます。 .It Ic el .Dv TELNET EL (Erase Line) シーケンスを送ります。 これはリモートシステムに現在入力中の行を 消去させます。 .It Ic eof .Dv TELNET EOF (End Of File) シーケンスを送ります。 .It Ic eor .Dv TELNET EOR (End of Record) シーケンスを送ります。 .It Ic escape 現在の .Nm エスケープ文字を送ります (初期値は \*(Lq^\*(Rq です)。 .It Ic ga .Dv TELNET GA (Go Ahead) シーケンスを送ります。 おそらくリモートシステムにとってたいした意味は無いでしょう。 .It Ic getstatus リモートシステムが .Dv TELNET STATUS コマンドをサポートしていれば、 .Ic getstatus はサーバに現在のオプションステータスを送るように要求します。 .It Ic ip .Dv TELNET IP (Interrupt Process) シーケンスを送ります。 これはリモートシステムに現在実行中のプロセスを 中断させます。 .It Ic nop .Dv TELNET NOP (No OPeration) シーケンスを送ります。 .It Ic susp .Dv TELNET SUSP (SUSPend process) シーケンスを送ります。 .It Ic synch .Dv TELNET SYNCH シーケンスを送ります。 このシーケンスはリモートシステムに、 -それまでに送られた(しかしまだ読み込まれていない)入力を +それまでに送られた (しかしまだ読み込まれていない) 入力を 捨てさせます。 このシーケンスは .Tn TCP 緊急データとして送られます (しかしリモートシステムが .Bx 4.2 の場合、効かないかも知れません。 もし効かなかった場合は端末に \*(Lqr\*(Rq が返される場合があります)。 .It Ic do Ar cmd .It Ic dont Ar cmd .It Ic will Ar cmd .It Ic wont Ar cmd .Dv TELNET DO .Ar cmd シーケンスを送ります。 .Ar cmd は 0 から 255 までの十進数か、 特定の .Dv TELNET コマンドに対するシンボル名です。 .Ar cmd として 既知のシンボル名のリストを含むヘルプメッセージを表示する .Ic help または .Ic \&? を指定可能です。 .It Ic \&? .Ic send コマンドのヘルプメッセージを表示します。 .El .It Ic set Ar argument value .It Ic unset Ar argument value .Ic set コマンドは、指定した .Nm -変数の1つを、特定の値を設定するか、 +変数の 1 つを、特定の値を設定するか、 .Dv TRUE にします。 特別な値 .Ic off は、変数に関連する機能を無効にします。これは、 .Ic unset コマンドと同じです。 .Ic unset コマンドは、指定された機能を無効にするか、 .Dv FALSE に設定します。 変数の値は .Ic display コマンドによって調べることができます。 トグルでなく設定、無効にされる変数を以下に示します。 また .Ic toggle コマンドに対する変数は .Ic set および .Ic unset コマンドによって明示的に 設定および無効にすることができます。 .Bl -tag -width escape .It Ic ayt .Tn TELNET がローカル文字モードになっているか、 あるいは .Dv LINEMODE が有効になっていて、 ステータス文字が入力された場合、 .Dv TELNET AYT -シーケンス(前述の +シーケンス (前述の .Ic send ayt 参照) がリモートホストに送られます。\*(LqAre You There\*(Rq 文字の初期値は ターミナルステータス文字です。 .It Ic echo これは \*(Lqline by line\*(Rq モード時に -入力された文字をローカルに表示する(通常処理)か -しないか(たとえばパスワード入力時)を -切替えるのに使われる値(初期値は \*(Lq^E\*(Rq )です。 +入力された文字をローカルに表示する (通常処理) か +しないか (たとえばパスワード入力時) を +切替えるのに使われる値 (初期値は \*(Lq^E\*(Rq ) です。 .It Ic eof .Nm が .Dv LINEMODE あるいは \*(Lqold line by line\*(Rq モードで動作していれば、 行の最初の文字としてこの文字を入力すると、 この文字をリモートシステムに送ります。 初期値として、端末の .Ic eof 文字が使われます。 .It Ic erase .Nm が .Ic localchars -モード(後述の +モード (後述の .Ic toggle .Ic localchars を参照) になっていて、 .Sy そして \*(Lqcharacter at a time\*(Rq モードで動作していれば、 この文字が入力された時に .Dv TELNET EC -シーケンス(前述の +シーケンス (前述の .Ic send .Ic ec -を参照)が +を参照) が リモートシステムに送られます。 初期値として、端末の .Ic erase 文字が使われます。 .It Ic escape これは (リモートシステムと接続している時に) .Nm コマンドモードに入る .Nm -エスケープ文字(初期値 \*(Lq^[\*(Rq) です。 +エスケープ文字 (初期値 \*(Lq^[\*(Rq) です。 .It Ic flushoutput .Nm が .Ic localchars -モード(後述の +モード (後述の .Ic toggle .Ic localchars を参照) になっていて、 .Ic flushoutput 文字が入力された時に .Dv TELNET AO -シーケンス(前述の +シーケンス (前述の .Ic send .Ic ao -を参照)が +を参照) が リモートシステムに送られます。 初期値として、端末の .Ic flush 文字が使われます。 .It Ic forw1 .It Ic forw2 .Nm が .Dv LINEMODE で動作している時に この文字が入力されると 行の一部がリモートシステムに送られます。 初期値として、端末の eol および eol2 文字が 使われます。 .It Ic interrupt .Nm が .Ic localchars -モード(後述の +モード (後述の .Ic toggle .Ic localchars を参照) になっている時に、 .Ic interrupt 文字が入力されると .Dv TELNET IP -シーケンス(前述の +シーケンス (前述の .Ic send .Ic ip -を参照)が +を参照) が リモートホストに送られます。 初期値として、端末の .Ic intr 文字が使われます。 .It Ic kill .Nm が .Ic localchars -モード(後述の +モード (後述の .Ic toggle .Ic localchars を参照) になっていて、 .Ic そして \*(Lqcharacter at a time\*(Rq モードで動作していれば、この文字が入力された時に .Dv TELNET EL -シーケンス(前述の +シーケンス (前述の .Ic send .Ic el -を参照)がリモートシステムに送られます。 +を参照) がリモートシステムに送られます。 初期値として、端末の .Ic kill 文字が使われます。 .It Ic lnext .Nm が .Dv LINEMODE か \*(Lqold line by line\*(Rq モードで動作している時に、端末の .Ic lnext 文字がこの文字として使われます。 初期値として、端末の .Ic lnext 文字が使われます。 .It Ic quit .Nm が .Ic localchars -モード(後述の +モード (後述の .Ic toggle .Ic localchars を参照) になっていて、 .Ic quit 文字が入力されると、 .Dv TELNET BRK -シーケンス(前述の +シーケンス (前述の .Ic send .Ic brk -を参照)が +を参照) が リモートホストに送られます。 初期値として、端末の .Ic quit 文字が使われます。 .It Ic reprint .Nm が .Dv LINEMODE あるいは \*(Lqold line by line\*(Rq モードで動作している時に、端末の .Ic reprint 文字がこの文字として使われます。 初期値として、端末の .Ic reprint 文字が使われます。 .It Ic rlogin これは rlogin エスケープ文字です。 もし設定されていれば、行の最初でこの文字が入力されている場合を除き、 通常の .Nm エスケープ文字は無視されます。 行の最初でこの文字に続けて "." が入力された場合、 接続が切れます。 続けて ^Z が入力された場合、 .Nm コマンドが中断されます。 初期状態では .Nm rlogin エスケープ文字は 無効になっています。 .It Ic start もし .Dv TELNET TOGGLE-FLOW-CONTROL オプションが有効になっていれば、端末の .Ic start 文字としてこの文字が使われます。 初期値として、端末の .Ic start 文字が使われます。 .It Ic stop もし .Dv TELNET TOGGLE-FLOW-CONTROL オプションが有効になっていれば 端末の .Ic stop 文字がこの文字として使われます。 初期値として、端末の .Ic stop 文字が使われます。 .It Ic susp .Nm が .Ic localchars モードになっているか、 .Dv LINEMODE が有効になっている場合に .Ic suspend 文字が入力されると、 .Dv TELNET SUSP -シーケンス(前述の +シーケンス (前述の .Ic send .Ic susp -を参照)が +を参照) が リモートホストに送られます。 初期値として、端末の .Ic suspend 文字が使われます。 .It Ic tracefile これは .Ic netdata あるいは .Ic option によって トレースが .Dv TRUE になっている場合に、出力が書き出されるファイルです。 もし .Dq Fl に設定されていれば、 -トレース情報は標準出力(デフォルト)に書き出されます。 +トレース情報は標準出力 (デフォルト) に書き出されます。 .It Ic worderase .Nm が .Dv LINEMODE か \*(Lqold line by line\*(Rq モードで動作している時に、端末の .Ic worderase 文字がこの文字として使われます。 初期値として、端末の .Ic worderase 文字が使われます。 .It Ic \&? .Ic set .Pq Ic unset コマンドのヘルプメッセージを表示します。 .El .It Ic slc Ar state .Ic slc (Set Local Characters) コマンドは、 .Dv TELNET LINEMODE オプションが有効な時に働く特殊文字を設定したり変更したりします。 -特殊文字は( +特殊文字は ( .Ic ip や .Ic quit のような) .Tn TELNET コマンドシーケンスや、( .Ic erase .Ic kill のような) -ラインエディット文字に割り付けられます。 +行編集文字に割り付けられます。 特殊文字はデフォルトで環境に取り込まれます。 .Bl -tag -width Fl .It Ic check 現在の特殊文字の設定を確認します。 -現在の全ての特殊文字の設定を送るように +現在のすべての特殊文字の設定を送るように リモートに要求を送り、 もしローカルな設定と違いがあれば、 ローカルな設定をリモートの値にします。 .It Ic export ローカルの特殊文字のデフォルトを変えます。 ローカルの特殊文字のデフォルトは .Nm を起動した時の端末の特殊文字です。 .It Ic import リモートの特殊文字のデフォルトを変えます。 リモートの特殊文字のデフォルトは .Tn TELNET 接続が確立した時のリモートの特殊文字です。 .It Ic \&? .Ic slc コマンドのヘルプメッセージを表示します。 .El .It Ic status .Nm の現在のステータスを表示します。 これには現在のモードと同じくらい接続先のモードについての状態が含まれています。 .It Ic toggle Ar arguments ... .Nm -の動作を制御するさまざまな変数の値( +の動作を制御するさまざまな変数の値 ( .Dv TRUE か .Dv FALSE ) を切替えます。 この変数は前述の .Ic set や .Ic unset を使って明示的に .Dv TRUE または .Dv FALSE に設定できます。複数の引数を指定可能です。 これらの変数の値は .Ic display コマンドによって調べることができます。 有効な引数の値は以下の通りです。 .Bl -tag -width Ar .It Ic authdebug 認証コードに対するデバッグ情報を有効にする。 .It Ic autoflush .Ic autoflush と .Ic localchars が両方とも .Dv TRUE で、 .Ic ao または .Ic quit -文字が設定されている(そして +文字が設定されている (そして .Tn TELNET シーケンスに変換されている; 詳細は前述の .Ic set を参照)場合、 -リモートシステムが( +リモートシステムが ( .Dv TELNET TIMING MARK によって) それらの .Tn TELNET シーケンスを処理したと認められるまで、 .Nm がどんなデータも端末に表示しないようにします。 初期値は、端末で "stty noflsh" を実行していなければ .Dv TRUE 、 していれば .Dv FALSE -です( +です ( .Xr stty 1 参照)。 .It Ic autodecrypt .Dv TELNET ENCRYPT オプションが交渉 (negotiate) されている時、デフォルトでは -データの暗号(復号)化は自動的には始まりません。 +データの暗号 (復号) 化は自動的には始まりません。 autoencrypt (autodecrypt) コマンドは 出力 (入力) の暗号化ができるだけ早く有効になるようにします。 .Pp 注意: 輸出規制の関係上、 .Dv TELNET ENCRYPT オプションは、米国およびカナダ以外の国ではサポートされません。 .It Ic autologin もしリモートで .Dv TELNET AUTHENTICATION オプションがサポートされている場合、 .Nm は自動認証を行うために、それを使おうとします。 .Dv AUTHENTICATION オプションがサポートされていない場合、 ログイン名は .Dv TELNET ENVIRON オプションを使用して伝えられます。 このコマンドは .Ic open コマンドで .Fl a オプションが指定された場合と同じです。 .It Ic autosynch .Ic autosynch と .Ic localchars が両方とも .Dv TRUE になっている時に .Ic intr または .Ic quit -文字が入力されると( +文字が入力されると ( .Ic intr および .Ic quit 文字の詳細は前述の .Ic set を参照)、 .Tn TELNET シーケンスが送られた結果は .Dv TELNET SYNCH に従います。 これは、リモートシステムに、 両方の .Tn TELNET シーケンスが読み込まれて作用するまで、 -それまでの全ての入力を捨てさせる +それまでのすべての入力を捨てさせる .Ic べき です。 初期値は .Dv FALSE です。 .It Ic binary 入力と出力の両方に対して、 .Dv TELNET BINARY オプションを有効または無効にします。 .It Ic inbinary 入力に対する .Dv TELNET BINARY オプションを有効または無効にします。 .It Ic outbinary 出力に対する .Dv TELNET BINARY オプションを有効または無効にします。 .It Ic crlf もし .Dv TRUE なら、キャリッジリターンが .Li として送られます。 .Dv FALSE なら .Li として送られます。 初期値は .Dv FALSE です。 .It Ic crmod キャリッジリターンモードを切替えます。 このモードが有効なら リモートホストから受けとられたほとんどのキャリッジリターンは キャリッジリターンとラインフィードに割り当てられます。 このモードはこれらの文字が入力された時には作用せず、 受けとらえた時にだけ作用します。 このモードはリモートホストがキャリッジリターンだけを送らなければ、 ラインフィードしないので、必ず役に立つというわけではありません。 初期値は .Dv FALSE です。 .It Ic debug -ソケットレベルデバッグ( +ソケットレベルデバッグ ( .Ic スーパユーザ にのみ役立つ) を切替えます。 初期値は .Dv FALSE です。 .It Ic encdebug 暗号化コードに対するデバッグ情報を有効にする。 .It Ic localchars もし .Dv TRUE ならば、 .Ic flush , .Ic interrupt , .Ic quit , .Ic erase , -そして .Ic kill -文字(前述の +文字 (前述の .Ic set -参照)はローカルに認識され、(うまくいけば)適当な +参照) はローカルに認識され、(うまくいけば) 適当な .Tn TELNET -コントロールシーケンス(それぞれ +コントロールシーケンス (それぞれ .Ic ao , .Ic ip , .Ic brk , .Ic ec , -および .Ic el ; 前述の .Ic send -参照)に変換されます。 +参照) に変換されます。 初期値は \*(Lqold line by line\*(Rq モードでは .Dv TRUE \*(Lqcharacter at a time\*(Rq モードでは .Dv FALSE です。 .Dv LINEMODE オプションが有効の時は、 .Ic localchars の値は無視されて、常に .Dv TRUE になります。 もし .Dv LINEMODE が有効になったことがあれば、 .Ic quit は .Ic abort として送られ、 .Ic eof and .Ic suspend は .Ic eof and .Ic susp として送られます (前述の .Ic send 参照)。 .It Ic netdata -(16進フォーマットによる)全てのネットワークデータの表示を切替えます。 +(16 進フォーマットによる) すべてのネットワークデータの表示を切替えます。 初期値は .Dv FALSE です。 .It Ic options ( .Tn TELNET オプションを処理する時の) 内部の .Nm プロトコルの処理の表示を切替えます。 初期値は .Dv FALSE です。 .It Ic prettydump .Ic netdata が有効になっている時、 .Ic prettydump が有効になっていれば、 .Ic netdata コマンドの出力を、より見やすいフォーマットにします。 出力の各文字の間にはスペースがはさまれ、 .Nm エスケープシーケンスの前には、 探しやすいように '*' が置かれます。 .It Ic skiprc skiprc が .Dv TRUE になっていると、 .Nm はコネクションが開設される時に ホームディレクトリから .Pa \&.telnetrc を読まないようにします。 初期値は .Dv FALSE です。 .It Ic termdata -(16進フォーマットによる)全ての端末データの表示を切替えます。 +(16 進フォーマットによる) すべての端末データの表示を切替えます。 初期値は .Dv FALSE です。 .It Ic verbose_encrypt .Ic verbose_encrypt が .Dv TRUE になっていると、 .Nm はメッセージを表示するたびに暗号化が有効か無効かを表示します。 初期値は .Dv FALSE です。 注意: 輸出規制の関係上、 データの暗号化は、米国およびカナダ以外の国ではサポートされません。 .It Ic \&? .Ic toggle コマンドのヘルプメッセージを表示します。 .El .It Ic z .Nm コマンドをサスペンドします。このコマンドは、ユーザが .Xr csh 1 を使用している時にのみ使用可能です。 .It Ic \&! Op Ar command ローカルシステムのサブシェルで、コマンドを1つ実行できます。 .Ar command が指定されなかった場合、サブシェルが対話モードで起動されます。 .It Ic \&? Op Ar command ヘルプメッセージを表示します。 引数が指定されなかった場合、 .Nm はコマンド一覧を表示します。 .Ar command が指定された場合、 .Nm はそのコマンドのヘルプメッセージを表示します。 .El .Sh 環境変数 .Nm は、少なくとも .Ev HOME , .Ev SHELL , .Ev DISPLAY , -および .Ev TERM 環境変数を用います。 他の環境変数は、 .Dv TELNET ENVIRON オプションによりリモートホストに送られます。 .Sh 関連項目 .Xr rlogin 1 , .Xr rsh 1 , .Xr hosts 5 , .Xr nologin 5 , .Xr telnetd 8 .Sh 関連ファイル .Bl -tag -width ~/.telnetrc -compact .It Pa ~/.telnetrc -ユーザカスタマイズ可能なtelnet初期設定ファイル +ユーザカスタマイズ可能な telnet 初期設定ファイル .El .Sh 歴史 .Nm コマンドは、 .Bx 4.2 ではじめて実装されました。 .Sh 注意 リモートシステムの中には、\*(Lqold line by line\*(Rq モードで 手動でエコーバックを切り替えなければならない場合があります。 .Pp \*(Lqold line by line\*(Rq モードもしくは .Dv LINEMODE では、端末の .Ic eof 文字は、 それが行の先頭にある時だけ -認識され(リモートシステムに送られ)ます。 +認識され (リモートシステムに送られ) ます。 diff --git a/ja_JP.eucJP/man/man1/top.1 b/ja_JP.eucJP/man/man1/top.1 index 1614f82dba..e44d831132 100644 --- a/ja_JP.eucJP/man/man1/top.1 +++ b/ja_JP.eucJP/man/man1/top.1 @@ -1,382 +1,382 @@ .\" NOTE: changes to the manual page for "top" should be made in the .\" file "top.X" and NOT in the file "top.1". .\" jpman %Id: top.1,v 1.3 1997/08/19 03:06:41 h-nokubi Stab % .nr N %topn% .nr D %delay% .TH TOP 1 Local .UC 4 .SH 名称 top \- CPU プロセスの上位リストに関する情報を表示/更新する .SH 書式 .B top [ .B \-SbiInqut ] [ .BI \-d count ] [ .BI \-s time ] [ .BI \-o field ] [ .BI \-U username ] [ .I number ] .SH 解説 .\" This defines appropriate quote strings for nroff and troff .ds lq \&" .ds rq \&" .if t .ds lq `` .if t .ds rq '' .\" Just in case these number registers aren't set yet... .if \nN==0 .nr N 10 .if \nD==0 .nr D 5 .I top はシステム内の上位 .if !\nN==-1 \nN プロセスを表示し、その情報を定期的に更新します。 .if \nN==-1 \ \{\ 標準出力がインテリジェント端末 (以下を参照) なら、 デフォルトでは端末画面に合わせて表示プロセス数を決定します。 それ以外の場合、適切な数のプロセス (約 20 プロセス) が表示されます。 .\} 生の CPU パーセンテージを用いてプロセス順位を決めます。もし .I number が指定されると、デフォルト値に代えて、上位 .I number プロセスが表示されます。 .PP .I top の動作は高機能端末とそうでない端末とで異なります。 この差異によって、いくつかのオプションのデフォルト値も変わってきます。 以下の部分では、\*(lqインテリジェント\*(rq 端末とは、 カーソルアドレシング、画面クリアおよび行末までのクリアをサポートしている 端末のことを指します。 逆に \*(lqダム\*(rq 端末とは、そのような機能をサポートしていないものを いいます。 .I top の出力をファイルにリダイレクトすると、 あたかもダム端末上で動作しているように振る舞います。 .SH オプション .TP .B \-S システムプロセスも画面に表示します。 pager や swapper といったシステムプロセスは通常、表示されませんが、 このオプションによりそれらも見えるようになります。 .TP .B \-b \*(lqバッチ\*(rq モードにします。 バッチモードでは、端末からの入力は全て無視されます。 ただし割り込みキャラクタ (^C や ^\e など) は有効です。 ダム端末上で実行する場合や出力先が端末以外の場合は、これがデフォルトです。 .TP .B \-i \*(lq対話的実行\*(rq モードにします。 対話的実行モードでは、あらゆる入力は直ちに読み込んで処理されます。 どのキーがどういう機能をもっているかについては、 \*(lq対話的実行モード\*(rq のセクションを参照して下さい。 コマンドが処理されると、そのコマンドが理解されなかった場合でも、 画面は直ちに更新されます。 出力先がインテリジェント端末の場合は、これがデフォルトです。 .TP .B \-I アイドル状態のプロセスを表示しません。 デフォルトでは、 top はアクティブプロセスもアイドルプロセスも両方とも表示します。 .TP .B \-t .I top プロセスを表示しないようにします。 .TP .B \-n \*(lq非対話的実行\*(rq モードにします。 これは \*(lqバッチ\*(rq モードと同じです。 .TP .B \-q .I top を -20 に renice し、より高速に実行されるようにします。 この機能は、システムが大変重い場合に、問題箇所を発見する可能性を高めるために 用いられます。 このオプションは root のみ使用可能です。 .TP .B \-u uid 値をユーザ名に変換する時間を割かないようにします。 通常、 .I top は必要に応じてファイル \*(lq/etc/passwd\*(rq を読み、 出現する全てのユーザ id 値をログイン名に変換します。 このオプションはその変換を全て止め、できるだけ実行時間を低減させます。 ログイン名の代わりに uid 値が表示されます。 .TP .BI \-d count .I count 回だけ表示し、その後終了します。 1 回の表示とは、1 回の画面更新のことです。 このオプションにより、ユーザは希望する回数だけ状況を表示し、 その後自動的に .I top を終了させることができます。 インテリジェント端末では、表示回数の上限は設定されていません。 ダム端末ではデフォルト値は 1 回です。 .TP .BI \-s time 画面更新間隔を .I time 秒に設定します。デフォルトの画面更新間隔は \nD 秒です。 .TP .BI \-o field プロセス表示領域を指定したフィールドによってソートします。 フィールド名には出力で示されているカラム名を用いますが、小文字で指定します。 しばしば用いられる値は \*(lqcpu\*(rq, \*(lqsize\*(rq, \*(lqres\*(rq, \*(lqtime\*(rq ですが、これは OS によっても異なります。 必ずしも全ての OS でこのオプションがサポートされているわけではないことに 注意して下さい。 .TP .BI \-U username ユーザ .IR username が所有しているプロセスのみ表示します。 現在のところ、このオプションはユーザ名指定のみ可能で、uid 値は指定できません。 .PP .I count と .I number はいずれも \*(lq無限\*(rq を指定でき、 その場合、それらは可能な限り引き延ばされます。 これは、キーワード \*(lqinfinity\*(rq, \*(lqmaximum\*(rq, \*(lqall\*(rq のいずれかの、 一意に識別可能な先頭からの部分文字列を指定することで行われます。 実際、インテリジェント端末での .I count のデフォルト値は .BI infinity となっています。 .PP コマンドラインのオプションを調べる前に、 環境変数 .B TOP が調べられます。これによりユーザ自身のデフォルト値を設定できます。 表示プロセス数も環境変数 .BR TOP で指定可能です。 オプション .BR \-I , .BR \-S , .BR \-u , .B \-t は実際はトグルオプションです。これらのオプションを 2 回指定すると、 最初の指定を無効にします。 ですから、環境変数 .B TOP を \*(lq\-I\*(rq と設定しているユーザは、 \*(lqtop \-I\*(rq とすることでアイドルプロセスの状況を見ることができます。 .SH 対話的実行モード \*(lq対話的実行モード\*(rq で動作している場合、 .I top は端末からコマンドを読み込み、それに応じて動作を行います。 このモードでは端末は \*(lqCBREAK\*(rq モードに設定され、 入力文字が速やかに処理されるようになります。 .I top の表示と表示の間、 つまり .I top が .I time 秒が経過するのを待っている間、ほとんどいつでもキー入力可能です。 実際キーが押されると、そのコマンドは直ちに処理され、 画面が更新されます (そのコマンドが指示した変更も反映されます)。 これはコマンドが正しくない場合にも行われます。 画面を更新している最中にキーが押されると、 .I top は画面更新を終らせて、そのコマンドを処理します。 コマンドによっては更に情報の指定が必要になるものもありますが、 その場合、それに応じてユーザに入力が求められます。 その情報を入力する間、ユーザの削除キーと行削除キー ( .IR stty コマンドで設定される) が利用でき、改行により入力が完了します。 .PP 現在のところ、以下のコマンドが利用可能です (^L は control-L を表します): .TP .B ^L 画面を再描画します。 .IP "\fBh\fP\ or\ \fB?\fP" コマンド一覧 (ヘルプ画面) を表示します。 .TP .B q .I top を終了します。 .TP .B d 表示する画面数を変更します (新しい数値入力が求められます)。 次回の表示が 1 回目となります。ですから .B d1 と入力すると、 .I top は 1 回表示して直ちに終了します。 .TP .B n or # 表示するプロセス数を変更します (新しい数値入力が求められます)。 .TP .B s 表示間隔の秒数を変更します (新しい数値入力が求められます)。 .TP .B k プロセスリストにシグナル (デフォルトでは \*(lqkill\*(rq) を送ります。 .IR kill (1) コマンドと同様の働きをします。 .TP .B r プロセスリストの優先度 (\*(lqnice\*(rq 値) を変更します。 .IR renice (8) コマンドと同様の働きをします。 .TP .B u 指定したユーザ名のユーザが所有するプロセスのみ表示します (ユーザ名入力 が求められます)。 ユーザ名として単に \*(lq+\*(rq が指定された場合、 全ユーザのプロセスが表示されます。 .TP .B e 前回の .BR k ill または .BR r enice コマンドで生じたシステムエラーがあれば、そのリストを表示します。 .TP .B i (または .BR I ) アイドルプロセスの表示有無を切り替えます。 .TP .B t .I top の表示有無を切り替えます。 .SH 表示 実際の表示画面は、そのマシンで動作している Unix の種類によって異なります。 ここでの説明は、この特定マシンで動作する top コマンドの出力と 厳密には合っていないかもしれません。 相違点はこのマニュアルの終りに示してあります。 .PP 表示画面の先頭数行にはシステム状態に関する情報として、 プロセスに割り当てられた最終プロセス ID (ほとんどのシステム)、 3 種のロードアベレージ、現在時刻、存在するプロセス数、 各状態 (sleep 中、実行中、実行開始中、ゾンビ、停止中) のプロセス数、 各プロセッサ状態 (ユーザ, nice, システム, アイドル) で消費した時間の割合 等が表示されます。 物理メモリおよび仮想メモリの割り当てに関する情報も表示されます。 .PP 画面の残りの部分には各プロセスに関する情報が表示されます。 表示項目は、内容的には .IR ps (1) に似ていますが、正確には同じではありません。 PID はプロセス id、USERNAME はプロセス所有者名 ( .B \-u 指定時は UID カラムが USERNAME に取って替わる)、 PRI は現在のプロセス優先度、 NICE は nice 値 (\-20 から 20 までの範囲)、 SIZE はプロセスサイズの合計 (text, data, stack)、 RES は現在のメモリ常駐量 (SIZE と RES はいずれもキロバイト単位)、 STATE は現在の状態 (\*(lqsleep\*(rq, \*(lqWAIT\*(rq, \*(lqrun\*(rq, \*(lqidl\*(rq, \*(lqzomb\*(rq, \*(lqstop\*(rq のいずれか)、 TIME はプロセスが消費したシステム時間およびユーザ時間の秒数、 WCPU は (もしあれば) 重み付き CPU パーセンテージ (これは .IR ps (1) が CPU として表示するものと同じ)、 CPU は生のパーセンテージで、プロセス順序を決めるソート処理に用いられるもの、 そして COMMAND はプロセスが現在実行しているコマンド名です (もしプロセスが スワップアウト中なら、このカラムには \*(lq\*(rq という印がつく)。 .SH 注意 \*(lqABANDONED\*(rq 状態 (カーネル中では \*(lqSWAIT\*(rq 状態として 知られています) は捨て去られたものゆえ、この名称がついています。 プロセスはこの状態で終るべきではありません。 .SH 作者 William LeFebvre, EECS Department, Northwestern University .SH 環境変数 .DT TOP ユーザが設定できるオプションのデフォルト値 .SH 関連ファイル .DT /dev/kmem カーネルメモリ .br /dev/mem 物理メモリ .br /etc/passwd uid 値をユーザ名に変換するのに使用 .br /kernel システムイメージ .SH バグ .B \-I のデフォルト値が もう一度変更されましたが、私を責めないで下さい。 .I top が全プロセスを表示するわけではないことで大変多くの人が混乱したため、 バージョン 2 の頃と同様、デフォルトでアイドルプロセスも表示することに 決めました。 しかしこの動作に耐えられない人々のために、環境変数 .B TOP に \*(lqデフォルト\*(rq オプションを設定しておく機能を 追加しました (オプションのセクションを参照)。 バージョン 3.0 が持っている振る舞いが必要な人は、環境変数 .B TOP に値 \*(lq\-I\*(rq を設定するだけで OK です。 .PP スワップされたプロセスに対するコマンド名は追跡すべきですが、 それを行うとプログラムの動作が遅くなるでしょう。 .PP .IR ps (1) と同様、 .I top が更新情報を収集している間に事態が変化する可能性があります。 表示内容は現実に近い近似値に過ぎません。 .SH 関連項目 kill(1), ps(1), stty(1), mem(4), renice(8) -.SH FreeBSD 2.x 版 +.SH FreeBSD に関する注釈 .SH メモリに関する説明 Mem: 9220K Active, 1032K Inact, 3284K Wired, 1MB Cache, 2M Buf, 1320K Free Swap: 91M Total, 79M Free, 13% Inuse, 80K In, 104 K Out .B K: キロバイト。 .TP .B M: メガバイト。 .TP .B %: 1/100。 .TP .B Active: アクティブなページ数。 .TP .B Inact: アクティブでないページ数。 .TP .B Wired: 固定されているページ数。キャッシュされたファイルデータページを含む。 .TP .B Cache: VM レベルのディスクキャッシュに使用しているページ数。 .TP .B Buf: BIO レベルのディスクキャッシュに使用しているページ数。 .TP .B Free: 未使用ページ数。 .TP .B Total: 使用可能なスワップ合計。 .TP .B Free: 未使用スワップ合計。 .TP .B Inuse: 使用中スワップ。 .TP .B In: (直前の表示間隔において) スワップデバイスからページインしたページ数 .TP .B Out: (直前の表示間隔において) スワップデバイスにページアウトしたページ数 diff --git a/ja_JP.eucJP/man/man1/vidcontrol.1 b/ja_JP.eucJP/man/man1/vidcontrol.1 index 4dc7a0276a..3471acab28 100644 --- a/ja_JP.eucJP/man/man1/vidcontrol.1 +++ b/ja_JP.eucJP/man/man1/vidcontrol.1 @@ -1,159 +1,208 @@ +.\" t .\" .\" vidcontrol - a utility for manipulating the syscons video driver .\" .\" 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. .\" .\" @(#)vidcontrol.1 -.\" %Id: vidcontrol.1,v 1.14.2.1 1999/04/08 13:53:31 ghelmer Exp % +.\" %Id: vidcontrol.1,v 1.14.2.2 1999/06/03 12:44:49 yokota Exp % .\" .\" jpman %Id: vidcontrol.1,v 1.3 1997/08/04 01:31:25 mitchy Stab % .Dd May 22, 1994 .Dt VIDCONTROL 1 .Os .Sh 名称 .Nm vidcontrol .Nd syscons 画面ドライバの操作ユーティリティ .Sh 書式 .Nm .Op Fl r Ar fg Ar bg .Op Fl b Ar color .Op Fl c Ar appearance .Op Fl d .Op Fl i Ar adapter|mode .Op Fl l Ar scrmap .Op Fl L .Op Fl m Ar on|off .Op Fl f Ar size Ar file .Op Fl s Ar number .Op Fl t Ar N|off .Op Fl x .Op mode .Op fgcol Op bgcol .Op show .Sh 解説 .Nm コマンドを用いて syscons 画面ドライバの様々なオプション、例えば、 画面モード、色、カーソル、画面マップ (scrnmap)、 フォント、スクリーンセーバタイムアウトを設定することができます。 .Pp 以下のコマンドラインオプションをサポートしています: .Bl -tag -width indent .It mode 新しいビデオモードを選択します。 現在サポートしているモードは次の通りです: .Ar 40x25 , .Ar 80x25 , .Ar 80x30 , .Ar 80x43 , .Ar 80x50 , .Ar 80x60 , .Ar 132x25 , .Ar 132x30 , .Ar 132x43 , .Ar 132x50 , .Ar 132x60 , .Ar VGA_40x25 , .Ar VGA_80x25 , .Ar VGA_80x50 , .Ar EGA_80x25 , .Ar EGA_80x43 , .Ar VESA_132x25 , .Ar VESA_132x30 , .Ar VESA_132x43 , .Ar VESA_132x50 , .Ar VESA_132x60 。 -また、グラフィックモード -.Ar VGA_320x200 , +.\" また、グラフィックモード +.\" .Ar VGA_320x200 , +ラスタテキストモード .Ar VGA_800x600 も選択できます。 -前記の全モードを -ビデオカードがサポートしているとは限らないことに注意してください。 -また、 VESA ビデオモードもしくは 132 桁モードを使用する場合には、 -VESA BIOS サポートをカーネルにリンクするか KLD にてロードする必要があることにも -注意してください。 +後述の +.Sx ビデオモードサポート +を参照してください。 .It fgcol Op bgcol テキストを表示する際の色を変更します。 前景色 (例: "vidcontrol white")、あるいは 前景色および背景色 (例: "vidcontrol yellow blue") を指定することにより 変更できます。 .It show 指定したプラットフォームでサポートされている色を表示します。 .It Fl r Ar foreground Ar background 反転表示モードで用いる色を前景色 .Ar foreground および背景色 .Ar background に変更します。 .It Fl b Ar color ボーダ色を .Ar color に設定します (VGA ハードウェアでのみサポートされています)。 .It Fl c Ar normal|blink|destructive カーソルの外観を変更します。 カーソルは、反転ブロック (normal)、反転ブロックの点滅 (blink)、 あるいは古いハードウェアカーソル様のもの (destructive) のいずれかです。 後者は実際にはシミュレートしています。 .It Fl d 現在の画面出力マップを表示します。 .It Fl l Ar scrmap 画面出力マップをファイル .Ar scrmap から読み込んで設定します。 .It Fl L 画面出力マップをデフォルトに設定します。 .It Fl i Ar adapter 現在のビデオアダプタに関する情報を表示します。 .It Fl i Ar mode 現在のビデオハードウェアにて使用可能なビデオモードを表示します。 .It Fl m Ar on|off マウスポインタを .Ar on または .Ar off します。 テキストモードでのカット & ペースト機能を利用するために moused デーモンと共に 使用します。 .It Fl f Ar size Ar file サイズ .Ar size 用のフォントをファイル .Ar file から読み込みます。 現在のところ .Ar size には 8x8, 8x14, 8x16 のみが指定できます。 フォントファイルは uuencode された形式でも 生のバイナリフォーマットでも構いません。 .It Fl s Ar number 現在の vty を .Ar number に設定します。 .It Fl t Ar N|off スクリーンセーバのタイムアウト値を .Ar N 秒に設定、あるいはスクリーンセーバを無効 ( .Ar off )にします。 .It Fl x 出力に 16 進数を用います。 .El +.Ss ビデオモードサポート +前記の全モードを +ビデオカードがサポートしているとは限らないことに注意してください。 +.Fl i Ar mode +オプションを使用することにより、 +ビデオカードがサポートしているモードを調べることが可能です。 +.Pp +VESA ビデオモードもしくは 132 桁モードを使用する場合には、 +VESA BIOS サポートをカーネルにリンクするか KLD にてロードする必要があることにも +注意してください ( +.Xr vga 4 +を参照してください)。 +.Pp +25 または 30 行モード以外のビデオモードは、 +特定の大きさのフォントが必要となるかもしれません。 +前述の +.Fl f +オプションを使用し、フォントファイルをカーネルにロードしてください。 +必要な大きさのフォントがカーネルにロードされていないと、 +ユーザが新規ビデオモードを設定しようとした場合に +.Nm +は失敗します。 +.Pp +.TS +c s +c c +l c. +ビデオモードとフォントの大きさ +モード フォントの大きさ +25 行モード 8x16 (VGA), 8x14 (EGA) +30 行モード 8x16 +43 行モード 8x8 +50 行モード 8x8 +60 行モード 8x8 +.TE +.Pp +同じフォントの 3 つの大きさすべて (8x8, 8x14, 8x16) を +常にロードすることが望ましいです。 +.Pp +.Pa /etc/rc.conf.local +中の変数 +.Ar font8x8 , +.Ar font8x14 , +.Ar font8x16 +を希望のフォントファイルに設定できます。 +これにより、システム起動時にこれらのフォントが自動的にロードされます。 .Sh 関連ファイル .Bl -tag -width /usr/share/syscons/scrnmaps -compact .It Pa /usr/share/syscons/fonts .It Pa /usr/share/syscons/scrnmaps .El .Sh 関連項目 .Xr kbdcontrol 1 , .Xr keyboard 4 , .Xr screen 4 , +.Xr syscons 4 , +.Xr vga 4 , +.Xr rc.conf 5 , .Xr moused 8 .Sh 作者 -.An Sen Schmidt Aq sos@FreeBSD.org +.An Soren Schmidt Aq sos@FreeBSD.org diff --git a/ja_JP.eucJP/man/man1/zmore.1 b/ja_JP.eucJP/man/man1/zmore.1 index 6b0c8f0166..43c6c53a7c 100644 --- a/ja_JP.eucJP/man/man1/zmore.1 +++ b/ja_JP.eucJP/man/man1/zmore.1 @@ -1,138 +1,140 @@ +.\" %Id: zmore.1,v 1.2.12.1 1999/06/07 14:07:34 kris Exp % +.\" .\" jpman %Id: zmore.1,v 1.4 1997/06/12 11:20:32 jsakai Stab % .TH ZMORE 1 .SH 名称 zmore \- 圧縮したままファイルを閲覧する .SH 書式 .B zmore [ name ... ] .SH 解説 .I zmore は、圧縮を施したファイルもしくはプレーンテキストファイルの 閲覧に使用するフィルタです。 .I zmore は、 .I compress, pack, gzip によって圧縮されたファイルを閲覧することが出来ますが、 非圧縮ファイルも閲覧することが出来ます。 もし、ファイルが見つからない時には .I zmore は同じ名前に .gz, .z, .Z が付いたファイルを探します。 .PP .I zmore は各々の画面の一番下に --More-- と表示をして停止します。 -リターンキーを押すともう一行表示されます。 +リターンキーを押すともう 1 行表示されます。 スペースキーを押すと次の画面が表示されます。 他の操作は後で説明します。 .PP .zmore は端末の性質やデフォルトのウィンドウの大きさを決めるために -.I /etc/termcap +.I /usr/share/misc/termcap を見ます。 -ターミナルが 24 ライン表示できる時には、 -デフォルトのウィンドウのサイズは 22 ラインとなります。 +端末が 24 行表示できる時には、 +デフォルトのウィンドウの大きさは 22 行となります。 .I zmore は、通常はページャとして .I more を用いますが 環境変数 PAGER を指定することで .I less のような他のページャを使用することが出来ます。 .PP .I zmore が停止した時に使える他の文字とその効果は以下の通りです。 (\fIi\fP は整数の引数である。デフォルトは 1 です): .PP .IP \fIi\|\fP さらに .I i 行表示します。 (引数が与えられなければ次の画面を表示します) .PP .IP ^D -さらに11行表示します(``スクロールする'')。 +さらに 11 行表示します (``スクロールする'')。 .I i が与えられていれば、スクロールする大きさは \fIi\|\fP になります。 .PP .IP d -^D (control-D)と同じです。 +^D (control-D) と同じです。 .PP .IP \fIi\|\fPz \fIi\|\fP が与えられた時に 新しいウィンドウの大きさになる以外は、スペースキーを押すのと同じです。 ウィンドウの大きさは現在のファイルが終了した時にデフォルトに戻ります。 .PP .IP \fIi\|\fPs \fIi\|\fP 行飛ばして画面に表示します。 .PP .IP \fIi\|\fPf \fIi\fP 画面分飛ばして画面に表示します。 .PP .IP "q または Q" 現在のファイルを読むのを終了します。もしあるならば次のファイルに行きます。 .PP .IP "e または q" --More--(Next file: .IR file ) が表示された時に、このコマンドは zmore を終了させます。 .PP .IP s --More--(Next file: .IR file ) が表示された時に、このコマンドは次のファイルをスキップし、続けます。 .PP .IP = 現在の行番号を表示します。 .PP .IP \fIi\|\fP/expr 入力した正規表現 \fIexpr\fP の \fIi\|\fP 番目に現れるものを検索します。 もし、それが見付からなかったら、 .I zmore -は(あるならば)次のファイルに行きます。 +は (あるならば) 次のファイルに行きます。 そうでなければ、その正規表現が見付かった場所の前 2 行を先頭として、 検索結果を表示します。 ユーザが文字を消す事は正規表現の編集の時に用いられるかもしれません。 最初のカラムの前の文字を消す事は検索コマンドをキャンセルする事になります。 .PP .IP \fIi\|\fPn 最後に入力した正規表現の \fIi\|\fP 番目に現れるものを検索します。 .PP .IP !command シェルをよびだし、\fIcommand\|\fP を実行します。 コマンドに出て来る `!' は直前に行ったシェルのコマンドに置き換えられます。 "\\!" の文字列が "!" に置き換えられます。 .PP .IP ":q or :Q" 現在のファイルを読むのを終了します。もしあるならば次のファイルに行きます。 (q や Q と同じです)。 .PP .IP . (ドット) 直前のコマンドを繰り返します。 .PP コマンドはすぐに効果が現れます。つまり、リターンキーを押す必要がありません。 コマンド文字列を与えるまでに、ユーザは行消去文字を入力し、 数字の引数を消去するかも知れません。 また、ユーザは消去文字を入力し、 --More-- メッセージを再表示するかもしれません。 .PP 出力は端末画面に送られている時はいつでも、 ユーザは終了キーを押す事ができます。(普通はcontrol\-\\) .I zmore は出力を止め、いつもの --More-- を表示します。 ユーザはそこで通常の形式で上記のコマンドの 1 つを入力します。 終了信号が送られると端末画面の出力を待っていたキューの中の文字は 消去されるために、いくつかの出力はこれが行われると失われてしまいます。 .PP 端末出力が連続して行われるように、端末はプログラムによって .I noecho モードにセットされます。 あなたがタイプした / と ! 以外のコマンドは端末に表示されません。 .PP 標準出力がテレタイプで無い時は、 .I zmore -はヘッダー各々のファイルの前に印刷される以外は +はヘッダ各々のファイルの前に印刷される以外は .I zcat のように働きます。 .SH 関連ファイル .DT -/etc/termcap ターミナル・データ・ベース +/etc/termcap 端末データベース .SH 関連項目 more(1), gzip(1), zdiff(1), zgrep(1), znew(1), zforce(1), gzexe(1) diff --git a/ja_JP.eucJP/man/man5/a.out.5 b/ja_JP.eucJP/man/man5/a.out.5 index dc8791f577..21f0b138c1 100644 --- a/ja_JP.eucJP/man/man5/a.out.5 +++ b/ja_JP.eucJP/man/man5/a.out.5 @@ -1,485 +1,485 @@ .\" Copyright (c) 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" This man page is derived from documentation contributed to Berkeley by .\" Donn Seeley at UUNET Technologies, 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. .\" .\" @(#)a.out.5 8.1 (Berkeley) 6/5/93 .\" %Id: a.out.5,v 1.7 1997/02/22 13:25:56 peter Exp % .\" .\" jpman %Id: a.out.5,v 1.3 1998/08/09 12:51:56 horikawa Stab % .\" WORD: byte order バイト順 .\" WORD: posision independent 位置独立(な) .\" WORD: link editor リンクエディタ .\" WORD: link edit リンクエディット .\" .Dd June 5, 1993 .Dt A.OUT 5 .Os .Sh 名称 .Nm a.out .Nd 実行可能バイナリファイルのフォーマット .Sh 書式 .Fd #include .Sh 解説 インクルードファイル .Aq Pa a.out.h では 3 つの構造体といくつかのマクロが宣言されています。 これらの構造体は、このシステムで実行可能な機械語コードファイル .Pq Sq バイナリ のフォーマットを規定します。 .Pp バイナリファイルは最大で 7 つのセクションから構成されます。 これらのセクションを順にあげると以下のようになります: .Bl -tag -width "テキストリロケーション" .It exec ヘッダ バイナリファイルをメモリ上にロードして実行するために カーネルが用いるパラメータを含んでいます。 これらのパラメータはリンクエディタ .Xr ld 1 がバイナリファイルを他のバイナリファイルと結合する際にも 用いられます。 このセクションは唯一の必須セクションです。 .It テキストセグメント プログラムが実行される際にメモリ上にロードされる 機械語コード及び関連データを含んでいます。 読み込み専用でロードされる場合があります。 .It データセグメント 初期化済データを含んでいます。 常に書き込み可能なメモリ上にロードされます。 .It テキストリロケーション バイナリファイル結合時にテキストセグメント内のポインタを修正するために、 リンクエディタによって用いられるレコードを含んでいます。 .It データリロケーション 前出のテキストリロケーションセクションと似ていますが、 データセグメント内のポインタ修正用です。 .It シンボルテーブル バイナリファイル間で 名前付きの変数や関数 .Pq Sq シンボル のアドレス相互参照を解決するために、 リンクエディタによって用いられるレコードを含んでいます。 .It string table シンボル名に対応する文字列を含んでいます。 .El .Pp 全てのバイナリファイルは次の .Fa exec 構造体で始まります: .Bd -literal -offset indent struct exec { unsigned long a_midmag; unsigned long a_text; unsigned long a_data; unsigned long a_bss; unsigned long a_syms; unsigned long a_entry; unsigned long a_trsize; unsigned long a_drsize; }; .Ed .Pp これらのフィールドは以下の機能を持っています: .Bl -tag -width a_trsize .It Fa a_midmag このフィールドはホストのバイト順 (host byte-order) で格納されます。 このフィールドはいくつかのサブコンポーネントを持っており、それらは 以下のマクロ .Dv N_GETFLAG() , .Dv N_GETMID() , .Dv N_GETMAGIC() で参照され、マクロ .Dv N_SETMAGIC() で設定されます。 .Pp マクロ .Dv N_GETFLAG() は以下のフラグを返します: .Bl -tag -width EX_DYNAMIC .It Dv EX_DYNAMIC この実行可能ファイルがランタイムリンクエディタのサービスを要求することを 示します。 .It Dv EX_PIC このオブジェクトファイルが位置独立 (position independent) なコードを 含んでいることを示します。 このフラグは .Sq -k フラグ指定時に .Xr as 1 によって設定され、必要なら .Xr ld 1 はこれを保存します。 .El .Pp EX_DYNAMIC と EX_PIC の両方がセットされている場合、 そのオブジェクトファイルは位置独立な実行可能イメージです (例: 共有ライブラリ)。 これはランタイムリンクエディタによってプロセスのアドレス空間にロードされます。 .Pp マクロ .Dv N_GETMID() はマシン識別コード (machine-id) を返します。 これは、バイナリファイルが実行されるべきマシンを示しています。 .Pp .Dv N_GETMAGIC() はマジックナンバを示します。 マジックナンバはバイナリファイル種別を一意に識別し、 様々なロード方法を区別します。 このフィールドは以下の値のいずれか 1 つを含んでいなければなりません: .Bl -tag -width ZMAGIC .It Dv OMAGIC テキストセグメントとデータセグメントはヘッダの直後にあり、 連続しています。 カーネルはテキスト/データセグメントの両方を書き込み可能メモリ領域に ロードします。 .It Dv NMAGIC .Dv OMAGIC と同様、テキスト/データセグメントはヘッダの直後にあり、連続しています。 しかし、カーネルはテキストセグメントを読み込み専用メモリ領域にロードし、 テキストに続くページ境界から始まる 書き込み可能メモリ領域にデータセグメントをロードします。 .It Dv ZMAGIC カーネルは各々のページを必要に応じてバイナリからロードします。 ヘッダ、テキストセグメント及びデータセグメントはいずれも、 ページサイズの倍数の大きさになるよう、 リンクエディタによってパディングされます。 カーネルがテキストセグメントからロードしたページは読み込み専用ですが、 データセグメントからロードしたページは書き込み可能です。 .El .It Fa a_text テキストセグメントのサイズ (バイト単位) を保持します。 .It Fa a_data データセグメントのサイズ (バイト単位) を保持します。 .It Fa a_bss .Sq bss セグメント のバイト数を保持します。 この値はカーネルが最初の break 値 .Pq Xr brk 2 をデータセグメントの後ろに設定するのに用いられます。 カーネルは、ここに示されるサイズの書き込み可能メモリ領域が データセグメントの後ろに用意され、それらの初期状態が 0 になるように、 プログラムをロードします。 .It Fa a_syms シンボルテーブルセクションのサイズ (バイト単位) を保持します。 .It Fa a_entry カーネルがバイナリファイルをロードした後の、 プログラムのエントリポイントのメモリアドレスを保持します。 カーネルは、このアドレスにある機械命令からプログラムの実行を開始します。 .It Fa a_trsize テキストリロケーションテーブルのサイズ (バイト単位) を保持します。 .It Fa a_drsize データリロケーションテーブルのサイズ (バイト単位) を保持します。 .El .Pp インクルードファイル .Pa a.out.h では、 .Fa exec 構造体を用いて一貫性をテストしたりバイナリファイル中のセクションオフセットを 知るためのマクロが定義されています。 .Bl -tag -width N_BADMAG(exec) .It Fn N_BADMAG exec .Fa a_magic フィールドに、認識できない値が含まれている場合、非 0 を返します。 .It Fn N_TXTOFF exec バイナリファイルにおけるテキストセグメントの先頭のバイトオフセットを返します。 .It Fn N_SYMOFF exec シンボルテーブルの先頭のバイトオフセットを返します。 .It Fn N_STROFF exec 文字列テーブルの先頭のバイトオフセットを返します。 .El .Pp リロケーションレコードは、 .Fa relocation_info 構造体で規定される標準フォーマットです: .Bd -literal -offset indent struct relocation_info { int r_address; unsigned int r_symbolnum : 24, r_pcrel : 1, r_length : 2, r_extern : 1, r_baserel : 1, r_jmptable : 1, r_relative : 1, r_copy : 1; }; .Ed .Pp .Fa relocation_info 構造体の各フィールドは以下のように用いられます: .Bl -tag -width r_symbolnum .It Fa r_address リンクエディットが必要なポインタのバイトオフセットを保持します。 テキストリロケーションオフセットはテキストセグメントの先頭から、 データリロケーションオフセットはデータセグメントの先頭から、 それぞれ計算します。 リンクエディタはこのオフセットにストアされている値を加算し、 このリロケーションレコードを用いて計算した新しい値に変換します。 .It Fa r_symbolnum シンボルテーブルにおけるシンボル構造体の順序番号 ( バイトオフセット .Em ではありません ) を保持します。 リンクエディタはこのシンボルの絶対アドレスを解決した後、 そのアドレスをリロケーション中のポインタに加算します。 (もし .Fa r_extern ビットが立っていなければ状況は異なります。以下を参照して下さい。) .It Fa r_pcrel もしこのビットが立っていれば、 -リンクエディタは、PC 相対アドレシングを用いる機械語命令の一部である +リンクエディタは、PC 相対アドレッシングを用いる機械語命令の一部である ポインタを更新しているものと仮定します。 リロケートされるポインタのアドレスは、実行中のプログラムがそれを用いる際に、 暗黙的にその値に加算されます。 .It Fa r_length ポインタの長さを 2 を底とする対数で表したバイト単位で保持します。 1 バイトディスプレースメントなら 0、 2 バイトディスプレースメントなら 1、 4 バイトディスプレースメントなら 2 となります。 .It Fa r_extern このリロケーションが外部参照を必要としている場合にセットされます。 リンクエディタは、シンボルアドレスを用いてこのポインタを 更新しなければなりません。 .Fa r_extern ビットが立っていない場合、そのリロケーションは .Sq ローカル です。 リンクエディタは、シンボル値の変化ではなく、 各セグメントのロードアドレスの変化に応じてポインタを更新します (ただし、 .Fa r_baserel もセットされている場合(後述)は除きます)。 この場合、 .Fa r_symbolnum フィールドの内容は .Fa n_type の値となります(後述)。 リンクエディタは、この型フィールドから、 リロケートされるポインタがどのセグメントを指しているのかの情報を得ます。 .It Fa r_baserel セットされている場合、 .Fa r_symbolnum フィールドで指定される場合のように、 このシンボルはグローバルオフセットテーブルへのオフセットに リロケートされます。 実行時に、グローバルオフセットテーブル中の、このオフセット位置にある エントリが、シンボルのアドレスを持つようにセットされます。 .It Fa r_jmptable セットされている場合、 .Fa r_symbolnum フィールドで指定される場合のように、 このシンボルはプロシージャリンケージテーブルへのオフセットに リロケートされます。 .It Fa r_relative セットされている場合、 このリロケーションは、このオブジェクトファイルが含まれる イメージの (実行時の) ロードアドレスとの相対値となります。 この種のリロケーションは共有オブジェクトにのみ現れます。 .It Fa r_copy セットされている場合、 このリロケーションレコードは、 その内容を .Fa r_address で指定される位置にコピーしなければならないシンボルを示します。 コピー処理は、実行時のリンクエディタによって、 共有オブジェクト中の適切なデータアイテムから行われます。 .El .Pp シンボルは名前とアドレスを対応づけます (より一般的には、 文字列を値へ対応づけます)。 リンクエディタがアドレスを調節するため、 絶対値が割り当てられるまではシンボルを用いてアドレスを表現しなければ なりません。 シンボルは、シンボルテーブル中の固定長のレコードと、 文字列テーブル中の可変長の名前から成ります。 シンボルテーブルは .Fa nlist 構造体の配列です: .Bd -literal -offset indent struct nlist { union { char *n_name; long n_strx; } n_un; unsigned char n_type; char n_other; short n_desc; unsigned long n_value; }; .Ed .Pp これらのフィールドは以下のように用いられます: .Bl -tag -width n_un.n_strx .It Fa n_un.n_strx このシンボルの名前の、文字列テーブルでのバイトオフセットを保持します。 プログラムが .Xr nlist 3 関数を用いてシンボルテーブルをアクセスする場合、 このフィールドは、 メモリ中の文字列へのポインタである .Fa n_un.n_name フィールドに置き換えられます。 .It Fa n_type リンクエディタがシンボル値の更新方法を決定するのに用いられます。 .Fa n_type フィールドは、ビットマスクを用いた 3 つのサブフィールドに分けられます。 リンクエディタは .Dv N_EXT ビットがセットされているシンボルを .Sq external シンボルとして扱い、他のバイナリファイルからの参照を許可します。 .Dv N_TYPE マスクはリンクエディタに必要なビットを選択します: .Bl -tag -width N_TEXT .It Dv N_UNDF 未定義シンボル。 リンクエディタは、他のバイナリファイル中の同じ名前の外部シンボルを探して このシンボルの絶対値を決定しなければなりません。 特別な場合として、もし .Fa n_value フィールドが非 0 で、リンクエディット対象のどのバイナリファイルも このシンボルを定義していない場合、 リンクエディタはこのシンボルが bss セグメント中のアドレスであるとみなし、 .Fa n_value に等しいバイト数の領域を予約します。 もしこのシンボルが複数のバイナリファイル中で未定義となっており、 それらのバイナリファイル間でサイズが異なっている場合、 リンクエディタはそれらのサイズの最大値を選びます。 .It Dv N_ABS 絶対シンボル。 リンクエディタは絶対シンボルは更新しません。 .It Dv N_TEXT テキストシンボル。 このシンボルの値はテキストアドレスであり、 リンクエディタはバイナリファイルをマージする際、その値を更新します。 .It Dv N_DATA データシンボル。 .Dv N_TEXT と同様ですが、データアドレスを表します。 テキストシンボル及びデータシンボルの値は、 ファイルオフセットではなくアドレスです。 ファイルオフセットを復元するために、 対応するセクションの先頭のロードアドレスを見つけてそれを減じ、 次にそのセクションのオフセットを加算する必要があります。 .It Dv N_BSS bss シンボル。テキストシンボルやデータシンボルと似ていますが、 バイナリファイル中に対応するオフセットを持ちません。 .It Dv N_FN ファイル名シンボル。 バイナリファイルをマージする際、 リンクエディタはバイナリファイルの他のシンボルの前にこのシンボルを 挿入します。 このシンボルの名前はリンクエディタに与えられたファイル名で、 シンボルの値はバイナリファイルから得た先頭テキストアドレスです。 ファイル名シンボルはリンクエディト処理やロード処理には不要ですが、 デバッガには有用な情報です。 .El .Pp .Dv N_STAB マスクは .Xr gdb 1 等のシンボリックデバッガに必要なビットを選択します。 その値は .Xr stab 5 に示されています。 .It Fa n_other このフィールドは、 .Fa n_type フィールドで決定されるセグメントに関して、 そのシンボルのロケーションとは独立した シンボルの特質に関する情報を提供します。 現在のところ、 .Fa n_other フィールドの下位 4 ビットは .Dv AUX_FUNC あるいは .Dv AUX_OBJECT のいずれかをとります .Po これらの定義については .Aq Pa link.h を参照してください .Pc 。 .Dv AUX_FUNC はシンボルと呼び出し可能な関数を関連づけ、他方、 .Dv AUX_OBJECT はシンボルとデータを関連づけます。 これらの関連はテキストセグメント/データセグメントの別とは無関係です。 このフィールドは、 .Xr ld 1 が動的な実行可能形式を構築するために使うことを意図しています。 .It Fa n_desc デバッガ用に予約されており、リンクエディタはこのフィールドを全く変更しません。 デバッガによって異なった目的に使われます。 .It Fa n_value シンボルの値を保持します。 テキスト, データおよび bss シンボルの場合、その値はアドレスです。 他のシンボル (例えばデバッガシンボル等) の場合、その値は様々です。 .El .Pp 文字列テーブルは .Em unsigned long 型の長さと、それに続くナル終端のシンボル文字列から成ります。 この長さは、テーブル全体のサイズをバイト単位で表します。 つまり、その最小値 (言い替えれば、最初の文字列のオフセット) は、 32 ビットマシンでは常に 4 となります。 .Sh 関連項目 .Xr as 1 , .Xr gdb 1 , .Xr ld 1 , .Xr brk 2 , .Xr execve 2 , .Xr nlist 3 , .Xr core 5 , .Xr link 5 , .Xr stab 5 .Sh 歴史 インクルードファイル .Pa a.out.h は .At v7 で登場しました。 .Sh バグ 必ずしも全てのサポート対象アーキテクチャが .Fa a_midmag フィールドを用いるわけではないので、 あるバイナリがどのようなアーキテクチャ上で実行されるのかは、 実際のマシンコードを調べない限り判定困難な可能性があります。 マシン ID があったとしても、 .Fa exec ヘッダのバイト順はマシン依存です。 .Pp .Em bss が何の略なのか、に関する合意はないようです。 .Pp 将来、新しいバイナリファイルフォーマットがサポートされるかも知れませんが、 その新フォーマットは恐らく、 あらゆるレベルでこの太古のフォーマットと互換性がないでしょう。 diff --git a/ja_JP.eucJP/man/man5/groff_font.5 b/ja_JP.eucJP/man/man5/groff_font.5 index 56d03f27b2..f99840f65f 100644 --- a/ja_JP.eucJP/man/man5/groff_font.5 +++ b/ja_JP.eucJP/man/man5/groff_font.5 @@ -1,370 +1,374 @@ -.\" jpman %Id: groff_font.5,v 1.3 1998/08/09 15:05:21 ryo2 Stab % -.\" FreeBSD jpman project 訳語表 -.\" WORD: machine unit マシン単位 -.\" WORD: scaled point スケールドポイント (troff.1 の記述にあわせた) -.\" WORD: font position フォント位置 (troff.1 の記述にあわせた) -.\" WORD: mount マウント .ig \"-*- nroff -*- Copyright (C) 1989-1995 Free Software Foundation, Inc. Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this manual 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. Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions, except that this permission notice may be included in translations approved by the Free Software Foundation instead of in the original English. .. .de TQ .br .ns .TP \\$1 .. .\" Like TP, but if specified indent is more than half .\" the current line-length - indent, use the default indent. .de Tp .ie \\n(.$=0:((0\\$1)*2u>(\\n(.lu-\\n(.iu)) .TP .el .TP "\\$1" .. +.\" +.\" Original Revision: 1.1.1.1 +.\" jpman %Id: groff_font.5,v 1.3 1998/08/09 15:05:21 ryo2 Stab % +.\" +.\" FreeBSD jpman project 訳語表 +.\" WORD: machine unit マシン単位 +.\" WORD: scaled point スケールドポイント (troff.1 の記述にあわせた) +.\" WORD: font position フォント位置 (troff.1 の記述にあわせた) +.\" WORD: mount マウント +.\" .TH GROFF_FONT 5 "7 September 1996" "Groff Version 1.11" .SH 名称 groff_font \- groff のデバイスとフォントを記述するファイルの書式 .SH 解説 groff のフォントの書式は ditroff のフォントの書式に対し、 ほぼスーパセットになっています。 ditroff のフォントの書式とは異なり、 関連したバイナリ書式はありません。 .I name というデバイス用のフォントファイルは .BI dev name というディレクトリに納められます。 ファイルには 2 つの種類があります: それは .B DESC と呼ばれるデバイス記述ファイルと、各フォント .I F ごとに存在する .IR F と呼ばれるフォントファイルです。 これらはテキストファイルであり、関連したバイナリ書式の ファイルはありません。 .SS DESC ファイルの書式 DESC ファイルは以下の形式の行を含むことができます: .TP .BI res\ n 1 インチあたりのマシン単位は .I n です。 .TP .BI hor\ n 水平解像度は .I n マシン単位です。 .TP .BI vert\ n 垂直解像度は .I n マシン単位です。 .TP .BI sizescale\ n ポイント数への倍率を指定します。デフォルトの値は 1 です。1 .I スケールドポイント は、1 .RI ポイント/ n と等しくなります。 .B unitwidth コマンドと .B sizes コマンドへの引数はスケールドポイントで指定されます。 .TP .BI unitwidth\ n ポイントサイズが .I n スケールドポイントのフォントに対して、 フォントファイル毎の数量をマシン単位で与えます。 .TP .B tcommand ポストプロセッサが .B t と .B u の出力コマンドを扱えることを表します。 .TP .BI sizes\ s1\ s2\|.\|.\|.\|sn\ 0 デバイスが .IR s1 , .IR s2 ,\|.\|.\|.\| sn スケールドポイントのフォントを持つことを表します。 大きさのリストは .BR 0 で終らなければなりません。 各 .BI s i は大きさの範囲 .IR m \- n でも指定できます。 リストは複数行にわたることも可能です。 .TP .BI styles\ S1\ S2\|.\|.\|.\|Sm 先頭 .I m 個のフォント位置が、スタイル .IR S1\|.\|.\|.\|Sm に関連づけられます。 .TP .BI fonts\ n\ F1\ F2\ F3\|.\|.\|.\|Fn フォント .I F1\|.\|.\|.\|Fn がフォント位置 .IR m +1,\|.\|.\|., m + n にマウントされます( .I m はスタイル数)。 このコマンドは複数行にわたることができます。 .B 0 というフォント名を指定すると、 対応するフォント位置にはフォントはマウントされません。 .TP .BI family\ fam デフォルトのフォントファミリは .IR fam です。 .TP .B charset この行とファイル内の以下に続く行はすべて無視されます。 これは下位互換性のために許されています。 .LP res, unitwidth, fonts, sizes の行は必須です。 他のコマンドは .B troff には無視されますが、デバイスに関する任意の情報を DESC ファイルに 入れておくためにポストプロセッサにより使われるかもしれません。 .SS フォントファイルの書式 フォントファイルには 2 つのセクションがあります。 最初のセクションは空白で区切られた単語が並んだ一連の行からなります。 行の最初の単語はキーで、以降の単語はそのキーに対する値となります。 .TP .BI name\ F フォントの名前は .IR F です。 .TP .BI spacewidth\ n 空白の通常の幅は .IR n です。 .TP .BI slant\ n フォントの文字が .I n 度傾斜していることを表します (正の値は進行方向を意味します)。 .TP .BI ligatures\ lig1\ lig2\|.\|.\|.\|lign\ \fR[ 0 \fR] 文字 .IR lig1 , .IR lig2 ,\|.\|.\|., lign は合字 (リガチャ; ligature) です。合字には .BR ff , .BR fi , .BR fl , .BR ffl が使用可能です。 下位互換性のために、合字のリストは .BR 0 で終ってもかまいません。 合字のリストは複数行にわたってはいけません。 .TP .B special フォントは .IR スペシャル です。これは現在のフォントに存在しない文字が要求された場合、 マウントされた全てのスペシャルフォントが検索されることを示しています。 .LP 他のコマンドは .B troff には無視されますが、フォントに関する任意の情報をフォントファイルに 入れておくためにポストプロセッサにより使われるかも知れません。 .LP 最初のセクションには .B # 文字ではじまるコメントを、行末まで入れることができます。 .LP 次のセクションには 1 つか 2 つのサブセクションが含まれます。 サブセクション .I charset は必須で、サブセクション .I kernpairs はオプションです。 これらのサブセクションは任意の順番で書くことができます。 各サブセクションは、サブセクション名のみからなる行から始まります。 .LP 単語 .B charset で charset サブセクションを開始します。 .B charset 行には一連の行が続きます。 各行は 1 文字の情報を与えます。 行は空白かタブにより区切られたいくつかのフィールドから成ります。 書式は .IP .I name metrics type code comment .LP で、 .I name は文字を識別します: .I name が単一の文字 .I c ならば、それは groff の入力文字 .I c を表します。 .BI \e c という形式で c が単一の文字なら、groff の入力文字 .BI \e c を表します。それ以外は groff の入力文字 .BI \e[ name ] を表します (2 文字の .I xx だとすると、 .BI \e( xx として入力されます) 。 groff は 8 ビット文字に対応していますが、いくつかのユーティリティでは 8 ビット文字を扱うのが困難です。 このような理由から、文字コードが .I n である単一の文字と等価な .BI char n という表記法が存在します。 例えば、 .B char163 は ISO Latin-1 で英国ポンド記号を表す文字コード 163 の文字と等価です。 .B \-\-\- という name は特別で、その文字に名前が無いことを示します。 そのような文字は .BR troff 中でエスケープシーケンス .B \eN によってのみ使われます。 .LP .I type フィールドは文字の種類を示します: .TP 1 は descender (ベースラインより下にはみ出した部分) を持つ 文字であることを表します。例えば p があてはまります。 .TP 2 は ascender (x の高さより上に出る部分) を持つ文字であることを表します。 例えば b があてはまります。 .TP 3 は ascender と descender の両方を持つ文字であることを表します。 例えば ( があてはまります。 .LP .I code フィールドはポストプロセッサが文字を印字するために使うコードを示します。 .B \eN というエスケープシーケンスを用いたこのコードを使って、groff に文字を 入力することもできます。 code はどんな整数でもかまいません。 .B 0 から始まると、8 進数として扱われ、 .B 0x や .B 0X で始まると 16 進数として扱われます。 .LP 行の code フィールド以降はすべて無視されます。 .LP .I metrics フィールドの形式はこのようになります: .IP .IR width [\fB, height [\fB, depth [\fB, italic_correction [\fB, \ left_italic_correction [\fB, subscript_correction ]]]]] .LP サブフィールド間には空白を入れてはいけません。 サブフィールドが存在しない場合は 0 として扱われます。 サブフィールドは全て 10 進数の整数で指定されます。 対応するバイナリフォーマットが存在しないので、 ditroff のようにこれらの値を .B char 型変数の範囲に合わせるという必要はありません。 サブフィールド .I width では文字の幅を指定します。 サブフィールド .I height では文字の高さを指定します (上が正)。 文字がベースラインよりも上にいかない場合、負の高さを持つとするのではなく 高さが 0 であるとします。 サブフィールド .I depth では文字の深さを指定します。これはベースラインから文字の一番下までの 長さです (下が正) 。 文字がベースラインより下に出ていない場合、負の深さを持つとするのではなく 深さが 0 であるとします。 サブフィールド .I italic_correction では直後にローマンフォントの文字が続く時に、文字の後に加えられる空白の 量を指定します。 サブフィールド .I left_italic_correction では直前にローマンフォントの文字がある時に、文字の前に加えられる空白の 量を指定します。 サブフィールド .I subscript_correction では添字 (subscript) を加える際に文字の後に加えられる空白の量を 指定します。 これはイタリック補正 (上記の italic_correction) よりは少なくなければ なりません。 .LP charset セクション内では、以下のような書式の行も可能です .IP .I name \fB" .LP これは .I name が前の行で言及した文字の別名であることを表します。 .LP kernpairs セクションは .B kernpairs という単語から始まります。このセクションは以下のような書式の 行からなります: .IP .I c1 c2 n .LP 文字 .I c1 が文字 .I c2 の次に現れる時には、それらの間の空白に .IR n を加えることを意味します。 kernpairs セクションのほとんどのエントリは .IR n に負の値を持つことになります。 .SH 関連ファイル .Tp \w'/usr/share/groff_font/devname/DESC'u+3n .BI /usr/share/groff_font/dev name /DESC デバイス .IR name 用のデバイス記述ファイル .TP .BI /usr/share/groff_font/dev name / F デバイス .IR name のフォント .I F 用のフォントファイル .SH 関連項目 .BR groff_out (5), .BR troff (1). diff --git a/ja_JP.eucJP/man/man5/groff_out.5 b/ja_JP.eucJP/man/man5/groff_out.5 index 741ce343f8..84905f97f2 100644 --- a/ja_JP.eucJP/man/man5/groff_out.5 +++ b/ja_JP.eucJP/man/man5/groff_out.5 @@ -1,226 +1,228 @@ '\" e .ig \"-*- nroff -*- Copyright (C) 1989-1995 Free Software Foundation, Inc. Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this manual 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. Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions, except that this permission notice may be included in translations approved by the Free Software Foundation instead of in the original English. .. .\" This man page must be preprocessed with eqn. .\" +.\" Original Revision: 1.1.1.1 .\" jpman %Id: groff_out.5,v 1.3 1998/08/09 15:06:44 ryo2 Stab % +.\" .\" FreeBSD jpman project 訳語表 .\" WORD: scaled point スケールドポイント (troff.1, groff_font.5 参照) .\" WORD: special character 特殊文字 (troff.1 参照) .\" WORD: special font スペシャルフォント (troff.1 参照) .\" WORD: machine unit マシン単位 (pic.1, groff_font.5 参照) .\" WORD: print 印字 .ie \n(.g .ds ic \/ .el .ds ic \^ .TH GROFF_OUT 5 "11 May 1998" "Groff Version 1.11" .SH 名称 groff_out \- groff の中間出力フォーマット .SH 解説 このマニュアルページは、GNU troff の出力フォーマットについて記述します。 GNU troff が使用する出力フォーマットは、 UNIX のデバイス非依存 troff が使用するものと似ています。 ここでは両者の差のみを記述します。 .LP .B s コマンドへの引数はスケールドポイントです (これは .IR ポイント/ n を意味します。 .I n は DESC ファイル中の .B sizescale コマンドへの引数です)。 .B x\ Height コマンドへの引数もまたスケールドポイントです。 .LP 最初の 3 つの出力コマンドは次のようになっていなければなりません: .IP .BI x\ T\ device .br .BI x\ res\ n\ h\ v .br .B x init .LP DESC ファイル中に .B tcommand 行が存在する場合には、troff は以下の 2 つのコマンドを使用します。 .TP .BI t xxx .I xxx は、任意の文字のシーケンスであり、空白または改行を終端とします; 最初の文字を現在位置で印字し、 現在の水平位置を最初の文字の幅だけ増加させます。 続けて、同じ処理を各文字に対して実行します。 文字の幅は、フォントファイルにおいて与えられたものを 現在のポイントサイズに応じて適切にスケーリングしてから、 水平解像度の倍数となるように丸めます。 特殊文字はこのコマンドでは印字できません。 .TP .BI u n\ xxx .B t コマンドと同様ですが、各文字の印字後に現在の水平位置に加えられるものが、 文字幅と .IR n の和である点が違います。 .LP 単一文字は 8 ビット目がセットされていてもかまわないことに注意してください。 これはフォント名や特殊文字名にもあてはまります。 .LP 文字名やフォント名は任意の長さが許されます; ドライバはこれらの長さが 2 文字のみであると仮定してはなりません。 .LP 文字を印字する時、その文字は常に現在のフォント中に存在します。 デバイス非依存 troff とは異なり、 ドライバがスペシャルフォントから文字を探す必要はありません。 .LP .B D 描画コマンドは拡張されています。 .B \-n オプション指定時には、GNU pic はこれらの拡張を使用しません。 .TP \fBDf \fIn\fR\*(ic\en オブジェクトの塗り潰しに使用する陰影を .IR n に設定します; ここで .I n は 0 から 1000 の範囲の整数である必要があり、0 は白の塗り潰しを、 1000 は黒の塗り潰しを、 そしてそれらの間の値は中間の陰影を意味します。 この設定は、円の塗り潰し、楕円の塗り潰し、多角形の塗り潰しにのみ適用されます。 デフォルトでは 1000 が使用されます。 塗り潰しオブジェクトが色を持つ場合、 その色でそのオブジェクトの下の全てのものを完全に隠します。 1000 より大きい値や 0 より小さい値も使用される可能性があります: これらの値を指定すると、 現在線やテキストで使用している陰影で塗り潰すことを意味します。 通常はこれは黒ですが、 ドライバによってはこれを変更する手段を提供するものがあります。 .TP \fBDC \fId\fR\*(ic\en 現在位置を最左端とする、半径 .I d の塗り潰された円を描画します。 .TP \fBDE \fIdx dy\fR\*(ic\en 現在位置を最左端とする、水平半径 .I dx 垂直半径 .I dy の塗り潰された楕円を描画します。 .EQ delim $$ .EN .TP \fBDp\fR $dx sub 1$ $dy sub 1$ $dx sub 2$ $dy sub 2$ $...$ $dx sub n$ $dy sub n$\en $i = 1 ,..., n+1$ に対し、 .I i 番目の頂点を現在位置 $+ sum from j=1 to i-1 ( dx sub j , dy sub j )$ とする多角形を描画します。 今のところ、GNU pic のみがこのコマンドを使用し、三角形と矩形を生成します。 .TP \fBDP\fR $dx sub 1$ $dy sub 1$ $dx sub 2$ $dy sub 2$ $...$ $dx sub n$ $dy sub n$\en .B Dp と同様ですが、多角形の外形のみの描画でなく、塗り潰しも行います。 .TP \fBDt \fIn\fR\*(ic\en 現在の線の太さを .I n マシン単位に設定します。 伝統的に UNIX troff ドライバは、 現在のポイントサイズに比例する線の太さを使用します; .B Dt コマンドが指定されない場合や、 .B Dt コマンドに負の .IR n が指定された場合は、ドライバはこの方法を使用する必要があります。 .I n に 0 を指定すると、利用可能な最小の線の太さを選択します。 .LP これらのコマンドを実行した後、 現在位置をどのように変更するのかという問題が生じます。 GNU pic が生成するコードはこの問題に依存しませんので、 これはたいして重要ではありません。 .IP \fB\eD\(fm\fIc\fR $x sub 1$ $y sub 1$ $x sub 2$ $y sub 2$ $...$ $x sub n$ $y sub n$\(fm .LP の形式、ただし .I c は .BR c , .BR e , .BR l , .BR a , .BR ~ のいずれでもない描画コマンドが与えられた時、 UNIX troff は各 $x sub i$ を水平の単位で扱い、$y sub i$ を垂直の単位で扱い、 描画されるオブジェクトの幅は $sum from i=1 to n x sub i$ であり、 高さは $sum from i=1 to n y sub i$ であると仮定します。 (高さに関する仮定は、このような .B D コマンドを \ew エスケープシーケンス中で使用した後、 .B st レジスタおよび .B sb レジスタを検査することにより確認できます。) この規則は全てのオリジナルの描画コマンドにあてはまりますが、 .B De は例外です。 .BR Df , .B Dt コマンドや、影響は少ないですが .B DE コマンドにおいて、たとえ醜い結果となったとしても、 GNU troff もまた互換性のためにこの規則に従います。 それゆえ、 .IP \fBD\fIc\fR $x sub 1$ $y sub 1$ $x sub 2$ $y sub 2$ $...$ $x sub n$ $y sub n$\en .LP の形式の .B D コマンドを実行した後は、現在位置は $( sum from i=1 to n x sub i , sum from i=1 to n y sub i )$ だけ増えます。 .LP .B x\ X コマンドへの引数に改行を含めることを許すという、 継続に関する取り決めがあります: .B x\ X コマンドへの引数を出力する時、GNU troff は 引数中の .B + 文字付きの改行を辿ります (通常は改行で引数全体が終端されます); それゆえ、 .B x\ X コマンドを含む行の次行が .B + で開始する場合には、 .B x\ X コマンドを含む行の終端となっている改行は .B x\ X コマンドへの引数の一部として扱い、 .B + を無視し、行の .B + に続く部分を .B x\ X コマンドに続く行の部分として扱います。 .SH "関連項目" .BR groff_font (5) diff --git a/ja_JP.eucJP/man/man7/groff_char.7 b/ja_JP.eucJP/man/man7/groff_char.7 index c7021757f4..820713bb89 100644 --- a/ja_JP.eucJP/man/man7/groff_char.7 +++ b/ja_JP.eucJP/man/man7/groff_char.7 @@ -1,572 +1,573 @@ .ig \"-*- nroff -*- Copyright (C) 1989-1995 Free Software Foundation, Inc. Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this manual 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. Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions, except that this permission notice may be included in translations approved by the Free Software Foundation instead of in the original English. .. +.\" Original Revision: 1.1.1.1 .\" jpman %Id: groff_char.7,v 1.3 1998/12/13 13:23:18 horikawa Stab % .\" .\" groff_char.7 の表記を尊重しました。 .\" JIS X 0212 の附属書 3 表 3「0208とJISX0221との対応表」を、 .\" 文字の名前の参考としてではなく、英単語と日本語の単語の対応の .\" 参考としました。 .\" Kazuo Horikawa 1998/12/06 .\" .\" For best results, print this with groff. .ds aq \(aq .ie !\n(.g .if '\(aq'' .ds aq \' .el \{\ . tr \(aq\(aq . if !c\(aq .ds aq \' .\} .if !\n(.g .ig .\" .Ac accented-char accent char .de Ac .char \\$1 \\$3\ \k[acc]\ \h'(u;-\w'\\$2'-\w'\\$3'/2+\\\\n[skw]+(\w'x'*0)-\\\\n[skw])'\ \v'(u;\w'x'*0+\\\\n[rst]+(\w'\\$3'*0)-\\\\n[rst])'\ \\$2\ \v'(u;\w'x'*0-\\\\n[rst]+(\w'\\$3'*0)+\\\\n[rst])'\ \h'|\\\\n[acc]u' .hcode \\$1\\$3 .. .Ac \(vc \(ah c .Ac \(vC \(ah C .TH GROFF_CHAR 7 "7 September 1996" "Groff Version 1.11" .SH 名称 groff_char \- groff の文字名 .SH 解説 このマニュアルページは標準的な .B groff への入力文字を列挙しています。 このマニュアルページを印刷 (表示) するのに用いられるデバイスで 利用可能な文字のみが表示されます。 .I "Input code" 欄は単一の文字で入力することのできる文字において用いられ、 その文字の ISO Latin-1 コードが書かれています。 .I "PostScript name\" 欄には出力文字の一般的な PostScript 名が示されます。 .LP ISO Latin-1 のブレイク無しスペース (8 進数で 0240) は .BR \e (スペース) と等価です。 他の ISO Latin-1 の文字はすべて、次の例外を除いてそのまま表示されます: .B \` は ` として表示され、 .B \*(aq は ' として表示されます。対応する ISO Latin-1 文字は .B \e` と .BR \e(aq で得られます。 ISO Latin-1 の `ハイフン、負符号' (コード 45) はハイフンとして 表示されます; 負符号は .BR \e- で得られます。 ISO Latin-1 の `チルド' (コード 126) は ~ として表示されます; より大きいグリフは .BR \e(ti で得られます。 ISO Latin-1 の `サーカムフレクスアクセント' (コード 94) は ^ として表示されます; より大きいグリフは .BR \e(ha で得られます。 .sp 'nf .nr Sp 3n .ta \w'\fIOutput'u+\n(Spu +\w'\fIInput'u+\n(Spu +\w'\fIInput'u+\n(Spu \ +\w'periodcentered'u+\n(Spu .de C0 .C \\$1 "" \\$1 \\$2 "\\$3" .. .de C1 .C \e\\$1 "" \\\\\\$1 \\$2 "\\$3" .. .de C2 .C \e(\\$1 "" \\(\\$1 \\$2 "\\$3" .. .if !\n(.g .ig .de CD .C \[char\\$1] \\$1 \[char\\$1] \\$2 "\\$3" .. .do fspecial CR R .\" input-name decimal-code output-name ps-name description .if !\n(.g .ig .de C .if c\\$3 \{\ .ft CR .tr `\`'\*(aq .in 0 .di CH \&\\$1 .br .di .in .ft .ds CH \\*(CH\ .tr ``'' \&\\$3\t\\*(CH\t\\$2\t\\$4\t\\$5 .\} .. .if \n(.g .ig .de C .if !'\\$3'' \{\ .ft B .tr `\`'\*(aq .in 0 .di CH \&\\$1 .br .di .in .ft .ds CH \\*(CH\ .tr ``'' \&\\$3\t\\*(CH\t\\$2\t\\$4\t\\$5 .\} .. .wh \n(nlu+\n(.tu-\n(.Vu Fo .de Fo 'bp .He .. .de He .ft I Output Input Input PostScript Notes name code name .ft .LP 'nf .. .He .CD 33 exclam .CD 34 quotedbl .CD 35 numbersign .CD 36 dollar .CD 37 percent .CD 38 ampersand .CD 39 quoteright .CD 40 parenleft .CD 41 parenright .CD 42 asterisk .CD 43 plus .CD 44 comma .CD 45 hyphen .CD 46 period .CD 47 slash .CD 58 colon .CD 59 semicolon .CD 60 less .CD 61 equal .CD 62 greater .CD 63 question .CD 64 at .CD 91 bracketleft .CD 92 backslash .CD 93 bracketright .CD 94 circumflex "サーカムフレクスアクセント" .CD 95 underscore .CD 96 quoteleft .CD 123 braceleft .CD 124 bar .CD 125 braceright .CD 126 tilde "チルドアクセント" .CD 161 exclamdown .CD 162 cent .CD 163 sterling .CD 164 currency .CD 165 yen .CD 166 brokenbar .CD 167 section .CD 168 dieresis .CD 169 copyright .CD 170 ordfeminine .CD 171 guillemotleft .CD 172 logicalnot .CD 173 hyphen .CD 174 registered .CD 175 macron .CD 176 degree .CD 177 plusminus .CD 178 twosuperior .CD 179 threesuperior .CD 180 acute "アキュートアクセント" .CD 181 mu .CD 182 paragraph .CD 183 periodcentered .CD 184 cedilla .CD 185 onesuperior .CD 186 ordmasculine .CD 187 guillemotright .CD 188 onequarter .CD 189 onehalf .CD 190 threequarters .CD 191 questiondown .CD 192 Agrave .CD 193 Aacute .CD 194 Acircumflex .CD 195 Atilde .CD 196 Adieresis .CD 197 Aring .CD 198 AE .CD 199 Ccedilla .CD 200 Egrave .CD 201 Eacute .CD 202 Ecircumflex .CD 203 Edieresis .CD 204 Igrave .CD 205 Iacute .CD 206 Icircumflex .CD 207 Idieresis .CD 208 Eth .CD 209 Ntilde .CD 210 Ograve .CD 211 Oacute .CD 212 Ocircumflex .CD 213 Otilde .CD 214 Odieresis .CD 215 multiply .CD 216 Oslash .CD 217 Ugrave .CD 218 Uacute .CD 219 Ucircumflex .CD 220 Udieresis .CD 221 Yacute .CD 222 Thorn .CD 223 germandbls .CD 224 agrave .CD 225 aacute .CD 226 acircumflex .CD 227 atilde .CD 228 adieresis .CD 229 aring .CD 230 ae .CD 231 ccedilla .CD 232 egrave .CD 233 eacute .CD 234 ecircumflex .CD 235 edieresis .CD 236 igrave .CD 237 iacute .CD 238 icircumflex .CD 239 idieresis .CD 240 eth .CD 241 ntilde .CD 242 ograve .CD 243 oacute .CD 244 ocircumflex .CD 245 otilde .CD 246 odieresis .CD 247 divide .CD 248 oslash .CD 249 ugrave .CD 250 uacute .CD 251 ucircumflex .CD 252 udieresis .CD 253 yacute .CD 254 thorn .CD 255 ydieresis .C2 -D Eth "アイスランド語の大文字 eth" .C2 Sd eth "アイスランド語の小文字 eth" .C2 TP Thorn "アイスランド語の大文字 thorn" .C2 Tp thorn "アイスランド語の小文字 thorn" .C2 AE AE .C2 ae ae .C2 OE OE .C2 oe oe .C2 IJ IJ "オランダ語の IJ リゲチャ" .C2 ij ij "オランダ語の ij リゲチャ" .C2 ss germandbls .C2 'A Aacute .C2 'C Cacute .C2 'E Eacute .C2 'I Iacute .C2 'O Oacute .C2 'U Uacute .C2 'a aacute .C2 'c cacute .C2 'e eacute .C2 'i iacute .C2 'o oacute .C2 'u uacute .C2 :A Adieresis .C2 :E Edieresis .C2 :I Idieresis .C2 :O Odieresis .C2 :U Udieresis .C2 :Y Ydieresis .C2 :a adieresis .C2 :e edieresis .C2 :i idieresis .C2 :o odieresis .C2 :u udieresis .C2 :y ydieresis .C2 ^A Acircumflex .C2 ^E Ecircumflex .C2 ^I Icircumflex .C2 ^O Ocircumflex .C2 ^U Ucircumflex .C2 ^a acircumflex .C2 ^e ecircumflex .C2 ^i icircumflex .C2 ^o ocircumflex .C2 ^u ucircumflex .C2 `A Agrave .C2 `E Egrave .C2 `I Igrave .C2 `O Ograve .C2 `U Ugrave .C2 `a agrave .C2 `e egrave .C2 `i igrave .C2 `o ograve .C2 `u ugrave .C2 ~A Atilde .C2 ~N Ntilde .C2 ~O Otilde .C2 ~a atilde .C2 ~n ntilde .C2 ~o otilde .C2 vS Scaron .C2 vs scaron .C2 vZ Zcaron .C2 vz zcaron .C2 ,C Ccedilla .C2 ,c ccedilla .C2 /L Lslash "ポーランド語のスラッシュ付き L" .C2 /l lslash "ポーランド語のスラッシュ付き l" .C2 /O Oslash .C2 /o oslash .C2 oA Aring .C2 oa aring .C2 a" hungarumlaut "ハンガリー語のウムラウト" .C2 a- macron "マクロン、バーアクセント" .C2 a. dotaccent "ドットアクセント" .C2 a^ circumflex "サーカムフレクスアクセント" .C2 aa acute "アキュートアクセント" .C2 ga grave "グレーブアクセント" .C2 ab breve "ブリーブアクセント" .C2 ac cedilla "セディラアクセント" .C2 ad dieresis "ウムラウト、ダイエレシス" .C2 ah caron "h\('a\(vcek アクセント" .C2 ao ring "リングもしくはサークルアクセント" .C2 a~ tilde "チルドアクセント" .C2 ho ogonek "フックもしくはオゴネクアクセント" .C2 .i dotlessi "点のない i" .C2 .j dotlessj "点のない j" .C2 Cs currency "スカンジナビアの通貨記号" .C2 Do dollar .C2 Po sterling .C2 Ye yen .C2 Fn florin .C2 ct cent .C2 Fo guillemotleft .C2 Fc guillemotright .C2 fo guilsinglleft .C2 fc guilsinglright .C2 r! exclamdown .C2 r? questiondown .C2 ff ff "ff のリゲチャ" .C2 fi fi "fi のリゲチャ" .C2 fl fl "fl のリゲチャ" .C2 Fi ffi "ffi のリゲチャ" .C2 Fl ffl "ffl のリゲチャ" .C2 OK \& "チェックマーク、照合のしるし" .C2 Of ordfeminine .C2 Om ordmasculine .C2 S1 onesuperior .C2 S2 twosuperior .C2 S3 threesuperior .C2 <- arrowleft .C2 -> arrowright .C2 <> arrowboth "左右向き矢印" .C2 da arrowdown .C2 ua arrowup .C2 va \& "上下向き矢印" .C2 lA arrowdblleft .C2 rA arrowdblright .C2 hA arrowdblboth "左右向き二重矢印" .C2 dA arrowdbldown .C2 uA arrowdblup .C2 vA \& "上下向き二重矢印" .C2 ba bar .C2 bb brokenbar .C2 br br "従来の troff で利用された箱罫線" .C2 ru ru "ベースラインの罫線" .C2 ul ul "従来の troff で利用された下線" .C2 bv bv "太い縦棒" .C2 bs bell .C2 ci circle .C2 bu bullet .C2 co copyright .C2 rg registered .C2 tm trademark .C2 dd daggerdbl "ダブルダガーサイン" .C2 dg dagger .C2 ps paragraph .C2 sc section .C2 de degree .C2 em emdash "全角 (M の幅の) ダッシュ" .C2 en endash "半角 (n の幅の) ダッシュ" .C2 %0 perthousand "千分の一記号、パーミル" .C2 12 onehalf .C2 14 onequarter .C2 34 threequarters .C2 f/ fraction "除算の棒" .C2 fm minute "フィート記号、プライム" .C2 sd second .C2 ha asciicircum "\s-2ASCII\s+2 サーカムフレクス、ハット、キャレット" .C2 ti asciitilde "\s-2ASCII\s0 チルド、大きいチルド" .C2 hy hyphen .C2 lB bracketleft .C2 rB bracketright .C2 lC braceleft .C2 rC braceright .C2 la angleleft "始め山括弧" .C2 ra angleright "終り山括弧" .C2 lh handleft .C2 rh handright .C2 Bq quotedblbase "低い二重コンマ引用符" .C2 bq quotesinglbase "低い一重コンマ引用符" .C2 lq quotedblleft .C2 rq quotedblright .C2 oq quoteleft "一重開き引用符" .C2 aq quotesingle "アポストロフィ引用符" .C2 or bar .C2 at at .C1 - minus "現在のフォントの負符号" .C2 sh numbersign .C2 sl slash .C2 rs backslash .C2 sq square .C2 3d therefore .C2 tf therefore .C2 *A Alpha .C2 *B Beta .C2 *C Xi .C2 *D Delta .C2 *E Epsilon .C2 *F Phi .C2 *G Gamma .C2 *H Theta .C2 *I Iota .C2 *K Kappa .C2 *L Lambda .C2 *M Mu .C2 *N Nu .C2 *O Omicron .C2 *P Pi .C2 *Q Psi .C2 *R Rho .C2 *S Sigma .C2 *T Tau .C2 *U Upsilon .C2 *W Omega .C2 *X Chi .C2 *Y Eta .C2 *Z Zeta .C2 *a alpha .C2 *b beta .C2 *c xi .C2 *d delta .C2 *e epsilon .C2 *f phi .C2 +f phi1 "ファイ変形" .C2 *g gamma .C2 *h theta .C2 +h theta1 "シータ変形" .C2 *i iota .C2 *k kappa .C2 *l lambda .C2 *m mu .C2 *n nu .C2 *o omicron .C2 *p pi .C2 +p omega1 "パイ変形、オメガ風" .C2 *q psi .C2 *r rho .C2 *s sigma .C2 *t tau .C2 *u upsilon .C2 *w omega .C2 *x chi .C2 *y eta .C2 *z zeta .C2 ts sigma1 "語尾小文字σ" .C2 ~~ approxequal .C2 ~= approxequal .C2 != notequal .C2 ** asteriskmath .C2 -+ minusplus .C2 +- plusminus .C2 <= lessequal .C2 == equivalence .C2 =~ congruent .C2 >= greaterequal .C2 AN logicaland .C2 OR logicalor .C2 no logicalnot .C2 te existential "存在する、存在限定子" .C2 fa universal "すべての、普通限定子" .C2 Ah aleph .C2 Im Ifraktur "フラクトゥール(ドイツ字体) I, 虚数" .C2 Re Rfraktur "フラクトゥール(ドイツ字体) R, 実数" .C2 if infinity .C2 md dotmath .C2 mo element .C2 mu multiply .C2 nb notsubset .C2 nc notpropersuperset .C2 ne notequivalence .C2 nm notelement .C2 pl plusmath "特殊フォントの正符号" .C2 eq equalmath "特殊フォントの等号" .C2 pt proportional .C2 pp perpendicular .C2 sb propersubset .C2 sp propersuperset .C2 ib reflexsubset .C2 ip reflexsuperset .C2 ap similar .C2 pd partialdiff "偏微分記号" .C2 c* circlemultiply "円の中に積の記号" .C2 c+ circleplus "円の中に正符号" .C2 ca intersection "共通集合、キャップ" .C2 cu union "合併集合、カップ" .C2 di divide "除算記号" .C2 -h hbar .C2 gr gradient .C2 es emptyset .C2 CL club "クラブスート" .C2 SP spade "スペードスート" .C2 HE heart "ハートスート" .C2 DI diamond "ダイヤスート" .C2 CR carriagereturn "改行の記号" .C2 st suchthat .C2 /_ angle .C2 << "" "非常に小さい" .C2 >> "" "非常に大きい" .C2 wp weierstrass "ヴァイヤーシュトラースの p" .C2 lz lozenge .C2 an arrowhorizex "水平な矢印の延長" .ch Fo .SH "関連項目" .BR groff (1) .br .IR "An extension to the troff character set for Europe" , E.G. Keizer, K.J. Simonsen, J. Akkerhuis, EUUG Newsletter, Volume 9, No. 2, Summer 1989 diff --git a/ja_JP.eucJP/man/man7/groff_mm.7 b/ja_JP.eucJP/man/man7/groff_mm.7 index 43574f5f2f..459b643758 100644 --- a/ja_JP.eucJP/man/man7/groff_mm.7 +++ b/ja_JP.eucJP/man/man7/groff_mm.7 @@ -1,1877 +1,1879 @@ .ig \"-*- nroff -*- Copyright (C) 1991-1995 Free Software Foundation, Inc. Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this manual 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. Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions, except that this permission notice may be included in translations approved by the Free Software Foundation instead of in the original English. .. .\" %Id: groff_mm.man,v 1.27 1995/04/24 05:37:46 jh Exp % +.\" +.\" Original Revision: 1.1.1.1 .\" jpman %Id: groff_mm.7,v 1.4 1999/01/20 17:21:55 kuma Stab % .\" .\" WORD: abstract アブストラクト .\" WORD: broken varable list 変則可変リスト .\" WORD: bullet list 黒丸リスト .\" WORD: diversion 転換 .\" WORD: exhibit エグジビット .\" WORD: front page 表題紙 .\" WORD: hanging indent ハンギングインデント .\" WORD: heading 見出し .\" WORD: justification 行末揃え .\" WORD: memorandum 覚書 .\" WORD: multiple columns 多段組 .\" WORD: nesting 入れ子 .\" WORD: overprint 重ね打ちする .\" WORD: released paper style 公開論文形式 .\" WORD: separate environment 隔離された環境 .\" WORD: static display スタティックディスプレイ .\" WORD: trap トラップ .\" WORD: variable item list 可変項目リスト .\" " .de T2 .ne 2v .ti -.5i \\$1 .sp -1 .. .de T3 .ne 2v .ti -.5i \fB\\$1\fP .br .. .TH GROFF_MM 7 "7 September 1996" "Groff Version 1.11" .SH 名称 groff_mm \- groff mm マクロ .SH 書式 .B groff .B \-mm [ .IR options .\|.\|. ] [ .IR files .\|.\|. ] .SH 解説 groff mm マクロは、DWB mm マクロと互換であるように設計されています。 しかし、以下のような制限があります: .TP .B \(bu ベル研の方言は実装されていません。 .TP .B \(bu マクロ OK 及び PM は実装されていません。 .TP .B \(bu groff mm は、カットマークをサポートしません。 .LP \fBmm\fP は、国際化されて設計されています。 そのため、各国語対応用の短いマクロファイルを書き換えて、 英語のテキストを好みの言語対応に置き換えることができます。 \fBmmse\fP を例として用いて下さい。 .LP 新しいマクロ: \fBAPP\fP, \fBAPPSK\fP, \fBB1\fP, \fBB2\fP, \fBBVL\fP, \fBCOVER\fP, \fBCOVEND\fP, \fBGETHN\fP, \fBGETPN\fP, \fBGETR\fP, \fBGETST\fP, \fBINITR\fP, \fBMC\fP, \fBMOVE\fP, \fBMULB\fP, \fBMULN\fP, \fBMULE\fP, \fBPGFORM\fP, \fBPGNH\fP, \fBSETR\fP, \fBTAB\fP, \fBVERBON\fP, \fBVERBOFF\fP .LP .\"########################################################################" .LP 大域変数の初期化後に \fBlocale\fP か \fIlang\fP\fB_locale\fP という ファイルを読み込みます。そのため、企業名などについてのマクロを ローカライズすることができます。 .sp このマニュアルでは、角括弧は省略可能な引数を表示するのに用いられます。 .sp 3 \fB数値レジスタと文字列変数\fP .br 多くのマクロを数値レジスタと文字列変数によって制御することが出来ます。 数値レジスタは、\fBnr\fP コマンドによって、代入が出来ます。 .br \fB\&.nr\fP \fIXXX\fP \fI[+-]n [i]\fP .br \fBXXX\fP はレジスタの名前です。 \fBn\fP は、代入されるべき値です。 そして、\fBi\fP は、自動増加に使われる増分値です。 もし現在値の増減が必要ならば、\fBn\fP には、 前に接頭辞として正符号や負符号をつけることが出来ます。 (自動増加や自動減少が行なわれるのは、 数値レジスタが正符号か負符号とともに用いられた時のことで、 \fB\en+[XXX]\fP か \fB\en-[XXX]\fP の様になります。) .sp 文字列変数は、\fBds\fP により定義されます。 .br \fB\&.ds\fP \fIYYY string\fP .br 文字列 \fIstring\fP としては、空白も含めて行末までの全部が割り当てられます。 \fIstring\fP の中の最初の空白は、二重引用符が前につけられなければなりません。 (テキストの中では、文字列変数は \fB\e*[YYY]\fP の様に使われます。) .sp \fB数値レジスタの特殊な形式\fP .br 数値レジスタというものは、形式が何も指定されなければ、 通常の数字で表示されます。 形式は \fBaf\fP によって設定出来ます: .br \fB\&.af\fP \fIR c\fP .br \fIR\fP はレジスタの名前で、\fIc\fP はその形式です。 .in +.5i .T2 \fB形式\fP \fB数の並び\fP .T2 1 0, 1, 2, 3, ... .T2 001 000, 001, 002, 003, ... .T2 i 0, i, ii, iii, iv, ... .T2 I 0, I, II, III, IV, ... .T2 a 0, a, b, c, ..., z, aa, ab, ... .T2 A 0, A, B, C, ..., Z, AA, AB, ... .in .LP \fBマクロ:\fP .TP .B "1C [1]" 1 段の段組処理を開始します。引数としての \fB1\fP はページ区切りを無効にします。 広い脚注を用いて下さい。 狭い脚注は重ね打ちになってしまうでしょう。 .TP .B 2C 2 段の段組処理を開始します。ページを 2 段のカラムに分割します。 これは、\fBMC\fP の特殊な場合になります。 関連項目は \fB1C\fP です。 .TP .B AE アブストラクトの終わり。 \&\fBAS\fP を参照して下さい。 .TP .B "AF [企業名]" 著者の帰属する企業。\fBAU\fP の前に呼び出さなければなりません。 関連項目は \fBCOVER\fP です。 .TP .B "AL [type [text-indent [1]]]" 自動番号付けリストを開始します。 項目は、1 から始められる番号を振付けられます。 引数の \fItype\fP は数字の型を制御します。 .in +.5i .T2 引数 数字の型 .T2 1 アラビア数字 (デフォルト) .T2 A 大文字 (A-Z) .T2 a 小文字 (a-z) .T2 I 大文字 ローマ数字 .T2 i 小文字 ローマ数字 .in \fItext-indent\fP はインデントを設定し、\fBLi\fP よりも優先されます。 3 番目の引数は、各項目の前に空行を出力することを禁止します。 .TP .B "APP name text" \fIname\fP という名前の付録を開始します。 \fIname\fP が "" である場合には、自動的に名前がつけられます。 名前が自動生成されるならば、付録は \fBA\fP から始まります。 数値変数の \fBAph\fP が非 0 であれば、新しいページに切り替えられ、 ヘッダも生成されます。 これが、デフォルトです。 付録は、常に「List of contents」の中に正しいページ番号とともに表示されます。 \fIAPPENDIX\fP という名前は、 文字列変数の \fBApp\fP に望みのテキストを代入すれば、 変えることが出来ます。 .TP .B "APPSK name pages text" \&\fB.APP\fP とほぼ同じです。異なるのは、\fIpages\fP だけ ページ番号が増加されることです。 これが使用されるのは、図表や、その他整形されていない文書が 付録に含まれる時です。 .TP .B "AS [arg [indent]]" アブストラクトの開始。 インデントは、「en (半角)」で指定されますが、単位付きの指定も可能です。 引数の \fIarg\fP は、アブストラクトが印字される場所を制御します。 .in +.5i .T2 arg 配置 .T2 0 公開論文形式 (\fBMT 4\fP) の場合には、 アブストラクトは第 1 ページと表紙に印字されます。 それ以外の場合には、表紙はなく、第 1 ページに印字されます。 .T2 1 アブストラクトは第 1 ページだけに印字されます (\fBMT 4\fP の場合のみ)。 .T2 2 アブストラクトは表紙だけに印字されます。 表紙の印字には、\fBCS\fP は必要ありません。 .in 外部へのレター形式 (\fBMT 5\fP) では、アブストラクトは全く印字されません。 \fIindent\fP は両側マージンのインデントを制御します。 指定されない時は、通常のテキストのインデントが用いられます。 .TP .B "AST [title]" アブストラクトの題目。 デフォルトでは、\fBABSTRACT\fP です。 アブストラクトのテキストの上にそのテキストを設定します。 .TP .B "AT title1 [title2 ...]" 著者の肩書。\fBAT\fP は、各々の \fBAU\fP のすぐ後に現れなければなりません。 肩書は、署名ブロックで名前の後に現れます。 .TP .B "AU name [initials [loc [dept [ext [room [arg [arg [arg]]]]]]]]" 著者に関する情報。これは、覚書や論文の著者を明示し、表紙や他の同様の場所に 印字されます。 \fBAU\fP は \fBTL\fP の前に現れなければなりません。 著者情報には、イニシャル (initials)、所在地 (loc)、部局 (dept)、 電話内線番号 (ext)、部屋番号又は部屋の名前 (room)、そして 3 個までの 追加引数を含めることが出来ます。 .TP .B "AV [name [1]]" 承認署名。これは、署名と日付を伴う承認欄を生成します。 変数 \fBLetapp\fP を用いて文字列 \fBAPPROVED:\fP を変更することが出来ます。 また、文字列 \fBDate\fP は \fBLetdate\fP に入っています。 .TP .B "B [bold-text [prev-font-text [bold...]]]" ボールド体の開始。引数の数には、制限はありません。 すべての引数は、1 個の単語に結合されます。 第 1 番目の引数、第 3 番目の引数、などなどがボールド体で印字されます。 .TP .B B1 (ms マクロのような) ボックスの開始。テキストの周りにボックスを描きます。 テキストは 1 文字インデントされ、右マージンは 1 文字短くなります。 .TP .B B2 ボックスの終了。\fBB1\fP によって開始されたボックスを終了します。 .TP .B BE ページ底部のブロックの終了。\fBBS\fP を参照して下さい。 .TP .B "BI [bold-text [italic-text [bold-text [...]]]]" ボールド体とイタリック体。 引数の数には制限はありません。 \fBB\fP を参照して下さい。 .TP .B "BL [text-indent [1]]" 黒丸リストの開始。これは、黒丸記号と空白を各リスト項目の先頭部分に配置する リストを初期化します (\fBLI\fP を参照して下さい)。 \fItext-indent\fP は、数値レジスタ \fBPi\fP により設定されるリスト項目の デフォルトのインデントより優先されます。 第 3 番目の引数により、各項目前の空行の出力が禁止されます。 .TP .B "BR [bold-text [roman-text [bold-text [...]]]]" ボールド体とローマン体。 引数の数には、制限はありません。 .TP .B BS ページ底部のブロック開始。これは、テキストブロックの定義を開始します。 このブロックは各ページの底部に印字されます。 ブロックは、\fBBE\fP で終了します。 .TP .B BVL 変則可変項目リスト。 この変則可変項目リストには、定まった項目記号がありません。 その代わり、各 \fBLI\fP に項目記号が定義されていると仮定しています。 テキストは必ず、項目記号の後の次の行で始まります。 \fItext-indent\fP によって、テキストのインデントが設定されます。 そして、\fImark-indent\fP によって、現在のインデントから項目記号までの 距離が設定されます。 第 3 番目の引数は、各項目の前に空行を出力することを禁止します。 .TP .B "COVER [arg]" \&\fBCOVER\fP は表紙の定義を開始します。 重要なことは、\fB.COVER\fP がすべての通常のテキストより前に現れることです。 \&\fB.COVER\fP では、\fIarg\fP を使用して、 /usr/share/tmac/mm/\fIarg\fP.cov というファイル名を構成します。 このお陰で、無制限な型の表紙を創作することが可能です。 \fIms.cov\fP の目的としていることは、\fBms\fP の表紙に似せることです。 \&\fB.COVER\fP では、表紙の定義の最後に \fB.COVEND\fP があることが要求されます。 必ず、以下のような順番で表紙マクロを使用して下さい: .nf \&.COVER \&.TL \&.AF \&.AU \&.AT \&.AS \&.AE \&.COVEND .fi しかし、必ず必要なのは \fB.TL\fP と \fB.AU\fP だけです。 .TP .B COVEND これによって表紙の記述は終了し、表紙が印字されます。 このマクロは、表紙ファイルに定義されています。 .TP .B DE ディスプレイ終了。これは、\fBDS\fP 又は \fBDF\fP で始まったテキストブロック やディスプレイを終了させます。 .TP .B "DF [format [fill [rindent]]]" フローティングディスプレイを開始します (入れ子にはできません)。 フローティングディスプレイは、キューに保存され、入れられた順番で印字されます。 \fIformat\fP, \fIfill\fP, \fIrindent\fP は、\fBDS\fP の場合と同じです。 フローティングディスプレイは、2 個の数値レジスタ \fBDe\fP と \fBDf\fP とによって制御されます。 .sp \fBDe レジスタ\fP .in +.5i .T2 0 特別なことは何もありません。これがデフォルトです。 .T2 1 ディスプレイが印字された後で改ページが行われます。 その為、1 ページに唯 1 つのディスプレイが出力されます。 その後ろには、テキストは何も続きません。 .in .sp \fBDf レジスタ\fP .in +.5i .T2 0 (セクション - ページの番号付けが有効な時は) 各セクションの最後に、 そうでない時には文書の最後に、ディスプレイは印字されます。 .T2 1 充分な余地があれば、新しいディスプレイは現在のページに印字されます。 そのような余地がなければ、ディスプレイは文書の最後に印字されます。 .T2 2 1 つのディスプレイが、各ページの、又は (多段組のモードでは) 各カラムの一番上に印字されます。 .T2 3 もし充分な余地があるならば、1 つのディプレイを印字します。 余地がなければ、ディスプレイは次ページか次のカラムの一番上に印字されます。 .T2 4 新しいページまたはカラムに、入るだけのディスプレイを印字します。 もし \fBDe\fP が 0 でなければ、各ディスプレイの間に改ページが出力されます。 .T2 5 現在のページをディスプレイで満たします。 そして、残りは、新しいページまたはカラムから始めます。(これがデフォルトです)。 もし \fBDe\fP が 0 でなければ、各ディスプレイの間に改ページが出力されます。 .in .TP .B "DL [text-indent [1]]" ダッシュリストの開始。これは、各項目がダッシュの後に印字されるリスト を開始します。 \fItext-indent\fP は、数値レジスタの \fBPi\fP によって設定される、リスト項目の デフォルトのインデントを変更します。 第 3 引数は各項目の前に空行を印字することを禁止します。 第 2 引数は印字されるべきリスト項目の間の空行を抑止します。 \fBLI\fP を参照して下さい。 .TP .B "DS [format [fill [rindent]]]" スタティックディスプレイの開始。これは、\fBDE\fP に至るまでテキストの収集を 始めます。 テキストは、ページ長より長くならない限り同一のページに印字されます。 \fBDS\fP は入れ子にできます。入れ子の深さには限度はありません (合理的な程度に :-)。 .sp \fBformat\fP .in +.5i .ds x " .\" " .T2 """""" インデントしません。 .T2 none インデントしません。 .T2 L インデントしません。 .T2 I 数値レジスタ \fBSi\fP の値だけテキストをインデントします。 .T2 C 各行を中央揃えします。 .T2 CB ディスプレイ全体をブロックとして中央揃えします。 .T2 R 行を右揃えします。 .T2 RB ディスプレイ全体をブロックとして右揃えします。 .in .sp L, I, C, CB は 0, 1, 2, 3 とも指定できます。これは互換性の理由からです。 (この機能は使用しないで下さい。:-) .sp \fBfill\fP .in +.5i .T2 """""" 行詰め機能を無効にします。 .T2 none 行詰め機能を無効にします。 .T2 N 行詰め機能を無効にします。 .T2 F 行詰め機能を有効にします。 .in .sp N と F は 0 と 1 とも指定できます。 通常は空行がディスプレイの前と後に印字されます。 数値レジスタ \fBDs\fP に 0 を設定すればこれを抑止出来ます。 \fIrindent\fP を指定すれば、行の長さをその量だけ短く出来ます。 .TP .B "EC [title [override [flag [refname]]]]" 数式の題目。 数式に題目をつけます。 引数に \fIoverride\fP を指定すれば、数式番号を変更出来ます。 .sp \fBflag\fP .in +.5i .T2 none \fIoverride\fP は、番号の接頭辞となります。 .T2 0 \fIoverride\fP は、番号の接頭辞となります。 .T2 1 \fIoverride\fP は、番号の接尾辞となります。 .T2 2 番号は \fIoverride\fP に置き換えられます。 .in \&\fBEC\fP は数値レジスタの \fBEc\fP をカウンタとして使います。 番号の形式を変更する為に、\fB.af\fP を用いることが出来ます。 もし数値レジスタの \fBOf\fP が 1 であれば、題目の形式として番号の後にはドット の代わりにダッシュが使われます。 文字列変数の \fBLe\fP は、数式のリスト (List of Equations) の題目を 制御します。 これは、デフォルトでは \fILIST OF EQUATIONS\fP です。 数値レジスタの \fBLiec\fP は単語 \fIEquation\fP を含みます。 この文字列は番号の前に印字されます。 もし \fIrefname\fP が指定されている時には、数式番号が \fB.SETR\fP によって 保存されます。これは、\fB.GETST\fP \fIrefname\fP によって取り出せます。 .TP .B "EF [arg]" 偶数ページのフッタ。これは偶数ページの通常のページフッタの すぐ上に印字されます。 \&\fBPF\fP を参照して下さい。 .TP .B "EH [arg]" 偶数ページのヘッダ。これは偶数ページの通常のページヘッダの すぐ下に印字されます。 \&\fBPH\fP を参照して下さい。 .TP .B EN 数式の終了。 \&\fBEQ\fP を参照して下さい。 .TP .B EOP ページ終了のユーザ定義マクロ。 フッタを通常通り印字する代わりにこのマクロが呼び出されます。 このマクロは何のトラップもアクティブではない状態の隔離された環境下で 実行されます。 \&\fBTP\fPを参照して下さい。 .sp \fBEOP に利用できる文字列変数\fP .in +.5i .T2 EOPf \&\fBPF\fP からの引数。 .T2 EOPef \&\fBEF\fP からの引数。 .T2 EOPof \&\fBOF\fP からの引数。 .in .TP .B "EQ [label]" 数式の開始。 \fBEQ\fP/\fBEN\fP は、\fBeqn\fP への入力として書かれた数式の区切り記号です。 \fBEQ\fP/\fBEN\fP は \fBDS\fP/\fBDE\fP ペアに囲まれていなければなりません。 しかし、\fBEQ\fP が \fBeqn\fP のオプションを設定するのに使用されているだけ ならば、その必要はありません。 数値レジスタの \fBEq\fP が 1 でなければ、\fIlabel\fP は数式の右マージンに 現れます。1 であれば、ラベルは左マージンに現れます。 .TP .B "EX [title [override [flag [refname]]]]" エグジビットの題目。 引数は \fBEC\fP と同じです。 \&\fBEX\fP は数値レジスタの \fBEx\fP をカウンタとして使用します。 文字列変数の \fBLx\fP は、エグジビットのリスト (List of Exhibits) の題名を 制御します。デフォルトでは \fILIST OF EXHIBITS\fP となります。 文字列変数の \fBLiex\fP は、\fIExhibit\fP という単語を含みます。 この単語は、番号の前に印字されます。 もし \fIrefname\fP が指定されたなら、その時はエグジビット番号は、 \&\fB.SETR\fP により保存されます。 これは、\fB.GETST\fP \fIrefname\fP によって取り出せます。 .TP .B "FC [closing]" レターや覚書の正式な締めくくりとして \fIYours\ very\ truly,\fP を印字します。 引数でデフォルトの文字列を置き換えられます。 デフォルトは文字列変数の \fBLetfc\fP に保管されています。 .TP .B "FD [arg [1]]" 脚注のデフォルトの形式。 これは、ハイフネーション (hyphen)、右マージン揃え (adjust)、 脚注テキストのインデント (indent) を制御します。 また、ラベル揃え (ljust) も変更することが出来ます。 .sp .ne 14v .nf .ta .5i +.8i +.8i +.8i +.8i \fBarg hyphen adjust indent ljust\fP 0 no yes yes left 1 yes yes yes left 2 no no yes left 3 yes no yes left 4 no yes no left 5 yes yes no left 6 no no no left 7 yes no no left 8 no yes yes right 9 yes yes yes right 10 no no yes right 11 yes no yes right .sp .fi .DT 11 以上の引数は、引数 0 と見なされます。mm でのデフォルトは 10 です。 .TP .B FE 脚注の終了。 .TP .B "FG [title [override [flag [refname]]]]" 図の題名。 もし \fIrefname\fP が指定されていれば、図番号が \&\fB.SETR\fP によって保存されます。 これは、\fB.GETST\fP \fIrefname\fP によって取り出せます。 .TP .B "FS [label]" 脚注の開始。 脚注は \fBFE\fP で閉じられます。 通常脚注は自動的に番号が付されます。 この番号は、文字列変数の \fBF\fP により利用出来ます。 ただ \fB\e*F\fP をテキストに加えて下さい。 また、\fIlabel\fP を引数として加えることで、 他の番号や名前を脚注に付けることが出来ます。 ディスプレイの中の脚注も今では可能です。 空行が、脚注同士を分離します。 行の高さは、数値レジスタの \fBFs\fP により制御されます。 デフォルト値は 1 です。 .TP .B "GETHN refname [varname]" これは、対応する \fBSETR\fP \fIrefname\fP が配置された場所の セクションヘッダ番号を挿入します。 これは、1 回目のパスでは、X.X.X. となっているでしょう。 \fBINITR\fP を参照して下さい。 もし varname が指定されているなら、\fBGETHN\fP により文字列変数の \&\fIvarname\fP にはセクションヘッダ番号が代入されます。 .TP .B "GETPN refname [varname]" これは、対応する \fBSETR\fP \fIrefname\fP が配置された場所の ページ番号を挿入します。 これは、1 回目のパスでは、9999 となっているでしょう。 \fBINITR\fP を参照して下さい。 もし varname が指定されているなら、\fBGETPN\fP により文字列変数の \&\fIvarname\fP にはページ番号が代入されます。 .TP .B "GETR refname" これは \fBGETHN\fP と \fBGETPN\fP をテキストの 「chapter」と「, page」とともに結合します。 文字列変数の \fIQrf\fP は参照用のテキストを保持しています: .ti +.5i \&.ds Qrf See chapter \e\e*[Qrfh], page \e\e*[Qrfp]. .br \fIQrf\fP は他の言語をサポートする為に変更出来ます。 文字列変数の \fIQrfh\fP と \fIQrfp\fP は \fBGETR\fP により設定され、 セクションヘッダ番号とページ番号が入っています。 .TP .B "GETST refname [varname]" これは、\fB.SETR\fP の第 2 引数により保存された文字列を挿入します。 これは、1 回目のパスでは、ダミー文字列になっているでしょう。 もし varname が指定されたなら、\fBGETST\fP により文字列変数の \fIvarname\fP には保存された文字列が代入されます。 \&\fBINITR\fP を参照して下さい。 .TP .B "H level [heading-text [heading-suffix]]" 番号付セクション見出し。 セクションヘッダには、1 から 7 迄のレベルを付けられます。 レベル 1 が、トップレベルです。 テキストは引数 \fIheading-text\fP に与えられます。 テキストに空白があるときには、二重引用符で括らなければなりません。 \fBheading-suffix\fP をセクションヘッダのテキスト中に付け加えられます。 しかし、これは目次には現れません。 通常、これは脚注マークや同様のものに用いられます。 \fIheading-suffix\fP の中では \fB\e*F\fP を使わないで下さい。 \fB\e*F\fP は機能しません。 手動のラベルを使わなければなりません。 \fBFS\fP を参照して下さい。 .sp \fBH\fP の直後に置かれた段落 \fBP\fP は、無視されます。 \fBH\fP によって、行送りとインデントの処理が行われます。 .sp \fB見出しの前のページ切替\fP .br 数値レジスタの \fBEj\fP は見出しの前のページ切替を制御します。 通常、レベル 1 の見出しは、その前に 2 行の空行が印字されます。 それより高次のレベルの見出しの前では 1 行になります。 数値レジスタの \fBEj\fP が 1 であれば、各第 1 レベルの見出しの前で 新しいページが排出されます。 レベルが \fBEj\fP の値以下の見出しすべてについて、ページが切り替えられます。 \fBEj\fP のデフォルト値は 0 です。 .sp \fB見出しの行区切りレベル\fP .br もし見出しレベルが数値レジスタ \fBHb\fP 以下ならば、 見出しの後で行区切りが起こります。 このレジスタのデフォルト値は 2 です。 .sp \fB見出しの空白行のレベル\fP .br もし見出しレベルが数値レジスタ \fBHs\fP 以下ならば、 空白行が見出しの後に挿入されます。 このレジスタのデフォルト値は 2 です。 .sp もしレベルが \fBHb\fP と \fBHs\fP の両方より大きければ、 テキストは同じ行で見出しの後に続きます。 .sp \fB見出しの後のインデント\fP .br 見出しの後のテキストのインデントは数値レジスタの \fBHi\fP によって制御 されます。 このレジスタのデフォルト値は 0 です。 .sp \fBHi\fP .in +.5i .T2 0 テキストは左揃えされます。 .T2 1 テキストのインデントは数値レジスタの \fBPt\fP の値に従います。 \fBP\fP を参照して下さい。 .T2 2 テキストは見出しの最初の単語に合わせて 1 列に並べられます。 .in .sp \fBセクション見出しの中央揃え\fP .br そのレベルが数値レジスタの \fBHc\fP 以下で、かつ \fBHb\fP 又は \fBHs\fP 以下の見出しはすべて、中央揃えされます。 .sp \fB見出しのフォントの管理\fP .br 各見出しレベルでのフォントは文字列変数の \fBHF\fP を用いて管理されています。 この変数には各レベルでのフォント番号又はフォント名が入れられています。 デフォルトでは \fB2\ 2\ 2\ 2\ 2\ 2\ 2\fP (すべての見出しでイタリック体) です。 これをまた \fBI\ I\ I\ I\ I\ I\ I\fP の様にも書くことが出来ます。 省略された値はすべて 1 であると推定されます。 .sp \fBポイントサイズの管理\fP .br 各見出しのポイントサイズは、フォントが \fBHF\fP により管理されるのと同様な 方法で、文字列変数の \fBHP\fP により管理されます。 値 0 は、デフォルトのポイントサイズを選びます。 デフォルト値は \fB0\ 0\ 0\ 0\ 0\ 0\ 0\fP です。 ポイントサイズのみが変わるのであって、垂直サイズではないことに気をつけて下さい。 垂直サイズはユーザにより指定されるマクロ \fBHX\fP や \fBHZ\fP によって 管理出来ます。 .sp \fB見出しカウンタ\fP .br \fBH1\fP から \fBH7\fP 迄の名前をつけられた 7 個の数値レジスタには 各見出しレベルのカウンタが入れられています。 それらの値はアラビア数字を使って印字されます。 これらは、マクロの \fBHM\fP (下記参照) によって変えられます。 すべての記号は印字する前に結合されます。 これを避ける為には、数値レジスタの \fBHt\fP に 1 を代入して下さい。 これにより各見出しでは、現在の見出しのカウンタだけが印字されます。 .sp \fB自動の目次\fP .br その見出しレベルが数値レジスタ \fBCl\fP 以下の見出しは、 目次に印字する為に保存されます。 このレジスタのデフォルト値は 2 です。 .sp \fB見出しの特別な管理、ユーザ定義マクロ\fP .br これから記述するマクロは垂直行送り、フォント、または他の機能を細かく 制御するためにユーザが定義できるものです。 引数 \fIlevel\fP は \fBH\fP へのレベル引数です。 しかし、これは番号無し見出しでは 0 になります (\fBHU\fP を参照して下さい)。 引数 \fIrlevel\fP は実際のレベルです。 これは、番号無し見出しの為に数値レジスタ \fBHu\fP に代入されます。 引数 \fIheading-text\fP は、\fBH\fP や \fBHU\fP へのテキスト引数です。 .sp \fBHX\ \fP\fIlevel\ rlevel\ heading-text\fP .br \fBHX\fP は見出し印字の直前に呼び出されます。 以下のようなレジスタが \fBHX\fP に利用出来ます。 \fBHX\fP は\ \fB}0\fP, \fB}2\fP, \fB;3\fP を変更してもかまいません。 .in +.5i .T3 "文字列変数\ }0" もし \fIrlevel\fP が非 0 であれば、見出し記号と 2 個のスペースが入っています。 そうでなければ、空です。 .T3 "数値レジスタ\ ;0" 見出しの後のテキストの位置が入っています。 0 はテキストが見出しと同じ行に続くはずであることを意味しています。 1 はテキストの前で行区切りが生ずるはずであることを意味します。 2 は空白行が見出しとテキストを分離するはずであることを 意味します。 .T3 "文字列変数\ }2" 数値レジスタの \fB;0\fP が 0 であれば、このレジスタには 2 個のスペースが入ります。 これは見出しからテキストを分離するのに使われます。 もし \fB;0\fP が非 0 であれば、この文字列変数は空です。 .T3 "数値レジスタ\ ;3" これには見出しの後に必要とされる行送りが単位付きで入ります。 デフォルトは 2v です。 これらは番号付け (\fB}0\fP)、垂直行送り (\fB}2\fP)、そして 見出しの後に必要な行送りの様な事柄を変更するのに使用出来ます。 .in .sp \fBHY\ \fP\fIdlevel\ rlevel\ heading-text\fP .br \fBHY\fP はサイズとフォントの計算の後に呼び出されます。 インデントを変更するために使えるでしょう。 .sp \fBHZ\ \fP\fIdlevel\ rlevel\ heading-text\fP .br \fBHZ\fP は見出しの印字の後で、\fBH\fP 又は \fBHU\fP が終了する直前に、 呼ばれます。 これは、セクション見出しに従いページヘッダを変更する為に使うことが出来るでしょう。 .TP .B "HC [hyphenation-character]" ハイフネーション文字を設定します。 デフォルト文字は \e% です。 引数なしで呼ばれた時はデフォルトに再設定します。 ファイルの初めで数値レジスタ \fBHy\fP に 0 を設定すれば、 ハイフネーションを止められます。 .TP .B "HM [arg1 [arg2 [... [arg7]]]]" 見出し記号の型。 見出しカウンタを印字する為の記号の型を制御します。 デフォルトは、すべてのレベルで 1 です。 .sp \fB引数\fP .in +.5i .T2 1 アラビア数字 .T2 0001 ひとつ以上の 0 を先行したアラビア数字 .T2 A 大文字のアルファベット .T2 a 小文字のアルファベット .T2 I 大文字のローマ数字 .T2 i 小文字のローマ数字 .T2 \fI空\fP アラビア数字 .in .TP .B "HU heading-text" 番号無しセクションヘッダ。 数値レジスタ \fBHu\fP をレベルとして \fBHU\fP は \fBH\fP の様に振舞います。 \fBH\fP を参照して下さい。 .TP .B "HX dlevel rlevel heading-text" ユーザ定義見出しの終了。 セクションヘッダを印字する直前に呼ばれます。 \fBH\fP を参照して下さい。 .TP .B "HY dlevel rlevel heading-text" ユーザ定義見出しの終了。 セクションヘッダを印字する直前に呼ばれます。 \fBH\fP を参照して下さい。 .TP .B "HZ dlevel rlevel heading-text" ユーザ定義見出しの終了。 セクションヘッダを印字した直後に呼ばれます。 \fBH\fP を参照して下さい。 .TP .B "I [italic-text [prev-font-text [italic-text [...]]]]" イタリック体です。 これは引数なしで呼ばれたならフォントをイタリック体に変更します。 引数が 1 個の場合には、これはその単語をイタリック体にします。 引数が 2 個の場合には、これは引数を連結し最初の単語にイタリック体を 設定し、2 番目に以前のままのフォントを設定します。 引数の数には制限はありません。 すべての引数は、連結されます。 .TP .B "IA [addressee-name [title]]" これはレター形式の受信人 (addressee) と受信人のアドレスの記述を 開始します。 いくつかの名前が空の \fBIA\fP/\fBIE\fP ペアにより指定できます。 しかし、アドレスは唯 1 つになります。 \fBLT\fP を参照して下さい。 .TP .B "IB [italic-text [bold-text [italic-text [...]]]]" イタリック体とボールド体。 偶数番目の引数がイタリック体で、奇数番目がボールド体で印字されます。 \fBI\fP を参照して下さい。 .TP .B IE \fPIA\fP の後でアドレス指定を終了します。 .TP .B "INITR filename" 参照用マクロの初期化。 参照はファイル \fIfilename.tmp\fP と \fIfilename.qrf\fP とに 書き込まれます。 これには、groff の 2 回のパスが必要とされます。 最初のパスでは参照を探し、2 回目のパスではそれらを取り込みます。 \fBINITR\fP は数回使用できます。 しかし、有効なのは最初に出現した \fBINITR\fP だけです。 関連項目は、\fBSETR\fP, \fBGETPN\fP, \fBGETHN\fP です。 .TP .B "IR [italic-text [roman-text [italic-text [...]]]]" イタリック体とローマン体。 偶数番目の引数がイタリック体で、奇数番目がローマン体で印字されます。 \fBI\fP を参照して下さい。 .TP .B "LB text-indent mark-indent pad type [mark [LI-space [LB-space]]]" リスト開始マクロ。 これはすべてのリストに使用される共通のマクロです。 引数 \fItext-indent\fP は現在のインデントからテキストをインデントする スペースの数です。 .sp \fIpad\fP と \fImark-indent\fP は項目記号を置く所を指定します。 項目記号は記号領域に配置されます。 \fImark-indent\fP はこの領域の前のスペースの数を設定します。 これは通常 0 です。 記号領域はテキストが始まる所で終ります。 それでもなお、テキストの開始は \fItext-indent\fP により決められます。 .sp もし \fIpad\fP が 0 ならば、項目記号は記号領域の中で左揃えされます。 もし\fIpad\fP が 0 より大きければ、その時は \fImark-indent\fP は無視されます。 そして項目記号はテキストに対しスペースで \fIpad\fP 個分前に配置されます。 この操作では、項目記号は右揃えされます。 .sp もし \fItype\fP が 0 であれば、リストはハンギングインデントになるか、又は 引数の \fImark\fP が与えられていたら、文字列の \fImark\fP が項目記号 となります。 .sp もし \fItype\fP が 0 より大きければ、自動的な番号付けが行われます。 更に \fImark\fP が空であれば、番号はアラビア数字となります。 この時、\fImark\fP には \fB1\fP, \fBA\fP, \fBa\fP, \fBI\fP, \fBi\fP のどれでも指定出来ます。 .sp \fItype\fP には項目記号を表示するため 6 通りの可能な方法の中から 1 つを選べます。 .br \fBtype\fP .in +.6i .T2 1 x. .T2 2 x) .T2 3 (x) .T2 4 [x] .T2 5 .T2 6 {x} .in .sp リストの各項目の前には \fILI-space\fP 行の空行が置かれます。 デフォルトは 1 です。 .sp \fBLB\fP 自体には \fILB-space\fP 行の空行が印字されます。 デフォルトは 0 です。 .TP .B "LC [list-level]" リスト状態情報のクリア。 これにより、アクティブなリストが \fIlist-level\fP レベル迄、 あるいは引数が指定されなかった場合には 0 レベル迄、すべて終了されます。 これはアクティブなリストをすべてクリアする為に \fBH\fP により使用されます。 .TP .B "LE [1]" リストの終了。 これは現在のリストを終了します。 \fBLE\fP はもし引数が指定されているなら、空行を印字します。 .TP .B "LI [mark [1]]" リスト項目。 これは、リストの各項目の最初に置かれます。 引数がないときは、\fBLI\fP は、現在のリスト形式で決められる項目記号 を印字します。 \fBLI\fP に引数を 1 つ指定すると、それが代わりの項目記号として使用されます。 \fBLI\fP に引数を 2 つ指定すれば、\fImark\fP は現在の項目記号の接頭辞と なります。 長さ 0 の \fImark\fP を指定した場合はハンギングインデントが生成されます。 .sp 通常はリスト項目の前に空行が印字されます。 この挙動は数値レジスタの \fBLs\fP を用いて制御出来ます。 \fBLs\fP 以下のすべてのリストレベルで先行する行送りが生成されます。 このレジスタのデフォルト値は 99 です。 (リストの入れ子は無制限です。:-) .sp インデントは数値レジスタの \fBLi\fP によって変えられます。 デフォルトは 6 です。 .sp すべてのリストはリスト初期化マクロの \fBLB\fP により始まります。 しかし、リストを使いやすくする為に予め定義されているリストの形式が 7 つあります。 これらの形式はすべて異なったデフォルト値で \fBLB\fP を呼び出します。 .in +.5i .T2 \fBAL\fP 自動増加番号リスト .T2 \fBML\fP 記号付きリスト .T2 \fBVL\fP 可変項目リスト .T2 \fBBL\fP 黒丸リスト .T2 \fBDL\fP ダッシュリスト .T2 \fBRL\fP 参照文献リスト .T2 \fBBVL\fP 変則可変リスト .in これらのリストについてはこのマニュアルのほかの所に記述してあります。 関連項目は \fBLB\fP です。 .TP .B "LT [arg]" 引数に基づいて 4 つの異なった形式の内の 1 つでレターを構成します。 関連項目は \fB内部\fP セクションです。 .in +.5i .T2 \fBarg 形式\fP .T2 BL ブロック形式。日付欄、返送先アドレス、著者のアドレスと結辞は行の中央から始まります。 他のすべての行は左マージンから始まります。 .T2 SB 半ブロック形式。ブロック形式と同様ですが、 各段落の最初の行が スペース 5 個分インデントされます。 .T2 FB 全ブロック形式。すべての行が左マージンから始まります。 .T2 SP 簡易形式。全ブロック形式とほぼ同じです。 主題と著者の身分がすべて大文字で印字されます。 .in .TP .B "LO type [arg]" レターのオプションを指定します (\fB.LT\fP を参照して下さい)。 以下に示すのは標準のオプションです。 .in +.5i .T2 CN 機密表記。 日付欄の下 2 行目に \fBRESTRICTED\fP を印字します。 引数で \fBRESTRICTED\fP を置き換えられます。 関連項目は文字列変数 \fBLetCN\fP です。 .T2 RN 参考文献表記。 \fBIn reference to:\fP と引数を日付欄の 2 行下に印字します。 関連項目は文字列変数 \fBLetRN\fP です。 .T2 AT 気付。\fBATTENTION:\fP と引数を内部アドレスの下に印字します。 関連項目は文字列変数 \fBLetAT\fP です。 .T2 SA 頭辞。\fBTo Whom It May Concern:\fP か、又はもし指定されていた時には引数を 印字します。 頭辞は内部アドレスの 2 行下に印字されます。 関連項目は \fBLetSA\fP です。 .T2 SJ 主題欄。 レター形式 \fBSP\fP 以外の場合には、主題として \fBSUBJECT:\fP を 接頭辞として付けた引数を内部アドレスの 2 行下に印字します。 レター形式 \fBSP\fP の場合には、主題は接頭辞なしで、すべて大文字で印字されます。 関連項目は文字列変数の \fBLetSJ\fP です。 .in .TP .B "MC column-size [column-separation] " 多段組の開始。\fB1C\fP で通常状態に戻ります。 \fBMC\fP により現在の行長に入るだけの数のカラムが作られます。 \fIcolumn-size\fP は各カラムの幅で、\fIcolumn-separation\fP はカラムの間の 間隔です。 デフォルトの間隔は column-size/15 です。 関連項目は \fB1C\fP です。 .TP .B "ML mark [text-indent [1]]" 記号付きリストの開始。 各リスト項目の前に引数の \fImark\fP が印字されます。 \fItext-indent\fP の指定により、インデントが設定され、 \fBLi\fP よりも優先されます。 第 3 引数により各項目の前の空行の印字が禁止されます。 .TP .B "MT [arg [addressee]]" 覚書形式。 引数 \fIarg\fP は \fI/usr/share/tmac/mm/*.MT\fP というファイル名の部分です。 覚書の形式としては、\fI"string"\fP を含んで 0 から 5 迄サポートされています。 \fIaddressee\fP は単に、AT&T のマクロで使われる変数を設定するだけです。 .br \fBarg\fP .in +.5i .T2 0 通常の覚書。形式は印字されません .T2 1 \fIMEMORANDUM FOR FILE\fP が印字される覚書。 .T2 2 \fIPROGRAMMER'S NOTES\fP が印字される覚書。 .T2 3 \fIENGINEER'S NOTES\fP が印字される覚書。 .T2 4 公開論文形式。 .T2 5 外部へのレター形式。 .in 関連項目は、もっと柔軟な表題紙 \fBCOVER\fP/\fBCOVEND\fP です。 .TP .B "MOVE y-pos [x-pos [line-length]]" ある位置へ移動し、ページオフセットが \fIx-pos\fP に設定されます。 もし \fIline-length\fP が指定されなかったときは、現在の行長と 新しいページオフセットの差が使われます。 正常状態に戻るには、引数なしの \fBPGFORM\fP を使って下さい。 .TP .B "MULB cw1 space1 [cw2 space2 [cw3 ...]]" 特殊多段組モードの開始。 各カラムの幅を指定しなければなりません。 また、カラム間の間隔も指定しなければなりません。 最後のカラムの後には間隔指定は必要ありません。 MULB により転換が開始し、MULE により転換が終了しカラムが印字されます。 幅と間隔の単位は「n」です。 しかし、MULB は「c」や「i」のような通常の単位指定をすべて受け付けます。 MULB は、隔離された環境下で機能します。 .TP .B "MULN" 次のカラムの開始。 これは、カラムを切り替える唯一の方法です。 .TP .B "MULE" 多段組モードの終了とカラムの印字。 .TP .B "nP [type]" 2 段階のヘッダレベルを持つ番号付き段落の印字。 \&\fB.P\fP を参照して下さい。 .TP .B "NS [arg [1]]" 異なる形式の注釈を印字します。 引数は予め定義された形式の注釈の中から選びます。 もし 2 番目の引数が利用可能であれば、引数が注釈全体になります。 もし引数が予め定義されたものの中になければ、このマクロは \&\fBCopy (\fP\fIarg\fP\fB) to\fP のように印字されます。 さらに標準の注釈を加えることも可能です。 文字列変数の \fBLetns\fP と \fBLetnsdef\fP を参照して下さい。 .nf .in +.5i .T2 \fBarg 注釈\fP .T2 \fIなし\fP Copy To .T2 """"" .\" " Copy To .T2 1 Copy To (with att.) to .T2 2 Copy To (without att.) to .T2 3 Att. .T2 4 Atts. .T2 5 Enc. .T2 6 Encs. .T2 7 Under separate cover .T2 8 Letter to .T2 9 Memorandum to .T2 10 Copy (with atts.) to .T2 11 Copy (without atts.) to .T2 12 Abstract Only to .T2 13 Complete Memorandum to .T2 14 CC .in .fi .TP .B "ND new-date" 新しい日付。 現在の日付を置き換えます。 もし \fInew-date\fP が空文字列であれば、日付は印字されません。 .TP .B "OF [arg]" 奇数ページフッタ。 通常のフッタのすぐ上に 1 行印字されます。 \fBEF\fP と \fBPF\fP を参照して下さい。 .TP .B "OH [arg]" 奇数ページヘッダ。 通常のヘッダのすぐ下に 1 行印字されます。 \fBEH\fP と \fBPH\fP を参照して下さい。 .TP .B OP 後続するテキストが奇数ページの一番上に印字されることを確認します。 もし現在奇数ページの一番上にいるなら、白紙ページの出力はしません。 .TP .B "P [type]" 新しい段落の開始。 引数なしの \fBP\fP は、段落の一番最初の行も左揃えしたテキストを生成します。 これは、\fItype\fP に 0 を指定するのと同じです。 もし引数が 1 であれば、\fBP\fP に続くテキストの最初の行は 数値レジスタ \fBPi\fP に設定された数のスペースだけインデントされます。 この値は通常 5 です。 .sp \&\fBP\fP への引数として 1 を指定する代わりに、数値レジスタ \fBPt\fP に 段落の形式を設定することも可能です。 0 と 1 を設定することは、その値を \fBP\fP に与えることと同じになります。 値 2 により、すべての段落がインデントされます。 ただし見出し、リスト、ディスプレイの後は例外です。 .sp 段落間の間隔は数値レジスタの \fBPs\fP により制御され、 デフォルトでは 1 です(1 行の空白行)。 .TP .B "PGFORM [linelength [pagelength [pageoffset [1]]]]" 行長やページ長、ページオフセットを設定します。 このマクロは、レターヘッドや他のものの様に、特別の形式を生成するために 使用出来ます。 これは、通常はファイル中の最初のコマンドですが、必須ではありません。 \&\fBPGFORM\fP を引数なしで使用すれば、 \&\fBMOVE\fP の後ですべてを再初期化することが出来ます。 4 番目の引数が指定されなければ、行区切りが生成されます。 このマクロは、新しい行長とページ長を設定する一方、 最初のページにページ番号を出力するのを避けるために使用できます。 .TP .B PGNH 次のページにヘッダが印字されません。 レターや他の特殊なテキストのヘッダを取り除くために使われます。 最初のページのページヘッダを禁止するためには、いかなるテキストよりも前に このマクロが使われなければなりません。 .TP .B PE ピクチャの終り。 \&\fBpic\fP コマンドの為のピクチャを終了します。 \&\fBpic\fP コマンドのマニュアルを参照して下さい。 .TP .B "PF [arg]" ページフッタ。 \&\fBPF\fP は各ページの一番下に印字される行を設定します。 通常は空です。 引数の指定に関しては \fBPH\fP を参照して下さい。 .TP .B "PH [arg]" ページヘッダ。 各ページの一番上に 1 行印字されます。 引数は「'left-part'center-part'right-part'」のように 指定されなければなりません。 ここで、left-part, center-part, right-part はそれぞれ左揃え、中央揃え、右揃え に印字されます。 文字 \fB%\fP は現在のページ番号に変更されます。 デフォルトのページヘッダは「''- % -''」で、ページ番号が 2 個のダッシュ記号に はさまれます。 .TP .B PS ピクチャの開始 (pic コマンドより)。 \&\fB@TMAC@pic\fP の為のピクチャを開始します。 マニュアルを参照して下さい。 .TP .B PX ページヘッダのユーザ定義による出口マクロ。 \&\fIno-space\fP モードでページヘッダの印字の直後に \fBPX\fP は呼び出されます。 .TP .B R ローマン体。 ローマンフォントに戻ります。 関連項目は \fBI\fP です。 .TP .B "RB [roman-text [bold-text [roman-text [...]]]]" ローマン体とボールド体。 偶数番目の引数はローマン体で印字されます。 奇数番目は、ボールド体で印字されます。 \fBI\fP を参照して下さい。 .TP .B "RD [prompt [diversion [string]]]" 標準入力から転換や文字列変数に読み込みます。 テキストは \fIdiversion\fP という名前の転換に保存されます。 テキストを取り出すには、空行にドットの後に転換の名前を書いて下さい。 もし \fIstring\fP が指定されたなら文字列変数 \fIstring\fP も定義されます。 \&\fIdiversion\fP や \fIprompt\fP は空 ("") にすることが出来ます。 .TP .B RF 参考文献の終了。 参考文献の定義を終了し、通常の処理に復帰します。 \&\fBRS\fP を参照して下さい。 .TP .B "RI [roman-text [italic-text [roman-text [...]]]]" 偶数番目の引数はローマン体で印字されます。 奇数番目はイタリック体で印字されます。 \&\fBI\fP を参照して下さい。 .TP .B "RL [text-indent [1]]" 参考文献リストの開始。 各項目の前に角括弧で挟まれた自動増加の番号を付けたリストを開始します。 \&\fItext-indent\fP によって、デフォルトのインデントを変更出来ます。 .TP .B "RP [arg1 [arg2]]" 参考文献ページを生成します。 もし参考文献ページが文書のどこかで必要とされているなら \fBRP\fP を用いることが出来ます。 もし \fBTC\fP が目次の生成に使われているなら、このマクロは必要ありません。 その時は参考文献ページは自動的に印字されます。 .sp もし \fIarg1\fP が 1 ならば参考文献カウンタは再初期化されません。 .sp 引数 \fIarg2\fP により \fBRP\fP に対しページ切替が行われるか否か を指定出来ます。 .br \fBarg2\fP .in +.5i .T2 0 参考文献ページは別のページに印字されます。 これがデフォルトです。 .T2 1 リストの後でページを切り替えません。 .T2 2 ページの前でページを切り替えません。 .T2 3 リストの前後でページを切り替えません。 .in 参考文献の項目は空行で分離されます。 数値レジスタの \fBLs\fP を 0 に設定すれば、この空行は抑止出来ます。 .sp 文字列変数の \fBRp\fP には参考文献ページの題名が入っています。 この題名は通常は \fIREFERENCES\fP に設定されています。 .TP .B "RS [string-name]" \&\fBRS\fP により自動番号付けの参考文献の定義が開始します。 文字列変数の \fB\e*(Rf\fP を参考文献記号があるべき所に配置し、 参考文献を参考文献記号の後の次の改行のところから \fBRS\fP/\fBRF\fP の間に挟んで書いて下さい。 参考文献番号は数値レジスタの \fB:R\fP に保存されています。 もし \fIstring-name\fP が指定されたら、その名前の文字列変数が 定義され、現在の参考文献記号が入れられます。 文字列変数はその後テキスト中で \fB\e*[\fIstring-name\fP]\fP により 参照することが出来ます。 .TP .B "S [size [spacing]]" ポイントサイズと垂直行送りを設定します。 もし引数のどれかが「P」に等しければ、そのときは以前の値が用いられます。 「C」は現在の値を表し、「D」はデフォルトの値を表します。 もし、「+」又は「-」が値の前に用いられているなら、現在の値に加算又は減算 が行われます。 .TP .B "SA [arg]" 右マージン行末揃えが設定されます。 通常、行末揃えは機能しています。 引数がないか、または \fB0\fP であれば、行末揃えは機能を止められます。 引数が \fB1\fP であれば、行末揃えは機能を働かせます。 .TP .B "SETR refname [string]" 現在のヘッダ番号とページ番号を refname として記憶します。 もし \fIstring\fP が定義されていれば、\fIstring\fP を保存します。 \fIstring\fP は \fB.GETST\fP によって取り出されます。 \fBINITR\fP を参照して下さい。 .TP .B "SG [arg [1]]" 署名欄。 正式な結辞の後に著者(達)の名前を印字します。 引数は参照データに加えられて、最初か最後の著者の箇所に印字されます。 参照データとは \fB.AU\fP により指定される 所在地、部局、及びイニシャルです。 このデータは、最初の著者か、そうでなければ最後の著者の箇所に印字されます。 著者(達)が \fB.WA\fP/\fB.WE\fP で指定されていれば、 何の参照データも印字されません。 \&\fBLetter 内部\fP セクションを参照して下さい。 .TP .B "SK [pages]" ページ送りします。 もし \fIpages\fP が \fB0\fP であるか省略されている場合には、既に印字位置が ページの一番上でなければ、次のページ迄ページ送りされます。 また、\fIpages\fP がこれら以外であれば、\fIpages\fP のページを ページ送りします。 .TP .B "SM string1 [string2 [string3]]" 文字列を小さくします。 もし \fIstring2\fP が指定されたときには、\fIstring1\fP は小さくなり、\fIstring2\fP は通常の大きさで \fIstring1\fP に結合されます。 引数が 3 個あるときには、すべての引数が結合され、 \fIstring2\fP だけが小さくなります。 .TP .B "SP [lines]" 垂直に行送りします。 \fIlines\fP には \fI3i\fP や \fI8v\fP の様に、何らかの単位を付けられます。 1 行にいくつかの \fBSP\fP を記述しても、それらの合計の行数ではなく、 それらのうちで最大の行数の行送りを生成します。 またページの最初のテキスト行までは \fBSP\fP は無視されます。 これを避けるには、\fBSP\fP の前に \fB\e&\fP を加えて下さい。 .TP .B TAB タブ位置を 5n 毎に再設定します。 通常はそれまでの任意のタブ設定位置を再設定するのに使用されます。 .TP .B "TB [title [override [flag [refname]]]]" 表の題目。 もし \fIrefname\fP が指定されれば、表番号が \&\fB.SETR\fP によって保存されます。 これは、\fB.GETST\fP \fIrefname\fP によって取り出せます。 .TP .B "TC [slevel [spacing [tlevel [tab [h1 [h2 [h3 [h4 [h5]]]]]]]]]" 目次。 通常このマクロは文書の最後の行に置かれます。 このマクロは、数値レジスタの \fBCl\fP によって制御されるレベルまでの 見出しで構成される目次を生成します。 \fBCl\fP は見出しの保存を制御するのであって、\fBTC\fP には 何の関わりもないことに注意して下さい。 \fIslevel\fP 以下のレベルの見出しにはそれらの前に \fIspacing\fP だけの空行が生成されます。 \fItlevel\fP 以下のレベルの見出しには右揃えした対応するページ番号が置かれます。 これらの見出しのテキストとページ番号はドットか空白によって分離されます。 もし \fItab\fP が 0 より大きければ、空白が用いられます。 そうでなければ、ドットが用いられます。 その他の見出しには見出しテキストの末尾にページ番号が直接置かれます (\fI右揃えしない\fP)。 .sp 引数の残りのものは、目次の前に中央揃えで印字されます。 .sp もし \fBTC\fP が多くて 4 個の引数を伴って呼び出されるならば、ユーザ定義の マクロ \fBTX\fP と \fBTY\fP が使われます。 \fBTX\fP は \fICONTENTS\fP の印字の前に呼び出されます。 そして \fBTY\fP は \fICONTENTS\fP を印字する代わりに呼び出されます。 .sp 文字列変数 \fBCi\fP を各見出しレベルのインデントを制御するために 設定できます。 インデントには \fB.ds\ Ci\ .25i\ .5i\ .75i\ 1i\ 1i\fP の様に 単位を付けなければなりません。 インデントは通常各レベルの見出しの最大長によって制御されます。 .sp すべてのテキストは再定義が出来ます。 新しい文字列変数の \fILifg\fP, \fILitb\fP, \fILiex\fP, \fILiec\fP, \fILicon\fP にはそれぞれ 「Figure」、「TABLE」、「Exhibit」、「Equation」及び「CONTENTS」 が入っています。 これらの変数は、他の言語に再定義できます。 .TP .B TE 表の終了。 \&\fBTS\fP を参照して下さい。 .TP .B "TH [N]" 表のヘッダ。 \&\fBTS\fP を参照して下さい。 \&\fBTH\fP により表のヘッダが終了します。 もしページ区切りが起こればこのヘッダはもう一度印字されます。 引数の \fIN\fP はまだ実装されていません。 .TP .B TL [charging-case number(s) [filing-case number(s)]] 覚書の題名の開始。 次の \fBAU\fP 迄のすべてのテキストが題名に含められます。 \&\fIcharging-case number\fP と \fIfiling-case number\fP は 表題紙を処理するために保存されます。 .TP .B TM [num1 [num2 [...]]] \&\fB.MT\fP で使われる技術覚書番号。 無制限な数の引数を指定できます。 .TP .B TP ユーザが定義するページ最上部のマクロです。 このマクロは通常のページヘッダの代わりに呼ばれます。 ヘッダに対して完全な制御が出来ます。 ヘッダとフッタは隔離された環境下で印字されることに注意して下さい。 ただし、行長は保持されています。 .TP .B "TS [H]" 表の開始。 これは \fB@TMAC@tbl\fP に対する表の指定の開始です。 \&\fB@TMAC@tbl\fP については別個のマニュアルを参照して下さい。 \&\fBTS\fP は、\fBTE\fP により終了します。 引数 \fIH\fP は \fBm@TMAC@m\fP に対し表にはヘッダがあることを指定します。 \&\fBTH\fP を参照して下さい。 .TP .B TX ユーザが定義する目次の出口マクロ。 このマクロは \fBTC\fP が単語 \fICONTENTS\fP を印字する直前に呼び出されます。 \&\fBTC\fP を参照して下さい。 .TP .B TY ユーザが定義する目次の出口マクロ (「CONTENTS」は印字しません)。 \&\fICONTENTS\fP を印字する代わりにこのマクロが呼び出されます。 \&\fBTC\fP を参照して下さい。 .TP .B VERBON [flag [pointsize [font]]] クーリエフォントを用いた逐語的な出力の開始。 通常プログラムの印字のためです。 すべての文字が等しい幅を持ちます。 ポイントサイズは第 2 引数により変更できます。 font 引数を指定すればクーリエの代わりに他のフォントを使うことが出来ます。 \fIflag\fP によりいくつかの特別な機能を制御します。 この引数は必要とする機能をすべて合計したものとなります。 .in +.5i .T2 値 説明 .T2 1 エスケープ文字 (\e) を無効にします。 通常、これは冗長出力の間は働いています。 .T2 2 冗長テキストの前に空行を付加します。 .T2 4 冗長テキストの後に空行を付加します。 .T2 8 冗長テキストに行番号を振って印字します。 これにより各行の先頭に数字幅のスペースが 4 個付加されます。 文字列変数の \fBVerbnm\fP でより微妙な調節が可能です。 この変数には、\fBtroff\fP コマンドの \fB.nm\fP に指定できる すべての引数が入ります。 通常は「1」が指定されています。 .T2 16 冗長テキストを 5 個の「n」だけインデントします。 これは数値変数の \fBVerbin\fP (単位付き) により管理されます。 .in .TP .B VERBOFF 逐語的出力を終了させます。 .TP .B "VL text-indent [mark-indent [1]]" 可変項目リストには決まった項目記号はありません。 代わりに、このマクロでは各 \fBLI\fP に項目記号が指定されている と仮定しています。 \fItext-indent\fP によりテキストへのインデントが設定されます。 そして \fImark-indent\fP により現在のインデント位置から項目記号までの 距離が設定されます。 第 3 引数は各項目の前に空行が印字されることを禁止します。 .TP .B "VM [top [bottom]]" 垂直マージン。 .TP .B "WA [writer-name [title]]" 著者と著者のアドレスの記述を開始します。 空の \fBWA\fP/\fBWE\fP ペアでいくつかの名前を指定出来ます。 しかしアドレスについては 1 つだけです。 .TP .B WE \&\fP.WA\fP の後でアドレスの指定を終了します。 .TP .B "WC [format]" 脚注とディスプレイの幅の調整。 .in +.5i .T2 N デフォルトのモードを設定します。 \&\fB-WF\fP, \fB-FF\fP, \fB-WD\fP 及び \fBFB\fP です。 .T2 WF 広い脚注です。2 段組モードでもやはり広い脚注です。 .T2 -WF 通常の脚注の幅です。段組モードに従います。 .T2 FF すべての脚注は最初に出現した脚注と同じ幅になります。 .T2 -FF 通常の脚注です。幅は \fBWF\fP と \fB-WF\fP に従います。 .T2 WD 広いディスプレイです。2 段組モードでもやはり広いディスプレイです。 .T2 -WD 通常のディスプレイの幅です。段組モードに従います。 .T2 FB フローティングディスプレイが現在のページに印字された時には 行区切りを生成します。 .T2 -FB フローティングディスプレイは行区切を生成しません。 .in .sp 3 .LP .\"########################################################################" .LP .B "mm で用いられている文字列変数:" .TP .B App 単語「APPENDIX」が入れてある文字列変数です。 .TP .B "EM" em ダッシュ文字列です。 .TP .B HF 見出し用のフォントの目録です。 通常は「2 2 2 2 2 2 2」です。 数字ではないフォント名も使用できます。 .TP .B HP 見出し用のポイントサイズの目録です。 通常は「0 0 0 0 0 0 0」です。 これは、「10 10 10 10 10 10 10」と同じです。 .TP .B Lifg \fIFigure\fP を入れている文字列変数です。 .TP .B Litb \fITABLE\fP を入れている文字列変数です。 .TP .B Liex \fIExhibit\fP を入れている文字列変数です。 .TP .B Liec \&\fIEquation\fP を入れている文字列変数です。 .TP .B Licon \&\fICONTENTS\fP を入れている文字列変数です。 .TP .B Lf 「LIST OF FIGURES」を入れています。 .TP .B Lt 「LIST OF TABLES」を入れています。 .TP .B Lx 「LIST OF EXHIBITS」を入れています。 .TP .B Le 「LIST OF EQUATIONS」を入れています。 .TP .B Letfc 「Yours very truly,」を入れています。 \&\fB.FC\fP で使用されます。 .TP .B Letapp 「APPROVED:」を入れています。 \&\fB.AV\fP で使用されます。 .TP .B Letdate 「Date」を入れています。 \&\fB.AV\fP で使用されます。 .TP .B LetCN 「CONFIDENTIAL」を入れています。 \&\fB.LO CN\fP で使用されます。 .TP .B LetSA 「To Whom It May Concern:」を入れています。 \&\fB.LO SA\fP で使用されます。 .TP .B LetAT 「ATTENTION:」を入れています。 \&\fB.LO AT\fP で使用されます。 .TP .B LetSJ 「SUBJECT:」を入れています。 \&\fB.LO SJ\fP で使用されます。 .TP .B LetRN 「In reference to:」を入れています。 \&\fB.LO RN\fP で使用されます。 .TP .B Letns これは \fB.NS\fP で使用されている色々な文字列を入れている配列です。 これらは実は、\fBLetns!\fP を接頭辞とするいくつかの文字列変数です。 もし \fB.NS\fP への引数が (訳注: 予め定義されているものの中に) 存在しなければ、 その引数は \fBLetns!copy\fP を接頭辞とし \fBLetns!to\fP を接尾辞 として \fB()\fP の間に挟まれます。 \fBcopy\fP の後と \fBto\fP の前の空白に注意して下さい。 .nf .ta 1.5i \fB変数名 値\fP Letns!0 Copy to Letns!1 Copy (with att.) to Letns!2 Copy (without att.) to Letns!3 Att. Letns!4 Atts. Letns!5 Enc. Letns!6 Encs. Letns!7 Under separate cover Letns!8 Letter to Letns!9 Memorandum to Letns!10 Copy (with atts.) to Letns!11 Copy (without atts.) to Letns!12 Abstract Only to Letns!13 Complete Memorandum to Letns!14 CC Letns!copy Copy " Letns!to " to .fi .TP .B Letnsdef \&\fB.NS\fP に何も引数が指定されていないときに使用される標準的な注釈を 定義します。 デフォルトは \fB0\fP です。 .TP .B "MO1 - MO12" \&\fIJanuary\fP から \fIDecember\fP 迄が入っている文字列変数です。 .TP .B Qrf 「See chapter \e\e*[Qrfh], page \e\en[Qrfp].」 が入っている文字列変数です。 .TP .B Rp 「REFERENCES」が入っています。 .TP .B Tm 商標記号 \e(tm が入っています。 .TP .B Verbnm \&\fB.VERBON\fP で使用されている \fB.nm\fP への引数です。 デフォルト: \fB1\fP。 .\"-----------------------------------" .LP .B "mm で使用されている数値変数:" .TP .B Aph もしこの数値変数が非 0 であれば、 各々の新しい付録について新しい付録ページに印字します。 もし \fBAph\fP が 0 であれば何も出力されません。 しかし、「目次」には付録の見出し項目が常に含まれます。 .TP .B Cl 目次の見出し項目レベル。範囲は [0:7] です。 もし見出しレベルが Cl 以下であれば、目次の見出し項目は保存されます。 デフォルトは 2 です。 .TP .B Cp もし、Cp が 0 であれば、LIST OF XXXX の間で改ページを行います。 デフォルトは 0 です。 .TP .B D デバッグフラグ。 値が正値であれば、様々な段階のデバッグリストを出力します。 値が 1 であれば整形についての進行情報を提供します。 デフォルトは 0 です。 .TP .B De フローティングディスプレイの後で改ページが出力されます。 範囲は [0:1] です。デフォルトは 0 です。 .TP .B Df フローティングキープの出力形式。 範囲は [0:5] です。デフォルトは 5 です。 .TP .B Ds もし 1 であれば、ディスプレイの前後で行送りします。 範囲は [0:1] です。デフォルトは 1 です。 .TP .B Ej 改ページ。デフォルトは 0 です。 .TP .B Eq 数式ラベルの行揃え。 0 なら左揃え、1 なら右揃え。デフォルトは 0 です。 .TP .B Fs 脚注の行送り。デフォルトは 1 です。 .TP .B "H1-H7" 見出しカウンタ。 .TP .B Hb 見出し行区切りのレベル。 範囲は [0:7] です。デフォルトは 2 です。 .TP .B Hc 見出し中央揃えのレベル。 範囲は [0:7] です。デフォルトは 0 です。 .TP .B Hi 見出しの一時的なインデント。 範囲は [0:2] です。デフォルトは 1 です。 .br 0\ ->\ 0 インデント、左マージン .br 1\ ->\ 右へインデント、.P 1 と同様 .br 2\ ->\ 先行する見出しのテキスト部分に合わせてインデント .TP .B Hps 見出しに先立つ行送りのレベルについての数値変数です。 もし見出しレベルが \fBHps\fP 以下ならば、 セクション見出しには 1 行ではなく 2 行が先行します。 デフォルトは第 1 レベルだけです。 行送りの実際の量は変数 \fBHps1\fP と \fBHps2\fP により制御されます。 .TP .B Hps1 見出しレベルが \fBHps\fP より大きい場合に \fB.H\fP に先行する行数です。 値には単位を付けます。通常は 0.5v です。 .TP .B Hps2 見出しレベルが \fBHps\fP 以下の場合に \fB.H\fP に先行する行数です。 値には単位を付けます。通常は 1v です。 .TP .B Hs 見出し行送りレベル。 範囲は [0:7] です。デフォルトは 2 です。 .TP .B Ht 見出し番号の形式。デフォルトは 0 です。 0 -> 複合番号 (1.1.1 ...) .br 1 -> 単一番号。 .TP .B Hu 番号無し見出しのレベル。デフォルトは 2 です。 .TP .B Hy 本文のハイフネーション。デフォルトは 1 です。 .br 0\ ->\ ハイフネーションしない。 .br 1\ ->\ 14 でハイフネーションをする。 .TP .B Letwam \fB.WA\fP/\fB.WE\fP で使われる返送先アドレスの最大行数。 デフォルトは 14 です。 .TP .B "Lf, Lt, Lx, Le" それぞれ、図のリスト、表のリスト、エグジビットのリスト、数式のリストの 印字の許可 (1)、又は禁止 (0) です。 デフォルトは、Lf=1, Lt=1, Lx=1, Le=0 です。 .TP .B Li \&.AL で使われるリストのインデントです。 デフォルトは 6 です。 .TP .B Ls リストの行送り。 もし現在のリストレベルが Ls より大きければ、 リストの周囲には行送りは生じません。 デフォルトは 99 です。 .TP .B Lsp 空行の大きさ。通常は 0.5v です。 しかし、もし \fBn\fP が設定されていれば (\fB.nroff\fP)、1v となります。 .TP .B N 番号付けの形式。範囲は [0:5] です。デフォルトは 0 です。 .br 0\ ==\ (デフォルト) すべてのページで通常のヘッダ。 .br 1\ ==\ 最初のページのフッタはヘッダに置き換えられます。 ヘッダ部分には何もありません。 .br 2\ ==\ 最初のページのページヘッダは取り除かれます。 .br 3\ ==\ 「セクション - ページ」の番号付けが有効になります。 .br 4\ ==\ 最初のページのページヘッダは取り除かれます。 .br 5\ ==\ 「セクション - ページ」と「セクション - 図」の番号付けが有効になります。 関連項目は数値レジスタの Sectf と Sectp です。 .TP .B Np 番号付きの段落です。デフォルトは 0 です。 .br 0\ ==\ 番号を振りません。 .br 1\ ==\ 第 1 レベルの見出しに番号を振ります。 .TP .B Of 図、表、エグジビット、数式の題目の形式です。 デフォルトは 0 です。 .br 0\ =\ ". " .br 1\ =\ " - " .TP .B P 現在のページ番号です。 「セクション - ページ」の番号付けが有効でなければ、 通常は % と同じです。 .TP .B Pi 段落のインデントです。 デフォルトは 5 です。 .TP .B Pgps ヘッダとフッタのポイントサイズが、現在の設定に従うべきか、 あるいはヘッダとフッタが定義されたときにだけ変更されるべきかを制御します。 .in +.5i .ti -.5i .T2 値 説明 .T2 0 \fB.PH\fP, \fB.PF\fP, \fB.OH\fP, \fP.EH\fP, \fB.OF\fP, \fB.OE\fP が実行された時だけ、ポイントサイズが現在の設定に変更されます。 .T2 1 ポイントサイズは \fB.S\fP のたびに変更されます。 これがデフォルトです。 .in .TP .B Ps 段落の行送り。デフォルトは 1 です。 .TP .B Pt 段落の形式です。デフォルトは 0 です。 .br 0\ ==\ 左揃え .br 1\ ==\ インデントする .P .br 2\ ==\ .H, .DE, .LE の後以外では、インデントする .P .TP .B Sectf 「セクション - 図」を制御するフラグです。 非 0 値であれば有効になります。 関連項目はレジスタ N です。 .TP .B Sectp 「セクション - ページ番号」を制御するフラグです。 非 0 値であれば有効になります。 関連項目はレジスタ N です。 .TP .B Si ディスプレイのインデントです。デフォルトは 5 です。 .TP .B Verbin \&\fB.VERBON\fP のインデントです。デフォルトは 5n です。 .TP .B .mgm 常に 1 です。 .LP .SH 内部 レターマクロではレターの形式により決まる種々の副マクロが使用されています。 副マクロの名前にはレターの形式が接尾辞として入っています。 そのため他のレターの形式の定義を、 その国のマクロファイル内や、局所的な追加として行うことが可能です。 \&\fB.LT\fP は数値変数の \fBPt\fP と \fBPi\fP を 0 と 5 に設定します。 新しいレター形式については、 以下の文字列変数とマクロを定義しなければなりません: .TP \fBlet@init_\fP\fItype\fP このマクロは \fB.LT\fP によって直接呼び出されます。 変数や他の要素を初期化することになっています。 .TP \fBlet@head_\fP\fItype\fP このマクロはレターヘッドを印字します。 通常のページヘッダの代わりに呼び出されます。 \fBlet@header\fP という別名を取り除くことになっています。 そうしなければ、この別名はすべてのページにおいて呼び出されてしまいます。 .TP \fBlet@sg_\fP\fItype\ name\ title\ n\ flag\ [arg1\ [arg2\ [...]]]\fP レターの場合だけ、\fB.SG\fP がこのマクロを呼び出します。 覚書にはそれ独自の処理機構があります。 \fIname\fP と \fItitle\fP は \fB.WA\fP/\fB.WB\fP によって指定されます。 \fIn\fP はカウンタで、1 から max までです。 そして \fIflag\fP は、\fIname\fP が最後の名前であれば真の値になります。 \&\fB.SG\fP に対する他の引数が追加されます。 .TP \fBlet@fc_\fP\fItype\ closing\fP このマクロは \fB.FC\fP によって呼び出され、正式な結辞を引数とします。 .LP \&\fB.LO\fP が包括的なオプションマクロとして実装されています。 \&\fB.LO\fP には \fBLet\fP\fItype\fP という名前の文字列変数が 定義されていることが必要とされます。 ここで、\fItype\fP はレターの形式です。 そのとき、\fB.LO\fP は引数を文字列変数 \fBlet*lo-\fP\fItype\fP に 割り当てます。 .LP .\".SH バグ .\" " .SH 作者 .ie t J\(:orgen H\(:agg, Lund, Sweden .el Jorgen Hagg, Lund, Sweden .SH 関連ファイル .TP .B /usr/share/tmac/tmac.m .TP .B /usr/share/tmac/mm/*.cov .TP .B /usr/share/tmac/mm/*.MT .TP .B /usr/share/tmac/mm/locale .SH 関連項目 .BR groff (1), .BR troff (1), .BR tbl (1), .BR pic (1), .BR eqn (1) .br .BR mm (7) .BR mmse (7) .\" Translated by Tetsuro FURUYA , Dec., 1998. diff --git a/ja_JP.eucJP/man/man7/groff_mmse.7 b/ja_JP.eucJP/man/man7/groff_mmse.7 index 3ce7717a6f..edf234de0c 100644 --- a/ja_JP.eucJP/man/man7/groff_mmse.7 +++ b/ja_JP.eucJP/man/man7/groff_mmse.7 @@ -1,96 +1,97 @@ .\" -*- nroff -*- .\" %Id: groff_mmse.man,v 1.27 1995/04/24 05:37:46 jh Exp % -.\" jpman %Id: groff_mmse.7,v 1.3 1998/11/21 12:55:00 horikawa Stab % .\" Skrivet av Joergen Haegg, Lund, Sverige .\" +.\" Original Revision: 1.1.1.1 +.\" jpman %Id: groff_mmse.7,v 1.3 1998/11/21 12:55:00 horikawa Stab % .TH GROFF_MMSE 7 "7 September 1996" "Groff Version 1.11" .SH 名称 groff_mmse \- groff 用スウェーデン語版 mm マクロ .SH 書式 .B groff .B \-mmmse [ .IR flaggor .\|.\|. ] [ .IR filer .\|.\|. ] .SH 解説 .\"X DESCRIPTION .\"X mmse is a swedish flavor of mm. All internal texts are .\"X translated. An A4-page gets 13 cm long text lines, 3.5 cm .\"X left margin and 28.5 cm in height. There are support for .\"X swedish letter standard, both left and right adjusted text. .\"X .\"X The macro COVER can use se_ms as an argument which will .\"X produce a swedish front page. Look in groff_mm(7) for more .\"X details. \fBmmse\fP はスウェーデン語風の \fBmm\fP マクロです。すべての内部 テキストは翻訳されます。A4 ページでは、テキスト行の長さが 13 cm、 左マージンが 3.5 cm、高さが 28.5 cm です。スウェーデンのレター清書標準を、 右揃えと左揃えともにサポートしています。 .LP マクロ \fBCOVER\fP に引数 \fIse_ms\fP を使用することにより、 スウェーデン語のフロントページを生成することができます。詳細については \fBgroff_mm(7)\fP を参照して下さい。 .PP (訳注: 以下未訳) .SH 謝辞 Jorgen Hagg, Lund, Sweden 本和訳のために、解説部分の英訳をわざわざ用意下さいました。 .SH BREV Tillgangliga brevtyper: .TP .B ".LT SVV" Vansterstalld loptext med adressat i position T0 (vansterstallt). .TP .B ".LT SVH" Hoverstalld loptext med adressat i position T4 (passar forsterkuvert). .LP Foljande extra LO-variabler anvands. .TP .B ".LO DNAMN\fI namn\fP" Anger dokumentets namn. .TP .br .B ".LO MDAT\fI datum\fP" Mottagarens datum, anges under \fBErt datum:\fP (\fBLetMDAT\fP). .TP .br .B ".LO BIL\fI strang\fP" Anger bilaga, nummer eller strang med \fBBilaga\fP (\fBLetBIL\fP) som prefix. .TP .br .B ".LO KOMP\fI text\fP" Anger kompletteringsuppgift. .TP .br .B ".LO DBET\fI beteckning\fP" Anger dokumentbeteckning eller dokumentnummer. .TP .br .B ".LO BET\fI beteckning\fP" Anger beteckning (arendebeteckning i form av diarienummer eller liknande). .TP .br .B ".LO SIDOR\fI antal\fP" Anger totala antalet sidor och skrivs ut efter sidnumret inom parenteser. .LP Om makrot \fB.TP\fP ar definierat anropas det efter utskrift av brevhuvudet. Dar lagger man lampligen in postadress och annat som brevfot. .SH "SKRIVET AV" Jorgen Hagg, Lund, Sweden .SH FILER .B /usr/share/tmac/tmac.mmse .B /usr/share/tmac/mm/se_*.cov .SH "SE OCKSO" .BR groff (1), .BR troff (1), .BR tbl (1), .BR pic (1), .BR eqn (1) .br .BR mmm (7) diff --git a/ja_JP.eucJP/man/man7/groff_ms.7 b/ja_JP.eucJP/man/man7/groff_ms.7 index f2b8046c71..fc69fc944a 100644 --- a/ja_JP.eucJP/man/man7/groff_ms.7 +++ b/ja_JP.eucJP/man/man7/groff_ms.7 @@ -1,252 +1,253 @@ .ig \"-*- nroff -*- Copyright (C) 1989-1995 Free Software Foundation, Inc. Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this manual 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. Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions, except that this permission notice may be included in translations approved by the Free Software Foundation instead of in the original English. .. +.\" Original Revision: 1.1.1.1 .\" jpman %Id: groff_ms.7,v 1.3 1999/01/06 22:32:03 vanitas Stab % .TH GROFF_MS 7 "7 September 1996" "Groff Version 1.11" .SH 名称 groff_ms \- groff ms マクロ .SH 書式 .B groff .B \-ms [ .IR options .\|.\|. ] [ .IR files .\|.\|. ] .SH 解説 このマニュアルページは GNU バージョンの ms マクロの解説をします。 このマクロは、groff 文書整形システムの一部分です。 この groff ms マクロは、4.3 .SM BSD Unix ms マクロの文書化された機能と互換であるように設計されています。 しかし、次のような制限があります: .IP \(bu groff ms の内部は Unix ms の内部とは同じではありません。 したがって、Unix ms の実装の細部に依存する書式については、 機能しないとしてももっともでしょう。 .IP \(bu タイプライタ様のデバイスには、サポートはありません。 .IP \(bu バークレイ方言、特に、 .B TM や .B CT マクロは、実装されていません。 .IP \(bu groff ms では、 .\" ページ間の カットマーク .\" (.CM マクロ etc.) は提供しません。 .IP \(bu 重複した行送りは許されません (代わりに、大きな垂直行送りを使用して下さい)。 .IP \(bu groff ms は、互換モードでは機能しません (例えば、 .B \-C オプションなど)。 .IP \(bu エラー処理の方針については、groff ms は、沈黙したままエラーを無視 したりせず、エラーを検出してレポートします。 .LP groff ms マクロは、GNU troff の多くの機能を利用しています。 したがって、これは他のいかなる troff によっても使用できません。 .LP ベル研の方言は、 .SM BSD ms マクロにも groff ms マクロのいずれにも実装されていません。 .LP ある Unix ms の文書には、数値レジスタの .B CW と .B GW とが、それぞれカラム幅とガター幅 .\" (マルチカラム間の幅) を制御する為に 使用できると述べられています。 しかし、ここでは事実はそうではありません。 これらの数値レジスタは、groff ms では使用できません。 .LP リセットを引き起こすマクロはインデントを設定します。 インデントを変更するマクロはインデントを増減するのではなく、 むしろインデントを絶対的に設定します。 このことによって、独自のマクロを追加定義している文書に 問題が生じるかも知れません。 これを解決するには、 .B in リクエストを用いずに、代わりに .B RS や .B RE マクロを用いて下さい。 .LP 数値レジスタの .B GS は、groff ms マクロによって 1 に設定されます。 しかし、この数値レジスタは Unix ms マクロでは使用されていません。 このレジスタの目的は、 Unix ms か groff ms かのどちらによってフォーマットされているのかを確定する 必要のある文書によって利用されることです。 .LP 脚注はキープやディスプレイの中で安全に使用できるように実装されています。 自動的に番号を割り振る脚注をフローティングキープの中で使うことは、推奨 できません。 .B \e** と 対応する .BR .FS との間にもう一つの .B \e** があるようにすると安全です。 その際には、次のようなことだけが要求されています。 つまり、各 .B .FS は対応する .B \e** の後に出現することと、 対応する .B \e** の置かれる順番と同じ順番で .B .FS が出現することです。 .LP 文字列の .B \e*{ や .B \e*} は、上付き文字を開始したり終了したりするのに使うことができます。 .LP いくつかの Unix V10 ms の機能が実装されています。 .BR B , .BR I や .B BI マクロでは、第 3 番目の引数がオプションとして指定できます。 この引数は、現在のフォントで最初の引数の直前に印字されます。 .B B と同じようなマクロ .B CW があります。 これは、定幅フォントにします。 .LP 次の文字列は、groff ms マクロを英語以外の言語に適合させるために 再定義することができます。 .LP .nf .ta \w'REFERENCES'u+2n 文字列 デフォルト値 .sp .3v REFERENCES References ABSTRACT ABSTRACT TOC Table of Contents MONTH1 January MONTH2 February MONTH3 March MONTH4 April MONTH5 May MONTH6 June MONTH7 July MONTH8 August MONTH9 September MONTH10 October MONTH11 November MONTH12 December .fi .LP フォントファミリは、リセットで文字列 .BR FAM から取られて置き直されます。 初期化時にこの文字列が未定義であった場合は、現在のフォントファミリが 設定されます。 脚注のポイントサイズ、垂直行送り幅、そして段落間の行送り幅は、 数値レジスタの .BR FPS , .BR FVS , や .B FPD から取り出されます。 初期化時に、これらは、それぞれ .BR \en(PS-2 , .BR \en[FPS]+2 , および .B \en(PD/2 に等しく設定されます。 しかし、これらのレジスタのいずれかでも初期化前に定義されていれば、 そのレジスタは、これらの値に設定されません。 ( .B .hy リクエストによって設定される)ハイフネーションフラグは、 .B HY レジスタから取られて設定されます。 これが初期化時に定義されていない場合には、 .B HY レジスタは 14 に設定されます。 .LP 右詰めのディスプレイは .B ".DS R" および .BR .RD を用いて利用可能です。 .LP 次のような慣行がマクロ、文字列そして数値レジスタの名前に行なわれています。 groff ms マクロを使用する文書に利用出来る外部名は大文字と数字だけから なります。 内部的には、マクロはモジュールに分割されます。 ある一つのモジュールの中だけで使用される名前は、 .IB mudule * name\fR という形をしています。 定義されているモジュールの外部で使用される名前は、 .IB module @ name\fR という形をしています。 ある特別の環境に関わる名前は、 .IB environment : name\fR という形をしています。 これらの名前は、 .B par モジュールの中でのみ使われ、 .I name には、モジュールは接頭辞としてつきません。 組み合わされた名前で配列を実装するのに使われるものは、 .IB array ! index\fR という形をしています。 以上より groff ms では以下の名前を予約しています: .IP \(bu .BR * を含んでいる名前。 .IP \(bu .BR @ を含んでいる名前。 .IP \(bu .BR : を含んでいる名前。 .IP \(bu 大文字と数字だけを含んでいる名前。 .SH 関連ファイル .B /usr/share/tmac/tmac.s .SH 関連項目 .BR groff (1), .BR troff (1), .BR tbl (1), .BR pic (1), .BR eqn (1) .br .BR ms (7) .\" Translated by Tetsuro FURUYA on Nov 24, 1998. diff --git a/ja_JP.eucJP/man/man7/mdoc.7 b/ja_JP.eucJP/man/man7/mdoc.7 index 6a8856c323..8ff7bee5e2 100644 --- a/ja_JP.eucJP/man/man7/mdoc.7 +++ b/ja_JP.eucJP/man/man7/mdoc.7 @@ -1,413 +1,415 @@ .\" Copyright (c) 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. .\" .\" @(#)mdoc.7 8.2 (Berkeley) 12/30/93 -.\" %Id: mdoc.7,v 1.8 1998/12/04 00:51:17 jkoshy Exp % +.\" %Id: mdoc.7,v 1.8.2.1 1999/06/15 19:07:24 mpp Exp % .\" .\" jpman %Id: mdoc.7,v 1.5 1999/01/21 18:02:11 kuma Stab % .\" .\" WORD: display ディスプレイ (表示よりも展示に意味が近いと思います) .\" WORD: enclose 囲む、囲み .\" WORD: quote クォート .\" WORD: open (quote) 開き… .\" WORD: close (quote) 閉じ… .\" WORD: content macro コンテントマクロ .\" WORD: parse 解析する .Dd December 30, 1993 .Os .Dt MDOC 7 .Sh 名称 .Nm mdoc .Nd マクロパッケージ .Nm \-mdoc のクイックリファレンスガイド .Sh 書式 .Nm groff .Fl m Ns Ar doc .Ar files ... .Sh 解説 .Nm \-mdoc パッケージは、 .Bx マニュアルページをフォーマットするのに 使うコンテントベースおよび領域ベースのマクロのセットです。 マクロ名とその意味はクイックリファレンスとして以下に一覧が あります。パッケージを使う上での詳細な説明は、サンプルチュートリアルの .Xr mdoc.samples 7 を見て下さい。 .Pp マクロは 2 つのグループに分けて述べられています。1 つ目は 構造的なページレイアウトマクロと物理的な ページレイアウトマクロです。 2 つ目は、 マニュアル領域マクロと 一般テキスト領域マクロであり、 .Nm -\mdoc パッケージを他の .Xr troff フォーマットパッケージとは異なるものとしています。 .Sh ページ構造領域 .Ss タイトルマクロ 正しいマニュアルを生成するために、以下の 3 つのマクロがこの順序で 必要になります: .Bl -tag -width "xxxx.Os OPERATINGxSYSTEM [version/release]" -compact .It Li "\&.Dd " Ar "Month day, year" ドキュメントの日付 .It Li "\&.Dt " Ar "DOCUMENT_TITLE [section] [volume]" 大文字で記述したタイトル .It Li "\&.Os " Ar "OPERATING_SYSTEM [version/release]" オペレーティングシステム .Pq Tn BSD .El .Ss ページレイアウトマクロ セクションヘッダ、段落の区切り、リスト、ディスプレイです。 .Bl -tag -width flag -compact .It Li \&.Sh セクションヘッダ。 正しいヘッダを、登場する順に示します: -.Bl -tag -width "RETURN VALUES" -compact +.Bl -tag -width "IMPLEMENTATION NOTES" -compact .It Ar NAME 名称セクション。 .Ql \&.Nm もしくは .Ql \&.Fn と、 .Ql \&.Nd マクロを含む必要があります。 .It Ar SYNOPSIS 使用方法。 .It Ar DESCRIPTION 一般的な解説。オプションとパラメータを含む必要があります。 +.It Ar IMPLEMENTATION NOTES +実装に固有の情報。 .It Ar RETURN VALUES セクション 2, 3 の関数呼び出しが使用します。 .It Ar ENVIRONMENT 環境変数を記述します。 .It Ar FILES その題材に関係があるファイル群。 .It Ar EXAMPLES 例と助言。 .It Ar DIAGNOSTICS 普通、セクション 4 のデバイスインタフェースの診断のために使用します。 .It Ar ERRORS セクション 2, 3 で、エラーとシグナルを取り扱います。 .It Ar SEE ALSO クロスリファレンスと引用。 .It Ar STANDARDS 適用できるなら、規格準拠を示します。 .It Ar HISTORY 規格が適用できない場合、題材の歴史が必要です。 .It Ar BUGS 思い違い (gotcha) と警告。 .It Ar その他 著者の裁量によりカスタマイズしたヘッダを加えてもかまいません。 .El .It Li \&.Ss サブセクションヘッダ。 .It Li \&.Pp 段落区切り。 垂直な空白 (1 行) です。 .It Li \&.D1 (D-one) 1 個分のディスプレイ。 インデントして、1 テキスト行をディスプレイします。 .It Li \&.Dl (D-ell) 1 個分のリテラルディスプレイ。 インデントして、リテラルテキストを 1 行でディスプレイします。 .It Li \&.Bd ディスプレイブロックを開始します。 表示オプション: .Bl -tag -width "xoffset string " -compact .It Fl ragged 揃えない(行末はちぎれた状態)。 .It Fl filled 揃える。 .It Fl literal リテラルテキストやコード。 .It Fl file Ar name .Ar file を読み込み、ディスプレイします。 .It Fl offset Ar string オフセットディスプレイ。使用可能な .Ar string 値: .Bl -tag -width indent-two -compact .It Ar left ブロックの左寄せ (デフォルト)。 .It Ar center センタリングするように余白を取ります。 .It Ar indent 6 つの一定幅の空白 (タブ 1 個)。 .It Ar indent-two タブ 2 個。 .It Ar right 右から 2 インチのところにブロックを左寄せします。 .It Ar xx Ns Cm n .Ar xx には、 .No \&4 Ns Cm n から .No \&9\&9 Ns Cm n までの数字。 .It Ar Aa .Ar Aa は、呼び出し可能なマクロ名。 .It Ar string .Ar string の幅が使われます。 .El .El .It Li \&.Ed ディスプレイの終り (\&.Bd に対応)。 .It Li \&.Bl リストの開始。リストまたは列を作成します。 オプション: .Bl -tag -width flag -compact .It Ar リストの型 .Bl -column xbullet -compact .It Fl bullet Ta "丸印付きの項目リスト" .It Fl item Ta "ラベル無しのリスト" .It Fl enum Ta "番号付けしたリスト" .It Fl tag Ta "タグラベルのリスト" .It Fl diag Ta "診断リスト" .It Fl hang Ta "ぶら下がりラベルのリスト" .It Fl ohang Ta "突き出したラベルのリスト" .It Fl inset Ta "挿入または追い込みラベルのリスト" .El .It リストのパラメータ .Bl -tag -width "xcompact " -compact .It Fl offset (すべてのリスト) 上記の .Ql \&.Bd ディスプレイ開始を参照。 .It Fl width .Pf ( Fl tag と .Fl hang リストのみ) .Ql \&.Bd を参照。 .It Fl compact (すべてのリスト) 空行を作らない。 .El .El .It Li \&.El リストの終り。 .It Li \&.It リストの項目。 .El .Sh マニュアル領域と一般テキスト領域のマクロ マニュアル領域マクロと一般テキスト領域マクロは、 そのほとんどが呼び出し可能なマクロに解析されるという点で特別です。例えば: .Bl -tag -width ".Op Fl s Ar filex" -offset indent .It Li "\&.Op Fl s Ar file" は .Op Fl s Ar file を生成します。 .El .Pp この例では、オプション囲みマクロ .Ql \&.Op が解析されると、引数 .Ql s を操作する 呼び出し可能なコンテントマクロ .Ql \&Fl を呼び出してから、引数 .Ql file を操作する 呼び出し可能なコンテントマクロ .Ql \&Ar を呼びます。 呼び出し可能ではあるものの解析はされないマクロがありますし、 その逆もあります。 これらのマクロを、後述の .Em 解析対象 (parsed) と .Em 呼出可 (callable) の列に示します。 .Pp 言及していなければ、マニュアル領域マクロは、次の共通の構文をとります: .Pp .Dl \&.Va argument [\ .\ ,\ ;\ :\ (\ )\ [\ ]\ argument \...\ ] .Pp .Sy 注意 : 開く句読点文字と閉じる句読点文字 (訳注: 句読点文字には括弧なども含みます) がそのように認識されるのは、 ひとつずつ登場する場合だけです。 文字列 .Ql ")," は、句読点とは認識されず、 先行する空白文字とともに呼び出しマクロが使用しているフォントで出力されます。 引数リスト .Ql "] ) ," は 3 つの連続した閉じる句読点と認識され、 文字間および (存在する場合には) 先行する引数との間には、 先行する空白文字は出力されません。 句読点文字の特別の意味は、文字列 .Ql \e& によりエスケープされます。 例えば、次の文字列 .Bl -tag -width "&.Ar file1\ , file2\ , file3\ )\ ." -offset indent .It Li "\&.Ar file1\ , file2\ , file3\ )\ ." は .Ar file1 , file2 , file3 ) . を生成します。 .El .ne 1i .Ss マニュアル領域のマクロ .Bl -column "名称" "解析対象" "呼出可" -compact .It Em 名称 解析対象 呼出可 解説 .It Li \&Ad Ta Yes Ta Yes Ta "アドレス (このマクロは使用しないように言われています)。" .It Li \&An Ta Yes Ta Yes Ta "著者名。" .It Li \&Ar Ta Yes Ta Yes Ta "コマンドラインの引数。" .It Li \&Cd Ta \&No Ta \&No Ta "コンフィギュレーション宣言 (セクション 4 のみ)。" .It Li \&Cm Ta Yes Ta Yes Ta "コマンドライン引数修飾子。" .It Li \&Dv Ta Yes Ta Yes Ta "定義された変数 (ソースコード)。" .It Li \&Er Ta Yes Ta Yes Ta "エラー番号 (ソースコード)。" .It Li \&Ev Ta Yes Ta Yes Ta "環境変数。" .It Li \&Fa Ta Yes Ta Yes Ta "関数の引数。" .It Li \&Fd Ta Yes Ta Yes Ta "関数の定義。" .It Li \&Fn Ta Yes Ta Yes Ta "関数呼び出し (.Fo や .Fc も同様)。" .It Li \&Ic Ta Yes Ta Yes Ta "対話的なコマンド。" .It Li \&Li Ta Yes Ta Yes Ta "リテラルテキスト。" .It Li \&Nm Ta Yes Ta Yes Ta "コマンド名。" .It Li \&Op Ta Yes Ta Yes Ta "オプション (.Oo や .Oc も同様)。" .It Li \&Ot Ta Yes Ta Yes Ta "古いスタイルの関数型 (Fortran のみ)。" .It Li \&Pa Ta Yes Ta Yes Ta "パス名やファイル名。" .It Li \&St Ta Yes Ta Yes Ta "規格 (-p1003.2 や -p1003.1 や -ansiC)。" .It Li \&Va Ta Yes Ta Yes Ta "変数名。" .It Li \&Vt Ta Yes Ta Yes Ta "変数の型 (Fortran のみ)。" .It Li \&Xr Ta Yes Ta Yes Ta "マニュアルのクロスリファレンス。" .El .Ss 一般テキスト領域のマクロ .Bl -column "名称" "解析対象" "呼出可" -compact .It Em "名称 解析対象 呼出可 解説" .It Li \&%A Ta Yes Ta \&No Ta "参照の著者。" .It Li \&%B Ta Yes Ta Yes Ta "参照の図書タイトル。" .It Li \&%\&C Ta \&No Ta \&No Ta "参照の発行場所(市)。" .It Li \&%\&D Ta \&No Ta \&No Ta "参照の日付。" .It Li \&%J Ta Yes Ta Yes Ta "参照の雑誌タイトル。" .It Li \&%N Ta \&No Ta \&No Ta "参照の刊行番号。" .It Li \&%\&O Ta \&No Ta \&No Ta "参照の追加的な情報。" .It Li \&%P Ta \&No Ta \&No Ta "参照のページ番号。" .It Li \&%R Ta \&No Ta \&No Ta "参照のレポート名。" .It Li \&%T Ta Yes Ta Yes Ta "参照の記事タイトル。" .It Li \&%V Ta \&No Ta \&No Ta "参照の巻名。" .It Li \&Ac Ta Yes Ta Yes Ta "カギ括弧(angle)閉じクォート。" .It Li \&Ao Ta Yes Ta Yes Ta "カギ括弧(angle)開きクォート。" .It Li \&Ap Ta Yes Ta Yes Ta "アポストロフィ。" .It Li \&Aq Ta Yes Ta Yes Ta "カギ括弧(angle)クォート。" .It Li \&At Ta \&No Ta \&No Ta Tn "AT&T UNIX。" .It Li \&Bc Ta Yes Ta Yes Ta "角括弧(bracket)閉じクォート。" .It Li \&Bf Ta \&No Ta \&No Ta "フォントモード始点。" .It Li \&Bo Ta Yes Ta Yes Ta "角括弧(bracket)開きクォート。" .It Li \&Bq Ta Yes Ta Yes Ta "角括弧(bracket)クォート。" .It Li \&Bx Ta Yes Ta Yes Ta "BSD UNIX。" .It Li \&Db Ta \&No Ta \&No Ta "デバッグ (デフォルトは \\*qoff\\*q)。" .It Li \&Dc Ta Yes Ta Yes Ta "ダブル(double)閉じクォート。" .It Li \&Do Ta Yes Ta Yes Ta "ダブル(double)開きクオート。" .It Li \&Dq Ta Yes Ta Yes Ta "ダブル(double)クォート。" .It Li \&Ec Ta Yes Ta Yes Ta "文字列で囲む閉じクォート。" .It Li \&Ef Ta \&No Ta \&No Ta "フォントモード終了。" .It Li \&Em Ta Yes Ta Yes Ta "強調 (古風な英語)。" .It Li \&Eo Ta Yes Ta Yes Ta "文字列で囲む開きクォート。" .It Li \&Fx Ta \&No Ta \&No Ta Tn "FreeBSD オペレーティングシステム。" .It Li \&No Ta Yes Ta Yes Ta "通常のテキスト (no-op)。" .It Li \&Ns Ta Yes Ta Yes Ta "空白なし。" .It Li \&Pc Ta Yes Ta Yes Ta "丸括弧(parenthesis)閉じクォート。" .It Li \&Pf Ta Yes Ta \&No Ta "接頭文字列。" .It Li \&Po Ta Yes Ta Yes Ta "丸括弧(parenthesis)開きクォート。" .It Li \&Pq Ta Yes Ta Yes Ta "丸括弧クォート。" .It Li \&Qc Ta Yes Ta Yes Ta "まっすぐなダブル(double)閉じクォート。" .It Li \&Ql Ta Yes Ta Yes Ta "クォートされたリテラル。" .It Li \&Qo Ta Yes Ta Yes Ta "まっすぐなダブル(double)開きクォート。" .It Li \&Qq Ta Yes Ta Yes Ta "まっすぐなダブル(double)クォート。" .It Li \&Re Ta \&No Ta \&No Ta "参照終了。" .It Li \&Rs Ta \&No Ta \&No Ta "参照開始。" .It Li \&Rv Ta \&No Ta \&No Ta "戻り値 (セクション 2 と 3 のみ)。" .It Li \&Sc Ta Yes Ta Yes Ta "(single)閉じクォート。" .It Li \&So Ta Yes Ta Yes Ta "(single)開きクォート。" .It Li \&Sq Ta Yes Ta Yes Ta "(single)クォート。" .It Li \&Sm Ta \&No Ta \&No Ta "空白モード(デフォルトは \\*qon\\*q)。" .It Li \&Sx Ta Yes Ta Yes Ta "セクションクロスリファレンス。" .It Li \&Sy Ta Yes Ta Yes Ta "シンボリック (古風な英語)。" .It Li \&Tn Ta Yes Ta Yes Ta "商標またはタイプ名 (小さい大文字)。" .It Li \&Ux Ta Yes Ta Yes Ta "UNIX。" .It Li \&Xc Ta Yes Ta Yes Ta "拡張引数リスト終了。" .It Li \&Xo Ta Yes Ta Yes Ta "拡張引数リスト開始。" .El .\" .It Sy \&Hf Ta \&No Ta \&No Ta "Include file with header" .Pp .Ql q で終わるマクロ名は、引数リストの残りの項目をクォートします。 .Ql o で終わるマクロ名はクォートの開始であり、複数行の入力に渡ります。 .Ql c で終わる対応するマクロ名は、このクォートを閉じます。 囲みマクロは入れ子になっても良く、引数は 8 個に制限されます。 .Pp 注意: 拡張引数リストマクロ .Pf ( Ql \&.Xo , .Ql \&.Xc ) と関数囲みマクロ .Pf ( Ql \&.Fo , .Ql \&.Fc ) は、変則です。 拡張リストマクロは、マクロ引数が .Xr troff の制限である 9 個を越える場合に使われます。 .Sh コンフィギュレーション マクロパッケージのサイト依存コンフィギュレーションのために、 ファイル .Pa /usr/src/share/tmac/README を参照して下さい。 .Sh 関連ファイル .Bl -tag -width "tmac.doc-ditroff" -compact .It Pa tmac.doc マニュアル領域と一般テキスト領域のマクロ。 .It Pa tmac.doc-common 共通構造マクロと定義。 .It Pa tmac.doc-nroff サイト依存の .Xr nroff スタイルファイル。 .It Pa tmac.doc-ditroff サイト依存の .Xr troff スタイルファイル。 .It Pa tmac.doc-syms (標準マクロのような) 特殊定義。 .El .Sh 関連項目 .Xr mdoc.samples 7 .\"ZZZ: 3.0-RELEASE compliant by N. Kumagai 99-1.21 diff --git a/ja_JP.eucJP/man/man7/re_format.7 b/ja_JP.eucJP/man/man7/re_format.7 index b6376ca099..a7c3211c4c 100644 --- a/ja_JP.eucJP/man/man7/re_format.7 +++ b/ja_JP.eucJP/man/man7/re_format.7 @@ -1,275 +1,277 @@ .\" Copyright (c) 1992, 1993, 1994 Henry Spencer. .\" Copyright (c) 1992, 1993, 1994 .\" The Regents of the University of California. All rights reserved. .\" .\" This code is derived from software contributed to Berkeley by .\" Henry Spencer. .\" .\" 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. .\" .\" @(#)re_format.7 8.3 (Berkeley) 3/20/94 +.\" +.\" Original Revision: 1.2 .\" jpman %Id: re_format.7,v 1.4 1999/01/21 17:51:03 kuma Stab % .\" .\" WORD: branch 枝 .\" WORD: bracket expression 角括弧式 .\" WORD: substring サブストリング .\" WORD: subexpression サブ式 .\" WORD: collating element 連続要素 .\" WORD: case ケース (大文字/小文字) .\" WORD: bound 領域 .\" .TH RE_FORMAT 7 "March 20, 1994" .SH 名称 re_format \- POSIX 1003.2 正規表現 .SH 解説 POSIX 1003.2 において定義されているように、 正規表現 (``RE'') には 2 つの形式があります。 ひとつは現代正規表現 (大雑把にいうと .IR egrep で使用されているもので、1003.2 での ``拡張'' 正規表現) で、もうひとつは旧式正規表現 (これも大雑把には .IR ed で使用されているもので、1003.2 での ``基本''正規表現) です。 旧式正規表現は大抵の場合いくつかの古くからあるプログラムでの 旧バージョンとの互換性のために存在しています。 これについては最後に説明します。 1003.2 は正規表現の構文と意味のいくつかの部分を明確に定めないままに しています。 他の 1003.2 の実装とは完全な互換性がないかもしれない これらの部分については、`\(dg' によって印をつけて示します。 .PP 正規表現 (現代正規表現) はひとつ\(dgもしくはそれ以上の空でない \(dg \fI枝 (branch)\fR を `|' によって区切ったものです。 いずれかの枝にマッチすると正規表現はマッチします。 .PP 枝はひとつ\(dg以上の \fIピース (piece)\fR が結合されたものです。 枝は最初のピース、次のピース...とすべてがマッチしたものにマッチします。 .PP ピースは \fIアトム (atom)\fR、もしくはそれに \(dg `*', `+', `?' のいずれかか、\fI領域 (bound)\fR が続いたものです。 アトムに `*' が続いたものは、 そのアトムの 0 個以上のシーケンスにマッチします。 アトムに `+' が続いたものは、 そのアトム 1 個以上のシーケンスにマッチします。 アトムに `?' が続いたものは、 そのアトムの 0 個か 1 個のシーケンスにマッチします。 .PP \fI領域\fRは `{' で始まり、符号なしの 10 進数の整数が続き、 その次に `,' が続くことがあり、 またその次にもうひとつ符号なしの 10 進数の整数が続くことがあり、 最後には常に `}' が続きます。 ここでの整数は 0 から RE_DUP_MAX (255\(dg) の範囲 (これらの数値を含む) でなくてはならず、 数値が 2 つある場合は、 最初のものは 2 番目のもの以下でなければなりません。 ひとつの整数値 \fIi\fR が含まれコンマが含まれない領域がアトムに続くと、 アトムがちょうど \fIi\fR 個のシーケンスにマッチします。 ひとつの整数値 \fIi\fR とコンマが含まれる領域がアトムに続くと、 \fIi\fR 個以上のアトムのシーケンスにマッチします。 2 つの整数値 \fIi\fR と \fIj\fR が含まれる領域がアトムに続くと、 \fIi\fR 個以上 \fIj\fR 個以下のアトムからなるシーケンスにマッチします。 .PP アトムは次のいずれかです: `()' に囲まれた正規表現 (その正規表現にマッチ) 、 `()' の空のセット (ヌルストリングにマッチ)\(dg、 \fI角括弧式\fR (下記参照)、 `.' (任意の 1 文字にマッチ)、 `^' (行の先頭のヌルストリングにマッチ)、 `$' (行の末尾のヌルストリングにマッチ)、 `\e' とそれに続く `^.[$()|*+?{\e' の内のどれか 1 文字 (それらの通常の扱いでの文字にマッチ)、 `\e' とそれに続くその他の文字\(dg (それらの通常の扱いでの文字にマッチ、`\e' がない場合と同様\(dg)、 もしくはその他に何も指定されていない文字 (その文字にマッチ)。 `{' に数字以外の文字が続くものは通常の文字であり、 領域の開始とはなりません\(dg。 `\e' で終了する正規表現は規則違反となります。 .PP \fI角括弧式 (bracket expression)\fR とは `[]' で囲まれた文字のリストです。 通常はリスト中のどれか 1 文字にマッチします (下記を除く)。 リストの最初が `^' で始まる場合、 リストの残りの文字 \fIでない\fR 1 文字にマッチします (下記を除く)。 リスト中の 2 文字が `\-' で分割されている場合は、 これら 2 文字の \fI範囲\fR (その 2 文字を含む) にある文字の省略形となり、 例えば ASCII では `[0-9]' は 10 進数数字にマッチします。 `a-c-e' のように 2 つの文字範囲がひとつの文字を共有することはできません\(dg。 文字範囲は文字コードの配列に非常に依存しており、 移植性の良いプログラムを書くにはこれに頼ることを避けるのが賢明でしょう。 .PP リスト中に文字 `]' を含めるには、これを最初の文字にする (もしくは `^' に続ける) ようにします。 文字 `\-' を含めるには、これを最初もしくは最後の文字にするか、 文字範囲の終了文字とします。 文字 `\-' を文字範囲の開始文字とするには、 これを連続要素とするために `[.' と `.]' で括ります (下記参照)。 これらと `[' を使用したいくつかの組合せの例外を除いて、 `\e' を含むすべての他の特殊文字は角括弧式の中では それらの特殊な作用は無効となります。 .PP 角括弧式の中では、連続要素 (文字、1 文字のように扱われる複数文字からなるシーケンス、 またはそれら連続シーケンスの名称) は、 `[.' と `.]' で括られ、 その連続要素の文字のシーケンスの意味となります。 このシーケンスは角括弧式のリストのひとつの要素となります。 複数文字からなる連続要素を含む角括弧式はこのように 1 文字以上のものに マッチすることができます。 例えば、連続シーケンスが連続要素として 'ch' を含む場合、 正規表現 `[[.ch.]]*c' は `chchcc' の最初の 5 文字にマッチします。 .PP 角括弧式の中では、`[=' と`=]' で囲まれた連続要素は ひとつの等価クラスであり、 それ自身を含むすべての連続要素の文字のシーケンスを示しています。 (もしその他に等価な連続要素がない場合は、 それはそれを囲うものが `[.' と `.]' であるもののように扱われます。) 例えば、o と \o'o^' が等価クラスのメンバである時、 `[[=o=]]' と `[[=\o'o^'=]]' と `[o\o'o^']' はすべて同じ意味を持ちます。 等価クラスは文字範囲の終了点とすることはできません\(dg。 .PP 角括弧式の中では、`[:' と `:]' で囲まれた \fI文字クラス\fR の名称は そのクラスに属するすべての文字のリストを表わします。 標準の文字クラスの名称には次のものがあります。 .PP .RS .nf .ta 3c 6c 9c alnum digit punct alpha graph space blank lower upper cntrl print xdigit .fi .RE .PP これらは .IR ctype (3) において定義されている文字クラスを表わしています。 ロケールによってはこれら以外のものがあることがあります。 文字クラスは文字範囲の終了点として使うことは出来ません。 .PP 角括弧式には 2 つの特殊なケース\(dgがあります。 角括弧式 `[[:<:]]' と `[[:>:]]' はそれぞれ単語の開始および終了点に おけるヌルストリングにマッチします。 単語は単語文字が前にも後にも付加されない 単語文字のシーケンスとして定義されます。 単語文字は .I alnum (アルファベットと数字) 文字 ( .IR ctype (3) で定義されているように) か下線文字です。 これは拡張して定義されているもので、 POSIX 1003.2 に互換性はありますが、指定はされていません。 この拡張はソフトウェアにおいては、 他のシステムへの移植性をよく考えて使うべきです。 .PP 与えられた文字列の複数のサブストリング (文字列の一部) に、ある正規表現がマッチ可能な場合、 その正規表現は文字列の中で最初に現れたものにマッチします。 もし正規表現が同じ位置に現れた複数のサブストリングにマッチする場合は、 最も長いものにマッチします。 サブ式 (subexpression - 式の一部) も最も長いサブストリングにマッチしますが、 マッチ全体が最も長くなるように、 また正規表現中で先に開始しているサブ式が遅く開始しているものより 高い優先度をもつような条件があります。 高いレベルのサブ式はこのため低いレベルの部品的なサブ式より 高い優先度を持ちます。 .PP マッチの長さは連続要素ではなく、文字数で計られます。 ヌルストリングは全くマッチしないものよりは長いものであると考えられます。 例えば、 `bb*' は `abbbc' の 3 つの真中の文字にマッチし、 `(wee|week)(knights|nights)' は `weeknights' の 10 個すべての文字にマッチし、 `(.*).*' が `abc' にマッチする時には、括弧で囲まれたサブ式は 3 つすべての文字にマッチします。 そして `(a*)*' が `bc' にマッチする時には、 正規表現全体と括弧で囲まれたサブ式の両方がヌルストリングにマッチします。 .PP ケース (大文字/小文字) 非依存マッチが指定された場合、 アルファベットからケースの区別がすべて消え去ったような効果があります。 ケースが複数あるアルファベットが角括弧式の外に通常の文字として現れた時、 それは事実上すべてのケースを含む角括弧式 (たとえば `x' は `[xX]' に) に変換されます。 角括弧式の中に現れたときは、 その文字の異なるケースがその角括弧式に追加されます。 すなわち `[x]' は `[xX]' となり、また `[^x]' は `[^xX]' となります。 .PP 正規表現の長さは特に制限は設けられていません\(dg。 プログラムに移植性を持たせたい場合は 正規表現は 256 バイトにとどめるべきでしょう。 256 バイトを越える正規表現の受理を拒否するにもかかわらず、 POSIX 準拠であるとする実装がありうるからです。 .PP 旧式 (``基本'') 正規表現はいくつかの点で異なっています。 `|' は通常の文字であり、 これらの機能の等価なものは存在しません。 `+' や `?' は通常の文字であり、それらの機能は 領域を用いて表されます (それぞれ \&{1,\&} or \&{0,1\&})。 また、現代正規表現の `x+' は `xx*' と等価であることに注意して下さい。 領域の区切り文字は `\e{' と `\e}' であり、 `{' と `}' は通常の文字として扱われます。 ネストしたサブ式での括弧は `\e(' と`\e)' であり、 `(' と `)' は通常の文字となります。 `^' は正規表現の先頭、もしくは\(dg 括弧で囲まれたサブ式の先頭を除いて通常の文字となり、 `$' は正規表現の末尾、もしくは\(dg 括弧で囲まれたサブ式の末尾を除いて通常の文字となり、 `*' はもしこれが正規表現の先頭、もしくは括弧で囲まれたサブ式の先頭 (か、先頭の `^' のあと) に現れると通常の文字となります。 最後にひとつ新しい型のアトム - \fI後方参照\fR があります。 `\e' に 0 でない 10 進数 \fId\fR が続いたものは、 \fId\fR 番目の括弧で囲まれたサブ式によってマッチする文字の同じ シーケンスにマッチします (開き括弧の位置によって左から右へサブ式に番号を付けます)。 すなわち `\e([bc]\e)\e1' は `bb' や `cc' にマッチしますが、 `bc' にはマッチしません。 .SH 関連項目 regex(3) .PP POSIX 1003.2, セクション 2.8 (正規表現表記法)。 .SH バグ 正規表現が 2 種類もあるのはへまなことです。 .PP 現在の 1003.2 仕様では `)' は マッチする `(' がない場合に 普通の文字として扱われることになっています。 これは言葉使い上の誤りの意図しない結果であり、 変更される可能性があります。 よって、この仕様に依存すべきではありません。 .PP 後方参照はひどいへまであり、 効率的な実装をおこなう上で大きな問題を引き起こします。 さらに、それらの定義はどこかあいまいです。 (`a\e(\e(b\e)*\e2\e)*d' は `abbbd' にマッチするでしょうか ?) これらを使うのは避けてください。 .PP 1003.2 のケース非依存マッチの仕様はあいまいです。 上記での``ひとつのケースはすべてのケースを表わす'' という定義は 実装を行ったものの間では正しい解釈として現在同意されているものです。 .PP 語の境界の構文は信じられないほど醜いものです。 .\"ZZZ: 3.0-RELEASE compliant by N. Kumagai 99-1-21 diff --git a/ja_JP.eucJP/man/man8/ipfw.8 b/ja_JP.eucJP/man/man8/ipfw.8 index a414e0d4e1..55fc280e01 100644 --- a/ja_JP.eucJP/man/man8/ipfw.8 +++ b/ja_JP.eucJP/man/man8/ipfw.8 @@ -1,601 +1,612 @@ .\" -.\" %Id: ipfw.8,v 1.47.2.3 1999/04/29 19:22:13 ghelmer Exp % +.\" %Id: ipfw.8,v 1.47.2.5 1999/06/17 13:03:37 ru Exp % .\" .\" jpman %Id: ipfw.8,v 1.4 1997/05/19 17:19:51 horikawa Stab % .Dd July 20, 1996 .Dt IPFW 8 SMM .Os FreeBSD .Sh 名称 .Nm ipfw .Nd IPファイアウォール制御ユーティリィティ .Sh 書式 .Nm ipfw .Op Fl q .Oo .Fl p Ar preproc .Op Fl D Ar macro Ns Op Ns =value .Op Fl U Ar macro .Oc -file +.Ar file .Nm ipfw .Oo .Fl f | .Fl q .Oc flush .Nm ipfw .Oo .Fl q .Oc zero .Op Ar number ... .Nm ipfw delete .Ar number ... .Nm ipfw .Op Fl aftN list .Op Ar number ... .Nm ipfw .Oo .Fl ftN .Oc show .Op Ar number ... .Nm ipfw .Oo .Fl q .Oc add .Op Ar number .Ar action .Op log .Ar proto from .Ar src to .Ar dst .Op via Ar name | ipno .Op Ar options .Sh 解説 書式の 1 行目のようにファイル名を指定した場合は、 .Ar file を 1 行ずつ、引数として読み込みます。 .Pp .Fl p Ar preproc を使用して、 .Ar file がパイプされるプリプロセッサを指定することもできます。 有用なプリプロセッサには .Xr cpp 1 と .Xr m4 1 があります。 .Ar preproc の最初の文字がスラッシュから始まらない場合、 .Ev PATH を使用した通常の名前検索行われます。 .Nm が実行されるときまでに全ファイルシステムが (まだ) マウントされないような環境 (例えば NFS 経由でマウントされる場合) では、本件に注意してください。 ひとたび .Fl p が指定されると、オプションの .Fl D と .Fl U の指定を続けることが可能となり、これらがプリプロセッサに渡されます。 これにより、(ローカルホスト名により条件付けするなど) 柔軟性のある設定ファイルを作成可能となり、IP アドレスのように 頻繁に必要となる引数を集中管理するためのマクロを使用可能となります。 .Pp .Nm はパケットごとに、マッチするルールが見つかるまでルールリストを調べます。 各ルールにはパケット数とパケットサイズの 2 つのカウンタが用意されていて、 パケットがマッチするとカウンタ値は更新されます。 .Pp 全ルールは 1 から 65534 の範囲の行番号で順序付けられます。この番号によって ルールの並べ変えと削除を行ないます。 ルールのマッチングは昇順で行なわれ、最初にマッチしたものが適用されます。 複数のルールが同じ番号を共有することも可能です。この場合はルールが追加された 順序でマッチングが行なわれます。 .Pp 番号を指定せずにルールを追加した場合は、 既に定義されているルールの最大の番号に 100 を加えたものとなります。 ルールの番号が 65435 以上の場合は、新しいルールは同じ番号が与えられます。 。 .Pp delete 操作は .Ar number で指定された番号を持つ最初のルールを、もし有れば、削除します。 .Pp list 操作は現在のルール一覧を出力します。 .Pp show 操作は `ipfw -a list' と同じ結果を出力します。 .Pp zero 操作は .Ar number で指定された番号を持つルールのカウンタをクリアします。 .Pp flush 操作は全ルールを削除します。 .Pp 記号 `#' で始まる行および空行は無視されます。 .Pp どんな場合でも次のルールは存在します: .Bd -literal -offset center 65535 deny all from any to any .Ed .Pp -全パケットを拒否するのがデフォルトのポリシーです。 +全パケットを拒否するのがデフォルトのポリシです。 これを修正し、必要なルールを設定して下さい。 .Pp しかしながら、カーネルオプション .Dq IPFIREWALL_DEFAULT_TO_ACCEPT が有効な場合、ルールは次のようになります: .Bd -literal -offset center 65535 allow all from any to any .Ed .Pp -このバリエーションでは全てが通過可能です。 +このバリエーションではすべてが通過可能です。 このオプションを有効にしてよいのは特定の状況だけであり、 例えば通常は解放しており、 必要に応じてサービス拒否 (denial-of-service) フィルタとなる ファイアウォールシステムを使用する場合がこれに該当します。 .Pp オプションは以下のものが利用可能です。 -.Bl -tag -width flag +.Bl -tag -width indent .It Fl a list 操作の時、カウンタの値を表示します。 show の項を参照のこと。 .It Fl f 操作を実行する際に確認メッセージを表示しません。 flush 操作も無条件に実行されます。 .Ar (注意) プロセスに tty が関連付けられていない場合には、 このオプションが指定されているものとして実行されます。 .It Fl q ルールを add, zero, flush する際に、メッセージの出力を抑制します ( .Fl f も含まれます)。 このオプションは、リモートログインセッションでルールを調整する際に、 -(例えば sh /etc/rc.firewall のようにして)スクリプトの中から複数の ipfw コマンド +(例えば sh /etc/rc.firewall のようにして) +スクリプトの中から複数の ipfw コマンド を 実行する場合や、 多数の ipfw ルールを記述したファイルを用いる場合に 便利です。 -flush 操作が通常の(冗舌な)状態(デフォルトのカーネルの設定) +flush 操作が通常の (冗舌な) 状態 (デフォルトのカーネルの設定) で実行されると、メッセージが出力されます。 ここで、すべてのルールは削除されるので、メッセージをログインセッションに 送ることができず、ログインセッションがクローズされてしまうので、 残りのルールセットは実行されません。 この状態を修復するにはコンソールへのアクセスが必要となります。 .It Fl t list 操作の時に、最後にマッチしたパケットのタイムスタンプを表示します。 .It Fl N IPアドレスとサービス名をリゾルブしてホスト名で表示します。 .El .Pp .Ar action : .Bl -hang -offset flag -width 1234567890123456 .It Ar allow マッチするパケットを通過させ、マッチングを終了します。 .Ar pass , .Ar permit , .Ar accept と同じです。 .It Ar deny マッチするパケットを破棄し、マッチングを終了します。 .Ar drop は .Ar deny と同じです。 .It Ar reject -(パケットを送らないよう嘆願) マッチするパケットを破棄し、 +(価値が低下しています。) +マッチするパケットを破棄し、 ICMP の host unreachable を送信して、終了します。 .It Ar unreach code -パケットを破棄し、ICMP の unreachable に +マッチするパケットを破棄し、 +ICMP の unreachable に .Ar code を付けて送信します。 .Ar code -は、 0 から 256 までの数字、もしくは、以下に列挙する別名のいずれかです: +は、0 から 256 までの数字、もしくは、以下に列挙する別名のいずれかです: .Ar net, .Ar host , .Ar protocol , .Ar port , .Ar needfrag , .Ar srcfail , .Ar net-unknown , .Ar host-unknown , .Ar isolated , .Ar net-prohib , .Ar host-prohib , .Ar tosnet , .Ar toshost , .Ar filter-prohib , .Ar host-precedence , .Ar precedence-cutoff 。送信後、終了します。 .It Ar reset TCP パケットのみに対応。 パケットを破棄し、TCP の (RST) を送信し、終了します。 .It Ar count マッチするパケットのカウンタを更新し、引続きマッチングを行ないます。 .It Ar divert port マッチするパケットを .Ar port で指定されたポートにバインドされている .Xr divert 4 ソケットに送り、マッチングを終了します。 .It Ar tee port マッチするパケットのコピーを .Ar port で指定されたポートにバインドされている .Xr divert 4 ソケットに送り、引続きマッチングを行ないます。 この機能は未実装です。 .It Ar fwd ipaddr Op ,port マッチしたパケットの次のホップを .Ar ipaddr に変更します。これはドット付き 4 つ組の IP アドレスでもホスト名でもよいです。 .Ar ipaddr が直接到達可能なアドレスではない場合、その IP に対して ローカルルーティングテーブルでみつかる経路を使用します。 .Ar ipaddr がローカルアドレスの場合、 リモートホストからこのシステムにパケットが到着すると、 そのパケットをローカルマシンの .Ar port に転換します。 その際、 ソケットのローカルアドレスは、 パケットの元々の宛先の IP アドレスのままとします。 これは透過的プロキシサーバのためにあります。 IP が ローカルアドレスではない場合、ポート番号は (指定されていても) 無視され、 ルールはシステムから出て行くパケットに対してのみ適用されます。 また、」 パケットローカルに生成された時にもアドレスをローカルポートにマップします。 検索はルールがマッチしたときに終了します。 ポート番号が与えられなかった場合、パケット中のポート番号が使用され、 外部マシンのポート Y へのパケットは ローカルポート Y へ転送されます。 カーネルは、 オプション IPFIREWALL_FORWARD 付きでコンパイルされている必要があります。 .It Ar skipto number .Ar number より小さな番号のルールを飛び越して、 .Ar number 以上の番号のルールで最初に存在するものから、マッチングを継続します。 .El .Pp パケットが .Ar divert や .Ar tee のどちらかひとつ以上、もしくは両方の組み合わせの、複数のルールにマッチした場合、 最後のものを除き、無視します。 .Pp カーネルが .Dv IPFIREWALL_VERBOSE オプション付きでコンパイルされている場合に、``log'' が指定されているルールと マッチした時は、メッセージをコンソールに表示します。 もし、 .Dv IPFIREWALL_VERBOSE_LIMIT オプション付きでコンパイルされている場合、一連のルールに対し指定されたパケット 数を受信した後、メッセージの表示を中止します。 パケットのカウンタをクリアすれば再びメッセージを出力します。 .Pp コンソールへの表示とその制限数は、 .Xr sysctl 8 を通し、直接設定できます。 .Pp .Ar proto : .Bl -hang -offset flag -width 1234567890123456 .It Ar ip 全パケットがマッチします。別名 .Ar all も使えます。 .It Ar tcp TCP パケットのみマッチします。 .It Ar udp UDP パケットのみマッチします。 .It Ar icmp ICMP パケットのみマッチします。 .It Ar 指定されたプロトコルのパケットのみマッチします ( .Pa /etc/protocols のリストを参照の事) .El .Pp .Ar src と .Ar dst : .Pp .Bl -hang -offset flag .It Ar
.Op Ar ports .El .Pp .Em
は以下のように指定できます。 .Bl -hang -offset flag -width 1234567890123456 .It Ar ipno IP番号を 1.2.3.4 の形式で指定します。指定されたアドレスのみがマッチします。 .It Ar ipno/bits IP番号とネットマスクの幅を 1.2.3.4/24 の形式で指定します。 この場合は 1.2.3.0 から 1.2.3.255 のアドレスがマッチします。 .It Ar ipno:mask IP番号とネットマスクの幅を 1.2.3.4:255.255.240.0 の形式で指定します。 この場合は 1.2.0.0 から 1.2.15.255 のアドレスがマッチします。 .El .Pp アドレスの前に ``not'' を付けることによって、マッチの意味を反転させる -ことができます(指定されたアドレス以外の総てのアドレスがマッチします)。 +ことができます (指定されたアドレス以外の総てのアドレスがマッチします)。 これはポート番号には影響しません。 .Pp TCP と UDP ではさらに、 .Em ports を以下のように指定できます。 .Pp .Bl -hang -offset flag .It Ns {port|port-port} Ns Op ,port Ns Op ,... .El .Pp -ポート番号の代わりに(ファイル +ポート番号の代わりに (ファイル .Pa /etc/services -から取った)サービス名を使用できます。 +から取った) サービス名を使用できます。 port-port の書式で、最初の値に限り範囲指定できます。 列挙出来るポート数は .Pa /usr/src/sys/netinet/ip_fw.h で .Dv IP_FW_MAX_PORTS として定義されています。 +.Ql \e +を使用することにより、サービス名中の +.Ql - +文字をエスケープ可能です: +.Pp +.Dl ipfw add count tcp from any ftp\e\e-data-ftp to any .Pp 断片化されたパケットでオフセットが非 0 のもの (すなわち、最初の断片ではないもの) は、 -一つ以上のポート仕様を持つルールにはマッチしません。? +1 つ以上のポート仕様を持つルールにはマッチしません。 断片化されたパケットへのマッチングに関する詳細は .Ar frag オプションを参照してください。 .Pp マッチングのルールは、入ってくるパケットか、出ていくパケット、もしくはその両方 に対し適応されます。 .Ar in を指定すれば、入ってくるパケットのみにルールを適応します。 .Ar out を指定すれば、出ていくパケットのみに適応します。 .Pp 特定のインタフェースを通過するパケットには、 .Ar via を用いてインタフェースを指定します: .Bl -hang -offset flag -width 1234567890123456 .It Ar via ifX .Ar ifX を通過するパケットを指定します。 .It Ar via if* .Ar ifX を通過するパケットを指定します。X はいずれかのユニットの番号です。 .It Ar via any .Em いずれか のインタフェースを通過するパケットを指定します。 .It Ar via ipno IP アドレスが .Ar ipno のインタフェースを通過するパケットを指定します。 .El .Pp .Ar via を用いると、常時指定されたインタフェースがチェックされます。 .Ar recv や .Ar xmit を、 .Ar via の代わりに指定すると、 -受信、もしくは送信インタフェースのみが(各々に)チェックされます。 +受信、もしくは送信インタフェースのみが (各々に) チェックされます。 両方を指定すれば、 受信と送信の両方のインタフェースを通るパケットを指定できます。 例 : .Pp .Dl "ipfw add 100 deny ip from any to any out recv ed0 xmit ed1" .Pp .Ar recv で指定したインタフェースでは、受信と送信、両方のパケットをチェックできます。 それに対し、 .Ar xmit で指定したインタフェースでは、送信パケットのみとなります。 それゆえに、 .Ar xmit を指定すると .Ar out -が、必須です( +が、必須です ( .Ar in は不可)。 .Ar via と共に .Ar xmit もしくは、 .Ar recv を指定する事はできません。 .Pp 個々のパケットは、受信用ないし送信用インタフェースを持たないかもしれません。 ローカルホストで発生したパケットには受信用のインタフェースはないし、 ローカルホスト内宛のパケットは、送信用インタフェースが有りません。 .Pp 追加用 .Ar options : .Bl -hang -offset flag -width 1234567890123456 .It frag -パケットが断片(フラグメント)化されたデータグラムの一部で、かつデータグラムの +パケットが断片 (フラグメント) 化されたデータグラムの一部で、かつデータグラムの 先頭の断片でない場合にマッチします。 .Ar frag を、 .Ar tcpflags や TCP/UDP ポート仕様と共に使用することはできません。 .It in ネットワークから受信したパケットのみマッチします。 .It out ネットワークへ送信するパケットのみマッチします。 .It ipoptions Ar spec IP ヘッダが、 .Ar spec に指定されたコンマで区切られたオプションのリストを含む場合にのみマッチします。 サポートされている IP オプションは .Ar ssrr (strict source route), .Ar lsrr (loose source route), .Ar rr (record packet route), .Ar ts (timestamp) です。 ``!'' によって、特定のオプションを含めないよう指定できます。 .It established RST または ACK ビットがセットされているパケットのみマッチします。 このビットがセットされることがあるのは TCP のパケットのみです。 .It setup SYN ビットがセットされ ACK がセットされていないパケットのみマッチします。 このビットがセットされることがあるのは TCP のパケットのみです。 .It tcpflags Ar spec TCP ヘッダが .Ar spec に指定されたコンマで区切られたフラグのリストを含む場合にのみマッチします。 サポートされているフラグは、 .Ar fin , .Ar syn , .Ar rst , .Ar psh , .Ar ack , .Ar urg です。 ``!'' によって、特定のフラグを含めないよう指定できます。 .Ar tcpflags 仕様を含むルールは非 0 のオフセットを持つ断片化されたパケットに マッチすることはありません。 断片化されたパケットに関するマッチについての詳細は .Ar frag オプションを参照してください。 .It icmptypes Ar types ICMP タイプが .Ar types で指定されたリスト中に存在する場合にのみ適用されるルールとなります。 リストはレンジの組み合わせでも、各タイプをコンマで区切ったものでもどちらでも かまいません。 .El .Sh チェックリスト ルールを構成する際に考慮すべき重要な点を述べます。 .Bl -bullet -hang -offset flag .It かならず送信パケットと受信パケットの両方のパケットをフィルタリングします。 ほとんどのネットワークコネクションではパケットが双方向に流れることが必要です。 .It テストは細心の注意を払って行ないます。テストの際にはコンソールの近くにいる のがよいでしょう。 .It ループバックインタフェースのことを忘れてはなりません。 .El .Sh 長所 ファイアウォールが常に破棄するパケットが 1 種類あります。 フラグメントオフセットが 1 のフラグメントパケットです。 これはパケットとしては有効なものですが、利用目的はファイアウォールを かいくぐることしかありません。 .Pp ネットワーク越しにログインしている場合、KLD 版の .Nm をロードすることはそれほど単純なことではありません。 以下のコマンドを奨めます。 .Bd -literal -offset center kldload /modules/ipfw.ko && \e ipfw add 32000 allow all from any to any .Ed .Pp これに引続き、同じような状況で .Bd -literal -offset center ipfw flush .Ed .Pp とするのは良くありません。 .Pp システムセキュリティレベルが 3 以上に設定されている場合、 IP フィルタリストを変更できません (システムセキュリティレベルについては .Xr init 8 を参照してください)。 .Sh パケットの行き先変更 指定されたポートを見ているソケットは、そのポートへ行き先変更されたパケットを、 全部受けとります。 .Xr divert 4 -を参照して下さい。ポートを見ているソケットがない場合やカーネルがパケットの行き -先変更をサポートするようにはコンパイルされていない場合、パケットは破棄されます -。 +を参照して下さい。ポートを見ているソケットがない場合やカーネルがパケットの +行き先変更をサポートするようにはコンパイルされていない場合、 +パケットは破棄されます。 .Sh 使用例 次のコマンドは .Em cracker.evil.org から .Em wolf.tambov.su -の telnet ポートへ送られる全ての TCP パケットを拒否するルールを追加します。 +の telnet ポートへ送られるすべての TCP パケットを拒否するルールを追加します。 .Pp .Dl ipfw add deny tcp from cracker.evil.org to wolf.tambov.su 23 .Pp -次のコマンドはネットワーク hackers からホスト my への全てのコネクションを +次のコマンドはネットワーク hackers からホスト my へのすべてのコネクションを 拒否します。 .Pp .Dl ipfw add deny all from 123.45.67.0/24 to my.host.org .Pp 次はカウントされている情報とタイムスタンプを見る例です .Pp .Dl ipfw -at l .Pp これはタイムスタンプを省略して次のように指定できます。 .Pp .Dl ipfw -a l .Pp -次のルールは 192.168.2.0/24 からの全ての受信パケットを、5000番のポートに +次のルールは 192.168.2.0/24 からのすべての受信パケットを、5000 番のポートに 行き先変更するものです。 .Pp .Dl ipfw divert 5000 all from 192.168.2.0/24 to any in .Sh 関連項目 .Xr cpp 1 , .Xr m4 1 , .Xr divert 4 , .Xr ip 4 , .Xr ipfirewall 4 , .Xr protocols 5 , .Xr services 5 , .Xr init 8 , .Xr kldload 8 , .Xr reboot 8 , .Xr sysctl 8 , .Xr syslogd 8 .Sh バグ .Pp .Em WARNING!!WARNING!!WARNING!!WARNING!!WARNING!!WARNING!!WARNING!! .Pp このプログラムはコンピュータをかなり使いにくい状態にしてしまう可能性があります 。 はじめて使用する時はコンソール上で実行し、理解していない操作は .Em 絶対に実行しない ようにして下さい。 .Pp 連続したエントリの操作もしくは追加に際し、サービス名やプロトコル名は使用できま せん。 .Pp -入ってきたパケットの断片(フラグメント)が +入ってきたパケットの断片 (フラグメント) が .Ar divert によって行き先を変更されると、ソケットに配送される前に、組み立て直しをします。 それに対し、 .Ar tee -を経由した断片(フラグメント)は、組み立て直しされません。 +を経由した断片 (フラグメント) は、組み立て直しされません。 .Pp ポートの別名でダッシュ (-) を含むものは、リストの最初には書けません。 .Pp ``tee'' アクションは未実装です。 .Sh 作者 .An Ugen J. S. Antsilevich , .An Poul-Henning Kamp , .An Alex Nash , .An Archie Cobbs . API は .An Daniel Boulet が BSDI 向けに記述したコードに基づいています。 .Sh 歴史 .Nm -は、FreeBSD 2.0 で最初に現れました。 +は、 +.Fx 2.0 +で最初に現れました。 diff --git a/ja_JP.eucJP/man/man8/locate.updatedb.8 b/ja_JP.eucJP/man/man8/locate.updatedb.8 index bcfec558fe..1ea4ad1211 100644 --- a/ja_JP.eucJP/man/man8/locate.updatedb.8 +++ b/ja_JP.eucJP/man/man8/locate.updatedb.8 @@ -1,70 +1,77 @@ .\" Copyright (c) 1996 .\" Mike Pritchard . 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 Mike Pritchard. .\" 4. Neither the name of the author 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 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 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. .\" +.\" Original Revision: 1.3.2.1 .\" jpman %Id: locate.updatedb.8,v 1.3 1997/09/04 16:39:10 horikawa Stab % .Dd February 11, 1996 .Dt LOCATE.UPDATEDB 8 .Os BSD 4.4 .Sh 名称 .Nm locate.updatedb .Nd locate データベースの更新 .Sh 書式 .Nm /usr/libexec/locate.updatedb .Sh 解説 .Nm locate.updatedb は、 .Xr locate 1 で使用されるデータベースの更新を行います。 通常は、 .Pa /etc/weekly スクリプト により週に一度実行されます。 .Pp 新規に構築されるデータベースの内容は、 .Pa /etc/locate.rc ファイル を用いて設定することが出来ます。 .Sh 関連ファイル .Bl -tag -width /var/db/locate.database -compact .It Pa /var/db/locate.database デフォルトのデータベース .It Pa /etc/locate.rc 設定ファイル .El +.Sh ENVIRONMENT +.Bl -tag -width /var/db/locate.database -compact +.It Pa LOCATE_CONFIG +設定ファイルのパス +.El .Sh 関連項目 -.Xr locate 1 +.Xr locate 1 , +.Xr periodic 8 .Rs .%A Woods, James A. .%D 1983 .%T "Finding Files Fast" .%J ";login" .%V 8:1 .%P pp. 8-10 .Re diff --git a/ja_JP.eucJP/man/man8/mount_msdos.8 b/ja_JP.eucJP/man/man8/mount_msdos.8 index cbf098151b..71c809bf88 100644 --- a/ja_JP.eucJP/man/man8/mount_msdos.8 +++ b/ja_JP.eucJP/man/man8/mount_msdos.8 @@ -1,214 +1,214 @@ .\" $NetBSD: mount_msdos.8,v 1.13 1998/02/06 05:57:00 perry Exp $ .\" .\" Copyright (c) 1993,1994 Christopher G. Demetriou .\" 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 acknowledgment: .\" This product includes software developed by Christopher G. Demetriou. .\" 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. .\" -.\" %Id: mount_msdos.8,v 1.14 1998/06/30 06:23:41 charnier Exp % +.\" %Id: mount_msdos.8,v 1.15 1999/01/11 18:35:14 dt Exp % .\" jpman %Id: mount_msdos.8,v 1.3 1997/09/08 01:55:26 seki Stab % .\" .Dd April 7, 1994 .Dt MOUNT_MSDOS 8 .Os .Sh 名称 .Nm mount_msdos .Nd MS-DOS ファイルシステムをマウントする .Sh 書式 .Nm mount_msdos .Op Fl o Ar options .Op Fl u Ar uid .Op Fl g Ar gid .Op Fl m Ar mask .Op Fl s .Op Fl l .Op Fl 9 .\".Op Fl G .Op Fl L Ar locale .Op Fl W Ar table .Pa special .Pa node .Sh 解説 .Nm コマンドは、デバイス名 .Pa special 上の MS-DOS ファイルシステムを、 グローバルファイルシステムの名前空間の .Pa node の示す位置に接続します。 通常このコマンドは、ブート時に .Xr mount 8 によって実行されますが、 任意のユーザが、 自分の所有する任意のディレクトリに MS-DOS ファイルシステムをマウントするために使うこともできます。 (もちろん、 そのファイルシステムを含むデバイスに対して 適切なアクセスを行えることが条件ですが。) .Pp オプションは以下のものが使用できます: .Bl -tag -width Ds .It Fl o Ar options 指定されたマウントオプション .Ar options を .Xr mount 8 の記述通り使用します。 .It Fl u Ar uid ファイルシステム上のファイルの所有者を .Ar uid にします。デフォルトの所有者はファイルシステムがマウントされるディレクトリの 所有者です。 .It Fl g Ar gid ファイルシステム上のファイルのグループを .Ar gid にします。デフォルトのグループはファイルシステムがマウントされるディレクトリの グループです。 .It Fl m Ar mask ファイルシステム上のファイルの最大のパーミッションを指定します。 (例えば、 Ar mask .Li 755 は、デフォルトで、 .\" ここでの by default は「MS-DOS の『ファイル属性』として特別な指定 .\" がないとき」という意味であると思われる。意味がわかりにくいが、原文 .\" もわかりにくいので、特に説明を補わない。 .\" by 所有者がファイルの読み書き実行の権限を持ち、 他のユーザが読みと実行の権限だけを持つことを指定します。 8 進のファイルモードに関しては .Xr chmod 1 を御覧下さい。) .Ar mask の下位 9 ビットのみが使用されます。 デフォルトの .Ar mask は、 ファイルシステムがマウントされるディレクトリから取得されます。 .It Fl s Win'95 のロングファイル名を無視および生成しないように強制します。 .It Fl l Win'95 のロングファイル名のリストおよび生成と、 生成/修正/アクセス日を分離するように強制します。 .Pp .Fl s も .Fl l も指定されない場合、 .Nm は既存の Win'95 のロングファイル名から マウントすべきファイルシステムのルートディレクトリを探してマウントします。 このようなエントリが見付からなかった場合で、 短い DOS ファイル名が見付かった場合、 .Fl s がデフォルトです。そうでない場合、 .Fl l が仮定されます。 .It Fl 9 ファイルを削除およびリネームするときにおいても、 特殊な Win'95 のディレクトリエントリを無視します。 これは .Fl s を強制します。 .\".It Fl G .\"This option causes the filesystem to be interpreted as an Atari-Gemdos .\"filesystem. The differences to the MS-DOS filesystem are minimal and .\"limited to the boot block. This option enforces .\".Fl s . .It Fl L Ar locale DOS と Win'95 の国際大文字小文字名前変換において使用される ロケール名を指定します。 デフォルトでは ISO 8859-1 がローカルな文字セットと仮定されます。 .It Fl W Ar table 3 個の変換表を含むテキストファイルを指定します: .Bl -enum .It Win'95 のロングファイル名に対して、 ローカル文字セットから Unicode へ変換する表 (上半分)であり、 128 Unicode コードです。 Unicode に存在しないコードがあった場合、 0x003F コード ('?') を代わりに使用します。 .It DOS 名に対して、 DOS からローカル文字セットへ変換する表 (上半分) であり、 128 文字コードです。 変換できないものに対しては、 コード 0x3F ('?') を使用します。 .It DOS 名に対して、 DOS からローカル文字セットへ変換する表 (上半分) であり、 128 文字コードです。 特殊な意味を持つコードがあります: .Bl -hang .It 0x00 DOS フィイル名において禁止されている文字; .It 0x01 DOS ファイル名において '_' に変換されるべき文字; .It 0x02 DOS ファイル名においてスキップされるべき文字; .El .El .Pp デフォルトでは ISO 8859-1 がローカル文字セットとして仮定されます。 パスが絶対パスでない場合、 .Pa /usr/libdata/msdosfs/ プレフィックスが前に付きます。 .El .Sh 関連ファイル .Bl -tag -width /usr/libdata/msdosfs -compact .It Pa /usr/libdata/msdosfs 文字セット変換表のデフォルトの置き場所 .El .Sh 関連項目 .Xr mount 2 , .Xr unmount 2 , .Xr fstab 5 , .Xr mount 8 .Sh 警告 Win'95 で使用しているものと同様の手続きを使用して注意しているにもかかわらず、 .Fl 9 フラグを使用するとファイルシステムを破壊することがあります。 .Pp .Fx 2.1 およびそれ以前のバージョンでは 16K より大きなクラスタサイズを扱えませんでした。 MS-DOS ファイルシステムをマウントするだけで、 そのファイルシステムを破壊してしまうことがありました。 16K より大きなクラスタサイズは 1G より大きなファイルシステムでは避けようがありませんし、 1G より大きなファイルシステムを FIPS で縮めたときにも発生し得ます。 .Sh 歴史 .Nm は .Fx 2.0 にて初めて登場しました。 この元になった、 .Nm mount_pcfs は .Fx 1.0 にて登場しましたが、 よりそれらしい名前の .Nm が出来たため廃止されました。 diff --git a/ja_JP.eucJP/man/man8/mount_umap.8 b/ja_JP.eucJP/man/man8/mount_umap.8 index 894ed9c280..93f2c3b4fa 100644 --- a/ja_JP.eucJP/man/man8/mount_umap.8 +++ b/ja_JP.eucJP/man/man8/mount_umap.8 @@ -1,135 +1,136 @@ .\" Copyright (c) 1992, 1993, 1994 .\" The Regents of the University of California. All rights reserved. .\" All rights reserved. .\" .\" This code is derived from software donated to Berkeley by .\" Jan-Simon Pendry and from John Heidemann of the UCLA Ficus project. .\" .\" 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. .\" .\" @(#)mount_umap.8 8.4 (Berkeley) 5/1/95 -.\" %Id: mount_umap.8,v 1.8 1998/07/15 06:12:31 charnier Exp % +.\" %Id: mount_umap.8,v 1.9 1998/12/22 11:52:10 jkh Exp % +.\" .\" jpman %Id: mount_umap.8,v 1.2 1997/04/12 15:56:14 horikawa Stab % .\" .Dd May 1, 1995 .Dt MOUNT_UMAP 8 .Os BSD 4.4 .Sh 名称 .Nm mount_umap .Nd ファイルシステム層のサンプルファイルシステム .Pp .Sh 書式 .Nm mount_umap .Op Fl o Ar options .Fl u Ar uid-mapfile .Fl g Ar gid-mapfile .Ar target .Ar mount-point .Sh 解説 .Nm は、ローカルシステムとは異なる uid, gid を使用するファイルシステムの サブトリーをマウントするために使用します。 そのようなファイルシステムには、別のサイトの NFS や 別のパスワードを使用する場所から持って来たリムーバブルメディア上の ファイルシステムです。 .Pp .Nm はユーザが提供するファイルのセットを使用し、 サブトリーの元の環境とローカルの環境との uid, gid の対応を取ります。 元の環境では smith は uid 1000 を持ち、ローカル環境では uid 2000 を持ちます。 .Nm は、smith のオリジナルの環境で持っているファイルを次のようにマップさせます: uid 1000 が所有するファイルを、実際には uid 2000 が所有者である かのように見せます。 .Pp 以下のオプションを使用可能です: .Bl -tag -width indent .It Fl o .Fl o のあとに、コンマで区切ってオプション文字列を指定することができます。 可能なオプションとその意味は .Xr mount 8 を参照してください。 .It Ar target ローカルシステムの名前空間において、サブツリーの現在位置。 .It Ar mount-point マップされたサブツリーが置かれるディレクトリ。 .It Fl u Ar uid-mapfile .It Fl g Ar gid-mapfile 識別子の対応が記述されます。 それぞれのファイルの1行目には、そのファイルがいくつの対応を持っている かを記述します。 2行目からは、各行に対応を記述します。 最初の項目はローカル環境での id で、次の項目がオリジナル環境での idで、 項目は空白で区切ります。 .Ar uid-mapfile にはすべての uid の対応を、 .Ar gid-mapfile にはすべての gid の対応を記述するべきです。 .Ar uid-mapfile に記載されない uid は NOBODY と、 .Ar gid-mapfile に記載されない gid は NULLGROUP と扱われます。 uid の対応は64個まで、gid の対応は16個まで記述することができます。 .El .Pp マップファイルはファイル階層のどこにでも置くことができますが、 ファイルの所有者はrootで、rootのみが書き込めるようにしておかなければ なりません。 .Nm は、もしこれらのファイルの所有者や権限が 不適切な場合はサブトリーをマップしません。 もしマップファイルの1行目の対応数と実際の対応数が異なる場合も、 実行を停止します。 .Pp .Nm コマンドで作られるファイルシステム層は、簡単なファイルシステム層の 例となっています。商品としての利用は考えられていません。 そのため、あまり洗練された実装ではありません。 .Sh 関連項目 .Xr mount 8 , .Xr mount_null 8 .Sh バグ 本ファイルシステムタイプは、まだ完全にはサポートされていません (注: 機能しないということです) し、 実際のところ使用するとシステム上のデータを破壊するかもしれません。 自己責任において使用してください。 猛犬注意。濡れていて滑ります。 危険性を減らすためには、このコードもまた所有者を必要としています - 真面目なハッカーの方はメールを hackers@freebsd.org に送って 引き継ぎの意思を宣言してください。 .Sh 歴史 .Nm は .Bx 4.4 から実装されました。 diff --git a/ja_JP.eucJP/man/man8/mount_union.8 b/ja_JP.eucJP/man/man8/mount_union.8 index 8e153bfce9..a8a3c4f67a 100644 --- a/ja_JP.eucJP/man/man8/mount_union.8 +++ b/ja_JP.eucJP/man/man8/mount_union.8 @@ -1,210 +1,211 @@ .\" Copyright (c) 1994 .\" The Regents of the University of California. All rights reserved. .\" .\" This code is derived from software donated to Berkeley by .\" Jan-Simon Pendry. .\" .\" 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. .\" .\" @(#)mount_union.8 8.6 (Berkeley) 3/27/94 -.\" %Id: mount_union.8,v 1.4 1998/07/15 06:13:45 charnier Exp % +.\" %Id: mount_union.8,v 1.5 1998/12/22 11:52:10 jkh Exp % +.\" .\" jpman %Id: mount_union.8,v 1.3 1997/08/31 14:06:42 horikawa Stab % .\" .Dd March 27, 1994 .Dt MOUNT_UNION 8 .Os BSD 4.4 .Sh 名称 .Nm mount_union .Nd ユニオンファイルシステムをマウントする .Sh 書式 .Nm mount_union .Op Fl br .Op Fl o Ar options .Ar directory .Ar uniondir .Sh 解説 .Nm コマンドは .Ar directory を .Ar uniondir の上に接続し、そこから両方のディレクトリツリーの内容が見えるようにします。 デフォルトでは、 .Ar directory が .Em 上の 層に、 .Ar uniondir が .Em 下の 層になります。 .Pp オプションには以下のものがあります: .Bl -tag -width indent .It Fl b デフォルトの上下関係を反転します。つまり、 .Ar directory が下の層に、 .Ar uniondir が上の層になります。ただし、マウントポイントは .Ar uniondir のままになります。 .It Fl o .Fl o フラグの後には、オプション文字列をコンマで区切って指定します。 指定可能なオプションと、その意味については .Xr mount 8 を参照してください。 .It Fl r .Xr mount_null 8 でマウントした場合と同様に、下の層を完全に隠すようになります。 .El .Pp ファイルシステムのセキュリティを維持するため、 ファイルシステムをマウントするユーザは、スーパユーザか、 マウントポイントのディレクトリに書き込み許可を持つ者でなければなりません。 .Pp ファイルの検索は、上の層、下の層の順におこなわれます。 上の層にはエントリのないディレクトリが、下の層で見つかった場合には、上の層に .Em シャドウ ディレクトリが作られます。 このディレクトリはユニオンマウントを実行したユーザの所有になり、モードは .Dq rwxrwxrwx (0777) をその時点で有効な umask で修正したものになります。 .Pp あるファイルが上の層に存在している場合、下の層にある 同じ名前のファイルをアクセスする方法はありません。 どうしても必要なら、ループバックマウントとユニオンマウントを 組み合せることで、別のパス名を使って下の層のファイルを アクセスできるようにしておくことができます。 .Pp オブジェクトへのアクセスは、それがディレクトリである場合を除き、 通常のファイルシステムのアクセス権チェックのあとで実行されます。 ディレクトリの場合には、アクセスをおこなうユーザは上の層と下の層の 両方のディレクトリのアクセス権を持っていなければなりません (両方のディレクトリが存在している必要があります)。 .Pp いくつかの特別な場合を除き、 .Ar uniondir 中のオブジェクトの作成や変更の要求は上の層に渡されます。 下の層に存在するファイルを書き込み用にオープンしようとすると、 そのファイルの .Em 完全な コピーが上の層に作成され、それから上の層のコピーがオープンされます。 同様に、下の層のファイルを切り詰めてサイズを 0 にしようとすると、 空のファイルが上の層に作成されることになります。 これ以外の、本当に下の層の変更が必要となる操作は失敗し、 .Dv EROFS が返されます。 .Pp ユニオンファイルシステムは、個々のファイルシステムを扱うというよりも 名前空間を扱うものです。ユニオンマウントは .Ar uniondir 以下のディレクトリツリーに再帰的に影響します。 このため .Ar uniondir 以下にマウントされたファイルシステムは、すべて ユニオン効果を持つようになります。これが .Xr mount 8 の .Em union オプションとは異なる点です。 union オプションでは、ユニオン効果はマウントポイントだけに働き、 ファイル名の探索のみに使われます。 .Sh 使用例 コマンド .Bd -literal -offset indent mount -t cd9660 -o ro /dev/cd0a /usr/src mount -t union /var/obj /usr/src .Ed .Pp は、CD-ROM ドライブ .Pa /dev/cd0a を .Pa /usr/src にマウントし、その上に .Pa /var/obj を重ねます。ほとんどの場合、これはソースツリーが実際には CD-ROM 上に あるにもかかわらず、書き込みが可能になるという効果を目的としています。 .Pp コマンド .Bd -literal -offset indent mount -t union -o -b /sys $HOME/sys .Ed .Pp は、ユーザのホームディレクトリの下の .Pa sys ディレクトリに、システムのソースツリーを下の層として重ね合わせます。 これにより、個々のユーザがそのソースツリーに対して個人的な変更を加えて、 新しいカーネルを構築することができるようになります。 他のユーザはその変更に関知しません。 下の層のファイルは、そのまま .Pa /sys からアクセスできることに注意してください。 .Sh 関連項目 .Xr intro 2 , .Xr mount 2 , .Xr unmount 2 , .Xr fstab 5 , .Xr mount 8 , .Xr mount_null 8 .Sh バグ 本ファイルシステムタイプは、まだ完全にはサポートされていません (注: 機能しないということです) し、 実際のところ使用するとシステム上のデータを破壊するかもしれません。 自己責任において使用してください。 猛犬注意。濡れていて滑ります。 危険性を減らすためには、このコードもまた所有者を必要としています - 真面目なハッカーの方はメールを hackers@freebsd.org に送って 引き継ぎの意思を宣言してください。 上の層を支えているファイルシステムで、ホワイトアウトが サポートされていないため、下の層のオブジェクトに対して 削除や名前変更の操作をおこなう方法はありません。 このような操作や、下の層を変更する操作、たとえば .Xr chmod 1 のような操作に対しては、 .Dv EROFS が返されます。 .Pp ユニオンツリーの上で .Xr find 1 を実行すると、上の層にシャドウディレクトリのツリーが 作成されてしまうという副作用があります。 .Sh 歴史 .Nm コマンドは .Bx 4.4 で初めて登場しました。 最初に動作したのは FreeBSD-(要記入) です (訳注: 原文 は FreeBSD-(fill this in))。 .\" 本訳注は horikawa@jp.freebsd.org が 19990115 に記載 diff --git a/ja_JP.eucJP/man/man8/moused.8 b/ja_JP.eucJP/man/man8/moused.8 index 2aa25b9727..9f0f64f617 100644 --- a/ja_JP.eucJP/man/man8/moused.8 +++ b/ja_JP.eucJP/man/man8/moused.8 @@ -1,578 +1,591 @@ .\" Copyright (c) 1996 .\" Mike Pritchard . 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 Mike Pritchard. .\" 4. Neither the name of the author 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 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. .\" -.\" %Id: moused.8,v 1.18 1998/11/20 11:22:16 yokota Exp % +.\" %Id: moused.8,v 1.18.2.1 1999/06/03 12:43:41 yokota Exp % .\" .\" jpman %Id: moused.8,v 1.3 1997/07/22 16:52:17 horikawa Stab % .Dd December 3, 1997 .Dt MOUSED 8 .Os FreeBSD .Sh 名称 .Nm moused .Nd マウスデータをコンソールドライバに渡す .Sh 書式 .Nm .Op Fl 3DPRcdfs .Op Fl I Ar file .Op Fl F Ar rate .Op Fl r Ar resolution .Op Fl S Ar baudrate .Op Fl C Ar threshold .Op Fl m Ar N=M .Op Fl w Ar N .Op Fl z Ar target .Op Fl t Ar mousetype .Fl p Ar port .Pp .Nm .Op Fl Pd .Fl p Ar port .Fl i Ar info .Sh 解説 マウスデーモン .Nm とコンソールドライバは協力し、 テキストコンソールやユーザプログラムにおけるマウス操作をサポートします。 マウスの仮想化とユーザプログラムへのマウスデータの提供は標準フォーマット にて行われます .Pq Xr sysmouse 4 を御覧ください 。 .Pp マウスデーモンはマウスデータの読みとりのために指定されたポートを監視し、 解釈したデータを ioctl を介してコンソールドライバに渡します。 マウスデーモンは、移動、ボタンの押し/離しイベント、 存在するならばローラやホイールの移動も報告します。 ローラ/ホイールの移動は ``Z'' 軸での移動として報告されます。 .Pp マウスポインタが .Xr vidcontrol 4 によって有効にされていれば、 コンソールドライバはマウスポインタをスクリーンに表示し、 カットとペーストの機能を提供します。 .Xr sysmouse 4 をユーザプログラムがオープンすると、コンソールドライバは マウスデータをこのデバイスに送るので、 ユーザプログラムはこのデータを使用できます。 .Pp マウスデーモンがシグナル .Dv SIGHUP を受けとると、マウスポートを再オープンし、自己を再初期化します。 システムがサスペンドされている間にマウスの挿抜を行なった場合に有用です。 .Pp 以下のオプションがあります: .Bl -tag -width indent .It Fl 3 2 ボタンマウスで 3 番目(中)のボタンをエミュレートします。 物理的なボタンで左と右のものを同時に押すとエミュレートされます。 .It Fl C Ar threshold ダブルクリック速度をボタンクリック間最大インターバルとしてミリ秒で指定します。 このオプションを指定しないと、デフォルト値は 500 ミリ秒が仮定されます。 このオプションは、 テキストモードコンソールのカットとペーストの操作においてのみ有効です。 .Xr sysmouse 4 を介してマウスデータを得るユーザプログラムは影響を受けません。 .It Fl D シリアルポートの DTR を下げます。 このオプションが有効なのは、 .Ar mousesystems がマウスプロトコルとして選択されている場合のみです。 .Ar mousesystems モードで 3 ボタンマウスを操作するためには、 DTR ラインを落とすことが必要かもしれません。 .It Fl F Ar rate サポートされていれば、デバイスのレポート頻度(秒あたりの回数)を設定します。 .It Fl I Ar file .Nm デーモンのプロセス ID を、指定されたファイルに書きます。 このオプションを指定しないと、プロセス ID は .Pa /var/run/moused.pid に格納されます。 .It Fl P シリアルマウス識別時に、 プラグアンドプレイ COM デバイス列挙処理を開始しません。 .Fl i オプションと共にこのオプションが指定された場合、 .Nm はシリアルマウスに関する有用な情報を表示できません。 .It Fl R シリアルポートの RTS を下げます。 このオプションが有効なのは .Ar mousesystems がプロトコルタイプとして、後述する .Fl t オプションで指定されている場合のみです。 これは前記 .Fl D オプションと共によく使用されます。 .Ar mousesystems モードで 3 ボタンマウスを操作するためには、 RTS と DTR のラインを共に下げる必要があるかもしれません。 .It Fl S Ar baudrate シリアルポートの速度を指定します (1200 から 9600)。 全シリアルマウスがこのオプションをサポートするわけではありません。 .It Fl c マウスによっては、中ボタンを押したイベントを、 左右ボタンが押されたかのようにレポートするものがあります。 このオプションはこれを扱うものです。 .It Fl d デバッグ用のメッセージを有効にします。 .It Fl f デーモンにならずに、フォアグラウンドプロセスとして実行します。 テストやデバッグに有用です。 .It Fl i Ar info 指定された情報を表示し終了します。指定可能な情報を以下に示します: .Pp .Bl -tag -compact -width modelxxx .It Ar port ポート(デバイスファイル)名、例えば .Pa /dev/cuaa0 , .Pa /dev/mse0 , .Pa /dev/psm0 です。 .It Ar if インタフェースタイプ: serial, bus, inport, ps/2 です。 .It Ar type プロトコルタイプ。 .Fl t オプションの説明の後でリストされているものか、 ドライバが .Ar sysmouse データフォーマット標準をサポートする場合には .Ar sysmouse です。 .It Ar model マウスモデル。 .Nm コマンドは常にモデルを識別できるわけではありません。 .It Ar all 上記全部。ポート、インタフェース、タイプ、モデルをこの順に一行に表示します。 .El .Pp .Nm は要求された情報を判別できない場合、``unknown'' か ``generic'' を表示します。 .It Fl m Ar N=M 物理ボタン .Ar M に論理ボタン .Ar N を割当てます。 このオプションは任意個数指定可能です。 複数の物理ボタンを単一の論理ボタンに割り当て可能です。 この場合、指定された物理ボタンのいずれかが押されている場合、 論理ボタンが押されていることになります。`=' の周りにスペースを入れてはなりません。 .It Fl p Ar port マウスと通信するためのポートとして .Ar port を使います。 .It Fl r Ar resolution デバイスの解像度を設定します; インチあたりのドット数または、 .Ar low , .Ar medium-low , .Ar medium-high , .Ar high のいずれかです。 全デバイスにてこのオプションがサポートされているわけではありません。 .It Fl s シリアルラインのために 9600 ボーを選びます。 全シリアルマウスがこのオプションをサポートしているわけではありません。 .It Fl t Ar type ポートに接続されているマウスのプロトコルタイプを指定します。 以下に列挙されるタイプを陽に指定するか、 .Ar auto を指定して .Nm コマンドに適切なプロトコルを自動選択させることができます。 コマンドラインにてこのオプションを指定しないと、 .Fl t Ar auto が仮定されます。 通常では、 .Nm コマンドがプロトコルの自動検出ができない場合に必要です .Po Sx マウスデーモンの構成 を参照 .Pc 。 .Pp -また、 このオプションでプロトコルタイプを指定した場合、 前記 .Fl P オプションが暗示され、プラグアンドプレイ COM デバイス列挙処理が無効になります。 .Pp +また、マウスを PS/2 マウスポートに接続している場合、 +常に +.Ar auto +か +.Ar ps/2 +を選択すべきです。 +これは、マウスのブランドやモデルとは関係ありません。 +同様に、マウスをバスマウスポートに接続している場合、 +.Ar auto +か +.Ar busmouse +を選択してください。 +これらのマウスではシリアルマウスプロトコルは動作しません。 +.Pp このオプションにおける有効なタイプを以下に列挙します。 .Pp シリアルマウス: .Bl -tag -compact -width mousesystemsxxx .It Ar microsoft Microsoft シリアルマウスプロトコル。 大抵の 2 ボタンマウスはこのプロトコルを使用します。 .It Ar intellimouse Microsoft IntelliMouse プロトコル。 Genius NetMouse, ASCII Mie Mouse, Logitech MouseMan+, FirstMouse+ もこのプロトコルを使用します。 他のローラ/ホイールを持つマウスもこのプロトコル互換でしょう。 .It Ar mousesystems MouseSystems の 5 バイトプロトコル。 3 ボタンマウスはこのプロトコルを使用するかもしれません。 .It Ar mmseries MM Series マウスプロトコル。 .It Ar logitech Logitech マウスプロトコル。 これは古い Logitech モデルであることに注意。 新しいモデルには .Ar mouseman もしくは .Ar intellimouse を指定します。 .It Ar mouseman Logitech MouseMan と TrackMan のプロトコル。 3 ボタンマウスによってはこのプロトコル互換かもしれません。 MouseMan+ と FirstMouse+ は、このプロトコルではなく、 .Ar intellimouse プロトコルを使用します .It Ar glidepoint ALPS GlidePoint プロトコル。 .It Ar thinkingmouse Kensington ThinkingMouse プロトコル。 .It Ar mmhitab Hitachi タブレットプロトコル。 .It Ar x10mouseremote X10 MouseRemote。 .It Ar kidspad Genius の Kidspad と Easypad のプロトコル。 .El .Pp バスおよび InPort マウス: .Bl -tag -compact -width mousesystemsxxx .It Ar busmouse バスおよび InPort マウスはこのプロトコルのみ使用可能であり、 バスおよび InPort マウスはブランドに依らずこのオプションを 指定する必要があります。 .El .Pp PS/2 マウス: .Bl -tag -compact -width mousesystemsxxx .It Ar ps/2 PS/2 マウスはこのプロトコルのみ使用可能であり、 PS/2 マウスはブランドに依らずこのオプションを 指定する必要があります。 .El .It Fl w Ar N 物理ボタン .Ar N が、ホイールモードボタンとして動作するようにします。 このボタンが押されている間、X 軸および Y 軸の移動は 0 と報告され、 Y 軸の移動は Z 軸の移動に割り付けられます。 後述する .Fl z オプションを使用することにより、 Z 軸の移動を更に仮想ボタンに割り付けることができます。 .It Fl z Ar target Z 軸(ローラ/ホイール)動作を別の軸や仮想ボタンに割り付けます。 有効な .Ar target は以下のいずれかです: .Bl -tag -compact -width x__ .It Ar x .It Ar y X または Y 軸の移動として、検知した Z 軸移動を報告します。 .It Ar N 仮想ボタン .Ar N および .Ar N+1 を押したイベントとして、検知した負/正の Z 軸移動をそれぞれ報告します。 物理ボタン .Ar N と .Ar N+1 が存在する必要はありません。 論理ボタンへの割り付けは Z 軸移動を仮想ボタンへ割り付けた後に行われます。 .El .El .Ss マウスデーモンの構成 まず、使用予定マウスのインタフェースタイプを知ることが必要です。 これはマウスのコネクタを見れば分かります。 シリアルアウスは D-Sub の 9 ピンまたは 25 ピンのメスです。 バスおよび InPort のマウスは D-Sub 9 ピンのオスか丸い DIN 9 ピンコネクタです。 PS/2 マウスは小さくて丸い DIN 6 ピンコネクタです。 マウスによってはコネクタを別の形状に変換可能なコネクタが附属しています。 このようなアダプタを使用する場合には、 マウスから一番遠いコネクタの形状を見てください。 .Pp 次に決めねばならないことは、インタフェースのために使用するポートです。 バス、InPort、PS/2 マウスでは、選択肢はありません: バスおよび InPort マウスは常に .Pa /dev/mse0 を使用し、 PS/2 マウスは常に .Pa /dev/psm0 を使用します。 シリアルマウスの場合、接続可能なポートが複数ありえます。 多くの人が組み込みのシリアルポート .Pa /dev/cuaa0 をマウスに割当てます。 シンボリックリンク .Pa /dev/mouse でマウスの実際のポートを指すようにして、 どのマウスポートか後で簡単に分かるようにするのが良いかもしれません。 .Pp 次に適切なマウスプロトコルを選択します。 .Nm コマンドはマウスタイプを自動決定可能かもしれません。 .Nm コマンドを .Fl i オプションを付けて実行し、表示を見ます。 コマンドがプロトコルタイプを識別した場合、あなたは何も調べる必要はありません。 プロトコルタイプを指定せずにデーモンを起動可能です .Po Sx 使用例 を参照 .Pc 。 .Pp コマンドは、マウスドライバが .Ar sysmouse プロトコルをサポートする場合、 .Ar sysmouse と表示するかもしれません。 .Pp 表示される .Dv type と .Dv model は、対象のポインティングデバイスの製品名では必ずしもありませんが、 互換性のあるデバイスの名前でしょう。 .Pp .Fl i オプションがなにも表示しない場合、 .Nm に対して .Fl t オプションを使用し、プロトコルタイプを指定する必要があります。 予測して試行する必要があります。 以下に経験則を示します: .Pp .Bl -tag -compact -width 1.X .It 1. バスおよび InPort マウスはブランドに依らず .Ar busmouse プロトコルを使用します .It 2. PS/2 マウスはブランドに依らず .Ar ps/2 プロトコルを使用します .It 3. ほとんどの 2 ボタンシリアルマウスは .Ar microsoft プロトコルをサポートします。 .It 4. 3 ボタンシリアルマウスは .Ar mousesystems プロトコルで動作するかもしれません。動作しない場合には、 三番目(中)ボタンが機能せずに .Ar microsoft プロトコルで動作するでしょう。 3 ボタンシリアルマウスは、期待通り三番目のボタンが動作しつつ .Ar mouseman プロトコルで動作するかもしれません。 .It 5. 3 ボタンマウスには小さなスイッチが付いていて、 ``MS'' と ``PC'' または ``2'' と ``3'' とで選択できるできるようになっている かもしれません。 ``MS'' と ``2'' は通常 .Ar microsoft プロトコルを意味します。 ``PC'' と ``3'' は .Ar mousesystems プロトコルを選択します。 .It 6. マウスにローラやホイールが付いている場合、 .Ar intellimouse プロトコル互換でしょう。 .El .Pp マウスのために選択したプロトコルタイプが正しいかどうかテストする目的で、 現在の仮想コンソールでマウスポインタを有効にします。 .Pp .Dl vidcontrol -m on .Pp マウスデーモンをフォアグラウンドで開始します。 .Pp .Dl moused -f -p Ar _selected_port_ -t Ar _selected_protocol_ .Pp マウスポインタがマウスの移動に伴い、 正しく移動することを確認してください。 そして、カットとペーストの機能を左、右、中のボタンを使用して確認してください。 ^C をタイプすると、コマンドは停止します。 .Ss 複数のマウス システムに接続したマウスと同じ数だけ、マウスデーモンを同時実行可能です; 一つのマウスデーモンが一つのマウスに対応します。 ラップトップコンピュータ組み込みの PS/2 ポインティングデバイスを移動中使用し、 オフィスではドッキングステーション接続のシリアルマウスを使用する 場合に有用です。 マウスデーモンを二つ実行し、アプリケーションプログラム .Pq 例えば X Window System に .Xr sysmouse を使用させます。 するとアプリケーションプログラムは常に両マウスからマウスデータを受け取ります。 シリアルマウスが取り付けられていない場合、 対応するマウスデーモンは移動やボタン状態の変化を検出しませんので、 アプリケーションプログラムは PS/2 マウスのデーモンからのマウスデータ のみを使います。 一方この構成で両方のマウスを接続し同時に両方を動かした場合、 マウスの移動をすべて組み合わせたようにマウスポインタがスクリーン上を移動します。 .Sh 関連ファイル .Bl -tag -width /dev/consolectl -compact .It Pa /dev/consolectl コンソール制御デバイス .It Pa /dev/mse%d バスおよび InPort マウスのドライバ .It Pa /dev/psm%d PS/2 マウスドライバ .It Pa /dev/sysmouse 仮想化されたマウスドライバ .It Pa /dev/ttyv%d 仮想コンソール .It Pa /var/run/moused.pid 現在実行中の .Nm デーモンのプロセス ID .It Pa /var/run/MouseRemote X10 MouseRemote のイベントのための UNIX ドメインストリームソケット .El .Sh 使用例 .Pp .Dl moused -p /dev/cuaa0 -i type .Pp .Nm コマンドにシリアルポート .Pa /dev/cuaa0 に接続されたマウスのプロトコルタイプを識別させます。 成功すると、コマンドはタイプを表示しますが、 失敗すると ``unknown'' が表示されます。 .Pp .Dl moused -p /dev/cuaa0 .Dl vidcontrol -m on .Pp .Nm が指定されたポートのマウスプロトコルタイプを識別可能な場合、 .Fl t オプション無してデーモンを起動可能であり、 前記のようにマウスポインタをテキストコンソール上で有効にできます。 .Pp .Dl moused -p /dev/mouse -t microsoft .Dl vidcontrol -m on .Pp シリアルポート .Pa /dev/mouse に対してマウスデーモンを起動します。 プロトコルタイプは .Ar microsoft を .Fl t オプションにて陽に指定しています。 .Pp .Dl moused -p /dev/mouse -m 1=3 -m 3=1 .Pp 物理ボタン 3 (右ボタン) を論理ボタン 1 (論理的に左) に、 物理ボタン 1 (左ボタン) を論理ボタン 3 (論理的に右) に、 それぞれ割当てます。 左右のボタンを事実上交換します。 .Pp .Dl moused -p /dev/mouse -t intellimouse -z 4 .Pp Z 軸(ローラ)における負の移動をボタン 4 が押されたものとし、 Z 軸における正の移動をボタン 5 が押されたものとします。 .Sh 警告 .Nm コマンドは現在別のコンソールドライバ .Xr pcvt 4 では動作しません。 .Pp バッドデバイスの多くは、 ユーザがパッド表面を ``タップ'' した場合に最初の(左) ボタンが 押されたものとします。 また、ALPS GlidePoint モデルによっては、 タップ動作を 4 番目のボタンのイベントとして扱います。 このようなモデルでは、オプション ``-m 1=4'' を使用して、 他のパッドデバイスと同様の効果を得られます。 .Pp 仮想コンソールでのカットとペーストの機能は、 マウスに 3 ボタンあることを仮定しています。 論理ボタン 1 (論理的に左) は、 コンソールのテキスト領域を選択してカットバッファにコピーします。 論理ボタン 3 (論理的に右) は、 選択された領域を拡張します。 論理ボタン 2 (論理的に中) は、 選択されたテキストをテキストカーソル位置にペーストします。 マウスに 2 つしかボタンが無い場合、中央の `ペースト' ボタン は使用できません。 ペースト機能を使用するためには、 .Fl 3 オプションを使用して中ボタンをエミュレートするか、 .Fl m オプションを ``-m 2=3'' のように使用して 物理右ボタンに論理中ボタンを割当てます。 .Sh 関連項目 .Xr kill 1 , .Xr vidcontrol 1 , .Xr keyboard 4 , .Xr mse 4 , .Xr pcvt 4 , .Xr psm 4 , .Xr screen 4 , .Xr sysmouse 4 .Sh 規格 .Nm コマンドは ``Plag and Play External COM Device Specification'' の一部を サポートし、PnP シリアルマウスをサポートします。 しかしながら、シリアルマウスごとに仕様充足の度合が異なりますので、 標準のバージョン 1.0 に完全に従ってはいません。 このように厳密さを欠いた方法でも、シリアルマウスの適切なプロトコルタイプ を常に決定できるわけではありません。 .Sh 作者 .Nm コマンドは、 .An Michael Smith Aq msmith@FreeBSD.org によって書かれました。 このマニュアルは、 .An Mike Pritchard Aq mpp@FreeBSD.org によって書かれました。 コマンドとマニュアルページを、 .An Kazutaka Yokota Aq yokota@FreeBSD.org が更新しました。 .Sh 歴史 .Nm コマンドは、 .Fx 2.2 から導入されました。 diff --git a/ja_JP.eucJP/man/man8/ppp.8 b/ja_JP.eucJP/man/man8/ppp.8 index a60c8887dd..a625533466 100644 --- a/ja_JP.eucJP/man/man8/ppp.8 +++ b/ja_JP.eucJP/man/man8/ppp.8 @@ -1,4700 +1,4727 @@ -.\" %Id: ppp.8,v 1.142.2.6 1999/05/02 08:59:50 brian Exp % +.\" %Id: ppp.8,v 1.142.2.7 1999/06/08 11:59:49 brian Exp % +.\" .\" jpman %Id: ppp.8,v 1.4 1997/06/08 18:41:58 saeki Stab % .\" WORD: expect string 受信待ち文字列 (chat.8) .\" WORD: negotiation 交渉 .Dd 20 September 1995 .nr XX \w'\fC00' .Os FreeBSD .Dt PPP 8 .Sh 名称 .Nm ppp .Nd PPP (Point to Point Protocol) (別名 user-ppp) .Sh 書式 .Nm .Oo .Fl auto | .Fl background | .Fl ddial | .Fl direct | .Fl dedicated .Oc .Op Fl alias .Op Ar system Ns .No ... .Sh 解説 本プログラムは、ユーザプロセスとして動作する .Em PPP パッケージです。 .Em PPP は通常、( .Xr pppd 8 でそうなっているように) カーネルの一部として実装されますが、 そのため、デバッグや動作の変更が少々難しい場合があります。 それに対し、この実装ではトンネルデバイスドライバ (tun) を利用して、 ユーザプロセスで .Em PPP を実現しています。 .Sh 主な特徴 .Bl -diag .It 対話的なユーザインタフェースを提供 コマンドモードで利用する場合、ユーザがコマンドを 入力することで、簡単にリモートコンピュータとの接続の確立、 接続状態の確認、 接続の切断を行うことができます。 オプションとして、セキュリティ確保のために すべての機能をパスワードで保護することができます。 .It 手動と自動でのダイヤルをサポート 対話モードでは、直接モデムと通信できるように .Dq term コマンドが用意されています。 モデムがリモートホストと接続されて、 .Em PPP での通信が始まったら、 .Nm はそれを検出して自動的にパケットモードに移行します。 ひとたびリモートホストとの接続に必要なコマンドシーケンスがわかったら、 後々の接続を簡単にするため、必要なダイヤル手順やログイン手順を定義した チャットスクリプトを書くことができます。 .It オンデマンドでのダイヤルアップをサポート .Fl auto モード (自動モード) では .Nm はデーモンとして動作し、 .Em PPP リンクを通して送られるパケットを待ちうけます。 パケットを検出すると、デーモンが自動的にダイヤルを行って接続を確立します。 .Fl ddial モード (直接ダイヤルモード) でも ほぼ同様に、自動ダイヤルと接続の確立を行います。 しかしながらこのモードは、送るべきパケットが存在しない場合にも、 リンクが切れていることを検出するといつでもリモートへダイヤルするという点が auto モードと異なります。 このモードは、電話料金よりも常時接続されていることが重視される場合に有用です。 3 番目の .Fl dedicated モード (専用線モード) も利用可能です。 このモードは 2 つのマシン間の専用線を対象にしています。 専用線モードでは .Nm は自発的に動作を終了することはありません - 終了するには .Dq quit all コマンドを診断ソケットを介して送る必要があります。 .Dv SIGHUP は LCP の再交渉を強要し、 .Dv SIGTERM は終了を強要します。 .It クライアントコールバックをサポート .Nm は標準 LCP コールバックプロトコルならびに Microsoft コールバック制御プロトコル (ftp://ftp.microsoft.com/developr/rfc/cbcp.txt) を使用できます。 .It パケットエイリアシングをサポート パケットエイリアシング (別名: IP マスカレード) により、 未登録でプライベートなネットワーク上のコンピュータからも インターネットにアクセスすることが可能です。 .Em PPP ホストはマスカレードゲートウェイとして動作します。 送信パケットの IP アドレスと TCP や UDP のポート番号は どちらもエイリアスされ、返信パケットではエイリアスが元に戻されます。 .It バックグラウンド PPP 接続をサポート バックグラウンドモードでは、接続を確立するのに成功した場合に .Nm はデーモンになります。 それ以外の場合はエラーで終了します。 これにより、 接続が成功裏に確立した場合のみコマンドを実行するようなスクリプト をセットアップすることが出来ます。 .It サーバとしての PPP 接続をサポート ダイレクトモードでは、 .Nm は標準入力/標準出力からの .Em PPP 接続を受け入れるサーバとして動作させることができます。 .It PAP と CHAP (rfc 1994) による認証をサポート PAP もしくは CHAP を用いることにより、Unix スタイルの .Xr login 1 手続きをスキップし、 .Em PPP プロトコルを代りに認証に使用することが可能です。 相手が Microsoft CHAP 認証を要求し、かつ .Nm が DES をサポートするようにコンパイルされている場合、適当な MD4/DES 応答がなされます。 .It RADIUS (rfc 2138) 認証をサポート PAP と CHAP の拡張である .Em \&R Ns No emote .Em \&A Ns No ccess .Em \&D Ns No ial .Em \&I Ns No n .Em \&U Ns No ser .Em \&S Ns No ervice は、集中データベースまたは分散データベースに、 ユーザごとに異なる接続特性を含んだ認証情報を、格納できます。 コンパイル時に .Pa libradius が利用可能な場合、利用するように設定すると、 .Nm はこれを使用して .Em RADIUS 要求を作成します。 .It 代理 arp (Proxy Arp) をサポート .Nm が相手のために 1 個以上の代理 arp エントリを作成するように、設定可能です。 LAN 上の各マシンでの設定を行わずに、 相手側から LAN へのルーティングを可能とします。 .It パケットのフィルタリングをサポート ユーザは 4 種類のフィルタを定義できます。 .Em in は受信パケットに対するフィルタです。 .Em out は送信パケットに対するフィルタです。 .Em dial はダイヤルを行うきっかけとなるパケットを定義するフィルタで、 .Em alive は接続を保持するためのパケットを定義するフィルタです。 .It トンネルドライバは bpf (Berkeley Packet Filter) をサポート .Em PPP リンクを流れるパケットを調べるために、 .Xr tcpdump 1 を使うことができます。 .It PPP オーバ TCP をサポート デバイス名が .Em host Ns No : Ns Em port 形式で指定された場合、 .Nm は通常のシリアルデバイスを使うのではなく、データ転送のための TCP 接続を開きます。 .It "IETF ドラフトの Predictor-1 (rfc 1978) と DEFLATE (rfc 1979) 圧縮をサポート .Nm は VJ 圧縮の他に Predictor-1 と DEFLATE 圧縮もサポートしています。 モデムは通常 (例えば v42.bis のような) 組み込みの圧縮機能を持っており、 その結果システムは .\"(訳注)「転送データレートよりも」をここにいれたいと考えています。 .\" 2.2.1R 対象(1997/04/02) Takeshi MUTOH より高いデータレートで通信できます。 これは一般には良いことですが、より高速のデータによってシリアル回線からの 割り込みが増加します。 システムはこの割り込みをモデムと通信して処理しなくてはならないため、 システムの負荷と遅延時間が増加することになります。 VJ 圧縮とは異なり、Predictor-1 と DEFLATE 圧縮はリンクを通る .Em すべての ネットワークトラフィックをあらかじめ圧縮しておくことで、オーバヘッドを 最小にします。 .It Microsoft の IPCP 拡張をサポート Microsoft の .Em PPP スタックを使用するクライアント (つまり Win95, WinNT) との間で ネームサーバのアドレスと NetBIOS ネームサーバのアドレスを 交渉することができます。 .It マルチリンク PPP をサポート (rfc 1990) 接続先への複数の物理的な回線をオープンし、すべてのリンクの 帯域幅を合わせてより高いスループットを得ることができます。 .El .Sh パーミッション .Nm はユーザ .Dv root 、グループ .Dv network 、パーミッション .Dv 04554 でインストールされます。 デフォルトでは .Nm は、起動したユーザ ID が 0 でない場合には実行しません。 これは .Dq allow users コマンドを .Pa /etc/ppp/ppp.conf に記載することにより変更することが可能です。 通常ユーザとして実行する場合には、 .Nm はユーザ ID 0 に変わり、システムの経路表の変更と、 システムロックファイルの作成と、 ppp の設定ファイルの読み込みを行います。 すべての外部コマンド ("shell" や "!bg" で実行されます) は、 .Nm を起動したユーザ ID で実行されます。 ユーザ ID 0 にて正確になにが行われているのかに興味がある場合には、 ログ機能の .Sq ID0 を参照してください。 .Sh 始める前に 次のコマンドラインスイッチを .Nm ppp は理解します: .Bl -tag -width XXX -offset XXX .It Fl auto .Nm は tun インタフェースをオープンし、これを設定した後バックグラウンドになります。 出力データが tun インタフェース上で検出されるまでリンクはアップせず、 出力データが tun インタフェース上で検出されると .Nm はリンクをアップしようとします。 .Nm がリンクをアップしようとしている間に受信したパケット (最初のものを含みます) は、デフォルトで 2 分間キューにとどまります。 後述の .Dq set choked コマンドを参照してください。 .Pp コマンドラインには少なくとも 1 つの .Dq system を指定する必要があり (後述)、 インタフェース設定時に使用する相手の IP アドレスを指定する .Dq set ifaddr を、システムプロファイルで実行する必要があります。 通常、 .Dq 10.0.0.1/0 のようなものが適切です。例としては、 .Pa /usr/share/examples/ppp/ppp.conf.sample の .Dq pmdemand システムを参照してください。 .It Fl background この場合、 .Nm は相手との接続をすぐに確立しようとします。 成功すると、 .Nm はバックグラウンドになり、親プロセスは終了コード 0 を返します。 失敗すると、 .Nm は非 0 の結果で終了します。 .It Fl direct これは入力接続を受け付けるために使用します。 .Nm は .Dq set device 行を無視し、リンクにデスクリプタ 0 を使用します。 .Pp コールバックの設定を行うと、ダイヤルバック時に .Nm は .Dq set device 情報を使用します。 .It Fl dedicated このオプションは、専用線で接続されたマシンのためにデザインされています。 .Nm はデバイスを常にオープンに保ち、設定チャットスクリプトは一切使用しません。 .It Fl ddial .Fl auto モードと等価ですが、なんらかの理由でリンクが落ちた場合に .Nm が再度リンクをアップすることが違います。 .It Fl interactive これは no-op であり、前述のフラグがどれも指定されなかった場合の動作を行います。 .Nm -はコマンドラインで指定されたシステムをロードし、対話プロンプトを提供します。 +はコマンドラインで指定されたセクションをロードし、対話プロンプトを提供します。 .It Fl alias このフラグは .Nm のモードを制御しません。 .Dq enable alias yes と等価です。さらに、 .Fl auto もまた指定されている場合、暗黙的に .Dq enable iface-alias が実行されます。 詳細については後述しているものを参照してください。 .Pp IP エイリアシングを有効にすると、 .Nm は、内部 LAN 上の全マシンに対する NAT もしくはマスカレーディングエンジンとして動作します。詳細は .Xr libalias 3 を参照してください。 .El .Pp -さらに、1 つ以上の system をコマンドライン上に指定可能です。 -.Sq system -は -.Pa /etc/ppp/ppp.conf -の設定エントリです。起動時に +さらに、1 つ以上の設定エントリ +.Pq Pa /etc/ppp/ppp.conf で指定されます +をコマンドライン上に指定可能です。 +起動時に .Nm は .Pa /etc/ppp/ppp.conf から .Dq default システムを読み込み、その後コマンドラインで指定した各 system を読み込みます。 .Pp .Fl auto , .Fl background , .Fl ddial , .Fl direct , .Fl dedicated , .Fl interactive のいずれか 1 つのスイッチのみ指定可能です。 .Nm の .Sq モード は、 .Dq set mode コマンド (後述) を使用することで後で変更可能です。 .Pp 以降、対話モードの使用方法について説明します。 .Pp 最初に .Nm を実行する時には、いくつかの初期設定を整える必要があります。 .Bl -bullet .It カーネルにトンネルデバイスが含まれていなければ なりません (GENERIC カーネルではデフォルトで 1 つ含まれます)。 もし含まれていない場合や複数の tun インタフェースが必要な場合、 次の行をカーネル設定ファイルに追加して、 カーネルを再構築する必要があります: .Pp .Dl pseudo-device tun N .Pp ここで .Ar N は .Em PPP 接続を行いたい最大の数です。 .It .Pa /dev ディレクトリにトンネルデバイスのエントリ .Pa /dev/tunN があるかどうかを調べてください。 ここで .Sq N は、0 から始まる tun デバイスの番号です。 もし無いようならば、"sh ./MAKEDEV tunN" を実行すれば作ることができます。 これにより 0 から .Ar N までの tun デバイスが作成されます。 .It あなたのシステムの .Pa /etc/group ファイルに .Dq network グループがあり、そのグループが .Nm を使うと想定されるすべてのユーザ名を含んでいることを確かめてください。 詳細は .Xr group 5 マニュアルページを参照してください。また、これらのユーザは .Pa /etc/ppp/ppp.conf ファイルで .Dq allow users コマンドを使用してアクセス権が与えられなければなりません。 .It ログファイルを作成します。 .Nm は .Xr syslog 3 を使用して情報を記録します。通常のログファイル名は .Pa /var/log/ppp.log です。 このファイルに出力を行うためには、次の行を .Pa /etc/syslog.conf ファイルに記述してください: .Bd -literal -offset indent !ppp *.*/var/log/ppp.log .Ed .Pp .Nm の実行形式にリンクを作成することにより、複数の .Em PPP ログファイルを持つことが可能です: .Pp .Dl # cd /usr/sbin .Dl # ln ppp ppp0 .Pp として .Pa /etc/syslog.conf で .Bd -literal -offset indent !ppp0 *.*/var/log/ppp0.log .Ed .Pp とします。 .Pa /etc/syslog.conf を更新した後に、 .Xr syslogd 8 に .Dv HUP シグナルを送ることをお忘れなく。 .It 厳密には .Nm の操作とは関係ありませんが、リゾルバが正しく働くように設定した方が 良いでしょう。 これは .Pq Xr named 8 を用いて ローカルな DNS サーバを設定するか、もしくは .Pa /etc/resolv.conf ファイルに適切な .Sq name-server 行を加えることで行われます。 詳細は .Xr resolv.conf 5 のマニュアルを参照してください。 .Pp 他の方法として、もし接続先がサポートしている場合には .Nm が接続先にネームサーバのアドレスを尋ねて、自動的に .Pa /etc/resolv.conf を更新することができます。詳細は後述の .Dq enable dns コマンドを参照してください。 .El .Sh 手動ダイヤル 次の例では、あなたのマシン名が .Dv awfulhak であるとして説明します。 .Nm を引数無しで起動すると (前述の .Sx パーミッション 参照) 次のプロンプトが表示されます: .Bd -literal -offset indent ppp ON awfulhak> .Ed .Pp プロンプトの .Sq ON の部分は常に大文字であるべきです。ここが小文字の場合、 .Dq passwd コマンドを使用してパスワードを入力しなければならないことを意味します。 実行中の .Nm に接続し、 まだ正しいパスワードを入力していない場合にのみこのような状態になります。 .Pp .Bd -literal -offset indent ppp ON awfulhak> set device /dev/cuaa0 ppp ON awfulhak> set speed 38400 .Ed .Pp 通常ハードウェアフロー制御 (CTS/RTS) を使用します。 しかし、特定の場合 (特定の PPP 可能な端末サービスに直接接続している場合に起り得ます)、 .Nm が通信リンクにデータを書き込もうとしたときに、 永遠に来ない CTS (送信時にクリア) シグナルを待つことにより .Nm がハングします。 直通線で接続できない場合は、 .Dq set ctsrts off で CTS/RTS をオフにしてみてください。 これが必要な場合、後述の .Dq set accmap の記述も参照してください - .Dq set accmap 000a0000 も必要かもしれません。 .Pp 通常、パリティは .Dq none に設定します。これが .Nm ppp のデフォルトです。 パリティはどちらかというと古風なエラーチェック機構であり、 今となっては使用しません。 最近のモデムは各自のエラーチェック機構を持っており、 ほとんどのリンク層プロトコル ( .Nm はこれです) はより信頼できるチェック機構を使用します。 パリティは相対的に大きなオーバヘッドを持ちますので (トラフィックが 12.5% 増加します)、 .Dv PPP がオープンされると常に無効化 .Pq set to Dq none されます。 しかし、ISP (インターネットサービスプロバイダ) によっては、 特定のパリティ設定を接続時 ( .Dv PPP がオープンする前) に使用するものがあります。 特に、Compuserve はログイン時に偶数パリティに固執しています: .Bd -literal -offset indent ppp ON awfulhak> set parity even .Ed .Pp ここで、現在のモデム設定がどのようになっているか見られます: .Bd -literal -offset indent ppp ON awfulhak> show modem Name: deflink State: closed Device: N/A Link Type: interactive Connect Count: 0 Queued Packets: 0 Phone Number: N/A Defaults: Device List: /dev/cuaa0 Characteristics: 38400bps, cs8, even parity, CTS/RTS on Connect time: 0 secs 0 octets in, 0 octets out Overall 0 bytes/sec ppp ON awfulhak> .Ed .Pp ここでは、直接モデムと通信するために term コマンドを使用可能です: .Bd -literal -offset indent ppp ON awfulhak> term at OK atdt123456 CONNECT login: myispusername Password: myisppassword Protocol: ppp .Ed .Pp 相手が .Em PPP で話しはじめると、 .Nm はそれを自動的に検出してコマンドモードに戻ります。 .Bd -literal -offset indent ppp ON awfulhak> # リンクは確立していません Ppp ON awfulhak> # 接続完了、LCP 完了 PPp ON awfulhak> # 認証完了 PPP ON awfulhak> # IP アドレス合意完了 .Ed .\" your end で「あなた側」 .Pp このようにならない場合、接続先がこちらの開始交渉を 待っている可能性があります。 強制的に .Nm に接続先への PPP 設定パケットの送出を開始させるためには .Dq ~p コマンドを使い、端末モードを抜けてパケットモードに移行して下さい。 .Pp それでもログインプロンプトが得られない場合、 Unix 的なログイン/パスワード認証ではなく、PAP または CHAP の認証を、 相手は要求している可能性が非常に高いです。 正しく設定するためには、プロンプトに戻り、 認証用の名前とキーを設定し、再度接続します: .Bd -literal -offset indent ~. ppp ON awfulhak> set authname myispusername ppp ON awfulhak> set authkey myisppassword ppp ON awfulhak> term at OK atdt123456 CONNECT .Ed .Pp ここで再度、交渉開始するように ppp に指定できます: .Bd -literal -offset indent ~p ppp ON awfulhak> # リンクは確立していません Ppp ON awfulhak> # 接続完了、LCP 完了 PPp ON awfulhak> # 認証完了 PPP ON awfulhak> # IP アドレス合意完了 .Ed .Pp これで接続されました! プロンプトの .Sq PPP が大文字に変化して、接続されたことを知らせます。もし 3 つの P の内 いくつかだけが大文字になっている場合には、すべての文字が大文字もしくは 小文字になるまで待ってください。もし小文字に戻った場合には、それは .Nm が接続先との交渉に成功しなかったことをを意味します。 この時点での問題解決の第一歩としては、次のようにし、再挑戦します。 .Bd -literal -offset indent ppp ON awfulhak> set log local phase lcp ipcp .Ed .Pp 詳細は、下記の .Dq set log コマンドの説明を参照してください。 この時点でも失敗する場合、 ログを有効にして再挑戦することが非常に重要です。 プロンプトの変化に注意し、あなたを助けてくれる人に報告することもまた重要です。 .Pp リンクが確立したら、show コマンドを使用することで、 どのように事態が進行しているのかが分ります: .Bd -literal -offset indent PPP ON awfulhak> show modem * モデム関連の情報がここに表示されます * PPP ON awfulhak> show ccp * CCP (圧縮) 関連の情報がここに表示されます * PPP ON awfulhak> show lcp * LCP (回線制御) 関連の情報がここに表示されます * PPP ON awfulhak> show ipcp * IPCP (IP) 関連の情報がここに表示されます * PPP ON awfulhak> show link * (高レベル) リンク関係の情報がここに表示されます * PPP ON awfulhak> show bundle * (高レベル) 論理接続関係の情報がここに表示されます * .Ed .Pp この時点で、マシンは接続先に対するホスト単位の経路 (host route) を持っています。 これはリンクの相手のホストとのみ接続可能であるという意味です。 デフォルト経路のエントリ (他の経路エントリを持たずに、全パケットを .Em PPP リンクの相手に送る ように、あなたのマシンに指示します)を追加したければ、 次のコマンドを入力してください。 .Bd -literal -offset indent PPP ON awfulhak> add default HISADDR .Ed .Pp .Sq HISADDR という文字列は、相手側の IP アドレスを表します。 既存の経路のために失敗する場合には、 .Bd -literal -offset indent PPP ON awfulhak> add! default HISADDR .Ed .Pp を用いることで既存の経路を上書きできます。 このコマンドは、実際に接続を作成する前に実行可能です。 新しい IP アドレスを接続時に交渉する場合、これに従って .Nm がデフォルト経路を更新します。 .Pp ここで、(ping, telnet, ftp のような) ネットワークアプリケーションを、 あなたのマシンの別のウィンドウまたは端末で使用可能です。 現在の端末を再利用したい場合、 .Nm をバックグラウンドモードにするために、 標準のシェルのサスペンドとバックグラウンドコマンド (通常 .Dq ^Z の後に .Dq bg ) を使用可能です。 .Pp 使用可能コマンドの詳細は .Sx PPP コマンドリスト の節を参照してください。 .Sh 自動ダイヤル 自動ダイヤルを行うためには、ダイヤルとログインのチャットスクリプトを 用意しなければなりません。定義の例は .Pa /usr/share/examples/ppp/ppp.conf.sample を見てください ( .Pa /etc/ppp/ppp.conf の書式は非常に簡単です)。 各行は単一のコメント、インクルード、ラベル、コマンドのいずれかを含みます。 .Bl -bullet .It .Pq Dq # 文字で始まる行は、コメントとして扱われます。 コメント行と認識した場合、先行する空白は無視されます。 .It インクルードは語 .Sq !include から始まる行です。 1 つの引数 - インクルードするファイル - を持つ必要があります。 古いバージョンの .Nm との互換性のために、 .Dq !include ~/.ppp.conf を使用したいかもしれません。 .It ラベルは行頭から始まり、最後にコロン .Pq Dq \&: が続かなければなりません。 .It コマンド行は、最初の桁に空白かタブを含む必要があります。 .El .Pp .Pa /etc/ppp/ppp.conf ファイルには少なくとも .Dq default セクションが存在する必要があります。 このセクションは常に実行されます。 このファイルには 1 つ以上のセクションが含まれます。 セクション名は用途に応じて付けます。例えば、 .Dq MyISP はあなたの ISP を表したり、 .Dq ppp-in は入力の .Nm 構成を表したります。 .Nm ppp を立ち上げる際に、接続先のラベル名を指定可能です。 .Dq default ラベルに関係づけられたコマンドが実行されてから、 接続先ラベルに関連づけられたコマンドが実行されます。 .Nm を引数無しで起動した場合、 .Dq default だけは実行されます。load コマンドを使用して、 .Pa /etc/ppp/ppp.conf のセクションを手動でロード可能です: .Bd -literal -offset indent -PPP ON awfulhak> load MyISP +ppp ON awfulhak> load MyISP .Ed .Pp +セクションロード後には、 +.Nm +はいかなる動作も行わないことに注意してください。 +これは、コマンドラインでラベルを指定した結果でも、 +.Dq load +コマンドを使用した結果でも同様です。 +設定ファイル中で、そのラベルに対して指定されたコマンドのみが、実行されます。 +一方、 +.Nm +を +.Fl background , +.Fl ddial , +.Fl dedicated +のいずれかのスイッチ付きで起動したときには、 +.Nm +が接続を確立するように、リンクモードが指示します。 +更なる詳細については、後述の +.Dq set mode +コマンドを参照してください。 +.Pp ひとたび接続が確立したなら、プロンプトの .Sq ppp は .Sq PPP に変わります: .Bd -literal -offset indent # ppp MyISP \&... ppp ON awfulhak> dial Ppp ON awfulhak> PPp ON awfulhak> PPP ON awfulhak> .Ed .Pp Ppp プロンプトは .Nm が認証フェースに入ったことを示します。PPp プロンプトは .Nm がネットワークフェーズに入ったことを示します。PPP プロンプトは .Nm がネットワーク層プロトコルの交渉に成功し、使用可能状態にあることを示します。 .Pp もし .Pa /etc/ppp/ppp.linkup が利用可能ならば、 .Em PPP 接続が確立された時に、その内容が実行されます。 接続が確立された後のバックグラウンドでのスクリプト実行については、 提供されている .Pa /usr/share/examples/ppp/ppp.conf.sample (使用可能な置換文字列については、後述の .Dq shell と .Dq bg を参照してください) の .Dq pmdemand の例を参照してください。 同様に、接続が閉じられると、 .Pa /etc/ppp/ppp.linkdown ファイルの内容が実行されます。 これらのファイルのフォーマットは .Pa /etc/ppp/ppp.conf と同じです。 .Pp 以前のバージョンの .Nm では、デフォルト経路のような経路は .Pa ppp.linkup ファイルで追加し直す必要がありました。 現在では .Nm は、 .Dv HISADDR もしくは .Dv MYADDR が変化したときに、自動的に .Dv HISADDR もしくは .Dv MYADDR 文字列を含むすべての経路を更新する .Sq スティッキー経路 をサポートします。 .Sh バックグラウンドダイヤル .Nm を使って非対話的に接続を確立したい場合 (例えば .Xr crontab 5 エントリや .Xr at 1 ジョブから使うような場合) には、 .Fl background オプションを使います。 .Fl background が指定された場合、 .Nm はすぐに接続を確立しようとします。 複数の電話番号が指定された場合には、各電話番号が 1 回づつ試されます。 これらに失敗すると、 .Nm は即座に終了し、0 でない終了コードを返します。 接続に成功すると .Nm はデーモンになり、呼び出し側に終了コード 0 を返します。 デーモンは、リモートシステムが接続を終了した場合、 もしくは .Dv TERM シグナルを受け取った場合に、自動的に終了します。 .Sh ダイヤルオンデマンド デマンドダイヤル機能は .Fl auto または .Fl ddial オプションにて有効にされます。この場合にも .Pa /etc/ppp/ppp.conf で定義された接続先のラベルを指定しなければなりません。 これには、リモート接続先の IP アドレスを指定するための .Dq set ifaddr コマンドも書かれていなければなりません ( .Pa /usr/share/examples/ppp/ppp.conf.sample を参照してください)。 .Bd -literal -offset indent # ppp -auto pmdemand .Ed .Pp .Fl auto または .Fl ddial が指定された時に .Nm はデーモンとして動作しますが、 .Pa /etc/ppp/ppp.conf 中で .Dq set server コマンドを使うことで、設定を確認したり変更したりすることができます。 .Po たとえば、 .Dq set server +3000 mypasswd とすると .Pc 次のように診断ポートを通じて接続することができます。 .Bd -literal -offset indent # pppctl 3000 (tun0 を仮定) Password: PPP ON awfulhak> show who tcp (127.0.0.1:1028) * .Ed .Pp .Dq show who コマンドは現在 .Nm 自身に接続しているユーザの一覧を表示します。診断ソケットが閉じられる、 もしくは異なるソケットに変更された場合、すべての接続は即座に終了します。 .Pp .Fl auto モードにて 送信パケットが検出された時、 .Nm は (チャットスクリプトに基づいて) ダイヤルを行い、 通信相手に接続しようとします。 .Fl ddial モードでは回線がダウンしていることが確認された場合にはいつでも ダイヤルが行われます。 接続に失敗したら、デフォルトの動作では 30 秒間待ってから、 別の送信パケットが検出された時に接続しようとします。 .Pp この動作は .Dq set redial コマンドで変更できます。 .Pp .No set redial Ar secs Ns Xo .Oo + Ns Ar inc Ns .Op - Ns Ar max Ns .Oc Op . Ns Ar next .Op Ar attempts .Xc .Pp .Bl -tag -width attempts -compact .It Ar secs は、再び接続しようとするまでの秒数です。 引数がリテラル文字列 .Sq Li random の場合には、待ち時間を 1 秒以上から 30 秒以下の間でランダムに選びます。 .It Ar inc は秒数であり、 新規にダイヤルするときに .Ar secs に加えられます。 このタイムアウト値が .Ar secs に戻るのは、接続が成功裏に確立した後だけです。 .Ar inc のデフォルト値は 0 です。 .It Ar maxinc は、 .Nm が .Ar secs を増加させる最大回数です。 .Ar maxinc のデフォルト値は 10 です。 .It Ar next は電話番号リストの中の次の番号をダイヤルする前に待つ秒数です。( .Dq set phone コマンドを参照してください)。これのデフォルトは 3 秒です。 繰り返しますが、引数がリテラル文字列 .Sq Li random の場合には、待ち時間を 1 秒以上 30 秒以下の間でランダムに選びます。 .It Ar attempts は、受け取った個々の送信パケットに対して、何回接続を試みるのかを示す 数字です。 .It Ar attempts に 0 を指定すると、接続されるまで試みを続けます。 .Bd -literal -offset indent set redial 10.3 4 .Ed .Pp は個々の送信パケットに対して 4 回接続を試み、 番号間の待ち時間が 3 秒で、すべての番号を試した後に 10 秒待つことを表します。 複数の電話番号が指定されている場合でも、トータルのダイヤル回数は 4 回のままです。 (それぞれの番号を 4 回ダイヤルするのではありません)。 .Pp 代りに、 .Pp .Bd -literal -offset indent set redial 10+10-5.3 20 .Ed .Pp は、 .Nm に接続を 20 回試みさせます。最初の試みの後は、 .Nm は 10 秒待ちます。 次の試みの後は 20 秒待ちということを、 6 番目の試みの後では 1 分待つところまで行います。 次の 14 回の停止は、同じ 1 分間となります。 .Nm が接続し、切断した後、再度接続に失敗した場合、 タイムアウト値は再度 10 秒から開始します。 .Pp リンクの両端が .Nm の .Fl auto ダイヤルモードを利用している場合は、 ダイヤル間隔を変更しておくのが良いでしょう。 もし、リンクの両端が同じタイムアウト時間に設定されていて、 リンクが切れて両方に送信待ちのパケットがあった場合、 両方が同時に相手を呼び出しあうことになってしまいます。 場所によっては、シリアルリンクに信頼性がなく、 切れるべきでない時にキャリアが失われるかもしれません。 セッションの途中で予期せずキャリアが失われた場合、 .Nm にリダイヤルさせることができます。 .Bd -literal -offset indent set reconnect timeout ntries .Ed .Pp このコマンドは、キャリアが失われた時に .Ar timeout 秒の間隔を置いて .Ar ntries 回まで接続を再確立するよう .Nm に指示します。例えば、 .Bd -literal -offset indent set reconnect 3 5 .Ed .Pp は、予期せぬキャリア喪失の際に .Ar 3 秒待ってから再接続を試みるように .Nm に指示します。これは .Nm があきらめる前に .Ar 5 回まで行われます。 ntries のデフォルト値は 0 (再接続しない) です。 このオプションを使用する際には注意が必要です。 もしローカル側のタイムアウトがリモート側よりもわずかに長いと、 リモート側がタイムアウトにより回線を切断した場合に、 再接続機能が (指定した回数まで) 起動されてしまいます。 注: この文脈においては、多くの LQR を喪失するとキャリア喪失を引き起こし、 ひいては再接続を引き起こします。 .Fl background フラグが指定された場合、接続が行えるまで すべての電話番号が最大 1 回ダイヤルされます。 .Dq set redial コマンドにて、リダイヤル期間の後に、 再接続回数を指定します。 リダイヤル値が指定した電話番号数より少ない場合、 指定した電話番号で使用されないものが出来ます。 プログラムを終了させるには、次のように入力してください。 .Bd -literal -offset indent PPP ON awfulhak> close ppp ON awfulhak> quit all .Ed .Pp .Dq quit コマンドは .Xr pppctl 8 もしくは .Xr telnet 1 による接続を終了しますが、 プログラム自身は終了させません。 .Nm も終了させたい場合には、 .Dq quit all を実行してください。 .Sh PPP 接続の受け入れ (方法その 1) .Em PPP 接続要求を受け入れるには、次の手順にしたがってください。 .Bl -enum .It モデムと、 (必要であれば) .Pa /etc/rc.serial が正しく設定されていることを確認します。 .Bl -bullet -compact .It フロー制御にはハードウェアハンドシェイク (CTS/RTS) を使います。 .It モデムはエコーバックを行わず (ATE0) 、コマンドの結果も報告しない (ATQ1) ように設定されていなければなりません。 .El .Pp .It モデムが接続されているポートで .Xr getty 8 が起動されるように .Pa /etc/ttys を編集します。 例えば、次のように設定すれば良いでしょう: .Pp .Dl ttyd1 "/usr/libexec/getty std.38400" dialup on secure .Pp .Xr getty 8 を起動するために .Xr init 8 プロセスに .Dv HUP シグナルを送るのを 忘れないでください: .Pp .Dl # kill -HUP 1 .It .Pa /usr/local/bin/ppplogin ファイルを次のような内容で作成します: .Bd -literal -offset indent #!/bin/sh exec /usr/sbin/ppp -direct incoming .Ed .Pp ダイレクトモード .Pq Fl direct では、 .Nm は標準入力と標準出力を使って動作します。クライアント動作の .Nm と同様に、 .Xr pppctl 8 を使用することで、構成された診断ポートに接続可能です。 .Pp ここで .Pa /etc/ppp/ppp.conf 中の .Ar incoming セクションが設定されていなければなりません。 .Pp .Ar incoming セクションに適当な .Dq allow users コマンドがあることを確かめておいてください。 .It 受け入れるユーザのアカウントを用意してください。 .Bd -literal ppp:xxxx:66:66:PPP Login User:/home/ppp:/usr/local/bin/ppplogin .Ed .Pp 詳細は .Xr adduser 8 と .Xr vipw 8 のマニュアル項目を参照してください。 .Dq accept dns および .Dq set nbns コマンドを使うことで IPCP によるドメインネームサーバと NetBIOS ネームサーバの 交渉を有効にすることが可能です。 下記の記述を参照してください。 .El .Pp .Sh PPP 接続の受け入れ (方法その 2) この方法は、 .Xr login 1 ではなく .Nm ppp で接続の認証を行うという点が異なります。 .Bl -enum .It .Pa /etc/gettytab の default セクションに .Dq pp ケーパビリティを指定することで ppp を自動的に認識するように 設定してください。 .Bd -literal default:\\ :pp=/usr/local/bin/ppplogin:\\ ..... .Ed .It 上記の方法その 1 の最初の 3 手順と同じように、 シリアルデバイスを設定し、 .Xr getty 8 を有効にして、 .Pa /usr/local/bin/ppplogin を作成してください。 .It .Pa /etc/ppp/ppp.conf の .Sq incoming ラベル (もしくは .Pa ppplogin が用いるラベルならなんでも構いません) 下に .Dq enable chap か .Dq enable pap .Pq もしくはその両方 を加えてください。 .It .Pa /etc/ppp/ppp.secret に、受け入れるユーザそれぞれについて、エントリを作成してください。 .Bd -literal Pfredxxxx Pgeorgeyyyy .Ed .El .Pp これで、 .Xr getty 8 は (HDLC フレームヘッダを認識することで) ppp 接続を検出すると、すぐに .Dq /usr/local/bin/ppplogin を実行します。 .Pp 上記のように PAP もしくは CHAP を有効にすることは .Em 必須 です。そうしなければ、あらゆる人があなたのマシンにパスワード .Em なしに ppp セッションを確立することを許可し、 あらゆる種類の潜在的な攻撃に対して門戸を開いていることになります。 .Sh 内向き接続の認証 通常、接続の受信側は相手が相手自身を認証することを要求します。 これは通常 .Xr login 1 にて行われますが、代りに PAP か CHAP を使用可能です。 2 つのうちで CHAP の方がより安全ですが、 クライアントによってはサポートしていないものがあります。 どちらを使いたいか決めたら、 .Sq enable chap または .Sq enable pap を .Pa ppp.conf の適切なセクションに追加してください。 .Pp その後、 .Pa /etc/ppp/ppp.secret ファイルの設定を行う必要があります。 このファイルは、クライアントになりうるマシンごとに 1 行を含みます。 各行は 5 つまでのフィールドからなります: .Pp .Ar name Ar key Oo .Ar hisaddr Op Ar label Op Ar callback-number .Oc .Pp .Ar name と .Ar key は期待されるクライアントのユーザ名とパスワードを指定します。 .Ar key が .Dq \&* で PAP が使用される場合、 .Nm は認証時にパスワードデータベース .Pq Xr passwd 5 を検索します。 .Pa ppp.secret の如何なる .Ar name Ns No / Ar key の組み合わせにおいても適切でない返答をクライアントが与える場合、 認証は失敗します。 .Pp 認証に成功したならば、 .Pq 指定時には .Ar hisaddr を IP 番号交渉時に使用します。詳細は .Dq set ifaddr コマンドを参照してください。 .Pp 認証に成功し .Ar label が指定された場合、現在のシステムラベルは .Ar label にマッチするように修正されます。 このことはファイル .Pa ppp.linkup と .Pa ppp.linkdown の後続のパーズに影響があります。 .Pp 認証に成功し .Ar callback-number が指定され .Dq set callback が .Pa ppp.conf で指定された場合、クライアントは指定された番号でコールバックされます。 CBCP が使用される場合、 .Dq set cbcp コマンドに渡すのと同様の形式で、 .Ar callback-number にもまた番号のリストまたは .Dq \&* を含むことが可能です。 この値は、 .Nm で後続する CBCP フェーズで使用します。 .Sh PPP オーバ TCP (別名: トンネリング) シリアルリンク上以外の .Nm の使用方法として、 device にホストとポートを指定することにより、 TCP 接続を使用することが可能です: .Pp .Dl set device ui-gate:6669 .Pp シリアルデバイスをオープンする代りに、 .Nm は指定されたマシンの指定されたソケットへの TCP 接続をオープンします。 .Nm は telnet プロトコルを使用しないこと、 telnet サーバと交渉できないことに注意を払うべきです。 受信マシン (ui-gate) 上に、 この ppp 接続を受信するポートを設定する必要があります。まず .Pa /etc/services を更新して、サービスを定義します: .Pp .Dl ppp-in 6669/tcp # Incoming PPP connections over tcp .Pp そして .Pa /etc/inetd.conf を更新して、このポートへの受信接続をどのように扱うかを .Xr inetd 8 に指示します: .Pp .Dl ppp-in stream tcp nowait root /usr/sbin/ppp ppp -direct ppp-in .Pp .Pa /etc/inetd.conf を更新した後には、 .Xr inetd 8 に .Dv HUP シグナルを送るのをお忘れなく。 ここではラベル名 .Dq ppp-in を使用します。 ui-gate (受信側) の .Pa /etc/ppp/ppp.conf エントリは次の内容を含みます: .Bd -literal -offset indent ppp-in: set timeout 0 set ifaddr 10.0.4.1 10.0.4.2 add 10.0.1.0/24 10.0.4.2 .Ed .Pp セキュリティのために PAP もしくは CHAP の設定をしたいかもしれません。 PAP を有効にするには次の行を追加します: .Bd -literal -offset indent enable PAP .Ed .Pp また、次のエントリを .Pa /etc/ppp/ppp.secret に作成する必要があります: .Bd -literal -offset indent MyAuthName MyAuthPasswd .Ed .Pp .Ar MyAuthPasswd が .Pq Dq * の場合には、パスワードは .Xr passwd 5 データベースから検索されます。 .Pp awfulhak (起動側) の .Pa /etc/ppp/ppp.conf エントリは次の内容を含む必要があります: .Bd -literal -offset indent ui-gate: set escape 0xff set device ui-gate:ppp-in set dial set timeout 30 set log Phase Chat Connect hdlc LCP IPCP CCP tun set ifaddr 10.0.4.2 10.0.4.1 add 10.0.2.0/24 10.0.4.1 .Ed .Pp PAP を有効にしようとしている場合、次の設定も必要です: .Bd -literal -offset indent set authname MyAuthName set authkey MyAuthKey .Ed .Pp 我々は、 ui-gate に 10.0.4.1 のアドレスを割り当て、 awfulhak に 10.0.4.2 のアドレスを割り当てようとしています。 接続をオープンするためには、次の内容をタイプするだけで良いです。 .Pp .Dl awfulhak # ppp -background ui-gate .Pp 結果として、 awfulhak にはネットワーク 10.0.2.0/24 への新たな「経路」が、 ui-gate にはネットワーク 10.0.1.0/24 への新たな「経路」が、 TCP 接続経由でそれぞれ作成されます。 ネットワークは実質的にブリッジされます - 下位レベルの TCP 接続はパブリックなネットワーク (例えばインターネット) を またがっても良いです。 また 2 つのゲートウェイ間では ppp トラフィックは 概念的に TCP ストリーム中でカプセル化されます (パケットがパケットに対応するわけではありません)。 この機構の大きな欠点は、同時に 2 つの「配送保証」機構が存在することです - この 2 つとは、下位レベルの TCP ストリームと .Em PPP リンク上で使用されるプロトコルであり、おそらくまた TCP でしょう。 パケット喪失が起ると、両者はそれぞれの方法で喪失した パケットを再送しようと するでしょう。 .Sh パケットエイリアシング .Fl alias コマンドラインオプションにより、 パケットエイリアシングが有効になります。 これにより、 .Nm ホストがローカルエリアネットワークの他のコンピュータに対して マスカレードゲートウェイとして動作するようになります。 送信される IP パケットは、まるで .Nm ホストから来たかのようにエイリアスされ、 受信パケットは、それがローカルエリアネットワークの正しいマシンに 送られるようにエイリアスが戻されます。 パケットエイリアシングにより、 未登録でプライベートなサブネット上のコンピュータを 外部から見えないようにしつつ、 インターネットへアクセス可能とします。 一般に、 .Nm が正しく動作していることの確認は、 まず最初にパケットエイリアシングを禁止して行います。 次に .Fl alias オプションを有効にして、 .Nm ホストの上で (ウェブブラウザや .Xr telnet 1 , .Xr ftp 1 , .Xr ping 8 , .Xr traceroute 8 などの) ネットワークアプリケーションの動作を確認します。 最後に、LAN 上の別のコンピュータの上で同様なアプリケーションの 動作を確認することになります。 .Nm ホストではネットワークアプリケーションが正しく動作するのに、 LAN 上の別のコンピュータでは動かないのであれば、マスカレードソフトウェアは 正しく動いているけれども、ホストが IP パケットをフォワーディングしないか、 ひょっとするとパケットが送られて来ていないかのどちらかです。 .Pa /etc/rc.conf で IP フォワーディングが有効にされていることと、 他のコンピュータで .Nm ホストがその LAN のゲートウェイとして 指定されていることを確認してください。 .Sh パケットのフィルタリング この実装では、パケットのフィルタリングがサポートされています。 .Em in フィルタ、 .Em out フィルタ、 .Em dial フィルタ、そして .Em alive フィルタの 4 種類のフィルタがあります。 ここでは基本的なことについて書くことにします。 .Bl -bullet .It フィルタ定義は次のような構文になっています。 .Pp set filter .Ar name .Ar rule-no .Ar action .Oo .Ar src_addr Ns Op / Ns Ar width .Op Ar dst_addr Ns Op / Ns Ar width .Oc .Oo Ar proto Op src Ar cmp port .Op dst Ar cmp port .Op estab .Op syn .Op finrst .Oc .Bl -enum .It .Ar name は .Sq in , .Sq out , .Sq dial , .Sq alive のいずれかです。 .It .Ar rule-no は .Sq 0 から .Sq 19 までの数値で、ルール番号を指定します。 ルールは .Ar rule-no の番号順に指定されます。 ただしルール .Sq 0 が指定されている場合のみです。 .It .Ar action は .Sq permit , .Sq deny のいずれかです。 もし、あるパケットがルールに一致した場合、 結びつけられた action が直ちに実行されます。 .It .Op Ar src_addr Ns Op / Ns Ar width と .Op Ar dst_addr Ns Op / Ns Ar width は始点と終点の IP アドレスです。 .Op / Ns Ar width が指定された場合には、それによって適切なネットマスクのビット値を与え、 アドレスの範囲を指定することができます。 .It .Ar proto は .Sq icmp , .Sq udp , .Sq tcp のうちのいずれか 1 つです。 .It .Ar cmp は .Sq \< , .Sq \&eq , .Sq \> のうちいずれか 1 つです。それぞれ、より小さい、等しい、 より大きいを意味します。 .Ar port はポート番号で指定するか、 .Pa /etc/services のサービス名で指定することができます。 .It .Sq estab , .Sq syn , .Sq finrst フラグは .Ar proto が .Sq tcp に設定されているときにのみ許可され、それぞれ TH_ACK、TH_SYN、および TH_FIN もしくは TH_RST という TCP フラグを表わします。 .El .Pp .It 各フィルタはルール 0 から始まり、40 個までのルールをもつことができます。 規則のルールは、ルール 0 が定義されていなければ、有効にはなりません。 すなわち、デフォルトではすべてが通されます。 .It パケットにマッチするルールが無い場合は、パケットは破棄 (ブロック) されます。 .It すべての規則を消去するには、 .Dq set filter Ar name No -1 を使ってください。 .El .Pp .Pa /usr/share/examples/ppp/ppp.conf.sample . を参照してください。 .Sh アイドルタイマの設定 アイドルタイマを調べたり/設定するためには、それぞれ .Dq show bundle と .Dq set timeout コマンドを使ってください: .Bd -literal -offset indent ppp ON awfulhak> set timeout 600 .Ed .Pp タイムアウト時間は秒数で指定します。デフォルト値は timeout が 180 秒 .Pp 3 分 です。 アイドルタイマ機能を使わないようにするためには、 次のコマンドを利用してください。 .Bd -literal -offset indent ppp ON awfulhak> set timeout 0 .Ed .Pp .Fl ddial と .Fl dedicated モードではアイドルタイムアウトは無視されます。 .Fl auto モードでは、アイドルタイムアウトが発生すると .Nm プログラムは実行したままで .Em PPP セッションを終了します。別の引金となるパケットがきた時に リンクを再び確立しようとします。 .Sh Predictor-1 および DEFLATE 圧縮 .Nm は Predictor type 1 圧縮および deflate 圧縮をサポートしています。 デフォルトでは、 .Nm は、接続相手が同意 .Pq あるいは要求 した場合に、 この機能を使おうと (もしくは受け入れようと) します。 .Nm は deflate プロトコルを優先します。 これらの機能を使用したくない時には .Dq disable と .Dq deny のコマンドを参照してください。 .Pp .Dq disable deflate か .Dq deny deflate の一方を使用することにより、 方向ごとに異ったアルゴリズムを使用することができます。 .Pq 接続相手が両方のプロトコルをサポートしていると仮定しています。 .Pp デフォルトでは、DEFLATE について交渉するときには .Nm はウィンドウサイズとして 15 を使います。この動作を変更したい場合には .Dq set deflate コマンドを参照してください。 .Pp デフォルトでは無効にされ受け付けませんが、DEFLATE24 と呼ばれる特殊な アルゴリズムを使用することもできます。これは CCP ID 24 を 交渉に使う点を除いては DEFLATE と完全に同じものです。 これを使用することで .Nm は .Nm pppd バージョン 2.3.* と DEFLATE 交渉を成功させることができます。 .Sh IP アドレスの制御 .Nm は IP アドレスの交渉のために IPCP を使います。接続の両側は、自分が 使おうとするアドレスを提示し、要求された IP アドレスが受け入れ可能な ものであれば、相手に ACK (肯定応答) を返します。 受け入れることができなければ、別の IP アドレスの使用を促すために .Nm は相手に NAK (否定応答) を返します。 接続の両側が受け取った要求に同意し (ACK を送っ) た時、 IPCP はオープン状態にセットされ、ネットワーク層での接続が確立されます。 IPCP の動作を制御するために、この実装はローカルとリモートの IP アドレスを定義するための .Dq set ifaddr コマンドを持っています。 .Bd -literal -offset indent .No set ifaddr Oo Ar src_addr Ns .Op / Ns Ar \&nn .Oo Ar dst_addr Ns Op / Ns Ar \&nn .Oo Ar netmask .Op Ar trigger_addr .Oc .Oc .Oc .Ed .Pp ここで、 .Sq src_addr はローカル側で使おうと思っている IP アドレスで、 .Sq dst_addr はリモート側が使用すべき IP アドレスです。 .Sq netmask は使用すべきネットマスクです。 .Sq src_addr のデフォルトは現在の .Xr hostname 1 のもの、 .Sq dst_addr のデフォルトは 0.0.0.0 であり、 .Sq netmask のデフォルトは .Sq src_addr に適したマスク値です。 .Sq netmask はデフォルトより小さくすることのみ可能です。 ほとんどのカーネルが POINTOPOINT インタフェースのネットマスクを 無視するので、便利な値は 255.255.255.255 でしょう。 .Pp 誤った .Em PPP の実装には、接続交渉のために、 .Sq src_addr ではなく特別な IP アドレスを使用しなければならないものがあります。 この場合、 .Sq trigger_addr で指定した IP アドレスが使用されます。 相手がこの提案された番号に同意しない限り、経路表には影響しません。 .Bd -literal -offset indent set ifaddr 192.244.177.38 192.244.177.2 255.255.255.255 0.0.0.0 .Ed .Pp 上の例の意味は次の通りです: .Pp .Bl -bullet -compact .It 自分の IP アドレスとしてまず 0.0.0.0 を提案しますが、アドレス 192.244.177.38 のみは受け付けます。 .It 相手側のアドレスとして 192.244.177.2 を使うように要求し, 192.244.177.2 以外のどんなアドレスを使うことも許可しません。 相手側が別の IP アドレスを要求してきた時は、いつでも 192.244.177.2 を提案します。 .It 経路表のネットマスク値は 0xffffffff に設定されます。 .El .Pp これは、両側が既に決まった IP アドレスを持っている場合には うまくいきますが、多くの場合、一方がすべての IP アドレスを制御する サーバとして動作しており、もう一方はその方針に従います。 より柔軟な動作をさせるために、 .Dq set ifaddr コマンドで IP アドレス指定をもっと緩やかにすることが可能です: .Pp .Dl set ifaddr 192.244.177.38/24 192.244.177.2/20 .Pp スラッシュ .Pq Dq / に続く数字は、この IP アドレスで意味のあるビットの数を 表現しています。上の例は次のことを示しています。 .Pp .Bl -bullet -compact .It 可能なら自分のアドレスとして 192.244.177.38 を使おうとしますが、 192.244.177.0 から 192.244.177.255 の間の任意の IP アドレスも受け入れます。 .It 相手のアドレスとして 192.244.177.2 を使うことを希望しますが、 192.244.176.0 から 192.244.191.255 の間の任意の IP アドレスも許可します。 .It すでにお気づきと思いますが、 192.244.177.2 は 192.244.177.2/32 と書くことと 等価です。 .It 例外として、0 は 0.0.0.0/0 と等価であり、希望する IP アドレスは 特に無く、リモート接続先の選択に従うことを意味します。 0 を使用した場合は、接続が確立するまで、経路表のエントリは まったく設定されません。 .It 192.244.177.2/0 は、どんな IP アドレスでも受け入れる/許可することを 意味しますが、最初に 192.244.177.2 を使うように提案します。 .El .Pp .Sh インターネットサービスプロバイダと接続する プロバイダに接続する際には、次のステップを踏む必要があるでしょう: .Bl -enum .It .Dq set phone コマンドを使って、ダイヤルスクリプトにプロバイダの電話番号を記述します。 ダイヤルやリダイヤルに使用する電話番号は、 パイプ .Pq Dq \&| またはコロン .Pq Dq \&: で区切って複数指定することができます。例えば、次のようになります。 .Pq Dq \&: : .Bd -literal -offset indent .No set phone Ar telno Ns Xo .Oo \&| Ns Ar backupnumber .Oc Ns ... Ns Oo : Ns Ar nextnumber .Oc Ns ... .Xc .Ed .Pp 最初のパイプで区切られたリストの番号は、 直前の番号でダイヤルもしくはログインスクリプトが失敗した場合のみ使用されます。 コロンで区切られた番号は、直前の番号の使用によりなにが起ったのかにかかわらず、 この順番で使用されます。例えば: .Bd -literal -offset indent set phone "1234567|2345678:3456789|4567890" .Ed .Pp この場合、まず 1234567 にダイヤルしてみます。 ダイヤルもしくはログインスクリプトに失敗したら、 次は 2345678 を使用します。 しかしこれはダイヤルもしくはログインスクリプトに失敗したとき *のみ* です。 このダイヤルの後、3456789 が使用されます。 4567890 は 345689 でダイヤルもしくはログインスクリプトに失敗したときのみ 使用されます。 2345678 のログインスクリプトが失敗したとしても、次の番号は 3456789 です。 必要な数だけ、パイプとコロンを使用可能です (しかし、通常はパイプのみかコロンのみであり両方の使用はないでしょう)。 次の番号へのリダイヤルまでのタイムアウトは、すべての番号にて使用されます。 リストが終了すると、 通常のリダイヤル期間だけ待ち、 最初から再開します。 .Dq set dial コマンドの \\\\T 文字列は選択された番号で置きかえられます。 (以降を参照してください)。 .It リダイヤルに関する設定は、 .Dq set redial で行います。 例えば回線の調子が悪かったり、 (最近では それほど多くないでしょうが) プロバイダがいつも話中だったりすると、 次のように設定したくなるかもしれません: .Bd -literal -offset indent set redial 10 4 .Ed .Pp これは最初の番号にリダイヤルを行う前に 10 秒待って、 4 回までダイヤルしてみるという意味になります。 .It .Dq set dial と .Dq set login コマンドを使ってログイン手続きを記述します。 .Dq set dial コマンドはモデムと通信してプロバイダへのリンクを確立するのに使われます。 例えば、次のようになります: .Bd -literal -offset indent set dial "ABORT BUSY ABORT NO\\\\sCARRIER TIMEOUT 4 \\"\\" \e ATZ OK-ATZ-OK ATDT\\\\T TIMEOUT 60 CONNECT" .Ed .Pp このモデム「チャット」文字列の意味は次の通りです。 .Bl -bullet .It \&"BUSY" または "NO CARRIER" を受信した場合には処理を中止します。 .It タイムアウトを 4 秒にセットします。 .It 文字列の受信待ちは行いません。 .It ATZ を送信します。 .It OK の受信待ちを行います。もし 4 秒以内に受信できなければ、 もう 1 度 ATZ を送信し、OK の受信待ちを行います。 .It ATDTxxxxxxx を送信します。xxxxxxx は 上記の電話番号リストの中の、次にダイヤルする番号です。 .It タイムアウトを 60 にセットします。 .It 文字列 CONNECT の受信待ちを行います。 .El .Pp 一旦接続が確立されると、ログインスクリプトが実行されます。 このスクリプトはダイヤルスクリプトと同じスタイルで書かれますが、 パスワードが記録されないように注意してください: .Bd -literal -offset indent set authkey MySecret set login "TIMEOUT 15 login:-\\\\r-login: awfulhak \e word: \\\\P ocol: PPP HELLO" .Ed .Pp このログイン「チャット」文字列の意味は次の通りです。 .Bl -bullet .It タイムアウトを 15 秒にセットします。 .It "login:" の受信待ちを行います。もし受信できなければ 復改文字を送信して、再び "login:" の受信待ちを行います。 .It "awfulhak" を送信します。 .It "word:" ("Password:" プロンプトの末尾) の受信待ちを行います。 .It .Ar authkey に現在設定されている値を送信します。 .It "ocol:" ("Protocol:" プロンプトの末尾) の受信待ちを行います。 .It "PPP" を送信します。 .It "HELLO" の受信待ちを行います。 .El .Pp .Dq set authkey コマンドのログは特別な方法でとられます。 .Ar command または .Ar chat のログが有効な時は、実際のパスワードは記録されません。 代りに .Sq ******** Ns が記録されます。 .Pp ログインスクリプトはプロバイダによって大きく違うものになるでしょう。 始めてそれを設定するときには .Em チャットログを有効化 することで、あなたのスクリプトが予定通りに動いているかを 調べることができます。 .It シリアル回線と通信速度を指定するためには .Dq set device と .Dq set speed を使います。例えば次のようになります。 .Bd -literal -offset indent set device /dev/cuaa0 set speed 115200 .Ed .Pp FreeBSD では cuaa0 が 1 つめのシリアルポートになります。 OpenBSD で .Nm を実行している場合には cua00 が 1 つめです。 あなたのモデムが 28800 かそれ以上のビットレートで通信することが できるなら、シリアルポートの速度には 115200 を指定しておくべきでしょう。 一般に、シリアルポートの速度はモデムの速度の約 4 倍にしておきます。 .It .Dq set ifaddr コマンドで IP アドレスを定義します。 .Bl -bullet .It プロバイダがどの IP アドレスを使っているのか知っている場合には、 それをリモートアドレス (dst_addr) として使ってください。 知らない場合には、10.0.0.2/0 か何かを使ってください (以降を参照してください)。 .It 特定の IP アドレスをプロバイダから割り当てられている場合は、 それをローカルアドレス (src_addr) として使ってください。 .It プロバイダが IP アドレスを動的に割り当てる場合は、適当に控えめで 緩やかに記述した IP アドレスをローカルアドレスに選んでください。 10.0.0.1/0 が適切でしょう。 / に続く数値は、このアドレスのうち何ビットを重視しているかを示します。 もしもクラス C のネットワーク 1.2.3.0 上のアドレスを使うことを 主張したいのなら、1.2.3.1/24 と指定することができます。 .It プロバイダがあなたが提示した最初の IP 番号を受け付ける場合、 第 3, 4 の引数に .Dq 0.0.0.0 を指定してください。 これによりプロバイダが番号を割り当てます。 (3 つめの引数は、 .Sq src_addr に対してデフォルトのマスクよりも制約が緩いため、無視されます。) .El .Pp 自分の IP アドレスもプロバイダの IP アドレスも 知らない場合には、次の例のようにするとよいでしょう。 .Bd -literal -offset indent set ifaddr 10.0.0.1/0 10.0.0.2/0 0.0.0.0 0.0.0.0 .Ed .Pp .It ほとんどの場合、プロバイダはデフォルトルータでもあるでしょう。 この場合、次の行を .Pa /etc/ppp/ppp.conf に追加します。 .Bd -literal -offset indent add default HISADDR .Ed .Pp これは、 .Nm 接続先のアドレスが何であっても .Pq この例では 10.0.0.2 デフォルト経路として追加するように指示します。 この経路は .Sq スティッキー です。これは .Dv HISADDR の値が変わると、経路もそれに従って自動的に更新されるという意味です。 .Pp 以前のバージョンの .Nm では .Pa /etc/ppp/ppp.linkup ファイルにこれと似たエントリが必要でした。 .Sq スティッキー経路 の出現により、これはもはや必要ではなくなりました。 .It プロバイダが PAP/CHAP による認証を要求している場合は、 .Pa /etc/ppp/ppp.conf ファイルに次の行を追加してください: .Bd -literal -offset indent set authname MyName set authkey MyPassword .Ed .Pp デフォルトではどちらも受け付けられますので、ISP が何を要求しても大丈夫です。 .Pp PAP もしくは CHAP を使用する場合、ログインスクリプトはほとんどの場合、 必要とされないことを記述しておくべきでしょう。 .It 次のような行を加え、ISP にネームサーバアドレスを確認してください。 .Bd -literal -offset indent enable dns .Pp .Ed ローカル DNS を走らせている場合には、これを .Em やらない でください。 .Nm は単純に .Pa /etc/resolv.conf に nameserver 行を入れることで、ローカル DNS の使用を 出し抜いてしまうからです。 .El .Pp 現実の例を見たい場合には、 .Pa /usr/share/examples/ppp/ppp.conf.sample と .Pa /usr/share/examples/ppp/ppp.linkup.sample を参照してください。 ラベル pmdemand は、ほとんどのプロバイダで使用できるでしょう。 .Sh ログ機能 .Nm は次のログ情報を、 .Xr syslog 3 経由で、もしくはスクリーンに出力することができます: .Pp .Bl -tag -width XXXXXXXXX -offset XXX -compact .It Li Async 非同期レベルパケットの 16 進ダンプ。 .It Li CBCP CBCP (CallBack Control Protocol) ログの生成。 .It Li CCP CCP パケットトレースの生成。 .It Li Chat .Sq dial , .Sq login , .Sq hangup のチャットスクリプトのトレースログの生成。 .It Li Command コマンド実行のログ。 .It Li Connect 文字列 "CONNECT" を含むチャット行のログ。 .It Li Debug デバッグ情報のログ。 .It Li HDLC HDLC パケットの 16 進ダンプ。 .It Li ID0 ユーザ ID 0 で実行された全関数呼び出しを詳細に記録。 .It Li IPCP IPCP パケットトレースの生成。 .It Li LCP LCP パケットトレースの生成。 .It Li LQM LQR レポートの生成。 .It Li Phase フェーズ遷移ログの出力。 .It Li TCP/IP 全 TCP/IP パケットのダンプ。 .It Li Timer タイマ操作のログ。 .It Li TUN ログの各行に tun デバイスを含めます .It Li Warning 端末デバイスへの出力。端末が存在しない場合は、 .Dv LOG_WARNING を使用してログファイルに送ります。 .It Li Error 端末デバイスとログファイルへの出力で、 .Dv LOG_ERROR を使用します。 .It Li Alert ログファイルへの出力で、 .Dv LOG_ALERT を使用します。 .El .Pp .Dq set log コマンドで、ログの出力レベルを設定することができます。 また、複数のレベルを単一コマンドラインにて指定することも可能です。 デフォルトは、 .Dq set log Phase です。 .Pp スクリーンに直接ログを表示することも可能です。 文法は同じで、語 .Dq local が .Dq set log の直後に付くことだけが違います。 デフォルトは .Dq set log local (つまり、マスクされない警告、エラーと注意のみ出力) です。 .Pp .Dq set log Op local への最初の引数が .Sq + か .Sq - の文字で始まる場合、現在のログレベルを消去せずに修正します。例えば: .Bd -literal -offset indent PPP ON awfulhak> set log phase PPP ON awfulhak> show log Log: Phase Warning Error Alert Local: Warning Error Alert PPP ON awfulhak> set log +tcp/ip -warning PPP ON awfulhak> set log local +command PPP ON awfulhak> show log Log: Phase TCP/IP Warning Error Alert Local: Command Warning Error Alert .Ed .Pp レベル Warning, Error, Alert のメッセージログは .Dq set log Op local では制御できません。 .Pp .Ar Warning レベルは特別で、ローカルに表示可能な場合には記録されません。 .Sh シグナルハンドリング .Nm は次のシグナルを扱います: .Bl -tag -width XX .It INT このシグナルを受信すると、現在の接続がもしあればそれを終了します。 .Fl auto もしくは .Fl ddial のモードではない場合、 .Nm は終了します。 .It HUP, TERM, QUIT .Nm を終了させます。 .It USR2 .Nm に全サーバソケットを閉じさせ、すべての既存の診断ポートへの接続を 取り下げます。 .El .Pp .Sh マルチリンク PPP .Em PPP 相手に接続するのに複数の物理的なリンクを利用したいなら、 接続相手も .Em マルチリンク PPP プロトコルを理解する必要があります。 仕様の詳細は RFC 1990 を参照してください。 .Pp 接続先は、 .Dq 終点の選択 とその .Dq 認証 ID の組み合わせによって識別されます。 これらの一方、もしくは両方を指定することができます。 最低でも片方は指定しておくことが推奨されます。 そうでないと、すべてのリンクが実際に同一のプログラムに接続されていることを 確認する方法がなくなり、 混乱してロックアップを引き起こすことがあります。 ローカルには、これらの識別変数は .Dq set enddisc と .Dq set authname コマンドを用いることで指定されます。先立って接続相手と .Sq authname .Pq と Sq authkey について合意しておく必要があります。 .Pp マルチリンクの能力は .Dq set mrru コマンド (set maximum reconstructed receive unit) を用いることで 有効になります。一度マルチリンクが有効になれば、 .Nm は接続相手とマルチリンク接続の交渉を行います。 .Pp デフォルトでは .Po .Sq deflink と呼ばれる .Pc ただ 1 つの .Sq リンク のみが有効です。さらにリンクを作成するには .Dq clone コマンドが使われます。このコマンドは既存のリンクを複製します。 それは次の点を除いてすべての性質が同じものです: .Bl -enum .It 新しいリンクは .Dq clone コマンドラインで指定された独自の名前を持ちます。 .It 新しいリンクは .Sq interactive リンクです。そのモードは次の .Dq set mode コマンドで変更することができます。 .It 新しいリンクは .Sq closed の状態にあります。 .El .Pp すべての有効なリンクのまとめは、 .Dq show links コマンドを用いて見ることができます。 .Pp 一度リンクが作成されると、コマンドの使用方法が変わります。 すべてのリンク固有のコマンドの前には、 .Dq link Ar name プレフィックスをつけて、 コマンドを適用するリンクを指定する必要があります。 .Nm は十分賢いので、 利用可能なリンクが 1 つだけの場合には、 .Dq link Ar name プレフィックスは不要です。 .Pp コマンドの中には依然としてリンクの指定なしに使用できるものがあり、それは .Sq バンドル レベルの操作を行います。たとえば、2 つ以上のリンクが存在するとき .Dq show ccp はマルチリンクレベルの CPP 設定と統計を表示し .Dq link deflink show ccp は .Dq deflink のリンクレベルの同じ情報を表示します。 .Pp これらの情報を用いて、次の設定を用いることができます: .Pp .Bd -literal -offset indent mp: set timeout 0 set log phase chat set device /dev/cuaa0 /dev/cuaa1 /dev/cuaa2 set phone "123456789" set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \\"\\" ATZ \e OK-AT-OK \\\\dATDT\\\\T TIMEOUT 45 CONNECT" set login set ifaddr 10.0.0.1/0 10.0.0.2/0 set authname ppp set authkey ppppassword set mrru 1500 clone 1,2,3 link deflink remove .Ed .Pp すべての複製が設定の最後で行われていることに注意してください。 一般にはリンクは最初に設定され、そして複製されます。 あなたが常にすべてのリンクがアップ状態であることを望む場合には、 設定の最後に次の行を追加することができます。 .Pp .Bd -literal -offset indent link 1,2,3 set mode ddial .Ed .Pp リンクが必要に応じてダイヤルされることを望む場合には、次のコマンドを 使うことができます。 .Pp .Bd -literal -offset indent link * set mode auto .Ed .Pp 上記の .Dq set device 行を取り除き、 .Dq clone コマンドに続けて次の内容を指定することで、 リンクを特定の名前に結びつけることもできます: .Pp .Bd -literal -offset indent link 1 set device /dev/cuaa0 link 2 set device /dev/cuaa1 link 3 set device /dev/cuaa2 .Ed .Pp どのコマンドが ( .Dq link コマンドを使用した) コンテキスト (文脈) を要求し、 どのコマンドがコンテキストをオプションとし、 そしてどのコマンドがコンテキストを一切とらないかを調べるには、 .Dq help コマンドを使用します。 .Pp .Nm が接続相手と .Em マルチリンク モードで交渉をすると、 .Nm はローカルドメインソケットを .Pa /var/run ディレクトリに作成します。このソケットは、 リンク情報 (実際のリンクファイル記述子も含む) を、異なる .Nm の間で受け渡しするために使われます。 この機能によって、 .Nm はシリアル回線の初期制御を行う必要なしに .Xr getty 8 から、もしくは直接 .Pa /etc/gettydefs から ( .Sq pp= ケーパビリティを用いて) 実行することが可能となっています。 ひとたび .Nm がマルチリンクモードの交渉を行うと、 .Nm は自分がオープンした リンクをすでに実行されている任意の他のプロセスに渡すことができます。 すでに実行されているプロセスがない場合、 .Nm はマスタとして振る舞い、ソケットを作成し、新たな接続を待ちます。 .Sh PPP コマンドリスト この節では利用可能コマンドとその効果をリストします。 .Nm ppp セッションで対話的に使用することも、 設定ファイルで指定することも、 .Xr pppctl 8 もしくは .Xr telnet 1 セッションで指定することも可能です。 .Bl -tag -width XX .It accept|deny|enable|disable Ar option.... これらのディレクティブは 最初の接続においてどのように相手と交渉するかを .Nm に指示します。各 .Dq option は、accept/deny および enable/disable のデフォルトを持ちます。 .Dq accept は相手がこのオプションを要求したら、ACK を送ることを意味します。 .Dq deny は相手がこのオプションを要求したら、NAK を送ることを意味します。 .Dq enable はこのオプションを当方が要求することを意味します。 .Dq disable はこのオプションを当方が要求しないことを意味します。 .Pp .Dq option は次のいずれかです: .Bl -tag -width XX .It acfcomp デフォルト: enable かつ accept。 ACFComp はアドレスおよびコントロールフィールド圧縮 (Address and Control Field Compression) を意味します。 LCP パケット以外は通常、 アドレスフィールド 0xff (全ステーションアドレス) と 制御フィールド 0x03 (番号付けされていない情報コマンド) を持ちます。 このオプションが交渉されると、これらの 2 バイトは単に送信されなくなり、 流量が少なくなります。 .Pp 詳細は .Pa rfc1662 を参照してください。 .It chap Ns Op \&05 デフォルト: disable かつ accept。 CHAP はチャレンジ交換認証プロトコル (Challenge Handshake Authentication Protocol) を意味します。 CHAP もしくは PAP (後述) のどちらか一方のみ交渉可能です。 CHAP では、認証者は「チャレンジ」メッセージを相手に送ります。 相手は一方向ハッシュ関数を使用して「チャレンジ」を暗号化し、 結果を送り返します。 認証者は同じことを行い結果を比較します。 この機構の利点は、接続を介してパスワードを送らないことです。 接続が最初に確立する時にチャレンジが行われます。 更なるチャレンジが行われるかもしれません。 相手の認証を行いたい場合は、 .Dq enable chap を .Pa /etc/ppp/ppp.conf に書き、相手のエントリを .Pa /etc/ppp/ppp.secret に書く必要があります。 .Pp クライアントとして CHAP を使用する場合、 .Dq AuthName と .Dq AuthKey を .Pa /etc/ppp/ppp.conf に指定するだけで良いです。 CHAP はデフォルトで accept されます。 .Em PPP の実装によっては、チャレンジの暗号化に MD5 ではなく "MS-CHAP" を使用するものがあります。 MS-CHAP は MD4 と DES の組み合わせです。もし .Nm が DES ライブラリの存在するマシン上で構築された場合 MS-CHAP 認証要求に応答しますが、MS-CHAP 認証を要求することは 決してありません。 .It deflate デフォルト: enable かつ accept。 このオプションは圧縮制御プロトコル (Compression Control Protocol; CCP) に deflate 圧縮を使用するか否かを決定します。 使用されるアルゴリズムは .Xr gzip 1 プログラムが使用するものと同じです。 注: .Xr pppd 8 - 多くのオペレーティングシステムで使用可能な .Em PPP の実装 - との .Ar deflate 能力についての交渉には問題があります。 .Nm pppd (バージョン 2.3.1) が .Ar deflate 圧縮の交渉を行おうとする CCP コンフィギュレーションタイプは、 .Pa rfc1979 に規定されたタイプ .Em 26 ではなくタイプ .Em 24 であり、誤っています。 タイプ .Ar 24 は実際には .Pa rfc1975 では .Dq PPP Magna-link Variable Resource Compression と指定されています! .Nm は .Nm pppd と交渉する能力がありますが、 .Dq deflate24 が .Ar enable かつ .Ar accept されている場合のみです。 .It deflate24 デフォルト: disable かつ deny。 これは .Ar deflate のバリエーションで、 .Xr pppd 8 プログラムとの交渉を許可します。 詳細は上記の .Ar deflate セクションを参照してください。 これは .Pa rfc1975 に反するため、デフォルトでは disable となっています。 .It dns デフォルト: disable かつ deny。 このオプションは DNS 交渉を許可します。 .Pp .Dq enable にすることにより、 .Nm は接続相手が .Pa /etc/resolv.conf ファイルのエントリを確認することを要求します。 もし接続相手が当方の要求に否定応答をした場合 (新しい IP アドレスを 提案したら)、 .Pa /etc/resolv.conf ファイルは更新され、新しいエントリを確認するように要求を送ります。 .Pp .Dq accept にすることにより、 .Nm は接続相手からの DNS 検索要求を拒否せずに、返答します。 .Dq set dns コマンドの使用によって上書きされていない場合には、応答は .Pa /etc/resolv.conf から採られます。 .It LANMan|chap80lm デフォルト: disable かつ accept。 この認証プロトコルの使用は勧められません。 単一の CHAP タイプ (0x80) を装って、 2 つの異った機構 (LANMan と NT) を実装することにより、 部分的に認証プロトコルを侵害しているからです。 .Dq LANMan は単純な DES 暗号化機構を使用するものであり、 CHAP 代替としては最低の安全性のものです (それでも PAP よりは安全です)。 .Pp 更なる詳細は後述の .Dq MSChap の記述を参照してください。 .It lqr デフォルト: disable かつ accept。 このオプションはリンク品質要求 (Link Quality Request) を送信する、 もしくは受け入れるかどうかを決定します。 LQR は、モデムのキャリア検出を使用せずに、リンクダウンを .Nm に決定させるプロトコルです。 LQR が enable になっていると、 .Nm は LCP 要求の一部として .Em QUALPROTO オプション (後述の .Dq set lqrperiod を参照) を送ります。 接続相手が同意した場合、両端は同意した間隔で LQR パケットを交換し、 LQM ロギングを有効にすることで、詳細なリンク品質を監視することが 可能になります。 接続相手が同意しなかった場合、ppp は代りに ECHO LQR 要求を 送ります。これらのパケットは興味ある情報を何も渡しませんが、 .Em 必ず 接続相手に応答しなければなりません。 .Pp LQR, ECHO LQR のいずれを用いるにせよ、 .Nm は 5 つのパケットを送ったが確認応答が無い場合、6 つ目のパケットを送らずに 回線を切断します。 メッセージを .Em PHASE レベルで記録し、回線切断の原因が接続相手にあるものとして、適当な .Dq reconnect 値を使用します。 .It MSChap|chap80nt デフォルト: disable かつ accept。 この認証プロトコルの使用は勧められません。 単一の CHAP タイプ (0x80) を装って、 2 つの異った機構 (LANMan と NT) を実装することにより、 部分的に認証プロトコルを侵害しているからです。 標準の CHAP (タイプ 0x05) に非常に良く似ていますが、 チャレンジを固定 8 バイト長で発行し、 標準の MD5 機構ではなく MD4 と DES を組み合わせてチャレンジを暗号化するところが違います。 LANman 用の CHAP タイプ 0x80 もまたサポートされています - 詳細は .Dq enable LANMan を参照してください。 .Pp .Dq LANMan と .Dq NT の両方が CHAP タイプ 0x80 を使用しますので、両方を .Dq enable にして認証者として動作するときには、 相手が誤った方のプロトコルを使用して応答した場合には、 .Nm は最大 3 回相手に再チャレンジします。 これにより、相手が両方のプロトコルを使用する機会を与えます。 .Pp 逆に、両プロトコルを .Dq enable にして .Nm が被認証者となる場合、チャレンジに答えるたびに使用プロトコルを交換します。 .Pp 注釈: LANMan のみが enable にされた場合、 .Xr pppd 8 (バージョン 2.3.5) は被認証者としては誤った動作を行います。 NT と LANMan の両方の応答を行いますが、 NT の応答のみ使用すべきことも指示してしまうのです。 .It pap デフォルト: disable かつ accept。 PAP はパスワード認証プロトコル (Password Authentication Protocol) を 意味します。 CHAP (前述) もしくは PAP のどちらか一方のみ交渉可能です。 PAP では、ID とパスワードが相手に送られ続け、 認証されるか接続が終了されるまでこれが続きます。 これは比較的良くないセキュリティ機構です。 接続が最初に確立した時のみ実行可能です。 相手の認証を行いたい場合は、 .Dq enable pap を .Pa /etc/ppp/ppp.conf に書き、相手のエントリを .Pa /etc/ppp.secret に書く必要があります (ただし、後述の .Dq passwdauth と .Dq set radius オプションを参照)。 .Pp クライアントとして PAP を使用する場合、 .Dq AuthName と .Dq AuthKey を .Pa /etc/ppp/ppp.conf に指定するだけで良いです。 PAP はデフォルトで accept されます。 .It pred1 デフォルト: enable かつ accept。 このオプションは圧縮制御プロトコル (Compression Control Protocol; CCP) に Predictor 1 圧縮を使用するかどうかを決定します。 .It protocomp デフォルト: enable かつ accept。 このオプションは PFC (プロトコルフィールド圧縮) の交渉を行うために使用されます。 この機構により、 プロトコルフィールド数が 2 オクテットから 1 オクテットに減ります。 .It shortseq デフォルト: enable かつ accept。 このオプションは .Nm がマルチリンクモードの交渉時に .Pq 12 ビットの 短いシーケンス番号を要求し、そして受け入れるかどうかを決定します。 これは、当方の MMRU が設定されたときのみ (マルチリンクが有効になっているときのみ) 適用されます。 .It vjcomp デフォルト: enable かつ accept。 このオプションは Van Jacobson ヘッダ圧縮を使用するかどうかを決定します。 .El .Pp 次に示すオプションは、実際には相手と交渉しません。 それゆえ accept および deny は意味を持ちません。 .Bl -tag -width 20 .It idcheck デフォルト: enable。 低レベルな LCP, CCP, IPCP 設定トラフィックを交換するときに、 すべての応答の識別子フィールドはその要求の識別子フィールドと 同一であることが予定されています。デフォルトでは .Nm は予定された識別子フィールドを持たないすべての応答パケットを 捨て、それぞれのログレベルで報告します。もし .Ar idcheck が disable になっている場合、 .Nm は識別子フィールドを無視します。 .It loopback デフォルト: enable。 .Ar loopback が enable の場合、 .Nm は自動的に .Em PPP インタフェースと同じ終点アドレス宛に送出されたパケットを ループバックします。 disable の場合、 .Nm がパケットを送ると、おそらく他の終点からの ICMP リダイレクトとなります。 インタフェースがデフォルト経路であるため、 ループバック経路を必要とすることを避けたい場合、 このオプションを enable にすると便利です。 .It passwdauth デフォルト: disable。 このオプションを enable にすることにより、 PAP 認証コードが呼び出し側を認証する時に、 .Pa /etc/ppp/ppp.secret ファイル中でみつからない場合、パスワードデータベース ( .Xr passwd 5 参照) を使用します。 .Pa /etc/ppp/ppp.secret は常に、最初に調べられます。 .Xr passwd 5 からパスワードを調べ、かつそのクライアントに対して IP アドレスもしくは ラベルを指定したい場合には、 .Pa /etc/ppp/ppp.secret ファイル中のクライアントのパスワードとして .Dq \&* を用いてください。 .It proxy デフォルト: disable。 このオプションを enable にすることにより、 .Nm に相手のために代理 ARP をさせます。 .Dv HISADDR と .Dv HISADDR がいるローカルネットワークの .Dv MAC アドレスを使用して、 .Nm が ARP 表に単一エントリを作成することを意味します。 .Dv HISADDR が LAN からのアドレスではない場合、代理エントリは作成できません。 .It proxyall デフォルト: disable。 このオプションを enable にすることにより、 .Nm に代理 ARP エントリを追加させます。 追加されるエントリは、 tun インタフェースによってルーティングされる すべてのクラス C もしくはそれ以下のサブネットの中の、全 IP アドレスです。 .Pp 代理 arp エントリは、 .Dq add コマンドによって追加されたスティッキー経路に対してのみ作成されます。( .Dq set ifaddr コマンドによって作成された) インタフェースアドレス自身に対しては、代理 arp エントリは作成されません。 .It sroutes デフォルト: enable。 .Dq add コマンドが .Dv HISADDR もしくは .Dv MYADDR という値とともに用いられると、エントリは .Sq スティック経路 リストに格納されます。 .Dv HISADDR もしくは .Dv MYADDR が変更される度に、このリストが経路表に適用されます。 .Pp このオプションを disable にすると、 スティッキー経路が適用されなくなります。 .Sq スティック経路 リストは依然として保守されます。 .It throughput デフォルト: enable。 このオプションを有効にすると、 .Nm はスループット統計を収集します。 ずれ動く 5 秒間のウィンドウにおいて入出力が検査され、 現在、最良時、総計の数値が保持されます。 このデータは関連する .Em PPP 層が終了するときに出力され、また .Dq show コマンドで表示することで得られます。スループット統計は .Dq IPCP と .Dq modem のレベルで利用可能です。 .It utmp デフォルト: enable。 通常ユーザが PAP もしくは CHAP で認証された時で、 .Nm が .Fl direct モードで実行されている時は、このユーザのエントリが utmp ファイルおよび wtmp ファイルに作成されます。 このオプションを disable にすると、 .Nm は utmp および wtmp のエントリを作成しません。 通常、 ユーザがログインしかつ認証することを要求する場合のみ必要です。 .It iface-alias デフォルト: .Fl alias が指定された場合 enable。 このオプションは、 インタフェースのアドレスを交換するのではなく、 インタフェースに新規アドレスを追加するように、 .Nm に指示します。 IP エイリアシングが有効な場合のみ .Pq Dq alias enable yes 、本オプションを enable にできます。 .Pp 本オプションを enable にすると、 .Nm は古いインタフェースアドレスのトラフィックを IP エイリアスエンジン .Pq Xr libalias 5 参照 を通すようになり、( .Fl auto モードでは) 最初に PPP リンクを立ち上げたプロセスが正しく接続できるようにします。 .Pp .Dq alias enable off として IP エイリアシングを disable すると、 .Sq iface-alias も disable します。 .El .Pp .It add Ns Xo .Op \&! .Ar dest Ns Op / Ns Ar nn .Op Ar mask .Op Ar gateway .Xc .Ar dest は宛先 IP アドレスです。 ネットマスクは .Ar /nn によってビット数で指定するか、もしくは .Ar mask を用いて IP 番号で指定します。 .Ar 0 0 ならびにマスクなしの .Ar 0 はデフォルト経路を意味します。 .Ar 0 の代りにシンボル名 .Ar default を使うことが可能です。 .Ar gateway は、 .Ar dest マシン/ネットワークに至る、次のホップのゲートウェイです。 詳細は .Xr route 8 コマンドを参照してください。 .Pp 宛先にシンボル名 .Sq MYADDR と .Sq HISADDR を使用可能であり、 .Ar gateway には .Sq HISADDR を使用可能です。 .Sq MYADDR はインタフェースアドレスに置き換えられ、 .Sq HISADDR はインタフェースの宛先 (相手の) アドレスに置き換えられます。 .Pp .Ar add! コマンド .Po .Dq \&! に注意 .Pc 使用時には、経路が存在する場合には .Sq route change コマンド (詳細は .Xr route 8 参照) にて経路を更新します。 .Pp .Dq HISADDR もしくは .Dq MYADDR を含む経路は .Sq スティッキー と見なされます。これらはリスト (リストを見るには .Dq show ipcp コマンドを使用します) に格納され、 .Dv HISADDR もしくは .Dv MYADDR の値が変更される度に、経路表の関連するエントリが更新されます。 この機能は .Dq disable sroutes を使用することで無効にできます。 .It allow user Ns Xo .Op s .Ar logname Ns No ... .Xc このコマンドは .Nm と設定ファイルへのアクセスを制御します。 ユーザレベルでのアクセスは可能であり、 設定ファイルのラベルと .Nm の実行モードに依存します。 例えば、ユーザ .Sq fred のみがラベル .Sq fredlabel に .Fl background モードでアクセスできるように、 .Nm を構成したいかもしれません。 .Pp ユーザ ID 0 はこれらのコマンドの対象外です。 .Bl -tag -width XX .It allow user[s] Ar logname... デフォルトでは、ユーザ ID 0 のみが .Nm へのアクセスを許されています。 このコマンドが指定されると、 .Dq allow users が記載されているセクションに列挙されているユーザのアクセスが可能となります。 .Sq default セクションは 常に最初にチェックされます (スタートアップ時に常にロードされる唯一の セクションです)。後続する .Dq allow users コマンドは、先行するコマンドに優先します。 あるラベル以外のすべてにアクセスを許すことが可能であり、 そのためにはデフォルトユーザを .Sq default セクションで指定し、新しいユーザリストをこのあるラベルに指定します。 .Pp ユーザ .Sq * が指定されると、全ユーザにアクセスが許されます。 .It allow mode Ns Xo .Op s .Ar mode Ns No ... .Xc デフォルトでは全 .Nm モードが使用可能です。 このコマンドが使用されると、 このコマンドが指定されたラベルのロードに許されるアクセス .Ar mode が制限されます。 .Dq allow users コマンドと同様、 各 .Dq allow modes コマンドは先行するコマンドに優先し、 .Sq default セクションは常に最初にチェックされます。 .Pp 使用可能なモードは次の通りです: .Sq interactive , .Sq auto , .Sq direct , .Sq dedicated , .Sq ddial , .Sq background , .Sq * 。 .Pp マルチリンクモードで動作するときには、 現在存在する回線モードを許可するセクションをロード可能です。 .El .Pp .It alias Ar command Op Ar args このコマンドは .Nm 組込みのエイリアシング (マスカレーディング) 機能を 制御するために使用します。 あなたのシステムでエイリアシングが有効になると (コンパイル時に削除できます)、 次のコマンドが使用可能となります: .Bl -tag -width XX .It alias enable Op yes|no エイリアシングを有効もしくは無効にします。 .Fl alias コマンドラインフラグは .Dq alias enable yes と同じ意味です。 .It alias addr Op Ar addr_local addr_alias このコマンドには、 .Ar addr_alias のデータを .Ar addr_local へリダイレクトします。 少数の実 IP アドレスを持ち、 それらをゲートウェイの後の特定のマシンにマップしたい場合に有用です。 .It alias deny_incoming Op yes|no yes に設定すると、 ファイアウォールとほぼ同様にパケットを落とすことにより、 このコマンドは全入力接続を拒否します。 .It alias help|? このコマンドは、使用可能な alias コマンドのまとめを表示します。 .It alias log Op yes|no このオプションは、alias の様々な統計と情報がファイル .Pa /var/log/alias.log に記録されるようにします。 .It alias port Ar proto Ar targetIP Ns Xo .No : Ns Ar port Ns .Oo .No - Ns Ar port .Oc Ar aliasport Ns .Oo .No - Ns Ar aliasport Ns .Oc .Xc このコマンドは、ポート .Ar aliasport への入力の .Ar proto 接続を、 .Ar targetIP のポート .Ar port へリダイレクトします。 .Ar proto は、 .Dq tcp または .Dq udp です。 .Pp ポート番号の範囲は、前述のように指定可能です。 範囲は同じ大きさであることが必要です。 .Pp あなたのゲートウェイの後のマシンでインターネット電話等を実行したい場合に、 このオプションは有用です。 しかし、ポートあたり内部マシン 1 台のみに接続可能という制限があります。 .It alias pptp Op Ar addr すべての .Em G Ns No eneral .Em R Ns No outing .Em E Ns No encapsulated .Pq Dv IPPROTO_GRE パケットを、ローカルインタフェースアドレスではなく .Ar addr を使用することにより、 .Nm にエイリアスさせます。 これは、マシンの内部ネットワーク上で .Em P Ns No oint to .Em P Ns No oint .Em T Ns No unneling .Em P Ns No rotocol の使用を許します。 .Pp .Ar addr を指定しないと、 .Dv PPTP エイリアスは無効になります。 .It "alias proxy cmd" Ar arg Ns No ... このコマンドは、 .Nm に特定の接続に対する代理をさせ、 これらの接続を指定したサーバにリダイレクトします。 使用可能なコマンドについての詳細は .Xr libalias 3 の .Fn PacketAliasProxyRule の記述を参照してください。 .It alias same_ports Op yes|no 有効になると、 エイリアスライブラリが出力パケットのポート番号を変更しようとすることを 止めさせます。 RPC や LPD といった、 ウェルノウンポート (well known port) からの接続を要求する プロトコルをサポートするのに有用です。 .It alias use_sockets Op yes|no 有効になると、 エイリアスライブラリにソケットを作成させ、 正しい ftp データ入力や IRC 接続を保証できるようになります。 .It alias unregistered_only Op yes|no 登録されていない送信元アドレスの出力パケットのみを、変更します。 RFC1918 によると、登録されていない送信元アドレスは 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 です。 .El .Pp これらのコマンドはソース配布物の .Pa README.alias ファイル中でも議論されています。 .Pp .It Op \&! Ns Xo .No bg Ar command .Xc 指定した .Ar command を、次の語を置換した後に、バックグラウンドで実行します: .Bl -tag -width PEER_ENDDISC .It Li AUTHNAME これは、ローカルの .Ar authname の値と置き換えられます。後述の .Dq set authname コマンドを参照してください。 .It Li ENDDISC これは、ローカルの終点選択値と置き換えられます。 後述の .Dq set enddisc コマンドを参照してください。 .It Li HISADDR これは、相手の IP 番号と置き換えられます。 .It Li INTERFACE これは、使用中のインタフェース名と置き換えられます。 .It Li LABEL これは、最後に使用したラベル名と置き換えられます。 ラベルは、 .Nm のコマンドラインから .Dq load または .Dq dial のコマンドから指定するか、 .Pa ppp.secret ファイルから指定可能です。 .It Li MYADDR これは、ローカルインタフェースに割り当てられた IP 番号と置き換えられます。 .It Li PEER_ENDDISC これは、相手の終点選択番号と置き換えられます。 .It Li PROCESSID これは、現在のプロセス ID と置き換えられます。 .It Li USER これは、PAP もしくは CHAP で認証されたユーザ名と置き換えられます。 通常、この変数は -direct モードでのみ割り当てられます。 この値は、utmp ロギングが有効になっているかどうかに関わらず、利用可能です。 .El .Pp これらの置換は .Dq set proctitle コマンドによっても実行されます。 .Pp コマンド実行中に .Nm を停止させたい場合は、 .Dq shell コマンドを使用してください。 .It clear modem|ipcp Op current|overall|peak... .Dq modem もしくは .Dq ipcp 階層で、指定されたスループット値をクリアします。 .Dq modem を指定する場合にはコンテキストが与えられなければなりません (後述の .Dq link コマンドを参照)。 第 2 引数が与えられない場合、すべての値がクリアされます。 .It clone Ar name Ns Xo .Op \&, Ns Ar name Ns .No ... .Xc 指定されたリンクを複製し、引数の .Ar name に関連づけた新しいリンクを作成します。 このコマンドは、リンクが 1 つしかない場合 (この場合にはそのリンクがデフォルトになります) を除いて後述の .Dq link コマンドから使用する必要があります。 リンクは下記の .Dq remove コマンドで削除できます。 .Pp デフォルトのリンク名は .Dq deflink です。 .It close Op lcp|ccp Ns Op \&! 引数が与えられないと、適切なプロトコル層がダウンし、リンクが閉じられます。 .Dq lcp が指定されると LCP 層がダウンしますが、 .Nm をオフラインにはしません。例えば .Dq slirp のようなものを使用すれば、 .Dq term .Pq 後述 を使用して相手のマシンと会話できます。 .Dq ccp が指定されると適切な圧縮層が閉じられます。 .Dq \&! が使用されると、圧縮層はクローズ状態のままとなります。 使用されない場合には、STOPPED 状態へ再度入り、 相手が更なる CCP 交渉を開始するのを待ちます。 なにが起きようとも、ユーザを .Nm から切り離すことはありませんし、 .Nm を終了させることもありません。 後述の .Dq quit を参照してください。 .It delete Ns Xo .Op \&! .Ar dest .Xc このコマンドは指定した .Ar dest IP アドレスの経路を削除します。 .Ar dest に .Sq ALL が指定された場合、 現在のインタフェースの経路表の非直接エントリと .Sq スティッキー経路 がすべて削除されます。 .Ar dest に .Sq default が指定された場合、デフォルト経路が削除されます。 .Pp .Ar delete! コマンドが使用された場合 .Po 最後の .Dq \&! に注意 .Pc 、存在しない経路について .Nm は文句を言わなくなります。 -.It dial|call Op Ar label -引数なしで使用された場合、このコマンドは +.It dial|call Op Ar label Ns Xo +.No ... +.Xc +このコマンドは、 +.Dq load label +の次に .Dq open -コマンドと同一です。 -.Ar label -が 1 つ以上指定された場合、最初に -.Dq load -が実行されます。 +を指定することと同等です。後方互換性のために提供されています。 .It down Op Ar lcp|ccp 適切な階層をダウンさせますが、 綺麗な方法ではなく、下位層が使用不能になったように見えます。 オープン状態にある有限状態機械でこのコマンドを使用することは、 丁寧ではないとされています。 引数が与えられない場合、すべてのリンクが閉じられます (コンテキストが与えられない場合にはすべてのリンクが終了されます)。 .Sq lcp が指定された場合、 .Em LCP 層は終了されますが、モデムはオフラインに移行せず、 リンクも閉じられません。 .Sq ccp が指定された場合、 関連する圧縮層のみが終了されます。 .It help|? Op Ar command 利用可能なコマンドをリストします。 .Ar command を指定した場合、このコマンドの使用方法を表示します。 .It iface add Ns Xo .Op \&! .Ar addr Ns Op / Ns Ar bits .Op Ar peer .Xc .It iface add Ns Xo .Op \&! .Ar addr .Ar mask .Ar peer .Xc このコマンドは、 .Nm ppp が使用するインタフェースを制御します。 .Ar command は次のいずれかです: .Bl -tag -width XX .It iface add[!] Ar addr[[/bits| mask] peer] 指定された .Ar addr mask peer の組み合わせをインタフェースに追加します。 .Ar mask を指定する代りに、 .Ar /bits を使用可能です .Pq addr との間に空白を入れてはなりません 。指定したアドレスが既に存在する場合、 .Dq \&! を使用していない限りコマンドは失敗します - この場合、 以前のインタフェースアドレスエントリは新しいもので置き換えられ、 ネットマスクと相手のアドレスの変更を許します。 .Pp .Ar addr のみが指定されると、 .Ar bits はデフォルト値 .Dq 32 になり、 .Ar peer はデフォルト値 .Dq 255.255.255.255 になります。 このアドレス (ブロードキャストアドレス) は、 相手のアドレスとして複数存在することを .Nm が唯一許すものです。 .It iface clear .Nm が OPENED 状態または .Fl auto モードの場合にこのコマンドを使用すると、 IPCP 交渉されたアドレス以外の全アドレスがインタフェースから削除されます。 .Nm が OPENED 状態でも .Fl auto モードでもない場合、全インタフェースアドレスが削除されます。 .Pp .It iface delete Ns Xo .Op \&! Ns .No |rm Ns Op \&! .Ar addr .Xc このコマンドは、指定した .Ar addr をインタフェースから削除します。 .Dq \&! が指定されると、現在そのアドレスがインタフェースに割り当てられていなくても、 エラーは報告されません (削除も行われません)。 .It iface show インタフェースの現在の状態と現在のアドレスを表示します。 .Dq ifconfig INTERFACE を実行することと、ほとんど同じです。 .It iface help Op Ar sub-command このコマンドを .Ar sub-command 無しで起動すると、利用可能な .Dq iface サブコマンドと、おのおのの短い書式を表示します。 .Ar sub-command 付きで起動すると、指定した sub-command の書式のみを表示します。 .El .It Op data Ns Xo .No link .Ar name Ns Op , Ns Ar name Ns .No ... Ar command Op Ar args .Xc コマンドが影響を与えるリンクを特定したい場合に、このコマンドを 任意の他のコマンドのプレフィックスとして使うことができます。 これはマルチリンクモードで .Dq clone コマンドを使って複数のリンクを作成した後でのみ適用されます。 .Pp .Ar name は存在するリンク名を指定します。 .Ar name がコンマ区切りのリストの場合には、 .Ar command はそれぞれのリンクに対して実行されます。 .Ar name が .Dq * の場合には、 .Ar command はすべてのリンクに対して実行されます。 .It load Op Ar label Ns Xo .No ... .Xc .Pa ppp.conf ファイルから指定された .Dq label (複数指定可) をロードします。 .Dq label が指定されない場合、 .Dq default ラベルが仮定されます。 +.Pp +.Ar label +セクションが +.Dq set mode , +.Dq open , +.Dq dial +のいずれのコマンドも使用しない場合、 +.Nm +はすぐに接続を確立しようとはしません。 .It open Op lcp|ccp|ipcp これは .Dq close の反対のコマンドです。 -.Dq open -コマンドを引数なしで用いることは -.Dq dial -を引数なしで用いることと同一です。 -すなわちすべての閉じられたリンクが、現在の設定を用いて起動されます ( +閉じられている全リンクがすぐに立ち上がります +(しかしながら auto リンクによっては立ち上がらないものがあります。 +これは、どのような .Dq set autoload -コマンドに基づいた自動リンクの中には起動されないものもあります)。 +コマンドが使用されたかに依存します)。 .Pp LCP 層がすでにオープンされているときに .Dq lcp -を指定すると、LCP は再度交渉されます。 +引数を指定すると、LCP は再度交渉されます。 したがって、種々の LCP オプションを変更したあとで .Dq open lcp コマンドを用いることで、変更を有効にすることができます。 LCP が再度交渉された後、 同意したあらゆる認証が実行されます。 .Pp .Dq ccp 引数が用いられると、関連する圧縮層がオープンされます。 すでにオープンされている場合には、再度交渉されます。 .Pp .Dq ipcp 引数が用いられると、リンクが通常通り起動されます。すでに IPCP が オープンされている場合には、IPCP は再度交渉され、 ネットワークインタフェースが再設定されます。 .Pp このようにして PPP の状態機械を再オープンするのは、 おそらく良い手段ではありません。 接続相手が正しく振る舞わない可能性があるためです。 しかしながら、強制的に CCP もしくは VJ 辞書をリセットする手段としては 便利です。 .It passwd Ar pass すべての .Nm コマンドセットにアクセスするために要求されるパスワードを指定します。 このパスワードは診断ポート ( .Dq set server コマンド参照) に接続するときに必要です。 .Ar pass は .Dq set server コマンドラインで指定します。 .Ar command ログが有効でも、値 .Ar pass は記録されず、文字列 .Sq ******** が記録されます。 .It quit|bye Op all .Dq quit が制御接続もしくはコマンドファイルから実行されると、 ppp はすべての接続を閉じた後に終了します。その他の場合、 つまりユーザが診断ソケットから接続している場合には、 単にその接続が失われます。 .Pp .Ar all 引数が与えられた場合、 .Nm はコマンドがどこから発行されたかに関わらず、 すべての存在する接続を閉じて終了します。 .It remove|rm このコマンドは与えられたリンクを消去します。 これはマルチリンクモードでのみ有用です。リンクは消去する前に .Dv CLOSED 状態になっていなければなりません。 .It rename|mv Ar name このコマンドは与えられたリンクの名前を .Ar name に変更します。 .Ar name がすでに他のリンクで使用されている場合には、失敗します。 .Pp デフォルトリンクの名前は .Sq deflink です。これを .Sq modem , .Sq cuaa0 , .Sq USR のいずれかに変更すると、ログファイルの可読性が向上するかも知れません。 .It save このオプションは (まだ) 実装されていません。 .It set Ns Xo .No Op up .Ar var value .Xc このオプションは次に示す変数の設定のために使用します: .Bl -tag -width XX .It set accmap Ar hex-value ACCMap は非同期制御文字マップ (Asyncronous Control Character Map) を 意味します。 これはいつも相手と交渉され、デフォルト値は 16 進数で 00000000 です。 このプロトコルが必要なのは、 (XON/XOFF などの) 特定の文字を終点間で受渡すことに依存するハードウェアを 使用する場合です。 .Pp XON/XOFF については .Dq set accmap 000a0000 を使用します。 .It set Op auth Ns Xo .No key Ar value .Xc クライアントモードでの PAP または CHAP の交渉で使用される 認証キー (もしくはパスワード) を、指定した値に設定します。 ダイヤルまたはログインスクリプトの .Sq \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\P シーケンスで使用するパスワードもまた指定します。 これにより実際のパスワードは記録されません。 .Ar command または .Ar chat のログが有効な場合、セキュリティの観点から、 .Ar value は .Sq ******** として記録されます。 .Pp .Ar value の最初の文字がエクスクラメーションマーク .Pq Dq \& の場合、 .Nm は残りの文字列を、 .Dq authname と .Dq authkey の値を確定するために実行すべきプログラムとして扱います。 .Pp .Dq \&! を無視し、前述の .Dq !bg コマンドと同様に特殊な名前を同様に置換しながら、 .Ar value は実行すべきプログラムとしてパーズされます。 プログラムを実行すると、 .Nm はこのプログラムに対して 3 行の入力を与えます。 各行は改行文字で終了しています: .Bl -bullet .It CHAP チャレンジに含めて送られるホスト名。 .It CHAP チャレンジに含めて送られるチャレンジ文字列。 .It ローカルに定義された .Dq authname 。 .El .Pp 2 行の出力が期待されています: .Bl -bullet .It CHAP 応答と共に送るべき .Dq authname 。 .It チャレンジと要求 ID で暗号化した .Dq authkey であり、応答は CHAP 応答パケットに含めて送られます。 .El .Pp .Nm をこのように設定するとき、 ホストチャレンジは ASCII の数値もしくは文字であることが期待されます。 指定されたチャレンジに対する適切な秘密情報を、 暗号化デバイスまたは Secure ID カードが計算することが求められています。 .It set authname Ar id クライアントモードでの PAP または CHAP の交渉で使用される 認証 ID を設定します。 .Pp CHAP を enable にして .Fl direct モードで利用すると、 .Ar id は初期認証チャレンジで用いられ、通常はローカルマシン名に設定されます。 .It set autoload Xo .Ar max-duration max-load Op Ar min-duration min-load .Xc これらの設定はマルチリンクモードでのみ適用され、 デフォルト値はすべて 0 です。 1 つ以上の .Ar demand-dial .Po .Fl auto としても知られる .Pc モードのリンクが存在する場合、 .Nm が最初に tun デバイスからデータを読むときには最初のリンクのみが 有効になっています。 次の .Ar demand-dial リンクは、 .Ar max-duration 秒の間、送出キューに .Ar max-load 以上のパケットが存在した場合にのみ開かれます。 両方のデフォルト値が 0 であるため、 .Ar demand-dial リンクはデフォルトでは 1 つだけオープンされます。 .Pp 複数のリンクが開かれていて、少なくともその内の 1 つが .Ar demand-dial リンクである場合、 .Ar min-duration 秒の間、送出キューに最大 .Ar min-packets 未満のパケットしか存在しなかったときに閉じられます。 .Ar min-duration が 0 の場合には、タイマは無効になります。 デフォルトでは両方の値が 0 であるため、 .Ar demand-dial リンクはバンドルされたアイドルタイマが期限切れになるまで アクティブであり続けます。 .It set callback Ar option Ns No ... 引数が与えられない場合、コールバックは disable になります。 そうでない場合には、 .Nm は与えられた .Ar option でコールバックを要求します (もしくは .Ar direct モードでは受け付けます)。 クライアントモードで、 .Ar option の否定応答が返されると、 .Nm は他に選択肢がなくなるまで別の .Ar option 要求を出します ( .Ar option のひとつとして .Dq none を指定していた場合を除きます)。 サーバモードでは、 .Nm は与えられるプロトコルをなんでも受け付けますが、 クライアントがいずれかひとつを要求する .Em 必要があります 。コールバックをオプションにしたいのであれば、オプションとして .Ar none を指定する必要があります。 .Pp .Ar option は下記の通りです (優先度順): .Pp .Bl -tag .It auth コールバック応答側は、認証に基づいてコールバック番号を 決定することが求められます。 .Nm がコールバック応答側である場合、番号は .Pa /etc/ppp/ppp.secret 中の接続先エントリの 5 番目のフィールドで指定されます。 .It cbcp Microsoft コールバック制御プロトコルが用いられます。後述の .Dq set cbcp を参照してください。 .It E.164 *| Ns Xo .Ar number Ns Op , Ns Ar number Ns .No ... .Xc コールバック要求側が .Ar number を指定します。 .Nm がコールバック応答側である場合、 .Ar number は許可する番号をコンマで区切って並べたリスト、もしくは 任意の番号を許可するという意味の .Dq \&* とします。 .Nm がコールバック要求側である場合、1 つの数字だけを指定します。 .Pp .Dq \&* を用いる場合、このオプションはとても危険なものとなることに 注意してください。 というのは、悪意あるコールバック要求者が、最初の認証なしに 電話すべき番号として任意の (国際通話番号も可能です) 番号を 伝えることができるからです。 .It none 接続相手がコールバックをまったく望まない場合、 .Nm はそのことを受け入れ、接続を終了するのではなく コールバックせずに処理を続けます。 コールバックをオプションにしたいのであれば、これを指定する必要があります。 .El .Pp .It set cbcp Oo Xo .No *| Ns Ar number Ns No .Oo .No , Ns Ar number Ns .Oc .No ... .Op Ar delay Op Ar retry .Oc .Xc 引数が与えられない場合、CBCP (Microsofts CallBack Control Protocol) は disable です。言い換えれば .Dq set callback コマンドで CBCP を設定すると .Nm が CBCP フェーズでコールバック要求を行わなくなります。 そうでない場合、 .Nm は与えられた電話番号 .Ar number を使おうとします。 .Pp サーバモード .Pq Fl direct では、 .Dq \&* を使わない限り .Nm はクライアントがこれらの番号の 1 つを使うことを主張します。 .Dq \&* を使った場合には、クライアントが番号を指定するものと想定します。 .Pp クライアントモードでは .Nm は与えられた番号 (そのうち接続相手と合意可能なもの) を使用しようとします。 .Dq \&* が指定された場合には、 .Nm 接続相手が番号を指定するものと想定します。 .It set cd Ar seconds Ns Op \&! 通常、ログインスクリプト完了の 1 秒後に、 .Nm はキャリアの存在をチェックします。 キャリアが設定されていないと、 デバイスがキャリアをサポートしていない (ほとんどのヌルモデムケーブルの場合がそうです) と .Nm は仮定し、この事実を記録して、キャリアのチェックを止めます。 しかし、モデムによってはキャリアのアサートに時間がかかるものがあるので、 リンクが落ちたときを .Nm ppp は検知できなくなります。 .Ar seconds は、ログインスクリプトが完了してから最初のキャリアチェックを行う前に、 .Nm が待つべき秒数を指定します。 .Pp .Ar seconds の直後にエクスクラメーションマーク .Pq Dq \&! がある場合、 .Nm はキャリアを .Em 要求 します。 最初のチェックでキャリアを検知しないと、リンクは切断されているとみなされます。 .Pp リンクが tty でない場合、キャリアの .Em 必要性 は無視されます。 .It set choked Op Ar timeout これは .Nm がすべての未送出パケットを破棄する前に 送出キュー詰まりを保持する秒数を設定します。 .Ar timeout が 0 以下もしくは .Ar timeout が指定されない場合、デフォルト値の .Em 120 秒 に設定されます。 .Pp 送出キュー詰まりは .Nm がローカルネットワークから特定の数の送出パケットを読み込んだが、 リンク失敗 (接続相手がビジーなど) のためにデータを送れない場合に 発生します。 .Nm はパケットを無限には読み込みません。代りに .Em 20 パケット (マルチリンクモードでは .Em 20 No + .Em nlinks No * .Em 2 パケット) まで読み込み、 .Ar timeout 秒経過するか、1 つ以上のパケットが送られるまで ネットワークインタフェースの読み込みを停止します。 .Pp .Ar timeout 秒が経過すると、すべての未送出パケットは破棄されます。 .It set ctsrts|crtscts on|off ハードウェアフロー制御をセットします。 デフォルトではハードウェアフロー制御は .Ar on です。 .It set deflate Ar out-winsize Op Ar in-winsize DEFLATE アルゴリズムの、 デフォルトの出力ウィンドウサイズと入力ウィンドウサイズを設定します。 .Ar out-winsize および .Ar in-winsize は、 .Em 8 から .Em 15 までの値をとる必要があります。 .Ar in-winsize が指定されると、 .Nm はこのウィンドウサイズの使用を強要し、相手が他の値を示しても受け入れません。 .It set dns Op Ar primary Op Ar secondary .Dq accept dns コマンドで使用される、DNS 上書きを設定します。 詳細については前述の .Dq accept コマンドの記述を参照してください。本コマンドは .Dq enable dns を使用して要求される IP 番号には影響を与えません。 .It set device|line Xo .Ar value Ns No ... .Xc .Nm が使用するデバイスを、指定された .Dq value に設定します。 全シリアルデバイス名は .Pa /dev/ から始まることが仮定されています。 .Dq value が .Pa /dev/ から始まらない場合、エクスクラメーションマーク .Pq Dq \&! から始めるか、 .Dq host:port の形式である必要があります。 .Pp エクスクラメーションマークで始まる場合、 デバイス名の残りはプログラム名として扱われ、 そのデバイスがオープンされるときにそのプログラムが実行されます。 標準入出力およびエラーは .Nm にフィードバックされ、それらが通常デバイスであるかのように読み書きされます。 .Pp .Dq host:port の組が与えられる場合、 .Nm は、指定された .Dq host の指定された .Dq port と接続しようとします。 詳細は上述の .Em PPP オーバ TCP の節を参照してください。 .Pp 複数の .Dq value を指定した場合、 .Nm は成功するか全デバイスについて実行し終るまで、順番にオープンを試みます。 .It set dial Ar chat-script 相手へダイヤルする際に使用されるチャットスクリプトを指定します。 後述の .Dq set login コマンドも参照してください。 チャットスクリプトのフォーマットの詳細については、 .Xr chat 8 と設定ファイルの例を参照してください。 次の特殊な .Sq value をチャットスクリプトに指定可能です: .Bd -unfilled -offset indent .It \\\\\\\\\\\\\\\\c .Sq 送信 文字列の最後の文字として使用した場合、 改行を追加してはならないことを意味します。 .It \\\\\\\\\\\\\\\\d チャットスクリプトがこのシーケンスに出会うと、2 秒待ちます。 .It \\\\\\\\\\\\\\\\p チャットスクリプトがこのシーケンスに出会うと、1/4 秒待ちます。 .It \\\\\\\\\\\\\\\\n 改行文字と置き換えられます。 .It \\\\\\\\\\\\\\\\r 復改文字と置き換えられます。 .It \\\\\\\\\\\\\\\\s 空白文字と置き換えられます。 .It \\\\\\\\\\\\\\\\t タブ文字と置き換えられます。 .It \\\\\\\\\\\\\\\\T 現在の電話番号と置き換えられます (後述の .Dq set phone 参照)。 .It \\\\\\\\\\\\\\\\P 現在の .Ar authkey 値と置き換えられます (前述の .Dq set authkey 参照)。 .It \\\\\\\\\\\\\\\\U 現在の .Ar authname 値と置き換えられます (前述の .Dq set authname 参照)。 .Ed .Pp 2 つのパーザがこれらのエスケープシーケンスを検査することに注意してください。 .Sq チャットのパーザ にエスケープ文字を見せるには、 .Sq コマンドパーザ からエスケープする必要があります。 つまり、2 つのエスケープを使用する必要があります。例えば次のようにします: .Bd -literal -offset indent set dial "... ATDT\\\\T CONNECT" .Ed .Pp チャットスクリプトから外部コマンドを実行することもできます。 そうするためには、 受信待ち文字列または送信文字列の最初の文字をエクスクラメーションマーク .Pq Dq \&! にします。 コマンドが実行されると、標準入力と標準出力がモデムデバイス ( .Dq set device 参照) に向けられ、標準エラー出力が .Nm に読まれて受信待ち文字列もしくは送信文字列に置き換えられます。 .Nm が対話モードで実行されている場合、ファイルデスクリプタ 3 は .Pa /dev/tty に接続されます。 .Pp 例えば (読み易さのために折り返しています); .Bd -literal -offset indent set login "TIMEOUT 5 \\"\\" \\"\\" login:--login: ppp \e word: ppp \\"!sh \\\\\\\\-c \\\\\\"echo \\\\\\\\-n label: >&2\\\\\\"\\" \e \\"!/bin/echo in\\" HELLO" .Ed .Pp は次のチャットシーケンスになります (ダイヤル前の .Sq set log local chat コマンドによる出力): .Bd -literal -offset indent Dial attempt 1 of 1 dial OK! Chat: Expecting: Chat: Sending: Chat: Expecting: login:--login: Chat: Wait for (5): login: Chat: Sending: ppp Chat: Expecting: word: Chat: Wait for (5): word: Chat: Sending: ppp Chat: Expecting: !sh \\-c "echo \\-n label: >&2" Chat: Exec: sh -c "echo -n label: >&2" Chat: Wait for (5): !sh \\-c "echo \\-n label: >&2" --> label: Chat: Exec: /bin/echo in Chat: Sending: Chat: Expecting: HELLO Chat: Wait for (5): HELLO login OK! .Ed .Pp 複数レベルのネストについて、 エスケープ文字の使用方法に (再度) 注意してください。 ここでは、4 つのパーザが動作してます。 1 番目は、オリジナルの行をパーズし、3 つの引数として読みます。 2 番目は、第 3 引数を 11 個の引数として読みます。 ここで、 .Dq \&- 記号がエスケープされていることが重要です。 そうでなければパーザは、 受信待ち-送信-受信待ちのシーケンスとして見てしまいます。 .Dq \&! 文字を見付けると、実行パーザは最初のコマンドを 3 つの引数として読み、 .Xr sh 1 自身が .Fl c 以降の引数を展開します。 我々は出力をモデムに送り返したいので、 1 番目の例では出力をファイルデスクリプタ 2 (stderr) にリダイレクトして .Nm 自身に送信および記録させ、 2 番目の例では単に stdout に出力して直接モデムに出力させます。 .Pp もちろん全体を、組み込みのものではなく外部の .Dq chat コマンドに実行させることが可能です。 良い代替方法については .Xr chat 8 を参照してください。 .Pp 実行される外部コマンドは、 .Dq !bg コマンドと同様に、特殊語の展開対象となります。 .It set enddisc Op label|IP|MAC|magic|psn value このコマンドは、ローカル終点の選択値を設定します。 LCP 交渉の前に設定されると、 .Nm は LCP 終点選択値オプションを使用して、相手に情報を送ります。 次の選択値を設定可能です。 .Bd -unfilled -offset indent .It Li label 現在のラベルが使用されます。 .It Li IP 当方のローカル IP 番号を使用します。 LCP は IPCP より前に交渉されますので、 IPCP 層が後からこの値を変更することが可能です。 その場合、手動でリセットしない限り、終点の選択値は古い値のままとなります。 .It Li MAC 前述の .Ar IP オプションに似ていますが、 ローカル IP 番号に関係する MAC アドレスが使用される点が異なります。 ローカル IP 番号がどのイーサネットインタフェースにも存在しない場合、 本コマンドは失敗します。 .Pp ローカル IP 番号のデフォルトは、 マシンホスト名がなんであれ、その名前になりますので、通常 .Dq set enddisc mac を .Dq set ifaddr コマンドよりも先に実行します。 .It Li magic 20 桁の乱数が使用されます。 .It Li psn Ar value 指定された .Ar value が使用されます。 .Ar value は、絶対的な公衆スイッチネットワーク番号の先頭に 国コードを付けたものであるべきです。 .Ed .Pp 引数が与えられない場合、終点の選択値はリセットされます。 .It set escape Ar value... このオプションは前述の .Dq set accmap オプションに似ています。 リンクを経由する時に .Sq エスケープ される文字を指定するために使用します。 .It set filter dial|alive|in|out Ar rule-no Xo .No permit|deny .Oo Ar src_addr Ns Op / Ns Ar width .Op Ar dst_addr Ns Op / Ns Ar width .Oc Oo tcp|udp|icmp Op src lt|eq|gt Ar port .Op dst lt|eq|gt Ar port .Op estab .Op syn .Op finrst .Oc .Xc .Nm は 4 つのフィルタセットをサポートします。 .Em alive フィルタは接続を活性状態に保つパケットを指定します - アイドルタイマをリセットします。 .Em dial フィルタは、 .Fl auto モード時に .Nm にダイヤルさせるパケットを指定します。 .Em in フィルタは、マシンに入力可能なパケットを指定します。 .Em out フィルタは、マシンから出力可能なパケットを指定します。 .Pp フィルタリングは、 エイリアスエンジンが行う IP 変更の前に適用されます。 デフォルトでは、全フィルタセットが全パケットの通過を許可します。 ルールは .Ar rule-no に従って順番に処理されます。 各セットに対し 40 までのルールを指定可能です。 指定されるセットにおけるどのルールにもマッチしないパケットは破棄されます。 .Em in と .Em out のフィルタでは、パケットをドロップすることを意味します。 .Em alive フィルタでは、アイドルタイマをリセットしないことを意味します。 .Em dial フィルタではダイヤルさせることにはならないことを意味します。 ダイヤルを引き起こさないパケットは、 キューされるのではなく、捨てられることに注意してください。 上述の .Sx パケットのフィルタリング の節を参照してください。 .It set hangup Ar chat-script モデムを閉じる前にこれをリセットする時に使用する、 チャットスクリプトを指定します。 通常は不要であるべきですが、 閉じる時に自己を正しくリセットできないデバイスに対して使用できます。 .It set help|? Op Ar command 利用可能な set コマンドのまとめを表示するか、 .Ar command が指定されると、コマンドの使用方法を表示します。 .It set ifaddr Oo Ar myaddr Ns .Op / Ns Ar \&nn .Oo Ar hisaddr Ns Op / Ns Ar \&nn .Oo Ar netmask .Op Ar triggeraddr .Oc Oc .Oc このコマンドは、IPCP 交渉の間使用される IP アドレスを指定します。 アドレスのフォーマットは次の通りです。 .Pp .Dl a.b.c.d/nn .Pp ここで .Dq a.b.c.d は希望する IP アドレスであり、 .Ar nn はこのうち何ビットが有効であるかを示します。 .No / Ns Ar nn が省略された場合、デフォルトの .Dq /32 になります。 ただし IP アドレスが 0.0.0.0 である場合には、マスクのデフォルトは .Dq /0 です。 .Pp .Ar hisaddr に IP 番号の範囲として .Bd -literal -offset indent .Ar \&IP Ns Oo \&- Ns Ar \&IP Ns Xo .Oc Oo , Ns Ar \&IP Ns .Op \&- Ns Ar \&IP Ns .Oc No ... .Xc .Ed .Pp のフォーマットを指定できます。例えば: .Pp .Dl set ifaddr 10.0.0.1 10.0.1.2-10.0.1.10,10.0.1.20 .Pp は .Dq 10.0.0.1 のみをローカル IP 番号として交渉しますが、指定された 10 個の IP 番号から 相手に割り当てを行います。 相手がこれらの番号のうちの 1 つを要求し、この番号が未使用な場合には、 .Nm は相手の要求を認めます。 相手がリンクを再確立して前回割り当てていた IP 番号を使用したい場合に有用です (既存の TCP 接続を保存します)。 .Pp 相手が要求した IP 番号が範囲外もしくは使用中の場合、 .Nm は範囲内の未使用 IP 番号をランダムに指示します。 .Pp .Ar triggeraddr が指定された場合、この値が .Ar myaddr の代りに IPCP 交渉で使用されます。 ただし、 .Ar myaddr の範囲のアドレスのみ受け入れられます。 これが有用なのは、相手が .Dq 0.0.0.0 を要求しない限り IP アドレスを割り当てようとしない .Dv PPP 実装と交渉するときです。 .Pp .Fl auto モードでは設定ファイルの .Dq set ifaddr 行を読んだ直後に .Nm がインタフェースを構成することに注意してください。 他のモードではこれらの値は IPCP 交渉で使用され、 IPCP 層がアップするまでこれらのインタフェースは構成されません。 .Pp .Po PAP か CHAP が .Dq enable である場合 .Pc クライアントが自己証明をした後では、 .Ar HISADDR 引数は .Pa ppp.secret ファイルの第 3 引数で上書きされうることに注意してください。 .Sx 内向き接続の認証 の節を参照してください。 .Pp どの場合でも、インタフェースが既に構成されている場合には、 .Nm はインタフェースの IP 番号を保存して、 既にバインドされているソケットが正しいままであるようにします。 .It set ccpretry|ccpretries Oo Ar timeout .Op Ar reqtries Op Ar trmtries .Oc .It set chapretry|chapretries Oo Ar timeout .Op Ar reqtries .Oc .It set ipcpretry|ipcpretries Oo Ar timeout .Op Ar reqtries Op Ar trmtries .Oc .It set lcpretry|lcpretries Oo Ar timeout .Op Ar reqtries Op Ar trmtries .Oc .It set papretry|papretries Oo Ar timeout .Op Ar reqtries .Oc これらのコマンドは .Nm が有限状態機械 (Finite State Machine; FSM) に要求パケットを送る前に 待つ秒数を指定します。 .Ar timeout のデフォルトは、全 FSM において 3 秒です (ほとんどの場合十分です)。 .Pp .Ar reqtries を指定すると、 相手から応答を受信しなくても諦めるまでに設定要求を作成する回数を、 .Nm に指示します。 デフォルトの試行回数は、CCP, LCP, IPCP の場合 5 回であり、 PAP と CHAP の場合 3 回です。 .Pp .Ar trmtries を指定すると、 相手の応答を待つことを諦めるまでに終了要求を作成する回数を、 .Nm に指示します。 デフォルトの試行回数は 3 回です。 認証プロトコルは終了されませんので、 PAP や CHAP に対して指定することは不正です。 .Pp 合意できない相手との交渉を避けるために、 どのような交渉セッションであっても諦めたり層をクローズする前には、 .Nm は最大で .Ar reqtries の設定値の 3 倍までのみ送信します。 .It set log Xo .Op local .Op +|- Ns .Ar value Ns No ... .Xc このコマンドにより現在のログレベルを修正できます。 詳細はログ機能の節を参照してください。 .It set login chat-script この .Ar chat-script はダイヤルスクリプトを補います。 もし両方が指定された場合、ダイヤルスクリプトの後で、 ログインスクリプトが実行されます。 ダイヤルスクリプト中で使用可能なエスケープシーケンスはここでも使用可能です。 .It set lqrperiod Ar frequency このコマンドは、 .Em LQR または .Em ECHO LQR のパケットが送信される頻度 .Ar frequency を秒で指定します。デフォルトは 30 秒です。 相手に LQR 要求を送りたい場合には、 .Dq enable lqr コマンドもまた使用する必要があります。 .It set mode Ar interactive|auto|ddial|background 指定したリンクにおけるモード .Sq mode を変更できます。通常マルチリンクモードでのみ有用ですが、 単一リンクモードでも使用可能です。 .Pp .Sq direct または .Sq dedicated のリンクを変更することはできません。 .Pp 注釈: コマンド .Dq set mode auto を発行し、IP エイリアシングが enable にされていた場合、後で .Dq enable iface-alias を行うと便利です。 .Nm が必要なアドレス変換を行うようにすることにより、 相手が当方に新しい (動的な) IP アドレスを割り当てたとしても、 リンクがアップすると接続のトリガとなるプロセスが接続できるようにします。 .It set mrru Op Ar value このオプションを設定すると、 マルチリンクプロトコルまたは MP としても知られる、 マルチリンク PPP 交渉を有効にします。 MRRU (Maximum Reconstructed Receive Unit) の値にはデフォルトはありません。 引数を指定しないと、マルチリンクモードは無効にされます。 .It set mru Op Ar value デフォルトの MRU (最大受信単位; Maximum Receive Unit) は 1500 です。 この値を増加させた場合、相手は MTU を増加させても *かまいません*。 デフォルトの MRU より減らすことは意味がありません。 なぜなら、 .Em PPP プロトコルでは少なくとも 1500 オクテットのパケットを 受信できなければ *ならない* からです。 引数が指定されないと、1500 が仮定されます。 .It set mtu Op Ar value デフォルトの MTU は 1500 です。 交渉時に、(296 バイト未満でなければ) 相手が望むいかなる MRU および MRRU も受け付け可能です。 MTU が設定されると、 .Nm は .Ar value よりも小さい MRU/MRRU の値を受け付けなくなります。 交渉が完了すると、相手がより大きな MRU/MRRU を要求していたとしても、 インタフェースに対して MTU が割り当てられます。 当方のパケットサイズを制限するのに有用です (よりよくバンド幅を共有できるようになりますが、 ヘッダデータが増えるというコストがかかります)。 .Pp .Ar value を指定しないと、1500 または相手が要求した値が使用されます。 .It set nbns Op Ar x.x.x.x Op Ar y.y.y.y このオプションは、相手の要求によって返される Microsoft NetBIOS ネームサーバの値を設定します。 値を指定しないと、 .Nm はそのような要求を拒否するようになります。 .It set openmode active|passive Op Ar delay デフォルトでは、 .Ar openmode は常に、1 秒の .Ar delay をもって .Ar active となります。 この場合、 .Nm は回線が設定されてから 1 秒が経過したなら いつでも LCP/IPCP/CCP の交渉を開始します。 相手が交渉を開始するのを待ちたい場合は、値 .Dq passive を使用します。 直ちにもしくは 1 秒以上待ってから交渉を開始したい場合、 .Ar delay を秒単位で指定します。 .It set parity odd|even|none|mark 回線のパリティを設定できます。デフォルト値は .Ar none です。 .It set phone Ar telno Ns Xo .Oo \&| Ns Ar backupnumber .Oc Ns ... Ns Oo : Ns Ar nextnumber .Oc Ns ... .Xc ダイヤルおよびログインのチャットスクリプトで使用される \\\\T 文字列が 置き換えられる電話番号を指定できます。 複数の電話番号をパイプ .Pq Dq \&| もしくはコロン .Pq Dq \&: で区切って指定可能です。 .Pp パイプの後の番号がダイヤルされるのは、 直前の番号へのダイヤルもしくはログインのスクリプトが失敗した場合のみです。 回線の切断の理由にかかわらず、 コロンで区切られた番号は順番に試行されます。 .Pp 複数の番号を指定した場合、接続が確立するまで .Nm はこのルールに基づいてダイヤルします。 再試行の最大値は、後述の .Dq set redial で指定します。 .Fl background モードでは各番号は最大 1 回試行されます。 .It set Op proc Ns Xo .No title Op Ar value .Xc .Xr ps 1 が表示する現在のプロセスタイトルを、 .Ar value に従って変更します。 .Ar value が指定されないと、元のプロセスタイトルが回復されます。 シェルコマンドが行うすべての語置換 (前述の .Dq bg コマンドを参照してください) は、ここでも行われます。 .Pp プロセスタイトル中に USER が必要な場合、 .Dq set proctitle コマンドは .Pa ppp.linkup 中に登場する必要があることに注意してください。 .Pa ppp.conf が実行されているときには、分からないからです。 .It set radius Op Ar config-file このコマンドは RADIUS サポートを (組み込まれていれば) 有効にします。 .Ar config-file は、 .Xr radius.conf 5 に記述されている radius クライアント設定ファイルを参照します。 PAP または CHAP が .Dq enable にされている場合、 .Nm は .Em \&N Ns No etwork .Em \&A Ns No ccess .Em \&S Ns No erver として振舞い、設定されている RADIUS サーバを使用して認証し、 .Pa ppp.secret ファイルやパスワードデータベースによる認証は行いません。 .Pp PAP と CHAP のいずれも有効になっていない場合、 .Dq set radius は効果がありません。 .Pp .Nm は、RADIUS 応答中の、次の属性を使用します: .Bl -tag -width XXX -offset XXX .It RAD_FRAMED_IP_ADDRESS 相手の IP アドレスは指定された値に設定されました。 .It RAD_FRAMED_IP_NETMASK tun インタフェースのネットマスクは指定された値に設定されました。 .It RAD_FRAMED_MTU 指定された MTU が LCP 交渉で合意された相手の MRU より小さい場合であり、 *かつ* 設定された MTU のいずれよりも小さい場合 ( .Dq set mru コマンド参照)、 tun インタフェースの MTU は指定した値に設定されます。 .It RAD_FRAMED_COMPRESSION 受信した圧縮タイプが .Dq 1 の場合、 .Dq disable vj 設定コマンドが指定されていたとしても、IPCP 交渉において .Nm は VJ 圧縮を要求します。 .It RAD_FRAMED_ROUTE 受信した文字列は、 .Ar dest Ns Op / Ns Ar bits .Ar gw .Op Ar metrics という書式であると期待します。 指定した metrics は無視されます。 .Dv MYADDR と .Dv HISADDR は、 .Ar dest と .Ar gw の正当な値として理解されます。 .Dq default を .Ar dest に使用可能であり、デフォルト経路を指定します。 .Dq 0.0.0.0 は、 .Ar dest に対する .Dq default と同じであると解釈され、 .Ar gw に対する .Dv HISADDR と同じであると解釈されます。 .Pp 例えば、戻り値 .Dq 1.2.3.4/24 0.0.0.0 1 2 -1 3 400 は 1.2.3.0/24 ネットワークへは .Dv HISADDR を介するという経路表エントリになり、 戻り値 .Dq 0.0.0.0 0.0.0.0 または .Dq default HISADDR は .Dv HISADDR 行きのデフォルト経路になります。 .Pp すべての RADIUS の経路は、 すべてのスティッキーな経路が適用された後で適用されます。 これにより、RADIUS の経路が、設定済みの経路に優先します。 これは、 .Dv MYADDR または .Dv HISADDR というキーワードを含まない RADIUS の経路にもあてはまります。 .Pp .El RADIUS サーバから受信した値は、 .Dq show bundle を使用して見られます。 .It set reconnect Ar timeout ntries (CD の喪失もしくは LQR の失敗により) 予想外の回線切断となった場合、 指定した .Ar timeout の後に接続が再確立されます。 回線は最大 .Ar ntries 回、再接続されます。 .Ar ntries のデフォルトは 0 です。 .Ar timeout に .Ar random を指定すると、1 から 30 秒の間の任意時間の停止となります。 .It set recvpipe Op Ar value ルーティングテーブルの RECVPIPE 値を設定します。 最適な値は、MTU 値を 2 倍した値を丁度越える値です。 .Ar value が指定されないまたは 0 の場合、デフォルトの、カーネルが制御する値を使用します。 .It set redial Ar secs Ns Xo .Oo + Ns Ar inc Ns .Op - Ns Ar max Ns .Oc Op . Ns Ar next .Op Ar attempts .Xc .Nm に .Ar attempts 回のリダイヤルを指示できます。 1 より大きな数を指定した場合 (前述の .Ar set phone 参照)、 各番号にダイヤルする前に、 .Ar next だけ停止します。 最初の番号に戻ってダイヤル開始する前に .Ar secs だけ停止します。リテラル値 .Dq Li random を .Ar secs および .Ar next のところで使用でき、1 から 30 秒の間の任意時間の停止となります。 .Pp .Ar inc が指定されると、 .Nm が新規番号を試すたびに、この値が .Ar secs に加えられます。 .Ar secs が増加されるのは、最大 .Ar maxinc 回だけです。 .Ar maxinc のデフォルト値は 10 です。 .Ar attempts が経過した後でも .Ar secs の遅延は効果があるので、 すぐに手動でダイヤルしても何も起ってないように見えるかもしれません。 すぐにダイヤルする必要がある場合、 .Dq \&! を .Dq open キーワードの直後に付けます。 更なる詳細については、前述の .Dq open の記述を参照してください。 .It set sendpipe Op Ar value ルーティングテーブルの SENDPIPE 値を設定します。 最適な値は、MTU 値を 2 倍した値を丁度越える値です。 .Ar value が指定されないまたは 0 の場合、デフォルトの、カーネルが制御する値を使用します。 .It set server|socket Ar TcpPort|LocalName|none password Op Ar mask このコマンドは .Nm に指定したソケットもしくは .Sq 診断ポート にてコマンド接続の入力を listen するように指示します。 .Pp 語 .Ar none は .Nm に既に存在するソケットを閉じさせます。 .Pp ローカルドメインソケットを指定したい場合、 .Ar LocalName に絶対ファイル名を指定します。そうしないと、TCP ポートの名前もしくは番号 であると解釈されます。 ローカルドメインソケットに使用される 8 進 umask を指定する必要があります。 .Sq 0 から始まる 4 桁 8 進数で指定します。 umask の詳細については .Xr umask 2 を参照してください。TCP ポート名がどのように変換されるかについては .Xr services 5 を参照してください。 .Pp このソケットにクライアントが接続するときに使用されねばならないパスワードも 指定可能です ( 前述の .Dq passwd コマンドを使用します)。 パスワードが空文字列として指定される場合、 クライアントが接続するときにパスワードを必要とされません。 .Pp ローカルドメインソケットが指定される場合、ソケット名中の最初の .Dq %d シーケンスは現在のインタフェースユニット番号で置換されます。 複数接続のために同一のプロファイルを使用したい場合に便利です。 .Pp 同様の方法で TCP ソケットの前に .Dq + 文字を付けることができます。 この場合、現在のインタフェースユニット番号が、ポート番号に加算されます。 .Pp .Nm をサーバソケットと共に使用する場合、通信機構として .Xr pppctl 8 コマンドを使用することが好ましいです。 現在 .Xr telnet 1 も使用可能ですが、将来リンク暗号化が実装されるかもしれませんので、 .Xr telnet 1 に依存しないようにしてください。 .It set speed Ar value シリアルデバイスの速度を指定します。 .It set stopped Op Ar LCPseconds Op Ar CCPseconds このオプションが指定されると、 指定した FSM (有限状態機械; Finite State Machine) が停止状態になってから .Dq seconds で指定した秒数だけ停止したのち、 .Nm はタイムアウトします。 このオプションは、 相手が終了要求を送り我々が終了確認応答を送ったにもかかわらず 実際には接続を閉じない場合に、有用かもしれません。また、 .Dq set openmode passive を使用した場合に相手が指定時間内に Configure Request を送らないことを タイムアウト検出する場合には、便利かもしれません。 .Dq set log +lcp +ccp を使用すると、 .Nm は適切な状態遷移を記録します。 .Pp デフォルト値は 0 であり、 停止状態による .Nm のタイムアウトは発生しません。 .Pp この値は openmode の遅延 (上述の .Dq set openmode 参照) より小さくなってはなりません。 .It set timeout Ar idleseconds このコマンドはアイドルタイマの値を指定します。 更なる詳細については .Sx アイドルタイマの設定 というタイトルの節を参照してください。 .It set vj slotcomp on|off このコマンドは .Nm に VJ スロット圧縮を交渉するか否かを指示します。 デフォルトではスロット圧縮は .Ar on です。 .It set vj slots Ar nslots このコマンドは最初の .Ar slots 番号を指定します。 .Nm は VJ 圧縮が enable されている時には、 これを使用して相手と交渉をします (前述の .Sq enable コマンドを参照してください)。 デフォルト値は 16 です。 .Ar nslots は .Ar 4 以上 .Ar 16 以下の値です。 .El .Pp .It shell|! Op Ar command .Ar command が指定されない場合、 .Dv SHELL 環境変数で指定されるシェルが起動されます。 そうでなければ指定された .Ar command が実行されます。 語の置換は、前述の .Dq !bg コマンドと同様の方法で行われます。 .Pp 文字 ! を使用する場合、コマンドとの間に空白が必要です。 このコマンドはフォアグラウンドで実行されることに注意してください - .Nm はプロセスが終了するまでは実行を続けません。 バックグラウンドでコマンド処理を行いたい場合には、 .Dv bg コマンドを使用してください。 .It show Ar var このコマンドを使用して、次の内容を確認できます: .Bl -tag -width 20 .It show bundle 現在のバンドル設定を表示します。 .It show ccp 現在の CCP 圧縮統計を表示します。 .It show compress 現在の VJ 圧縮統計を表示します。 .It show escape 現在のエスケープ文字を表示します。 .It show filter Op Ar name 指定したフィルタの現在のルールをリストします。 .Ar name を指定しないと、全フィルタが表示されます。 .It show hdlc 現在の HDLC 統計を表示します。 .It show help|? 利用可能な show コマンドのまとめを表示します。 .It show iface 現在のインタフェース情報 .Po Dq iface show と同じです .Pc を表示します。 .It show ipcp 現在の IPCP 統計を表示します。 .It show lcp 現在の LCP 統計を表示します。 .It show Op data Ns Xo .No link .Xc 高レベルリンク情報を表示します。 .It show links 利用可能な論理リンクのリストを表示します。 .It show log 現在のログ値を表示します。 .It show mem 現在のメモリ統計を表示します。 .It show modem 現在の下位レベルリンク情報を表示します。 .It show mp マルチリンク情報を表示します。 .It show proto 現在のプロトコルの総計を表示します。 .It show route 現在の経路表を表示します。 .It show stopped 現在の stopped タイムアウト値を表示します。 .It show timer アクティブアラームタイマを表示します。 .It show version .Nm の現在のバージョン番号を表示します。 .El .Pp .It term 端末モードに移行します。 キーボードからタイプした文字はモデムに送られます。 モデムから読んだ文字はスクリーンに表示されます。 モデムの相手側に .Nm の相手が認識された時には、 .Nm は自動的にパケットモードを有効にし、コマンドモードに戻ります。 .El .Pp .Sh 更に詳細について .Bl -bullet .It 設定ファイルの例を読んでください。良い情報源です。 .It 何が利用できるかについては、 .Dq help , .Dq alias ? , .Dq enable ? , .Dq set ? , .Dq show ? コマンドを使って、オンライン情報を取得してください。 .It 次の URL に有用な情報があります: .Bl -bullet -compact .It http://www.FreeBSD.org/FAQ/userppp.html .It http://www.FreeBSD.org/handbook/userppp.html .El .Pp .El .Pp .Sh 関連ファイル .Nm は、4 つのファイル .Pa ppp.conf , .Pa ppp.linkup , .Pa ppp.linkdown , .Pa ppp.secret を参照します。 これらのファイルは .Pa /etc/ppp に置かれます。 .Bl -tag -width XX .It Pa /etc/ppp/ppp.conf システムのデフォルト設定ファイル。 .It Pa /etc/ppp/ppp.secret 各システム用の認証設定ファイル。 .It Pa /etc/ppp/ppp.linkup .Nm がネットワークレベルの接続を確立した時に実行されるファイル。 .It Pa /etc/ppp/ppp.linkdown .Nm がネットワークレベルの接続を閉じる時にチェックするファイル。 .It Pa /var/log/ppp.log ログとデバッグ情報のファイル。このファイル名は .Pa /etc/syslogd.conf にて指定されます。詳細は .Xr syslog.conf 5 を参照してください。 .It Pa /var/spool/lock/LCK..* tty ポートをロックするためのファイル。詳細は .Xr uucplock 3 を参照してください。 .It Pa /var/run/tunN.pid tunN デバイスに接続されている .Nm プログラムのプロセス ID (pid) 。 ここで .Sq N はデバイスの番号です。 .It Pa /var/run/ttyXX.if このポートで使われている tun インタフェース。 このファイルも .Fl background , .Fl auto , .Fl ddial のいずれかのモードの時のみ作成されます。 .It Pa /etc/services サービス名でポート番号が指定されている場合に、ポート番号を取得します。 .It Pa /var/run/ppp-authname-class-value マルチリンクモードでは、 相手の認証名称 .Pq Sq authname と相手の終点選択クラス .Pq Sq class と相手の終点選択値 .Pq Sq value を使用して、ローカルドメインソケットが生成されます。 終点選択値はバイナリ値であってもかまわないため、 実際のファイル名を判定するために 16 進数に変換されます。 .Pp このソケットは、別の .Nm のインスタンスとリンクを受け渡しを行うために使用します。 .El .Pp .Sh 関連項目 .Xr at 1 , .Xr ftp 1 , .Xr gzip 1 , .Xr hostname 1 , .Xr login 1 , .Xr tcpdump 1 , .Xr telnet 1 , .Xr libalias 3 , .Xr syslog 3 , .Xr uucplock 3 , .Xr crontab 5 , .Xr group 5 , .Xr passwd 5 , .Xr radius.conf 5 , .Xr resolv.conf 5 , .Xr syslog.conf 5 , .Xr adduser 8 , .Xr chat 8 , .Xr getty 8 , .Xr inetd 8 , .Xr init 8 , .Xr named 8 , .Xr ping 8 , .Xr pppctl 8 , .Xr pppd 8 , .Xr route 8 , .Xr syslogd 8 , .Xr traceroute 8 , .Xr vipw 8 .Sh 歴史 元のプログラムは Toshiharu OHNO (tony-o@iij.ad.jp) が作成し、 FreeBSD-2.0.5 に Atsushi Murai (amurai@spec.co.jp) が提出しました。 .Pp 1997 年中に Brian Somers (brian@Awfulhak.org) が本格的な修正をし、 11 月に OpenBSD に移植されました (2.2-RELEASE の直後です)。 .Pp 1998 年初頭にマルチリンク ppp サポートが追加されたときに、 ほとんどのコードを Brian Somers が書き直しました。 diff --git a/ja_JP.eucJP/man/man8/pppctl.8 b/ja_JP.eucJP/man/man8/pppctl.8 index 30aa5994ed..38df5389b4 100644 --- a/ja_JP.eucJP/man/man8/pppctl.8 +++ b/ja_JP.eucJP/man/man8/pppctl.8 @@ -1,200 +1,200 @@ -.\" %Id: pppctl.8,v 1.10 1998/05/13 07:57:44 phk Exp % +.\" %Id: pppctl.8,v 1.11 1998/08/31 16:41:09 wosch Exp % .Dd 26 June 1997 .Os FreeBSD .Dt PPPCTL 8 .Sh 名称 .Nm pppctl .Nd PPP 制御プログラム .Sh 書式 .Nm .Op Fl v .Op Fl t Ar n .Op Fl p Ar passwd .Ar [host:]Port | LocalSocket .Op command[;command]... .Sh 解説 このプログラムは .Xr ppp 8 デーモンのコマンドラインからの制御手段を提供します。 基本的な使い方は、実行中のデーモンを制御する単純なスクリプトを 簡単に書けるようにすることです。 .Pp .Nm ppp デーモンが listen しているソケットをあらわす 少なくともひとつの引数を必要とします。 詳細については、 .Nm ppp コマンドの .Sq set server を参照して下さい。 ソケットが先頭に '/' を含んでいると、 .Dv AF_LOCAL ソケットとして扱われます。 コロンを含んでいると .Ar host:port の組として扱われ、 それ以外は単にローカルマシン (127.0.0.1) の TCP ポートを 指定したものとみなされます。 DNS 検索を避けたい場合や、 .Pa /etc/services 内に指定されたポートのエントリがない場合には、 .Ar host と .Ar port には数字で指定することができます。 .Pp 残りの引数はすべて、 .Nm ppp デーモンに送られる (複数の) .Ar コマンド を形成するために連結されます。 セミコロン文字はコマンドデリミタとして扱われ、ひとつの .Sq セッション で複数の .Ar コマンド を指定することが可能です。 例えば: .Bd -literal -offset indent pppctl 3000 set timeout 300\\; show timeout .Ed .Pp ほとんどのシェルでは ';' は特殊文字として扱われるので、 エスケープかクォートすることを忘れないようにしてください。 .Pp もし、 .Ar コマンド 引数が与えられなかった場合、 .Nm はインタラクティブモードになります。 ここで、コマンドは標準入力から読み込まれます。 コマンドを読んでいる時に、 .Xr editline 3 が使われていれば、( .Xr editrc 5 で指定した振る舞いで) 行編集が可能になります。 履歴の大きさはデフォルトでは .Em 20 行 です。 .Pp 以下のコマンドラインオプションが利用可能です: .Bl -tag -width Ds .It Fl v .Nm ppp デーモンに送られたデータ、 .Nm ppp デーモンから受け取ったデータをすべて表示します。 .Nm は通常、受け取った非プロンプト行のみ表示します。 このオプションはインタラクティブモードでは無視されます。 .It Fl t Ar n 接続時のデフォルトの 2 秒の代わりに .Ar n をタイムアウトの値として用います。 これは (ダイヤルアップも含む) 遅いリンク上でデーモンを制御しようとする 場合に必要かもしれません。 .It Fl p Ar passwd .Nm ppp デーモンが必要とするパスワードを指定します。 このスイッチが指定されないと、 .Nm は .Nm ppp への接続が成功した時にパスワードの入力を促します。 .El .Pp .Sh 使用例 .Nm ppp を .Fl auto モードで実行する場合、 .Nm は多くの仕事を自動化するのに利用できます (もちろん、実際に .Nm ppp をインタラクティブモードを除くどんなモードでも制御することができます) 。 .Xr ps 1 によりあなたの秘密がもれてしまう可能性のために、 .Fl p オプションは (たとえスクリプトが他の人に読めないようになっていたとしても) お勧めできません。 .Pp .Nm への簡単で安全なアクセスを提供するもっとも良い方法は、 .Pa /etc/ppp/ppp.conf (の正しいセクション) に以下のようにローカルサーバソケットを作成することです: .Bd -literal -offset indent set server /var/run/internet "" 0177 .Ed .Pp これは、 .Nm ppp を実行したユーザだけにアクセスできるように、 パスワード無しでパーミッションが srw------- の ローカルドメインソケットを作成するように .Nm ppp に指示します。より詳しい解説はマニュアルページ .Xr ppp 8 を参照してください。 .Pp このようにするといくつかのお気楽スクリプトが作成可能になります。 インターネットに接続するには: .Bd -literal -offset indent #! /bin/sh test $# -eq 0 && time=300 || time=$1 exec pppctl /var/run/internet set timeout $time\\; dial .Ed .Pp 切断するには: .Bd -literal -offset indent #! /bin/sh exec pppctl /var/run/internet set timeout 300\\; close .Ed .Pp 接続されているかどうか確かめるには: .Bd -literal -offset indent #! /bin/sh pppctl -p '' -v /var/run/internet quit | grep ^PPP >/dev/null if [ $? -eq 0 ]; then echo Link is up else echo Link is down fi .Ed .Pp このような汎用スクリプトも作成可能です: .Bd -literal -offset indent #! /bin/sh exec pppctl /var/run/internet "$@" .Ed .Pp .Sh 環境変数 以下の環境変数が、インタラクティブモード中の .Nm によって理解されます: .Bl -tag -width XXXXXXXXXX .It Dv EL_SIZE 履歴行の数です。デフォルトでは 20 です。 .It Dv EL_EDITOR 編集モードです。 "emacs" もしくは "vi" だけが受け付けられます。 他の値は無視します。この環境変数は .Pa ~/.editrc の .Ar bind -v や .Ar bind -e で上書きされます。 .El .Pp .Sh 関連項目 +.Xr ps 1 , .Xr editline 3 , .Xr editrc 5 , -.Xr ppp 8 , -.Xr ps 1 , -.Xr services 5 +.Xr services 5 , +.Xr ppp 8 .Sh 歴史 .Nm コマンドは FreeBSD 2.2.5 で最初に登場しました。 diff --git a/ja_JP.eucJP/man/man8/procctl.8 b/ja_JP.eucJP/man/man8/procctl.8 index ded7a3107e..7df1c14a6d 100644 --- a/ja_JP.eucJP/man/man8/procctl.8 +++ b/ja_JP.eucJP/man/man8/procctl.8 @@ -1,40 +1,41 @@ -.\" %Id: procctl.8,v 1.3 1998/01/05 07:19:14 charnier Exp % +.\" %Id: procctl.8,v 1.3.2.1 1999/06/15 14:36:46 ru Exp % +.\" .\" jpman %Id: procctl.8,v 1.3 1998/10/12 14:27:48 horikawa Stab % .Dd Nov 23, 1997 -.Dt PROCCTL 1 +.Dt PROCCTL 8 .Os FreeBSD .Sh 名称 .Nm procctl .Nd procfs イベントフラグのクリア .Sh 書式 .Nm .Ar command .Op Ar ... .Sh 解説 .Nm は .Xr truss 1 によって使われる .Xr procfs 5 イベントマスクをクリアします。 .Xr procfs 5 のイベントによって殺せないプロセスが結果として生じてしまった為に、 プロセスが立往生して残ってしまった場合に、 この .Nm コマンドを使うことが出来ます。 コマンドオプションはプロセスIDのリストです; .Nm コマンドはこのリストを順次評価します。 そして、リストに明示されたそれぞれのプロセスに対応するイベントマスク をクリアします。 .Sh 関連項目 .Xr truss 1 , .Xr procfs 5 .Sh 歴史 .Nm コマンドは .An Sean Eric Fagan によって .Bx Free の為に書かれました。 diff --git a/ja_JP.eucJP/man/man8/vmstat.8 b/ja_JP.eucJP/man/man8/vmstat.8 index 13ea27c540..37e28d671d 100644 --- a/ja_JP.eucJP/man/man8/vmstat.8 +++ b/ja_JP.eucJP/man/man8/vmstat.8 @@ -1,311 +1,315 @@ .\" Copyright (c) 1986, 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. .\" .\" @(#)vmstat.8 8.1 (Berkeley) 6/6/93 .\" %Id: vmstat.8,v 1.10 1998/09/15 08:16:43 gibbs Exp % .\" jpman %Id: vmstat.8,v 1.2 1997/05/29 07:57:00 yugawa Stab % .\" .Dd June 6, 1996 .Dt VMSTAT 8 .Os BSD 4 .Sh 名称 .Nm vmstat .Nd 仮想メモリの統計情報を報告する .Sh 書式 .Nm vmstat .\" .Op Fl fimst .Op Fl ims .Op Fl c Ar count .Op Fl M Ar core .Op Fl N Ar system .Op Fl w Ar wait .Op Fl n Ar devs .Op Fl p Ar type,if,pass .Op Ar disks .Sh 解説 .Nm は、プロセス、仮想メモリ、ディスク、トラップ、CPU の活動状況 などについてカーネルが持っている統計情報を報告します。 .Pp オプション: .Bl -tag -width indent .It Fl c 表示を .Ar count 回繰り返します。 最初の表示はリブート時からの統計で、 その後の表示は直前の表示から現在までの間の統計です。 -.Ar wait -間隔を指定しないと、デフォルトは 1 秒となります。 +繰り返し回数 +.Ar count +を指定せず、 +.Fl w +を指定しないと、デフォルトは無限になります。 +そうでない場合、デフォルトは 1 になります。 .\" .It Fl f .\" システムが起動してからの .\" .Xr fork 2 .\" と .\" .Xr vfork 2 .\" システムコールの回数と、それぞれのシステムコールで使われた .\" 仮想メモリのページ数を表示します。 .It Fl i システムが起動してから各デバイスで起こった割り込みの回数を表示します。 .It Fl M 名前に関するリストから値を取り出す際に、デフォルトの .Pa /dev/kmem の代わりに指定された .Ar core を使います。 .It Fl N 名前のリストを取り出す際に、デフォルトの .Pa /kernel の代わりに指定された .Ar system を使います。 .It Fl m カーネルの動的メモリの利用状況について、確保したサイズ、利用のタイプの 順で一覧にして表示します。 .It Fl n 表示する最大ディスク数を、デフォルトの 3 から変更します。 .It Fl p どのタイプのデバイスを表示するのかを指定します。 3 種類のカテゴリのデバイスがあります: .Bl -tag -width indent -compact .It デバイスタイプ: .Bl -tag -width 123456789 -compact .It da ダイレクトアクセス .It sa シーケンシャルアクセスデバイス .It printer プリンタ .It proc プロセッサデバイス .It worm ライトワンスリードマルチプルデバイス .It cd CD デバイス .It scanner スキャナデバイス .It optical オプティカルメモリデバイス .It changer メディアチェンジャデバイス .It comm コミュニケーションデバイス .It array ストレージアレイデバイス .It enclosure エンクロージャサービスデバイス .It floppy フロッピデバイス .El .Pp .It インタフェース: .Bl -tag -width 123456789 -compact .It IDE Integrated Drive Electronics デバイス .It SCSI Small Computer System Interface デバイス .It other その他のデバイス .El .Pp .It パススルー: .Bl -tag -width 123456789 -compact .It pass パススルーデバイス .El .El .Pp ユーザは少なくとも 1 つのデバイスタイプを指定する必要があり、 各カテゴリにおいては最大 1 つのデバイスタイプを指定可能です。 1 つのデバイスタイプ文に複数のデバイスタイプを指定するには、 コンマで区切ります。 .Pp コマンドライン上では、 .Fl p 引数をいくつ指定してもかまいません。 .Fl p 引数はすべて OR がとられ、 システム内の全デバイスが対象となる比較式が形成されます。 いずれかの .Fl p 引数に完全に合致するデバイスは、 .Nm の出力に含まれます。 ただし、3 デバイスもしくはユーザが指定した最大デバイス数の範囲に限られます。 .It Fl s .Em sum 構造体の内容を表示し、システムが起動してから起こったいくつかの 種類のページング関連のイベントの合計を報告します。 .\" .It Fl t .\" システムが起動してからのページインと際利用されたページ数、 .\" それぞれが要求した時間の合計を表示します。 .It Fl w 各表示の間で、 .Ar wait -秒ポーズします。 -繰り返し回数 -.Ar count -を指定していなければ、デフォルトでは無限に繰り返します。 +秒停止します。 +停止間隔 +.Ar wait +を指定していなければ、デフォルトは 1 秒になります。 .El .Pp デフォルトでは、 .Nm は以下の情報を表示します。 .Pp .Bl -tag -width indent .It procs 以下の各状態でのプロセス数に関する情報 .Pp .Bl -tag -width indent -compact .It r 実行待ち行列にある状態 .It b リソース確保 (i/o やページングなど) のためにブロックされている状態 .It w 実行可能または短期間のスリープ中 (20 秒以内) であるが、スワップされている状態 .El .It memory 仮想メモリと実メモリの使用状況に関する情報を表示します。 実行中または最近 20 秒間で実行されたプロセスに属する仮想ページ (1024 バイト単位で表示される) は、アクティブであるとみなします。 .Pp .Bl -tag -width indent -compact .It avm アクティブな仮想ページ .It fre フリーリストのサイズ .El .It page ページフォルトとページングの活動状況に関する情報を表示します。 これらは 5 秒間の平均として、秒単位で表示します。 .Pp .Bl -tag -width indent -compact .It flt ページフォルトの総数 .It re 要求されたページ数 (参照ビットをシミュレート) .\" .It at .\" アタッチされたページ数(フリーリストの中から見つけ出されたもの) .It pi ページインされたページ数 .It po ページアウトされたページ数 .It fr 秒単位の開放されたページ数 .\" .It de .\" 予期される短期的なメモリ不足 .It sr クロックアルゴリズムによってスキャンされたページ数 (秒単位) .El .It disks 秒単位のディスク操作に関する情報 (このフィールドはシステム依存です)。 通常、ページングは使用可能なドライブにまたがって分割されます。 このフィールドのヘッダは、ディスク名の最初の 2 文字とユニット番号です。 システムが 3 つ以上のディスクドライブを扱うように設定されている場合、 .Nm は最初の 3 つのドライブしか表示しません。 ただし、ユーザが .Fl n 引数を指定して表示するデバイス数を増した場合は別です。 この場合、表示が 80 桁を越えてしまうかもしれません。 .Nm で特定のドライブを表示するには、コマンド行でドライブ名を指定します。 デフォルトでは、 .Nm はディスクを最初に、 それからシステム内の他の様々なランダムデバイスを合計 3 つまで、 もしあれば表示します。 デバイスをコマンドラインで指定した場合、 もしくはデバイスタイプが合致するパターンが指定された場合 (前述)、 .Nm は指定されたデバイスもしくはパターンに合致するデバイスのみを表示し、 システム内の他のデバイスをランダムに選択するということはありません。 .It faults 最近 5 秒間のトラップ/割り込みの平均レート (秒単位)。 .Pp .Bl -tag -width indent -compact .It in デバイス割り込み (クロック割り込みを含む) の回数 .It sy システムコールの回数 .It cs cpu のコンテキストスイッチの回数 .El .It cpu CPU 使用時間の内訳 (%) .Pp .Bl -tag -width indent -compact .It us 通常およびそれより低い優先度のプロセスのユーザ時間 .It sy システム時間 .It id CPU アイドル時間 .El .El .Sh 使用例 コマンド: .Dl vmstat -w 5 は、システムがどのように動作しているかを 5 秒おきに表示します。 5 秒おきにサンプリングされている統計情報があるため、 この間隔で表示するのがちょうどよいです。 その他の統計情報は 1 秒毎に変化します。 しばらく出力を続ければ、どれが毎秒計算し直されているかがわかるでしょう。 .Pp コマンド: .Dl vmstat -p da -p cd -w 1 は、ダイレクトアクセスデバイスもしくは CDROM デバイスから最初の 3 つの デバイスを選択し、 他のシステム統計情報と同様に、 毎秒これらのデバイスの統計情報を表示します。 .Sh 関連ファイル .Bl -tag -width /dev/kmemxxx -compact .It Pa /kernel デフォルトのカーネル名前リスト .It Pa /dev/kmem デフォルトのメモリファイル .El .Sh 関連項目 .Xr fstat 1 , .Xr netstat 1 , .Xr nfsstat 1 , .Xr ps 1 , .Xr systat 1 , .Xr iostat 8 , .Xr pstat 8 .Pp .%T "Installing and Operating 4.3BSD" の ``Interpreting system activity'' で始まるセクション .Sh バグ .Fl c と .Fl w オプションは、デフォルトの出力を行うときにのみ有効です。