diff --git a/ja_JP.eucJP/man/man1/df.1 b/ja_JP.eucJP/man/man1/df.1 index fe5070bb18..23a8f2878d 100644 --- a/ja_JP.eucJP/man/man1/df.1 +++ b/ja_JP.eucJP/man/man1/df.1 @@ -1,185 +1,185 @@ .\" Copyright (c) 1989, 1990, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)df.1 8.3 (Berkeley) 5/8/95 .\" %FreeBSD: src/bin/df/df.1,v 1.18.2.6 2001/08/16 10:01:04 ru Exp % .\" -.\" $FreeBSD: doc/ja_JP.eucJP/man/man1/df.1,v 1.15 2001/08/17 06:18:09 horikawa Exp $ +.\" $FreeBSD$ .Dd May 8, 1995 .Dt DF 1 .Os .Sh 名称 .Nm df .Nd ディスクの空き領域等の表示 .Sh 書式 .Nm df .Oo .Fl b | h | H | k | .Fl m | P .Oc .Op Fl ailn .Op Fl t Ar type .Op Ar file | filesystem ... .Sh 解説 .Nm は、 .Ar file_system で指定したファイルシステム、 もしくは .Ar file で指定したファイルが実際に格納されているファイルシステムの空きディスク容量の 表示を行います。 ディスク容量は、512 バイトを 1 ブロックとしたブロック数で表示 します。 .Nm の引数として、 .Ar file_system も .Ar file も指定されなかった場合は、マウントされているすべてのファイ ルシステムについての情報を表示します。 ただし、 .Fl t オプションによって、表示するファイルタイプの指示が可能です。 .Pp オプションとしては以下のものがあります: .Bl -tag -width Ds .It Fl a MNT_IGNORE フラグ付きでマウントされたものを含め、 全マウントポイントを表示します。 .It Fl b デフォルト値でなく 512 バイトブロックを使用します。 これは、環境の .Ev BLOCKSIZE 指定に優先することに注意してください。 .It Fl g デフォルト値でなく 1073741824 バイト (1 G バイト) ブロックを使用します。 これは、環境の .Ev BLOCKSIZE 指定に優先することに注意してください。 .It Fl H 「人間が読める」出力です。 単位サフィックスに、バイト、キロバイト、メガバイト、 ギガバイト、テラバイト、ペタバイトを使用して数字を 3 桁以下に減らします。 大きさの基数は 10 です。 .It Fl h 「人間が読める」出力です。 単位サフィックスに、バイト、キロバイト、メガバイト、 ギガバイト、テラバイト、ペタバイトを使用して数字を 3 桁以下に減らします。 大きさの基数は 2 です。 .It Fl i -フリーな i ノードの情報も表示します。 +フリーな inode の情報も表示します。 .It Fl k デフォルトの 512 バイトではなく、 1024 バイト (1K バイト) を 1 ブロックとしてディスク容量を表示します。 このオプションは、環境変数 .Ev BLOCKSIZE の指示を無効にします。 .It Fl l ローカルにマウントされたファイルシステムの情報のみを表示します。 .It Fl m デフォルトの代りに 1048576 バイト (1 M バイト) ブロックを使用します。 これは、環境の .Ev BLOCKSIZE 指定に優先することに注意してください。 .It Fl n .Fl n オプションが指定されると、 .Nm は、ファイルシステムから以前に得た情報を返します。 情報の問い合わせに長い時間を要するおそれのあるファイルシステムに対して 用いるオプションです。 このオプションを指定すると、 .Nm はファイルシステムに新しい情報を問い合わせず、 以前に取得しておいた最新ではない可能性のある情報を表示します。 .It Fl P デフォルトの代りに POSIX 準拠の 512 バイトブロックの出力を行います。 これは、環境の .Ev BLOCKSIZE 指定に優先することに注意してください。 .It Fl t 指示されたタイプのファイルシステムに関する情報のみ を表示します。 複数のタイプをコンマで区切ってリスト指定可能です。 リスト中のファイルシステムタイプの前に .Dq no を付けて、そのファイルシステムタイプに対しては動作 .Em しない ように指定可能です。 例えば、 .Nm コマンド: .Bd -literal -offset indent df -t nonfs,mfs .Ed .Pp は .Tn NFS および .Tn MFS 以外の全ファイルシステムを表示します。 システム上で利用可能なファイルシステムタイプは .Xr lsvfs 1 コマンドを使用して調べられます。 .El .Sh 環境変数 .Bl -tag -width BLOCKSIZE .It Ev BLOCKSIZE 環境変数 .Ev BLOCKSIZE が設定されていれば、指定された値をブロックサイズとしてブロック数を表示します。 .El .Sh バグ .Ar file_system または .Ar file が指示されてた場合は、 .Fl n オプションと .Fl t オプションは 無効になります。 .Sh 関連項目 .Xr lsvfs 1 , .Xr quota 1 , .Xr fstatfs 2 , .Xr getfsstat 2 , .Xr statfs 2 , .Xr getmntinfo 3 , .Xr fstab 5 , .Xr mount 8 , .Xr quot 8 .Sh 歴史 .Nm ユーティリティは .At v1 から登場しています。 diff --git a/ja_JP.eucJP/man/man1/find.1 b/ja_JP.eucJP/man/man1/find.1 index 8e3ab6898b..dea8e4e4d1 100644 --- a/ja_JP.eucJP/man/man1/find.1 +++ b/ja_JP.eucJP/man/man1/find.1 @@ -1,791 +1,791 @@ .\" 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. .\" .\" @(#)find.1 8.7 (Berkeley) 5/9/95 .\" %FreeBSD: src/usr.bin/find/find.1,v 1.23.2.14 2001/12/14 15:53:30 ru Exp % .\" .\" $FreeBSD$ .Dd May 3, 2001 .Dt FIND 1 .Os .Sh 名称 .Nm find .Nd ディレクトリツリーを再帰的に下ってファイルを捜す .Sh 書式 .Nm find .Op Fl H | Fl L | Fl P .Op Fl EXdsx .Op Fl f Ar pathname .Op Ar pathname ... .Ar expression .Sh 解説 .Nm は、 .Ar pathname に対してディレクトリツリーを再帰的に下って、 ツリー上の各ファイルについて .Ar expression (後に示す .Dq プライマリ と .Dq 演算子 から構成されます) で指定された処理を実行します。 .Pp オプションとしては以下のものがあります: .Bl -tag -width indent .It Fl E .Ic -regex および .Ic -iregex のオプションの後の正規表現を、 基本正規表現 (BRE) の代りに拡張 (最近の) 正規表現として解釈します。 .Xr re_format 7 マニュアルページは、両方のフォーマットを完全に解説しています。 .It Fl H .Ar file で指定したファイルがシンボリックリンクファイルだった場合、シンボリックリンク 自体ではなく、リンク先のファイルに関してファイル情報とファイルタイプ ( .Xr stat 2 参照) を使って .Ar expression の処理をするように指定します。 もしリンク先のファイルがなければ、 シンボリックリンク自体を処理の対象とします。 コマンドラインからの .Ar file で直接指定されたのではなく、 ディレクトリツリー上で見つかったシンボリックリンクファイルに関しては、 シンボリックリンク自体を処理の対象とします。 .It Fl L .Ar file で指定したファイルがシンボリックリンクファイルだった場合、シンボリックリンク 自体ではなく、リンク先のファイルに関してファイル情報とファイルタイプ ( .Xr stat 2 参照) を使って .Ar expression の処理をするように指定します。もしリンク先のファイルがな ければ、シンボリックリンク自体を処理の対象とします。 .It Fl P シンボリックリンク自体に関して ファイル情報とファイルタイプ ( .Xr stat 2 参照) を使って .Ar expression の処理をするように指定します。 これがデフォルトです。 .It Fl X .Xr xargs 1 と組み合わせて使うときのため、より安全に動作するようにします。もし .Xr xargs 1 によりデリミタ文字 (シングルクォート .Pq Dq Li " ' " 、ダブルクォート .Pq Dq Li " \*q " 、バックスラッシュ .Pq Dq Li \e 、スペース、タブ、改行) が含まれるファイル名 が使われた場合、診断メッセージを標準エラー出力に表示して、 そのファイル名をスキップします。 .It Fl d ファイルに対する処理順序を深さ優先の探索方式にします。 すなわち、ディレクトリ自体に 対する処理を行う前に、ディレクトリ内の個々のファイルに対して処理を 実行します。デフォルトでは、ディレクトリは最初に処理されます。 (デフォルトの方式は幅優先探索方式では .Em ない です。) .It Fl f Ar file 明示的にファイルを指定します。ファイル名の先頭が .Dq \- で始まっていたり、 あとで述べる .Ar expression の指定と混同してしまうようなファイル名を指定したりするときに使用します。 (ファイルはオプション直後のオペランドとしても指定可能です。) .It Fl s .Fl s オプションは、辞書編集上の順に、 すなわち各ディレクトリ内においてアルファベット順に、 ファイル階層を .Nm に辿らせます。 注: .Ql find -s と .Ql "find | sort" は異なった結果となる場合があります。 .It Fl x ディレクトリツリーを下って行くとき、最初に file のあったファイルシステムとは 異なるファイルシステム上のファイルに対する処理になる場合は、実行しないように します。 .El .Sh プライマリ .Bl -tag -width indent .It Ic -amin Ar n 最後にファイルがアクセスされた時刻と、 .Nm を起動した時刻との差 (1 分単位で切り上げます) が .Ar n 分であれば、真とします。 .It Ic -anewer Ar file .Ic -neweram と同じです。 .It Ic -atime Ar n 最後にファイルがアクセスされた時刻と、 .Nm を起動した時刻との差 (24 時間単位で切り上げます) が .Ar n 日であれば、真とします。 .It Ic -cnewer Ar file .Ic -newercm と同じです。 .It Ic -ctime Ar n 最後にファイルのステータスが変更された時刻と、 .Nm を起動した時刻の差 (24 時間単位で切り上げます) が .Ar n 日であれば、真とします。 .It Ic -delete 見付けたファイルやディレクトリを消去します。常に真を返します。 現在の作業ディレクトリから .Nm は再帰的にディレクトリツリーを下ります。 セキュリティ上の理由から、 .Dq Pa \&. からの相対パス名に .Dq Pa / 文字を含むファイル名のファイルを 消去しようとはしません。 このオプションにより暗示的に深さ優先の処理が指定されます。 .It Ic -depth 常に真です。 .Fl d オプションと同じです。 .Nm を .Xr cpio 1 と共に使用する場合、 普通ではないパーミッションのディレクトリ中のファイルを処理するために、 .Ic -depth が有用です。 .It Ic -empty 現在のファイルまたはディレクトリが空の場合、真となります。 .It Ic -exec Ar utility Op Ar argument ... ; .Ar utility で指定した名前のプログラムを実行し、終了コードが 0 の場合、真とします。 .Ar argument は、utility への引数として渡されます。 この指定は、最後に必ずセミコロン .Pq Dq Li \&; をつけてください。 utility もしくは argument の指定 のなかで .Dq Li {} が使われていた場合は、その部分が、現在 .Nm が対象としているファイルのパス名に置き換えられます。ただし、 .Ar utility が実行されるときのカレントディレクトリは、 .Nm が起動されたディレクトリのままです。 .Ar utility と .Ar arguments は、シェルのパターンと構造の更なる展開対象とはなりません。 .It Ic -execdir Ar utility Op Ar argument ... ; .Ic -execdir プライマリは .Ic -exec プライマリと同様ですが、 .Ar utility が現在のファイルを持つディレクトリにおいて実行される点が異なります。 文字列 .Dq Li {} に対して置換されるファイル名は適切ではありません。 .It Ic -flags Oo Cm - Ns | Ns Cm + Oc Ns Ar flags , Ns Ar notflags フラグは、シンボル名 ( .Xr chflags 1 参照) で指定します。 フラグの前に .Qq Li no を付けると ( .Qq Li nodump は除きます)、 .Ar notflags と呼ばれます。 .Ar flags にあるフラグは設定されていることが検査され、 .Ar notflags にあるフラグは設定されていないことが検査されます。 これは、設定されているモードビットのみをユーザが指定可能な .Ic -perm とは異なることに注意してください。 .Pp フラグの前にダッシュ .Pq Dq Li - が付く場合、このプライマリは、ファイルのフラグビットのうち少なくとも .Ar flags 中の全ビットが設定されていて、 .Ar notflags 中のどのビットも設定されていない場合に真になります。 フラグの前にプラス .Pq Dq Li + が付く場合、このプライマリは、ファイルのフラグビットのうち .Ar flags のいずれかのビットが設定されているか、 .Ar notflags のいずれかのビットが設定されていない場合に真になります。 どちらでもない場合、このプライマリは、 .Ar flags のビットがファイルのフラグビットに完全に適合し、 .Ar flags のいずれもが .Ar notflags に適合しない場合に真になります。 .It Ic -fstype Ar type 対象ファイルが格納されているファイルシステムのタイプが、 .Ar type で指定されたものである場合に真となります。 .Xr sysctl 8 コマンドを使用して、 システム上で利用可能なファイルシステムタイプを調べることができます: .Pp .Dl "sysctl vfs" .Pp さらに、2 つの 擬似タイプ .Dq Li local と .Dq Li rdonly があります。 前者は、 .Nm を実行しているシステム上に物理的にマウントされているファイルシステムです。 後者は、読み取り専用でマウントされているファイルシステムです。 .It Ic -group Ar gname ファイルが .Ar gname で指定したグループに属している場合、真になります。 .Ar gname が数字で、そのようなグループ名がない場合は、 .Ar gname をグループ ID として扱います。 .It Ic -iname Ar pattern .Ic -name に似ていますが、大文字小文字を区別せずにマッチします。 .It Ic -inum Ar n -ファイルの i ノード番号が +ファイルの inode 番号が .Ar n なら、真になります。 .It Ic -ipath Ar pattern .Ic -path に似ていますが、大文字小文字を区別せずにマッチします。 .It Ic -iregex Ar pattern .Ic -regex に似ていますが、大文字小文字を区別せずにマッチします。 .It Ic -links Ar n ファイルのリンク数が .Ar n なら、真になります。 .It Ic -ls このプライマリは常に真になります。対象となっているファイルの情報を -標準出力に出力します。出力する内容は i ノード番号、 +標準出力に出力します。出力する内容は inode 番号、 512 バイトブロックでのファイルの大きさ、 ファイルのパーミッション、ハードリンクの数、所有者、グループ、 バイトで表したファイルの大きさ、最後にファイルが修正された時刻、パス名です。 ファイルがブロック型もしくはキャラクタ型の特殊ファイルならば、 バイトで表したファイルの大きさの代わりにメジャー番号とマイナー番号を 出力します。ファイルがシンボリックリンクならば、 .Dq Li -> の後にリンク先のファイルのパス名を表示します。 フォーマットは .Bk -words .Nm ls Fl dgils .Ek の出力結果と同じです。 .It Ic -maxdepth Ar n 現在のファイルのツリーにおける深さが .Ar n 以下である場合、真になります。 .It Ic -mindepth Ar n 現在のファイルのツリーにおける深さが .Ar n 以上である場合、真になります。 .It Ic -mmin Ar n 最後にファイルが修正された時刻と、 .Nm を起動した時刻との差 (1 分単位で切り上げます) が .Ar n 分であれば、真とします。 .It Ic -mnewer Ar file .Ic -newer と同じです。 .It Ic -mtime Ar n 最後にファイルが修正された時刻と、 .Nm を起動した時刻との差(24 時間単位で切り上げます)が .Ar n 日であれば、真とします。 .It Ic -name Ar pattern 対象ファイルのパス名の最後のファイル名部分が .Ar pattern で指定したものとマッチするかどうかを調べ、マッチした場合は真になります。 .Ar pattern としては、シェルで使われるパターンマッチ 指定 ( .Dq Li \&[ , .Dq Li \&] , .Dq Li * , .Dq Li \&? ) を使用することができます。これらの文字は バックスラッシュ .Pq Dq Li \e を前において、パターンマッチ指定ではなく文字として 扱う事を明示することができます。 .It Ic -newer Ar file 対象ファイルの修正日付が、 .Ar file で指定したファイルのものより新しい場合は、真になります。 .It Ic -newer Ns Ar X Ns Ar Y Ar file 現在のファイルの最終アクセス時刻 .Ar ( X Ns = Ns Cm a ) ・ステータス修正時刻 .Ar ( X Ns = Ns Cm c ) ・内容修正時刻 .Ar ( X Ns = Ns Cm m ) が、 .Ar file の最終アクセス時刻 .Ar ( Y Ns = Ns Cm a ) ・ステータス修正時刻 .Ar ( Y Ns = Ns Cm c ) ・内容修正時刻 .Ar ( Y Ns = Ns Cm m ) より新しい場合は、真となります。 さらに .Ar Y Ns = Ns Cm t の場合、 .Ar file は代りに、 .Xr cvs 1 が理解する直接的な時刻指定として解釈されます。 .Ic -newermm は .Ic -newer と同じであることに注意してください。 .It Ic -nogroup 対象ファイルのグループが unknown の場合、真になります。 .It Ic -nouser 対象ファイルの所有者が unknown の場合、真になります。 .It Ic -ok Ar utility Op Ar argument ... ; .Ic -ok プライマリは .Ic exec とほぼ同じですが、 .Ar utility を実行するかどうかの確認をユーザに求め、端末にメッセージを出力します。 .Dq Li y 以外の返答をした場合は、 コマンドは実行されず、 .Ic -ok 式の値は偽になります。 .It Ic -okdir Ar utility Op Ar argument ... ; .Ic -okdir プライマリは、 .Ic -execdir プライマリと同様ですが、 .Ic -ok プライマリの解説に該当する部分が異なります。 .It Ic -path Ar pattern 対象ファイルのパス名が、 .Ar pattern で指定したものとマッチす るかどうかを調べます、マッチした場合は真になります。 .Ar pattern としては、シェルで使われるパターンマッチ指定 ( .Dq Li \&[ , .Dq Li \&] , .Dq Li * , .Dq Li \&? ) を使用することができます。これらの文字は バックスラッシュ .Pq Dq Li \e を前において、パターンマッチ指定ではなく文字として 扱う事を明示することができます。 .Pq Dq Li / は、そのままパスのディレクトリの区切りにマッチします。 .It Ic -perm Oo Cm - Ns | Ns Cm + Oc Ns Ar mode ファイルのモードを、 .Ar mode と比較します。 .Ar mode は、シンボル 形式 ( .Xr chmod 1 参照) もしくは 8 進数形式で指定します。 .Ar mode がシンボル形式の場合は、 .Ar mode は 00000 から開始してパーミッションのセットとクリアを行います。 (プロセスのファイル生成マスクとは無関係です。) .Ar mode が 8 進数形式の場合は、 ファイルのモードビットのうち、07777 .Pq Dv S_ISUID | S_ISGID | S_ISTXT | S_IRWXU | S_IRWXG | S_IRWXO の部分が比較対象になります。 .Ar mode の最初にダッシュ .Pq Dq Li - を指定した場合は、 .Ar mode でセットされているすべてのビットが ファイルのモードでもセットされていれば、このプライマリは真となります。 .Ar mode の最初にプラス .Pq Dq Li + を指定した場合は、 .Ar mode でセットされているビットのどれかがファイルのモードでもセットされていれば、 このプライマリは真となります。 どちらでもない場合、ファイルのモードと .Ar mode が完全に一致した場合にのみ真となります。 なお、 シンボル形式でモード指定をする場合は、少なくとも最初がダッシュ .Pq Dq Li - にならない ようにする必要があります。 .It Ic -print このプライマリは常に真になります。 対象となっているファイルのパス名を標準出力に出力して改行します。 .Ic -exec , -ls , -print0 , .Ic -ok のどのプライマリも指定されなかった場合は、 与えられた式 given expression は .Cm \&( Ar "given expression" Cm \&) Ic -print で置き換えられます。 .It Ic -print0 .Ic -print とほぼ同じですが、標準出力に対象となっているファイルのパス名を出力 したあと、改行ではなく、 .Tn ASCII NUL 文字 (文字コード 0) を出力します。 .It Ic -prune このプライマリは常に真になります。 対象となっているファイル配下のディレクトリに下りないようにします。 .Fl d オプションが指定されている場合は、 .Ic -prune の指定は無効になります。 .It Ic -regex Ar pattern ファイルのパス全体が、正規表現 .Ar pattern にマッチする場合、真になります。 ファイル名 .Dq Pa ./foo/xyzzy にマッチさせるには、 正規表現 .Dq Li ".*/[xyz]*" や .Dq Li ".*/foo/.*" が使えますが、 .Dq Li xyzzy や .Dq Li /foo/ は使えません。 .It Ic -size Ar n Ns Op Cm c ファイルサイズを 512 バイトのブロック単位で数えたとき (端数は切り上げ)、 .Ar n ブロックであれば真になります。 .Ar n のあとに .Cm c が指定されていた場合は、ファイルサイズが .Ar n バイト (文字) であれば真になります。 .It Ic -type Ar t ファイルタイプが .Ar t で指定されたタイプに一致すれば真になります。 タイプとして、次のような指定が可能です: .Pp .Bl -tag -width indent -compact .\" jpman project では special file を「特殊ファイル」と訳している。 .\" これにあわせて block special を「ブロックスペシャル」ではなく .\" 「ブロック特殊」とするのは違和感があるので、「ファイル」を補った。 .\" Kazuo Horikawa 1999/03/10 .It Cm b ブロック型特殊ファイル .It Cm c キャラクタ型特殊ファイル .It Cm d ディレクトリ .It Cm f 普通のファイル .It Cm l シンボリックリンク .It Cm p FIFO .It Cm s ソケット .El .It Ic -user Ar uname ファイルの所有者が、 .Ar uname で指定されたユーザと一致すれば真になります。もし .Ar uname が数字で、そのようなユーザ名がなければ、 ユーザ ID が指定されたものとして扱います。 .El .Pp なお、数字を引数にとるプライマリは、 数字の前にプラス .Pq Dq Li + およびマイナス .Pq Dq Li \- をつけることができます。 それぞれ .Dq n より大 および .Dq n より小 の意味になり、 .Dq 正確に n という意味ではなくなります。 .Sh 演算子 以下の演算子を使って、プライマリを組み合わせることができます。 演算子は優先度が下がる順番で示されています。 .Pp .Bl -tag -width "( expression )" -compact .It Cm \&( Ar expression Cm \&) もし、括弧内の .Ar expression が真なら、真になります。 .Pp .It Cm \&! Ar expression 単項否定演算子 ( .Tn NOT ) です。 .Ar expression が偽なら、真となります。 .Pp .It Ar expression1 Cm -and Ar expression2 .It Ar expression1 expression2 論理積 ( .Tn AND ) 演算子です。 .Ar expression1 と .Ar expression2 の両方とも真のとき、真になります。 もし .Ar expression1 が偽なら、 .Ar expression2 は実行されません。 .Ic -and を書かずに、単に 2 つの expression を並べて .Pp .Ar expression1 expression2 .Pp と書いても同じです。 .Pp .It Ar expression1 Cm -or Ar expression2 論理和 ( .Tn OR ) 演算子です。 .Ar expression1 か .Ar expression2 のどちらか一方でも真であれば、真になります。もし .Ar expression1 が真なら、 .Ar expression2 は実行されません。 .El .Sh 使用例 コマンドラインからのタイプ例です。 .Bl -tag -width indent .It Li "find / \e! -name \*q*.c\*q -print" ファイル名の終わりが .Pa \&.c でない全ファイルを表示します。 .It Li "find / -newer ttt -user wnj -print" .Pa ttt というファイルより新しく 所有者が .Dq wnj である全ファイルを表示します。 .It Li "find / \e! \e( -newer ttt -user wnj \e) -print" .Pa ttt というファイルより古く所有者が .Dq wnj であるという条件が成立しない、全ファイルを表示します。 .It Li "find / \e( -newer ttt -or -user wnj \e) -print" .Pa ttt というファイルより新しいか、 所有者が .Dq wnj である、全ファイルを表示します。 .It Li "find . -newerct '1 minute ago' -print" inode 修正時刻が現在から 1 分以内の全ファイルを表示します。 .El .Sh 関連項目 .Xr chflags 1 , .Xr chmod 1 , .Xr cvs 1 , .Xr locate 1 , .Xr whereis 1 , .Xr which 1 , .Xr stat 2 , .Xr fts 3 , .Xr getgrent 3 , .Xr getpwent 3 , .Xr strmode 3 , .Xr re_format 7 , .Xr symlink 7 .Sh 規格 .Nm ユーティリティの文法は .St -p1003.2 の仕様で決められた文法のスーパセットです。 全 1 文字オプションと .\" .Ic -iname , -inum , -iregex , -print0 , -delete , -ls , .\" ja-groff-0.100_3 で整形できないためマクロ使用方法を変えています .Ic -iname , .Ic -inum , .Ic -print0 , .Ic -delete , .Ic -ls , .Ic -regex のプライマリは .St -p1003.2 の拡張です。 .Pp 昔は .Fl d , h , x のオプションは それぞれ .Ic -depth , -follow , -xdev のプライマリを 用いて実装されていました。 これらのプライマリは常に真に評価されていました。 これらのプライマリは 探索が始まる前に効果を与える本当のグローバル変数であったので、 いくつかの合法的な expression が予期しない結果となりました。 一例として .Ic -print Cm -o Ic -depth の expression があります。 .Ic -print が常に真に評価されるため 標準の評価の順番では .Ic -depth は決して評価されないはずですが、 そうではありませんでした。 .Pp 演算子の .Cm -or は .Cm -o として実装されていました。 演算子の .Cm -and は .Cm -a として実装されていました。 .Pp 昔の実装では .Ic exec と .Ic -ok のプライマリでは、 tility 名やその引数中において、 空白以外の文字が前後に続く .Dq Li {} を置き換えませんでした。 このバージョンでは utility 名やその引数のどの場所に .Dq Li {} が現れても 置き換えます。 .Pp .Fl E オプションは、 .Xr grep 1 および .Xr sed 1 の類推から実装されました。 .Sh バグ .Nm によって使われる特殊文字は多くのシェルにとっても 特殊文字です。 特に .Dq Li * , .Dq Li \&[ , .Dq Li \&] , .Dq Li \&? , .Dq Li \&( , .Dq Li \&) , .Dq Li \&! , .Dq Li \e , .Dq Li \&; は、 シェルからエスケープされなくてはならないでしょう。 .Pp オプションとファイル名との間および ファイル名と .Ar expression との間を区切るデリミタが存在しませんので、 ファイル名にオプションと間違えるようなもの ( .Pa -xdev のようなもの) や、 .Ar expression と間違えるようなもの ( .Pa \&! のようなもの) を指定することは難しいです。 このようなファイル名を指定する場合は .Fl f オプションを使うか、 .Xr getopt 3 で使われるオプション指定の終了記号 .Dq Fl Fl を使用します。 .Pp .Ic -delete プライマリは、ファイルシステムツリーの検索順序に影響する 他のオプションとは十分には連係しません。 .Sh 歴史 .Nm コマンドは .At v1 から登場しました。 diff --git a/ja_JP.eucJP/man/man1/ls.1 b/ja_JP.eucJP/man/man1/ls.1 index e8bfcad34f..b339100143 100644 --- a/ja_JP.eucJP/man/man1/ls.1 +++ b/ja_JP.eucJP/man/man1/ls.1 @@ -1,547 +1,547 @@ .\" 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.14 2002/01/09 13:30:24 ru Exp % .\" .\" $FreeBSD$ .Dd July 29, 1994 .Dt LS 1 .Os .Sh 名称 .Nm ls .Nd ディレクトリの内容のリストを表示する .Sh 書式 .Nm .Op Fl ABCFGHLPRTWabcdfgiklnoqrstu1 .Op Ar .Sh 解説 .Nm は .Ar file で指定されたファイル名およびオプションの指定にしたがって、 ファイルに関する各種の情報を表示します。なお、 .Ar file としてディレクトリが指定された場合は、そのディレクトリ配下のファイル に関する情報を表示します。 .Pp .Ar file が指定されなかった場合は、カレントディレクトリのファイルを表示します。 表示はファイル名のアルファベット順にソートされます。ただし、 .Ar file としてディレクトリファイルとそれ以外のファイルを混在して指定した 場合は、ディレクトリ以外のファイルが先に表示され、その後 ディレクトリ配下のファイルが表示されます。 .Pp オプションとしては、以下のものがあります。 .Bl -tag -width indent .It Fl A .Pa \&. と .Pa \&.. を除く全てのエントリを表示します。スーパユーザの場合は、通常 このオプションがセットされています。 .It Fl B ファイル名中の非グラフィック文字を強制的に .Li \e Ns Va xxx の形式で表示します。 .Va xxx は文字の数値であり 8 進数です。 .It Fl C マルチカラム形式で出力します。端末への出力の場合は、 これがデフォルトになります。 .It Fl F それぞれのパス名の最後に、ディレクトリならばスラッシュ .Pq Ql / 、実行可能ファイルならばアスタリスク .Pq Ql * 、シンボリックリンクならばアットマーク .Pq Ql @ 、ソケットファイルならば等号 .Pq Ql = 、 .Tn FIFO ならば縦棒 .Pq Ql \&| をつけて表示します。 .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 ドット .Pq Pa \&. で始まるファイルも含めて表示します。 .It Fl b .Fl B と同様ですが、可能であれば .Tn C のエスケープコードを使用します。 .It Fl c ファイルソートや時刻出力の際、ファイルステータスの最終変更日付を使用します。 .It Fl d 引数がディレクトリの場合、ディレクトリそのものの情報について表示します (再帰的に表示しません)。 .It Fl f ソートせずに表示します .It Fl g このオプションは、 .Bx 4.3 との互換性のためにだけ利用すべきです。 これは、 ロングフォーマットオプション .Pq Fl l を使ってグループの名前を表示したい時に使います。 .It Fl i -各ファイルについて、i ノード番号を表示します。 +各ファイルについて、inode 番号を表示します。 .It Fl k .Fl s オプションとともに使用し、ファイルサイズを ブロック単位ではなく K バイト単位で表示します。 このオプションは環境変数 .Ev BLOCKSIZE に優先します。 .It Fl l ( .Dq エル (L) の小文字)。 ファイルの詳細情報をロングフォーマットで表示します (下記参照)。 端末に出力している場合、ロングフォーマットの前の行に、全ファイル のサイズの合計値を表示します。 .It Fl n 長い .Pq Fl l 出力において、 ユーザとグループを名前に変換せずに、 ユーザとグループの ID を数値で表示します。 .It Fl o .Pq Fl l オプションによる詳細情報に、ファイルフラグも含めて表示します。 .It Fl q ファイル名に表示できない文字が使われていたとき、 .Ql \&? として表示します。 端末に表示するときは、デフォルトでこの指定になります。 .It Fl r 辞書式順序で逆順または時刻の古い順にソートします。 .It Fl s 各ファイルがファイルシステム上で実際に占有している ブロック数 (512 バイト単位) を表示します。 ブロックの一部だけ占有しているものも整数値に切り上げられます。 端末に表示するときは、表示の先頭行に、全ファイルのサイズの合計値 を表示します。 環境変数 .Ev BLOCKSIZE は単位サイズ 512 バイトに優先します。 .It Fl t ファイルをアルファベット順に表示する前に、ファイルの最終修正日時の順 (新しいものほど先にくる) にソートします。 .It Fl u .Pq Fl t オプションや .Pq Fl l オプションで、ファイルの最終修正日時の代わりに、ファイルの最終アクセス日時を 使用します。 .It Fl 1 (数字の .Dq 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 Li -> によって表示されます。 .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 の出力を大きさ順に並べる方法を示します ( .Nm がこのコマンドの別オプションを必要としない理由をも示します)。 .Pp .Dl "ls -l | sort -n +4" .Pp さらに、 .Xr sort 1 への .Fl r フラグを使用することにより、結果を大から小へ (逆順に) 並べられます。 .Sh 診断 .Ex -std .Sh 環境変数 以下の環境変数は .Nm の動作に影響を与えます: .Bl -tag -width ".Ev CLICOLOR_FORCE" .It Ev BLOCKSIZE ブロック数の表示を行う際、1 ブロックのサイズとして環境変数 .Ev BLOCKSIZE で指定された値が使用されます ( .Fl s オプション参照)。 .It Ev CLICOLOR \*[Ai] カラーシーケンスを使用し、ファイルタイプを区別します。 後述の .Ev LSCOLORS を参照してください。 .Fl F で前述したもの加え、更なる属性 (setuid ビット設定等) もまた表示されます。 カラー化は、適切な .Xr termcap 5 ケーパビリティを持つ端末タイプに依存します。 デフォルトの .Dq Li cons25 コンソールは、適切なケーパビリティを持っていますが、例えば .Xr xterm 1 でカラー表示したい場合には .Ev TERM 変数を .Dq Li 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 によってカラー出力が有効であるときに、 どの色をどの属性に使用するかを指定します。 この文字列は書式 .Ar f Ns Ar b の結合であり、ここで .Ar f は前景色であり、 .Ar 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 以上が標準 \*[Ai] カラーです。 実際の表示は、端末の色の扱いに依存して異なるでしょう。 .Pp 属性の順番は次の通りです: .Pp .Bl -enum -offset indent -compact .It ディレクトリ .It シンボリックリンク .It ソケット .It パイプ .It 実行形式 .It ブロックスペシャル .It キャラクタスペシャル .It setuid ビットが設定された実行形式 .It setgid ビットが設定された実行形式 .It 他者 (others) が書き込み可能なディレクトリであり、 スティッキービット付き。 .It 他者 (others) が書き込み可能なディレクトリであり、 スティッキービット無し。 .El .Pp デフォルトは .Qq "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 sort 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/tail.1 b/ja_JP.eucJP/man/man1/tail.1 index aa4128c009..e5da8533ee 100644 --- a/ja_JP.eucJP/man/man1/tail.1 +++ b/ja_JP.eucJP/man/man1/tail.1 @@ -1,154 +1,154 @@ .\" Copyright (c) 1980, 1990, 1991, 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. .\" .\" @(#)tail.1 8.1 (Berkeley) 6/6/93 .\" %FreeBSD: src/usr.bin/tail/tail.1,v 1.5.2.3 2001/08/16 13:17:05 ru Exp % -.\" $FreeBSD: doc/ja_JP.eucJP/man/man1/tail.1,v 1.10 2001/08/17 06:18:10 horikawa Exp $ +.\" $FreeBSD$ .\" .Dd June 6, 1993 .Dt TAIL 1 .Os .Sh 名称 .Nm tail .Nd ファイルの最後の部分を表示する .Sh 書式 .Nm .Oo .Fl F | .Fl f | .Fl r .Oc .Oo .Fl b Ar number | .Fl c Ar number | .Fl n Ar number .Oc .Op Ar .Sh 解説 .Nm は、 .Ar file が指定されていればそのファイルを、 指定されていなければ標準入力を読み込み、 バイト数、行数、もしくは、512 バイト単位のブロック数で指定された位置 以降を表示します。 .Pp .Ar number に ``+'' をつけた場合は、入力の先頭からの指定となります。たとえば、 .Dq -c +2 と指定すれば 2 バイト目から表示されます。 .Ar number に ``-'' もしくは符号をつけていない場合は、入力の最後からの相対位置の 指定となります。たとえば、 .Dq -n 2 では最後の 2 行が表示されます。デフォルトでは .Dq -n 10 , で、入力の最後から 10 行分が表示されます。 .Pp オプションとしては以下のものがあります: .Bl -tag -width Ds .It Fl b Ar number 512 バイト単位のブロック数で指定します。 .It Fl c Ar number バイト単位で指定します。 .It Fl f ファイルの最後に達しても終了せず、入力に追加されるデータを待つようにします。 .Fl f オプションは、標準入力がパイプの場合は無視されますが、 FIFO の場合は無視されません。 .It Fl F .Fl F オプションは .Fl f オプションを暗示しますが、 追跡されるファイルの名前変更やローテートをチェックします。 -読み込みを行っているファイルの i ノード番号が新しくなっていることを +読み込みを行っているファイルの inode 番号が新しくなっていることを .Nm が検知した場合、ファイルをクローズして再オープンします。 ファイルではなく標準入力読み込み時には .Fl F オプションは無視されます。 .It Fl n Ar number 行単位で指定します。 .It Fl r 行ごとに、逆順に表示します。また、 .Fl b , .Fl c , .Fl n の各オプションの意味も変わり、 それぞれ表示するブロック数、バイト数、行数の指定になります。 デフォルトでは、入力したものがすべて逆に表示されます。 .El .Pp もし一つ以上のファイルが指定されていると、それぞれのファイルを表示する前に .Dq ==> XXX <== という形式のヘッダを表示します。 ただし .Dq XXX はファイル名です。 .Sh 診断 .Ex -std .Sh 関連項目 .Xr cat 1 , .Xr head 1 , .Xr sed 1 .Sh 規格 .Nm ユーティリティは .St -p1003.2-92 のスーパセットであると考えられています。特に .Fl F , .Fl b , .Fl r オプションは拡張されたものです。 .Pp 以前の UNIX とのオプション書式の互換は保たれています。ただし、 .Fl r オプションが .Fl b , .Fl c , .Fl n 修飾オプションとなったため、完全には互換はありません。以前の .Nm では ``-4cr'' としても、 .Fl c が無視されて最後の 4 行が逆順に表示されましたが、本バージョンの .Nm では ``-r -c 4'' と解釈され、最後の 4 バイトが表示されます。 .Sh 歴史 .Nm コマンドは .At v7 から登場しました。 diff --git a/ja_JP.eucJP/man/man1/tcpdump.1 b/ja_JP.eucJP/man/man1/tcpdump.1 index f0712ff34f..49b5e9f24b 100644 --- a/ja_JP.eucJP/man/man1/tcpdump.1 +++ b/ja_JP.eucJP/man/man1/tcpdump.1 @@ -1,1763 +1,1763 @@ -.\" @(#) $Header: /home/ncvs/doc/ja_JP.eucJP/man/man1/tcpdump.1,v 1.16 2001-07-29 22:12:31 horikawa Exp $ (LBL) +.\" @(#) $Header: /home/ncvs/doc/ja_JP.eucJP/man/man1/tcpdump.1,v 1.17 2002-01-19 04:13:35 horikawa Exp $ (LBL) .\" .\" Copyright (c) 1987, 1988, 1989, 1990, 1991, 1992, 1994, 1995, 1996, 1997 .\" The Regents of the University of California. All rights reserved. .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that: (1) source code distributions .\" retain the above copyright notice and this paragraph in its entirety, (2) .\" distributions including binary code include the above copyright notice and .\" this paragraph in its entirety in the documentation or other materials .\" provided with the distribution, and (3) all advertising materials mentioning .\" features or use of this software display the following acknowledgement: .\" ``This product includes software developed by the University of California, .\" Lawrence Berkeley Laboratory and its contributors.'' 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 ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED .\" WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF .\" MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. .\" .\" %FreeBSD: src/contrib/tcpdump/tcpdump.1,v 1.8.2.1 2001/07/26 22:30:02 fenner Exp % .\" -.\" $FreeBSD: doc/ja_JP.eucJP/man/man1/tcpdump.1,v 1.14 2001/05/27 01:03:56 horikawa Exp $ +.\" $FreeBSD$ .TH TCPDUMP 1 "3 January 2001" .SH 名称 tcpdump \- ネットワーク上のトラフィックデータのダンプ .SH 書式 .na .B tcpdump [ .B \-adeflnNOpqRStvxX ] [ .B \-c .I count ] [ .B \-F .I file ] .br .ti +8 [ .B \-i .I interface ] [ .B \-m .I module ] [ .B \-r .I file ] [ .B \-s .I snaplen ] .br .ti +8 .br .ti +8 [ .B \-T .I type ] [ .B \-w .I file ] .br .ti +8 [ .B \-E .I algo:secret ] [ .I expression ] .br .ad .SH 解説 .LP \fItcpdump\fP は、オプションで指定されたネットワークインタフェース上で 取得可能なパケットのヘッダのうち \fIexpression\fP にマッチするものを出力 します。 .LP .B SunOS 上の nit ないし bpf の場合: .I tcpdump を実行するには、 .I /dev/nit ないし .IR /dev/bpf* への読み込みアクセス権が必要です。 .B Solaris 上の dlpi の場合: .IR /dev/le 等のネットワーク仮想デバイスへの読み書きアクセス権が必要です。 .B HP-UX 上の dlpi の場合: 使用者が root であるか、 プログラムが root に setuid されてインストールされている場合のみ実行可能です。 .B IRIX 上の snoop の場合: 使用者が root であるか、 プログラムが root に setuid されてインストールされている場合のみ実行可能です。 .B Linux の場合: 使用者が root であるか、 プログラムが root に setuid されてインストールされている場合のみ実行可能です。 .B Ultrix および Digital UNIX の場合: スーパユーザが、 .IR pfconfig (8) を用いて promiscuous-mode での操作を許可していれば、どのユーザも .BR tcpdump を起動できます。 .B BSD の場合: .IR /dev/bpf* への読み込みアクセス権が必要です。 .SH オプション .TP .B \-a ネットワークアドレスとブロードキャストアドレスを名前に変換しようとします。 .TP .B \-c \fIcount\fP で指定した数のパケットを受信した後に終了します。 .TP .B \-d 解釈されたパケットマッチングコードを読みやすい形に整形した後、 標準出力にダンプして停止します。 .TP .B \-dd .B C プログラムの断片の形でパケットマッチングコードをダンプします。 .TP .B \-ddd (先頭に個数を付加した) 十進数の形でパケットマッチングコードをダンプします。 .TP .B \-e 各ダンプ行ごとに、リンクレベルのヘッダを出力します。 .TP .B \-E \fIalgo:secret\fP を、IPsec ESP パケットの解読に使用します。 アルゴリズムは \fBdes-cbc\fP, \fB3des-cbc\fP, \fBblowfish-cbc\fP, \fBrc3-cbc\fP, \fBcast128-cbc\fP, \fBnone\fP のいずれかです。 デフォルトは \fBdes-cbc\fP です。 パケット解読能力は、 \fItcpdump\fP が暗号機能付きでコンパイルされた場合のみ存在します。 \fIsecret\fP は、ESP 秘密鍵の ASCII テキストです。 現状、任意の 2 進数値を使用できません。 本オプションは、RFC1827 ESP ではなく、RFC2406 ESP を仮定します。 本オプションは、デバッグ専用であり、 本当の「秘密」鍵に対する使用は勧められません。 IPset 秘密鍵をコマンドラインに置くと、 .IR ps (1) 等によって他者に見えてしまいます。 .TP .B \-f 外部ホストの IP アドレスについては、シンボルでなく数値で表示します。 (本オプションは、Sun の yp サーバに重大な障害が発生するのを回避するこ とを意図しています。\(em 通常は、Sun の yp サーバは、ローカルに存在しない IP アドレスを永久に変換しつづけてハングします。) .TP .B \-F フィルタの表現として、\fIfile\fP に記述してある内容を用います。 コマンドラインで指定された追加表現は、無視されます。 .TP .B \-i \fIinterface\fP で指定されたインタフェースを監視します。 指定されない場合には、\fItcpdump\fP はシステムインタフェースリストの中で 最も小さい番号の稼働中のものを検索し、監視するインタフェースとして設定 します (ループバックインタフェースは検索しません)。 この動作は、最初にインタフェースが選択された時点で終了します。 .IP 2.2 以降のカーネルの Linux システムでは、 .I interface 引数 ``any'' を指定して全インタフェースからのパケットを捕捉可能です。 ``any'' デバイスでの捕捉は、promiscuous-mode ではないことに注意してください。 .TP .B \-l 標準出力を行バッファリングにします。データを捕捉しつつ、 そのデータを見たい場合には、本オプションは有効です。例えば .br ``tcpdump\ \ \-l\ \ |\ \ tee dat'' や ``tcpdump\ \ \-l \ \ > dat\ \ &\ \ tail\ \ \-f\ \ dat'' のように使用します。 .TP .B \-n アドレス (IP アドレスやポート番号など) を名前に変換しません。 .TP .B \-N ホスト名のうち、ドメイン名の表示をしません。例えば、本オプションを 指定すると、``nic.ddn.mil'' とは表示されず、かわりに ``nic'' とだけ表示し ます。 .TP .B \-m SMI MIB モジュールの定義を、ファイル \fImodule\fR からロードします。 複数の MIB モジュールを \fItcpdump\fP にロードするために、 本オプションを複数回使用可能です。 .TP .B \-O パケットマッチングコードのオプティマイザを動かしません。本オプションは、 オプティマイザ中のバグを疑う場合にのみ有効なものです。 .TP .B \-p ネットワークインタフェースを、promiscuous mode に設定しません。 ネットワークインタフェースは、何らかの理由により promiscuous mode に設定 されることもあり得るということに注意してください。ゆえに `-p' オプションは、`ether host {local-hw-addr} or ether broadcast' の短縮形として使うことは出来ません。 .TP .B \-q 素早い (静かな?) 出力を行ないます。出力する行を短くするために、通常出力 されるプロトコル情報の一部は出力されません。 .TP .B \-r パケットを、\fIfile\fR で指定したファイル (-w オプションで作成されます) か ら読み込みます。\fIfile\fR として``-''が指定された場合は標準入力が用いら れます。 .TP .B \-s デフォルトの 68 バイト (SunOS の NIT では最小値は実際には 96) ではなくて、 \fIsnaplen\fP だけのデータを各パケットから取得します。68 バイトという データ長は、IP, ICMP, TCP, UDP のパケットを取得する分には十分ですが、 ネームサーバや NFS のパケットについてはプロトコル情報が切り詰められるこ とがあります (これについては、以後の説明を参照して下さい)。 スナップショットが限られた量しかとれずに切り 詰められたパケットは、出力に ``[|\fIproto\fP]'' という文字列がいっしょ に表示されます。 \fIproto\fP は、切り詰めが行われたプロトコルレベルの名 前です。大きなスナップショットをとる場合には、それだけパケット処理の時 間がかかるということと、パケットバッファリング用のバッファの量が減ると いうことに注意してください。これにより、パケットが消失するかもしれませ ん。\fIsnaplen\fP の大きさを、必要なプロトコル情報を取得できる最小の値に とどめるようにしてください。 \fIsnaplen\fP を 0 に設定すると、 パケット全体の捕捉に必要な長さを使用することを意味します。 .TP .B \-T "\fIexpression\fP" により選択されたパケットを強制的に \fItype\fR で 指定されたタイプと解釈します。有効なタイプは、 \fBcnfp\fR (Cisco NetFlow プロトコル), \fBrpc\fR (リモートプロシージャコール) \fBrtp\fR (リアルタイムアプリケーションプロトコル) \fBrtcp\fR (リアルタイムアプリケーション制御プロトコル) \fBsnmp\fR (シンプルネットワークマネージメントプロトコル) \fBvat\fR (ビジュアルオーディオツール) \fBwb\fR (ディストリビューテッドホワイトボード) です。 .TP .B \-R ESP/AH パケットが古い仕様 (RFC1825 から RFC1829) に基いているものと仮定します。 指定すると、\fItcpdump\fP はリレー防止フィールドを表示しません。 ESP/AH 仕様にはプロトコルバージョンフィールドがありませんので、 \fItcpdump\fP は ESP/AH プロトコルのバージョンを推定できません、 .TP .B \-S TCP シーケンス番号を相対番号ではなく、絶対番号で出力します。 .TP .B \-t 各ダンプ行のタイムスタンプを出力しません。 .TP .B \-tt 各ダンプ行毎にタイムスタンプを人間が読みやすい形に変換せずに出力します。 .TP .B \-ttt 直前のダンプ行と現在のダンプ行の差分 (マイクロ秒単位) を表示します。 .TP .B \-tttt 各ダンプ行で、デフォルト書式でタイムスタンプを表示し、その前に日付を付けます。 .TP .B \-v (少しではありますが) 出力情報を増やします。例えば、IP パケット中の TTL、識別、全長、IP パケット中のオプションが表示されます。 追加のパケットの完全性確認が有効になります。 これは例えば IP および ICMP のヘッダのチェックサムです。 .TP .B \-vv さらに多くの情報を出力します。例えば、NFS の返答パケットの追加 フィールドを出力します。 .TP .B \-vvv もっと多くの情報を出力します。例えば、telnet \fBSB\fP ... \fBSE\fP オプションが完全に表示されます。 .B \-X 付きでは、telnet オプションが 16 進数で表示されます。 .TP .B \-w 受信した生パケットを、解析したり画面に出力したりせずに \fIfile\fR で指定 したファイルに出力します。本オプションを用いて取得したパケットは \-r オプションを用いることで情報を見ることができます。\fIfile\fR で指定す るファイル名が ``-'' の場合には、標準出力を用います。 .TP .B \-x リンクレベルヘッダを除いた各パケットの内容を 16 進出力します。 パケットサイズが .I snaplen バイトより小さい場合にはパケットの全部の内容を、それ以外の場合には、 .I snaplen バイト分のデータをパケットごとに出力します。 .TP .B \-X 16 進出力時に、ASCII もまた表示します。 .B \-x もまた指定されると、パケットが 16 進数と ASCII の組み合わせで表示されます。 新規プロトコルを解析するのに非常に便利です。 .B \-x が指定されないと、 一部のパケットの一部が16 進数と ASCII の組み合わせで表示されます。 .IP "\fI expression\fP" .RS ダンプするパケットを選択します。\fIexpression\ が指定されない場合には、 ネットワーク上のすべてのパケットがダンプ対象になります。それ以外の場 合には、\fIexpression\fP の条件が真になるパケットのみダンプします。 .LP \fIexpression\fP は、1 つ以上の .I プリミティブ から成り立ちます。 プリミティブは通常 1 つ以上の限定子のついた .I id (名前もしくは番号) から成り立ちます。限定子は、3 種類あります。 .IP \fI型\fP 限定子は id 名や番号が参照するものの種類を指します。型には .BR host , .BR net , .B port があります。例えば、`host foo', `net 128.3', `port 20' のように用います。 型限定子が指定されない場合には、 .B host が指定されたものとみなされます。 .IP \fI方向\fP 限定子は、 パケットが .I id へ出ていく方向か、 .I id から来る方向か、 もしくはその両方かという、特定の転送方向を指定します。 指定可能な方向は、 .BR src , .BR dst , .BR "src or dst" , .BR "src and dst" の 4 つです。 例えば、`src foo', `dst net 128.3', `src or dst port ftp-data' のように 指定します。もし方向限定子が指定されない場合には、 .B "src or dst" が指定されたものとみなします。 `null' リンクレイヤ (つまり、slip などポイント・トゥ・ポイント・プロトコル) では、 必要な方向を指定するのに .B inbound や .B outbound 限定子を用いる事ができます。 .IP \fIプロトコル\fP 限定子は、特定のプロトコルに一致するパケットのみに制限します。 プロトコルとして指定可能なものは、 .BR ether , .BR fddi , .BR tr , .BR ip , .BR ip6 , .BR arp , .BR rarp , .BR decnet , .BR lat , .BR sca , .BR moprc , .BR mopdl , .BR iso , .BR esis , .BR isis , .BR icmp , .BR icmp6 , .B tcp , .BR udp です。 例えば `ether src foo', `arp net 128.3', `tcp port 21' のように使用 します。もしプロトコル限定子が指定されない場合には、上記のプロトコルの うち、型に矛盾しないすべてのものが指定されたものとみなします。 例えば `src foo' は、`(ip or arp or rarp) src foo' (これが正しい形式でな い事を除いて) と、`net bar' は `(ip or arp or rarp) net bar' と同義であ り、また `port 53' は `(tcp or udp) port 53' と同義です。 .LP [`fddi' は実際には `ether' の別名になっています。解析ではこれらを「特定の ネットワークインタフェースで使われるデータリンクレベル」を意味するもの として同様に扱います。FDDI ヘッダはイーサネットに似た始点と終点 アドレスを含み、そしてしばしばイーサネットに似たパケット型を含むので、 イーサネットのフィールドと同じように FDDI のフィールドをフィルタリング できます。FDDI ヘッダは他のフィールドも含みますが、フィルタ表現の中で 明示的にそれらを指定することはできません。 .LP 同様に、`tr' は `ether' の別名です。 直前の段落における FDDI ヘッダに関する記述は、 Token Ring ヘッダにも適用されます。] .LP 上記に追加して、いくつかの特別な「プリミティブ」キーワードがあります。 これらのキーワードは .BR gateway , .BR broadcast , .BR less , .B greater と算術演算表現 です。これらの後ろにパターンが続く事はありません。 プリミティブキーワードについては後述します。 .LP より複雑なフィルタの表現は、プリミティブの結合に .BR and , .BR or , .B not を用いることで実現されます。例えば、 `host foo and not port ftp and not port ftp-data' です。 タイプ量を少なくするために、同一の限定子リストは、省略することが可能です。 例えば、`tcp dst port ftp or ftp-data or domain' は、 `tcp dst port ftp or tcp dst port ftp-data or tcp dst port domain' と同じ意味です。 .LP 許されるプリミティブは、以下の通りです。 .IP "\fBdst host \fIhost\fR" IPv4/v6 パケットの終点フィールドが \fIhost\fP で指定したものの場合に、 真となります。 \fIhost\fP は、ホスト名もしくは IP アドレスです。 .IP "\fBsrc host \fIhost\fR" IPv4/v6 パケットの始点フィールドが \fIhost\fP で指定したものの場合に、 真となります。 .IP "\fBhost \fIhost\fP IPv4/v6 パケットの始点フィールドもしくは終点フィールドが \fIhost\fP で指定したものの場合に、 真となります。 上記の host プリミティブの表現には、 \fBip\fP, \fBarp\fP, \fBrarp\fP, \fBip6\fP を 以下のように付加することが可能です。 .in +.5i .nf \fBip host \fIhost\fR .fi .in -.5i という表記は、 .in +.5i .nf \fBether proto \fI\\ip\fB and host \fIhost\fR .fi .in -.5i と同じ意味です。 \fIhost\fR が複数の IP アドレスを持つホスト名であった場合、それぞれのアドレス について照合を検査します。 .IP "\fBether dst \fIehost\fP イーサネットパケットの終点アドレスが \fIehost\fP だった場合に、真となります。 \fIehost\fP は、/etc/ethers に記述された名前もしくはイーサネットアドレスの値が用いられます (イーサネットアドレスの形式については、 .IR ethers (3N) を参照)。 .IP "\fBether src \fIehost\fP イーサネットパケットの始点アドレスが \fIehost\fP だった場合に、真となります。 .IP "\fBether host \fIehost\fP イーサネットパケットの始点アドレスもしくは終点アドレスが \fIehost\fP だった 場合に、真となります。 .IP "\fBgateway\fP \fIhost\fP パケットが \fIhost\fP で指定したアドレスのマシンをゲートウェイとしている場合に 真となります。言い替えると、始点もしくは終点のイーサネットアドレスが \fIhost\fP であり、始点と終点のどちらの IP アドレスも \fIhost\fP でない ということです。 \fIhost\fP は /etc/hosts ファイルと /etc/ethers の両方で定義されている名前を 指定する必要があります (等価な表現は、 .in +.5i .nf \fBether host \fIehost \fBand not host \fIhost\fR .fi .in -.5i です。この場合 \fIhost / ehost\fP のどちらにも名前もしくは値を用いることが 可能になります。) この構文は、現在のところ、IPv6 が有効な構成では動作しません。 .IP "\fBdst net \fInet\fR" パケットの終点 IPv4/v6 アドレスが、 \fInet\fP で指定されたネットワークに属するものである場合に、 真となります。 \fInet\fP は、アドレス値もしくは /etc/networks で 定義されたネットワーク名のいずれかを指定可能です (詳しくは、\fInetworks(4)\fP を参照)。 .IP "\fBsrc net \fInet\fR" パケットの始点 IPv4/v6 アドレスが、 \fInet\fP で指定されたネットワークに属するものである場合に、真となります。 .IP "\fBnet \fInet\fR" 始点 IPv4/v6 アドレスもしくは終点 IPv4/v6 アドレスが \fInet\fP で指定された ネットワークに属するものである場合に、真となります。 .IP "\fBnet \fInet\fR \fBmask \fImask\fR" IP アドレスが、指定された \fInet\fR および netmask の値で決まる ネットワークに属するものである場合に、真となります。 \fBsrc\fR や \fBdst\fR を指定する事も可能です。 この構文は IPv6 \fInet\fR では正当でないことに注意してください。 .IP "\fBnet \fInet\fR/\fIlen\fR" IPv4/v6 アドレスが、 指定された \fInet\fR および \fIlen\fR のビット長のネットマスクで 決まるネットワークに属するものである場合に、真となります。 \fBsrc\fR や \fBdst\fR を指定する事も可能です。 .IP "\fBdst port \fIport\fR" パケットが ip/tcp, ip/udp, ip6/tcp, ip6/udp のいずれかであり、終点 ポート番号が \fIport\fP の場合に、真となります。 \fIport\fP で指定されるポート番号は、値もしくは /etc/services で定義 されているサービス名で指定可能です ( .IR tcp (4P) や .IR udp (4P) を参照)。 ポート番号がサービス名にて指定された場合、 ポート番号とプロトコルの両方がチェック 対象になります。ポート番号や、あいまいなサービス名が指定された場合には、 ポート番号のみがチェック対象となります(例えば、\fBdst port 513\fR は、 tcp/login と udp/who の両方を出力し、\fBport domain\fR は、tcp/domain と udp/domain の両方を出力します)。 .IP "\fBsrc port \fIport\fR" パケットが \fIport\fP で指定した始点ポート番号を保持している場合に 真となります。 .IP "\fBport \fIport\fR" パケットの始点ポート番号もしくは終点ポート番号が \fIport\fP の場合に、 真となります。 上記のポート番号の指定については、すべてキーワード \fBtcp\fP もし くは \fBudp\fP を用いて、ある程度候補を絞り込むことが可能です。例えば、 .in +.5i .nf \fBtcp src port \fIport\fR .fi .in -.5i と指定した場合には、tcp パケットのみが条件一致の評価対象となります。 .IP "\fBless \fIlength\fR" パケットが \fIlength\fP で指定した長さ以下の場合、真となります。 これは、 .in +.5i .nf \fBlen <= \fIlength\fR .fi .in -.5i の指定と等価です。 .IP "\fBgreater \fIlength\fR" パケットが \fIlength\fP で指定した長さ以上の場合、真となります。 これは、 .in +.5i .nf \fBlen >= \fIlength\fR .fi .in -.5i と等価です。 .IP "\fBip proto \fIprotocol\fR" パケットが \fIprotocol\fP で指定したプロトコル型の IP パケット ( 詳細は .IR ip (4P) を参照) の場合に、真となります。 \fIprotocol\fP は、数字もしくは \fIicmp\fP, \fIicmp6\fP, \fIigmp\fP, \fIigrp\fP, \fIpim\fP, \fIah\fP, \fIesp\fP, \fIudp\fP, or \fItcp\fP のいずれかの名前が指定可能です。\fItcp\fP, \fIudp\fP, \fIicmp\fP の 各識別子はキーワードでもであり、バックスラッシュ (\\)(C-shell では \\\\) を用 いてエスケープしなければならないことに注意してください。 このプリミティブはプロトコルヘッダチェーンを追跡しないことに注意してください。 .IP "\fBip6 proto \fIprotocol\fR" パケットがプロトコル型 \fIprotocol\fP の IPv6 パケットである場合に、 真となります。 このプリミティブはプロトコルヘッダチェーンを追跡しないことに注意してください。 .IP "\fBip6 protochain \fIprotocol\fR" パケットが IPv6 パケットであり、 プロトコルヘッダチェーン中にタイプ \fIprotocol\fR のプロトコルヘッダが 含まれるばあい に、真となります。 例えば .in +.5i .nf \fBip6 protochain 6\fR .fi .in -.5i は、TCP プロトコルヘッダがプロトコルヘッダチェーン中に含まれる 任意のパケットにマッチします。 パケット中には、IPv6 ヘッダと TCP ヘッダの間に、 例えば、認証ヘッダ、ルーティングヘッダ、ホップ毎のオプションヘッダが 含まれ得ます。 このプリミティブが出力する BPF コードは、 複雑であり \fItcpdump\fP 中の BPF 最適化コードでは最適化できません。 よって、この動作はいくぶん遅いです。 .IP "\fBip protochain \fIprotocol\fR" Equivalent to \fBip6 protochain \fIprotocol\fR, but this is for IPv4. .IP "\fBether broadcast\fR" パケットがイーサネットブロードキャストパケットの場合に、真となります。 \fIether\fP キーワードは、省略可能です。 .IP "\fBip broadcast\fR" パケットが IP ブロードキャストパケットの場合に、真となります。オール 1 と オール 0 の二つの形式のブロードキャストアドレスを検査し、そして ローカルサブネットマスクを調べます。 .IP "\fBether multicast\fR" パケットがイーサネットマルチキャストパケットの場合に、真となります。 \fIether\fP キーワードは、省略可能です。 なお、この指定は、`\fBether[0] & 1 != 0\fP' の短縮系です。 .IP "\fBip multicast\fR" パケットが IP マルチキャストパケットの場合に、真となります。 .IP "\fBip6 multicast\fR" パケットが IPv6 マルチキャストパケットの場合に、真となります。 .IP "\fBether proto \fIprotocol\fR" パケットが \fIprotocol\fR で指定した ether 型の場合に、真になります。 \fIprotocol\fP は、数字もしくは \fIip\fP, \fIip6\fP, \fIarp\fP, \fIrarp\fP, \fIatalk\fP, \fIaarp\fP, \fIdecnet\fP, \fIsca\fP, \fIlat\fP, \fImopdl\fP, \fImoprc\fP, \fIiso\fP のいずれかの名前を指定可能です。 これらの識別子はキーワードでもあり、バックスラッシュ (\\) でエスケープし なければならないことに注意してください。 [FDDI の場合 (例えば `\fBfddi protocol arp\fR')、プロトコルの識別は IEEE802.2 の論理リンク制御 (LLC) ヘッダによって行われます。通常これは FDDI ヘッダの上の層にあります。\fItcpdump\fP は、プロトコル識別子で フィルタリングするときは、すべての FDDI パケットは LLC ヘッダを含み、 かつその LLC ヘッダがいわゆる SNAP 形式であると仮定します。 Token Ring も同様です。] .IP "\fBdecnet src \fIhost\fR" DECNET パケットの始点アドレスが .IR host の場合に、真となります。これは ``10.123'' という形式のアドレスでも DECNET の ホスト名でも構いません。[DECNET のホスト名は DECNET を動かすように設定され た Ultrix システムのみでサポートされます。] .IP "\fBdecnet dst \fIhost\fR" DECNET パケットの終点アドレスが .IR host の場合に、真となります。 .IP "\fBdecnet host \fIhost\fR" DECNET パケットの始点あるいは終点アドレスが .IR host の場合に、真となります。 .IP "\fBip\fR, \fBip6\fR, \fBarp\fR, \fBrarp\fR, \fBatalk\fR, \fBaarp\fR, \fBdecnet\fR, \fBiso\fR" .in +.5i .nf \fBether proto \fIp\fR .fi .in -.5i の短縮形です。\fIp\fR の部分には、上記のいずれかのプロトコル名が入ります。 .IP "\fBlat\fR, \fBmoprc\fR, \fBmopdl\fR" .in +.5i .nf \fBether proto \fIp\fR .fi .in -.5i の短縮形です。\fIp\fR の部分には、上記のいずれかのプロトコル名が入ります。 \fItcpdump\fP は今のところこれらのプロトコルを解釈できない事に注意して ください。 .IP "\fBvlan \fI[vlan_id]\fR" パケットが IEEE 802.1Q VLAN パケットの場合、真になります。 \fI[vlan_id]\fR が指定された場合、 パケットが指定された \fIvlan_id\fR を持つ場合のみ、真になります。 \fIexpression\fR 中の最初の \fBvlan\fR キーワードが、 パケットが VLAN パケットであることを仮定して、 残りの \fIexpression\fR のデコード用オフセットを変更してしまうことに 注意してください。 .IP "\fBtcp\fR, \fBudp\fR, \fBicmp\fR" .in +.5i .nf \fBip proto \fIp\fR\fB or ip6 proto \fIp\fR .fi .in -.5i の短縮形です。\fIp\fR の部分には、上記のいずれかのプロトコル名が入ります。 .IP "\fBiso proto \fIprotocol\fR" パケットがプロトコル型 \fIprotocol\fP の OSI パケットの場合、真になります。 \fIprotocol\fP は数値もしくは \fIclnp\fP, \fIesis\fP, \fIisis\fP という名前のいずれかです。 .IP "\fBclnp\fR, \fBesis\fR, \fBisis\fR" .in +.5i .nf \fBiso proto \fIp\fR .fi .in -.5i の短縮形です。\fIp\fR の部分には、上記のいずれかのプロトコル名が入ります。 \fItcpdump\fR はこれらのプロトコルを完全には解釈できない事に注意して ください。 .IP "\fIexpr relop expr\fR" \fIrelop\fRは、>, <, >=, <=, =, != のいずれかであり、\fIexpr\fR の部分に は、(標準 C 言語の構文で表現された) 整数定数や通常の二項演算子 [+, -, *, /, &, |]、length 演算子、そして特殊なパケットデータへのアクセス演算子などか らなる算術表現が入って、その関係が成立する場合に、真となります。 パケット内部のデータにアクセスするためには、以下の構文を用います。 .in +.5i .nf \fIproto\fB [ \fIexpr\fB : \fIsize\fB ]\fR .fi .in -.5i \fIproto\fRは、\fBether, fddi, tr, ip, arp, rarp, tcp, udp, icmp, ip6\fR のいずれかであり、インデックス操作を行うプロトコル層を指示 します。 \fItcp, udp\fR および他の上位層プロトコル型は、 IPv4 のみに適用され、IPv6 には適用されないことに注意してください (これは将来修正されます)。 指示したプロトコル層からの相対バイトオフセットは、\fIexpr\fR で指定します。 \fIsize\fR は省略可能で、取得するフィールドのデータ長を表します。 データ長としては、1,2,4 のいずれかを指定することが可能であり、デフォルトでは 1 が指定されたものとみなされます。 キーワード \fBlen\fP で示されるデータ長演算子は、パケット長を与えます。 例えば、`\fBether[0] & 1 != 0\fP' は、全てのマルチキャストパケットを捕捉します。 `\fBip[0] & 0xf != 5\fP' という表現は、すべてのオプション付きIPパケットを捕捉す ることを意味します。`\fBip[6:2] & 0x1fff = 0\fP' という表現は、フラグメントのな いデータグラムパケット、もしくはフラグメント化されたデータグラムのうち 最初のフラグメントを捕捉します。 この検査は、\fBtcp\fP および \fBudp\fP のインデックス操作においては、暗黙のうち に適用されます。 例えば、\fBtcp[0]\fP は常に TCP ヘッダの先頭バイトを指し、 決して各フラグメントの先頭バイトを指すものではありません。 .LP プリミティブは、以下のように組み合わせることが可能です。 .IP 括弧で括られた一連のプリミティブや演算子 (括弧はシェルの特殊文字なのでエスケープする必要があります)。 .IP 否定 (`\fB!\fP' or `\fBnot\fP'). .IP 論理積 (`\fB&&\fP' or `\fBand\fP'). .IP 論理和 (`\fB||\fP' or `\fBor\fP'). .LP 否定は、最も高い演算優先度を持ちます。論理和と論理積は、同じ演算優先度を持ち、 左から右へ評価されます。論理積の場合には、単に識別子を並べるのではなく、 明示的に \fBand\fR を使用しなければならないことに注意して下さい。 .LP キーワードなしで識別子が与えられている場合には、最も最近用いられたキーワードが 付加されているものと仮定されます。 例えば、 .in +.5i .nf \fBnot host vs and ace\fR .fi .in -.5i は、 .in +.5i .nf \fBnot host vs and host ace\fR .fi .in -.5i の短縮形ですが、 .in +.5i .nf \fBnot ( host vs or ace )\fR .fi .in -.5i と混同してしまいがちなので気をつけましょう。 .LP 引数 expression は、単一の引数としても複数の引数としても、どちらか便利な 方で、\fItcpdump\fP に渡すことができます。 一般的に、引数がシェルのメタキャラクタを含む場合、その引数をクォート された単一の引数としてプログラムに渡す方が容易です。 複数の引数は、解析される前にスペースで連結されます。 .SH 使用例 .LP \fIsundown\fP に到達する、もしくはそこから送信されるパケットのすべてを 表示する場合には、以下のように実行します。 .RS .nf \fBtcpdump host sundown\fP .fi .RE .LP \fIhelios\fR と、\fIhot\fR もしくは \fIace\fR の間のトラフィックを表示する 場合には、以下のように実行します。 .RS .nf \fBtcpdump host helios and \\( hot or ace \\)\fP .fi .RE .LP \fIace\fR と、\fIhelios\fR 以外のホストとの間でやりとりされるすべての IP パケットを表示する場合には、以下のように実行します。 .RS .nf \fBtcpdump ip host ace and not helios\fP .fi .RE .LP ローカルなホストと Berkeley のホストとの間でやりとりされるすべての トラフィックを表示する場合には、以下のように実行します。 .RS .nf .B tcpdump net ucb-ether .fi .RE .LP インターネットゲートウェイ \fIsnup\fP を通過するすべての ftp トラフィックを表示する場合には、以下のように実行します (シェルが括弧を誤って解釈しないよう、フィルタを表現する引数がクォートさ れていることに注意して下さい)。 .RS .nf .B tcpdump 'gateway snup and (port ftp or ftp-data)' .fi .RE .LP 始点アドレスと終点アドレスの両方がローカルネットワーク内のホスト のものでないトラフィックについて表示する場合には、以下のように実行しま す (実行するホストが他のネットワークに対するゲートウェイの場合、そのホスト が属すローカルネットワークでは、このコマンドは成功しないでしょう)。 .RS .nf .B tcpdump ip and not net \fIlocalnet\fP .fi .RE .LP ローカルネットワーク外のホストとの通信において、TCP による各通信単位 のスタートパケットとエンドパケット (SYN と FIN パケット) を表示するには、以 下のように実行します。 .RS .nf .B tcpdump 'tcp[13] & 3 != 0 and not src and dst net \fIlocalnet\fP' .fi .RE .LP ゲートウェイ \fIsnup\fP を中継される IP パケットのうち、576 バイトより大きいもの を表示するには、以下のように実行します。 .RS .nf .B tcpdump 'gateway snup and ip[2:2] > 576' .fi .RE .LP イーサネット上でブロードキャストもしくはマルチキャストを経由して送られる もの以外の IP ブロードキャストもしくはマルチキャストパケットを表示するには、 以下のように実行します。 .RS .nf .B tcpdump 'ether[0] & 1 = 0 and ip[16] >= 224' .fi .RE .LP echo 要求/応答以外 (つまり ping パケット以外) の全ての ICMP パケットを 表示するには、以下のように実行します。 .RS .nf .B tcpdump 'icmp[0] != 8 and icmp[0] != 0' .fi .RE .SH 出力形式 .LP \fItcpdump\fP の出力は、プロトコル依存です。以下の説明では、簡単な パラメータの記述と、おおよそのフォーマットの説明を行ないます。 .de HD .sp 1.5 .B .. .HD リンクレベルヘッダ .LP もし '-e' オプションが指定されると、リンクレベルヘッダが出力されます。 イーサネットにおいては、始点と終点のアドレス、プロトコル、そして パケット長が出力されます。 .LP FDDI ネットワークにおいては、'-e' オプションが指定されると \fItcpdump\fP は、「フレーム制御」フィールド、発信元と終点アドレス、そしてパケット長を 出力します。「フレーム制御」フィールドはパケットの残りの部分の解釈を決定 します。(IP データグラムを含むような) 通常のパケットは `async' パケットで、 0 から 7 の間の優先順位を持ちます。例えば、`\fBasync4\fR' です。こうした パケットは IEEE802.2 の論理リンク制御 (LLC) パケットを含むと仮定されます。 LLC ヘッダは、それが ISO データグラムでない場合やいわゆる SNAP パケットのと きには出力されます。 .LP Token Ring ネットワークでは、'-e' オプションを指定すると、\fItcpdump\fP は、 アクセス制御」と「フレーム制御」のフィールド、 始点と終点のアドレス、パケット長を表示します。 FDDI ネットワークでは、パケットは LLC パケットを含むと仮定されます。 オプション '-e' の指定の有無にかかわらず、 始点経路制御されたパケットに対しては、始点経路制御情報が表示されます。 .LP \fI (注意: 以下の記述は、利用者が RFC1144 に記述されている SLIP 圧縮 アルゴリズムについての知識がある前提で書いています。)\fP .LP SLIP によるリンクにおいては、方向指示子 (``I'' が入力方向、``O'' が出力方向)、パケット型、そして圧縮情報が出力されます。 パケット型は、最初に出力されます。パケット型には \fIip\fP、\fIutcp\fP、そして \fIctcp\fP の 3 つがあります。 \fIip\fR 型パケットの場合、上記以上のリンク情報は表示されません。 TCP パケットの場合には、コネクション識別子がパケット型に続いて出力されます。 パケットが圧縮されている場合、符号化されたヘッダが出力されます。 特殊な場合は \fB*S+\fIn\fR や \fB*SA+\fIn\fR のように出力されます。ここ で \fIn\fR は、シーケンス番号 (もしくはシーケンス番号および ack) が変更された回 数です。特殊な場合でなければ、0 回以上の変更について出力されます。 変更は、U (緊急 (urgent) ポインタ)、W (ウィンドウ)、A (ack)、S (シーケンス番号)、 そして I (パケット ID) で示され、変動量 (+n or -n) もしくは新しい値 (=n) が続きます。 最後に、パケット内のデータの総量および圧縮ヘッダ長が出力されます。 .LP 例えば、以下の行は、出力方向の圧縮 TCP パケットを、暗黙のコネクション識別子 とともに表示しています。ack は 6 変わり、シーケンス番号は 49 変わり、パケット ID は 6 変わっています。3 バイトのデータと6 バイトの圧縮ヘッダが存在します。 .RS .nf \fBO ctcp * A+6 S+49 I+6 3 (6)\fP .fi .RE .HD ARP/RARP パケット .LP arp/rarp パケットの出力は、要求型とその引数を示してい ます。出力形式は、その出力のみで理解可能なように作られています。 以下に、ホスト \fIrtsg\fP からホスト \fIcsam\fP への `rlogin' 開始時の パケットの実例を示します。 .RS .nf .sp .5 \f(CWarp who-has csam tell rtsg arp reply csam is-at CSAM\fR .sp .5 .fi .RE 1行目は、ホスト rtsg が、ホスト csam のイーサネットアドレスを問い合わせる 目的で arp パケットを送信していることを意味します。ホスト csam は、自分自身 のイーサネットアドレスを返答しています (この例では、イーサネットアドレス は大文字で、インターネットアドレス部は小文字で表記しています)。 .LP \fBtcpdump \-n\fP として起動した場合には、少し冗長になります。 .RS .nf .sp .5 \f(CWarp who-has 128.3.254.6 tell 128.3.254.68 arp reply 128.3.254.6 is-at 02:07:01:00:01:c4\fR .fi .RE .LP \fBtcpdump \-e\fP として起動した場合には、最初のパケットはブロードキャスト パケットであり、次のパケットはポイントツーポイントのパケットであることが わかります。 .RS .nf .sp .5 \f(CWRTSG Broadcast 0806 64: arp who-has csam tell rtsg CSAM RTSG 0806 64: arp reply csam is-at CSAM\fP .sp .5 .fi .RE 最初のパケットについては、始点のイーサネットアドレスは RTSG であり、 終点はイーサネットブロードキャストアドレス、型フィールドには 16 進数の値 0806 (ETHER_ARP を意味します) が格納されており、総パケット長は 64 バイトである と表示しています。 .HD TCP パケット .LP \fI(注意:以下の記述は、RFC793 に記述されている TCP プロトコルについての知識 があることを前提に記述されています。この知識がない場合、本記述と \fItcpdump\fP のいずれもあなたには役に立たないでしょう。)\fP .LP TCP プロトコル行の一般的な形式は、以下の通りです。 .RS .nf .sp .5 \fIsrc > dst: flags data-seqno ack window urgent options\fP .sp .5 .fi .RE \fIsrc\fP と \fIdst\fP は、それぞれ始点と終点の IP アドレスと ポート番号です。\fIflags\fP の部分には、S (SYN), F (FIN), P (PUSH), R (RST) の組み合わせ、もしくは単なる `.' (フラグなし) が入ります。 \fIdata-seqno\fP は、このパケット内のデータがシーケンス空間のどの部分に あたるかを示します (以下の例を参照して下さい)。 \fIack\fP は、本コネクション上を逆方向に次に流れるデータパケットの シーケンス番号です。 \fIwindow\fP は、本コネクションの逆方向のパケットを格納するバッファサイズ です。 \fIurg\fP は、パケット中に `urgent' (緊急) データが格納されていることを示しま す。 \fIoptions\fP は、例えば のように、アングルブラケット (大小記号) で 括られた tcp オプションです。 .LP \fIsrc、dst\fP、そして \fIflags\fP は、常に表示されます。他のフィールドは、 パケットの TCP ヘッダに依存し、表示できる場合だけ表示されます。 .LP 以下の例は、ホスト \fIrtsg\fP からホスト \fIcsam\fP への rlogin 開設時のシーケンスの一部です。 .RS .nf .sp .5 \s-2\f(CWrtsg.1023 > csam.login: S 768512:768512(0) win 4096 csam.login > rtsg.1023: S 947648:947648(0) ack 768513 win 4096 rtsg.1023 > csam.login: . ack 1 win 4096 rtsg.1023 > csam.login: P 1:2(1) ack 1 win 4096 csam.login > rtsg.1023: . ack 2 win 4096 rtsg.1023 > csam.login: P 2:21(19) ack 1 win 4096 csam.login > rtsg.1023: P 1:2(1) ack 21 win 4077 csam.login > rtsg.1023: P 2:3(1) ack 21 win 4077 urg 1 csam.login > rtsg.1023: P 3:4(1) ack 21 win 4077 urg 1\fR\s+2 .sp .5 .fi .RE 最初の行は、ホスト rtsg の TCP ポート 1023 番からホスト csam の \fIlogin\fP ポートに対してパケットを送信していることを意味します。\fBS\fP は、 パケットの \fISYN\fP フラグが設定されていることを意味します。 パケットのシーケンス番号は 768512 番であり、データは含みません。 (表記は `first:last(nbytes)' であり、これは「シーケンス番号 \fIfirst\fP か ら \fIlast\fP までの \fIlast\fP を含まない \fInbytes\fP のユーザデータという こと」を意味しています。) このパケット中に ack はなく、有効な受信ウィンドウの大きさは 4096 バイトで あり、1024 バイトの最大セグメントサイズ要求を行なうオプションが付加され ています。 .LP csam は、rtsg から送られたパケットと類似したパケットを送り返しますが、 rtsg の送った SYN に対する ack が含まれるところが異なり ます。続いて、rtsg は csam の SYN に対する ack を返します。 `.' は、S (SYN), F (FIN), P (PUSH), R (RST) のいずれのフラグも 立っていないことを意味します。 パケットはデータを含まないため、データシーケンス番号は入りません。 ack シーケンス番号が小さい整数 (1) であることに注意して下さい。 \fItcpdump\fP は、初めて TCP の「通信」を検出すると、パケットから取得した シーケンス番号を表示します。通信のその後のパケットについては、現在の パケットシーケンス番号と、この最初のシーケンス番号の間の差を表示します。 このことは、最初に取得した以降のシーケンス番号は、通信データストリーム の相対位置として解釈できることを意味します (最初の各方向のデータバイト は 1 です)。`-S' は、本機能を無効にし、元のシーケンス番号を表示します。 .LP 6 行目では、rtsg は csam に 19 バイトのデータを送信しています (rtsg \(-> csam の 方向の通信における、2 バイト目から 20 バイト目までのデータ)。PUSH フラグが このパケットでは設定されています。 7 行目では、csam は rtsg から 20 バイトまでのデータを受けとった旨の レスポンスを rtsg に返しています。csam の受信ウィンドウが19バイト小さくなっ たことから、これらのデータのほとんどは、ソケットバッファの中に存在する ことが分かります。 csam は、rtsg に 1 バイトのデータを送信しています。 8 行めと 9 行めでは、csam は緊急 (urgent) で PUSH フラグの設定された 2 バイトデータを送信しています。 .LP スナップショットが小さ過ぎて \fItcpdump\fP が TCP ヘッダ全体を捕えなかった場合、 可能な限りのヘッダを解釈し、``[|\fItcp\fP]'' を表示して 残りを解釈できなかったことを示します。 (短か過ぎるまたはヘッダを越えてしまうといった) 不正なオプションを ヘッダが持つ場合には、tcpdump は ``[\fIbad opt\fP]'' を表示して 残りのオプションを解釈しません (どこから開始したら良いのか分からないからです)。 ヘッダ長によりオプションが存在することが分かるが、 IP データグラム長がオプションがそこにあるために十分な長さではない場合に、 \fItcpdump\fP は ``[\fIbad hdr length\fP]'' を表示します。 .HD .B 特定フラグの組み合わせ (SYN-ACK, URG-ACK 等) による TCP パケットの捕捉 .PP TCP ヘッダの制御ビットセクションには、次の 6 ビットがあります: .IP .I URG | ACK | PSH | RST | SYN | FIN .PP TCP 接続の確立に使用されるパケットを見たいものとしましょう。 新規接続を初期化する時、 TCP は 3 ウェイハンドシェークプロトコルを使用することを思い出してください。 TCP 制御ビットに関する接続の順番は次のようになります。 .PP .RS 1) 呼び出し側が SYN を送信 .RE .RS 2) 受信者が SYN, ACK で応答 .RE .RS 3) 呼び出し側が ACK を送信 .RE .PP ここで、SYN ビットを持つパケットを捕捉したいとします (第 1 ステップ)。 ステップ 2 のパケット (SYN-ACK) は不要で、 最初の SYN だけが欲しいことに注意してください。 必要なのは、\fItcpdump\fP の正しいフィルタ式です。 .PP オプション無しの TCP ヘッダの構造を思い出してください: .PP .nf 0 15 31 ----------------------------------------------------------------- | 始点ポート | 終点ポート | ----------------------------------------------------------------- | シーケンス番号 | ----------------------------------------------------------------- | 確認応答番号 | ----------------------------------------------------------------- | HL | 予約 |U|A|P|R|S|F| ウィンドウサイズ | ----------------------------------------------------------------- | TCP チェックサム | 緊急ポインタ | ----------------------------------------------------------------- .fi .PP TCP ヘッダは、オプションが無ければ通常、20 オクテットのデータを持ちます。 図の最初の行はオクテット 0 から 3 を示し、 次の行はオクテット 4 から 7 を示す等となります。 .PP 0 から数え始めると、必要な TCP 制御ビットはオクテット 13 にあります: .PP .nf 0 7| 15| 23| 31 ----------------|---------------|---------------|---------------- | HL | 予約 |U|A|P|R|S|F| ウィンドウサイズ | ----------------|---------------|---------------|---------------- | |13 オクテット目| | | .fi .PP 第 13 オクテットをもっとよく見てみましょう: .PP .nf | | |---------------| | |U|A|P|R|S|F| |---------------| |7 5 3 0| .fi .PP .\" 2 bytes は 2 bits の誤り? このオクテットの上位 2 ビットは予約フィールドから来ています。 RFC 793 によると、この欄は将来の使用のために予約となっていて、 必ず 0 です。 残りの 6 ビットは、我々が興味がある TCP 制御ビットです。 このオクテットのビットを、右から左へ、0 から 7 と番号付けします。 PSH ビットは第 3 ビットであり、URG ビットは第 5 ビットです。 .PP 最初の SYN だけを持つパケットが欲しいことに注意してください。 SYN ビットがセットされた TCP データグラムが到着すると、 第 13 オクテットになにが起きるか見てみましょう: .PP .nf | |U|A|P|R|S|F| |---------------| |0 0 0 0 0 0 1 0| |---------------| |7 6 5 4 3 2 1 0| .fi .PP 第 7 ビットと第 6 ビットは予約フィールドに属し必ず 0 だと既に述べました。 制御ビットセクションを見ると、ビット番号 1 (SYN) のみがセットされています。 .PP オクテット番号 13 が、ネットワークバイト順で、 8 ビット符号無し整数と仮定します。 このオクテットの 2 進数値は .IP 00000010 .PP となり、10 進数での表現は次のようになります: .PP .nf 7 6 5 4 3 2 1 0 0*2 + 0*2 + 0*2 + 0*2 + 0*2 + 0*2 + 1*2 + 0*2 = 2 .fi .PP SYN のみセットされている場合について理解したので、これでほとんど終りです。 TCP ヘッダの第 13 オクテットの値は、 ネットワークバイト順の 8 ビット符号無し整数として解釈すると、 正確に 2 となります。 .PP この関係は次のように表現可能です: .RS .B tcp[13] == 2 .RE .PP この式を \fItcpdump\fP のフィルタとして使用し、 SYN パケットのみを持つパケットを捕捉可能です: .RS .B tcpdump -i xl0 tcp[13] == 2 .RE .PP この式は「TCP データグラムの第 13 オクテットは 10 進数 2 を持つ」 と言っており、まさに我々が望むものです。 .PP 次に、SYN パケットが必要であるが、ACK や他の TCP 制御ビットについては どうでも良い場合を考えます。 SYN-ACK が設定された TCP データグラムが到着した時に オクテット 13 がどうなっているかを見てみましょう: .PP .nf | |U|A|P|R|S|F| |---------------| |0 0 0 1 0 0 1 0| |---------------| |7 6 5 4 3 2 1 0| .fi .PP 今度は、第 13 オクテットの第 1 ビットと第 4 ビットがセットされています。 第 13 オクテットの 2 進数値は .IP 00010010 .PP となり、10 進数では次のようになります: .PP .nf 7 6 5 4 3 2 1 0 0*2 + 0*2 + 0*2 + 1*2 + 0*2 + 0*2 + 1*2 + 0*2 = 18 .fi .PP 今度は、\fItcpdump\fP フィルタ式に 'tcp[13] == 18' を使用できません。 この式は、SYN-ACK がセットされているパケットのみを選択し、 SYN のみセットされているパケットを選択しないからです。 ACK や他の制御ビットがセットされていようといまいと構わないことを 思い出してください。 .PP この目的を達成するために、第 13 オクテットと他の値との論理 AND を取り、 SYN ビットを得ることが必要です。 我々が欲しいのはどんな場合でも SYN がセットされていれば良いので、 第 13 オクテットと SYN の 2 進数値との論理 AND を取ります: .PP .nf 00010010 SYN-ACK 00000010 SYN AND 00000010 (SYN が欲しい) AND 00000010 (SYN が欲しい) -------- -------- = 00000010 = 00000010 .fi .PP この AND 操作は、ACK や他の TCP プロトコルビットが セットされていようといまいと、結果は同じです。 AND 用の値の 10 進数表現と、この操作の結果の 10 進数値は、 共に 2 (2 進数値 00000010) であり、 SYN がセットされているパケットには次の関係が成立します: .IP ( ( 第 13 オクテットの値 ) AND ( 2 ) ) == ( 2 ) .PP ここで、\fItcpdump\fP フィルタ式は次のようになることが分かります: .RS .B tcpdump -i xl0 'tcp[13] & 2 == 2' .RE .PP シングルクォートもしくはバックスラッシュを使用して、AND (&') 特殊文字を シェルから隠す必要があることに注意してください。 .HD .B UDP パケット .LP UDP フォーマットは、以下の rwho パケットで例示します。 .RS .nf .sp .5 \f(CWactinide.who > broadcast.who: udp 84\fP .sp .5 .fi .RE これは、ホスト \fIactinide\fP の \fIwho\fP ポートが UDP データグラムを インターネットブロードキャストアドレスであるホスト \fIbroadcast\fP の \fIwho\fP ポートに対して送信していることを意味します。本パケットは、 84 バイトのユーザデータを含みます。 .LP いくつかの UDP サービスは(始点もしくは終点のポート番号から)種 類の判断が可能で、さらに上位レベルのプロトコル情報が出力されます。 ドメインネームサービス要求 (RFC1034/1035)、そして、Sun RPC 呼びだし (RFC1050) を用いた NFS サービスなどがこの条件に該当します。 .HD UDP ネームサーバ要求 .LP \fI(注意:以下の記述は、RFC1035 に記述されている ドメインサービスプロトコルの知識があることを前提に書かれています。もしこ れらの知識がない場合には、以下の記述は未知の言語で書かれているかのよう に見えるでしょう。)\fP .LP ネームサーバ要求は、以下のような表示になります。 .RS .nf .sp .5 \fIsrc > dst: id op? flags qtype qclass name (len)\fP .sp .5 \f(CWh2opolo.1538 > helios.domain: 3+ A? ucbvax.berkeley.edu. (37)\fR .sp .5 .fi .RE ホスト \fIh2opolo\fP は、\fIhelios\fP 上のドメインサーバに対して \fIucbvax.berkeley.edu\fP のホスト名に対応するアドレスレコード (qtype=A) を問い合わせています。 問い合わせの ID は `3' であり、`+' は\fI再帰要求\fPフラグが設定されて いることを意味します。問い合わせの長さは 37 バイトであり、この中に UDP および IP のプロトコルヘッダの長さは含みません。質問操作は普通の操作 (\fIQuery\fP) であり、op フィールドは省略されます。op が他のいずれかであった場合、 その op は `3' と `+' の間に表示されます。 これと同様に、qclass は普通のもの (\fIC_IN\fP) であり、省略されます。 他の qclass が入った場合、`A' の直後に表示されます。 .LP 少数の変則的なパケットは検査され、カギカッコで囲まれた付加 フィールドにその結果が表示されます。query が返答、ネームサーバ もしくはオーソリティセクションを含む場合、 .IR ancount , .IR nscount , .I arcount のいずれかが、`[\fIn\fPa]', `[\fIn\fPn]', `[\fIn\fPau]' のような形式で 表示されます。\fIn\fP は、それぞれの個数です。 応答ビットのいずれかが設定されている (AA, RA, rcode のいずれか) 場合、 もしくは「0 でなければならない」ビットが 2 バイト目と 3 バイト目に設定されてい る場合には、`[b2&3=\fIx\fP]' が出力されます。\fIx\fP は、ヘッダの 2 バイト 目および 3 バイト目の値を 16 進で表したものです。 .HD UDP ネームサーバ応答 .LP ネームサーバ応答の形式は、以下の通りです。 .RS .nf .sp .5 \fIsrc > dst: id op rcode flags a/n/au type class data (len)\fP .sp .5 \f(CWhelios.domain > h2opolo.1538: 3 3/3/7 A 128.32.137.3 (273) helios.domain > h2opolo.1537: 2 NXDomain* 0/1/0 (97)\fR .sp .5 .fi .RE 最初の例は、\fIh2opolo\fP からの質問 ID 3 の要求に対し、\fIhelios\fP が 3 つのアンサーレコード、3 つのネームサーバレコード、そして 7 つの オーソリティレコードを持っているパケットで返答しているというものです。 最初のアンサーレコードは、タイプ A (アドレス) であり、そのデータは IP アドレス 128.32.137.3 です。UDP と IP のヘッダを除いた総サイズは 273 バイトです。 A レコードのクラス (C_IN) と同様に, op (Query) および応答コード (NoError) は、省略されます。 .LP 2 つめの例は、\fIhelios\fP が質問 ID 2 の要求に対し、存在しない ドメイン (NXDomain) という返答コードとともに、0 個のアンサーレコード、1 つ のネームサーバレコード、そして 0 個のオーソリティレコードを含んだ レスポンスを返しています。`*' は、\fIauthoritative answer\fP ビットが設定され ていることを示します。 アンサーレコードがないため、型、クラス、データは出力されません。 .LP 出力される可能性のある他のフラグキャラクタは、`\-' (再帰利用,RA,が 設定されていない)および `|' (メッセージ切捨て, TC, が設定されている) です。 `question' セクションに含まれるエントリがちょうど 1 つでない場合には、 `[\fIn\fPq]' が出力されます。 .LP ネームサーバ要求および応答は、大きくなる傾向にあり、デフォルトの \fIsnaplen\fP の値である 68 バイトの長さは、パケットを捕捉してその内容を 表示するには十分でないかも知れないことに注意して下さい。 もしネームサーバトラフィックの調査を真剣に 行なおうとするならば、\fB\-s\fP オプションを用いて、\fIsnaplen\fP を増やし て下さい。自分の経験上、`\fB\-s 128\fP' で十分使い物になります。 .HD SMB/CIFS のデコード .LP 現在の \fItcpdump\fP は、UDP/137, UDP/138, TCP/139 上のデータ用に、 非常に多くの SMB/CIFS/NBT デコードを含みます。 IPX および NetBEUI SMB データの原始的なデコードも、 いくらかは実装されています。 デフォルトでは、最小限のデコードが行われ、 より詳細なデコードは -v を指定すると行われます。 -v を使用すると、単一の SMB パケットが 1 ページ以上を占めてしまいますので、 血まみれの詳細すべてが本当に欲しい場合のみに -v を使用すべきことを 注意してください。 UNICODE 文字列を含む SMB セッションをデコードする場合、 環境変数 USE_UNICODE を 1 に設定するとよいかもしれません。 UNICODE 文字列を自動検出するパッチを歓迎します。 SMB パケット書式の情報とすべてのフィールドの意味については、 www.cifs.org または好きな samba.org ミラーサイトの pub/samba/specs/ ディレクトリを見てください。 SMB パッチは Andrew Tridgell (tridge@samba.org) が書きました。 .HD NFS 要求と応答 .LP Sun NFS (Network File System) 要求および応答は、以下のように 表示されます。 .RS .nf .sp .5 \fIsrc.xid > dst.nfs: len op args\fP \fIsrc.nfs > dst.xid: reply stat len op results\fP .sp .5 \f(CW sushi.6709 > wrl.nfs: 112 readlink fh 21,24/10.73165 wrl.nfs > sushi.6709: reply ok 40 readlink "../var" sushi.201b > wrl.nfs: 144 lookup fh 9,74/4096.6878 "xcolors" wrl.nfs > sushi.201b: reply ok 128 lookup fh 9,74/4134.3150 \fR .sp .5 .fi .RE 最初の行では、ホスト \fIsushi\fP が ID\fI6709\fP のトランザクションを \fIwrl\fP に送信します (始点ホストに続く数字はトランザクション ID であり、始点ポート番号で\fIない\fPことに注意して下さい)。要求 サイズは、UDP および IP ヘッダのサイズを除いて 112 バイトです。操作は、 ファイルハンドル (\fIfh\fP) 21,24/10.731657119 に対する \fIreadlink\fP (シンボリックリンク読み込み) です。 (この例のように運が良ければ、ファイルハンドルはデバイスのメジャー、 -マイナー番号のペアと、それに続く i ノード番号と世代番号と解釈することがで +マイナー番号のペアと、それに続く inode 番号と世代番号と解釈することがで きます。) \fIwrl\fP はリンクの内容とともに `ok' と返答しています。 .LP 3 行めでは、\fIsushi\fP は \fIwrl\fP に対し、ファイルハンドル 9,74/4096.6878 のディレクトリ中の `xcolors' ファイルの検索を要求していま す。出力されたデータは、操作の型に依存することに注意して下さい。本形式 は、NFS のプロトコル仕様とともに読めば、それ自身を見れば分かるよう に意図して作成されています。 .LP \-v (verbose, 冗長) フラグがある場合、追加情報が出力されます。 例えば .RS .nf .sp .5 \f(CW sushi.1372a > wrl.nfs: 148 read fh 21,11/12.195 8192 bytes @ 24576 wrl.nfs > sushi.1372a: reply ok 1472 read REG 100664 ids 417/0 sz 29388 \fP .sp .5 .fi .RE (\-v は IP ヘッダの TTL と ID と長さとフラグメンテーションフィールドも出力し ますが、この例では省略しています。) 最初の行では、\fIsushi\fP は \fIwrl\fP に対してファイル 21,11/12.195 のオフセット 24576 バイト目か ら 8192 バイトを読むように要求しています。\fIwrl\fP は `ok' と返答してい ます。2 行めに示したパケットは応答の最初のフラグメントなので、1472 バイトしかありません (その他のデータは継続するフラグメント中に続きます が、これらのフラグメントは NFS ヘッダも UDP ヘッダさえも持たないので、使わ れるフィルタリングの表現によっては出力されないでしょう)。\-v フラグがあ るのでいくつかのファイル属性 (ファイルデータに追加されて返されてくる) が 出力されます。それらはファイルの型 (普通のファイルなら ``REG'')、(8 進数 表現の) ファイルモード、uid と gid、そしてファイルの大きさです。 .LP \-v フラグが 2 回以上指定されると、さらに詳しい情報が出力されます。 .LP NFS 要求は非常に大きなデータになるため、\fIsnaplen\fP を大きくし ないと詳しい出力は得られません。NFS トラフィックを監視するには、 `\fB\-s 192\fP' と指定してみて下さい。 .LP NFS 応答パケットは RPC 操作であることを明示的には示しません。その代わ り、\fItcpdump\fP は「最近の」要求を追跡して、トランザクション ID を用い て応答と照合します。応答が対応する要求のすぐ後に続かないと、解 析することはできません。 .HD AFS の要求と応答 .LP Transarc AFS (Andrew File System) の要求と応答は次のように表示されます: .HD .RS .nf .sp .5 \fIsrc.sport > dst.dport: rx packet-type\fP \fIsrc.sport > dst.dport: rx packet-type service call call-name args\fP \fIsrc.sport > dst.dport: rx packet-type service reply call-name args\fP .sp .5 \f(CW elvis.7001 > pike.afsfs: rx data fs call rename old fid 536876964/1/1 ".newsrc.new" new fid 536876964/1/1 ".newsrc" pike.afsfs > elvis.7001: rx data fs reply rename \fR .sp .5 .fi .RE 最初の行では、ホスト elvis が RX パケットを pike に送っています。 これは、fs (ファイルサーバ) サービスへの RX データパケットであり、 RPC 呼び出しの開始です。 この RPC 呼び出しはリネーム (改名) であり、 古いディレクトリファイル ID 536876964/1/1 と古いファイル名 `.newsrc.new'、 新しいディレクトリファイル ID 536876964/1/1 と新しいファイル名 `.newsrc' で 呼び出しています。 ホスト pike は、RPC 応答をリネーム呼び出しに対して返します (データパケットであり、アボートパケットではないため、これは成功しました)。 .LP 一般的には、AFS RPC の RPC 呼び出し名だけは最低限デコードされます。 ほとんどの AFS RPC は、少ななくともいくらかの引数がデコードされます (一般的には「興味のある」引数のみであり、興味についてはある定義によります)。 .LP 書式は、自明となることを意図していますが、 AFS および RX の動作に親しみのない方々にとっては有用ではないかもしれません。 .LP -v (冗長) フラグを 2 度指定すると、 確認応答パケットと追加のヘッダ情報を表示します。 これは、RX 呼び出し ID、呼び出し番号、シーケンス番号、 シリアル番号、RX パケットフラグといったものです。 .LP -v フラグを 2 度指定すると、追加情報が表示されます。 これは、RX 呼び出し ID、呼び出し番号、RX パケットフラグといったものです。 MTU ネゴシエーション情報も、RX 確認応答パケットから表示されます。 .LP -v フラグを 3 度指定すると、 セキュリティインデックスとサービス ID を表示します。 .LP アボートパケットに対しては、エラーコードが表示されます。 ただし、Ubik ビーコンパケットは例外です (Ubik プロトコルでは、アボートパケットは、肯定投票に使用されるからです)。 .LP AFS 要求は非常に大きく、 \fIsnaplen\fP を増やさなければ多くの引数が表示されないことに注意してください。 AFS トラフィックを見るには `\fB-s 256\fP' を試してみてください。 .LP AFS 応答パケットは、明示的には RPC 操作を識別しません。 代りに \fItcpdump\fP が「最近の」要求の追跡を行い、 応答に対応する要求のマッチングを、 呼び出し番号とサービス ID を使用して行います。 応答パケットが対応する要求パケットに近くないと、 パーズできないかもしれません。 .HD KIP Appletalk (DDP in UDP) .LP UDP データグラムでカプセル化された Appletalk DDP パケットは、カプセル化 を解かれ、DDP パケットとしてダンプされます (全ての UDP ヘッダ情報は破棄 されます)。 ファイル .I /etc/atalk.names が、Appletalk ネットワークおよびノード番号を名前に変換するのに用い られます。 本ファイルの内容は、以下のように記述されます。 .RS .nf .sp .5 \fInumber name\fP \f(CW1.254 ether 16.1 icsd-net 1.254.110 ace\fR .sp .5 .fi .RE 最初の 2 行は、Appletalk ネットワーク名を決めています。3 行めは、 特定のホストの名前を決めています (ホストは、3 オクテット目の有無で ネットワークと区別されます。ネットワーク番号は、2 オクテットの数字 から、ホスト番号は 3 オクテットの数字から構成される必要があります。) 数字と名前は、空白文字もしくはタブ文字で区切られます。この .I /etc/atalk.names ファイルは、空行もしくは、`#' 文字で始まるコメント行を含んでもかま いません。 .LP Appletalk アドレスは、以下のように表示されます。 .RS .nf .sp .5 \fInet.host.port\fP \f(CW144.1.209.2 > icsd-net.112.220 office.2 > icsd-net.112.220 jssmag.149.235 > icsd-net.2\fR .sp .5 .fi .RE (もし、この .I /etc/atalk.names がないか、このファイルの中にホスト番号及びネットワーク番号のエントリが 存在しない場合には、アドレスは数字で表示されます。) 最初の例は、ネットワーク 144.1 の中のノード 209 の NBP (DDP port 2) が、ネットワーク icsd のノード 112 のホストの ポート 220 を開いている何者かにデータを送信しています。 次の行は、1 行めとほぼ同じ例ですが、始点のノード名が既知である (`office') ところが異なります。 3 行目の例は、ネットワーク jssmag のノード 149 のポート 235 から、icsd-net の NBP ポートにブロードキャストでデータ送信をしています (ブロードキャストアドレス (255) は、ホスト番号なしでネットワーク番号のみ が表示されているところでわかります。このことから、/etc/atalk.names では ノード名とネットワーク名を区別する方がよいことが分かります)。 .LP NBP (name binding protocol) および ATP (Appletalk transaction protocol) パケットでは、その内容は解釈されます。 他のプロトコルは、プロトコル名 (もしくは、プロトコルが登録されていない場 合には、プロトコル番号) およびパケットサイズをダンプします。 \fBNBP パケット\fP は、以下のような形式で表示されます。 .RS .nf .sp .5 \s-2\f(CWicsd-net.112.220 > jssmag.2: nbp-lkup 190: "=:LaserWriter@*" jssmag.209.2 > icsd-net.112.220: nbp-reply 190: "RM1140:LaserWriter@*" 250 techpit.2 > icsd-net.112.220: nbp-reply 190: "techpit:LaserWriter@*" 186\fR\s+2 .sp .5 .fi .RE 最初の行は、レーザライタの名前検索要求であり、ネットワーク icsd のホスト 112 から送られ、ネットワーク jssmag へとブロードキャストされています。 検索のための nbp の ID は 190 です。 次の行は jssmag.209 からの、この要求の応答 (同じ ID を持つことに注意して下さ い) で、 ポート 250 に登録された RM1140 という名前のレーザライタがあると答 えています。 3 行めは、同じ要求に対する他のホストからの応答で、 ホスト techpit が、ポート 186 に登録されたレーザライタ "techpit" を持ってい ると答えています。 \fBATP パケット\fP の形式は、以下のように表示されます。 .RS .nf .sp .5 \s-2\f(CWjssmag.209.165 > helios.132: atp-req 12266<0-7> 0xae030001 helios.132 > jssmag.209.165: atp-resp 12266:0 (512) 0xae040000 helios.132 > jssmag.209.165: atp-resp 12266:1 (512) 0xae040000 helios.132 > jssmag.209.165: atp-resp 12266:2 (512) 0xae040000 helios.132 > jssmag.209.165: atp-resp 12266:3 (512) 0xae040000 helios.132 > jssmag.209.165: atp-resp 12266:4 (512) 0xae040000 helios.132 > jssmag.209.165: atp-resp 12266:5 (512) 0xae040000 helios.132 > jssmag.209.165: atp-resp 12266:6 (512) 0xae040000 helios.132 > jssmag.209.165: atp-resp*12266:7 (512) 0xae040000 jssmag.209.165 > helios.132: atp-req 12266<3,5> 0xae030001 helios.132 > jssmag.209.165: atp-resp 12266:3 (512) 0xae040000 helios.132 > jssmag.209.165: atp-resp 12266:5 (512) 0xae040000 jssmag.209.165 > helios.132: atp-rel 12266<0-7> 0xae030001 jssmag.209.133 > helios.132: atp-req* 12267<0-7> 0xae030002\fR\s+2 .sp .5 .fi .RE jssmag.209 は、ホスト helios に対し最大8個 ('<0-7>') までのパケットを 要求することで、トランザクション ID 12266 を開始します。行の最後の 16 進数は、 要求の中の「ユーザデータ」のフィールドの値です。 .LP helios は、8 つの 512 バイトのパケットで応答しています。トランザクション ID の後につづく「:数」は、パケットシーケンス番号を、括弧中の数値は ATP ヘッダ を除いたパケット中のデータ量を示しています。パケットシーケンス 7 のところ の `*' は、EOM ビットが設定されていることを示しています。 .LP jssmag.209 は、パケットシーケンス番号 3 と 5 のパケットの再送要求をしています。 helios はそれらを再送し、その後 jssmag.209 はトランザクションを解放します。 最後の行で、jssmag.209 は次の要求を開始します。この要求の表示 で付加されている `*' は、XO (`exactly once') が設定されていないことを示します。 .HD IP フラグメンテーション .LP フラグメントのあるインターネットデータグラムは、以下のように表示されます。 .RS .nf .sp .5 \fB(frag \fIid\fB:\fIsize\fB@\fIoffset\fB+)\fR \fB(frag \fIid\fB:\fIsize\fB@\fIoffset\fB)\fR .sp .5 .fi .RE (最初の形式では、まだフラグメントがあることを示し、2 番めの形式は、 これが最後のフラグメントであることを示しています。) .LP \fIid\fP は、フラグメント ID です。\fIsize\fP は、フラグメントサイズを バイト単位であらわしたものです。ただし IP ヘッダサイズは含みません。 \fIoffset\fP は、元のデータグラムでの本フラグメントのオフセットをバイト 単位であらわしたものです。 .LP フラグメント情報は、各フラグメントごとに表示されます。最初の フラグメントには、上位レベルのプロトコルヘッダが含まれるので、フラグ情 報がプロトコル情報の後に表示されます。2 つ目以降のフラグメントについて は、上位レベルのプロトコルヘッダを含まないので、フラグ情報は始点およ び終点アドレスの後ろに表示されます。 例えば、これは arizona.edu から lbl-rtsg.arpa への CSNET 接続での ftp の様子の一部分ですが、どうやら 576 バイト以上のデータグラムを扱えないよ うです。 .RS .nf .sp .5 \s-2\f(CWarizona.ftp-data > rtsg.1170: . 1024:1332(308) ack 1 win 4096 (frag 595a:328@0+) arizona > rtsg: (frag 595a:204@328) rtsg.1170 > arizona.ftp-data: . ack 1536 win 2560\fP\s+2 .sp .5 .fi .RE 注意すべきことがいくつかあります。まず最初に、2 行目は ポート番号を含みません。これは、TCP プロトコル情報は、最初のフラグメント に全て入っており、後のフラグメントを出力する時にはポート番号やシーケンス 番号を知る術がないからです。 次に、最初の行の TCP シーケンス情報は、パケットが 308 バイトのユーザデータ を持ってるかのように表示されますが、実際には 512 バイトのユーザデータを 持っています (308 バイトが最初のフラグ分で、204 バイトが 2 番目のフラグ分で す)。シーケンススペースの穴をさがしたり、パケットの ack の対応が正しい かをこのデータで見ようとしてはいけません。 .LP フラグメント不可フラグが設定されたパケットは、最後の部分に \fB(DF)\fP と 印が付けられます。 .HD タイムスタンプ .LP デフォルトでは、すべての出力行は最初にタイムスタンプが出力されます。 タイムスタンプは、以下の形式で、現在のクロックタイムを表示します .RS .nf \fIhh:mm:ss.frac\fP .fi .RE そして、クロックの精度は、カーネルクロックの精度に依存します。 タイムスタンプは、カーネルが最初にパケットを見つけた時間を反映します。 イーサネットインタフェースがケーブルからパケットを取り出してカーネルが 「新規パケット」割り込みを受け付けるまでのタイムラグなどは補正されません .SH 関連項目 bpf(4), pcap(3) .SH 作者 元々の作者は次の通りです: .LP Van Jacobson, Craig Leres and Steven McCanne, all of the Lawrence Berkeley National Laboratory, University of California, Berkeley, CA. .LP 現在は tcpdump.org で管理されています。 .LP 現在のバージョンは http で次のところから取得可能です: .LP .RS .I http://www.tcpdump.org/ .RE .LP 元々の配布は匿名 ftp で次のところから取得可能です: .RS .I ftp://ftp.ee.lbl.gov/tcpdump.tar.Z .RE .LP IPv6/IPsec サポートは WIDE/KAME プロジェクトが追加しました。 本プログラムは、特定の構成においては、 Eric Young の SSLeay ライブラリを使用します。 .SH バグ 問題、バグ、希望の機能拡張等については次のところに送ってください: .LP .RS tcpdump-workers@tcpdump.org .RE .LP ソースコードの寄贈等については次のところに送ってください: .LP .RS patches@tcpdump.org .RE .LP NIT では、外に出ていくトラフィックを観察できません。BPF ならできます。 後者を用いることを推奨します。 .LP 2.0[.x] カーネルの Linux システムにおいて: .IP ループバックデバイス上のパケットは 2 度観測されます。 .IP カーネル内でのパケットフィルタリングは不可能であり、 全パケットがカーネルからコピーされてユーザモードでフィルタされます。 .IP スナップショットの長さ部分ではなく、パケット全体が、 カーネルからコピーされます (2.0[.x] のパケット捕捉機構は、 パケットの一部をユーザランドへコピーするように依頼されると、 パケットの正しい長さを報告しません。 このため、ほとんどの IP パケットが .BR tcpdump でエラーとなってしまいます)。 .LP 2.2 以降のカーネルにアップグレードすることをお勧めします。 .LP IP フラグメントを再構成するか、もしくは少なくとも上位プロトコルの正し いデータサイズを計算するように設計しなおす必要があります。 .LP ネームサーバについての逆引きについては、正しくダンプされません。 実際の要求ではなく、(empty) クエスチョンセクションが、 アンサーセクションに出力されます。 逆引きについてはそれ自体がバグであると信じ、 \fItcpdump\fP ではなく逆引きを要求する プログラムを修正するべきと考える人達もいます。 .LP 夏時間との変更の時にパケットトレースを行うと、タイムスタンプは変更後の 時刻とはずれてしまいます (時間変化は無視されます)。 .LP FDDI ヘッダおよび Token Ring ヘッダを操作するようなフィルタの表現においては、 全ての FDDI パケットおよび Token Ring パケットは SNAP でカプセル化された Ethernet パケットであると仮定します。 これは、IP, ARP, DECNET フェーズ 4 については正しいですが、ISO の CLNS 等の プロトコルについては正しくありません。したがって、フィルタ表現に正しく マッチしないようなパケットを偶然に受け入れてしまうことがあります。 .LP Token Ring ヘッダ以外のフィールドに対するフィルタ式は、 始点経路制御された Token Ring パケットを正しく扱わないことがあります。 .LP .BR "ip6 proto" はヘッダチェーンを追跡すべきですが、現在のところはそうなっていません。 このために .BR "ip6 protochain" が提供されています。 .LP 例えば \fBtcp[0]\fP といったトランスポート層ヘッダに対する演算は、 IPv6 パケットに対しては動作しません。 IPv4 パケットだけを見ます。 diff --git a/ja_JP.eucJP/man/man2/bind.2 b/ja_JP.eucJP/man/man2/bind.2 index 0b96e69257..13ba6b82e5 100644 --- a/ja_JP.eucJP/man/man2/bind.2 +++ b/ja_JP.eucJP/man/man2/bind.2 @@ -1,128 +1,128 @@ .\" Copyright (c) 1983, 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. .\" .\" @(#)bind.2 8.1 (Berkeley) 6/4/93 .\" %FreeBSD: src/lib/libc/sys/bind.2,v 1.11.2.8 2001/12/14 18:34:00 ru Exp % .\" .\" $FreeBSD$ .Dd June 4, 1993 .Dt BIND 2 .Os .Sh 名称 .Nm bind .Nd assign a local protocol address to a socket .Sh ライブラリ .Lb libc .Sh 書式 .In sys/types.h .In sys/socket.h .Ft int .Fn bind "int s" "const struct sockaddr *addr" "socklen_t addrlen" .Sh 解説 .Fn bind は、ローカルプロトコルアドレスをソケットに割り当てます。ソケットは、 .Xr socket 2 で作成される時にアドレスファミリ空間に存在しますが、 プロトコルアドレスは割り当てられていません。 .Fn bind はソケットに .Fa addr を割り当てることを要求します。 .Sh 注 UNIX ドメイン内でのアドレスのバインドによってファイルシステム内に ソケットが作成されます。 これは、必要なくなったときに呼び出し側が .Pf ( Xr unlink 2 を使用して) 削除する必要があります。 .Pp アドレスのバインドで使用される規則は通信ドメイン間で異なります。 詳細については、 セクション 4 のマニュアルエントリを参照してください。 .Pp 移植性を最大にするためには、ソケット構造体は、使用前 つまりこれを .Fn bind に渡す前に、0 で埋めるべきです。 .Sh 戻り値 .Rv -std bind .Sh エラー .Fn bind 呼び出しは次の場合に失敗します。 .Bl -tag -width Er .It Bq Er EAGAIN 要求を満たすためのカーネルリソースが一時的に利用できません。 .It Bq Er EBADF .Fa s が有効な記述子ではありません。 .It Bq Er ENOTSOCK .Fa s がソケットではありません。 .It Bq Er EADDRNOTAVAIL 指定のアドレスがローカルマシンから利用できません。 .It Bq Er EADDRINUSE 指定のアドレスは既に使用中です。 .It Bq Er EACCES 要求されたアドレスは保護されており、現在のユーザが持っているパーミッションは それにアクセスするのには不適切です。 .It Bq Er EFAULT .Fa addr パラメータが有効なユーザアドレス空間ではありません。 .El .Pp 次のエラーは UNIX ドメイン内のバインドアドレスに固有のものです。 .Bl -tag -width EADDRNOTAVA .It Bq Er ENOTDIR パスの構成要素中にディレクトリ以外のものが含まれています。 .It Bq Er ENAMETOOLONG パス名の構成要素が 255 文字を越えているか、 またはパス名全体が 1023 文字を越えています。 .It Bq Er ENOENT パス名の接頭辞構成要素が存在しません。 .It Bq Er ELOOP パス名を変換するときに検出されたシンボリックリンクが多すぎます。 .It Bq Er EIO -ディレクトリエントリを作成している間、または i ノードを割り振りしている間に +ディレクトリエントリを作成している間、または inode を割り振りしている間に 入出力エラーが発生しました。 .It Bq Er EROFS 指定されたファイルは読取り専用ファイルシステム上にあります。 .It Bq Er EISDIR 空のパス名が指定されました。 .El .Sh 関連項目 .Xr connect 2 , .Xr getsockname 2 , .Xr listen 2 , .Xr socket 2 .Sh 歴史 .Fn bind 関数は .Bx 4.2 で登場しました。 diff --git a/ja_JP.eucJP/man/man2/mkdir.2 b/ja_JP.eucJP/man/man2/mkdir.2 index 062d100d27..7695bbd234 100644 --- a/ja_JP.eucJP/man/man2/mkdir.2 +++ b/ja_JP.eucJP/man/man2/mkdir.2 @@ -1,113 +1,113 @@ .\" 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. .\" .\" @(#)mkdir.2 8.2 (Berkeley) 12/11/93 .\" %FreeBSD: src/lib/libc/sys/mkdir.2,v 1.9.2.6 2001/12/14 18:34:01 ru Exp % .\" .\" $FreeBSD$ .Dd December 11, 1993 .Dt MKDIR 2 .Os .Sh 名称 .Nm mkdir .Nd ディレクトリファイルを作成する .Sh ライブラリ .Lb libc .Sh 書式 .In sys/types.h .In sys/stat.h .Ft int .Fn mkdir "const char *path" "mode_t mode" .Sh 解説 ディレクトリ .Fa path が、 .Fa mode による指定に呼び出しプロセスの .Xr umask 2 で制約を加えたアクセス許可で作成されます。 .Pp ディレクトリの所有者 ID は、プロセスの実効ユーザ ID に設定されます。 ディレクトリのグループ ID は、そのディレクトリが作成された親ディレクトリの グループ ID に設定されます。 .Sh 戻り値 .Rv -std mkdir .Sh エラー .Fn mkdir は次の場合、処理に失敗してディレクトリは作成されません。 .Bl -tag -width Er .It Bq Er ENOTDIR パスの構成要素中にディレクトリ以外のものが含まれています。 .It Bq Er ENAMETOOLONG パス名の構成要素が 255 文字を越えているか、 またはパス名全体が 1023 文字を越えています。 .It Bq Er ENOENT パスの構成要素が存在しません。 .It Bq Er EACCES 指定されたパスには、検索が許可されていないディレクトリが含まれています。 または、作成するディレクトリの親ディレクトリに対する書き込み権限が 拒否されました。 .It Bq Er ELOOP パス名を変換するときに検出されたシンボリックリンクが多すぎます。 .It Bq Er EROFS 指定されたファイルは読取り専用ファイルシステム上にあります。 .It Bq Er EEXIST 指定のファイルがすでに存在します。 .It Bq Er ENOSPC 新しいディレクトリが作成できません。 そのディレクトリを作る容量がファイルシステムに残っていません。 .It Bq Er ENOSPC ディレクトリを作成するファイルシステム上に未使用の -i ノードがありません。 +inode がありません。 .It Bq Er EDQUOT 新しいディレクトリが作成できません。ディレクトリを作るファイルシステム上の ディスクブロックのユーザのクォータが枯渇しました。 .It Bq Er EDQUOT -ディレクトリを作成中のファイルシステム上のユーザの i ノードのクォータが +ディレクトリを作成中のファイルシステム上のユーザの inode のクォータが 枯渇しました。 .It Bq Er EIO -ディレクトリエントリの作成中、あるいは i ノードを割り当て中に入出力エラーが +ディレクトリエントリの作成中、あるいは inode を割り当て中に入出力エラーが 発生しました。 .It Bq Er EIO ファイルシステムに読み書きしている間に入出力エラーが発生しました。 .It Bq Er EFAULT .Fa path は、プロセスに割り当てられたアドレス空間の範囲外を指しています。 .El .Sh 関連項目 .Xr chmod 2 , .Xr stat 2 , .Xr umask 2 .Sh 規格 .Fn mkdir 関数は .St -p1003.1-90 に準拠しています。 diff --git a/ja_JP.eucJP/man/man2/mkfifo.2 b/ja_JP.eucJP/man/man2/mkfifo.2 index fa36596391..c16fab7909 100644 --- a/ja_JP.eucJP/man/man2/mkfifo.2 +++ b/ja_JP.eucJP/man/man2/mkfifo.2 @@ -1,118 +1,118 @@ .\" 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. .\" .\" @(#)mkfifo.2 8.1 (Berkeley) 6/4/93 .\" %FreeBSD: src/lib/libc/sys/mkfifo.2,v 1.9.2.6 2001/12/14 18:34:01 ru Exp % .\" .\" $FreeBSD$ .Dd June 4, 1993 .Dt MKFIFO 2 .Os .Sh 名称 .Nm mkfifo .Nd fifo ファイルを作成する .Sh ライブラリ .Lb libc .Sh 書式 .In sys/types.h .In sys/stat.h .Ft int .Fn mkfifo "const char *path" "mode_t mode" .Sh 解説 .Fn mkfifo は、 .Fa path という名前の新しい fifo ファイルを作成します。アクセス許可は .Fa mode によって指定され、呼び出しプロセスの .Xr umask 2 の制約を受けます。 .Pp fifo の所有者 ID は、プロセスの実効ユーザ ID に設定されます。 fifo のグループ ID は、それが作成される親ディレクトリの ID に設定されます。 .Sh 戻り値 .Rv -std mkfifo .Sh エラー .Fn mkfifo は、次の場合に処理を失敗し、fifo は作成されません。 .Bl -tag -width Er .It Bq Er ENOTSUP カーネルが fifo をサポートするように構成されていません。 .It Bq Er ENOTDIR パスの構成要素中にディレクトリ以外のものが含まれています。 .It Bq Er ENAMETOOLONG パス名の構成要素が 255 文字を越えているか、 またはパス名全体が 1023 文字を越えています。 .It Bq Er ENOENT パスの構成要素が存在しません。 .It Bq Er EACCES 指定されたパスには、検索が許可されていないディレクトリが含まれています。 .It Bq Er ELOOP パス名を変換するときに検出されたシンボリックリンクが多すぎます。 .It Bq Er EROFS 指定されたファイルは読取り専用ファイルシステム上にあります。 .It Bq Er EEXIST 指定のファイルがすでに存在します。 .It Bq Er ENOSPC 新しい fifo 用のエントリを配置するディレクトリが拡張できません。 ディレクトリが入っているファイルシステムに空き容量が残っていません。 .It Bq Er ENOSPC -fifo を作成するファイルシステム上に未使用の i ノードがありません。 +fifo を作成するファイルシステム上に未使用の inode がありません。 .It Bq Er EDQUOT 新しい fifo 用のエントリを配置するディレクトリが拡張できません。 ディレクトリが入っているファイルシステム上のディスクブロックのユーザの クォータが枯渇しました。 .It Bq Er EDQUOT -fifo を作成中のファイルシステム上のユーザの i ノードのクォータが +fifo を作成中のファイルシステム上のユーザの inode のクォータが 枯渇しました。 .It Bq Er EIO -ディレクトリエントリの作成中、あるいは i ノードを割り当て中に +ディレクトリエントリの作成中、あるいは inode を割り当て中に .Tn I/O (入出力) エラーが発生しました。 .It Bq Er EIO ファイルシステムに読み書きしている間に .Tn I/O (入出力) エラーが発生しました。 .It Bq Er EFAULT .Fa path は、プロセスに割り当てられたアドレス空間の範囲外を指しています。 .El .Sh 関連項目 .Xr chmod 2 , .Xr mknod 2 , .Xr stat 2 , .Xr umask 2 .Sh 規格 .Fn mkfifo 関数は .St -p1003.1-90 に準拠しています。 diff --git a/ja_JP.eucJP/man/man2/mknod.2 b/ja_JP.eucJP/man/man2/mknod.2 index 8975d318b9..25586001e8 100644 --- a/ja_JP.eucJP/man/man2/mknod.2 +++ b/ja_JP.eucJP/man/man2/mknod.2 @@ -1,121 +1,121 @@ .\" 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.2 8.1 (Berkeley) 6/4/93 .\" %FreeBSD: src/lib/libc/sys/mknod.2,v 1.9.2.3 2001/12/14 18:34:01 ru Exp % .\" .\" $FreeBSD$ .Dd June 4, 1993 .Dt MKNOD 2 .Os .Sh 名称 .Nm mknod .Nd 特殊なファイルノードを作成する .Sh ライブラリ .Lb libc .Sh 書式 .In unistd.h .Ft int .Fn mknod "const char *path" "mode_t mode" "dev_t dev" .Sh 解説 ファイルシステムノード .Fa path が、 .Fa mode で指定されたファイルタイプとアクセス許可で 作成されます。アクセス許可はプロセスの umask 値による修正を受けます。 .Pp .Fa mode がブロックまたはキャラクタ型特殊ファイルを示す場合、 .Fa dev はシステム上の特定のデバイスを示す 構成に依存する指示です。そうでない場合 .Fa dev は無視されます。 .Pp .Fn mknod にはスーパユーザ権限が必要です。 .Sh 戻り値 .Rv -std mknod .Sh エラー .Fn mknod は次の場合に処理に失敗し、ファイルは作成されません。 .Bl -tag -width Er .It Bq Er ENOTDIR パスの構成要素中にディレクトリ以外のものが含まれています。 .It Bq Er ENAMETOOLONG パス名の構成要素が 255 文字を越えているか、 またはパス名全体が 1023 文字を越えています。 .It Bq Er ENOENT パスの構成要素が存在しません。 .It Bq Er EACCES 指定されたパスには、検索が許可されていないディレクトリが含まれています。 .It Bq Er ELOOP パス名を変換するときに検出されたシンボリックリンクが多すぎます。 .It Bq Er EPERM プロセスの実効ユーザ ID がスーパユーザではありません。 .It Bq Er EIO -ディレクトリエントリの作成中、あるいは i ノードを割り当て中に +ディレクトリエントリの作成中、あるいは inode を割り当て中に 入出力エラーが発生しました。 .It Bq Er ENOSPC 新しいノード用のエントリを配置するディレクトリが拡張できません。 ディレクトリが入っているファイルシステム上に空き容量が残っていません。 .It Bq Er ENOSPC -ノードを作成するファイルシステム上に未使用の i ノードがありません。 +ノードを作成するファイルシステム上に未使用の inode がありません。 .It Bq Er EDQUOT 新しいノードのエントリを配置するディレクトリが拡張できません。 ディレクトリが入っているファイルシステム上のディスクブロックのユーザの クォータが枯渇しました。 .It Bq Er EDQUOT -ノードを作成中のファイルシステム上の i ノードのユーザのクォータが +ノードを作成中のファイルシステム上の inode のユーザのクォータが 枯渇しました。 .It Bq Er EROFS 指定されたファイルは読取り専用ファイルシステム上にあります。 .It Bq Er EEXIST 指定のファイルがすでに存在しています。 .It Bq Er EFAULT .Fa path は、プロセスに割り当てられたアドレス空間の範囲外を指しています。 .It Bq Er EINVAL ブロックまたはキャラクタ型特殊ファイル (または .Em whiteout ) 以外の作成は行われません。 .El .Sh 関連項目 .Xr chmod 2 , .Xr mkfifo 2 , .Xr stat 2 , .Xr umask 2 .Sh 歴史 .Fn mknod 関数は .At v6 で登場しました。 diff --git a/ja_JP.eucJP/man/man2/rmdir.2 b/ja_JP.eucJP/man/man2/rmdir.2 index 4b8da3fb1f..54ed88d79e 100644 --- a/ja_JP.eucJP/man/man2/rmdir.2 +++ b/ja_JP.eucJP/man/man2/rmdir.2 @@ -1,107 +1,107 @@ .\" 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. .\" .\" @(#)rmdir.2 8.1 (Berkeley) 6/4/93 .\" %FreeBSD: src/lib/libc/sys/rmdir.2,v 1.5.2.5 2001/12/14 18:34:01 ru Exp % .\" .\" $FreeBSD$ .Dd June 4, 1993 .Dt RMDIR 2 .Os .Sh 名称 .Nm rmdir .Nd ディレクトリファイルを削除する .Sh ライブラリ .Lb libc .Sh 書式 .In unistd.h .Ft int .Fn rmdir "const char *path" .Sh 解説 .Fn rmdir は、名前が .Fa path で指定されるディレクトリファイルを削除します。 ディレクトリには .Ql .\& と .Ql \&.. 以外のエントリがあってはなりません。 .Sh 戻り値 .Rv -std rmdir .Sh エラー 次の場合を除いて、指定されたファイルが削除されます。 .Bl -tag -width Er .It Bq Er ENOTDIR パスの構成要素中にディレクトリ以外のものが含まれています。 .It Bq Er ENAMETOOLONG パス名の構成要素が 255 文字を越えているか、 またはパス名全体が 1023 文字を越えています。 .It Bq Er ENOENT 指定されたディレクトリが存在しません。 .It Bq Er ELOOP パス名を変換するときに検出されたシンボリックリンクが多すぎます。 .It Bq Er ENOTEMPTY 指定されたディレクトリには .Ql .\& と .Ql ..\& 以外のファイルが含まれています。 .It Bq Er EACCES 指定されたパスには、検索が許可されていないディレクトリが含まれています。 .It Bq Er EACCES 削除するリンクが入っているディレクトリの書込みが許可されていません。 .It Bq Er EPERM 削除するディレクトリが入っているディレクトリは スティッキービットが設定されており、 削除したいディレクトリを含んでいるディレクトリ または削除するディレクトリの どちらかあるいは両方の所有者が実効ユーザ ID とは異なっています。 .It Bq Er EBUSY 削除しようとしているディレクトリは、 ファイルシステムがマウントされているマウントポイントです。 .It Bq Er EIO ディレクトリエントリを削除している間、 -または i ノードの割り当てを解除している間に入出力エラーが発生しました。 +または inode の割り当てを解除している間に入出力エラーが発生しました。 .It Bq Er EROFS 削除するディレクトリエントリは読取り専用ファイルシステム上にあります。 .It Bq Er EFAULT .Fa path は、プロセスに割り当てられたアドレス空間の範囲外を指しています。 .El .Sh 関連項目 .Xr mkdir 2 , .Xr unlink 2 .Sh 歴史 .Fn rmdir 関数は .Bx 4.2 で登場しました。 diff --git a/ja_JP.eucJP/man/man2/stat.2 b/ja_JP.eucJP/man/man2/stat.2 index ff1daaa587..0f82fbd898 100644 --- a/ja_JP.eucJP/man/man2/stat.2 +++ b/ja_JP.eucJP/man/man2/stat.2 @@ -1,267 +1,267 @@ .\" Copyright (c) 1980, 1991, 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. .\" .\" @(#)stat.2 8.4 (Berkeley) 5/1/95 .\" %FreeBSD: src/lib/libc/sys/stat.2,v 1.16.2.7 2001/12/14 18:34:01 ru Exp % .\" .\" $FreeBSD$ .Dd May 1, 1995 .Dt STAT 2 .Os .Sh 名称 .Nm stat , .Nm lstat , .Nm fstat .Nd ファイルステータスの取得 .Sh ライブラリ .Lb libc .Sh 書式 .In sys/types.h .In sys/stat.h .Ft int .Fn stat "const char *path" "struct stat *sb" .Ft int .Fn lstat "const char *path" "struct stat *sb" .Ft int .Fn fstat "int fd" "struct stat *sb" .Sh 解説 .Fn stat 関数は、 .Fa path が指すファイルの情報を取得します。 指定したファイルの読取り権、書込み権、実行権は必要ありません。 しかし、そのファイルへ至るパス名で列挙されたすべてのディレクトリは、 検索可能であることが必要です。 .Pp .Fn lstat は .Fn stat に似ていますが、指定したファイルがシンボリックリンクである場合は異なります。 .Fn lstat はリンクの情報を戻しますが、 .Fn stat はリンクが参照するファイルの情報を返します。 .Pp .Fn fstat は、ファイル記述子 .Fa fd で区別されるオープンファイルについて、上と同じ情報を取得します。 .Pp 引数 .Fa sb は、構造体 .Fn stat へのポインタです。これは、 .Aq Pa sys/stat.h (下記参照) で定義され、ファイルに関する情報を保持します。 .Bd -literal struct stat { dev_t st_dev; /* inode のデバイス */ ino_t st_ino; /* inode 番号 */ mode_t st_mode; /* inode 保護モード */ nlink_t st_nlink; /* ハードリンク数 */ uid_t st_uid; /* ファイル所有者のユーザ ID */ gid_t st_gid; /* ファイルグループのグループ ID */ dev_t st_rdev; /* デバイスタイプ */ #ifndef _POSIX_SOURCE struct timespec st_atimespec; /* 最後のアクセス時刻 */ struct timespec st_mtimespec; /* 最後のデータ修正時刻 */ struct timespec st_ctimespec; /* 最後のファイルステータス修正時刻 */ #else time_t st_atime; /* 最後のアクセス時刻 */ long st_atimensec; /* 最後のアクセス時刻のナノ秒 */ time_t st_mtime; /* 最後のデータ修正時刻 */ long st_mtimensec; /* 最後のデータ修正時刻のナノ秒 */ time_t st_ctime; /* 最後のファイルステータス修正時刻 */ long st_ctimensec; /* 最後のファイルステータス修正時刻のナノ秒 */ #endif off_t st_size; /* バイト単位のファイルの大きさ */ int64_t st_blocks; /* ファイルに割り当てられたブロック数 */ u_int32_t st_blksize; /* 入出力に最適なブロックサイズ */ u_int32_t st_flags; /* ファイルに対するユーザ定義フラグ */ u_int32_t st_gen; /* ファイル生成番号 */ }; .Ed .Pp .Fa struct stat の時刻に関するフィールドは、以下のとおりです。 .Bl -tag -width XXXst_mtime .It st_atime ファイルのデータが最後にアクセスされた時刻。 .Xr mknod 2 , .Xr utimes 2 , .Xr read 2 システムコールで変更されます。 .It st_mtime ファイルのデータが最後に修正された時刻。 .Xr mknod 2 , .Xr utimes 2 , .Xr write 2 システムコールで変更されます。 .It st_ctime ファイルステータスが最後に変更された時刻 (inode データの修正)。 .Xr chmod 2 , .Xr chown 2 , .Xr link 2 , .Xr mknod 2 , .Xr rename 2 , .Xr unlink 2 , .Xr utimes 2 , .Xr write 2 システムコールで変更されます。 .El .Pp .Dv _POSIX_SOURCE が定義されていない場合、時刻に関するフィールドは以下のように定義されます。 .Bd -literal #ifndef _POSIX_SOURCE #define st_atime st_atimespec.tv_sec #define st_mtime st_mtimespec.tv_sec #define st_ctime st_ctimespec.tv_sec #endif .Ed .Pp .Fa struct stat のサイズに関するフィールドは、以下のとおりです。 .Bl -tag -width XXXst_blksize .It st_blksize ファイルの最適な入出力ブロックサイズ。 .It st_blocks ファイルに 512 バイト単位で割り当てられたブロックの実際の数。 -短いシンボリックリンクが i ノードに保持されている場合、この数値が +短いシンボリックリンクが inode に保持されている場合、この数値が 0 になることがあります。 .El .Pp ステータス情報ワード .Fa st_mode には、以下のようなビットがあります。 .Bd -literal #define S_IFMT 0170000 /* ファイルのタイプ */ #define S_IFIFO 0010000 /* 名前付きパイプ (fifo) */ #define S_IFCHR 0020000 /* キャラクタ型特殊ファイル */ #define S_IFDIR 0040000 /* ディレクトリ */ #define S_IFBLK 0060000 /* ブロック型特殊ファイル */ #define S_IFREG 0100000 /* 通常 */ #define S_IFLNK 0120000 /* シンボリックリンク */ #define S_IFSOCK 0140000 /* ソケット */ #define S_IFWHT 0160000 /* ホワイトアウト */ #define S_ISUID 0004000 /* 実行時にユーザ ID を設定 */ #define S_ISGID 0002000 /* 実行時にグループ ID を設定 */ #define S_ISVTX 0001000 /* 使用後にもスワップされたテキストを保存 */ #define S_IRUSR 0000400 /* 読み込み権限の所有者 */ #define S_IWUSR 0000200 /* 書き込み権限の所有者 */ #define S_IXUSR 0000100 /* 実行/検索権限の所有者 */ .Ed アクセスモードのリストについては、 .Aq Pa sys/stat.h , .Xr access 2 , .Xr chmod 2 を参照してください。 .Sh 戻り値 .Rv -std .Sh 互換性 以前のバージョンのシステムでは、 .Li st_dev , .Li st_uid , .Li st_gid , .Li st_rdev , .Li st_size , .Li st_blksize , .Li st_blocks フィールドに別のタイプを使用していました。 .Sh エラー .Fn stat と .Fn lstat は、以下のような場合にエラーとなります。 .Bl -tag -width Er .It Bq Er ENOTDIR パスの構成要素中にディレクトリ以外のものが含まれています。 .It Bq Er ENAMETOOLONG パス名の構成要素が 255 文字を越えているか、 またはパス名全体が 1023 文字を越えています。 .It Bq Er ENOENT 指定されたファイルが存在しません。 .It Bq Er EACCES 指定されたパスには、 検索が許可されていないディレクトリが含まれています。 .It Bq Er ELOOP パス名を変換するときに検出されたシンボリックリンクが多すぎます。 .It Bq Er EFAULT .Fa sb か .Em name は、プロセスに割り当てられたアドレス空間の範囲外を指しています。 .It Bq Er EIO ファイルシステムでの読み書き中に入出力エラーが発生しました。 .El .Pp .Fn fstat は、以下のような場合にエラーとなります。 .Bl -tag -width Er .It Bq Er EBADF .Fa fd が、有効な記述子ではありません。 .It Bq Er EFAULT .Fa sb は、プロセスに割り当てられたアドレス空間の範囲外を指しています。 .It Bq Er EIO ファイルシステムに読み書きしている間に入出力エラーが発生しました。 .El .Sh 関連項目 .Xr access 2 , .Xr chmod 2 , .Xr chown 2 , .Xr utimes 2 , .Xr symlink 7 .Sh バグ .Fn fstat をソケット (およびパイプ) に適用すると、ブロックサイズフィールド、 -および固有デバイスと i ノード番号以外に 0 の入ったバッファが戻されます。 +および固有デバイスと inode 番号以外に 0 の入ったバッファが戻されます。 .Sh 規格 .Fn stat 関数呼び出しと .Fn fstat 関数呼び出しは、 .St -p1003.1-90 に準拠しています。 .Sh 歴史 .Fn stat 関数呼び出しと .Fn fstat 関数呼び出しは、 .At v7 で登場しました。 .Fn lstat 関数呼び出しは .Bx 4.2 で登場しました。 .\" Amended by N.Kumagai 2000-3-18 diff --git a/ja_JP.eucJP/man/man2/symlink.2 b/ja_JP.eucJP/man/man2/symlink.2 index 3d35c99a8c..73820f1eaa 100644 --- a/ja_JP.eucJP/man/man2/symlink.2 +++ b/ja_JP.eucJP/man/man2/symlink.2 @@ -1,133 +1,133 @@ .\" 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. .\" .\" @(#)symlink.2 8.1 (Berkeley) 6/4/93 .\" %FreeBSD: src/lib/libc/sys/symlink.2,v 1.8.2.4 2001/12/14 18:34:01 ru Exp % .\" .\" $FreeBSD$ .Dd June 4, 1993 .Dt SYMLINK 2 .Os .Sh 名称 .Nm symlink .Nd ファイルへのシンボリックリンクの作成 .Sh ライブラリ .Lb libc .Sh 書式 .In unistd.h .Ft int .Fn symlink "const char *name1" "const char *name2" .Sh 解説 シンボリックリンク .Fa name2 が .Fa name1 に作成されます .Pf ( Fa name2 は作成されるファイルの名前で、 .Fa name1 はシンボリックリンクの作成に使用される文字列です)。 どちらの名前も任意のパス名です。 ファイルが同じファイルシステムに存在する必要はありません。 .Sh 戻り値 .Rv -std symlink .Sh エラー 以下のような場合、シンボリックリンクはエラーとなります。 .Bl -tag -width Er .It Bq Er ENOTDIR .Fa name2 パスの構成要素中にディレクトリ以外のものが含まれています。 .It Bq Er ENAMETOOLONG パス名の構成要素が 255 文字を越えているか、 またはパス名全体が 1023 文字を越えています。 .It Bq Er ENOENT 指定されたファイルが存在しません。 .It Bq Er EACCES .Fa name2 指定されたパスには、検索が許可されていないディレクトリが含まれています。 .It Bq Er ELOOP パス名を変換するときに検出されたシンボリックリンクが多すぎます。 .It Bq Er EEXIST .Fa name2 がすでに存在します。 .It Bq Er EIO .Fa name2 のディレクトリエントリの作成中、または .Fa name2 -の i ノード の割り当て中、あるいは +の inode の割り当て中、あるいは .Fa name2 のリンクコンテンツの書き出し中に 入出力エラーが発生しました。 .It Bq Er EROFS ファイル .Fa name2 は読取り専用ファイルシステム上にあります。 .It Bq Er ENOSPC 新しいシンボリックリンクを作成するディレクトリを含むファイルシステム上に 空間が残っていないため、新しいシンボリックリンクを作成できません。 .It Bq Er ENOSPC シンボリックリンクを含むファイルシステム上にシンボリックリンクを 作る空間が残っていないため、 新しいシンボリックリンクを作成できません。 .It Bq Er ENOSPC -シンボリックリンクを作成するファイルシステム上の i ノードが枯渇しました。 +シンボリックリンクを作成するファイルシステム上の inode が枯渇しました。 .It Bq Er EDQUOT 新しいシンボリックリンクのエントリを配置するディレクトリ ディレクトリを含むファイルシステム上のユーザのディスクブロックが 枯渇したため、作成できません。 .It Bq Er EDQUOT シンボリックリンクを作るファイルシステム上のユーザの ディスクブロックのクォータが枯渇したため、 新しいシンボリックリンクを作成できません。 .It Bq Er EDQUOT -シンボリックリンクを作成するファイルシステム上のユーザの i ノードの +シンボリックリンクを作成するファイルシステム上のユーザの inode の クォータが枯渇しました。 .It Bq Er EIO -ディレクトリエントリの作成中、または i ノードの割り当て中に +ディレクトリエントリの作成中、または inode の割り当て中に 入出力エラーが発生しました。 .It Bq Er EFAULT .Fa name1 か .Fa name2 が、プロセスに割り当てられたアドレス空間の範囲外を指しています。 .El .Sh 関連項目 .Xr ln 1 , .Xr link 2 , .Xr lstat 2 , .Xr readlink 2 , .Xr unlink 2 , .Xr symlink 7 .Sh 歴史 .Fn symlink 関数呼び出しは、 .Bx 4.2 で登場しました。 diff --git a/ja_JP.eucJP/man/man2/utimes.2 b/ja_JP.eucJP/man/man2/utimes.2 index cc3a3b2cf1..896245839c 100644 --- a/ja_JP.eucJP/man/man2/utimes.2 +++ b/ja_JP.eucJP/man/man2/utimes.2 @@ -1,175 +1,175 @@ .\" %NetBSD: utimes.2,v 1.13 1999/03/22 19:45:11 garbled Exp % .\" .\" Copyright (c) 1990, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)utimes.2 8.1 (Berkeley) 6/4/93 .\" %FreeBSD: src/lib/libc/sys/utimes.2,v 1.8.2.4 2001/12/14 18:34:02 ru Exp % .\" .\" $FreeBSD$ .Dd June 4, 1993 .Dt UTIMES 2 .Os .Sh 名称 .Nm utimes , .Nm lutimes , .Nm futimes .Nd ファイルアクセス時刻と更新時刻の設定 .Sh ライブラリ .Lb libc .Sh 書式 .In sys/time.h .Ft int .Fn utimes "const char *path" "const struct timeval *times" .Ft int .Fn lutimes "const char *path" "const struct timeval *times" .Ft int .Fn futimes "int fd" "const struct timeval *times" .Sh 解説 .Fa path で指定したファイルか .Fa fd が参照するファイルのアクセス時刻と更新時刻を、引数 .Fa times で指定されたように変更します。 .Pp .Fa times が .Dv NULL である場合、アクセス時刻と更新時刻は現在の時刻に設定されます。 呼び出し側はファイルの所有者でファイルの書込み権があるか、 スーパユーザである必要があります。 .Pp .Fa times が NULL 以外である場合、 .Fa times は 2 つの timeval 構造体の配列を指していることが前提となります。 アクセス時刻は最初の要素に、更新時刻は次の要素に 設定します。呼出し側はファイルの所有者であるか スーパユーザである必要があります。 .Pp -どちらの場合でも、ファイルの i ノード変更時刻は現在の時刻に設定されます。 +どちらの場合でも、ファイルの inode 変更時刻は現在の時刻に設定されます。 .Pp .Fn lutimes は指定したファイルがシンボリックリンク以外では .Fn utimes と同じです。シンボリックリンクの場合 .Fn lutimes はリンクのアクセス時刻と更新時刻を変更するのに対し、 .Fn utimes はリンクが参照するファイルの時刻を変更します。 .Sh 戻り値 .Rv -std .Sh エラー .Fn utimes と .Fn lutimes は、以下のような場合にエラーとなります。 .Bl -tag -width Er .It Bq Er EACCES 指定されたパスには、検索が許可されていないディレクトリが含まれています。 あるいは .Fa times 引数が NULL で、プロセスの実効ユーザ ID がファイルの所有者と一致せず、 しかもスーパユーザでもなく、書込みアクセスが拒否されました。 .It Bq Er EFAULT .Fa path または .Fa times は、プロセスに割り当てられたアドレス空間の範囲外を指しています。 .It Bq Er EIO -変更される i ノードの読書きの間に入出力エラーが発生しました。 +変更される inode の読書きの間に入出力エラーが発生しました。 .It Bq Er ELOOP パス名を変換するときに検出されたシンボリックリンクが多すぎます。 .It Bq Er ENAMETOOLONG パス名の構成要素が .Dv NAME_MAX 文字を越えているか、またはパス名全体 .Dv PATH_MAX 文字を越えています。 .It Bq Er ENOENT 指定したファイルが存在しません。 .It Bq Er ENOTDIR パスの構成要素中にディレクトリ以外のものが含まれています。 .It Bq Er EPERM .Fa times 引数がヌルではなく、呼び出し側プロセスの実効ユーザ ID が、 ファイルの所有者と一致せず、しかもスーパユーザではありません。 .It Bq Er EROFS そのファイルを含むファイルシステムが、 読取り専用でマウントされています。 .El .Pp .Fn futimes は、以下の場合にエラーとなります。 .Bl -tag -width Er .It Bq Er EBADF .Fa fd が、有効な記述子を参照していません。 .El .Pp すべての関数は、以下の場合にエラーとなります。 .Bl -tag -width Er .It Bq Er EACCES .Fa times 引数が .Dv ヌル であり、プロセスの実効ユーザ ID が ファイルの所有者と一致せず、しかもスーパユーザでもなく、 書込みアクセスが拒否されました。 .It Bq Er EFAULT .Fa times は、プロセスに割り当てられたアドレス空間の範囲外を指しています。 .It Bq Er EIO -変更される i ノードの読み書き中に入出力エラーが発生しました。 +変更される inode の読み書き中に入出力エラーが発生しました。 .It Bq Er EPERM .Fa times 引数が .Dv ヌル ではなく、呼び出し側プロセスの実効ユーザ ID が、 ファイルの所有者と一致せず、しかもスーパユーザでもありません。 .It Bq Er EROFS そのファイルを含むファイルシステムが読取り専用でマウントされています。 .El .Sh 関連項目 .Xr stat 2 , .Xr utime 3 .Sh 歴史 .Fn utimes 関数は .Bx 4.2 で登場しました。 .Fn futimes 関数と .Fn lutimes 関数は .Fx 3.0 ではじめて登場しました。 diff --git a/ja_JP.eucJP/man/man5/types.5 b/ja_JP.eucJP/man/man5/types.5 index 9c8e2f03a4..c1a84dcc15 100644 --- a/ja_JP.eucJP/man/man5/types.5 +++ b/ja_JP.eucJP/man/man5/types.5 @@ -1,240 +1,240 @@ .\" 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. .\" .\" @(#)types.5 8.1 (Berkeley) 6/5/93 .\" %FreeBSD: src/share/man/man5/types.5,v 1.10.2.2 2001/12/17 11:30:15 ru Exp % .\" $FreeBSD$ .\" .Dd June 5, 1993 .Dt TYPES 5 .Os .Sh 名称 .Nm types .Nd システムのデータ型 .Sh 書式 .In sys/types.h .Sh 解説 ファイル .Pa sys/types.h はカーネル内部で (ほとんどの物はシステム全体を通じて) 用いられる、 定義済みのデータ型を含みます。 .Bd -literal #ifndef _SYS_TYPES_H_ #define _SYS_TYPES_H_ /* 機種に依存するパラメータ。 */ #include /* をインクルードします */ #include #ifndef _POSIX_SOURCE typedef unsigned char u_char; typedef unsigned short u_short; typedef unsigned int u_int; typedef unsigned long u_long; typedef unsigned short ushort; /* Sys V との互換性 */ typedef unsigned int uint; /* Sys V との互換性 */ #endif typedef __uint8_t u_int8_t; typedef __uint16_t u_int16_t; typedef __uint32_t u_int32_t; typedef __uint64_t u_int64_t; typedef u_int64_t u_quad_t; /* 4 倍長語 */ typedef int64_t quad_t; typedef quad_t * qaddr_t; typedef char * caddr_t; /* コアアドレス */ typedef __const char * c_caddr_t; /* コアアドレスの const へのポインタ */ typedef __volatile char *v_caddr_t; /* コアアドレスの volatile へのポインタ */ typedef int32_t daddr_t; /* ディスクアドレス */ typedef u_int32_t u_daddr_t; /* 符号無しのディスク番号 */ typedef u_int32_t fixpt_t; /* 固定小数点数 */ typedef u_int32_t fixpt_t; /* 固定小数点数 */ typedef u_int32_t gid_t; /* グループ ID */ -typedef u_int32_t ino_t; /* i ノード番号 */ +typedef u_int32_t ino_t; /* inode 番号 */ typedef long key_t; /* IPC キー (Sys V プロセス間通信用) */ typedef u_int16_t mode_t; /* パーミッション */ typedef u_int16_t nlink_t; /* リンクカウント */ typedef _BSD_OFF_T_ off_t; /* ファイルオフセット */ typedef _BSD_PID_T_ pid_t; /* プロセス ID */ typedef quad_t rlim_t; /* リソースリミット */ #ifdef __alpha__ /* XXX should be in */ typedef int64_t segsz_t; /* セグメントサイズ */ #else typedef int32_t segsz_t; /* セグメントサイズ */ #endif typedef int32_t swblk_t; /* スワップオフセット */ typedef int32_t ufs_daddr_t; typedef u_int32_t uid_t; /* ユーザ id */ #ifdef _KERNEL typedef int boolean_t; typedef u_int64_t uoff_t; typedef struct vm_page *vm_page_t; #endif #ifdef _KERNEL struct specinfo; typedef u_int32_t udev_t; /* デバイス番号 */ typedef struct specinfo *dev_t; #else /* !_KERNEL */ typedef u_int32_t dev_t; /* デバイス番号 */ #define udev_t dev_t #ifndef _POSIX_SOURCE /* * minor() はインデックスの代わりにクッキーを与えます。この理由は、 * ビット0-15 の意味の変更を避けるためと、ビット 16-31 をシフトする * ことに起因してこれを使わないデバイスにとっては時間と空間の無駄遣い * になることを避けるためです。 */ .\" 「昔は dev_t は 16 ビットで、 .\" 16 bit の上位 8 bit が major で下位 8 bit が minor だった」 .\" ということを暗に言っている? .\" だとすると原文は以上のような前提知識を要求しており、読解難だと思う .\" horikawa@jp.FreeBSD.org 2000/02/19 #define major(x) ((int)(((u_int)(x) >> 8)&0xff)) /* メジャー番号 */ #define minor(x) ((int)((x)&0xffff00ff)) /* マイナ番号 */ #define makedev(x,y) ((dev_t)(((x) << 8) | (y))) /* dev_t を生成する */ #endif /* _POSIX_SOURCE */ #endif /* !_KERNEL */ #include #ifdef _BSD_CLOCK_T_ typedef _BSD_CLOCK_T_ clock_t; #undef _BSD_CLOCK_T_ #endif #ifdef _BSD_CLOCKID_T_ typedef _BSD_CLOCKID_T_ clockid_t; #undef _BSD_CLOCKID_T_ #endif #ifdef _BSD_SIZE_T_ typedef _BSD_SIZE_T_ size_t; #undef _BSD_SIZE_T_ #endif #ifdef _BSD_SSIZE_T_ typedef _BSD_SSIZE_T_ ssize_t; #undef _BSD_SSIZE_T_ #endif #ifdef _BSD_TIME_T_ typedef _BSD_TIME_T_ time_t; #undef _BSD_TIME_T_ #endif #ifdef _BSD_TIMER_T_ typedef _BSD_TIMER_T_ timer_t; #undef _BSD_TIMER_T_ #endif #ifndef _POSIX_SOURCE #define NBBY 8 /* 1 バイトに含まれるビット数 */ /* * select は long 型のファイル記述子ビットマスクを用います。これらの * マクロはこの型のビットフィールドを操作します (ファイルシステムの * マクロは char 型を用います)。 * FD_SETSIZE はユーザによって定義することもできますが、ほとんどの * ユーザにとっては、ここに示すデフォルトで十分でしょう。 */ #ifndef FD_SETSIZE #define FD_SETSIZE 1024 #endif typedef long fd_mask; #define NFDBITS (sizeof(fd_mask) * NBBY) /* マスクごとのビット */ #ifndef howmany #define howmany(x, y) (((x) + ((y) - 1)) / (y)) #endif typedef struct fd_set { fd_mask fds_bits[howmany(FD_SETSIZE, NFDBITS)]; } fd_set; #define FD_SET(n, p) ((p)->fds_bits[(n)/NFDBITS] |= (1 << ((n) % NFDBITS))) #define FD_CLR(n, p) ((p)->fds_bits[(n)/NFDBITS] &= ~(1 << ((n) % NFDBITS))) #define FD_ISSET(n, p) ((p)->fds_bits[(n)/NFDBITS] & (1 << ((n) % NFDBITS))) #define FD_COPY(f, t) bcopy(f, t, sizeof(*(f))) #define FD_ZERO(p) bzero(p, sizeof(*(p))) /* * これらの宣言は別のところに属しますが、ここと で繰り返して * います。壊れたプログラムが 64 ビットの off_t で動作するようにする * 機会を増すためです。 */ #ifndef _KERNEL __BEGIN_DECLS #ifndef _FTRUNCATE_DECLARED #define _FTRUNCATE_DECLARED int ftruncate __P((int, off_t)); #endif #ifndef _LSEEK_DECLARED #define _LSEEK_DECLARED off_t lseek __P((int, off_t, int)); #endif #ifndef _MMAP_DECLARED #define _MMAP_DECLARED void * mmap __P((void *, size_t, int, int, int, off_t)); #endif #ifndef _TRUNCATE_DECLARED #define _TRUNCATE_DECLARED int truncate __P((const char *, off_t)); #endif __END_DECLS #endif /* !_KERNEL */ #endif /* !_POSIX_SOURCE */ #endif /* !_SYS_TYPES_H_ */ .Ed .Sh 関連項目 .Xr gdb 1 , .Xr lseek 2 , .Xr time 3 , .Xr fs 5 .Sh 歴史 .Nm ファイルは .At v7 から登場しました。 diff --git a/ja_JP.eucJP/man/man7/tuning.7 b/ja_JP.eucJP/man/man7/tuning.7 index a4fdaae278..2634d8f81c 100644 --- a/ja_JP.eucJP/man/man7/tuning.7 +++ b/ja_JP.eucJP/man/man7/tuning.7 @@ -1,756 +1,756 @@ .\" Copyright (c) 2001, Matthew Dillon. Terms and conditions are those of .\" the BSD Copyright as specified in the file "/usr/src/COPYRIGHT" in .\" the source tree. .\" .\" %FreeBSD: src/share/man/man7/tuning.7,v 1.1.2.26 2002/01/11 23:59:24 bmah Exp % .\" .\" $FreeBSD$ .Dd May 25, 2001 .Dt TUNING 7 .Os .Sh 名称 .Nm tuning .Nd FreeBSD における性能チューニング .Sh システム設定 - disklabel, newfs, tunefs, スワップ .Xr disklabel 8 を使ってハードディスク上にファイルシステムをレイアウトする場合、 ディスクの内周トラックよりも外周トラックのほうがずっと速くデータを 転送できることを意識することが重要です。この利点を生かすには、 小さいファイルシステムやスワップを外周トラックに近いほうから 詰めていくべきです。より大きいファイルシステムは内周へ近いほうへ詰めていき、 最も大きいファイルシステムを最後にします。 後でマシンを増強した時にシステム標準のファイルシステムの大きさを 変更しなくて済むような大きさに決めることが重要です。 私は大抵、順番にルートパーティションに 128M、スワップに 1G、 .Pa /var に 128M、 .Pa /var/tmp に 128M、 .Pa /usr に 3G、 そして残りを .Pa /home に割り当てます。 .Pp 典型的にはメインメモリの約 2 倍のスワップスペースを用意すべきです。 RAM がそれほど多くない場合は、一般にもっとスワップが必要でしょう。 256M より小さいスワップを設定するのは奨められません。スワップ パーティションの大きさを決めるときは将来のメモリ増設のことを 考えておくべきです。 カーネルの VM ページングアルゴリズムは、スワップの大きさが メインメモリの少なくとも 2 倍ある場合に最高の 性能が出るようにチューンされています。スワップを小さくしすぎると、 VM ページ走査コードが効率的に動かなくなります。 メモリをさらに追加した時も同様です。 最後に、複数の SCSI ディスク (あるいは異なるコントローラ上にある 複数の IDE ディスク) を備えた大規模なシステムにおいては、 それぞれのドライブ (最大 4 ドライブ) にスワップを置くことを強く推奨します。 各ドライブ上のスワップパーティションがほぼ同じ大きさになる ようにしてください。 カーネルは任意の大きさを扱うことができますが、内部のデータ構造は 最大のスワップパーティションのものの 4 倍の大きさになってしまいます。 スワップパーティションをだいたい同じ大きさにすることで、 カーネルは最適な方法でスワップ空間を N 台のディスクに対し ストライピングします。 少々のやりすぎを気にする必要はありません。スワップ空間は .Ux が優雅に動作するためのものです。 普段それほどスワップを使っていなくても、 プログラムの暴走で強制的にリブートしてしまう前に、 回復作業をするための時間稼ぎになります。 .Pp .Pa /var パーティションをどれだけの大きさにするかは、そのマシンを 何に使うかということに大きく依存します。 このパーティションは主にメールボックスやプリントスプール、 ログファイルの保存場所に使われます。 .Pa /var/log を別のパーティションにする人もいます (しかし、パーティション ID を 消費しないほうが良い極端な場合は例外です)。 メールサーバやプリントサーバ、あるいは 訪問数が非常に多い Web サーバとしてマシンが動作するなら、 極めて大きいパーティション \(en おそらく 1 ギガバイト以上 \(en を 作成することを考えるべきでしょう。 ログファイルの保存に必要な大きさは、小さく見積もられがちです。 .Pp .Pa /var/tmp の大きさは、テンポラリファイルの類が どれだけ使われる必要があるかで決まります。 最低でも 128M にすることを推奨します。 sysinstall は .Pa /tmp ディレクトリを作成しますが、 .Pa /tmp は後で .Pa /var/tmp へのソフトリンクにしておくのは大抵良い考えです。 テンポラリファイル領域専用に 1 つのパーティションを 割り当てることは重要で、2 つの理由があります: クラッシュ時のファイルシステムの破壊の可能性を 減らすのと、 .Oo Pa /var Oc Ns Pa /tmp を一杯にしてしまう ような暴走プロセスが、さらに重要なサブシステム (メールやログ等) に影響を与える可能性を減らすためです。 .Oo Pa /var Oc Ns Pa /tmp が一杯になってしまうのはよくある問題です。 .Pp かつては .Pa /tmp と .Pa /var/tmp の間には違いがありましたが、 .Pa /var (と .Pa /var/tmp ) の導入によってプログラマは大変混乱し、 今日では両方がでたらめに使われています。 つまりこの 2 つは実際には区別することができません。 したがって、1 つのテンポラリディレクトリだけにしてしまうことは 意味があります。 どのように .Pa /tmp を扱ったとしても、 それがルートパーティションにあるのは好ましくないでしょう。 一杯になったり、クラッシュやリブートにより破壊される 可能性があるからです。 .Pp .Pa /usr パーティションはシステムをサポートするために 必要なファイルの大部分を持っており、そのサブディレクトリ .Pa /usr/local は .Xr ports 7 階層からインストールされるファイルの大部分が置かれます。 ports をあまり使わず、システムのソース .Pq Pa /usr/src を保持するつもりがなければ .Pa /usr は 1 ギガバイトで十分でしょう。 しかし、大量の ports (特にウィンドウマネージャや Linux エミュレーションされるバイナリ) をインストールする場合は、 少なくとも 2 ギガバイトの .Pa /usr を推奨します。 さらに、システムのソースを保持するつもりであれば、3 ギガバイトの .Pa /usr を推奨します。 このパーティションに対して必要な領域の大きさを過小評価 しないでください。これは緩やかに成長し、驚かされることになります ! .Pp .Pa /home パーティションはユーザ固有のデータを保持するのに使われます。 私は大抵ディスクの残りを使います。 .Pp 何故 パーティションを切るのでしょう ? 1 つの大きな .Pa / パーティションを作るだけで良いのではないでしょうか ? そうすれば小さすぎないかどうか気にする必要はないのに ! はい、その考えが良くないのは、いくつか理由があります。 1 つめは、それぞれのパーティションは運用上の性格が 異なるのですが、それらを分離することでファイルシステムに対し その性格に適したチューンをすることが可能になるからです。 例えばルートパーティションや .Pa /usr パーティションはほとんど読み込みであり、ほとんど書き込みがありません。 一方で .Pa /var や .Pa /var/tmp に対しては大量の読み込みや書き込みがあるでしょう。 システムをうまく分割することで、書き込みが多いパーティションの破壊に よる被害が、ほとんど読み込みのみのパーティションに及ばないようします。 加えて、書き込みが多いパーティションをディスクの端 (すなわちパーティションテーブルにおいて、 本当に大きなパーティションの後ろではなく、前の方) の方に置くことで、そのパーティションについて性能が向上します。 より大きなパーティションについても入出力性能が必要なのも確かですが、 .Pa /var をディスクの端に置くと大きな改善が可能であるのに対し、 巨大なパーティションをディスクの端に置いてもそれほど性能の 改善にはつながりません。 最後は安全性に関わることです。 小さく、簡潔な、本質的に読み込みのみの ルートパーティションとすることで、クラッシュを生き延びるチャンスを 大きくすることができます。 .Pp システムを正しく分割することで、 .Xr newfs 8 や .Xr tunefs 8 に与えるパラメータをチューンすることも可能になります。 .Fn newfs のチューニングにはさらに経験が必要ですが、かなりの性能改善につながります。 比較的安全にチューンできる 3 つのパラメータがあります: .Em blocksize , .Em bytes/inode , .Em cylinders/group です。 .Pp .Fx は 8K または 16K のファイルシステムブロックサイズを使用した時に 最高の性能が得られます。 デフォルトは 16K であり、 ほとんどのアプリケーションで良い結果となりますが、 大きなファイルにランダムアクセスするアプリケーション (データベースサーバソフトウェア等) は例外です。 このようなアプリケーションでは、 小さなブロックサイズで良い結果となる傾向がありますが、 最近のディスクの特性においては、 小さなブロックサイズの使用は考慮に値しないでしょう。 16K より大きなブロックサイズを使用すると バッファキャッシュの断片化を招き、性能が低下します。 .Pp デフォルトは、 多大な inode を必要とするファイルシステムや、 多大な小ファイルを保持することを意図したファイルシステムには 向かないかもしれません。 このようなファイルシステムは、 8K または 4K のブロックサイズで作成されるべきです。 これはまた、小さなフラグメントサイズを指定する必要があります。 常にブロックサイズの 1/8 のフラグメントサイズにすることを推奨します (他のフラグメントサイズの割合ではあまりテストされていません)。 この場合の .Xr newfs 8 オプションは .Dq Li "newfs -f 1024 -b 8192 ..." となるでしょう。 .Pp 大きなパーティションに、データベースファイルのような 少数の大きなファイルを置くのであれば、 .Em bytes/inode の比率を増やすことができます。これは、そのパーティションの -i ノードの数 (ファイルやディレクトリの最大の数) を減らします。 -i ノードの数を減らすことで、クラッシュ後の +inode の数 (ファイルやディレクトリの最大の数) を減らします。 +inode の数を減らすことで、クラッシュ後の .Xr fsck 8 による修復時間を大幅に減らすことができます。 本当にこのパーティションに大きなファイルを置くのでない限り、 このオプションを使わないでください。 空き領域が大量にあるのにファイルを収容できなくなるかもしれません。 bytes/inode は、32768 か 65536 か 262144 とすることが推奨されます。 もっと大きな値にすることができますが、 .Xr fsck 8 による修復時間を増やすだけでしょう。 例えば、 .Dq Li "newfs -i 32768 ..." のようにして値を与えます。 .Pp .Xr tunefs 8 はファイルシステムをさらにチューンするのに使えます。 このコマンドは、シングルユーザモードで実行することができ、 ファイルシステムの再フォーマットは不要です。 しかし、おそらく最も誤って使用されているプログラムでしょう。 多くの人はファイルシステムの利用可能な空き領域を増やそうとして、 min-free 比率を 0 に設定します。 これはファイルシステムの猛烈な断片化につながるので、推奨されません。 ここで、唯一本当に価値がある .Xr tunefs 8 のオプションは、 .Dq Li "tunefs -n enable /filesystem" として .Em softupdates を有効にすることです (注意: .Fx 4.5 以降では .Xr newfs 8 に .Fl U オプションを与えることで softupdates を有効に することができます)。 softupdates はメタデータの性能、 主にファイルの作成と削除の性能を劇的に改善します。 全てのファイルシステムで softupdates を有効にすることを推奨します。 softupdates に関して、2 つの欠点を意識すべきです。 1 つめは、softupdates はクラッシュ時における ファイルシステムの一貫性は保証しますが、 物理ディスクの更新が何秒か (1 分になることもあります!) 遅れる可能性が高いことです。 クラッシュした場合、より多くの成果が消えてしまうかもしれません。 2 つめは、softupdates はファイルシステムブロックを解放するのを遅らせる ということです。 あるファイルシステム (例えばルートファイルシステム) が満杯近くの時に それに対する大規模な更新、たとえば .Dq Li "make installworld" をすると、空き領域を使い果たして更新が失敗してしまうことがあります。 .Pp .Xr mount 8 実行時のいくつかのオプションはファイルシステムをチューンするのに役立ちます。 最も明らかで、しかも最も危険なのは .Cm async です。 これは決して使わないでください。 大変危険です。 比較的危険度が低く、より役に立つ .Xr mount 8 のオプションは .Cm noatime です。 通常 .Ux ファイルシステムは、ファイルやディレクトリにアクセスが あった場合は常に、その最終アクセス時刻を更新します。 .Fx では、この動作は遅延書き込みで行なわれ、 通常は大した負荷にはなりません。 しかし、大量のファイルが連続してアクセスされた場合、 バッファキャッシュがアクセス時刻の更新で汚染され 大きな負荷となります。 例えば、高負荷の web サイトや大量の読者を抱えるニューズサーバ では、この .Xr mount 8 のオプションで大きなパーティションにおける アクセス時刻の更新を停止することが考えられます。 根拠もなく、すべての場所でアクセス時刻の更新を停止しないでください。 例えば、 .Pa /var ファイルシステムは、慣習的にメールボックスを保持し、 新規メールのメールボックス中の有無判定に atime (および mtime) が使用されます。 読み込み専用パーティション、 .Pa / や .Pa /usr では、atime をオンにしておいた方が良いでしょう。 システムユーティリティには、atime フィールドを使用するものがあるので、 .Pa / では特に有用です。 .Sh ディスクのストライピング 大きなシステムでは、いくつかのドライブのパーティションを互いに ストライピングして、全体として巨大なパーティションを作ることもあります。 ストライピングは、入出力操作を複数のディスクに振り分けることで ファイルシステムの性能を向上させることができます。 .Xr vinum 8 および .Xr ccdconfig 8 ユーティリティは、シンプルなストライピングされたファイルシステムを 作るのに使われます。 一般に、ルートや .Pa /var/tmp のような小さなパーティション、 あるいは .Pa /usr のような本質的に読み込みのみのパーティションを ストライピングしても時間の無駄にしかなりません。 本当に入出力性能を必要とするパーティションのみをストライピングするべきです。 典型的には .Pa /var や .Pa /home あるいはデータベースや Web ページを 保持するカスタムパーティションです。 適切なストライプサイズを選ぶことも重要です。 ファイルシステムはメタデータを 2 の累乗の境界で格納する傾向にあり、 大抵はシークを増やすのではなく減らしたいでしょう。 これは、1152 セクタといったような、 シーケンシャルな I/O が両方のディスクをシークしないように、 かつメタデータが単一のディスクに集中するのではなく両方に分散するような、 中心を外れた (off-centered) 大きな ストライプサイズにしたい、ということを意味します。 本当に性能が必要なら、 .Fx がサポートする本物のハードウェア RAID コントローラを 使うことを勧めます。 .Sh sysctl によるチューニング .Xr sysctl 8 変数は、実行時に、システムの動作のモニタおよび制御を可能とします。 sysctl には、単にシステムの動作を報告するものもありますが、 システムの動作を変更するものもあります。 ブート時に .Xr rc.conf 5 を使用して設定可能なものもありますが、大部分は .Xr sysctl.conf 5 で設定可能です。 システムには数百の .Xr sysctl 8 変数が存在します。 そのなかには、チューニングの候補のように見えますが本当は そうでないものも多く含まれます。この文書では システムに最も大きな影響を与えるものだけを扱います。 .Pp .Va kern.ipc.shm_use_phys sysctl は、デフォルトが 0 (オフ) であり、 0 (オフ) または 1 (オン) にセットすることができます。 このパラメータを 1 にセットすると、全ての System V 共有メモリセグメントが ページング不可の物理メモリにマップされます。 これは、(A) 大量 (数百) のプロセス間で少量の共有メモリを マッピングしているか、(B) 任意個のプロセス間で大量の共有メモリを マッピングしている、のいずれかの場合に効果があります。 この機能は、共有メモリをスワップ不可にすることで、 共有メモリをコアに結び付ける時に生じる、 カーネルにおける内部のメモリ管理によるページ追跡 オーバヘッドをかなり減らします。 .Pp .Va vfs.vmiodirenable sysctl は、デフォルトは 0 (オフ) であり (しかし近いうちにデフォルトが 1 に なるでしょう)、0 (オフ) または 1 (オン) にセットすることができます。 このパラメータは、ディレクトリがシステムによってどのように キャッシュされるかを制御します。 ほとんどのディレクトリは小さく、 ファイルシステムにおいては単一フラグメント (典型的には 1K) であり、バッファキャッシュではさらに小さくなっています (典型的には 512 バイト)。 しかし、デフォルトモードで動作している時は、 大量のメモリを搭載していても バッファキャッシュは固定数のディレクトリしかキャッシュしません。 この sysctl をオンにすると、バッファキャッシュが VM ページキャッシュを、ディレクトリをキャッシュするために使うことを可能に します。 これによる利点は、全てのメモリがディレクトリを キャッシュするのに使えるようになるということです。 欠点は、キャッシュに使われる最小のメモリの大きさが 512 バイトではなく 物理ページサイズ (大抵は 4K) になることです。 メモリに制約があるシステムでは、 このオプションをオフにすることを推奨します。 一方、オンにすると、多数のファイルを操作するサービスの性能が向上します。 そのようなサービスには、web キャッシュや、大規模なメールシステム、 ニューズシステムなどが含まれます。このオプションは一般に メモリを消費しますが、性能を削減することはありません。 ただし実験して調べてみるべきでしょう。 .Pp バッファキャッシュと VM ページキャッシュに関連した、様々な sysctl が 存在します。 これらを変更することは推奨されません。 .Fx 4.3 について言えば、VM システムは自分自身のチューニングに関して大変良い 仕事をしています。 .Pp .Va net.inet.tcp.sendspace sysctl と .Va net.inet.tcp.recvspace sysctl は、ネットワークに関連するアプリケーションを 稼動している場合は特に重要です。これは、TCP コネクションの 送信および受信バッファ領域の大きさを調節します。 デフォルトでは、送信バッファは 32K で、受信バッファは 64K です。 このデフォルトを増やすことで 各コネクションについてカーネルメモリがさらに消費されますが、 帯域幅の利用率が改善することがあります。 同時に数百とか数千のコネクションを扱っている場合、 このデフォルトを増やすことは推奨されません。 失速してしまったコネクションが蓄積することで、 システムがメモリをすぐに使い果たしてしまうからです。 しかし、少ない数のコネクションについて広い帯域幅が必要ならば、 特にギガビットイーサネットの場合、このデフォルトを大幅に増やす ことができます。 入力データと出力データのバッファを個別に調整することができます。 たとえば、主に web サービスをしているマシンならば recvspace を 減らすことで、それほど大量にカーネルメモリを消費せずに sendspace を増やすことができます。 経路表 ( .Xr route 8 を参照 ) に対しては、経路に特化した送受信バッファを導入することが できるということに注意してください。 .Pp 付加的な管理ツールとして、ファイアウォールルールにおいて パイプ (pipe) を使うことで ( .Xr ipfw 8 を参照)、特定の IP ブロックやポートへ行く、あるいはそこから 来る帯域幅を制限することができます。 例えば T1 回線を持っている場合、 web トラフィックは回線の 70% に制限し、残りをメールと インタラクティブな用途に使いたいと思うでしょう。 通常高い負荷の web サーバは、ネットワーク回線が 使い切られていても、他のサービスに大きな遅延を与えることは ありませんが、制限をかけることは物事を円滑にし長期的な安定につながります。 また、多くの人が、帯域超過による課金をされないように 意図的な帯域制限をかけています。 .Pp .Va net.inet.tcp.rfc1323 sysctl で制御可能な TCP プロトコルのウィンドウスケーリング拡張を 両方のホストがサポートしない限り、 TCP の送信あるいは受信バッファサイズを 65535 を超えて指定しても ほとんど性能の改善はありません。 ある種のネットワークリンクから良い性能を引き出すために、 これらの拡張を有効にし、 TCP バッファサイズを 65536 より大きく設定すべきです。 特に、ギガビット WAN リンクや、高レイテンシの衛星リンクが対象となります。 RFC1323 サポートは、デフォルトでオンになっています。 .Pp .Va net.inet.tcp.always_keepalive sysctl はオン (1 にセット) にしてそのままにしておいてください。 デフォルトは大抵オフです。少量のネットワーク帯域を消費しますが、 偶然死んでしまった TCP コネクションを認識し除去することを保証します。 死んでしまった TCP コネクションは、特にダイアルアップのユーザによりアクセス されるシステムで発生する問題です。 ユーザは、しばしば正しくアクティブコネクションを閉じずにモデムを切断 するからです。 .Pp .Va kern.ipc.somaxconn sysctl は、新しい TCP コネクションを受け付けるための listen キューの サイズを制限します。高負荷の web サーバ環境では、 デフォルト値の 128 は新しいコネクションを余裕をもって扱うには低すぎます。 そのような環境では、この値を 1024 以上に増やすことが推奨されます。 サービスデーモン (例えば .Xr sendmail 8 や apache) は自分自身の listen キューのサイズを制限しているかもしれませんが、設定ファイルで キューのサイズを増やすディレクティブを持つようになるでしょう。 listen キューを大きくすることは、サービス拒否攻撃を防ぐのにも役立ちます。 .Pp .Va kern.maxfiles sysctl は、システムがどれだけの数のファイルをオープンできるかを 決めます。デフォルトは典型的には数千ですが、データベースや記述子を 大量に使うデーモンを稼働している場合は 10000 や 20000 に引き上げる必要 があるかもしれません。 読み込み専用の .Va kern.openfiles sysctl を検査することで、システム上で開かれているファイル数を判定可能です。 .Pp .Va vm.swap_idle_enabled sysctl は、多数のユーザがシステムに出入りして大量のアイドルプロセスが ある大きなマルチユーザシステムで便利です。 そのようなシステムでは、フリーメモリの予約に対し、 継続して重大な負担をかける傾向にあります。これをオンにして .Va vm.swap_idle_threshold1 sysctl と .Va vm.swap_idle_threshold2 sysctl でスワップアウトヒステリシス (アイドルの秒数) を調整することで アイドルプロセスに与えられているページの優先度を通常のページアウト アルゴリズムよりも速やかに下げることができます。 これはページアウトデーモンを手助けします。必要がないかぎり、 このオプションはオンにしないでください。 これによって起こるトレードオフは、本質的に、 スワップとディスク帯域幅をより多く消費してメモリのプリページングを より早いうちに行うことだからです。 小さなシステムではこのオプションは有害となるでしょうが、 すでにある程度ページングが発生している大きなシステムでは、 このオプションによって、全体のプロセスがより容易にメモリへ入ったり 出たりするようにできるでしょう。 .Sh ローダのチューナブル システムの動作の一部は、 そのためのメモリ割り当てをブート処理の初期に行う必要があるために、 実行時には調整不可能です。 ローダのチューナブルを変更するには、これらの値を .Xr loader.conf 5 に設定し、システムをリブートする必要があります。 .Pp .Va kern.maxusers は、静的なシステムテーブルの大きさを制御します。 これには、 オープンファイルの最大数、ネットワークメモリ資源の大きさ等が含まれます。 .Fx 4.5 の時点では、 .Va kern.maxusers は、ブート時に、システムで利用可能なメモリ量に応じて、 大きさが自動的に決定されます。 また、実行時に、読み取り専用の .Va kern.maxusers sysctl 値を見て決定することも可能です。 サイトによっては、 .Va kern.maxusers を大きくしたり小さくしたりする必要があり、 これはローダチューナブルで設定可能です。 64, 128, 256 は、変な値ではありません。 膨大なファイル記述子が必要なのでない限り、 256 より大きくすることは勧められません。 .Va kern.maxusers によってデフォルト値が決定される多くのチューナブル値は、 本文書の別の場所に記述した方法で、 個々にブート時または実行時に上書き可能です。 .Fx 4.4 より古いシステムでは、 カーネルの .Xr config 8 オプションの .Cd maxusers を設定する必要があります。 .Pp .Va kern.ipc.nmbclusters を調整することで、システムが割り当てようとしている ネットワーク mbuf の数を増やすことができます。 それぞれのクラスタは約 2K のメモリに相当するので、 1024 は 2M のカーネルメモリをネットワークバッファに 予約することを示します。 簡単な計算でどれだけ必要なのかがわかります。 web サーバが同時に最大 1000 本のコネクションを扱い、 各コネクションが 16K の受信バッファと 16K の送信バッファを消費する場合、 約 32MB に相当するネットワークバッファを扱う必要があります。 経験から得た方法によると、2 倍すると良いとされています。 つまり 32MBx2 = 64MB/2K = 32768 です。 したがって、この場合は .Va kern.ipc.nmbclusters を 32768 に設定します。 中くらいの量のメモリが搭載されたマシンでは 1024 から 4096、 さらに大量のメモリが搭載されているなら 4096 から 32768 の値を 推奨します。 決して大きい値を指定すべきではありません。 ブート時にクラッシュを引き起こす可能性があります。 .Xr netstat 1 に .Fl m オプションを与えることで、ネットワーククラスタの使用状況が分かります。 古い .Fx ではこのチューナブルを持ちませんので、 代りにカーネルの .Xr config 8 オプションの .Dv NMBCLUSTERS を設定する必要があります。 .Pp ますます多くのプログラムが .Xr sendfile 2 システムコールを使ってネットワークを通じてファイルを 転送しています。 .Va kern.ipc.nsfbufs sysctl は .Xr sendfile 2 の実行時にファイルシステムバッファをどれだけの数だけ 使えるかを制御します。 通常このパラメータは .Va kern.maxusers に比例しているので、極端な場合を除いては このパラメータに手を出す必要はありません。 .Sh カーネル構成におけるチューニング 大規模なシステムでは、いくつかのカーネルオプションを操作しなければ ならないかもしれません。これらのオプションを変更する場合、あなたは ソースから新しいカーネルをコンパイルできなければなりません。 .Xr config 8 マニュアルページやハンドブックが良い入門となるでしょう。 あなただけのカスタムカーネルを作るときに一般に最初にすることは、 使用しないドライバやサービスをすべて削ることです。 .Dv INET6 や使わないドライバを削除することで、カーネルのサイズを時に 1 メガバイト以上減らすことができ、アプリケーションにさらに メモリを与えることができます。 .Pp .Dv SCSI_DELAY と .Dv IDE_DELAY は、システムの起動時間を減らすために使うことができます。 このデフォルト値はかなり大きく、ブート処理の中で 15 秒以上を占めるでしょう。 .Dv SCSI_DELAY を 5 秒に減らしても大抵はうまく動きます (特に最近のドライブでは)。 .Dv IDE_DELAY を減らしてもうまくいきますが、少々慎重になる必要があります。 .Pp .Dv *_CPU オプションの多くはコメントアウトできます。 そのカーネルを Pentium クラスの CPU だけで動かすなら、 .Dv I386_CPU と .Dv I486_CPU は削除することができます。ただし、 .Dv I586_CPU は、CPU が Pentium II 以上として認識されることを確認してから 削除してください。Pentium や 486 としてさえ認識されるクローンが存在し、 その場合はこれらのオプションがないと起動することができません。 もし動いたらすごいことです ! オペレーティングシステムは、MMU や タスク切り替え、タイムベース、デバイス操作に至る、より高度な機能を より利用することができるようになります。 加えてより高度な CPU は、カーネルがカーネル自身をメモリにマップする 4MB の MMU ページをサポートします。これは高いシステムコール負荷の 下での効率を上げます。 .Sh IDE ライトキャッシュ .Fx 4.3 では IDE のライトキャッシュがオフになりました。これは IDE ディスクへの書き込み帯域幅を減らしてしまうことになりますが、 ハードドライブベンダに起因するデータの一貫性に関する重大な問題のために、 必要なことだと考えられました。 基本的には、書き込み完了時期について IDE ドライブが嘘をつくという問題です。 IDE ライトキャッシュがオンであると、 IDE ハードドライブはデータを順番に書きこまないばかりか、 ディスクの負荷が高い時にはいくつかのブロックの書き込みを 無期限に延期してしまいます。 クラッシュや電源故障の場合、ファイルシステムの重大な破壊を もたらします。したがって私たちはデフォルトを安全側に変更しました。 残念ながら、これは大変な性能の低下をもたらし、私たちはあきらめて このリリース後にオンに戻しました。 .Va hw.ata.wc sysctl 変数を見て、デフォルトをチェックしてみるべきです。 もし IDE ライトキャッシュがオフになっていたら、 .Va hw.ata.wc ローダチューナブルを 1 に設定することでオンに戻すことができます。 ATA ドライバシステムのチューニングに関する更なる情報は、 .Xr ata 4 を参照してください。 .Pp IDE ハードドライブの実験的な新機能として、 .Va hw.ata.tags と呼ばれるものがあり (これもブートローダで設定します)、 ライトキャッシュを安全にオンにすることができます。 これは SCSI のタギング機能を IDE ドライブに持ち込んだものです。 これを書いている時点では、IBM DPLA と DTLA ドライブだけがこの機能を サポートしています。 警告! これらのドライブは品質管理に問題 があるようなので、私は現時点ではこれらの製品を買うことはおすすめしません。 性能が必要なら SCSI を使いましょう。 .Sh CPU、メモリ、ディスク、ネットワーク 負荷が上がるとシステムのどの部分がボトルネックになりはじめているかによって、 チューニングの種類が違ってきます。 CPU を使い果たしている (アイドル時間が常に 0%) ならば、CPU を アップグレードしたり SMP マザーボード (CPU を複数にする) に移行 したり、あるいは負荷の原因となっているプログラムを見直して最適化する ことを考える必要があるでしょう。 スワップに対して大量のページングがあるなら メモリをもっと増やす必要があるでしょう。 ディスク性能が飽和している場合、CPU アイドル時間は高く、全般的に ディスクが飽和状態になっています。 .Xr systat 1 でこれらをモニタすることができます。 ディスク性能の飽和を解決するにはいろいろな方法があります: キャッシュのためのメモリを増やす、ディスクをミラーリングする、 複数のマシンに操作を分散させる等です。 ディスク性能が問題で、IDE ドライブを使っている場合、 SCSI に切り替えることでずいぶんよくなります。 生のシーケンシャルな帯域幅については、最近の IDE ドライブは SCSI のものに 匹敵していますが、調べると大抵 SCSI ドライブが勝っています。 .Pp 最後に、ネットワーク性能を使い果たしているかもしれません。 ネットワーク性能を改善するために最初に確認すべきことは、 ハブではなくスイッチを使っているか、ということです。 特に最近はスイッチは安くなっています。 ハブが高負荷になると、コリジョンバックオフのために深刻な問題が発生します。 また、1 台のホストに問題があると、LAN 全体の性能を大幅に低下させます。 次に、できるだけネットワーク経路を最適化することです。 例えば .Xr firewall 7 で説明した内部ホストを守るファイアウォールでは、 外部から見えるホストはファイアウォールを通さないトポロジです。 必要に応じて 10BaseT ではなく 100Base-T を、あるいは 100BaseT ではなく 1000BaseT を使いましょう。 最大のボトルネックは WAN 回線です (モデム、T1、DSL 等)。 回線を増強できないのであれば、 .Xr dummynet 4 機能を使ってピーク削減やその他のトラフィックシェイピングを 行い過負荷のサービス (web サービス等) が他のサービス (電子メール等) に影響を与えるのを防いでください。逆もまた同様です。 これは、家庭環境において、外部に公開しているサービス (web サービスや電子メール) よりも インタラクティブなトラフィック (ブラウザや .Xr ssh 1 ログイン) を 優先するために使うことができるでしょう。 .Sh 関連項目 .Xr netstat 1 , .Xr systat 1 , .Xr ata 4 , .Xr dummynet 4 , .Xr login.conf 5 , .Xr rc.conf 5 , .Xr sysctl.conf 5 , .Xr firewall 7 , .Xr hier 7 , .Xr ports 7 , .Xr boot 8 , .Xr ccdconfig 8 , .Xr config 8 , .Xr disklabel 8 , .Xr fsck 8 , .Xr ifconfig 8 , .Xr ipfw 8 , .Xr loader 8 , .Xr mount 8 , .Xr newfs 8 , .Xr route 8 , .Xr sysctl 8 , .Xr tunefs 8 , .Xr vinum 8 .Sh 歴史 .Nm マニュアルページは、もともと .An Matthew Dillon によって書かれました。最初に登場したのは .Fx 4.3 で、2001 年 5 月のことです。 diff --git a/ja_JP.eucJP/man/man8/clri.8 b/ja_JP.eucJP/man/man8/clri.8 index f2d91f9e55..ba347de89b 100644 --- a/ja_JP.eucJP/man/man8/clri.8 +++ b/ja_JP.eucJP/man/man8/clri.8 @@ -1,82 +1,82 @@ .\" Copyright (c) 1980, 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. .\" .\" @(#)clri.8 8.2 (Berkeley) 4/19/94 .\" %FreeBSD: src/sbin/clri/clri.8,v 1.7.2.2 2001/08/16 11:35:41 ru Exp % -.\" $FreeBSD: doc/ja_JP.eucJP/man/man8/clri.8,v 1.7 2001/05/14 01:09:46 horikawa Exp $ +.\" $FreeBSD$ .\" .Dd April 19, 1994 .Dt CLRI 8 .Os .Sh 名称 .Nm clri -.Nd i ノードをクリアする +.Nd inode をクリアする .Sh 書式 .Nm .Ar special_device inode_number ... .Sh 解説 .Bf -symbolic 通常は .Xr fsck 8 でファイルシステムの修復を行なうので、 .Nm は古いもの(obsolete) となっています。 .Ef .Pp .Nm は、指定した特殊ファイル .Ar special_device 上にあるファイルシステムの、指定された -i ノード番号の i ノードを 0 でクリアします。 +inode 番号の inode を 0 でクリアします。 クリアされた inode や、以前その inode によって 使用されていたブロックを再使用できるようにするために、普通は .Nm を実行したあとで .Xr fsck 8 をそのファイルシステムに対して実行します。 .Pp このコマンドは主に、なんらかの原因によって .Xr fsck 8 が適切に処理することのできなくなったファイルを削除するためにあります。 一度削除されれば、 そのあとのファイルシステム上のつじつま合わせは .Xr fsck 8 が行ってくれることが期待できます。 .Sh 関連項目 .Xr fsck 8 , .Xr fsdb 8 .Sh バグ オープンされているファイルに対して .Nm を実行しても、 そのファイルをクローズする際にキャッシュからディスクに -i ノードが書き戻されるために、その効果が失われてしまいます。 +inode が書き戻されるために、その効果が失われてしまいます。