diff --git a/ja_JP.eucJP/man/man1/Makefile b/ja_JP.eucJP/man/man1/Makefile index 045eee4c35..30860dfed4 100644 --- a/ja_JP.eucJP/man/man1/Makefile +++ b/ja_JP.eucJP/man/man1/Makefile @@ -1,414 +1,417 @@ MAN1 = a2p.1\ addftinfo.1\ addr2line.1\ apply.1\ apropos.1\ ar.1\ as.1\ at.1\ awk.1\ basename.1\ bc.1\ bdes.1\ biff.1\ bison.1\ brandelf.1\ btreeop.1\ c89.1\ calendar.1\ cap_mkdb.1\ cat.1\ catman.1\ cccp.1\ cd.1\ cdcontrol.1\ checknr.1\ chflags.1\ chkey.1\ chgrp.1\ chio.1\ chmod.1\ chpass.1\ ci.1\ ckdist.1\ cksum.1\ cmp.1\ co.1\ col.1\ colcrt.1\ colldef.1\ colrm.1\ column.1\ comm.1\ compile_et.1\ compress.1\ cp.1\ cpio.1\ crontab.1\ crunchgen.1\ crunchide.1\ csh.1\ ctags.1\ ctm.1\ ctm_rmail.1\ cu.1\ cursor.1\ cut.1\ cvs.1\ date.1\ dc.1\ dd.1\ df.1\ dialog.1\ diff.1\ diff3.1\ dig.1\ dnsquery.1\ domainname.1\ doscmd.1\ + dtmfdecode.1\ du.1\ echo.1\ ed.1\ ee.1\ enigma.1\ eqn.1\ error.1\ expand.1\ expr.1\ f2c.1\ f77.1\ false.1\ fdformat.1\ fdwrite.1\ fetch.1\ file.1\ file2c.1\ find.1\ finger.1\ fmt.1\ fold.1\ fontedit.1\ fpr.1\ from.1\ fsplit.1\ fstat.1\ ftp.1\ + g711conv.1\ gcc.1\ gcore.1\ gctags.1\ gdb.1\ gdbserver.1\ gencat.1\ genclass.1\ getNAME.1\ getopt.1\ global.1\ gperf.1\ gprof.1\ grep.1\ grodvi.1\ groff.1\ grolj4.1\ grops.1\ grotty.1\ groups.1\ gtags.1\ gzexe.1\ gzip.1\ h2ph.1\ head.1\ hexdump.1\ host.1\ hostname.1\ htags.1\ id.1\ ident.1\ indent.1\ indxbib.1\ install.1\ install-info.1\ intro.1\ ipcrm.1\ ipcs.1\ ipf.1\ ipftest.1\ ipnat.1\ ipresend.1\ ipsend.1\ iptest.1\ join.1\ jot.1\ kbdcontrol.1\ kbdmap.1\ kcon.1\ kdump.1\ key.1\ keyinfo.1\ keyinit.1\ keylogin.1\ keylogout.1\ kill.1\ killall.1\ ktrace.1\ lam.1\ last.1\ lastcomm.1\ ld.1\ ldd.1\ leave.1\ lex.1\ limits.1\ lint.1\ lkbib.1\ ln.1\ loadfont.1\ locate.1\ lock.1\ lockf.1\ logger.1\ login.1\ logname.1\ look.1\ lookbib.1\ lorder.1\ lp.1\ lpq.1\ lpr.1\ lprm.1\ lptest.1\ ls.1\ lsvfs.1\ m4.1\ mail.1\ mailq.1\ make.1\ makewhatis.1\ man.1\ manpath.1\ mcon.1\ md5.1\ merge.1\ mesg.1\ minigzip.1\ mkdep.1\ mkdir.1\ mkfifo.1\ mklocale.1\ mkstr.1\ mktemp.1\ more.1\ mptable.1\ mset.1\ msgs.1\ mt.1\ mv.1\ ncal.1\ neqn.1\ netstat.1\ newaliases.1\ nfsstat.1\ nice.1\ nm.1\ nohup.1\ nroff.1\ objcopy.1\ objdump.1\ objformat.1\ od.1\ opieinfo.1\ opiekey.1\ opiepasswd.1\ pagesize.1\ passwd.1\ paste.1\ patch.1\ pawd.1\ pax.1\ perl.1\ pfbtops.1\ pic.1\ pkg_add.1\ pkg_create.1\ pkg_delete.1\ pkg_info.1\ + pkg_version.1\ pr.1\ printenv.1\ printf.1\ ps.1\ psbb.1\ psroff.1\ pwd.1\ quota.1\ ranlib.1\ rcp.1\ rcs.1\ rcsclean.1\ rcsdiff.1\ rcsfreeze.1\ rcsintro.1\ rcsmerge.1\ rdist.1\ refer.1\ rev.1\ rlog.1\ rlogin.1\ rm.1\ rmdir.1\ rpcgen.1\ rs.1\ rsh.1\ rtprio.1\ rup.1\ ruptime.1\ rusers.1\ rwall.1\ rwho.1\ s2p.1\ sasc.1\ scon.1\ script.1\ sdiff.1\ sed.1\ send-pr.1\ sgsc.1\ sh.1\ shar.1\ size.1\ sockstat.1\ skey.1\ sleep.1\ soelim.1\ sort.1\ split.1\ startslip.1\ strings.1\ strip.1\ stty.1\ su.1\ symorder.1\ systat.1\ tail.1\ talk.1\ tar.1\ tbl.1\ tconv.1\ tcopy.1\ tcpdump.1\ tcpslice.1\ tee.1\ telnet.1\ test.1\ tfmtodit.1\ tftp.1\ time.1\ tip.1\ tn3270.1\ top.1\ touch.1\ tput.1\ tr.1\ troff.1\ true.1\ truss.1\ tset.1\ tsort.1\ tty.1\ ul.1\ uname.1\ unifdef.1\ uniq.1\ units.1\ unvis.1\ uptime.1\ users.1\ uuconv.1\ uucp.1\ uuencode.1\ uulog.1\ uuname.1\ uupick.1\ uuto.1\ uustat.1\ uux.1\ vacation.1\ vgrind.1\ vi.1\ vidcontrol.1\ vis.1\ vt220keys.1\ vttest.1\ w.1\ wait.1\ wall.1\ wc.1\ what.1\ whereis.1\ which.1\ who.1\ whoami.1\ whois.1\ window.1\ write.1\ xargs.1\ xstr.1\ xten.1\ yacc.1\ yes.1\ ypcat.1\ ypmatch.1\ ypwhich.1\ yyfix.1\ zdiff.1\ zforce.1\ zmore.1\ znew.1 MLINKS= csh.1 limit.1 csh.1 alias.1 csh.1 bg.1 csh.1 dirs.1 csh.1 fg.1 \ csh.1 foreach.1 csh.1 history.1 csh.1 jobs.1 csh.1 popd.1 \ csh.1 pushd.1 csh.1 rehash.1 csh.1 repeat.1 csh.1 suspend.1 \ csh.1 stop.1 csh.1 source.1 MLINKS+= ed.1 red.1 MLINKS+= test.1 '[.1' MLINKS+= gcc.1 cc.1 gcc.1 c++.1 gcc.1 g++.1 MLINKS+= cccp.1 cpp.1 MLINKS+= grep.1 egrep.1 grep.1 fgrep.1 MLINKS+= grep.1 zgrep.1 grep.1 zegrep.1 grep.1 zfgrep.1 MLINKS+= gzip.1 gunzip.1 gzip.1 zcat.1 gzip.1 gzcat.1 MLINKS+= zdiff.1 zcmp.1 MLINKS+= apropos.1 whatis.1 MLINKS+= send-pr.1 sendbug.1 MLINKS+= at.1 batch.1 \ at.1 atq.1 \ at.1 atrm.1 MLINKS+= basename.1 dirname.1 MLINKS+= chpass.1 chfn.1 chpass.1 chsh.1 MLINKS+= chpass.1 ypchpass.1 chpass.1 ypchfn.1 chpass.1 ypchsh.1 MLINKS+= compress.1 uncompress.1 MLINKS+= ee.1 ree.1 MLINKS+= expand.1 unexpand.1 MLINKS+= ftp.1 pftp.1 ftp.1 gate-ftp.1 MLINKS+= hexdump.1 hd.1 MLINKS+= intro.1 introduction.1 MLINKS+= lex.1 flex.1 MLINKS+= lex.1 flex++.1 MLINKS+= lex.1 lex++.1 MLINKS+= mail.1 Mail.1 MLINKS+=passwd.1 yppasswd.1 MLINKS+= printenv.1 env.1 MLINKS+= tconv.1 tic.1 tconv.1 captoinfo.1 MLINKS+= tput.1 clear.1 MLINKS+= tset.1 reset.1 MLINKS+=vi.1 ex.1 vi.1 view.1 MLINKS+=vi.1 nex.1 vi.1 nview.1 vi.1 nvi.1 MLINKS+=yacc.1 byacc.1 MLINKS+= ctm_rmail.1 ctm_smail.1 MLINKS+= ctm_rmail.1 ctm_dequeue.1 MLINKS+= kbdmap.1 vidfont.1 MLINKS+= rtprio.1 idprio.1 MLINKS+= cksum.1 sum.1 MLINKS+= ktrace.1 trace.1 MLINKS+= uuencode.1 uudecode.1 MLINKS+= ncal.1 cal.1 MLINKS+=enigma.1 crypt.1 .include "bsd.prog.mk" diff --git a/ja_JP.eucJP/man/man1/addftinfo.1 b/ja_JP.eucJP/man/man1/addftinfo.1 index 5478110bca..5be4a81767 100644 --- a/ja_JP.eucJP/man/man1/addftinfo.1 +++ b/ja_JP.eucJP/man/man1/addftinfo.1 @@ -1,93 +1,93 @@ .ig \"-*- nroff -*- Copyright (C) 1989-1995 Free Software Foundation, Inc. Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions, except that this permission notice may be included in translations approved by the Free Software Foundation instead of in the original English. .. .\" jpman %Id: addftinfo.1,v 1.2 1997/05/13 16:07:12 horikawa Stab % .TH ADDFTINFO 1 "8 September 1996" "Groff Version 1.11" .SH 名称 addftinfo \- troff 用のフォントファイルに groff で用いるための情報を付加する .SH 書式 .B addftinfo [ .BI \- param\ value\fR.\|.\|. ] .I res .I unitwidth .I font .SH 解説 .B addftinfo は troff フォントファイルを読み、groff システムで用いられるフォントメトリック情報を付加します。 情報が付加されたフォントファイルは標準出力に書き出されます。 追加される情報は、フォント自体のパラメトリックな情報と、伝統的な troff の文字名のつけかたに関する仮定から推定されます。 この情報は、主に文字の高さや深さです。引数の .I res と .I unitwidth は DESC ファイルの対応するパラメータと一致するべきです; .I font はフォントの名前です。 .I font が .B I で終わる場合はイタリック体であると仮定されます。 .SH オプション 各オプションは、高さや深さなどを得るために用いられるパラメータのうちの 1 つを 変更します。フォントファイル内の現行の数量のように、各 .I value はポイントの大きさが .I unitwidth であるフォントについて .I res あたりのインチ数で表現します。 .I param には、以下のなかから 1 つを選びます: .TP .B x-height x などのような、背の低い小文字の高さ。 .TP .B fig-height -図の高さ (10 進の数値) +図の高さ (10 進の数値)。 .TP .B asc-height b, d, l などのような、背の高い文字の高さ。 .TP .B body-height 括弧などの文字の高さ。 .TP .B cap-height A のような大文字の高さ。 .TP .B comma-depth -``,'' の深さ。 +コンマの深さ。 .TP .B desc-depth p, q, y などのような、ベースラインよりも下に出た文字の深さ。 .TP .B body-depth 括弧などの文字の深さ。 .LP .B addftinfo は、指定しなかったパラメータの値を推測するために、指定してある パラメータの値を用いることはしません。パラメータが指定されない場合は デフォルトの値が用いられます。デフォルトの値は、 Times フォントの手頃な値を選びます。 .SH 関連項目 .BR groff_font (5), .BR groff (1), .BR groff_char (7) diff --git a/ja_JP.eucJP/man/man1/addr2line.1 b/ja_JP.eucJP/man/man1/addr2line.1 index 7aabbc8b21..80ec0a9d4b 100644 --- a/ja_JP.eucJP/man/man1/addr2line.1 +++ b/ja_JP.eucJP/man/man1/addr2line.1 @@ -1,128 +1,128 @@ .\" Copyright (c) 1997 Free Software Foundation .\" See COPYING for conditions for redistribution .\" jpman %Id: addr2line.1,v 1.3 1998/10/12 22:51:00 vanitas Stab % .TH addr2line 1 "27 March 1997" "Cygnus Solutions" "GNU Development Tools" .de BP .sp .ti \-.2i \(** .. .SH 名称 addr2line \- アドレスをファイル名と行番号に変換する .SH 書式 .hy 0 .na .TP .B addr2line .RB "[\|" "\-b\ "\c .I bfdname\c .RB " | " "\-\-target="\c .I bfdname\c \&\|] .RB "[\|" \-C | \-\-demangle "\|]" .RB "[\|" "\-e\ "\c .I filename\c .RB " | " "\-\-exe="\c .I filename\c \&\|] .RB "[\|" \-f | \-\-functions "\|]" .RB "[\|" \-s | \-\-basenames "\|]" .RB "[\|" \-H | \-\-help "\|]" .RB "[\|" \-V | \-\-version "\|]" .RB "[\|" addr addr ... "\|]" .ad b .hy 1 .SH 解説 \c .B addr2line はプログラムのアドレスをファイル名と行番号に変換します。 アドレスと実行ファイルが与えられると、実行ファイル中のデバッグ情報を 使って与えられたアドレスをファイル名と行番号に対応づけます。 使用される実行ファイルは .B \-e オプションで指定します。デフォルトは .B a.out\c \& です。 .B addr2line には 2 つの動作モードがあります。 -1 つめでは、16進数のアドレスをコマンドラインで指定して、 +1 つ目では、16進数のアドレスをコマンドラインで指定して、 .B addr2line が各アドレスに対応するファイル名と行番号を表示します。 -2 つめでは、 +2 つ目では、 .B addr2line は 16進数のアドレスを標準入力から読み込んで、各アドレスに 対応するファイル名と行番号を標準出力に表示します。 このモードでは .B addr2line をパイプ中で、動的に選び出されたアドレスを変換するために利用できます。 出力の形式は「ファイル名:行番号」です。ファイル名と行番号は 各アドレス毎に改行して出力されます。 .B \-f オプションが指定されると、「ファイル名:行番号」の行の前に アドレスを含む関数の名前を「関数名」の行として出力します。 ファイル名または関数名が特定できない場合は、 .B addr2line はそれらが表示されるべき場所に 2 つのクエスチョンマークを表示します。 行番号が特定できない場合は .B addr2line は 0 を表示します。 .SH オプション .TP .BI "\-b " "bfdname"\c .TP .BI "\-\-target=" "bfdname" オブジェクトファイルのオブジェクト・コード形式を \c .I bfdname\c \& で指定します。 .TP .B \-C .TP .B \-\-demangle シンボル名の内部表現をユーザレベルの表現にデコード (\fIdemangle\fP) します。 加えてシステムが付加した先頭のアンダースコアも取り除くので、 これによって C++ の関数名がわかりやすくなります。 .TP .BI "\-e " "filename"\c .TP .BI "\-\-exe=" "filename" アドレスを変換する対象の実行ファイル名を指定します。 デフォルトのファイル名は .B a.out\c \& です。 .TP .B \-f .TP .B \-\-functions ファイルと行番号情報に加えて関数名を表示します。 .TP .B \-s .TP .B \-\-basenames 各ファイル名のベース (パス名を除いたファイル名部分) のみを表示します。 .SH "関連項目" .B info\c \& の .RB "`\|" binutils "\|'" の項; .I The GNU Binary Utilities\c \&, Roland H. Pesch (October 1991) .SH 日本語訳 野首 寛高(hnokubi@yyy.or.jp): FreeBSD 用に翻訳 diff --git a/ja_JP.eucJP/man/man1/apropos.1 b/ja_JP.eucJP/man/man1/apropos.1 index 06b768e774..9149aee162 100644 --- a/ja_JP.eucJP/man/man1/apropos.1 +++ b/ja_JP.eucJP/man/man1/apropos.1 @@ -1,39 +1,39 @@ .\" Man page for apropos an wahtis .\" .\" Copyright (c) 1990, 1991, John W. Eaton. .\" .\" You may distribute under the terms of the GNU General Public .\" License as specified in the README file that comes with the man 1.0 .\" distribution. .\" .\" John W. Eaton .\" jwe@che.utexas.edu .\" Department of Chemical Engineering .\" The University of Texas at Austin .\" Austin, Texas 78712 .\" .\" jpman %Id: apropos.1,v 1.3 1997/06/14 16:18:57 kubo Stab % .Dd Jan 15, 1991 .Dt APROPOS 1 .Os .Sh 名称 .Nm apropos , whatis -.Nd whatis データベースを文字列で探索検索する +.Nd whatis データベースを文字列で検索する .Sh 書式 .Nm apropos .Ar keyword ... .br .Nm whatis .Ar keyword ... .Sh 解説 .Nm apropos は、システムコマンドに関する短い簡単な説明を含んだデータベースファイルを、 -キーワードによって探索して、その結果を標準出力に表示します。 +キーワードによって検索して、その結果を標準出力に表示します。 .Nm whatis -では完全な語にのみ適合します。 +では完全な語にのみマッチします。 .Sh 戻り値 .Nm apropos は成功時には 0 を、キーワードがマッチしない場合には 1 を返します。 .Sh 関連項目 .Xr makewhatis 1 , .Xr man 1 diff --git a/ja_JP.eucJP/man/man1/ar.1 b/ja_JP.eucJP/man/man1/ar.1 index 4422512beb..063ff9aad4 100644 --- a/ja_JP.eucJP/man/man1/ar.1 +++ b/ja_JP.eucJP/man/man1/ar.1 @@ -1,470 +1,470 @@ .\" Copyright (c) 1991 Free Software Foundation .\" See section COPYING for conditions for redistribution .TH ar 1 "5 November 1991" "cygnus support" "GNU Development Tools" .\" jpman %Id: ar.1,v 1.3 1998/12/21 23:20:51 jsakai Stab % .\" .\" WORD: truncate (小数で)切り捨てる[POSIX],切り詰める .\" .de BP .sp .ti \-.2i \(** .. .SH 名称 ar \- アーカイブの作成、更新、および、アーカイブからの抽出 .SH 書式 .hy 0 .na .BR ar " [\|" "-" "\|]"\c .I {dmpqrtx}[abcilosSuvV] \c [\|\c .I membername\c \&\|] \c .I archive\c \& \c .I files\c \&.\|.\|. .ad b .hy 1 .SH 解説 GNU \c .B ar\c プログラムは、アーカイブの作成、更新、および、アーカイブからの抽出を -おこないます。 +行ないます。 .I アーカイブ\c -\& とは、オリジナルのファイル(アーカイブの +\& とは、オリジナルのファイル (アーカイブの .I メンバ\c -と呼びます)を復元できるような構造で、他のファイル群の集合を保持する +と呼びます) を復元できるような構造で、他のファイル群の集合を保持する ような一つのファイルです。 -元のファイルの内容、モード(パーミッション)、タイムスタンプ、所有者、 +元のファイルの内容、モード (パーミッション)、タイムスタンプ、所有者、 グループの情報はアーカイブ内でも保存され、ファイル抽出時には復元 されます。 GNU \c .B ar\c では、メンバファイルのファイル名の長さには制限はありませんが、システム -の設定によっては(他のツールで管理されるアーカイブファイルの形式との -互換性のために)メンバファイルのファイル名の長さに制限がある場合があります。 -制限がある場合は、多くの場合 15 文字(a.out 関連のファイル形式が代表的)か、 -16 文字(coff 関連のファイル形式が代表的)に制限されます。 +の設定によっては (他のツールで管理されるアーカイブファイルの形式との +互換性のために) メンバファイルのファイル名の長さに制限がある場合があります。 +制限がある場合は、多くの場合 15 文字 (a.out 関連のファイル形式が代表的) か、 +16 文字 (coff 関連のファイル形式が代表的) に制限されます。 この種類のアーカイブは、共有のサブルーチンを保持するライブラリとして 利用されることが多いため、\c .B ar\c \& はバイナリユーティリティと考えられます。 `\|\c .B s\c -\|'修飾子を指定した場合、\c +\|' 修飾子を指定した場合、\c .B ar\c \& はアーカイブ内のリロケータブルオブジェクトで定義されたシンボル のインデックスを作成します。 一度作成されたインデックスは、\c .B ar\c -\& がアーカイブの内容を変更するときには必ず更新されます。(ただし`\|\c +\& がアーカイブの内容を変更するときには必ず更新されます (ただし `\|\c .B q\c \|' オプション指定時は更新されません)。このようなインデックスを持つ アーカイブを用いることによって、ライブラリのリンクが高速化されたり、 ライブラリ内のルーチンがアーカイブ内の配置にかかわらず、互いを呼び出す ことができるようになります。 `\|\c .B nm \-s\c \|' または `\|\c .B nm \-\-print\-armap\c \|' によって、このインデックステーブルを表示することができます。 もし、アーカイブにインデックステーブルが含まれていない場合は、\c .B ranlib\c と呼ばれる、もう一つの形式の \c .B ar\c \& を用いてテーブルだけを追加することができます。 \c .B ar\c \& を実行する時は、少なくとも二つの引数を指定する必要があります。 .I オペレーション\c -\& (動作)を指定する一つのキー文字と、処理するアーカイブ名です。 +\& (動作) を指定する一つのキー文字と、処理するアーカイブ名です (キー文字には\c .I 修飾子\c -\& として複数の文字をつけることもできます。) +\& として複数の文字をつけることもできます)。 ほとんどのオペレーションは、処理する個々のファイル名を指定するための \c .I files\c \& 引数を受け付けます。 .SH オプション GNU \c .B ar\c \& は最初のコマンドラインオプションとして、オペレーションコード \c .I p\c \& と、修飾子 \c .I mod\c \& を任意の順序で組み合わせたものを受け付けます。 最初のオプションの先頭にダッシュ(ハイフン)をつけることもできます。 キー文字 \c .I p\c \& は、どのオペレーションを実行するかを指定します。キー文字としては 以下のいずれか一つだけを指定することができます。 .TP .B d アーカイブからモジュールを\c .I 削除\c \& します。削除するモジュール名を \c .I files\c \& として指定して下さい。 ファイル名を指定しなければアーカイブは変更されません。 `\|\c .B v\c -\|'修飾子を指定した時には、\c +\|' 修飾子を指定した時には、\c .B ar\c \& は削除する際にそのモジュール名を表示します。 .TP .B m メンバをアーカイブ内で移動します。 あるシンボルが複数のメンバで定義されている場合は、アーカイブ内でのメンバの 順序によって、プログラムがライブラリをリンクした結果が異なることが あります。 .B m\c \& に修飾子が指定されなかった場合は \c .I files\c \& 引数で指定したメンバはアーカイブの\c .I 最後\c \& に移動されます。 `\|\c .B a\c \|'、`\|\c .B b\c -\|'、または`\|\c +\|'、または `\|\c .B i\c \|' 修飾子を指定することによって、修飾子に応じた場所に移動します。 .TP .B p アーカイブ内の指定されたメンバを標準出力に\c .I 出力\c \& します。`\|\c .B v\c \|' 修飾子が指定されたときは、メンバの内容を出力する前にメンバ名を出力 します。 .I files\c を指定しなければ、アーカイブ内のすべてのファイルが出力されます。 .TP .B q \c .I クイックアペンド\c \&。\c .I files\c \& で指定されたファイルを、重複をチェックせずに\c .I アーカイブ\c \&の末尾に追加します。 `\|\c .B a\c \|'、`\|\c .B b\c \|'、`\|\c .B i\c -\|'修飾子はこのオペレーションには\c +\|' 修飾子はこのオペレーションには\c .I 影響しません\c \&。新たなメンバは常にアーカイブの末尾に置かれます。 `\|\c .B v\c -\|'修飾子を指定すると、\c +\|' 修飾子を指定すると、\c .B ar\c \& は追加の際にそのファイル名を出力します。 このオペレーションの特徴は動作速度ですので、たとえ シンボルテーブルのインデックスが存在したとしても、それを更新しません。 -シンボルテーブルのインデックスを更新するには、明示的に`\|\c +シンボルテーブルのインデックスを更新するには、明示的に `\|\c .B ar s\c -\|'か +\|' か \c .B ranlib\c \& を使って下さい。 しかしながら、多くの異なるシステムにおいてクイックアペンドが インデックスを再構築することが仮定されていますので、GNU .B ar -は`\|\c +は `\|\c .B q\c -\|'は`\|\c +\|' は `\|\c .B r\c -\|'と同じ動作をするように実装しています。 +\|' と同じ動作をするように実装しています。 .TP .B r \c files\c -\& をアーカイブに挿入(重複の際は\c +\& をアーカイブに挿入 (重複の際は\c .I 置換\c -\&)します。 +\&) します。 このオペレーションは`\|\c .B q\c -\|'とは異なり、追加するファイルと同名のメンバがすでに存在する +\|' とは異なり、追加するファイルと同名のメンバがすでに存在する 場合は削除されます。 もし \c .I files\c \& で指定したファイルの中に存在しないものが一つでも含まれている場合は\c .B ar\c \& はエラーメッセージを出力し、そのファイル名と同名のメンバは変更 されずに保存されます。 デフォルトでは新しいメンバはファイルの末尾に追加されますが、`\|\c .B a\c \|'、`\|\c .B b\c -\|'、または、`\|\c +\|'、または `\|\c .B i\c \|' 修飾子を指定することにより、既存のメンバに対する相対的な位置関係を 指定することができます。 このオペレーションに `\|\c .B v\c \|' 修飾子を指定すると、挿入された各ファイルに対して、ファイルが追加 -された(削除された古いメンバがない)か、置換されたかを示す `\|\c +された (削除された古いメンバがない) か、置換されたかを示す `\|\c .B a\c \|' または `\|\c .B r\c \|' のどちらかを含んだ一行が出力されます。 .TP .B t \c .I アーカイブ\c \& の内容、または \c .I files\c \& に列挙されたファイルのうち、アーカイブ内に存在するものの一覧を出力 します。通常はメンバ名だけを表示しますが、`\|\c .B v\c -\|'修飾子を指定することにより、モード(パーミッション)、タイムスタンプ、 +\|' 修飾子を指定することにより、モード (パーミッション)、タイムスタンプ、 所有者、グループ、サイズも表示します。 \c .I files\c \& の指定がない場合はアーカイブ内のすべてのファイルの一覧を表示します。 -あるアーカイブ(`\|\c +あるアーカイブ (`\|\c .B b.a\c -\|'とします)の中に同じ名前(`\|\c +\|' とします) の中に同じ名前 (`\|\c .B fie\c -\|'とします)の複数のファイルが存在する場合は、`\|\c +\|' とします) の複数のファイルが存在する場合は、`\|\c .B ar t b.a fie\c -\|'は最初のファイルだけを表示します。同名のファイルをすべて見たい場合 -はすべてのファイルの一覧を表示して下さい。(この例では`\|\c +\|' は最初のファイルだけを表示します。同名のファイルをすべて見たい場合 +はすべてのファイルの一覧を表示して下さい。この例では `\|\c .B ar t b.a\c -\|') +\|') です。 .TP .B x アーカイブから \c .I files\c \& で指定されたメンバを\c .I 抽出\c します。 `\|\c .B v\c -\|'修飾子を指定すると、\c +\|' 修飾子を指定すると、\c .B ar\c \& は抽出の際にそのファイル名を出力します。 \c .I files\c \& の指定がない場合はアーカイブ内のすべてのファイルを抽出します。 .PP -いくつかの修飾子(\c +いくつかの修飾子 (\c .I mod\c -\&)をキー文字 \c +\&) をキー文字 \c .I p\c \& の直後に付けることによって、オペレーションの動作を変更する ことができます。 .TP .B a 新しいファイルを既存のメンバの\c .I 後\c \& に追加します。 \c .B a\c \& 修飾子を用いるときは、\c .I archive\c \& 引数の前に\c .I membername\c \& 引数として既存のメンバ名を指定する必要があります。 .TP .B b 新しいファイルを既存のメンバの\c .I 前\c \& に追加します。 \c .B b\c \& 修飾子を用いるときは、\c .I archive\c \& 引数の前に\c .I membername\c \& 引数として既存のメンバの名前を指定する必要があります。(`\|\c .B i\c \|'と同じ。) .TP .B c -アーカイブの\c +アーカイブを\c .I 作成\c -\&。 +\& します。 存在しない\c .I アーカイブ\ \& を更新するように指定した場合、そのアーカイブは必ず作成されますが、 その際、この修飾子を指定することによって、アーカイブを作成することを 明示していなければ、警告を出力します。 .TP .B f -アーカイブ内の名前を切り詰める。 +アーカイブ内の名前を切り詰めます。 通常 .B ar は任意の長さのファイル名を受け付けますが、このため、いくつかのシステム で使われている従来の .B ar と互換性のないアーカイブが作成されることになります。これが問題になる 場合は、 .B f 修飾子を指定して、ファイルをアーカイブに追加する際にそのファイル名を 切り詰めることができます。 .TP .B i 新しいファイルを既存のメンバの\c .I 前\c \& に挿入します。 \c .B i\c \& 修飾子を用いる時は、\c .I archive\c \& 引数の前に\c .I membername\c \& 引数として既存のメンバ名を指定する必要があります。(`\|\c .B b\c \|'と同じ。) .TP .B l この修飾子は指定可能ですが、使用されません。 .TP .B o メンバを抽出する際に\c .I オリジナル\c \& の時刻を保存します。この修飾子を指定しないと、アーカイブから抽出 されたファイルのタイムスタンプは抽出時の時刻になります。 .TP .B s アーカイブに他の変更がない場合でも、アーカイブにオブジェクトファイルの インデックスを書き込んだり、既存のインデックスを更新します。この修飾子 はほかのオペレーションと併用することも、単独で使用することも可能です。 あるアーカイブに対して`\|\c .B ar s\c -\|'を実行することは、そのアーカイブに対して`\|\c +\|' を実行することは、そのアーカイブに対して `\|\c .B ranlib\c -\|'を実行することと等価です。 +\|' を実行することと等価です。 .TP .B S アーカイブのシンボルテーブルを作成しません。これを用いると大きな ライブラリを何回かに分けて作成する際に時間を短縮することができます。 この結果得られるアーカイブはリンカで使用することはできません。 シンボルテーブルを作成するためには最後に `\|\c .B ar\c \|' を実行する時に `\|\c .B S\c \|' 修飾子を外すか、そのアーカイブに対して `\|\c .B ranlib\c \|' を実行する必要があります。 .TP .B u 通常 \c .B ar r\c \&.\|.\|. は列挙されたファイルをすべてアーカイブに挿入します。 この修飾子を指定すると、指定したファイルが既存の同名のメンバより 新しい場合\c .I のみ\c \&ファイルを挿入します。 `\|\c .B u\c -\|'修飾子は`\|\c +\|' 修飾子は `\|\c .B r\c -\|'(置換)オペレーションだけに付けることができます。 +\|'(置換) オペレーションだけに付けることができます。 特に、タイムスタンプの確認は `\|\c .B q\c \|' オペレーションの利点である速度を低下させるので、`\|\c .B qu\c \|' の組み合わせは認められません。 .TP .B v オペレーションに対して .I 冗長\c \&な表示を要求します。 多くのオペレーションにおいて `\|\c .B v\c \|' 修飾子が指定されると、 処理されたファイル名などの付加的な情報が表示されます。 .TP .B V この修飾子は .BR ar\c \& のバージョン番号を表示します。 .PP .SH 関連項目 .B info\c \&の .RB "`\|" binutils "\|'" の項; .I The GNU Binary Utilities\c , Roland H. Pesch (October 1991). .BR nm ( 1 )\c \&, .BR ranlib ( 1 )\c \&. .SH COPYING Copyright (c) 1991 Free Software Foundation, Inc. .PP Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. .PP Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. .PP Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions, except that this permission notice may be included in translations approved by the Free Software Foundation instead of in the original English. diff --git a/ja_JP.eucJP/man/man1/awk.1 b/ja_JP.eucJP/man/man1/awk.1 index db26953b31..33126e861f 100644 --- a/ja_JP.eucJP/man/man1/awk.1 +++ b/ja_JP.eucJP/man/man1/awk.1 @@ -1,2536 +1,2536 @@ .\" jpman %Id: awk.1,v 1.3 1997/04/17 13:23:21 horikawa Stab % .\" WORD: interval exptession インターバル表現 .ds PX \s-1POSIX\s+1 .ds UX \s-1UNIX\s+1 .ds AN \s-1ANSI\s+1 .TH GAWK 1 "Dec 19 1996" "Free Software Foundation" "Utility Commands" .SH 名称 gawk \- パターン検索・処理言語 .SH 書式 .B awk [ POSIX or GNU style options ] .B \-f .I program-file [ .B \-\^\- ] file .\^.\^. .br .B gawk [ POSIX or GNU style options ] [ .B \-\^\- ] .I program-text file .\^.\^. .SH 解説 .I gawk は GNU プロジェクトが実装した プログラミング言語 AWK の処理系です。 本処理系は \*(PX 1003.2 コマンド言語とユーティリティ規約に定められた 言語の定義に適合しています。 本バージョンはまた、Aho, Kernighan, Weinberger の著書『 .I The AWK Programming Language 』の記述にもとづいており、 System V Release 4 \*(UX の .I awk の付加機能も含んでいます。 .I gawk はまた、Bell Labs の新機能および GNU 独自の拡張も提供します。 .PP コマンドラインは、 .I gawk へのオプション、(もし .B \-f または .B \-\^\-file オプションにより指定されていなければ)AWK のプログラムテキスト、そして 残りの引数列からなります。 この残りの引数列は、定義済み AWK 変数 .BR ARGC , .B ARGV を用いることで参照できます。 .SH オプションフォーマット .PP .I gawk へのオプションは、伝統的な \*(PX 形式の 1 文字オプションと、GNU 形式の ロングオプションがあります。 \*(PX 形式のオプションは単一の ``\-'' で始まり、一方 GNU 形式のもの は ``\-\^\-'' で始まります。ロングオプションは GNU の独自仕様と \*(PX の必須仕様の両方について用意されています。 .PP \*(PX 標準に従い、 .I gawk 独自仕様のオプションは .B \-W オプションへの引数で与えます。 複数の .B \-W オプションを指定することもできます。 後述の ように、各 .B \-W オプションには、それに対応するロングオプション が存在します。ロングオプションへの引数は、空白を入れずに .B = でつないで指定するか、その次のコマンドライン引数として渡すことができます。 ロングオプションは、短縮形が一意である限り、短縮することができます。 .SH オプション .I gawk は以下のオプションを受け付けます。 .TP .PD 0 .BI \-F " fs" .TP .PD .BI \-\^\-field-separator " fs" 入力フィールドセパレータ (変数 .B FS の値)を .I fs とします。 .TP .PD 0 \fB\-v\fI var\fB\^=\^\fIval\fR .TP .PD \fB\-\^\-assign \fIvar\fB\^=\^\fIval\fR プログラムを実行する前に、変数 .I var に値 .I val を設定します。このようにして設定 した変数は、 AWK プログラムの .B BEGIN ブロック内でも参照できます。 .TP .PD 0 .BI \-f " program-file" .TP .PD .BI \-\^\-file " program-file" .B awk への第 1 引数を用いるかわりに、AWK プログラムをファイル .I program-file から読み込みます。 .B \-f (または .B \-\^\-file ) オプションは複数回使 用することができます。 .TP .PD 0 .BI \-mf " NNN" .TP .PD .BI \-mr " NNN" さまざまなメモリの制限値を .I NNN に設定します。フラグ .B f は最大フィールド数、フラグ .B r は最大レコードサイズを設定します。この 2 つのフラグと .B \-m オプションは、Bell Labs バージョンの \*(UX .I awk に由来しています。しかし、 .I gawk にはこのような制限はありませんので、 .I gawk では本オプションは無視されます。 .TP .PD 0 .B "-W traditional" .TP .PD 0 .B "\-W compat" .TP .PD 0 .B \-\^\-traditional .TP .PD .B \-\^\-compat .I 互換 モードで動作します。互換モードでは、 .I gawk は \*(UX .I awk と等価な動作を行い、GNU 独自拡張は解釈できません。 このオプションの他の形式よりも、 .B \-\^\-traditional を使用することが好まれます。 詳しくは後述の .B "GNU 拡張" を参照してください。 .TP .PD 0 .B "\-W copyleft" .TP .PD 0 .B "\-W copyright" .TP .PD 0 .B \-\^\-copyleft .TP .PD .B \-\^\-copyright GNU の著作権表示の短いバージョンを標準出力へ書き出し、 成功状態で終了します。 .TP .PD 0 .B "\-W help" .TP .PD 0 .B "\-W usage" .TP .PD 0 .B \-\^\-help .TP .PD .B \-\^\-usage 短めのオプション一覧を標準出力へ書き出します。 (GNU コーディング規約に 従い、本オプションを指定すると .I awk はただちに終了し、成功を意味する終了ステータスを返します。) .TP .PD .B "\-W lint" .TP .PD 0 .B \-\^\-lint 他の AWK での処理が疑わしい、あるいは他の AWK との互換性がない構造が ある場合に警告を行います。 .TP .PD 0 .B "\-W lint\-old" .TP .PD .B \-\^\-lint\-old オリジナルの Unix .I awk へ移植できない構造に関して警告を行います。 .ig .\" This option is left undocumented, on purpose. .TP .PD 0 .B "\-W nostalgia" .TP .PD .B \-\^\-nostalgia 長い間 .I awk を使ってきたユーザのために郷愁の瞬間を提供します。 .. .TP .PD 0 .B "\-W posix" .TP .PD .B \-\^\-posix .I 互換 モードをオンにし、更に以下の制約が課せられます。 .RS .TP \w'\(bu'u+1n \(bu .B \ex エスケープシーケンスを解釈しません。 .TP \(bu .B FS が単一の空白に設定された場合、空白とタブのみがフィールドを区切り、 改行はフィールドを区切りません。 .TP \(bu キーワード .B function に対応する別名 .B func を解釈しません。 .TP \(bu 演算子 .B ^ や .B ^= のかわりに .B ** や .B **= を用いることができません。 .TP \(bu .B fflush() 関数は利用できません。 .RE .TP .PD 0 .B "\-W re\-interval" .TP .PD .B \-\^\-re\-interval 正規表現のマッチングで .I "インターバル表現 (interval expressions)" を有効にします (後述の .BR "正規表現" を参照してください)。 インターバル表現は伝統的な AWK 言語では利用できませんでした。 .I awk と .I egrep が一貫性を持つように、POSIX 標準がこれらを追加しました。 しかし、これらを使用すると古い AWK プログラムを動かなくしてしまうでしょうから、 このオプションによって要求されたときと、 .B \-\^\-posix が指定されたときに、 .I gawk はこれらの機能を提供します。 .TP .PD 0 .BI "\-W source " program-text .TP .PD .BI \-\^\-source " program-text" .I program-text を AWK プログラムとして用います。本オプションにより、ライブラリ化された関数 ( .B \-f または .B \-\^\-file オプションを用いて読み込む) とコマンドラインから入力されたプログラムを 簡単に合成することができます。 これは、主にシェルスクリプトで用いられる中規模から大規模な AWK プログラム のために用意されました。 .TP .PD 0 .B "\-W version" .TP .PD .B \-\^\-version 実行された .I gawk プログラムのバージョン情報を標準出力へ書き出します。これは主に、 あなたが使用している .I gawk プログラムが Free Software Foundation が配布してい るプログラムのうち、最新のものであるかどうかを知る場合に便利です。 またバグレポートのときにも有用です。 (本オプションを指定すると、GNU コーディング規約に従い、 .I awk はただちに終了し、成功を意味する終了ステータスを返します。) .TP .B \-\^\- オプションの終了を意味します。AWK プログラムに ``\-'' から始まるオプションではない 引数を与える場合に便利です。 これは、主に他の \*(PX プログラムの多くが引数に対して行う解釈と 一貫性を保つためにあります。 .PP 互換モードでは、他のオプションは不正であるとされるか、無視されます。 通常の実行において、プログラムテキストがコマンドラインに指定されていれば、 不明なオプションは、AWK プログラムに .B ARGV 配列を通して渡されます。これ は、AWK プログラムを ``#!'' 機構を用いて実行する場合に特に便利です。 .SH AWK プログラムの実行 .PP AWK プログラムは、パターンとアクションの組の列と、(もし必要なら) 関数定義か らなります。 .RS .PP \fIpattern\fB { \fIaction statements\fB }\fR .br \fBfunction \fIname\fB(\fIparameter list\fB) { \fIstatements\fB }\fR .RE .PP .I gawk はまず、 .I program-file (複数可) が指定されていればそれから、 .B \-\^\-source の引数から、あるいは、最初のオプションではない引数から プログラムを読み込みます。 .B \-f と .B \-\^\-source オプションは、コマンドラインで複数回指定できます。 .I gawk は、すべての .I program-file とコマンドラインで指定したプログラムを結 合して使用します。新しく作った AWK プログラムひとつひとつに AWK 関数のライブラリを埋め込む必要が無いので、この機能はライブラリの構築に 便利です。 また、ライブラリ関数とコマンドラインで指定したプログラムとを混合して使 うことも可能にしています。 .PP 環境変数 .B AWKPATH により、 .B \-f オプションで指定されたファイルを検索するパスを指定できます。 .B AWKPATH が設定されていない場合のデフォルトパスは \fB".:/usr/local/share/awk"\fR です。 (実際のディレクトリは .I gawk がどのように構築/インストールされたかに依存して、さまざまなものとなります。) .B \-f オプションで指定したファイル名が ``/'' を含んでいる場合は、 パス検索は行われません。 .PP .I gawk は、 AWK プログラムを次の順序で実行します。 まず、 .B \-v オプションで指定された変数への代入をすべて行います。 次に、プログラムを内部形式にコンパイルします。 そして、(もし存在すれば) .B BEGIN ブロック (複数存在可) を実行します。 配列 .B ARGV で指定されたファイルを順に読み、処理を行います (コマンドラインでファイル名が 指定されていなければ、標準入力に対して処理を行います)。 .PP コマンドラインで指定されたファイル名が .IB var = val という形式ならば、それ は変数への代入であると解釈されます。変数 .I var は値 .I val に設定されます (これは、すべての .B BEGIN ブロックを実行したあとに行われます)。コマンドライン での変数の代入は、AWK が入力をフィールドやレコードに分割するためのセパレータ を実行時に変更するのに便利です。また、1 つのデータファイルに 対し数回処理を行う必要がある場合、状態をコントロールするのにも便利です。 .PP 配列 .B ARGV の要素に空 (\fB""\fR) がある場合、 .I gawk はその要素を無視します。 .PP .I gawk は、入力された各レコードに対してマッチする .I パターン が AWK プログラム内にあるかどうかを 検索します。そのレコードにマッチしたパターンすべてについて、それぞれ対応する .I アクション が実行されます。 パターンは、プログラムテキストに出現した順序で検索されます。 .PP 入力が尽きると、 .I gawk は (もしあれば) .B END ブロック (複数存在可) を実行します。 .SH 変数、レコード、フィールド AWK における変数は動的、すなわち、最初に使用されたときに生成されます。 変数の値は、浮動小数点数か、文字列か、あるいは両方です。変数の用い られ方により変化します。AWK ではまた、1 次元配列を利用することができます。 多次元配列 も、擬似的にではありますが、利用可能です。プログラム実行開始時に、 いくつかの定義済み変数が設定されます。 これらを必要に応じて説明し、以下でまとめます。 .SS レコード 通常、レコードは改行文字により区切られます。 レコードの区切りは、組み込み変数 .B RS へ値を代入することにより、制御できます。 .B RS が単一文字の場合、その文字がレコードを区切ります。 そうでない場合は、 .B RS は正規表現となります。 入力中のテキストで、この正規表現にマッチするものがレコードを区切ります。 しかし互換モードでは、 文字列値の最初の文字だけが、レコードセパレータに使用されます。 .B RS が空文字列に設定されているときには、レコードは空行で区切られます。 .B RS が空文字列に設定されたときには、 .B FS の値にかかわらず、改行文字は常にフィールドセパレータとなります。 .SS フィールド .PP 入力レコードを読み込むごとに、 .I gawk はそのレコードを .I フィールド に分割しま す。分割する際には、変数 .B FS の値がフィールドセパレータとして参照されます。 .B FS の値が1文字なら、その 文字を境にフィールドが分割されます。 .B FS が空文字列の場合、個々の文字がフィールドセパレータとなります。 いずれでもない場合、 .B FS は完全な正規表現である と解釈されます。特殊な場合として .B FS が単一の空白のときには、フィールドは 連続した空白・タブ・改行により分割されます。 (後述の .BR \-\-posix の議論を参照してください)。 変数 .B IGNORECASE (下記参照) の 値は、 .B FS が正規表現の場合フィールド分割にも影響を与えることと、 .B RS が正規表現の場合レコード分割にも影響を与えることに注意してください。 .PP 変数 .B FIELDWIDTHS の値が空白で区切られた数字の列である場合、各フィールドは 固定長であると解釈され、 .I gawk は指定された幅ごとにフィールドの 分割を行います。この場合、 .B FS の値は無視されます。 .B FS に新たに値を設定 することにより、この .B FIELDWIDTHS の効果を打ち消し、標準の動作に戻すことができます。 .PP 入力レコード中の各フィールドの値は、左から .BR $1 , .B $2 等という名前で参照できます。 .B $0 は レコード全体です。フィールドに値を代入することもできます。フィールドは定数だ けでなく、変数によって参照することもできます。以下の例では、入力レコードの 5 番目のフィールドの値を出力します。 .RS .PP .ft B n = 5 .br print $n .ft R .RE .PP 変数 NF は、自動的に入力レコードのフィールドの数に設定されます。 .PP 存在しないフィールド (すなわち、 .B $NF より右のフィールド) を参照した結果は 空文字列になります。しかしながら、存在しないフィールドへの代入(たとえ ば、 .BR $(NF+2) = 5 ) は .B NF の値を増加させ、間のフィールドには空文字が設定されます。 さらに .B $0 の値は、フィールドの値を変数 .B OFS の値でフィールドを区切ったものとして再計算されます。 負のフィールド番号への参照は致命的エラーとなります。 .B NF を減少させると、新しい値を越えるフィールドの値は失われます。 .B $0 の値は、フィールドの値を変数 .B OFS の値でフィールドを区切ったものとして再計算されます。 .SS 組み込み変数 .PP .I gawk の組み込み変数は以下のとおりです。 .PP .TP \w'\fBFIELDWIDTHS\fR'u+1n .B ARGC コマンドライン引数の個数 ( .I gawk へのオプションと、プログラム指定は含みま せん)。 .TP .B ARGIND 現在処理中のファイル名が格納されている配列 .B ARGV のインデックス。 .TP .B ARGV コマンドライン引数の配列。配列は、 0 から .B ARGC \- 1 までのインデックスを 持ちます。 .B ARGV の内容を変更することで、入力に用いるファイル名を変 更することができます。 .TP .B CONVFMT 数値の変換フォーマット。デフォルト値は \fB"%.6g"\fR です。 .TP .B ENVIRON 現在の環境変数の値からなる配列。配列は、環境変数名によりインデックスされ 、各要素の値はその環境変数の値です (例えば \fBENVIRON["HOME"]\fP は .B /home/arnold となるでしょう)。本配列に 代入を行っても、 .I gawk からリダイレクトや .B system() 関数により実行される プログラムの環境には影響を与えません(これは、将来の .I gawk では変更される可能性があります)。 .\" but don't hold your breath... .TP .B ERRNO .B getline のリダイレクト、 .B getline による読み込み、 .B close() 関数の実行時のいずれかにシステムエラーが発生した場合、変数 .B ERRNO にはエラーの内容を示した文字列が設定されます。 .TP .B FIELDWIDTHS 空白で区切られたフィールド長のリスト。もしこの値が設定されていれば、 .I gawk は .B FS の値を用いてフィールド分割するかわりに、固定長のフィールド分割を行 います。固定長のフィールド分割機能はまだ実験的なもので、 .I gawk が改良されるに従って意味が変化する可能性があります。 .TP .B FILENAME 現在の入力ファイル名。もし、コマンドラインで入力ファイルが指定されてい なければ、 .B FILENAME の値は ``\-'' です。しかしながら、 .B BEGIN ブロック内では .B FILENAME は未定義です。 .TP .B FNR 現在の入力ファイルにおける入力レコード番号。 .TP .B FS 入力フィールドセパレータ。デフォルトでは単一の空白です。 上述の .B フィールド を参照してください。 .TP .B IGNORECASE すべての正規表現と文字列操作において大文字小文字の区別を制御します。もし、 .B IGNORECASE が 0 でない値に設定されていれば、文字列比較、ルールのパターンマッチ、 .B FS によるフィールド分割、 .B RS によるレコード分割、 .B ~ と .B !~ による正規表現マッチ、定義済み関数 .BR gensub() , .BR gsub() , .BR index() , .BR match() , .BR split() , .B sub() において大文字と小文字の違いは無視されます。このため、 .B IGNORECASE が 0 以外の値なら、 .B /aB/ は \fB"ab"\fP, \fB"aB"\fP, \fB"Ab"\fP, \fB"AB"\fP のいずれにもマッチすることになります。 他のAWK 変数と同様に .B IGNORECASE の初期値は 0 なので、通常は 正規表現と文字列操作において大文字と小文字は区別されます。 Unix では、大文字小文字を無視する場合、 ISO 8859-1 Latin-1 文字集合全てを使用できます。 .B 注: 3.0 以前の .I gawk では .B IGNORECASE は正規表現操作のみに影響しました。現在は文字列比較にも影響します。 .TP .B NF 現在の入力レコードのフィールド数。 .TP .B NR 現在までに読み込んだ入力レコード数の合計。 .TP .B OFMT 数字の出力フォーマット。デフォルト値は \fB"%.6g"\fR です。 .TP .B OFS 出力フィールドセパレータ。デフォルトは空白です。 .TP .B ORS 出力レコードセパレータ。デフォルトは改行です。 .TP .B RS 入力レコードセパレータ。デフォルトは改行です。 .TP .B RT レコードターミネータ。 .I gawk は、 .B RS で指定される文字または正規表現にマッチする入力テキストを、 .B RT に設定します。 .TP .B RSTART .B match() によりマッチした最初の文字の位置。0 はマッチしなかったことを示します。 .TP .B RLENGTH .B match() によりマッチした文字列の長さ。\-1 はマッチしなかったことを示します。 .TP .B SUBSEP 多次元配列を実現する際に用いられる、配列のインデックスを結合する文字。 デフォルト値は \fB"\e034"\fR です。 .SS 配列 .PP 配列は、ブラケット .RB ( [ と .BR ] ) の間の式によってインデックスを指定します。もし式が式 のリスト(式, 式, ...) なら、式の値を変数 .B SUBSEP の値を区切りとして 結合した文字列をインデックスとして用います。これにより、多次元配列を シミュレートしています。例えば、 .PP .RS .ft B i = "A";\^ j = "B";\^ k = "C" .br x[i, j, k] = "hello, world\en" .ft R .RE .PP は、文字列 \fB"hello, world\en"\fR を、文字列 \fB"A\e034B\e034C"\fR で インデックスした配列 x の要素に代入しています。 AWK の配列はすべて、文字列によりインデックスを行う連想配列です。 .PP 特殊な演算子 .B in を .B if または .B while ステートメントで用いることによって、あるインデックス値に おける配列の値が定義されているかを調べることができます。 .PP .RS .ft B .nf if (val in array) print array[val] .fi .ft .RE .PP もし、配列が多次元インデックスを持つなら、 .B "(i, j) in array" を用います。 .PP .B in はまた、 .B for ループ中で、配列のすべてのインデックス値について繰り返すために 用いることができます。 .PP 配列の要素は、 .B delete ステートメントを用いて削除することができます。 .B delete ステートメントはまた、 添字を指定せずに配列名のみを指定することにより、 配列全体を削除するためにも使えます。 .SS 変数の型と変換 .PP 変数とフィールドは、(浮動小数点数の) 数値または文字列、あるいは両方として 扱われます。 変数の値がどのように解釈されるかは、変数の使われ方によって変化します。 数式中で用いられれば変数は数値として解釈され、文字列として用いられれ ば文字列として解釈されます。 .PP 変数の値を強制的に数値であると解釈させたい場合は、変数に 0 を加えます。 文字列と解釈させたい場合は空文字列を結合します。 .PP 文字列を数値に変換する必要がある場合、変換は .IR atof (3) によって行われます。 数値を文字列に変換する場合は、変数 .B CONVFMT の値をフォーマット文字列として用いて、 .IR sprintf (3) により行われます。AWK ではすべての数値は浮動小数点数ですが、整数値は常に整数 として変換が行われます。 よって、以下の場合、 .PP .RS .ft B .nf CONVFMT = "%2.2f" a = 12 b = a "" .fi .ft R .RE .PP 変数 .B b は文字列値 \fB"12"\fR となり、\fB"12.00"\fR とはなりません。 .PP .I gawk は、以下のようにして比較を行います: 2 つの変数が数値なら数値として比 較します。もし片方が数値で片方が`数値'文字列なら、数値として比較されます。 片方が数値でない文字列なら、数値のほうが文字列に変換され、文字列として 比較されます。両方とも文字列なら、文字列として比較されます。\*(PX 標準に従う なら、両方とも数値文字列の場合は数値として比較しますが、これは明ら かに間違いです。 .I gawk はそのような動作をしません。 .PP \fB"57"\fP のような文字列定数は数値文字列では .I なく 、文字列定数です。「数値文字列」の概念は、フィールド、 .B getline の入力、 .B FILENAME 、 .B ARGV の要素、 .B ENVIRON の要素、数値文字列から .B split() によって作成された配列の要素に対してのみ適用されます。 基本的な考え方では、 .I ユーザ入力 、それも数値に見えるユーザ入力のみが数値として扱われます。 .PP 初期化されていない変数は、数値としては 0 を、文字列としては "" (空文字列) を 持ちます。 .SH パターンとアクション awk は行指向の言語です。まずパターン、次にアクションが続きます。 アクションは .B { と .B } で囲みます。パターンまたはアクションは省略することもできます。 もちろん、両方とも 省略してしまっては意味がありません。 パターンがない場合、アクションはすべての入力レコードに 対して適用されます。省略されたアクションは以下と等価です。 .RS .PP .B "{ print }" .RE .PP これはレコード全体を出力します。 .PP コメントは文字 ``#'' で始まり、行末まで続きます。空行は、複数ステートメントの 間をあけるのに使うことができます。 通常、ステートメントは改行で終わります。ただし、 次の記号で行が終わる場合にはこの限りではありません: ``,'', .BR { , .BR ? , .BR : , .BR && , .B || 。 .B do または .B else で終わる行は、ステートメントが自動的に以降 の行へ継続されます。また、改行の直前に ``\e'' を置くことで、 行を継続することができます。この場合、その改行は無視されます。 .PP ``;'' で区切ることにより、1行に複数のステートメントを記述することができます。 (通常のように) パターン-アクション対中のアクション部におけるステートメントだけではなく、 パターン-アクション対ステートメント自身も、 ``;'' で区切って複数置くことができます。 .SS パターン AWK のパターンは、以下のうちのいずれかです。 .PP .RS .nf .B BEGIN .B END .BI / "regular expression" / .I "relational expression" .IB pattern " && " pattern .IB pattern " || " pattern .IB pattern " ? " pattern " : " pattern .BI ( pattern ) .BI ! " pattern" .IB pattern1 ", " pattern2 .fi .RE .PP .B BEGIN と .B END は特殊なパターンであり、入力と比較されることはありません。すべての .B BEGIN パターンに対応したアクション部は結合され、 そのようなすべてのアクション部が単一の .B BEGIN ブロック中にあるかのように扱われます。 結合されたアクションは、 すべての入力ファイルの読み込みに先立って実行されます。同様にすべての .B END ブロックは結合され、すべての入力ファイルの処理後 (あるいは、exit ステートメント が実行されたとき) に実行されます。 .B BEGIN と .B END はパターン式内で他のパターンと混ぜて使うことはできません。また、 .B BEGIN と .B END パターンはアクション部を省略することができません。 .PP .BI / "regular expression" / パターンでは、正規表現 (regular expression) にマッチした入力レコードに対してアクション が実行されます。正規表現は .IR egrep (1) と同じものが使えます。あとに要約を示します。 .PP .I 関係式(relational expression) では、後述のアクションについての節で示す演算子を用いることが できます。 これらは概して、特定のフィールドが正規表現にマッチするかどうかを 調べるために用いられます。 .PP 演算子 .BR && , .BR || , .B ! は、それぞれ C 言語での論理AND、論理OR、論理NOT と等価です。 C 言語と同様に、評価値が確定した時点で以降の評価を打ち切ります。 これらは複数のパターン式を結合するために使用されます。 他のプログラミング言語と同様、括弧によって評価順序を変更することができます。 .PP .B ?\^: 演算子は C 言語のものと同様です。もし、最初のパターンが真なら、 テストのために 2 番目のパターンが用いられ、そうでなければ 3 番目のパターンが 用いられます。2 番目と 3 番目のパターンのどちらかだけが評価されます。 .PP .IB pattern1 ", " pattern2 形式は .I 範囲パターン と呼ばれます。範囲パターンは、 .I pattern1 にマッチするレコードから、 .I pattern2 にマッチするレコードまでのすべてにマッチします。 この形式は、他のパターン式と混合して用いることはできません。 .SS 正規表現 awk の正規表現は .I egrep のものと同様に、拡張された正規表現です。 以下の構成要素から成り立っています。 .TP \w'\fB[^\fIabc...\fB]\fR'u+2n .I c メタ文字ではない .I c -にマッチする。 +にマッチします。 .TP .I \ec リテラル文字 .I c -にマッチする。 +にマッチします。 .TP .B . 改行を .I 含む -任意の 1 文字にマッチする。 +任意の 1 文字にマッチします。 .TP .B ^ -文字列の先頭にマッチする。 +文字列の先頭にマッチします。 .TP .B $ -文字列の終端にマッチする。 +文字列の終端にマッチします。 .TP .BI [ abc... ] 文字リストであり、 .I abc... -のいずれか 1 文字にマッチする。 +のいずれか 1 文字にマッチします。 .TP .BI [^ abc... ] 文字リストの逆であり、 .I abc... -以外の 1 文字にマッチする。 +以外の 1 文字にマッチします。 .TP .IB r1 | r2 選言: .I r1 または .I r2 -にマッチする。 +にマッチします。 .TP .I r1r2 結合: .I r1 の直後に .I r2 -が続くものにマッチする。 +が続くものにマッチします。 .TP .IB r + .I r -の 1 回以上の繰り返しにマッチする。 +の 1 回以上の繰り返しにマッチします。 .TP .IB r * .I r -の 0 回以上の繰り返しにマッチする。 +の 0 回以上の繰り返しにマッチします。 .TP .IB r ? .I r -の 0 回または 1 回の繰り返しにマッチする。 +の 0 回または 1 回の繰り返しにマッチします。 .TP .BI ( r ) グループ化: .I r -にマッチする。 +にマッチします。 .TP .PD 0 .IB r { n } .TP .PD 0 .IB r { n ,} .TP .PD .IB r { n , m } ブレース中に 1 つか 2 つの数値を記述することにより、 .I "インターバル表現" を表します。ブレース中に数値が 1 つある場合、直前の正規表現 .I r が .I n 回繰り返されます。2 つの数値がコンマで区切られている場合、 .I r は .I n 回から .I m 回繰り返されます。1 つの数値に続いてコンマがある場合、 .I r は少なくとも .I n 回繰り返されます。 .sp .5 インターバル表現は .B \-\^\-posix または .B \-\^\-re\-interval がコマンドラインにて指定されているときのみ利用可能です。 .TP .B \ey 語の先頭または末尾の空文字列にマッチします。 .TP .B \eB 語の中の空文字列にマッチします。 .TP .B \e< 語の先頭の空文字列にマッチします。 .TP .B \e> 語の末尾の空文字列にマッチします。 .TP .B \ew 語を構成する文字 (レター、数値、アンダスコア) にマッチします。 .TP .B \eW 語を構成する文字以外の文字にマッチします。 .TP .B \e` バッファ (文字列) の先頭の空文字列にマッチします。 .TP .B \e' バッファの末尾の空文字列にマッチします。 .PP 文字列定数中で用いることができるエスケープシーケンス (後述参照) は、 正規表現中でも使用することができます。 .PP .I 文字クラス は POSIX 標準で導入された新機能です。 文字クラスは特定の属性を持つ文字列リストの特殊表現ですが、 実際の文字集合自身は国や文字集合によって様々なものとなります。 例えば、アルファベット文字はアメリカ合州国とフランスとでは異なります。 .PP 文字クラスが有効なのは、 文字リストのブラケットの中の正規表現だけです。 文字クラスは、 .B [: と、クラスを表現するキーワードと、 .B :] で構成されます。 以下に POSIX 表現で定義される文字クラスを示します。 .TP .B [:alnum:] アルファベットと数値文字。 .TP .B [:alpha:] アルファベット文字。 .TP .B [:blank:] 空白とタブ文字。 .TP .B [:cntrl:] 制御文字。 .TP .B [:digit:] 数値文字。 .TP .B [:graph:] 印字可能で可視な文字。 (空白は印字可能ですが見えません。一方 .B a は印字可能かつ可視です。) .TP .B [:lower:] アルファベット文字の小文字。 .TP .B [:print:] 印字可能な文字 (制御文字以外)。 .TP .B [:punct:] 句読点文字 (レター、数値、制御文字、空白文字のいずれでもない文字)。 .TP .B [:space:] 空白文字 (空白、タブ、フォームフィード等の少数の文字を指す)。 .TP .B [:upper:] アルファベット文字の大文字。 .TP .B [:xdigit:] 16 進数の数値。 .PP 例えば、POSIX 標準以前では、アルファベットと数値の文字にマッチするためには、 .B /[A\-Za\-z0\-9]/ と書きました。しかし、別のアルファベット文字が文字集合に含まれる場合、 それらにはマッチしません。 POSIX 文字クラスでは、 .BR /[[:alnum:]]/ と記述することができ、文字集合の .I すべて のアルファベットと数値にマッチします。 .PP 文字リスト中には、更に 2 つの特殊シーケンスを使用できます。 これらは、 複数の文字によって表現される単一シンボル ( .I 照合文字 と呼ばれます) を持ち、 複数の文字が .I 参照 やソートにおいては等価であるとされる、非 ASCII 文字集合に適用されます。 (例えば、フランス語では単なる ``e'' とグレーブアクセント付きの e\` とでは 等価です。) .TP 照合シンボル 参照シンボルは複数文字の参照要素であり、 .B [. と .B .] で括ります。 例えば、 .B ch が参照要素の場合、 .B [[.ch.]] は正規表現となり、この参照要素にマッチします。 一方、 .B [ch] は .B c か .B h にマッチする正規表現です。 .TP 等価クラス 等価クラスは 等価な文字リストを指すロケール固有の名前です。名前は .B [= と .B =] で括ります。 例えば、名前 .B e は ``e,'' ``e\`,'', ``e\`.'' のすべてを表現するために使用されるかもしれません。 この場合、 .B [[=e=]] は .BR e , .BR e\' , .BR e\` のいずれかにマッチする正規表現となります。 .PP これらの機能は英語以外のロケールにて非常に有用です。 .I gawk が正規表現のマッチングに使用するライブラリ関数は、 現在 POSIX 文字クラスのみを理解し、 参照シンボルと等価クラスは理解しません。 .PP .BR \ey , .BR \eB , .BR \e< , .BR \e> , .BR \ew , .BR \eW , .BR \e` , .B \e' の演算子は .IR gawk 固有であり、GNU 正規表現ライブラリの機能を元にした拡張です。 .PP 様々なコマンドラインオプションによって、正規表現中の文字を .I gawk がどのように解釈するのかを制御できます。 .TP オプション無し デフォルトでは、 .I gawk は上述の POSIX 正規表現および GNU 正規表現のすべての機能を提供します。 しかしながら、インターバル表現はサポートされません。 .TP .B \-\^\-posix POSIX 正規表現のみがサポートされ、GNU 演算子はサポートされません (例えば、 .B \ew はリテラル .B w にマッチします)。 インターバル表現は許されます。 .TP .B \-\^\-traditional 伝統的な Unix .I awk の正規表現がサポートされます。GNU 演算子、インターバル表現、 POSIX 文字クラス ( .B [[:alnum:]] など) はサポートされません。 8 進または 16 進のエスケープシーケンスで表現される文字は、 正規表現のメタ文字を表現するとしても、 リテラルとして扱われます。 .TP .B \-\^\-re\-interval .B \-\^\-traditional が指定されていたとしても、正規表現中でインターバル表現をサポートします。 .SS アクション アクションは、ブレース .B { と .B } で囲みます。アクションは通常の代入、条件文、 ループ文等からなります。演算子、制御文、入出力文は C 言語とほぼ同様です。 .SS 演算子 .PP AWK での演算子を、優先順位の高いものから順に示します。 .PP .TP "\w'\fB*= /= %= ^=\fR'u+1n" .BR ( \&... ) グループ化。 .TP .B $ フィールド参照。 .TP .B "++ \-\^\-" インクリメント、デクリメント。前置も後置も可能。 .TP .B ^ べき乗 (\fB**\fR も同様の意味で使用できる。また \fB**=\fR 代入演算子も存在する)。 .TP .B "+ \- !" 単項のプラス、マイナス、論理否定。 .TP .B "* / %" 乗算、除算、剰余。 .TP .B "+ \-" 加算と減算。 .TP .I space 文字列結合。 .TP .PD 0 .B "< >" .TP .PD 0 .B "<= >=" .TP .PD .B "!= ==" 通常の関係演算子。 .TP .B "~ !~" 正規表現マッチ、否定のマッチ。 .B 注意: .B ~ と .B !~ の左辺に正規表現定数 .RB ( /foo/ 等) を用いてはいけません。正規表現定数は右辺にのみ置くことができます。式 .BI "/foo/ ~ " exp は \fB(($0 ~ /foo/) ~ \fIexp\fB)\fR と等価であり、 これは通常意図するものとは異なります。 .TP .B in 配列のメンバ。 .TP .B && 論理 AND。 .TP .B || 論理 OR。 .TP .B ?: C 言語の条件式と同様です。 .IB expr1 " ? " expr2 " : " expr3\c の形式で使います。もし .I expr1 が真なら式の値は .I expr2 になり、そうでなければ .I expr3 になります。 .I expr2 か .I expr3 のうち片方のみが評価されます。 .TP .PD 0 .B "= += \-=" .TP .B "*= /= %= ^=" 代入。絶対代入 .BI ( var " = " value ) と演算子代入 (他の形式) がサポートされています。 .SS 制御ステートメント .PP 制御ステートメントは以下のとおりです。 .PP .RS .nf \fBif (\fIcondition\fB) \fIstatement\fR [ \fBelse\fI statement \fR] \fBwhile (\fIcondition\fB) \fIstatement \fR \fBdo \fIstatement \fBwhile (\fIcondition\fB)\fR \fBfor (\fIexpr1\fB; \fIexpr2\fB; \fIexpr3\fB) \fIstatement\fR \fBfor (\fIvar \fBin\fI array\fB) \fIstatement\fR \fBbreak\fR \fBcontinue\fR \fBdelete \fIarray\^\fB[\^\fIindex\^\fB]\fR \fBdelete \fIarray\^\fR \fBexit\fR [ \fIexpression\fR ] \fB{ \fIstatements \fB} .fi .RE .SS 入出力ステートメント .PP 入出力ステートメントは以下のとおりです。 .PP .TP "\w'\fBprintf \fI書式, 式の列\fR'u+1n" .BI close( file ) ファイル (またはパイプ、下記参照) をクローズします。 .TP .B getline 次のレコードを .B $0 に読み込みます。 .BR NF , .BR NR , .B FNR が設定されます。 .TP .BI "getline <" file ファイル .I file から次のレコードを .B $0 に読み込みます。 .B NF が設定されます。 .TP .BI getline " var" 次のレコードを変数 .I var に読み込みます。 .BR NR , .B FNR が設定されます。 .TP .BI getline " var" " <" file ファイル .I file から次のレコードを変数 .I var に読み込みます。 .TP .B next 現在のレコードに対する処理を終了し、次のレコードを読み込み、AWK プログ ラムの最初のパターンから処理を開始します。 C 言語の continue と類似した意味を持ちます。 もし、入力データの終端に達した場合、 .B END ブロックが存在すれば実行されます。 .TP .B "nextfile" 現在の入力ファイルに対する処理を終了し、次の入力ファイルからレコードを 読み込みます。 .B FILENAME と .B ARGIND が更新され、 .B FNR が 1 にリセットされ、AWK プログラムの 最初のパターンから処理が開始されます。入力データの終端に達したときは、 もし存在すれば、 .B END ブロックが実行されます。 .B 注: 以前のバージョンの gawk では .BR "next file" と 2 語で使用されていました。この用法はまだ認識されますが、 警告メッセージを生じさせますし、最終的には無くなる表現です。 .TP .B print 現在のレコードを出力します。 出力レコードは .B ORS 変数の値にて終端されます。 .TP .BI print " expr-list" 式を出力します。各式は .B OFS の値で区切られます。出力されるレコードの最後に は .B ORS の値が付加されます。 .TP .BI print " expr-list" " >" file 式をファイル .I file に出力します。各式は .B OFS の値で区切られます。出力されるレコードの 最後には .B ORS の値が付加されます。 .TP .BI printf " fmt, expr-list" 書式付き出力です。 .TP .BI printf " fmt, expr-list" " >" file ファイル .I file への書式付き出力です。 .TP .BI system( cmd-line ) コマンド .I cmd-line を実行し、終了ステータスを返します (\*(PX に対応しない システムでは使用できない場合があります)。 .TP \&\fBfflush(\fR[\fIfile\^\fR]\fB)\fR オープンされている出力ファイルまたはパイプ .I file に関連づけられているバッファをフラッシュします。 .I file を指定しないと、標準出力がフラッシュされます。 .I file が空文字列の場合、オープンされているすべてのファイルとパイプのバッファを フラッシュします。 .PP その他の形式のリダイレクトとして以下のものが利用可能です。 .B print と .B printf に対して、 .BI >> file を指定すると出力はファイル .I file に追加され、 .BI | " command" は出力をパイプに対して行います。同様に、 .IB command "| getline" はコマンドの出力から .B getline を行ないます。 .B getline はファイル終端では 0 を、エラー時には \-1 を返します。 .SS \fIprintf\fP\^ ステートメント .PP AWK での .B printf ステートメントと .B sprintf() 関数 (後述参照) は、以下の変換指定書式を受け付けます。 .TP .B %c 1 つの \s-1ASCII\s+1 文字。 .B %c に対応する引数が数値なら、その値を \s-1ASCII\s+1 コードとみなし て文字に変換します。そうでなければ、引数は文字列であると解釈され、その 1 文字目が出力されます。 .TP .B %d .PD 0 .TP .B %i 10 進数 (整数部分)。 .TP .PD 0 .B %e .TP .PD .B %E .B [-]d.dddddde[+-]dd という形式の浮動小数点数。 .B %E 形式では .B e の代りに .B E が使用されます。 .TP .B %f .B [-]ddd.dddddd という形式の浮動小数点数。 .TP .PD 0 .B %g .TP .PD .B %G .B %e と .B %f の短い方の形式の浮動小数点数。余計な 0 は省略されます。 .B %G 形式では .B %e の代りに .B %E を使用します。 .TP .B %o 符号なしの 8 進数 (整数)。 .TP .B %s 文字列。 .TP .PD 0 .B %x .TP .PD .B %X 符号なしの 16 進数 (整数)。 .B %X 形式では、 .B abcdef の代りに .B ABCDEF を用います。 .TP .B %% 単一の文字 .B % 。引数は使用しません。 .PP .B % と上記の制御文字との間にオプショナルな追加のパラメータを置く ことができます。以下にそれらを示します。 .TP .B \- 左寄せ。 .TP .I 空白 数値変換において、正の値のプレフィックスは空白となり、 負の値のプレフィックスはマイナス記号となります。 .TP .B + プラス記号は幅修正子 (後述) の前に使用し、 整形されるデータが正であったとしても、 数値変換に対して常に符号を付けることを指示します。 .B + は空白修正子に優先します。 .TP .B # ある制御レターに対して「別の形式」を使用します。 .BR %o に対しては先行する 0 を与え、 .BR %x と .BR %X に対しては非 0 の結果に対して先行する .BR 0x と .BR 0X を与えます。 .BR %e , .BR %E , .B %f に対しては結果に常に小数点を含めます。 .BR %g , .B %G に対しては結果の末尾から 0 を取り除きません。 .TP .B 0 先頭の .B 0 (ゼロ) はフラグとして動作し、 出力を空白ではなく 0 でパディングすることを示します。 これは非数値の出力書式に対しても適用されます。 このフラグが有効なのは、フィールド幅が印字される値の幅より広いときだけです。 .TP .I width フィールドが指定した幅 .I width になるようにパディングされます。フィールドは通常空白でパディングされます。 .B 0 フラグが使用された場合には 0 でパディングされます。 .TP .BI . prec 印字において使用する精度を数値で指定します。 .BR %e , .BR %E , .B %f の書式に対しては、小数点の右側に印字される数字の数を指定します。 .BR %g , .B %G の書式に対しては、仮数部の最大数を指定します。 .BR %d , .BR %o , .BR %i , .BR %u , .BR %x , .B %X の書式に対しては、印字される数字の最小数を指定します。 文字列に対しては、印字される文字列からとりだされる最大の文字数を指定します。 .PP \*(AN C の .B printf() の動的な幅 .I width と精度 .I prec の指定機能が使用できます。 .B 幅 または .B 精度 の指定部分に .B * を指定することで、その値を .B printf または .B sprintf() への引数で指定できます。 .SS 特殊ファイル名 .PP .B print や .B printf で書き込みときでも、 .B getline でファイルから読み取るときでも、 入出力リダイレクトを行う場合、 .I gawk は内部的な特殊なファイル名を解釈します。 これらのファイル名により、親プロセス (通常はシェルです) から受け継いだ オープン状態のファイルディスクリプタを用いて入出力を行ったり、実行中の .I gawk プロセスに関する情報を得ることができます。 特殊ファイル名は以下のとおりです。 .TP \w'\fB/dev/stdout\fR'u+1n .B /dev/pid 現在のプロセスのプロセスID (10 進数で、最後に改行が付きます) を 読み込むことができます。 .TP .B /dev/ppid 現在のプロセスの親のプロセスのプロセスID (10 進数で、最後に改行が付きます) を 読み込むことができます。 .TP .B /dev/pgrpid 現在のプロセスのプロセスグループ ID (10 進数で、最後に改行が付きます) を読み込むことができます。 .TP .B /dev/user このファイルを読むことで、改行で終わる単一のレコードが得られます。 各フィールドは空白で区切られています。 .B $1 は .IR getuid (2) システムコールの値、 .B $2 は .IR geteuid (2) システムコールの値、 .B $3 は .IR getgid (2) システムコールの値、 .B $4 は .IR getegid (2) システムコールの値です。もし、さらにフィールドがあれば、 それは .IR getgroups (2) システムコールが返すグループ ID のリストです。 全てのシステムで複数のグループがサポートされているわけではありません。 .TP .B /dev/stdin 標準入力。 .TP .B /dev/stdout 標準出力。 .TP .B /dev/stderr 標準エラー出力。 .TP .BI /dev/fd/\^ n オープンされたファイルディスクリプタ .I n に対応しているファイル。 .PP エラーメッセージを出力するには、以下の方法が便利です。 .PP .RS .ft B print "You blew it!" > "/dev/stderr" .ft R .RE .PP もしこの機能が無かったら、次のようにするしかないところです。 .PP .RS .ft B print "You blew it!" | "cat 1>&2" .ft R .RE .PP これらのファイル名は、コマンドラインのデータファイル指定で使うこともできます。 .SS 数値関数 .PP AWK は以下の定義済み数値関数を持っています。 .PP .TP \w'\fBsrand(\fR[\fIexpr\^\fR]\fB)\fR'u+1n .BI atan2( y , " x" ) .I y/x の逆正接をラジアンで与えます。 .TP .BI cos( expr ) .I expr の余弦をラジアンで与えます。 .TP .BI exp( expr ) 指数関数。 .TP .BI int( expr ) 整数への切捨て。 .TP .BI log( expr ) 自然対数。 .TP .B rand() 0 から 1 の間の乱数を与えます。 .TP .BI sin( expr ) .I expr の正弦をラジアンで与えます。 .TP .BI sqrt( expr ) 平方根。 .TP \&\fBsrand(\fR[\fIexpr\^\fR]\fB)\fR .I expr の値を乱数生成関数の種として用います。式が指定されなかった場合は、 時刻が用いられます。直前の種の値を返します。 .SS 文字列関数 .PP .I gawk は以下の定義済み文字列関数を持っています。 .PP .TP "\w'\fBsprintf(\^\fIfmt\fB\^, \fIexpr-list\^\fB)\fR'u+1n" \fBgensub(\fIr\fB, \fIs\fB, \fIh \fR[\fB, \fIt\fR]\fB)\fR 対象文字列 .I t から正規表現 .I r のマッチを探します。 .I h が .B g または .B G で開始する文字列の場合、マッチする .I r をすべて .I s に置き換えます。 そうでない場合、 .I h は何番目の .I r のマッチを置き換えるのかを示します。 .I t が与えられない場合、代りに .B $0 が使用されます。 置換テキスト .I s では、シーケンス .BI \e n\fR ただし .I n は 1 から 9 までの数字を使用して、 .I n 番目にマッチした括弧付きサブ式を示すことができます。 シーケンス .B \e0 は文字 .B & と同様、マッチしたテキスト全体を表します。 .B sub() や .B gsub() とは異なり、修正された文字列が関数の結果として返され、 元の対象テキストは変更され .I ません 。 .TP "\w'\fBsprintf(\^\fIfmt\fB\^, \fIexpr-list\^\fB)\fR'u+1n" \fBgsub(\fIr\fB, \fIs \fR[\fB, \fIt\fR]\fB)\fR 文字列 .I t 中で正規表現 .I r にマッチした部分をすべて .I s に置換します。置換の個数を返します。 .I t を指定しなかった場合は .B $0 が用いられます。 置換テキストでは、 .B & は実際にマッチしたテキストで置き換えられます。 .B \e& を使用するとリテラルの .B & を得ることができます。 .BR sub() , .BR gsub() , .B gensub() における .B & とバックスラッシュに関する完全な議論は .I "AWK Language Programming" を参照してください。 .TP .BI index( s , " t" ) 文字列 .I s 中に含まれる文字列 .I t の位置を返します。 .I t が含まれていない場合は 0 を返します。 .TP \fBlength(\fR[\fIs\fR]\fB) 文字列 .I s の長さを返します。 .I s を指定しなかった場合には .B $0 の長さを返します。 .TP .BI match( s , " r" ) 文字列 .I s 中で正規表現 .I r にマッチする位置を返します。マッチしない場合は 0 を 返します。 .B RSTART と .B RLENGTH の値が設定されます。 .TP \fBsplit(\fIs\fB, \fIa \fR[\fB, \fIr\fR]\fB)\fR 文字列 .I s を正規表現 .I r を用いて分割し、配列 .I a に格納します。 フィールド数を返します。 .I r が省略され た場合は .B FS が用いられます。配列 .I a の内容は、分割前にクリアされます。 分割は、上述のフィールド分割と同じ動作を行います。 .TP .BI sprintf( fmt , " expr-list" ) 書式 .I fmt に従って .I exp-list を整形表示し、結果の文字列を返します。 .TP \fBsub(\fIr\fB, \fIs \fR[\fB, \fIt\fR]\fB)\fR .B gsub() と似てますが、最初にマッチした文字列のみが置換されます。 .TP \fBsubstr(\fIs\fB, \fIi \fR[\fB, \fIn\fR]\fB)\fR 文字列 .I s の .I i 文字目から始まる最大 .I n 文字の部分文字列を返します。 .I n が省略された場合、 .I i 文字目以降の部分文字列が返されます。 .TP .BI tolower( str ) 文字列 .I str をコピーし、大文字をすべて小文字に変換したものを返します。 アルファベットでない文字は変化しません。 .TP .BI toupper( str ) 文字列 .I str をコピーし、小文字をすべて大文字に変換したものを返します。 アルファベットでない文字は変化しません。 .SS 時間関数 .PP タイムスタンプを含んだログファイルの処理は AWK プログラムの主な使い道の1つですから、 .I gawk はタイムスタンプを取り出したり、フォーマット するための 2 つの関数を提供します。 .PP .TP "\w'\fBsystime()\fR'u+1n" .B systime() 基準時点からの経過秒数を返します (\*(PX システムでは、基準時点は UTC で 1970 年 1 月 1 日 0:00 です)。 .TP \fBstrftime(\fR[\fIformat \fR[\fB, \fItimestamp\fR]]\fB)\fR 書式 .I format に従って .I timestamp をフォーマットします。 .I timestamp は .B systime() が返す値と同じ形式でなければなりません。 .I timestamp が省略された場合、現在の日付が使用されます。 .I format が省略された場合、 .IR date (1) が出力に使用するものと同じデフォルトフォーマットが使用されます。 利用可能なフォーマットについては、\*(AN C の .B strftime() 関数の仕様を参照して下さい。パブリックドメインな .IR strftime (3) とそのマニュアルページが .I gawk とともに配布されています。もし、 .I gawk を作成するためにその .B strftime を用いた場合は、そのマニュアルに記述されている変換書式が .I gawk でも利用可能です。 .SS 文字列定数 .PP AWK での文字列定数は、ダブルクォート (\fB"\fR) に狭まれた文字の列です。 文字列内では、C 言語のようにいくつかの .I エスケープシーケンス が使えます。 .PP .TP \w'\fB\e\^\fIddd\fR'u+1n .B \e\e バックスラッシュそのもの。 .TP .B \ea 「警告」文字。通常は \s-1ASCII\s+1 \s-1BEL\s+1 文字です。 .TP .B \eb バックスペース。 .TP .B \ef 改ページ (フォームフィード)。 .TP .B \en 改行。 .TP .B \er 復帰 (キャリッジリターン)。 .TP .B \et 水平タブ。 .TP .B \ev 垂直タブ。 .TP .BI \ex "\^hex digits" .B \ex に続く 16 進数で表現された文字。\*(AN C と同様に、 .B \ex に続くすべての 16 進数字 はエスケープシーケンスの一部であるとみなされます。 (この機能によりコミッティによる言語デザインが分かります。) 例えば、\fB"\ex1B"\fR は \s-1ASCII\s+1 \s-1ESC\s+1 (エスケープ) 文字です。 .TP .BI \e ddd 1 桁か 2 桁か 3 桁の 8 進数で表現された文字。例えば、 \fB"\e033"\fR は \s-1ASCII\s+1 \s-1ESC\s+1 (エスケープ) 文字です。 .TP .BI \e c 文字 c そのもの。 .PP エスケープシーケンスは正規表現定数内でも用いることができます (例えば、 .B "/[\ \et\ef\en\er\ev]/" は空白文字にマッチします)。 .PP 互換モードでは、8 進および 16 進のエスケープシーケンスで表現される文字は、 正規表現定数として使用された場合、リテラルとして扱われます。 それゆえ、 .B /a\e52b/ は .B /a\e*b/ と等価です。 .SH 関数 AWK では関数を以下のようにして定義します。 .PP .RS \fBfunction \fIname\fB(\fIparameter list\fB) { \fIstatements \fB}\fR .RE .PP 関数は、パターンまたはアクションの式から呼び出されたときに実行されます。 関数呼び出しにおいて与えられた実引数が、関数宣言における仮引数に 受け渡されます。 このとき配列の場合は参照渡しが行われ、他の変数の場合は値渡しで行われます。 .PP 元々 AWK に関数は備わっていませんでしたので、局所変数の機構はあまり スマートではありません。 局所変数は引数リストの余分な引数として宣言します。局所変数と関 数引数を区別するため、余分な空白で区切るのが慣習です。例えば、以下のよ うにします。 .PP .RS .ft B .nf function f(p, q, a, b) # a & b は局所変数 { \&..... } /abc/ { ... ; f(1, 2) ; ... } .fi .ft R .RE .PP 関数呼び出しにおける左括弧は、空白を狭まずに関数名の直後に 置かなければいけません。 これは、文字列結合演算子との曖昧さを生じさせないために必要です。 この制限は、上述の組み込み関数にはあてはまりません。 .PP 関数は、他の関数を呼び出したり、自分自身を再帰的に呼び出すことができます。 局所変数として用いられる関数引数は、関数起動時に空文字列および 0 に初期化されます。 .PP .B \-\^\-lint が指定されたとき、 .I gawk は実行時ではなくパーズ時に未定義関数の呼び出しに関して警告します。 実行時の未定義関数の呼び出しは致命的なエラーとなります。 .PP .B function のかわりに .B func を用いることができます。 .SH 使用例 .nf -``/etc/passwd'' から全ユーザのログイン名を取り出し、ソートして出力する。 +``/etc/passwd'' から全ユーザのログイン名を取り出し、ソートして出力します。 .ft B BEGIN { FS = ":" } { print $1 | "sort" } .ft R ファイルの行数を数える。 .ft B { nlines++ } END { print nlines } .ft R 行番号をつける。 .ft B { print FNR, $0 } .ft R 全ファイルを通した行番号をつける。 .ft B { print NR, $0 } .ft R .fi .SH 関連項目 .IR egrep (1), .IR getpid (2), .IR getppid (2), .IR getpgrp (2), .IR getuid (2), .IR geteuid (2), .IR getgid (2), .IR getegid (2), .IR getgroups (2) .PP .IR "The AWK Programming Language" , Alfred V. Aho, Brian W. Kernighan, Peter J. Weinberger, Addison-Wesley, 1988. ISBN 0-201-07981-X. .PP .IR "AWK Language Programming" , Edition 1.0, published by the Free Software Foundation, 1995. .SH POSIX 互換 .I gawk は最新版の \*(UX .I awk との互換性だけでなく、\*(PX 標準との互換性も追求しています。 このため .I gawk には以下のような機能が取り入れられています。 これらの機能は AWK 本には述べられていませんが、 Bell Labs および \*(PX 標準の .I awk が有している機能です。 .PP プログラム実行前に変数代入を行なう .B \-v オプションは新しい物です。 AWK 本によれば、コマンドラインで指定された変数代入は .I awk が引数をファイル名としてオープンする際に行なわれることになります。つまり これは .B BEGIN ブロックの実行後です。しかしながら初期の頃の実装では、引数の中でファイル名に 先立って変数代入が指定されている場合には、代入は .B BEGIN ブロック実行の .I 前に 行われていました。そしてアプリケーションは、この「仕様」に依存する ようになりました。 .I awk がそのドキュメントに合うように直された時、昔の動作に依存している アプリケーションの便宜を図るためにこのオプションが加えられました。 (この仕様は AT&T および GNU の開発者達によって合意されました。) .PP 独自機能のための .B \-W オプションは \*(PX 標準に従ったものです。 .PP 引数の列に特別なオプション ``\fB\-\^\-\fP'' を指定すると、 .I gawk はそこがオプションの終わりであると解釈します。 互換モードにおいては未定義オプションは警告が出力され、それ以外のものは 無視されます。 通常の実行においては残りの引数は AWK プログラムに引き渡されます。 .PP AWK 本は .B srand() の返り値を定義していません。 \*(PX 標準 では、その関数が使っている種を返し、 乱数シーケンスを追跡できるようにしています。 したがって .I gawk における .B srand() も現在の種を返すようにしてあります。 .PP その他にも以下のような新機能があります。 .B \-f オプションの複数回使用 (MKS .IR awk に倣いました); .B ENVIRON 配列; エスケープシーケンス .B \ea と .B \ev ( .I gawk で最初に実装され、AT&T の .I awk にフィードバックされました); 組み込み関数 .B tolower() と .B toupper() (AT&T に倣いました); .B printf における \*(AN C 変換指定 (AT&T 版で最初に実装されました)。 .SH GNU 拡張 .I gawk は \*(PX .I awk に対して多くの拡張が行なわれています。 この節ではそれらについて解説します。 .B \-\^\-traditional オプション付きで .I gawk を起動することによって、 ここで述べられている拡張機能をすべて禁止することができます。 .PP .I gawk が持つ以下の機能は \*(PX .I awk では使用できません。 .RS .TP \w'\(bu'u+1n \(bu エスケープシーケンス .B \ex 。( .B \-\^\-posix で抑止できます。) .TP \w'\(bu'u+1n \(bu .B fflush() 関数。( .B \-\^\-posix で抑止できます。) .TP \(bu .BR systime() , .BR strftime() , .B gensub() の各関数。 .TP \(bu 入出力リダイレクトで利用可能な特殊ファイル名は理解されません。 .TP \(bu 変数 .BR ARGIND , .BR ERRNO , .B RT は特殊変数ではありません。 .TP \(bu 変数 .B IGNORECASE とその副作用は利用できません。 .TP \(bu 変数 .B FIELDWIDTHS と固定長フィールド分割。 .TP \(bu .B RS の正規表現としての使用。 .TP \(bu .B FS に空文字列を設定することにより各文字を切り出す能力と、 .B split() の 3 番目の引数。 .TP \(bu .B \-f オプションで指定されたファイル名についてパス検索を行わないこと。 よって、環境変数 .B AWKPATH は特殊な変数ではありません。 .TP \(bu 現在の入力ファイルに対する処理を終わらせるために使用される .B "nextfile" 。 .TP \(bu 配列全体を削除するために使用される .BI delete " 配列" 。 .RE .PP AWK 本は関数 .B close() の返り値を定義していません。 .I gawk の .B close() は、ファイルやパイプをクローズする際に呼び出す .IR fclose (3) や .IR pclose (3)、 からの返り値を返します。 .PP オプション .B \-\^\-traditional 付きで .I gawk を起動し .B \-F オプションへの引数 .I fs として ``t'' を与えた場合に、 .B FS の値はタブ文字に設定されます。 .B "gawk \-F\et \&..." とタイプしても、シェルが単に ``t'' をクォートするので、``\et'' は .B \-F オプションに渡されません。 これは少々見苦しい特殊事例ですので、デフォルトの動作としては 採用されていません。 .B \-\^\-posix を指定した場合にも、この動作は行なわれません。 タブ文字をフィールドセパレータとして使用したい場合には、 クォートを使用するのが最良です: .BR "gawk \-F'\et' \&..." . .ig .PP If .I awk was compiled for debugging, it will accept the following additional options: .TP .PD 0 .B \-Wparsedebug .TP .PD .B \-\^\-parsedebug Turn on .IR yacc (1) or .IR bison (1) debugging output during program parsing. This option should only be of interest to the .I gawk maintainers, and may not even be compiled into .IR gawk . .. .SH 歴史的機能 .I gawk は歴代の AWK の実装にあった 2 つの機能を備えています。 1 つめとして、組み込み関数 .B length() は引数無しで呼び出せるだけでなく、さらに括弧無しでも呼び出せます! したがって .RS .PP .ft B a = length # Holy Algol 60, Batman! .ft R .RE .PP は以下の2例と同じです。 .RS .PP .ft B a = length() .br a = length($0) .ft R .RE .PP \*(PX 標準ではこの機能は ``deprecated'' と注意書きされており、 .I gawk ではコマンドラインで .B \-\^\-lint を指定した場合に、この機能の使用に対して警告を出力します。 .PP もう 1 つは、 .BR while , .BR for , .B do ループ本体の外でも .BR continue , .B break ステートメントを使用できるという機能です。 伝統的な AWK の実装では、このように使用した .B continue ステートメントを .B next ステートメントと等価なものとして扱ってきました。 .I gawk では .B \-\^\-traditional が指定された場合に、この機能を使うことができます。 .SH 環境変数 環境に .B POSIXLY_CORRECT が存在する場合には、 .I gawk はコマンドラインで .B \-\^\-posix が指定されている時と全く同じ動作をします。 このとき .B \-\^\-lint が指定されていると .I gawk はこの作用についての警告メッセージを出力します。 .PP .B AWKPATH 環境変数を使用して、 .I gawk が .B \-f および .B \-\^\-file オプションで指定されたファイル名を検索するディレクトリを指定できます。 .SH バグ コマンドラインでの変数代入機能を使用するには、変数への代入を直接 コマンドラインに書けばよく、 .B \-F オプションをつける必要はありません。 このオプションは昔の .I awk との互換性のためだけに残されています。 .PP ファイル .B /dev/fd および .BR /dev/stdin , .BR /dev/stdout , .B /dev/stderr を実際にサポートしているシステムでの .I gawk からは、それらがないシステムとは違った出力が得られるかもしれません。 .I gawk はそれらのファイルを内部で解釈する際に標準出力への出力を .B /dev/stdout への出力と同期させますが、それらのファイルを持つシステムでは 出力はそれぞれ異なるファイルへ向けられます。 利用者の方で気を付けるようにしてください (Caveat Emptor)。 .PP 文法的に誤った単一文字プログラムはパーズスタックを溢れさせる傾向があり、 まったく分からないメッセージを生成する傾向にあります。 このようなプログラムの診断は驚くべきことに一般に難しく、 診断の努力はまったく無意味になります。 .SH バージョン情報 このマニュアルは .IR gawk バージョン 3.0.2 について記載しています。 .SH 作者 \*(UX .I awk の最初のバージョンは、AT&T Bell Labs の Alfred Aho と Peter Weinberger および Brian Kernighan によって設計、実装されました。 Brian Kernighan はその保守と改良を続けています。 .PP Free Software Foundation の Paul Rubin と Jay Fenlason が、Seventh Edition \*(UX で配布された最初のバージョンの .I awk と互換性を持つように .I gawk を書きました。 John Woods は数々のバグ修正を送って下さいました。 David Trueman は、Arnold Robbins が送って下さった内容をもとに、 .I gawk を新バージョンの \*(UX .I awk 互換にしました。 .PP DOS への最初の移植は Conrad Kwok と Scott Garfinkle によって 行なわれました。 現在は Scott Deifik が DOS 版の保守をしています。 Pat Rankin は VMS への移植を行ない、Michal Jaegermann は Atari ST への 移植を行ないました。 OS/2 への移植は Kai Uwe Rommel が Darrel Hankerson の助けを借りて 行ないました。 Fred Fish が Amiga サポートの提供を行いました。 .SH バグレポート .I gawk のバグを見付けたら、電子メールを .B bug-gnu-utils@prep.ai.mit.edu 宛に送るとともに、カーボンコピーを .B arnold@gnu.ai.mit.edu 宛に送ってください。 電子メールには、オペレーティングシステムとそのリビジョン、 .I gawk のリビジョン、コンパイルに使用した C コンパイラ、 問題を再現するできるだけ小さなテストプログラムとデータを記述してください。 .PP バグレポートを送る前に 2 つのことを行ってください。 第 1 に、最新の .I gawk を使用されていることを確認してください。 多くの (通常微妙な) バグが各々のリリースで修正されていますので、 ご使用のものが古い場合には問題は既に解決されているかもしれません。 第 2 に、このマニュアルページとリファレンスマニュアルを注意深く読み、 あなたがバグだと思うものが確かにバグであり、 大きく変わった言語仕様ではないことを確認してください。 .PP バグレポートを .B comp.lang.awk に投稿することだけはしないでください。 .I gawk の開発者達は時々このニュースグループを読みますが、 バグレポートをこのニュースグループに投稿しても バグレポートとして信頼性がありません。 上記のアドレスへの電子メールでお願いします。 .SH 謝辞 Bell Labs の Brian Kernighan はテストおよびデバッグの間、貴重な助力を 提供して下さいました。 感謝致します。 .SH COPYING PERMISSIONS Copyright \(co\) 1996 Free Software Foundation, Inc. .PP Permission is granted to make and distribute verbatim copies of this manual page provided the copyright notice and this permission notice are preserved on all copies. .ig Permission is granted to process this file through troff and print the results, provided the printed document carries copying permission notice identical to this one except for the removal of this paragraph (this paragraph not being relevant to the printed manual page). .. .PP Permission is granted to copy and distribute modified versions of this manual page under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. .PP Permission is granted to copy and distribute translations of this manual page into another language, under the above conditions for modified versions, except that this permission notice may be stated in a translation approved by the Foundation. diff --git a/ja_JP.eucJP/man/man1/dtmfdecode.1 b/ja_JP.eucJP/man/man1/dtmfdecode.1 new file mode 100644 index 0000000000..2f3c60cb9d --- /dev/null +++ b/ja_JP.eucJP/man/man1/dtmfdecode.1 @@ -0,0 +1,66 @@ +.\" +.\" Copyright (c) 1999 Hellmuth Michaelis. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" %FreeBSD: src/usr.sbin/i4b/dtmfdecode/dtmfdecode.1,v 1.4.2.1 1999/11/15 22:40:51 joe Exp % +.\" +.\" last edit-date: [Mon Apr 26 13:42:15 1999] +.\" +.\" +.\" jpman %Id: dtmfdecode.1,v 1.3 1999/12/03 14:11:52 horikawa Stab % +.Dd February, 15 1999 +.Dt DTMFDECODE 1 +.Os +.Sh 名称 +.Nm dtmfdecode +.Nd A-law オーディオデータから DTMF トーンへのデコード +.Sh 書式 +.Nm +.Sh 解説 +.Nm dtmfdecode +は isdn4bsd パッケージの一部分です。オーディオストリーム中の DTMF +トーンを見つけるために使われます。 +.Pp +このコマンドは、標準入力から G.711 A-Law 形式のデータによる音声を +読み込み、標準出力にに ASCII 文字として、見つけた番号を出力します。 +.Pp +検波器は integer double-cross recursive algorithm による 8 つの狭帯域 +バンドパスフィルタによって実装されています。検波した信号にヒステリシスと +アンチバウンスを与えるために、様々なアドホックな方法が試みられています。 +.Sh 使用例 +次のコマンド +.Bd -literal -offset indent +dtmfdecode < beep.al +.Ed +.Pp +は標準出力に "1" を表示します。 +.Sh 規格 +ITU Recommendations G.711 +.Sh 作者 +.Nm +は +.An Poul-Henning Kamp Aq phk@FreeBSD.org +が作成しました。 +このマニュアルページは +.An Hellmuth Michaelis Aq hm@FreeBSD.org +が書きました。 diff --git a/ja_JP.eucJP/man/man1/g711conv.1 b/ja_JP.eucJP/man/man1/g711conv.1 new file mode 100644 index 0000000000..1a4830f77e --- /dev/null +++ b/ja_JP.eucJP/man/man1/g711conv.1 @@ -0,0 +1,98 @@ +.\" Copyright (c) 1999 Hellmuth Michaelis. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" %FreeBSD: src/usr.sbin/i4b/g711conv/g711conv.1,v 1.3.2.1 1999/11/15 22:40:52 joe Exp % +.\" +.\" last edit-date: [Mon Mar 15 16:17:23 1999] +.\" +.\" jpman %Id: g711conv.1,v 1.3 1999/12/03 14:12:00 horikawa Stab % +.Dd March 15, 1999 +.Dt G711CONV 1 +.Os +.Sh 名称 +.Nm g711conv +.Nd G.711 に従う変換 +.Sh 書式 +.Nm +.Op Fl a +.Op Fl u +.Op Fl P +.Op Fl A +.Op Fl R +.Sh 解説 +.Nm g711conv +は isdn4bsd パッケージの一部分です。 +ITU G.711で規定されている A-Law と u-law フォーマット間の変換に使われます。 +このコマンドは Sun Microsystems, Inc. によって実装された +リファレンス実装に基づいています。 +Sun Microsystems, Inc. のリファレンス実装は +自由に入手可能で自由に利用することができます。 +.Pp +以下のオプションが利用可能です: +.Bl -tag -width Ds +.It Fl a +A-law から u-law へ変換します。 +.It Fl u +u-law から A-law へ変換します。 +.It Fl r +変換前にビット反転を行います。 +.It Fl R +変換後にビット反転を行います。 +.It Fl P +実際の変換をする代わりに、標準出力に結果として +生じる変換テーブルを (C のソースとして) 表示します。 +.El +.Pp +.Sh 規格 +A-Law と u-law 間の変換方法は、 +ITU Recommendation G.711 で規定されています。 +.Pp +参考になる実装は Sun Microsystems, Inc. によって行われており、これは +http://www.itu.int/itudoc/itu-t/rec/g/g700-799/refimpl.txt から参照できます。 +.Pp +.Sh 使用例 +次のコマンド: +.Bd -literal -offset indent +g711conv -P -a +.Ed +.Pp +は標準出力に C のソースとして A-law から u-law への変換テーブルを +表示します。 +.Pp +次のコマンド: +.Bd -literal -offset indent +cat max_headroom.ul | g711conv -u -R > /dev/i4btel0 +.Ed +.Pp +は u-law 形式の Max Headroom の音声を A-law へ変換して +変換結果のビットを逆にし、そしてアクティブな isdn4bsd 電話コネクションへ +データを送ります。 +.Pp +.Sh 作者 +.Nm +ユーティリティとこのマニュアルページは +.An Hellmuth Michaelis Aq hm@kts.org +が書きました。これらは +Sun Microsystems, Inc. が書いた G.711 変換リファレンスコードと、 +.An Stefan Bethke +が isdn4bsd へ寄贈したコードに基づいています。 diff --git a/ja_JP.eucJP/man/man1/pkg_version.1 b/ja_JP.eucJP/man/man1/pkg_version.1 new file mode 100644 index 0000000000..81bf5c9e76 --- /dev/null +++ b/ja_JP.eucJP/man/man1/pkg_version.1 @@ -0,0 +1,176 @@ +.\" +.\" Copyright 1998 Bruce A. Mah +.\" +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR +.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT, +.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +.\" +.\" %FreeBSD: src/usr.sbin/pkg_install/version/pkg_version.1,v 1.2.2.2 1999/12/03 06:18:04 billf Exp % +.\" jpman %Id: pkg_version.1,v 1.3 1999/12/05 08:25:39 horikawa Stab % +.Dd July 17, 1998 +.Dt PKG_VERSION 1 +.Os FreeBSD +.Sh 名称 +.Nm pkg_version +.Nd インストールされたパッケージのバージョンを要約表示 +.Sh 書式 +.Nm pkg_version +.Op Fl cdhv +.Op Fl l Ar limchar +.Op Ar index +.Sh 解説 +.Nm +コマンドは、 +.Xr pkg_add 1 +コマンドを使ってインストールされた、基本ソフトウェア以外の +ソフトウェアパッケージに関するレポートを作成するために使います。 +どのパッケージについて更新処理が必要となるのかを調べるために、 +バージョン番号をインデックスファイルに対して比較します。 +.Pp +各パッケージ名が、次に示す 1 文字のステータスフラグと一緒に表示されます: +.Bl -tag -width indent +.It Li = +インストールされているパッケージのバージョンは、インデックスと一致します。 +.It Li < +インストールされているパッケージのバージョンは、 +インデックスに記載されるバージョンより古いものです。 +.It Li > +インストールされているパッケージのバージョンは、 +インデックスで記載されるものよりも新しいものです。 +.It Li ? +インストールされているパッケージのバージョンと、 +インデックスファイルとの関係を、特定することができませんでした。 +このメッセージが表示される共通の理由は、 +ある特定のソフトウェアパッケージで、 +複数バージョンがインストールされているものがあるからです。 +あるいは、複数のバージョンが +インデックスファイルに記載されていることが原因です。 +.Fx +port コレクションを例に取ると、 +Tcl ツールキットや +.Tn EMACS +が該当します。 +.Sh オプション +.Nm +は、いくつかのコマンドライン引数をサポートしています: +.Bl -tag -width indent +.It Fl c +コマンド出力を可能にします。 +コマンド出力は、 +インストール済みパッケージを port システムにおいて +最新バージョンのものに更新するために、 +あなたが打込む必要があるコマンドを含んでいます。 +.It Fl d +デバッグ出力を有効にします。 +.It Fl h +ヘルプメッセージを表示します。 +.It Fl l +出力するパッケージを、ステータスフラグが +.Ar limchar +にマッチするものに制限します。 +マッチに使用する文字を、複数個 +.Ar limchar +に指定可能です。 +ステータスフラグの文字にはシェルの特殊文字でもあるものが存在するため、 +.Ar limchar +をシングルクォートで括るのが最善手です。 +.It Fl v +冗長出力を有効にします。 +冗長出力は +英文による、バージョン番号比較に関する若干の説明と、 +各パッケージの比較に使われたバージョン番号の説明が含まれています。 +スクリプトやプログラムで処理するには、 +おそらく冗長でない出力の方が簡単でしょう。 +.It Ar index +比較の基準として利用するインデックスを指定します。 +インデックスとして、ファイル名 (ローカルなファイルシステム内) +または URL を指定することができます。 +.Xr fetch 1 +が解釈可能な URL であれば、どのようなものでも指定することができます。 +コマンドラインで +.Ar index +ファイルが指定されていない場合は +.Pa /usr/ports/INDEX +が利用されます。 +.El +.Sh 関連項目 +.Xr fetch 1 , +.Xr pkg_add 1 , +.Xr pkg_create 1 , +.Xr pkg_delete 1 . +.Sh 関連ファイル +.Bl -tag -width /usr/ports/INDEX -compact +.It Pa /usr/ports/INDEX +デフォルトのインデックスファイル。 +.El +.Sh 使用例 +以下は +.Nm +コマンドの典型的な起動方法です。 +インストール済みパッケージを +ローカルの port インデックスファイルと照合します: +.Pp +.Dl % pkg_version -v +.Pp +下のコマンドは、 +オンラインの port コレクションにおける +バージョン番号に対してレポートを生成します: +.Pp +.Dl % pkg_version ftp://ftp.FreeBSD.org/pub/FreeBSD/ports-current/INDEX +.Pp +下のコマンドは、 +インストールされたファイルの更新を行うために実行するコマンド群の +ファイルを生成します。 +このコマンドを自動的に実行させることは推奨 +.Bf Em +できません。 +.Ef +必ず報告を再検討してから、あなたが実行したいコマンドを、 +カットアンドペースト (あるいは再入力) で入力してください。 +.Pp +.Dl % pkg_version -c > do_update +.Sh 作者 +.An Bruce A. Mah Aq bmah@ca.sandia.gov +.Sh 寄贈者 +.An Nik Clayton Aq nik@freebsd.org , +.An Dominic Mitchell Aq dom@palmerharvey.co.uk +.Sh バグ +複数のバージョンでインストールされたパッケージについて、 +うまく処理できる方法が必要です。 +.Pp +パッチレベルに関しては、うまく取り扱うことができません (すなわち +1.2p3 あるいは 1.2pl3 といった形式のバージョン番号) 。 +.Pp +バージョン番号が変更されない (例えば、 パッケージ / port 自身の +ちょっとしたバグフィックス) ようなパッケージに関しては +更新できません。 +.Pp +コマンド出力は、パッケージ間における依存関係については関知していません。 +例えば、2 つのパッケージが異なるバージョンを必要とするために、 +2 バージョンの Tcl をインストールする必要があるかもしれません。 +.Nm +は、古いバージョンの消去を提案します。 +.Pp +コマンド出力は、 +.Xr pkg_add 1 +を使うのではなく、 +port システムを使って新しいソフトウェアをインストールすると +仮定しています。 diff --git a/ja_JP.eucJP/man/man1/sh.1 b/ja_JP.eucJP/man/man1/sh.1 index 9d5d69aa40..b661d68c97 100644 --- a/ja_JP.eucJP/man/man1/sh.1 +++ b/ja_JP.eucJP/man/man1/sh.1 @@ -1,1333 +1,1763 @@ .\" Copyright (c) 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" This code is derived from software contributed to Berkeley by .\" Kenneth Almquist. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" from: @(#)sh.1 8.6 (Berkeley) 5/4/95 -.\" %FreeBSD: src/bin/sh/sh.1,v 1.23.2.6 1999/09/02 12:09:48 tg Exp % +.\" %FreeBSD: src/bin/sh/sh.1,v 1.23.2.7 1999/12/04 17:19:07 cracauer Exp % .\" .\" jpman %Id: sh.1,v 1.2 1997/05/31 16:40:31 jsakai Stab % .\" Japanese Translation amended by Norihiro Kumagai, 3/29/96, .\" based on the version of NetBSD Japanese Man Project .\" This amended version is for the FreeBSD-jpman Project, convened .\" by Kazuo Horikawa. .\" .Dd May 5, 1995 .Dt SH 1 .Os BSD 4 .Sh 名称 .Nm sh .Nd コマンドインタプリタ (シェル) .Sh 書式 .Nm .Op Fl /+abCEefIimnpsTuVvx .Op Fl /+o Ar longname .Op Fl c Ar string .Op Ar arg ... .Sh 解説 .Nm -はシステムの標準コマンドインタープリタです。 +ユーティリティ +はシステムの標準コマンドインタプリタです。 現在 .Nm は .St -p1003.2 のシェル規約に対応する途上にあります。 本バージョンのシェルは、見方によっては Korn shell と同様に 見える機能を多数持っていますが、 -Korn shell のクローンではありません (もし Korn shell クローンを望むなら、 -Gnu の bash を使いましょう)。 +.Xr pdksh 1 +のような Korn shell クローンではありません。 このシェルには、POSIX で規定された仕様といくつかの Berkeley 拡張のみが 取り入れられています。 本マニュアルは、shell のチュートリアルでは ありませんし、仕様を完全に記述するものでもありません。 .Ss 概要 シェルは、ファイルまたは端末から 1 行ずつ読み込み、それを解釈し、 コマンドを実行します。シェルはユーザがシステムにログインしたときに起動 -されるプログラムです (ただし、ユーザは chsh(1) +されるプログラムです (ただし、ユーザは +.Xr chsh 1 コマンドによって他のシェルを選択することもできます)。 シェルは、制御構文を持つ言語であり、 データ記憶をはじめとして多様な機能を提供するマクロ機能、 ヒストリ、行編集機能も内蔵しています。 このシェルは対話的に使うときに便利な機能を多くとり入れており、 対話的に用いるときも非対話的に (シェルスクリプトとして) 用いるときも、 共通のインタプリタ言語を用いることができる利点があります。 すなわち、コマンド名をシェルに直接タイプする ことも、コマンド名をファイルに書いておいてそのファイルをシェルに -実行させることもできます。 +直接実行させることもできます。 .Ss 起動 -引数が与えられず、かつシェルの標準入力が端末の場合 (または -i フラグが指定 +.\" +.\" XXX This next sentence is incredibly confusing. +.\" +引数が与えられず、かつシェルの標準入力が端末の場合 (または +.Fl i +フラグが指定 された場合)、シェルは対話的に動作します。対話的シェルは、通常、コマンド 入力時にプロンプトを表示し、文法的なエラーとコマンドエラーを 異なった方法で処理します (後述します)。 起動時に、シェルは 0 番目の引数を検査します。もしそれが -ダッシュ `-' で始まっているなら、シェルはログインシェルとして +マイナス記号 +.Pq Li - +で始まっているなら、シェルはログインシェルとして 動作します。ユーザがシステムにログインした場合は自動的にこの状況に なります。ログインシェルは、まず (以下の各ファイルが存在する場合)、 .Pa /etc/profile -と +と次に .Pa .profile ファイルからコマンドを読み込みます。 シェル起動時に、もしくはログインシェルで .Pa .profile を実行中に環境変数 .Ev ENV が設定されているなら、シェルは、その次に環境変数 .Ev ENV で示されたファイルからコマンドを読み込みます。 つまり、ユーザはログイン時にのみ実行したいコマンドを .Pa .profile に書き、シェルが起動されるたびに実行したいコマンドを環境変数 .Ev ENV で示すファイルに書くことになります。 環境変数 .Ev ENV -を設定するには、ユーザのホームディレクトリ下のファイル +を設定するには、ホームディレクトリ下のファイル .Pa .profile に以下のように記述します。 -.sp -.Dl ENV=$HOME/.shinit; export ENV -.sp -ここで、 +ここで .Pa .shinit のかわりに好きな名前を指定することができます。 -オプション以外にコマンドライン引数が指定された場合、シェルは最初の引数 -を、コマンドを読み込むべきファイル (シェルスクリプト) の名前であると解釈し、 +.Pp +.Dl ENV=$HOME/.shinit; export ENV +.Pp +コマンドライン引数で指定されたオプション以外の最初のものを、シェルは +コマンドを読み込むべきファイル (シェルスクリプト) の名前であると解釈し、 それ以後の引数はシェルの位置パラメータ ($1, $2, ...) に設定します。 それ以外の場合、シェルはコマンドを標準入力から読み込みます。 .Pp 古いバージョンの .Nm とは異なり、環境変数 .Ev ENV で指定したスクリプトが実行されるのは、対話的シェルの呼び出し時のみです。 これにより、いい加減に書かれた .Ev ENV スクリプトに起因する、簡単に食いものにされることが多い有名な セキュリティホールがふさがれたことになります。 .Ss 引数リスト処理 .Nm -の 1 文字からなるオプションはそれぞれ対応する名前を持っており、 -.Xr set 1 -組み込みコマンド (後述) の引数として用いることができます。 -これらの名前は、以下の説明で 1 文字オプションのすぐあとに書いてあります。 +の 1 文字からなるオプションはそれぞれ対応する長い名前を持っています。 +ただし +.Fl c +と +.Fl /+o +は例外です。 +次の解説では、長い名前は単一文字オプションの後で説明します。 +あるオプションの長い名前は、 +.Xr sh 1 +の +.Fl /+o +オプションへの引数として指定可能です。 +シェルが起動されると、 +オプションの長い名前を +.Ic set +組み込みコマンド (後述の +.Sx 組み込みコマンド +で説明) の +.Fl /+o +オプションへの引数として指定可能です。 マイナス記号 -.Dq - +.Pq Li - でオプションを指定することは、そのオプションを有効にすることを意味し、 プラス記号 -.Dq + +.Pq Li + でオプションを指定することは、そのオプションを無効にすることを意味します。 -.Dq -- +.Dq Li -- または、単なる -.Dq - +.Dq Li - はオプション処理を終了させ、 コマンドラインの残りの語を引数として解釈することを強制します。 +.Fl /+o +と +.Fl c +のオプションは長い名前を持ちません。 .Bl -tag -width Ds .It Fl a Li allexport -値が代入された変数の全てをエクスポートします。 +値が代入されたときに変数をエクスポートするよう、変数にフラグを付けます。 .It Fl b Li notify バックグラウンドジョブ実行の完了を、コマンドが実行中でも即座に報告しま す (未実装です)。 .It Fl C Li noclobber すでに存在するファイルに対して -.Dq > +.Dq Li > リダイレクトにより上書きしません (未実装です)。 .It Fl E Li emacs 組み込みの .Xr emacs 1 風のコマンド行編集機能を有効にします (それ以前に .Fl V オプションが指定された場合、それを無効にします)。 .It Fl e Li errexit -非対話的シェルで、テスト状態にないコマンドの実行に失敗した場合、 +非対話モードで、テスト状態にないコマンドの実行に失敗した場合、 直ちにシェルを終了します。 コマンドは、if, elif, while, until 構文を 制御するのに用いられている場合に、テスト状態であるとみなされます。 また、 -.Dq && +.Dq Li && や -.Dq || +.Dq Li || の左辺値として用いられているコマンドも、テスト状態とみなされます。 .It Fl f Li noglob パス名展開を行ないません。 .It Fl I Li ignoreeof -対話的シェルの場合、入力の EOF を無視します。 +対話的シェルの場合、入力の +.Dv EOF +を無視します。 .It Fl i Li interactive シェルが対話的に動作するように強制します。 .It Fl m Li monitor ジョブ制御を可能にします (対話的シェルの場合は自動的に設定されます)。 .It Fl n Li noexec 非対話的シェルの場合、コマンドを読み込みますが、そのコマンドの実行は しません。シェルスクリプトの文法を検査する場合に便利です。 .It Fl p Li privileged 特権モードを有効にします。 起動時に実効ユーザ ID あるいは実効グループ ID が、実ユーザ ID や実グルー プ ID と一致していなければ、このモードが有効になります。このモードを無 効化すると、実効ユーザ ID および実効グループ ID は、実ユーザ ID および 実グループ ID に設定されます。 対話的シェルでこのモードが有効になっていると、 .Pa /etc/profile の後で .Pa ~/.profile に代わり、 .Pa /etc/suid_profile を読み込みます。一方、環境変数 .Ev ENV の内容は無視されます。 .It Fl s Li stdin コマンドを標準入力から読み込みます (引数でファイル名が指定されていない 場合には、このオプションが自動的に設定されます)。 シェルが実行されてから本オプションを ( -.Xr set 1 +.Ic set などによって) 設定しても効果はありません。 .It Fl T Li asynctraps 子を待つとき、即座にトラップを実行します。 本オプションが設定されていないと、 .St -p1003.2 で指定されているように、子が終了した後にトラップが実行されます。 この非標準オプションは、 シグナルをブロックする子の周囲に保護シェルを置くために有用です。 周囲のシェルは子を殺したり、 次のように、制御を tty に戻して子だけを残したりできます: .Bd -literal -offset indent sh -T -c "trap 'exit 1' 2 ; some-blocking-program" .Ed .Pp .It Fl u Li nounset 値が設定されていない変数を展開しようとした場合、 標準エラー出力にエラーメッセージを出力し、 さらに非対話的シェルならば、ただちにシェルを終了します (未実装です)。 .It Fl V Li vi 組み込みの .Xr vi 1 風の行編集機能を有効にします (それ以前に .Fl E オプションが指定されていた場合、それは無効になります)。 .It Fl v Li verbose 入力を読み込むごとに標準エラー出力に書き出します。デバッグのときに便利です。 .It Fl x Li xtrace 各コマンドを実行する前に、そのコマンドを標準エラー出力に (各コマンドの -前に `+' を付加して) 書き出します。デバッグのときに便利です。 -.It Fl c Ar string -文字列引数 string はシェルに渡され、入力として解釈されます。このオプショ -ンは引数として文字列を一つだけ受け取ることに注意して下さい。ですから、複 -数の単語からなる文字列は引用符で囲う必要があります。 +前に +.Dq Li + \ +を付加して) 書き出します。デバッグのときに便利です。 .El +.Pp +.Fl c +オプションは、シェルの入力として解釈させる文字列引数を渡すために使用可能です。 +このオプションは引数として文字列を一つだけ受け取ることに注意して下さい。 +ですから、複数の単語からなる文字列は引用符で囲う必要があります。 +.Pp +.Fl /+o +オプションは、オプションの長い名前のみを引数としてとり、 +オプションの有効化と無効化を行います。 +例えば、次の 2 つの +.Nm +起動方法では組み込みの +.Xr emacs 1 +コマンドラインエディタを有効化します: +.Bd -literal -offset indent +set -E +set -o emacs +.Ed .Ss 構文構造 シェルは、ファイルを行単位で読み込み、空白文字 (ブランクおよびタブ) や シェルにとって特別な意味を持つ特定の文字列 ( .Dq 演算子 と呼ばれるものです) を区切りとして、複数の単語に分割します。演算子には、制御演算子とリ ダイレクト演算子の 2 種類があります (これらの意味については後述します)。 以下に、それらの一覧を示します。 .Bl -tag -width Ds .It No 制御演算子: -& && ( ) ; ;; | || -.No \en +.Bl -column "XXX" "XXX" "XXX" "XXX" "XXX" -offset center -compact +.It Xo +.Li & Ta Xo +.Li && Ta Xo +.Li ( Ta Xo +.Li ) Ta Xo +.Li \en +.Xc Xc Xc Xc Xc +.It Xo +.Li ;; Ta Xo +.Li ; Ta Xo +.Li | Ta Xo +.Li || +.Xc Xc Xc Xc +.El .It No リダイレクト演算子: -< > >| << >> <& >& <<- +.Bl -column "XXX" "XXX" "XXX" "XXX" -offset center -compact +.It Xo +.Li < Ta Xo +.Li > Ta Xo +.Li << Ta Xo +.Li >> +.Xc Xc Xc Xc +.It Xo +.Li <& Ta Xo +.Li >& Ta Xo +.Li <<- Ta Xo +.Li >| +.Xc Xc Xc Xc .El .Ss 引用 (クォート) 引用は、特殊な意味を持つ文字や単語 (演算子、空白、キーワードなど) の意味 を打ち消すために用います。引用には、シングルクォート文字のペアを使う方法、 ダブルクォート文字のペアを使う方法、バックスラッシュ文字を使う方法 の 3 種類があります。 .Bl -tag -width Ds .It シングルクォート文字 シングルクォートのペアで囲まれた文字は、すべてその文字そのまま (リテラル) として扱われます (ただしシングルクォートは別です。シングルクォート で囲った文字列の中にシングルクォートを含めることはできません)。 .It ダブルクォート文字 -ダブルクォートのペアで囲まれた文字は、ドル記号文字 ($)、バッククォート -文字 (`)、バックスラッシュ文字 (\\) を除き、すべてリテラルとして扱われます。 +ダブルクォートのペアで囲まれた文字は、ドル記号文字 +.Pq Li $ +、バッククォート文字 +.Pq Li ` +、バックスラッシュ文字 +.Po Li \e\" +.Pc +を除き、すべてリテラルとして扱われます。 ダブルクォート文字による引用の中にあるバックスラッシュ文字は、歴史 -的経緯によりすこし変わった扱いを受けます。つまり、直後に $, `, ", \\, -改行文字 が来るときにのみ、それらの文字がリテラルとして扱われます。そ -れ以外の文字が来る場合、バックスラッシュ文字自体がリテラルとして扱われ -ます。 +的経緯によりすこし変わった扱いを受けます。 +次の文字の前にある場合はクォートになりますが、 +それ以外ではリテラルのままとなります: +.Bl -column "XXX" "XXX" "XXX" "XXX" "XXX" -offset center -compact +.It Xo +.Li $ Ta Xo +.Li ` Ta Xo +.Li \&" Ta Xo +.Li \e\ Ta Xo +.Li \en +.Xc Xc Xc Xc Xc +.El .It バックスラッシュ バックスラッシュは、その後ろの 1 文字を、リテラルとして扱うように指示 -します。ただし改行文字は別です。改行文字の直前のバックスラッシュは、行 +します。ただし改行文字 +.Pq Li \en +は別です。改行文字の直前のバックスラッシュは、行 の継続であるとみなされます。 .El .Ss 予約語 予約語はシェルにとって特別な意味を持つ単語で、行の先頭または制御演算子 の直後でのみ予約語として認識されます。以下に予約語の一覧を挙げます。 -.Bd -literal -offset indent -! { } case do -done elif else esac fi -for if then until while -.Ed +.Bl -column "doneXX" "elifXX" "elseXX" "untilXX" "whileX" -offset center +.It Xo +.Li ! Ta Xo +.Li { Ta Xo +.Li } Ta Xo +.Ic case Ta Xo +.Ic do +.Xc Xc Xc Xc Xc +.It Xo +.Ic done Ta Xo +.Ic elif Ta Xo +.Ic else Ta Xo +.Ic esac Ta Xo +.Ic fi +.Xc Xc Xc Xc Xc +.It Xo +.Ic for Ta Xo +.Ic if Ta Xo +.Ic then Ta Xo +.Ic until Ta Xo +.Ic while +.Xc Xc Xc Xc Xc +.El .Ss エイリアス エイリアスは、名前とそれと対応する値が対になったもので、 組み込みコマンド -.Xr alias 1 +.Ic alias によって定義されます。 シェルは、予約語が現れる可能性がある場所 (上記を参照) で、 ある単語に対して、それが予約語かどうかの検査を済ませたのち、 それがエイリアスに一致するかどうかを検査します。 もし一致したならば、入力行の中で、その単語をエイリアスの値に置き換えます。 たとえば、 -.Dq lf +.Dq Li lf という名前で -.Dq ls -F +.Dq Li ls -F という値を持つエイリアスが 存在したとすると、次の入力行 .Bd -literal -offset indent -lf foobar +lf foobar .Ed .Pp は、以下のように置換されます。 .Bd -literal -offset indent -ls -F foobar +ls -F foobar .Ed .Pp エイリアスは、初心者に対し、引数付きの関数を生成する面倒を求めることなく、 短いコマンドをつくり出す便利な方法を提供するものです。 しかし、構文的にあいまいなコードを作り出すことにもつながりかねません。 そのような使い方はお勧めできません。 .Ss コマンド シェルは、読み込んだ単語を、文法に従って解釈します。 本マニュアルでは文法については解説しません。 .St -p1003.2 の BNF 表記を参照してください。要するに、行を1行を読み込み、読み込んだ 行の最初の単語 (制御演算子がある場合は、そのあとの最初の単語) が予約語 でない場合、シェルはその行を単純コマンドとして解釈します。それ以外の場 合、複合コマンドあるいは特殊構造であると解釈します。 .Ss 単純コマンド 単純コマンドを解釈する場合、シェルは以下のような動作をします。 .Bl -enum .It 単語の前にある -.Dq name=value +.Dq Li name=value の形式の単語を取り除き、 単純コマンドの環境に代入します。 リダイレクト演算子とその引数 (後述) を取り除き、 あとで処理できるように保存します。 .It 残った単語を、 .Sx 単語展開 の節で説明する方法で展開します。 展開後の最初の単語をコマンド名とみなし、コマンドの位置を探索します。 残りの単語はコマンドへの引数とみなされます。 処理の結果、コマンド名が残らなかった場合、手順 1) で 取り出した -.Dq name=value +.Dq Li name=value の変数代入を、現在のシェルの環境に反映します。 .It 次節で説明する方法で、リダイレクトを行ないます。 .El .Ss リダイレクト リダイレクトは、コマンドがどこから入力するか、どこへ出力するかを 変更するときに用います。 一般には、リダイレクトでは、ファイルのオープン、クローズ、または ファイルへの参照の複製 (duplicate) を行います。 リダイレクトで用いられる全般的な形式は、以下のとおりです。 -.sp +.Pp .Dl [n] redir-op file -.sp -ここで、redir-op は前述したリダイレクト演算子のいずれかです。 +.Pp +ここで、 +.Ql redir-op +は前述したリダイレクト演算子のいずれかです。 これらの演算子をどのように利用するかの例をいくつか以下に挙げます。 -.Bl -tag -width "1234567890" -offset indent -.It [n]> file -標準出力 (または n) を file に書き出します。 -.It [n]>| file -上と同様。ただし、-C オプションの効果を打ち消します。 -.It [n]>> file -標準出力 (または n) を file に追加します。 -.It [n]< file -標準入力 (または n) を file から読み取ります。 -.It [n1]<&n2 -ファイル記述子 n2 を標準入力 (または n1) に複製します。 -.It [n]<&- -標準入力 (または n) をクローズします。 -.It [n1]>&n2 -標準出力 (または n1) を n2 に複製します +.Bl -tag -width "1234567890XX" -offset indent +.It Li [n]> file +標準出力 (またはファイル記述子 n) を file にリダイレクトします +.It Li [n]>| file +上と同様。ただし +.Fl C +オプションの効果を打ち消します。 +.It Li [n]>> file +標準出力 (またはファイル記述子 n) を file に追加します。 +.It Li [n]< file +標準入力 (またはファイル記述子 n) を file からリダイレクトします。 +.It Li [n1]<&n2 +ファイル記述子 n2 を標準入力 (またはファイル記述子 n1) に複製します。 +.It Li [n]<&- +標準入力 (またはファイル記述子 n) をクローズします。 +.It Li [n1]>&n2 +標準出力 (またはファイル記述子 n1) をファイル記述子 n2 に複製します (訳注: ファイル記述子 n2 を標準出力 (または n1) のファイル記述子に 複製する結果、標準出力 (またはファイル記述子 n1 への出力) が n2 に リダイレクトされる、ということです)。 +.It Li [n]>&- +標準出力 (またはファイル記述子 n) をクローズします。 .\" [man-jp 1544], [man-jp 1827] 以降のスレッド参照。 .It [n]>&- 標準出力 (または n) をクローズします。 .El .Pp 以下のリダイレクトは、しばしば .Dq ヒア・ドキュメント (here-document) と 呼ばれます。 .Bd -literal -offset indent [n]<< delimiter - here-doc-text... + here-doc-text + ... delimiter .Ed .Pp シェルは、delimiter までの行を保存し、コマンドへの標準入力またはファイ ル記述子 n にリダイレクトします。最初の行の delimiter が引用 (クォート) されていた場合、here-doc-text の内容をリテラルとして扱います。 そうでない場合、パラメータ展開、コマンド置換、数値演算 ( .Sx 単語展開 の節で 説明します) を適用します。演算子が ( -.Dq << +.Dq Li << でなく) -.Dq <<- +.Dq Li <<- の場合は、 here-doc-text の各行の行頭のタブを取り除きます。 .Ss コマンド検索と実行 コマンドには、シェル関数、組み込みコマンド、通常プログラムの 3 種類があり、 コマンドを検索する際には、シェルは名前の検索をこの順序で行います。 -それぞれのコマンドは異なる方法で実行されます。 +3 種類のコマンドは異なる方法で実行されます。 .Pp シェル関数を実行するとき、$0 を除くすべての位置パラメータ ($1, $2,..) をシェル関数への引数として設定します。$0 は変更されません。シェル関数 の環境として指定された変数 (関数名の直前に .Dq name=value を置いて指定 されたもの) は、その関数に局所的な変数となり、指定された初期値が設定さ れます。そして、シェルは関数定義で与えられたコマンドを実行します。コマ ンドの実行が完了すると、位置パラメータを元の値に戻します。これは全て現 在のシェルの中で処理されます。 .Pp 組み込みコマンドは、新たなプロセスを作成せずにシェル内部で実行されます。 .Pp コマンドが関数でも組み込みコマンドでもない場合は、通常のプログラムとみなし (次節で説明するとおり) ファイルシステムの中でそのコマンドを検索します。 通常のプログラムを実行する場合、シェルは引数と 環境をプログラムに渡して、そのプログラムを実行します。 プログラムが通常の実行ファイル形式ではない場合 (つまり、 .Tn ASCII 表現で .Qq #! となる .Qq マジックナンバ でファイルが始まっておらず、 -.Fn execve +.Xr execve 2 が -.Er ENOEXEC +.Dv ENOEXEC を返す場合)、 サブシェルの中でそのプログラムを解釈実行します。この場合、あたかも新たに シェルが起動されたかのような効果を得るために、子シェルは自分自身を 再初期化します。ただし、子プロセスは、親シェル中のハッシュされたコマンド 位置情報を憶えており、これは再初期化されません。 .Pp 本ドキュメントの古いバージョンや古いソースコードでは、ときおり、 マジックナンバのないシェルスクリプトのことを .Qq シェル手続き と呼んでいて、 まぎらわしい場合がありますので注意して下さい。 .Ss パス検索 コマンドを検索するとき、シェルは、まず、その名前のシェル関数があるかどうかを 調べます。次に、その名前の組み込みコマンドがあるかどうかを調べます。 組み込みコマンドでもない場合、以下のいずれかの処理が行われます: .Bl -enum .It コマンド名にスラッシュが含まれていれば、検索は行わず、 単にそのコマンドが実行されます。 .It 変数 .Ev PATH に含まれる各エントリに対して、順にそのコマンドを検索します。 変数 .Ev PATH の値はコロン .Dq : で区切られたエントリの列でなければなりません。 各エントリは、それぞれディレクトリ名一つに対応します。 カレントディレクトリは、 空のディレクトリ名を指定することで暗黙的に、 あるいは 1 個のピリオドを指定することで明示的に 指示することができます。 .El .Ss コマンドの実行ステータス 各コマンドは終了ステータスを持ち、それにより他のシェルコマンドの動作に 影響を与えることができます。基本的な考え方として、終了ステータス 0 は 通常の終了または成功を示します。0 以外の終了ステータスは失敗、エラーを 意味します。各コマンドのマニュアルにそれぞれの終了ステータスがどのよう な意味を持つかが記述されているはずです。組み込みコマンドと (実行された) 関数も終了ステータスを返します。 .Pp コマンドがシグナルにより終了 (terminate) させられた場合、 終了ステータスは 128 にシグナル番号を加えたものになります。 シグナル番号はヘッダファイル .Aq Pa sys/signal.h に定義されています。 .Ss 複合コマンド (Complex Commands) 複合コマンドは、単純コマンドの組み合わせで作ります。 制御演算子または予約語と組み合わせることで、より大きな複合コマンドを生 成します。一般に、コマンドは以下のうちのいずれかです。 .Bl -item -offset indent .It 単純コマンド .It パイプライン .It リストまたは合成リスト (compound-list) .It 合成コマンド (compound command) .It 関数定義 .El .Pp 特に指定のない場合、コマンドの終了ステータスは最後に実行された 単純コマンドの終了ステータスとなります。 .Ss パイプライン パイプラインは、複数のコマンドを制御演算子 `|' によってつないだものです。 最後のコマンドを除くすべてのコマンドの標準出力は、次のコマンドの標準入力に 接続されます。 最後のコマンドの標準出力は、通常通り、シェルから受け継がれます。 .Pp パイプラインの形式は次のとおりです。 -.Bd -literal -offset indent -[!] command1 [ | command2 ...] -.Ed +.Pp +.Dl [!] command1 [ | command2 ...] .Pp command1 の標準出力は command2 の標準入力に接続されます。コマンドの標 準入出力がパイプラインによって割り当てられるのは、各コマンドに属する リダイレクト演算子で指定されたリダイレクトを処理する前のことだと考えて 下さい。 .Pp パイプラインがバックグラウンド (後述) でなければ、シェルはすべての コマンドが終了するのを待ちます。 .Pp パイプラインの直前に予約語 `!' が置かれなかった場合、終了ステータスは パイプラインの最後のコマンドの終了ステータスとなります。 `!' が前置された場合、終了ステータスはパイプラインの最後のコマンドの 終了ステータスの論理否定を取った値となります。 すなわち、最後のコマンドが 0 を返した場合、パイプラインの 終了ステータスは 1 に、最後のコマンドが 0 より大きな値を返した場合、 終了ステータスは 0 になります。 .Pp パイプラインによる標準入出力の接続はリダイレクトに先立って行われるため、 パイプラインの接続をリダイレクトによって修正することができます。たとえば、 -.Bd -literal -offset indent -$ command1 2>&1 | command2 -.Ed .Pp -は、command1 の標準出力と標準エラー出力の両方を command2 の標準入力に +.Dl $ command1 2>&1 | command2 +.Pp +.Ql command1 +の標準出力と標準エラー出力の両方を +.Ql command2 +の標準入力に 接続します。 .Pp -\&; または改行文字を終端として用いることにより、直前の AND-OR リスト (後述) を -順次実行します。& は、直前の AND-OR リストを非同期に実行します。 +.Dq Li \&; +または改行文字を終端として用いることにより、直前の AND-OR リスト ( +.Sx 短絡リスト演算子 +で後述) を順次実行します。 +.Dq Li & +は、直前の AND-OR リストを非同期に実行します。 .Pp -注: 他のいくつかのシェルと異なり、パイプラインの各プロセスは -起動したシェルの子プロセスとなります (シェルの組み込みコマンドである -ときは別です。その場合は現在のシェルで実行されます --- ただし -環境に対して行った操作は取り消されます)。 -.Ss バックグラウンドコマンド -- & -コマンドが制御演算子 & で終了している場合、シェルはそのコマンドを +注: 他のいくつかのシェルと異なり、 +.Nm +ではパイプラインの各プロセスは起動した +.Nm +の子プロセスとなります。シェルの組み込みコマンドである +ときは別です。その場合は現在のシェルで実行されますが、 +環境に対する操作は影響を与えません。 +.Ss バックグラウンドコマンド (&) +コマンドが制御演算子がアンパサンド +.Pq Li & +で終了している場合、シェルはそのコマンドを 非同期に実行します。すなわち、シェルはそのコマンドの終了を待たずに、 次のコマンドの実行を開始します。 .Pp コマンドをバックグラウンドで実行させるための形式は以下のとおりです。 .Bd -literal -offset indent command1 & [command2 & ...] .Ed .Pp シェルが対話的でない場合、非同期コマンドの標準入力には /dev/null が 接続されます。 -.Ss リスト -- 一般的な話 +.Ss リスト (一般的な話) リストは 0 個またはそれ以上のコマンドを改行文字、セミコロン文字、アン パーサント文字 (&) で区切った列です。リストは、これら 3 つの記号のいずれかで 終了させることもできます。リスト中のコマンドは並べられた順に実行 されます。もし、コマンドに続けてアンパーサント文字が置かれている場合、 シェルはそのコマンドを起動したあと、すぐに次のコマンドの処理を開始します。 その他の場合、そのコマンドの終了を待ってから次のコマンドの処理を開始します。 .Ss 短絡リスト演算子 (Short-Circuit List Operators) -.Dq && +.Dq Li && と -.Dq || +.Dq Li || は AND-OR リスト演算子です。 -.Dq && +.Dq Li && は最初のコマンド を実行し、もし最初のコマンドの終了ステータスが 0 ならば次のコマンドを 実行します。 -.Dq || +.Dq Li || も同様ですが、最初のコマンドの終了ステータスが 0 でない場合に、次のコマンドを実行します。 -.Dq && +.Dq Li && と -.Dq || +.Dq Li || の優先順位は 同じです。 -.Ss 制御構造 -- if, while, for, case -if コマンドの文法は以下のとおりです。 -.Bd -literal -offset indent -if list -then list -[ elif list -then list ] ... -[ else list ] -fi -.Ed -.Pp -while コマンドの文法は以下のとおりです。 +.Ss 制御構造 (if, while, for, case) +.Ic if +コマンドの文法は以下のとおりです。 +.\" +.\" XXX Use .Dl to work around broken handling of .Ic inside .Bd and .Ed . +.\" +.Dl Ic if Ar list +.Dl Ic then Ar list +.Dl [ Ic elif Ar list +.Dl Ic then Ar list ] ... +.Dl [ Ic else Ar list ] +.Dl Ic fi +.Pp +.Ic while .Bd -literal -offset indent -while list -do list -done -.Ed +.Dl Ic while Ar list +.Dl Ic do Ar list +.Dl Ic done .Pp 最初のリストの終了ステータスが 0 であるかぎり、2 つのリストを繰り返し -実行します。until コマンドも同様に実行しますが、 -単語 while の代わりに単語 until を使うことと、 +実行します。 +.Ic until +コマンドも同様に実行しますが、 +単語 +.Ic while +の代わりに単語 +.Ic until +を使うことと、 最初のリストの終了ステータスが 0 になるまで、 2 つのリストを繰り返し実行することが異なります。 .Pp -for コマンドの文法は以下のとおりです。 -.Bd -literal -offset indent -for variable in word... -do list -done -.Ed +.Ic for +コマンドの文法は以下のとおりです。 +.Dl Ic for Ar variable Ic in Ar word ... +.Dl Ic do Ar list +.Dl Ic done .Pp 各 word は展開され、変数 variable に word を順に設定しながらリストを -繰り返し実行します。do と done は -.Dq { +繰り返し実行します。 +.Ic do と -.Dq } +.Ic done +は +.Dq Li { +と +.Dq Li } で置き換えることができます。 .Pp -break と continue コマンドの文法は以下のとおりです。 -.Bd -literal -offset indent -break [ num ] -continue [ num ] -.Ed -.Pp -break は内側から num 個の for ループまたは while ループを終了します。 -continue は、 num 個目のループの次の繰り返しに制御を移します。 +.Ic break +と +.Ic continue +コマンドの文法は以下のとおりです。 +.Dl Ic break Op Ar num +.Dl Ic continue Op Ar num +.Pp +.Ic break +は内側から +.Ar num +個の +.Ic for +ループまたは +.Ic while +ループを終了します。 +.Ic continue +は内側から +.Ar num +個のループの次の繰り返しに制御を移します。 .\" 上の文、原文では以下のようになっているが、the *num* innermost loop が .\" 正しいと思われる。実際の sh の動作もそうなっているようだ。 .\" --- 97/05/31 sakai@jp.freebsd.org ↓ .\" Continue continues with the next iteration of the innermost loop. これらのコマンドは組み込みコマンドとして実装されています。 .Pp -case コマンドの文法は以下のとおりです。 -.Bd -literal -offset indent -case word in -pattern) list ;; - ... -esac -.Ed -.Pp -pattern は、1 つあるいは複数のパターン (後述の「シェルパターン」を参照 -のこと) を -.Dq | +.Ic case +コマンドの文法は以下のとおりです。 +.Dl Ic case Ar word Ic in +.Dl pattern) list ;; +.Dl ... +.Dl Ic esac +.Pp +pattern は、1 つあるいは複数のパターン (後述の +.Sx シェルパターン +を参照のこと) を +.Dq Li | で接続したものです。 .Ss 複数のコマンドのグループ化 コマンドは、以下のいずれかの方法によりグループ化することができます。 .Bd -literal -offset indent (list) .Ed .Pp または、 .Bd -literal -offset indent { list; } .Ed .Pp 最初の形式では、コマンドはサブシェル上で実行されます。 -(list) のなかの組み込みコマンドは、現在のシェルには影響を与えません。 +この組み込みコマンドは現在のシェルには影響を与えないことに注意してください。 2 つめの形式では新たなシェルを fork しないので、やや効率が良くなります。 このようにして複数コマンドをグループ化することで、 あたかも単一プログラムであるかのように、それらの出力をまとめて リダイレクトすることができます。 .Bd -literal -offset indent { echo -n "hello"; echo " world"; } > greeting .Ed .Ss 関数 関数定義の構文は以下のとおりです。 .Bd -literal -offset indent name ( ) command .Ed .Pp 関数定義は実行可能文の一種です。実行されると、名前 name の関数 が定義され、終了ステータスとして 0 を返します。command は 通常、 -.Dq { +.Dq Li { と -.Dq } +.Dq Li } で囲まれたリストです。 .Pp -local コマンドを用いて関数に局所的な変数を宣言することができます。 +.Ic local +コマンドを用いて関数に局所的な変数を宣言することができます。 これは関数定義中の最初の文で行わなければなりません。構文は次のとおりです。 -.Bd -literal -offset indent -local [ variable | - ] ... +.Bd -ragged -offset indent +.Ic local +.Op Ar variable ... +.Op Ar - .Ed .Pp -local コマンドは、組み込みコマンドとして実装されています。 +.Ic local +コマンドは、組み込みコマンドとして実装されています。 .Pp 変数を局所変数にする場合、関数を呼び出した環境に同じ名前の変数があれば、 新しい局所変数は値と export、readonly フラグを引き継ぎます。もし同じ名前の 変数がなければ、局所変数は初期値を持ちません。シェルは動的スコープ -を用います。すなわち、関数 f に局所的な変数 x を作成し、関数 f から -関数 g を呼び出した場合、関数 g 内部での変数 x に対する操作は大域変数 x -ではなく、関数 f で宣言された変数 x への操作となります。 +を用います。すなわち、関数 +.Em f +に局所的な変数 +.Em x +を作成し、関数 +.Em f +から関数 +.Em g +を呼び出した場合、関数 +.Em g +内部での変数 +.Em x +に対する操作は大域変数 +.Em x +ではなく、関数 +.Em f +で宣言された変数 +.Em x +への操作となります。 .Pp 特殊パラメータのうち局所宣言できるのは -.Dq - +.Dq Li - だけです。 -.Dq - +.Dq Li - を 局所宣言すると、関数内で set コマンドを用いてシェルオプションを 変更しても、関数が終了するとそれらのオプションは元の値に戻ります。 .Pp -return コマンドの文法は以下のとおりです。 -.Bd -literal -offset indent -return [ exitstatus ] +.Ic return +コマンドの文法は以下のとおりです。 +.Bd -ragged -offset indent +.Ic return +.Op Ar exitstatus .Ed .Pp -return は現在実行中の関数を終了させます。return は組み込みコマンドとして -実装されています。 +.Ic return +は現在実行中の関数を終了させます。 +.Ic return +は組み込みコマンドとして実装されています。 .Ss 変数とパラメータ シェルはパラメータの集合を管理しています。名前を持つパラメータを 変数と呼びます。シェルは、起動時にすべての環境変数をシェル変数に取り込みます。 新たな変数は、次の形式によって設定できます。 .Bd -literal -offset indent name=value .Ed .Pp -ユーザが設定する変数は、アルファベット、数字、アンダースコア (_) のみ +ユーザが設定する変数は、アルファベット、数字、アンダスコア (_) のみ からなる名前を持つ必要があります。また、最初の文字が数字であっては いけません。 パラメータは、以下に示す数字または特殊記号により参照することもできます。 .Ss 位置パラメータ -位置パラメータは、数字 (n > 0) によって参照されるパラメータです。シェルは +位置パラメータは、0 より大の数字によって参照されるパラメータです。シェルは 位置パラメータの初期値としてシェルスクリプト名に続く引数を設定します。 組み込みコマンド -.Xr set 1 +.Ic set により再設定や消去ができます。 .Ss 特殊パラメータ 特殊パラメータは、以下に挙げる特殊文字のいずれかにより参照される パラメータです。各パラメータの値の説明を各文字の後ろに示します。 .Bl -hang -.It * +.It Li * 位置パラメータ 1,2,... に展開されます。ダブルクォート文字列内部で展開 -される場合、展開結果は各位置パラメータの間を変数 IFS の先頭の文字 (IFS -が設定されていない場合は空白文字) で区切った単一の文字列になります。 -.It @ +される場合、展開結果は各位置パラメータの間を変数 +.Ev IFS +の先頭の文字 ( +.Ev IFS +が設定されていない場合は +.Aq 空白文字 +) で区切った単一の文字列になります。 +.It Li @ 位置パラメータ 1,2,... に展開されます。ダブルクォート引用の内部で展開 される場合、各位置パラメータは別々の引数となります。 もし、位置パラメータが設定されていない場合には、 -@ の展開結果は 0 個の引数となります (ダブルクォート引用の内部であっても)。 +.Li @ +の展開結果は 0 個の引数となります (ダブルクォート引用の内部であっても)。 すなわち、$1 が .Dq abc 、$2 が .Dq def ghi であった場合、 -.Qq $@ +.Qq Li $@ は 次の 2 つの引数に展開されます。 .Bd -literal -offset indent "abc" "def ghi" .Ed -.It # +.It Li # 位置パラメータの数に展開されます。 -.It ? +.It Li ? 最後に実行したパイプラインの終了ステータスに展開されます。 -.It - +.It Li - (ハイフン) 現在のオプションフラグ (1 文字オプション名をつないだ文字列) に展開されます。起動時に指定されたもの、組み込みコマンド set で指定した もの、シェルが暗黙に設定したもののすべてを含みます。 -.It $ +.It Li $ 起動されたシェルのプロセス ID に展開されます。 サブシェルも親シェルと同じ値を持ちます。 -.It ! +.It Li ! 現在のシェルが最後にバックグラウンドで実行したコマンドのプロセス ID に 展開されます。パイプラインの場合、パイプラインの最後のコマンドの プロセス ID になります。 -.It 0 +.It Li 0 (ゼロ) シェルの名前またはシェルスクリプト名に展開されます。 .El .Ss 単語展開 本節では、単語に対して適用されるさまざまな展開について説明します。あとで 述べるように、すべての展開がすべての単語に対して適用されるわけではありません。 .Pp 単一の単語に対して適用されたチルダ展開、パラメータ展開、コマンド置換、 数式展開、クォート削除の結果は単一のフィールドになります。単一の単語が 複数のフィールドに分割される可能性があるのは、フィールド分割または パス名展開の場合だけです。この規則の唯一の例外は、ダブルクォート中の -パラメータ @ の展開です (前述)。 +パラメータ +.Li @ +の展開です (前述)。 .Pp 単語展開の順序は以下のとおりです。 .Bl -enum .It チルダ展開、パラメータ展開、コマンド置換、数式展開 (これらはすべて 同時に行われます) .It -変数 IFS の値が空でなければ、(1) の結果の各フィールドに対して +変数 +.Ev IFS +の値が空でなければ、(1) の結果の各フィールドに対して フィールド分割が行われる .It -パス名展開 (-f オプションが無効の場合) +パス名展開 ( +.Fl f +オプションが無効の場合) .It クォート削除 .El .Pp -文字 $ はパラメータ展開、コマンド置換、数式評価を行うきっかけになります。 +文字 +.Dq Li $ +はパラメータ展開、コマンド置換、数式評価を行うきっかけになります。 .Ss チルダ展開 (ユーザのホームディレクトリ名への置換) -引用されていないチルダ文字 (~) で始まる単語は、チルダ展開の対象になります。 -チルダ文字からスラッシュ文字または単語の終端までのすべての文字がユーザ名 +引用されていないチルダ文字 +.Pq Li ~ +で始まる単語は、チルダ展開の対象になります。 +チルダ文字からスラッシュ文字 +.Pq Li / +または単語の終端までのすべての文字がユーザ名 とみなされ、そのユーザのホームディレクトリに置換されます。もしユーザ名が 省略された場合 (たとえば ~/foobar)、チルダ文字は変数 HOME の値 (現在のユーザのホームディレクトリ) に置換されます。 .Ss パラメータ展開 パラメータ展開の形式は以下のとおりです。 .Bd -literal -offset indent ${expression} .Ed .Pp -ここで、expression は対応した `}' までのすべての文字です。対応する`}' +ここで、expression は対応した +.Dq Li } +までのすべての文字です。対応する +.Dq Li } を調べる際に、バックスラッシュ文字によりエスケープされたり、クォート文字に -狭まれた `}' や、数式展開に埋め込まれている文字や、コマンド置換や変数展開中に +狭まれた +.Dq } +や、数式展開に埋め込まれている文字や、コマンド置換や変数展開中に ある文字は調べる対象になりません。 .Pp パラメータ展開の形式のうちもっとも単純なものは以下のとおりです。 .Bd -literal -offset indent ${parameter} .Ed .Pp そのパラメータに値が存在する場合、その値に置き換えられます。 .Pp パラメータ名やシンボルを中括弧 ({}) で囲んでも構いません。この中括弧は、 数字 2 文字以上からなる位置パラメータの場合や、パラメータ名の直後に パラメータ名の一部であるとみなし得る文字が続く場合を除き、 省略可能です。ダブルクォート引用中のパラメータ展開は以下 のようになります。 .Bl -enum .It パラメータ展開を行った結果の単語に対しては、パス名展開は適用されません。 .It -パラメータが @ の場合を除き、フィールド分割は適用されません。 +パラメータが特殊パラメータ +.Li @ +の場合を除き、フィールド分割は適用されません。 .El .Pp さらに、以下の形式を用いることにより、パラメータ展開の結果に修正を加える ことができます。 .Bl -tag -width Ds .It Li ${parameter:-word} デフォルト値への置換: パラメータ parameter が設定されていないか空の値 を持つ場合、word を展開した結果に置換されます。さもなければ、パラメー タ parameter の値に置換されます。 .It Li ${parameter:=word} デフォルト値の代入: パラメータ parameter が設定されていないか空の値を持つ場合、word を展開 した結果が parameter に代入されます。最終的にパラメータ parameter の値 に置換されます。位置パラメータや特殊パラメータは、この方法で代入すること はできません。 .It Li ${parameter:?[word]} 空か設定されていないときにエラーとする: パラメータ parameter が設定されていないか空の値を持つ場合、word を展開 した結果 (word が省略された場合にはパラメータが設定されていないことを表す デフォルトのメッセージ) が標準エラー出力に書き出され、 シェルは非 0 の終了ステータスで終了します。 それ以外の場合、パラメータ parameter の値に置換されます。対話的シェルの場合は 必ずしも終了しません。 .It Li ${parameter:+word} 代替値の使用: パラメータ parameter が設定されていないか空の値を持つ場合、空の値に 置換されます。さもなければ、word を展開した結果に置換されます。 .Pp 以上のパラメータ展開において、`:' を用いた場合はパラメータが設定されていない かまたは空の値であることが検査され、`:' を省略するとパラメータが 設定されていないことのみを検査します。 .It Li ${#parameter} 文字列の長さ: パラメータの値の (文字列としての) 長さに置換されます。 .Pp 以下の 4 通りのパラメータ展開は部分文字列切り出し処理を行います。各場合 -において、パターンは正規表現ではなく、パターンマッチ記法 (シェルパターン -の項を参照) が用いられます。パラメータが ` * ' または ` @ ' の場合、展開の結果 +において、パターンは正規表現ではなく、パターンマッチ記法 ( +.Sx シェルパターン +の項を参照) が用いられます。パラメータが +.Li * +または +.Li @ +の場合、展開の結果 がどうなるかは規定しません (unspecified)。 パラメータ展開全体をダブルクォートで囲んでも パターンは引用されません。中括弧のなかで引用することにより パターンを引用することができます。 .It Li ${parameter%word} 最短後置パターンの削除: まず word が展開され、その結果をパターンとして扱います。 パラメータ parameter の右から、パターンに一致する最短の部分を削除した文字列に 置換されます。 .It Li ${parameter%%word} 最長後置パターンの削除: まず word が展開され、その結果をパターンとして扱います。 パラメータ parameter の右から、パターンに一致する最長の部分を削除した文字列に 置換されます。 .It Li ${parameter#word} 最短前置パターンの削除: まず word が展開され、その結果をパターンとして扱います。 パラメータ parameter の左から、パターンに一致する最短の部分を削除した文字列に 置換されます。 .It Li ${parameter##word} 最長前置パターンの削除: まず word が展開され、その結果をパターンとして扱います。 パラメータ parameter の左から、パターンに一致する最長の部分を削除した文字列に 置換されます。 .El .Ss コマンド置換 コマンド置換により、コマンド名自身をコマンドの出力で置き換えることができます。 コマンド置換は、以下のように、コマンド command を囲った場合、 .Bd -literal -offset indent $(command) .Ed .Pp -または( -.Dq バッククォート -バージョン)、 +またはバッククォートバージョン .Bd -literal -offset indent `command` .Ed .Pp とした場合に行なわれます。 シェルは、コマンド command をサブシェルの環境で実行し、command が標準出力 -に出力したものから最後の改行文字を削除した結果で置換します (最後以外の -改行は削除しません。ただし、フィールド分割の際に、IFS の値や引用のされかたに -よっては、ここで残った改行文字が結局は空白に置換されることもあります)。 +に出力したものから最後の改行文字を削除した結果で置換します。 +最後以外の +改行は削除しません。ただし、フィールド分割の際に、 +.Ev IFS +の値や引用のされかたによっては、 +ここで残った改行文字が結局は空白に置換されることもあります。 .Ss 数式展開 数式展開とは、数式を評価し、その値に置換する仕組みです。数式展開の形式は以下 のとおりです。 .Bd -literal -offset indent $((expression)) .Ed .Pp 数式 expression は、その中のダブルクォート文字が特別扱いを受けないという 点を除いては、ダブルクォート文字で囲まれている文字列と同様に扱われます。 シェルは expression 中のすべてのトークンにパラメータ展開、コマンド置換、 クォート削除を適用します。 .Pp 次にシェルはその結果を数式として扱い、その値に置換します。 .Ss 空白文字による分割 (フィールド分割) パラメータ展開、コマンド置換、数式展開のあと、シェルは展開結果を調べて、 ダブルクォートの外にある部分に対してフィールド分割を適用します。 その結果、複数のフィールドになる場合もあります。 .Pp -シェルは、変数 IFS に設定されている文字それぞれ区切り文字とみなし、 +シェルは、変数 +.Ev IFS +に設定されている文字それぞれ区切り文字とみなし、 パラメータ展開の結果、およびコマンド置換の結果をフィールドに分割します。 .Ss パス名展開 (ファイル名生成) --f フラグが設定されていなければ、フィールド分割が行われたあと、ファイル名生成 +.Fl f +フラグが設定されていなければ、フィールド分割が行われたあと、ファイル名生成 が行われます。各単語は、スラッシュで区切られたパターンの列であるとみなさ れます。パス名展開処理において、単語は、条件を満たすファイル すべてのファイル名の列で置換されます。この各ファイル名は、単語の 各パターン部分を、そのパターンに一致する文字列に置換することで 生成されるものです。 これには 2 つの制限があります: まず、パターンはスラッシュを含む文字列には 一致しません。次に、パターンは、そのパターンがピリオドで始まらないかぎり、 ピリオドで始まる文字列に一致しません。 次節では、パス名展開と -.Xr case 1 +.Ic case コマンドで用いられるパターンについて説明します。 .Ss シェルパターン パターンは、通常の文字とメタキャラクタからなります。通常の文字は、 その文字そのものに一致します。 メタキャラクタは -.Dq ! , -.Dq * , -.Dq ? , -.Dq [ +.Dq Li ! , +.Dq Li * , +.Dq Li ? , +.Dq Li [ です。これらの文字を引用 すると、各々の特殊な意味を失います。コマンド置換や変数置換において、 ドル記号やバッククォート文字がダブルクォート文字の中にない場合には、 変数の値やコマンドの出力の中に、これらの特殊な文字が存在するかどうかが 調べられ、それらがあれば、メタキャラクタとして扱われます。 .Pp アスタリスク文字 -.Dq * +.Pq Li * は、どのような文字列とも一致します。 クエスチョンマーク文字 -.Dq ? +.Pq Li ? は、任意の文字 1 文字と一致します。 左大括弧 -.Dq [ +.Pq Li [ は文字クラスを開始します。 文字クラスの最後は右大括弧 -.Dq ] +.Pq Li \&] です。 -.Dq ] +.Dq Li \&] がない場合は、 -.Dq [ +.Dq Li [ は文字そのものに一致し、文字クラスの開始とは見なされません。文字 クラスは大括弧内に出現するすべての文字に一致します。 マイナス記号を用いれば、文字の範囲を指定することができます。 文字クラスの最初にエクスクラメーションマーク -.Dq ! +.Pq Li ! を置くことで、 文字クラスの意味を反転させることができます。 .Pp 文字クラスに文字 -.Dq ] +.Dq Li \] を含めるには、 -.Dq ] -を文字クラスの最初 -.Dq ! -を -置く場合はそのあと) に置きます。 -文字クラスにマイナス記号を含めるときも同様で、 +.Dq Li \] +を文字クラスの最初 ( +.Dq Li ! +を置く場合はそのあと) に置きます。 +文字クラスに +.Dq Li - +を含めるときも同様で、 リストの最初もしくは最後に置きます。 -.Ss 組み込みコマンド +.Ss シェル組み込みコマンド 本節では、別プロセスでは実行できない処理を行なうために組み込まれている コマンドを列挙します。 -さらに、効率を上げるために組み込まれているかもしれないコマンド (例えば -.Xr printf 1 , -.Xr echo 1 , -.Xr test 1 , -等) もあわせて列挙します。 +さらに、組み込みバージョンの +.Xr printf 1 +と +.Xr echo 1 +が効率を上げるために提供されています。 .Bl -tag -width Ds -.It : +.It Ic : 終了ステータス 0 (真) を返すヌルコマンドです。 -.It \&. file +.It Ic . Ar file 指定されたファイル file に記述されたコマンドがシェルに読み込まれ、 実行されます。 .Ar file に -.Ql / +.Dq / 文字を含む場合、その通りに扱われます。 そうでなければ、シェルは .Ev PATH を使用して、ファイルを検索します。 .Ev PATH を使用しても見付からない場合、カレントディレクトリを検索します。 -.It alias [ name[=string] ... ] -name=string が指定されている場合、シェルは名前 -.Dq name +.It Ic alias Op Ar name ... +.It Ic alias Op Ar name=string ... +.Ar name=string +が指定されている場合、シェルは名前 +.Ar name を持つ値 -.Dq string +.Ar string のエイリアスを定義します。単に .Dq name だけが指定された場合、 エイリアス .Dq name -の値が表示されます。引数が指定されない場合、定義さ -れているすべてのエイリアスの名前と値を表示します (unalias も参照)。 -.It bg [ job ] ... +の値が表示されます。引数が指定されない場合、 +.Ic alias +は定義されているすべてのエイリアスの名前と値を表示します ( +.Ic unalias +も参照)。 +.It Ic bg Op Ar job ... 指定されたジョブ (指定されなかった場合は現在のジョブ) を、 続けてバックグラウンドで実行させます。 -.It command command arg ... -指定された組み込みコマンドを実行します (組み込みコマンドと同じ名前のシェル関数 -がある場合に使います)。 -.It cd [ directory ] -指定されたディレクトリに移動します (directory 無指定時は $HOME -に移動します)。 -cd コマンドの -環境に CDPATH 変数があるか、シェル変数 CDPATH が設定されていて、かつ -指定されたディレクトリ directory がスラッシュ文字から始まっていないなら、 -CDPATH に列挙されたディレクトリ以下に -指定されたディレクトリ directory がないか検索されます。 -CDPATH の形式は PATH と同様です。対話的シェルでは、ユーザ -が指定したディレクトリと異なる場所に移動した場合、移動先のディレクトリ名 -を表示します。これは、CDPATH の機構が動作した場合と、シンボリックリンクを -辿った場合に発生します。 -.It eval string ... +.It Ic command Ar cmd Op Ar arg ... +指定された組み込みコマンド +.Ar cmd +を実行します。 +シェル関数を同名の組み込みコマンドでオーバライドしたい場合に有用です。 +.It Ic cd Op Ar directory +指定されたディレクトリ +.Ar directory +に移動します。 +.Ar directory +無指定時は +.Ev HOME +で指定されるディレクトリに移動します。 +.Ar directory +がカレントディレクトリのサブディレクトリとして見付からない場合 +(かつ +.Dq Li / , +.Dq Li ./ , +.Dq Li ../ +のいずれでも開始しない場合)、指定された +.Ar directory +を +.Ev CDPATH +変数中のディレクトリリストから検索します。 +.Ar CDPATH +の形式は +.Ev PATH +と同様です。対話的シェルでは、ユーザ +が指定したディレクトリと異なる場所に移動した場合、 +.Ic cd +は、移動先のディレクトリ名を表示します。 +これは、 +.Ev CDPATH +の機構が動作した場合と、シンボリックリンクを辿った場合に発生します。 +.It Ic eval Ar string ... 指定されたすべての引数を空白で結合し、その結果を解析し直してから コマンドとして実行します。 -.It exec [ command arg ... ] -コマンドが省略されない場合、そのシェルプロセスは指定されたプログラムに -置き換えられます (command は、シェル組み込みコマンドや関数ではない、本物の -プログラムでなければなりません)。exec コマンドにおけるリダイレクトは、 -永久性を持つと見なされ、 exec コマンド完了後にも引き続き効力を持ちます。 -.It exit [ exitstatus ] -シェルを終了します。指定された exitstatus は、シェルの終了ステータスに -なります。exitstatus が省略された場合、直前に実行したコマンドの +.It Ic exec Op command Op arg ... +.Ar commmand +が省略されない場合、そのシェルプロセスは指定されたプログラムに +置き換えられます ( +.Ar command +は、シェル組み込みコマンドや関数ではない、本物の +プログラムでなければなりません)。 +.Ic exec +コマンドにおけるリダイレクトは、 +永久性を持つと見なされ、 +.Ic exec +コマンド完了後にも引き続き効力を持ちます。 +.It Ic exit Op exitstatus +シェルを終了します。 +.Ar exitstatus +が指定された場合、これはシェルの終了ステータスになります。 +そうでない場合、直前に実行したコマンドの 終了ステータスがシェルの終了ステータスとなります。 -.It export name ... +.It Ic export Ar name ... それ以後にシェルから実行されるコマンドの環境に、指定された名前の変数が 含まれるようにします (変数のエクスポート)。 -変数のエクスポートを取り消す唯一の方法は、変数を unset することです。 +変数のエクスポートを取り消す唯一の方法は、変数を +.Ic unset +することです。 以下のように記述することで、エクスポートすると 同時に変数の値を設定することができます。 .Bd -literal -offset indent export name=value .Ed .Pp 引数を指定しない場合、すべてのエクスポートされている名前と値が表示されます。 -.It fc [-e editor] [first [last]] -.It fc -l [-nr] [first [last]] -.It fc -s [old=new] [first] -fc は、対話的シェルにそれ以前に入力されたコマンドの内容を +.It Xo +.Ic fc +.Op Fl e Ar editor +.Op Ar first Op Ar last +.Xc +.It Xo +.Ic fc +.Fl l +.Op Fl nr +.Op Ar first Op Ar last +.Xc +.It Xo +.Ic fc +.Fl s +.Op Ar old=new +.Op Ar first +.Xc +.Ic fc +組み込みコマンドは、対話的シェルにそれ以前に入力されたコマンドの内容を、 表示、編集、再実行します。 .Bl -tag -width Ds -.It -e editor -編集に際し、指定されたエディタ editor を使用します。 -editor は変数 PATH を通して検索できるコマンド名です。 --e が指定されなかった場合は、変数 FCEDIT の値が -用いられます。FCEDIT が設定されていないか空に設定されている場合は -EDITOR の値が用いられ、それも設定されていないか空ならば +.It Fl e Ar editor +編集に際し、指定されたエディタ +.Ar editor +を使用します。 +.Ar editor +は変数 +.Ev PATH +を通して検索できるコマンド名です。 +.Fl e +が指定されなかった場合は、変数 +.Ev FCEDIT +の値が用いられます。 +.Ev FCEDIT +が設定されていないか空に設定されている場合は +.Ev EDITORの値が用いられ、それも設定されていないか空ならば .Xr ed 1 が用いられます。 -.It -l (ell) +.It Fl l No (ell) (小文字のエル) エディタを起動せずに、コマンド履歴の内容を一覧出力します。 パラメータ first と last で指定した範囲のコマンドが順に -(出力の順番は -r オプションの影響を受けます) 出力されます。 +(出力の順番は +.Fl r +オプションの影響を受けます) 出力されます。 各コマンドの出力の際にはコマンド番号が付加されます。 -.It -n --l で一覧出力する際にコマンド番号を付加しません。 -.It -r --l オプションでの一覧や、 -編集時 (-l も -s も指定されなかった場合) の順序を反転します。 -.It -s +.It Fl n +.Fl l +で一覧出力する際にコマンド番号を付加しません。 +.It Fl r +コマンド一覧時 ( +.Fl l +オプション指定時) や編集時 ( +.Fl l +も +.Fl s +も指定されなかった場合) の順序を反転します。 +.It Fl s エディタを起動せずにコマンドを再実行します。 -.It first -.It last +.It Ar first +.It Ar last 一覧出力や編集の対象となるコマンドを選択します。アクセス可能なコマンド -の数は変数 HISTSIZE の値で決まります。 -first、last の値は以下のいずれかの形式で指定します。 -.It [+]number -正の数で、コマンド番号を指定します。コマンド番号は -l オプションで表示させて -調べることができます。 -.It -number -負の数で、指定された数だけ現在から遡ったコマンドを指定します。たとえば、 +の数は変数 +.Ev HISTSIZE +の値で決まります。 +.Ar first +または +.Ar last +、または両方の値は、以下のいずれかの形式で指定します。 +.Bl -tag -width Ds +.It Ar [+]num +正の数で、コマンド番号を指定します。コマンド番号は +.Fl l +オプションで表示させて調べることができます。 +.It Ar -num +負の数は、 +.Ar num +個だけ現在から遡ったコマンドを指定します。たとえば、 -1 は直前に実行されたコマンドを指定します。 -.It string +.It Ar string 文字列 string は、過去に実行されたコマンドのうち、 その文字列から始まる最新のものを指定します。 -もし -s オプションが指定されて -.Dq old=new +もし +.Fl s +オプションが指定されて +.Ar old=new が指定されていなければ、 最初のオペランドにイコール記号 -.Dq = を含めることはできません。 .El -.\" 次の行の .Pp はもともとコメントアウトされていた +.El .Pp -fc コマンドの実行にあたり、以下の環境変数の影響を受けます。 +.Ic fc +コマンドの実行にあたり、以下の環境変数の影響を受けます。 .Bl -tag -width Ds -.It Va FCEDIT +.It Ev FCEDIT 使用するエディタ名 -.It Va HISTSIZE +.It Ev HISTSIZE アクセス可能なコマンド数 .El -.It fg [ job ] -指定されたジョブまたは現在のジョブをフォアグラウンドに移動します。 -.It getopts optstring var -POSIX に準拠した getopts コマンドです。 -この getopts コマンドにより、以前の getopt コマンドの必要性は減少しました。 +.It Ic fg Op job +指定されたジョブ +.Ar job +または現在のジョブをフォアグラウンドに移動します。 +.It Ic getopts Ar optstring Ar var +POSIX に準拠した +.Ic getopts +コマンドです。 +この +.Ic getopts +コマンドにより、以前の +.Xr getopt 1 +コマンドの必要性は減少しました。 最初の引数は文字の列です。各文字の後ろにはコロンをつけることができ、 そのオプションが引数をとることを指示します。 指定された変数に、解析され見つかったオプションが設定されます。 -見つかったオプションの次の引数のインデックスはシェル変数 OPTIND に格納されます。 -あるオプションが引数をとる場合、その引数はシェル変数 OPTARG に置かれます。 -有効でないオプションに出くわすと、変数 var には `?' がセットされます。 +見つかったオプションの次の引数のインデックスはシェル変数 +.Ev OPTIND +に格納されます。 +あるオプションが引数をとる場合、その引数はシェル変数 +.Ev OPTARG +に置かれます。 +有効でないオプションに出くわすと、変数 +.Ev var +には +.Dq Li ? +がセットされます。 getopts はオプション群の末尾に到達すると偽の値 (1) を返します。 -.It hash -rv command ... +.It Xo +.Ic hash +.Op Fl rv +.Op Ar command ... +.Xc シェルは、コマンドの位置を保持するハッシュテーブルを維持管理しています。 -hash コマンドに引数が指定されなかった場合、このテーブルの内容が出力されます。 -最後に cd コマンドが実行されてから参照されていない項目には +.Ic hash +コマンドに引数が指定されなかった場合、このテーブルの内容が出力されます。 +最後に +.Ic cd +コマンドが実行されてから参照されていない項目には アスタリスク文字 -.Dq * が表示されます。 この項目は無効になっているかもしれません。 .Pp -引数を指定した場合、hash コマンドは指定したコマンドをハッシュテーブル -から削除し (command が関数ではない場合)、その後でそのコマンドを検索します。 --v オプションを指定した場合、発見したコマンドの位置を表示します。-r オプション -を指定した場合、関数以外のすべてのエントリをハッシュテーブルから -削除します。 -.It jobid [ job ] -ジョブ job 中の各プロセスのプロセス ID を表示します。引数 job が +引数を指定した場合、 +.Ic hash +コマンドは指定した +.Ar command +をハッシュテーブルから削除し ( +.Ar command +が関数ではない場合)、その後でそのコマンドを検索します。 +.Fl v +オプションを指定した場合、 +.Ic hash +は発見したコマンドの位置を表示します。 +.Fl r +オプションを指定した場合、 +.Ic hash +は関数以外のすべてのエントリをハッシュテーブルから削除します。 +.It Ic jobid Op Ar job +ジョブ +.Ar job +中の各プロセスのプロセス ID を表示します。引数 +.Ar job +が 省略された場合、現在のジョブに対して処理を行います。 -.It jobs +.It Ic jobs バックグラウンドで走行中の、現在のシェルプロセスの子プロセスの 一覧を出力します。 -.It pwd -カレントディレクトリを表示します。組み込みコマンドの pwd は +.It Ic pwd +カレントディレクトリのパスを表示します。組み込みコマンド版は カレントディレクトリ名を覚えており、表示するときに再計算しないので、 -組み込みコマンドの pwd は同名のプログラムとは異なった表示をする場合があります。 +組み込みコマンド版は同名のプログラムとは異なった表示をする場合があります。 このため処理は高速ですが、カレントディレクトリ -の名前を変更した場合でも、以前のディレクトリ名を表示し続けます。 -.It Li "read [ -p prompt ] [ -t timeout ] [ -er ] variable ... --p オプションが指定され、かつ標準入力が端末の場合、 -prompt をプロンプトとして表示します。 +の名前を変更した場合でも、組み込み版の +.Xr pwd 1 +は以前のディレクトリ名を表示し続けます。 +.It Xo +.Ic read +.Op Fl p Ar prompt +.Op Fl t Ar timeout +.Op Fl er +.Ar variable ... +.Xc +.Fl p +オプションが指定され、かつ標準入力が端末の場合、 +.Ar prompt +をプロンプトとして表示します。 そして標準入力から 1 行入力します。行端の改行文字を削除し、行を前述の -単語分割の方法に従って分割し、各単語を、valiable... で指定する各変数に +.Sx 空白文字による分割 (フィールド分割) +の方法に従って分割し、各単語を、valiable... で指定する各変数に 順に代入します。 もし、指定された変数の数より分割された単語の数が多ければ、最後の変数に -残りの単語すべて (IFS の文字を区切りにしてそれらも一緒に) が代入されます。 +残りの単語すべて ( +.Ev IFS +の文字を区切りにしてそれらも一緒に) が代入されます。 分割された単語の数より多くの変数が指定されていたなら、 余った変数には空文字列が設定されます。 .Pp --r オプションが指定された場合を除き、バックスラッシュは特別に扱われます。 +.Fl r +オプションが指定された場合を除き、バックスラッシュは特別に扱われます。 バックスラッシュ文字が改行文字の直前にある場合、 バックスラッシュ文字と改行文字は削除されます。 その他の文字の直前にバックスラッシュがある場合、バックスラッシュは削除され、 -文字が IFS に含まれていても、IFS の文字でないかのように扱われます。 -.Pp --t オプションが指定され、かつ入力がなされる前にタイムアウトすると、 -read コマンドは値を割当てずに戻ります。 -タイムアウト値の後にはオプションで 's', 'm', 'h' のいずれかの一文字 -を付けることが出来、それぞれ秒, 分, 時間を陽に指定します。 -どれも指定しない場合には 's' であるものとします。 -.Pp --e オプションは、古いスクリプトとの後方互換性のためだけにあります。 -.It readonly name ... -指定された名前の変数を読み出し専用とし、あとで値を変更したり unset した +文字が +.Ev IFS +に含まれていても、 +.Ev IFS +の文字でないかのように扱われます。 +.Pp +.Fl t +オプションが指定され、かつ入力がなされる前に +.Ar timeout +が経過すると、 +.Ic read +コマンドは値を割当てずに戻ります。 +.Ar timeout +値の後にはオプションで +.Dq s , +.Dq m , +.Dq h +のいずれかの一文字 +を付けることが出来、それぞれ秒・分・時間を陽に指定します。 +どれも指定しない場合には +.Dq s +であるものとします。 +.Pp +.Fl e +オプションは、古いスクリプトとの後方互換性のためだけにあります。 +.It Ic readonly Ar name ... +.Ar name +で指定された変数を読み出し専用とし、あとで値を変更したり unset した りすることができないようにします。以下のように記述することで、 変数を読み出し専用と宣言するのと同時に値を設定することも可能です。 .Bd -literal -offset indent readonly name=value .Ed .Pp -引数が指定されない場合、読み出し専用になっている変数の名前の一覧が表示され -ます。 -.It Li "set [ { -options | +options | -- } ] arg ... -set コマンドは 3 通りの異なった機能を持ちます。 +引数が指定されない場合、 +.Ic readonly +コマンドは、読み出し専用になっている変数の名前の一覧を表示します。 +.It Xo +.Ic set +.Op Fl /+abCEefIimnpTuVvx +.Op Fl /+o Ar longname +.Op Fl c Ar string +.Op Fl - Ar arg ... +.Xc +.Ic set +コマンドは 3 通りの異なった機能を持ちます。 .Bl -item .It -引数を指定しなかった場合、すべてのシェル変数の名前と値の一覧を表示します。 -.It -options が指定された場合、 -.Sx 引数リスト処理 -の節で説明した方法で、 -指定されたオプションフラグを設定あるいは解除します。 +引数を指定しなかった場合、短かい形式でも長い +.Dq Fl /+o Ar longname +という形式であっても、 +.Sx 引数リストの処理 +の節で説明されているように、指定されたオプションの設定またはクリアを行います。 .It -第 3 の用法は、シェルの位置パラメータを変更する際に使用します。オプションの -設定を変更せずに位置パラメータのみを変更したい場合は set コマンドへの最初 -の引数として -.Dq -- -を指定します。arg が指定されない場合、 -すべての位置パラメータはクリアされます ( -.Dq shift $# -を実行することと -等価です)。 +.Dq Fl - +オプションが指定された場合、 +.Ic set +はシェルの位置パラメータを、引き続く引数で置き換えます。 +.Dq Fl - +オプションの後に引数が続かない場合、 +すべての位置パラメータはクリアされ、 +.Dq Li shift $# +コマンドを実行するのと等価になります。 +位置置換パラメータとして引数を指定するとき、 +.Dq Fl - +フラグは省略可能です。 +これはお勧めできません。 +なぜなら、最初の引数はマイナス記号 +.Pq Li - +またはプラス記号 +.Pq Li + +で開始するかもしれないからです。 +これらは、 +.Ic set +コマンドが、オプションの有効化または無効化の要求であると解釈してしまいます。 .El -.Pp -.It setvar variable value -変数に値を代入します。(一般に、setvar を使うよりも variable=value と書くほう -が望ましいといえます。setvar は、関数内で、パラメータとして渡された名前を持つ -変数に値を代入するためのものです。) -.It shift [ n ] -位置パラメータを n 回シフトします。1 回のシフトにより、$2 の値が $1 に、$3 の +.It Ic setvar Ar variable Ar value +変数 +.Ar variable +に値 +.Ar value +を代入します。( +.Ic setvar +は、関数内で、パラメータとして渡された名前を持つ +変数に値を代入するためのものです。 +一般に、 +.Ic setvar +を使うよりも +.Bd -literal -offset indent +variable=value +.Ed +と書くほうが望ましいといえます。) +.It Ic shift Op Ar n +位置パラメータを +.Ar n +回シフトします。 +.Ar n +を指定しない場合 1 回シフトします。 +1 回のシフトにより、$2 の値が $1 に、$3 の 値が $2 に代入されます (以下同様)。また、$# の値は 1 減少します。 位置パラメータがない場合、shift は何もしません。 -.It trap [ action ] signal ... -シェルが指定されたシグナル signal を受けとったときに、action を解析し実行する -ように設定します。シグナルはシグナル番号で指定します。action は空文字列に +.It Xo +.Ic trap +.Op Ar action +.Ar signal ... +.Xc +シェルが指定されたシグナル +.Ar signal +を受けとったときに、 +.Ar action +を解析し実行するように設定します。 +シグナルはシグナル番号で指定します。 +.Ar action +は空文字列に したり、省略したりすることができます。空文字列の場合、指定されたシグナルは 無視され、省略した場合は、指定したシグナルを受けとったときデフォルトの処理を 行ないます。シェルがサブシェルを起動するとき、trap で指定された (かつ 無視するように設定されていない) シグナルの動作をデフォルトの処理に戻します。 シェルが起動したときにすでに無視されるように設定されていたシグナルに対して -trap コマンドを使用しても効果はありません。 -.It type [name] ... -各 name をコマンドとして解釈し、コマンド検索の結果を出力します。出力さ +.Ic trap +コマンドを使用しても効果はありません。 +.It Ic type Op Ar name ... +各 +.Ar name +をコマンドとして解釈し、コマンド検索の結果を出力します。出力さ れる結果は以下のものがあります。シェルのキーワード、エイリアス、シェル の組み込みコマンド、コマンド、痕跡つきエイリアス (tracked alias)、最後に not found (見つからず) があります。エイリアスについては、エイリアス展開 の結果が出力されます。コマンドと痕跡つきエイリアスについては、そのコマンドの 完全なパス名が印刷されます。 -.It ulimit [ -HSacdflmnust ] [ limit ] +.It Xo +.Ic ulimit +.Op Fl HSacdflmnust +.Op Ar limit +.Xc リソースのリミット値 (リミット値については .Xr getrlimit 2 参照) を設定あるいは表示します。 -.Dq limit +.Ar limit が指定されている場合、指定されたリソースが設定されます。 それ以外の場合、現在のリソース設定値が表示されます。 .Pp -.Dq -H +.Fl H が指定された場合、ハードリミットが設定ないし表示されます。 ハードリミット値を下げることは誰にでもできますが、 それを増やすことができるのはスーパユーザだけです。 オプション -.Dq -S +.Fl S を指定した場合はソフトリミットになります。 リミット値を表示する場合、 -.Dq -S +.Fl S か -.Dq -H +.Fl H のいずれか一方だけしか指定できません。 デフォルトでは、表示はソフトリミット、設定はハード/ソフトリミット両方です。 .Pp オプション -.Dq -a -を指定すると全リソースの設定値が表示されます。 +.Fl a +を指定すると +.Ic ulimit +コマンドは全リソースの設定値を表示します。 この場合、パラメータ -.Dq limit +.Ar limit は指定できません。 .Pp この他のオプションは、表示あるいは設定するリソースの種類を指定するものです。 これらは互いに排他的です。 .Bl -tag -width Ds -.It -c coredumpsize +.It Fl c Ar coredumpsize コアダンプファイルの最大サイズ。512 バイトのブロック単位。 -.It -d datasize +.It Fl d Ar datasize プロセスのデータセグメントの最大サイズ。キロバイト単位。 -.It -f filesize -ファイルの最大サイズ。512 バイトブロック単位。これがデフォルトです。 -.It -l lockedmem +.It Fl f Ar filesize +ファイルの最大サイズ。512 バイトブロック単位。 +.It Fl l Ar lockedmem プロセスがロックできるメモリサイズの最大値。キロバイト単位。 -.It -m memoryuse +.It Fl m Ar memoryuse プロセスの常駐セットサイズの最大値。キロバイト単位。 -.It -n nofiles +.It Fl n Ar nofiles あるプロセスがオープンできるファイル記述子の最大数。 -.It -s stacksize +.It Fl s Ar stacksize スタックセグメントサイズの最大値。キロバイト単位。 -.It -t time +.It Fl t Ar time 各プロセスで消費できる CPU 時間の最大値。秒単位。 -.It -u userproc +.It Fl u Ar userproc このユーザ ID で同時に走らせうる最大プロセス数。 .El -.It umask [ mask ] -umask の値 ( +.It Ic umask Op Ar mask +ファイル作成マスクの値 ( .Xr umask 2 -を参照) を、指定された 8 進数の値に設定します。引数が -省略された場合、現在の umask の値が表示されます。 -.It unalias [-a] [name] -.Dq name +を参照) を、 +.Ar mask +で指定された 8 進数の値に設定します。引数が +省略された場合、現在のマスクの値が表示されます。 +.It Xo +.Ic unalias +.Op Fl a +.Op Ar name +.Xc +.Ar name が指定された場合、指定された名前のエイリアスを削除します。 -.Dq -a +.Ar a オプションが指定された場合、すべてのエイリアスを削除します。 -.It unset name ... +.It Ic unset Ar name ... 指定された変数または関数を unset し、エクスポートされていない状態にします。 指定された名前の変数も関数も存在する場合、変数と関数の両方が unset されます。 -.It wait [ job ] -指定されたジョブ job が終了するのを待ち、ジョブ内の最後のプロセスの +.It Ic wait Op Ar job +指定されたジョブ +.Ar job +が終了するのを待ち、ジョブ内の最後のプロセスの 終了ステータスを返します。引数が省略された場合、すべてのジョブが終了する まで待ち、終了ステータス 0 を返します。 .El .Ss コマンド行編集 .Nm が端末から対話的に実行されている場合、現在入力中のコマンドおよび -コマンド履歴 (組み込みコマンド fc 参照) を vi モードのコマンド行編集機能 +コマンド履歴 ( +.Sx 組み込みコマンド +の +.It fc +参照) を vi モードのコマンド行編集機能 により編集することができます。 このモードでは、vi のマニュアルに示されているコマンドのサブセットを用います。 -コマンド `set -o vi' により vi モードが開始され、vi の挿入モードに移行します。 +コマンド +.Dq Li set -o vi +(または +.Dq Li set -V ) +により vi モードが有効になり、 +.Nm +は vi の挿入モードに移行します。 vi モード中では、 挿入モードとコマンドモードの両方を自由に切り替えることが可能です。 -vi モードは vi と同様であり、 キー -によりコマンドモードに移行し、コマンドモードで キーを叩くことで、 +vi モードは vi と同様であり、 +.Aq ESC +キー +によりコマンドモードに移行し、コマンドモードで +.Aq return +キーを叩くことで、 行の内容がシェルに渡されます。 .Pp -同様に、コマンド `set -o emacs' により emacs 風のコマンド行編集機能の +同様に、コマンド +.Dq Li set -o emacs +により emacs 風のコマンド行編集機能の サブセットを使うことができるようになります。 .Sh 関連項目 +.Xr builtin 1 , +.Xr echo 1 , .Xr expr 1 , +.Xr pwd 1 , +.Xr printf 1 , .Xr test 1 .Sh 歴史 .Nm コマンドは、 .At V.1 で登場しました。 .\" -Amended by N.Kumagai 97.12.30 diff --git a/ja_JP.eucJP/man/man1/test.1 b/ja_JP.eucJP/man/man1/test.1 index 7ffb48e73a..c11c4ae0ba 100644 --- a/ja_JP.eucJP/man/man1/test.1 +++ b/ja_JP.eucJP/man/man1/test.1 @@ -1,226 +1,226 @@ .\" Copyright (c) 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. .\" .\" @(#)test.1 8.1 (Berkeley) 5/31/93 .\" %FreeBSD: src/bin/test/test.1,v 1.8.2.1 1999/08/29 14:14:30 peter Exp % .\" jpman %Id: test.1,v 1.2 1997/03/31 03:43:49 ryo2 Stab % .\" .Dd May 31, 1993 .Dt TEST 1 .Os .Sh 名称 .Nm test -.Nd 条件式を評価する +.Nd 条件式評価ユーティリティ .Sh 書式 .Nm test .Ar expression .Sh 解説 .Nm -ユーティリティは、式を評価し、結果が真なら 0 (true)を、 +ユーティリティは、式を評価し、結果が真なら 0 (true) を、 偽なら 1 (false) を戻り値として返します。引数の式がない 場合も 1 (false) を返します。 .Pp 演算子やフラグなどは、一つ一つ独立な引数として .Nm ユーティリティに渡します。 .Pp 式は以下の基本要素から構成されます: .Bl -tag -width indent .It Fl b Ar file .Ar file が存在し、それがブロック特殊ファイルであるならば真になります。 .It Fl c Ar file .Ar file が存在し、それがキャラクタ特殊ファイルであるならば真になります。 .It Fl d Ar file .Ar file が存在し、それがディレクトリであるならば真になります。 .It Fl e Ar file .Ar file が存在すれば真になります (ファイルの種類に依りません)。 .It Fl f Ar file .Ar file が存在し、それが通常ファイルであるならば真になります。 .It Fl g Ar file .Ar file が存在し、それに setgid (フラグが立っていれば真になります。 .It Fl h Ar file .Ar file が存在し、それがシンボリックリンクであるならば真になります。 .It Fl n Ar string .Ar string の長さが 0 でなければ真になります。 .It Fl p Ar file .Ar file が名前つきパイプ .Po Tn FIFO Pc であるならば真になります。 .It Fl S Ar file .Ar file がソケットの場合に真になります。 .It Fl r Ar file .Ar file が存在し、それが読み込み可能であれば真になります。 .It Fl s Ar file .Ar file が存在し、そのファイルサイズが 0 より大きければ真になります。 .It Fl t Ar [file_descriptor] ファイルディスクリプタ番号が .Ar file_descriptor (デフォルトでは1) であるファイルがオープンされており、これが端末に 結びつけられていれば 真になります。 .It Fl u Ar file .Ar file が存在し、それに setuid フラグが立っていれば真になります。 .It Fl w Ar file .Ar file が存在し、書き込み可能であれば真になります。真ということは、 書き込み可能フラグが立っていることを表すに過ぎません。 ファイルが読み込み専用のファイルシステム上にあると、たとえ この判定が真であっても書き込みはできません。 .It Fl x Ar file .Ar file が存在し、実行可能であれば真になります。真ということは、 実行可能フラグが立っていることを表すに過ぎません。 .Ar file がディレクトリの場合、真は .Ar file が検索可能であることを表します。 .It Fl z Ar string .Ar string の長さが 0 であれば真になります。 .It Ar string .Ar string がナル文字列でなければ真になります。 .It Ar \&s\&1 Cm \&= Ar \&s\&2 文字列 .Ar \&s\&1 と .Ar \&s\&2 が同一であれば真になります。 .It Ar \&s\&1 Cm \&!= Ar \&s\&2 文字列 .Ar \&s\&1 と .Ar \&s\&2 が同一でなければ真になります。 .It Ar \&n\&1 Fl \&eq Ar \&n\&2 整数 .Ar \&n\&1 と .Ar \&n\&2 が等しければ真になります。 .It Ar \&n\&1 Fl \&ne Ar \&n\&2 整数 .Ar \&n\&1 と .Ar \&n\&2 が等しくなければ真になります。 .It Ar \&n\&1 Fl \> Ar \&n\&2 整数 .Ar \&n\&1 が .Ar \&n\&2 がより大きければ真になります。 .It Ar \&n\&1 Fl \&ge Ar \&n\&2 整数 .Ar \&n\&1 が .Ar \&n\&2 より大きいか等しければ真になります。 .It Ar \&n\&1 Fl \< Ar \&n\&2 整数 .Ar \&n\&1 が .Ar \&n\&2 より小さければ真になります。 .It Ar \&n\&1 Fl \&le Ar \&n\&2 整数 .Ar \&n\&1 が .Ar \&n\&2 より小さいか等しければ真になります。 .El .Pp これらの基本要素は以下の演算子と組み合わせることができます: .Bl -tag -width Ar .It Cm \&! Ar expression .Ar expression が偽ならば真になります。 .It Ar expression1 Fl a Ar expression2 .Ar expression1 と .Ar expression2 の両方が真ならば真になります。 .It Ar expression1 Fl o Ar expression2 .Ar expression1 と .Ar expression2 のどちらかが真ならば真になります。 .It Cm \&( Ns Ar expression Ns Cm \&) .Ar expression が真ならば真になります。 .El .Pp .Fl a 演算子は .Fl o 演算子より優先されます。 .Sh 文法の曖昧性 .Nm に使用されている文法は本質的に曖昧です。ある程度の一貫性を確保するため、 .St -p1003.2 の D11.2/4.62.4 節で述べられているケースに関しては、この標準化文書が 規定する規則に一貫して従った評価が行われます。しかしその他のケース では、コマンドの持つ意味の曖昧さに左右されます。 .Sh 戻り値 .Nm ユーティリティは次のいずれかの値を返します。 .Bl -tag -width Ds .It 0 式を評価した結果が真である .It 1 式を評価した結果が偽であるか、式がない .It >1 エラーが発生した .El .Sh 関連項目 .Xr expr 1 , .Xr sh 1 .Sh 規格 .Nm の機能は、 .St -p1003.2 互換を想定しています。 diff --git a/ja_JP.eucJP/man/man5/Makefile b/ja_JP.eucJP/man/man5/Makefile index d0821e7058..cb3be971d0 100644 --- a/ja_JP.eucJP/man/man5/Makefile +++ b/ja_JP.eucJP/man/man5/Makefile @@ -1,27 +1,27 @@ MAN5 = a.out.5 acct.5 aliases.5 amd.conf.5 ar.5 auth.conf.5\ bootparams.5 bootptab.5 core.5\ crontab.5 ctm.5 cvs.5 devfs.5 dir.5 disklabel.5 disktab.5\ dm.conf.5 dhclient.conf.5 dhclient.leases.5 dhcp-options.5\ - editrc.5 ethers.5 exports.5 fbtab.5 fdesc.5\ + editrc.5 elf.5 ethers.5 exports.5 fbtab.5 fdesc.5\ forward.5 fs.5 fstab.5 gettytab.5 groff_font.5 groff_out.5\ group.5 hosts.5 hosts.equiv.5 hosts.lpd.5 hosts_access.5\ hosts_options.5 ipf.5 ipnat.5 ipsend.5\ intro.5 isdnd.acct.5 isdnd.rates.5 isdnd.rc.5 kernfs.5\ keycap.5 link.5 loader.conf.5\ login.access.5 login.conf.5 magic.5 map3270.5\ modems.5 motd.5 netgroup.5 networks.5 nologin.5 opieaccess.5\ opiekeys.5 passwd.5 pbm.5 pccard.conf.5 phones.5 printcap.5\ procfs.5 protocols.5 publickey.5 pw.conf.5\ radius.conf.5 ranlib.5 rc.conf.5 rcsfile.5\ remote.5 resolver.5 rpc.5 services.5 shells.5 skey.access.5\ stab.5 syslog.conf.5 tacplus.conf.5 term.5 termcap.5 ttys.5\ types.5 tzfile.5 utmp.5 uuencode.format.5 vgrindefs.5\ MLINKS+=utmp.5 lastlog.5 utmp.5 wtmp.5 MLINKS+=hosts.equiv.5 rhosts.5 MLINKS+=uuencode.format.5 uudecode.5 MLINKS+=resolver.5 resolv.conf.5 MLINKS+=fs.5 inode.5 MLINKS+=dir.5 dirent.5 .include "bsd.prog.mk" diff --git a/ja_JP.eucJP/man/man5/elf.5 b/ja_JP.eucJP/man/man5/elf.5 new file mode 100644 index 0000000000..c23f3867a4 --- /dev/null +++ b/ja_JP.eucJP/man/man5/elf.5 @@ -0,0 +1,1303 @@ +.\"Copyright (c) 1999 Jeroen Ruigrok van der Werven +.\"All rights reserved. +.\" +.\"Redistribution and use in source and binary forms, with or without +.\"modification, are permitted provided that the following conditions +.\"are met: +.\"1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\"2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\"THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +.\"ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\"IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\"ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\"FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\"DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\"OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\"HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\"LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\"OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\"SUCH DAMAGE. +.\" +.\" %FreeBSD: src/share/man/man5/elf.5,v 1.1.2.2 1999/10/31 04:02:25 green Exp % +.\" +.Dd July 31, 1999 +.\" jpman %Id: elf.5,v 1.2 1999/12/02 15:13:16 junkun Chk % +.Dt ELF 5 +.Os FreeBSD 3.3 +.Sh 名称 +.Nm elf +.Nd ELF 実行形式バイナリファイルのフォーマット +.Sh 書式 +.Fd #include +.Sh 解説 +ヘッダファイル +.Aq Pa elf.h +は、ELF 実行形式バイナリファイルのフォーマットを定義しています。 +ELF には普通の実行可能ファイル、再配置可能なオブジェクトファイル、 +コアファイル、共有ライブラリがあります。 +.Pp +ELF ファイルフォーマットを使っている +実行可能ファイルは ELF ヘッダを持ちます。 +そして、プログラムヘッダテーブルか、 +セクションヘッダテーブル、あるいはその両方が続きます。 +ELF ヘッダは、常にファイルのオフセット・ゼロにあります。 +ファイルでのプログラムヘッダテーブルと +セクションヘッダテーブルのオフセットは、 +ELF ヘッダで定義されています。 +2 つのテーブルは、ファイルの特徴の残りの部分を記述します。 +.Pp +ネイティブアーキテクチャの ELF バイナリーファイルを処理する応用プログラムは、 +そのソースコードに +.Pa sys/elf.h +をインクルードするだけですみます。 +これらの応用プログラムは、総称名 +.Dq Elf_xxx +による全タイプと構造体への参照を含む必要があり、 +.Dq ELF_xxx +によるマクロへの参照を含む必要があるでしょう。 +このようにして記述された応用プログラムは、 +どのようなアーキテクチャであっても、 +ホストが 32 ビットなのか、あるいは 64 ビットなのか +ということを気にしないで、コンパイルすることができます。 +.Pp +未知のアーキテクチャの ELF ファイルを処理する必要がある応用プログラムは、 +.Pa sys/elf.h +ではなく、 +.Pa sys/elf32.h +と +.Pa sys/elf64.h +の両方をインクルードする必要があります。 +さらに、全てのタイプと構造体は、 +.Dq Elf32_xxx +か +.Dq Elf64_xxx +によって区別する必要があります。 +マクロは、 +.Dq ELF32_xxx +または +.Dq ELF64_xxx +によって区別する必要があります。 +.Pp +システムのアーキテクチャがたとえ何であっても、常に +.Pa sys/elf_generic.h +だけでなく、 +.Pa sys/elf_common.h +もインクルードします。 +.Pp +これらのヘッダファイルでは、 +上で言及したヘッダを C 構造体として記述し、 +これに加えてダイナミックセクション、 +再配置セクションとシンボルテーブルのための構造体を含んでいます。 +.Pp +以下のタイプが、32 ビットアーキテクチャのために使われています: +.Bd -literal -offset indent +Elf32_Addr 符号無しプログラムアドレス +Elf32_Half 符号無しハーフワードフィールド +Elf32_Off 符号無しファイルオフセット +Elf32_Sword 符号付き大整数 +Elf32_Word フィールドまたは符号無し大整数 +Elf32_Size 符号無しオブジェクトサイズ +.Ed +.Pp +64 ビットアーキテクチャ用に以下のタイプが用意されています: +.Bd -literal -offset indent +Elf64_Addr 符号無しプログラムアドレス +Elf64_Half 符号無しハーフワードフィールド +Elf64_Off 符号無しファイルオフセット +Elf64_Sword 符号付き大整数 +Elf64_Word フィールドまたは符号無し大整数 +Elf64_Size 符号無しオブジェクトサイズ +Elf64_Quarter 符号無しクォータワードフィールド +.Ed +.Pp +ELF ファイルフォーマットが定義する全てのデータ構造は、 +関連するクラスのために +.Dq 自然な +サイズと境界調整のガイドラインに従っています。 +必要ならば、データ構造は、4 バイトオブジェクトが +4 バイトのアライメントとなることを保証するために、 +構造体のサイズを強制的に 4 の倍数にするとかいった手段で、 +明示的なパディングを含めます。 +.Pp +ELF ヘッダは、Elf32_Ehdr 型または Elf64_Ehdr 型によって記述されています: +.Bd -literal -offset indent +typedef struct { + unsigned char e_ident[EI_NIDENT]; + Elf32_Half e_type; + Elf32_Half e_machine; + Elf32_Word e_version; + Elf32_Addr e_entry; + Elf32_Off e_phoff; + Elf32_Off e_shoff; + Elf32_Word e_flags; + Elf32_Half e_ehsize; + Elf32_Half e_phentsize; + Elf32_Half e_phnum; + Elf32_Half e_shentsize; + Elf32_Half e_shnum; + Elf32_Half e_shstrndx; +} Elf32_Ehdr; +.Ed +.Pp +.Bd -literal -offset indent +typedef struct { + unsigned char e_ident[EI_NIDENT]; + Elf64_Quarter e_type; + Elf64_Quarter e_machine; + Elf64_Half e_version; + Elf64_Addr e_entry; + Elf64_Off e_phoff; + Elf64_Off e_shoff; + Elf64_Half e_flags; + Elf64_Quarter e_ehsize; + Elf64_Quarter e_phentsize; + Elf64_Quarter e_phnum; + Elf64_Quarter e_shentsize; + Elf64_Quarter e_shnum; + Elf64_Quarter e_shstrndx; +} Elf64_Ehdr; +.Ed +.Pp +フィールドは、以下の意味を持っています: +.Pp +.Bl -tag -width "e_phentsize" -compact -offset indent +.It Dv e_ident +このバイト配列はファイルをどのように解釈すべきかを指定します。 +これは、プロセッサまたはファイルの残りの内容から独立しています。 +この配列では、すべてはマクロによって先頭に +.Sy EI_ +のついた名前を持ち、 +また先頭に +.Sy ELF + がついた値を持つでしょう。 +以下のマクロが定義されています: +.Pp +.Bl -tag -width "EI_VERSION" -compact +.It Dv EI_MAG0 +マジック番号の第 1 のバイト。 +.Sy ELFMAG0 +であることが必要です。 +.It Dv EI_MAG1 +マジック番号の第 2 のバイト。 +.Sy ELFMAG1 +であることが必要です。 +.It Dv EI_MAG2 +マジック番号の第 3 のバイト。 +.Sy ELFMAG2 +であることが必要です。 +.It Dv EI_MAG3 +マジック番号の第 4 のバイト。 +.Sy ELFMAG3 +であることが必要です。 +.It Dv EI_CLASS +第 5 のバイトは、当該のバイナリファイルによってアーキテクチャを識別します: +.Pp +.Bl -tag -width "ELFCLASSNONE" -compact +.It Dv ELFCLASSNONE +このクラスは、不当です。 +.It Dv ELFCLASS32 +これは、32 ビットアーキテクチャを定義します。 +ファイル空間と仮想アドレス空間が 4 ギガバイトまでにおさまる +マシンに対応します。 +.It Dv ELFCLASS64 +これは、64 ビットアーキテクチャを定義します。 +.El +.It Dv EI_DATA +第 6 のバイトは、 +ファイルのプロセッサ固有データのエンコーディングを指定します。 +現在、次のエンコーディングがサポートされています: +.Pp +.Bl -tag -width "ELFDATA2LSB" -compact +.It Dv ELFDATANONE +未知のデータフォーマット。 +.It Dv ELFDATA2LSB +2 の補数、リトルエンディアン。 +.It Dv ELFDATA2MSB ++2 の補数、ビッグエンディアン。 +.El +.It Dv EI_VERSION +ELF 仕様書のバージョンナンバ: +.Pp +.Bl -tag -width "EV_CURRENT" -compact +.It Dv EV_NONE +不当なバージョン。 +.It Dv EV_CURRENT +現在のバージョン。 +.El +.It Dv EI_PAD +パディングの始め。 +これらのバイトは、予約されており、0 にセットされます。 +ここを読むプログラムは、これを無視する必要があります。 +将来、現在使っていないバイトに意味が与えられた時には、 +EI_PAD の値は変わります。 +.It Dv EI_BRAND +アーキテクチャ識別子の始め。 +.It Dv EI_NIDENTT +e_ident 配列の大きさ。 +.El +.Pp +.It Dv e_type +構造体のこのメンバは、オブジェクトファイルタイプを同定します: +.Pp +.Bl -tag -width "ET_NONE" -compact +.It Dv ET_NONE +未知のタイプ。 +.It Dv ET_REL +再配置可能なファイル。 +.It Dv ET_EXEC +実行可能ファイル。 +.It Dv ET_DYN +共有オブジェクト。 +.It Dv ET_CORE +コアファイル。 +.El +.Pp +.It Dv e_machine +このメンバは、個々のファイルに必要なアーキテクチャを指定します: +.Pp +.Bl -tag -width "EM_MIPS_RS4_BE" -compact +.It Dv EM_NONE +未知のマシン。 +.It Dv EM_M32 +AT&T WE 32100. +.It Dv EM_SPARC +Sun Microsystems SPARC. +.It Dv EM_386 +Intel 80386. +.It Dv EM_68K +Motorola 68000. +.It Dv EM_88K +Motorola 88000. +.It Dv EM_486 +Intel 80486. +.It Dv EM_860 +Intel 80860. +.It Dv EM_MIPS +MIPS RS3000 (ビッグエンディアンのみ) +.It Dv EM_MIPS_RS4_BE +MIPS RS4000 (ビッグエンディアンのみ) +.It Dv EM_SPARC64 +SPARC v9 64-bit 非公式。 +.It Dv EM_PARISC +HPPA. +.It Dv EM_PPC +PowerPC. +.It Dv EM_ALPHA +Compaq [DEC] Alpha. +.El +.Pp +.It Dv e_version +このメンバは、ファイルバージョンを識別します: +.Pp +.Bl -tag -width "EV_CURRENT" -compact +.It Dv EV_NONE +不当なバージョン。 +.It Dv EV_CURRENT +現在のバージョン。 +.El +.It Dv e_entry +このメンバは、システムが最初に制御を移す、 +つまりプロセスを開始する仮想アドレスを示します。 +ファイルがエントリーポイントを与えられていない時には、 +このメンバは 0 になります。 +.It Dv e_phoff +このメンバは、 +プログラムヘッダテーブルのバイト単位のファイルオフセットを持ちます。 +.It Dv e_shoff +このメンバは、 +セクションヘッダテーブルのバイト単位のファイルオフセットを持ちます。 +ファイルにはセクションヘッダテーブルがないならば、このメンバは 0 を持ちます。 +.It Dv e_flags +このメンバは、ファイルに関連する、プロセッサに固有なフラグを持ちます。 +フラグ名は、EF_`machine_flag' という形式になります。 +現在、フラグは定義されていません。 +.It Dv e_ehsize +このメンバは、ELF ヘッダのバイト単位の大きさを持ちます。 +.It Dv e_phentsize +このメンバは、 +ファイルのプログラムヘッダテーブルにあるエントリ 1 個分のサイズを持ちます; +全てのエントリは、同じ大きさです。 +.It Dv e_phnum +このメンバは、プログラムヘッダテーブル中のエントリの個数を持ちます。 +つまり、 +.Sy e_phentsize +と +.Sy e_phnum +の積は、テーブルのバイト単位の大きさを与えます。 +ファイルにはプログラムヘッダがない場合、 +.Sy e_phnum +値は 0 になります。 +.It Dv e_shentsize +このメンバは、セクションヘッダのバイト単位の大きさを持ちます。 +セクションヘッダは、 +セクションヘッダテーブルの中の 1 つのエントリです; +全てのエントリは、同じ大きさです。 +.It Dv e_shnum +このメンバは、セクションヘッダテーブル中のエントリの個数を持ちます。 +つまり、 +.Sy e_shentsize +と +.Sy e_shnum +の積は、セクションヘッダテーブルのバイト単位の大きさを与えます。 +ファイルにはセクションヘッダテーブルがないならば、 +.Sy e_shnum +の値は 0 になります。 +.It Dv e_shstrndx +このメンバは、 +セクションヘッダテーブルの、 +セクション名文字列テーブルに結びつけられたエントリへの +インデックスを持ちます。 +ファイルにはセクション名文字列テーブルがないならば、 +このメンバは値 +.Sy SHN_UNDEF +を持ちます。 +.Pp +.Bl -tag -width "SHN_LORESERVE" -compact +.It Dv SHN_UNDEF +この値は、未定義か、存在しないか、無関係であるか、 +意味がないセクション参照を示します。 +例えば、セクション番号 +.Sy SHN_UNDEF +に対応したシンボル +.Dq defined +は、未定義シンボルです。 +.It Dv SHN_LORESERVE +この値は、予約のインデックスの範囲の下限を指定します。 +.It Dv SHN_HIPROC +この値から +.Sy SHN_HIPROC +以下は、プロセッサ固有のセマンティクスのために予約されています。 +この値から +.Sy SHN_LOPROC +以上は、プロセッサ固有のセマンティクスのために予約されています。 +.It Dv SHN_ABS +この値は、対応する参照のために絶対的な値を指定します。 +例えば、 +.Sy SHN_ABS +に関連するシンボルは。絶対的な値を持ち、再配置による影響を受けません。 +.It Dv SHN_COMMON +このセクションに対応して定義されたシンボルは、 +Fortran の COMMON や、領域が確保されていない C の 外部変数のような、 +共用シンボルです。 +.It Dv SHN_HIRESERVE +この値は、予約インデックス範囲の上限を指定します。 +この範囲は、 +.Sy SHN_LORESERVE +と +.Sy SHN_HIRESERVE +の間であり、両端を含みます。 +これらの値は、セクションヘッダテーブルを参照しません。 +セクションヘッダテーブルは予約のインデックスのためにエントリを +.Em 含みません。 +.El +.El +.Pp +実行可能ファイルまたは共有オブジェクトファイルのプログラムヘッダテーブルは、 +構造体の配列で、それぞれがセグメントや、 +その他プログラムの実行のためにシステムが用意する必要がある情報を +記述します。 +オブジェクトファイルの +.Em セグメント +は、1 つ以上の +.Em セクション +を含みます。 +プログラムヘッダは、 +実行可能ファイルと共有オブジェクトファイルだけで意味があります。 +ファイルは、ELF ヘッダの +.Sy e_phentsize +と +.Sy e_phnum +メンバでそれ自身のプログラムヘッダサイズを指定します。 +ELF 実行形式のヘッダと同様に、 +プログラムヘッダもアーキテクチャに従い異なるバージョンを持ちます: +.Pp +.Bd -literal -offset indent +typedef struct { + Elf32_Word p_type; + Elf32_Off p_offset; + Elf32_Addr p_vaddr; + Elf32_Addr p_paddr; + Elf32_Size p_filesz; + Elf32_Size p_memsz; + Elf32_Word p_flags; + Elf32_Size p_align; +} Elf32_Phdr; +.Ed +.Pp +.Bd -literal -offset indent +typedef struct { + Elf64_Half p_type; + Elf64_Half p_flags; + Elf64_Off p_offset; + Elf64_Addr p_vaddr; + Elf64_Addr p_paddr; + Elf64_Size p_filesz; + Elf64_Size p_memsz; + Elf64_Size p_align; +} Elf64_Phdr; +.Ed +.Pp +32 ビットと 64 ビットのプログラムヘッダの間の主な差は、 +構造体中の +.Sy p_flags +メンバだけです。 +.Pp +.Bl -tag -width "p_offset" -compact -offset indent +.It Dv p_type +構造体 Phdr のこのメンバは、この配列要素が記述しているセグメントを示し、 +どのように配列要素を解釈すべきかを示します。 +.Bl -tag -width "PT_DYNAMIC" -compact +.Pp +.It Dv PT_NULL +配列要素は使っていません。また、他のメンバの値は未定義です。 +これにより、プログラムヘッダ中に無視されるエントリを持てます。 +.It Dv PT_LOAD +配列要素はロード可能なセグメントを指定します。 +これは +.Sy p_filesz +と +.Sy p_memsz +で記述されます。 +ファイルからのバイトは、メモリセグメントの先頭にマップされます。 +セグメントのメモリサイズ ( +.Sy p_memsz +) がファイルサイズ ( +.Sy p_filesz +) より大きいならば、 +.Dq 余分な +バイトは値 0 を持って、 +セグメントの初期化された領域に続くために定義されます。 +ファイルサイズは、メモリサイズより大きくないかもしれません。 +プログラムヘッダテーブルの中のロード可能な +セグメントエントリは昇順で現れます。 +そして、 +.Sy p_vaddr +メンバでソートされます。 +.It Dv PT_DYNAMIC +配列要素は、動的リンク情報を指定します。 +.It Dv PT_INTERP +配列要素は、 +インタープリタとして起動するナル文字で終わるパス名の場所と大きさを指定します。 +このセグメントタイプは、実行可能ファイルのみで意味があります +(本セグメントタイプは、共有オブジェクト中にあるかもしれません) 。 +本セグメントは、ファイル中で複数個存在してはなりまねん。 +それが存在するならば、 +それはどんなロード可能なセグメントエントリにでも +先行する必要があります。 +.It Dv PT_NOTE +本配列要素は、補助情報のために場所と大きさを指定します。 +.It Dv PT_SHLIB +このセグメントタイプは、 +予約されており、明記されていないセマンティクスを持ちます。 +このタイプの配列要素を含むプログラムは、ABI に従いません。 +.It Dv PT_PHDR +本配列要素が存在する場合、 +ファイル中とメモリイメージ中における、 +プログラムヘッダテーブル自身の位置と大きさを指定します。 +本セグメントタイプは、ファイル中で複数個存在してはなりません。 +さらに、 +プログラムヘッダテーブルがプログラムのメモリイメージに含まれる場合のみ、 +存在が許されます。 +存在する場合、 +全ロード可能セグメントエントリに先行する必要があります。 +.It Dv PT_LOPROC +.Sy PT_HIPROC +この値から +.Sy PT_HIPROC +以下は、プロセッサ固有のセマンティクスのために予約されています。 +.It Dv PT_HIPROC +この値から +.Sy PT_LOPROC +以上は、プロセッサ固有のセマンティクスのために予約されています。 +.El +.Pp +.It Dv p_offset +このメンバは、セグメントの最初のバイトが存在するバイトへの、 +ファイル先頭からのオフセットを持ちます。 +.It Dv p_vaddr +このメンバは、 +セグメントの最初のバイトがメモリで存在する仮想アドレスを持ちます。 +.It Dv p_paddr +物理アドレッシングのシステム上では、 +このメンバは、セグメントの物理アドレスのために予約されています。 +BSD では、本メンバは使されず、0 である必要があります。 +.It Dv p_filesz +このメンバは、セグメントのファイルイメージのバイト数を持ちます。 +0 であるかもしれません。 +.It Dv p_memsz +このメンバは、セグメントのメモリイメージのバイト数を持ちます。 +0 であるかもしれません。 +.It Dv p_flags +このメンバは、セグメントに関したフラグを持ちます。 +.Pp +.Bl -tag -width "PF_X" -compact +.It Dv PF_X +実行形式セグメント。 +.It Dv PF_W +書きこみ可能なセグメント。 +.It Dv PF_R +読み込み可能なセグメント。 +.El +.Pp +テキストセグメントは、一般にフラグ +.Sy PF_X +と +.Sy PF_R +を持ちます。 +データセグメントは、一般に +.Sy PF_X , +.Sy PF_W +と +.Sy PF_R +を持ちます。 +.It Dv p_align +本メンバは、メモリ中およびファイル中でセグメントが整列すべき値を持ちます。 +ロード可能なプロセスは、 +.Sy p_vaddr +と +.Sy p_offset +をページサイズで割った余りに適合する値を持つ必要があります。 +0 と 1 の値は、アライメントが必要でないことを意味します。 +一方、 +.Sy p_align +は、正 (2 の整数乗) である必要があります。そして、 +.Sy p_vaddr +は +.Sy p_offset , +を +.Sy p_align +で割った余りと等しい必要があります。 +.El +.Pp +ファイルのセクションヘッダテーブルは、 +全てのファイルのセクションの位置決定を可能とします。 +セクションヘッダテーブルは、Elf32_Shdr または Elf64_Shdr 構造体の配列です。 +ELF ヘッダの +.Sy e_shoff +メンバは、 +セクションヘッダテーブルの、ファイル先頭からのバイトオフセットを与えます。 +.Sy e_shnum +は、セクションヘッダテーブルのエントリ数を持ちます。 +.Sy e_shentsize +は、各エントリの大きさをバイトで持ちます。 +.Pp +セクションヘッダテーブルインデックスは、この配列の添字です。 +セクションヘッダテーブルインデックスには、予約のものがあります。 +オブジェクトファイルには、次の特別なインデックスにはセクションがありません: +.Pp +.Bl -tag -width "SHN_LORESERVE" -compact +.It Dv SHN_UNDEF +この値は、未定義か、存在しないか、無関係であるか、 +意味がないセクション参照を示します。 +.It Dv SHN_LORESERVE +この値は、予約のインデックスの範囲の下限を指定します。 +.It Dv SHN_LOPROC +この値から +.Sy SHN_HIPROC +以下は、プロセッサ固有のセマンティクスのために予約されています。 +.It Dv SHN_HIPROC +この値から +.Sy SHN_LOPROC +以下は、プロセッサ固有のセマンティクスのために予約されています。 +.It Dv SHN_ABS +この値は、対応する参照が絶対値であることを指定します。 +例えば、セクション番号 +.Sy SHN_ABS +に関連して定義されているシンボルは絶対的な数値を持ち、 +再配置によって影響を受けません。 +.It Dv SHN_COMMON +このセクションからの相対で指定されるシンボルは、共通シンボルであり、 +Fortran の COMMON や領域が確保されていない C の外部変数が該当します。 +.It Dv SHN_HIRESERVE +この値は、予約インデックス範囲の上限を指定します。 +この範囲は、 +.Sy SHN_LORESERVE +と +.Sy SHN_HIRESERVE +の間であり、両端を含みます。 +セクションヘッダテーブルは、予約のインデックスのためにエントリを含みません。 +.El +.Pp +セクションヘッダは、以下の構造体を持ちます: +.Bd -literal -offset indent +typedef struct { + Elf32_Word sh_name; + Elf32_Word sh_type; + Elf32_Word sh_flags; + Elf32_Addr sh_addr; + Elf32_Off sh_offset; + Elf32_Size sh_size; + Elf32_Word sh_link; + Elf32_Word sh_info; + Elf32_Size sh_addralign; + Elf32_Size sh_entsize; +} Elf32_Shdr; +.Ed +.Pp +.Bd -literal -offset indent +typedef struct { + Elf64_Half sh_name; + Elf64_Half sh_type; + Elf64_Size sh_flags; + Elf64_Addr sh_addr; + Elf64_Off sh_offset; + Elf64_Size sh_size; + Elf64_Half sh_link; + Elf64_Half sh_info; + Elf64_Size sh_addralign; + Elf64_Size sh_entsize; +} Elf64_Shdr; +.Ed +.Pp +.Bl -tag -width "sh_addralign" -compact +.It Dv sh_name +このメンバは、セクションの名前を指定します。 +その値はセクションヘッダ文字列テーブルセクションへの +インデックスです。そして、ナル文字で終わる文字列の場所を与えます。 +.It Dv sh_type +このメンバは、セクションの内容とセマンティクスを分類します。 +.Pp +.Bl -tag -width "SHT_PROGBITS" -compact +.It Dv SHT_NULL +この値は、セクションヘッダが不活性であることを示します。 +それは、関連づけられたセクションがないということです。 +セクションヘッダの他のメンバは、未定義値を持ちます。 +.It Dv SHT_PROGBITS +セクションはプログラムによって定義される情報を持ちます。 +フォーマットと意味は、プログラムだけによってのみ決定されます。 +.It Dv SHT_SYMTAB +このセクションは、シンボルテーブルを持ちます。 +一般的に、 +.Sy SHT_SYMTAB +はリンクエディットのためのシンボルを提供します。 +これはまた、動的リンクに使われるかもしれません。 +完全なシンボルテーブルとして、 +それは動的リンクのために不必要な多くのシンボルを含む場合があります。 +オブジェクトファイルは、また、 +.Sy SHN_DYNSYM +セクションを含むことができます。 +.It Dv SHT_STRTAB +このセクションは、文字列テーブルを持ちます。 +オブジェクトファイルは、複数の文字列テーブルセクションを持ち得ます。 +.It Dv SHT_RELA +このセクションは、明示的な加数を持つ、再配置エントリを持ちます。 +例えば、オブジェクトファイルの 32 ビットクラスのタイプ +.Sy Elf32_Rela +が該当します。 +オブジェクトは、複数の再配置セクションを持ち得ます。 +.It Dv SHT_HASH +このセクションは、シンボルハッシュテーブルを持ちます。 +動的リンクに関連する全オブジェクトは、 +シンボルハッシュテーブルを含む必要があります。 +オブジェクトファイルは、単一のハッシュテーブルのみを持ち得ます。 +.It Dv SHT_DYNAMIC +このセクションは、動的リンクのために情報を持ちます。 +オブジェクトファイルは、単一の動的セクションのみを持ち得ます。 +.It Dv SHT_NOTE +このセクションは、いくばくかの方法でファイルに印をする情報を持ちます。 +.It Dv SHT_NOBITS +このタイプのセクションは、ファイル中の空間を占めませんが、 +.Sy SHN_PROGBITS +に似ています。 +このセクションはバイトを含みませんが、 +.Sy sh_offset +メンバは概念上のファイルオフセットを含みます。 +.It Dv SHT_REL +このセクションは、明示的な加数無しの再配置オフセットを持ちます。 +例えば、オブジェクトファイルの 32 ビットクラスのタイプ +.Sy Elf32_Rel +が該当します。 +オブジェクトファイルは、複数の再配置セクションを持ち得ます。 +.It Dv SHT_SHLIB +このセクションは、予約されており、明記されていないセマンティクスを持ちます。 +.It Dv SHT_DYNSYM +このセクションは、動的リンクシンボルの最小のセットを持ちます。 +オブジェクトファイルは、また、 +.Sy SHN_SYMTAB +セクションを含むことができます。 +.It Dv SHT_LOPROC +この値から +.Sy SHT_HIPROC +以下は、プロセッサ固有のセマンティクスのために予約されています。 +.It Dv SHT_HIPROC +この値から +.Sy SHT_LOPROC +以上は、プロセッサ固有のセマンティクスのために予約されています。 +.It Dv SHT_LOUSER +この値は、応用プログラムプログラムのために予約されている +インデックス範囲の下限を指定します。 +.It Dv SHT_HIUSER +この値は、応用プログラムプログラムのために予約されている +インデックス範囲の上限を指定します。 +現在または将来のシステム定義セクションタイプと衝突することなく、 +.Sy SHT_LOUSER +と +.Sy SHT_HIUSER +の間のセクションタイプが、応用プログラムによって使われるかもしれません。 +.El +.Pp +.It Dv sh_flags +セクションは、雑多な属性を記述する 1 ビットフラグをサポートします。 +フラグビットが +.Sy sh_flags +でセットされるならば、そのセクションの属性は +.Dq オン +になります。 +そうでなければ、属性は +.Dq オフ +であるか、あてはまりません。 +未定義属性は、0 にセットされます。 +.Pp +.Bl -tag -width "SHF_EXECINSTR" -compact +.It Dv SHF_WRITE +セクションは、プロセス実行の間、書き込み可能であるべきデータを含みます。 +.It Dv SHF_ALLOC +セクションは、プロセス実行の間、メモリを占有します。 +制御セクションには、 +オブジェクトファイルのメモリイメージで存在しないものがあります。 +そのようなセクションでは、この属性はオフです。 +.It Dv SHF_EXECINSTR +セクションは、実行可能な機械語命令を含みます。 +.It Dv SHF_MASKPROC +このマスクで含まれる全てのビットは、 +プロセッサ固有のセマンティクスのために確保されます。 +.El +.Pp +.It Dv sh_addr +セクションがプロセスのメモリイメージに現れる場合、 +このメンバはセクションの最初のバイトが存在するアドレスを持ちます。 +そうでない場合、このメンバは 0 を含みます。 +.It Dv sh_offset +このメンバ値は、 +このセクションの、ファイル先頭からのバイトオフセットを与えます。 +1 つのセクションタイプ、すなわち +.Sy SHT_NOBITS +は、ファイルでスペースを占有しません。 +そして、その +.Sy sh_offset +メンバは、ファイル上の概念上の位置を指定します。 +.It Dv sh_size +このメンバは、セクションのバイトでの大きさを持ちます。 +セクションタイプが +.Sy SHT_NOBITS +でない限り、セクションはファイルで +.Sy sh_size +バイトを占有します。 +タイプ +.Sy SHT_NOBITS +のセクションは 0 以外の大きさを持つかもしれません。 +しかし、それはファイルでスペースを占有しません。 +.It Dv sh_link +このメンバは、 +セクションヘッダテーブルインデックスリンクを持ちます。 +この解釈は、セクションタイプ依存です。 +.It Dv sh_info +このメンバは、 +追加情報を持ちます。 +この解釈は、セクションタイプ依存です。 +.It Dv sh_addralign +若干のセクションは、アドレスアライメント制約があります。 +セクションがダブルワードを持つならば、 +システムはダブルワードアライメントを +セクション全体に保証する必要があります。 +.Sy sh_addr +の値は 0 であることが必要であり、モジュロ +.Sy sh_addralign +の値となります。 +'\" ここよくわからん。 +0 と 2 の正の羃乗だけが許されます。0 または 1 の値は、 +セクションにはアライメント制約がないことを意味します。 +.It Dv sh_entsize +若干のセクションは、 +固定長エントリのテーブルを持ちます。 +例えばシンボルテーブルがこれに該当します。 +そのようなセクションのために、 +このメンバは、各エントリのバイトでの大きさを与えます。 +セクションが固定サイズのエントリのテーブルを持たないならば、 +このメンバは 0 を含みます。 +.El +.Pp +様々なセクションが、プログラムと制御情報を持ちます: +.Bl -tag -width ".shstrtab" -compact +.It .bss +このセクションは初期化されないデータを持ち、 +プログラムのメモリイメージになります。 +定義では、 +プログラム開始時にシステムがデータを 0 初期化します。 +このセクションは、タイプ +.Sy SHT_NOBITS +です。 +属性タイプは、 +.Sy SHF_ALLOC +と +.Sy SHF_WRITE +です。 +.It .comment +このセクションは、バージョン制御情報を持ちます。 +このセクションは、タイプ +.Sy SHT_PROGBITS +です。 +属性タイプは使われません。 +.It .data +このセクションは初期化されたデータを持ち、 +プログラムのメモリイメージになります。 +このセクションは、タイプ +.Sy SHT_PROGBITS +です。 +属性タイプは、 +.Sy SHF_ALLOC +と +.Sy SHF_WRITE +です。 +.It .data1 +このセクションは初期化されたデータを持ち、 +プログラムのメモリイメージになります。 +このセクションは、タイプ +.Sy SHT_PROGBITS +です。 +属性タイプは、 +.Sy SHF_ALLOC +と +.Sy SHF_WRITE +です。 +.It .debug +このセクションは、シンボリックデバッギングのための情報を持ちます。 +内容は、明記されていません。 +このセクションは、タイプ +.Sy SHT_PROGBITS +です。 +属性タイプは使われません。 +.It .dynamic +このセクションは、動的リンク情報を持ちます。 +セクションの属性は、 +.Sy SHF_ALLOC +ビットを含みます。 +.Sy SHF_WRITE +ビットがセットされるか否かは、プロセッサ依存です。 +このセクションは、タイプ +.Sy SHT_DYNAMIC +です。 +上の属性を見てください。 +.It .dynstr +このセクションは動的リンクのために必要とされる文字列を持ちます。 +そして一般には、名前を表示する文字列であり、 +シンボルテーブルエントリと結び付けられています。 +このセクションは、タイプ +.Sy SHT_STRTAB +です。 +使われる属性タイプは、 +.Sy SHF_ALLOC +です。 +.It .dynsym +このセクションは、動的リンクシンボルテーブルを持ちます。 +このセクションは、タイプ +.Sy SHT_DYNSYM +です。 +使われる属性は、 +.Sy SHF_ALLOC +です。 +.It .fini +このセクションは、 +プロセス終了コードのための実行可能命令を持ちます。 +プログラムが正常終了するとき、 +システムはこのセクションでコードを実行するために手配します。 +このセクションは、タイプ +.Sy SHT_PROGBITS +です。 +使われる属性は、 +.Sy SHF_ALLOC +と +.Sy SHF_EXECINSTR +です。 +.It .got +このセクションは、グローバルオフセットテーブルを持ちます。 +このセクションは、タイプ +.Sy SHT_PROGBITS +です。 +属性は、プロセッサ依存です。 +.It .hash +このセクションは、シンボルハッシュテーブルを持ちます。 +このセクションは、タイプ +.Sy SHT_HASH +です。 +使われる属性は、 +.Sy SHF_ALLOC +です。 +.It .init +このセクションは、プロセス初期化コードの実行可能命令を持ちます。 +プログラム実行開始時に、 +メインプログラムエントリポイントを呼び出す前に、 +システムはこのセクションのコードを実行します。 +このセクションは、タイプ +.Sy SHT_PROGBITS +です。 +使われる属性は、 +.Sy SHF_ALLOC +と +.Sy SHF_EXECINSTR +です。 +.It .interp +このセクションは、プログラムインタプリタのパス名を持ちます。 +ファイルがこのセクションを含むロード可能なセグメントを持つならば、 +セクションの属性は +.Sy SHF_ALLOC +ビットを含みます。 +そうでない場合、このビットはオフです。 +このセクションは、タイプ +.Sy SHT_PROGBITS +です。 +.It .line +このセクションはシンボリックデバッギングのために行番号情報を持ちます。 +これは、プログラムソースとマシンコードの間の関係を記述します。 +内容は、明記されていません。 +このセクションは、タイプ +.Sy SHT_PROGBITS +です。 +属性タイプは使われていません。 +.It .note +このセクションは、下で記述される +.Dq Note Section +フォーマットで、情報を持ちます。 +このセクションは、タイプ +.Sy SHT_NOTE +です。 +属性タイプは使われていません。 +.It .plt +このセクションは、プロシージャリンケージテーブルを持ちます。 +このセクションは、タイプ +.Sy SHT_PROGBITS +です。 +属性はプロセッサ依存です。 +.It .relNAME +このセクションは、下記のように再配置情報を持ちます。 +ファイルが再配置を含むロード可能なセグメントを持つならば、 +セクションの属性は +.Sy SHF_ALLOC +ビットを含みます。 +そうでない場合、このビットはオフです。 +規約により、再配置されるセクションから +.Dq NAME +が与えられます。 +.Sy .text +のための再配置セクションは、通常名前 +.Sy .rel.text +を持ちます。 +このセクションは、タイプ +.Sy SHT_REL +です。 +.It .relaNAME +このセクションは、下記のように再配置情報を持ちます。 +ファイルが再配置を含むロード可能なセグメントを持つならば、 +セクションの属性は +.Sy SHF_ALLOC +ビットを含みます。 +そうでない場合、このビットはオフです。 +規約により、再配置されるセクションから +.Dq NAME +が与えられます。 +.Sy .text +のための再配置セクションは、通常名前 +.Sy .rela.text +を持ちます。 +このセクションは、タイプ +.Sy SHT_RELA +です。 +.It .rodata +このセクションは読み取り専用データを持ち、 +典型的にはプロセスの書き込み不可セグメントになります。 +このセクションは、タイプ +.Sy SHT_PROGBITS +です。 +使われる属性は、 +.Sy SHF_ALLOC +です。 +.It .rodata1 +このセクションは読み取り専用データを持ち、 +典型的にはプロセスの書き込み不可セグメントになります。 +このセクションは、タイプ +.Sy SHT_PROGBITS +です。 +使われる属性は、 +.Sy SHF_ALLOC +です。 +.It .shstrtab +このセクションはセクション名を持ちます。 +このセクションは、タイプ +.Sy SHT_STRTAB +です。 +属性タイプは使われません。 +.It .strtab +このセクションは文字列を持ちます。 +一般的には名前を表示する文字列であり、 +シンボルテーブルエントリと結び付けられています。 +ファイルがシンボル文字列テーブルを含むロード可能なセグメントを持つならば、 +セクションの属性は +.Sy SHF_ALLOC +ビットを含みます。 +そうでない場合、このビットはオフです。 +このセクションは、タイプ +.Sy SHT_STRTAB +です。 +.It .symtab +このセクションは、シンボルテーブルを持ちます。 +ファイルがシンボルテーブルを含むロード可能なセグメントを持つならば、 +セクションの属性は +.Sy SHF_ALLOC +ビットを含みます。 +そうでない場合、このビットはオフです。 +このセクションは、タイプ +.Sy SHT_SYMTAB +です。 +.It .text +このセクションは、プログラムの +.Dq テキスト +、すなわち実行可能命令を持ちます。 +このセクションは、タイプ +.Sy SHT_PROGBITS +です。 +使われる属性は、 +.Sy SHF_ALLOC +と +.Sy SHF_EXECINSTR +です。 +.El +.Pp +文字列テーブルセクションは、ナル文字で終わる文字シーケンス群を持ちます。 +これらは、一般に文字列と呼ばれます。 +オブジェクトファイルは、 +シンボルとセクション名を表示するためにこれらの文字列を使います。 +文字列テーブルセクションのインデックスとして、文字列を参照します。 +最初のバイト (インデックス 0) は、 +ナル文字を持つために定義されます。 +同じように、文字列テーブルの最終バイトはナル文字を持つために +そして、ヌル終端文字を全ての文字列に確保します。 +.Pp +オブジェクトファイルのシンボルテーブルは、 +プログラムのシンボル定義と参照の位置決定に必要な情報を保持します。 +シンボルテーブルインデックスは、この配列の添字です。 +.Pp +.Bd -literal -offset indent +typedef struct { + Elf32_Word st_name; + Elf32_Addr st_value; + Elf32_Size st_size; + unsigned char st_info; + unsigned char st_other; + Elf32_Half st_shndx; +} Elf32_Sym; +.Ed +.Pp +.Bd -literal -offset indent +typedef struct { + Elf64_Half st_name; + unsigned char st_info; + unsigned char st_other; + Elf64_Quarter st_shndx; + Elf64_Addr st_value; + Elf64_Size st_size; +} Elf64_Sym; +.Ed +.Pp +.Bl -tag -width "st_value" -compact +.It Dv st_name +このメンバは、オブジェクトファイルの +シンボル文字列テーブルへのインデックスを持ちます。 +シンボル文字列テーブルは、シンボル名の文字表現を持ちます。 +値が 0 以外であるならば、 +それはシンボル名を与える文字列テーブルインデックスを示します。 +そうでない場合、シンボルテーブルには名前がありません。 +.It Dv st_value +このメンバは、関連したシンボルの値を与えます。 +.It Dv st_size +多くのシンボルは、関連した大きさを持ちます。 +シンボルには大きさが無いか未知である場合、このメンバは 0 です。 +.It Dv st_info +このメンバは、シンボルのタイプと束縛属性を指定します: +.Pp +.Bl -tag -width "STT_SECTION" -compact +.It Dv STT_NOTYPE +シンボルのタイプは、定義されません。 +.It Dv STT_OBJECT +シンボルは、データオブジェクトと結び付けられています。 +.It Dv STT_FUNC +シンボルは、関数または他の実行可能コードと結び付けられています。 +.It Dv STT_SECTION +シンボルは、セクションと結び付けられています。 +このタイプのシンボルテーブルエントリは、 +主に再配置のために存在して、通常 +.Sy STB_LOCAL +束縛を持ちます。 +.It Dv STT_FILE +規約により、シンボルの名前は、 +オブジェクトファイルと関連するソースファイルの名前を与えます。 +存在する場合、ファイルシンボルは +.Sy STB_LOCAL +束縛を持ち、そのセクションインデックスは +.Sy SHN_ABS +であり、 +それはファイルの他の +.Sy STB_LOCAL +シンボルに先行します。 +.It Dv STT_LOPROC +この値から +.Sy STT_HIPROC +以下は、プロセッサに固有のセマンティクスのために予約されています。 +.It Dv STT_HIPROC +この値から +.Sy STT_LOPROC +以上は、プロセッサに固有のセマンティクスのために予約されています。 +.El +.Pp +.Bl -tag -width "STB_GLOBAL" -compact +.It Dv STB_LOCAL +ローカルなシンボルは、 +それらの定義を含んでいるオブジェクトファイルの外側には、見えません。 +同じ名前のローカルなシンボルは、 +お互いのじゃまをすることなく複数ファイルで存在し得ます。 +.It Dv STB_GLOBAL +グローバルシンボルは、結合されている全てのオブジェクトファイルから見えます。 +あるファイルによるグローバルシンボルの定義は、 +別ファイルの同じシンボルの未定義参照を満足させます。 +.It Dv STB_WEAK +弱いシンボルはグローバルシンボルに似ています。 +しかし、彼らの定義は低い優先順位を持ちます。 +.It Dv STB_LOPROC +この値から +.Sy STB_HIPROC +以下は、プロセッサに固有のセマンティクスのために予約されています。 +.It Dv STB_HIPROC +この値から +.Sy STB_LOPROC +以上は、プロセッサに固有のセマンティクスのために予約されています。 +.Pp +束縛とタイプフィールドのパックおよびアンパック用のマクロがあります: +.Bl -tag -width "ELF32_ST_INFO(bind, type)" -compact +.It Dv ELF32_ST_BIND(info) +または +.Sy ELF64_ST_BIND(info) +は、束縛を st_info 値から引出します。 +.It Dv ELF64_ST_TYPE(info) +または +.Sy ELF32_ST_TYPE(info) +は、タイプを st_info 値から引出します。 +.It Dv ELF32_ST_INFO(bind, type) +または +.Sy ELF64_ST_INFO(bind, type) +は、束縛とタイプを st_info 値へ変換します。 +.El +.El +.Pp +.It Dv st_other +このメンバは、現在 0 を持ち、定義された意味を持ちません。 +.It Dv st_shndx +あらゆるシンボルテーブルエントリは、 +なんらかの動作に関して +.Dq 定義されています 。 +このメンバは、関連するセクションヘッダテーブルインデックスを持ちます。 +.El +.Pp +再配置は、シンボル参照とシンボル定義を接続する処理です。 +再配置可能なファイルは、それらのセクション内容の +修正方法を記述する情報を持つ必要があります。 +このようにして、実行可能ファイルと共有オブジェクトファイルが、 +プロセスのプログラムイメージのための正しい情報を持てます。 +再配置エントリは、これらのデータです。 +.Pp +加数を必要としない再配置構造体: +.Pp +.Bd -literal -offset indent +typedef struct { + Elf32_Addr r_offset; + Elf32_Word r_info; +} Elf32_Rel; +.Ed +.Bd -literal -offset indent +typedef struct { + Elf64_Addr r_offset; + Elf64_Size r_info; +} Elf64_Rel; +.Ed +.Pp +加数を必要とする再配置構造体: +.Pp +.Bd -literal -offset indent +typedef struct { + Elf32_Addr r_offset; + Elf32_Word r_info; + Elf32_Sword r_addend; +} Elf32_Rela; +.Ed +.Bd -literal -offset indent +typedef struct { + Elf64_Addr r_offset; + Elf64_Size r_info; + Elf64_Off r_addend; +} Elf64_Rela; +.Ed +.Pp +.Bl -tag -width "r_offset" -compact +.It Dv r_offset +このメンバは、再配置動作を適用する場所を与えます。 +再配置可能なファイルでは、 +値は、再配置によって影響を受ける記憶単位の +セクション先頭からのバイトオフセットです。 +実行可能ファイルまたは共用オブジェクトでは、 +値は、再配置によって影響を受ける記憶単位の仮想アドレスです。 +.It Dv r_info +このメンバは、 +再配置されるシンボルテーブルインデックスと、 +使用する再配置のタイプを与えます。 +再配置タイプは、プロセッサ依存です。 +テキストが再配置エントリの再配置タイプまたは +シンボルテーブルインデックスを参照するとき、 +エントリの +.Sy r_info +メンバに対し、それぞれ +.Sy ELF_[32|64]_R_TYPE +または +.Sy ELF[32|64]_R_SYM +を適用する結果を意味しています。 +.It Dv r_addend +このメンバは、定数の加数を指定します。 +これは、再配置可能なフィールドに +格納される値を計算するために使用されます。 +.El +.Sh 関連項目 +.Xr as 1 , +.Xr gdb 1 , +.Xr ld 1 , +.Xr objdump 1 , +.Xr execve 2 , +.Xr core 5 +.Rs +.%A Hewlett Packard +.%B Elf-64 Object File Format +.Re +.Rs +.%A Santa Cruz Operation +.%B System V Application Binary Interface +.Re +.Rs +.%A Unix System Laboratories +.%T Object Files +.%B "Executable and Linking Format (ELF)" +.Re +.Sh 歴史 +ELF ヘッダファイルは、 +.Fx 2.2.6 +で登場しました。 +ELF 自身は、最初に +.At V +で登場しました。 +ELF フォーマットは、採用された規格です。 +.Sh 作者 +このマニュアルページは、BSDi の BSD/OS +.Xr elf 5 +のマニュアルページに触発されて、 +.An Jeroen Ruigrok van der Werven +.Aq asmodai@wxs.nl +が書きました。 diff --git a/ja_JP.eucJP/man/man5/rc.conf.5 b/ja_JP.eucJP/man/man5/rc.conf.5 index 6f2050f71b..1abe4423ac 100644 --- a/ja_JP.eucJP/man/man5/rc.conf.5 +++ b/ja_JP.eucJP/man/man5/rc.conf.5 @@ -1,1208 +1,1232 @@ .\" Copyright (c) 1995 .\" Jordan K. Hubbard .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" %FreeBSD: src/share/man/man5/rc.conf.5,v 1.27.2.21 1999/11/23 10:32:45 jkoshy Exp % +.\" %FreeBSD: src/share/man/man5/rc.conf.5,v 1.27.2.22 1999/11/28 16:04:59 brian Exp % .\" .\" jpman %Id: rc.conf.5,v 1.3 1998/06/26 09:39:58 jsakai Stab % .\" .Dd April 26, 1997 .Dt RC.CONF 5 .Os FreeBSD 2.2.2 .Sh 名称 .Nm rc.conf .Nd システム設定情報 .Sh 解説 .Nm rc.conf ファイルはローカルホスト名、全ての潜在的なネットワークインタフェースに 関する設定の詳細、システムの初期起動時に立ち上げるべき サービスに関する記述可能な情報を含んできます。初めてインストールする際に は、一般に .Nm rc.conf ファイルはシステムインストールユーティリティ .Pa /stand/sysinstall によって初期化されます。 .Pp .Nm rc.conf の目的は、 コマンドの実行やシステム起動操作を直接行うことではありません。 それに代わり、 そこに見出される設定にしたがって内部操作を条件付きで制御する .Pa /etc 下のいろいろな類の起動スクリプトの一部をなしています。 .Pp .Pa /etc/rc.conf ファイルは、 使用可能な全オプションのデフォルト設定を指定するファイル .Pa /etc/defaults/rc.conf からインクルードされます。 オプションを .Pa /etc/rc.conf に指定する必要があるのは、 システム管理者がこれらのデフォルトを上書きしたい場合だけです。 ファイル .Pa /etc/rc.conf.local は、 .Pa /etc/rc.conf の設定を上書きするために使用されます。これは歴史的事情のためです。 後述の .Dq rc_conf_files を参照してください。 .Pp 以下に示すのは .Nm ファイル中で設定可能な各変数について、 その名前と簡単な解説をリストしたものです。 .Bl -tag -width Ar .It Ar swapfile (文字列) .Ar NO にセットすると スワップファイルはインストールされません。 .Ar NO 以外の場合、その値は追加スワップ領域のために利用するファイルの 完全パス名として用いられます。 .It Ar apm_enable (ブール値) .Ar YES にセットすると .Xr apm 8 コマンドでの自動電源管理 (Automatic Power Management) のサポートを有効に します。 .It Ar apmd_enable (ブール値) .Xr apmd 8 を実行し、ユーザランドから APM イベントを扱います。 APM サポートも有効にします。 .It Ar apmd_flags (文字列) .Ar apmd_enable が .Ar YES の場合、これらは .Xr apmd 8 デーモンに渡すフラグになります。 .It Ar pccard_enable (ブール値) .Ar YES にセットすると起動時に PCCARD のサポートを有効にします。 .It Ar pccard_mem (文字列) PCCARD コントローラメモリアドレスをセットします。 .Ar DEFAULT とするとデフォルト値になります。 .It Ar pccard_ifconfig (文字列) ブート時またはカード挿入時に .Xr ifconfig 8 に渡される引数のリストです (例えば、 固定アドレスの場合は "inet 192.168.1.1 netmask 255.255.255.0" などですし、 DHCP クライアントの場合は "DHCP" です)。 .It Ar pccard_conf (文字列) .Xr pccardd 8 デーモンの設定ファイルのパスです (例えば .Ar /etc/pccard.conf.sample です)。 .It Ar pccardd_flags (文字列) .Ar pccard_enable が .Ar YES の場合、これらは .Xr pccardd 8 デーモンに渡すフラグになります。 .It Ar local_startup (文字列) 起動スクリプトファイルを検索するためのディレクトリのリストです。 .It Ar local_periodic (文字列) 定期的に実行するスクリプトを検索するディレクトリのリストです。 .It Ar hostname (文字列) ネットワーク上でのあなたのホストの完全な形のドメイン名 (The Fully Qualified Domain Name) です。あなたがネットワークに接続されていない 場合でも、この変数は確実に何か意味のあるものに設定すべきです。 ホスト名を DHCP を介して設定するために .Xr dhclient 8 を使用している場合、この変数は空文字列に設定すべきです。 .It Ar nisdomainname (文字列) あなたのホストの NIS ドメイン名。NIS が動いてないときは .Ar NO とします。 .It Ar dhcp_program (文字列) DHCP クライアントプログラムのパスです (ISC DHCP クライアントの /sbin/dhclient がデフォルトです)。 .It Ar dhcp_flags (文字列) DHCP クライアントプログラムに渡す追加のフラグです。 .It Ar firewall_enable (ブール値) 起動時にロードされるファイアウォール規則を持ちたくないときには .Ar NO 、持ちたいときには .Ar YES をセットします。 .Ar YES にセットし、かつカーネルが IPFIREWALL 付きで作られなかった場合、 ipfw カーネルモジュールがロードされます。 .It Ar firewall_type (文字列) .Pa /etc/rc.firewall 中で選択されたファイアウォールのタイプまたはローカルファイアウォール規則 の組を含むファイルを名付けます。 .Pa /etc/rc.firewall 中では以下のものが選択可能です: .Dq open - 無制限の IP アクセス; .Dq closed - lo0 経由を除く全ての IP サービスを禁止; .Dq client - ワークステーション向けの基本的な保護; .Dq simple - LAN 向けの基本的な保護。 ファイル名が指定される場合には完全なパス名でなければなりません。 .It Ar firewall_quiet (ブール値) .Ar YES にセットすると起動時にコンソール上で ipfw 規則の表示を行ないません。 .It Ar natd_program (文字列) .Xr natd 8 のパス。 .It Ar natd_enable (ブール値) .Ar YES にセットすると natd を有効にします。 .Ar firewall_enable もまた .Ar YES にセットされ、 .Xr divert 4 ソケットがカーネルで有効にされている必要があります。 .It Ar natd_interface natd が実行されるパブリックインタフェースの名前です。 .Ar natd_enable が .Ar YES にセットされている場合には、これを設定する必要があります。 インタフェースの指定は、インタフェース名でも IP アドレスでもかまいません。 .It Ar natd_flags 追加の natd フラグはここに記述する必要があります。 .Fl n または .Fl a のフラグは上記 .Ar natd_interface とともに自動的に引数として追加されます。 .It Ar tcp_extensions (ブール値) デフォルトでは .Ar NO です。YES にセットすると、 .%T RFC 1323 で述べられているような ある TCP オプションを有効にします。 もしネットワークコネクションが不規則にハングアップしたり、 それに類する他の不具合がある場合には、これを .Ar NO に戻して様子をみてみるのもよいかもしれません。世間に出回っている ハードウェア/ソフトウェアの中には、これらのオプションでうまく動作しない ものがあることが知られています。 .It Ar log_in_vain (ブール値) デフォルトで .Ar NO にセットされています。 YES に設定すると、 listen 中のソケットが無いポートに対する接続の試みをログするようになります。 .It Ar tcp_keepalive (ブール値) デフォルトで .Ar YES にセットされています。 NO にセットすると、 アイドルな TCP 接続を検出し、相手がまだ起きていて、到達可能であることを、 確認しなくなります。 .It Ar tcp_drop_synfin (ブール値) デフォルトで .Ar NO にセットされています。 YES にセットすると、 TCP フレームで SYN と FIN のフラグを共にセットされているものを、 カーネルが無視するようになります。 これにより、OS が指紋を残すのを防ぎますが、 正当なアプリケーションが動作しなくなるかもしれません。 RCP_DROP_SYNFIN オプション付きでカーネルを構築した場合のみ、 本オプションが使用可能です、 .It Ar tcp_restrict_rst (ブール値) デフォルトで .Ar NO にセットされています。 YES にセットすると、 不正な TCP パケット (例えば、閉じられたポート宛のフレーム) に応答する TCP RST フレームの送出を、 カーネルに止めさせます。 RCP_RESTRICT_RST オプション付きでカーネルを構築した場合のみ、 本オプションが使用可能です、 .It Ar icmp_drop_redirect (ブール値) デフォルトで .Ar NO にセットされています。 YES にセットすると、 ICMP REDIRECT パケットを、カーネルが無視するようになります。 .It Ar icmp_log_redirect (ブール値) デフォルトで .Ar NO にセットされています。 YES にセットすると、 ICMP REDIRECT パケットを、カーネルが記録するようになります。 ログメッセージの速度制限はありませんので、 あなたのネットワーク内の問題解決にのみ使用すべきです。 .It Ar network_interfaces (文字列) このホスト上で形成されるネットワークインタフェースのリストを 設定します。 たとえば、ループバックデバイス (標準) および SMC Elite Ultra NIC があるなら .Qq Ar "lo0 ed0" という 2 つのインタフェースを設定します。 .Em interface の各値に対して .No ifconfig_ Ns Em interface という変数が存在すると仮定されます。 1 つのインタフェースに複数の IP アドレスを登録したい場合は、 ここに IP エイリアスのエントリを追加することも可能です。 対象とするインタフェースが ed0 であると仮定すると、 .Bd -literal ifconfig_ed0_alias0="inet 127.0.0.253 netmask 0xffffffff" ifconfig_ed0_alias1="inet 127.0.0.254 netmask 0xffffffff" .Ed というようになります。 見つかった各 ifconfig__alias エントリについて、 その内容が .Xr ifconfig 8 に渡されます。最初にアクセスに失敗した時点で実行は中止されるので .Bd -literal ifconfig_ed0_alias0="inet 127.0.0.251 netmask 0xffffffff" ifconfig_ed0_alias1="inet 127.0.0.252 netmask 0xffffffff" ifconfig_ed0_alias2="inet 127.0.0.253 netmask 0xffffffff" ifconfig_ed0_alias4="inet 127.0.0.254 netmask 0xffffffff" .Ed のようにすると、alias4 は追加され\fB ない\fR ことに注意してください。これは alias3 エントリを抜かしたことで検索が中止されるからです。 .It Ar ppp_enable (ブール値) .Ar YES にセットすると、 .Xr ppp 8 デーモンを実行します。 .It Ar ppp_mode (文字列) .Xr ppp 8 デーモンを実行するモードです。受け付けられるモードは .Ar auto , ddial , direct , .Ar dedicated のいずれかです。 完全な解説はマニュアルを参照してください。 .It Ar ppp_nat (ブール値) .Ar YES にセットすると、パケットエイリアスを有効にします。 .Ar gateway_enable と共に使用することにより、 本ホストをネットワークアドレス変換ルータとして使用して、 プライベートネットワークアドレスのホストからの インターネットへのアクセスを可能にします。 .It Ar ppp_profile (文字列) .Ar /etc/ppp/ppp.conf から使用するプロファイル名です。 .It Ar rc_conf_files (文字列) 本オプションは、 .Pa /etc/defaults/rc.conf の設定を上書きするファイルのリストを指定するために使用されます。 ファイルは指定された順序に読み込まれ、 ファイルへの完全なパスを含む必要があります。 デフォルトでは、指定されるファイルは .Pa /etc/rc.conf と .Pa /etc/rc.conf.local です。 .It Ar syslogd_enable (ブール値) .Ar YES にセットすると .Xr syslogd 8 デーモンを起動します。 .It Ar syslogd_flags (文字列) .Ar syslogd_enable が .Ar YES の場合、これらは .Xr syslogd 8 に渡すフラグになります。 .It Ar inetd_enable (ブール値) .Ar YES にセットすると .Xr inetd 8 デーモンを起動します。 .It Ar inetd_flags (文字列) .Ar inetd_enable が .Ar YES の場合、これらは .Xr inetd 8 へ渡すフラグとなります。 .It Ar named_enable (ブール値) .Ar YES にセットすると .Xr named 8 デーモンを起動します。 .It Ar named_program (文字列) .Xr named 8 のパス (デフォルトは .Pa /usr/sbin/named です)。 .It Ar named_flags (文字列) .Ar named_enable が .Ar YES の場合、これらは .Xr named 8 に渡すフラグとなります。 .It Ar kerberos_server_enable (ブール値) ブート時に Kerberos 認証サーバを起動したい場合は .Ar YES にセットします。 .It Ar kadmind_server_enable .Xr kadmind 8 (Kerberos 管理デーモン) を実行したい場合は .Ar YES とします。スレーブサーバ上では .Ar NO にセットします。 .It Ar kerberos_stash (文字列) .Ar YES なら (唯一 .Ar kerberos_server_enable が .Ar YES にセットされ、かつ .Xr kerberos 1 および .Xr kadmind 8 の両方を用いるときにのみ) 隠されたマスタキーのプロンプト入力を行なう代りに、 そのキーを用いるよう Kerberos サーバに指示します。 .It Ar rwhod_enable (ブール値) .Ar YES にセットするとブート時に .Xr rwhod 8 デーモンを起動します。 .It Ar rwhod_flags (文字列) .Ar rwhod_enable が .Ar YES にセットされている場合、これらは rwhod に渡すフラグになります。 .It Ar amd_enable (ブール値) .Ar YES にセットするとブート時に .Xr amd 8 デーモンを起動します。 .It Ar amd_flags (文字列) .Ar amd_enable が .Ar YES にセットされている場合、これらは amd に渡すフラグとなります。 詳しくは\fBinfo amd\fR コマンドを利用してください。 .It Ar update_motd (ブール値) .Ar YES にセットするとブート時に実行されているカーネルリリースを反映するように .Pa /etc/motd を更新します。 .Ar NO にセットすると .Pa /etc/motd は更新を行いません。 .It Ar nfs_client_enable (ブール値) .Ar YES にセットするとブート時に NFS クライアントデーモンを起動します。 .It Ar nfs_client_flags (文字列) .Ar nfs_client_enable が .Ar YES の場合、これらは .Xr nfsiod 8 デーモンに渡すフラグとなります。 .It Ar nfs_access_cache .Ar nfs_client_enable が .Ar YES の場合、この変数に .Ar 0 をセットして NFS ACCESS RPC キャッシングを無効化することができますし、 NFS ACCESS 結果がキャッシュされる秒数を指定することもできます。 2-10 秒の値を設定すると、 多くの NFS 操作のネットワークトラフィックを十分減らします。 .It Ar nfs_server_enable (ブール値) .Ar YES にセットするとブート時に NFS サーバデーモンを起動します。 .It Ar nfs_server_flags (文字列) .Ar nfs_server_enable が .Ar YES の場合、これらは .Xr nfsd 8 デーモンに渡すフラグとなります。 .It Ar weak_mountd_authentication (ブール値) .Ar YES にセットすると、権限付けられていないマウント要求を行なうために \fBPCNFSD\fR のようなサービスを許可します。 .It Ar nfs_reserved_port_only (ブール値) .Ar YES にセットすると、安全なポート上でのみ NFS サービスを提供します。 .It Ar rcp_lockd_enable (ブール値) この変数が .Ar YES にセットされ、しかも NFS サーバである場合、ブート時に .Xr rpc.lockd 8 を起動します。 .It Ar rcp_statd_enable (ブール値) この変数が .Ar YES にセットされ、しかも NFS サーバである場合、ブート時に .Xr rpc.statd 8 を起動します。 .It Ar portmap_program (文字列) .Xr portmap 8 のパス (デフォルトは .Pa /usr/sbin/portmap です)。 .It Ar portmap_enable (ブール値) .Ar YES の場合、ブート時に .Xr portmap 8 サービスを起動します。 .It Ar portmap_flags (文字列) .Ar portmap_enable が .Ar YES の場合、これらは .Xr portmap 8 デーモンに渡すフラグとなります。 .It Ar xtend_enable (ブール値) .Ar YES にセットすると、ブート時に .Xr xtend 8 デーモンを起動します。 .It Ar xtend_flags (文字列) .Ar xtend_enable が .Ar YES の場合、これらは .Xr xtend 8 デーモンに渡すフラグとなります。 +.It Ar pppoed_enable +(ブール値) +.Ar YES +にセットすると、ブート時に +.Xr pppoed 8 +デーモンを起動し、PPP オーバイーサネットサービスを提供します。 +.It Ar pppoed_provider +.Xr pppoed 8 +はこの +.Ar provider +に対する要求を listen し、究極的にはこの名前を +.Ar system +引数として +.Xr ppp 8 +を実行します。 +.It Ar pppoed_flags +.Xr pppoed 8 +へ渡す追加のフラグ。 +.It Ar pppoed_interface +pppoed が実行されるネットワークインタフェース。 +.Ar pppoed_enable +が +.Dq YES +にセットされた場合、必須です。 .It Ar timed_enable (ブール値) .Ar YES なら、ブート時に .Xr timed 8 サービスを実行します。このコマンドは、全ホストについて一貫した .Qq "ネットワーク時間" が確立されなければならないマシンネットワークのためにあります。 これが有用である典型例は、 ファイルのタイムスタンプがネットワークワイドで一貫性をもつことが 期待されるような、大規模 NFS 環境です。 .It Ar timed_flags (文字列) .Ar timed_enable が .Ar YES の場合、これらは .Xr timed 8 サービスに渡すフラグとなります。 .It Ar ntpdate_enable (ブール値) .Ar YES にセットすると、システムスタートアップ時に ntpdate を実行します。 このコマンドは、ある標準的な参照先を元に、ただ .Ar 1 回 だけシステム時刻を同期させるためにあります。 また、システムを最初にインストールする際、 これを (知られているサービスのリストから) 最初にセットアップするオプションが .Pa /stand/sysinstall プログラムによって提供されます。 .It Ar ntpdate_program (文字列) .Xr ntpdate 8 のパス (デフォルトは .Pa /usr/sbin/ntpdate です)。 .It Ar ntpdate_flags (文字列) .Ar ntpdate_enable が .Ar YES の場合、これらは .Xr ntpdate 8 コマンドに渡すフラグとなります (典型的にはホスト名)。 .It Ar xntpd_enable (ブール値) .Ar YES にセットすると、ブート時に .Xr xntpd 8 コマンドが起動されます。 .It Ar xntpd_program (文字列) .Xr xntpd 8 のパス (デフォルトは .Pa /usr/sbin/xntpd です)。 .It Ar xntpd_flags (文字列) .Ar xntpd_enable が .Ar YES の場合、これらは .Xr xntpd 8 デーモンに渡すフラグとなります。 .It Ar nis_client_enable (ブール値) .Ar YES にセットすると、システムブート時に .Xr ypbind 8 サービスを起動します。 .It Ar nis_client_flags (文字列) .Ar nis_client_enable が .Ar YES の場合、これらは .Xr ypbind 8 サービスに渡すフラグとなります。 .It Ar nis_ypset_enable (ブール値) .Ar YES にセットすると、システムブート時に .Xr ypset 8 デーモンを起動します。 .It Ar nis_ypset_flags (文字列) .Ar nis_ypset_enable が .Ar YES の場合、これらは .Xr ypset 8 デーモンに渡すフラグとなります。 .It Ar nis_server_enable (ブール値) .Ar YES にセットすると、システムブート時に .Xr ypserv 8 デーモンを起動します。 .It Ar nis_server_flags (文字列) .Ar nis_server_enable が .Ar YES の場合、これらは .Xr ypserv 8 デーモンに渡すフラグとなります。 .It Ar nis_ypxfrd_enable (ブール値) .Ar YES にセットすると、システムブート時に .Xr ypxfrd 8 デーモンを起動します。 .It Ar nis_ypxfrd_flags (文字列) .Ar nis_ypxfrd_enable が .Ar YES の場合、これらは .Xr ypxfrd 8 デーモンに渡すフラグとなります。 .It Ar nis_yppasswdd_enable (ブール値) .Ar YES にセットすると、システムブート時に .Xr yppasswdd 8 デーモンを起動します。 .It Ar nis_yppasswdd_flags (文字列) .Ar nis_yppasswdd_enable が .Ar YES の場合、これらは .Xr yppasswdd 8 デーモンに渡すフラグとなります。 .It Ar defaultrouter (文字列) .Ar NO をセットしないと、このホスト名または IP アドレスへのデフォルトルートを 作成します (このルータがネームサーバへたどりつく必要がある 場合は IPアドレスを使用すること!)。 .It Ar static_routes (文字列) システムブート時に追加したいスタティックルートのリストを セットします。 .Ar NO 以外をセットした場合、その値を空白で区切った各要素について、 各 .Em element 毎に変数 .No route_ Ns em element が存在すると仮定され、その後、 .Dq route add 操作に渡されます。 .It Ar gateway_enable (ブール値) .Ar YES にセットすると、IP ルータとして動作する、 たとえばインタフェース間でパケットをフォワードするように ホストを設定します。 .It Ar router_enable (ブール値) .Ar YES にセットすると、 .Ar router および .Ar router_flags の設定に基づいて、ある種のルーティングデーモンを実行します。 .It Ar router (文字列) .Ar router_enable が .Ar YES にセットされると、これが使用するルーティングデーモン名になります。 .It Ar router_flags (文字列) .Ar router_enable が .Ar YES にセットされると、これらがルーティングデーモンへ渡すフラグとなります。 .It Ar mrouted_enable (ブール値) .Ar YES にセットすると、マルチキャストルーティングデーモン .Xr mrouted 8 を起動します。 .It Ar mrouted_flags (文字列) .Ar mrouted_enable が .Ar YES の場合、これらはマルチキャストルーティングデーモンへ渡すフラグとなります。 .It Ar ipxgateway_enable (ブール値) .Ar YES にセットすると、IPX トラフィックのルーティングを有効にします。 .It Ar ipxrouted_enable (ブール値) .Ar YES にセットすると、ブート時に .Xr IPXrouted 8 デーモンを起動します。 .It Ar ipxrouted_flags (文字列) .Ar ipxrouted_enable が .Ar YES の場合、これらは .Xr IPXrouted 8 デーモンへ渡すフラグとなります。 .It Ar arpproxy_all .Ar YES にセットするとグローバルプロキシ ARP を有効にします。 .It Ar forward_sourceroute これが .Ar YES にセットされ、更に .Ar gateway_enable もまた .Ar YES にセットされている場合、 送信元が経路指定したパケット (source routed packets) はフォワードされます。 .It Ar accept_sourceroute .Ar YES にセットすると、 システムは自分宛の送信元経路指定パケットを受け付けます。 .It Ar rarpd_enable (ブール値) .Ar YES にセットすると、システムブート時に .Xr rarpd 8 デーモンを起動します。 .It Ar rarpd_flags (文字列) .Ar rarpd_enable が .Ar YES の場合、これらは .Xr rarpd 8 デーモンへ渡すフラグとなります。 .It Ar atm_enable (ブール値) .Ar YES システムブート時に ATM インタフェースの設定を有効にします。 次に説明する ATM 関連の変数に関し、 利用可能なコマンドパラメータの更なる詳細については、 .Xr atm 8 のマニュアルページを参照してください。 更なる詳細な設定情報に関しては、 .Pa /usr/share/examples/atm 中のファイルも参照してください。 .It Ar atm_netif_ (文字列) ATM 物理インタフェース .Va に対し、本変数は、 作成すべき ATM ネットワークインタフェースの 名前プレフィックスと数字を指定します。 値はコマンド .Dq atm set netif Va のパラメータとして渡されます。 .It Ar atm_sigmgr_ (文字列) ATM 物理インタフェース .Va に対し、本変数は使用すべき ATM シグナリングマネージャを定義します。 値はコマンド .Dq atm attach Va のパラメータとして渡されます。 .It Ar atm_prefix_ (文字列) ATM 物理インタフェース .Va に対し、本変数は、 UNI シグナリングマネージャを使用するインタフェースの NSAP プレフィックスを定義します。 .Em ILMI に設定すると、プレフィックスは自動的に .Xr ilmid 8 デーモンを介して設定されます。 そうでない場合、値はコマンド .Dq atm set prefix Va のパラメータとして渡されます。 .It Ar atm_macaddr_ (文字列) ATM 物理インタフェース .Va に対し、本変数は、 UNI シグナリングマネージャを使用するインタフェースの MAC アドレスを定義します。 .Em NO に設定すると、ATM インタフェースカードに格納されている ハードウェア MAC アドレスが使用されます。 そうでない場合、値はコマンド .Dq atm set mac Va のパラメータとして渡されます。 .It Ar atm_arpserver_ (文字列) ATM 物理インタフェース .Va に対し、本変数は、ATMARP サービスを提供するホストの ATM アドレスを定義します。 本変数は、UNI シグナリングマネージャを使用するインタフェースにおいてのみ 利用可能です。 .Em local に設定すると、本ホストが ATMARP サーバになります。 値はコマンド .Dq atm set arpserver Va のパラメータとして渡されます。 .It Ar atm_scsparp_ (ブール値) .Em YES に設定すると、ネットワークインタフェース .Va に対する SCSP/ATMARP サービスが、 .Xr scspd 8 および .Xr atmarpd 8 を使用して開始されます。 本変数は .So .No atm_arpserver_ Ns Va .No Ns = Ns Qq local .Sc が定義されている場合にのみ利用可能です。 .It Ar atm_pvcs (文字列) システムブート時に追加したい ATM PVC のリストを設定します。 値中で空白で区切られた .Em element ごとに、変数 .No atm_pvc_ Ns Em element が存在するものと仮定されます。これらの変数の値がコマンド .Dq atm add pvc のパラメータとして渡されます。 .It Ar atm_arps (文字列) システムブート時に追加したい、 永続的な ATM ARP エントリのリストを設定します。 値中で空白で区切られた .Em element ごとに、変数 .No atm_arp_ Ns Em element が存在するものと仮定されます。これらの変数の値がコマンド .Dq atm add arp のパラメータとして渡されます。 .It Ar keymap (文字列) .Ar NO にセットするとキーマップはインストールされません。それ以外の場合、 ここで指定した .Ar value がキーマップファイル .Pa /usr/share/syscons/keymaps/.kbd をインストールするのに用いられます。 .It Ar keyrate (文字列) キーボードのリピートスピードです。以下のいずれかにセットします。 .Ar slow , .Ar normal , .Ar fast デフォルト値を希望する場合は .Ar NO とします。 .It Ar keychange (文字列) .Ar NO 以外にセットすると、その値でファンクションキーをプログラムしようとします。 指定できる値は単一の文字列で, .Qq Ar " [ ]..." という形式でないといけません。 .It Ar cursor (文字列) カーソルの動作を明示的に指定する場合は .Ar normal , .Ar blink , .Ar destructive のいずれかの値にセットします。デフォルト動作を選ぶには .Ar NO とします。 .It Ar scrnmap (文字列) .Ar NO にセットすると、スクリーンマップはインストールされません。 それ以外の場合には、ここで指定した .Ar value がスクリーンマップファイル .Pa /usr/share/syscons/scrnmaps/ をインストールするのに用いられます。 .It Ar font8x16 (文字列) .Ar NO にセットするとスクリーンサイズの要求に対しデフォルトの 8x16 フォント値が 用いられます。それ以外の場合は .Pa /usr/share/syscons/fonts/ の値が用いられます。 .It Ar font8x14 (文字列) .Ar NO にセットするとスクリーンサイズの要求に対しデフォルトの 8x14 フォント値が 用いられます。それ以外の場合は .Pa /usr/share/syscons/fonts/ の値が用いられます。 .It Ar font8x8 (文字列) .Ar NO にセットすると、スクリーンサイズの要求に対しデフォルトの 8x8 フォント値が 用いられます。それ以外の場合は .Pa /usr/share/syscons/fonts/ の値が用いられます。 .It Ar blanktime (整数) .Ar NO にセットすると、デフォルトのスクリーンブランク時間間隔が用いられます。 それ以外の場合は .Ar value 秒にセットされます。 .It Ar saver (文字列) .Ar NO 以外にセットすると、これが実際に使用する スクリーンセーバ (ブランク, 蛇, デーモンなど) となります。 .It Ar moused_enable (文字列) .Ar YES にセットすると、コンソール上でのカット/ペーストセレクション用に .Xr moused 8 デーモンが起動されます。 .It Ar moused_type (文字列) 利用したいマウスのプロトコルのタイプ。 .Ar moused_enable が .Ar YES の場合、この変数は必ず設定しなければなりません。 多くの場合、 .Xr moused 8 デーモンは適切なマウスタイプを自動的に検出することができます。 デーモンにマウスを検出させるには、この変数を .Ar auto にセットします。 自動検出が失敗する場合、以下のリストから 1 つを選びます。 .Pp マウスが PS/2 マウスポートに接続されている場合、 .Ar auto か .Ar ps/2 を常に指定する必要があります。マウスのブランドやモデルには無関係です。 同様に、マウスがバスマウスポートに接続されている場合、 .Ar auto か .Ar busmouse を選択してください。 他のプロトコルはシリアルマウス用であり、 PS/2 マウスおよびバスマウスでは動作しません。 .Bd -literal microsoft Microsoft マウス (シリアル) intellimouse Microsoft IntelliMouse (シリアル) mousesystems Mouse system 社製のマウス (シリアル) mmseries MM シリーズのマウス (シリアル) logitech Logitech 製のマウス (シリアル) busmouse バスマウス mouseman Logitech の MouseMan および TrackMan (シリアル) glidepoint ALPS 製の GlidePoint (シリアル) thinkingmouse Kensignton 製の ThinkingMouse (シリアル) ps/2 PS/2 マウス mmhittab MM の HitTablet (シリアル) x10mouseremote X10 MouseRemote (シリアル) versapad Interlink VersaPad (シリアル) .Ed お使いのマウスが上記のリストにない場合でも、 リスト中のいずれかと互換性があるかも知れません。 互換性に関する情報については .Xr moused 8 のマニュアルページを参照してください。 .Pp また、 この変数が有効であるときは、(Xサーバのような) 他の全てのマウスクライアントは 仮想マウスデバイス .Pa /dev/sysmouse を通してマウスにアクセスし、 それを sysmouse タイプのマウスとして構成すべきであると いうことにも注意すべきです。これは、 .Xr moused 8 使用時は、全てのマウスデータがこの単一の標準フォーマットに変換されるためです。 クライアントプログラムが sysmouse タイプを サポートしないなら次に望ましいタイプとして mousesystems を指定してください。 .It Ar moused_port (文字列) .Ar moused_enable が .Ar YES の場合、これはマウスが接続されている実際のポートになります。 たとえば、COM1 シリアルマウスに対しては .Pa /dev/cuaa0 、PS/2 マウスに対しては .Pa /dev/psm0 、バスマウスに対しては .Pa /dev/mse0 となります。 .It Ar moused_flags (文字列) .Ar moused_type がセットされている場合、これらは .Xr moused 8 デーモンに渡す追加のフラグとなります。 .It Ar cron_enable (ブール値) .Ar YES にセットすると、システムブート時に .Xr cron 8 デーモンを起動します。 .It Ar lpd_program (文字列) .Xr lpd 8 のパス (デフォルトは .Pa /usr/sbin/lpd です)。 .It Ar lpd_enable (ブール値) .Ar YES にセットすると、システムブート時に .Xr lpd 8 デーモンを起動します。 .It Ar lpd_flags (文字列) .Ar lpd_enable が .Ar YES の場合、これらは .Xr lpd 8 デーモンに渡すフラグとなります。 .It Ar sendmail_enable (ブール値) .Ar YES にセットすると、システムブート時に .Xr sendmail 8 デーモンを起動します。 .It Ar sendmail_flags (文字列) .Ar sendmail_enable が .Ar YES の場合、これらは .Xr sendmail 8 デーモンに渡すフラグとなります。 .It Ar dumpdev (文字列) .Ar NO にセットしないと、カーネルクラッシュダンプ出力先を .Em value で指定したスワップデバイスに向けます。 システム再開時に、 .Xr savecore 8 プログラムは、指定したデバイスからクラッシュダンプを探し、典型的には .Pa /var/crash ディレクトリに格納します。 .It Ar check_quotas (ブール値) .Xr quotacheck 8 コマンドによってユーザディスクのクォータチェックを有効にしたいなら、 .Ar YES にセットします。 .It Ar accounting_enable (ブール値) .Xr accton 8 ファシリティでシステムアカウンティングを有効にしたいなら .Ar YES にセットします。 .It Ar ibcs2_enable (ブール値) システム初期ブート時に iBCS2 (SCO) バイナリエミュレーションを有効にしたいなら .Ar YES にセットします。 .It Ar linux_enable (ブール値) システムブート時に Linux/ELF バイナリエミュレーションを有効にしたいなら .Ar YES にセットします。 .It Ar rand_irqs (文字列) 乱数生成用に監視する IRQ のリストをセットします ( .Xr rndcontrol 8 のマニュアル参照)。 .It Ar clear_tmp_enable (ブール値) 起動時に .Pa /tmp 下を消去したいなら .Ar YES をセットします。 .It Ar ldconfig_paths (文字列) .Xr ldconfig 8 で使用する共有ライブラリのパスのリストをセットします。注意: .Pa /usr/lib は常に先頭に追加されるので、このリストに指定する必要はありません。 .It Ar kern_securelevel_enable (ブール値) カーネルのセキュリティレベルをシステムスタートアップ時に設定したい場合に、 .Ar YES にセットします。 .It Ar kern_securelevel (整数) スタートアップ時にセットされるカーネルセキュリティレベルです。 .Ar 値 として許される範囲は -1 (コンパイル時のデフォルト) から 3 (最も安全) です。 利用可能なセキュリティレベルとシステム操作への影響については、 .Xr init 8 を参照してください。 .It Ar start_vinum (ブール値) システムブート時に .Xr vinum 8 を開始したい場合、 .Ar YES にセットします。 .Sh 関連ファイル .Bl -tag -width /etc/defaults/rc.conf -compact .It Pa /etc/defaults/rc.conf .El .Pp .Bl -tag -width /etc/rc.conf -compact .It Pa /etc/rc.conf .El .Pp .Bl -tag -width /etc/rc.conf.local -compact .It Pa /etc/rc.conf.local .El .Sh 関連項目 .Xr gdb 1 , .Xr info 1 , .Xr exports 5 , .Xr motd 5 , .Xr accton 8 , .Xr amd 8 , .Xr apm 8 , .Xr atm 8 , .Xr cron 8 , .Xr gated 8 , .Xr ifconfig 8 , .Xr inetd 8 , .Xr lpd 8 , .Xr moused 8 , .Xr mrouted 8 , .Xr named 8 , .Xr nfsd 8 , .Xr nfsiod 8 , .Xr ntpdate 8 , .Xr periodic 8 , .Xr pcnfsd 8 , .Xr portmap 8 , .Xr quotacheck 8 , .Xr rc 8 , .Xr rndcontrol 8 , .Xr route 8 , .Xr routed 8 , .Xr rpc.lockd 8 , .Xr rpc.statd 8 , .Xr rwhod 8 , .Xr savecore 8 , .Xr sendmail 8 , .Xr sysctl 8 , .Xr syslogd 8 , .Xr swapon 8 , .Xr tickadj 8 , .Xr timed 8 , .Xr vinum 8 , .Xr vnconfig 8 , .Xr xntpd 8 , .Xr xtend 8 , .Xr ypbind 8 , .Xr ypserv 8 , .Xr ypset 8 .Sh 歴史 .Nm ファイルは .Fx 2.2.2 で登場しました。 .Sh 作者 .An Jordan K. Hubbard . diff --git a/ja_JP.eucJP/man/man8/Makefile b/ja_JP.eucJP/man/man8/Makefile index ebd02de748..3db9634417 100644 --- a/ja_JP.eucJP/man/man8/Makefile +++ b/ja_JP.eucJP/man/man8/Makefile @@ -1,289 +1,291 @@ MAN8 = IPXrouted.8\ MAKEDEV.8\ ac.8\ accton.8\ adding_user.8\ adduser.8\ adjkerntz.8\ amd.8\ amq.8\ apm.8\ apmconf.8\ apmd.8\ arp.8\ atm.8\ atmarpd.8\ atrun.8\ bad144.8\ badsect.8\ boot_i386.8\ boot0cfg.8\ bootparamd.8\ bootpd.8\ bootpef.8\ bootptest.8\ btxld.8\ camcontrol.8\ ccdconfig.8\ chat.8\ chkgrp.8\ chkprintcap.8\ chown.8\ chroot.8\ clri.8\ comcontrol.8\ comsat.8\ config.8\ crash.8\ cron.8\ cvsbug.8\ dev_mkdb.8\ dhclient-script.8\ dhclient.8\ disklabel.8\ diskless.8\ diskpart.8\ dm.8\ dmesg.8\ dump.8\ dumpfs.8\ dumpon.8\ edquota.8\ fdcontrol.8\ fdisk.8\ fingerd.8\ fixmount.8\ fore_dnld.8\ fsck.8\ fsdb.8\ fsinfo.8\ fsirand.8\ ft.8\ ftpd.8\ getty.8\ hlfsd.8\ ibcs2.8\ ifconfig.8\ ilmid.8\ inetd.8\ init.8\ intro.8\ iostat.8\ ipfstat.8\ ipfw.8\ ipmon.8\ isdnd.8\ isdndebug.8\ isdndecode.8\ isdnmonitor.8\ isdntel.8\ isdntelctl.8\ isdntrace.8\ ispcvt.8\ joy.8\ kernbb.8\ keyadmin.8\ keyserv.8\ kget.8\ kgmon.8\ kgzip.8\ kldload.8\ kldstat.8\ kldunload.8\ kvm_mkdb.8\ kzip.8\ ldconfig.8\ linux.8\ loader.4th.8\ loader.8\ locate.updatedb.8\ lpc.8\ lpd.8\ lptcontrol.8\ mail.local.8\ mailstats.8\ makekey.8\ makemap.8\ makewhatis.local.8\ manctl.8\ map-mbone.8\ + memcontrol.8\ + mergemaster.8\ mixer.8\ mk-amd-map.8\ mknetid.8\ mknod.8\ modload.8\ modstat.8\ modunload.8\ mount.8\ mount_cd9660.8\ mount_ext2fs.8\ mount_msdos.8\ mount_nfs.8\ mount_ntfs.8\ mount_null.8\ mount_portal.8\ mount_std.8\ mount_umap.8\ mount_union.8\ mountd.8\ moused.8\ mrinfo.8\ mrouted.8\ mtest.8\ mtrace.8\ mtree.8\ named-xfer.8\ named.8\ named.reload.8\ named.restart.8\ natd.8\ ndc.8\ newfs.8\ newfs_msdos.8\ newkey.8\ newsyslog.8\ nextboot.8\ nfsd.8\ nfsiod.8\ nologin.8\ nslookup.8\ nos-tun.8\ ntpdate.8\ ntpq.8\ ntptrace.8\ pac.8\ pam.8\ pam_radius.8\ pccardc.8\ pccardd.8\ pciconf.8\ periodic.8\ ping.8\ pnpinfo.8\ portmap.8\ ppp.8\ pppctl.8\ pppd.8\ pppstats.8\ praliases.8\ procctl.8\ pstat.8\ pw.8\ pwd_mkdb.8\ quot.8\ quotacheck.8\ quotaon.8\ rarpd.8\ rbootd.8\ rc.8\ reboot.8\ renice.8\ repquota.8\ restore.8\ revnetgroup.8\ rexecd.8\ rlogind.8\ rmail.8\ rmt.8\ rmuser.8\ rndcontrol.8\ route.8\ routed.8\ rpc.lockd.8\ rpc.rquotad.8\ rpc.rstatd.8\ rpc.rusersd.8\ rpc.rwalld.8\ rpc.sprayd.8\ rpc.statd.8\ rpc.yppasswdd.8\ rpc.ypxfrd.8\ rpcinfo.8\ rshd.8\ rstat_svc.8\ rtquery.8\ rwhod.8\ sa.8\ savecore.8\ scspd.8\ sendmail.8\ showmount.8\ shutdown.8\ sicontrol.8\ slattach.8\ sliplogin.8\ slstat.8\ smrsh.8\ spkrtest.8\ spppcontrol.8\ spray.8\ sticky.8\ stlload.8\ stlstats.8\ strfile.8\ swapon.8\ sync.8\ sysctl.8\ syslogd.8\ talkd.8\ telnetd.8\ tcpdchk.8\ tcpdmatch.8\ tftpd.8\ timed.8\ timedc.8\ traceroute.8\ trpt.8\ tunefs.8\ tzsetup.8\ umount.8\ usbd.8\ usbdevs.8\ uuchk.8\ uucico.8\ uucpd.8\ uusched.8\ uuxqt.8\ vinum.8\ vipw.8\ vmstat.8\ vnconfig.8\ watch.8\ wicontrol.8\ wire-test.8\ wlconfig.8\ wormcontrol.8\ xntpd.8\ xntpdc.8\ xtend.8\ yp_mkdb.8\ ypbind.8\ ypinit.8\ yppoll.8\ yppush.8\ ypserv.8\ ypset.8\ ypxfr.8\ zdump.8\ zic.8 MLINKS+= strfile.8 unstr.8 MLINKS+= makewhatis.local.8 catman.local.8 MLINKS+= bootpd.8 bootpgw.8 MLINKS+=dump.8 rdump.8 MLINKS+= mount_std.8 mount_devfs.8 mount_std.8 mount_fdesc.8 \ mount_std.8 mount_kernfs.8 mount_std.8 mount_procfs.8 MLINKS+= newfs.8 mount_mfs.8 newfs.8 mfs.8 newfs.8 tmpfs.8 MLINKS+= reboot.8 halt.8 reboot.8 fastboot.8 reboot.8 fasthalt.8 MLINKS+= boot_i386.8 boot.8 MLINKS+=restore.8 rrestore.8 MLINKS+= slattach.8 slip.8 MLINKS+= locate.updatedb.8 updatedb.8 MLINKS+= apm.8 zzz.8 MLINKS+= pstat.8 swapinfo.8 MLINKS+= quotaon.8 quotaoff.8 MLINKS+= vnconfig.8 swapfile.8 MLINKS+= inetd.8 inetd.conf.5 MLINKS+= pam.8 pam.conf.5 pam.8 pam.d.5 .include "bsd.prog.mk" diff --git a/ja_JP.eucJP/man/man8/init.8 b/ja_JP.eucJP/man/man8/init.8 index 29b850e00e..33f89029ac 100644 --- a/ja_JP.eucJP/man/man8/init.8 +++ b/ja_JP.eucJP/man/man8/init.8 @@ -1,368 +1,367 @@ .\" Copyright (c) 1980, 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" This code is derived from software contributed to Berkeley by .\" Donn Seeley at Berkeley Software Design, Inc. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)init.8 8.3 (Berkeley) 4/18/94 -.\" %FreeBSD: src/sbin/init/init.8,v 1.13.2.4 1999/08/29 15:13:43 peter Exp % +.\" %FreeBSD: src/sbin/init/init.8,v 1.13.2.5 1999/12/04 14:20:51 kato Exp % .\" .\" jpman %Id: init.8,v 1.2 1997/05/27 08:12:44 yugawa Stab % .\" .Dd April 18, 1994 .Dt INIT 8 .Os BSD 4 .Sh 名称 .Nm init .Nd プロセス制御の初期化を行う .Sh 書式 .Nm init .Oo .Cm 0 | 1 | 6 | .Cm c | q .Oc .Sh 解説 .Nm はブート処理の最後に起動されます。 .Nm は通常、 .Xr rc 8 で説明されている自動リブートシーケンスを実行します。それが成功すると、 システムはマルチユーザモードになります。 リブートスクリプトの実行に失敗すると、 .Nm はスーパユーザが使うシェルを起動してシングルユーザモードを 開始させます。 .Nm プログラムは、ブートプログラムからのパラメータの指示を受けて、 マルチユーザモードに移行せず、 一般のデーモンを起動することなくシングルユーザモードの シェルを起動させることができます。 その場合、システムはメンテナンスのためのモードになり、 シェルを抜ける (^D を入力する) ことで シングルユーザモードからマルチユーザモードになります。 これによって、 .Nm は .Pa /etc/rc をファストブートモード (ディスクチェック省略) で実行します。 .Pp もし .Xr ttys 5 ファイルの .Em console のエントリが .Dq insecure にマークされていた場合には、 .Nm はシングルユーザモードのシェルを起動する前に、スーパユーザのパスワードを 要求します。 パスワードチェックは、 .Em console が .Dq secure にマークされていればスキップされます。 .Pp カーネルは 4 種類のセキュリティレベルで走行します。どのスーパユーザ プロセスもセキュリティレベルを上げることができますが、レベルを下げることが -できるのは -.Nm -だけです。セキュリティレベルは以下のように定義されます: +できるプロセスはありません。 +セキュリティレベルは以下のように定義されます: .Bl -tag -width flag .It Ic -1 常に危険なモード \- システムは常にレベル 0 モードで走行します。 これは初期値のデフォルトです。 .It Ic 0 危険なモード \- 変更不可 (immutable) フラグや追加のみ (append-only) フラグは 無効にされます。 全てのデバイスは、そのパーミッションに従って読み書きされます。 .It Ic 1 安全なモード \- 変更不可フラグや追加のみのフラグは変更されません。 マウントされたファイルシステムのディスクおよび .Pa /dev/mem や .Pa /dev/kmem は read-only となります。 .It Ic 2 安全度の高いモード \- レベル 1 のモードの効果に加え、ディスクは マウントさていようといまいと、( .Xr mount 2 を除き) 常に read-only となります。 このレベルは、ファイルシステムをアンマウントして変更を加えることを不可能に します。また、システムがマルチユーザで走行中に .Xr newfs 8 を実行することも出来なくなります。 .It Ic 3 ネットワークの安全モード \- 安全度の高いモードに加え、 IP パケットフィルタルール ( .Xr ipfw 8 および .Xr ipfirewall 4 参照) を変更不可能とし、 .Xr dummynet 4 の設定を修正不可能とします。 .El .Pp 初期のセキュリティレベルが -1 だった場合、 .Nm はセキュリティレベルを変更しません。 それ以外の場合、シングルユーザモードではレベル 0 で、マルチユーザモードでは レベル 1 で、システムは動作します。マルチユーザモードにおいてレベル 2 で システムを走らせたい場合は、シングルユーザの状態の間に、つまり、 .Pa /etc/rc の中で .Xr sysctl 8 を使って、変数 .Dq kern.securelevel に必要なセキュリティレベルの値を設定します。 .Pp マルチユーザモードの場合、 .Nm は .Xr ttys 5 ファイルで指示された端末ポートのためのプロセスを管理します。 .Nm はこのファイルを読み込み、2 番目のフィールドに指示されたコマンドを 実行します。 そのコマンドは通常、 .Xr getty 8 で、 .Nm getty はtty をオープン、初期化し、 .Xr login 1 プログラムを実行します。 .Nm login プログラムは、ユーザがログインするとシェルを起動します。ユーザが ログアウトするか異常終了するなどして、そのシェルが終了すると、 .Nm プログラムが起こされ、 .Xr utmp 5 ファイルからユーザを消し、 .Xr wtmp 5 ファイルにログアウトを記録します。 このサイクルは、 .Nm プログラムがその端末に新しい .Nm getty を実行することで繰り返されます。 .Pp ラインの状態 (on, off, secure, getty, ウィンドウの情報) は、 .Xr ttys 5 ファイルを書き換えて .Dq Li "kill -HUP 1" によってシグナル .Dv SIGHUP を .Nm に送ることで、リブートせずに変更できます。 このシグナルを受け取ると .Nm は .Xr ttys 5 ファイルを再度読み込みます。 .Xr ttys 5 でラインがオフにされると、 .Nm はそのラインに関係するセッションの制御プロセスに SIGHUP シグナルを送ります。 オフであったラインが .Xr ttys 5 ファイルでオンにされると、 .Nm は新しい .Nm getty を起動して、新しいログインを可能にします。 ラインの getty やウィンドウフィールドが変更された場合、その変更は現在 のログインセッションが終了するまで有効にはなりません。 (例えば、 .Nm によって新しいプロセスが起動されるまで有効にならない。) .Xr ttys 5 中のあるラインをコメントアウトあるいは削除した場合は、 .Nm はそのラインに関しては何も実行しません。 しかしこの場合、 .Xr ttys 5 ファイルと .Xr utmp 5 ファイル内の記録情報が一致しなくなるため、試すことはお勧めしません。 .Pp .Dq Li "kill \-TERM 1" などによって terminate シグナル .Pq Dv TERM を受けると、 .Nm はマルチユーザモードを終了し、シングルユーザモードに復帰します。 ハードウェアまたはソフトウェアの問題でデッドロックしたプロセスがある場合、 .Xr init はすべてのプロセスの終了を待たず (これは無限に終らないかも知れません)、 30 秒間でタイムアウトして警告のメッセージを出力します。 .Pp terminal stop シグナル .Pq Dv TSTP を送ると ( .Dq Li "kill \-TSTP 1" )、 .Nm は新しい .Xr getty を起動するのをやめ、徐々にシステム停止可能な状態にします。 その後、hangup シグナルで完全なマルチユーザモードに戻り、terminate シグナル でシングルユーザモードに移ります。 この hook は .Xr reboot 8 と .Xr halt 8 で使われています。 .Pp interrupt シグナル .Pq Dv INT を送ると ( .Dq Li "kill \-INT 1" )、 .Nm はすべてのプロセスを (デッドロックプロセスを待たずに) 終了させ、 リブートを実行します。 この操作は、マシンがハングした時に、カーネルの中から、あるいは、X から、 システムを安全にシャットダウンするのに便利です。 .Pp .Nm は同じことを行いますが、ユーザ定義シグナル 1 .Pq Dv USR1 を送られた場合はマシンを停止し、 ユーザ定義シグナル 2 .Pq Dv USR2 を送られた場合はマシンを停止してから電源を切ります (ハードウェアが許す場合)。 .Pp マシンをシャットダウンする時、 .Nm は .Pa /etc/rc.shutdown スクリプトを実行しようとします。 このスクリプトは .Nm innd (インターネットニュースサーバ) のような特定のプログラムを綺麗に終了させるために使用可能です。 .Pp .Nm の役割は非常に重要で、もし .Nm が死ぬとシステムが自動的にリブートされます。 もしブート時に .Nm プログラムを見つけられなければ、システムは .Dq panic: init died (signal %d, exit %d) のようなメッセージを出力して panic で終了します。 .Pp 2 番目の書式行のようにユーザプロセスとして実行する場合、 .Nm は .At V の動作をエミュレートします。すなわち、スーパユーザがコマンドラインで .Em ランレベル を指定可能であり、 .Nm はオリジナルの .Pq PID 1 .Nm に次のようなシグナルを送ります: .Bl -column Run-level SIGTERM .It Sy ランレベル シグナル 動作 .It Cm 0 Ta Dv SIGUSR2 Ta "停止して電源切断" .It Cm 1 Ta Dv SIGTERM Ta "シングルユーザモードへ移行" .It Cm 6 Ta Dv SIGINT Ta "マシンを再起動" .It Cm c Ta Dv SIGTSTP Ta "更なるログインを抑止" .It Cm q Ta Dv SIGHUP Ta ファイル .Xr ttys 5 を再スキャン .El .Sh 診断 .Bl -diag .It "getty repeating too quickly on port %s, sleeping" ラインにサービスを提供するプロセスが、起動されるたびにすぐ終了してしまう。 これは、端末ラインに着信があるかノイズが大きい場合にしばしば起こります。 .Em "init は 30 秒間スリープし、" .Em "その後、プロセスを開始させようとし続けます。" .Pp .It "some processes would not die; ps axl advised." シャットダウンの際、ハングしていて終了させられないプロセスがあります。 この状態は、通常、デバイスに異常があるときにデバイスドライバで貼り付い てしまうことにより起こります。 .El .Sh 関連ファイル .Bl -tag -width /etc/rc.shutdown -compact .It Pa /dev/console システムのコンソールデバイス .It Pa /dev/tty* .Xr ttys 5 内にある端末ポート .It Pa /var/run/utmp 現在ログインしているのユーザの情報 .It Pa /var/log/wtmp すべてのログイン・ログアウトの情報 .It Pa /etc/ttys 端末の初期化情報が書かれたファイル .It Pa /etc/rc システム立ち上げ用スクリプト .It Pa /etc/rc.shutdown システムシャットダウン用スクリプト .El .Sh 関連項目 .Xr kill 1 , .Xr login 1 , .Xr sh 1 , .Xr dummynet 4 , .Xr ipfirewall 4 , .Xr ttys 5 , .Xr crash 8 , .Xr getty 8 , .Xr halt 8 , .Xr ipfw 8 , .Xr rc 8 , .Xr reboot 8 , .Xr shutdown 8 , .Xr sysctl 8 .Sh 歴史 .Nm コマンドは .At v6 から登場しました。 .Sh 注意 .Xr sysctl を持たないシステムは、セキュリティレベル \-1 で動作します。 .Pp ブートシーケンスにおいて、セキュリティレベルを 1 より高く設定するのがあまり にも早すぎると、 .Xr fsck 8 が一貫性のないファイルシステムを補修することを妨げてしまう可能性が あります。セキュリティレベル設定を行う場所として適切なところは、 全てのマルチユーザ立ち上げ処理が完了した後である、 .Pa /etc/rc の末尾です。 diff --git a/ja_JP.eucJP/man/man8/memcontrol.8 b/ja_JP.eucJP/man/man8/memcontrol.8 new file mode 100644 index 0000000000..ae5e80a869 --- /dev/null +++ b/ja_JP.eucJP/man/man8/memcontrol.8 @@ -0,0 +1,116 @@ +.\" Copyright (c) 1999 Chris Costello +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" %FreeBSD: src/usr.sbin/memcontrol/memcontrol.8,v 1.2.2.1 1999/11/03 05:47:13 chris Exp % +.\" +.\" jpman %Id: memcontrol.8,v 1.3 1999/12/05 08:25:43 horikawa Stab % +.Dd September 28, 1999 +.Dt MEMCONTROL 8 +.Os FreeBSD +.Sh 名称 +.Nm memcontrol +.Nd "メモリに応じたシステムキャッシュの挙動の制御" +.Sh 書式 +.Nm +.Ar list +.Op Fl a +.Pp +.Nm +.Ar set +.Fl b Ar base +.Fl l Ar length +.Fl o Ar owner +.Ar attribute +.Pp +.Nm +.Ar clear +.Fl o Ar owner +.Pp +.Nm +.Ar clear +.Fl b Ar base +.Fl l Ar length +.Sh 解説 +サポートしている多くのシステムアーキテクチャは、 +書き込まれるメモリ領域に応じて異なる振舞いをするように、 +CPU キャッシュをプログラム可能です。 +.Pp +.Nm memcontrol +はこの機構に対するインタフェースを提供し、 +システムの物理メモリの範囲ごとに、 +CPU キャッシュの挙動を変更可能とします。 +.Pp +この範囲というのは、普通は大きさも境界も 2 のべき乗になっていますが、 +その配置を決めるルールはアーキテクチャによって様々です。 +.Nm memcontrol +プログラムはこのルールを強要しようとはしませんが、 +間違った組合せを設定しようとすればシステムが拒絶するでしょう。 +.Bl -tag -width clear +.It Ar list +メモリ範囲を一覧します。 +.Bl -tag -width xxxxxx +.It Op Fl a +たとえ無効であっても、全てのメモリ範囲を一覧します +.El +.It Ar set +メモリ範囲の属性を設定します。 +.Bl -tag -width xxxxxx +.It Fl b Ar base +メモリ範囲の開始アドレス +.It Fl l Ar length +メモリ範囲のバイト単位の長さ (2 のべき乗で) +.It Fl o Ar owner +この設定を示す owner 識別テキスト (最大 7 文字) +.\" owner は原文にはない +.It Ar attribute +このメモリ範囲に適用する属性。 +.Ar uncacheable +.Ar write-combine +.Ar write-through +.Ar write-back +.Ar write-protect +の内の 1 つ +.El +.It Ar clear +メモリ範囲の属性を消去します。 +owner を指定するか、開始アドレス/長さの組合せを指定して消去します。 +.Pp +owner に基づいて消去する場合: +.Bl -tag -width xxxxxx +.It Fl o Ar owner +この owner に所属する全てのメモリ範囲を消去 +.El +.Pp +開始アドレス/長さの組によって消去する場合: +.Bl -tag -width xxxxxx +.It Fl b Ar base +メモリ範囲の開始アドレス +.It Fl l Ar length +メモリ範囲のバイト単位の長さ (2 のべき乗で) +.El +.Pp +開始アドレスと長さは今あるメモリ範囲と正確に合致しなければなりません。 +.El +.Sh 関連項目 +.Xr mem 4 diff --git a/ja_JP.eucJP/man/man8/mergemaster.8 b/ja_JP.eucJP/man/man8/mergemaster.8 new file mode 100644 index 0000000000..ca8c761a21 --- /dev/null +++ b/ja_JP.eucJP/man/man8/mergemaster.8 @@ -0,0 +1,285 @@ +.\" Copyright (c) 1998, 1999 Douglas Barton +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" %FreeBSD: src/usr.sbin/mergemaster/mergemaster.8,v 1.4.2.1 1999/11/03 20:58:47 billf Exp % +.\" +.\" jpman %Id: mergemaster.8,v 1.3 1999/12/05 08:25:49 horikawa Stab % +.Dd September 10, 1999 +.Dt MERGEMASTER 8 +.Os FreeBSD +.Sh 名称 +.Nm mergemaster +.Nd アップグレード中の設定ファイルその他のマージ +.Sh 書式 +.Nm +.Op Fl scrvah +.Op Fl m Ar /path/to/sources +.Op Fl t Ar /path/to/temp/root +.Op Fl d +.Op Fl u Ar N +.Op Fl w Ar N +.Sh 解説 +.Nm +は、様々な設定や FreeBSD に関連したファイルをアップデートする作業を +補助するために作られた Bourne シェルスクリプトです。 +この作業を始める前に +.Pa /etc +ディレクトリをバックアップしておくことを +.Sy 強く +勧めます。 +.Pp +このスクリプトは +.Pa /usr/src/etc/Makefile +を使って +.Pa / +から下の仮のルート環境を作成し、そこに様々なファイルを格納します。 +.Op Fl m +コマンドラインオプションで、違うソースディレクトリを指定することもできます。 +そしてその環境中のそれぞれのファイルを、 +インストールされているものと比較します。 +スクリプトが新しいファイルに変更点を見つけた場合や、 +新しいファイルに対応するインストールされているファイルがない場合には、 +それを処理するための 4 つの選択肢を示します。 +新しいファイルをそのままインストールする、 +新しいファイルは消す、 +新旧のファイルを +.Xr sdiff 1 +を使って適切にマージする、 +後で手でマージするためにファイルを仮のルート環境に残しておく、 +のいずれかを選べます。 +.Pp +デフォルトでは、 +.Pa /var/tmp/temproot +に仮のルートを作り、 +.Xr cvs 1 +バージョン文字列 %Id/%FreeBSD があるファイルについてはそれを比較して、 +もし同じであれば仮のファイルを削除します。 +$Id 文字列がない時や、あっても一致しない場合には、 +ファイルそのものを比較します。 +$Id 文字列を無視して全てのファイルを比較するように指定することもできます。 +.Pp +.Nm +は umask を調べて、022 以外であれば警告を出します。 +ほとんどの設定ファイルは world read パーミッションを与えることが +強制されているわけではありませんが、 +そうしないと問題になるかもしれません。 +もし 022 以外 の umask を選び、あとで何らかのトラブルが生じた場合、 +その原因がこれかもしれません。 +.Pa /etc/master.passwd +は特例として扱います。 +このファイルないしマージしたファイルをインストールすることを選択すると、 +このファイルのパーミッションはセキュリティ上の理由から +常に 600 (rw-------) になります。 +このファイルのアップデート版をインストールした後は、 +.Xr pwd_mkdb 8 +を -p オプション付きで実行して、 +パスワードデータベースの再構築と +.Pa /etc/passwd +の作り直しをさせる必要があります。 +.Pp +スクリプトは、 +.Pa /usr/src/etc/Makefile +が作成したファイルに付けた所有者 ID およびグループ ID と、 +umask によって指定されたファイルパーミッションを用います。 +context diff を選ばない限り、 +デフォルトで unified diff を使って差分を表示します。 +.Pp +オプションは以下の通りです: +.Bl -tag -width Fl +.It Fl s +全てのファイルの対について diff をとり、厳密な比較をします。 +.It Fl c +unified diff の代わりに context diff を用います。 +.It Fl r +仮のルート環境を新規に作ることをせずに、 +以前掃除したディレクトリで再実行します。 +このオプションは他の全てのオプションと一緒に使えます。 +.It Fl v +処理についてより冗長に出力します。 +あなたが初めて +.Nm mergemaster +を実行する時には、おそらくこのオプションを付けるべきでしょう。 +さらにこのオプションは、 +インストールされている方の +.Pa /etc +にしかないファイルの一覧を提供します。 +.It Fl a +自動実行。 +このオプションはインストールされているものと食い違う全てのファイルを、 +手で処理するために仮のディレクトリに残しておきます。 +もしすでに +.Pa temproot +ディレクトリがある場合には、 +以前はなかったディレクトリに新しく作ります。 +このオプションは冗長フラグを解除しますが、 +他の全てのオプションと一緒に使えます。 +-a オプションを使うと、-w オプションは無意味になります。 +.It Fl h +使用法とヘルプ情報を表示します。 +.It Fl m Ar /path/to/sources +.Xr make 1 +を実行するディレクトリのパスを指定します。 +(言い替えるとソースの場所です。-s がもう使われているので) +.It Fl t Ar /path/to/temp/root +仮のルート環境をデフォルトの +.Pa /var/tmp/temproot +の代わりに +.Pa /path/to/temp/root +に作ります。 +.It Fl d +仮のルートディレクトリの名前に、日付と時間を足します。 +-t オプションを指定しているときに日付も足したいなら、 +このオプションは -t の後に置く必要があります。 +.It Fl u Ar N +umask を数字で指定します。デフォルトは 022 です。 +.It Fl w Ar N +.Xr sdiff 1 +コマンドに画面幅を桁数で指定します。 +デフォルトは 80 です。 +.El +.Sh 環境変数 +.Nm +スクリプトは、 +.Ev PAGER +環境変数がセットされていればそれを使い、さもなくば +.Xr more 1 +を使います。 +もし +.Ev PAGER +に、フルパスではなく、 +.Ev PATH +の範囲にないプログラムを指定している場合には、 +.Nm +は選択肢とともにどう続行するのかを催促します。 +.Sh 使用例 +大抵の場合、あなたがする必要があるのは、 +プロンプトで +.Nm +と打つことだけで、あとはスクリプトがあなたに代わって全ての作業をします。 +.Pp +context diff を使い、かつ +.Nm +が処理が進むにつれ、よりたくさんの説明をするようにするには: +.Pp +.Dl # mergemaster -cv +.Pp +.Nm +が仮のルート環境を +.Pa /usr/tmp/root +に作るように指定するには: +.Pp +.Dl # mergemaster -t /usr/tmp/root +.Pp +110 桁の画面と、厳密な比較を指定するには: +.Pp +.Dl # mergemaster -sw 110 +.Sh 関連ファイル +.Bl -tag -width $HOME/.mergemasterrc -compact +.Pa $HOME/.mergemasterrc +.Pp +.Nm +はこのファイルがあれば読み込みます。 +コマンドラインオプションは rc ファイルオプションを上書きします。 +全ての値をコメントアウトした例を示します: +.Pp +.Bd -literal +# mergemaster のオプションが、デフォルト値とともに一覧してあります +# 以下のオプションはコマンドラインが上書きします +# +# 仮のルート環境をインストールするディレクトリ +#TEMPROOT='/var/tmp/temproot' +# +# CVS $Id の検査を省略して全てのファイルを比較する厳密な比較 +#STRICT=no +# +# ファイルが食い違った時に差分を表示するための diff に使うフラグ +#DIFF_FLAG='-u' +# +# より詳細な出力とチェックの追加を含める冗長モード +#VERBOSE= +# +# 'make' を実行するディレクトリ (新しいファイルがある場所) +#SOURCEDIR=/usr/src/etc +# +# mergemaster がデフォルトのファイルモードとの比較に使う umask +#NEW_UMASK=022 +# +# 以下のオプションはコマンドラインから上書きできません +# PAGER にフルパスを含めたくない人用 +#DONT_CHECK_PAGER= +# 上を 'yes' にしたら、ページャへの PATH が含まれているか確認してください +#PATH=/bin:/usr/bin:/usr/sbin +# 新旧の motd ファイルを比較しない +#IGNORE_MOTD=yes +.Ed +.Sh 関連項目 +.Xr cvs 1 , +.Xr diff 1 , +.Xr make 1 , +.Xr more 1 , +.Xr sdiff 1 , +.Xr pwd_mkdb 8 +.Pp +.Pa /usr/src/etc/Makefile +.Pp +http://www.FreeBSD.org/tutorials/, +.Pa Upgrading FreeBSD from source (using make world) , +by Nik Clayton +.Pp +(訳注: 日本語版は +http://kerberos.math.sci.kobe-u.ac.jp/~maekawa/FreeBSD/mw.html, +.Pa やってみようよ ``make world'' , +by MAEKAWA Masahide) +.Sh 診断 +成功終了、ないしユーザが実行中に手動で脱出した場合には、 +終了ステータスは 0 です。 +.Pp +以下に挙げるいずれかの理由で失敗した場合には、終了ステータスは 1 です: +.Pp +コマンドラインオプションが不正 +.Pp +仮のルート環境を作成するのに失敗 +.Pp +仮のルートにファイルを格納するのに失敗 +.Pp +.Sh 歴史 +.Nm +スクリプトは、 +1998 年 3 月 13 日に +私のウェブページの中で +もっと単純な形で +.Pa comproot +という名前で最初に公開されました。 +仮のルート環境を作るというアイデアは、 +上で参照した Nik Clayton の make world tutorial から来ています。 +.Pp +.Sh 作者 +このマニュアルページとスクリプトは +.An Douglas Barton Aq Doug@gorean.org +が書きました。 +.Sh バグ +今のところわかっているバグはありません。 +なにか問題や、コメントや、提案があれば、どうか作者まで報告してください。 +このプログラムになされた改良のいくつかは +ユーザからの提案によるものです。ありがとう。 diff --git a/ja_JP.eucJP/man/man8/vnconfig.8 b/ja_JP.eucJP/man/man8/vnconfig.8 index ed4c540721..901f556847 100644 --- a/ja_JP.eucJP/man/man8/vnconfig.8 +++ b/ja_JP.eucJP/man/man8/vnconfig.8 @@ -1,208 +1,208 @@ .\" Copyright (c) 1993 University of Utah. .\" Copyright (c) 1980, 1989, 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" This code is derived from software contributed to Berkeley by .\" the Systems Programming Group of the University of Utah Computer .\" Science Department. .\" .\" 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. .\" .\" @(#)vnconfig.8 8.1 (Berkeley) 6/5/93 .\" .\" Original Revision: 1.6 .\" jpman %Id: vnconfig.8,v 1.2 1997/05/03 13:45:51 horikawa Stab % .\" .Dd July 8, 1993 .Dt VNCONFIG 8 .Os BSD 4 .Sh 名称 .Nm vnconfig .Nd vnode ディスクを構築して利用できるようにする .Sh 書式 .Nm vnconfig .Op Fl cdeguv .Op Fl s Ar option .Op Fl r Ar option .Ar special_file Ar regular_file .Oo Ar feature Oc .Nm vnconfig .Fl a .Op Fl cdeguv .Op Fl s Ar option .Op Fl r Ar option .Op Fl f Ar config_file .Sh 解説 .Nm コマンドは、vnode 疑似ディスクデバイスを構築して使用可能にします。 コマンドの最初の書式では、特殊ファイル .Ar special_file を通常ファイル .Ar regular_file に結びつけ、 後で通常ファイルをディスクであるかのようにアクセスできるようにします。 これによりファイルシステム中の通常ファイルを、 スワップや、名前空間にマウントされるファイルシステムと出来ます。 .Pp オプションは動作を指定します: .Bl -tag -width indent .It Fl a コマンドファイルを読み込み、 各デバイス/ファイルの組に対して指定された動作を実行します。 .It Fl c デバイスを構築します。 成功すると、 .Ar special_file への参照は、 .Ar regular_file の内容へのアクセスとなります。 .It Fl d 指定した .Ar feature を (可能であれば) 無効にします。 .It Fl e デバイスを構築し、指定された .Ar feature を有効にします。 .Ar feature が指定されないと、 .Fl e は .Fl c と同じ意味になります。 .It Fl f Ar config_file .Ar config_file を設定ファイルの代りに使用します。 .It Fl g global オプションを制御します。 .It Fl r Ar flag .Ar flag をリセットします。 利用可能なフラグと意味は以下の通りです: .Bl -tag -width "follow" .It Ar labels -ディスク/スライスラベルを使用する。 +ディスク/スライスラベルを使用します。 .It Ar follow .Xr vn 4 -ドライバのフローをデバッグする。 +ドライバのフローをデバッグします。 .It Ar debug .Xr vn 4 -ドライバのデータをデバッグする。 +ドライバのデータをデバッグします。 .It Ar io .Xr vn 4 -ドライバの I/O をデバッグする。 +ドライバの I/O をデバッグします。 .It Ar all -すべてのフラグをオンにする。 +すべてのフラグをオンにします。 .It Ar none -すべてのフラグをオフにする。 +すべてのフラグをオフにします。 .El .It Fl s Ar flag .Ar flag をセットします。 利用可能なフラグと意味は .Fl r と同じです。 .It Fl u デバイスを無効にし、``無構築状態'' にします。 .It Fl v 実行される動作の内容を標準出力に表示します。 .El .Pp 動作を指定するオプションがない場合には、 .Fl c が指定されたものと見なします。 .Pp .Ar feature 引数は、 .Fl e によって有効になる機能を指定します。 .Bl -tag -width indent .It Dv swap 特殊ファイル上でのスワップを有効にします。 .Xr swapon 2 を参照してください。 .It Dv Pf mountro= Pa mount_point 特殊ファイルは、 .Ar mount_point へ読み込み専用マウントされます。 .Xr mount 2 を参照してください。 .It Dv Pf mountrw= Pa mount_point 特殊ファイルは、 .Ar mount_point へ読み書き可能マウントされます。 .Xr mount 2 を参照してください。 .It Dv Pf mount= Pa mount_point ``mountrw='' と同じです。 .El .Pp 設定ファイルは、1 行にデバイスとファイル名の組を次の形式で持ちます: .Bd -literal special_file regular_file [ feature ] .Ed .Pp ここでは各フィールドはスペースで分割されます。 設定ファイル中のすべてのデバイスの動作に関して、 前述の動作オプションが有効です。 .Sh 関連ファイル .Bl -tag -width /etc/vntab -compact .It Pa /etc/vntab .Fl a オプションで使われるデフォルトの設定ファイル .El .Sh 使用例 .Pp .Dl vnconfig /dev/vn0c /tmp/diskimage .Pp vnode ディスクデバイス .Pa vn0c を構築します。 .Pp .Dl vnconfig -e /dev/vn0c /var/swapfile swap .Pp vnode ディスクデバイス .Pa vn0c を構築し、それをスワップ領域として使うようにします。 .Pp .Dl vnconfig -d /dev/vn0c myfilesystem mount=/mnt .Pp vnode ディスクデバイス .Pa vn0c のマウントを解除します(また無構築状態にします)。 .Pp .Dl vnconfig -ae .Pp .Pa /etc/vntab に記述されているすべてのデバイスを構築して使用可能にします。 .Sh 関連項目 .Xr mount 2 , .Xr swapon 2 , .Xr unmount 2 , .Xr vn 4 .