diff --git a/ja_JP.eucJP/man/man1/cat.1 b/ja_JP.eucJP/man/man1/cat.1 index ce16340d69..15ad5bf2ff 100644 --- a/ja_JP.eucJP/man/man1/cat.1 +++ b/ja_JP.eucJP/man/man1/cat.1 @@ -1,188 +1,188 @@ .\" Copyright (c) 1989, 1990, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" This code is derived from software contributed to Berkeley by .\" the Institute of Electrical and Electronics Engineers, Inc. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)cat.1 8.3 (Berkeley) 5/2/95 -.\" %FreeBSD: src/bin/cat/cat.1,v 1.10.2.4 2000/12/08 13:34:31 ru Exp % +.\" %FreeBSD: src/bin/cat/cat.1,v 1.10.2.5 2000/12/15 17:47:20 ru Exp % .\" .\" jpman %Id: cat.1,v 1.3 1997/08/31 14:09:30 horikawa Stab % .\" .Dd May 2, 1995 .Dt CAT 1 .Os .Sh 名称 .Nm cat .Nd ファイルの連結、表示を行う .Sh 書式 .Nm cat .Op Fl benstuv .Op Ar .Sh 解説 .Nm はファイルを連続的に読み込み、標準出力に書き出します。 .Ar file が単一のダッシュ .Pq Sq \&- または存在しない場合、 .Nm は標準入力から読み込みます。 .Ar file はコマンドラインに記述された順番で処理されます。 ``-'' は標準入力を表します。 .Pp オプションは以下のとおりです。 .Bl -tag -width width .It Fl b 非空白行に、1 から開始する番号を付けます。 .It Fl e 表示できない文字を目に見える形で表示し ( .Fl v オプション参照)、各行の最後に .Pq Ql \&$ を表示します。 .It Fl n 行番号を付け加えます。行番号は 1 から始まります。 .It Fl s 連続した空行を圧縮します。連続した空行は 1 行の空行 として出力されます。 .It Fl t 表示できない文字を目に見える形で表示し ( .Fl v オプション参照)、タブを .Ql ^I で表示します。 .It Fl u 出力のバッファリングを行いません。 .It Fl v 表示できない文字を目に見える形で表示します。 control-X は .Ql ^X 、削除文字 (8進数で 0177) は .Ql ^? と表示されます。 .Tn ASCII 文字でないもの ( 最上位ビットが立っているもの ) は、 .Ql M- (メタ) のあとに残りの7ビットで表されるキャラクタを 表示します。 .El .Sh 診断 .Nm は実行に成功すると 0 を返し、エラーが起こると 0 より 大きな値を返します。 .Sh 使用例 コマンド .Bd -literal -offset indent .Ic cat file1 .Ed .Pp は、 .Ar file1 の内容を標準出力へ表示します。 .Pp コマンド .Bd -literal -offset indent .Ic cat file1 file2 > file3 .Ed .Pp は、 .Ar file1 と .Ar file2 の内容を .Ar file3 へ順番に表示します。 .Ar file3 が既に存在する場合にはこれを切り詰めます。 リダイレクトについての更なる情報は、シェル (すなわち .Xr sh 1 ) のマニュアルページを参照してください。 .Pp コマンド .Bd -literal -offset indent .Ic cat file1 - file2 - file3 .Ed .Pp は、 .Ar file1 の内容を表示し、標準入力から .Dv EOF .Pq Sq ^D 文字を受け取るまでに受け取ったデータを表示し、 .Ar file2 の内容を表示し、再度標準入力から読取った内容を出力し、 最後に .Ar file3 の内容を出力します。 標準入力がファイルを参照している場合、 コマンドライン上の 2 番目のダッシュは効果がなくなることに注意してください。 最初の .Ql \&- において、ファイルの内容全体が、 .Nm によって既に読み取られて表示されてしまったからです。 .Sh 関連項目 .Xr head 1 , .Xr more 1 , .Xr pr 1 , .Xr sh 1 , .Xr tail 1 , .Xr vis 1 , .Xr setbuf 3 .Rs .%A Rob Pike .%T "UNIX Style, or cat -v Considered Harmful" .%J "USENIX Summer Conference Proceedings" .%D 1983 .Re .Sh 標準 .Nm ユーティリティは .St -p1003.2-92 仕様に準拠しています。 .Pp フラグ .Op Fl benstv はこの仕様に対する拡張です。 .Sh 歴史 .Nm ユーティリティは .At v1 から登場しました。 .An Dennis Ritchie がマニュアルの初版をデザインし、執筆しました。 .Sh バグ シェルの出力リダイレクトのメカニズムが原因で、 .Dq Li cat file1 file2 > file1 は file1 に最初に入っているデータを消去してしまいます! diff --git a/ja_JP.eucJP/man/man1/date.1 b/ja_JP.eucJP/man/man1/date.1 index 79f23d0411..96051be10b 100644 --- a/ja_JP.eucJP/man/man1/date.1 +++ b/ja_JP.eucJP/man/man1/date.1 @@ -1,360 +1,379 @@ .\" Copyright (c) 1980, 1990, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" This code is derived from software contributed to Berkeley by .\" the Institute of Electrical and Electronics Engineers, Inc. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)date.1 8.2 (Berkeley) 11/17/93 -.\" %FreeBSD: src/bin/date/date.1,v 1.34.2.5 2000/12/08 13:34:32 ru Exp % +.\" %FreeBSD: src/bin/date/date.1,v 1.34.2.6 2000/12/15 17:47:20 ru Exp % .\" .\" jpman %Id: date.1,v 1.2 1997/03/31 23:25:55 mutoh Stab % .Dd November 17, 1993 .Dt DATE 1 .Os .Sh 名称 .Nm date .Nd 日付と時刻の表示、設定 .Sh 書式 .Nm date .Op Fl nu .Op Fl d Ar dst .Op Fl r Ar seconds .Op Fl t Ar minutes_west -.Op Fl v Ns Ar [+|-]val Ns Op ymwdHMS +.Oo +.Fl v +.Sm off +.Op Cm + | - Xo +.Ar val Op Ar ymwdHMS +.Xc +.Sm on +.Oc .Ar ... -.Op Fl f Ar fmt Ar date | [[[[[cc]yy]mm]dd]HH]MM[\&.ss] +.Oo +.Fl f +.Ar fmt date | +.Sm off +.Oo Oo Oo Oo Oo +.Ar cc Oc +.Ar yy Oc +.Ar mm Oc +.Ar dd Oc +.Ar HH Oc +.Ar MM Op Ar .ss +.Sm on +.Oc .Op Cm + Ns Ar format .Sh 解説 引数なしで実行すると、 .Nm ユーティリティは現在の日付と時刻を表示します。 引数を与えると、日時の設定、 あるいはユーザが定義したフォーマットに従った日付や時刻の表示を行います。 .Pp なお、日付と時刻を設定できるのはスーパユーザだけです。 .Pp オプション: .Bl -tag -width Ds .It Fl d Ar dst 夏時間用のカーネル値を設定します。もし .Ar dst が 0 でなければ、そのあとの .Xr gettimeofday 2 呼び出しでは .Ql tz_dsttime に 0 以外の値が返ります。 .It Fl f デフォルトの .Ar [[[[yy]mm]dd]HH]MM[.ss] フォーマットの代りに .Ar fmt を、時刻をパーズするフォーマットとして使用します。 .Xr strptime 3 を使用してパーズします。 .It Fl n .Xr timed が動作している場合、デフォルトでは .Nm コマンドによりグループ内のすべてのマシンの時刻が変更されます。しかし、 .Fl n オプションを指定した場合には、他のマシンの時刻は変更せず、 このマシンのみで時刻を設定します。 .It Fl r Ar seconds 基準時点 (1970 年 1 月 1 日 00:00:00; .Xr time 3 参照) から .Ar seconds 秒経過した日時を表示します。 10 進数、8 進数、16 進数のいずれの指定も可能です。 .It Fl t Ar minutes_west カーネルに .Tn GMT (グリニッジ標準時) からの時差を設定します。このあとに呼ばれる .Xr gettimeofday 2 では、ここで指定された値が .Ql tz_minuteswest に入ります。 .It Fl u .Tn UTC (協定世界時) の日付を表示、設定します。 .\" 訳注(Mar.1996):UTC (Universal Time Coordinate) .It Fl v 秒、分、時、日、曜日、月、年のいずれかを .Ar val にもとづき修正します。 .Ar val の前にプラスもしくはマイナスが付いている場合、 時刻はそれに従い前後に修正されます。 そうでない場合は、指定した部分が設定されます。 必要なら任意個このフラグを指定して時刻を修正することが出来ます。 フラグは指定した順序に処理されます。 .Pp .Pq 値を修正するのではなく 値を指定する場合、 秒の範囲は 0-59、 分の範囲は 0-59、時の範囲は 1-12、日の範囲は 1-31、曜日の範囲は 0-6 (Sun-Sat)、月の範囲は 1-12 (Jan-Dec)、 年の範囲は 80-38 もしくは 1980-2038 です。 .Pp .Ar val が数値の場合、 .Ar y , .Ar m , .Ar w , .Ar d , .Ar H , .Ar M , .Ar S のいずれかを使用して、時刻のどの部分を修正するのかを指定する必要があります。 .Pp 曜日もしくは月は数値の代りに名前で指定可能です。 名前と共にプラス (もしくはマイナス) 記号を使用した場合、 日付は適合する次の (前の) 曜日もしくは月に進みます (戻ります)。 曜日もしくは月が現在のものと変らない場合、日は修正しません。 .Pp 特定の値に時刻を修正する場合や、単位が 1 時間よりも大きい場合には、 夏時間の概念は無視されます。 1 時間以下の単位での修正は、夏時間の概念を持ちます。 現在の時刻を 3 月 26 日 0:30 であり、 夏時間の修正により 01:00 から 02:00 へ進むと仮定した場合、 .Fl v No +1H は時刻を 3 月 26 日 2:30 へ修正します。 同様に、現在の時刻が 10 月 29 日 0:30 であり、 夏時間の修正により 02:00 から 01:00 へ戻ると仮定した場合、 .Fl v No +3H とすると時刻は 10 月 29 日 2:30 になります。 .Pp 存在しない特定の値 .\" -Tnippon 指定時に「1:30 BST」が括弧の前に溢れてしまうので、 .\" Po Pc を ( ) に置き換えた .\" 09/04/2000 horikawa@jp.FreeBSD.org (例えば、ヨーロッパ/ロンドンのタイムゾーンで 2000 年 3 月 26 日 1:30 BST) へ時刻を修正する場合、 正当な時刻になるまで、時刻は黙って 1 時間の単位で進められます。 2 回存在する特定の値 .Pq 例えば 2000 年 10 月 29 日 1:30 へ時刻を修正する場合、最終的なタイムゾーンは、 2 回の時刻のうち早いものに適合するものとなります。 .Pp 詳細に関しては、下記の例を参照して下さい。 .El .Pp プラス .Pq Sq + で始まるオプションは、日付と時刻の表示方法を指定する フォーマット文字列です。フォーマット文字列には、 .Xr strftime 3 で記述されているような変換文字列と、任意のテキストを含むことができます。 フォーマット文字列によって指定された文字の後には、つねに改行文字 .Pq Ql \en が出力されます。 .Nm のデフォルトの表示形式は、 .Bd -literal -offset indent ``+%+'' .Ed .Pp としたものと同じです。 .Pp もし、引数が ``+'' 記号で始まる文字列でなければ、それはシステムに 日時を設定するための値と解釈されます。日時を設定するための正式な 表現は以下のとおりです: .Pp .Bl -tag -width Ds -compact -offset indent .It Ar cc 世紀 (19 または 20 のいずれか) であり、西暦の省略表現の前に付きます。 .It Ar yy 西暦の省略表現です。西暦の 10 の位と 1 の位です (1989 年なら 89、06 なら 2006)。 .It Ar mm 月の数字表現です。1 から 12 までの数字です。 .It Ar dd 日です。1 から 31 までの数字です。 .It Ar HH 時です。0 から 23 までの数字です。 .It Ar MM 分です。0 から 59 までの数字です。 .It Ar ss 秒です。0 から 61 までの数字です。 (59 秒 + 2 秒までのうるう秒) .El .Pp 分の指定以外はすべて省略可能です。 .Pp 夏時間と標準時の切り替えや、閏秒や閏年の取り扱いは自動的に行われます。 .Pp .Sh 使用例 以下のコマンド: .Bd -literal -offset indent date "+DATE: %Y-%m-%d%nTIME: %H:%M:%S" .Ed .Pp は、下のような表示を行ないます。 .Bd -literal -offset indent DATE: 1987-11-21 TIME: 13:36:16 .Ed .Pp ヨーロッパ/ロンドンのタイムゾーンでは、 以下のコマンド: .Pp .Bd -literal -offset indent date -v1m -v+1y .Ed .Pp は以下を表示します: .Bd -literal -offset indent Sun Jan 4 04:15:24 GMT 1998 .Ed .Pp (現在 Mon Aug 4 04:15:24 BST 1997 の場合)。 .Pp 以下のコマンド: .Bd -literal -offset indent date -v1d -v3m -v0y -v-1d .Ed .Pp は 2000 年 2 月の最後の日を表示します: .Bd -literal -offset indent Tue Feb 29 03:18:00 GMT 2000 .Ed .Pp 以下のコマンド: .Bd -literal -offset indent date -v1d -v+1m -v-1d -v-fri .Ed .Pp は今月最後の金曜日を表示します: .Bd -literal -offset indent Fri Aug 29 04:31:11 BST 1997 .Ed .Pp (現在 Mon Aug 4 04:31:11 BST 1997 の場合)。 .Pp 以下のコマンド: .Bd -literal -offset indent date 8506131627 .Ed .Pp は、 .\" '\ ' 無しでは引数の数が限界を越えるため .Dq Li "1985\ 年\ 6\ 月\ 13\ 日午後\ 4\ 時\ 27\ 分" に日時を設定します。 .Pp 以下のコマンド: .Pp .Bd -literal -offset indent date 1432 .Ed .Pp は、日を修正することなく、時だけを .Li "午後 2 時 32 分" に設定します。 .Sh 環境変数 .Nm の実行は以下の環境変数の影響を受けます. .Bl -tag -width Ds .It Ev TZ 日時を表示する際に用いられるタイムゾーンを設定します。 通常のフォーマットは .Pa /usr/share/zoneinfo からの相対パス名です。例えば、コマンド .Dq TZ=America/Los_Angeles date はカリフォルニアの現在の時刻を表示します。 詳しいことは、 .Xr environ 7 を参照してください。 .El .Sh 関連ファイル .Bl -tag -width /var/log/messages -compact .It Pa /var/log/wtmp 日付のリセットおよび時刻変更の記録がこのファイルに残されます。 .It Pa /var/log/messages 日付を変更したユーザの記録がこのファイルに残されます。 .El .Sh 関連項目 .Xr gettimeofday 2 , .Xr strftime 3 , .Xr strptime 3 , .Xr utmp 5 , .Xr timed 8 .Rs .%T "TSP: The Time Synchronization Protocol for UNIX 4.3BSD" .%A R. Gusella .%A S. Zatti .Re .Sh 診断 .Nm ユーティリティは、 成功した場合は 0 を、日時を設定できなかった場合は 1 を、 ローカルマシンの設定はできたが、グループのマシン全体の設定に失敗した 場合は 2 を返します。 .Pp timed が多数のマシンの時計をあわせる場合には、新しい時刻のセットに 数秒かかることがあります。このとき .Nm は、 .Ql Network time being set と表示します。 .Nm と .Xr timed 8 との間で通信に失敗した場合は、 .Ql Communication error with timed が表示されます。 .Sh バグ システムは .Tn VMS と高い互換性を持つフォーマットで日時を保持しようとしています。しかし、 .Tn VMS は .Tn GMT ではなくローカルな時刻を使っており、夏時間を理解しません。そのため、 .Tn UNIX と .Tn VMS を同時に使う場合は、 .Tn VMS を .Tn GMT で使うべきでしょう。 .Sh 規格 .Nm ユーティリティは .St -p1003.2 互換であると想定しています。 .Sh 歴史 .Nm date コマンドは .At v1 から導入されました。 diff --git a/ja_JP.eucJP/man/man1/ed.1 b/ja_JP.eucJP/man/man1/ed.1 index e0fb39ee6d..99e8dabc22 100644 --- a/ja_JP.eucJP/man/man1/ed.1 +++ b/ja_JP.eucJP/man/man1/ed.1 @@ -1,889 +1,885 @@ -.\" %FreeBSD: src/bin/ed/ed.1,v 1.17.2.2 2000/12/08 13:34:34 ru Exp % +.\" %FreeBSD: src/bin/ed/ed.1,v 1.17.2.4 2000/12/18 14:52:16 ru Exp % .\" jpman %Id: ed.1,v 1.2 1997/06/09 15:03:56 jsakai Stab % .Dd May 21, 1993 .Dt ED 1 .Os .Sh 名称 .\" ed, red \- text editor .Nm ed , .Nm red .Nd 行指向のテキストエディタ .Sh 書式 .Nm ed .Op Fl .Op Fl sx .Op Fl p Ar string .Op Ar file .\" .LP .\" red [-] [-sx] [-p \fIstring\fR] [\fIfile\fR] .Sh 解説 .Nm ed は、行指向のテキストエディタです。 本コマンドを用いることで、テキストファイルの生成、表示、変更その他の操作を 行なうことができます。 .\" .B red .\" is a restricted .\" .BR ed : .\" it can only edit files in the current .\" directory and cannot execute shell commands. - +.Pp .Ar file 引数を指定して本コマンドを起動すると、ファイル .Ar file のコピーをエディタのバッファに読み込みます。 以後の変更はそのコピーに対して行なわれ、 .Ar file で指定したファイル自身が直接変更されることはありません。 .Nm コマンドを終了する際、 .Em w コマンドで明示的にセーブしなかった変更点はすべて失われます。 - +.Pp 編集は、 .Em コマンド モードと .Em 入力 モードの 2 つの異なるモードを使い分けて行ないます。 .Nm を起動したら、まずコマンドモードに入ります。 本モードでは、標準入力からコマンドを読み込み、それを実行することで エディタバッファの内容操作を行ないます。 典型的なコマンドは、以下のようなものです。 .Pp .Sm off .Cm ,s No / Em old Xo .No / Em new .No / Cm g .Xc .Sm on .Pp これは、編集しているテキストファイル中に .Em old という文字列があったら、これらをすべて文字列 .Em new に置き換えるコマンドです。 .Pp .Em a (append)、 .Em i (insert)、あるいは .Em c (change) といった入力コマンドが入力された場合、 .Nm は入力モードに移行します。これが、ファイルにテキストを追加する 主たる方法です。 このモードでは、コマンドを実行することはできません。 そのかわり、標準入力から入力されたデータは、 直接エディタバッファへと書き込まれます。行は、改行キャラクタまで のテキストデータおよび、最後の .Em 改行 キャラクタを含むデータから構成されます。 ピリオド 1 つだけ -.Pf ( Em . Ns ) +.Pq Em .\& の行を入力すると、入力モードを終了します。 .Pp すべての .Nm コマンドは、全ての行もしくは指定した範囲の行の操作が可能です。例えば、 .Em d コマンドは指定した行を削除し、 .Em m コマンドは指定した行を移動します。 上に示した例のように、置換によってある行の一部分のみを変更することは 可能ですが、 .Em s コマンドは、一度に全部の行にわたって変更を行なうことも可能です。 .Pp 一般的には、 .Nm コマンドは、0 個以上の行番号および、それに連なる 1 文字コマンドから 成り立ちます。場合によっては追加のパラメータをもつこともあります。 いうなれば、コマンドは以下の構造を持ちます。 .Pp .Sm off .Xo Op "address\ " Op ,address .No command Op parameters .Xc .Sm on .Pp 行番号はコマンドの操作対象行あるいは対象行範囲を示します。 行番号の指定個数が、コマンドが受け付け可能な個数よりも少ない場合には、 デフォルトの行番号が採用されます。 .Sh オプション 以下のオプションが使用できます。 .Bl -tag -width indent .It Fl s 診断メッセージを抑制します。本オプションは、 .Nm の入力がスクリプトによって行なわれる場合に有効です。 .It Fl x 続く読み書きの際に行なわれる暗号化に用いる鍵の入力を促します ( .Em x コマンドを参照して下さい)。 .It Fl p Ar string コマンドプロンプトとして表示する文字列を指定します。 コマンドプロンプトは、コマンドモードで .Em p コマンドを実行することで、表示する/しないを切り替えることが可能です。 .It Ar file 編集対象のファイルを指定します。 .Ar file 名の先頭に感嘆符 (!) が付加されていた場合、そのファイル名はシェルコマンドと して解釈されます。この場合、編集対象として読み込まれるテキストは、 .Xr sh 1 が .Ar file で指定したコマンドを実行した結果、標準出力に出力されるデータです。 先頭が感嘆符で始まるファイルを編集する場合には、ファイル名の先頭に バックスラッシュ (\\) を付加して下さい。 感嘆符以外の文字で始まるファイル名については、編集対象のファイル名は .Ar file となります。 .El .Sh 行指定 行は、バッファ内の行番号で表現されます。 .Nm は .Em 現在行 を管理しており、 コマンドに行番号が指定されない場合は、 現在行がデフォルト行として用いられます。 ファイルが最初に読み出された直後は、現在行はファイルの最後の行となります。 一般的に、現在行はコマンドが操作した最後の行となります。 .Pp 行番号は、以下の一覧のうち 1 つおよび、補助的に付加される 相対行番号 (オフセット) から構成されます。 相対行番号は、任意の数字の組み合わせと演算子、そして空白文字を含みます ( 例えば .Em + , .Em - や .Em ^ が演算子に含まれます ) 。 行番号は、左から右に解釈され、それらの演算子を含む値は、現在行からの相対行番 号と解釈されます。 .Pp 行番号の表現に関して上記の規則が適用される中で、行番号 .Em 0 ( ゼロ ) に関しては、例外的な扱いがされます。 これは「最初の行より前」を意味し、 それが正しい意味を持つ場合は常に利用可能です。 .Pp 行範囲は、コンマもしくはセミコロンで区切られた 2 つのアドレスで示されます。 最初に指定される行番号は、2番目に指定される行番号を超える値を指定して はいけません。行範囲指定で行番号が 1 つしか指定されなかった場合には、2番目に 指定されるアドレスとして最初に指定されたアドレスが設定され ます。ここで 3個以上の行番号が指定されると、最後の 2 つの行番号で 決定される範囲がコマンド実行対象になります。行番号の指定を 1 つだけしか 想定していないコマンドの場合、最後の 1 つの行番号の行がコマンド実行対象 となります。 .Pp コンマで区切られた各行番号は、現在行からの相対行を指し示します。 セミコロンで区切られている場合は、範囲の始めの行は現在行が設定され、 範囲の終りは始めの行からの相対行で表わされます。 .Pp 行番号の指定には、以下のシンボルが使用可能です。 .Bl -tag -width indent .It . バッファ中の現在行を表します。 .It $ バッファ中の最終行を表します。 .It n バッファ内の .Em n 番目の行を表します。 .Em n は、 .Em [0,$] の間です。 .It - or ^ 1 行前の行です。 相対行指定 .Em -1 と同等であり、複数指定することで効果を累積することが可能です。 .\" --- という指定をすることで、2 行前を示すことができます。 .\" ↑原文中に無いのでコメントアウト sakai@jp.freebsd.org (Jun 9,1997) .It -n or ^n .Em n 行前の行を表します。 .Em n は、負でない整数です。 .It + 次の行を表します。 これは、 .Em +1 と同様であり、 .Em - と同様の累積的指定が可能です。 .It +n or whitespace .Em n 行後ろの行を表します。 .Em n は、負でない整数です。 .Em n の前に .Em whitespace ( 空白文字 ) を付加して指定した場合も .Em +n と解釈されます。 .\" ↓原文中に無いのでコメントアウト sakai@jp.freebsd.org (Jun 9,1997) .\" ただし、空白文字による指定を行なった場合は、単独では現在行からの相対行数を .\" 指定することはできず、相対行指定の基準となる行をその前に指定しなければなり .\" ません。 .It , or % バッファの最初から最後までを表します。これは、 .Em 1,$ と指定した場合と同等です。 .It ; バッファ中の現在行から最後の行までを表します。これは、 .Em .,$ と指定した場合と同等です。 .It /re/ 指定された正規表現 .Em re を含む、(現在行よりも後ろの) 次の行を表します。 必要であれば、文字列検索はテキスト先頭に折り返し、 現在行に達するまで検索を行ないます。 // は、最後に行なった検索を繰り返します。 .It ?re? 指定した正規表現 .Em re を含む、現在行より前の行を表します。 必要であれば、文字列検索はテキストの最後に折り返し、 現在行に達するまで検索を行ないます。 ?? は、最後に行なった検索を繰り返します。 .It 'lc .Em k (mark) コマンドでマークをつけた行を表します。ここで .Em lc は、英小文字1文字です。 .El .Sh 正規表現 正規表現はテキストを選択する際に用いるパターンです。 例えば次の .Em ed コマンド .Pp .Sm off .Cm g No / Em string Xo .No / .Xc .Sm on .Pp は .Em string を含む全ての行を表示します。 正規表現は .Em s コマンドで古いテキストを新しいテキストで置き換える際にも用いられます。 .Pp 文字リテラルを指定するのに加え、 正規表現は文字列のクラスを表現することができます。 このようにして表現された文字列は、それに対応する正規表現に「マッチする」と 言います。 ある正規表現が一つの行の中の複数の文字列にマッチする場合、 マッチする部分のうち最も左にあって最も長いものが選択されます。 .Pp 正規表現を組み立てる際には以下のシンボルが用いられます: .Bl -tag -width indent .It c 以下に挙げるものを除く任意の文字 .Em c は、その文字自身にマッチします。 このような文字には `{', '}', `(', `)', `<', `>' が含まれます。 .It Pf \e c バックスラッシュでエスケープした文字 .Em c は、その文字自身にマッチします。 ただし `{', '}', `(', `)', `<', `>' を除きます。 .It . 任意の一文字にマッチします。 .It Op char-class 文字クラス .Em char-class に含まれる任意の一文字にマッチします。 文字クラス .Em char-class に `]' を含めるには、文字 `]' を最初の文字に指定します。 文字の範囲を指定するには、範囲の両端の文字の間を `-' でつなぎます。 例えば `a-z' は小文字全体を表します。 以下のようなリテラル表記も、文字集合を指定するために文字クラス .Em char-class で使用することができます: .Pp .Bl -column "[:alnum:]" "[:cntrl:]" "[:lower:]" "[:xdigit:]" -compact .It [:alnum:] Ta [:cntrl:] Ta [:lower:] Ta [:space:] .It [:alpha:] Ta [:digit:] Ta [:print:] Ta [:upper:] .It [:blank:] Ta [:graph:] Ta [:punct:] Ta [:xdigit:] .El .Pp 文字クラス .Em char-class の最初あるいは最後の文字として `-' が用いられると、 それはその文字自身にマッチします。 文字クラス .Em char-class 中のこれ以外の文字は全て、それら自身にマッチします。 .Pp 以下の形式の文字クラス中のパターン: .Pp .Bl -item -compact -offset 2n .It -.Op \&. Ns Ar col-elm Ns \&. +.Op \&. Ns Ar col-elm Ns .\& or, .It .Op = Ns Ar col-elm Ns = .El .Pp は .Xr locale 5 に沿って解釈されます (現在のところサポートされません)。ここで .Ar col-elm は .Em collating element です。詳しい説明は .Xr regex 3 を参照して下さい。 .It Op ^char-class 文字クラス .Em char-class に含まれない、改行以外の任意の一文字にマッチします。 文字クラス .Em char-class は上で定義しています。 .It ^ .Em ^ が正規表現の最初の文字である場合、 その正規表現は行頭でのみマッチします。 それ以外の場合、 .Em ^ はそれ自身にマッチします。 .It $ .Em $ が正規表現の最後の文字である場合、 その正規表現は行末でのみマッチします。 それ以外の場合、 .Em $ はそれ自身にマッチします。 .It Pf \e < これに続く単一文字の正規表現あるいはその部分式が、 単語の先頭でのみマッチするようにします (この機能は利用できない 場合があります)。 .It Pf \e > これに続く単一文字の正規表現あるいはその部分式が、 単語の末尾でのみマッチするようにします (この機能は利用できない 場合があります)。 .It Pf \e (re\e) 部分式 (subexpression) .Em re を定義します。部分式はネストできます。 これ以降、 .Em Pf ^e n ( .Em n は [1,9] の範囲の数) の形式の後方参照は、 .Em n 番目の部分式にマッチしたテキストに展開されます。 例えば、正規表現 `\e(.*\e)\e1' は、 同じ文字列が隣接しているような任意の文字列にマッチします。 部分式は左側のデリミタから順に番号が振られます。 .It * 直前にある単一文字の正規表現あるいはその部分式のゼロ回以上の繰り返しに マッチします。 .Em * が正規表現あるいはその部分式の最初の文字として用いられた場合、 .Em * はその文字自身にマッチします。 .Em * 演算子は時に予期しない結果をもたらすことがあります。 例えば、正規表現 `b*' は文字列 `abbb' の先頭に マッチします (部分文字列 `bbb' ではありません)。 これはヌルへのマッチが最も左にあるマッチだからです。 .It \e{n,m\e} or \e{n,\e} or \e{n\e} 直前にある単一文字の正規表現あるいはその部分式の、 .Em n 回以上 .Em m 回以下の繰り返しにマッチします。 .Em m が省略された場合、 .Em n 回以上の繰り返しにマッチします。 更にコンマも省略された場合、ちょうど .Em n 回の繰り返しにのみマッチします。 .El .Pp 各 .Xr regex 3 の実装によっては、 更に正規表現演算子がいくつか定義されていることがあります。 .Sh コマンド 全ての .Nm コマンドは、1 文字からなりますが、追加パラメータが必要なコマンドもあります。 コマンドのパラメータが複数の行にわたる場合には、そのパラメータを含めたコマンド の終りを含む行を除き、行末にバックスラッシュ (\\) を付加して下さい。 - +.Pp 一般的には、1 行ごとに 1 コマンドを入れることが許されています。 しかしながら、ほとんどのコマンドは、コマンド実行を行なった後のデータ更新 その他を確認するために、 .Em p (print)、 や .Em l (list)、 .Em n (enumerate), のような表示系のコマンドを同時に指定できます。 - +.Pp インタラプト (一般的には ^C) を入力することで、現在実行しているコマンドを 強制終了し、コマンドモードに戻すことができます。 - +.Pp .Nm は、以下のコマンドを使用できます。コマンド実行時に何の指定もない場合の デフォルトの行番号もしくは行範囲が括弧内に示されています。 .Bl -tag -width indent .It (.)a 指定した行の後にテキストを追加します。 テキストは入力モードで入力されていきます。 現在行番号は、入力された最後の行に設定されます。 .It (.,.)c バッファ内の指定した行を変更します。指定した行のデータは、バッファから消去 され、そこに対してテキストデータを入力するようになります。 テキストは入力モードで入力されていきます。 現在行番号は、入力した最後の行に設定されます。 .It (.,.)d 指定した範囲をバッファから削除します。 削除した範囲の後に行が続いている場合、現在行番号は、その行に設定されます。 そうでない場合には、現在行番号は、削除された範囲の前の行に設定されます。 .It e Ar file .Ar file を編集し、デフォルトのファイル名を設定します。 もし .Ar file が指定されなかった場合には、デフォルトのファイル名が使用されます。 本コマンド実行時に、それまで別のファイルを編集していた場合には、 その内容はすべて消去され、新しいファイルが読み込まれます。 現在行番号は、入力された最後の行に設定されます。 .It e Ar !command .Ar !command で指定されたコマンドを実行し、その結果として標準出力へ 出力されたデータを編集します (後述する .Ar ! command を参照して下さい)。 デフォルトのファイル名は変更されません。 .Ar command の出力が読み込まれる前に、バッファ内に存在した行はすべて消去されます。 現在行番号は、入力された最後の行に設定されます。 .It E Ar file 無条件で .Ar file で指定したファイルを読み込み、編集します。 .Em e コマンドと動作は似ていますが、すでにバッファ上のデータに変更が加えられ ている場合でも、未書き込みの変更を警告を出さずに捨ててしまう点が異なります。 現在行番号は、入力された最後の行に設定されます。 .It f Ar file デフォルトファイル名を .Ar file に設定します。 .Ar file 名が指定されない場合には、デフォルトファイル名が表示されます。 .It (1,$)g/re/command-list .Ar command-list で指定されたコマンドを、指定した正規表現 .Ar re に一致する各行に対して実行します。 現在行番号は、 .Ar command-list で指定されたコマンドが実行される前に、指定した正規表現に一致した行 に設定されます。 .Em g コマンドが終了した場合、現在行番号は最後に .Ar command-list 実行の影響を受けた行に設定されます。 .Pp .Ar command-list で指定されるコマンドは、1 行ごとに 1 つずつ書かれる必要があります。各コマンド 行の終りには、一番最後のコマンド行を除いてはバックスラッシュ (\\) を記述する 必要があります。 コマンド .Em g , .Em G , .Em v , .Em V を除くすべてのコマンドを指定可能です。 .Ar command-list 中の空行は、 .Em p コマンドと同等に扱われます。 .It (1,$)G/re/ 指定した正規表現 .Ar re に一致した行に対して、対話編集を行ないます。 指定した正規表現に一致する文字列を含む行があると、その行を表示し、現在行番号を 設定します。 そして、ユーザに .Ar command-list の入力を促します。 .Em G コマンドが終了した場合、現在行番号は、 .Ar command-list 実行の影響を受けた最後の行に設定されます。 .Pp .Ar command-list の記述形式は、 .Em g コマンドで指定するものと同じです。改行のみの場合は、コマンド実行をしない ( ヌルコマンドリストを指定した ) ものとみなされます。 `&' 文字のみを入力した場合には、 直前に実行した ( ヌルコマンドリストではない ) コマンドを再実行します。 .It H エラーメッセージの出力の有無を切り替えます。 デフォルトでは、エラーメッセージは出力されません。 ed スクリプトを作成する場合、スクリプトのデバッグのために、本コマンドを 最初に実行することをおすすめします。 .It h 最後に表示されたエラーメッセージを表示します。 .It (.)i 編集バッファ中の現在行の前に、テキストを挿入します。 テキストは入力モードで入力されていきます。 現在行番号は、入力された最後の行に設定されます。 .It (.,.+1)j 指定した範囲の行を 1 行に連結します。指定した行はバッファから削除され、 その行の内容を含む 1 行に置き換えられます。 現在行番号は、置き換えられた行に設定されます。 .It (.)klc 行に、英小文字 .Em lc で指定したマークをつけます。 その後、マークをつけられた行は、コマンド中で .Em 'lc (つまり、シングルクォートと小文字 .Em lc ) として指定できるようになります。 マークは、その行が削除されるかもしくは変更されるかしない限り、消えることは ありません。 .It (.,.)l 指定した範囲の行の内容を見やすく表示します。 もし 1 つの行が 1 画面以上を占める場合 ( 例えばバイナリファイルを見ている 場合など ) `--More--' プロンプトが最下行に表示されます。 次の画面を表示する前に .Nm はリターンキーが入力されるまで待ちます。 現在行番号は、表示された最後の行に設定されます。 .It (.,.)m(.) 指定した範囲の行をバッファ内で移動します。指定した行は、 コマンドの右辺で指定した行の後ろに 移動されます。移動先の行としては、 .Em 0 (ゼロ) が指定可能です。 現在行番号は、移動された最後の行に設定されます。 .It (.,.)n 指定した行の内容を、行番号つきで表示します。 現在行番号は、表示された最後の行に設定されます。 .It (.,.)p 指定した範囲の行の内容を表示します。 現在行番号は、表示された最後の行に設定されます。 .It P コマンドプロンプト表示の有無を切り替えます。 コマンド起動時のオプション .Fl p Ar string でプロンプトが指定されていなければ、 コマンドプロンプトの表示はデフォルトでオフになっています。 .It q .Nm を終了します。 .It Q 無条件に .Nm を終了します。 このコマンドは .Em q コマンドと似ていますが、まだファイルに書き出されていない 変更があっても警告せずに終了する点が異なります。 .It ($)r Ar file .Ar file で指定されたファイルを、指定した行の後ろに読み込みます。 .Ar file が指定されない場合、デフォルトのファイル名が読み込みに使用されます。 このコマンドに先だってデフォルトのファイル名が設定されていない場合、 デフォルトのファイル名には、 .Ar file で指定されたものが設定されます。 それ以外の場合、デフォルトのファイル名は変更されません。 現在行番号は、読み込まれたファイルの最後の行に設定されます。 .It ($)r Ar !command .Ar command で指定されたコマンドを実行し、その結果として標準出力へ出力された データを指定した行の後ろに読み込みます (後述する .Ar ! command を参照して下さい)。 デフォルトのファイル名は変更されません。現在行番号は、読み込まれた最後の行の 行番号に設定されます。 .It (.,.)s/re/replacement/ .It (.,.)s/re/replacement/g .It (.,.)s/re/replacement/n 指定した行のテキスト中の、正規表現 .Ar re に一致する文字列を、文字列 .Ar replacement に置き換えます。 デフォルトでは、それぞれの行で最初に一致した文字列のみを置き換えます。 .Em g (global) サフィックスが指定された場合、一致した文字列はすべて置き換えられます。 .Em n サフィックス ( .Em n は正の整数) が指定された場合、 .Em n 回目に一致した文字列だけを置き換えます。 指定した範囲で一度も文字列の置換が起こらなかった場合、エラーとみなされます。 現在行番号は、最後に置換が発生した行に設定されます。 .Pp .Ar re および .Ar replacement は、スペースおよび改行を除くすべてのキャラクタを用いて区切ることが 可能です (後述する .Em s コマンドを見て下さい)。 最後のデリミタのうち 1 つか 2 つが省略された場合、 最後に文字列置換が発生した行は、 .Em p コマンドが指定された場合と同様に表示されます。 .Pp .Ar replacement 中のエスケープされていない `&' は、一致した文字列と置き換えられます。 キャラクタシーケンス .Em \em ( .Em m は [1,9] の範囲の整数です ) は、一致した文字列の .Em m 番目の後方参照で置き換えられます。 .Ar replacement の中に入る文字が `%' のみだった場合、 最後に行なった置換の .Ar replacement が使用されます。 改行を .Ar replacement に指定したい場合は、バックスラッシュを用いてエスケープすれば可能です。 .It (.,.)s 最後の置換を繰り返します。 この形式の .Em s コマンドは、回数を示すサフィックス .Em n もしくは、他の .Em r 、 .Em g 、 .Em p のどのキャラクタとの組み合わせも可能です。 .Em n が指定されると、 .Em n 回目に一致した文字列だけが置換されます。 .Em r サフィックスが指定されると、最後の置換が発生した文字列の変わりに、 最後に指定した正規表現が使用されます。 .Em g サフィックスは、最後の置換で用いたグローバルサフィックスの使用の 有効/無効を切り替えます。 .Em p サフィックスは、最後の置換に指定されたプリントサフィックスを反転します。 現在行番号は、最後に置換が発生した行に設定されます。 .It (.,.)t(.) 指定した範囲の行を、コマンド文字の右辺に指定した行番号の後に コピー (つまり転送) します。コピー先の行番号としては、 .Em 0 (ゼロ) の指定が許されています。 現在行番号は、コピーした一番最後の行の行番号に設定されます。 .It u 最後に実行したコマンドの実行結果を取り消し、現在行番号を、取り消したい コマンドが実行される前のものに戻します。 グローバルコマンドである .Em g 、 .Em G 、 .Em v 、 .Em V については、その改変は 1 コマンドで行なわれたとして扱います。 .Em u は自分自身の動作を取り消すこともできます。 .It (1,$)v/re/command-list 指定した範囲の行のうち、指定した正規表現 .Ar re と一致する文字列が含まれていない行について、 .Ar command-list で指定したコマンドを実行します。 これは .Em g コマンドに動作が似ています。 .It (1,$)V/re/ 指定した範囲の行のうち、指定した正規表現 .Ar re に一致する文字列が含まれていない行について、対話編集を行ないます。 これは .Em G コマンドに動作が似ています。 .It (1,$)w Ar file 指定した範囲の行を、 .Ar file で指定したファイルに書き出します。 それまで .Ar file に格納されていた内容は、警告なしに消去されます。 デフォルトファイル名が設定されていない場合、デフォルトファイル名は .Ar file に設定されます。それ以外の場合では、デフォルトファイル名は変更されません。 ファイル名が指定されなかった場合には、デフォルトファイル名が使用されます。 現在行番号は変更されません。 .It (1,$)wq Ar file 指定した範囲の行を .Ar file で指定したファイルに書き出し、 .Em q コマンドを実行します。 .It (1,$)w Ar !command 指定した範囲の行の内容を .Ar !command の標準入力に書き出します ( .Em !command については、以下の説明を参照して下さい)。 デフォルトファイル名および現在行番号は変更されません。 .It (1,$)W Ar file 指定した範囲の行の内容を、 .Ar file で指定したファイルの後ろに追加書き込みします。 .Em w コマンドと似ていますが、指定したファイルにそれまで格納されていた内容 がなくなることはありません。 現在行番号は変更されません。 .It x 以降の読み書きで用いられる暗号化鍵の入力を促します。 改行のみが入力されると、暗号化は解除されます。 それ以外の場合、キー読み込み中のエコーは抑制されます。 暗号化および復号化は .Xr bdes 1 アルゴリズムを用いて行われます。 .It Pf (.+1)z n 指定した行から一度に .Ar n 行だけスクロールします。 .Ar n が指定されない場合には、現在のウィンドウサイズだけスクロールします。 現在行番号は、最後に表示した行の行番号に設定されます。 .It !command .Ar command で指定したコマンドを、 .Xr sh 1 を用いて実行します。 .Ar command の最初の文字が `!'の場合には、その文字は直前に .Ar !command で実行したコマンド文字列が格納されます。 .Ar command 文字列をバックスラッシュ(\\)でエスケープした場合には、 .Nm は処理を行ないません。 しかし、エスケープされない .Em % 文字があった場合には、その文字列はデフォルトファイル名に置き換えられます。 シェルがコマンド実行から戻ってきた場合には、`!' が標準出力に出力されます。 現在行番号は変更されません。 .It ($)= 指定された行の行番号を表示します。 .It (.+1)newline 指定した行を表示します。そして、現在行番号を表示した行のものに 設定します。 .El .Sh 関連ファイル .Bl -tag -width /tmp/ed.* -compact .It /tmp/ed.* バッファファイル .It ed.hup 端末が回線切断した場合に、 .Nm がバッファ内容を書き出すファイル .El .Sh 関連項目 .Xr bdes 1 , .Xr sed 1 , .Xr sh 1 , .Xr vi 1 , .Xr regex 3 - +.Pp USD:12-13 - .Rs .%A B. W. Kernighan .%A P. J. Plauger .%B Software Tools in Pascal .%O Addison-Wesley .%D 1981 .Re - .Sh 制限 .Nm は .Ar file 引数に対してバックスラッシュエスケープ処理を施します。 つまり、ファイル名中でバックスラッシュ (\\) を前につけた文字は、 リテラルとして解釈されます。 - +.Pp (バイナリではない) テキストファイルの最後が改行文字で終っていない場合、 .Nm はそれを読み書きする際に改行文字を追加します。 バイナリファイルの場合は、 .Nm はこのような改行文字追加は行いません。 - +.Pp 1 行あたりのオーバヘッドは整数 4 つ分です。 - .Sh 診断 エラーが発生すると、 .Nm は `?' を表示し、コマンドモードに戻るか、スクリプトによる実行のエラーの場合には プログラムを終了します。 最後のエラーメッセージについての説明は、 .Em h (help) コマンドを用いることで表示可能です。 - +.Pp .Em g (global) コマンドは、検索や置換が失敗したというエラーを隠蔽します。 そのため、スクリプトの中で条件つきコマンド実行を行なわせるのによく使われます。 例えば .Pp .Sm off .Cm g No / Em old Xo .No / Cm s .No // Em new .No / .Xc .Sm on .Pp は、出現した文字列 .Em old をすべて文字列 .Em new に置き換えます。 .Em u (undo) コマンドがグローバルコマンドリスト内で実行された場合、コマンドリストは 1 度だけの実行になります。 - +.Pp 診断が無効にされていないと、 .Nm を終了しようとする場合やバッファ内のデータを書き出さずに他のファイルを 編集しようとする場合にエラーになります。 その場合でも、同一のコマンドを 2 回入力すると、コマンドは成功します。 しかし、それまでの未保存の編集結果は、すべて失われます。 .Sh 歴史 .Nm コマンドは Version 1 AT&T UNIX で登場しました。 - diff --git a/ja_JP.eucJP/man/man1/expr.1 b/ja_JP.eucJP/man/man1/expr.1 index 7524f58a43..e45f26d58f 100644 --- a/ja_JP.eucJP/man/man1/expr.1 +++ b/ja_JP.eucJP/man/man1/expr.1 @@ -1,143 +1,143 @@ .\" -*- nroff -*- .\" .\" Copyright (c) 1993 Winning Strategies, Inc. .\" 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 Winning Strategies, Inc. .\" 4. The name of the author may not be used to endorse or promote products .\" derived from this software withough specific prior written permission .\" .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR .\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES .\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. .\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, .\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT .\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, .\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY .\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" %FreeBSD: src/bin/expr/expr.1,v 1.9.2.1 2000/12/08 13:34:34 ru Exp % +.\" %FreeBSD: src/bin/expr/expr.1,v 1.9.2.2 2000/12/15 17:47:23 ru Exp % .\" jpman %Id: expr.1,v 1.2 1997/04/03 02:39:40 mutoh Stab % .\" .Dd July 3, 1993 .Dt EXPR 1 .Os .Sh 名称 .Nm expr .Nd 式を評価する .Sh 書式 .Nm expr .Ar expression .Sh 解説 .Nm は、与えられた式 .Ar expression を評価し、その結果を標準出力に書き出します。 .Pp .Nm は、式で使われるすべての演算子を個別の引数として扱います。 シェルが特殊キャラクタと解釈するような文字は、エスケープしておかなければ なりません。 .Pp 以下に、使える演算子を優先度の低い順に示します。 同じ優先度の演算子は、{ } で括ってあります。 .Bl -tag -width indent .It Ar expr1 Li | Ar expr2 .Ar expr1 が空の文字列でも 0 でもない場合は .Ar expr1 を評価した結果を返し、さもなければ .Ar expr2 を評価した結果を返します。 .It Ar expr1 Li & Ar expr2 .Ar expr1 と .Ar expr2 の各々の評価結果が、ともに空の文字列でも 0 でもない場合は .Ar expr1 を評価した結果を返し、さもなければ 0 を返します。 .It Ar expr1 Li "{=, >, >=, <, <=, !=}" Ar expr2 .Ar expr1 と .Ar expr2 がともに整数ならば整数としての比較結果を返し、さもなければ 文字列とみなして、ロカールに従った照合方法を用いた比較結果を 返します。 いずれの場合も、指定された関係が「真」ならば 1 を、「偽」ならば 0 を返します。 .It Ar expr1 Li "{+, -}" Ar expr2 整数値の引数に関して、加算あるいは減算した結果を返します。 .It Ar expr1 Li "{*, /, %}" Ar expr2 整数値の引数に関して、乗算、整数除算、または剰余の結果を返します。 .It Ar expr1 Li : Ar expr2 -.Dq \: +.Dq \&: 演算子は、 .Ar expr1 と .Ar expr2 のパターンマッチを行います。 .Ar expr2 は、正規表現でなければなりません。 またこの正規表現は、暗黙のうちに .Dq ^ が仮定されることにより、文字列の先頭から比較を始めることに なります。 .Pp パターンマッチが成功した場合、もし正規表現中に少なくとも1つ .Dq "\e(...\e)" の形の部分正規表現が含まれていたならば、このうち .Dq "\e1" に相当する文字列を返します。 このような部分正規表現が含まれていなければ、マッチした文字列の 長さを返します。 またパターンマッチが失敗した場合、もし部分正規表現が含まれて いたならば空の文字列を返し、含まれていない場合は 0 を返します。 .El .Pp 丸括弧 .Dq "()" は通常と同じくグループ分けに用いることができます。 .Sh 使用例 .Bl -enum .It 以下の例は、変数 a に 1 を足します。 .Dl a=`expr $a + 1` .It 以下の例は、変数 a に設定されたパス名のうち、 ファイル名に当たる部分を返します。 文字列 // は、除算演算子との混同を防ぐために用います。 .Dl expr "//$a" Li : '.*/\e(.*\e)' .It 以下の例は、変数 a に含まれる文字の数を返します。 .Dl expr $a Li : '.*' .El .Sh 診断 .Nm ユーティリティは、以下の値のうち1つを返して終了します。 .Bl -tag -width indent -compact .It 0 式は空文字列でも 0 でもない .It 1 式は空文字列か、0 であった .It 2 式が無効だった .Sh 関連項目 .Xr sh 1 , .Xr test 1 .Sh 規格 .Nm expr ユーティリティは .St -p1003.2 準拠です。 diff --git a/ja_JP.eucJP/man/man1/ls.1 b/ja_JP.eucJP/man/man1/ls.1 index fa8953ef07..d7b4550197 100644 --- a/ja_JP.eucJP/man/man1/ls.1 +++ b/ja_JP.eucJP/man/man1/ls.1 @@ -1,507 +1,507 @@ .\" Copyright (c) 1980, 1990, 1991, 1993, 1994 .\" The Regents of the University of California. All rights reserved. .\" .\" This code is derived from software contributed to Berkeley by .\" the Institute of Electrical and Electronics Engineers, Inc. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgment: .\" 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. .\" .\" @(#)ls.1 8.7 (Berkeley) 7/29/94 -.\" %FreeBSD: src/bin/ls/ls.1,v 1.33.2.5 2000/12/08 13:34:36 ru Exp % +.\" %FreeBSD: src/bin/ls/ls.1,v 1.33.2.6 2000/12/15 17:47:24 ru Exp % .\" .\" jpman %Id: ls.1,v 1.3 1997/05/19 17:21:06 horikawa Stab % .Dd July 29, 1994 .Dt LS 1 .Os .Sh 名称 .Nm ls .Nd ディレクトリの内容のリストを表示する .Sh 書式 .Nm .Op Fl ABCFGHLPRTWabcdfgiklnoqrstu1 .Op Ar file ... .Sh 解説 .Nm は .Ar file で指定されたファイル名およびオプションの指定にしたがって、 ファイルに関する各種の情報を表示します。なお、 .Ar file としてディレクトリが指定された場合は、そのディレクトリ配下のファイル に関する情報を表示します。 .Pp .Ar file が指定されなかった場合は、カレントディレクトリのファイルを表示します。 表示はファイル名のアルファベット順にソートされます。ただし、 .Ar file としてディレクトリファイルとそれ以外のファイルを混在して指定した 場合は、ディレクトリ以外のファイルが先に表示され、その後 ディレクトリ配下のファイルが表示されます。 .Pp オプションとしては、以下のものがあります。 .Bl -tag -width indent .It Fl A -.Ql \&. +.Ql .\& と .Ql \&.. を除く全てのエントリを表示します。スーパユーザの場合は、通常 このオプションがセットされています。 .It Fl B ファイル名中の非グラフィック文字を強制的に \\xxx の形式で表示します。 xxx は文字の数値であり 8 進数です。 .It Fl C マルチカラム形式で出力します。端末への出力の場合は、 これがデフォルトになります。 .It Fl F それぞれのパス名の最後に、ディレクトリならばスラッシュ (/)、 実行可能ファイルならばアスタリスク (*)、 シンボリックリンクならばアットマーク (@)、ソケットファイルならば等号 (=)、 .Tn FIFO ならば縦棒 (|) をつけて表示します。 .It Fl G カラー化出力を有効にします。 本オプションは、環境変数 .Ev CLICOLOR を定義することと同等です (後述)。 .It Fl H コマンドラインのシンボリックリンクを追跡します。 .Fl F , .Fl d , .Fl l オプションのいずれも指定されなかった場合、 このオプションが仮定されます。 .It Fl L 引数がシンボリックリンクファイルの場合、リンクファイル自体ではなく、 リンク先のファイルやディレクトリを表示します。 このオプションは .Fl P オプションを打ち消します。 .It Fl P 引数がシンボリックリンクの場合、リンクが参照しているオブジェクトではなく リンク自身を表示します。 このオプションは .Fl H , .Fl L オプションを打ち消します。 .It Fl R サブディレクトリを再帰的に表示します。 .It Fl T ファイルの日付と時間に関する詳細情報 (月・日・時・分・秒・年) を表示します。 .It Fl W ディレクトリ走査時にホワイトアウトも表示します。 .It Fl a ドット (.) で始まるファイルも含めて表示します。 .It Fl b .Fl B と同様ですが、可能であれば C のエスケープコードを使用します。 .It Fl c ファイルソートや時刻出力の際、ファイルステータスの最終変更日付を使用します。 .It Fl d 引数がディレクトリの場合、ディレクトリそのものの情報について表示します (再帰的に表示しません)。 .It Fl f ソートせずに表示します .It Fl g このオプションは、 .Bx 4.3 との互換性のためにだけ利用すべきです。 これは、 ロングフォーマットオプション .Pq Fl l を使ってグループの名前を表示したい時に使います。 .It Fl i 各ファイルについて、i ノード番号を表示します。 .It Fl k .Fl s オプションとともに使用し、ファイルサイズを ブロック単位ではなく K バイト単位で表示します。 このオプションは環境変数 BLOCKSIZE に優先します。 .It Fl l (``エル (L)'' の小文字)。ファイルの詳細情報をロングフォーマットで 表示します (下記参照)。 端末に出力している場合、ロングフォーマットの前の行に、全ファイル のサイズの合計値を表示します。 .It Fl n 長い .Pq Fl l 出力において、 ユーザとグループを名前に変換せずに、 ユーザとグループの ID を数値で表示します。 .It Fl o .Pq Fl l オプションによる詳細情報に、ファイルフラグも含めて表示します。 .It Fl q ファイル名に表示できない文字が使われていたとき、`?' として表示します。 端末に表示するときは、デフォルトでこの指定になります。 .It Fl r 辞書式順序で逆順または時刻の古い順にソートします。 .It Fl s 各ファイルがファイルシステム上で実際に占有している ブロック数 (512 バイト単位) を表示します。 ブロックの一部だけ占有しているものも整数値に切り上げられます。 端末に表示するときは、表示の先頭行に、全ファイルのサイズの合計値 を表示します。 環境変数 BLOCKSIZE は単位サイズ 512 バイトに優先します。 .It Fl t ファイルをアルファベット順に表示する前に、ファイルの最終修正日時の順 (新しいものほど先にくる) にソートします。 .It Fl u .Pq Fl t オプションや .Pq Fl l オプションで、ファイルの最終修正日時の代わりに、ファイルの最終アクセス日時を 使用します。 .It Fl \&1 (数字の ``1'')。 1 行につき 1 エントリの形式で表示します。 端末への出力でない場合には、これがデフォルトです。 .El .Pp .Fl 1 , .Fl C , .Fl l オプションは、互いに他を上書きします。最後に指定されたオプションが有効と なります。 .Pp .Fl c と .Fl u オプションは、互いに他を上書きします。最後に指定されたオプションが有効と なります。 .Pp .Fl B , .Fl b , .Fl q オプションは互いに優先し合う関係にあります。 最後に指定されたものが印字不可文字の書式を決定します。 .Pp .Fl H, .Fl L , .Fl P オプションは互いに優先し合う関係にあります(部分的もしくは全体的)。 指定された順序で適用されます。 .Pp デフォルトでは .Nm は標準出力に 1 行 1 エントリずつ表示します。 ただし、出力先が端末である場合および .Fl C オプションが指定された場合は別です。 .Pp .Fl i , .Fl s , .Fl l オプションが指定された場合、関連するファイルの情報は 1 個以上の空白 をあけて表示されます。 .Ss ロングフォーマット .Fl l オプションがつけられた場合、それぞれのファイルに対して以下に示す情報が 表示されます: ファイルモード・ リンク数・所有者名・所有グループ名・ ファイルのバイト数・月の短縮形・最終更新が行なわれた際の日付・時・分・ パス名。 さらに、各ディレクトリに対して、 ディレクトリ内のファイル情報が表示される直前に、 ファイルサイズの合計値が 512 バイトブロック単位で表示されます。 .Pp ファイルの修正修正時刻が 6 ヶ月以上過去もしくは未来の場合、 最終修正年が時間と分のフィールドに表示されます。 .Pp 所有者または所有グループ名が不明の場合、 または .Fl n オプション指定時には、 ID 番号で表示されます。 .Pp ファイルがキャラクタ型もしくはブロック型の特殊ファイルである場合、 ファイルサイズフィールドには ファイルのメジャー番号とマイナー番号が表示されます。 ファイルがシンボリックリンクファイルである場合、 リンク先ファイルのパス名が .Dq \-> によって表示されます。 .Pp .Fl l オプションのもとで表示されるファイルモードは、エントリタイプ、 所有者アクセス許可、所有グループアクセス許可などで成り立っています。 エントリタイプの文字はファイルのタイプを表しており、 各文字の意味は次のとおりです: .Pp .Bl -tag -width 4n -offset indent -compact .It Sy b ブロック型特殊ファイル .It Sy c キャラクタ型特殊ファイル .It Sy d ディレクトリ .It Sy l シンボリックリンクファイル .It Sy s ソケットファイル .It Sy p .Tn FIFO .It Sy \- 通常ファイル .El .Pp 次の 3 つのフィールドは、それぞれ 3 つの文字からなっています: 所有者に対するアクセス許可・ グループに属するユーザに対するアクセス許可・ 他のユーザに対するアクセス許可。 これらのフィールドはそれぞれ 3 つの文字からなっています: .Bl -enum -offset indent .It もし .Sy r ならば読みだし可能。もし .Sy \- ならば読みだし不能。 .It もし .Sy w ならば書き込み可能。もし .Sy \- ならば書き込み不能。 .It その他の場合: 以下のうち最初に該当するものが用いられる。 .Bl -tag -width 4n -offset indent .It Sy S 所有者に対するアクセス許可において、ファイルが実行可能ではなく、かつ、 実効ユーザ ID (set-user-ID) モードがセットされている場合。 所有グループに対するアクセス許可において、ファイルが実行可能ではなく、 かつ、実効グループ ID (set-group-ID) モードがセットされている場合。 .It Sy s 所有者に対するアクセス許可において、ファイルが実行可能で、かつ、 実効ユーザ ID モードがセットされている場合。 所有グループに対するアクセス許可の中で、ファイルが実行可能で、 かつ、実効グループ ID モードがセットされている場合。 .It Sy x ファイルが実効可能またはディレクトリが検索可能である場合。 .It Sy \- ファイルは、読み出し、書き込み、実行のいずれも許可されておらず、 実効ユーザ ID も実効グループ ID もスティッキービットも設定されていない場合 (以下参照)。 .El .Pp 次の2つは他のユーザに対するアクセス許可の 3 番目の文字に使用されます。 .Bl -tag -width 4n -offset indent .It Sy T スティッキービットがセットされている (モード .Li 1000 ) が、 実行不能あるいは検索不能である場合 ( .Xr chmod 1 または .Xr sticky 8 参照)。 .It Sy t スティッキービットがセットされており (モード .Li 1000 ) 、 かつ、検索可能または実行可能である場合 ( .Xr chmod 1 または .Xr sticky 8 参照)。 .El .El .Sh 診断 .Nm ユーティリティは、成功時には 0 を、エラー発生時には 0 より大きい値を 返します。 .Sh 環境変数 以下の環境変数は .Nm の動作に影響を与えます: .Bl -tag -width BLOCKSIZE .It Ev BLOCKSIZE ブロック数の表示を行う際、1 ブロックのサイズとして環境変数 .Ev BLOCKSIZE で指定された値が使用されます ( .Fl s オプション参照)。 .It Ev CLICOLOR .Tn ANSI カラーシーケンスを使用し、ファイルタイプを区別します。 後述の .Ev LSCOLORS を参照してください。 .Fl F で前述したもの加え、更なる属性 (setuid ビット設定等) もまた表示されます。 カラー化は、適切な .Xr termcap 5 ケーパビリティを持つ端末タイプに依存します。 デフォルトの .Dq cons25 コンソールは、適切なケーパビリティを持っていますが、例えば .Xr xterm 1 でカラー表示したい場合には .Ev TERM 変数を .Dq xterm-color に設定する必要があります。 他の端末タイプも同様の修正が必要かもしれません。 出力が端末に向けられていない場合、カラー化は黙って無効化されます。 ただし、 .Ev CLICOLOR_FORCE 変数が定義されている場合は例外です。 .It Ev CLICOLOR_FORCE 出力が端末に向けられていない場合、通常、カラーシーケンスは無効化されます。 本フラグを設定することで、この動作を変更可能です。 .Ev TERM 変数は、カラー出力可能な端末を参照することが必要です。 そうなっていない場合、どのカラーシーケンスを使用すべきか決定できません。 .It Ev COLUMNS ターミナルのカラム幅を指定します。マルチカラム表示の際、 1 行あたりいくつのファイル名を表示できるかを算出するために参照されます ( .Fl C 参照)。 .It Ev LANG 長い .Fl l フォーマット出力における、日と月の順序を決定するために使用するロケールです。 詳細は .Xr environ 7 を参照してください。 .It Ev LSCOLORS 本変数の値は、 .Ev CLICOLOR によってカラー出力が有効であるときに、 どの色をどの属性に使用するかを指定します。 この文字列は書式 .Sy fb の結合であり、ここで .Sy f は前景色であり、 .Sy b は背景色です。 .Pp 色の指示は次の通りです: .Pp .Bl -tag -width 4n -offset indent -compact .It Sy 0 黒 .It Sy 1 赤 .It Sy 2 緑 .It Sy 3 茶 .It Sy 4 青 .It Sy 5 マゼンタ .It Sy 6 シアン .It Sy 7 明い灰 .It Sy x デフォルトの前景色と背景色 .El .Pp 以上が標準 .Tn ANSI カラーです。 実際の表示は、端末の色の扱いに依存して異なるでしょう。 .Pp 属性の順番は次の通りです: .Pp .Bl -enum -offset indent -compact .It ディレクトリ .It シンボリックリンク .It ソケット .It パイプ .It 実行形式 .It ブロックスペシャル .It キャラクタスペシャル .It setuid ビットが設定された実行形式 .It setgid ビットが設定された実行形式 .It 他者 (others) が書き込み可能なディレクトリであり、 スティッキービット付き。 .It 他者 (others) が書き込み可能なディレクトリであり、 スティッキービット無し。 .El .Pp デフォルトは "4x5x2x3x1x464301060203" であり、 通常のディレクトリは前景色青でデフォルト背景色、 setuid 付き実行形式は前景色黒で背景色赤等です。 .It Ev LS_COLWIDTHS この変数が設定されている場合、 コロン区切りのリストで各フィールドの最小幅を指定しているものとみなされます。 適切でなかったり不十分だったりする幅は無視されます (よって 0 を指定すると、フィールド幅が動的に決まります)。 すべてのフィールドの幅を変えられるわけではありません。 フィールドの順序は次の通りです: iノード・ブロック数・リンク数・ユーザ名・グループ名・フラグ・ファイルサイズ・ ファイル名。 .It Ev TERM .Ev CLICOLOR の機能は、端末タイプのカラーケーパビリティが必要です。 .It Ev TZ 日時を表示するときに使われるタイムゾーンを指定します。 詳細は .Xr environ 7 を参照してください。 .El .Sh 互換性 .St -p1003.2 互換とするため、 ロングフォーマット形式の出力には所有グループ名フィールドが自動的に 含められます。 .Sh 関連項目 .Xr chflags 1 , .Xr chmod 1 , .Xr xterm 1 , .Xr termcap 5 , .Xr symlink 7 , .Xr sticky 8 .Sh 歴史 .Nm コマンドは .At v1 から登場しました。 .Sh 規格 .Nm コマンドの機能は .St -p1003.2 のスーパセットであると想定しています。 .Sh バグ 過去との互換性のために、多くのオプションの関係が複雑になっています。 diff --git a/ja_JP.eucJP/man/man1/pax.1 b/ja_JP.eucJP/man/man1/pax.1 index 954685fed1..e2b168d4f6 100644 --- a/ja_JP.eucJP/man/man1/pax.1 +++ b/ja_JP.eucJP/man/man1/pax.1 @@ -1,1175 +1,1175 @@ .\" Copyright (c) 1992 Keith Muller. .\" Copyright (c) 1992, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" This code is derived from software contributed to Berkeley by .\" Keith Muller of the University of California, San Diego. .\" .\" 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. .\" .\" @(#)pax.1 8.4 (Berkeley) 4/18/94 -.\" %FreeBSD: src/bin/pax/pax.1,v 1.12.2.1 2000/12/08 13:34:37 ru Exp % +.\" %FreeBSD: src/bin/pax/pax.1,v 1.12.2.2 2000/12/18 14:52:16 ru Exp % .\" jpman %Id: pax.1,v 1.4 1997/08/25 03:45:37 horikawa Stab % .\" .Dd April 18, 1994 .Dt PAX 1 .Os BSD 4.4 .Sh 名称 .Nm pax .Nd ファイルアーカイブの読み書きやディレクトリ階層のコピーを行う .Sh 書式 .Nm .Op Fl cdnv .Bk -words .Op Fl f Ar archive .Ek .Bk -words .Op Fl s Ar replstr -.Ar ... +.Ar ...\& .Ek .Bk -words .Op Fl U Ar user -.Ar ... +.Ar ...\& .Ek .Bk -words .Op Fl G Ar group -.Ar ... +.Ar ...\& .Ek .Bk -words .Oo .Fl T .Op Ar from_date .Op Ar ,to_date .Oc -.Ar ... +.Ar ...\& .Ek -.Op Ar pattern ... +.Op Ar pattern ...\& .Nm .Fl r .Op Fl cdiknuvDYZ .Bk -words .Op Fl f Ar archive .Ek .Bk -words .Op Fl o Ar options -.Ar ... +.Ar ...\& .Ek .Bk -words .Op Fl p Ar string -.Ar ... +.Ar ...\& .Ek .Bk -words .Op Fl s Ar replstr -.Ar ... +.Ar ...\& .Ek .Op Fl E Ar limit .Bk -words .Op Fl U Ar user -.Ar ... +.Ar ...\& .Ek .Bk -words .Op Fl G Ar group -.Ar ... +.Ar ...\& .Ek .Bk -words .Oo .Fl T .Op Ar from_date .Op Ar ,to_date .Oc -.Ar ... +.Ar ...\& .Ek -.Op Ar pattern ... +.Op Ar pattern ...\& .Nm .Fl w .Op Fl dituvHLPX .Bk -words .Op Fl b Ar blocksize .Ek .Oo .Op Fl a .Op Fl f Ar archive .Oc .Bk -words .Op Fl x Ar format .Ek .Bk -words .Op Fl s Ar replstr -.Ar ... +.Ar ...\& .Ek .Bk -words .Op Fl o Ar options -.Ar ... +.Ar ...\& .Ek .Bk -words .Op Fl U Ar user -.Ar ... +.Ar ...\& .Ek .Bk -words .Op Fl G Ar group -.Ar ... +.Ar ...\& .Ek .Bk -words .Op Fl B Ar bytes .Ek .Bk -words .Oo .Fl T .Op Ar from_date .Op Ar ,to_date .Op Ar /[c][m] .Oc -.Ar ... +.Ar ...\& .Ek -.Op Ar file ... +.Op Ar file ...\& .Nm .Fl r .Fl w .Op Fl diklntuvDHLPXYZ .Bk -words .Op Fl p Ar string -.Ar ... +.Ar ...\& .Ek .Bk -words .Op Fl s Ar replstr -.Ar ... +.Ar ...\& .Ek .Bk -words .Op Fl U Ar user -.Ar ... +.Ar ...\& .Ek .Bk -words .Op Fl G Ar group -.Ar ... +.Ar ...\& .Ek .Bk -words .Oo .Fl T .Op Ar from_date .Op Ar ,to_date .Op Ar /[c][m] .Oc -.Ar ... +.Ar ...\& .Ek -.Op Ar file ... +.Op Ar file ...\& .Ar directory .Sh 解説 .Nm は、アーカイブファイルの読み込み、書きだし、アーカイブファイルに 格納されているファイルの一覧読みだし、そしてディレクトリ階層のコピーを 行います。 .Nm の操作は指定したアーカイブフォーマットとは独立しており、また .Nm は広範囲に渡る種類のアーカイブフォーマットの操作をサポートします。 .Nm のサポートするアーカイブフォーマット一覧は、 .Fl x オプションの説明時に示します。 .Pp .Fl r および .Fl w は、以下の .Nm の機能モードのいずれかを指定するのに用いられます。その機能モードとは、 .Em 一覧表示モード、読み込みモード、書き込みモード、コピーモード の 4 つです。 .Bl -tag -width 6n .It .Em 一覧表示モードです。 .Nm は、 .Dv 標準入力 から読み込まれたアーカイブ内の格納ファイルのリストを .Dv 標準出力 へ書き出します。標準入力から読み込まれるファイルのパス名は、指定した .Ar pattern に一致するものが採用されます。 ファイル一覧は 1 行に 1 つのファイル名を含み、1 行バッファリングを行って 書き出されます。 .It Fl r .Em 読み込みモードです。 .Nm は、 .Dv 標準入力 からアーカイブ読み込み、その内に格納されたファイルのうち指定した .Ar pattern に一致するファイル名を持つファイルを展開します。 アーカイブフォーマット及びブロック化係数は、自動的に入力から決定されます。 展開されるファイルがディレクトリの場合、そのディレクトリ配下に連なる ファイル階層は完全な形で展開されます。 展開される全てのファイルは、現在のファイル階層からの相対ディレクトリに 生成されます。展開されるファイルの所有権、アクセス時刻、更新時刻、 そしてファイルモードの設定についての詳細は、 .Fl p オプションのところで述べます。 .It Fl w .Em 書き込みモードです。 .Nm は、 .Ar file オペランドで指定したファイル群のアーカイブを 指定したフォーマットで標準出力に書き出します。 .Ar file オペランドが指定されない場合には、1 行に 1 つずつ コピーするファイルを記述したリストを標準入力から読み込みます。 .Ar file オペランドがディレクトリの場合、そのディレクトリ配下の 全ファイルが作成されるアーカイブに含まれます。 .It Fl r Fl w .Em コピーモードです。 .Nm は、ファイルオペランドで指定したファイル群を、指定した .Ar ディレクトリ にコピーします。 .Ar file オペランドが指定されない場合には、1 行に 1 つずつ コピーするファイルを記述したリストを標準入力から読み込みます。 .Ar file オペランドがディレクトリの場合、そのディレクトリ配下のファイルがすべて、 コピー先として指定したディレクトリ配下に作成されます。 .Em コピーモード は、ファイルがアーカイブファイルに対して書き込まれ、 そして一方でそのアーカイブファイルが展開されるかのように見ます。 ただし、これはオリジナルファイルとコピーファイルの間に ハードリンクが張られるかも知れない事を除きます .Ns ( Fl l オプションを参照して下さい)。 .Pp .Em 注意 コピー先の .Ar ディレクトリ には、コピー元にあるものと同じファイル名の .Ar file オペランドや .Ar file オペランドで指定されるディレクトリ階層の配下にあるファイル名などを 指定してはいけません。 そのような場合、 .Em コピー の結果は予測できないものになります。 .El .Pp .Em 読み込み 操作や .Em 一覧表示 動作において壊れたアーカイブを処理する場合、 .Nm は媒体破損を可能な限り復旧し、 アーカイブの中から可能な限りのファイルを処理しようと試みます (エラー時の 処理の詳細は .Fl E オプションを参照して下さい)。 .Sh オペランド .Pp .Ar directory オペランドは、コピー先ディレクトリの指定を行います。 .Ar directory オペランドが存在しない場合、もしくはユーザが書き込みを出来ない、 もしくは指定したオペランドがディレクトリでない場合には、 .Nm は、0 以外のステータスでプログラムを終了します。 .Pp .Ar pattern オペランドは、アーカイブに格納されているファイルの名前を選択するために 用いられます。 アーカイブメンバは、 .Xr fnmatch 3 に記述のある表記に一致するパターンを用いて選択されます。 .Ar pattern オペランドが指定されない場合には、アーカイブ内に格納されている 全てのメンバが選択されます。 .Ar pattern がディレクトリ名と一致する場合には、そのディレクトリ配下の階層に 位置する全てのファイルが選択されます。 もしアーカイブ内に .Ar pattern オペランドの指定と一致する名前のファイルがない場合には、 .Nm は .Ar 標準エラー出力 に出力される診断メッセージにこの .Ar pattern オペランドを書き出し、0 以外のステータスでプログラムを終了します。 .Pp .Ar file オペランドは、コピーもしくはアーカイブされるファイルのパス名を指定します。 .Ar file オペランドが 1 つもアーカイブメンバを選択しない場合には、 .Nm は .Dv 標準エラー出力 に出力される診断メッセージにこの .Ar file オペランドの内容を書き出し、0 以外のステータスでプログラムを終了します。 .Sh オプション .Pp .Nm では、以下のオプションが使用可能です。 .Bl -tag -width 4n .It Fl r アーカイブファイルを .Dv 標準入力 から読み込み、 .Ar files で指定したファイルを展開します。 アーカイブされているファイルの展開に中間ディレクトリの作成が必要な場合、 これらのディレクトリは、 .Xr mkdir 2 の mode 引数のところに .Dv S_IRWXU , S_IRWXG , S_IRWXO の .Dv 論理和 を指定して呼び出された場合と同様に作成されます。 選択されたアーカイブ形式がリンクファイルの指定をサポートし、 かつアーカイブ展開時にリンク不可能である場合には、 .Nm は、処理が終了する時に、診断メッセージを .Dv 標準エラー出力 に書き出し、0 以外のステータスで終了します。 .It Fl w 指定したアーカイブフォーマットで、 .Dv 標準出力 にアーカイブを書き出します。 .Ar file オペランドが指定されない場合には、1 行につき展開するファイルのパス名 1 つを 記述したリストを .Dv 標準入力 から読み込みます。 このリストの各行の先頭や末尾には .Aq 空白 を入れてはいけません。 .It Fl a すでに存在するアーカイブファイルの後ろに、ファイル .Ar files を追加書き込みします。 .Fl x オプションによるアーカイブフォーマット指定がされない場合、 アーカイブフォーマットは追加書き込み対象となるアーカイブファイルの フォーマットと同一になります。 アーカイブファイルに対して、そのアーカイブファイルのフォーマットと 異なるフォーマットを用いてファイルを追加書き込みをしようとした場合、 .Nm は即時に 0 以外の終了ステータスでプログラム終了します。 アーカイブボリュームに最初に書き込んだブロックサイズを引き継いで、 残りのアーカイブボリュームのブロックサイズとします。 .Pp .Em 注意 : 多くの記憶装置は追加書き込み処理に必要な操作をサポートできません。 そのようなサポートしていないデバイスに対するアーカイブの追加書き込みは、 アーカイブの破損もしくは他の予期せぬ結果を招くことになります。 特に、テープドライブに対する追加書き込み処理は、最もサポートしそうにない ものです。 普通のファイルシステムのファイルとして、もしくはディスクデバイス上に 保存されているアーカイブについては、通常は追加書き込み処理をサポートします。 .It Fl b Ar blocksize アーカイブを .Em 書き出す 際、アーカイブへと書き出す内容を blocksize (正の整数) で指定したバイト数 でブロック化します。 .Ar blocksize で指定出来る値は、512 の倍数でなくてはならず、最大は 32256 です。 .Ar blocksize で指定する数は、その最後に .Li k もしくは .Li b を付加することで、1024(1K) もしくは 512 の倍数として指定できます。 .Ar blocksizes に指定する数字を .Li x で区切ることで、文字 x で区切られた数字の積がブロックサイズとして採用されます。 アーカイブの書き込みのために指定するデバイスによっては、 ブロックサイズに対してさらに制限がかかることがあります。 ブロック化が指定されない場合には、デフォルトの .Ar blocksize は使用される特定のアーカイブフォーマットに依存します。 .Ns ( Fl x オプションを参照して下さい)。 .It Fl c .Ar pattern に指定されたパターンにマッチしたファイルおよび .Ar file オペランドで指定されたファイル .Em 以外 の、全てのファイルもしくはアーカイブ内メンバにマッチします。 .It Fl d コピーもしくはアーカイブされるディレクトリ、もしくはアーカイブに格納され ているディレクトリについて、指定パターンに一致した名前のディレクトリもし くはアーカイブ内に格納されているディレクトリのみ処理し、そのディレクトリ 配下にあるファイルについては処理しません。 .It Fl f Ar archive .Ar archive で指定したファイルを入力元のアーカイブもしくは出力先のアーカイブに指定し ます。この場合、デフォルトの .Dv 標準入力 .Ns ( Em 一覧表示モード および .Em 読み込みモード の場合) もしくは .Dv 標準出力 .Ns ( Em 書き込みモード ) については無視されます。 1 つのアーカイブが複数のファイルもしくは異なるアーカイブデバイスに渡って も構いません。必要があった場合、 .Nm は、アーカイブの格納されている次のボリュームのファイルもしくはデバイスの パス名の入力を促します。 .It Fl i 対話的にファイルもしくはアーカイブ内に格納されるファイルのリネームを行います。 .Ar pattern で指定した文字列パターンに一致するアーカイブ内の格納ファイルもしくは .Ar file オペランドの指定に一致するファイルについて、 .Nm は .Pa /dev/tty に対してファイルの名前やファイルモード、そしてファイルの更新時刻を表示して 入力を促します。 それから .Nm は .Pa /dev/tty からデータを 1 行読み込みます。 その行が空行だった場合には、その時のファイルもしくはアーカイブ内の 格納ファイルについては、処理を行いません。 その行がピリオド 1 つだけの行だった場合には、その時のファイルもしくは アーカイブ内の格納ファイルについては、ファイル名についての更新は行いません。 それ以外の場合には、ファイル名はその行の文字列で指定した名前に変更されます。 上記操作中に .Dv を .Pa /dev/tty から受けとった場合、もしくは何らかの理由で .Pa /dev/tty をオープン出来なかった場合、 .Nm は 0 以外の終了ステータスで即座に終了します。 .It Fl k すでに存在するファイルに対する上書きをしません。 .It Fl l (アルファベットの ``エル'' ) ファイルをリンクします。 .Em コピーモード .Ns ( Fl r .Fl w ) の場合には、コピー元コピー先間には可能な限りハードリンクが作成されます。 .It Fl n アーカイブに格納されるファイルのうち、各 .Ar pattern オペランドに指定した文字列パターンに一致するファイル名を持つ最初のものを 選択します。 アーカイブに格納されるファイルのうち .Ar pattern オペランドに指定した文字列パターン に一致するもので、2 つめ以降のものは選択されません。 文字列パターンで指定した条件に合致するものがディレクトリだった場合、 そのディレクトリ配下のファイルについても選択されたものとみなされます(ただし、 .Fl d オプションが指定された場合にはこの限りではありません)。 .It Fl o Ar options .Fl x で指定されるアーカイブフォーマットから特定される、 アーカイブファイル展開/書き出しアルゴリズムの更新情報を指定します。 一般的に、 .Ar options は .Cm name=value のように指定されます。 .It Fl p Ar string 1 つ以上のファイルの属性操作に関する動作をオプション指定します。 .Ar string オプション引数は、ファイル展開時に、展開ファイルの属性を保存するか破棄す るかを指定する文字列です。 string は、 .Cm a , e , m , o , p の 5 つの指定文字から成ります。 複数の属性を同じ文字列の中につなげて記述したり、複数の .Fl p オプションを指定したりすることもできます。 これらの文字は、以下のように動作の指定を行います: .Bl -tag -width 2n .It Cm a ファイルのアクセス時間を保存しません。 デフォルトでは、ファイルのアクセスタイムは可能な限り保存されます。 .It Cm e ファイルのユーザ ID, グループ ID, ファイルモードのビット、ファイルの アクセス時間、ファイルの更新時間、これらの .Sq 全ての属性を保存します。 本オプションは、 .Em スーパユーザ、 もしくは適正な権限を持ったユーザによって 使用されることを推奨します。 これは、アーカイブ内に格納されたすべてのファイルについて、 そのファイルの特性を保存するためです。 フラグを指定した場合は、 .Cm o および .Cm p フラグを指定したのと同様の効果を持ちます。 .It Cm m ファイルの更新時間を保存しません。 デフォルトでは、ファイルの更新時間は可能な限り保存されます。 .It Cm o ユーザ ID とグループ ID を保存します。 .It Cm p ファイルモードのビットを .Sq 保存します。 本オプションは、 ファイルについて、所有者情報以外の全ての情報の保存を希望するなど適正な 権限を持った .Em ユーザ に使用されることを推奨しています。 ファイルの時刻はデフォルトで保存されますが、 これを無効にしたり、展開時の時刻を用いるようにするために 別に 2 つのフラグが用意されています。 .El .Pp 先述のオプション一覧にて、 .Sq 属性の保存 とは、起動したプロセスの権限に応じて アーカイブ内に保存された属性が展開ファイルに反映されることを意味します。 これ以外の場合は、展開されるファイルの属性は、 通常のファイル生成と同様に決定されます。 .Cm e と .Cm o のどちらも指定されない場合、あるいは ユーザ ID とグループ ID がいかなる理由にせよ保存されない場合、 .Nm はファイル属性中の .Dv S_ISUID .Em ( setuid ) および .Dv S_ISGID .Em ( setgid ) のビットを設定しません。 これらの情報の引き継ぎが何らかの理由で失敗した場合、 .Nm は診断メッセージを .Dv 標準エラー出力 に書き出します。 これらの情報の保存失敗は、最終的な終了ステータスに影響しますが、 展開されたファイルが削除されるようなことはありません。 ファイル属性の操作に関するオプション文字が重複していたり、 他のオプション文字と処理上の競合を起こす場合には、 それらのオプションの中で一番最後に記述されたものの処理が採用されます。 例えば、 .Dl Fl p Ar eme が指定された場合には、ファイルの更新時間は保存されます。 .It Fl s Ar replstr アーカイブ内に格納されているファイルのうち、 .Ar pattern オペランドもしくは .Ar file オペランドで指定されたもののファイル名を、 .Ar replstr で指定された置換表現にしたがって更新します。この置換表現は、 .Xr ed 1 にて記述されている正規表現の書法に準じます。 これらの正規表現の書式は .Dl /old/new/[gp] です。 .Xr ed 1 に示されるように、 .Cm old は基本的な正規表現であり、 .Cm new はアンパサンド (&)、後方参照 \\n (nの部分は数字が入ります)、 補助表現を含むことができます。 文字列 .Cm old には、 .Dv 改行文字 を含んでも構いません。 ヌル文字以外のいかなる文字も、区切り文字として用いることが可能です (ここでは / を示しました)。 また、複数の .Fl s 表現を指定することが許されています。 これらの表現はコマンドラインで指定された順に適用され、 最初の置換が成功した時点でその置換を終了します。 置換処理の追加処理指定として、 .Cm g を指定した場合には、継続してファイル名の置換を行うことを指示します。 この場合、前回置換に成功した直後の文字から継続して置換を行います。 そして最初に置換を失敗したときに .Cm g オプションの処理を終了します。 置換処理の追加処理指定として .Cm p を指定した場合には、最初の置換成功結果を .Dv 標準エラー出力 に以下のフォーマットで書き出します: .Dl >> 空白文字に置換される通常ファイルもしくはアーカイブ内に格納されたファイルの ファイル名は、処理対象として選択されず、そのファイル名に対する 処理はスキップされます。 .It Fl t .Nm が読み込んだ、もしくはアクセスした全てのファイルやディレクトリの アクセス時間を、 .Nm がそれらのファイルやディレクトリを処理する前のものに再設定します。 .It Fl u 同じ名前ですでに存在するファイルやアーカイブ内に格納されているファイルより 古い (ファイル更新時刻が古い) ファイルを無視します。 .Em 読み込み処理 においては、アーカイブ内のファイルにファイルシステム上にすでに存在するものと 同じ名前のファイルがあり、アーカイブ内のファイルの方が新しい場合に、 アーカイブ内のファイルが展開されます。 .Em 書き込み処理 においては、ファイルシステム上のファイルとアーカイブ内のファイルの名前が 同じもので、かつファイルシステム上のファイルの方がアーカイブ内のものより も新しい場合に、ファイルシステム上のファイルのアーカイブへの格納が行われます。 .Em コピー処理 においては、コピー先にあるファイルとコピー元にあるファイルが同一のファイル名 を持ち、かつコピー元にあるファイルの方が新しい場合に、 コピーあるいはリンクが行われます。 .It Fl v .Em 一覧表示処理 において、 .Xr ls 1 コマンドの .Fl l オプションを用いた時の表示と同じ形式を用いて、アーカイブ内容の表示を行います。 アーカイブの他のメンバとの間にハードリンクを構成するファイルのパス名に ついては、以下のフォーマットで出力されます。 .Dl == アーカイブの他のメンバとの間にシンボリックリンクを構成するファイルの パス名については、以下のフォーマットで出力されます。 .Dl => ここで の箇所は、 .Xr ls 1 コマンドを .Fl l オプションを付けて実行した場合の出力形式になります。 他のオプショナルモード (読み込みモード、書き込みモード、そしてコピーモード) の場合には、当該ファイルもしくはアーカイブ内のファイルの処理が始まるとすぐに、 それらのパス名が末尾の .Dv 改行文字 なしで .Dv 標準エラー出力 に書き込まれ、フラッシュされます。 ファイル名に付随する .Dv 改行文字 はバッファリングされることなく、ファイルが読み込まれたもしくは書き込まれた 直後に書き出されます。 .It Fl x Ar format 出力されるアーカイブフォーマットを指定します。デフォルトフォーマットは、 .Ar ustar フォーマットです。 .Nm は、現在以下のアーカイブフォーマットをサポートします: .Bl -tag -width "sv4cpio" .It Ar cpio .St -p1003.2 標準にて規定される、拡張 cpio 交換形式です。 本フォーマットのデフォルトブロックサイズは、5120 バイトです。 このフォーマットで欠落するファイルの inode およびデバイス情報 (この フォーマットでファイルのハードリンクの検出に用いられます) は、 .Nm にて検出され、復元されます。 .It Ar bcpio 古い binary cpio フォーマットです。 本フォーマットのデフォルトのブロックサイズは、5120 バイトです。 本フォーマットはポータビリティがそれほどよくないので、別のフォーマットが 使えるならば、そちらを使用したほうがよいでしょう。 このフォーマットで欠落するファイルの inode およびデバイス情報 (この フォーマットでファイルのハードリンクの検出に用いられます) は、 .Nm にて検出され、復元されます。 .It Ar sv4cpio Unix System V Release 4(SVR4) の cpio フォーマットです。 本フォーマットのデフォルトのブロックサイズは 5120 バイトです。 このフォーマットで欠落するファイルの inode およびデバイス情報 (この フォーマットでファイルのハードリンクの検出に用いられます) は、 .Nm にて検出され、復元されます。 .It Ar sv4crc SVR4 で使用される、ファイルの crc チェックサムつきの cpio フォーマットです。 本フォーマットのデフォルトのブロックサイズは 5120 バイトです。 このフォーマットで欠落するファイルの inode およびデバイス情報 (この フォーマットでファイルのハードリンクの検出に用いられます) は、 .Nm にて検出され、復元されます。 .It Ar tar BSD4.3 から用いられている古い BSD tar フォーマットです。 本フォーマットのデフォルトのブロックサイズは、10240 バイトです。 本フォーマットでは、アーカイブ内に格納されるファイルのパス名は 100 文字以内 でなくてはなりません。 .Em 通常ファイル、ハードリンクファイル、 .Em シンボリックリンクファイル、ディレクトリ のみがアーカイブ内に格納されます (他のファイルシステムタイプについては、 サポートされません)。 さらに古い tar フォーマットとの過去の互換性は、 .Fl o オプションを用いて、アーカイブへのファイル保存時に ディレクトリを無視することで実現されます。 本オプションは、以下のように指定します: .Dl Fl o Cm write_opt=nodir .It Ar ustar .St -p1003.2 標準にて規定される、 拡張 tar 交換形式です。 本フォーマットのデフォルトのブロックサイズは、10240 バイトです。 本フォーマットのアーカイブ内に保存されるファイルのパス名は、250 文字以下 の長さでなくてはなりません。 .El .Pp .Nm は、指定したアーカイブフォーマットの制限に起因して、ファイルの アーカイブへの格納もしくはアーカイブからのファイルの展開が出来ない場合には、 それを検出し、報告します。 各アーカイブフォーマットを使用した場合には、 使用時に更にそのアーカイブフォーマットの制限が課せられることがあります。 典型的なアーカイブフォーマットの制限は、ファイルのパス名の長さ、 ファイルサイズ、リンクファイルの指すファイルのパス名の長さ、 そしてファイルタイプなど。 (なお、制限要素はこれらに限られるわけではありません。) .It Fl B Ar bytes 単一のアーカイブボリュームに書き出される最大データ長を、 .Ar bytes で制限します。 .Ar bytes パラメータの末尾には .Li m , .Li k , .Li b のいずれかの文字を付加でき、それぞれ 1048576 (1M), 1024 (1K), 512 の倍数を 意味します。 また、 .Ar bytes に指定する数字を .Li x で区切ることで、文字 x で区切られた数字の積がブロックサイズとして採用されます。 .Pp .Em 警告 : 最後の (もしくは最大の) 書き込み時のオフセットに基づいた EOF をサポートする デバイス (テープや通常ファイルなどのようなもの) にアーカイブを書き出す時 にのみ本オプションを使って下さい。 本オプションをフロッピーやハードディスクデバイスファイルに対して用いる ことは、推奨しません。 .It Fl D 本オプションは、 .Fl u オプションと同様の動作を行いますが、ファイルの更新時間の代わりに ファイルの inode 変更時間がチェックされるところが異なります。 ファイルの inode 変更時間は、inode 情報 (ユーザ ID、グループ ID、その他) が コピー先のディレクトリ .Ar directory にあるものよりも新しいファイルを選択するのに用いられます。 .It Fl E Ar limit 部分的に破損したアーカイブの読み込みをリトライする際、その読み込み失敗回数を .Ar limit までに制限します。 .Ar limit に正の数を指定した場合、 .Nm はアーカイブの読み込みエラーからの復帰を試行し、アーカイブに格納されて いる次のファイルから処理を継続します。 .Ar limit が 0 の場合、 .Nm は最初のリードエラーがアーカイブボリュームに発生したところで処理を停止します。 .Ar limit が .Li NONE の場合には、読み込み失敗からの復帰を永遠に試行します。 デフォルトの .Ar limit の値は、小さい正の整数(リトライ回数)です。 .Pp .Em 警告 : .Nm コマンドを、本オプションを .Li NONE 指定して起動する場合には十分に気をつけて下さい。 というのも、処理対象となるアーカイブがぼろぼろに破損していた場合には、 処理が無限ループに陥る可能性があるからです。 .It Fl G Ar group グループ名が .Ar group で指定したものであるファイルを選択します。 グループ名が .Cm # で始まる場合には、ファイルのグループ ID がそれに連なる数字のものを 選択します。'\\' を用いて .Cm # をエスケープすることができます。 .Fl G オプションは、複数指定することが可能です。 この場合、最初にグループ名もしくはグループIDが一致したらところで チェックは停止します。 .It Fl H 物理的にファイルシステムトラバースを行いながら、 コマンドラインで指定されたファイルについてのみ シンボリックリンクをたどります。 .It Fl L 全てのシンボリックリンクファイルをたどります。 すなわち、論理的にファイルシステムトラバースを行います。 .It Fl P シンボリックリンクをたどりません。 すなわち、物理的にファイルシステムトラバースを行います。 デフォルトはこのモードです。 .It Fl T Ar [from_date][,to_date][/[c][m]] ファイル更新時間もしくは inode 更新時間が .Ar from_date から .Ar to_date の間 (それぞれで指定した時間も含みます) にあるファイルを選択します。 .Ar from_date のみ指定された場合には、ファイル更新時間もしくは inode 更新時間が その時間と同じかそれより新しいもののみ選択されます。 .Ar to_date のみ指定された場合には、ファイル更新時間もしくは inode 更新時間が その時間と同じかそれより古いもののみ選択されます。 .Ar from_date と .Ar to_date が等しい場合には、ファイル更新時間もしくは inode 更新時間が その時間と等しいものが選択されます。 .Pp .Nm が .Em 書き込みモード もしくは .Em コピーモード の場合には、オプションフィールドとして .Ar [c][m] を指定することが可能です。このフィールドは、時間の比較に inode更新時間と ファイル更新時間のどちら(あるいは両方)を使うかを決定します。 どちらも指定されない場合(デフォルト時)には、ファイル更新時間のみが用いられます。 .Ar m は、ファイル更新時間 (ファイルへの書き込みが最後に行われた時間) を 比較対象として用います。 .Ar c は、inode 更新時間 (inode が最後に更新された時間。例えば所有者、 グループ、モードその他が更新された時間) を比較対象として用います。 .Ar c と .Ar m の両者が指定された場合、ファイル更新時間と inode 更新時間の両者が比較対象 になります。 inode 更新時間の比較は、最近属性が変更されたファイルや 最近作成されたファイル、そしてファイル更新時間が古いものに再設定された ファイル (ファイル更新時間を保存するオプションを用いてアーカイブから 展開されたファイルなどがこれにあたります) を選択するのに便利です。 ファイル時間も併用して時間比較をする機能は、 .Nm を用いて、 時間を基準にしたインクリメンタルアーカイブ (指定した期間内に更新された ファイルのみアーカイブすること) を行うのに便利です。 .Pp 時間の範囲は、6 つの異なるフィールドから成り、各フィールドは 2 ケタの数字を 含む必要があります。 その形式は以下の通りです: .Dl [yy[mm[dd[hh]]]]mm[.ss] .Cm yy は、年号 (西暦) の最後の 2 桁です。 最初の .Cm mm は、月 (01 から 12) です。 .Cm dd は、日付 (01 から 31 まで) です .Cm hh は、時 (00 から 23 まで) です。 2 番めの .Cm mm は、分 (00 から 59 まで)です。 そして、 .Cm ss は、秒 (00 から 59 まで)です。 分のフィールドの .Cm mm は、省略不可であり、他のフィールドはオプションであり、以下の順序で 付加されなければなりません: .Dl Cm hh , dd , mm , yy ただし、 .Cm ss フィールドだけは、他のフィールドとは独立して付加可能です。 時間の範囲は、現在時刻からの相対値で表され、 .Dl Fl T Ar 1234/cm は、本日の 12:34 PM から後のファイル更新時間、もしくは inode 更新時間を持つ ファイルを選択することを表します。 複数の .Fl T による時間範囲指定を行うことが許可されており、 指定した範囲のうちいずれかと一致したら、その後の範囲チェックは行いません。 .It Fl U Ar user ファイルの所有者名 .Ar user に基づいて、ファイル選択が行われます。所有者名が .Cm # で始まる場合には、ファイルの UID がそれに連なる数字のものを 選択します。'\\' を用いて .Cm # をエスケープすることができます。 複数の .Fl U オプションを指定することが許されており、その指定の中で最初にユーザが 一致した場合には、それ以降のユーザ名のチェックは行いません。 .It Fl X パス名で指定されたファイル階層をトラバースする場合に、異なるデバイス ID を 持つディレクトリへは下りていきません。 デバイス ID について詳細な情報を取得したい場合には、 .Xr stat 2 の .Li st_dev フィールドを参照して下さい。 .It Fl Y 本オプションは、 .Fl D オプションと動作が似ていますが、全てのファイル名更新が終了した後、 生成されたパス名を用いて inode 更新時間をチェックするところが異なります。 .It Fl Z 本オプションは、 .Fl u オプションと動作が似ていますが、全てのファイル名更新が終了した後、 生成されたパス名を用いて、ファイル更新時間をチェックするところが異なります。 .El .Pp ファイルもしくはアーカイブ内に格納されたファイルについての操作を制御する オプション ( .Fl c , .Fl i , .Fl n , .Fl s , .Fl u , .Fl v , .Fl D , .Fl G , .Fl T , .Fl U , .Fl Y , .Fl Z ) は、相互に以下のような影響を及ぼします。 .Pp .Em 読み込み 処理におけるファイル展開時には、 展開されるファイルは、まず、アーカイブ内に格納されるファイルのうち .Fl c , .Fl n , .Fl u , .Fl D , .Fl G , .Fl T , .Fl U のそれぞれのオプションを用いて指定されるユーザ指定のパターンオペランド に基づいて選択されます。 それらのファイルの中から .Fl s および .Fl i オプションがこの順に、選択されたファイル名を修正します。 それから、最終的なファイル名にて .Fl Y および .Fl Z オプションによる条件を用いて絞り込みを行い、処理するファイルのパス名が 決まります。 そして最後に、 .Fl v オプションは、これまでの処理結果として得られた名前をファイル名として 書き出します。 .Pp .Em 書き込み 操作や .Em コピー 操作のファイルアーカイブでは、以下のオプション .Fl n , .Fl u , .Fl D , .Fl G , .Fl T , .Fl U ( .Fl D オプションはコピー操作時のみ適用されます) によって アーカイブメンバのファイルを選択します。 続いて、それらのファイルの中から .Fl s および .Fl i オプションがこの順に、選択されたファイル名を修正します。 それから .Em コピー 処理においては、最終的なファイル名にて .Fl Y および .Fl Z オプションによる条件を用いて絞り込みを行い、処理するファイルのパス名が 決まります。 そして最後に、 .Fl v オプションは、これまでの処理結果として得られた名前をファイル名として 書き出します。 .Pp .Fl n といっしょに .Fl u オプションあるいは .Fl D オプションのどちらか、もしくは両方が指定された場合、そのファイルが 比較対象のファイルより新しくなければ、そのファイルは選択されたとは みなされません。 .Sh 使用例 コマンド: .Dl pax -w -f /dev/rst0 .\ は、カレントディレクトリの内容を .Pa /dev/rst0 にコピーします。 .Pp コマンド: .Dl pax -v -f filename は、 .Pa filename で指定したアーカイブに格納されているファイル内容の詳細な一覧を表示します。 .Pp 以下のコマンド: .Dl mkdir /tmp/foo .Dl cd /tmp/bar .Dl pax -rw .\ /tmp/foo を実行すると、 .Pa /tmp/bar 配下のディレクトリ階層全体を .Pa /tmp/foo にコピーします。 .Pp コマンド: .Dl pax -r -s ',^//*usr//*,,' -f a.pax は、アーカイブファイル .Pa a.pax からデータを読み込み、アーカイブ中の ``/usr'' 配下のファイルを全て、 カレントディレクトリからの相対ディレクトリに展開します。 .Pp コマンド: .Dl pax -rw -i .\ dest_dir は、カレントディレクトリから .Pa dest_dir ディレクトリにコピーしますが、ファイルをコピーするかどうかを 対話的に選択します。 .Pp コマンド: .Dl pax -r -pe -U root -G bin -f a.pax は、 .Pa a.pax 中に格納されているファイルのうち、所有者が .Em root でグループが .Em bin であるファイルを選択し、すべてのファイル属性を保存して展開します。 .Pp コマンド: .Dl pax -r -w -v -Y -Z home /backup は、コピー先ディレクトリ .Pa /backup にあるファイルのうち、コピー元ディレクトリ .Pa home に存在する同名のファイルより (inode 更新時刻もしくは ファイル更新時刻が) 古いものについて更新を行い、一覧表示します。 .Sh 規格 .Nm ユーティリティは、 .St -p1003.2 標準のスーパセットです。 オプション .Fl B , .Fl D , .Fl E , .Fl G , .Fl H , .Fl L , .Fl P , .Fl T , .Fl U , .Fl Y , .Fl Z 、アーカイブ形式 .Ar bcpio , .Ar sv4cpio , .Ar sv4crc , .Ar tar 、および .Ar 一覧表示 モードと .Ar 読み込み モードにおける破損したアーカイブの取り扱いは、 .Tn POSIX 標準に対する拡張です。 .Sh 作者 .An Keith Muller at the University of California, San Diego .Sh 診断 .Nm は、以下の値のいずれかで終了します: .Bl -tag -width 2n .It 0 すべてのファイルは正常に処理されました。 .It 1 エラーが発生しました。 .El .Pp アーカイブ読み込み中に .Nm がファイルを作成できない場合やリンクを張れない場合、 アーカイブに書き込み中にファイルが見つからない場合、 .Fl p オプション指定時にユーザ ID、グループ ID、ファイル属性を保存できない場合には、 診断メッセージが .Dv 標準エラー出力に 書き出され、0 以外の終了ステータスが返却されますが、 処理自体は継続して行われます。 ファイルへのリンクを作成できない場合には、 .Nm はファイルの二次コピーを作成しません。 .Pp アーカイブからのファイルの展開が、シグナル受信もしくはエラー発生により 途中で異常終了した場合、 .Nm はユーザが指定したファイルの一部分だけを展開して終了する可能性があります。 更に、展開したファイルやディレクトリの属性が不正であったり、 アクセス時間、更新時間も不正である可能性があります。 .Pp アーカイブの生成が、シグナル受信もしくはエラー発生により 途中で異常終了した場合、 .Nm は中途半端なアーカイブを生成している可能性があります。 このようなアーカイブは 特定のアーカイブフォーマット規定を満足していない可能性があります。 .Pp .Em コピー を行っている最中に、 .Nm が読み出したのと同じファイルへの書き込みを検出した場合、 そのファイルはコピーされず、診断メッセージが .Dv 標準エラー出力 へ書き出され、 .Nm は 0 以外の終了ステータスでプログラム終了します。 diff --git a/ja_JP.eucJP/man/man1/rm.1 b/ja_JP.eucJP/man/man1/rm.1 index 5b589ba6db..c2e8b54ff2 100644 --- a/ja_JP.eucJP/man/man1/rm.1 +++ b/ja_JP.eucJP/man/man1/rm.1 @@ -1,202 +1,202 @@ .\" %NetBSD: rm.1,v 1.7 1995/03/21 09:08:22 cgd Exp % .\" .\" Copyright (c) 1990, 1993, 1994 .\" The Regents of the University of California. All rights reserved. .\" .\" This code is derived from software contributed to Berkeley by .\" the Institute of Electrical and Electronics Engineers, Inc. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)rm.1 8.5 (Berkeley) 12/5/94 -.\" %FreeBSD: src/bin/rm/rm.1,v 1.19.2.1 2000/12/08 13:34:40 ru Exp % +.\" %FreeBSD: src/bin/rm/rm.1,v 1.19.2.2 2000/12/15 17:47:24 ru Exp % .\" .\" jpman %Id: rm.1,v 1.3 1997/05/19 16:49:44 horikawa Stab % .Dd January 28, 1999 .Dt RM 1 .Os .Sh 名称 .Nm rm , .Nm unlink .Nd ディレクトリエントリの削除 .Sh 書式 .Nm .Op Fl dfiPRrvW .Ar file ... .Nm unlink .Ar file .Sh 解説 .Nm は、 コマンドラインから指定された非ディレクトリタイプのファイルを削除します。 指定されたファイルに書き込みパーミッションがなく、 標準入力がターミナルだった場合、 削除を実行してよいかどうかの確認を (標準エラー出力を使って) 求めます。 .Pp オプションとしては以下のものがあります: .Bl -tag -width Fl .It Fl d ディレクトリも、他のタイプのファイルと同様に削除します。本オプション なしに file としてディレクトリを指定した場合、エラーになります。 .It Fl f ファイルのパーミッションに関わらす、確認せずにファイルの 削除を行います。 ファイルが存在しない場合にもエラーメッセージは表示せず、終了ステータス もエラーを返しません。 .Fl f オプション以前に書かれた .Fl i オプションを無視します。 .It Fl i ファイルのパーミッションや標準入力がターミナルであるかどうかに関わらず、 指定された各ファイルを削除する前に、確認を求めるようになります。 .Fl i オプション以前に書かれた .Fl f オプションを無視します。 .It Fl P ファイルを削除する前に上書きします。まず 0xff のバイトパターンで、次に 0x00 で、そして最後にもう一度 0xff で上書きし、削除します。 .It Fl R 引数 file として指定したディレクトリを再帰的に削除します。 .Fl R オプションは、暗黙のうちに .Fl d オプションが指定されたものとします。 .Fl i オプションが指定されているときには、最初にディレクトリを 削除する/しないの確認が求められ、さらに奥のディレクトリについても 各ディレクトリの中身の削除に移る前に確認が求められます。 確認に対して削除すると答えなかった場合には、それ以下のディレクトリは スキップされます。 .Pp .It Fl r .Fl R と同じです。 .It Fl v ファイルを削除するときに冗長になり、削除する時ファイルを表示します。 .It Fl W 削除したファイルを回復しようとします。 現在このオプションは、 ホワイトアウトされたファイルを回復するためにのみ使用可能です。 .El .Pp .Nm は、シンボリックリンクを削除するときリンクは削除しますが、 リンクが参照しているファイルは削除しません。 .Pp ファイル -.Dq \&. +.Dq .\& と .Dq .. を削除しようとするとエラーになります。 .Pp 本ユーティリティが .Nm unlink として呼ばれた場合、非ディレクトリの単一引数のみが指定可能です。 この単純モード動作では、オプションは指定不可であり、渡された引数に対し .Xr unlink 2 動作を実行します。 .Pp 指定したファイルをすべて削除した場合か、 .Fl f オプションが指定され、存在するファイルがすべて削除された場合に 0 を返します。 エラーが起きた場合は 0 より大きな値を返します。 .Sh 注 .Nm は引数をパースするために .Xr getopt 3 を使用します。getopt は .Sq Li -- 引数を受け付けます。これはフラグオプションの読み込みを終了させます。 それゆえ、ダッシュ .Sq Li - で始まるファイルを削除できます。 例えば: .Dl $ rm -- -filename 絶対もしくは相対参照を用いることで同様の効果が得られます。 例えば: .Dl rm /home/user/-filename .Dl rm ./-filename .Sh 関連項目 .Xr rmdir 1 , .Xr undelete 2 , .Xr unlink 2 , .Xr fts 3 , .Xr getopt 3 , .Xr symlink 7 .Sh バグ .Fl P オプションではファイルシステムが固定ブロック長であると仮定されます。 UFS は固定長ファイルシステムですが、LFS はそうではありません。 さらに、通常ファイルは上書きされますが、それ以外の種類のファイルは 上書きされません。 .Sh 互換性 .Nm は、 .Fl f オプションが存在しないファイルに対するエラーのみをマスクする点が伝統的 実装と異なります。 .Fl v は標準ではありませんし、スクリプト中での使用はお勧めしません。 .Pp また、伝統的 .Bx 実装では標準エラー出力ではなく標準出力に確認が出力されていました。 .Sh 規格 .Nm コマンドは、ほぼ .St -p1003.2 互換です。 指定された .Ar file がディレクトリの場合には .Nm rm が .Xr rmdir 1 のように動作することを、 .Tn POSIX では求めていることが例外です。 このような動作が必要な場合には、本実装では .Fl d オプションが必要です。 これは、ディレクトリに関する .Nm の歴史的な動作に従っています。 .Pp 単純化された .Nm unlink は .St -susv2 準拠です。 .Sh 歴史 .Nm コマンドは .At v1 から登場しました。 diff --git a/ja_JP.eucJP/man/man1/sh.1 b/ja_JP.eucJP/man/man1/sh.1 index 8f6c59222a..ac628963e1 100644 --- a/ja_JP.eucJP/man/man1/sh.1 +++ b/ja_JP.eucJP/man/man1/sh.1 @@ -1,1820 +1,1820 @@ .\" Copyright (c) 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" This code is derived from software contributed to Berkeley by .\" Kenneth Almquist. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" from: @(#)sh.1 8.6 (Berkeley) 5/4/95 -.\" %FreeBSD: src/bin/sh/sh.1,v 1.39.2.3 2000/12/08 13:34:40 ru Exp % +.\" %FreeBSD: src/bin/sh/sh.1,v 1.39.2.5 2000/12/18 14:52:17 ru 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 ... +.Op Ar arg ...\& .Sh 解説 .Nm ユーティリティ はシステムの標準コマンドインタプリタです。 現在 .Nm は .St -p1003.2 のシェル規約に対応する途上にあります。 本バージョンのシェルは、見方によっては Korn shell と同様に 見える機能を多数持っていますが、 .Xr pdksh 1 のような Korn shell クローンではありません。 このシェルには、POSIX で規定された仕様といくつかの Berkeley 拡張のみが 取り入れられています。 本マニュアルは、shell のチュートリアルでは ありませんし、仕様を完全に記述するものでもありません。 .Ss 概要 シェルは、ファイルまたは端末から 1 行ずつ読み込み、それを解釈し、 コマンドを実行します。シェルはユーザがシステムにログインしたときに起動 されるプログラムです (ただし、ユーザは .Xr chsh 1 コマンドによって他のシェルを選択することもできます)。 シェルは、制御構文を持つ言語であり、 データ記憶をはじめとして多様な機能を提供するマクロ機能、 ヒストリ、行編集機能も内蔵しています。 このシェルは対話的に使うときに便利な機能を多くとり入れており、 対話的に用いるときも非対話的に (シェルスクリプトとして) 用いるときも、 共通のインタプリタ言語を用いることができる利点があります。 すなわち、コマンド名をシェルに直接タイプする ことも、コマンド名をファイルに書いておいてそのファイルをシェルに 直接実行させることもできます。 .Ss 起動 .\" .\" XXX This next sentence is incredibly confusing. .\" 引数が与えられず、かつシェルの標準入力が端末の場合 (または .Fl i フラグが指定 された場合)、シェルは対話的に動作します。対話的シェルは、通常、コマンド 入力時にプロンプトを表示し、文法的なエラーとコマンドエラーを 異なった方法で処理します (後述します)。 起動時に、シェルは 0 番目の引数を検査します。もしそれが マイナス記号 .Pq Li - で始まっているなら、シェルはログインシェルとして 動作します。ユーザがシステムにログインした場合は自動的にこの状況に なります。ログインシェルは、まず (以下の各ファイルが存在する場合)、 .Pa /etc/profile と次に .Pa .profile ファイルからコマンドを読み込みます。 シェル起動時に、もしくはログインシェルで .Pa .profile を実行中に環境変数 .Ev ENV が設定されているなら、シェルは、その次に環境変数 .Ev ENV で示されたファイルからコマンドを読み込みます。 つまり、ユーザはログイン時にのみ実行したいコマンドを .Pa .profile に書き、シェルが起動されるたびに実行したいコマンドを環境変数 .Ev ENV で示すファイルに書くことになります。 環境変数 .Ev ENV を設定するには、ホームディレクトリ下のファイル .Pa .profile に以下のように記述します。 ここで .Pa .shinit のかわりに好きな名前を指定することができます。 .Pp .Dl ENV=$HOME/.shinit; export ENV .Pp コマンドライン引数で指定されたオプション以外の最初のものを、シェルは コマンドを読み込むべきファイル (シェルスクリプト) の名前であると解釈し、 それ以後の引数はシェルの位置パラメータ ($1, $2, ...) に設定します。 それ以外の場合、シェルはコマンドを標準入力から読み込みます。 .Pp 古いバージョンの .Nm とは異なり、環境変数 .Ev ENV で指定したスクリプトが実行されるのは、対話的シェルの呼び出し時のみです。 これにより、いい加減に書かれた .Ev ENV スクリプトに起因する、簡単に食いものにされることが多い有名な セキュリティホールがふさがれたことになります。 .Ss 引数リスト処理 .Nm の 1 文字からなるオプションはそれぞれ対応する長い名前を持っています。 ただし .Fl c と .Fl /+o は例外です。 次の解説では、長い名前は単一文字オプションの後で説明します。 あるオプションの長い名前は、 .Xr sh 1 の .Fl /+o オプションへの引数として指定可能です。 シェルが起動されると、 オプションの長い名前を .Ic set 組み込みコマンド (後述の .Sx 組み込みコマンド で説明) の .Fl /+o オプションへの引数として指定可能です。 マイナス記号 .Pq Li - でオプションを指定することは、そのオプションを有効にすることを意味し、 プラス記号 .Pq Li + でオプションを指定することは、そのオプションを無効にすることを意味します。 .Dq Li -- または、単なる .Dq Li - はオプション処理を終了させ、 コマンドラインの残りの語を引数として解釈することを強制します。 .Fl /+o と .Fl c のオプションは長い名前を持ちません。 .Bl -tag -width Ds .It Fl a Li allexport 値が代入されたときに変数をエクスポートするよう、変数にフラグを付けます。 .It Fl b Li notify バックグラウンドジョブ実行の完了を、コマンドが実行中でも即座に報告しま す (未実装です)。 .It Fl C Li noclobber すでに存在するファイルに対して .Dq Li > リダイレクトにより上書きしません (未実装です)。 .It Fl E Li emacs 組み込みの .Xr emacs 1 風のコマンド行編集機能を有効にします (それ以前に .Fl V オプションが指定された場合、それを無効にします)。 .It Fl e Li errexit 非対話モードで、テスト状態にないコマンドの実行に失敗した場合、 直ちにシェルを終了します。 コマンドは、if, elif, while, until 構文を 制御するのに用いられている場合に、テスト状態であるとみなされます。 また、 .Dq Li && や .Dq Li || の左辺値として用いられているコマンドも、テスト状態とみなされます。 .It Fl f Li noglob パス名展開を行ないません。 .It Fl I Li ignoreeof 対話的シェルの場合、入力の .Dv EOF を無視します。 .It Fl i Li interactive シェルが対話的に動作するように強制します。 .It Fl m Li monitor ジョブ制御を可能にします (対話的シェルの場合は自動的に設定されます)。 .It Fl n Li noexec 非対話的シェルの場合、コマンドを読み込みますが、そのコマンドの実行は しません。シェルスクリプトの文法を検査する場合に便利です。 .It Fl p Li privileged 特権モードを有効にします。 起動時に実効ユーザ ID あるいは実効グループ ID が、実ユーザ ID や実グルー プ ID と一致していなければ、このモードが有効になります。このモードを無 効化すると、実効ユーザ ID および実効グループ ID は、実ユーザ ID および 実グループ ID に設定されます。 対話的シェルでこのモードが有効になっていると、 .Pa /etc/profile の後で .Pa ~/.profile に代わり、 .Pa /etc/suid_profile を読み込みます。一方、環境変数 .Ev ENV の内容は無視されます。 .It Fl s Li stdin コマンドを標準入力から読み込みます (引数でファイル名が指定されていない 場合には、このオプションが自動的に設定されます)。 シェルが実行されてから本オプションを ( .Ic set などによって) 設定しても効果はありません。 .It Fl T Li asynctraps 子を待つとき、即座にトラップを実行します。 本オプションが設定されていないと、 .St -p1003.2 で指定されているように、子が終了した後にトラップが実行されます。 この非標準オプションは、 シグナルをブロックする子の周囲に保護シェルを置くために有用です。 周囲のシェルは子を殺したり、 次のように、制御を tty に戻して子だけを残したりできます: .Bd -literal -offset indent sh -T -c "trap 'exit 1' 2 ; some-blocking-program" .Ed .Pp .It Fl u Li nounset 値が設定されていない変数を展開しようとした場合、 標準エラー出力にエラーメッセージを出力し、 さらに非対話的シェルならば、ただちにシェルを終了します (未実装です)。 .It Fl V Li vi 組み込みの .Xr vi 1 風の行編集機能を有効にします (それ以前に .Fl E オプションが指定されていた場合、それは無効になります)。 .It Fl v Li verbose 入力を読み込むごとに標準エラー出力に書き出します。デバッグのときに便利です。 .It Fl x Li xtrace 各コマンドを実行する前に、そのコマンドを標準エラー出力に (各コマンドの 前に .Dq Li + \ を付加して) 書き出します。デバッグのときに便利です。 .El .Pp .Fl c オプションは、シェルの入力として解釈させる文字列引数を渡すために使用可能です。 このオプションは引数として文字列を一つだけ受け取ることに注意して下さい。 ですから、複数の単語からなる文字列は引用符で囲う必要があります。 .Pp .Fl /+o オプションは、オプションの長い名前のみを引数としてとり、 オプションの有効化と無効化を行います。 例えば、次の 2 つの .Nm 起動方法では組み込みの .Xr emacs 1 コマンドラインエディタを有効化します: .Bd -literal -offset indent set -E set -o emacs .Ed .Ss 構文構造 シェルは、ファイルを行単位で読み込み、空白文字 (ブランクおよびタブ) や シェルにとって特別な意味を持つ特定の文字列 ( .Dq 演算子 と呼ばれるものです) を区切りとして、複数の単語に分割します。演算子には、制御演算子とリ ダイレクト演算子の 2 種類があります (これらの意味については後述します)。 以下に、それらの一覧を示します。 .Bl -tag -width Ds .It No 制御演算子: .Bl -column "XXX" "XXX" "XXX" "XXX" "XXX" -offset center -compact .It Xo .Li & Ta Xo .Li && Ta Xo .Li ( Ta Xo .Li ) Ta Xo .Li \en .Xc Xc Xc Xc Xc .It Xo .Li ;; Ta Xo .Li ; Ta Xo .Li | Ta Xo .Li || .Xc Xc Xc Xc .El .It No リダイレクト演算子: .Bl -column "XXX" "XXX" "XXX" "XXX" -offset center -compact .It Xo .Li < Ta Xo .Li > Ta Xo .Li << Ta Xo .Li >> .Xc Xc Xc Xc .It Xo .Li <& Ta Xo .Li >& Ta Xo .Li <<- Ta Xo .Li >| .Xc Xc Xc Xc .El .El .Ss 引用 (クォート) 引用は、特殊な意味を持つ文字や単語 (演算子、空白、キーワードなど) の意味 を打ち消すために用います。引用には、シングルクォート文字のペアを使う方法、 ダブルクォート文字のペアを使う方法、バックスラッシュ文字を使う方法 の 3 種類があります。 .Bl -tag -width Ds .It シングルクォート文字 シングルクォートのペアで囲まれた文字は、すべてその文字そのまま (リテラル) として扱われます (ただしシングルクォートは別です。シングルクォート で囲った文字列の中にシングルクォートを含めることはできません)。 .It ダブルクォート文字 ダブルクォートのペアで囲まれた文字は、ドル記号文字 .Pq Li $ 、バッククォート文字 .Pq Li ` 、バックスラッシュ文字 .Po Li \e\" .Pc を除き、すべてリテラルとして扱われます。 ダブルクォート文字による引用の中にあるバックスラッシュ文字は、歴史 的経緯によりすこし変わった扱いを受けます。 次の文字の前にある場合はクォートになりますが、 それ以外ではリテラルのままとなります: .Bl -column "XXX" "XXX" "XXX" "XXX" "XXX" -offset center -compact .It Xo .Li $ Ta Xo .Li ` Ta Xo .Li \&" Ta Xo .Li \e\ Ta Xo .Li \en .Xc Xc Xc Xc Xc .El .It バックスラッシュ バックスラッシュは、その後ろの 1 文字を、リテラルとして扱うように指示 します。ただし改行文字 .Pq Li \en は別です。改行文字の直前のバックスラッシュは、行 の継続であるとみなされます。 .El .Ss 予約語 予約語はシェルにとって特別な意味を持つ単語で、行の先頭または制御演算子 の直後でのみ予約語として認識されます。以下に予約語の一覧を挙げます。 .Bl -column "doneXX" "elifXX" "elseXX" "untilXX" "whileX" -offset center .It Xo -.Li ! Ta Xo +.Li \&! Ta Xo .Li { Ta Xo .Li } Ta Xo .Ic case Ta Xo .Ic do .Xc Xc Xc Xc Xc .It Xo .Ic done Ta Xo .Ic elif Ta Xo .Ic else Ta Xo .Ic esac Ta Xo .Ic fi .Xc Xc Xc Xc Xc .It Xo .Ic for Ta Xo .Ic if Ta Xo .Ic then Ta Xo .Ic until Ta Xo .Ic while .Xc Xc Xc Xc Xc .El .Ss エイリアス エイリアスは、名前とそれと対応する値が対になったもので、 組み込みコマンド .Ic alias によって定義されます。 シェルは、予約語が現れる可能性がある場所 (上記を参照) で、 ある単語に対して、それが予約語かどうかの検査を済ませたのち、 それがエイリアスに一致するかどうかを検査します。 もし一致したならば、入力行の中で、その単語をエイリアスの値に置き換えます。 たとえば、 .Dq Li lf という名前で .Dq Li ls -F という値を持つエイリアスが 存在したとすると、次の入力行 .Bd -literal -offset indent lf foobar .Ed .Pp は、以下のように置換されます。 .Bd -literal -offset indent ls -F foobar .Ed .Pp エイリアスは、初心者に対し、引数付きの関数を生成する面倒を求めることなく、 短いコマンドをつくり出す便利な方法を提供するものです。 しかし、構文的にあいまいなコードを作り出すことにもつながりかねません。 そのような使い方はお勧めできません。 .Ss コマンド シェルは、読み込んだ単語を、文法に従って解釈します。 本マニュアルでは文法については解説しません。 .St -p1003.2 の BNF 表記を参照してください。要するに、行を1行を読み込み、読み込んだ 行の最初の単語 (制御演算子がある場合は、そのあとの最初の単語) が予約語 でない場合、シェルはその行を単純コマンドとして解釈します。それ以外の場 合、複合コマンドあるいは特殊構造であると解釈します。 .Ss 単純コマンド 単純コマンドを解釈する場合、シェルは以下のような動作をします。 .Bl -enum .It 単語の前にある .Dq Li name=value の形式の単語を取り除き、 単純コマンドの環境に代入します。 リダイレクト演算子とその引数 (後述) を取り除き、 あとで処理できるように保存します。 .It 残った単語を、 .Sx 単語展開 の節で説明する方法で展開します。 展開後の最初の単語をコマンド名とみなし、コマンドの位置を探索します。 残りの単語はコマンドへの引数とみなされます。 処理の結果、コマンド名が残らなかった場合、手順 1) で 取り出した .Dq Li name=value の変数代入を、現在のシェルの環境に反映します。 .It 次節で説明する方法で、リダイレクトを行ないます。 .El .Ss リダイレクト リダイレクトは、コマンドがどこから入力するか、どこへ出力するかを 変更するときに用います。 一般には、リダイレクトでは、ファイルのオープン、クローズ、または ファイルへの参照の複製 (duplicate) を行います。 リダイレクトで用いられる全般的な形式は、以下のとおりです。 .Pp .Dl [n] redir-op file .Pp ここで、 .Ql redir-op は前述したリダイレクト演算子のいずれかです。 これらの演算子をどのように利用するかの例をいくつか以下に挙げます。 .Bl -tag -width "1234567890XX" -offset indent .It Li [n]> file 標準出力 (またはファイル記述子 n) を file にリダイレクトします .It Li [n]>| file 上と同様。ただし .Fl C オプションの効果を打ち消します。 .It Li [n]>> file 標準出力 (またはファイル記述子 n) を file に追加します。 .It Li [n]< file 標準入力 (またはファイル記述子 n) を file からリダイレクトします。 .It Li [n1]<&n2 ファイル記述子 n2 を標準入力 (またはファイル記述子 n1) に複製します。 .It Li [n]<&- 標準入力 (またはファイル記述子 n) をクローズします。 .It Li [n1]>&n2 標準出力 (またはファイル記述子 n1) をファイル記述子 n2 に複製します。 (訳注: 通常は「ファイル記述子 n2 を標準出力 (またはファイル記述子 n1) に 複製」と表現します。 結果は、標準出力 (または n1 への出力) の n2 へのリダイレクトです。) .\" [man-jp 1544], [man-jp 1827] 以降のスレッド参照。 .It Li [n]>&- 標準出力 (または n) をクローズします。 .El .Pp 以下のリダイレクトは、しばしば .Dq ヒア・ドキュメント (here-document) と 呼ばれます。 .Bd -literal -offset indent [n]<< delimiter here-doc-text - ... + ...\& delimiter .Ed .Pp シェルは、delimiter までの行を保存し、コマンドへの標準入力またはファイ ル記述子 n にリダイレクトします。最初の行の delimiter が引用 (クォート) されていた場合、here-doc-text の内容をリテラルとして扱います。 そうでない場合、パラメータ展開、コマンド置換、数値演算 ( .Sx 単語展開 の節で 説明します) を適用します。演算子が ( .Dq Li << でなく) .Dq Li <<- の場合は、 here-doc-text の各行の行頭のタブを取り除きます。 .Ss コマンド検索と実行 コマンドには、シェル関数、組み込みコマンド、通常プログラムの 3 種類があり、 コマンドを検索する際には、シェルは名前の検索をこの順序で行います。 3 種類のコマンドは異なる方法で実行されます。 .Pp シェル関数を実行するとき、$0 を除くすべての位置パラメータ ($1, $2,..) をシェル関数への引数として設定します。$0 は変更されません。シェル関数 の環境として指定された変数 (関数名の直前に .Dq name=value を置いて指定 されたもの) は、その関数に局所的な変数となり、指定された初期値が設定さ れます。そして、シェルは関数定義で与えられたコマンドを実行します。コマ ンドの実行が完了すると、位置パラメータを元の値に戻します。これは全て現 在のシェルの中で処理されます。 .Pp 組み込みコマンドは、新たなプロセスを作成せずにシェル内部で実行されます。 .Pp コマンドが関数でも組み込みコマンドでもない場合は、通常のプログラムとみなし (次節で説明するとおり) ファイルシステムの中でそのコマンドを検索します。 通常のプログラムを実行する場合、シェルは引数と 環境をプログラムに渡して、そのプログラムを実行します。 プログラムが通常の実行ファイル形式ではない場合 (つまり、 .Tn ASCII 表現で .Qq #! となる .Qq マジックナンバ でファイルが始まっておらず、 .Xr execve 2 が .Er ENOEXEC を返す場合)、 サブシェルの中でそのプログラムを解釈実行します。この場合、あたかも新たに シェルが起動されたかのような効果を得るために、子シェルは自分自身を 再初期化します。ただし、子プロセスは、親シェル中のハッシュされたコマンド 位置情報を憶えており、これは再初期化されません。 .Pp 本ドキュメントの古いバージョンや古いソースコードでは、ときおり、 マジックナンバのないシェルスクリプトのことを .Qq シェル手続き と呼んでいて、 まぎらわしい場合がありますので注意して下さい。 .Ss パス検索 コマンドを検索するとき、シェルは、まず、その名前のシェル関数があるかどうかを 調べます。次に、その名前の組み込みコマンドがあるかどうかを調べます。 組み込みコマンドでもない場合、以下のいずれかの処理が行われます: .Bl -enum .It コマンド名にスラッシュが含まれていれば、検索は行わず、 単にそのコマンドが実行されます。 .It 変数 .Ev PATH に含まれる各エントリに対して、順にそのコマンドを検索します。 変数 .Ev PATH の値はコロン .Dq : で区切られたエントリの列でなければなりません。 各エントリは、それぞれディレクトリ名一つに対応します。 カレントディレクトリは、 空のディレクトリ名を指定することで暗黙的に、 あるいは 1 個のピリオドを指定することで明示的に 指示することができます。 .El .Ss コマンドの実行ステータス 各コマンドは終了ステータスを持ち、それにより他のシェルコマンドの動作に 影響を与えることができます。基本的な考え方として、終了ステータス 0 は 通常の終了または成功を示します。0 以外の終了ステータスは失敗、エラーを 意味します。各コマンドのマニュアルにそれぞれの終了ステータスがどのよう な意味を持つかが記述されているはずです。組み込みコマンドと (実行された) 関数も終了ステータスを返します。 .Pp コマンドがシグナルにより終了 (terminate) させられた場合、 終了ステータスは 128 にシグナル番号を加えたものになります。 シグナル番号はヘッダファイル .Aq Pa sys/signal.h に定義されています。 .Ss 複合コマンド (Complex Commands) 複合コマンドは、単純コマンドの組み合わせで作ります。 制御演算子または予約語と組み合わせることで、より大きな複合コマンドを生 成します。一般に、コマンドは以下のうちのいずれかです。 .Bl -item -offset indent .It 単純コマンド .It パイプライン .It リストまたは合成リスト (compound-list) .It 合成コマンド (compound command) .It 関数定義 .El .Pp 特に指定のない場合、コマンドの終了ステータスは最後に実行された 単純コマンドの終了ステータスとなります。 .Ss パイプライン パイプラインは、複数のコマンドを制御演算子 `|' によってつないだものです。 最後のコマンドを除くすべてのコマンドの標準出力は、次のコマンドの標準入力に 接続されます。 最後のコマンドの標準出力は、通常通り、シェルから受け継がれます。 .Pp パイプラインの形式は次のとおりです。 .Pp .Dl [!] command1 [ | command2 ...] .Pp command1 の標準出力は command2 の標準入力に接続されます。コマンドの標 準入出力がパイプラインによって割り当てられるのは、各コマンドに属する リダイレクト演算子で指定されたリダイレクトを処理する前のことだと考えて 下さい。 .Pp パイプラインがバックグラウンド (後述) でなければ、シェルはすべての コマンドが終了するのを待ちます。 .Pp パイプラインの直前に予約語 `!' が置かれなかった場合、終了ステータスは パイプラインの最後のコマンドの終了ステータスとなります。 `!' が前置された場合、終了ステータスはパイプラインの最後のコマンドの 終了ステータスの論理否定を取った値となります。 すなわち、最後のコマンドが 0 を返した場合、パイプラインの 終了ステータスは 1 に、最後のコマンドが 0 より大きな値を返した場合、 終了ステータスは 0 になります。 .Pp パイプラインによる標準入出力の接続はリダイレクトに先立って行われるため、 パイプラインの接続をリダイレクトによって修正することができます。たとえば、 .Pp .Dl $ command1 2>&1 | command2 .Pp .Ql command1 の標準出力と標準エラー出力の両方を .Ql command2 の標準入力に 接続します。 .Pp .Dq Li \&; または改行文字を終端として用いることにより、直前の AND-OR リスト ( .Sx 短絡リスト演算子 で後述) を順次実行します。 .Dq Li & は、直前の AND-OR リストを非同期に実行します。 .Pp 注: 他のいくつかのシェルと異なり、 .Nm ではパイプラインの各プロセスは起動した .Nm の子プロセスとなります。シェルの組み込みコマンドである ときは別です。その場合は現在のシェルで実行されますが、 環境に対する操作は影響を与えません。 .Ss バックグラウンドコマンド (&) コマンドが制御演算子がアンパサンド .Pq Li & で終了している場合、シェルはそのコマンドを 非同期に実行します。すなわち、シェルはそのコマンドの終了を待たずに、 次のコマンドの実行を開始します。 .Pp コマンドをバックグラウンドで実行させるための形式は以下のとおりです。 .Bd -literal -offset indent command1 & [command2 & ...] .Ed .Pp シェルが対話的でない場合、非同期コマンドの標準入力には /dev/null が 接続されます。 .Ss リスト (一般的な話) リストは 0 個またはそれ以上のコマンドを改行文字、セミコロン文字、アン パーサント文字 (&) で区切った列です。リストは、これら 3 つの記号のいずれかで 終了させることもできます。リスト中のコマンドは並べられた順に実行 されます。もし、コマンドに続けてアンパーサント文字が置かれている場合、 シェルはそのコマンドを起動したあと、すぐに次のコマンドの処理を開始します。 その他の場合、そのコマンドの終了を待ってから次のコマンドの処理を開始します。 .Ss 短絡リスト演算子 (Short-Circuit List Operators) .Dq Li && と .Dq Li || は AND-OR リスト演算子です。 .Dq Li && は最初のコマンド を実行し、もし最初のコマンドの終了ステータスが 0 ならば次のコマンドを 実行します。 .Dq Li || も同様ですが、最初のコマンドの終了ステータスが 0 でない場合に、次のコマンドを実行します。 .Dq Li && と .Dq Li || の優先順位は 同じです。 .Ss 制御構造 (if, while, for, case) .Ic if コマンドの文法は以下のとおりです。 .\" .\" XXX Use .Dl to work around broken handling of .Ic inside .Bd and .Ed . .\" .Dl Ic if Ar list .Dl Ic then Ar list .Dl [ Ic elif Ar list -.Dl Ic then Ar list ] ... +.Dl Ic then Ar list ] ...\& .Dl [ Ic else Ar list ] .Dl Ic fi .Pp .Ic while コマンドの文法は以下のとおりです。 .Dl Ic while Ar list .Dl Ic do Ar list .Dl Ic done .Pp 最初のリストの終了ステータスが 0 であるかぎり、2 つのリストを繰り返し 実行します。 .Ic until コマンドも同様に実行しますが、 単語 .Ic while の代わりに単語 .Ic until を使うことと、 最初のリストの終了ステータスが 0 になるまで、 2 つのリストを繰り返し実行することが異なります。 .Pp .Ic for コマンドの文法は以下のとおりです。 -.Dl Ic for Ar variable Ic in Ar word ... +.Dl Ic for Ar variable Ic in Ar word ...\& .Dl Ic do Ar list .Dl Ic done .Pp 各 word は展開され、変数 variable に word を順に設定しながらリストを 繰り返し実行します。 .Ic do と .Ic done は .Dq Li { と .Dq Li } で置き換えることができます。 .Pp .Ic break と .Ic continue コマンドの文法は以下のとおりです。 .Dl Ic break Op Ar num .Dl Ic continue Op Ar num .Pp .Ic break は内側から .Ar num 個の .Ic for ループまたは .Ic while ループを終了します。 .Ic continue は内側から .Ar num 個のループの次の繰り返しに制御を移します。 .\" 上の文、原文では以下のようになっているが、the *num* innermost loop が .\" 正しいと思われる。実際の sh の動作もそうなっているようだ。 .\" --- 97/05/31 sakai@jp.freebsd.org ↓ .\" Continue continues with the next iteration of the innermost loop. これらのコマンドは組み込みコマンドとして実装されています。 .Pp .Ic case コマンドの文法は以下のとおりです。 .Dl Ic case Ar word Ic in .Dl pattern) list ;; -.Dl ... +.Dl ...\& .Dl Ic esac .Pp pattern は、1 つあるいは複数のパターン (後述の .Sx シェルパターン を参照のこと) を .Dq Li \&| で接続したものです。 .Ss 複数のコマンドのグループ化 コマンドは、以下のいずれかの方法によりグループ化することができます。 .Bd -literal -offset indent (list) .Ed .Pp または、 .Bd -literal -offset indent { list; } .Ed .Pp 最初の形式では、コマンドはサブシェル上で実行されます。 この組み込みコマンドは現在のシェルには影響を与えないことに注意してください。 2 つめの形式では新たなシェルを fork しないので、やや効率が良くなります。 このようにして複数コマンドをグループ化することで、 あたかも単一プログラムであるかのように、それらの出力をまとめて リダイレクトすることができます。 .Bd -literal -offset indent { echo -n "hello"; echo " world"; } > greeting .Ed .Ss 関数 関数定義の構文は以下のとおりです。 .Bd -literal -offset indent name ( ) command .Ed .Pp 関数定義は実行可能文の一種です。実行されると、名前 name の関数 が定義され、終了ステータスとして 0 を返します。command は 通常、 .Dq Li { と .Dq Li } で囲まれたリストです。 .Pp .Ic local コマンドを用いて関数に局所的な変数を宣言することができます。 これは関数定義中の最初の文で行わなければなりません。構文は次のとおりです。 .Bd -ragged -offset indent .Ic local -.Op Ar variable ... +.Op Ar variable ...\& .Op Ar - .Ed .Pp .Ic local コマンドは、組み込みコマンドとして実装されています。 .Pp 変数を局所変数にする場合、関数を呼び出した環境に同じ名前の変数があれば、 新しい局所変数は値と export、readonly フラグを引き継ぎます。もし同じ名前の 変数がなければ、局所変数は初期値を持ちません。シェルは動的スコープ を用います。すなわち、関数 .Em f に局所的な変数 .Em x を作成し、関数 .Em f から関数 .Em g を呼び出した場合、関数 .Em g 内部での変数 .Em x に対する操作は大域変数 .Em x ではなく、関数 .Em f で宣言された変数 .Em x への操作となります。 .Pp 特殊パラメータのうち局所宣言できるのは .Dq Li - だけです。 .Dq Li - を 局所宣言すると、関数内で set コマンドを用いてシェルオプションを 変更しても、関数が終了するとそれらのオプションは元の値に戻ります。 .Pp .Ic return コマンドの文法は以下のとおりです。 .Bd -ragged -offset indent .Ic return .Op Ar exitstatus .Ed .Pp .Ic return は現在実行中の関数を終了させます。 .Ic return は組み込みコマンドとして実装されています。 .Ss 変数とパラメータ シェルはパラメータの集合を管理しています。名前を持つパラメータを 変数と呼びます。シェルは、起動時にすべての環境変数をシェル変数に取り込みます。 新たな変数は、次の形式によって設定できます。 .Bd -literal -offset indent name=value .Ed .Pp ユーザが設定する変数は、アルファベット、数字、アンダスコア (_) のみ からなる名前を持つ必要があります。また、最初の文字が数字であっては いけません。 パラメータは、以下に示す数字または特殊記号により参照することもできます。 .Ss 位置パラメータ 位置パラメータは、0 より大の数字によって参照されるパラメータです。シェルは 位置パラメータの初期値としてシェルスクリプト名に続く引数を設定します。 組み込みコマンド .Ic set により再設定や消去ができます。 .Ss 特殊パラメータ 特殊パラメータは、以下に挙げる特殊文字のいずれかにより参照される パラメータです。各パラメータの値の説明を各文字の後ろに示します。 .Bl -hang .It Li * 位置パラメータ 1,2,... に展開されます。ダブルクォート文字列内部で展開 される場合、展開結果は各位置パラメータの間を変数 .Ev IFS の先頭の文字 ( .Ev IFS が設定されていない場合は .Aq 空白文字 ) で区切った単一の文字列になります。 .It Li @ 位置パラメータ 1,2,... に展開されます。ダブルクォート引用の内部で展開 される場合、各位置パラメータは別々の引数となります。 もし、位置パラメータが設定されていない場合には、 .Li @ の展開結果は 0 個の引数となります (ダブルクォート引用の内部であっても)。 すなわち、$1 が .Dq abc 、$2 が .Dq def ghi であった場合、 .Qq Li $@ は 次の 2 つの引数に展開されます。 .Bd -literal -offset indent "abc" "def ghi" .Ed .It Li # 位置パラメータの数に展開されます。 -.It Li ? +.It Li \&? 最後に実行したパイプラインの終了ステータスに展開されます。 .It Li - (ハイフン) 現在のオプションフラグ (1 文字オプション名をつないだ文字列) に展開されます。起動時に指定されたもの、組み込みコマンド set で指定した もの、シェルが暗黙に設定したもののすべてを含みます。 .It Li $ 起動されたシェルのプロセス ID に展開されます。 サブシェルも親シェルと同じ値を持ちます。 -.It Li ! +.It Li \&! 現在のシェルが最後にバックグラウンドで実行したコマンドのプロセス ID に 展開されます。パイプラインの場合、パイプラインの最後のコマンドの プロセス ID になります。 .It Li 0 (ゼロ) シェルの名前またはシェルスクリプト名に展開されます。 .El .Ss 単語展開 本節では、単語に対して適用されるさまざまな展開について説明します。あとで 述べるように、すべての展開がすべての単語に対して適用されるわけではありません。 .Pp 単一の単語に対して適用されたチルダ展開、パラメータ展開、コマンド置換、 数式展開、クォート削除の結果は単一のフィールドになります。単一の単語が 複数のフィールドに分割される可能性があるのは、フィールド分割または パス名展開の場合だけです。この規則の唯一の例外は、ダブルクォート中の パラメータ .Li @ の展開です (前述)。 .Pp 単語展開の順序は以下のとおりです。 .Bl -enum .It チルダ展開、パラメータ展開、コマンド置換、数式展開 (これらはすべて 同時に行われます) .It 変数 .Ev IFS の値が空でなければ、(1) の結果の各フィールドに対して フィールド分割が行われる .It パス名展開 ( .Fl f オプションが無効の場合) .It クォート削除 .El .Pp 文字 .Dq Li $ はパラメータ展開、コマンド置換、数式評価を行うきっかけになります。 .Ss チルダ展開 (ユーザのホームディレクトリ名への置換) 引用されていないチルダ文字 .Pq Li ~ で始まる単語は、チルダ展開の対象になります。 チルダ文字からスラッシュ文字 .Pq Li / または単語の終端までのすべての文字がユーザ名 とみなされ、そのユーザのホームディレクトリに置換されます。もしユーザ名が 省略された場合 (たとえば ~/foobar)、チルダ文字は変数 HOME の値 (現在のユーザのホームディレクトリ) に置換されます。 .Ss パラメータ展開 パラメータ展開の形式は以下のとおりです。 .Bd -literal -offset indent ${expression} .Ed .Pp ここで、expression は対応した .Dq Li } までのすべての文字です。対応する .Dq Li } を調べる際に、バックスラッシュ文字によりエスケープされたり、クォート文字に 狭まれた .Dq } や、数式展開に埋め込まれている文字や、コマンド置換や変数展開中に ある文字は調べる対象になりません。 .Pp パラメータ展開の形式のうちもっとも単純なものは以下のとおりです。 .Bd -literal -offset indent ${parameter} .Ed .Pp そのパラメータに値が存在する場合、その値に置き換えられます。 .Pp パラメータ名やシンボルを中括弧 ({}) で囲んでも構いません。この中括弧は、 数字 2 文字以上からなる位置パラメータの場合や、パラメータ名の直後に パラメータ名の一部であるとみなし得る文字が続く場合を除き、 省略可能です。ダブルクォート引用中のパラメータ展開は以下 のようになります。 .Bl -enum .It パラメータ展開を行った結果の単語に対しては、パス名展開は適用されません。 .It パラメータが特殊パラメータ .Li @ の場合を除き、フィールド分割は適用されません。 .El .Pp さらに、以下の形式を用いることにより、パラメータ展開の結果に修正を加える ことができます。 .Bl -tag -width Ds .It Li ${parameter:-word} デフォルト値への置換: パラメータ parameter が設定されていないか空の値 を持つ場合、word を展開した結果に置換されます。さもなければ、パラメー タ parameter の値に置換されます。 .It Li ${parameter:=word} デフォルト値の代入: パラメータ parameter が設定されていないか空の値を持つ場合、word を展開 した結果が parameter に代入されます。最終的にパラメータ parameter の値 に置換されます。位置パラメータや特殊パラメータは、この方法で代入すること はできません。 .It Li ${parameter:?[word]} 空か設定されていないときにエラーとする: パラメータ parameter が設定されていないか空の値を持つ場合、word を展開 した結果 (word が省略された場合にはパラメータが設定されていないことを表す デフォルトのメッセージ) が標準エラー出力に書き出され、 シェルは非 0 の終了ステータスで終了します。 それ以外の場合、パラメータ parameter の値に置換されます。対話的シェルの場合は 必ずしも終了しません。 .It Li ${parameter:+word} 代替値の使用: パラメータ parameter が設定されていないか空の値を持つ場合、空の値に 置換されます。さもなければ、word を展開した結果に置換されます。 .Pp 以上のパラメータ展開において、`:' を用いた場合はパラメータが設定されていない かまたは空の値であることが検査され、`:' を省略するとパラメータが 設定されていないことのみを検査します。 .It Li ${#parameter} 文字列の長さ: パラメータの値の (文字列としての) 長さに置換されます。 .Pp 以下の 4 通りのパラメータ展開は部分文字列切り出し処理を行います。各場合 において、パターンは正規表現ではなく、パターンマッチ記法 ( .Sx シェルパターン の項を参照) が用いられます。パラメータが .Li * または .Li @ の場合、展開の結果 がどうなるかは規定しません (unspecified)。 パラメータ展開全体をダブルクォートで囲んでも パターンは引用されません。中括弧のなかで引用することにより パターンを引用することができます。 .It Li ${parameter%word} 最短後置パターンの削除: まず word が展開され、その結果をパターンとして扱います。 パラメータ parameter の右から、パターンに一致する最短の部分を削除した文字列に 置換されます。 .It Li ${parameter%%word} 最長後置パターンの削除: まず word が展開され、その結果をパターンとして扱います。 パラメータ parameter の右から、パターンに一致する最長の部分を削除した文字列に 置換されます。 .It Li ${parameter#word} 最短前置パターンの削除: まず word が展開され、その結果をパターンとして扱います。 パラメータ parameter の左から、パターンに一致する最短の部分を削除した文字列に 置換されます。 .It Li ${parameter##word} 最長前置パターンの削除: まず word が展開され、その結果をパターンとして扱います。 パラメータ parameter の左から、パターンに一致する最長の部分を削除した文字列に 置換されます。 .El .Ss コマンド置換 コマンド置換により、コマンド名自身をコマンドの出力で置き換えることができます。 コマンド置換は、以下のように、コマンド command を囲った場合、 .Bd -literal -offset indent $(command) .Ed .Pp またはバッククォートバージョン .Bd -literal -offset indent `command` .Ed .Pp とした場合に行なわれます。 シェルは、コマンド command をサブシェルの環境で実行し、command が標準出力 に出力したものから最後の改行文字を削除した結果で置換します。 最後以外の 改行は削除しません。ただし、フィールド分割の際に、 .Ev IFS の値や引用のされかたによっては、 ここで残った改行文字が結局は空白に置換されることもあります。 .Ss 数式展開 数式展開とは、数式を評価し、その値に置換する仕組みです。数式展開の形式は以下 のとおりです。 .Bd -literal -offset indent $((expression)) .Ed .Pp 数式 expression は、その中のダブルクォート文字が特別扱いを受けないという 点を除いては、ダブルクォート文字で囲まれている文字列と同様に扱われます。 シェルは expression 中のすべてのトークンにパラメータ展開、コマンド置換、 クォート削除を適用します。 .Pp 次にシェルはその結果を数式として扱い、その値に置換します。 .Ss 空白文字による分割 (フィールド分割) パラメータ展開、コマンド置換、数式展開のあと、シェルは展開結果を調べて、 ダブルクォートの外にある部分に対してフィールド分割を適用します。 その結果、複数のフィールドになる場合もあります。 .Pp シェルは、変数 .Ev IFS に設定されている文字それぞれ区切り文字とみなし、 パラメータ展開の結果、およびコマンド置換の結果をフィールドに分割します。 .Ss パス名展開 (ファイル名生成) .Fl f フラグが設定されていなければ、フィールド分割が行われたあと、ファイル名生成 が行われます。各単語は、スラッシュで区切られたパターンの列であるとみなさ れます。パス名展開処理において、単語は、条件を満たすファイル すべてのファイル名の列で置換されます。この各ファイル名は、単語の 各パターン部分を、そのパターンに一致する文字列に置換することで 生成されるものです。 これには 2 つの制限があります: まず、パターンはスラッシュを含む文字列には 一致しません。次に、パターンは、そのパターンがピリオドで始まらないかぎり、 ピリオドで始まる文字列に一致しません。 次節では、パス名展開と .Ic case コマンドで用いられるパターンについて説明します。 .Ss シェルパターン パターンは、通常の文字とメタキャラクタからなります。通常の文字は、 その文字そのものに一致します。 メタキャラクタは -.Dq Li ! , +.Dq Li \&! , .Dq Li * , -.Dq Li ? , +.Dq Li \&? , .Dq Li [ です。これらの文字を引用 すると、各々の特殊な意味を失います。コマンド置換や変数置換において、 ドル記号やバッククォート文字がダブルクォート文字の中にない場合には、 変数の値やコマンドの出力の中に、これらの特殊な文字が存在するかどうかが 調べられ、それらがあれば、メタキャラクタとして扱われます。 .Pp アスタリスク文字 .Pq Li * は、どのような文字列とも一致します。 クエスチョンマーク文字 -.Pq Li ? +.Pq Li \&? は、任意の文字 1 文字と一致します。 左大括弧 .Pq Li [ は文字クラスを開始します。 文字クラスの最後は右大括弧 .Pq Li \&] です。 .Dq Li \&] がない場合は、 .Dq Li [ は文字そのものに一致し、文字クラスの開始とは見なされません。文字 クラスは大括弧内に出現するすべての文字に一致します。 マイナス記号を用いれば、文字の範囲を指定することができます。 文字クラスの最初にエクスクラメーションマーク -.Pq Li ! +.Pq Li \&! を置くことで、 文字クラスの意味を反転させることができます。 .Pp 文字クラスに文字 -.Dq Li \] +.Dq Li \&] を含めるには、 -.Dq Li \] +.Dq Li \&] を文字クラスの最初 ( -.Dq Li ! +.Dq Li \&! を置く場合はそのあと) に置きます。 文字クラスに .Dq Li - を含めるときも同様で、 リストの最初もしくは最後に置きます。 .Ss シェル組み込みコマンド 本節では、別プロセスでは実行できない処理を行なうために組み込まれている コマンドを列挙します。 さらに、組み込みバージョンの .Xr printf 1 が効率を上げるために提供されています。 .Bl -tag -width Ds .It Ic : 終了ステータス 0 (真) を返すヌルコマンドです。 .It Ic . Ar file 指定されたファイル file に記述されたコマンドがシェルに読み込まれ、 実行されます。 .Ar file に .Dq / 文字を含む場合、その通りに扱われます。 そうでなければ、シェルは .Ev PATH を使用して、ファイルを検索します。 .Ev PATH を使用しても見付からない場合、カレントディレクトリを検索します。 -.It Ic alias Op Ar name ... -.It Ic alias Op Ar name=string ... +.It Ic alias Op Ar name ...\& +.It Ic alias Op Ar name=string ...\& .Ar name=string が指定されている場合、シェルは名前 .Ar name を持つ値 .Ar string のエイリアスを定義します。単に .Dq name だけが指定された場合、 エイリアス .Dq name の値が表示されます。引数が指定されない場合、 .Ic alias は定義されているすべてのエイリアスの名前と値を表示します ( .Ic unalias も参照)。 -.It Ic bg Op Ar job ... +.It Ic bg Op Ar job ...\& 指定されたジョブ (指定されなかった場合は現在のジョブ) を、 続けてバックグラウンドで実行させます。 -.It Ic command Ar cmd Op Ar arg ... +.It Ic command Ar cmd Op Ar arg ...\& 指定された組み込みコマンド .Ar cmd を実行します。 シェル関数を同名の組み込みコマンドでオーバライドしたい場合に有用です。 .It Ic cd Op Ar directory 指定されたディレクトリ .Ar directory に移動します。 .Ar directory 無指定時は .Ev HOME で指定されるディレクトリに移動します。 .Ar directory がカレントディレクトリのサブディレクトリとして見付からない場合 (かつ .Dq Li / , .Dq Li ./ , .Dq Li ../ のいずれでも開始しない場合)、指定された .Ar directory を .Ev CDPATH 変数中のディレクトリリストから検索します。 .Ar CDPATH の形式は .Ev PATH と同様です。対話的シェルでは、ユーザ が指定したディレクトリと異なる場所に移動した場合、 .Ic cd は、移動先のディレクトリ名を表示します。 これは、 .Ev CDPATH の機構が動作した場合と、シンボリックリンクを辿った場合に発生します。 .It Xo .Ic echo .Op Fl en .Ar string .Xc .Ar string の後に改行文字を付けて、標準出力に表示します。 .Bl -tag -width Ds .It Fl n 最後の改行文字を抑制します。 .It Fl e C 風のバックスラッシュエスケープシーケンスを処理します。 .Ic echo は次の文字エスケープを理解します: .Bl -tag -width Ds .It \ea 警告 (端末ベルを鳴らす) .It \eb バックスペース .It \ec 最後の改行文字を抑制します (改行文字が最後の文字でない場合、行が縮んでしまうという副作用があります) .It \ee ESC 文字 (ASCII 0x1b) .It \ef フォームフィード .It \en 改行 .It \er 復改 .It \et 水平タブ .It \ev 垂直タブ .It \e\e バックスラッシュ文字 .It \e0nnn (この 0 はゼロです) 8 進数値が nnn である文字 .El .Pp .Ar string がクォートで括られていない場合、 シェルからエスケープするためには、 バックスラッシュ自身をバックスラッシュでエスケープする必要があります。 例えば次の通りです: .Bd -literal -offset indent $ echo -e "a\evb" a b $ echo -e a\e\evb a b $ echo -e "a\e\eb" a\eb $ echo -e a\e\e\e\eb a\eb .Ed .El -.It Ic eval Ar string ... +.It Ic eval Ar string ...\& 指定されたすべての引数を空白で結合し、その結果を解析し直してから コマンドとして実行します。 -.It Ic exec Op command Op arg ... +.It Ic exec Op command Op arg ...\& .Ar commmand が省略されない場合、そのシェルプロセスは指定されたプログラムに 置き換えられます ( .Ar command は、シェル組み込みコマンドや関数ではない、本物の プログラムでなければなりません)。 .Ic exec コマンドにおけるリダイレクトは、 永久性を持つと見なされ、 .Ic exec コマンド完了後にも引き続き効力を持ちます。 .It Ic exit Op exitstatus シェルを終了します。 .Ar exitstatus が指定された場合、これはシェルの終了ステータスになります。 そうでない場合、直前に実行したコマンドの 終了ステータスがシェルの終了ステータスとなります。 -.It Ic export Ar name ... +.It Ic export Ar name ...\& それ以後にシェルから実行されるコマンドの環境に、指定された名前の変数が 含まれるようにします (変数のエクスポート)。 変数のエクスポートを取り消す唯一の方法は、変数を .Ic unset することです。 以下のように記述することで、エクスポートすると 同時に変数の値を設定することができます。 .Bd -literal -offset indent export name=value .Ed .Pp 引数を指定しない場合、すべてのエクスポートされている名前と値が表示されます。 .It Xo .Ic fc .Op Fl e Ar editor .Op Ar first Op Ar last .Xc .It Xo .Ic fc .Fl l .Op Fl nr .Op Ar first Op Ar last .Xc .It Xo .Ic fc .Fl s .Op Ar old=new .Op Ar first .Xc .Ic fc 組み込みコマンドは、対話的シェルにそれ以前に入力されたコマンドの内容を、 表示、編集、再実行します。 .Bl -tag -width Ds .It Fl e Ar editor 編集に際し、指定されたエディタ .Ar editor を使用します。 .Ar editor は変数 .Ev PATH を通して検索できるコマンド名です。 .Fl e が指定されなかった場合は、変数 .Ev FCEDIT の値が用いられます。 .Ev FCEDIT が設定されていないか空に設定されている場合は .Ev EDITORの値が用いられ、それも設定されていないか空ならば .Xr ed 1 が用いられます。 .It Fl l No (ell) (小文字のエル) エディタを起動せずに、コマンド履歴の内容を一覧出力します。 パラメータ first と last で指定した範囲のコマンドが順に (出力の順番は .Fl r オプションの影響を受けます) 出力されます。 各コマンドの出力の際にはコマンド番号が付加されます。 .It Fl n .Fl l で一覧出力する際にコマンド番号を付加しません。 .It Fl r コマンド一覧時 ( .Fl l オプション指定時) や編集時 ( .Fl l も .Fl s も指定されなかった場合) の順序を反転します。 .It Fl s エディタを起動せずにコマンドを再実行します。 .It Ar first .It Ar last 一覧出力や編集の対象となるコマンドを選択します。アクセス可能なコマンド の数は変数 .Ev HISTSIZE の値で決まります。 .Ar first または .Ar last 、または両方の値は、以下のいずれかの形式で指定します。 .Bl -tag -width Ds .It Ar [+]num 正の数で、コマンド番号を指定します。コマンド番号は .Fl l オプションで表示させて調べることができます。 .It Ar -num 負の数は、 .Ar num 個だけ現在から遡ったコマンドを指定します。たとえば、 -1 は直前に実行されたコマンドを指定します。 .It Ar string 文字列 string は、過去に実行されたコマンドのうち、 その文字列から始まる最新のものを指定します。 もし .Fl s オプションが指定されて .Ar old=new が指定されていなければ、 最初のオペランドにイコール記号 を含めることはできません。 .El .El .Pp .Ic fc コマンドの実行にあたり、以下の環境変数の影響を受けます。 .Bl -tag -width Ds .It Ev FCEDIT 使用するエディタ名 .It Ev HISTSIZE アクセス可能なコマンド数 .El .It Ic fg Op job 指定されたジョブ .Ar job または現在のジョブをフォアグラウンドに移動します。 .It Ic getopts Ar optstring Ar var POSIX に準拠した .Ic getopts コマンドです。 この .Ic getopts コマンドにより、以前の .Xr getopt 1 コマンドの必要性は減少しました。 最初の引数は文字の列です。各文字の後ろにはコロンをつけることができ、 そのオプションが引数をとることを指示します。 指定された変数に、解析され見つかったオプションが設定されます。 見つかったオプションの次の引数のインデックスはシェル変数 .Ev OPTIND に格納されます。 あるオプションが引数をとる場合、その引数はシェル変数 .Ev OPTARG に置かれます。 有効でないオプションに出くわすと、変数 .Ev var には -.Dq Li ? +.Dq Li \&? がセットされます。 getopts はオプション群の末尾に到達すると偽の値 (1) を返します。 .It Xo .Ic hash .Op Fl rv -.Op Ar command ... +.Op Ar command ...\& .Xc シェルは、コマンドの位置を保持するハッシュテーブルを維持管理しています。 .Ic hash コマンドに引数が指定されなかった場合、このテーブルの内容が出力されます。 最後に .Ic cd コマンドが実行されてから参照されていない項目には アスタリスク文字 が表示されます。 この項目は無効になっているかもしれません。 .Pp 引数を指定した場合、 .Ic hash コマンドは指定した .Ar command をハッシュテーブルから削除し ( .Ar command が関数ではない場合)、その後でそのコマンドを検索します。 .Fl v オプションを指定した場合、 .Ic hash は発見したコマンドの位置を表示します。 .Fl r オプションを指定した場合、 .Ic hash は関数以外のすべてのエントリをハッシュテーブルから削除します。 .It Ic jobid Op Ar job ジョブ .Ar job 中の各プロセスのプロセス ID を表示します。引数 .Ar job が 省略された場合、現在のジョブに対して処理を行います。 .It Ic jobs バックグラウンドで走行中の、現在のシェルプロセスの子プロセスの 一覧を出力します。 .It Ic pwd カレントディレクトリのパスを表示します。組み込みコマンド版は カレントディレクトリ名を覚えており、表示するときに再計算しないので、 組み込みコマンド版は同名のプログラムとは異なった表示をする場合があります。 このため処理は高速ですが、カレントディレクトリ の名前を変更した場合でも、組み込み版の .Xr pwd 1 は以前のディレクトリ名を表示し続けます。 .It Xo .Ic read .Op Fl p Ar prompt .Op Fl t Ar timeout .Op Fl er -.Ar variable ... +.Ar variable ...\& .Xc .Fl p オプションが指定され、かつ標準入力が端末の場合、 .Ar prompt をプロンプトとして表示します。 そして標準入力から 1 行入力します。行端の改行文字を削除し、行を前述の .Sx 空白文字による分割 (フィールド分割) の方法に従って分割し、各単語を、valiable... で指定する各変数に 順に代入します。 もし、指定された変数の数より分割された単語の数が多ければ、最後の変数に 残りの単語すべて ( .Ev IFS の文字を区切りにしてそれらも一緒に) が代入されます。 分割された単語の数より多くの変数が指定されていたなら、 余った変数には空文字列が設定されます。 .Pp .Fl r オプションが指定された場合を除き、バックスラッシュは特別に扱われます。 バックスラッシュ文字が改行文字の直前にある場合、 バックスラッシュ文字と改行文字は削除されます。 その他の文字の直前にバックスラッシュがある場合、バックスラッシュは削除され、 文字が .Ev IFS に含まれていても、 .Ev IFS の文字でないかのように扱われます。 .Pp .Fl t オプションが指定され、かつ入力がなされる前に .Ar timeout が経過すると、 .Ic read コマンドは値を割当てずに戻ります。 .Ar timeout 値の後にはオプションで .Dq s , .Dq m , .Dq h のいずれかの一文字 を付けることが出来、それぞれ秒・分・時間を陽に指定します。 どれも指定しない場合には .Dq s であるものとします。 .Pp .Fl e オプションは、古いスクリプトとの後方互換性のためだけにあります。 -.It Ic readonly Ar name ... +.It Ic readonly Ar name ...\& .Ar name で指定された変数を読み出し専用とし、あとで値を変更したり unset した りすることができないようにします。以下のように記述することで、 変数を読み出し専用と宣言するのと同時に値を設定することも可能です。 .Bd -literal -offset indent readonly name=value .Ed .Pp 引数が指定されない場合、 .Ic readonly コマンドは、読み出し専用になっている変数の名前の一覧を表示します。 .It Xo .Ic set .Op Fl /+abCEefIimnpTuVvx .Op Fl /+o Ar longname .Op Fl c Ar string -.Op Fl - Ar arg ... +.Op Fl - Ar arg ...\& .Xc .Ic set コマンドは 3 通りの異なった機能を持ちます。 .Bl -item .It 引数を指定しなかった場合、短かい形式でも長い .Dq Fl /+o Ar longname という形式であっても、 .Sx 引数リストの処理 の節で説明されているように、指定されたオプションの設定またはクリアを行います。 .It .Dq Fl - オプションが指定された場合、 .Ic set はシェルの位置パラメータを、引き続く引数で置き換えます。 .Dq Fl - オプションの後に引数が続かない場合、 すべての位置パラメータはクリアされ、 .Dq Li shift $# コマンドを実行するのと等価になります。 位置置換パラメータとして引数を指定するとき、 .Dq Fl - フラグは省略可能です。 これはお勧めできません。 なぜなら、最初の引数はマイナス記号 .Pq Li - またはプラス記号 .Pq Li + で開始するかもしれないからです。 これらは、 .Ic set コマンドが、オプションの有効化または無効化の要求であると解釈してしまいます。 .El .It Ic setvar Ar variable Ar value 変数 .Ar variable に値 .Ar value を代入します。( .Ic setvar は、関数内で、パラメータとして渡された名前を持つ 変数に値を代入するためのものです。 一般に、 .Ic setvar を使うよりも .Bd -literal -offset indent variable=value .Ed と書くほうが望ましいといえます。) .It Ic shift Op Ar n 位置パラメータを .Ar n 回シフトします。 .Ar n を指定しない場合 1 回シフトします。 1 回のシフトにより、$2 の値が $1 に、$3 の 値が $2 に代入されます (以下同様)。また、$# の値は 1 減少します。 位置パラメータがない場合、shift は何もしません。 .It Xo .Ic trap .Op Ar action -.Ar signal ... +.Ar signal ...\& .Xc シェルが指定されたシグナル .Ar signal を受けとったときに、 .Ar action を解析し実行するように設定します。 シグナルはシグナル番号で指定します。 .Ar action は空文字列に したり、省略したりすることができます。空文字列の場合、指定されたシグナルは 無視され、省略した場合は、指定したシグナルを受けとったときデフォルトの処理を 行ないます。シェルがサブシェルを起動するとき、trap で指定された (かつ 無視するように設定されていない) シグナルの動作をデフォルトの処理に戻します。 シェルが起動したときにすでに無視されるように設定されていたシグナルに対して .Ic trap コマンドを使用しても効果はありません。 -.It Ic type Op Ar name ... +.It Ic type Op Ar name ...\& 各 .Ar name をコマンドとして解釈し、コマンド検索の結果を出力します。出力さ れる結果は以下のものがあります。シェルのキーワード、エイリアス、シェル の組み込みコマンド、コマンド、痕跡つきエイリアス (tracked alias)、最後に not found (見つからず) があります。エイリアスについては、エイリアス展開 の結果が出力されます。コマンドと痕跡つきエイリアスについては、そのコマンドの 完全なパス名が印刷されます。 .It Xo .Ic ulimit .Op Fl HSabcdflmnust .Op Ar limit .Xc リソースのリミット値 (リミット値については .Xr getrlimit 2 参照) を設定あるいは表示します。 .Ar limit が指定されている場合、指定されたリソースが設定されます。 それ以外の場合、現在のリソース設定値が表示されます。 .Pp .Fl H が指定された場合、ハードリミットが設定ないし表示されます。 ハードリミット値を下げることは誰にでもできますが、 それを増やすことができるのはスーパユーザだけです。 オプション .Fl S を指定した場合はソフトリミットになります。 リミット値を表示する場合、 .Fl S か .Fl H のいずれか一方だけしか指定できません。 デフォルトでは、表示はソフトリミット、設定はハード/ソフトリミット両方です。 .Pp オプション .Fl a を指定すると .Ic ulimit コマンドは全リソースの設定値を表示します。 この場合、パラメータ .Ar limit は指定できません。 .Pp この他のオプションは、表示あるいは設定するリソースの種類を指定するものです。 これらは互いに排他的です。 .Bl -tag -width Ds .It Fl b Ar sbsize ソケットバッファサイズの最大値。バイト単位。 .It Fl c Ar coredumpsize コアダンプファイルの最大サイズ。512 バイトのブロック単位。 .It Fl d Ar datasize プロセスのデータセグメントの最大サイズ。キロバイト単位。 .It Fl f Ar filesize ファイルの最大サイズ。512 バイトブロック単位。 .It Fl l Ar lockedmem プロセスがロックできるメモリサイズの最大値。キロバイト単位。 .It Fl m Ar memoryuse プロセスの常駐セットサイズの最大値。キロバイト単位。 .It Fl n Ar nofiles あるプロセスがオープンできるファイル記述子の最大数。 .It Fl s Ar stacksize スタックセグメントサイズの最大値。キロバイト単位。 .It Fl t Ar time 各プロセスで消費できる CPU 時間の最大値。秒単位。 .It Fl u Ar userproc このユーザ ID で同時に走らせうる最大プロセス数。 .El .It Ic umask Op Ar mask ファイル作成マスクの値 ( .Xr umask 2 を参照) を、 .Ar mask で指定された 8 進数の値に設定します。引数が 省略された場合、現在のマスクの値が表示されます。 .It Xo .Ic unalias .Op Fl a .Op Ar name .Xc .Ar name が指定された場合、指定された名前のエイリアスを削除します。 .Fl a オプションが指定された場合、すべてのエイリアスを削除します。 -.It Ic unset Ar name ... +.It Ic unset Ar name ...\& 指定された変数または関数を unset し、エクスポートされていない状態にします。 指定された名前の変数も関数も存在する場合、変数と関数の両方が unset されます。 .It Ic wait Op Ar job 指定されたジョブ .Ar job が終了するのを待ち、ジョブ内の最後のプロセスの 終了ステータスを返します。引数が省略された場合、すべてのジョブが終了する まで待ち、終了ステータス 0 を返します。 .El .Ss コマンド行編集 .Nm が端末から対話的に実行されている場合、現在入力中のコマンドおよび コマンド履歴 ( .Sx 組み込みコマンド の .Ic fc 参照) を vi モードのコマンド行編集機能 により編集することができます。 このモードでは、vi のマニュアルに示されているコマンドのサブセットを用います。 コマンド .Dq Li set -o vi (または .Dq Li set -V ) により vi モードが有効になり、 .Nm は vi の挿入モードに移行します。 vi モード中では、 挿入モードとコマンドモードの両方を自由に切り替えることが可能です。 vi モードは vi と同様であり、 .Aq ESC キー によりコマンドモードに移行し、コマンドモードで .Aq return キーを叩くことで、 行の内容がシェルに渡されます。 .Pp 同様に、コマンド .Dq Li set -o emacs により emacs 風のコマンド行編集機能の サブセットを使うことができるようになります。 .Sh 関連項目 .Xr builtin 1 , .Xr echo 1 , .Xr expr 1 , .Xr pwd 1 , .Xr printf 1 , .Xr test 1 .Sh 歴史 .Nm コマンドは、 .At V.1 で登場しました。 .\" -Amended by N.Kumagai 97.12.30 diff --git a/ja_JP.eucJP/man/man1/sleep.1 b/ja_JP.eucJP/man/man1/sleep.1 index 6edcf8e643..6995b885b4 100644 --- a/ja_JP.eucJP/man/man1/sleep.1 +++ b/ja_JP.eucJP/man/man1/sleep.1 @@ -1,129 +1,129 @@ .\" Copyright (c) 1990, 1993, 1994 .\" The Regents of the University of California. All rights reserved. .\" .\" This code is derived from software contributed to Berkeley by .\" the Institute of Electrical and Electronics Engineers, Inc. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)sleep.1 8.3 (Berkeley) 4/18/94 -.\" %FreeBSD: src/bin/sleep/sleep.1,v 1.15 2000/03/02 14:53:22 sheldonh Exp % +.\" %FreeBSD: src/bin/sleep/sleep.1,v 1.15.2.1 2000/12/15 17:47:25 ru Exp % .\" .\" jpman %Id: sleep.1,v 1.2 1997/05/04 13:38:26 horikawa Stab % .\" .Dd April 18, 1994 .Dt SLEEP 1 .Os .Sh 名称 .Nm sleep .Nd 一定の時間実行を停止する .Sh 書式 .Nm .Ar seconds .Sh 解説 .Nm コマンドは、少なくとも .Ar seconds で指定した秒数だけ実行を停止します。 .Pp .Nm コマンドがシグナルを受信すると標準の動作を行います。 .Sh 実装に関する注 この実装においては、 .Dv SIGALRM シグナルは特別には扱われません。 .Pp .Nm コマンドは、非整数の数値で指定された秒数を受け付けて、これを尊重します。 .Po 小数点として -.Ql \&. +.Ql .\& 文字を使用します .Pc 。 .Bf Sy これはポータブルではない拡張です。 これを使用するシェルスクリプトは、 他のシステムで正しく実行できないことを、ほぼ保証できます。 .Ef .Sh 診断 .Nm コマンドは終了時に以下の値のいずれかを返します。 .Bl -tag -width flag .It Li \&0 正常終了した場合。 .It Li \&>\&0 エラーが起きた場合。 .El .Sh 使用例 あるコマンドの実行を .Va x 秒後に設定したい場合: .Pp .Dl (sleep 1800; sh command_file >& errors)& .Pp 上記の例では、command_file で指定したスクリプトを実行する前に 30 分間待ちます( .Xr at 1 ユーティリティの項を参照)。 .Pp あるコマンドを( .Xr csh 1 を使って)繰り返し実行したい場合: .Pp .Bd -literal -offset indent -compact while (1) if (! -r zzz.rawdata) then sleep 300 else foreach i (`ls *.rawdata`) sleep 70 awk -f collapse_data $i >> results end break endif end .Ed .Pp このようなスクリプトが必要とされるのは以下のような場合でしょう: 現在実行中のプログラムが、一連のファイル群を処理するのに予想以上の 時間を必要としていて、このプログラムが処理結果をファイル (zzz.rawdata)に出力したらすぐに別のプログラムを起動して そのファイルを処理したほうがよい場合があります。 上記のスクリプトでは、zzz.rawdata が生成されたかどうかを 5 分おきに確認し、生成が確認されたら 70 秒待って awk ジョブを 実行する、という操作を繰り返します。 .Sh 関連項目 .Xr nanosleep 2 , .Xr sleep 3 .Sh 規格 .Nm コマンドは、おそらく .St -p1003.2 互換です。 diff --git a/ja_JP.eucJP/man/man1/startslip.1 b/ja_JP.eucJP/man/man1/startslip.1 index 0b4680d222..0aa840ff9b 100644 --- a/ja_JP.eucJP/man/man1/startslip.1 +++ b/ja_JP.eucJP/man/man1/startslip.1 @@ -1,215 +1,216 @@ .\" Copyright (c) 1990, 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. .\" .\" @(#)startslip.1 8.1 (Berkeley) 6/5/93 -.\" %FreeBSD: src/sbin/startslip/startslip.1,v 1.16.2.1 2000/12/08 14:04:20 ru Exp % +.\" %FreeBSD: src/sbin/startslip/startslip.1,v 1.16.2.2 2000/12/18 15:38:36 ru Exp % .\" .\" jpman %Id: startslip.1,v 1.3 1997/08/19 03:06:09 h-nokubi Stab % .\" .Dd June 5, 1993 .Dt STARTSLIP 1 .Os BSD 4.4 .Sh 名称 .Nm startslip .Nd 電話をかけ、slip サーバにログインする .Sh 書式 .Nm .Op Fl d .Op Fl b Ar speed [ .Fl s Ar string1 .Op Fl s Ar string2 Op Ar ... ] .Op Fl h .Op Fl l .Op Fl L .Op Fl A Ar annexname .Op Fl U Ar upscript .Op Fl D Ar downscript .Op Fl t Ar script_timeout .Op Fl W Ar maxtries .Op Fl w Ar retry_pause .Op Fl K Ar keepalive .Op Fl O Ar outfill .Op Fl S Ar unit .Ar device user password .Sh 解説 .Nm は指定された .Ar device をオープンします。 ひとたびキャリアが確認されると(モデム制御が有効にされている場合)、 .Nm は指定された .Ar user および .Ar password でのログインを試みます。 Annex オプション ( .Fl A 参照) が指定されない限り、 標準的な login: および Password: の方式を想定します。 成功すると、 .Nm はその device を slip の回線規約に設定し、 .Ar upscript を呼び出してウェイトモードに入ります。 キャリアが落ちる (モデム制御有効の場合) あるいは .Dv SIGHUP シグナルがに送られると、 .Nm は device をクローズし、 .Ar downscript を呼び出し、ダイヤルアップとログインのシーケンスを繰り返し試みます。 .Dv SIGTERM シグナルが送られると、 .Nm は device をクローズし、 .Ar downscript を呼び出し、そして終了します。 同一 device に対して .Nm が 2 回呼び出されると、処理を行う前に ひとつめの .Nm が .Dv SIGTERM シグナルによって kill されます。 .Pp 以下のオプションを利用可能です: .Bl -tag -width indent .It Fl d 行おうとしている処理に関するデバッグ情報を出力します。 .It Fl b Ar speed .Ar device に用いるボーレートを決定します。デフォルトは 9600 です。 .It Fl t Ar script_timeout ログインスクリプトのタイムアウトを秒単位で指定します。デフォルトは 90 です。 .It Fl w Ar retry_pause 接続再試行の間の待ち時間を秒単位で指定します(再試行のたびに長くなります)。 デフォルトは 60 です。 .It Fl W Ar maxtries 一つのセッション内で接続再試行する最大回数を設定します。 デフォルトは 6 回です。0 を指定すると無限回という意味になります。 .It Fl s Ar stringN オプション文字列 .Ar stringN を .Ar device に書き出します。改行は自動的に付加されます。 ダイヤルアップモデムの場合、 この文字列を用いてダイヤルシーケンスを指定します。 デフォルトでは文字列は全く書き出しません。 複数個の .Fl s Ar stringN 引数を指定して、例えばいくつかのホストの電話番号を 接続試行毎に切り替えるように指定できます。 .It Fl A Ar annexname Xylogics の Annex box に接続しているものとみなし、引数 .Ar user および .Ar password を用いて適切なダイアログを行います。引数 .Ar annexname は Annex プロンプトとマッチさせて接続が確立したことを判断するのに 用いる文字列です。 .It Fl h .Ar device に対してハードウェアフロー制御 (CTS/RTS) を用います。 デフォルトではフロー制御は行いません。 .It Fl l .Ar device に対してのモデム制御 (キャリアを待つ およびキャリアドロップの検出) を 無効化します。 デフォルトではモデム制御は有効になっています。 .It Fl U Ar upscript SLIP インタフェースが接続されたときに実行するスクリプトを指定します。 このスクリプトには .Xr ifconfig 8 , .Xr route 8 や、その他適切なコマンドを含めることが できます。 スクリプトには "slX up" が引数として渡されます。 デフォルトは .Pa /sbin/ifconfig です。 ダイヤルシーケンス番号 ( .Fl s 参照) は環境変数 .Ev LINE を通じて渡されます。 .It Fl D Ar downscript SLIP インタフェースが切断されたときに実行するスクリプトを指定します。 スクリプトには引数として "slX down" が渡されます。 デフォルトは .Pa /sbin/ifconfig です。 ダイヤルシーケンス番号 ( .Fl s 参照) は環境変数 .Ev LINE を通じて渡されます。 .It Fl K Ar keepalive SLIP の "keep alive" タイムアウトの秒数を設定します。 この時間内に FRAME_END を受信しなければ、再接続が行われます。 向こう側からのアクティブな "out fill" タイムアウトを期待します。 デフォルトではタイムアウトなしです。 .It Fl O Ar outfill SLIP の "out fill" タイムアウトの秒数を設定します。 この時間内に FRAME_END を少なくとも 1 回送信するようにします。 向こう側で "keep alive" タイムアウトが設定されている必要があります。 デフォルトではタイムアウトなしです。 .It Fl S Ar unit SLIP ユニットナンバを直接設定します。 2 つのインタフェースが同一のナンバを使っていることはチェックしないので、 注意して使用して下さい。 デフォルトではダイナミックな割り当てを行います。 .It Fl L UUCP 形式のデバイスロックを行います。 既に UUCP ロックを行っている外部プログラムから .Nm を実行する場合以外は、これが必要です。 デフォルトの場合、そのようなプログラムを満足させる UUCP ロックは行いません。 .El .Sh 関連ファイル .Bl -tag -width /var/run/startslip..pid -compact .It Pa /var/run/startslip..pid PID がここに格納されます。 .It Pa /usr/share/examples/startslip/* +.El .Sh 関連項目 .Xr uustat 1 , .Xr slattach 8 , .Xr sliplogin 8 .Sh 歴史 .Nm は .Bx 4.4 で登場しました。 diff --git a/ja_JP.eucJP/man/man1/stty.1 b/ja_JP.eucJP/man/man1/stty.1 index bf177f6f53..9b6aa79c74 100644 --- a/ja_JP.eucJP/man/man1/stty.1 +++ b/ja_JP.eucJP/man/man1/stty.1 @@ -1,530 +1,530 @@ .\" Copyright (c) 1990, 1993, 1994 .\" The Regents of the University of California. All rights reserved. .\" .\" This code is derived from software contributed to Berkeley by .\" the Institute of Electrical and Electronics Engineers, Inc. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)stty.1 8.4 (Berkeley) 4/18/94 -.\" %FreeBSD: src/bin/stty/stty.1,v 1.13.2.1 2000/12/08 13:34:41 ru Exp % +.\" %FreeBSD: src/bin/stty/stty.1,v 1.13.2.2 2000/12/15 17:47:25 ru Exp % .\" .\" jpman %Id: stty.1,v 1.2 1997/06/05 04:05:59 yugawa Stab % .Dd April 18, 1994 .Dt STTY 1 .Os .Sh 名称 .Nm stty .Nd 端末の設定を行なう .Sh 書式 .Nm .Op Fl a | Fl e | Fl g .Op Fl f Ar file .Op operands .Sh 解説 .Nm は、標準入力になっているデバイスの端末属性を設定もしくは表示する プログラムです。オプションや引数を指定しなかった場合、 設定されている属性の一部や、デフォルト値と違う値が設定されている属性 を表示します。 指定した場合は、指定された引数に従って端末の状態を変更します。 ターミナルの種類によっては相互に排他的な引数の組み合わせもあります。 .Pp オプションとしては以下のものがあります。 .Bl -tag -width indent .It Fl a .St -p1003.2 に規定された形式で、 現在の端末属性をすべて標準出力に出力します。 .It Fl e .Tn BSD の伝統的な ``all'' や ``everything'' の形式で、 現在の端末属性をすべて標準出力に出力します。 .It Fl f 標準入力ではなく、 .Ar file で指定された端末を使います。 このファイルは .Fn open 関数に .Dv O_NONBLOCK フラグを付けてオープンされるので、端末の設定や表示をブロックされず に行なうことができます。 .It Fl g 端末変更後に端末の状態を復帰させられるように、 .Nm の引数として指定できる形式で、現在の端末属性を標準出力に 出力します。 この形式は .St -p1003.2 に規定されています。 .El .Pp 端末属性の設定には、以下の引数が使えます。 .Ss 制御モード: .Pp 制御モードのフラグは端末と関連するハードウェアの属性 に影響します。これは termios 構造体の c_cflag に相当します。 .Bl -tag -width Fl .It Cm parenb Pq Fl parenb パリティ生成および検出を有効 (無効) にします。 .It Cm parodd Pq Fl parodd 奇数パリティ (偶数パリティ) にします。 .It Cm cs5 cs6 cs7 cs8 可能なら 1 文字のビット幅を設定します。 .It Ar number 可能なら、端末のボーレートを .Ar number に設定します。0 を指定した場合は、モデムの制御を切ります。 .It Cm ispeed Ar number 可能なら、入力のボーレートを .Ar number に設定します。0 を設定した場合は、出力のボーレートと同じ値に設定されます。 .It Cm ospeed Ar number 可能なら、出力のボーレートを .Ar number に設定します。0 を設定した場合は、モデムの制御を切ります。 .It Cm speed Ar number .Cm ispeed と .Cm ospeed の両方を .Ar number に設定します。 .It Cm hupcl Pq Fl hupcl そのデバイスをオープンしているプロセスがクローズ処理を行ったとき、ほか にこのデバイスをオープンしているプロセスがなければ、モデムの制御機能に より切断処理を行います (行いません)。 .It Cm hup Pq Fl hup hupcl .Pq Fl hupcl と同じです。 .It Cm cstopb Pq Fl cstopb ストップビットを 2 ビット (1 ビット) にします。 .It Cm cread Pq Fl cread 受話器を有効 (無効) にします。 .It Cm clocal Pq Fl clocal 回線に対してモデム制御が不要である (必要である) とみなします。 .It Cm crtscts Pq Fl crtscts RTS/CTS フロー制御を有効 (無効) にします。 .El .Ss 入力モード: これは termios 構造体の c_iflag に相当します。 .Bl -tag -width Fl .It Cm ignbrk Pq Fl ignbrk 入力のブレーク信号を無視します (無視しません)。 .It Cm brkint Pq Fl brkint ブレークを受信したとき、シグナル .Dv INTR を出します (出しません)。 .It Cm ignpar Pq Fl ignpar パリティエラーを無視します (無視しません)。 .It Cm parmrk Pq Fl parmrk パリティエラーをマークします (マークしません)。 .It Cm inpck Pq Fl inpck 入力のパリティチェックを有効 (無効) にします。 .It Cm istrip Pq Fl istrip 入力した文字の 8 ビット目を捨てて 7 ビットにします (8 ビット目 を捨てません)。 .It Cm inlcr Pq Fl inlcr 入力の .Dv NL を .Dv CR に変換します (変換しません)。 .It Cm igncr Pq Fl igncr 入力の .Dv CR を無視します (無視しません)。 .It Cm icrnl Pq Fl icrnl 入力の .Dv CR を .Dv NL に変換します (変換しません)。 .It Cm ixon Pq Fl ixon 制御コードの .Dv START/STOP を使った出力フロー制御を有効 (無効) にします。 システムから端末への出力において、システムが .Dv STOP を受信したら出力を中断し、 .Dv START を受信するか、 .Cm ixany が設定されている場合は何らかの文字を受信すると、 出力を再開するようになります。 .It Cm ixoff Pq Fl ixoff システムの入力キューが 空/満杯に近づいたら、それぞれ .Dv START/STOP を出力するようにします (近づいても、出力しません)。 .It Cm ixany Pq Fl ixany どんな文字が来ても ( .Dv START が来た場合のみ) 出力を再開します。 .It Cm imaxbel Pq Fl imaxbel システムによって入力キューの .Dv MAX_INPUT (一般的には 255) の最大文字数が規定されており、 .Cm imaxbel がセットされていると、入力キューの制限を越えた入力に対して ASCII BEL キャラクタを出力キューに送ります (端末が鳴ります)。 .Cm imaxbel がセットされていなくて入力キューが一杯になった場合、次の文字入力で すべての入力、出力キューは捨てられます。 .El .Ss 出力モード: これは termios 構造体の c_oflag に相当します。 .Bl -tag -width Fl .It Cm opost Pq Fl opost プロセス後の処理を行った上で出力をします (プロセス後の処理を行わずに出力します。 この指定をすると、他のすべての出力モードが無視されます)。 .It Cm onlcr Pq Fl onlcr 出力の .Dv NL を .Dv CR-NL に変換します (変換しません)。 .It Cm oxtabs Pq Fl oxtabs 出力のタブをスペースに展開します (展開しません)。 .El .Ss ローカルモード: .Pp ローカルモードのフラグ (lflags) は端末処理のさまざまな属性に影響します。 歴史的には、"local" という名前のつけられた新しいジョブコントロール機能 は Jim Kulp によって .Tn IIASA の .Tn Pdp 11/70 に実装されました。 その後このドライバは、 Evans Hall, UC Berkeley の最初の .Tn VAX 上で走りました。その際ジョブコントロールの細部は大幅に変更されましたが、 構造体の定義と名前は根本的には変わりませんでした。 lflag の 'l' の 2 つ目の解釈は、 .Ar termios 構造体の .Ar c_lflag に相当する ``line discipline flag''(行制御規則フラグ) です。 .Bl -tag -width Fl .It Cm isig Pq Fl isig 特殊な制御文字 .Dv INTR , QUIT , .Dv SUSP に対する処理を有効 (無効) にします。 .It Cm icanon Pq Fl icanon .Dv ERASE と .Dv KILL 処理による入力制御を有効 (無効) にします。 .It Cm iexten Pq Fl iexten icanon, isig, ixon で制御に使われているもの以外の特殊な 制御文字の処理を有効 (無効) にします。 .It Cm echo Pq Fl echo タイプされた文字をエコーバックします (エコーバックしません)。 .It Cm echoe Pq Fl echoe .Dv ERASE 文字の入力があった場合、可能ならディスプレイ上に見える現在の出力行の 最後の文字を消します (消しません)。 .It Cm echok Pq Fl echok .Dv KILL 文字の入力があった場合、そのあとに .Dv NL を出力します (出力しません)。 .It Cm echoke Pq Fl echoke 可能なら、 .Dv KILL 文字でディスプレイ上の現在の行を消します (消しません)。 .It Cm echonl Pq Fl echonl echo が無効になっているときでも .Dv NL 文字だけはエコーバックさせます (エコーバックしません)。 .It Cm echoctl Pq Fl echoctl .Cm echoctl をセットすると、制御文字は ^X のように表示されます。 セットしなければ、その文字自身が表示されます。 .It Cm echoprt Pq Fl echoprt プリンタ端末に対するもので、設定された場合、削除された文字を ``\\'' と ``/'' で囲んで逆方向にエコーします。 設定されていなければ、この機能を無効にします。 .It Cm noflsh Pq Fl noflsh .Dv INTR , QUIT , SUSP のあとのフラッシュ処理を無効 (有効) にします。 .It Cm tostop Pq Fl tostop バックグラウンドジョブが出力を行おうとした時に .Dv SIGTTOU を送ります (送りません)。これによってバックグラウンドジョブは画面出力を 行おうとすると停止するようになります。 .It Cm altwerase Pq Fl altwerase .Dv WERASE 文字を処理するときに、別の単語消去アルゴリズムを用います (用いません)。 このアルゴリズムは英数字とアンダースコアの並びを単語とみなします。 また、分類上直前の文字をスキップします (便宜的に、直前の文字を .Dv ERASE 一文字で消すことができるようにするため)。 .It Cm mdmbuf Pq Fl mdmbuf セットされると、CD 信号の検出によるフロー制御の出力を行います。 セットされなければ、CD 信号の低下に対してエラーを出力します (キャリア信号は .Dv CLOCAL フラグによっても無視されません)。 .It Cm flusho Pq Fl flusho 出力を捨てます (捨てません)。 .It Cm pendin Pq Fl pendin 入力を非標準 (non-canonical) モードから標準 (canonical) モードへ切り換えた あと、入力を保留します (保留しません)。読み込みが保留されたとき、または更に入力があったときに 再入力されます。 .El .Ss 制御文字: .Bl -tag -width Fl .It Ar control-character Ar string .Ar string に .Ar control-character を割り当てます。もし string が 1 文字だけなら、その文字に .Ar control-character が割り当てられます。 string が 2 文字の "^-" もしくは "undef" の場合は .Ar control-character は無効にされます (つまり、 .Pf { Dv _POSIX_VDISABLE Ns } になります)。 .Pp 認識される制御文字: .Bd -ragged -offset indent .Bl -column character Subscript -.It 制御文字 記号   説明 -.It _________ _________ _______________ -.It eof Ta Tn VEOF EOF No character -.It eol Ta Tn VEOL EOL No character -.It eol2 Ta Tn VEOL2 EOL2 No character -.It erase Ta Tn VERASE ERASE No character -.It werase Ta Tn VWERASE WERASE No character -.It intr Ta Tn VINTR INTR No character -.It kill Ta Tn VKILL KILL No character -.It quit Ta Tn VQUIT QUIT No character -.It susp Ta Tn VSUSP SUSP No character -.It start Ta Tn VSTART START No character -.It stop Ta Tn VSTOP STOP No character -.It dsusp Ta Tn VDSUSP DSUSP No character -.It lnext Ta Tn VLNEXT LNEXT No character -.It reprint Ta Tn VREPRINT REPRINT No character -.It status Ta Tn VSTATUS STATUS No character +.It 制御文字 Ta 記号 Ta 説明 +.It _________ Ta _________ Ta _______________ +.It eof Ta Tn VEOF Ta EOF No character +.It eol Ta Tn VEOL Ta EOL No character +.It eol2 Ta Tn VEOL2 Ta EOL2 No character +.It erase Ta Tn VERASE Ta ERASE No character +.It werase Ta Tn VWERASE Ta WERASE No character +.It intr Ta Tn VINTR Ta INTR No character +.It kill Ta Tn VKILL Ta KILL No character +.It quit Ta Tn VQUIT Ta QUIT No character +.It susp Ta Tn VSUSP Ta SUSP No character +.It start Ta Tn VSTART Ta START No character +.It stop Ta Tn VSTOP Ta STOP No character +.It dsusp Ta Tn VDSUSP Ta DSUSP No character +.It lnext Ta Tn VLNEXT Ta LNEXT No character +.It reprint Ta Tn VREPRINT Ta REPRINT No character +.It status Ta Tn VSTATUS Ta STATUS No character .El .Ed .It Cm min Ar number .It Cm time Ar number min あるいは time の値を .Ar number にします。 .Dv MIN と .Dv TIME は非標準的なモード (-icanon) での入力処理に使われます。 .El .Ss 複合モード: .Pp .Bl -tag -width Fl .It Ar saved settings 現在の端末属性を .Fl g オプションによって保存された属性にする。 .It Cm evenp No or Cm parity parenb と cs7 を有効にし、parodd を無効にします。 .It Cm oddp parenb, cs7, parodd を有効にします。 .It Fl parity , evenp , oddp parenb を無効にして、cs8 をセットします。 .It Cm \&nl Pq Fl \&nl icrnl を有効 (無効) にします。 それに加えて、-nl は inlcr と igncr を解除します。 .It Cm ek .Dv ERASE と .Dv KILL に割り当てられている文字をシステムのデフォルトのものに戻します。 .It Cm sane すべてのモードを対話的な端末利用に妥当な値にリセットします。 .It Cm tty 行制御規則を標準端末の規則 .Dv TTYDISC に設定します。 .It Cm crt Pq Fl crt CRT ディスプレイ用に適合するモードをすべて有効 (無効) にします。 .It Cm kerninfo Pq Fl kerninfo .Dv STATUS 文字 (通常 ^T に設定されています) に結びつけられた システムステータス行の生成を有効 (無効) にします。 このステータス行はシステムの負荷、現在のコマンドの名前、プロセス ID、 プロセスが待っているイベント (あるいはプロセスの状態)、 ユーザ時間とシステム時間、CPU 利用率、現在のメモリ使用状況 からなっています。 .It Cm columns Ar number 端末の大きさを .Ar number 列とします。 .It Cm cols Ar number .Cm columns の別名定義です。 .It Cm rows Ar number 端末の大きさを .Ar number 行とします。 .It Cm dec Digital Equipment Corporation systems の端末設定にします。 ( .Dv ERASE , .Dv KILL , .Dv INTR をそれぞれ ^?, ^U, ^Cとし、 .Dv ixany を無効、 .Dv crt を有効にします) .It Cm extproc Pq Fl extproc 設定されると、一部の端末処理が端末機器ないし pty に接続されたリモート側 で行なわれるようになります。 .It Cm raw Pq Fl raw 端末モードを全く入出力処理を行なわないモードにします。 これを無効にすると、端末を入出力処理を行なう普通のモードに戻します。 注意すべきなのは、端末用のドライバは単一の .Dv RAW ビットを持つわけではないので、 .Cm raw モードに設定する前にどのようなフラグが設定してあったのかを知ることがで きないということです。つまり、 .Cm raw モードを解除するだけでは、 .Cm raw モード設定前の状態には戻りません。 端末を raw 状態にして、それを正確に元に戻すためには、以下のような シェルコマンドを使うことを薦めます。 .Bd -literal save_state=$(stty -g) stty raw \&... stty "$save_state" .Ed .It Cm size 端末の大きさを行、列の順に並べた 1 行で表示します。 .El .Ss 互換モード: .Pp 以下のモードは旧バージョンの stty コマンドとの互換性保持のために残され ています。 .Bl -tag -width Fl .It Cm all 縦覧式でコントール文字を表示する以外は、 .Cm stty Fl a と同様に端末設定を表示します。 .It Cm everything .Cm all と同じです。 .It Cm cooked .Cm sane と同じです。 .It Cm cbreak .Cm brkint , ixon , imaxbel , opost , .Cm isig , iexten , .Cm Fl icanon を有効にします。 解除した場合は .Cm sane と同じです。 .It Cm new .Cm tty と同じです。 .It Cm old .Cm tty と同じです。 .It Cm newcrt Pq Fl newcrt .Cm crt と同じです。 .It Cm pass8 .Cm parity の反対です。 .It Cm tandem Pq Fl tandem .Cm ixoff と同じです。 .It Cm decctlq Pq Fl decctlq .Cm ixany の反対です。 .It Cm crterase Pq Fl crterase .Cm echoe と同じです。 .It Cm crtbs Pq Fl crtbs .Cm echoe と同じです。 .It Cm crtkill Pq Fl crtkill .Cm echoke と同じです。 .It Cm ctlecho Pq Fl ctlecho .Cm echoctl と同じです。 .It Cm prterase Pq Fl prterase .Cm echoprt と同じです。 .It Cm litout Pq Fl litout .Cm opost の反対です。 .It Cm tabs Pq Fl tabs .Cm oxtabs の反対です。 .It Cm brk Ar value 制御文字 .Cm eol と同じです。 .It Cm flush Ar value 制御文字 .Cm discard と同じです。 .It Cm rprnt Ar value 制御文字 .Cm reprint と同じです。 .El .Sh 診断 .Nm ユーティリティは、 成功した場合は 0 を、エラーが起きた場合は 0 より大きい値を返します。 .Sh 関連項目 .Xr termios 4 .Sh 規格 .Nm は .St -p1003.2 互換です。 .Fl e と .Fl f のフラグは規格を拡張しています。 diff --git a/ja_JP.eucJP/man/man5/disklabel.5 b/ja_JP.eucJP/man/man5/disklabel.5 index 460ebb442e..5ceecae946 100644 --- a/ja_JP.eucJP/man/man5/disklabel.5 +++ b/ja_JP.eucJP/man/man5/disklabel.5 @@ -1,560 +1,560 @@ .\" Copyright (c) 1987, 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" This code is derived from software contributed to Berkeley by .\" Symmetric Computer Systems. .\" .\" 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 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. .\" .\" @(#)disklabel.5.5 8.1 (Berkeley) 6/5/93 -.\" %FreeBSD: src/sbin/disklabel/disklabel.5,v 1.7 2000/01/05 17:34:00 bde Exp % +.\" %FreeBSD: src/sbin/disklabel/disklabel.5,v 1.7.2.1 2000/12/18 15:38:19 ru Exp % .\" .\" jpman %Id: disklabel.5,v 1.3 1998/06/12 15:48:23 kumano Stab % .\" .\" WORD: initial bootstrap 初期ブートストラップ .\" WORD: initial label 初期ラベル .\" WORD: primary bootstrap 一次ブートストラップ .\" WORD: secondary bootstrap 二次ブートストラップ .\" WORD: ratio of physical sectors traversed per logical sector 論理セクタあたりの物理セクタ通過率 .\" .Dd June 5, 1993 .Dt DISKLABEL 5 .Os .Sh 名称 .Nm disklabel .Nd ディスクパックラベル .Sh 書式 .Fd #include .Sh 解説 システム上のそれぞれのディスクやディスクパックは、ディスクのジオメトリ やディスクを分割しているパーティションについての詳細な情報を提供する ディスクラベルを持っています。 ディスクラベルはディスクがフォーマットされたときに 初期化されなければならず、 後から .Xr disklabel 8 プログラムによって変更することができます。 システムディクスドライバやブートストラッププログラムがこの情報を使って、 ドライブのプログラム方法や、ディスクパーティション上の ファイルシステムの見つけ方を決定します。 ファイルシステムは、付加的な情報を使ってディスクを最も効果的に使い、 重要なファイルシステム情報の位置を特定します。 各パーティションの記述は、パーティションタイプ(標準ファイル、スワップ 領域等)の識別子を含みます。 ラベルのメモリ内コピーにあるファイルシステム情報が不完全な場合には、 ファイルシステムはそれを更新します。 .Pp ラベルは、ドライブのセクタ番号 .Dv LABELSECTOR にあります。 通常は、ディスクジオメトリについての情報がなくても見つけられる、 セクタ 0 にあります。 ラベルは、初期ブートストラップの場所を確保するために、 セクタの先頭からオフセット .Dv LABELOFFSET にあります。 ラベルを含むディスクセクタは、通常読み込み専用になっています。 これは、 パックからパックへの複写やスワップ操作時に .Xr disklabel 8 プログラムによって必要に応じて行なわれる .Dv DIOCWLABEL .Xr ioctl 2 により不用意に上書きされないようにするためです。 .Pp ディスクのメモリ内ラベルコピーは .Dv DIOCGDINFO .Xr ioctl 2 で得られます。 この操作は、ディスクの任意のパーティションに対するブロックデバイスや キャラクタ (``raw'') デバイスへのファイル記述子に対して 行うことができます。 また、ディスクのメモリ内ラベルコピーは .Dv DIOCSDINFO .Xr ioctl 2 によりセットされます。 パーティションのオフセットは、一般にパーティションがオープンされている ときには変更したり小さくしたりはできません。 ただし例外として、ディスクにラベルが見つからず、ドライバが パーティション情報を含まない骨組みのラベルだけを構築できるときには、 どんな変更も許されます。 最後に、 .Dv DIOCWDINFO .Xr ioctl 2 操作がメモリ内のラベルをセットし、ディスク上のラベルを更新します。 この操作が成功するためにはディスク上にラベルが存在しなければなりません。 つまり、ディスクやディスクパックの初期ラベルは生の (raw) ディスクに 対して書き込むことでインストールされなければなりません。 これらの操作はすべて、普通 .Xr disklabel 8 コマンドを使って行なわれます。 .Pp .Pa で指定されるようにディスクラベルのフォーマットは以下のようになります。 .Bd -literal #ifndef _SYS_DISKLABEL_H_ #define _SYS_DISKLABEL_H_ #ifndef _KERNEL #include #endif #include /* * ディスク記述テーブル, disktab(5) を参照 */ #define _PATH_DISKTAB "/etc/disktab" #define DISKTAB "/etc/disktab" /* 非推奨 */ /* * 各ディスクはハードウェアディスクジオメトリ、ファイルシステムパーティション、 * ドライブ固有の情報についての情報を含むラベルを持っています。 * ラベルはブロック 0 か 1 、つまりブートストラップ等のための場所を空けて * なるべく先頭のオフセットにあります。 */ /* * XXX これらの情報はコントローラ毎 (またはドライブ毎) にどこか別のところで * XXX 定義されるべきであり、ここで定義すべきではありません! */ #ifdef __i386__ #define LABELSECTOR 1 /* sector containing label */ #define LABELOFFSET 0 /* offset of label in sector */ #endif #ifdef __alpha__ #define LABELSECTOR 0 #define LABELOFFSET 64 #endif #ifndef LABELSECTOR #define LABELSECTOR 0 /* ラベルを含むセクタ */ #endif #ifndef LABELOFFSET #define LABELOFFSET 64 /* セクタ内のラベルのオフセット */ #endif #define DISKMAGIC ((u_long32_t)0x82564557) /* ディスクのマジックナンバ */ #ifndef MAXPARTITIONS #define MAXPARTITIONS 8 #endif #define LABEL_PART 2 /* パーティションはラベルを含む */ #define RAW_PART 2 /* パーティションはディスク全体を含む */ #define SWAP_PART 1 /* パーティションは通常はスワップを含む */ #ifndef LOCORE struct disklabel { u_int32_t d_magic; /* マジックナンバ */ u_int16_t d_type; /* ドライブタイプ */ u_int16_t d_subtype; /* コントローラ/d_type に固有 */ char d_typename[16]; /* タイプ名、たとえば "eagle" */ /* * d_packname は、パック識別子を含み、ディスク上やメモリ内コピーの * ディスクラベルを読んだときに返されます。 * d_boot0 と d_boot1 は、/boot にある一次 (block 0) または * 二次 (block 1-15) ブートストラップの (省略可能な) 名前です。 * この名は、/etc/disktab から値を取り出すために getdiskbyname(3) * を使う場合に返されます。 */ union { char un_d_packname[16]; /* パック識別子 */ struct { char *un_d_boot0; /* 一次ブートストラップ名 */ char *un_d_boot1; /* 二次ブートストラップ名 */ } un_b; } d_un; #define d_packname d_un.un_d_packname #define d_boot0 d_un.un_b.un_d_boot0 #define d_boot1 d_un.un_b.un_d_boot1 /* ディスクジオメトリ */ u_int32_t d_secsize; /* セクタあたりのバイト数 */ u_int32_t d_nsectors; /* トラックあたりのデータセクタ数 */ u_int32_t d_ntracks; /* シリンダあたりのトラック数 */ u_int32_t d_ncylinders; /* ユニットあたりのデータシリンダ数 */ u_int32_t d_secpercyl; /* シリンダあたりのデータセクタ数 */ u_int32_t d_secperunit; /* ユニットあたりのデータセクタ数 */ /* * 以下の予備 (不良セクタ置換) は in d_nsectors や d_secpercyl * には数えられません。 * 予備セクタは、各トラックまたはシリンダの末尾の場所を占める * 物理セクタにあることにします。 */ u_int16_t d_sparespertrack; /* トラックあたりの予備セクタ */ u_int16_t d_sparespercyl; /* シリンダあたりの予備セクタ */ /* * メインテナンス、置換、コンフィギュレーション記述領域等を * 含む交替シリンダ */ u_int32_t d_acylinders; /* ユニットあたりの交替シリンダ */ /* ハードウェア特性 */ /* * d_interleave, d_trackskew, d_cylskew は、遅いコントローラの * 埋め合わせに使うための、メディアフォーマット中の * ぶれを記述します。 * interleave は、フォーマット時にフォーマッタやコントローラに * よって設定される物理セクタインタリーブです。 * インタリーブが使われているとき、論理的に隣り合ったセクタは * 物理的には連続ではなく、幾つかのセクタに分断されています。 * これは論理セクタあたりの物理セクタ通過率として指定されます。 * すなわち、1:1 のインタリーブは連続したレイアウトを意味し、 * 2:1 は論理セクタ 0 が論理セクタ 1 から 1 セクタ離れていること * を意味します。 * d_trackskew は、同一シリンダ上でトラック N-1 上のセクタ 0 から * トラック N のセクタ 0 の相対的なオフセットです。 * 最後の d_cylskew は、シリンダ N-1 上のセクタ 0 からシリンダ N * 上のセクタ 0 の相対的なオフセットです。 */ u_int16_t d_rpm; /* 回転スピード */ u_int16_t d_interleave; /* ハードウェアセクタインタリーブ */ u_int16_t d_trackskew; /* トラックあたりのセクタ 0 スキュー */ u_int16_t d_cylskew; /* シリンダあたりのセクタ 0 スキュー */ u_int32_t d_headswitch; /* ハードスイッチ時間 usec */ u_int32_t d_trkseek; /* トラック間シーク usec */ u_int32_t d_flags; /* 一般フラグ */ #define NDDATA 5 u_int32_t d_drivedata[NDDATA]; /* ドライブの型固有の情報 */ #define NSPARE 5 u_int32_t d_spare[NSPARE]; /* 将来使うための予備 */ u_int32_t d_magic2; /* マジックナンバ (再度) */ u_int16_t d_checksum; /* データを含むパーティションの xor */ /* ファイルシステムとパーティション情報 */ u_int16_t d_npartitions; /* 後に続くパーティション数 */ u_int32_t d_bbsize; /* sn0 のブート領域の大きさ(バイト単位) */ u_int32_t d_sbsize; /* fs スーパブロックの最大サイズ(バイト単位) */ struct partition { /* パーティションテーブル */ u_int32_t p_size; /* パーティション内のセクタ数 */ u_int32_t p_offset; /* 開始セクタ */ u_int32_t p_fsize; /* ファイルシステム規定フラグメントサイズ */ u_int8_t p_fstype; /* ファイルシステムタイプ、下記参照 */ u_int8_t p_frag; /* ブロックあたりのファイルシステムフラグメント */ union { u_int16_t cpg; /* UFS: FS グループあたりのシリンダ数 */ u_int16_t sgs; /* LFS: FS セグメントシフト */ } __partition_u1; #define p_cpg __partition_u1.cpg #define p_sgs __partition_u1.sgs } d_partitions[MAXPARTITIONS]; /* 実際にはもっとある */ }; #else /* LOCORE */ /* * asm ブートファイル用のオフセット */ .set d_secsize,40 .set d_nsectors,44 .set d_ntracks,48 .set d_ncylinders,52 .set d_secpercyl,56 .set d_secperunit,60 .set d_end_,276 /* ディスクラベルの大きさ */ #endif /* LOCORE */ /* d_type values: */ #define DTYPE_SMD 1 /* SMD, XSMD; VAX hp/up */ #define DTYPE_MSCP 2 /* MSCP */ #define DTYPE_DEC 3 /* その他の DEC (rk, rl) */ #define DTYPE_SCSI 4 /* SCSI */ #define DTYPE_ESDI 5 /* ESDI インタフェース */ #define DTYPE_ST506 6 /* ST506 他 */ #define DTYPE_HPIB 7 /* HP-IB 上の CS/80 */ #define DTYPE_HPFL 8 /* HP ファイバリンク */ #define DTYPE_FLOPPY 10 /* フロッピ */ #define DTYPE_CCD 11 /* コンカチネート化ディスク */ #define DTYPE_VINUM 12 /* vinum ボリューム */ #define DTYPE_DOC2K 13 /* Msys DiskOnChip */ #if defined(PC98) && !defined(PC98_ATCOMPAT) #define DSTYPE_SEC256 0x80 /* 物理セクタサイズは 256 */ #endif #ifdef DKTYPENAMES static char *dktypenames[] = { "unknown", "SMD", "MSCP", "old DEC", "SCSI", "ESDI", "ST506", "HP-IB", "HP-FL", "type 9", "floppy", "CCD", "Vinum", "DOC2K", NULL }; #define DKMAXTYPES (sizeof(dktypenames) / sizeof(dktypenames[0]) - 1) #endif /* * ファイルシステムタイプとバージョン * パーティションあたりの他のファイルシステム固有情報に使われます。 */ #define FS_UNUSED 0 /* 未使用 */ #define FS_SWAP 1 /* スワップ */ #define FS_V6 2 /* 第 6 版 */ #define FS_V7 3 /* 第 7 版 */ #define FS_SYSV 4 /* System V */ #define FS_V71K 5 /* 7 版 1K ブロック (4.1, 2.9) */ #define FS_V8 6 /* 8 版 4K ブロック */ #define FS_BSDFFS 7 /* 4.2BSD 高速ファイルシステム */ #define FS_MSDOS 8 /* MSDOS ファイルシステム */ #define FS_BSDLFS 9 /* 4.4BSD ログ構造ファイルシステム */ #define FS_OTHER 10 /* 使用中だが未知/未サポート */ #define FS_HPFS 11 /* OS/2 高性能ファイルシステム */ #define FS_ISO9660 12 /* ISO 9660, 通常は CD-ROM */ #define FS_BOOT 13 /* ブートストラップを含むパーティション */ #define FS_VINUM 14 /* Vinum ドライブ */ #ifdef DKTYPENAMES static char *fstypenames[] = { "unused", "swap", "Version 6", "Version 7", "System V", "4.1BSD", "Eighth Edition", "4.2BSD", "MSDOS", "4.4LFS", "unknown", "HPFS", "ISO9660", "boot", "vinum", NULL }; #define FSMAXTYPES (sizeof(fstypenames) / sizeof(fstypenames[0]) - 1) #endif /* * 多様なドライブが共有するフラグ */ #define D_REMOVABLE 0x01 /* リムーバブルメディア */ #define D_ECC 0x02 /* ECC サポート */ #define D_BADSECT 0x04 /* バッドセクタフォワードのサポート */ #define D_RAMDISK 0x08 /* ディスクエミュレータ */ #define D_CHAIN 0x10 /* 連続転送可能 */ /* * SMD のドライブデータ */ #define d_smdflags d_drivedata[0] #define D_SSE 0x1 /* セクタスキップのサポート */ #define d_mindist d_drivedata[1] #define d_maxdist d_drivedata[2] #define d_sdist d_drivedata[3] /* * ST506 のドライブデータ */ #define d_precompcyl d_drivedata[0] #define d_gap3 d_drivedata[1] /* フォーマット時にのみ使用 */ /* * SCSI のドライブデータ */ #define d_blind d_drivedata[0] #ifndef LOCORE /* * フォーマットや生の操作をする際に使われる * 構造体で、データやレジスタ値を返します。 * レジスタの識別とフォーマットは、 * デバイス依存、ドライバ依存です。 */ struct format_op { char *df_buf; int df_count; /* 値-結果 */ daddr_t df_startblk; int df_reg[8]; /* 結果 */ }; /* * ディスク上のパーティションに関する情報を * 引き出すために内部で使われる構造体 */ struct partinfo { struct disklabel *disklab; struct partition *part; }; /* DOS パーティションテーブル -- ブートブロックにあります */ #if defined(PC98) && !defined(PC98_ATCOMPAT) #define DOSBBSECTOR 0 /* DOS ブートブロックの相対セクタ番号 */ #define DOSLABELSECTOR 1 /* 0: 256b/s, 1: 512b/s */ #define DOSPARTOFF 0 #define NDOSPART 16 #define DOSPTYP_386BSD 0x94 /* 386BSD パーティションタイプ */ #define MBR_PTYPE_FreeBSD 0x94 /* FreeBSD パーティションタイプ */ struct dos_partition { unsigned char dp_mid; #define DOSMID_386BSD (0x14|0x80) /* 386bsd|bootable */ unsigned char dp_sid; #define DOSSID_386BSD (0x44|0x80) /* 386bsd|active */ unsigned char dp_dum1; unsigned char dp_dum2; unsigned char dp_ipl_sct; unsigned char dp_ipl_head; unsigned short dp_ipl_cyl; unsigned char dp_ssect; /* 先頭セクタ */ unsigned char dp_shd; /* 先頭ヘッド */ unsigned short dp_scyl; /* 先頭シリンダ */ unsigned char dp_esect; /* 終端セクタ */ unsigned char dp_ehd; /* 終端ヘッド */ unsigned short dp_ecyl; /* 終端シリンダ */ unsigned char dp_name[16]; }; #else /* IBMPC */ #define DOSBBSECTOR 0 /* DOS ブートブロックの相対セクタ番号 */ #define DOSPARTOFF 446 #define NDOSPART 4 #define DOSPTYP_386BSD 0xa5 /* 386BSD パーティションタイプ */ struct dos_partition { unsigned char dp_flag; /* ブートストラップフラグ */ unsigned char dp_shd; /* 先頭ヘッド */ unsigned char dp_ssect; /* 先頭セクタ */ unsigned char dp_scyl; /* 先頭シリンダ */ unsigned char dp_typ; /* パーティションタイプ */ unsigned char dp_ehd; /* 終端ヘッド */ unsigned char dp_esect; /* 終端セクタ */ unsigned char dp_ecyl; /* 終端シリンダ */ u_int32_t dp_start; /* 絶対的な先頭セクタ番号 */ u_int32_t dp_size; /* セクタ数でのパーティションサイズ */ }; #endif #define DPSECT(s) ((s) & 0x3f) /* セクタ用のビットの分離 */ #define DPCYL(c, s) ((c) + (((s) & 0xc0)<<2)) /* こちらはシリンダ用 */ /* * ディスク固有の ioctl */ /* ディスクラベルの取得と設定; 内部では DIOCGPART が使われる */ #define DIOCGDINFO _IOR('d', 101, struct disklabel)/* 取得 */ #define DIOCSDINFO _IOW('d', 102, struct disklabel)/* 設定 */ #define DIOCWDINFO _IOW('d', 103, struct disklabel)/* 設定、ディスク更新 */ #define DIOCGPART _IOW('d', 104, struct partinfo) /* パーティション取得 */ #define DIOCWLABEL _IOW('d', 109, int) /* ラベルの書き込み可/不可 */ #ifdef _KERNEL /* * XXX ディスクマイナ番号のエンコーディングは別のところにあるべきです。 * * より良い可能性のエンコーディングについては を参照ください。 * * "cpio -H newc" で大きなマイナ番号のデバイスファイル (しかし 2^31 未満) * をバックアップ可能です。古い cpio フォーマットと全 tar フォーマットでは * ビット数が不十分であり、また cpio と tar はビット喪失を報告しません。 * また、符号拡張にバグがあります。 */ /* 3 2 1 0 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 _________________________________________________________________ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ----------------------------------------------------------------- | TYPE |UNIT_2 | SLICE | MAJOR? | UNIT |PART | ----------------------------------------------------------------- */ -#define dkmakeminor(unit, slice, part) \ - (((slice) << 16) | (((unit) & 0x1e0) << 16) | \ - (((unit) & 0x1f) << 3) | (part)) +#define dkmakeminor(unit, slice, part) \e + (((slice) << 16) | (((unit) & 0x1e0) << 16) | \e + (((unit) & 0x1f) << 3) | (part)) static __inline dev_t dkmodpart(dev_t dev, int part) { return (makedev(major(dev), (minor(dev) & ~7) | part)); } static __inline dev_t dkmodslice(dev_t dev, int slice) { return (makedev(major(dev), (minor(dev) & ~0x1f0000) | (slice << 16))); } #define dkpart(dev) (minor(dev) & 7) #define dkslice(dev) ((minor(dev) >> 16) & 0x1f) #define dktype(dev) ((minor(dev) >> 25) & 0x7f) static __inline u_int dkunit(dev_t dev) { return (((minor(dev) >> 16) & 0x1e0) | ((minor(dev) >> 3) & 0x1f)); } struct buf; struct buf_queue_head; int bounds_check_with_label __P((struct buf *bp, struct disklabel *lp, int wlabel)); void diskerr __P((struct buf *bp, char *what, int pri, int blkdone, struct disklabel *lp)); void disksort __P((struct buf *ap, struct buf *bp)); u_int dkcksum __P((struct disklabel *lp)); char *readdisklabel __P((dev_t dev, struct disklabel *lp)); void bufqdisksort __P((struct buf_queue_head *ap, struct buf *bp)); int setdisklabel __P((struct disklabel *olp, struct disklabel *nlp, u_long openmask)); int writedisklabel __P((dev_t dev, struct disklabel *lp)); #ifdef __alpha__ void alpha_fix_srm_checksum __P((struct buf *bp)); #endif #endif /* _KERNEL */ #endif /* LOCORE */ #ifndef _KERNEL __BEGIN_DECLS struct disklabel *getdiskbyname __P((const char *)); __END_DECLS #endif #endif /* !_SYS_DISKLABEL_H_ */ .Ed .Sh 関連項目 .Xr disktab 5 , .Xr disklabel 8 diff --git a/ja_JP.eucJP/man/man5/exports.5 b/ja_JP.eucJP/man/man5/exports.5 index 3b3bdf0191..2dc25fdaa3 100644 --- a/ja_JP.eucJP/man/man5/exports.5 +++ b/ja_JP.eucJP/man/man5/exports.5 @@ -1,298 +1,300 @@ .\" Copyright (c) 1989, 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. .\" .\" @(#)exports.5 8.3 (Berkeley) 3/29/95 -.\" %FreeBSD: src/sbin/mountd/exports.5,v 1.10.2.2 2000/12/08 14:04:02 ru Exp % +.\" %FreeBSD: src/sbin/mountd/exports.5,v 1.10.2.3 2000/12/18 15:38:28 ru Exp % .\" .\" jpman %Id: exports.5,v 1.3 1998/07/02 14:10:07 horikawa Stab % .\" .Dd March 29, 1995 .Dt EXPORTS 5 .Os .Sh 名称 .Nm exports .Nd .Tn NFS マウント要求に対するリモートマウント点を定義する .Sh 書式 .Nm .Sh 解説 .Nm ファイルは .Tn NFS サーバの指定 1 つについて .Tn NFS マウントプロトコルに対するリモートマウント点を指定します。 -.%T "Network File System Protocol Specification \\*(tNRFC\\*(sP 1094, Appendix A" +.%T "Network File System Protocol Specification" , +RFC1094, Appendix A および -.%T "NFS: Network File System Version 3 Specification, Appendix I" +.%T "NFS: Network File System Version 3 Specification" , +Appendix I を参照してください。 .Pp .Nm ファイルの各行 (# で始まる注釈行以外) は、1 つ以上のホスト向けに、 1 つのローカルサーバファイルシステム内の マウント点 (複数) とエクスポートフラグを指定します。 あるホストは、 サーバの各ローカルファイルシステムに関して唯 1 度だけ指定可能です。 また他の全てのホストに適用されるデフォルトエントリは、 各サーバファイルシステムに関して唯 1 つだけ指定できます。 後者は ``世界'' に対しそのファイルシステムを公開することになるので、 そのファイルシステムが公の情報を含むときにのみ用いるべきです。 .Pp マウントエントリ内の最初の欄 (複数) には、 対応するクライアント (複数) がマウント可能である サーバファイルシステム内ディレクトリパス (複数) を指定します。 この指定には 2 つの形式があります。 最初の指定形式は、 全マウント点のリストであり、絶対ディレクトリパスを空白で区切ったものです。 次の指定形式は、そのファイルシステムのルートパス名に続いて .Fl alldirs フラグを指定するものです。この形式は、そのファイルシステム内の任意の点を ホスト (複数) がマウントすることを可能にします。 .Xr mountd 8 で .Fl r オプションを用いれば、任意の点には通常ファイルを含むことができます。 パス名中には、シンボリックリンクを含んではなりませんし、また "." または ".." を含んではなりません。 1 つのファイルシステムに対するマウント点を複数指定することが可能であり、 それぞれ異ったホストとエクスポートオプションの組を指定することができます。 .Pp 行の 2 番目の部分には、そのファイルシステムがホストの組にどのように エクスポートされているかを指定します。 オプションフラグは、 そのファイルシステムを読み取り専用でエクスポートしているのか それとも読み書き可でエクスポートしているのかを指定したり、 クライアントの UID がサーバ上のユーザ資格にどのように マップされているのかを指定します。 .Pp エクスポートオプションは以下のとおりです。 .Pp .Sm off .Fl maproot No = Sy user .Sm on 指定されたユーザの資格を、root によるリモートアクセスに対して使用します。 その資格には、ローカルマシン上でユーザが属する全てのグループを含みます ( .Xr id 1 参照)。ユーザは名前または数字です。 .Pp .Sm off .Fl maproot No = Sy user:group1:group2:... .Sm on コロンによって区切られたリストは、 root によるリモートアクセスに対して使用する正確な資格を指定するために 使用します。 リストの要素は名前または数字です。 グループを含まない資格をユーザに関する完全な資格と区別するためには、 user: を使用すべきであることに注意してください。 .Pp .Sm off .Fl mapall No = Sy user .Sm on または .Sm off .Fl mapall No = Sy user:group1:group2:... .Sm on .Fl maproot と同じ指定方法で、 (root を含む) 全てのクライアントの UID に対するマッピングを指定します。 .Pp .Fl r オプションは .Fl maproot と同じ意味です。 これは古い export ファイル形式と互換性を保つために用意されました。 .Pp .Fl maproot および .Fl mapall オプションのない場合には、 root によるリモートアクセスは -2:-2 という資格を用いることになります。 その他の全てのユーザはそれぞれのリモート資格にマップされます。 .Fl maproot オプションを指定すると、root によるリモートアクセスは -2:-2 の代りに 指定した資格にマップされます。 .Fl mapall オプションを指定すると、root を含む全てのユーザはそれら自身の資格の代りに 指定した資格にマップされます。 .Pp .Fl kerb オプションを指定すると、Kerberos 認証サーバを使用して 認証とクライアント資格のマップを行います。 このオプションを利用するには、カーネルを NFSKERB オプション付きで 構築してある必要があります。 適切な Kerberos 暗号化ルーチンを NFS ソース内に組み込まない場合、 このオプションを使用すると、カーネルコンパイルが出来なくなります。 .Pp .Fl ro オプションは、ファイルシステムが読み取り専用としてエクスポートされることを 指定します (デフォルトは読み書き可)。 .Fl o オプションは .Fl ro と同じ意味です。 これは古い export ファイル形式と互換性を保つために用意されました。 .Pp 仕様 (RFC 2054 と RFC 2055) に厳密に従う .Tn WebNFS エクスポートは .Fl public フラグにて実現されます。 しかしながら、このフラグ自身は、ファイルシステム中の全ファイルに対して 読み書きアクセスを与えますが、予約ポートを必要としませんし、 uid のマッピングも行いません。 これは仕様を満すためだけに提供されており、通常は使用すべきではありません。 .Tn WebNFS エクスポートのためには、 .Fl webnfs フラグを使用します。これは .Fl public , .Sm off .Fl mapall No = Sy nobody , .Sm on .Fl ro を意味します。 .Pp .Sm off .Fl index No = Sy file .Sm on オプションを使用して、パブリックファイルハンドル ( .Tn WebNFS Ns ) を使用してディレクトリが検索された時にハンドルが返される ファイルを指定できます。 これは URL の動作のまねをします。 .Fl index オプションが指定されないと、通常通りディレクトリファイルハンドルが返されます。 .Fl index オプションは .Fl public または .Fl webnfs フラグと組み合わせたときのみ意味があります。 .Pp 行の 3 番目の部分には、その行が適用されるホストの組を指定します。 この組は 3 つの方法で指定できます。 最初の方法はホスト名 (複数) を空白で区切って並べる方法です。 (名前の代りに、標準的なインターネット ``ドット'' アドレスを用いることも できます)。2 番目の方法はネットグループファイル ( .Xr netgroup 5 参照) の中で定義した ``netgroup'' を指定する方法です。 3 番目の方法は、 1 つのネットワークとネットワークマスクを用いることにより、 1 つのインターネットサブネットワークを指定する方法です。 これは、 そのサブネットワーク内のアドレスを持つ全てのホストの組として定義されます。 この最後の方法はカーネルのオーバヘッドを低く押えられるため、 1 つの管理サブネット内の多くのクライアントを エクスポートの行が参照する場合に推奨されます。 .Pp 最初の 2 つの指定方法では、単に空白で区切られた名前 (複数) を並べて指定します。 全ての名前は、まずそれらが ``netgroup'' 名であるかチェックされ、 そうでなければホスト名であると仮定されます。 ホスト名に完全ドメイン指定をすれば、 ネットグループと同じ名前を持つホストの問題を通常避けることができます。 3 番目の指定方法は、 .Sm off .Fl network No = Sy netname .Sm on フラグとオプションの .Sm off .Fl mask No = Sy netmask .Sm on フラグによって指定します。マスクが指定されないと、そのネットワーククラス (A, B, C のどれかです。 .Xr inet 4 を参照してください) に対するマスクとなります。 .Pp 例: .Bd -literal -offset indent /usr /usr/local -maproot=0:10 friends /usr -maproot=daemon grumpy.cis.uoguelph.ca 131.104.48.16 /usr -ro -mapall=nobody /u -maproot=bin: -network 131.104.48 -mask 255.255.255.0 /u2 -maproot=root friends /u2 -alldirs -kerb -network cis-net -mask cis-mask .Ed .Pp .Sy /usr , .Sy /u , .Sy /u2 がローカルファイルシステムマウント点とすると、上の例は以下を指定します: .Sy /usr はネットグループファイルで指定されるホスト群 .Em friends にエクスポートされ、 この際ユーザはそれぞれのリモート資格にマップされ、 root は UID 0 およびグループ 10 にマップされます。 このファイルシステムは読み書き可でエクスポートされ、 ``friends'' 内のホストは /usr と /usr/local のどちらもマウントできます。 このファイルシステムは .Em 131.104.48.16 および .Em grumpy.cis.uoguelph.ca にエクスポートされ、 この際ユーザはそれぞれのリモート資格にマップされ、 root は ``daemon'' に結び付けられたユーザおよびグループにマップされます。 このファイルシステムは残りの世界へ読み出しのみでエクスポートされ、 この際全てのユーザは ``nobody'' に結び付けられたユーザおよびグループに マップされます。 .Pp .Sy /u はサブネットワーク .Em 131.104.48 上の全てのホストにエクスポートされ、 この際 root は ``bin'' の UID にマップされてグループアクセスを持ちません。 .Pp .Sy /u2 は ``friends'' 中のホストにエクスポートされ、 その際 root は ``root'' に結び付けられた UID とグループにマップされます。 このファイルシステムは ``cis-net'' ネットワーク上の全てのホストへ エクスポートされ、 この際 /u2 内のどんなディレクトリへもマウントを許し、 Kerberos 許可書によって認証される principal についての資格に 全 UID をマップします。 .Sh 関連ファイル .Bl -tag -width /etc/exports -compact .It Pa /etc/exports デフォルトリモートマウント点ファイル .El .Sh 関連項目 .Xr netgroup 5 , .Xr mountd 8 , .Xr nfsd 8 , .Xr showmount 8 .Sh バグ エクスポートオプションはカーネル内ではローカルマウント点に結び付けられます。 ローカルサーバマウント点のサブディレクトリでエクスポートされたものに、 エクスポートオプションの矛盾があってはいけません。 同じファイルシステム内の全てのエクスポートされたディレクトリは、 木を下る順に隣り合った行で指定されることが推奨されます。 ネットグループ名と同じ名前のホスト名は指定できません。 完全ドメイン指定でホスト名を指定すれば通常は問題ありません。 diff --git a/ja_JP.eucJP/man/man7/symlink.7 b/ja_JP.eucJP/man/man7/symlink.7 index d4602d6019..04bc132162 100644 --- a/ja_JP.eucJP/man/man7/symlink.7 +++ b/ja_JP.eucJP/man/man7/symlink.7 @@ -1,439 +1,439 @@ .\" Copyright (c) 1992, 1993, 1994 .\" 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. .\" .\" @(#)symlink.7 8.3 (Berkeley) 3/31/94 -.\" %FreeBSD: src/bin/ln/symlink.7,v 1.13.2.2 2000/12/08 13:34:35 ru Exp % +.\" %FreeBSD: src/bin/ln/symlink.7,v 1.13.2.3 2000/12/15 17:47:23 ru Exp % .\" .\" jpman %Id: symlink.7,v 1.5 1999/01/21 17:50:41 kuma Stab % .\" .\" WORD: dereference 手繰る .\" WORD: traverse たどる .Dd March 31, 1994 .Dt SYMLINK 7 .Os BSD 4 .Sh 名称 .Nm symlink .Nd シンボリックリンクの扱い .Sh シンボリックリンクの扱い シンボリックリンクは、他のファイルへのポインタとして働くファイルです。 動作を理解するためには、ハードリンクの動作を理解する必要があります。 ファイルへのハードリンクは元のファイルとは区別できません。 なぜなら、ハードリンクは元のファイル名の下敷きとなるオブジェクトを 参照するからです。 ファイルに対する変更は、ファイルを参照するために使用する名前には依存しません。 ハードリンクは、ディレクトリを参照してはなりませんし、 他のファイルシステム上のファイルを参照してもなりません。 シンボリックリンクは、リンクされたファイルの名前を格納します。 すなわち、他の名前へのポインタです。 下敷きとなるオブジェクトを参照するわけではありません。 このため、シンボリックリンクは、ディレクトリを参照することができますし、 ファイルシステムをまたがることが可能です。 .Pp シンボリックリンクとこれが参照するオブジェクトは ファイルシステムの名前空間において共存しますので、 リンク自身と参照されるオブジェクトの区別に関して混乱が生じることがあります。 歴史的には、コマンドおよびシステムコールは、 場当たり的にそれぞれ独自のリンク追跡規則を採用してきました。 このシステムに実装されている、統一的なアプローチの規則をここに示します。 ユーザインタフェースをできる限り一貫性あるものとするために、 ローカルアプリケーションもまたこの規則を守ることが重要です。 .Pp シンボリックリンクの操作は、リンク自身への操作、 もしくはリンクによって参照されるオブジェクトへの操作によって実現されます。 後者の場合、アプリケーションまたはシステムコールがリンクを .Dq 追跡 (follow) したと言います。 シンボリックリンクは他のシンボリックリンクを参照することができます。 この場合、シンボリックリンクではないオブジェクトが見付かるか、 存在しないファイルを参照するシンボリックリンクが見付かるか、 ループが検出されるまで、 リンクが手繰られます。 (ループ検出は、追跡可能なリンク数の上限を設定することにより実現されます。 この制限を超過する場合にはエラーとなります。) .Pp 議論すべき領域で異なるものが 3 つあります。それらは次の通りです: .Pp .Bl -enum -compact -offset indent .It システムコールのファイル名引数として使用されるシンボリックリンク。 .It ファイルツリーをたどらないユーティリティの コマンドライン引数として指定されるシンボリックリンク。 .It ファイルツリーをたどる (traverse) ユーティリティが扱うシンボリックリンク (コマンドラインで指定されるもの、 およびファイル階層をたどるときに出会うものの両方です)。 .El .Ss システムコール 最初の領域は、 システムコールのファイル名引数として使用されるシンボリックリンクです。 .Pp 次の例外を除き、全システムコールはシンボリックリンクを追跡します。 例えば、 .Dq Li afile という名前のファイルを指すシンボリックリンク .Dq Li slink が存在する場合、システムコール -.Dq Li open("slink" ...) +.Dq Li open("slink" ...\&) はファイル .Dq afile のファイルディスクリプタを返します。 .Pp リンクを追跡せずに、シンボリックリンク自身を操作するシステムコールが 5 つあります。 それらは次の通りです: .Xr lchown 2 , .Xr lstat 2 , .Xr readlink 2 , .Xr rename 2 , .Xr unlink 2 。 .Xr remove 3 は .Xr unlink 2 の別名ですから、これもまたシンボリックリンクを追跡しません。 .Pp 既存のシンボリックリンクの所有者およびグループの変更は、 .Xr lchown 2 システムコールにて可能です。 他のファイル属性、例えば修正時刻やアクセスパーミッションは、 システムが使用しませんし、変更不能です。 .Pp .Bx 4.4 システムは歴史的な 4BSD システムとは異なり、システムコール .Xr chown 2 がシンボリックリンクを追跡するように変更されました。 後になって、新しい .Xr chown 2 の制限が明らかになると、 .Xr lchown 2 システムコールが追加されました。 .Ss ファイルツリーをたどらないコマンド 第 2 の領域は、 ファイルツリーをたどらないコマンドに対する コマンドラインのファイル名引数として指定されるシンボリックリンクです。 .Pp 下に述べる例外を除き、コマンドは、 コマンドライン引数として指定されるシンボリックリンクを追跡します。 例えば、 .Dq Li afile という名前のファイルを指すシンボリックリンク .Dq Li slink が存在する場合、コマンド .Dq Li cat slink はファイル .Dq afile の内容を表示します。 .Pp この規則は、ファイルツリーをたどることもできるコマンドも含みます。 これを認識することが重要です。 例えば、コマンド .Dq Li "chown file" はこの規則に含まれますが、コマンド .Dq Li "chown -R file" は含まれません。 (後者は第 3 の領域で後述します。) .Pp コマンドがシンボリックリンクを追跡するのではなく シンボリックリンク自身を操作する ことが明示的に意図されている場合、 例えば .Dq Li "chown slink" が、シンボリックリンクであるか否かにかかわらず、 .Dq Li slink 自身の所有者を変更したい場合、 .Fl h オプションを使用します。 先の例では、 .Dq Li "chown root slink" は .Dq Li slink が参照するファイルの所有者を変更しますが、 .Dq Li "chown -h root slink" は .Dq Li slink 自身の所有者を変更します。 .Pp この規則には 4 つの例外があります。 .Xr mv 1 および .Xr rm 1 のコマンドは、引数として指定されるシンボリックリンクを追跡せずに、 それぞれシンボリックリンク自身を改名したり削除しようとします。 (シンボリックリンクがファイルを相対パスで指定する場合、 シンボリックリンクを他のディレクトリに移動してしまうと、 パスが正しくなくなってしまいますので、 追跡できなくなります。) .Pp .Xr ls 1 コマンドもまたこの規則の例外です。 歴史的なシステムとの互換性のために ( .Nm ls がツリーをたどらない場合、すなわち .Fl R オプションが指定されない場合)、 .Fl H , .Fl L オプションが指定されるか .Fl F , .Fl d , .Fl l オプションが指定されない場合、 .Nm ls コマンドは引数として指定されたシンボリックリンクを追跡します。( ファイルツリーをたどらない場合にも、 .Fl H , .Fl L オプションが動作に影響を与えるコマンドは .Nm ls だけです。) .Pp .Xr file 1 コマンドもまたこの規則の例外です。 .Xr file 1 コマンドは、引数として指定されるシンボリックリンクを、 デフォルトでは追跡しません。 .Fl L オプションが指定されると、 .Xr file 1 コマンドは引数として指定されるシンボリックリンクを追跡します。 .Pp .Bx 4.4 システムは歴史的な 4BSD システムとは異なり、 .Nm chown , .Nm chgrp のコマンドがコマンドラインに指定されたシンボリックリンクを追跡します。 .Ss ファイルツリーをたどるコマンド 次のコマンドは、オプションとしてまたは常にファイルツリーをたどります: .Xr chflags 1 , .Xr chgrp 1 , .Xr chmod 1 , .Xr cp 1 , .Xr du 1 , .Xr find 1 , .Xr ls 1 , .Xr pax 1 , .Xr rm 1 , .Xr tar 1 , .Xr chown 8 。 .Pp ファイルシステムをたどるときに出会うシンボリックリンクおよび コマンドライン引数として指定されるシンボリックリンクに対し、 次の規則が等しく適用されることを認識することが重要です。 .Pp 最初の規則は、 ディレクトリ型ではない ファイルを参照するシンボリックリンクに対して適用されます。 シンボリックリンクに対して適用される操作は、 リンク自身に対してなされますが、 そうでない場合にはリンクは無視されます。 .Pp 例えば、コマンド .Dq Li "chown -R user slink directory" は .Dq Li slink を無視します。 なぜなら本システムにおけるシンボリックリンクは所有者を持たないためです。 ツリーをたどるときに出会うシンボリックリンクもまた無視されます。 コマンド .Dq Li "rm -r slink directory" は .Dq Li slink を削除し、 .Dq Li directory のツリーをたどるときに出会うシンボリックリンクもまた削除します。 なぜなら、シンボリックリンクは削除可能であるためです。 いかなる場合も、 .Dq Li slink が参照するファイルに .Nm chown および .Nm rm が影響することはありません。 .Pp 第 2 の規則は、 タイプがディレクトリであるファイルを参照するシンボリックリンクに適用されます。 デフォルトでは、 タイプがディレクトリであるファイルを参照するシンボリックリンクは .Dq 追跡 されません。 これはしばしば .Dq 物理 探索と呼ばれ、 .Dq 論理 探索 (ディレクトリを参照するシンボリックリンクが追跡される場合です) の対極に位置します。 .Pp 可能な限り一貫性を持たせるため、 シンボリックリンクが参照するファイルのタイプに依存せずに、 ファイルツリーをたどるコマンドに コマンドラインで指定されるシンボリックリンクを追跡させるためには、 .Fl H .Pf ( Dq 半論理 ) フラグを指定します。 このフラグは、 コマンドラインの名前空間を論理的な名前空間とすることを意図しています。 (注: 常にファイルツリーをたどるわけではないコマンドにおいては、 .Fl R フラグも指定されていない場合には、 .Fl H フラグは無視されます。) .Pp 例えば、コマンド .Dq Li "chown -HR user slink" は、 .Dq Li slink で指されるファイルを根とするファイル階層をたどります。 注: .Fl H は、以前議論した .Fl h フラグとは同じではありません。 .Fl H フラグは、 実行される操作およびファイルツリーをたどるときの両方において、 コマンドラインで指定されるシンボリックリンクを手繰るようにします。 これにより、シンボリックリンクが指すファイルの名前を、 ユーザが指定したかのようになります。 .Pp 可能な限り一貫性を持たせるため、 シンボリックリンクが参照するファイルのタイプに依存せずに、 ファイルツリーをたどるコマンドに コマンドラインで指定されるシンボリックリンクだけでなく ファイルツリーをたどっているときに出会うシンボリックリンクも 追跡させるためには、 .Fl L .Pf ( Dq 論理 ) フラグを指定します。 このフラグは、 すべての名前空間を論理的な名前空間とすることを意図しています。 (注: 常にファイルツリーをたどるわけではないコマンドにおいては、 .Fl R フラグも指定されていない場合には、 .Fl L フラグは無視されます。) .Pp 例えば、コマンド .Dq Li "chown -LR user slink" は、 .Dq Li slink で指されるファイルの所有者を変更します。 .Dq Li slink がディレクトリを参照する場合、 .Nm chown は .Dq Li slink で指されるディレクトリを根とするファイル階層をたどります。 さらに、 .Nm chown がたどるファイルツリーの中でシンボリックリンクに出会うと、 そのシンボリックリンクは .Dq Li slink と同じ方法で扱われます。 .Pp 可能な限り一貫性を持たせるため、 デフォルトの動作を指定するには、 .Fl P .Pf ( Dq 物理 ) フラグを指定します。 このフラグは、 名前空間全体を物理的な名前空間のように見せるためのものです。 .Pp デフォルトでファイルツリーをたどらないコマンドにおいては、 .Fl R もまた指定しない場合には、 .Fl H , .Fl L , .Fl P フラグは無視されます。 また、 .Fl H , .Fl L , .Fl P オプションは複数回指定可能です。 この場合、最後に指定したものがコマンドの動作を指定します。 ある動作を行うようにコマンドをエイリアスし、 それをコマンドラインで上書きできるようにすることを意図しています。 .Pp .Xr ls 1 と .Xr rm 1 のコマンドは、これらの規則において例外を持ちます。 .Nm rm コマンドはシンボリックリンクを操作し、 シンボリックリンクが参照するファイルを操作しません。 また、シンボリックリンクを追跡しません。 .Nm rm コマンドは .Fl H , .Fl L , .Fl P のオプションをサポートしません。 .Pp 歴史的なシステムとの互換性を維持するために、 .Nm ls コマンドは少し異なる挙動を示します。 .Fl F, .Fl d, .Fl l オプションのいずれも指定しない場合、 .Nm ls コマンドは、コマンド行で指定したシンボリックリンクを追跡します。 .Fl L フラグが指定されると、シンボリックリンクのタイプにかかわらず、 またコマンドラインで指定されたのかファイルツリーをたどる途中に 出会ったのにかもかかわらず、 .Nm ls は全シンボリックリンクを追跡します。 .Sh 関連項目 .Xr chflags 1 , .Xr chgrp 1 , .Xr chmod 1 , .Xr cp 1 , .Xr du 1 , .Xr find 1 , .Xr ln 1 , .Xr ls 1 , .Xr mv 1 , .Xr pax 1 , .Xr rm 1 , .Xr tar 1 , .Xr lchown 2 , .Xr lstat 2 , .Xr readlink 2 , .Xr rename 2 , .Xr symlink 2 , .Xr unlink 2 , .Xr fts 3 , .Xr remove 3 , .Xr chown 8 .\"ZZZ: 3.0-RELEASE compliant by N. Kumagai 99-1-21 diff --git a/ja_JP.eucJP/man/man8/adjkerntz.8 b/ja_JP.eucJP/man/man8/adjkerntz.8 index f986e13b99..f67581b87e 100644 --- a/ja_JP.eucJP/man/man8/adjkerntz.8 +++ b/ja_JP.eucJP/man/man8/adjkerntz.8 @@ -1,186 +1,187 @@ .\" Copyright (C) 1993-1998 by Andrey A. Chernov, Moscow, Russia. .\" 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 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. .\" -.\" %FreeBSD: src/sbin/adjkerntz/adjkerntz.8,v 1.18.2.1 2000/12/08 14:03:38 ru Exp % +.\" %FreeBSD: src/sbin/adjkerntz/adjkerntz.8,v 1.18.2.2 2000/12/18 15:38:17 ru Exp % .\" jpman %Id: adjkerntz.8,v 1.4 1997/07/26 21:28:35 horikawa Stab % .\" .Dd April 4, 1996 .Dt ADJKERNTZ 8 .Os FreeBSD .Sh 名称 .Nm adjkerntz .Nd "ローカル時間 CMOS クロックをタイムゾーンの変更を反映するように調整し、現在のタイムゾーンオフセットをカーネル用に保持する" .Sh 書式 .Nm .Fl i .Nm .Fl a Op Fl s .Sh 解説 .Nm は、UTC がいつも設定されているカーネルクロックと、 ローカル時間が設定されているかもしれない CMOS クロックとの間の適切な関係を扱います。 .Nm は、また MS-DOS ファイルシステムのようなローカル時間ファイルシステム のための適切なタイムスタンプを扱うために、カーネルに機械のタイムゾーン のシフトを教えます。この主要な目的は、最初から壊れている MS-DOS ファイルタイムスタンプの考え方を全面的に直すためではなく、 同じタイムスタンプを同じ機械上の .Fx の MS-DOS ファイルシステムと MS-DOS オペレーティングシステムで保つためのものです。 ファイル .Pa /etc/wall_cmos_clock がある場合、 CMOS クロックは (MS-DOS や MS-Windows 互換モードの) ローカル時間を保持していることを意味します。 このファイルが無い場合、 CMOS クロックは UTC 時間を 保持していることになります。 .Nm は、この状態をカーネル変数の .Pa machdep.wall_cmos_clock に通知します。 .Pp 時間調整はシステムの立ち上げとシャットダウン時、そしてタイムゾーンの 変更が起きた時はいつでも必要になります。 これらのことなった状況を扱うために、 .Nm は二つの方法で立ち上げられます。 .Bl -tag -width 4n .It Cm Fl i この形式は、システムの立ち上げとシャットダウンを取り扱います。 マルチユーザモードの先頭で、 .Nm は .Pa /etc/rc からこのオプションをつけて呼び出されます。 これは他のデーモンが実行される前に行われます。 .Nm は自分自身をバックグラウンドで実行します。 その後、ローカル時間 CMOS クロックのために、 .Nm は、ローカル時間をそこから読み込み、カーネル時間を正しい UTC 時間に 設定します。 .Nm は、これ以降での .Em "'adjkerntz -a'" 呼び出しでの利用のためや、ローカルファイルシステムでの利用のために、 ローカルタイムゾーンオフセットを .Pa machdep.adjkerntz カーネル変数に設定します。 .Pp ローカル時間 CMOS クロックのために、 .Nm "'adjkerntz -i'" は、一時停止し、バックグランドのデーモンとして活動を停止します。 このデーモンは、 SIGTERM シグナルを受け取るまでそのままです。 SIGTERM はふつう、システムがマルチユーザモードを終了する時に .Xr init 8 によって送られます (普通、システムがシャットダウンされる時です)。 SIGTERM を受け取った後で .Nm は、 UTC カーネル時間クロックを読み込み、必要であれば現在の ローカルタイムゾーンを反映するように CMOS クロックを更新します。 その後、 .Nm は終了します。 .It Cm Fl a Op Fl s この形式は、タイムゾーンの変更が起こった時に、ローカル時間 CMOS クロックとカーネル .Pa machdep.adjkerntz 変数を更新するために使われます。例えば、夏時間に入ったり、 終了したりした時に使われます。 .Nm は、カーネルクロックの UTC 時間・以前に保存したタイムゾーンオフセット・ 新しいタイムゾーンを計算するためのタイムゾーン変更規則を使います。 これは、新しいオフセットを .Pa machdep.adjkerntz カーネル変数に保存し、 CMOS クロックを新しいローカル時間に更新します。 .Em "'adjkerntz -a'" が、(タイムゾーン変更中に) 存在しない時間で実行された場合、 .Fl s オプションが使われていない場合は警告診断を出し、終了します。 .Fl s オプションが使われている場合は、 30 秒間スリープしてもう一度試します。 .Pp この形式は、大多数の現代のタイムゾーンの変更が起こる、 真夜中から 5:00 までの間に 30 分毎に、root の .Xr crontab 5 から呼び出されるべきです。 警告: .Fl s オプションを .Xr crontab 5 のコマンドライン中で使ってはいけません。使ってしまうと、複数の .Em "'adjkerntz -a'" がお互いに衝突してしまうでしょう。 .El .Pp .Nm は、カーネルタイムゾーン構造を消去し、カーネルクロックを UTC タイムゾーンで走らせます。 スーパユーザの権限が、全ての操作のために必要とされます。 .Sh 環境変数 .Bl -tag -width Fl .It Ev TZ タイムゾーンの変更規則。 .Xr tzset 3 を見てください。 .Xr tzsetup 8 もしくは .Xr zic 8 を使っている場合は、必要ありません。 +.El .Sh 関連ファイル .Bl -tag -width /etc/wall_cmos_clock -compact .It Pa /etc/localtime 現在のゾーン情報ファイルです。 .Xr tzsetup 8 と .Xr zic 8 を見てください。 .It Pa /etc/wall_cmos_clock 空のファイルです。 これは、機械の CMOS クロックがローカル時間に設定されていることを 示しています。反対にこれが存在しないと、 UTC の CMOS クロックに 設定されています。 .El .Sh 関連項目 .Xr tzset 3 , .Xr crontab 5 , .Xr mount_msdos 8 , .Xr rc 8 , .Xr sysctl 8 , .Xr tzsetup 8 , .Xr zic 8 .Sh 診断 診断はありません。 エラーが起こった場合は、 .Nm はエラーメッセージを .Xr syslog 3 を使って記録し、ゼロでない値を返して終了します。 .Sh 作者 .An Andrey A. Chernov Aq ache@astral.msk.su .Sh 歴史 .Nm コマンドは、 .Fx 1.0 から導入されました。 diff --git a/ja_JP.eucJP/man/man8/badsect.8 b/ja_JP.eucJP/man/man8/badsect.8 index c3bcd7ba85..14f29c8304 100644 --- a/ja_JP.eucJP/man/man8/badsect.8 +++ b/ja_JP.eucJP/man/man8/badsect.8 @@ -1,131 +1,131 @@ .\" Copyright (c) 1985, 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgment: .\" 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: @(#)badsect.8 8.1 (Berkeley) 6/5/93 -.\" %FreeBSD: src/sbin/badsect/badsect.8,v 1.10.2.1 2000/12/08 14:03:39 ru Exp % +.\" %FreeBSD: src/sbin/badsect/badsect.8,v 1.10.2.2 2000/12/18 15:38:18 ru Exp % .\" jpman %Id: badsect.8,v 1.2 1997/03/31 13:30:12 horikawa Stab % .\" .Dd June 5, 1993 .Dt BADSECT 8 .Os BSD 4 .Sh 名称 .Nm badsect .Nd バッドセクタ上にファイルを作る .Sh 書式 .Nm .Ar bbdir sector ... .Sh 解説 .Nm はバッドセクタを含むファイルを作成します。 通常のフォーマッタは、バッドセクタをアクセスできないようにします。 このとき、フォーマッタはドライバ用にバッドセクタのフォワーディングテーブルを 作ります。 もしドライバが標準でバッドブロックをサポートしているならば、 バッドブロックを孤立させるためにはその方法を使用すべきです。 なぜならばバッドブロックフォワーディングはパックを完全に見せ、 そのようなパックは .Xr dd 1 でコピー可能だからです。 本プログラムで採用している方法はバッドブロックフォワーディングよりは 一般的ではありません。 なぜならば .Nm はファイルシステムの i-list のバッドブロックを回復することができませんし、 スワップ領域のバッドブロックも回復することができないからです。 .Pp 突然バッドとなったセクタをバッドセクタテーブルに追加するためには、 ディスクによっては現在のところ、 標準の .Tn DEC フォーマッタを実行する必要があります。 このため、新たに生じたバッドブロックを扱う場合、 およびドライバがバッドブロッキング標準をサポートしていない場合には、 .Nm は有効かも知れません。 .Pp .Nm は現在アクセスされていないファイルシステムに対して次のように使用します。 .Nm を使うには、まず、ファイルシステムをマウントし、そのルート ディレクトリに移動します。ここに .Li BAD という名前のディレクトリを作ります。 .Nm コマンドに、引数として、このディレクトリと追加したいすべて のバッドセクタを指定して実行します (セクタ番号はファイルシステムの先頭からの相対で指定しなければなりませんが、 システムがコンソールエラーメッセージに表示するのは相対セクタ番号であるため 難しくはありません)。 その後、ルートディレクトリに移動し、 そのファイルシステムをアンマウントしてから .Xr fsck 8 を実行します。 fsck はバッドセクタを含むファイルを削除しますが、 .Pa BAD/ Ns Em nnnnn は削除 .Em しないように してください。 以上の操作によりバッドセクタは .Li BAD ファイルにのみにあることになります。 .Pp .Nm は .Xr mknod 2 の引数にセクタ番号を指定してコールすることで、 最初のブロックが指定したバッドセクタを含んだ特別なファイルを作ります。 このファイルの名前はバッドセクタの番号です。 .Xr fsck 8 は、このファイルを発見すると .Dq Li "HOLD BAD BLOCK ?" と聞いてきます。 これに対して y と答えると、 .Xr fsck 8 はその inode を、バッドブロックを含む 通常ファイルにコンバートします。 .Sh 関連項目 .Xr fsck 8 .Sh 診断 .Nm は、危険な領域のブロックやファイルシステム外のブロックを追加しません。 また、ブロックが既に使用されている場合には警告を表示します。 .Sh バグ あるファイルシステムフラグメント中の複数のセクタがバッドとなった場合、 そのうちの 1 つだけを .Nm に指定しなければなりません。 バッドセクタファイル中のブロックは、 ファイルシステムフラグメント中の全てのセクタをカバーするからです。 .Sh 歴史 .Nm コマンドは .Bx 4.1 から登場しました。 diff --git a/ja_JP.eucJP/man/man8/boot0cfg.8 b/ja_JP.eucJP/man/man8/boot0cfg.8 index 55b4bced0a..972dd3dfe8 100644 --- a/ja_JP.eucJP/man/man8/boot0cfg.8 +++ b/ja_JP.eucJP/man/man8/boot0cfg.8 @@ -1,165 +1,167 @@ .\" Copyright (c) 1999 Robert Nordier .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR .\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS .\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, .\" OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT .\" OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR .\" BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, .\" WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE .\" OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, .\" EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" %FreeBSD: src/usr.sbin/boot0cfg/boot0cfg.8,v 1.5.2.2 2000/12/08 15:27:58 ru Exp % +.\" %FreeBSD: src/usr.sbin/boot0cfg/boot0cfg.8,v 1.5.2.3 2000/12/19 00:40:01 rnordier Exp % .\" .\" jpman %Id: boot0cfg.8,v 1.2 1999/05/07 11:24:37 horikawa Stab % .\" .Dd February 21, 1999 .Dt BOOT0CFG 8 .Os .Sh 名称 .Nm boot0cfg .Nd ブートマネージャのインストールと設定ユーティリティ .Sh 書式 .Nm .Op Fl Bv .Op Fl b Ar boot0 .Op Fl d Ar drive .Op Fl f Ar file .Op Fl m Ar mask .Op Fl o Ar options .Op Fl s Ar slice .Op Fl t Ar ticks .Ar disk .Sh 解説 .Fx の .Sq boot0 ブートマネージャは、 i386 マシン (PC) がどのディスクのどのスライスから起動するかを、 操作者が選択できるようにします。 .Pp ここで、 .Dq スライス と言及しているものは、BSD 以外の PC 関連文書においては一般的に .Dq パーティション と呼ばれることに注意してください。 典型的には、リムーバブルディスク以外のみ、スライスを持ちます。 .Pp オプションとして、 .Nm ユーティリティは .Sq boot0 ブートマネージャを指定した .Ar disk へインストールします; そして、様々に操作可能なパラメータの設定を許します。 .Pp PC では、ブートマネージャは典型的にディスクのセクタ 0 にあり、 マスタブートレコード (Master Boot Record; MBR) として知られています。 MBR は、コード (PC BIOS から制御を渡されます) と データ (定義されたスライスに関する組み込みの表) の、両方を含みます。 .Pp オプションは次の通りです: .Bl -tag -width indent .It Fl B .Sq boot0 ブートマネージャをインストールします。 このオプションは、MBR コードを交換しますが、 組み込み済のスライス表には影響しません。 .It Fl v 冗長: 定義されたスライスに関する情報などを表示します。 .It Fl b Ar boot0 どの .Sq boot0 イメージを使用するかを指定します。デフォルトは .Pa /boot/boot0 です。 .It Fl d Ar drive 指定した .Ar disk を含むドライブを参照するために PC BIOS が使用する、ドライブ番号を指定します。 典型的には、最初のハードドライブは 0x80 であり、 2 番目のハードドライブは 0x81 などとなります; 0 から 0xff までの間の任意の整数を受け付け可能です。 .It Fl f Ar file 以前あった MBR のバックアップコピーを .Ar file に書き込むべきであることを指定します。 このファイルは、存在しない場合には作成され、 存在する場合には切り詰められます。 .It Fl m Ar mask スライスの有効/無効を指定します。 .Ar mask は 0 (全スライスが無効) から 0xf (4 つ全部のスライスが有効) の間の整数です。 .It Fl o Ar options コンマで区切られた文字列であり、次のオプションを指定可能です (必要に応じて .Dq no を前に付けることが可能です): .Bl -tag -width indent .It packet ディスク関連 BIOS サービスにアクセスするときに、 伝統的な (CHS) インタフェースではなく、 ディスクパケット (BIOS Int 0x13 拡張) インタフェースを必要に応じて使用します。 -これがデフォルトです。 +これにより、1023 シンリンダ超からブート可能となりますが、 +特定のBIOS サポートが必要です。 +デフォルトは .Sq nopacket -は、Int 0x13 拡張の使用を妨げます。 +です。 .It setdrv ディスクを含むドライブの参照に、-d オプションにより 定義可能なドライブ番号を使用することを強制します。 デフォルトは .Sq nosetdrv です。 .It update ブートマネージャが MBR を更新することを許可します。(スライスを .Sq 活動 状態とするためや、スライスの選択情報を保存するために、MBR が更新されます。) これがデフォルトです; .Sq noupdate オプションを指定すると、MBR は読み込み専用で扱われます。 .El .It Fl s Ar slice デフォルトのブート選択を .Ar slice に設定します。 1 から 4 までの値は、スライスを示します。 値 5 は、2 番目のディスクからのブートを示します。 本オプションは、通常、 .Sq noupdate オプションと共に使用します。 .It Fl t Ar ticks タイムアウト値を .Ar ticks に設定します。 (1 秒あたり、およそ 18.2 ticks です。) .El .Sh 関連項目 .Xr boot 8 , .Xr fdisk 8 .Sh 診断 終了状態は、成功時には 0 であり、エラー時には 0 より大きくなります。 .Sh AUTHORS .An Robert Nordier Aq rnordier@FreeBSD.org .Sh バグ .Sq packet オプションを使用すると、 .Sq boot0 が失敗することがあります。 これは BIOS サポートの性質に依存しています。 .Pp 誤った -d オペランドとともに .Sq setdrv オプションを使用すると、MBR を誤ったディスクへ書き込むことになります。 注意してください ! diff --git a/ja_JP.eucJP/man/man8/boot_i386.8 b/ja_JP.eucJP/man/man8/boot_i386.8 index bb730725ac..aca6e2fc11 100644 --- a/ja_JP.eucJP/man/man8/boot_i386.8 +++ b/ja_JP.eucJP/man/man8/boot_i386.8 @@ -1,328 +1,329 @@ .\" Copyright (c) 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" This code is derived from software written and contributed .\" to Berkeley by William Jolitz. .\" .\" Almost completely rewritten for FreeBSD 2.1 by Joerg Wunsch. .\" .\" Substantially revised for FreeBSD 3.1 by Robert Nordier. .\" .\" 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. .\" .\" @(#)boot_i386.8 8.2 (Berkeley) 4/19/94 -.\" %FreeBSD: src/sbin/reboot/boot_i386.8,v 1.23.2.1 2000/05/13 14:43:14 hoek Exp % +.\" %FreeBSD: src/sbin/reboot/boot_i386.8,v 1.23.2.2 2000/12/18 15:38:30 ru Exp % .\" .\" jpman %Id: boot_i386.8,v 1.5 1997/12/04 18:33:50 ken Exp % .\" .\" .Dd April 19, 1994 .Dt BOOT 8 i386 .Os .Sh 名称 .Nm boot .Nd システム立上げ時の手続き .Sh 解説 .Sy 電源断とクラッシュからの回復。 通常、電源復旧時とクラッシュ発生後には、システムは自動的にリブートし ます。ファイルシステムの整合性チェックが自動実行され、途中で失敗しな ければ、システムはマルチユーザ・モードに移行します。 .Pp .Sy コールドスタート。 大多数の i386 PC は、まずフロッピドライブ 0 (ドライブ A: ともいう) からのブートを試み、 それに失敗すると、 ハードディスクドライブ 0 (ドライブ C: もしくは BIOS のドライブ 0x80 ともいう) からブートしようとします。いくつかの BIOS では、この デフォルトの順序を変えたり、CD-ROM デバイスをブートデバイスとして 含めることができます。 .Pp デフォルトでは 3 段階のブートストラップが使用され、 ブートブロック (ブートストラップの 第 1 および 第 2 段階) から、 これとは別の第 3 段階のブートストラッププログラム .Xr loader 8 へと自動的に制御が移行されます。 この第 3 段階では、 ブート処理において、 ブートブロックにおいて可能なことよりも洗練された制御を提供します。 ブートブロックには、 ディスクやスライスの限られた空間しか与えられないという制約があります。 .Pp しかしながら、第 3 段階をまったく使用せずに済ますこともできます。 このようにするには、ブートブロックパラメータファイル .Pa /boot.config においてカーネル名を指定するか、 .Xr loader 8 が起動される前の短い待ち時間 (文字 .Dv - , .Dv \e , .Dv \&| , .Dv / のいずれかが表示されている間) にキーを打ちます。 第 3 段階をロードできない場合にも、第 2 段階においてブートが試みられます。 .Pp 本サブセクションの残りの部分では、ブートブロックについてのみ扱います。 .Pa loader プログラムの文書は別にあります。 .Pp ブートブロックがロードされたあとで、次のようなプロンプトが現れます。 .Bd -literal >> FreeBSD/i386 BOOT Default: 0:ad(0,a)/kernel boot: .Ed .Pp 自動ブートにおいては、フロッピ もしくはハードディスクのパーティション .Ql a から .Pa /kernel をロードしようとします。 この動作は .Ql boot: というプロンプトが出ている間なら、キーボードから適当な文字を入力する ことで中断できます。以下にあげるような入力はブート動作に対する指示と して受付けられます。 .Bl -tag -width 10x .It \&? ブートファイルを探す際のヒントとして、デフォルトのブートデバイスの ルートディレクトリにあるファイルの名前を表示します。 (パスの最後の部分に .Dv \&? を指定することもできます。この場合、任意のサブディレクトリの一覧となります。) .Pp .It bios_drive:interface(unit,part) filename Op Fl aCcDdghPrsv ブートファイルとブートフラグを指定します。 .Bl -tag -width 10x -compact .It bios_drive BIOS によって認識されるドライブ番号です。 1 つ目のドライブに対しては 0 、 2 つ目のドライブに対しては 1 、などです。 .It interface そこからブートするコントローラのタイプです。ブートファイルのイメージ をロードするのには BIOS の機能を使用するので、そのコントローラに対す る BIOS サポートが必要となることに注意して下さい。 .Pp サポートされているインタフェースを以下にあげます。 .Bl -tag -width "adXX" -compact .It ad WD100[2367] とその互換コントローラ上の ST506, IDE, ESDI, RLL ディスク .It fd 5 1/4" または 3 1/2" 高密度 フロッピ .It da サポートされている SCSI コントローラ上の SCSI ディスク .\".It cd .\"CDROM からのブート .El .It unit 使用されているインタフェース上のドライブのユニット番号です。 1 つ 目のドライブに対しては 0 、 2 つ目のドライブに対しては 1 、などです。 .It part ディスク上の BSD 部分内のパーティション文字です。詳しくは .Xr disklabel 8 を参照して下さい。慣例として、パーティション .Ql a のみが ブート可能なイメージを含んでいます。ディスクにスライス .Pq Dq fdisk パーティション か設けられていた場合、任意のスライスからブート可能です。 デフォルトでは、アクティブスライスから、 これがない場合は最初の .Fx スライスからのブートとなります。 .It filename ブートファイルの (指定されたパーティションのルートディレクトリからの 相対) パス名です。デフォルトでは .Pa /kernel となります。シンボリックリンクはサポートされていません (ハードリンク は使用できます)。 .It Fl acCdDghPrsv ブートフラグです。 .Bl -tag -width "-CXX" -compact .It Fl a カーネル初期化中に、ルートファイルシステムとしてマウントされるデバイスを 尋ねて来るようにします。 .It Fl C CDROM からブートします。 .It Fl c ロードしたカーネルに対し、ハードウェアのパラメータを変更するため、 UserConfig を実行します。 USERCONFIG, INTRO_USERCONFIG, VISUAL_USERCONFIG のいずれかのオプション付きでカーネルが構築された場合、 スクリプト中に .Ic quit コマンドがあったとしても、UserConfig 中にとどまります。 .It Fl D シングルとデュアルのコンソール設定を切り替えます。シングル設定では、 下記の .Fl h オプションの状態によって、コンソールは内部ディスプレイかシリアルポートの いずれかになります。デュアルコンソール設定では、内部ディスプレイ とシリアルポートの両方が、 .Fl h オプションの状態によらず、同時にコンソールになります。しかし、 デュアルコンソール設定は、ブートプロンプトの間だけでしか効果を持ちません。 一旦カーネルがロードされると、 .Fl h オプションによって指定されたコンソールが唯一のコンソールになります。 .It Fl d カーネルの初期化のできる限り早い段階で DDB カーネルデバッガ .Pq Xr ddb 4 を参照 に入ります。 .It Fl g GDB リモートデバッギングプロトコルを使用します。 .It Fl h 内部コンソールとシリアルコンソールの切り替えを行います。これを使用して コンソールデバイスを変更できます。例えば、内部コンソールからブートし た場合、カーネルがコンソールデバイスとしてシリアルポートを使用するよ うにするため、 .Fl h オプションを使用できます。反対に、シリアルポートからブートした場合、 カーネルがコンソールとして代わりに内部ディスプレイを使用するようにす るため、このオプションを使用できます。 シリアルポートドライバ .Xr sio 4 には、このオプションに優先するフラグがあります。 そのフラグが設定されると、ここで記述した .Fl h オプションとは無関係に、シリアルポートが常にコンソールとして使用されます。 更なる詳細については、マニュアルページ .Xr sio 4 を参照してください。 .It Fl P キーボードを検出します。キーボードが発見できなかった場合には、 .Fl D と .Fl h オプションが自動的にセットされます。 .It Fl r ルートファイルシステムを含むデバイスとしてスタティックに config され たデフォルトを使用します .Pq Xr config 8 を参照 。 .It Fl s シングルユーザ・モードで立上がるようになります。コンソールが .Dq insecure .Pq Xr ttys 5 を参照 に設定されていた場合には、root のパスワードを入力しなければなり ません。 .It Fl v デバイス検出の際 (そしてその後も) 、詳細を出力します。 .El .El .El .Pp デフォルトを設定するため、BIOS ドライブ番号, コントローラタイプ, ユニット番号, パーティション, カーネルファイル名と 有効なオプションを .Pa /boot.config に書くこともできます。 .Ql boot: プロンプトでタイプするように、 1 行で書いてください。 .Sh 関連ファイル .Bl -tag -width /kernel.old.config -compact .It Pa /boot.config ブートブロックに対するパラメータ (必須ではない) .It Pa /boot/boot1 第 1 段階のブートストラップ .It Pa /boot/boot2 第 2 段階のブートストラップ .It Pa /boot/loader 第 3 段階のブートストラップ .It Pa /kernel デフォルトカーネル .It Pa /kernel.old 普通は非デフォルトカーネル (必須ではない) .El .Sh 関連項目 .Xr ddb 4 , .Xr ttys 5 , .Xr boot0cfg 8 , .Xr btxld 8 , .Xr config 8 , .Xr disklabel 8 , .Xr halt 8 , .Xr loader 8 , .Xr reboot 8 , .Xr shutdown 8 .Sh 診断 ディスク関連のエラーが発生すると、 第 2 段階のブートストラップがエラーを報告します。 BUOS が返すものと同じエラーコードを使用し、 例えば .Dq Disk error 0x1 (lba=0x12345678) などと報告します。 エラーコードの一部のリストを示します: -.Bl -tag -width "0x80" -compat +.Pp +.Bl -tag -width "0x80" -compact .It 0x1 不正な引数 .It 0x2 アドレスマークが見付かりません .It 0x4 セクタが見付かりません .It 0x8 DMA オーバラン .It 0x9 64K 境界を越えて DMA を試みました .It 0xc 不正なメディア .It 0x10 訂正できない CRC/ECC エラー .It 0x20 コントローラの異常 .It 0x40 シークの失敗 .It 0x80 タイムアウト .El .Pp 要注意: BIOS が提供する伝統的なディスクインタフェースの制約のため、 ブートフェーズにアクセスされるブート関連の全ファイルと構造 (カーネルを含みます) は、ディスク上で (BIOS が理解するジオメトリにおいて) シリンダ 1023 以下に置かれることが必要です。 第 2 段階のブートストラップが .Dq Disk error 0x1 を報告する場合、通常はこの条件が満されていないことを意味します。 .Sh バグ このバージョンの .Bx で使用されているディスクラベルのフォーマットは、他のアーキテクチャで 使用されている物とは全く異なっています。 .Pp 空間の制約により、 .Fl P オプションにより起動されるキーボード検出は、BIOS が .Dq 拡張 キーボードを検出したかを単にテストするだけです。 .Dq XT/AT キーボード (F11, F12 キーなどを持ちません) を接続した場合、 検出は失敗します。 .Pp まだ記述されていない機能があります。 diff --git a/ja_JP.eucJP/man/man8/camcontrol.8 b/ja_JP.eucJP/man/man8/camcontrol.8 index a0fdbfd210..cb7ae48ef9 100644 --- a/ja_JP.eucJP/man/man8/camcontrol.8 +++ b/ja_JP.eucJP/man/man8/camcontrol.8 @@ -1,780 +1,775 @@ .\" .\" Copyright (c) 1998, 1999, 2000 Kenneth D. Merry. .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. The name of the author may not be used to endorse or promote products .\" derived from this software without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" %FreeBSD: src/sbin/camcontrol/camcontrol.8,v 1.19.2.5 2000/12/08 14:03:39 ru Exp % +.\" %FreeBSD: src/sbin/camcontrol/camcontrol.8,v 1.19.2.6 2000/12/18 15:38:18 ru Exp % .\" .\" jpman %Id: camcontrol.8,v 1.4 1998/12/22 02:35:45 oku Stab % .\" WORD: defect list ディフェクトリスト[camcontrol.8] .\" WORD: tagged queing タグ付きキューイング .\" .Dd September 14, 1998 .Dt CAMCONTROL 8 .Os .Sh 名称 .Nm camcontrol .Nd CAM コントロールプログラム .Sh 書式 .Nm .Aq command .Op device id .Op generic args .Op command args .Nm .Ic devlist .Op Fl v .Nm .Ic periphlist .Op device id .Op Fl n Ar dev_name .Op Fl u Ar unit_number .Nm .Ic tur .Op device id .Op generic args .Nm .Ic inquiry .Op device id .Op generic args .Op Fl D .Op Fl S .Op Fl R .Nm .Ic start .Op device id .Op generic args .Nm .Ic stop .Op device id .Op generic args .Nm .Ic eject .Op device id .Op generic args .Nm .Ic rescan .Aq bus Ns Op :target:lun .Nm .Ic reset .Aq bus Ns Op :target:lun .Nm .Ic defects .Op device id .Op generic args .Aq Fl f Ar format .Op Fl P .Op Fl G .Nm .Ic modepage .Op device id .Op generic args .Aq Fl m Ar page .Op Fl P Ar pgctl .Op Fl e .Op Fl d .Nm .Ic cmd .Op device id .Op generic args .Aq Fl c Ar cmd Op args .Op Fl i Ar len Ar fmt .Bk -words .Op Fl o Ar len Ar fmt Op args .Ek .Nm .Ic debug .Op Fl I .Op Fl T .Op Fl S .Op Fl c .Aq all|off|bus Ns Op :target Ns Op :lun .Nm .Ic tags .Op device id .Op generic args .Op Fl N Ar tags .Op Fl q .Op Fl v .Nm .Ic negotiate .Op device id .Op generic args .Op Fl c .Op Fl D Ar enable|disable .Op Fl O Ar offset .Op Fl q .Op Fl R Ar syncrate .Op Fl T Ar enable|disable .Op Fl U .Op Fl W Ar bus_width .Op Fl v .Nm .Ic format .Op device id .Op generic args .Op Fl q .Op Fl w .Op Fl y .Nm .Ic help .Sh 解説 .Nm は、ユーザが .Fx CAM サブシステムにアクセスし制御できるようにする方法を提供する ために設計されたユーティリティです。 .Pp .Nm を不適切に使用すると、 データの損失や、システムクラッシュにつながる可能性があります。経験 豊富なユーザであっても、このコマンドを使用する際には注意を払うことを お勧めします。素人さんはこのユーティリティに近付いてはいけません。 .Pp .Nm はいくつかの主機能を持っています。 その多くは、省略可能なデバイス識別子をサポートします。 デバイス識別子は、次の 3 種類の書式のいずれかを取り得ます: -.Bl -tag -width 01234567890123 +.Bl -tag -width 14n .It deviceUNIT デバイス名とデバイス番号の組み合わせを、"da5" や "cd3" のように指定します。 キャラクタデバイスノード名 (例えば /dev/rsd0.ctl) は、ここでは許され .Em ない ことに注意してください。 .It bus:target バス番号とターゲット id を指定します。 バス番号は .Dq camcontrol devlist の出力により決定可能です。 論理ユニット番号 (lun) はデフォルトの 0 になります。 .It bus:target:lun デバイスのバス (bus) とターゲット (target) と論理ユニット番号 (lun) を、 (例えば 1:2:0 のように) 指定します。 .El .Pp デバイス識別子は、指定された場合には、 機能名の直後にかつ、すべての共通引数または機能固有引数の前に置かれることが .Em 必要 です。 後述する .Fl n と .Fl u の引数は、その前に指定されるデバイス名やユニット番号をオーバライドすることに 注意してください。しかし、 .Fl n と .Fl u の引数は、bus:target または bus:target:lun の指定はオーバライドしません。 .Pp .Nm の主機能の多くは下に示す共通引数 (generic argument) をサポートします: -.Bl -tag -width 01234567890123 +.Bl -tag -width 14n .It Fl C Ar count SCSI コマンドのリトライカウント。この機能が動作するためには、エラーリカバリ -.Po -.Fl E -.Pc +.Pq Fl E をオンにしておく必要があります。 .It Fl E 指定したコマンドのための汎用の SCSI エラーリカバリを遂行 するよう、カーネルに指示を出します。リトライカウント機能 -.Po -.Fl C -.Pc +.Pq Fl C を有効にするためにはこれが必要です。 コマンドのリトライの他に、コード中にある汎用のエラーリカバリによって、 回っていない HDD を回転させるような試みが通常なされます。コマンドから 返されたセンスコードによっては、他の操作が行なわれることもあります。 .It Fl n Ar dev_name 操作を行なうデバイスのタイプを指定します。これは例えば "da", "ca" です。 .It Fl t Ar timeout SCSI コマンドのタイムアウトを秒単位で指定します。指定したコマンドのすべてに おいて、これで指定する値はデフォルトのタイムアウトより優先されます。 .It Fl u Ar unit_number デバイスユニット番号を指定します。デフォルトは 0 です。 .It Fl v 冗舌になります。SCSI コマンドに失敗するとセンス情報を表示します。 .El .Pp 主コマンド機能は次のとおりです。 .Bl -tag -width periphlist .It Ic devlist CAM サブシステムに接続されたすべての物理デバイス (論理ユニット) の リストを表示します。このリストには各デバイスに接続された周辺ドライバの 一覧も含まれます。 引数 .Fl v を指定すると、SCSI バス番号、アダプタ名、ユニット番号もあわせて 表示されます。 .It Ic periphlist 指定した物理デバイス (論理ユニット) に接続されたすべての周辺ドライバの リストを表示します。 .It Ic tur 指定したデバイスに SCSI test unit ready (0x00) コマンドを送信します。 .Nm は、そのデバイスがレディ状態であるかどうかを報告します。 .It Ic inquiry デバイスに SCSI inquiry (0x12) コマンドを送信します。デフォルトでは、 .Nm 標準の inquiry データ、デバイスのシリアル番号、転送レート情報を表示します。 特定のタイプの inquiry データだけを表示するように指定することもできます。 -.Bl -tag -width 1234 +.Bl -tag -width 4n .It Fl D 標準 inquiry データを得ます。 .It Fl S シリアル番号を表示します。このフラグだけが指定された場合、 .Nm は、ドライブが返す値の前に "Serial Number" を表示しません。これは スクリプトを書く際に役立ちます。 .It Fl R 転送レートの情報を表示します。 .El .It Ic start 指定したデバイスに、start ビットをセットした SCSI Start/Stop Unit (0x1B) コマンドを送信します。 .It Ic stop 指定したデバイスに、start ビットをクリアした SCSI Start/Stop Unit (0x1B) コマンドを送信します。 .It Ic eject 指定したデバイスに、start ビットをクリアし eject ビットをセットした SCSI Start/Stop Unit (0x1B) コマンドを送信します。 .It Ic rescan カーネルに指定したバス (XPT_SCAN_BUS)、もしくは bus:target:lun (XPT_SCAN_LUN) をスキャンさせ、新規のデバイスや外されたデバイスを 探させます。ユーザが指定できるのは、スキャンするバスもしくは 論理ユニット番号だけです。あるターゲットのすべての論理ユニット番号を スキャンすることはサポートされていません。 .It Ic reset 指定したバス (XPT_RESET_BUS) または指定した bus:target:lun (XPT_RESET_DEV) を、 カーネルにリセットさせます。 前者は、バスに SCSI バスリセットを発行することにより行います。 後者は、典型的には当該デバイスにコネクトした後に、 BUS DEVICE RESET メッセージを発行することにより行います。 本コマンドはシステムに破壊的な影響を与えることがあることに注意してください。 .It Ic defects 指定したデバイスに、SCSI READ DEFECT DATA (10) コマンド (0x37) を送信し、 ディフェクト総数、初期ディフェクトリスト (PLIST)、増分ディフェクトリスト (GLIST) を組み合わせて表示します。 -.Bl -tag -width 01234567890 +.Bl -tag -width 11n .It Fl f Ar format 書式オプションは以下の 3 つです。 .Em block , リストを論理ブロック形式で表示します。 .Em bfi , リストをインデックスからのバイト数の形式で表示します。 .Em phys , リストを物理セクタ形式で表示します。書式引数は必須です。ほとんどのドライブ は、物理セクタ形式をサポートしています。一部のドライブは論理ブロック形式を サポートしています。指定した書式をサポートしていない場合、多くのドライブは、 指定したデータ書式をサポートしていないことを示すセンス情報とともに、 別の書式でデータを返します。 .Nm は、それを検知して ドライブが返す書式ならどのようなものでも表示しようとします。ドライブが 指定した書式をサポートしていないことを報告する際に、非標準のセンスコードを 用いた場合、 .Nm は、おそらくそのエラーをリクエスト完了に失敗したためのものと見なすでしょう。 .It Fl G 増分ディフェクトリストを表示します。これは、工場出荷時以降に再マップ された不良ブロックのリストです。 .It Fl P 初期ディフェクトリストを表示します。 .El .Pp .Fl P も .Fl G もどちらも指定していない場合、 .Nm は、ドライブから返された READ DEFECT DATA ヘッダから得られるディフェクト数を 表示します。 .It Ic modepage SCSI モードページを表示します。もしくは、オプション指定により ユーザがモードページを編集できるようにします。 .Ic modepage の書式は .Pa /usr/share/misc/scsi_modes にあります。 環境変数 .Ev SCSI_MODES に別のファイルが指定されている場合はそちらが優先されます。 modepage コマンドは以下のようないくつかの引数を取ります。 -.Bl -tag -width 012345678901 +.Bl -tag -width 12n .It Fl d モードセンスのためのブロック記述子を禁止します。 .It Fl e このフラグを指定することで、ユーザはモードページ中の値を編集することが できます。 .It Fl m Ar mode_page ユーザが表示/編集したいモードページ番号を指定します。この引数は必須です。 .It Fl P Ar pgctl このフラグを指定することで、ユーザはページ制御フィールドを指定することが できます。指定可能な値は次の通りです。 .Bl -tag -width xxx -compact .It 0 現在の値 .It 1 変更可能な値 .It 2 デフォルトの値 .It 3 保存された値 .El .El .It Ic cmd 任意のデバイスに任意の SCSI CDB を送信するために用いることができます。 .Ic cmd 機能は、CDB を指定するための .Fl c 引数が必要です。他の引数はオプションで、コマンドの型に依存します。コマンドと データを指定する文法は、 .Xr cam_cdbparse 3 . に記述されています。 注: 指定した CDB によって、対象の SCSI デバイスとのデータ送受信が 発生する場合、 .Fl i または .Fl o を指定する必要があります。 -.Bl -tag -width 01234567890123456 +.Bl -tag -width 17n .It Fl c Ar cmd Op args これは SCSI CDB を指定します。CDB は 6, 10, 12, 16 バイトのいずれか が可能です。 .It Fl i Ar len Ar fmt これは、読み込むデータの量と、どのように表示するかとを指定します。書式が .Sq - である場合、 .Ar len バイトのデータがデバイスから読み込まれ、標準出力に書き出されます。 .It Fl o Ar len Ar fmt Op args これは、デバイスに書き出すデータの量と、書き出されるデータとを指定します。 書式が .Sq - である場合、 .Ar len バイトのデータが標準入力から読み込まれデバイスに書き出されます。 .El .It Ic debug カーネルの CAM デバッグ用 printf をオンにします。カーネルの設定 ファイル中に CAMDEBUG オプションが指定されている必要があります。 注意: 現在のところ、デバッグ 用 printf を使えるようにすると、極めて多数のカーネル printf が生じる ことになります。 一度デバッグ用 printf をスタートさせてしまうと、停止させるのは難しい でしょう。というのは、カーネルはメッセージを表示するのに忙しくなるので、 他のリクエストをすぐにサービスすることができなくなるからです。 .Ic debug 機能はいくつかの引数を取ります。 -.Bl -tag -width 012345678901234567 +.Bl -tag -width 18n .It Fl I CAM_DEBUG_INFO printf を有効にします。 .It Fl T CAM_DEBUG_TRACE printf を有効にします。 .It Fl S CAM_DEBUG_SUBTRACE printf を有効にします。 .It Fl c CAM_DEBUG_CDB printf を有効にします。これにより、カーネルが、指定した デバイスに送信した SCSI CDB を表示することになります。 .It all すべてのデバイスについてデバッグ出力を有効にします。 .It off すべてのデバイスについてデバッグ出力を無効にします。 .It bus Ns Op :target Ns Op :lun 指定したバス、ターゲット、論理ユニット番号(lun)についてデバッグ出力を 有効にします。論理ユニット番号、もしくはターゲットと論理ユニット番号が 指定されない場合は、ワイルドカード指定されたものとして扱います。(すなわち、 バスだけを指定すると、そのバスのすべてのデバイスについてデバッグ用 printf が有効になります。) .El .It Ic tags \&"tagged openings" の数を、表示または設定します。 この値は、特定のデバイスに対して同時にキューイング可能な トランザクション数です。 デフォルトでは、コマンド固有の引数が無いと (一般的な引数のみを指定すると)、 .Ic tags コマンドは、 対象のデバイスにキューイング可能なトランザクション数の \&"soft" 最大値を表示します。 さらに詳細な情報を得るには、次に説明する .Fl v 引数を指定してください。 -.Bl -tag -width 0123456 +.Bl -tag -width 7n .It Fl N Ar tags 指定したデバイスのタグ数を設定します。 この値は、 カーネル中の癖の表 (quirk table) にある最小値と最大値の間にある必要があります。 タグ付きキューイングをサポートするほとんどのデバイスのデフォルトは、 最小値が 2 で最大値が 255 です。 指定したデバイスの最大値と最小値を調べるには、 .Fl v スイッチを使用します。 この .Nm サブコマンドに対する .Fl v スイッチの意味は後述します。 .It Fl q 静かになり、タグ数を報告しません。 一般的には、タグ数を設定するときに使用します。 .It Fl v 冗長フラグは、 .Em tags 引数に対しては特殊な機能があります。 このフラグを指定すると .Nm は、XPT_GDEV_TYPE CCB のタグ付きキューイング関連フィールドを表示します: -.Bl -tag -width 0123456789012 +.Bl -tag -width 13n .It dev_openings 指定されたデバイスに対してキューイング可能なトランザクションの総数です。 .It dev_active 指定されたデバイスに対して現在キューイングされているトランザクション数です。 .It devq_openings トランザクション用のカーネルキュー空間です。 通常この数は dev_openings を反映します。 エラーリカバリ時は例外であり、対象デバイスのキューは凍結されるか (デバイスはコマンド受信を許されません)、 dev_openings の数が減じられるか、トランザクションの再実行が行われます。 .It devq_queued カーネルキュー内でデバイスが空くのを待っているトランザクション数です。 エラーリカバリ中でなければ、通常この数は 0 です。 .It held held 数は、周辺装置ドライバが保持する CCB 数です。 このような CCB は、丁度完了したものであるか、 デバイスによってサービスを受けるために転送層に渡されようとしているものです。 保持されている CCB は、対象のデバイスに空きを予約します。 .It mintags 同時にデバイスにキューイング可能なトランザクション数の、 現在の "hard" 最小値です。既出の .Ar dev_openings 値はこの数より小さくはなり得ません。 .Ar mintags のデフォルト値は 2 ですが、 デバイスによってはより大きくまたはより小さく設定され得ます。 .It maxtags 同時にデバイスにキューイング可能なトランザクション数の、 現在の "hard" 最大値です。既出の .Ar dev_openings はこの値より大きくはなり得ません。 .Ar maxtags のデフォルト値は 255 ですが、 デバイスによってはより大きくまたはより小さく設定され得ます。 .El .El .It Ic negotiate 様々な通信パラメータを、表示またはネゴシエートします。 コントローラによっては、特定の値の設定や変更をサポートしません。 例えば Adaptec 174x コントローラは、 デバイスの同期レートやオフセットの変更をサポートしません。 あるパラメータの設定をサポートしないとコントローラが示す場合、 .Nm はそのパラメータの設定を試みません。 コントローラがサポートするものを調べるには、 .Fl v フラグを使用します。 .Ic negotiate コマンドでの .Fl v フラグの意味は後述します。 また、コントローラドライバによっては、 下位のコントローラがあるネゴシエーションパラメータの変更を サポートしているにもかかわらず、 そのネゴシエーションパラメータの設定をサポートしません。 Advansys ワイドコントローラのように、 コントローラの同期ネゴシエーションの有効と無効をサポートしているにも かかわらず、 同期ネゴシエーションレートの設定をサポートしないコントローラがあります。 -.Bl -tag -width 01234567890123456 +.Bl -tag -width 17n .It Fl a ネゴシエーション設定がすぐに効果を持つようにするため、 対象デバイスに Test Unit Ready コマンドを送ります。 .It Fl c 現在のネゴシエーション設定を、表示または設定します。これがデフォルトです。 .It Fl D Ar enable|disable 切断 (disconnection) を、有効または無効にします。 .It Fl O Ar offset コマンド遅延オフセットを設定します。 .It Fl q 静かになり、なにも表示しません。 一般的には、パラメータを設定したいが状態情報は不要であるときに有用です。 .It Fl R Ar syncrate デバイスの同期レートを変更します。 同期レートは、MHz で指定される浮動小数点値です。 例えば .Sq 20 としては、 .Sq 20.000 が正しい値です。 .It Fl T Ar enable|disable デバイスのタグ付きキューイングを、有効または無効にします。 .It Fl U ユーザのネゴシエーション設定を、表示または設定します。 デフォルトでは、現在のネゴシエーション設定を表示または設定します。 .It Fl v 冗長フラグは、 .Sq negotiate サブコマンドに対しては特殊な意味があります。 このフラグを指定すると .Nm は、コントローラデバイスに送った Path Inquiry (XPT_PATH_INQ) CCB の内容を 表示します。 .It Fl W Ar bus_width デバイスとネゴシエートするバス幅を指定します。 バス幅はビット数で指定します。 指定可能な値は、8, 16, 32 のいずれかのビット数です。 設定が効果を持つためには、 そのバス幅をコントローラがサポートする必要があります。 .El .Pp 一般的には、あるデバイスの同期レートとオフセット設定が効果をあらわすのは、 そのデバイスに対してコマンドが送られてからです。 前述の .Fl a スイッチは、ネゴシエーションパラメータが効果をあらわすようにするため、 自動的に Test Unit Ready をデバイスに送ります。 .It Ic format SCSI FORMAT UNIT コマンドを指定したデバイスに送ります。 .Pp .Em 警告! 警告! 警告! .Pp ディスクをローレベルフォーマットすると、 ディスク上の「すべて」のデータを破壊します。 このコマンドを発行するときには、非常に注意してください。 本当はローレベルフォーマットが不要なディスクに対し、 多くのユーザがローレベルフォーマットを行っています。 ローレベルフォーマットが必要となる状況は、比較的少ないです。 ローレベルフォーマットが必要となる理由のひとつは、 ディスクの物理セクタの大きさを変えた後でディスクを初期化するためです。 ローレベルフォーマットが必要となる別の理由は、 ディスクへの読み込みまたは書き込みの要求に対して "medium format corrupted" (メディアフォーマットが壊れている) エラーとなる場合に、そのディスクを復活させるためです。 .Pp ディスクによっては、 他のディスクよりもフォーマットに時間がかかります。 フォーマットが完了するために十分なタイムアウト値を、 ユーザが指定する必要があります。 デフォルトのフォーマットタイムアウトは 3 時間です。 ハードディスクによっては、非常に短い期間 (5 分以下の単位) でフォーマット操作が完了します。 このような場合のほとんどは、 FORMAT UNIT コマンドをドライブが実際にはサポートをしていないため、 すなわちコマンドを受け付けて数分待ってから戻るだけであるためです。 .Pp .Sq format サブコマンドはいくつかの引数を取り、デフォルトの動作を変えます。 .Fl q および .Fl y の引数は、スクリプトにおいて有用です。 .Pp -.Bl -tag -width 123456 +.Bl -tag -width 6n .It Fl q 静かになり、状態メッセージを表示しません。 しかしながら、本オプションは、質問は無効化しません。 質問を無効化するには、後述の .Fl y 引数を使用してください。 .It Fl w 非即時のフォーマットコマンドを発行します。 デフォルトでは、 .Nm は FORMAT UNIT コマンドを即時ビット (immediate bit) をセットして発行します。 これは、フォーマットが実際に完了する前に、 即時にフォーマットコマンドを返すよう、デバイスに指示します。 そして .Nm が .Tn SCSI センス情報を毎秒デバイスから収集し、フォーマット処理の進捗を判断します。 .Fl w 引数が指定されると、 .Nm は非即時のフォーマットコマンドを発行します。 この場合、ディスクの何パーセントがフォーマットされたのかを ユーザへ知らせるための表示は行われません。 .It Fl y 質問をしません。 デフォルトでは、 .Nm はユーザに対し、対象のディスクを本当にフォーマットしたいのか、 そしてフォーマットコマンドのデフォルトタイムアウトで良いかを質問します。 タイムアウトをコマンドラインで指定した場合、タイムアウトは質問されません。 .El .It help 冗長な、使用方法に関する情報を表示します。 .El .Sh 環境変数 変数 .Ev SCSI_MODES によって、別のモードページの書式ファイルを指定することができます。 .Pp 変数 .Ev EDITOR によって、 .Nm は、モードページの編集を行なう際に どのテキストエディタを起動するかを決定します。 .Sh 関連ファイル .Bl -tag -width /usr/share/misc/scsi_modes -compact .It Pa /usr/share/misc/scsi_modes SCSI モード書式データベース。 .It Pa /dev/xpt0 トランスポート層デバイス。 .It Pa /dev/pass* CAM アプリケーションパススルーデバイス。 .El .Sh 使用例 .Dl camcontrol eject -n cd -u 1 -v .Pp cd1 から CD をイジェクトし、コマンド実行に失敗した場合は SCSI センス情報を 出力します。 .Pp .Dl camcontrol tur da0 .Pp SCSI test unit ready コマンドを da0 に送信します。 .Nm はそのディスクがレディ状態であるかどうかを報告しますが、 .Fl v スイッチが指定されていないため、コマンド実行に失敗してもセンス情報を 表示しません。 .Pp .Bd -literal -offset indent camcontrol tur da1 -E -C 4 -t 50 -v .Ed .Pp SCSI test unit ready コマンドを da1 に送信します。カーネルエラーリカバリ を有効にします。リトライカウントを 4 に、タイムアウトを 50 秒に 設定します。コマンド実行に失敗した場合( .Fl v フラグがあるので)センス情報が出力されます。エラーリカバリが設定されて いるので、ディスクが回転していない場合は回転させられます。 .Nm はディスクがレディ状態かどうかを報告します。 .Bd -literal -offset indent camcontrol cmd -n cd -u 1 -v -c "3C 00 00 00 00 00 00 00 0e 00" \e -i 0xe "s1 i3 i1 i1 i1 i1 i1 i1 i1 i1 i1 i1" .Ed .Pp READ BUFFER コマンド (0x3C) を cd1 に対して発行します。cd1 のバッファサイズと cd1 のキャッシュの最初の 10 バイトを表示します。コマンド実行に失敗した場合 SCSI センス情報を表示します。 .Pp .Bd -literal -offset indent camcontrol cmd -n cd -u 1 -v -c "3B 00 00 00 00 00 00 00 0e 00" \e -o 14 "00 00 00 00 1 2 3 4 5 6 v v v v" 7 8 9 8 .Ed .Pp WRITE BUFFER コマンド (0x3B) を cd1 に対して発行します。(予約済の) 4 バイト ヘッダを含まないデータ 10 バイトを書き出します。コマンド実行に失敗した場合 センス情報を表示します。このコマンドには細心の注意を払って下さい。不適切に 使用した場合、データが破壊されるかもしれません。 .Pp .Bd -literal -offset indent camcontrol modepage da3 -m 1 -e -P 3 .Ed .Pp da3 のモードページ 1 (Read-Write Error Recover ページ)を編集し、編集結果を そのドライブにセーブします。モードページ 1 には、 ディスクドライブの読み出し、書き込みの自動再配置の設定などが含まれます。 .Pp .Dl camcontrol rescan 0 .Pp SCSI バス 0 を再スキャンし、追加、削除、変更されたデバイスを探します。 .Pp .Dl camcontrol rescan 0:1:0 .Pp SCSI バス 0, ターゲット 1, 論理ユニット番号 0 を再スキャンし、そのデバイスが 追加、削除、変更されたかどうかを調べます。 .Pp .Dl camcontrol tags da5 -N 24 .Pp da5 の同時トランザクション数を 24 に設定します。 .Pp .Bd -literal -offset indent camcontrol negotiate -n da -u 4 -T disable .Ed .Pp da4 のタグ付きキューイングを無効にします。 .Pp .Bd -literal -offset indent camcontrol negotiate -n da -u 3 -R 20.000 -O 15 -a .Ed .Pp 同期レート 20MHz とオフセット 15 を、da3 とネゴシエートします。 その後 Test Unit Ready コマンドを送り、設定が効果をあらわすようにします。 .Sh 関連項目 .Xr cam 3 , .Xr cam_cdbparse 3 , .Xr cam 4 , .Xr pass 4 , .Xr xpt 4 .Sh 歴史 .Nm コマンドは、 .Fx 3.0 で最初に現れました。 .Pp モードページ編集のコードと任意の SCSI コマンドのコードは、 Julian Elischer と Peter Dufault が書いた、かつての .Xr scsi 8 ユーティリティと .Xr scsi 3 ライブラリのものに基づいています。 .Xr scsi 8 プログラムが最初に出現したのは 386BSD 0.1.2.4 で、 .Fx で最初に出現したのは、 .Fx 2.0.5 です。 .Sh 作者 .An Kenneth Merry Aq ken@FreeBSD.org .Sh バグ コマンド行引数を解釈するコードは、どのサブコマンドが複数の引数を取るかを 知りません。ですから、たとえば、 .Bd -literal -offset indent camcontrol cmd -n da -u 1 -c "00 00 00 00 00 v" 0x00 -v .Ed .Pp のようなことを試みた場合、test unit ready コマンドで得られるセンス情報は 出力されません。というのは、 .Fl c の 2 番目の引数 -.Po -0x00 +.Pq 0x00 .Pc を見た時点で、 .Nm の最初の .Xr getopt 3 呼び出しが 終ってしまうためです。 この動作を修正するには、ある程度の規模のコードを書き加えるか、 .Xr getopt 3 インタフェースを変更するかのどちらかが必要でしょう。 この問題を回避するもっとも良い方法は、常に .Nm 共通引数をコマンド固有の引数の前に指定していることを確認することです。 diff --git a/ja_JP.eucJP/man/man8/comcontrol.8 b/ja_JP.eucJP/man/man8/comcontrol.8 index aacac01307..7c61b7dd3d 100644 --- a/ja_JP.eucJP/man/man8/comcontrol.8 +++ b/ja_JP.eucJP/man/man8/comcontrol.8 @@ -1,61 +1,62 @@ -.\" %FreeBSD: src/sbin/comcontrol/comcontrol.8,v 1.15.2.2 2000/12/08 14:03:40 ru Exp % +.\" %FreeBSD: src/sbin/comcontrol/comcontrol.8,v 1.15.2.3 2000/12/18 15:38:19 ru Exp % .\" jpman %Id: comcontrol.8,v 1.3 1997/08/16 13:09:13 horikawa Stab % .Dd May 15, 1994 .Dt COMCONTROL 8 .Os FreeBSD .Sh 名称 .Nm comcontrol .Nd シリアルデバイス(sio) の制御 .Sh 書式 .Nm .Ar sio_special_device .Op options .Sh 解説 .Nm は、指定したシリアルデバイス (sio) の特別な設定内容を表示/変更するのに 用いられます。 デバイス名以外の引数が指定されない場合、 制御可能な全ての項目が表示されます。 .Nm をこのように利用する際には、 当該デバイスの読み取り許可だけが必要になります。 設定を変更できるのはスーパユーザだけです。 .Pp 以下のオプションが利用可能です: .Bl -tag -width width .It Cm dtrwait Ar number DTR が落ちたあと待機する時間を設定します。 単位は 100 分の 1 秒です。 デフォルトは 300 すなわち 3 秒です。 このオプションは主として、モデムをリセットした後に 適切な復帰時間を置くのに用いられます。 .It Cm drainwait Ar number 出力が出てくるまでの待機時間を設定します。 単位は秒です。 デフォルトは 0 つまり無限に待ち続けます。 このオプションは主に、 待ち時間上限値を指定してモデムのハングを回避するのに用いられます。 .El .Pp .Nm の標準的な使い方は、スタートアップスクリプト .Pa /etc/rc.serial の中に .Nm の起動を含めておくことです。 .Sh 関連項目 .Xr stty 1 , .Xr sio 4 .Sh 関連ファイル .Bl -tag -width /dev/ttyd? -compact .It Pa /dev/ttyd? ダイヤルインデバイス。結線した端末(hardwired terminals)。 .It Pa /dev/cuaa? ダイヤルアウトデバイス。 +.El .Sh 作者 Christopher G. Demetriou .Sh 歴史 オリジナルは 386BSD 0.1 に対する cgd の com パッケージパッチの バージョン 0.2.1 です。 かつては双方向制御機能を持っていましたが、 現在ではこれらは標準機能となり、制御できるものはほとんどありません。 diff --git a/ja_JP.eucJP/man/man8/dump.8 b/ja_JP.eucJP/man/man8/dump.8 index aab89ef74d..b964ab3df2 100644 --- a/ja_JP.eucJP/man/man8/dump.8 +++ b/ja_JP.eucJP/man/man8/dump.8 @@ -1,375 +1,375 @@ .\" Copyright (c) 1980, 1991, 1993 .\" 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 acknowledgment: .\" 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. .\" .\" @(#)dump.8 8.3 (Berkeley) 5/1/95 -.\" %FreeBSD: src/sbin/dump/dump.8,v 1.27.2.2 2000/12/08 14:03:41 ru Exp % +.\" %FreeBSD: src/sbin/dump/dump.8,v 1.27.2.3 2000/12/18 15:38:19 ru Exp % .\" .\" jpman %Id: dump.8,v 1.2 1997/06/12 05:57:09 yugawa Stab % .Dd May 1, 1995 .Dt DUMP 8 .Os BSD 4 .Sh 名称 .Nm dump , .Nm rdump .Nd ファイルシステムのバックアップ .Sh 書式 .Nm .Op Fl 0123456789acknu .Op Fl B Ar records .Op Fl b Ar blocksize .Op Fl d Ar density .Op Fl f Ar file .Op Fl h Ar level .Op Fl s Ar feet .Op Fl T Ar date .Ar filesystem .Nm .Op Fl W Li \&| Fl w .Pp -.in -\n(iSu +.in \" XXX ( .Bx 4.3 形式のオプションは後方互換性のために実装されていますが、 ここでは説明していません。) .Sh 解説 .Nm は、ファイルシステムを調べて バックアップする必要のあるファイルを決定します。 これらのファイルは、指定されたディスク、テープや、 その他の記憶メディアへ保存のためコピーされます (リモートバックアップについては、 .Fl f オプションを参照)。 ダンプの大きさが記録メディアの容量より大きい場合は、 複数ボリュームに分割します。 たいていのメディアの容量は、メディアの終りを通知されるまで 書き込んでみることで決定します。 この方法は、 .Fl a オプションにより強制的に使用することもできます。 .Pp メディアの終りを正しく通知できないメディア (一部の カートリッジ・テープドライブ等) の容量は、 テープ長と記録密度やブロック数のオプションから求め、 各ボリュームはすべて同じ容量を持つものとします。 デフォルトでは、 オペレータにメディア交換を要求した後の各ボリュームにも 同じ出力ファイル名を使用します。 .Pp .Nm は、次のオプションをサポートしています。 .Bl -tag -width Ds .It Fl 0\-9 ダンプレベル。 レベル 0 はフルバックアップを意味し、ファイルシステム全体をコピー することを保証します (ただし以下の .Fl h オプションにも注意して下さい)。 0 より大きなレベル番号はインクリメンタルバックアップを意味し、 前回のダンプ (今回指定したものより低いレベルのダンプ) 以降に作られたか修正されたすべてのファイルをコピーします。 デフォルトのレベルは 0 です。 .It Fl B Ar records ボリュームあたりの 1 KB ブロック数です。 このオプションは、テープ長と記録密度を基にしたテープ容量より 優先されます。 .It Fl a .Dq オートサイズ 全てのテープ長の考慮をせず、メディアの終了を通知されるまで、強制的に 書き込みを続けます。現在のほとんどのテープドライブでは、この方法により もっとも良い結果が得られます。特に、使いかけのテープに追加したり、 ハードウェア圧縮機能のあるテープドライブ(圧縮率がどの程度になるか不確かな もの)を使用したりする場合にこのオプションを使用することをお薦めします。 .It Fl b Ar blocksize ダンプレコードあたりのブロックサイズを K バイト単位で指定します。 .It Fl c カートリッジテープドライブ用に、記録密度とテープ長のデフォルトをそれぞれ 8000 bpi、1700 feet に変更します。 .It Fl h Ar level ダンプレベルが .Ar level 以上の時に、ユーザが指定した .Dq nodump フラグ -.Dp Dv UF_NODUMP +.Pq Dv UF_NODUMP に従います (h: honor the flag)。 デフォルトの honor レベルは 1 ですから、 そのようなファイルは、インクリメンタルダンプからは省かれますが、 フルバックアップには含まれます。 .It Fl d Ar density テープの記録密度を .Ar density に設定します。デフォルトは 1600BPI です。 .It Fl f Ar file バックアップの出力先ファイルを指定します。 出力先ファイルとしては、 .Pa /dev/rsa0 (テープドライブ)や .Pa /dev/fd1 (フロッピーディスクドライブ)のようなデバイスファイル、 通常ファイル、 .Ql Fl (標準出力)を指定することができます。 複数のファイル名を、コンマで区切って一つの引数として指定する ことができます。 各ファイルは、リストされた順に一つのダンプボリュームに使用されます。 指定した名前の数より多くのボリュームが必要な場合、 メディアの交換を要求した後、最後のファイル名を残りのすべての ボリュームに使用します。 ファイル名が、 .Dq host:file または、 .Dq user@host:file の形式である場合、 .Nm は、 .Xr rmt 8 を使用してリモートホスト上の指定されたファイルに書き込みます。 リモートの .Xr rmt 8 のデフォルトのパス名は .Pa /etc/rmt ですが、環境変数 .Ev RMT の値が優先されます。 .It Fl k リモートのテープサーバとの通信でケルベロス認証を使います。 (このオプションが有効な状態で .Nm がコンパイルされた場合にのみ利用できます。) .It Fl n .Nm がオペレータに注意を促す時に、 .Xr wall 1 に似た方法で .Dq operator グループに属するすべてのユーザにメッセージを送ります。 .It Fl s Ar feet テープの容量を計算する時に記録密度とともに使います。 この容量を超えた場合に、 .Nm は新しいテープを要求します。 このオプションはやや控え目に指定することをお勧めします。 デフォルトのテープの長さは、2300 フィートです。 .It Fl T Ar date .Pa /etc/dumpdates から得られた日時の代わりに、指定された date をダンプの起点として 使います。date の形式は .Xr ctime 3 のそれと同じです。このオプションは期間を指定してバックアップを 取るダンプスクリプトで有用です。 .Fl T オプションは .Fl u オプションと同時には指定できません。 .It Fl u ダンプが成功した後で、 .Pa /etc/dumpdates ファイルを更新します。 .Pa /etc/dumpdates は人が読めるファイルであり、各行に以下のレコードが フリーフォーマットで記録されています : ファイルシステム名、インクリメントレベル、 .Xr ctime 3 形式のダンプ日付。 各レベルとファイルシステムごとにエントリが一つだけ存在します。 必要なら、 .Pa /etc/dumpdates の各フィールドを編集しても構いません。 .It Fl W .Nm は、ダンプの必要があるファイルシステムをオペレータに表示します。 この情報は .Pa /etc/dumpdates と .Pa /etc/fstab ファイルから集められます。 .Nm は、 .Pa /etc/dumpdates の中の各ファイルシステム毎に最新のダンプ日付とレベルを示し、 ダンプするべきファイルシステムを明らかにします。 .Fl W オプションが指定された場合、その他のすべてのオプションは無視され、 .Nm は直ちに終了します。 .It Fl w W と同様ですが、ダンプの必要のあるファイルシステムのみを表示します。 .El .Pp .Nm は、以下に示す場合にオペレータの介入を要求します : テープの終了、 ダンプの終了、 テープ書き込みエラー、 テープオープンエラー、 ディスク読み込みエラー (32 回を越えた場合)。 処理を続けられない時や何か大変まずい事態になった場合には、 .Nm は、 .Fl n オプションがあればすべてのオペレータへ警告したうえで、 .Em dump の制御端末上でオペレータとやりとりします。 .Nm コマンドからのすべての質問には、 .Dq yes または .Dq no で適切に答えなければなりません。 .Pp フルダンプの実施には多くの時間と労力がかかるので、 .Nm は各テープボリュームの先頭にチェックポイントを設定します。 何らかの理由により、あるボリュームの書き込みを失敗した場合には、 テープの巻き戻し、排出、新しいテープのマウントの後で、 .Nm はオペレータの許可の下でチェックポイントから実行を再開します。 .Pp .Nm は処理の進行を定期的にオペレータに報告します。 報告には、少なめに推定される書き込みブロック数、 必要なテープ数、完了までの時間、テープ交換までの時間、 を含みます。 .Nm に使っている端末が使用中であることが他人にも分かるように、 このメッセージは冗長になっています。 .Pp ディスクに壊滅的なトラブルが起きた時に、 バックアップテープやファイルからディスクを復元するために 必要な時間は、 インクリメンタルダンプを適当なシーケンスで実行する事によって 最小にする事ができます。 最小のテープ数でこれを行なう効果的な方法を示します。 .\" staggering .Bl -bullet -offset indent .It 常にレベル 0 のバックアップから開始します。例えば以下の通りです。 .Bd -literal -offset indent /sbin/dump -0u -f /dev/nrsa0 /usr/src .Ed .Pp これを一ヵ月か二ヵ月毎に新しいテープに対して実施し、 ずっと保存します。 .It 0 レベルのダンプの後は、アクティブなファイルシステムのダンプを、 修正ハノイの塔アルゴリズムによる 次の様なダンプレベルシーケンスによって、毎日行います。 .Bd -literal -offset indent 3 2 5 4 7 6 9 8 9 9 ... .Ed .Pp 毎日のダンプには、一週間毎に繰り返し使われる事になる 一定の数のテープを使う事ができます。 週毎にレベル 1 ダンプを行ない、毎日のハノイ・シーケンスは レベル 3 から開始します。 週毎のダンプには、ダンプするファイルシステム毎に、これも繰り返し 使われる事になる一定数のテープを使います。 .El .Pp 何ヵ月かの後、毎日と毎週のテープはダンプサイクルから順に外し、 新品のテープを導入すべきです。 .Sh 環境変数 環境変数 .Ev RMT は、リモートの .Xr rmt 8 プログラムのパス名を決定するのに用いられます。 .Sh 関連ファイル .Bl -tag -width /etc/dumpdates -compact .It Pa /dev/rsa0 デフォルトのダンプテープユニット .It Pa /etc/dumpdates ダンプの日付を記録するファイル .It Pa /etc/fstab ダンプテーブル : ファイルシステムと頻度を決めるファイル .It Pa /etc/group .Em operator グループを検索する .El .Sh 関連項目 .Xr fstab 5 , .Xr restore 8 , .Xr rmt 8 .Sh 診断 詳しいメッセージがたくさん出ます。 .Pp 正常時は終了コード 0 で終了します。 開始時のエラーは終了コード 1 で、 異常終了は終了コード 3 で表されます。 .Sh バグ 32 個未満のファイルシステムからの読み取りエラーは無視されます。 .Pp 各リール (ボリューム) ごとに新たなプロセスが作られ、 リールを書き終った親プロセスは テープ全体の書き込みが終るまで待っています。 .Pp 現状では、 .Xr physio 9 スライスのリクエストは 64 KB の塊になります。したがって、それより大きな テープのブロックサイズを使用することはできず、 .Nm はこれが発生するのを防ぎます。 .Pp .Nm の .Fl W や .Fl w オプションは、 .Pa /etc/fstab にリストされていても、 .Pa /etc/dumpdates に記録のないファイルシステムについては報告しません。 .Pp .Nm コマンドが、 ダンプシーケンスについて知っていて、 使い散らかしたテープの使用履歴を管理でき、 どのテープをマウントすれば良いかオペレータに教えてくれ、 .Xr restore を実行するオペレータをもっと助けてくれたら、 もっと使いやすいでしょうね。 .Pp セキュリティ的な歴史により、 .Nm は、root 以外のユーザでリモートバックアップを行うことはできません。 これは、 .Fx の今後のバージョンでは修正されるでしょう。 現状では、(従来通り) setuid されていれば正常に動作しますが、 セキュリティ的なリスクを伴います。 .Sh 歴史 .Nm コマンドは、 .At v6 から登場しました。 diff --git a/ja_JP.eucJP/man/man8/fdisk.8 b/ja_JP.eucJP/man/man8/fdisk.8 index 3e93d77488..795d1e1c89 100644 --- a/ja_JP.eucJP/man/man8/fdisk.8 +++ b/ja_JP.eucJP/man/man8/fdisk.8 @@ -1,463 +1,462 @@ -.\" %FreeBSD: src/sbin/i386/fdisk/fdisk.8,v 1.17.2.3 2000/12/14 14:10:35 ru Exp % +.\" %FreeBSD: src/sbin/i386/fdisk/fdisk.8,v 1.17.2.4 2000/12/18 15:38:23 ru Exp % .\" .\" jpman %Id: fdisk.8,v 1.4 1997/07/26 21:56:04 horikawa Stab % .Dd October 4, 1996 .Dt FDISK 8 .Os FreeBSD .Sh 名称 .Nm fdisk .Nd PC パーティションのメンテナンスプログラム .Sh 書式 .Nm .Op Fl BIaistu .Op Fl b Ar bootcode .Op Fl 1234 .Op Ar disk .Bl -tag -width time .Nm .Fl f Ar configfile .Op Fl itv .Op Ar disk .Sh 前置き BIOS がカーネルをブートするために、 一定の約束をちゃんと守らねばなりません。 ディスクのセクタ 0 はブートコード、パーティションテーブル、 マジックナンバを含んでいなければならないのです。 BIOS パーティションはディスクをいくつかの部分に分けるのにも使われます。 BIOS はセクタ 0 を読み込み、マジックナンバを確認します そして、セクタ 0 のブートコードはパーティションテーブルを探し、 どのパーティションが .Em アクティブ と印されているか判定します。 そして、このブートコードはブートストラップを .Em アクティブ パーティションから読み込み、ブート可能の印が付いていればこれを実行します。 DOS では、1 個以上のパーティションと 1 個の .Em アクティブ を持てます。 DOS の .Nm プログラムは、 ディスク空間を 1 個以上のパーティションに分割して、1 個の .Em アクティブ を設定することができます。 .Sh 解説 .Fx のプログラム .Nm は、DOS のそれと似た目的に役立ちます。 第 1 の形は、パーティション情報の表示や、 パーティションテーブルの対話的な編集に使われます。 第 2 の形は、 .Ar configfile を使ってパーティションテーブルを書き込むという使い方であり、 他のスクリプト/プログラムから利用するよう設計されています。 .Pp オプション: .It Fl a アクティブパーティションの変更のみを行ないます。 .Fl f があるときには無視されます。 .It Fl b Ar bootcode ブートコードをファイル .Ar bootcode から取得します。 .It Fl B ディスクのセクタ 0 に含まれるブートコードを再初期化します。 もし .Fl f がなければ、無視されます。 .It Fl f Ar configfile パーティションの値をファイル .Ar configfile を使って設定します。 .Fl i もあるときには、 .Ar configfile が読み込まれるに先立って、 存在するパーティションは全部消され(つまり「未使用」の印をつけられる) ますが、この場合を除いて、 .Ar configfile はいつも存在するパーティションの変更を行ないます。 .Ar configfile は "-" であってもよく、この場合 .Ar 標準入力 が読まれます。 ファイルの構文は、以降の .Sx 設定ファイル の節をご覧下さい。 .Pp .Em 警告 Ns : .Fl f が使われたときには、 (対話モードで尋ねられるように) 本当にパーティションテーブルを書き込むのかどうかを尋ねられません。 用心して使うこと! .It Fl i ディスクのセクタ 0 を初期化します。 もし .Fl f がなければ、 .Fl u の意味も含みます。 .It Fl I 単一の FreeBSD スライスがディスク全体となるように、 セクタ 0 の内容を初期化します。 .It Fl s サマリ情報を表示し、終了します。 .It Fl t テストモード; パーティションテーブル値を書き込みません。一般に .Fl f オプションを付けて、パーティションテーブルに書き込まれるはずのものを 見るのに使われます。 .Fl v の意味を含みます。 .It Fl u ディスクのセクタ 0 を更新 (編集) するのに使われます。 .Fl f があるときには無視されます。 .It Fl v 冗長になります。 .Fl f が使われたときには、 .Nm はディスクに書き込まれるパーティションテーブルを表示します。 .It Fl 1234 1 個の fdisk エントリの操作だけを行ないます。 .Fl f があるときには無視されます。 .El .Pp 最後のディスク名 .Ar disk は、 .Sq 裸の ディスク名だけ、 つまり .Ql da0 か、あるいは .Pa /dev の下に完全に限定されたデバイスノードで与えることができます。 もし省略された場合、ディスク .Ql wd0 , .Ql da0 , .Ql od0 が、どれか 1 個が応答して見付かるまで この順序で検索されます。 .Pp 引数なしで呼び出されたときには、 セクタ 0 パーティションテーブルを表示します。 例えば: - .Bd -literal ******* Working on device /dev/rwd0 ******* parameters extracted from in-core disklabel are: cylinders=769 heads=15 sectors/track=33 (495 blks/cyl) parameters to be used for BIOS calculations are: cylinders=769 heads=15 sectors/track=33 (495 blks/cyl) Warning: BIOS sector numbering starts with sector 1 Information from DOS bootblock is: The data for partition 1 is: sysid 165,(FreeBSD/NetBSD/386BSD) start 495, size 380160 (185 Meg), flag 0 beg: cyl 1/ sector 1/ head 0; end: cyl 768/ sector 33/ head 14 The data for partition 2 is: sysid 164,(unknown) start 378180, size 2475 (1 Meg), flag 0 beg: cyl 764/ sector 1/ head 0; end: cyl 768/ sector 33/ head 14 The data for partition 3 is: The data for partition 4 is: sysid 99,(ISC UNIX, other System V/386, GNU HURD or Mach) start 380656, size 224234 (109 Meg), flag 80 beg: cyl 769/ sector 2/ head 0; end: cyl 197/ sector 33/ head 14 .Ed .Pp このディスクは、たまたまディスク全体を満す 3 つのパーティションに分割されています。 2 つ目のパーティションは最初のパーティションの最後に重なっています。 (デバッグ目的に使われます) .Bl -tag -width "cyl, sector と head" .It Em "sysid" パーティションのラベル付に使われます。 .Fx ではマジックナンバ 165 (10進) A5 (16進)を予約しています。 .It Em "start と size" パーティションのセクタ単位での 開始アドレスとサイズです。 .It Em "flag 80" これがアクティブパーティションであることを指定します。 .It Em "cyl, sector と head" パーティションの 開始アドレスと終了アドレスを指定するのに使われます。 .It Em "注:" これらの数字は、 BIOS の理解するディスクジオメトリを使って計算され、 ブートブロックに保存されます。 .El .Pp フラグ .Fl i または .Fl u は、 もし .Fl f オプションが使われていない限り、 パーティションデータを更新すべきであることを指示します。 もし .Fl f がなければ、 .Nm プログラムは対話モードに入ります。 このモードでは明示的に指示しない限り、どんなデータも変更しないように 設計されています。 .Nm はこのような振舞いを保証するよう、質問のデフォルトを選択しています。 .Pp .Nm は各々のパーティションを表示し、 それを編集したいかどうかを尋ねます。 yes と答えたら、 古い値を表示し、新しい値を尋ねて 各々のフィールドを進みます。 1 個のパーティションが終了したら、 .Nm はそれを表示して、それで正しいかどうかを尋ねます。 そして .Nm は次のエントリに進みます。 .Pp .Em cyl, sector, と .Em head のフィールドを正しく得るにはちょっとした芸当が要ります。 そのためデフォルトでは、 .Nm が代わって計算しますが、選択してそれらの値を指定することもできます。 .Pp 全てのパーティションが進行した後、 .Em アクティブ パーティション変更をすることができます。 最後に、 最初のセクタのデータが全部集めれらたときに、 本当にセクタ 0 を書換えても良いか尋ねられます。 yes と答えた場合だけ、データはディスクに書き込まれます。 .Pp .Fl u フラグと .Fl i の間の違いは、 .Fl u フラグはディスク上にあるフィールドの値を編集するだけですが、 一方 .Fl i フラグはセクタ 0 を "初期化" するのに使われます; ディスク全体を .Fx 用に使えるように、 最後の BIOS パーティションをセットアップして、それをアクティブにします。 .Sh 注 開始シリンダ等の自動計算は、 BIOS がそのドライブのジオメトリであると思っている数字をもとに行なわれます。 これらの数字はデフォルトでは、メモリ上のディスクラベルから取りますが、 プログラムの起動時にそれらを変更する機会が与えられます。 このおかげでユーザは、 BIOS がジオメトリ変換を行なうドライブでも動作できるブートブロックを 作ることができます。 .Pp もしディスクのレイアウトを手作業で変更するのなら、 どうか .Fx パーティションがシリンダ境界から開始することを確認してください。 その後のたくさんの決定がこのことを仮定しています。 (これは必要ではなかったのかもしれませんが) .Pp すでにあるパーティションを編集すると、 たぶんそのパーティションのデータを失うことになるでしょう。 .Pp このプログラムがどう働くかを調べるために、 1 度か 2 度は対話的に実行するべきです。 これは、最後の質問に否定で答える限り完全に安全です。 このマニュアルでは完全に説明されていませんが、 プログラムが検出する微妙な点があります。 .Sh 設定ファイル .Fl f オプションが与えられたとき、 .Ar configfile の値を使ってディスクのパーティションテーブルを書換えることができます。 このファイルの構文はたいへん単純です。 各行はコメントか仕様のどちらかで、空白 (改行を除く) は無視されます。 .Bl -tag -width Ds .It Xo .Ic # .No Ar comment ... .Xc \&"#" で開始している行はコメントで無視されます。 .It Xo .Ic g .No Ar spec1 .No Ar spec2 .No Ar spec3 .Xc パーティション計算で使う BIOS ジオメトリを設定します。 前に文字を伴った数字で、3 つの値を指定することが必要です。 .Bl -tag -width Ds .Sm off .It Cm c No Ar num .Sm on シリンダの数を .Ar num に設定します。 .Sm off .It Cm h No Ar num .Sm on ヘッドの数を .Ar num に指定します。 .Sm off .It Cm s No Ar num .Sm on トラックあたりのセクタの数を .Ar num に設定します。 .El .Pp これらの指定はどんな順序でもよく、先頭の文字がどの値かを決定します; しかし、3 つ全てを指定することが必要です。 .Pp この行はパーティション情報を指定するどんな行よりも前に現れなくてはなりません。 .Pp 次の条件が真でなければ、エラーです: .Pp .Bd -literal -offset indent 1 <= シリンダの数 1 <= ヘッドの数 <= 256 1 <= トラックあたりのセクタの数 < 64 .Ed .Pp シリンダの数は 1024 以下でなければなりませんが、 しかしこれは強制されるものではなく、警告が出力されるでしょう。 ブート可能な .Fx パーティション ("/" ファイルシステム) は 最初の 1024 シリンダ以内に収まっていなといけません; もしそうでなければ、ブートに失敗するかもしれません。 ブートしないパーティションには、この制限はありません。 .Pp 1019 シリンダ、39 ヘッド、63 セクタのディスクの例 (これらの全てはみな等価): .Pp .Bd -literal -offset indent g c1019 h39 s63 g h39 c1019 s63 g s63 h39 c1019 .Ed .It Xo .Ic p .No Ar partition .No Ar type .No Ar start .No Ar length .Xc .Ar partition (1-4) で与えられたパーティションに、タイプ .Ar type 、開始セクタ .Ar start 、長さ (セクタ数) .Ar length を設定します。 .Pp これらの行で明示的に言及されたパーティションだけが変更されます; \&"p" 行で参照されていないパーティションは変更されません。 しかし、無効なパーティションテーブルがあるか、 .Fl i オプションが指定されているなら、 存在するパーティションエントリは全て取り除かれ (未使用の印がつけられ)、 パーティション情報を明示的に設定するのに、 \&"p" 行が使われなければなりません。 もし複数のパーティションを設定する必要があるなら、 複数の "p" 行が指定されなければなりません; 1 行で 1 個のパーティションを設定します。 .Pp これらのパーティション行は、もしあればジオメトリ指定行の後に現れなければ なりません。 .Pp .Fx パーティションの .Ar type は 165 です。0 のパーティションタイプを指定すると、 パーティションを取り除き未使用の印をつけたのと同じことになります; しかし、("0" とかの) ダミーの値が .Ar start と .Ar length に指定されなければなりません。 .Pp 注: パーティションの開始オフセットはヘッド境界まで必要なら繰り上げられ、 終了オフセットはシリンダ境界まで必要なら繰り下げられます。 .Pp 例: パーティション 4 を取り除いて、未使用の印をつける: .Pp .Bd -literal -offset indent p 4 0 0 0 .Ed .Pp 例: パーティション 1 を .Fx パーティションであって、 セクタ 1 から始まって 2503871 セクタの長さに設定する (注: これらの値は、 対応するヘッドとシリンダ境界に繰り上げ/繰り下げられます): .Pp .Bd -literal -offset indent p 1 165 1 2503871 .Ed .Pp .It Xo .Ic a .No Ar partition .Xc .Ar partition パーティションをアクティブにします。 設定ファイルのどこに現われても構いませんが、 1 個だけ存在することが必要です。 .Pp 例: パーティション 1 をアクティブパーティションにします: .Pp .Bd -literal -offset indent a 1 .Ed .El .Sh 関連ファイル .Bl -tag -width /boot/mbr -compact .It Pa /boot/mbr デフォルトのブートコード .El .Sh 関連項目 .Xr disklabel 8 .Sh バグ デフォルトのブートコードは、 必ずしもすべてのパーティションタイプを正しく扱いません。 特に MS-DOS 6.x 以降に導入されたものについてはそうです。 .Pp プログラム全体をよりユーザフレンドリにするべきです。 .Pp このマニュアルを通して使われている術語 .Sq パーティション は、他で使われる術語に一致させるため、 本当は .Sq スライス であるべきです。 .Pp ディスク全体を .Fx に捧げるためには、このコマンドは使えません。 これには .Xr disklabel 8 コマンドを使わなればなりません。 diff --git a/ja_JP.eucJP/man/man8/fsck.8 b/ja_JP.eucJP/man/man8/fsck.8 index b21a9e1522..a445d3f944 100644 --- a/ja_JP.eucJP/man/man8/fsck.8 +++ b/ja_JP.eucJP/man/man8/fsck.8 @@ -1,316 +1,316 @@ .\" .\" Copyright (c) 1980, 1989, 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 acknowledgment: .\" 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. .\" .\" @(#)fsck.8 8.4 (Berkeley) 5/9/95 -.\" %FreeBSD: src/sbin/fsck/fsck.8,v 1.14.2.1 2000/12/08 14:03:46 ru Exp % +.\" %FreeBSD: src/sbin/fsck/fsck.8,v 1.14.2.2 2000/12/18 15:38:20 ru Exp % .\" jpman %Id: fsck.8,v 1.2 1997/04/24 00:30:54 mutoh Stab % .\" .Dd November 15, 1996 .Dt FSCK 8 .Os BSD 4 .Sh 名称 .Nm fsck .Nd ファイルシステムの整合性チェックと対話的修正 .Sh 書式 .Nm .Fl p .Op Fl f .Op Fl m Ar mode .Op Ar filesystem .Ar ... .Nm .Op Fl ny .Op Fl b Ar block# .Op Fl c Ar level .Op Fl l Ar maxparallel .Op Fl m Ar mode .Op Ar filesystem .Ar ... .Sh 解説 .Nm の最初の書式は、標準のファイルシステムのセットや指定された ファイルシステムの状態を整えるのに使われます。 通常は、自動リブートの間に .Pa /etc/rc スクリプトの中で使用されます。 この時 .Nm は .Pa /etc/fstab を読んで、チェックするファイルシステムを決定します。 fstab 内の ``rw,'' ``rq,'' ``ro'' のいずれかのオプションで マウントされる、 0 以外のパス番号をもつパーティションのみが チェックの対象です。 パス番号 1 を持つファイルシステム (通常はルートファイルシステムだけです) は、 一つずつ順番にチェックされます。 パス 1 が完了すると、残りのすべてのファイルシステムは、 ディスクドライブごとに一つのプロセスを使ってチェックされます。 ファイルシステムが含まれるディスクドライブは、 デバイス名のうち最後が数字である最も長い文字列として認識されます。 残りの文字列はパーティションを示すと解釈されます。 .Pp preen モードでは、各ファイルシステムのスーパブロックの クリーン (clean) フラグを調べ、 クリーンでないファイルシステムのみをチェックします。 ファイルシステムがクリーンとマークされるのは、 アンマウントされた時、読み取り専用でマウントされた時、 .Nm が成功裏に実行された時です。 .Fl f オプションを指定した場合、クリーンフラグの状態にかかわらず ファイルシステムをチェックします。 .Pp カーネルは、ハードウェアやソフトウェアに障害が起きない限り、 ファイルシステムには限定された無害な不整合しか起こさない様に 動作します。 それらの不整合には以下の物があります。 .Pp .Bl -item -compact -offset indent .It 参照されない inode .It inode のリンクカウントが多すぎる .It フリーマップ中にないフリー (空き) ブロック .It フリーマップとファイルの両方にあるブロック .It スーパブロック内の数値の異常 .El .Pp .Fl p オプション付の .Nm では、上記の不整合のみを修正します。その他の不整合を発見すると、 .Nm は異常終了のステータスを返して終了し、自動リブートは失敗します。 不整合を修正するたびに、ファイルシステムと修正内容が表示されます。 ファイルシステムの修正に成功した後で、 .Nm はファイルシステム中のファイル数、使用中ブロックとフリーブロックの数、 フラグメントの割合を表示します。 .Pp .Nm がファイルシステムをチェックしている間に .Dv QUIT シグナルを送ると、 .Nm はチェックを続けますが、終了時に異常終了のステータスを返し、 自動リブートを失敗させます。 これは、自動リブートによるファイルシステムチェックは行いたいが、 チェック完了後にマルチユーザモードに移行したくない場合に有用です。 .Pp .Fl p オプションなしでは、 .Nm はファイルシステムの状態の検査をおこない、それを対話的に修正します。 ファイルシステムに不整合がある場合、修正を実施する前にオペレータへ 確認を求めます。 .Fl p オプションでは直せない修正では、データが失われる可能性があることに 注意すべきです。 失われるデータの量とその致命度は、診断メッセージから判断して下さい。 デフォルト動作では、修正を実行する前に、オペレータが .Li yes か .Li no と応答するまで待ちます。 オペレータにファイルシステムの書き込み権限がない場合、 .Nm は、 .Fl n オプションの動作をデフォルトにします。 .Pp .Nm は、以前使われていた .Em check , dcheck , fcheck , .Em icheck の組み合わせよりもより詳しい不整合チェックを行ないます。 .Pp .Nm は以下のフラグを解釈します。 .Bl -tag -width indent .It Fl b 指定した番号のブロックをファイルシステムの スーパブロックとして使用します。 ブロック番号 32 は普通、代替スーパブロックになっています。 .It Fl c ファイルシステムを指定したレベルへ変換します。 ファイルシステムのレベルは、上げることのみが可能です。 .Bl -tag -width indent 以下の 4 レベルが定義されています。 .It 0 ファイルシステムは、旧フォーマットです (静的テーブル)。 .It 1 ファイルシステムは、新フォーマットです (動的テーブル)。 .It 2 ファイルシステムは 32 ビットの UID と GID を用い、 短いシンボリックリンクは inode 内へ格納し、 ディレクトリはファイルタイプを示す追加フィールドを持ちます。 .It 3 maxcontig が 1 より大きい場合、 連続ブロックをみつけるためのフリーセグメントマップを作成します。 maxcontig が 1 の場合、既存のセグメントマップを削除します。 .El .Pp 対話モードでは、 .Nm は、変換の内容を表示して、実際に変換するかどうかを問い合わせます。 no と答えると、ファイルシステムへのそれ以上の操作は行われません。 preen モード ( .Fl p オプション) では、変換内容を表示しますが、変換が可能なら ユーザへの問い合わせなしに実行します。 preen モードでの変換は、すべてのファイルシステムを一度に 変換してしまう場合に便利です。 ファイルシステムのフォーマットは、 .Xr dumpfs 8 の出力の最初の行から決定することができます。 .It Fl f preen モードの場合でも、 .Sq クリーン なファイルシステムをチェックするようにします。 .It Fl l 同時チェックの並列度を、指定した数に制限します。 デフォルト値はディスク数であり、 ディスク毎に一つのプロセスが実行されます。 これより小さい値を指定すると、 各ディスクを、ファイルシステムを一つずつ ラウンドロビン方式でチェックします。 .It Fl m .Pa lost+found ディレクトリを作る時のモードとして、デフォルトの 1777 の代わりの 値を 8 進数で指定します。 失われたファイルをすべてのユーザには見せたくないシステムでは、 より制限の厳しい 700 を使うべきです。 .It Fl n .Nm からの .Ql CONTINUE? を除くすべての問い合わせに no と答えます。 このオプション使用時、ファイルシステムへの書き込みオープンを行いません。 .It Fl p ファイルシステムを整えます(上記参照)。 .It Fl y .Nm からのすべての質問に yes と答えます。 このオプションは、 修正によって新たな不整合を生むような誤った修正に対しても無制限な 許可を与えてしまうものですから、 十分に用心して使用すべきです。 .\" お手上げにつき、意訳しました by TM .\"(訳注)とくに問題がないと判断したので,この意訳をそのままとしました。 .\" 2.2.1R 対象(1997/04/23) Takeshi MUTOH .El .Pp ファイルシステムを指定せずに .Nm を実行すると .Pa /etc/fstab ファイルから読み込まれたファイルシステムのリストが対象になります。 .Pp -.Bl -enum -indent indent -compact +.Bl -enum -compact ファイルシステムは、以下の点について検査されます。 .It 二つ以上の inode やフリーマップにより使用されているブロック .It ファイルシステム領域外の inode により使用されているブロック .It 不正なリンクカウント .It サイズのチェック: -.Bl -item -indent indent -compact +.Bl -item -offset indent -compact .It サイズが DIRBLKSIZ の倍数でないディレクトリ .It 切り詰め (truncate) が部分的に行われているファイル .El .It 不正な inode フォーマット .It どこにも登録されていないブロック .It ディレクトリのチェック: -.Bl -item -indent indent -compact +.Bl -item -offset indent -compact .It 割り当てされていない inode を指すファイル .It 範囲外の inode 番号 .It 割り当てられていないブロック (穴) を持つディレクトリ .It 最初の 2 つのエントリが `.' と `..' でないか、 不正な inode 番号を持つディレクトリ .El .It スーパブロックのチェック: -.Bl -item -indent indent -compact +.Bl -item -offset indent -compact .It ファイルシステムにあるよりも多い inode ブロック数 .It 不正なフリーブロックマップフォーマット .It フリーブロックやフリー inode の総数の誤り .El .El .Pp 親ディレクトリの無いファイルやディレクトリ (割り当て られているが参照されていない) は、 オペレータへの問い合わせのあとで .Pa lost+found ディレクトリへ配置されます。 その際のファイル名は inode 番号になります。 .Pa lost+found ディレクトリが存在しない場合、新たに作成されます。 スペースが不足している場合は、そのサイズが拡張されます。 .Pp ブロックデバイスとバッファキャッシュの内容は一致しないかもしれないので、 必ずロー (raw) デバイスを指定してください。 .Sh 関連ファイル .Bl -tag -width /etc/fstab -compact .It Pa /etc/fstab チェックを行なうファイルシステムのデフォルトリストを含む .El .Sh 診断 .Nm の出す診断メッセージは、 .Rs .%T "Fsck \- The UNIX File System Check Program" .Re の Appendix A にすべて列挙され説明されています。 .Sh 関連項目 .Xr fs 5 , .Xr fstab 5 , .Xr fsdb 8 , .Xr newfs 8 , .Xr reboot 8 diff --git a/ja_JP.eucJP/man/man8/fsirand.8 b/ja_JP.eucJP/man/man8/fsirand.8 index 81fed2f925..0d65b97442 100644 --- a/ja_JP.eucJP/man/man8/fsirand.8 +++ b/ja_JP.eucJP/man/man8/fsirand.8 @@ -1,114 +1,115 @@ .\" Copyright (c) 1997 Todd C. Miller .\" 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 Todd C. Miller. .\" 4. 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 ``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. .\" .\" $OpenBSD: fsirand.8,v 1.6 1997/02/23 03:58:26 millert Exp $ -.\" %FreeBSD: src/sbin/fsirand/fsirand.8,v 1.10.2.1 2000/12/08 14:03:48 ru Exp % +.\" %FreeBSD: src/sbin/fsirand/fsirand.8,v 1.10.2.2 2000/12/18 15:38:20 ru Exp % .\" .\" jpman %Id: fsirand.8,v 1.3 1997/09/08 07:26:22 kuma Stab % .\" .Dd January 25, 1997 .Dt FSIRAND 8 .Os .Sh 名称 .Nm fsirand .Nd inode 世代番号をランダム化する .Sh 書式 .Nm .Op Fl b .Op Fl f .Op Fl p .Ar special .Op Ar "special ..." .Sh 解説 .Nm コマンドは、コマンドラインにて .Ar special で指定したファイルシステム上の全ての inode に対し、 ランダムな世代番号を書き込みます。 これにより、ファイルハンドルを ``予測'' しにくくし、 NFS export したファイルシステムのセキュリティを向上させます。 .Pp .Em 注 Ns : 現在 .Xr newfs 8 が .Nm と同等の処理を行うため、新規ファイルシステムに対し手動で .Nm を実行する必要は有りません。 用途は、 既存のファイルシステムを再びランダム化することか、 そこからレポートを得ることだけです。 .Pp .Nm は、アンマウントした後 .Xr fsck 8 にてチェックしたファイルシステムか、 リードオンリーにてマウントしたファイルシステムのみに適用すべきです。 .Nm をシングルユーザモードにてルートファイルシステムに適用できますが、 その後システムを ``reboot -n'' にてリブートしなければなりません。 .Sh オプション .Bl -tag -width indent 以下のオプションを使用可能です: .It Fl b ディスクラベルから得たブロックサイズではなく、 デフォルトのブロックサイズ(通常 512 バイト)を使用します。 .It Fl f .Ar special がクリーンとマークされていなくとも、 .Nm を強制的に実行します。 .It Fl p 新たな世代番号を生成するのではなく、 全ての inode に対して現在の世代番号を表示します。 +.El .Sh 警告 .Nm はシリンダグループ中の全ての inode を保持できるだけの量のメモリを確保するため、 シリンダグループが少ない大きなディスクにおいては大量のメモリを消費する 可能性があります。 .Sh 関連項目 .Xr fs 5 , .Xr fsck 8 , .Xr newfs 8 .Sh 歴史 .Nm コマンドは SunOS 3.x から登場しました。 .Pp このバージョンの .Nm は .Ox 2.1 から登場しました。 .Pp .Fx のものは .Fx 2.2.5 から登場しました。 .Sh 作者 .An Todd C. Miller Aq Todd.Miller@courtesan.com diff --git a/ja_JP.eucJP/man/man8/ip6fw.8 b/ja_JP.eucJP/man/man8/ip6fw.8 index 76d0b15062..c1f585ff89 100644 --- a/ja_JP.eucJP/man/man8/ip6fw.8 +++ b/ja_JP.eucJP/man/man8/ip6fw.8 @@ -1,531 +1,531 @@ .\" -.\" %FreeBSD: src/sbin/ip6fw/ip6fw.8,v 1.3.2.2 2000/12/08 14:03:54 ru Exp % +.\" %FreeBSD: src/sbin/ip6fw/ip6fw.8,v 1.3.2.3 2000/12/18 15:38:23 ru Exp % .\" .\" jpman %Id: ip6fw.8,v 1.3 2000/11/11 03:53:49 horikawa Stab % .\" WORD: modifier 修飾子 .\" WORD: fragmented packet フラグメントパケット .\" WORD: encapsulating security payload 暗号ペイロード [IPv6] .\" WORD: no next header 次ヘッダなし [IPv6] .\" WORD: fine points 微調整 .Dd March 13, 2000 .Dt IP6FW 8 .Os FreeBSD .Sh 名称 .Nm ip6fw .Nd IPv6 ファイアフォール用制御ユーティリティ .Sh 書式 .Nm .Ar file .Nm .Op Fl f | Fl q flush .Nm .Op Fl q zero .Op Ar number ... .Nm delete .Ar number ... .Nm .Op Fl aftN list .Op Ar number ... .Nm .Op Fl ftN show .Op Ar number ... .Nm .Op Fl q add .Op Ar number .Ar action .Op log .Ar proto from .Ar src to .Ar dst .Op via Ar name | ipv6no .Op Ar options .Sh 解説 書式の第 1 行目のように使用すると、 .Ar file が 1 行ずつ読み込まれ、 .Nm コマンドへの引数に適用されます。 .Pp .Nm コードは、各パケットに対してマッチするものが見つかるまで ルールリストを走査することによって動作します。 ルールにはすべて 2 つの関連のあるカウンタがあります。 パケットカウンタとバイトカウンタです。 これらのカウンタはパケットがルールにマッチするときに 更新されます。 .Pp ルールは、 1 から 65534 までの .Dq 行番号 で序列がつけられており、 ルールを決めたり削除したりするのに使用されます。 ルールは昇順で試され、パケットに最初にマッチしたルールが 適用されます。 複数のルールが同じ行番号を共有できます。 この場合、追加した順番でルールが適用されます。 .Pp 番号をつけずにルールを足した場合、その直前のルールよりも 100 大きい番号がつけられます。 定義されたルール番号の最大値が 65434 よりも大きい場合、 新しく定義されるルールは、ルールの最後に追加されます。 .Pp delete 操作では、それが存在する場合には、 .Ar number を行番号にもつ最初のルールが削除されます。 .Pp list コマンドは、現在のルールセットを出力します。 .Pp show コマンドは `ip6fw -a list' と等価です。 .Pp zero 操作は、ルール番号 .Ar number に関連づけられたカウンタを 0 にします。 .Pp flush 操作は、すべてのルールを削除します。 .Pp .Sq # で始まるコマンドおよび空白だけのコマンドはみな 無視されます。 .Pp 次のルールは必ず存在します: .Bd -literal -offset center 65535 deny all from any to any .Ed .Pp このルールはデフォルトのポリシです。すなわち、 何も許さないということです。ルールを設定する際に あなたがすべき仕事は、このポリシを必要に合わせて 変更するということです。 .Pp 次のオプションが使用できます: .Bl -tag -width flag .It Fl a リスト中に、カウンタ値を表示します。 .Dq show コマンドを参照してください。 .It Fl f 間違って使用すると問題をひき起こす可能性のある コマンド (つまり、flush) の確認をとりません。 .Ar 注意 プロセスに端末が割り当てられていない場合は、暗黙のうちに このオプションが指定されています。 .It Fl q add 操作や zero 操作、flush 操作を行っている最中に、 そのアクションに対して何も表示しません (暗黙のうちに '-f' が指定されています)。 これは、リモートログイン時のセッションで スクリプト内で複数の ip6fw コマンドを実行したり (例えば、sh /etc/rc.firewall のように)、 たくさんの ip6fw ルールファイルを処理したりすることで ルールを調節するときに便利です。 通常モード (冗長) で flush 操作を行うと、メッセージが出力 されます。ルールがすべて flush されるので、ログインセッションに メッセージを送ることができず、ログインセッションも閉じてしまいます。 そのため、残りのルールセットは処理されなくなってしまいます。 復旧には、コンソールへのアクセスが必要になります。 .It Fl t list している最中に、最後にマッチしたときのタイムスタンプを表示します。 .It Fl N 出力で、アドレスおよびサービス名を解決しようとします。 .El .Pp .Ar アクション は次の通りです。 -.Bl -hang -offset flag -width 1234567890123456 +.Bl -hang -offset flag -width 16n .It Ar allow ルールにマッチしたパケットを許可します。 そして探索を終了します。別名は .Ar pass , .Ar permit , .Ar accept です。 .It Ar deny ルールにマッチしたパケットを捨てます。 そして探索を終了します。 .Ar drop は .Ar deny の別名です。 .It Ar reject (非推奨です) ルールにマッチしたパケットを捨てて、 ICMPv6 の host unreachable notice メッセージを 送ろうとします。 そして探索を終了します。 .It Ar unreach code ルールにマッチしたパケットを捨てて、 ICMPv6 の unreachable notice メッセージをコード .Ar code で送ろうとします。ここで、 .Ar code は 0 から 255 までの番号もしくは次の別名のうちのいずれかです: .Ar noroute , .Ar admin , .Ar notneighbor , .Ar addr , .Ar noport 。 そして探索を終了します。 .It Ar reset TCP パケットのみです。 ルールにマッチしたパケットを捨てて、 TCP reset (RST) notice メッセージを送ろうとします。 そして探索を終了します .Em (まだ動作しません) 。 .It Ar count ルールにマッチしたすべてのパケットに対するカウンタを 更新します。 探索は、次のルールへと継続します。 .It Ar skipto number .Ar number よりも小さい番号のついたルールをスキップします。 探索は .Ar number 以上の番号のついたルールへと継続します。 .El .Pp カーネルを .Dv IP6FIREWALL_VERBOSE つきでコンパイルした場合、パケットが .Dq log キーワードつきのルールにマッチしたときには コンソールにメッセージが表示されます。 カーネルを .Dv IP6FIREWALL_VERBOSE_LIMIT オプションつきでコンパイルした場合、 特定のチェーンエントリに対して このオプションで指定した数だけパケットを受け取った後は ログを記録しません。このエントリに対するカウンタを クリアすることでログの記録を再開できます。 .Pp コンソールへのロギングおよびログの制限を .Xr sysctl 8 インタフェースを介して動的に調整できます。 .Pp .Ar proto は次の通りです。 -.Bl -hang -offset flag -width 1234567890123456 +.Bl -hang -offset flag -width 16n .It Ar ipv6 すべてのパケットがマッチします。 別名 .Ar all は同じ効果を持ちます。 .It Ar tcp TCP パケットだけがマッチします。 .It Ar udp UDP パケットだけがマッチします。 .It Ar ipv6-icmp ICMPv6 パケットだけがマッチします。 .It Ar 指定したプロトコルだけがマッチします (完全なリストは .Pa /etc/protocols を参照してください)。 .El .Pp .Ar src および .Ar dst は次の通りです。 .Bl -hang -offset flag .It Ar
.Op Ar ports .El .Pp .Em
は次のように指定できます: -.Bl -hang -offset flag -width 1234567890123456 +.Bl -hang -offset flag -width 16n .It Ar ipv6no An ipv6number of the form .Li fec0::1:2:3:4 という形式の IPv6 ナンバ。 .It Ar ipv6no/prefixlen .Li fec0::1:2:3:4/112 のような形式のプレフィックス長をもった IPv6 ナンバ。 .El .Pp .Dq 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 より) サービス名を、 数値によるポート番号の代わりに使用できます。 範囲は最初の値としてのみ指定でき、ポートリスト長は .Dv IP6_FW_MAX_PORTS ( .Pa /usr/src/sys/netinet/ip6_fw.h で指定) 個のポートまでに制限されています。 .Pp 0 ではないオフセットを持つ (すなわち、最初のフラグメントではない) フラグメントパケットは、1 つ以上のポートが列挙されたルールには 絶対にマッチしません。 フラグメントパケットのマッチについての詳細は .Ar frag オプションを参照してください。 .Pp ルールは、パケットが入力されるとき、および出力されるとき、 あるいはその両方ともであるときに適用されます。 .Ar in キーワードは、入力パケットにのみルールがマッチしなくては ならないことを示すものです。 .Ar out キーワードは、出力パケットにのみルールがマッチしなくては ならないことを示すものです。 .Pp あるインタフェースを通るパケットにマッチするためには、 .Ar via を使用して次のようにインタフェースを指定してください。 -.Bl -hang -offset flag -width 1234567890123456 +.Bl -hang -offset flag -width 16n .It Ar via ifX パケットは、インタフェース .Ar ifX を通らなくてはなりません。 .It Ar via if* パケットは、インタフェース .Ar ifX を通らなくてはなりません。ここで、X は任意のユニット番号です。 .It Ar via any パケットは、 .Em なんらかの インタフェースを通らなくてはなりません。 .It Ar via ipv6no パケットは、IPv6 アドレス .Ar ipv6no を持ったインタフェースを通らなくてはなりません。 .El .Pp .Ar via キーワードを使用すると、該当インタフェースは常に チェックされるようになります。 .Ar via の代わりに .Ar recv あるいは .Ar xmit を使用すると、 (それぞれ) 受信インタフェースまたは送信インタフェースだけが チェックされます。 両方を指定することで、受信インタフェース、送信インタフェースの 両方ともにパケットをマッチさせることができます。 例えば、次のようにします。 .Pp .Dl "ip6fw 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 xmit あるいは .Ar recv と一緒に .Ar via を指定するのは不正です。 .Pp パケットには、受信インタフェースあるいは送信インタフェースがない かもしれません。ローカルホストから送信されたパケットには 受信インタフェースがありません。そして、ローカルホストへ向けて 送信されたパケットには送信インタフェースがありません。 .Pp 追加の .Ar options は次の通りです。 -.Bl -hang -offset flag -width 1234567890123456 +.Bl -hang -offset flag -width 16n .It frag パケットがフラグメントであり、しかも データグラムの最初のフラグメントでなければマッチします。 .Ar frag は、 .Ar tcpflags あるいは TCP/UDP ポートの指定と一緒には使うことができません。 .It in パケットが入ってこようとしている場合にマッチします。 .It out パケットが出ていこうとしている場合にマッチします。 .It ipv6options Ar spec IPv6 ヘッダに、 .Ar spec で指定されたコンマ区切りのオプションリストの要素が含まれて いればマッチします。 サポートしている IPv6 オプションは次の通りです。 .Ar hopopt (hop-by-hop オプションヘッダ)、 .Ar route (ルーティングヘッダ)、 .Ar frag (フラグメントヘッダ)、 .Ar esp (暗号ペイロード)、 .Ar ah (認証ヘッダ)、 .Ar nonxt (次ヘッダなし)、そして .Ar opts (デスティネーションオプションヘッダ) です。 特定のオプションがないことは、 -.Dq ! +.Dq \&! で表します .Em (まだ動作していません)。 .It established RST あるいは ACK ビットがセットされているパケットに マッチします。 .It setup SYN ビットはセットされているが ACK ビットがセットされていない パケットにマッチします。 .It tcpflags Ar spec TCP ヘッダに、 .Ar spec で指定されたコンマ区切りのフラグリストの要素が含まれていれば マッチします。 サポートしている TCP フラグは以下の通りです。 .Ar fin , .Ar syn , .Ar rst , .Ar psh , .Ar ack , そして .Ar urg です。 特定のフラグがないことは -.Dq ! +.Dq \&! を使って表します。 .Ar tcpflags 指定を含んだルールは、 0 でないオフセットを持ったフラグメントパケットには 絶対にマッチしません。 フラグメントパケットへのマッチに関する詳細は .Ar frag オプションを参照してください。 .It icmptypes Ar types ICMPv6 のタイプが .Ar types リスト中にあればマッチします。 リストには、範囲と、個々のタイプをコンマで区切ったものを、 任意に組み合わせて指定できます .El .Sh チェックリスト ここには、あなたがルールをデザインする際に考慮すべき 重要なポイントをいくつか述べてあります。 -.Bl -bullet -hang -offset flag +.Bl -bullet -offset flag .It 入力および出力パケットの両方をフィルタするのだということを 忘れないでください。ほとんどの接続には両方向のパケットが 必要です。 .It とても注意深くテストするのを忘れないでください。 テストする際にはコンソールの近くで行うというのが良いアイデアです。 .It ループバックインタフェースを忘れないでください。 .El .Sh 微調整 ファイアウォールが常に破棄するパケットが 1 種類あります。 それは、フラグメントオフセット 1 を持った IPv6 フラグメントです。 これは正しいパケットですが、使用方法は 1 つだけです。 それは、ファイアウォールの抜け道を探そうとすることです。 .Pp ネットワーク越しにログインしている場合は、 .Nm の KLD バージョンをロードするのは、おそらく あなたが思っているほどには簡単ではないでしょう .Em (サポートされていません)。 次のようなコマンド行を推奨します。 .Bd -literal -offset center kldload /modules/ip6fw_mod.o && \e ip6fw add 32000 allow all from any to any .Ed .Pp 同様の状況で、同じ行で .Bd -literal -offset center ip6fw flush .Ed .Pp を行うことも良くないアイデアです。 .Sh パケット変換 サポートされていません。 .Sh 使用例 このコマンドは、 .Em hacker.evil.org から .Em wolf.tambov.su の telnet ポートへの TCP パケットすべてを、このホストで フォワードしないようにします。 .Pp .Dl ip6fw add deny tcp from hacker.evil.org to wolf.tambov.su 23 .Pp 次のコマンドは、hackers ネットワーク全体から自ホストへの接続を 何であれ禁止します。 .Pp .Dl ip6fw addf deny all from fec0::123:45:67:0/112 to my.host.org .Pp これは、カウント値の記録とタイムスタンプ情報を表示するための リストコマンドの良い使用例です。 .Pp .Dl ip6fw -at l .Pp あるいは、タイムスタンプなしの、短い形式のものは .Pp .Dl ip6fw -a l です。 .Pp .Sh 関連ファイル .Xr ip 4 , .Xr ipfirewall 4 , .Xr protocols 5 , .Xr services 5 , .Xr reboot 8 , .Xr sysctl 8 , .Xr syslogd 8 .Sh バグ .Pp .Em 注意 !! 注意 !! 注意 !! 注意 !! .Pp このプログラムは、あなたのコンピュータをかなり使えない状態 にしてしまう可能性があります。初めて使用する際には、 コンピュータのコンソールで作業してください。また、 理解していないことは何も .Em しないでください 。 .Pp チェーンエントリを操作 / 追加する際には、サービス名および プロトコル名は受け付けられません。 .Sh 作者 .An Ugen J. S. Antsilevich , .An Poul-Henning Kamp , .An Alex Nash , .An Archie Cobbs です。 API は、BSDI 用に .An Daniel Boulet が書いたコードに基いています。 .Sh 歴史 .Nm は最初に .Fx 4.0 で登場しました。 diff --git a/ja_JP.eucJP/man/man8/ipfw.8 b/ja_JP.eucJP/man/man8/ipfw.8 index 58cedad3b3..5b1d7f5521 100644 --- a/ja_JP.eucJP/man/man8/ipfw.8 +++ b/ja_JP.eucJP/man/man8/ipfw.8 @@ -1,1286 +1,1286 @@ .\" -.\" %FreeBSD: src/sbin/ipfw/ipfw.8,v 1.63.2.7 2000/12/08 14:03:54 ru Exp % +.\" %FreeBSD: src/sbin/ipfw/ipfw.8,v 1.63.2.8 2000/12/18 15:38:24 ru Exp % .\" .\" jpman %Id: ipfw.8,v 1.4 1997/05/19 17:19:51 horikawa Stab % .Dd February 16, 2000 .Dt IPFW 8 .Os FreeBSD .Sh 名称 .Nm ipfw .Nd IP ファイアウォールとトラフィックシェイパの制御ユーティリィティ .Sh 書式 .Nm .Op Fl q .Oo .Fl p Ar preproc .Oo Fl D .Sm off .Ar macro .Op = Ar value .Sm on .Oc .Op Fl U Ar macro .Oc .Ar pathname .Nm .Op Fl f | q .Cm flush .Nm .Op Fl q .Es \&{ \&} .En Cm zero | resetlog | delete .Op Ar number ... .Nm .Op Fl s Op Ar field .Op Fl aftN .Es \&{ \&} .En Cm list | show .Op Ar number ... .Nm .Op Fl q .Cm add .Op Ar number .Ar rule-body .Nm .Cm pipe .Ar number .Cm config .Ar pipe-config-options .Nm .Cm pipe .Es \&{ \&} .En Cm delete |list | show .Op Ar number ... .Nm .Cm queue .Ar number .Cm config .Ar queue-config-options .Nm .Cm queue .Es \&{ \&} .En Cm delete | list | show .Op Ar number ... .Sh 解説 .Nm は、 .Fx の .Xr ipfirewall 4 と .Xr dummynet 4 トラフィックシェイパを制御するユーザインタフェースです。 .Pp 各入出力パケットは .Nm ルールを通されます。 ホストがゲートウェイとして動作している場合、 ゲートウェイが転送するパケットは .Nm が 2 度処理します。 ホストがブリッジとして動作している場合、 ブリッジが転送するパケットは .Nm が 1 度処理します。 .Pp ファイアウォール設定は、番号付けされたルールのリストからなります。 あるルールにマッチしそれに関連する動作が実行されるまで、 各パケットはルールのリストに対し照合されます。 動作とシステムの設定によっては、マッチしたルールの直後で、 パケットがファイアウォールに再注入され、 更に処理が継続することもあります。 全てのルールが全てのインタフェースに適用されますので、 チェックの回数が最小となるようなルール集合を書くのは システム管理者の責任です。 .Pp どの設定も常に、 .Em DEFAULT ルール (番号 65535) を含みます。このルールはプログラマが変更できず、 常にパケットにマッチします。 デフォルトルールに関連付けるルールは .Cm deny か .Ar allow のどちらかになりますが、 これはどのようにカーネルを設定したかに依存します。 .Pp ルール集合が .Cm keep-state オプション付きのルールを含む場合、 .Nm は .Em ステートフル (状態依存型) で動作します。すなわち、あるマッチの結果、 マッチしたパケットのパラメータにちょうど一致するルールが 動的に生成されます。 .Pp これらの動的ルールの寿命は有限で、 .Cm check-state または .Cm keep-state ルールが最初に生じた場所でチェックされます。 動的ルールは、合法的なトラフィックをオンデマンドで ファイアウォールを通過させるために用いることが普通です。 .Nm のステートフルな動作について更に情報が必要ならば、 以下の .Sx ルール書式 または .Sx 使用例 セクションを参照して下さい。 .Pp 動的ルールも含めすべてのルールは、 それに関連するカウンタをいくつか持っています。 それは、パケットカウント、バイトカウント、ログカウント、 最後にマッチした時刻を示すタイムスタンプです。 カウンタは、 .Nm コマンドによって、表示およびリセット可能です。 .Pp ルールの追加は .Cm add コマンドにて可能です。 個々のルールの削除は .Cm delete コマンドにて可能であり、すべてのルールの削除は .Cm flush コマンドにて可能です。 ルールの表示は、 .Ar show コマンドおよび .Ar list コマンドにて可能です。 これらにより、オプションでカウンタ内容も含めて表示させることができます。 最後に、カウンタのリセットは .Ar zero コマンドおよび .Ar resetlog コマンドにて可能です。 .Pp 次のオプションが利用可能です: .Bl -tag -width indent .It Fl a リスト中にカウンタ値を示します。 .Dq show コマンドもあわせて見てください。 .It Fl f 誤って使用すると問題を起す可能性のあるコマンド、 .No すなわち Cm flush に対して、実行の確認を行いません。 .Em 注 : プロセスに関連付けられた tty が無い場合、このオプションが 暗黙のうちに指定されたとして処理されます。 .It Fl q .Cm add , .Cm zero , .Cm resetlog , .Cm flush 実行中、動作について報告しません .Po 暗黙のうちに .Fl f が指定されます .Pc 。 スクリプト .Po 例えば .Sq sh /etc/rc.firewall .Pc の中で複数の .Nm コマンドを実行してルールを変更する場合や、 リモートログインセッション経由で多数の .Nm ルールを含むファイルを処理することによりルールを変更する場合に 有用です。 通常 (冗長) モードで (デフォルトカーネル設定で) flush を行った場合、 メッセージを表示します。 すべてのルールが捨てられますので、 メッセージはログインセッションへ渡せません。 つまり、リモートログインセッション経由の場合、セッションはクローズされ、 残りのルールセットは処理されません。 この状態から回復するためにはコンソールへのアクセスが必要になります。 .It Fl t リスト作成時に、最後にマッチしたタイムスタンプを表示します。 .It Fl N 出力中のアドレスとサービス名を解決しようとします。 .It Fl s Op Ar field パイプ経由でリスト出力している際に、4つのカウンタの1つについて 整列させます (現在のパケット数)。 .El .Pp 設定を簡単にするために、ルールをファイルに記述して、 これを .Nm の最初の書式行を使って処理します。 .Ar pathname には絶対パス名を使用する必要があります。 このファイルからは 1 行ずつ読み込まれ、 .Nm ユーティリティへの引数となります。 .Pp .Fl p Ar preproc を使用して、 .Ar pathname がパイプされるプリプロセッサを指定することもできます。 有用なプリプロセッサには、 .Xr cpp 1 と .Xr m4 1 があります。 .Ar preproc の最初の文字がスラッシュ .Pq Ql / から始まらない場合、 .Ev PATH を使用した通常の名前検索が行われます。 .Nm が実行されるときまでに全ファイルシステムが (まだ) マウントされないような環境 (例えば NFS 経由でマウントされる場合) では、このことに注意してください。 ひとたび .Fl p が指定されると、オプションとして .Fl D と .Fl U の指定を続けることが可能となり、これらがプリプロセッサに渡されます。 これにより、(ローカルホスト名により条件付けするなど) 柔軟性のある設定ファイルを作成可能となり、IP アドレスのように 頻繁に必要となる引数を集中管理するためのマクロを使用可能となります。 .Pp 後述の .Sx トラフィックシェイパ設定 の節で示すように、 .Nm .Cm pipe コマンドを使用して、トラフィックシェイパを構築可能です。 .Pp .Sh ルール書式 .Nm ルールフォーマットは次の通りです。 .Bd -ragged .Op Cm prob Ar match_probability .Ar action .Op Cm log Op Cm logamount Ar number .Ar proto .Cm from Ar src .Cm to Ar dst .Op Ar interface-spec .Op Ar options .Ed .Pp 各パケットをフィルタする際には、以下の情報に基づくことができます。 .Pp .Bl -tag -width "送信元および宛先 IP アドレス" -offset indent -compact .It 送受信インタフェース (名前またはアドレス) .It 方向 (入力または出力) .It 送信元および宛先 IP アドレス (マスク使用可) .It プロトコル (TCP, UDP, ICMP 等) .It 送信元および宛先ポート (リスト、範囲、マスクのいずれか) .It TCP フラグ .It IP フラグメントフラグ .It IP オプション .It ICMP タイプ .It パケットに関連付けられたソケットのユーザ ID とグループ ID .El .Pp 送信元 IP アドレスや宛先 TCP/UDP ポートによるフィルタは 危険があることに注意してください。 なぜなら、これらの詐称は簡単だからです。 .Bl -tag -width indent .It Cm prob Ar match_probability 指定した確率 (0 から 1 までの浮動小数点数です) でのみマッチが宣言されます。 ランダムにパケットを落とす応用として用いる場合や、 .Po .Xr dummynet 4 と共に使用して .Pc パケット到達順序の乱れを引き起こす複数経路の効果をシミュレートする際に 有用です。 .It Ar action : .Bl -tag -width indent .It Cm allow マッチするパケットを通過させ、マッチングを終了します。 .Cm pass , .Cm permit , .Cm accept はこれの別名です。 .It Cm deny マッチするパケットを破棄し、マッチングを終了します。 .Cm drop は .Cm deny の別名です。 .It Cm reject .Pq この使用は推奨されません マッチするパケットを破棄し、 ICMP の host unreachable を送信し、 マッチングを終了します。 .It Cm unreach Ar code マッチするパケットを破棄し、 ICMP の unreachable に .Ar code を付けて送信します。ここで、 .Ar code は、0 から 256 までの数字、もしくは、以下に列挙する別名のいずれかです: .Cm net , host , protocol , port , .Cm needfrag , srcfail , net-unknown , host-unknown , .Cm isolated , net-prohib , host-prohib , tosnet , .Cm toshost , filter-prohib , host-precedence , .Cm precedence-cutoff 。マッチングは終了します。 .It Cm reset TCP パケットのみ対象。 パケットを破棄し、TCP の reset (RST) を送信し、 マッチングを終了します。 .It Cm count ルールにマッチするパケットすべてのカウンタを更新し、 引続きマッチングを行ないます。 .It Cm check-state 動的ルール集合に対してパケットのチェックを行ないます。 マッチした場合、マッチングは終了します。 マッチしなかった場合、次のルールに移ります。 .Cm check-state ルールが見つからないときは、動的ルール集合は最初の .Cm keep-state ルールの場所でチェックされます。 .It Cm divert Ar port マッチするパケットを .Ar port で指定されたポートにバインドされている .Xr divert 4 ソケットに送り、マッチングを終了します。 .It Cm tee Ar port マッチするパケットのコピーを .Ar port で指定されたポートにバインドされている .Xr divert 4 ソケットに送ります。 検索を終了し、元のパケットは受理されます .Po ただし後述の .Sx バグ を参照してください .Pc "。" .It Cm fwd Ar ipaddr Ns Xo .Op , Ns Ar port .Xc マッチしたパケットの次のホップを .Ar ipaddr に変更します。これはドット付き 4 つ組の IP アドレスでもホスト名でもよいです。 .Ar ipaddr が直接到達可能なアドレスではない場合、その IP に対して ローカルルーティングテーブルでみつかった経路を使用します。 .Ar ipaddr がローカルアドレスの場合、 リモートホストからこのシステムにパケットが到着すると、 そのパケットをローカルマシンの .Ar port に転換します。 その際、 ソケットのローカルアドレスは、 パケットの元々の宛先の IP アドレスのままとします。 これは透過的プロキシサーバのためにあります。 IP が ローカルアドレスではない場合、ポート番号は (指定されていても) 無視され、 ルールはシステムから出て行くパケットに対してのみ適用されます。 パケットがローカルに生成されたときには、アドレスをローカルポートに マップします。 検索はこのルールがマッチしたときに終了します。 ポート番号が与えられなかった場合、 外部マシンのポート Y へのパケットは ローカルポート Y へ転送されるように、 パケット中のポート番号が使用されます。 カーネルは、 オプション IPFIREWALL_FORWARD 付きでコンパイルされている必要があります。 .It Cm pipe Ar pipe_nr パケットを .Xr dummynet 4 .Dq パイプ へ渡します (バンド幅制限、遅延等のため)。 更なる情報については .Sx トラフィックシェイパ設定 の節を参照してください。 検索は終了します。 しかし、パイプから抜けたときに .Xr sysctl 8 変数 .Em net.inet.ip.fw.one_pass がセットされていない場合、 パケットはファイアウォールコードへ再度渡されて次のルールから開始します。 .It Cm queue Ar queue_nr パケットを .Xr dummynet 4 .Dq queue へ渡します (WF2Q を使ったバンド幅制限用)。 .It Cm skipto Ar number .Ar number より小さな番号のルールを飛び越して、 .Ar number 以上の番号のルールで最初に存在するものから、マッチングを継続します。 .El .It Cm log Op Cm logamount Ar number カーネルが .Dv IPFIREWALL_VERBOSE オプション付きでコンパイルされている場合に、 .Cm log キーワードが指定されているルールとマッチした時、 メッセージをコンソールへ表示します。 カーネルが、 .Dv IPFIREWALL_VERBOSE_LIMIT オプション付きでコンパイルされている場合、 デフォルトでは、 一連のルールに対し指定されたパケット 数を受信した後、メッセージの表示を中止し、 .Em net.inet.ip.fw.verbose_limit がその数に設定されます。 しかし .Cm logamount Ar number が使用された場合、 .Em net.inet.ip.fw.verbose_limit の代りにこの .Ar number がデフォルトのログ制限になり、値 .Dq 0 を指定すると、ロギングの制限は取り除かれます。 このエントリに対するロギングカウンタまたはパケットカウンタを クリアすれば、ロギングは再び有効になります。 .Pp コンソールログとデフォルトログ制限数は、 .Xr sysctl 8 を通じて MIB ベース .Dv net.inet.ip.fw にて動的に設定できます。 .It Ar proto 名前または数値で指定する IP プロトコル (詳細は .Pa /etc/protocols のリストを参照のこと)。 .Cm ip または .Cm all のキーワードを使用すると、すべてのプロトコルがマッチします。 .It Ar src No と Ar dst : .Aq Ar address Ns / Ns Ar mask .Op Ar ports .Pp .Aq Ar address Ns / Ns Ar mask は以下のように指定できます。 .Bl -tag -width indent .It Ar ipno IP 番号を 1.2.3.4 の形式で指定します。 この IP 番号にのみマッチします。 .It Ar ipno Ns / Ns Ar bits IP 番号とネットマスクの幅を 1.2.3.4/24 の形式で指定します。 この例の場合は 1.2.3.0 から 1.2.3.255 のアドレスがマッチします。 .It Ar ipno Ns : Ns Ar mask IP 番号とネットマスクを 1.2.3.4:255.255.240.0 の形式で指定します。 この場合は 1.2.0.0 から 1.2.15.255 のアドレスがマッチします。 .El .Pp アドレスの前に .Cm not を付けることによって、マッチの意味を反転させる ことができます (指定されたアドレス以外のすべてのアドレスがマッチします)。 これはポート番号の選択には影響しません。 .Pp TCP と UDP ではさらに、 .Em ports を以下のように指定できます。 .Bd -ragged -offset indent .Sm off .Eo \&{ .Ar port | .Ar port No \&- Ar port | .Ar port : mask .Ec \&} Op , Ar port Op , Ar ... .Sm on .Ed .Pp 記号 .Ql \&- による表現は、ポート範囲 (両端含む) を指定します。 .Pp 記号 .Ql \&: による表現は、ポートとマスクを指定します。 マッチが宣言されるのは、 パケット中のポート番号がルール中のポート番号にマッチするときですが、 マッチ対象のビットはマスク中で指定されたものに限定されます。 .Pp ポート番号の代わりに (ファイル .Pa /etc/services から取った) サービス名を使用できます。 ポート範囲指定の書式は、最初の値としてのみ指定できます。 列挙出来るポート数は .Pa /usr/src/sys/netinet/ip_fw.h で .Dv IP_FW_MAX_PORTS として定義されています。 バックスラッシュ .Pq Ql \e を使用することにより、サービス名中の .Pq Ql - 文字をエスケープ可能です: .Pp .Dl ipfw add count tcp from any ftp\e\e-data-ftp to any .Pp 断片化されたパケットでオフセットが非 0 のもの (すなわち、最初の断片ではないもの) は、 1 つ以上のポート指定を持つルールにはマッチしません。 断片化されたパケットへのマッチングに関する詳細は .Cm frag オプションを参照してください。 .It Ar interface-spec 次の指定子の組み合わせを使用可能です: .Bl -tag -width "via ipno" .It Cm in 入力パケットにのみマッチします。 .It Cm out 出力パケットにのみマッチします。 .It Cm via Ar ifX パケットはインタフェース .Ar ifX を通過せねばなりません。 .It Cm via Ar if Ns Cm * パケットはインタフェース .Ar ifX を通過せねばなりません。この .Ar X はどんなユニット番号でもかまいません。 .It Cm via any パケットは .Em いずれか のインタフェースを通過せねばなりません。 .It Cm via Ar ipno パケットは、 IP アドレス .Ar ipno を持つインタフェースを通過せねばなりません。 .El .Pp .Cm via を用いると、常時指定されたインタフェースがチェックされます。 .Cm recv や .Cm xmit を、 .Cm via の代わりに指定すると、 受信、もしくは送信インタフェースのみが (おのおの) チェックされます。 両方を指定すれば、 受信インタフェースと送信インタフェースの両方に基づきパケットを マッチさせることが可能になります。 例 : .Pp .Dl "ipfw add 100 deny ip from any to any out recv ed0 xmit ed1" .Pp .Cm recv で指定したインタフェースでは、受信と送信、両方のパケットをチェックできます。 それに対し、 .Cm xmit で指定したインタフェースでは、送信パケットのみとなります。 それゆえに、 .Cm xmit を指定すると .Cm out が、必須です ( .Ar in は不可)。 .Ar via と共に .Ar xmit もしくは、 .Ar recv を指定する事はできません。 .Pp パケットは、受信用ないし送信用インタフェースを持たない場合があります。 ローカルホストで発生したパケットには受信用のインタフェースはありませんし、 ローカルホスト内宛のパケットには送信用インタフェースはありません。 .It Ar options : .Bl -tag -width indent .It Cm keep-state Op Ar method マッチの際に、ファイアウォールが動的ルールを生成します。このルールの デフォルトの動作は、同一プロトコルを用いる発信元と宛先の IP/port 間で双方向に通過するパケットへのマッチです。 このルールの生存期間は有限です ( .Xr sysctl 8 変数の集合により制御されます)。この生存期間は、パケットのマッチが 生じるたびに更新されます。 .Pp 実際の動作は、異なる .Ar method を指定することにより変更が可能です。 .It Cm bridged ブリッジされるパケットにのみマッチします。 これはマルチキャストやブロードキャストのパケットを扱う際に有用です。 これ以外の方法では、パケットは、ブリッジの際に一度、 ローカルスタックに渡される際にもう一度と、 ファイアウォールを 2 度通過してしまいます。 .Pp パフォーマンス上のわずかな損失はともかく、 .Em pipe を用いる際にも問題になります。これは、バンド幅、キュー占有度などの カウンタに関して、同じパケットが 2 度カウントされてしまうためです。 .It Cm frag パケットが断片 (フラグメント) 化されたデータグラムの一部で、 かつデータグラムの先頭の断片でない場合にマッチします。 .Cm frag を、 .Cm tcpflags や TCP/UDP ポート指定と共に使用することはできません。 .It Cm ipoptions Ar spec IP ヘッダが、 .Ar spec に指定されたコンマで区切られたオプションのリストを含む場合にのみマッチします。 サポートされている IP オプションは .Pp .Cm ssrr (strict source route), .Cm lsrr (loose source route), .Cm rr (record packet route), .Cm ts (timestamp) です。 -.Ql ! +.Ql \&! によって、特定のオプションを含まない指定が記述できます。 .It Cm tcpoptions Ar spec TCP ヘッダが、 .Ar spec に指定されたコンマで区切られたオプションのリストを含む場合にのみマッチします。 サポートされている TCP オプションは .Pp .Cm mss (maximum segment size), .Cm window (tcp window advertisement), .Cm sack (selective ack), .Cm ts (rfc1323 timestamp), .Cm cc (rfc1644 t/tcp connection count) です。 -.Ql ! +.Ql \&! によって、特定のオプションを含まない指定が記述できます。 .It Cm established TCP パケットのみに適用されます。 RST または ACK ビットがセットされているパケットのみマッチします。 .It Cm setup TCP パケットのみに適用されます。 SYN ビットがセットされ ACK がセットされていないパケットのみマッチします。 .It Cm tcpflags Ar spec TCP パケットのみに適用されます。 TCP ヘッダが .Ar spec に指定されたコンマで区切られたフラグのリストを含む場合にのみマッチします。 サポートされているフラグは、 .Pp .Cm fin , .Cm syn , .Cm rst , .Cm psh , .Cm ack , .Cm urg です。 -.Ql ! +.Ql \&! によって、特定のフラグを含まない指定を記述できます。 .Cm tcpflags 指定を含むルールは、非 0 のオフセットを持つ断片化されたパケットに マッチすることはありません。 断片化されたパケットに関するマッチについての詳細は .Cm frag オプションを参照してください。 .It Cm icmptypes Ar types ICMP パケットのみに適用されます。 ICMP タイプが .Ar types で指定されたリスト中に存在する場合にのみマッチします。 リストは範囲指定でも、タイプおのおのをコンマで区切ったものでも どちらの組み合わせでもかまいません。 サポートされている ICMP タイプは次の通りです: .Pp エコー返答 .Pq Cm 0 , 終点不到達 .Pq Cm 3 , 発信抑制 .Pq Cm 4 , リダイレクト .Pq Cm 5 , エコー要求 .Pq Cm 8 , ルータ広告 .Pq Cm 9 , ルータ要請 .Pq Cm 10 , 時間超過 .Pq Cm 11 , IP ヘッダ異常 .Pq Cm 12 , タイムスタンプ要求 .Pq Cm 13 , タイムスタンプ応答 .Pq Cm 14 , 情報要求 .Pq Cm 15 , 情報返答 .Pq Cm 16 , アドレスマスク要求 .Pq Cm 17 , アドレスマスク応答 .Pq Cm 18 .It Cm uid Ar user .Ar user が送信したまたは受信する、 すべての TCP パケットと UDP パケットにマッチします。 .Ar user は、名前でも ID 番号でもマッチします。 .It Cm gid Ar group .Ar group が送信したまたは受信する、 すべての TCP パケットと UDP パケットにマッチします。 .Ar group は、名前でも ID 番号でもマッチします。 .El .El .Sh トラフィックシェイパ設定 .Nm ユーティリティは、 .Xr dummynet 4 トラフィックシェイパへのユーザインタフェースも提供します。 シェイパは、ユーザが指定したマスクを IP ヘッダの異なったフィールドに 適用することにより、パケットを .Em フロー (flow) に分割します。 同じフローに属するパケットは 2 つの異なったオブジェクトへ渡されます。 それは .Em パイプ (pipe) または .Em キュー (queue) と呼ばれるものです。 .Em パイプ は、与えられたバンド幅、遅延時間、キューの長さ、パケット喪失率を もつリンクをエミュレートします。 このパラメータに従い、パケットはパイプ中を遷移します。 .Pp .Em キュー は、WF2Q+ ポリシを実装するために使用する抽象化です。 キューは、各フローに対し、重みと参照パイプを関連付けます。 それから、同じパイプに結び付けられたすべてのフローは、 WF2Q+ ポリシに従い、 パイプによって固定されたレートでスケジュールされます。 .Pp .Nm パイプ設定書式は次の通りです。 .Bd -ragged .Cm pipe Ar number Cm config .Op Cm bw Ar bandwidth | device .Op Cm delay Ar ms-delay .Oo .Cm queue .Es \&{ \&} .En Ar slots | size .Oc .Op Cm plr Ar loss-probability .Op Cm mask Ar mask-specifier .Op Cm buckets Ar hash-table-size .Oo .Cm red | gred .Sm off .Ar w_q No / Xo .Ar min_th No / .Ar max_th No / .Ar max_p .Xc .Sm on .Oc .Ed .Pp .Nm キュー設定書式は次の通りです。 .Bd -ragged .Cm queue Ar number Cm config .Op Cm pipe Ar pipe_nr .Op Cm weight Ar weight .Oo .Cm queue .Es \&{ \&} .En Ar slots | size .Oc .Op Cm plr Ar loss-probability .Op Cm mask Ar mask-specifier .Op Cm buckets Ar hash-table-size .Oo .Cm red | gred .Sm off .Ar w_q No / Xo .Ar min_th No / .Ar max_th No / .Ar max_p .Xc .Sm on .Oc .Pp 次のパラメータをパイプに対して設定可能です: .Bl -tag -width indent .It Cm bw Ar bandwidth | device バンド幅であり、単位は .Sm off .Oo .Cm K | M .Oc Eo \&{ .Cm bit/s | Byte/s .Ec \&} .Sm on で測定します。 .Pp 値 0 (デフォルト) は無限のバンド幅を意味します。 単位は数値の直後に続けて書く必要があり、次のようにします。 .Pp .Dl "ipfw pipe 1 config bw 300Kbit/s queue 50KBytes" .Pp 数値の代りにデバイス名が指定された場合、 送信クロックは指定したデバイスから与えられます。 現在のところ、 .Xr tun 4 デバイスのみが .Xr ppp 8 と組み合わせて使用するために、この機能を提供しています。 .It Cm delay Ar ms-delay 遅延時間であり、ミリ秒単位で指定します。 値は、クロックティックの倍数 (典型的には 10ms ですが、 カーネルを "options HZ=1000" で動作させて精度を 1ms 以下にすると良い ことが経験的に知られています) に丸められます。 デフォルト値は 0 であり、遅延無しを意味します。 .It Cm queue Xo .Es \&{ \&} .En Ar slots | size Ns Cm Kbytes .Xc キューの大きさであり、スロット数か KBytes です。 デフォルト値は 50 スロットであり、 イーサネットデバイスの典型的なキューの大きさです。 低速リンクではキューの大きさを短くすべきことに注意してください。 さもないと、トラフィックは甚大なキュー遅延による影響を受けてしまいます。 例えば、 50 個の最大イーサネットパケット (1500 バイト) は 600Kbit であり、 30Kbit/s のパイプでは 20 秒のキューを意味します。 より大きな MTU のインタフェースからパケットを受け取るときには、 より悪い結果となります。 例えば、ループバックインタフェースにおいて 16KB パケットを受け取るときです。 .It Cm plr Ar packet-loss-rate パケット喪失率です。 引数 .Ar packet-loss-rate は 0 と 1 の間の浮動小数点数であり、 0 は喪失無しを意味し、1 は 100% の喪失を意味します。 喪失率は内部的には 31 ビットで表現されます。 .It Cm mask Ar mask-specifier .Xr dummynet 4 では、フローごとのキューを生成可能です。 フロー識別子は、パイプ設定において指定される IP アドレス、ポート、プロトコルタイプでマスクすることで構築されます。 マスク後に同じ識別子を持つパケットは、同じキューに落ちます。 使用可能なマスク指定子は、次を組み合わせたものです: .Cm dst-ip Ar mask , .Cm src-ip Ar mask , .Cm dst-port Ar mask , .Cm src-port Ar mask , .Cm proto Ar mask , .Cm all 。 最後の指定子は、 すべてのフィールドのすべてのビットが重要であることを意味しています。 .Ar pipe 設定中で使用される場合、 各フローにはパイプのレートに等しいレートが割り当てられます。 .Ar queue 設定中で使用される場合、 各フローにはキューの重みに等しい重みが割り当てられ、 同じパイプを構成するキューは重みに比例してバンド幅を共有します。 .It Cm buckets Ar hash-table-size 様々なキューを格納するために使用するハッシュ表の大きさを指定します。 デフォルト値は 64 であり、 .Xr sysctl 8 変数 .Em net.inet.ip.dummynet.hash_size で制御され、使用可能な範囲は 16 から 1024 です。 .It Cm pipe Ar pipe_nr キューを指定したパイプに接続します。 複数のキュー (通常は異なった重み) を同一のパイプに接続可能です。 この場合、このキュー集合に対する集約レートを、このパイプが指定します。 .It Cm weight Ar weight このキューに適合するフローに使用する重みを指定します。 重みは 1..100 の範囲であることが必要であり、デフォルトは 1 です。 .It Cm red | gred Xo .Sm off .Ar w_q No / .Ar min_th No / .Ar max_th No / .Ar max_p .Sm on .Xc RED キュー管理アルゴリズムを使用します。 .Ar w_q と .Ar max_p は 0 から 1 (0 を含みません) の範囲の浮動小数点数であり、 .Ar min_th と .Ar max_th はキュー管理用の閾値を指定する整数です (キューがバイト数で指定された場合は閾値はバイトで計算され、 そうでない場合はスロット数で計算されます)。 .Xr dummynet 4 は、gentle RED という変型 (gred) もサポートします。 RED の動作を制御するために、3 個の .Xr sysctl 8 変数を使用可能です: .Bl -tag -width indent .It Em net.inet.ip.dummynet.red_lookup_depth リンクがアイドルの時の、平均キューの計算精度を指定します (デフォルトは 256 であり、0 より大きい必要があります) .It Em net.inet.ip.dummynet.red_avg_pkt_size パケットサイズの平均の期待値を指定します (デフォルトは 512 であり、0 より大きい必要があります) .It Em net.inet.ip.dummynet.red_max_pkt_size パケットサイズの最大値の期待値を指定します。 キューの閾値がバイトの場合のみ使用されます (デフォルトは 1500 であり、0 より大きい必要があります) .El .El .Sh チェックリスト ルールを構成する際に考慮すべき重要な点を述べます。 .Bl -bullet .It かならず送信パケットと受信パケットの両方のパケットをフィルタリングします。 ほとんどのネットワークコネクションではパケットが双方向に流れることが必要です。 .It テストは細心の注意を払って行ないます。テストの際にはコンソールの近くにいる のがよいでしょう。 .It ループバックインタフェースのことを忘れてはなりません。 .El .Sh 長所 .Bl -bullet .It ファイアウォールが常に破棄するパケットが 1 種類あります。 フラグメントオフセットが 1 の TCP パケットフラグメントです。 これはパケットとしては有効なものですが、利用目的はファイアウォールを かいくぐることしかありません。 .It ネットワーク越しにログインしている場合、 .Xr kld 4 バージョンの .Nm をロードすることはそれほど単純なことではありません。 以下のコマンドを奨めます。 .Bd -literal -offset indent kldload /modules/ipfw.ko && \e ipfw add 32000 allow ip from any to any .Ed .Pp これに引続き、同じような状況で .Bd -literal -offset indent ipfw flush .Ed .Pp とするのは良くありません。 .It システムセキュリティレベルが 3 以上に設定されている場合、 IP フィルタリストを変更できません (システムセキュリティレベルについては .Xr init 8 を参照してください)。 .El .Sh パケットの行き先変更 指定されたポートにバインドされた .Xr divert 4 ソケットは、 そのポートへ行き先変更されたパケットを、 全部受けとります。 宛先ポートにバインドされたソケットがない場合や、 カーネルがパケットの行き先変更ソケットをサポートするようには コンパイルされていない場合、 パケットは破棄されます。 .Sh SYSCTL 変数 ファイアウォールの動作を制御する .Xr sysctl 8 変数の集合があります。これらを、デフォルトの値と意味とともに 以下に示します。 .Bl -tag -width indent .It Em net.inet.ip.fw.debug : No 1 .Nm が生成するデバッグメッセージを制御します。 .It Em net.inet.ip.fw.one_pass : No 1 セットされると、 .Xr dummynet 4 パイプから出て来たパケットは、ふたたびファイアウォールを通さないようにします。 セットされない場合、pipe 処理のあと、 パケットは再びファイアウォールに挿入され、次のルールから再開されます。 .It Em net.inet.ip.fw.verbose : No 1 冗長なメッセージを出力するようにします。 .It Em net.inet.ip.fw.enable : No 1 ファイアウォールを動作可能にします。 この変数を 0 に設定すると、ファイアウォールをコンパイルして 仕込んでいてもファイアウォールなしで動作します。 .It Em net.inet.ip.fw.verbose_limit : No 0 冗長なファイアウォールが生成するメッセージの数を制限します。 .It Em net.inet.ip.fw.dyn_buckets : No 256 .It Em net.inet.ip.fw.curr_dyn_buckets : No 256 動的ルールを保持するために使用するハッシュ表の設定サイズと 現在のサイズです。この値は 2 のべき乗にする必要があります。 ハッシュ表のサイズの変更は、表が空の場合のみ行なわれます。 したがって、実行中に表のサイズを変更するためには、 .Cm flush してルール集合を再ロードする必要があるでしょう。 .It Em net.inet.ip.fw.dyn_count : No 3 現在の動的ルールの数です .Pq 読み込み専用 。 .It Em net.inet.ip.fw.dyn_max : No 1000 動的ルールの最大値です。この限界にいきつくと、 古いルールが無効になるまでは、それ以上、動的ルールを 組み込むことはできません。 .It Em net.inet.ip.fw.dyn_ack_lifetime : No 300 .It Em net.inet.ip.fw.dyn_syn_lifetime : No 20 .It Em net.inet.ip.fw.dyn_fin_lifetime : No 20 .It Em net.inet.ip.fw.dyn_rst_lifetime : No 5 .It Em net.inet.ip.fw.dyn_short_lifetime : No 30 これらの値は、動的ルールの生存期間を秒単位でコントロールします。 最初の SYN 交換の際に、生存期間が short になり、 SYN を両方とも見た後に増やされ、最後の FIN 交換の間、 または RST が生じる際に再び減らされます。 .El .Sh 使用例 次のコマンドは .Em cracker.evil.org から .Em wolf.tambov.su の telnet ポートへ送られるすべての TCP パケットを拒否するルールを追加します。 .Pp .Dl "ipfw add deny tcp from cracker.evil.org to wolf.tambov.su telnet" .Pp 次のコマンドはクラッカーのネットワーク全体からホスト my への すべてのコネクションを拒否します。 .Pp .Dl "ipfw add deny ip from 123.45.67.0/24 to my.host.org" .Pp 最初に効率良く (動的ルールを用いずに) アクセスを制限する方法は、 次のルールを用いることです。 .Pp .Dl "ipfw add allow tcp from any to any established" .Dl "ipfw add allow tcp from net1 portlist1 to net2 portlist2 setup" .Dl "ipfw add allow tcp from net3 portlist3 to net3 portlist3 setup" .Dl "..." .Dl "ipfw add deny tcp from any to any" .Pp 最初のルールは通常の TCP パケットにすぐにマッチしますが、 最初の SYN パケットにはマッチしません。 指定した発信元/宛先の組の SYN パケットのみ、次の .Cm setup ルールにマッチします。これら以外の SYN パケットは、最後の .Cm deny ルールにより却下されます。 .Pp にせの TCP パケットを含む怒涛の攻撃 (flood attack) から サイトを保護するためには、次の動的ルールを用いた方が安全です。 .Pp .Dl "ipfw add check-state" .Dl "ipfw add deny tcp from any to any established" .Dl "ipfw add allow tcp from my-net to any setup keep-state" .Pp これらのルールにより、ファイアウォールは、自分たちのネットワークの 内側から到着する通常の SYN パケットで始まるコネクションに対して のみ動的ルールを組み込みます。動的ルールは、最初の .Cm check-state ルール、または、 .Cm keep-state ルールに遭遇した時点でチェックされます。 ルール集合のスキャン量を最小にするために、 .Cm check-state ルールは、ルール集合の最初のほうに置くことになるのが普通です。 実際の燃費は変動します。 .Pp .Em 注意 : ステートフルなルールは、怒涛の SYN 攻撃により極めて大量の動的ルールを 作ってしまい、サービス不能攻撃を受けることになる可能性があります。 ファイアウォールの動作をコントロールする .Xr sysctl 8 変数に従いファイアウォールが動作することによって、 このような攻撃の影響を部分的にでも制限することはできます。 .Pp 次はカウントされている情報とタイムスタンプ情報を見る .Cm list コマンドのよい例です。 .Pp .Dl ipfw -at l .Pp これはタイムスタンプを省略して次のように指定できます。 .Pp .Dl ipfw -a l .Pp 次のルールは 192.168.2.0/24 からのすべての受信パケットを、5000 番のポートに 行き先変更するものです。 .Pp .Dl ipfw divert 5000 ip from 192.168.2.0/24 to any in .Pp 次のルールは、 .Nm と .Xr dummynet 4 をシミュレーションなどで使う際の使用方法を示しています。 .Pp このルールは 5% の確率でランダムにパケットを落します。 .Pp .Dl "ipfw add prob 0.05 deny ip from any to any in" .Pp 同様の効果は dummynet パイプで実現可能です: .Pp .Dl "ipfw add pipe 10 ip from any to any" .Dl "ipfw pipe 10 config plr 0.05" .Pp 人工的にバンド幅を制限するためにパイプを使用可能です。 例えばルータとして動作するマシン上で、 192.168.2.0/24 上のローカルクライアントからのトラフィックを制限したい場合、 次のようにします: .Pp .Dl "ipfw add pipe 1 ip from 192.168.2.0/24 to any out" .Dl "ipfw pipe 1 config bw 300Kbit/s queue 50KBytes" .Pp .Cm out 指示子を使用しているので、ルールが 2 度使われないことに注意してください。 .Nm ルールは、実際には、 入力パケットと出力パケットの両方に適用されることを覚えておいてください。 .Pp バンド幅に制限がある双方向リンクをシミュレートする場合、 正しい方法は次の通りです: .Pp .Dl "ipfw add pipe 1 ip from any to any out" .Dl "ipfw add pipe 2 ip from any to any in" .Dl "ipfw pipe 1 config bw 64Kbit/s queue 10Kbytes" .Dl "ipfw pipe 2 config bw 64Kbit/s queue 10Kbytes" .Pp 上述の方法は非常に有用な場合があり、 例えばあなたの装飾的なウェブページが 低速リンクのみで接続されている在宅ユーザにどう見えているか 知りたい場合に有用です。 半二重メディア (例えば appletalk, Ethernet, IRDA) をシミュレートしたい 場合を除き、単一のパイプを両方の方向に使用すべきではありません。 両方のパイプが同じ設定である必要はないので、 非対称リンクをシミュレート可能です。 .Pp RED キュー管理アルゴリズムを使用してネットワーク性能を検証するには、 次のようにします: .Pp .Dl "ipfw add pipe 1 ip from any to any" .Dl "ipfw pipe 1 config bw 500Kbit/s queue 100 red 0.002/30/80/0.1" .Pp トラフィックシェイパの他の典型的な応用は、 いくばくかの通信遅延を導入することです。 これは、遠隔手続き呼び出しを多用するアプリケーションで、 バンド幅よりも接続のラウンドトリップ時間がしばしば制約条件となる アプリケーションに、大きな影響を与えます: .Pp .Dl "ipfw add pipe 1 ip from any to any out" .Dl "ipfw add pipe 2 ip from any to any in" .Dl "ipfw pipe 1 config delay 250ms bw 1Mbit/s" .Dl "ipfw pipe 2 config delay 250ms bw 1Mbit/s" .Pp フローごとのキューはさまざまな用途に有用です。 非常に単純な用途は、トラフィックの計数です: .Pp .Dl "ipfw add pipe 1 tcp from any to any" .Dl "ipfw add pipe 1 udp from any to any" .Dl "ipfw add pipe 1 ip from any to any" .Dl "ipfw pipe 1 config mask all" .Pp 上述のルールセットは、 すべてのトラフィックに対するキューを生成 (して統計情報を収集) します。 パイプには制限をつけていないので、統計情報を集める効果しかありません。 最後のルールだけでなく 3 個のルールが必要なことに注意してください。 .Nm が IP パケットのマッチを試みるときにポートを考慮しないため、 別々のポート上の接続は我々には同じものに見えます。 .Pp より洗練された例は、 ネットワークの出力トラフィックを、 ネットワーク毎に制約するのではなく、ホスト毎に制約するものです: .Pp .Dl "ipfw add pipe 1 ip from 192.168.2.0/24 to any out" .Dl "ipfw add pipe 2 ip from any to 192.168.2.0/24 in" .Dl "ipfw pipe 1 config mask src-ip 0x000000ff bw 200Kbit/s queue 20Kbytes" .Dl "ipfw pipe 2 config mask dst-ip 0x000000ff bw 200Kbit/s queue 20Kbytes" .Sh 関連項目 .Xr cpp 1 , .Xr m4 1 , .Xr bridge 4 , .Xr divert 4 , .Xr dummynet 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 この数年で文法が大きくなってしまい、 非常にすっきりしているとは言い難いです。 .Pp .Em WARNING!!WARNING!!WARNING!!WARNING!!WARNING!!WARNING!!WARNING!! .Pp このプログラムはコンピュータをかなり使いにくい状態にしてしまう 可能性があります。 はじめて使用する時はコンソール上で実行し、理解していない操作は .Em 絶対に実行しない ようにして下さい。 .Pp 連続したエントリの操作もしくは追加に際し、 サービス名やプロトコル名は使用できません。 .Pp 入ってきたパケットの断片 (フラグメント) が .Cm divert によって行き先を変更されるか .Cm tee されると、ソケットに配送される前にパケットは再構成されます。 .Pp .Cm tee ルールにマッチするパケットは、 即時に受理されるべきではなく、ルールリストを更に通るべきです。 これは、以降のバージョンで修正されるかもしれません。 .Sh 作者 .An Ugen J. S. Antsilevich , .An Poul-Henning Kamp , .An Alex Nash , .An Archie Cobbs , .An Luigi Rizzo . .Pp .An -nosplit API は .An Daniel Boulet が BSDI 用に記述したコードに基づいています。 .Pp .Xr dummynet 4 トラフィックシェイパは Akamba Corp がサポートしました。 .Sh 歴史 .Nm は、 .Fx 2.0 で最初に現れました。 .Xr dummynet 4 は .Fx 2.2.8 から導入されました。 ステートフル拡張は、 .Fx 4.0 から導入されました。 diff --git a/ja_JP.eucJP/man/man8/kldload.8 b/ja_JP.eucJP/man/man8/kldload.8 index 9dabbfc882..e8dc37ed22 100644 --- a/ja_JP.eucJP/man/man8/kldload.8 +++ b/ja_JP.eucJP/man/man8/kldload.8 @@ -1,71 +1,72 @@ .\" .\" Copyright (c) 1997 Doug Rabson .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" %FreeBSD: src/sbin/kldload/kldload.8,v 1.7.2.1 2000/12/08 14:03:55 ru Exp % +.\" %FreeBSD: src/sbin/kldload/kldload.8,v 1.7.2.2 2000/12/18 15:38:24 ru Exp % .\" jpman %Id: kldload.8,v 1.3 1998/10/08 15:17:26 horikawa Stab % .\" .Dd April 25, 1997 .Dt KLDLOAD 8 .Os FreeBSD .Sh 名称 .Nm kldload .Nd カーネルにファイルをロードする .Sh 書式 .Nm .Op Fl v .Ar filename .Sh 解説 .Nm はカーネルリンカを用いてファイル .Ar filename.ko をカーネルにロードします。 .Pp 以下のオプションが利用できます : .Bl -tag -width indent .It Fl v 出力を冗長にします。 .El .Sh 関連ファイル .Bl -tag -width /modules -compact .It Pa /modules ローダブルモジュールを格納するディレクトリ。 モジュールの拡張子は .ko である必要があります。 +.El .Sh 診断 .Nm ユーティリティは、成功時には状態 0 で、 エラー発生時には 0 以外の状態で終了します。 .Sh 関連項目 .Xr kldload 2 , .Xr kldstat 8 , .Xr kldunload 8 .Sh 歴史 .Nm コマンドは .Fx 3.0 に初めて登場し、 .Xr lkm 4 インタフェースを置き換えました。 .Sh 作者 .An Doug Rabson Aq dfr@FreeBSD.org diff --git a/ja_JP.eucJP/man/man8/ldconfig.8 b/ja_JP.eucJP/man/man8/ldconfig.8 index 0f258e8fc1..083388f2a5 100644 --- a/ja_JP.eucJP/man/man8/ldconfig.8 +++ b/ja_JP.eucJP/man/man8/ldconfig.8 @@ -1,197 +1,198 @@ .\" .\" Copyright (c) 1993 Paul Kranenburg .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by Paul Kranenburg. .\" 3. The name of the author may not be used to endorse or promote products .\" derived from this software without specific prior written permission .\" .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR .\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES .\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. .\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, .\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT .\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, .\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY .\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" %FreeBSD: src/sbin/ldconfig/ldconfig.8,v 1.19.2.2 2000/12/08 14:03:56 ru Exp % +.\" %FreeBSD: src/sbin/ldconfig/ldconfig.8,v 1.19.2.3 2000/12/18 15:38:26 ru Exp % .\" jpman %Id: ldconfig.8,v 1.3 1997/07/22 16:49:42 horikawa Stab % .\" .Dd October 3, 1993 .Dt LDCONFIG 8 .Os FreeBSD .Sh 名称 .Nm ldconfig .Nd 共有ライブラリのキャッシュを設定する .Sh 書式 .Nm .Op Fl aout | Fl elf .Op Fl Rmrsv .Op Fl f Ar hints_file .Op Ar directory | file Ar ... .Sh 解説 .Nm は、ダイナミックリンカ が、複数のディレクトリから利用可能な共有ライブラリを素早く捜し出すために 使う .Dq ヒント の集合を準備するために使われます。 コマンドは、組み込みのシステムディレクトリと コマンドラインで指定された任意の .Ar ディレクトリ (を指定された順番) で共有ライブラリを探し、 その結果を システムファイル に保存します。 これは、 ダイナミックリンカ が要求された共有ライブラリを読み込む際のディレクトリ検索操作 オーバヘッドをあらかじめ払っていることになります。 .Pp コマンドラインにて指定するファイル名は共有ライブラリを検査するディレクトリ を含むことが期待されます。 各ディレクトリのパス名は行の先頭から始まる必要があります。 空行およびコメント文字 .Ql \&# から始まる行は無視されます。 .Pp 共有ライブラリは、実行されようとするプログラムによって必要とされる ならば、利用可能なものが自動的に読み込まれることになります。 これは、実行形式に検索パスを保存する必要性を無くします。 .Pp .Ev LD_LIBRARY_PATH 環境変数は、キャッシュから使用するディレクトリ (や、その順序関係) を 上書きしたり、共有ライブラリを探す追加のディレクトリを 指定するために使われます。 .Ev LD_LIBRARY_PATH は、共有ライブラリを読み込む必要がある時、 ダイナミックリンカ によって検索されるディレクトリパスのリストを コロン -.Sq \: +.Sq \&: で区切って指定します。 これは、 .Xr ld 1 における .Fl L オプションと、実行時点では等価です。 .Pp .Nm は典型的にはブート時の手続きのひとつとして実行されます。 .Pp 以下のオプションが .Nm で認識されます。 .Bl -tag -width indent .It Fl aout a.out 形式の共有ライブラリに対するヒントを生成します。 .It Fl elf ELF 形式の共有ライブラリに対するヒントを生成します。 .It Fl R 以前に設定したディレクトリを再度検索します。 以前作成したヒントファイルをオープンし、 ヘッダからディレクトリリストを取り出します。 コマンドラインに指定したパス名も処理します。 これが、パラメータ無指定時のデフォルト動作です。 .It Fl f Ar hints_file 標準のファイルの代りに、 特定のヒントファイルを読み込んだり、更新したり、その両方を 行ったりします。 このオプションは、テストのために提供されています。 .It Fl m ヒントファイルの内容を指定されたディレクトリで見付かったものに 置き換える代りに、新しいディレクトリの内容を .Dq 併合 (merge) します。 以前の .Nm の実行によってヒントファイル内に記録されているディレクトリも、 新しい共有ライブラリのために再び検索されます。 .It Fl r 現在のヒントファイルの中身について、標準出力に表示します。 ヒントファイルは変更されません。 ヒントファイル中のディレクトリリストが組み込まれます。 .It Fl s 共有ライブラリのために、システムの組み込みディレクトリ .Pq Dq /usr/lib を検索しません。 .It Fl v 冗長モードに切り替えます。 +.El .Sh セキュリティ .Ev セット uid (set-user-Id) プログラムのアドレス空間に共有ライブラリを読み込む時には、 特別の注意をしなければなりません。 そのようなプログラムが実行される時はいつでも、 ダイナミックリンカ はヒントファイルからだけ共有ライブラリを読み込みます。 特に、 .Ev LD_LIBRARY_PATH は、ライブラリを探すためには使われません。 従って、ldconfig の役割には 2 つあります。 素早い検索のためにヒント集合を作成することに加えて、 共有オブジェクトが共有ライブラリを安全に読み込むことができる ディレクトリの集まりを特定することも、その役割です。 .Nm ldconfig によって特定されたディレクトリ集合は、システム管理者の制御下にあること が仮定されています。 .Sh 環境変数 .Bl -tag -width OBJFORMATxxx -compact .It Ev OBJFORMAT .Pa /etc/objformat (後述) に優先し、 .Fl aout と .Fl elf のどちらがデフォルトであるかを決定します。 設定されている場合、値は .Ql aout もしくは .Ql elf のいずれかである必要があります。 .El .Sh 関連ファイル .Bl -tag -width /var/run/ld-elf.so.hintsxxx -compact .It Pa /var/run/ld.so.hints a.out ダイナミックリンカの標準ヒントファイル。 .It Pa /var/run/ld-elf.so.hints ELF ダイナミックリンカの標準ヒントファイル。 .It Pa /etc/ld.so.conf 伝統的な設定ファイルであり、 .Fl aout 付きで起動した場合のためにディレクトリ名を格納します。 .It Pa /etc/ld-elf.so.conf 伝統的な設定ファイルであり、 .Fl elf 付きで起動した場合のためにディレクトリ名を格納します。 .It Pa /etc/objformat .Fl aout と .Fl elf のどちらがデフォルトであるかを決定します。 存在する場合、 .Ql OBJFORMAT=aout か .Ql OBJFORMAT=elf のいずれかの 1 行から成る必要があります。 .Sh 関連項目 .Xr ld 1 , .Xr link 5 .Sh 歴史 .Nm ユーティリティは SunOS 4.0 で初めて現れました。 現在の形は、 .Fx1.1 からです。 diff --git a/ja_JP.eucJP/man/man8/mknod.8 b/ja_JP.eucJP/man/man8/mknod.8 index 4fd3b41b6b..2a0607612d 100644 --- a/ja_JP.eucJP/man/man8/mknod.8 +++ b/ja_JP.eucJP/man/man8/mknod.8 @@ -1,134 +1,134 @@ .\" Copyright (c) 1980, 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. .\" .\" @(#)mknod.8 8.2 (Berkeley) 12/11/93 -.\" %FreeBSD: src/sbin/mknod/mknod.8,v 1.11.2.2 2000/12/08 14:03:57 ru Exp % +.\" %FreeBSD: src/sbin/mknod/mknod.8,v 1.11.2.3 2000/12/18 15:38:27 ru Exp % .\" .\" jpman %Id: mknod.8,v 1.2 1997/03/31 13:37:12 horikawa Stab % .\" .Dd December 11, 1993 .Dt MKNOD 8 .Os BSD 4 .Sh 名称 .Nm mknod .Nd 特殊ファイルを作成する .Sh 書式 .Nm .Ar name .Op Cm c | Cm b .Ar major minor -.Op owner:group +.Op Ar owner : Ns Ar group .Sh 解説 .Nm はデバイス特殊ファイルを作成します。通常、シェルスクリプト .Pa /dev/MAKEDEV で、よく知られている特殊ファイルを作成することができます。 このスクリプトは、 .Nm に適当な引数を渡して実行し、必要なすべてのデバイスファイルの作成をします。 .Pp .Nm の引数としては、以下の 4 つが必要です。 .Bl -tag -width indent .It Ar name デバイスファイル名です。たとえば .Dq sd は SCSI ディスクで、 .Dq pty は疑似デバイスです。 .It Cm b | Cm c デバイスのタイプを指定します。 ブロック型のデバイスは、 .Cm b を指定します。 テープやディスク等がこれに該当しますが、 ブロック型特殊デバイス (cooked) とキャラクタ型特殊デバイス (raw) の 両方の特殊ファイルが必要です。 キャラクタ型のデバイスは、 .Cm c を指定します。 端末や疑似デバイス等がこれに該当します。 .It Ar major メジャーデバイス番号を指定します。 メジャーデバイス番号は、 どのデバイスドライバエントリを使用すべきをカーネルに示します。 メジャーデバイス番号とデバイスの対応を知るには、 .Ar /dev/MAKEDEV を見てください。 .It Ar minor マイナーデバイス番号を指定します。 マイナーデバイス番号は、 デバイスのどのサブユニットが 特殊ファイルに対応するのかをカーネルに示します。 例えば、サブユニットは ファイルシステムのパーティションだったり端末ラインだったりします。 -.It Ar "owner \: group" +.It Ar owner : Ns Ar group .Ar owner .Ar group オペランドの組はオプションですが、 どちらかが指定された場合には両方の指定が必要です。 .Ar owner は数値のユーザ ID でもユーザ名でも良いです。 そのユーザ名が数値のユーザ ID にもある場合には、 オペランドはユーザ名として使用されます。 .Ar group は数値のグループ ID でもグループ名でも良いです。 ユーザ名と同様、 そのグループ名が数値のグループ ID にもある場合には、 オペランドはグループ名として使用されます。 .El .Pp メジャーデバイス番号およびマイナーデバイス番号とも .Xr strtoul 3 が受け付ける任意の形式で指定可能です。 .Ql 0x で始めることにより 16 進数と、 .Ql 0 で始めることにより 8 進数であると解釈させる事が出来ます。 .Sh 互換性 .Xr chown 8 のような機能は .Fx 固有であり、 .Pa /usr がマウントされていることに .Pa /dev/MAKEDEV が依存しないようにするために追加されました。 .Sh 関連項目 .Xr mkfifo 1 , .Xr mknod 2 , .Xr MAKEDEV 8 , .Xr chown 8 .Sh 歴史 .Nm コマンドは .At v6 から登場しました。 diff --git a/ja_JP.eucJP/man/man8/mount.8 b/ja_JP.eucJP/man/man8/mount.8 index 9e445f4839..e1e529e83f 100644 --- a/ja_JP.eucJP/man/man8/mount.8 +++ b/ja_JP.eucJP/man/man8/mount.8 @@ -1,390 +1,391 @@ .\" Copyright (c) 1980, 1989, 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. .\" .\" @(#)mount.8 8.8 (Berkeley) 6/16/94 +.\" %FreeBSD: src/sbin/mount/mount.8,v 1.31.2.4 2000/12/18 15:38:27 ru Exp % .\" %FreeBSD: src/sbin/mount/mount.8,v 1.31.2.3 2000/12/08 14:03:58 ru Exp % .\" .\" jpman %Id: mount.8,v 1.2 1997/05/03 11:26:50 horikawa Stab % .\" .Dd June 16, 1994 .Dt MOUNT 8 .Os BSD 4 .Sh 名称 .Nm mount .Nd ファイルシステムをマウントする .Sh 書式 .Nm .Op Fl adfpruvw .Op Fl t Ar ufs | lfs | external_type .Nm .Op Fl dfpruvw .Ar special | node .Nm .Op Fl dfpruvw .Op Fl o Ar options .Op Fl t Ar ufs | lfs | external_type .Ar special node .Sh 解説 .Nm コマンドは .Xr mount 2 システムコールを使用して、 .Ar "スペシャルデバイス" かリモートノード (rhost:path) を ファイルシステムツリーの .Ar node へ接合します。 もし .Ar special または .Ar node が指定されなかった場合には、 .Xr fstab 5 ファイルから適切な情報を取得します。 .Pp システムは、現在マウントしているファイルシステムのリストを管理しています。 .Nm コマンドを引数を与えずに実行すると、このリストが表示されます。 .Pp オプションとしては以下のものがあります: .Bl -tag -width indent .It Fl a .Xr fstab 5 に記述されているファイルシステムを すべてマウントします。 例外は、``noauto'' が指定されているもの、 .Fl t フラグにて除外されているもの (後述)、 既にマウントされているもの (ルートファイルシステムは伝統的なシングルユーザモードの動作を保つ ために除外されます) です。 通常、これはシステムの起動時に実行されます。 .It Fl d システムコールの実行以外のすべてのことを行ないます。 このオプションを .Fl v とともに指定することで、 .Nm コマンドが何をしようとしているのかを確認することができます。 .It Fl f ファイルシステムのマウント状態を読み書き可能から読み込み専用へ 変更しようとするときに、 すでにオープンされているファイルへの書き込み許可を強制的に取り消します。 また、正常かどうか不明なファイルシステムも強制的に読み書き可能に マウントします (危険なため注意して使って下さい)。 .It Fl o オプションは .Fl o の後にコンマで区切って指定します。 衝突するオプションが指定された場合、最も右側のオプションが効果があります。 以下のオプションが指定できます: .Bl -tag -width indent .It async 指定したファイルシステムのすべての .Tn I/O を非同期に行います。 このフラグを指定することは非常に .Em 危険 ですので、 システムクラッシュ時にファイルシステムを 作り直す用意ができていないかぎりは使うべきではありません。 .It current .Fl u フラグとともに使用された場合、 マウントされているファイルシステムに対する現在の効果を指定することと同じです。 .It force .Fl f オプションと同じです。 ファイルシステムのマウント状態を読み書き可能から読み込み専用へ 変更しようとするときに、 すでにオープンされているファイルへの書き込み許可を強制的に取り消します。 また、正常かどうか不明なファイルシステムも強制的に読み書き可能に マウントします (危険なため注意して使って下さい)。 .It fstab .Fl u フラグとともに使用された場合、 ファイルシステムに対して .Xr fstab 5 に列挙されている全オプションを指定することと同じです。 .It noasync メタデータ I/O を同期に行い、データ I/O を非同期に行います。 これがデフォルトです。 .It noatime ファイル読み取り時に、ファイルアクセス時刻を更新しません。 このオプションが便利なのは、 多くのファイルを持ち、(ほとんどの場合重要ではない) ファイルアクセス時刻 を更新するよりも性能が重要であるファイルシステムです。 このオプションは現在ローカルファイルシステムでのみサポートされています。 .It noauto mount が .Fl a フラグ付きで動作しているときに、このファイルシステムをスキップします。 .It noclusterr リード時のクラスタリングを無効にします。 .It noclusterw ライト時のクラスタリングを無効にします。 .It nodev ファイルシステム上のキャラクタスペシャルデバイスや ブロックスペシャルデバイスを解釈しません。 このオプションは、サーバが自分自身以外のアーキテクチャ用の スペシャルデバイスを含むファイルシステムを持っている場合に有用です。 .It noexec マウントしているファイルシステム上のバイナリの 実行を許可しません。 このオプションは、サーバが自分自身以外のアーキテクチャ用の バイナリを含むファイルシステムを持っている場合に有用です。 .It nosuid 実効ユーザ ID (set-user-ID) セット、 実効グループ ID (set-group-ID) セットビットの 効果をなくします。 注意: .Xr suidperl 1 のような suid/sgid ラッパが 誰でも使えるようにシステムにインストールされている場合には、価値がありません。 .It nosymfollow マウントされたファイルシステムにおいては、シンボリックリンクを追跡しません。 .It rdonly .Fl r と同じく、マウントするファイルシステムを読み込み専用とします (スーパユーザでも書き込みできなくなります)。 .It sync ファイルシステムのすべての .Tn I/O を同期的に行います。 .It suiddir マウントされたファイルシステムにおけるディレクトリに SUID ビットがセットされると、 新規ファイルの所有者をディレクトリの所有者に設定します。 新規ディレクトリは親ディレクトリのビットを継承します。 実行ビットはファイルから取り除かれ、root には与えられません。 .Pp この機能は PC ユーザに対して ftp, SAMBA, netatalk のサービスを行う ファイルサーバのためにデザインされました。 これはシェルユーザに対してセキュリティホールとなりますので、 特にホームディレクトリを持つシェルマシンでは使用すべきではありません。 このオプションが動作するためには、カーネルの SUIDDIR オプションが必要です。 UFS ファイルシステムのみがこのオプションをサポートします。 詳細は .Xr chmod 2 を参照してください。 .It update .Fl u と同じく、すでにマウントされているファイルシステムの状態を変化させることを 指示します。 .It union マウントポイント以下の名前空間に、マウントされたファイルシステムのルートと マウントポイントに元から存在するディレクトリの両方が見えるようにします。 名前を検索するときは、マウントしたファイルシステムが先に検索されます。 ファイルが存在しない ために検索が失敗した場合は、既存のディレクトリがアクセスされます。 ファイル等の作成は、すべて マウントしたファイルシステム上に対して行われます。 .El .Pp .Nm が内部で知っているファイルシステムタイプ .Pf ( Fl t オプションを参照) 以外の、ファイルシステムタイプに固有のオプションは、 コンマで区切って指定します。このオプションは、オプションの前に .Dq \&- (ダッシュ記号) をつけて区別します。値を持つオプションは、 -option=valueの形で指定します。 たとえば、 .Bd -literal -offset indent mount -t mfs -o nosuid,-N,-s=4000 /dev/dk0b /tmp .Ed .Pp では、 .Nm コマンドは以下と同じものを実行します: .Bd -literal -offset indent /sbin/mount_mfs -o nosuid -N -s 4000 /dev/dk0b /tmp .Ed .Pp ファイルシステムタイプに固有な追加オプションで、 内部的には分からないもの (下記 .Fl t オプションを参照してください) は、関連する .Pa /sbin/mount_ Ns Sy XXX ユーティリティのマニュアルページに記述されているかもしれません。 .It Fl p マウント情報を fstab の形式で表示します。暗黙的に .Fl v オプションを指定します。 .It Fl r ファイルシステムをリードオンリーで マウントします (スーパユーザでも書き込みは行えません)。 これは、 .Fl o オプションで .Dq rdonly を指定するのと同じです。 .It Fl t Ar "ufs \\*(Ba lfs \\*(Ba external type" .Fl t のあとの引数にはファイルシステムタイプを指定します。 デフォルトは、 .Ar ufs です。 .Fl t オプションによって、 .Nm コマンドの操作が、指定した特定のタイプのファイルシステムに対してのみ 行われるように指示することができます。 2つ以上のタイプを指定するにはコンマで区切ります。 ファイルシステムリスト の先頭に .Dq no という文字をつけることに よって、 .Nm コマンドの操作の対象と .Em しない ファイルシステムタイプを指定することができます。 以下に例を示します: .Bd -literal -offset indent mount -a -t nonfs,mfs .Ed .Pp は、 .Tn NFS と .Tn MFS を除いた、すべてのファイルシステムをマウントします。 .Pp type を内部で解釈できない場合、 .Nm は .Pa /sbin/mount_ Ns Sy XXX というプログラムを実行しようとします。 .Sy XXX の部分が type になります。たとえば nfs ファイルシステムは、 .Pa /sbin/mount_nfs というプログラムによってマウント されます。 .Pp ほとんどのファイルシステム用モジュールは カーネル中にない場合、ファイルシステム別のマウントプログラム によって動的に読み込まれます。 そこでは .Xr vfsload 3 サブルーチンが使われます。 この機構には書き込み可能な作業領域が必要なため、 .Pa /tmp があるファイルシステムタイプのモジュールはカーネルに 組み込まれている必要があります。さらに .Pa /etc/fstab において、 .Pa /tmp や .Pa /usr/bin/ld があるファイルシステムは 動的に読み込まれるファイルシステムよりも前に 記述されていなければいけません。 .It Fl u .Fl u フラグは、すでにマウントしているファイルシステム の状態の変更を指示します。 ファイルシステムを読み込み専用から読み書き可能へ、またその逆へも変更することを 含めて、すでに説明したすべてのオプション .Pf ( Fl o オプション) の内容を変更することができます。 読み書き可能なファイルシステムを読み出し専用に変更する場合、 書き込みのためにオープンしているファイルがあるときには、 .Fl f オプションを指定しなければ変更に失敗します。 どのオプションを適用するかを決定する際、最初に .Fl o オプションの引数を適用し、最後に .Fl r , .Fl w オプションが適用されます。 .It Fl v 詳細なメッセージを表示します。 .It Fl w ファイルシステムを読み書き可能とします。 .Sh 関連ファイル .Bl -tag -width /etc/fstab -compact .It Pa /etc/fstab ファイルシステムテーブル .El .Sh 診断 多岐に渡りますが、ほぼ全てが自明です。 .Pp .Dl XXXXX filesystem is not available .Pp カーネルはそのファイルシステムタイプをサポートしていません。 ファイルシステムのサポートは、 静的 (カーネルコンパイル時) もしくは動的 ( .Xr kldload 8 によってカーネルモジュールとしてロードされる) です。 通常、 .Nm もしくはそのサブプロセスは、 ファイルシステムモジュールが静的に組み込まれていない場合は、 .Xr vfsload 3 を使用して動的にそのファイルシステムモジュールをロードしようとします。 この場合上記エラーメッセージは、 モジュールをロードするパーミッションを持たないことも意味する場合があります。 .Sh 関連項目 .Xr mount 2 , .Xr vfsload 3 , .Xr fstab 5 , .Xr kldload 8 , .Xr mount_cd9660 8 , .Xr mount_devfs 8 , .Xr mount_fdesc 8 , .Xr mount_kernfs 8 , .Xr mount_mfs 8 , .Xr mount_msdos 8 , .Xr mount_nfs 8 , .Xr mount_null 8 , .Xr mount_portal 8 , .Xr mount_procfs 8 , .Xr mount_umap 8 , .Xr mount_union 8 , .Xr umount 8 .Sh バグ 異常なファイルシステムをマウントすると、 システムクラッシュを引き起こすことがあります。 .Sh 警告 マウントに成功した後にマウントされたファイルシステムから .Pa ".." がアクセス可能かどうかは、 元のマウントポイントのパーミッションが決定します。 全ユーザが双方向にマウントポイントを行き来可能とするために最低限必要な パーミッションは 0111 (全員が実行可能) です。 .Sh 歴史 .Nm コマンドは .At v1 から登場しています。 diff --git a/ja_JP.eucJP/man/man8/mount_null.8 b/ja_JP.eucJP/man/man8/mount_null.8 index a2aa6177e6..24ad3e0afe 100644 --- a/ja_JP.eucJP/man/man8/mount_null.8 +++ b/ja_JP.eucJP/man/man8/mount_null.8 @@ -1,236 +1,234 @@ .\" .\" Copyright (c) 1992, 1993, 1994 .\" The Regents of the University of California. All rights reserved. .\" .\" This code is derived from software donated to Berkeley by .\" 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_null.8 8.6 (Berkeley) 5/1/95 -.\" %FreeBSD: src/sbin/mount_null/mount_null.8,v 1.11.2.2 2000/12/08 14:04:00 ru Exp % +.\" %FreeBSD: src/sbin/mount_null/mount_null.8,v 1.11.2.3 2000/12/18 15:38:27 ru Exp % .\" jpman %Id: mount_null.8,v 1.2 1997/03/31 13:38:01 horikawa Stab % .\" .Dd May 1, 1995 .Dt MOUNT_NULL 8 .Os BSD 4.4 .Sh 名称 .Nm mount_null .Nd ループバックファイルシステムサブツリーをマウントする; 何もしない(null)ファイルシステム層の利用のデモ .Sh 書式 .Nm .Op Fl o Ar options .Ar target .Ar mount_point .Pp .Sh 解説 .Nm は、null 層を作ります。これは、 ファイルシステムの名前空間の部分木を、グローバルなファイルシステムの名前空間 の別の場所にエイリアスします。 これにより、既存のファイルとディレクトリが別のパス名にてアクセス可能 となります。 .Pp ファイルシステムの仮想的コピーとシンボリックリンクとの第 1 の違いは、 .Xr getcwd 3 関数が仮想コピーでは正しく動作する点と、 別のファイルシステムを仮想コピー上にマウントしてもオリジナルには影響がない点 です。 .Xr stat 2 は、仮想コピーに対して別のデバイス番号が返しますが、 別の側面においてはオリジナルとの区別はつきません。 .Pp 歴史的な ループバックファイルシステムと異なるのは、次の2つの点です: 1つは、ファイル システムのスタック化可能層(stackable layers)という技術を使って 実装されている点、もう1つはディレクトリの vnode だけでなく、 すべての下位層の vnode の上に ``null-node''が積み重なっているという点です。 .Pp オプションは以下のものがあります: .Bl -tag -width indent .It Fl o .Fl o のあとに、オプション文字列をコンマで区切って指定すること ができます。指定可能なオプションとその意味は .Xr mount 8 を参照してください。 .El .Pp この null 層は2つの目的を持っています。1つは、何もしない層 を提供することでファイルシステムの層の構築のデモを示すことです(実際には 何も行わないというわけではなく、 ループバックファイルシステムが提供することはすべて行います)。 もう1つはプロトタイプ層を提供することで す。層のフレームワークとして必要なことはすべて提供しているので、 ここから新しいファイルシステム層を簡単に作り出すことができます。 .Pp このマニュアルの以下の部分では、新しいファイルシステム層を構築するための 基礎として null 層を調べます。 .\" .\" .Sh 新しい null 層の例示 新しい null 層は .Xr mount_null 8 で作られます。 .Xr mount_null 8 は 2つの引数をとります。 1つは下位層の vfs のパス名(target-pn)で、 もう1つは null 層が現れる名前空間内のパス名(mount-point-pn)です。 null 層が適切な場所に置かれた後、 目的のディレクトリ階層(target-pn)の中身が マウント先(mount-point-pn)にエイリアスされます。 .\" .\" .Sh null 層の操作 null 層は最小のファイルシステム層であり、 すべての操作を下位層に処理させるためにバイパスするだけです。 ほとんどすべてのvnodeに対する操作はパスすることですが、 その動作のほとんどはバイパスルーチンに集中します。 .Pp バイパスルーチンは下位層における任意の vnode に対する操作を受け付けます。 まず、vnodeに対する操作の引数を検査し、 null-node を下位層において等価となるものに置き換えることから始めます。 次に、下位層の操作を起動します。 最後に、引数中の null-node を置き換えます。 もしその操作によってvnodeが返ってきたら、 その返ってきたvnodeの上に null-node を積みます。 .Pp ほとんどの操作をバイパスしますが、 .Em vop_getattr , .Em vop_inactive , .Em vop_reclaim , .Em vop_print はバイパスしません。 .Em vop_getattr は戻り値の fsid を替えなければなりません。 .Em vop_inactive と .Em vop_reclaim は、null 層特有のデータを解放するためにバイパスしません。 .Em vop_print は過度のデバッグ情報を避けるためにバイパスしません。 .\" .\" .Sh vnodeスタックの概説 マウントは null 層を下位層に関連づけます。 その結果 2 つの VFS が積み重なります。 vnode スタックはファイルがアクセスされるたびに必要に応じて作成されます。 .Pp 最初のマウントでは新しい null 層の根として単一の vnode スタックを作ります。 他のすべての vnode スタックは根の vnode スタックや他の null vnode スタックの 操作の結果として作られます。 .Pp vnode を返す操作の結果として新しい vnode スタックが生まれます。 バイパスルーチンは、呼出し側に vnode を返す前に新しい vnode の上に null-node を積みます。 .Pp 例えば、null 層を以下のようにマウントする例を想像します。 .Bd -literal -offset indent mount_null /usr/include /dev/layer/null .Ed .Pa /dev/layer/null にチェンジディレクトリすると、根の null-node (null 層をマウントした時 に作られたもの) が割り当てられます。 ここで .Pa sys をオープンすることを考えてみます。 vop_lookup は根の null-node で行なわれます。 この操作は下位層にバイパスされ、下位層が UFS の .Pa sys を表す vnode を返します。 それから null_bypass は UFS .Pa sys にエイリアスする null-node を構築し、呼出元にこれを返します。 null-node .Pa sys に対する以降の操作で他のvnodeスタックを構築する時には この処理が繰り返されます。 .\" .\" .Sh 他のファイルシステム層の作成 新しいファイルシステム層を構築する一番簡単な方法は、 null 層のコピーを作り、すべてのファイル、変数の名前を付け直し、 そしてそのコピーを変更することです。 すべての変数の名前を変えるのには .Xr sed 1 が良く使われます。 .Pp umap 層は null 層の子孫の 1 例です。 .\" .\" .Sh 下位層の操作の起動 操作が完全にはバイパスできない時に 下位層にある操作を起動するための方法が 2 つあります。 それぞれの方法は違った状況に対して適切に使われます。 両方の場合とも、 その操作の引数を下位層のために正しく作るのはエイリアスする層の責任であり、 vnode 引数を下位層にマッピングします。 .Pp 最初の方法はエイリアスする層のバイパスルーチンを呼ぶことです。 この方法は、下位層で現在扱われている操作を起動したい時に最も適しています。 これはバイパスルーチンがすでにマッピングされているという利点があります。 この例として、 .Em null_getattrs が null 層にあります。 .Pp 2 つ目の方法は、 .Em VOP_OPERATIONNAME インタフェースを用いて下位層のvnodeの操作を直接起動することです。 この方法の利点は、下位層の任意の操作を起動するのが簡単ということにあります。 欠点は、vnode 引数は手動でマッピングされなければならないことです。 .\" .\" .Sh 関連項目 .Xr mount 8 .Pp UCLA Technical Report CSD-910056, .Em "Stackable Layers: an Architecture for File System Development" . .Sh バグ - 本ファイルシステムタイプは、まだ完全にはサポートされていません (注: 機能しないということです) し、 実際のところ使用するとシステム上のデータを破壊するかもしれません。 自己責任において使用してください。 猛犬注意。濡れていて滑ります。 - +.Pp 危険性を減らすためには、このコードもまた所有者を必要としています - 真面目なハッカーの方はメールを hackers@freebsd.org に送って 引き継ぎの意思を宣言してください。 - .Sh 歴史 .Nm は、 .Bx 4.4 から登場しました。 diff --git a/ja_JP.eucJP/man/man8/mount_umap.8 b/ja_JP.eucJP/man/man8/mount_umap.8 index 924cd301a1..6774ab087f 100644 --- a/ja_JP.eucJP/man/man8/mount_umap.8 +++ b/ja_JP.eucJP/man/man8/mount_umap.8 @@ -1,136 +1,134 @@ .\" 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 -.\" %FreeBSD: src/sbin/mount_umap/mount_umap.8,v 1.10.2.1 2000/12/08 14:04:02 ru Exp % +.\" %FreeBSD: src/sbin/mount_umap/mount_umap.8,v 1.10.2.2 2000/12/18 15:38:28 ru 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 .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 バグ - 本ファイルシステムタイプは、まだ完全にはサポートされていません (注: 機能しないということです) し、 実際のところ使用するとシステム上のデータを破壊するかもしれません。 自己責任において使用してください。 猛犬注意。濡れていて滑ります。 - +.Pp 危険性を減らすためには、このコードもまた所有者を必要としています - 真面目なハッカーの方はメールを hackers@freebsd.org に送って 引き継ぎの意思を宣言してください。 - .Sh 歴史 .Nm は .Bx 4.4 から実装されました。 diff --git a/ja_JP.eucJP/man/man8/newfs_msdos.8 b/ja_JP.eucJP/man/man8/newfs_msdos.8 index b82a060466..d023b00307 100644 --- a/ja_JP.eucJP/man/man8/newfs_msdos.8 +++ b/ja_JP.eucJP/man/man8/newfs_msdos.8 @@ -1,179 +1,183 @@ .\" Copyright (c) 1998 Robert Nordier .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in .\" the documentation and/or other materials provided with the .\" distribution. .\" .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``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(S) BE LIABLE FOR ANY .\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE .\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS .\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER .\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR .\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN .\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" %FreeBSD: src/sbin/newfs_msdos/newfs_msdos.8,v 1.7.2.3 2000/12/08 14:04:04 ru Exp % +.\" %FreeBSD: src/sbin/newfs_msdos/newfs_msdos.8,v 1.7.2.4 2000/12/18 15:38:28 ru Exp % .\" jpman %Id: newfs_msdos.8,v 1.3 1998/10/10 09:07:02 yohta Stab % .\" .Dd July 6, 1998 .Dt NEWFS_MSDOS 8 .Os .Sh 名称 .Nm newfs_msdos .Nd 新規の MS-DOS (FAT) ファイルシステムを作成する .Sh 書式 .Nm .Op Fl N .Op Fl B Ar boot .Op Fl F Ar FAT-type .Op Fl I Ar volid .Op Fl L Ar label .Op Fl O Ar OEM .Op Fl S Ar sector-size .Op Fl a Ar FAT-size .Op Fl b Ar block-size .Op Fl c Ar cluster-size .Op Fl e Ar dirents .Op Fl f Ar format .Op Fl h Ar heads .Op Fl i Ar info .Op Fl k Ar backup .Op Fl m Ar media .Op Fl n Ar FATs .Op Fl o Ar hidden .Op Fl r Ar reserved .Op Fl s Ar total .Op Fl u Ar track-size .Ar special .Op Ar disktype .Sh 解説 .Nm ユーティリティは、FAT12, FAT16, FAT32 のいずれかのファイルシステムを、デバイス .Ar special 上に作成します。この際、必要ならば .Xr disktab 5 の .Ar disktype を使用して、ジオメトリを決定します。 .Pp オプションを以下に示します: .Bl -tag -width indent .It Fl N ファイルシステムを作成しません: パラメータを表示するだけです。 .It Fl B Ar boot ブートストラップをファイルから取得します。 .It Fl F Ar FAT-type FAT タイプ (12, 16, 32 のいずれか)。 .It Fl I Ar volid ボリューム ID。 .It Fl L Ar label ボリュームラベル (11 文字まで)。 ラベルを構成する文字は、 通常の DOS (8+3) ファイル名に許される文字のみにする必要があります。 .It Fl O Ar OEM OEM 文字列 (8 文字まで)。 デフォルトは \&"BSD 4.4" です。 .It Fl S Ar sector-size セクタあたりのバイト数。受け付ける値は、128 から 32768 までの、2 のべき乗です。 .It Fl a Ar FAT-size FAT あたりのセクタ数。 .It Fl b Ar block-size ファイルシステムのブロックサイズ (クラスタあたりのバイト数)。 この値は、受け付け可能なクラスタあたりのセクタ数 (後述) に、 分解可能である必要があります。 .It Fl c Ar cluster-size クラスタあたりのセクタ数。受け付ける値は、1 から 128 までの、2 のべ乗です。 .It Fl e Ar dirents ルートディレクトリのエントリ数 (FAT12 と FAT16 のみ)。 .It Fl f Ar format 標準 (フロッピディスク) フォーマットを指定します。 標準フォーマットは 8 つあり、(それぞれキロバイトでの容量で表現して) 160, 180, 320, 360, 640, 720, 1200, 1232, 1440, 2880 のいずれかです。 .It Fl h Ar heads ドライブのヘッド数。 .It Fl i Ar info ファイルシステム情報セクタの位置 (FAT32 のみ)。 値 0xffff は、情報セクタが無いことを意味します。 .It Fl k Ar backup バックアップブートセクタの位置 (FAT32 のみ)。 値 0xffff は、バックアップセクタが無いことを意味します。 .It Fl m Ar media メディア記述子 (受け付ける値は、0xf0 から 0xff まで)。 .It Fl n Ar FATs FAT 数。受け付ける値は 1 から 16 までで、両端を含みます。デフォルトは 2 です。 .It Fl o Ar hidden 隠しセクタの数。 .It Fl r Ar reserved 予約セクタの数。 .It Fl s Ar total ファイルシステムサイズ。 .It Fl u Ar track-size トラックあたりのセクタ数。 .El .Sh 注 FAT ファイルシステムパラメータは、 実際のファイルシステムの前にある「予約」セクタの始めの、 「ブートセクタの BPB (BIOS パラメータブロック)」に置かれます。 参照のために、この構造を以下に示します。 .Bd -literal struct bsbpb { u_int16_t bps; /* [-S] セクタあたりのバイト数 */ u_int8_t spc; /* [-c] セクタあたりのセクタ数 */ u_int16_t res; /* [-r] 予約セクタ数 */ u_int8_t nft; /* [-n] FAT 数 */ u_int16_t rde; /* [-e] ルートディレクトリのエントリ数 */ u_int16_t sec; /* [-s] 総セクタ数 */ u_int8_t mid; /* [-m] メディア記述子 */ u_int16_t spf; /* [-a] FAT あたりのセクタ数 */ u_int16_t spt; /* [-u] トラックあたりのセクタ数 */ u_int16_t hds; /* [-h] ドライブヘッド数 */ u_int32_t hid; /* [-o] 隠しセクタ数 */ u_int32_t bsec; /* [-s] ビッグ総セクタ数 */ }; /* FAT32 拡張 */ struct bsxbpb { u_int32_t bspf; /* [-a] FAT あたりのビッグセクタ数 */ u_int16_t xflg; /* 制御フラグ */ u_int16_t vers; /* ファイルシステムバージョン */ u_int32_t rdcl; /* ルートディレクトリの開始クラスタ */ u_int16_t infs; /* [-i] ファイルシステムの情報セクタ */ u_int16_t bkbs; /* [-k] バックアップブートセクタ */ }; .Ed .Sh 使用例 - - newfs_msdos /dev/ad0s1 - -デフォルトパラメータを使用し、/dev/ad0s1 にファイルシステムを作成します。 - - newfs_msdos -f 1440 -L foo fd0 - -標準 1.44M ファイルシステムを、ボリュームラベル "foo" にて、/dev/fd0 に -作成します。 +.Bd -literal -offset indent +newfs_msdos /dev/ad0s1 +.Ed +.Pp +デフォルトパラメータを使用し、 +.Pa /dev/ad0s1 +にファイルシステムを作成します。 +.Bd -literal -offset indent +newfs_msdos -f 1440 -L foo fd0 +.Ed +標準 1.44M ファイルシステムを、ボリュームラベル "foo" にて、 +.Pa /dev/fd0 +に作成します。 .Sh 関連項目 .Xr disktab 5 , .Xr disklabel 8 , .Xr fdisk 8 , .Xr newfs 8 .Sh 診断 終了状態は、成功時には0 に、エラー時には 1 になります。 .Sh 歴史 .Nm コマンドは、最初に .Fx 3.0 に登場しました。 .Sh 作者 .An Robert Nordier Aq rnordier@FreeBSD.org diff --git a/ja_JP.eucJP/man/man8/nos-tun.8 b/ja_JP.eucJP/man/man8/nos-tun.8 index 565e66f2e1..58a6f1ac08 100644 --- a/ja_JP.eucJP/man/man8/nos-tun.8 +++ b/ja_JP.eucJP/man/man8/nos-tun.8 @@ -1,92 +1,92 @@ .\" .\" ---------------------------------------------------------------------------- .\" "THE BEER-WARE LICENSE" (Revision 42): .\" wrote this file. As long as you retain this notice you .\" can do whatever you want with this stuff. If we meet some day, and you think .\" this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp .\" ---------------------------------------------------------------------------- .\" -.\" %FreeBSD: src/sbin/nos-tun/nos-tun.8,v 1.6.2.2 2000/12/14 12:12:34 ru Exp % +.\" %FreeBSD: src/sbin/nos-tun/nos-tun.8,v 1.6.2.3 2000/12/18 15:38:29 ru Exp % .\" jpman %Id: nos-tun.8,v 1.3 1998/10/12 22:52:07 vanitas Stab % .\" .Dd April 11, 1998 .Dt NOS-TUN 8 .Os FreeBSD .Sh 名称 .Nm nos-tun .Nd ``nos'' または ``ka9q'' 形式の IP over IP トンネルを実装する .Sh 書式 .Nm .Fl t .Ar tunnel .Fl s .Ar source .Fl d .Ar destination .Fl p .Ar protocol_number .Ar target .Sh 解説 .Nm は .Xr tun 4 カーネルインタフェースを利用して( .Em ka9q または .Em IP-IP トンネルとしても知られる) .Em nos 形式トンネルを確立します。 .Pp .Ar tunnel はトンネルデバイス名、例えば .Pa /dev/tun0 などです。 .Pp .Ar source と .Ar destination はトンネルデバイスに使用されるアドレスです。 もしトンネルを cisco ルータに対して設定する場合には、cisco において .Dq 255.255.255.252 のネットマスクを使用します。これはトンネルが .Fx 側において point-to-point インタフェースになっていますが、 cisco が実際には 実装していないためです。 .Pp .Ar protocol_number はトンネルモードを設定します。 オリジナルの KA9Q NOS は 94 を使用しますが、 ampr.org による世界規模のバックボーン用に多くの人が 4 を使用します。 .Pp .Ar target はリモートのトンネルデバイスのアドレスで、 リモート側で設定されたソースアドレスと一致する必要があります。 .Sh 使用例 こちら側、アドレス 192.168.59.34 の .Fx 箱: -.Bd -literal -offset indent 4m +.Bd -literal -offset indent nos-tun -t /dev/tun0 -s 192.168.61.1 -d 192.168.61.2 192.168.56.45 .Ed .Pp アドレス 192.168.56.45 のリモート cisco: -.Bd -literal -offset indent 4m +.Bd -literal -offset indent interface tunnel 0 ip address 192.168.61.2 255.255.255.252 tunnel mode nos tunnel destination 192.168.59.34 tunnel source 192.168.56.45 .Ed .Sh バグ ソースアドレスをマルチホームなマシンに設定するようなことは 想定されていません。 .Sh 作者 .An -nosplit .An Nickolay N. Dudorov Aq nnd@itfs.nsk.su がプログラムを書き、 .An Poul-Henning Kamp Aq phk@FreeBSD.org がマニュアルを書きました。 .An Isao SEKI Aq iseki@gongon.com が新規フラグ、すなわち IP プロトコル番号を追加しました。 diff --git a/ja_JP.eucJP/man/man8/ping.8 b/ja_JP.eucJP/man/man8/ping.8 index 069d61c88d..a0dd2eb1d4 100644 --- a/ja_JP.eucJP/man/man8/ping.8 +++ b/ja_JP.eucJP/man/man8/ping.8 @@ -1,440 +1,440 @@ .\" Copyright (c) 1985, 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)ping.8 8.2 (Berkeley) 12/11/93 -.\" %FreeBSD: src/sbin/ping/ping.8,v 1.25.2.1 2000/12/08 14:04:08 ru Exp % +.\" %FreeBSD: src/sbin/ping/ping.8,v 1.25.2.2 2000/12/18 15:38:30 ru Exp % .\" .\" jpman %Id: ping.8,v 1.3 1997/10/11 08:00:36 horikawa Stab % .Dd March 1, 1997 .Dt PING 8 .Os BSD 4.3 .Sh 名称 .Nm ping .Nd .Tn ICMP ECHO_REQUEST パケットをネットワーク上のホストへ送る .Sh 書式 .Nm .Op Fl QRadfnqrv .Op Fl c Ar count .Op Fl i Ar wait .Op Fl l Ar preload .Op Fl P Ar policy .Op Fl p Ar pattern .Op Fl s Ar packetsize .Op Fl S Ar src_addr .Op Fl t Ar timeout .Bo .Ar host | .Op Fl L .Op Fl I Ar interface .Op Fl T Ar ttl .Ar mcast-group .Bc .Sh 解説 .Nm は、 .Tn ICMP の .Tn ECHO_REQUEST データグラムを用いて、指定したホストやゲートウェイ からの .Tn ICMP ECHO_RESPONSE を引き出します。 .Tn ECHO_REQUEST データグラム ( .Pq Dq ping ) には IP および .Tn ICMP ヘッダ、 .Dq struct timeval 、パケットの残りを埋める適当な数の .Dq pad バイトが順にあります。 オプションは以下の通りです: .Bl -tag -width indent .It Fl a 聴覚モード。パケットを受け取った時に、出力にベル .Pq ASCII 0x07 文字を 含みます。このオプションは、別形式のオプションがある場合は無視されます。 .It Fl c Ar count .Tn ECHO_RESPONSE パケットを .Ar count 回送出 .Pq そして受信 してから終了します。 本オプションが指定されない場合、 .Nm は割り込まれるまで動作を継続します。 .It Fl d 使用する socket に .Dv SO_DEBUG オプションを設定します。 .It Fl f .Tn ECHO_REQUEST ping を垂れ流します。 パケットが返って来るとすぐ、もしくは 100 分の 1 秒に 1 回のいずれか多い回数だけ パケットを出力します。 .Tn ECHO_REQUEST パケットを送るたびに -.Dq \&. +.Dq .\& が表示され、 .Tn ECHO_REPLY パケットを受信するたびにバックスペースが表示されます。 これによりどれだけのパケットが欠落したのかをすばやく表示することができます。 スーパユーザのみ使用可能です .Bf -emphasis このオプションはネットワークに非常に負荷をかけるので、注意して使用する 必要があります。 .Ef .It Fl i Ar wait .Ar wait で指定した秒数だけパケットの送出間隔を空けます。 デフォルトでは送出間隔は 1 秒です。 より小さい値を指定できますが、 1 より小さい値を指定できるのはスーパユーザだけです。 このオプションは .Fl f オプションとは同時に指定できません。 .It Fl I Ar interface 与えられたインタフェースアドレスに対して、マルチキャストパケットを 送ります。このフラグは、 ping の宛先アドレスがマルチキャストアドレスの 場合だけに適用できます。 .It Fl l Ar preload 指定した .Ar preload 値だけ .Tn ECHO_REQUEST パケットを出来るだけ速く送信し、通常の動作に戻ります。 スーパユーザのみがこのオプションを使用できます。 .It Fl L マルチキャストパケットのループバックを抑制します。 このフラグは、宛先アドレスがマルチキャストアドレスの場合だけ 適用できます。 .It Fl n 数値のみ出力します。ホストアドレスに対する名前を調べるようなことは しません。 .It Fl p Ar pattern 送出するパケットを埋める .Dq pad バイトを指定します。 .Dq pad バイトは 16 バイトを上限とします。 これはネットワーク上でデータ依存の問題を診断するときに有効です。たとえば .Dq Li \-p ff は全て 1 の送出パケットを生成します。 .It Fl P Ar policy .Ar policy は、ping セッションの IPsec ポリシを指定します。 詳細については .Xr ipsec 4 と .Xr ipsec_set_policy 3 を参照してください。 .It Fl Q いくらか静かな出力にします。 自己が行なった問い合わせに対しての応答に含まれる ICMP エラーメッセージは表示されません。 もともとは、 .Fl v オプションがそのようなエラーを表示するために必要でしたが、 .Fl v オプションは全ての ICMP エラーメッセージを表示します。忙しい機械上では、 この出力は更に負荷になるでしょう。 .Fl Q オプションを指定しないと、 .Nm は、 自己の ECHO_REQUEST メッセージに起因する ICMP エラーメッセージを表示します。 .It Fl q 出力を抑制します。開始時と終了時の要約行しか表示しません。 .It Fl R 指定ホストまでの到達経路を記録します。 .Tn ECHO_REQUEST パケット中に .Tn RECORD_ROUTE オプションをつけ、返送パケット上の経路バッファを表示します。IP ヘッダには 経路を 9 個収める大きさしかないことに注意してください; 特定の宛先に対してパケットを経路づけるには、通常 .Xr traceroute 8 コマンドを使う方が良いでしょう。 不正に偽ったパケットによるなどして しかるべき経路数よりも大くの経路が帰って来た場合、 ping は経路リストを表示し、正しい位置にまで縮めます。 多くのホストは .Tn RECORD_ROUTE オプションを無視するか捨てます。 .It Fl r 通常のルーティングテーブルを無視し、 直接接続されているネットワーク上のホストに対して送信します。 指定接続されたネットワーク上にホストが存在しない場合には、エラーが返されます。 このオプションは経路情報を持たないインタフェースを経由してローカル ホストに ping をかけるのに用いられます .Po たとえばインタフェースが .Xr routed 8 によってドロップされた後 .Pc 。 .It Fl s Ar packetsize 送出するデータのバイト数を指定します。 デフォルトでは 56 バイトです。 これは .Tn ICMP ヘッダデータの 8 バイトと合せて 64 .Tn ICMP バイトになります。 スーパユーザのみこのオプションを指定できます。 .It Fl S Ar src_addr 引き続いて指定する IP アドレスを、 出力パケットの送信元アドレスとして使用します。 複数の IP アドレスを持つホストでは、このオプションを使用することにより、 プローブパケットを送信するインタフェース以外の送信アドレスを強制可能です。 IP アドレスがこのマシンのインタフェースアドレスではない場合、 エラーが返され、送信は行われません。 .It Fl t Ar timeout タイムアウトを、秒単位で指定します。 タイムアウトすると、受信パケット数にかかわらず .Nm が終了します。 .It Fl T Ar ttl マルチキャストパケットの IP 寿命時間 (Time To Live) を設定します。 このオプションは、宛先アドレスがマルチキャストアドレスの場合だけ 適用できます。 .It Fl v 冗長出力を有効にします。 .Tn ECHO_RESPONSE 以外の受信 .Tn ICMP パケットも表示されます。 .El .Pp 問題の切り分けのために .Nm を用いるにはローカルインタフェースが up かつ running であることを 確認するため、まずローカルホスト上で実行します。 その後により遠くのホストやゲートウェイに .Dq ping します。 経路周回時間 (round trip time) と消失パケットの統計が計算されます。 重複したパケットが受信された場合、そのパケットは消失パケットの計算には 含まれませんが、経路周回時間の統計の計算には 使われます。 指定されたパケットの数が送信され .Pq 受信され たとき、もしくはプログラムが .Dv SIGINT で終了した場合、簡単な要約が表示されます。 要約は、送出したパケット数、受信したパケット数、そして 経路周回時間の最小/最大/平均/分散です。 .Pp このプログラムは主にネットワークのテスト、計測、管理に用いられことを 想定しています。 .Nm はそれ自体ネットワークに負荷をかけるので、トラブルのないときや自動スクリ プトで用いることは勧められません。 .Sh ICMP パケットの詳細 オプションなしの IP ヘッダは 20 バイトです。 .Tn ICMP .Tn ECHO_REQUEST パケットはさらなる 8 バイトの .Tn ICMP ヘッダとそれに続く任意の大きさのデータからなっています。 この大きさは .Ar packetsize によって指定されます .Pq デフォルトでは 56 バイトです 。 このように受信した IP パケット内の .Tn ICMP .Tn ECHO_REPLY データ量は常に指定されたデータ .Pq Tn ICMP ヘッダ の大きさよりも 8 バイト大きくなります。 .Pp データ領域が少なくとも 8 バイトあるとき、 .Nm は最初の 8 バイトを経路周回時間の計算に用いるタイムスタンプを書くために 用います。指定された pad の大きさが 8 バイトより小さい場合経路周回時間は 得られません。 .Sh 重複パケットと障害パケット .Nm は重複パケットと障害パケットを報告します。重複パケットは ユニキャストアドレスに対しては起こるはずのないものですが、 リンク層での不適切な再送信によって引き起こされるようです。 重複は様々な状況で起こる可能性があります。低いレベルの重複の存在は 必ずしも警告にならないかもしれませんが、よい兆候ではありません。 ブロードキャストもしくは マルチキャストアドレスに ping する時には、重複が起こることが期待されます。 実際に重複するのではなく、 異ったホストから同じ要求に対して応答が行われからです。 .Pp 障害を受けたパケットは明らかに重大な警告です。多くの場合、 .Nm パケットの経路のどこか(ネットワーク内かホスト内)のハードウェアの故障が 考えられます。 .Sh 異なったデータパターンの試行 (インター)ネットワーク層はデータ部分に含まれるデータによってパケットの扱い を変えません。不幸にもデータ依存性の問題がネットワークに侵入し長い間検知さ れないままとなる可能性が知られています。多くの場合、問題を引き起こす特殊 なパターンはたとえば全部 1 や全部 0 のようなもの、あるいは右端以外が 0 であるような十分な .Dq 遷移 を持たないものです。コマンドラインで(たとえば) 全部 0 のデータパターンを指定するだけでは不十分かもしれません。なぜな ら問題のパターンはデータリンク層にあり、コマンドラインで指定したものと コントローラが送信するものとの間の関係は複雑だからです。 .Pp このことはデータ依存性が問題となるとき、それを見付けるために多くのテストをし なければならないということを意味します。運がよければ、あるネットワーク を通して送れない、あるいは同じような長さのファイルよりもずっと長時間かか るファイルを見付けることができるかもしれません。この場合、そのファイル を調べ繰り返し現われるパターンを .Nm の .Fl p オプションを使ってテストできます。 .Sh TTL の詳細 IP パケットの .Tn TTL 値はパケットが捨てられずに通過できる IP ルータの最大数を表わ します。今のところインターネット上の各ルータは .Tn TTL フィールドをちょうど 1 だけ減らすと期待できます。 .Pp .Tn TCP/IP の仕様では .Tn TCP パケットの .Tn TTL フィールドを 60 にすべきだとなっていますが、多くのシステムは もっと小さい値を用いています .Po .Bx 4.3 では 30、 .Bx 4.2 では 15 を用いています .Pc 。 .Pp このフィールドに許される最大値は 255 です。 そして多くの .Ux システムでは .Tn ICMP ECHO_REQUEST パケットの .Tn TTL フィールドを 255 にしています。これが .Pq ping は出来るのに .Xr telnet 1 や .Xr ftp 1 で入れないホストが発生する理由です。 .Pp 通常 .Nm は受け取ったパケットの ttl 値を出力します。リモートシステム が ping パケットを受け取るとき、その応答における .Tn TTL フィールドに関し以下の 3 つのうちの 1 つを行なうことができます。 .Bl -bullet .It 変更しない;これは .Bx 4.3 tahoe リリース前の .Bx システムが行なっていたことです。 この場合、受け取ったパケット中の .Tn TTL 値は 255 から周回経路におけるルータの数を引いた数です。 .It 255 にセットする; これは現在の .Bx システムが行なっている ことです。この場合、受け取ったパケット中の .Tn TTL 値は 255 から、リモートシステム .Em から .Nm .Em している ホスト .Em まで の経路におけるルータの数を引いた数となります。 .It ある他の値にセットする。マシンによっては 30 あるいは 60 のような .Tn TCP パケットで用いるのと同じ値を .Tn ICMP パケットに使います。また全く異なる値を用いるマシンもあるかもしれません。 .El .Sh 戻り値 .Nm コマンドは、指定した .Ar host から少なくとも 1 回の応答を受信した場合、終了値 0 を返します; 送出は成功したものの応答を受信できない場合は 2 を返します; エラーが発生した場合は、他の値 .Pq Aq Pa sysexits.h が返されます。 .Sh 関連項目 .Xr netstat 1 , .Xr ifconfig 8 , .Xr routed 8 , .Xr traceroute 8 .Sh 歴史 .Nm コマンドは .Bx 4.3 から登場しました。 .Sh 作者 オリジナルの .Nm コマンドは、 .An Mike Muuss が US Army Ballistics Research Laboratory にて記述しました。 .Sh バグ 多くのホストやゲートウェイは、 .Tn RECORD_ROUTE オプションを無視します。 .Pp 最大IPヘッダ長は、 .Tn RECORD_ROUTE オプションを付加するには小さ過ぎます。しかしながら、これについては出来 ることは多くありません。 .Pp ping を垂れ流しにするのは、一般に勧められません。特に ブロードキャストアドレスに対して ping の垂れ流しを行なうのは、 きちんと条件を整えた場合においてのみにとどめるべきです。 diff --git a/ja_JP.eucJP/man/man8/ping6.8 b/ja_JP.eucJP/man/man8/ping6.8 index 22fe48c5ec..cd5aff438b 100644 --- a/ja_JP.eucJP/man/man8/ping6.8 +++ b/ja_JP.eucJP/man/man8/ping6.8 @@ -1,418 +1,418 @@ .\" %KAME: ping6.8,v 1.22 2000/05/31 17:00:07 itojun Exp % .\" .\" Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. Neither the name of the project 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 PROJECT 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 PROJECT OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" %FreeBSD: src/sbin/ping6/ping6.8,v 1.3.2.4 2000/12/08 14:04:09 ru Exp % +.\" %FreeBSD: src/sbin/ping6/ping6.8,v 1.3.2.5 2000/12/18 15:38:30 ru Exp % .\" jpman %Id: ping6.8,v 1.3 2000/05/14 14:35:41 yt-kage Stab % .\" .\" WORD: ICMPv6 Node Information Node Addresses = ICMPv6 ノード情報(アドレス)問い合わせ .\" WORD: ICMPv6 Node Information FQDN query = ICMPv6 ノード情報(FQDN)問い合わせ .Dd May 17, 1998 .Dt PING6 8 .Os .Sh 名称 .Nm ping6 .Nd ネットワークホストに対して .Tn ICMPv6 ECHO_REQUEST パケットを送信する .Sh 書式 .Nm .\" without ipsec, or new ipsec .Op Fl dfHnNqRvw .\" old ipsec .\" .Op Fl AdEfnNqRvw .Bk -words .Op Fl a Ar addrtype .Ek .Bk -words .Op Fl b Ar bufsiz .Ek .Bk -words .Op Fl c Ar count .Ek .Bk -words .Op Fl h Ar hoplimit .Ek .Bk -words .Op Fl I Ar interface .Ek .Bk -words .Op Fl i Ar wait .Ek .Bk -words .Op Fl l Ar preload .Ek .Bk -words .Op Fl p Ar pattern .Ek .Bk -words .\" new ipsec .Op Fl P Ar policy .Ek .Bk -words .Op Fl S Ar sourceaddr .Ek .Bk -words .Op Fl s Ar packetsize .Ek .Bk -words -.Op Ar hops... +.Op Ar hops...\& .Ek .Bk -words .Ek .Ar host .Sh 解説 .Nm は、 .Tn ICMPv6 プロトコルで必須の .Tn ICMP6_ECHO_REQUEST データグラムを使用し、ホストまたはゲートウェイから .Tn ICMP6_ECHO_REPLY データグラムを返させます。 .Tn ICMP6_ECHO_REQUEST データグラム (``ping'') は、IPv6 ヘッダと .Tn ICMPv6 を持ちます。 .Tn ICMPv6 の書式は RFC2463 に記述されています。 オプションは次の通りです: .Bl -tag -width Ds .\" old ipsec .\" .It Fl A .\" トランスポートモード IPsec 認証ヘッダを有効にします .\" (実験なものです)。 .It Fl a Ar addrtype .Tn ECHO_REQUEST ではなく ICMPv6 ノード情報 (アドレス) 問い合わせパケットを 生成します。 .Ar addrtype は以下の文字より構成される文字列でなければなりません。 .Bl -tag -width Ds -compact .It Ic a 応答者の全てのユニキャストアドレスを要求します。 もし省略されると、応答者のアドレスを持つ インタフェースに属するアドレスのみ要求します。 .It Ic c 応答者の IPv4 互換アドレスと IPv4 にマップされたアドレスを要求します。 .It Ic g 応答者のグローバルスコープアドレスを要求します。 .It Ic s 応答者のサイトローカルアドレスを要求します。 .It Ic l 応答者のリンクローカルアドレスを要求します。 .It Ic A 応答者のエニーキャストアドレスを要求します。 この文字がない場合、応答者はユニキャストアドレスのみ返します。 この文字がある場合、応答者はエニーキャストのみ返します。 仕様では、応答者のエニーキャストアドレスをどのように取得するかは 述べられていないことに注意してください。 これは実験的なオプションです。 .El .It Fl b Ar bufsiz ソケットのバッファサイズを設定します。 .It Fl c Ar count .Tn ECHO_RESPONSE パケットを .Ar count 回送出 .Pq そして受信 してから終了します。 .It Fl d 使用されているソケットに .Dv SO_DEBUG オプションを設定します。 .\" .It Fl E .\" トランスポートモード IPsec 暗号ペイロードを有効にします .\" (実験なものです)。 .It Fl f .Tn ECHO_REQUEST ping を垂れ流します。 パケットが返って来るとすぐ、もしくは 100 分の 1 秒に 1 回のうちの どちらか多い方の頻度でパケットを出力します。 .Tn ECHO_REQUEST パケットを送るたびに -.Dq \&. +.Dq .\& が表示され、 .Tn ECHO_REPLY パケットを受信するたびにバックスペースが表示されます。 これによりどれだけのパケットが欠落したのかをすばやく表示することができます。 スーパユーザのみ使用可能です。 .Bf -emphasis このオプションはネットワークに非常に負荷をかけるので、注意して使用する 必要があります。 .Ef .It Fl H IPv6 アドレスの逆検索を試行するよう、指定します。 本オプションを指定しない場合、 .Nm コマンドは逆検索を試行しません。 .It Fl h Ar hoplimit IPv6 の中継限界数を設定します。 .It Fl I Ar interface 与えられたインタフェースアドレスに対して、送ります。 このフラグは、ping の宛先アドレスが マルチキャストアドレスの場合か、 リンクローカル / サイトローカルなユニキャストアドレスの場合に適用できます。 .It Fl i Ar wait .Ar wait で指定した秒数だけパケットの送出間隔を空けます。 デフォルトでは送出間隔は 1 秒です。 このオプションは .Fl f オプションとは同時に指定できません。 .It Fl l Ar preload .Nm は指定した .Ar preload 値だけ .Tn ECHO_REQUEST パケットを出来るだけ速く送信し、通常の動作に戻ります。 スーパユーザのみがこのオプションを使用できます。 .It Fl n 数値の出力のみになります。 ホストアドレスに対してシンボル名の解決を試みません。 .It Fl N ノード情報マルチキャストグループ (node information multicast group) をプローブします。 .Pq Li ff02::2:xxxx:xxxx . .Ar host はターゲットの文字列のホスト名であることが必要です .Pq 数値の IPv6 アドレスであってはなりません 。 ノード情報マルチキャストグループは、指定した .Ar host に基づいて計算し、最終的な終点として使用されます。 ノード情報マルチキャストグループは リンクローカルなマルチキャストグループなので、 終点リンクを .Fl I で指定する必要があります。 .It Fl p Ar pattern 送出するパケットを埋める .Dq pad バイトを指定します。 .Dq pad バイトは 16 バイトを上限とします。 これはネットワーク上でデータ依存の問題を診断するときに有効です。たとえば .Dq Li \-p ff は全て 1 の送出パケットを生成します。 .It Fl q 出力を抑制します。開始時と終了時の要約行しか表示しません。 .It Fl R 対象 .Po .Ar hops を指定した場合には最初の .Ar hop .Pc が到達可能であると、カーネルに信じさせます。 これは、上位層の到達可能性確認ヒントを挿入することで実現します。 本オプションは、対象 .Ar host .Pq または最初のホップ が隣である場合意味があります。 .It Fl S Ar sourceaddr 要求パケットの始点アドレスを指定します。 始点アドレスは、 送信元ノードのユニキャストアドレスのうちのひとつであることが必要です。 出力インタフェースを .Fl I で指定する場合には、 .Ar sourceaddr は当該インタフェースに割り当てたアドレスであることが必要です。 .It Fl s Ar packetsize 送出するデータのバイト数を指定します。 デフォルトでは 56 バイトです。 これは、 .Tn ICMP ヘッダデータの 8 バイトをつけた 64 バイトの .Tn ICMP データに変換されます。 .Fl b オプションも共に指定して、ソケットのバッファサイズを 拡張する必要があるかもしれません。 .It Fl v 冗長出力を有効にします。 .Tn ECHO_RESPONSE 以外の受信 .Tn ICMP パケットも表示されます。 .It Fl w .Tn ECHO_REQUEST ではなく ICMPv6 ノード情報 (FQDN) 問い合わせパケットを生成します。 .Fl w オプションを指定した場合 .Fl s オプションは無効となります。 .It Fl W .Fl w オプションと同じですが、03 ドラフトベースの古いパケット書式を使用します。 このオプションは後方互換性のために残されていました。 .Fl w オプションを指定した場合 .Fl s オプションは無効となります。 .It Ar hops タイプ 0 ルーティングヘッダ中に置かれる、中間ノード用の IPv6 です。 .It Ar host 最終的な終点ノードの IPv6 アドレスです。 .El .Pp 問題の切り分けのために .Nm を用いるには、ローカルインタフェースが up かつ running であることを 確認するため、まずローカルホスト上で実行します。 その後、より遠くのホストやゲートウェイに .Dq ping をしていきます。 経路周回時間 (round-trip time) と消失パケットの統計が計算されます。 重複したパケットが受信された場合、そのパケットは消失パケットの計算には 含まれませんが、経路周回時間の統計の計算には 使われます。 指定されたパケットの数が送信され .Pq 受信され たとき、もしくはプログラムが .Dv SIGINT で終了した場合、簡単な要約が表示されます。 要約に書き出されるのは、送出したパケット数、受信したパケット数、そして 経路周回時間の最小/最大/平均/標準偏差です。 .Pp このプログラムは主にネットワークのテスト、計測、管理に用いられることを 想定しています。 .Nm はそれ自体ネットワークに負荷をかけるので、トラブルのないときや自動スクリ プトで用いることは勧められません。 .\" .Sh ICMP PACKET DETAILS .\" An IP header without options is 20 bytes. .\" An .\" .Tn ICMP .\" .Tn ECHO_REQUEST .\" packet contains an additional 8 bytes worth of .\" .Tn ICMP .\" header followed by an arbitrary amount of data. .\" When a .\" .Ar packetsize .\" is given, this indicated the size of this extra piece of data .\" .Pq the default is 56 . .\" Thus the amount of data received inside of an IP packet of type .\" .Tn ICMP .\" .Tn ECHO_REPLY .\" will always be 8 bytes more than the requested data space .\" .Pq the Tn ICMP header . .\" .Pp .\" If the data space is at least eight bytes large, .\" .Nm .\" uses the first eight bytes of this space to include a timestamp which .\" it uses in the computation of round trip times. .\" If less than eight bytes of pad are specified, no round trip times are .\" given. .Sh 重複パケットと障害パケット .Nm は重複パケットと障害パケットを報告します。重複パケットは ユニキャストアドレスに対して ping をかけている場合は起こるはずの ないものですが、 リンク層での不適切な再送信によって引き起こされるようです。 重複は様々な状況で起こる可能性があります。低いレベルの重複の存在は 必ずしも警告にならないかもしれませんが、 .Pq まず よい兆候ではありません。 ブロードキャストもしくは マルチキャストアドレスに ping する時には、重複パケットが出ることが予想されます。 なぜなら、そのパケットは、実際には重複したパケットなのではなく、 異ったホストからの同じ要求に対する応答であるからです。 .Pp 障害パケットは、警告を引き起こす重大な原因であることは間違いありません。 多くの場合、 .Nm ping パケットの経路のどこか .Pq ネットワーク内かホスト内 のハードウェアの故障が 考えられます。 .Sh 異なったデータパターンの試行 (インタ) ネットワーク層は、データ部分に含まれるデータによってパケットの扱い を変えません。不幸にも、パケットがネットワークに侵入し、 長い間検知されないままとなるというデータに依存した問題が知られています。 多くの場合、問題を引き起こす特殊なパターンは、 たとえば全部 1 や全部 0 のようなもの、あるいは右端以外が 0 であるようなものといった、十分な .Dq 遷移 を持たないものです。コマンドラインで (たとえば) 全部 0 のデータパターンを指定するだけでは不十分かもしれません。なぜな ら問題のパターンはデータリンク層にあり、コマンドラインで指定したものと コントローラが送信するものとの関係は複雑である可能性があるからです。 .Pp このことは、つまり、データに依存した問題があるとき、それを見付けるためには テストをたくさんしなければならないということです。運がよければ、 あるネットワークを通して送れない、あるいは同じような長さのファイル よりも送るのにずっと長時間かかるようなファイルを見付けることが できるかもしれません。 この場合、そのファイルを調べ、繰り返し現われるパターンを .Nm の .Fl p オプションを使ってテストできます。 .Sh 戻り値 .Nm は、成功時 (ホストが生きている場合) には 0 を、 引数が正しくない場合やホストが応答しない場合には非 0 を返します。 .Sh 関連項目 .Xr netstat 1 , .Xr ifconfig 8 , .Xr ping 8 , .Xr routed 8 , .Xr traceroute 8 , .Xr traceroute6 8 .Rs .%A A. Conta .%A S. Deering .%T "Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6) Specification" .%N RFC2463 .%D December 1998 .Re .Rs .%A Matt Crawford .%T "IPv6 Node Information Queries" .%N draft-ietf-ipngwg-icmp-name-lookups-05.txt .%D October 22, 1999 .%O work in progress material .Re .Sh 歴史 .Nm ping コマンドは .Bx 4.3 で登場しました。 IPv6 をサポートした .Nm コマンドは KAME IPv6 プロトコルスタックキットではじめて登場しました。 .Pp KAME Project (http://www.kame.net/) スタックを基とする IPv6 および IPsec のサポートは、 .Fx 4.0 で始めて組み込まれました。 diff --git a/ja_JP.eucJP/man/man8/restore.8 b/ja_JP.eucJP/man/man8/restore.8 index 0f01048e1d..bdfe9ace75 100644 --- a/ja_JP.eucJP/man/man8/restore.8 +++ b/ja_JP.eucJP/man/man8/restore.8 @@ -1,444 +1,444 @@ .\" Copyright (c) 1985, 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)restore.8 8.4 (Berkeley) 5/1/95 -.\" %FreeBSD: src/sbin/restore/restore.8,v 1.20.2.3 2000/12/08 14:04:10 ru Exp % +.\" %FreeBSD: src/sbin/restore/restore.8,v 1.20.2.4 2000/12/18 15:38:31 ru Exp % .\" .\" jpman %Id: restore.8,v 1.2 1997/03/31 14:58:10 horikawa Stab % .Dd May 1, 1995 .Dt RESTORE 8 .Os BSD 4 .Sh 名称 .Nm restore , .Nm rrestore .Nd "dump コマンドで作ったバックアップからファイルやファイルシステムをリストアする" .Sh 書式 .Nm .Fl i .Op Fl chkmNuvy .Op Fl b Ar blocksize .Op Fl f Ar file .Op Fl s Ar fileno .Nm .Fl R .Op Fl ckNuvy .Op Fl b Ar blocksize .Op Fl f Ar file .Op Fl s Ar fileno .Nm .Fl r .Op Fl ckNuvy .Op Fl b Ar blocksize .Op Fl f Ar file .Op Fl s Ar fileno .Nm .Fl t .Op Fl chkNuvy .Op Fl b Ar blocksize .Op Fl f Ar file .Op Fl s Ar fileno .Op file ... .Nm .Fl x .Op Fl chkmNuvy .Op Fl b Ar blocksize .Op Fl f Ar file .Op Fl s Ar fileno .Op file ... .Pp -.in -\n(iSu +.in \" XXX ( .Bx 4.3 オプション文法はバックワードコンパチビリティのために実装されていますが、 ここには記載していません。) .Sh 解説 .Nm は .Xr dump 8 と逆の動作を行います。 ファイルシステムの完全なリストアを行うには、 まず、フルバックアップのリストアから始め、 続いてその上にインクリメンタルバックアップをリストアします。 フルまたは部分バックアップから、単一のファイルやディレクトリの部分ツリー のみをリストア することも可能です。 .Nm は、ネットワークを介した動作も可能です。これを行うには、以下で説明されている .Fl f フラグを参照してください。 コマンドに与えるその他の引数は、リストアされるファイルを指定するための ファイルやディレクトリ名です。 .Fl h フラグを指定していない限り (下記参照)、ディレクトリ名を指定することで、 そのディレクトリ中のファイルや (再帰的に) サブディレクトリを指定することになります。 .Pp 以下のいずれか 1 つ (複数指定不可) のフラグが必要です: .Bl -tag -width Ds .It Fl i バックアップからの対話的なリストアを行います。バックアップからディレクトリ情報 を読み取ると、 .Nm はユーザに展開すべきファイルを選択させるために、 シェルに似たインタフェースでコマンドを受け付けます。 以下のコマンドが使用可能です。引数が必要なコマンドにおいて引数を省略すると、 デフォルトとしてカレントディレクトリが使われます。 .Bl -tag -width Fl .It Ic add Op Ar arg カレントディレクトリまたは指定した引数のファイルを、リストアするファイルの リストに付け加えます。ディレクトリ名を指定した場合には、そのディレクトリの下の すべてのファイルが展開リストに加えられます (コマンドラインに .Fl h フラグが指定されなかった場合)。 .Ic ls でファイルのリストを表示するときに、展開リストに含まれているファイルの頭 には ``*'' がつけられています。 .It Ic \&cd Ar arg カレントディレクトリを指定したディレクトリに移動します。 .It Ic delete Op Ar arg カレントディレクトリまたは引数で指定したファイル名のファイルを、展開する ファイルのリストから削除します。 ディレクトリ名を指定した場合には、そのディレクトリの下のすべてのファイルが 展開リストから削除されます (コマンドラインに .Fl h フラグが指定されなかった場合)。 ディレクトリ中のほとんどのファイルを展開する場合には、 ディレクトリ全体を展開リストに加えたあとで不要なファイルだけを 削除するのが一番便利なやりかたです。 .It Ic extract 展開ファイルリストにあるすべてのファイルをバックアップから展開します。 .Nm は、どのボリュームをマウントしたいかをユーザにたずねます。 数個のファイルのみを展開するのにもっとも早い方法は、最終ボリュームから開始して 最初のボリュームへと戻ることです。 .It Ic help 利用できるコマンドの簡単な説明を表示します。 .It Ic \&ls Op Ar arg カレントディレクトリまたは指定されたディレクトリのリストを表示します。 ディレクトリ名の後ろには ``/'' が付け加えられ、展開リストにあるファイルの前に は ``*'' が加えられます。冗長フラグがセットされていた場合には、 各ディレクトリエントリにあわせて inode 番号も表示されます。 .It Ic pwd カレントディレクトリのフルパス名を表示します。 .It Ic quit .Nm コマンドを中断します。展開リストに何かファイルがあったとしても終了します。 .It Ic setmodes 展開リストにあるすべてのディレクトリの所有者、モード、時刻がセットされる のみで、バックアップからはなにも展開されません。 これは、リストアを途中で中断してしまった時の後始末に有用です。 .It Ic verbose 冗長フラグ .Fl v の意味を反転します。冗長フラグがセットされている場合には、 .Ic ls コマンドは、すべてのエントリに対してその inode 番号を表示します。 また、 .Nm コマンドは、ファイルを展開するたびにその情報を表示します。 .El .It Fl R .Nm は、 フルリストアを再開するために、マルチボリュームのテープのうち特定のものを リストアすることを要求します (下記 .Fl r フラグを参照)。 これはリストア動作を中断したときに使われます。 .It Fl r リストア (ファイルシステムの再構築) を行います。 レベル 0 バックアップのリストアの前には、リストア先となるファイルシステムは .Xr newfs 8 で初期化しておき、マウントして、そのディレクトリへ .Xr cd で移動しておく必要があります。 レベル 0 バックアップのリストアに成功したら、 .Fl r フラグを指定することで、 それに加えて必要なインクリメンタルバックアップをリストアすることができます。 .Fl r フラグは対話的なファイルリストアを行わないため、注意して扱わないと 損害を与えることがあります (ディスクは言うに及ばず、精神的にも)。 次のように実行します: .Bd -literal -offset indent newfs /dev/da0s1a mount /dev/da0s1a /mnt cd /mnt restore rf /dev/rsa0 .Ed .Pp .Nm は、インクリメンタルリストアのための情報を、ルートディレクトリの .Pa restoresymtable に記録します。このファイルは、すべての増分をリストアしたあとで削除すべきです。 .Pp .Nm を、 .Xr newfs 8 や .Xr dump 8 と組み合わせることで、ファイルシステムのサイズやブロックサイズといった パラメータを変更するのに使うことができます。 .It Fl t 指定したファイル名のファイルがバックアップ中にあれば、その名前を表示します。 ファイル名引数がない場合にはルートディレクトリを表示するため、 .Fl h フラグを指定していない限り、バックアップ中のすべてのファイルを表示することに なります。 このフラグは、古くからあった .Xr dumpdir 8 のかわりの機能を持つことに注意してください。 .It Fl x メディアから、指定したファイルが読み出されます。 指定ファイルがディレクトリで、そのディレクトリの内容がバックアップ中に存在し、 かつ .Fl h フラグが指定されていないときには、ディレクトリの内容が再帰的に展開されます。 (可能であれば) ファイルの所有者、修正日時、モードもリストアされます。 もし引数が与えられていなければルートディレクトリを展開するため、 .Fl h フラグを指定していない限り、結果的にバックアップ全体が展開されます。 .El .Pp 以下の追加オプションを指定可能です: .Bl -tag -width Ds .It Fl b Ar blocksize ダンプレコードあたりのキロバイト数です。 .Fl b が指定されないときは、 .Nm はメディアのブロックサイズを動的に求めようとします。 .It Fl c 通常 .Nm は、ダンプ対象のファイルシステムフォーマットが 新しいか古い (4.4 以前) かを動的に決定します。 .Fl c フラグはこのチェックを無効にし、 古いフォーマットのダンプからのみ読み込むことを許します。 .It Fl f Ar file バックアップを .Ar file から読み込みます; .Ar file は、 .Pa /dev/rsa0 (テープドライブ) や .Pa /dev/da1c (ディスクドライブ) といったスペシャルデバイスファイル、 通常のファイル、 .Ql Fl (標準入力) のいずれかです。 ファイル名が .Dq host:file や .Dq user@host:file という形式である場合は、 .Nm は .Xr rmt 8 を用いて指定したファイルを指定のホストから読み取ります。 .Pp .It Fl k リモートテープサーバとの通信時に Kerberos 認証を使用します ( .Nm のコンパイル時に有効にされている場合のみ使用可能です。) .Pp .It Fl h ディレクトリ名を指定された場合に、その中のファイルではなく、 ディレクトリそのものを展開するようにします。 これによって、ダンプからディレクトリのサブツリーを階層的に 展開してしまうことを防ぎます。 .It Fl m 展開を、ファイル名ではなく inode 番号によって行います。 これは数個のファイルのみを展開したい場合で、ファイルの完全なパス名を 再生することを防ぎたい場合に有用です。 .It Fl N 通常通り展開しますが、実際には変更をディスクへ書き込みません。 ダンプメディアの完全性の確認や他のテスト目的に使用可能です。 .It Fl s Ar fileno マルチファイルテープの .Ar fileno から読みます。 ファイル番号は 1 から始まります。 .It Fl u 特定のタイプのファイルを作成する時に、 リストア先ディレクトリに既に同名のファイルが存在する場合には、 リストアは警告診断を生成し得ます。 この動作を抑制するために、 .Fl u (アンリンク) フラグを指定すると、リストアは古いエントリを削除してから 新しいエントリを作成しようとします。 .It Fl v 普通、 .Nm は何も表示せずにリストア動作を行います。 .Fl v (verbose, 冗長) フラグを指定すると、 扱うファイルのタイプとファイル名が表示されます。 .It Fl y エラーが発生したときに、リストア動作を中断するかどうかの問い合わせを 行いません。 これによって、不良ブロックをスキップして、可能なかぎり動作を継続します。 .El .Sh 診断 リードエラーが発生するとメッセージを表示します。 もし、 .Fl y が指定されているか、あるいはユーザが .Ql y の応答をしたならば、 .Nm はリストアを続行しようとします。 .Pp バックアップが 1 巻より多くのテープボリュームに格納されていたならば、 .Nm は次のボリュームをマウントすべき時点でそれをユーザに知らせます。 もし、 .Fl x あるいは .Fl i フラグが指定されていたら、 .Nm は、ユーザがマウントしたいのはどのボリュームであるかを問い合わせます。 少数のファイルを最も早く展開する方法は、最終ボリュームから開始して、 最初のボリュームへ向けて作業を進めることです。 .Pp .Nm は数多くの一貫性検査を行っていて、それを表示します。 ほとんどの検査結果の表示は自明であるか、あるいは「決して起こらない」ものです。 良くあるエラーを以下に示します。 .Pp .Bl -tag -width Ds -compact .It Converting to new file system format. 古い形式のファイルシステムで作られたダンプテープがロードされました。 その場合、自動的に新しいファイルシステムの形式に変換されます。 .Pp .It : not found on tape 指定したファイル名はテープのディレクトリには記録されていましたが、 テープのなかに本体が見当たりませんでした。 このような事態が起きるのは、ファイルを探している間にテープのリードエラー が発生した場合や、稼働中のファイルシステムにおいて作成したダンプテープ を使った場合です。 .Pp .It expected next file , got ディレクトリに記録されていなかったファイルが示されます。 稼働中のファイルシステムにおいて作成したダンプを使った場合に発生することが あります。 .Pp .It Incremental dump too low インクリメンタルリストアを行う際に、ダンプが直前のインクリメンタルダンプ よりも以前に書かれたものであったり、増分レベルが低すぎるダンプがロード された場合に表示されます。 .Pp .It Incremental dump too high インクリメンタルリストアを行う際に、ダンプが直前のインクリメンタルダンプ の続きの範囲から開始していなかったり、あるいは増分レベルが高すぎる ダンプがロードされた場合に表示されます。 .Pp .It Tape read error while restoring .It Tape read error while skipping over inode .It Tape read error while trying to resynchronize テープ (あるいはその他の媒体) のリードエラーが発生しました。 ファイル名が表示されていたならば、その内容はおそらく部分的に不正なものに なっているでしょう。 もし inode がスキップされたり、テープの resynchronize (再同期) が試みら れていたならば、展開されたファイルには問題はありません。しかし、テープ 上からいくつかのファイルを見付けることができないかもしれません。 .Pp .It resync restore, skipped blocks ダンプのリードエラーが発生した後に、おそらく .Nm は自分自身で再同期をとらなければなりません。 このメッセージはスキップしたブロックの個数を表示します。 .El .Sh 関連ファイル .Bl -tag -width "./restoresymtable" -compact .It Pa /dev/rsa0 デフォルトのテープドライブ .It Pa /tmp/rstdir* テープ中のディレクトリを保持するファイル .It Pa /tmp/rstmode* ディレクトリの所有者、モード、タイムスタンプ .It Pa \&./restoresymtable インクリメンタルリストア間で渡される情報 .El .Sh 関連項目 .Xr dump 8 , .Xr mount 8 , .Xr newfs 8 , .Xr rmt 8 .Sh バグ 使用中のファイルシステムから作成されたダンプから インクリメンタルリストアを行うと、誤動作を起こすことがあります。 .Pp フルリストアの終了後にはレベル 0 ダンプを行う必要があります。 .Nm はユーザコードで動作するので、inode の割り当てを制御することができません。 したがって、ファイルの内容が変更されていない場合でも、新しい inode 割り当てを 新しいディレクトリ集合に反映させるためには、 フルダンプを行わなければなりません。 .Pp ネットワークを介したリストアを行う場合、 root 権限で restore を実行する必要があります。 これは、以前の dump と restore のセキュリティ上の歴史によるものです。 (restore は root に setuid されて使われるように書かれていますが、 restore のコードから全てのバグが取れているとは思わないので、 setuid にて使用する場合は自己の責任において行って下さい。) .Pp 一時ファイル .Pa /tmp/rstdir* と .Pa /tmp/rstmode* は、ダンプの日付とプロセス ID に基づいて、ユニークに生成されます ( .Xr mktemp 3 を参照してください)。ただし .Fl r または .Fl R が使用された場合は例外です。 これは、中断された .Fl r の動作を .Fl R によって再開可能とするためであり、 別々の処理において同一の一時ファイルを使用することが必要であるためです。 他の場合には、ファイルはユニークです。 これは、同時に 2 個の異なったダンプが開始する可能性があるためであり、 別々の処理が衝突しないようにすべきだからです。 .Sh 歴史 .Nm コマンドは .Bx 4.2 から登場しました。 diff --git a/ja_JP.eucJP/man/man8/routed.8 b/ja_JP.eucJP/man/man8/routed.8 index f119d5c710..1a073ee37b 100644 --- a/ja_JP.eucJP/man/man8/routed.8 +++ b/ja_JP.eucJP/man/man8/routed.8 @@ -1,667 +1,667 @@ -.\" %FreeBSD: src/sbin/routed/routed.8,v 1.15.2.2 2000/12/08 14:04:11 ru Exp % +.\" %FreeBSD: src/sbin/routed/routed.8,v 1.15.2.3 2000/12/18 15:38:31 ru Exp % .\" .\" Copyright (c) 1983, 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. .\" .\" @(#)routed.8 8.2 (Berkeley) 12/11/93 .\" -.\" %FreeBSD: src/sbin/routed/routed.8,v 1.15.2.2 2000/12/08 14:04:11 ru Exp % +.\" %FreeBSD: src/sbin/routed/routed.8,v 1.15.2.3 2000/12/18 15:38:31 ru Exp % .\" .\" jpman %Id: routed.8,v 1.2 1997/03/31 14:11:11 horikawa Stab % .\" .\" WORD: route 経路 .\" WORD: default route デフォルトルート .\" WORD: host route ホストルート .\" WORD: network route ネットワークルート .\" WORD: point-to-point route point-to-point ルート .Dd June 1, 1996 .Dt ROUTED 8 .Os BSD 4.4 .Sh 名称 .Nm routed , .Nm rdisc .Nd ネットワークの RIP と router discovery のルーティングデーモン .Sh 書式 .Nm .Op Fl sqdghmpAtv .Op Fl T Ar tracefile .Oo .Fl F .Ar net Ns Op /mask Ns Op ,metric .Oc .Op Fl P Ar parms .Sh 解説 .Nm はネットワークのルーティングテーブルを管理するデーモンで、 システムのブート時に起動されます。 デーモンはカーネルのルーティングテーブルを管理するために、 ルーティング情報プロトコル (Routing Information Protocol) の RIPv1 (RFC\ 1058), RIPv2 (RFC\ 1723) および Internet Router Discovery Protocol (RFC 1256) を用います。 RIPv1 プロトコルは .Bx 4.3 のデーモンのものをベースとしています。 .Pp デーモンはルーティング情報プロトコルのパケットを待つために、 .Xr route 8 サービス .Ns ( Xr services 5 参照) 用の .Xr udp 4 ソケットを listen します。また、マルチキャストによる Router Discovery の ICMP メッセージの送受信も行います。 ホストがルータだった場合、 .Nm は直接接続されている全てのホストとネットワークに、 ルーティングテーブルの複製を定期的に提供します。 また、 Router Discovery の ICMP メッセージを用いて デフォルトルートの広告や要求を行います。 .Pp .Nm が動作し始めると (または、ネットワークインタフェースがオンになると)、 .Nm は AF_ROUTE アドレスファミリを用いて、システムに直結されていて コンフィギュレーションされているインタフェースのうちで "up" とマークされて いるものを探します。そしてそのインタフェースに必要な経路をカーネルの ルーティングテーブルに追加します。スタート直後で、RIP が無効になっていない インタフェースが少なくとも 1 つある場合、 .Nm はカーネルのテーブル内に既に存在する静的でない経路を全て削除します。 カーネルのテーブル内にある静的な経路は保存され、有効な RIP metric を 持っているものは RIP レスポンスに含められます .Ns ( Xr route 8 参照)。 .Pp 複数のインタフェース (ループバックインタフェースは含めません) が存在する 場合、そのホストは接続されているネットワーク間でパケットを中継するものと みなされます。RIP .Em リクエスト と Router Discovery の広告や要求を新しいインタフェース上で送信した後、 デーモンはループに入り、他のホストからの RIP リクエスト、RIP レスポンス、 Router Discovery のパケットを listen します。 .Pp .Em リクエスト パケットを受信すると、 .Nm は内部テーブルに持っている情報からリプライを作成します。 作成された .Em レスポンス パケットは既知の経路のリストを含み、各経路に "hop count" metric がつきます (16 以上は "無限大" とみなされます)。 広告した metric はインタフェースに設定した metric を反映するため .Ns ( Xr ifconfig 8 参照)、トラフィックを制御するにはインタフェースの metric を設定するのが 良い方法です。 .Pp .Em split-horizon をある程度実装しているため、レスポンスは リクエストしてきたネットワークの 1 hop 先の経路を含みません。 .Xr rtquery 8 のような問い合わせプログラムからのリクエストに対しては、テーブル全体 から答を導き出します。 .Pp ルータの故障から素早く復旧できるようにするため、 デーモンが管理するルーティングテーブルには各到達先用のゲートウェイをいくつか 覚えておくための空間があります。受けとった RIP .Em レスポンス パケットがルーティングテーブルの更新に使用されるのは、 現在認識しているゲートウェイのうちの 1 つから提供された場合、 もしくは現在あるゲートウェイのうちの少なくとも 1 つよりも よい metric を広告している場合です。 .Pp 更新を行う時、 .Nm は自分自身が持つテーブルに変更を記録し、到達先への最適な経路が変更された 場合にはカーネルのルーティングテーブルを更新します。カーネルの ルーティングテーブルに対するこの変更は、次に送出される .Em レスポンス パケットに反映されます。次のレスポンスがしばらくの間スケジューリングされない 場合には、最近変更された経路だけを含んだ .Em flash update レスポンスが送られます。 .Pp 到着パケットの処理に加えて、 .Nm は定期的にルーティングテーブルのエントリをチェックします。 あるエントリが 3 分間更新されなかった場合、 そのエントリの metric は無限大として設定され、 削除のためのマークがつけられます。 この無効化がローカルなインターネット全体に伝搬されるのを保証するために、 削除はその経路が無限大の metric を持つと広告されるまで延期されます。これが .Em poison reverse 方式です。 .Pp カーネルのテーブル内の経路のうちで ICMP Redirect メッセージの結果として 追加や変更されたものは、 .Em black-holes を最小にするために、しばらく経ってから削除されます。 TCP コネクションのタイムアウトが起こると、カーネルは .Nm に対し、そのゲートウェイを通る全てのリダイレクトされた経路を削除し、 そのゲートウェイを通る全ての RIP の経路の年齢を増やすことで他のゲートウェイが 選択されるようにし、関連する全ての Router Discovery Protocol の デフォルトルートの年齢を増やします。 .Pp ネットワーク間ルータとして動作するホスト群は、直接接続されているホストおよび ネットワークすべてに対し、30 秒ごとにルーティングテーブルを無条件で提供します。 この RIP レスポンスは、ブロードキャストをサポートしているネット上の ブロードキャストアドレス、point-to-point リンクの到達先アドレス、 ルータ自身の他のネットワークでのアドレスに対して送信されます。 RIPv2 が有効になっている場合は、マルチキャストをサポートしているインタフェース に対してマルチキャストパケットが送られます。 .Pp リモートインタフェース上でレスポンスが受信されない場合や、 レスポンスを送信中にエラーが起こった場合や、 エラーが入力や出力よりも多い場合 .Ns ( Xr netstat 1 参照) は、ケーブルやインタフェースの他の部分が接続されていないか壊れている とみなされ、その経路は適切に変更されます。 .Pp .Em Internet Router Discovery Protocol も同様に扱われます。デーモンが RIP の経路を配っている時は、 Router Discovery の要求の listen と Router Discovery の広告の送信も行います。 デーモンが静かな状態で他の RIP ルータからのパケットを listen している時には、 Router Discovery の要求を送信して、Router Discovery の広告を listen します。 デーモンは信頼できる広告を受信して、かつ複数のホームを持たない場合に、 RIP レスポンスのブロードキャストやマルチキャストを listen するのをやめます。 現在利用中のルータが死んだ場合に障害のある状態から短時間で修復できるよう、 広告されているルータのいくつかを追跡します。 もし発見しておいたルータが全て見えなくなった場合、デーモンは RIP レスポンスの listen を再開します。 デーモンは、複数のホームを持つ場合に すべてのインタフェースが使用されていることを確実にするため、 Router Discovery の使用中は RIP の listen を継続します。 .Pp Router Discovery の仕様では、広告の "存続期間" をデフォルトで 30 分とすることを 要求しています。これは、何かが起こった場合に クライアントに 30 分間よい経路がなくなる可能性があることを意味しています。 コマンドラインで .Fl P Cm rdisc_interval=45 と指定したり .Pa /etc/gateways に .Cm rdisc_interval=45 と書くことでデフォルトを 45 秒にするのは良い考えです。 .Pp Router Discovery を利用している場合 (システムが持っている ネットワークインタフェースが 1 つだけでかつ Router Discovery の広告を 受けた場合にはこれがデフォルトです)、カーネルのテーブル内には デフォルトルートは 1 つだけで、ホストへの経路は可変個数となります。 複数のネットワークインタフェースを持つホストでは、 このデフォルトルートはそのインタフェースのうちの 1 つだけを経由します。 このため、複数のホームを持つホストで \f3\-q\f1 つきで動作しているものは、 以下に示す .Cm no_rdisc が必要です。 .Pp RIPv2 と Router Discovery のどちらも扱うことができない "遺物の" システムを サポートするためには、以下に記述してある .Cm pm_rdisc を参照して下さい。 .Pp デフォルトでは、point to point リンク (たとえば PPP) には Router Discovery の広告も要求も送信されません。 .Nm は、 point-to-point リンク (SLIP や PPP のような、IFF_POINTOPOINT フラグ のついたもの) のネットマスクを使用して、 RIPv1 利用時にリモートシステムで使われているネットマスクを 推定します。 .Pp 以下のオプションを使用可能です: .Bl -tag -width indent .It Fl s .Nm は強制的にルーティング情報を提供します。 これは、RIP や Router Discovery を無効にしていない状態で複数の ネットワークインタフェースが存在し、カーネルが ipforwarding=1 に なっている場合にはデフォルトです。 .It Fl q .Fl s オプションとは逆の動作をします。 インタフェースが 1 つだけの場合は、これがデフォルトです。 このオプションを指定すると、デーモンは RIP に対して常に "quiet-mode" となり、ルーティング情報を他のコンピュータに提供しません。 .It Fl d バックグラウンドでは動作しません。このオプションは対話的に使用するための ものです。 .It Fl g ネットワーク間ルータにおいて "default" の到達先への経路を設ける ために使われます。これは .Fl F .Cm 0/0,1 と同じ意味を持ち、主として歴史的理由のために存在します。 これよりは、 .Fl P Cm pm_rdisc をコマンドラインで指定するか、 .Cm pm_rdisc を .Pa /etc/gateways で指定するほうがよいでしょう。 大きな metric を使用すれば、 潜在的に危険なデフォルトルートが広まる可能性を減らせます。 これは、典型的にはインターネットへのゲートウェイで用いられるか、 経路を他のローカルルータに対して報告しない、別の ルーティングプロトコルを利用しているゲートウェイで用いられます。 metric には 1 が使われるため、この機能は危険です。このオプションは一般に、 問題を解決するよりも、ルーティングのループによる混乱を引き起こしがちです。 .It Fl h ホストルートまたは point-to-point ルートを広告しません。 これらは同一方向へ向かうネットワークルートであると規定されます。これは 特別な性質を持つ集合です。このオプションは、 SLIP のような point-to-point リンクで他のゲートウェイマシンを接続させている Ethernet へのゲートウェイにおいて有効です。 .It Fl m マシンが、そのプライマリインタフェースへのホストルートや point-to-point ルート を広告するようになります。 これは NFS サーバのような複数のホームを持つマシンにおいて有効です。 このオプションは、作成したホストルートのコストがサーバの人気で正当化される 場合を除いて、使うべきではありません。 これは、マシンがルーティング情報を供給していて、複数のインタフェースを 持っている場合にのみ効果があります。 .Fl m オプションは、 .Fl q オプションを無効にして、 ホストルートの広告を限定した範囲に制限します。 .It Fl A RIPv2 の認証に注意を払わない場合に、RIPv2 の認証を無視しません。 RFC 1723 に準拠するためにはこのオプションが必要です。 しかしながら、これは意味がなく、マシンが認証について注意を払わない場合に 認証を運ぶ全ての RIPv2 パケットを無視する目的で検出プロトコルとして RIP を使うことの妨げとなります。 .It Fl t デバッグレベルを増やします。 .Fl T で指定したトレースファイルや標準出力に対し、より詳細な情報を記録するように なります。デバッグレベルは .Em SIGUSR1 シグナルや .Em SIGUSR2 シグナルや .Xr rtquery 8 で増減できます。 .It Fl T Ar tracefile デバッグレベルを最低でも 1 まで上げ、デバッグ情報をトレースファイルに 書き加えるようにします。セキュリティ上の都合により、 .Nm がファイルへのトレースを日常的に行うようにはしないのが賢明です。 .It Fl v デーモンのバージョンを表示して記録します。 .It Fl F Ar net[/mask][,metric] .Em net/mask にマッチするアドレスを持つインタフェースを介した転送における経路を最小にし、 このマシンへのデフォルトルートを metric 数 .Em metric で作成します。この目的は、RIP 情報をもつ多数の大きな UDP パケットを "にせ" の デフォルトルートを含んだ 1 つの小さなパケットに置き換えることで、 遅い、たとえば PPP のような point-to-point リンクでの RIP のトラフィックを 減らすことにあります。 もし .Em metric がない場合は、"にせ" のデフォルトルートが広まるのを制限するために 14 が 指定されたものとみなします。 この機能は、不注意に使うとルーティングのループを引き起こすので危険です。 指定したネットワーク番号とマスクに複数のインタフェースがマッチする可能性がある ことにも注意して下さい。 .Fl g も参照してください。 .It Fl P Ar parms パラメータ行 .Em parms を .Pa /etc/gateways ファイルに書くのと同じです。 .El .Pp 提供された他の引数は、 .Nm の動作を記録するファイルの名前として解釈されます。 トレースファイルの名前をコマンドに追加するよりは、 .Fl T を使った方がよいでしょう。 .Pp 上記の機能に加えて、 .Nm は "遠隔にある" .Em passive もしくは .Em active なゲートウェイという概念をサポートします。 .Nm は動作を開始すると、 .Pa /etc/gateways を読み込んで、 ルーティングソケットからの情報だけでは突き止められない可能性を持つ 遠隔のゲートウェイを見つけ、ローカルのゲートウェイが .Em passive かどうかを知り、そしてその他のパラメータを取得します。 このようにして指定したゲートウェイには、 ルーティング情報を交換するつもりがない場合には passive 、 RIP パケットを交換しても構わない場合には active の マークを付ける必要があります。 .Em passive ゲートウェイを通る経路は、起動時に一度だけ カーネル内の経路表に設定され、送出される RIP レスポンスには 含められません。 .Pp 遠隔の active ゲートウェイは、ネットワークインタフェースと同様に扱われます。 RIP レスポンスを遠隔の .Em active ゲートウェイに送出します。 応答がない場合、 カーネルのテーブルと他のインタフェースから広告される RIP レスポンス からその経路を削除します。遠隔のゲートウェイが RIP レスポンスの送出を 再開した場合は、その経路を再び追加します。 .Pp このようなゲートウェイは、 ブロードキャストやマルチキャストはサポートしないがそれ以外は Ethernet のような 伝統的な共有メディア同様にふるまう、 ATM ネットワークなどのメディアで有効です。 HIPPI や ATM のネットワーク上にある到達可能な全ての RIP ルータを .Pa /etc/gateways の "host" 行を使って記述することができます。 通常、そのような状況では、 推定されたホスト経路のリスト生成を避けるために RIPv2 の使用が望ましいことに注意してください。 .Pp .Em external マークをつけたゲートウェイは passive と同様の扱いになりますが、 カーネル内のルーティングテーブルに載ることはなく、 ルーティングの更新時にその情報が含められることもありません。 external エントリの機能は、別のルーティングプロセスがそのような経路を 必要時に追加する可能性があり、 .Nm がその到達先への他の経路を設定すべきでないことを知らせることです。 external エントリは、2 つのルータが同じ到達先への経路を覚えてもよい場合にのみ 必要です。 .Pp .Pa /etc/gateways ファイルは、各行が以下の 2 つのフォーマットのどれか、 または後述のパラメータからなる行で構成されます。 空行と '#' で始まる行はコメントです。 .Pp .Bd -ragged .Cm net .Ar Nname[/mask] .Cm gateway .Ar Gname .Cm metric .Ar value .Pf < Cm passive No \&| .Cm active No \&| .Cm extern Ns > .Ed .Bd -ragged .Cm host .Ar Hname .Cm gateway .Ar Gname .Cm metric .Ar value .Pf < Cm passive No \&| .Cm active No \&| .Cm extern Ns > .Ed .Pp キーワード .Ar Nname や .Ar Hname は、到達先のネットワークもしくはホストの名前です。 これはネットワークのシンボル名または "ドット" 表記による インターネットアドレスのどちらでも構いません .Ns ( Xr inet 3 参照)。(もし名前の場合は、 .Pa /etc/networks または .Pa /etc/hosts で定義されているか、 .Nm の動作開始前に .Xr named 8 が起動されていなければなりません。) .Pp .Ar mask は省略可能な数値で、 .Ar Nname のネットマスクを表す 1 から 32 までの値をとります。 .Pp .Ar Gname は、RIP レスポンスがフォワードされるべきゲートウェイの名前もしくは アドレスです。 .Pp .Ar value は、到達先ホストもしくはネットワークへの hop 数です。 -.Ar " host hname " +.Cm host Ar hname は -.Ar " net nname/32 " +.Cm net Ar nname/32 と同じです。 .Pp ゲートウェイが .Cm passive または .Cm active として(前述の通り)扱われる必要があるか、 あるいは RIP プロトコルのスコープの範囲外つまり .Cm external であるかを指示するために、 .Cm passive , .Cm active , .Cm external のキーワードのうちの 1 つを指定する必要があります。 .Pp .Fl t でデバッグ出力をオンとする時に見受けられる様に、 そのような行は疑似インタフェースを作成します。 remote インタフェースや external インタフェースのパラメータ設定をするには、 その行を .Cm if=alias(Hname) や .Cm if=remote(Hname) 等で始める必要があります。 .Pp "net" と "host" のどちらでも始まらない行は、以下のようなパラメータ設定 でなければなりません。これは 1 つでも複数でもよく、複数の場合はコンマや 空白で区切ります: .Bl -tag -width Ds .It Cm if Ns \&= Ns Ar ifname その行にある他のパラメータが、名前が .Ar ifname のインタフェースに適用されることを示します。 .It Cm subnet Ns \&= Ns Ar nname[/mask][,metric] ネットワーク .Ar nname への経路をマスク .Ar mask と指定された metric (デフォルトは 1) で広告します。 これは CIDR の確保において "穴" を埋めるのに有効です。 このパラメータはその行にそれだけで出現しなければなりません。 ネットワーク番号は、例えば 192.0.2 ではなく 192.0.2.0 の様に、 32 ビットの完全な値を指定する必要があります。 .Pp この機能を不必要に使ってはいけません。危険です。 .It Cm ripv1_mask Ns \&= Ns Ar nname/mask1,mask2 .Cm nname/mask1\f1 がサブネットであるネットワークのネットマスクを .Cm mask2 とする様に指定します。 例えば \f2ripv1_mask=192.0.2.16/28,27\f1 は 192.0.2.16/28 を 192.0.2.0/24 ではなく 192.0.2.0/27 のサブネットとしてマークします。 このファシリティを使わずに、 \f2ripv2_out\f1 を用いて RIPv2 を有効にするのが、より望ましい方法です。 .It Cm passwd Ns \&= Ns Ar XXX[|KeyID[start|stop]] RIPv2 の生のパスワードを指定します。 これは、送信される全ての RIPv2 レスポンスに含められ、 受信した全ての RIPv2 レスポンスでチェックされます。 パスワード内の空白、タブ文字、コンマ、'#'、'|'、NULL 文字は、 バックスラッシュ (\\) でエスケープしなければなりません。 よく使われる \\n, \\r, \\t, \\b, \\xxx などのエスケープシーケンスは、 それぞれ通常の意味を持っています。 .Cm KeyID は一意でなければなりませんが、生のパスワードの場合は無視されます。 .Cm start と .Cm stop がある場合、これはタイムスタンプで、 year/month/day@hour:minute の形式をとります。 これらはパスワードの有効期限を指定します。 出力パケットで使われるパスワードには、期限が最も遠い将来まで設定されている パスワードが使われます。 ただし、全てのパスワードの期限が切れてしまった場合には、 最も最近期限切れになったパスワードが使われます。 また、パスワードがどれもまだ有効でない場合には、 パスワードは出力されません。 到着パケットは有効なパスワードを運んでくる可能性があります。 ここで有効とは、未来の 24 時間内で有効になるものか、 過去 24 時間内で有効であったものを指します。 秘密を守るため、パスワードの設定は .Em /etc/gateways 内のものだけが有効であり、かつ、このファイルが UID 0 でのみ読み込み可能 でなければなりません。 .It Cm md5_passwd Ns \&= Ns Ar XXX|KeyID[start|stop] RIPv2 の MD5 パスワードを指定します。 .Cm KeyID が必須であること以外は、このキーワードは .Cm passwd と同様です。 .It Cm no_ag RIPv1 と RIPv2 のレスポンスにおいてサブネットの集約を行いません。 .It Cm no_super_ag RIPv2 のレスポンスにおいてネットワークのスーパネットへの集約を行いません。 .It Cm passive そのインタフェースが更新時に他のインタフェースを通して広告されないように マークし、指定したインタフェースでは RIP および router discovery 処理を 全く行わないようにします。 .It Cm no_rip 指定したインタフェースでの全 RIP 処理を行いません。 RIP パケットを処理するインタフェースがない場合は、 .Nm は単に Router Discovery デーモンとして動作します。 .Pp .Cm rdisc_adv または .Fl s で明示的に Router Discovery の広告を行うように指示せずに RIP を 行わないようにすると、 .Nm は広告を行わない Router Discovery デーモンとして動作することに注意して下さい。 .It Cm no_rip_mcast RIPv2 パケットをマルチキャストせずにブロードキャストします。 .It Cm no_ripv1_in 受信した RIPv1 レスポンスを無視します。 .It Cm no_ripv2_in 受信した RIPv2 レスポンスを無視します。 .It Cm ripv2_out 可能な場合にマルチキャストができるよう、 RIPv2 の出力を有効にして RIPv2 による広告を行います。 .It Cm ripv2 .Cm no_ripv1_in と .Cm no_ripv1_out を指定した場合と同じです。 RIPv2 を有効にします。 .It Cm no_rdisc Internet Router Discovery Protocol を無効にします。 .It Cm no_solicit Router Discovery の要求を送信しません。 .It Cm send_solicit たとえ point-to-point リンクであっても Router Discovery の要求を送信します。 デフォルトでは Router Discovery のメッセージを聞くだけです。 .It Cm no_rdisc_adv Router Discovery の広告の送信を行いません。 .It Cm rdisc_adv たとえ point-to-point リンクであっても Router Discovery の広告を送信します。 デフォルトでは Router Discovery のメッセージを聞くだけです。 .It Cm bcast_rdisc Router Discovery のパケットをマルチキャストせずにブロードキャストします。 .It Cm rdisc_pref Ns \&= Ns Ar N Router Discovery の広告の優先度を整数 .Ar N に設定します。 優先度のデフォルトは 0 です。 クライアントは、 より小さな、あるいはより負の優先度を持つデフォルトルートを選択します。 .It Cm rdisc_interval Ns \&= Ns Ar N Router Discovery の広告を行う上での名目の送信間隔を N 秒に設定し、 その存続期間を 3*N にします。 .It Cm fake_default Ns \&= Ns Ar metric 指定したインタフェースのネットワークとネットマスクを用いて .Fl F Ar net[/mask][=metric] を指定した場合と同じです。 .It Cm pm_rdisc .Cm fake_default に似ています。RIPv2 の経路がマルチキャストの場合、RIPv1 を聞いている マシンはそれを受信することができないので、この機能を使えば RIPv1 のデフォルト ルートが RIPv1 を聞いているマシンにブロードキャストされるようになります。 .Cm fake_default で変更しない限り、 デフォルトルートは metric 14 でブロードキャストされます。 これは "安上がりな router discovery" プロトコルを提供することになります。 .It Cm trust_gateway Ns \&= Ns Ar rname[|net1/mask1|net2/mask2|...] 指定したルータや他の .Cm trust_gateway キーワードで指定したルータからの RIP パケットを受け付け、 これら以外のルータからのパケットを無視します。 ネットワークを指定した場合、他のネットワークへの経路は 指定したルータからは無視されます。 .It Cm redirect_ok システムがルータとして動作してパケットのフォワードを行っている場合に、 RIP が ICMP Redirect メッセージを許可するようになります。 そうでなければ、ICMP Redirect メッセージは無効にされます。 .El .Pp .Sh 関連ファイル .Bl -tag -width /etc/gateways -compact .It Pa /etc/gateways 遠隔ゲートウェイについての情報を記述するファイル。 .El .Sh 関連項目 .Xr icmp 4 , .Xr udp 4 , .Xr rtquery 8 .Rs .%T Internet Transport Protocols .%R XSIS 028112 .%Q Xerox System Integration Standard .Re .Sh バグ 出力方向にのみ失敗するなどの、ネットワークインタフェースの一方向の失敗 を常に検出できるとは限りません。 .Sh 歴史 .Nm コマンドは .Bx 4.2 から登場しました。