diff --git a/ja_JP.eucJP/man/man1/Makefile b/ja_JP.eucJP/man/man1/Makefile index 4c0c99f49c..1b7aaa62ba 100644 --- a/ja_JP.eucJP/man/man1/Makefile +++ b/ja_JP.eucJP/man/man1/Makefile @@ -1,488 +1,489 @@ # $FreeBSD$ MAN1 = a2p.1\ addftinfo.1\ addr2line.1\ afmtodit.1\ apply.1\ apropos.1\ ar.1\ as.1\ at.1\ basename.1\ bc.1\ bdes.1\ biff.1\ brandelf.1\ builtin.1\ bzip2.1\ c89.1\ calendar.1\ cap_mkdb.1\ cat.1\ catman.1\ cccp.1\ cdcontrol.1\ checknr.1\ chflags.1\ chgrp.1\ chio.1\ chkey.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\ 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\ dnskeygen.1\ dnsquery.1\ domainname.1\ doscmd.1\ dtmfdecode.1\ du.1\ echo.1\ ed.1\ ee.1\ enigma.1\ eqn.1\ expand.1\ expr.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\ from.1\ fstat.1\ fsync.1\ ftp.1\ g711conv.1\ gasp.1\ gawk.1\ gcc.1\ gcore.1\ gdb.1\ gdbserver.1\ gencat.1\ getNAME.1\ getopt.1\ gperf.1\ gprof.1\ grep.1\ grn.1\ grodvi.1\ groff.1\ grog.1\ grolbp.1\ grolj4.1\ grops.1\ grotty.1\ groups.1\ gzexe.1\ gzip.1\ h2ph.1\ head.1\ hexdump.1\ host.1\ hostname.1\ hpftodit.1\ id.1\ ident.1\ indent.1\ indxbib.1\ info.1\ install-info.1\ install.1\ intro.1\ ipcrm.1\ ipcs.1\ ipftest.1\ ipresend.1\ ipsend.1\ iptest.1\ join.1\ jot.1\ kbdcontrol.1\ kbdmap.1\ kcon.1\ kdump.1\ kenv.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\ less.1\ lesskey.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\ makeinfo.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\ mptable.1\ msgs.1\ mt.1\ mv.1\ ncal.1\ ncplist.1\ ncplogin.1\ ncplogout.1\ neqn.1\ netstat.1\ newaliases.1\ nfsstat.1\ nice.1\ nl.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_sign.1\ pkg_update.1\ pkg_version.1\ pr.1\ printenv.1\ printf.1\ ps.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\ readelf.1\ realpath.1\ refer.1\ rev.1\ rlog.1\ rlogin.1\ rm.1\ rmdir.1\ rpcgen.1\ rs.1\ rsh.1\ rtld.1\ rtprio.1\ rup.1\ ruptime.1\ rusers.1\ rwall.1\ rwho.1\ s2p.1\ sasc.1\ scon.1\ scp.1\ script.1\ sdiff.1\ sed.1\ send-pr.1\ sftp.1\ sgsc.1\ sh.1\ shar.1\ size.1\ skey.1\ sleep.1\ smbutil.1\ sockstat.1\ soelim.1\ sort.1\ split.1\ ssh-add.1\ ssh-agent.1\ ssh-keygen.1\ ssh-keyscan.1\ ssh.1\ startslip.1\ strings.1\ strip.1\ stty.1\ su.1\ symorder.1\ systat.1\ tail.1\ talk.1\ tar.1\ tbl.1\ tcopy.1\ tcpdump.1\ tcpslice.1\ tcsh.1\ tee.1\ telnet.1\ test.1\ texindex.1\ tfmtodit.1\ tftp.1\ time.1\ tip.1\ top.1\ touch.1\ tput.1\ tr.1\ troff.1\ true.1\ truncate.1\ truss.1\ tset.1\ tsort.1\ tty.1\ ul.1\ uname.1\ unifdef.1\ uniq.1\ units.1\ unvis.1\ uptime.1\ usbhidctl.1\ users.1\ uuconv.1\ uucp.1\ uuencode.1\ uulog.1\ uuname.1\ uupick.1\ uustat.1\ uuto.1\ uux.1\ vacation.1\ vgrind.1\ vi.1\ vidcontrol.1\ vis.1\ vt220keys.1\ vttest.1\ w.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= builtin.1 alias.1 builtin.1 alloc.1 builtin.1 bg.1 builtin.1 bindkey.1 \ builtin.1 break.1 builtin.1 breaksw.1 builtin.1 builtins.1 \ builtin.1 case.1 builtin.1 cd.1 builtin.1 chdir.1 builtin.1 command.1 \ builtin.1 complete.1 \ builtin.1 continue.1 builtin.1 default.1 \ builtin.1 dirs.1 builtin.1 do.1 builtin.1 done.1 \ builtin.1 echotc.1 builtin.1 elif.1 builtin.1 else.1 \ builtin.1 end.1 builtin.1 endif.1 builtin.1 endsw.1 \ builtin.1 esac.1 builtin.1 eval.1 builtin.1 exec.1 \ builtin.1 exit.1 builtin.1 export.1 builtin.1 fc.1 \ builtin.1 fg.1 builtin.1 fi.1 builtin.1 filetest.1 builtin.1 for.1 \ builtin.1 foreach.1 builtin.1 getopts.1 builtin.1 glob.1 \ builtin.1 goto.1 builtin.1 hash.1 builtin.1 hashstat.1 \ builtin.1 history.1 builtin.1 hup.1 builtin.1 if.1 builtin.1 jobid.1 \ builtin.1 jobs.1 builtin.1 limit.1 builtin.1 log.1 builtin.1 logout.1 \ builtin.1 ls-F.1 \ builtin.1 notify.1 builtin.1 onintr.1 builtin.1 popd.1 \ builtin.1 pushd.1 builtin.1 read.1 builtin.1 readonly.1 \ builtin.1 rehash.1 \ builtin.1 repeat.1 builtin.1 sched.1 builtin.1 set.1 \ builtin.1 setenv.1 builtin.1 settc.1 builtin.1 setty.1 \ builtin.1 setvar.1 builtin.1 shift.1 builtin.1 source.1 \ builtin.1 stop.1 builtin.1 suspend.1 builtin.1 switch.1 \ builtin.1 telltc.1 builtin.1 then.1 builtin.1 trap.1 builtin.1 type.1 \ builtin.1 ulimit.1 builtin.1 umask.1 builtin.1 unalias.1 \ builtin.1 uncomplete.1 \ builtin.1 unhash.1 builtin.1 unlimit.1 builtin.1 unset.1 \ builtin.1 unsetenv.1 builtin.1 until.1 builtin.1 wait.1 \ builtin.1 where.1 \ builtin.1 while.1 MLINKS+=ed.1 red.1 MLINKS+=test.1 '[.1' MLINKS+=gawk.1 awk.1 MLINKS+=gcc.1 cc.1 MLINKS+=gcc.1 c++.1 MLINKS+=gcc.1 g++.1 MLINKS+=gcc.1 CC.1 MLINKS+=cccp.1 cpp.1 MLINKS+=grep.1 egrep.1 MLINKS+=grep.1 fgrep.1 MLINKS+=grep.1 zgrep.1 MLINKS+=grep.1 zegrep.1 MLINKS+=grep.1 zfgrep.1 MLINKS+=gzip.1 gunzip.1 MLINKS+=gzip.1 zcat.1 MLINKS+=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 MLINKS+=at.1 atq.1 MLINKS+=at.1 atrm.1 MLINKS+=basename.1 dirname.1 MLINKS+=chpass.1 chfn.1 MLINKS+=chpass.1 chsh.1 MLINKS+=chpass.1 ypchpass.1 MLINKS+=chpass.1 ypchfn.1 MLINKS+=chpass.1 ypchsh.1 MLINKS+=compress.1 uncompress.1 MLINKS+=ee.1 ree.1 MLINKS+=expand.1 unexpand.1 MLINKS+=ftp.1 pftp.1 MLINKS+=ftp.1 gate-ftp.1 MLINKS+=hexdump.1 hd.1 MLINKS+=intro.1 introduction.1 MLINKS+=less.1 more.1 MLINKS+=lex.1 flex.1 MLINKS+=lex.1 flex++.1 MLINKS+=lex.1 lex++.1 MLINKS+=mail.1 Mail.1 MLINKS+=mail.1 mailx.1 MLINKS+=passwd.1 yppasswd.1 MLINKS+=printenv.1 env.1 MLINKS+=rtld.1 ld-elf.so.1.1 MLINKS+=tput.1 clear.1 MLINKS+=tset.1 reset.1 MLINKS+=vi.1 ex.1 MLINKS+=vi.1 view.1 MLINKS+=vi.1 nex.1 MLINKS+=vi.1 nview.1 MLINKS+=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 MLINKS+=ln.1 link.1 MLINKS+=rm.1 unlink.1 MLINKS+=opiekey.1 otp-md4.1 MLINKS+=opiekey.1 otp-md5.1 +MLINKS+=opiekey.1 otp-sha.1 MLINKS+=tcsh.1 csh.1 MLINKS+=ee.1 edit.1 MLINKS+=pkg_sign.1 pkg_check.1 MLINKS+=ssh.1 slogin.1 MLINKS+=bzip2.1 bunzip2.1 MLINKS+=bzip2.1 bzcat.1 MLINKS+=unifdef.1 unifdefall.1 .include "bsd.prog.mk" diff --git a/ja_JP.eucJP/man/man1/apply.1 b/ja_JP.eucJP/man/man1/apply.1 index 33c0c98b6e..326f940485 100644 --- a/ja_JP.eucJP/man/man1/apply.1 +++ b/ja_JP.eucJP/man/man1/apply.1 @@ -1,144 +1,144 @@ .\" Copyright (c) 1983, 1990, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)apply.1 8.2 (Berkeley) 4/4/94 -.\" %FreeBSD: src/usr.bin/apply/apply.1,v 1.8.2.3 2001/08/16 13:16:40 ru Exp % -.\" $FreeBSD: doc/ja_JP.eucJP/man/man1/apply.1,v 1.9 2001/07/29 05:14:49 horikawa Exp $ +.\" %FreeBSD: src/usr.bin/apply/apply.1,v 1.8.2.4 2002/07/15 04:07:25 keramida Exp % +.\" $FreeBSD$ .\" .Dd April 4, 1994 .Dt APPLY 1 .Os .Sh 名称 .Nm apply .Nd 引数の集合にコマンドを適用する .Sh 書式 .Nm apply .Op Fl a Ar c .Op Fl d .Op Fl # .Ar command argument ... .Sh 解説 .Nm -は、 +ユーティリティは、 指定されたコマンド .Ar command に、各引数 .Ar argument を順番に与えて実行します。 .Pp .Ar command 内に .Dq Li \&%d の形をした文字列があった場合には (ここで .Sq Li d は 1 から 9 までの数字)、これらは未使用の引数 .Ar argument のうちの .Li d 番目のものと置き換えられます。 このとき .Ar command の実行ごとに最大の .Dq Li d の数だけ引数は捨てられます。 .Pp オプションは以下のものがあります: .Bl -tag -width indent .It Fl # 通常は引数は一つしか渡されません。オプション .Fl # で .Ar command に渡される引数の個数を指定できます。 この数値が 0 のときは、引数なしで .Ar command が引数 .Ar argument につき 1 回、実行されます。 .Pp もし .Ar command 内に .Sq Li \&%d があった場合、 .Fl # オプションは無視されます。 .It Fl a Ar c デフォルトではマジックキャラクタとして .Dq Li % を使っていますが、これは .Fl a オプションで変更ができます。 .It Fl d 実行されるはずだったコマンドを表示しますが、実際には実行しません。 .El .Sh 環境変数 以下の環境変数が .Nm の実行に影響します: .Bl -tag -width SHELL .It Ev SHELL 利用する shell のパス名です。 この変数が定義されていない場合は Bourne シェルが使われます。 .El .Sh 使用例 .Bl -tag -width apply -compact .It Li "apply echo a*" .Xr ls 1 に似た出力になります。 .It Li "apply \-2 cmp a1 b1 a2 b2 a3 b3" `a' のファイルと `b' のファイルを比較します。 .It Li "apply \-0 who 1 2 3 4 5" .Xr who 1 を 5 回実行します。 .It Li "apply \'ln %1 /usr/joe\'" * カレントディレクトリ内の全てのファイルをディレクトリ .Pa /usr/joe にリンクします。 .El .Sh 関連ファイル .Bl -tag -width /bin/sh -compact .It Pa /bin/sh デフォルトの shell です。 .El .Sh 作者 .An Rob Pike .Sh バグ .Ar command 内に shell のメタキャラクタを使用すると、異常な動作をするかもしれません。 複雑なコマンドはシングルクォート .Pq '' で括るのがベストです。 .Sh 歴史 .Nm コマンドは .Bx 4.2 から登場しました。 diff --git a/ja_JP.eucJP/man/man1/at.1 b/ja_JP.eucJP/man/man1/at.1 index 1056f079fd..66add03c3d 100644 --- a/ja_JP.eucJP/man/man1/at.1 +++ b/ja_JP.eucJP/man/man1/at.1 @@ -1,269 +1,271 @@ -.\" %FreeBSD: src/usr.bin/at/at.man,v 1.13.2.8 2002/02/11 00:03:08 keramida Exp % +.\" %FreeBSD: src/usr.bin/at/at.man,v 1.13.2.9 2002/07/23 15:13:01 trhodes Exp % .\" $FreeBSD$ .Dd April 12, 1995 .Dt "AT" 1 .Os .Sh 名称 .Nm at , .Nm batch , .Nm atq , .Nm atrm .Nd あとでジョブを実行させるためのキューの設定、確認、ジョブの削除を行なう .Sh 書式 .Nm at .Op Fl V .Op Fl q Ar queue .Op Fl f Ar file .Op Fl mldbv .Ar time .Nm at .Op Fl V .Fl c Ar job Op Ar job ... .Pp .Nm atq .Op Fl V .Op Fl q Ar queue .Op Fl v .Pp .Nm atrm .Op Fl V .Ar job .Op Ar job ... .Pp .Nm batch .Op Fl V .Op Fl q Ar queue .Op Fl f Ar file .Op Fl mv .Op Ar time .Sh 解説 .Nm at と .Nm batch は、標準入力もしくは指定したファイルからコマンドを読み 込み、あとで .Xr sh 1 を使って実行します。 .Bl -tag -width indent .It Nm at コマンドを、引数で指定した時間に実行します。 .It Nm atq ユーザの、実行待ち状態のジョブのリストを表示します。 スーパユーザが実行した場合は全員のジョブが表示されます。 .It Nm atrm 指定したジョブを削除します。 .It Nm batch ロードアベレージが特定の値以下になったときにジョブを実行 します。この値は、デフォルトでは 1.5 です。 この値は .Nm atrun によって指定可能です。 .El .Pp .Nm at では、様々な形式の時間を .Ar time として受け付けます。 時刻は .Ar HHMM もしくは .Ar HH:MM の形で指定します -(もしこの時刻が過ぎていた場合は、次の日のその時刻に設定されます)。また、 +(もしこの時刻が過ぎていた場合は、次の日のその時刻に設定されます)。 +また、 .Em midnight , .Em noon , .Em teatime -(4pm) も受け付けますし、時刻の後ろに +(4pm) のキーワードも受け付けますし、時刻の後ろに .Em AM もしくは .Em PM -をつけた時間も受け付けます。日付は、 +をつけた時間も受け付けます。 +日付は、 .Ar \%month-name day およびオプションの .Ar year の形で受け付けます。 .Ar DD.MM.YYYY , .Ar DD.MM.YY , .Ar MM/DD/YYYY , .Ar MM/DD/YY , .Ar MMDDYYYY , .Ar MMDDYY も受け付けます。 日付の指定は時刻の指定の後に記述します。 .Op Em now .Em + Ar count \%time-units のような形式で時間を指定することも可能です。time-units は時間の単位で、 .Em minutes , .Em hours , .Em days , .Em weeks のいずれかです。時間のサフィックスの .Em today はジョブを今日に設定すること、 .Em tomorrow はジョブを明日に設定することを意味します。 .Pp 例えば、今から 3 日後の午後 4 時にジョブを走らせるためには .Nm at Ar 4PM + 3 days とします。7 月 31 日の午前 10 時の場合は .Nm at Ar 10am Jul 31 とします。明日の午前 1 時は .Nm at Ar 1am tomorrow です。 .Pp .Nm at と .Nm batch はどちらも、標準入力または .Fl f オプションで指定したファイルからコマンドを読み込み、実行します。 ワーキングディレクトリと環境変数 ( .Ev TERM , .Ev TERMCAP , .Ev DISPLAY および .Em _ は除く)、umask は実行時のものが保持されます。 .Nm at もしくは .Nm batch が .Xr su 1 で起動されたシェルから実行された場合は、カレントの userid を保持します。 出力結果が得られた場合は、 その標準出力と標準エラー出力がメールで送られます。メールは .Xr sendmail 8 を使って送られます。もし .Nm at が .Xr su 1 で起動されたシェルから実行された場合は、そのログインシェルの所有者が メールを受けることになります。 .Pp スーパユーザはどんな場合でもこれらのコマンドを実行できます。 その他のユーザは .Pa /var/at/at.allow と .Pa /var/at/at.deny のファイルによって .Nm を実行できるか決められます。 .Pp もし .Pa /var/at/at.allow が存在するならば、その中にユーザ名を記述されたユーザだけが .Nm at の実行を許可されます。 .Pp もし .Pa /var/at/at.allow が存在しなければ、 .Pa /var/at/at.deny がチェックされ、その中にユーザ名が記述されていないすべてのユーザが .Nm at の実行を許可されます。 .Pp もし両方ともなければ、スーパーユーザだけが .Nm at を実行できます。 これがデフォルトの設定です。 .Pp 空の .Pa /var/at/at.deny は全てのユーザがこれらのコマンドを使用できることを意味します。 .Sh オプション .Bl -tag -width indent .It Fl V 標準エラー出力にバージョン番号を出力します。 .It Fl q Ar queue 指定したキューを用います。キューの名称は単一の文字からなります。 有効なキューの名前は .Ar a から .Ar z と .Ar A から .Ar Z です。 .Nm at のデフォルトのキューは .Ar c で、 .Nm batch のデフォルトのキューは .Ar E です。 キューの文字が後の方であればあるほど nice 値が上がります。 もし大文字のキューがジョブに対して指定されたならば、時間を指定して batch が実行されたものとして扱われます。 もし .Nm atq でキューが指定されたときは、そのキューだけの実行待ちのジョブを表示します。 .It Fl m 出力がなかった場合でも、ジョブの完了時にメールをユーザに送ります。 .It Fl f Ar file 標準入力のかわりにファイルからジョブを読み込みます。 .It Fl l .Nm atq のエイリアス。 .It Fl d .Nm atrm のエイリアス。 .It Fl b .Nm batch のエイリアス。 .It Fl v .Nm atq の場合は、キューの中の実行されたがまだ削除されていないジョブを 表示します。さもなければジョブが実行される時間を表示します。 .It Fl c コマンドラインにリストされたジョブを標準出力に出力します。 .El .Sh 関連ファイル .Bl -tag -width /var/at/jobs/.lockfile -compact .It Pa /var/at/jobs ジョブファイルを保管しておくディレクトリ .It Pa /var/at/spool 出力ファイルを保管しておくディレクトリ .It Pa /var/run/utmp ログインレコード .It Pa /var/at/at.allow 許可属性の設定 .It Pa /var/at/at.deny 不許可属性の設定 .It Pa /var/at/jobs/.lockfile ジョブ作成のロックファイル .El .Sh 関連項目 .Xr nice 1 , .Xr sh 1 , .Xr umask 2 , .Xr atrun 8 , .Xr cron 8 , .Xr sendmail 8 .Sh バグ .Pa /var/run/utmp が利用できないか不正であった場合、もしくは .Nm at が実行された時にユーザがログインしていない場合、 環境変数 .Ev LOGNAME で表される userid にメールが送られます。 もし定義されていないか空ならばカレントの userid になります。 .Pp ユーザ同士でリソースの競合がある場合は現実装の .Nm at と .Nm batch は適当ではありません。 もしあなたのサイトがこのような場合にあてはまるのなら、 .Em nqs のような他のバッチシステムを検討してください。 .Sh 作者 at のほとんどの部分は .An Thomas Koenig Aq ig25@rz.uni-karlsruhe.de によって作成されました。 時間の構文解析部分は .An David Parsons Aq orc@pell.chi.il.us によって作成されました。 diff --git a/ja_JP.eucJP/man/man1/basename.1 b/ja_JP.eucJP/man/man1/basename.1 index 303fcd05ee..43108d49c4 100644 --- a/ja_JP.eucJP/man/man1/basename.1 +++ b/ja_JP.eucJP/man/man1/basename.1 @@ -1,96 +1,96 @@ .\" Copyright (c) 1990 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. .\" .\" @(#)basename.1 8.2 (Berkeley) 4/18/94 -.\" %FreeBSD: src/usr.bin/basename/basename.1,v 1.6.2.6 2002/06/20 23:45:11 charnier Exp % +.\" %FreeBSD: src/usr.bin/basename/basename.1,v 1.6.2.7 2002/07/15 04:11:27 keramida Exp % .\" .\" $FreeBSD$ .\" .Dd April 18, 1994 .Dt BASENAME 1 .Os .Sh 名称 .Nm basename , dirname .Nd 指定したパスのファイル名部分やディレクトリ名部分を返す .Sh 書式 .Nm basename .Ar string .Op Ar suffix .br .Nm dirname .Ar string .Sh 解説 .Nm ユーティリティは .Ar string から最後の .Ql \&/ までを 削除し、 .Ar suffix が指定された場合はこれも削除します。 (まず後続する複数のスラッシュを取り除いた) .Ar string に残された文字列と .Ar suffix がまったく同じ場合には、削除しません。 そして、その結果得られるファイル名を標準出力に書き出します。 存在しない .Ar suffix は無視します。 .Pp .Nm dirname ユーティリティは (まず後続する複数のスラッシュを取り除いた) .Ar string 中の最後の .Ql \&/ から最後尾までをファイル名とみなしてこの部分を削除し、 残りを標準出力に書き出します。 .Sh 使用例 次の行は、シェル変数 FOO に /usr/bin を設定するものです。 .Pp .Dl FOO=`dirname /usr/bin/trail` .Sh 診断 .Ex -std basename dirname .Sh 関連項目 .Xr csh 1 , .Xr sh 1 .Sh 規格 .Nm および .Nm dirname のユーティリティは、 .St -p1003.2 準拠であると思われます。 diff --git a/ja_JP.eucJP/man/man1/bc.1 b/ja_JP.eucJP/man/man1/bc.1 index 7fa5c16736..71bb729205 100644 --- a/ja_JP.eucJP/man/man1/bc.1 +++ b/ja_JP.eucJP/man/man1/bc.1 @@ -1,800 +1,800 @@ .\" .\" bc.1 - the *roff document processor source for the bc manual .\" .\" This file is part of GNU bc. .\" Copyright (C) 1991-1994, 1997, 2000 Free Software Foundation, Inc. .\" .\" This program is free software; you can redistribute it and/or modify .\" it under the terms of the GNU General Public License as published by .\" the Free Software Foundation; either version 2 of the License , or .\" (at your option) any later version. .\" .\" This program is distributed in the hope that it will be useful, .\" but WITHOUT ANY WARRANTY; without even the implied warranty of .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the .\" GNU General Public License for more details. .\" .\" You should have received a copy of the GNU General Public License .\" along with this program; see the file COPYING. If not, write to: .\" The Free Software Foundation, Inc. .\" 59 Temple Place, Suite 330 .\" Boston, MA 02111 USA .\" .\" You may contact the author by: .\" e-mail: philnelson@acm.org .\" us-mail: Philip A. Nelson .\" Computer Science Department, 9062 .\" Western Washington University .\" Bellingham, WA 98226-9062 .\" -.\" %FreeBSD: src/contrib/bc/doc/bc.1,v 1.4.6.1 2001/03/04 09:34:56 kris Exp % -.\" $FreeBSD: doc/ja_JP.eucJP/man/man1/bc.1,v 1.6 2001/05/14 01:07:21 horikawa Exp $ +.\" %FreeBSD: src/contrib/bc/doc/bc.1,v 1.4.6.2 2002/07/29 07:41:24 ru Exp % +.\" $FreeBSD$ .\" .TH bc 1 .\" "Command Manual" v1.06 "Sept 12, 2000" .SH 名称 bc - 任意精度の計算言語 .SH 書式 \fBbc\fR [ \fB-hlwsqv\fR ] [long-options] [ \fI file ...\fR ] .SH バージョン このマニュアルは GNU bc version 1.06 について記述してあります。 .SH 解説 \fBbc\fR は、任意の精度の数値を扱う事ができ、プログラミング言語 C の文法に よく似た形の入力を対話的に実行する言語です。 コマンドラインのオプションの指定により、標準数学ライブラリを使用することも できます。これを指定した場合は、どのファイルを処理するよりも前に 数学ライブラリが定義されます。 \fBbc\fR は動作を開始するとまず最初にコマンドラインで指定したファイルを 順に処理します。すべてのファイルを処理した後は、\fBbc\fR は 標準入力からの読み込みを行います。すべてのコードは、それが読み込ま れた時点で実行されていきます。(もし、ファイル中にプロセッサを止める コマンドが含まれていた場合は、標準入力からの読み込みは行われません。) .PP 本バージョンの \fBbc\fR は、伝統的な \fBbc\fR の実装および POSIX のドラフト規格よりも拡張されています。コマンドラインオプションにより、 これらの拡張に対して警告を表示したり拒絶したりすることが可能です。 本ドキュメントでは、このプロセッサが受理する言語について説明します。 拡張機能についてはその旨明記します。 .SS オプション .IP "-h, --help" 使用方法を表示し、終了します。 .IP "-i, --interactive" 対話モードを強制します。 .IP "-l, --mathlib" 標準数学ライブラリを定義します。 .IP "-w, --warn" POSIX \fBbc\fR に対する拡張機能が入力された場合は警告を出します。 .IP "-s, --standard" POSIX \fBbc\fR の言語仕様に厳密に従って処理します。 .IP "-q, --quiet" GNU bc 導入メッセージを表示しません。 .IP "-v, --version" バージョン番号と著作権を表示して終了します。 .SS 数 \fBbc\fR における最も基本的な要素は `数' です。数は、整数部と小数部があり、 任意の精度をとることができます。すべての数は、内部では 10 進数で表現されており、 計算も 10 進数で行われます。(本バージョンでは、除算と乗算で結果に切捨てが 起こります。) 数には length と scale という 2 つの属性があります。 length は 10 進での有効桁数で、scale は小数点以下の 10 進での有効桁数です。 例えば、 .nf .RS .000001 は、lengthが 6 で、scale も 6 です。 1935.000 は、lengthが 7 で、scale が 3 です。 .RE .fi .SS 変数 数は、単純変数と配列の 2 種類の変数に保存されます。単純変数と配列変数には共に 名前が付けられます。この名前は、最初の 1 文字目がアルファベットで、後は、 アルファベット、数字およびアンダスコアを任意の文字数組み合わせて 使うことができます。すべてのアルファベットは小文字でなければなりません。 (アルファベットと数字を使った名前の機能は拡張機能です。 POSIX \fBbc\fR では、変数に英小文字 1 文字しか許されません。) 配列変数の名前には必ずブラケット ([]) がつくので、変数の型は文脈において はっきりしています。 .PP 特殊な変数として \fBscale, ibase, obase, last\fR の 4 つの変数があります。 \fBscale\fR で計算時の小数点以下の有効桁数を指定します。 \fBscale\fR のデフォルトは 0 です。 \fBibase\fR と \fBobase\fR で入力および出力の変換基数を指定します。 デフォルトでは、入力、出力の基数は共に 10 です。 \fBlast\fR は、最後に \fBbc\fR が出力した数を保持しています (これは拡張機能です)。これらについては、後で適切なところで詳しく説明します。 これらの変数には、式で使われる代入と同様の代入を行うことが可能です。 .SS コメント \fBbc\fR は、\fB/*\fR から \fB*/\fR の間をコメントとして扱います。 コメントはどこから始まっていてもよく、1 文字の空白として扱われます。 (これにより、コメントはその前後の入力アイテムを切り離します。たとえば、 変数名の途中にコメントを置くことはできません。) コメントの中にはいくつ改行があってもかまいません。 .PP \fBbc\fR をスクリプトとしても使えるようにするため、1 行コメントが 拡張機能として追加されました。1 行コメントは \fB#\fR で始まり、 次の改行まで有効です。その改行文字自体はコメントの一部とはみなされず、 普通に処理されます。 .SS 式 `数' は、式および文によって操作されます。 この言語は対話的になるように設計されているため、 文および式は可能な限り即座に実行されます。 "main" プログラムといったものはなく、そのかわり、コードは それに出くわした時点で実行されます。 (後で述べる`関数'は、それに出くわした時点で定義されます。) .PP 式の最も単純なものは、ただの定数です。\fBbc\fR は、入力された 定数を、変数 \fBibase\fR で指定される現在の基数を元に、内部的には 10 進表現の 数に変換します。(関数の場合には例外があります。) \fBibase\fR には、2 から 16 までが使用できます。 この範囲を越える値を \fBibase\fR に代入しようとすると、 2 あるいは 16 を指定したことになります。 数の入力には、0-9 および A-F の文字が利用できます。(注意: これは大文字でなければなりません。小文字は変数名です。) 1 桁の数は \fBibase\fR の値に関係なくその値を持ちます (すなわち A=10)。 複数桁の数の場合、\fBbc\fR は ibase 以上の値をもつすべての入力桁を \fBibase\fR-1に変更します。これにより、数 \fBFFF\fR は常に、 その入力基数を使って 3 桁で表現可能な最大の値を表します。 .PP すべての演算式が、他の多くの高級言語に似たものとなっています。 数の型は 1 種類しかないため、型変換の規則はありません。 そのかわり、式の有効桁数に関する規則があります。 すべての式に有効桁数があり、これはその被演算数の有効桁数と 施される演算、それに多くの場合、 変数 \fBscale\fR から決定されます。\fBscale\fR には、0 から C の整数で表現できる最大の値までが指定可能です。 .PP 以下、bc で使用可能な演算子を説明します。なお、完全形の式を "expr"、 単純変数または配列変数を "var" と表記します。 単純変数は単に .RS \fIname\fR .RE と表し、配列変数は .RS \fIname\fR[\fIexpr\fR] .RE と表します。特に言及しない限り、結果の有効桁数は、注目している式の 最大有効桁数になります。 .IP "- expr" 結果はその式の符号を反転したものとなります。 .IP "++ var" 変数を 1 だけインクリメントし、その新しい値が式の結果となります。 .IP "-- var" 変数を 1 だけデクリメントし、その新しい値が式の結果となります。 .IP "var ++" 式の結果はその変数の値となり、それからその変数を 1 だけ インクリメントします。 .IP "var --" 式の結果はその変数の値となり、それからその変数を 1 だけ デクリメントします。 .IP "expr + expr" 式の結果は 2 つの式の和となります。 .IP "expr - expr" 式の結果は 2 つの式の差となります。 .IP "expr * expr" 式の結果は 2 つの式の積となります。 .IP "expr / expr" 式の結果は 2 つの式の商となります。 結果の scale は変数 \fBscale\fR の値となります。 .IP "expr % expr" 結果は、以下のようにして求められる剰余です。a%b を求めるために、まず a/b を \fBscale\fR の有効桁数で計算します。この結果を用いて、a-(a/b)*b を、 \fBscale\fR+scale(b) と scale(a) の大きい方の有効桁数で計算します。 もし \fBscale\fR に 0 がセットされ、両方の式が整数であれば、 整数の剰余が求められます。 .IP "expr ^ expr" 式の結果は、1 番目の式の値を 2 番目の回数だけ乗じたものになります。 2 番目の式は、整数でなければなりません。 (2 番目の式が整数でない場合は警告が表示され、 整数に切り詰めた値が使用されます。) 結果の scale は、べき指数が 負なら \fBscale\fR になります。べき指数が正なら、 "1 番目の式の scale とべき指数との積" および "\fBscale\fR と 1 番目の式の scale の大きい方" のうちの小さい方 (つまり、scale(a^b) = min(scale(a)*b, max( \fBscale,\fR scale(a)))) となります。 expr^0 は常に 1 を返します。 .IP "( expr )" 標準の優先度を使わずに、この式の評価を優先します。 .IP "var = expr" 式の値が変数に代入されます。 .IP "var = expr" "var" が一度しか評価されないこと以外は "var = var expr" と同じです。 "var" が配列の場合は動作が違うことがあり得ます。 .PP 関係演算は特殊な演算で、結果は常に 0 か 1 になります。関係が偽の時 0、 真の時 1 になります。関係演算は、演算式のどこでも使う事ができます。 (POSIX bcでは、関係演算は、if, while, for 文の中だけで、しかも 1 つの関係式しか使用できません。) 関係演算子は以下の通り。 .IP "expr1 < expr2" expr1 が expr2 より小さい場合 1 になります。 .IP "expr1 <= expr2" expr1 が expr2 より小さいか等しい場合 1 になります。 .IP "expr1 > expr2" expr1 が expr2 より大きい場合 1 になります。 .IP "expr1 >= expr2" expr1 が expr2 より大きいか等しい場合 1 になります。 .IP "expr1 == expr2" expr1 と expr2 が等しい場合 1 になります。 .IP "expr1 != expr2" expr1 と expr2 が等しくない場合 1 になります。 .PP 論理演算も使えます。(POSIX \fBbc\fR には論理演算はありません。) 論理演算も関係演算と同様、結果は 0 か 1 (各々偽および真) になります。 論理演算子は以下の通り。 .IP "!expr" expr が 0 なら 1 になります。 .IP "expr && expr" expr1 と expr2 が両方とも 0 でないなら、1 になります。 .IP "expr || expr" expr1 と expr2 のどちらか一方が 0 でないなら、1 になります。 .PP 各演算子の優先順位と結合規則は次の通りです。 (最初のものほど低く、後にいくほど高い優先順位で先に実行されます。) .nf .RS || (左から結合) && (左から結合) ! (結合せず) 関係演算 (左から結合) 代入演算 (右から結合) + - (左から結合) * / % (左から結合) ^ (右から結合) - (単項マイナス) (結合せず) ++ -- (結合せず) .RE .fi .PP この優先順位は、POSIX \fBbc\fR のプログラムがそのまま正しく動くように 配慮して決められています。このため、関係演算と論理演算を 代入文と共に用いた場合、通常とは異なる振る舞いをします。 次の例を考えてみましょう: .RS a = 3 < 5 .RE .PP C プログラマのほとんどは、 ``3 < 5'' の関係演算が実行された結果 (つまり 1) が変数 ``a'' に代入される、 と考えるでしょう。 ところが \fBbc\fR では、まず 3 が変数 ``a'' に代入され、 それから 3 と 5 の比較が行われるのです。 この間違いを避けるために、 関係演算や論理演算を代入演算と共に用いる場合は、 括弧を使うのが最良です。 .PP \fBbc\fR には特別な式がさらにいくつか備わっています。 それはユーザ定義関数と標準関数に関するもので、 すべて "\fIname\fB(\fIparameters\fB)\fR" という形をしています。 ユーザ定義関数については関数の章を参照して下さい。 標準関数は以下の通りです: .IP "length ( expression )" expression の有効桁数を返します。 .IP "read ( )" (拡張機能) 関数の出現位置に関係なく、標準入力から数を読み取ります。 データとプログラムの両方を標準入力から与えるような場合には、 問題を生じうることに注意して下さい。 最良の方法は、 ユーザからデータの入力の必要があるなら、プログラムはあらかじめ作っておき、 標準入力からプログラムを入力しないようにすることです。 read 関数の値は標準入力から読み込んだ数です。 その際、変換基数として変数 \fBibase\fR の現在の値が用いられます。 .IP "scale ( expression )" expression の小数点以下の有効桁数を返します。 .IP "sqrt ( expression )" expression の平方根を返します。 expression に負の値を指定した場合は、ランタイムエラーになります。 .SS 文 文は (ほとんどの算術言語がそうであるように)、処理を順番に実行していく単位です。 \fBbc\fR では文は「できるだけ早い段階で」実行されます。 改行が入力された時点で、実行可能な文が存在していれば、即座に実行します。 このため \fBbc\fR では改行が重要な役割を持っています。 実際、セミコロンと改行が文の区切りとして使用されます。 不適当な場所で改行を入力すると、文法エラーになります。 改行は文の区切りですが、バックスラッシュを用いて改行を隠すことができます。 \fBbc\fR にとって、"\e" (は改行) は改行ではなく空白に見えます。 文のリストは、セミコロンと改行で区切られた文の並びです。 以下、\fBbc\fR の文の種類とその動作について説明します。 (なお、以下の説明で ([]) で括った部分は省略可能な項です。) .IP "演算式" 演算式には次の 2 つの種類があります。 演算式が " ..." で始まっていれば、 それは代入文として扱われます。 そうでなければ、演算式は評価されて出力に表示されます。 結果が表示された後、改行が表示されます。 例えば、"a=1" は代入文であり、 "(a=1)" は代入文が埋め込まれた演算式です。 表示される数値はすべて、変数 \fBobase\fR で決まる基数で表示されます。 \fBobase\fR に指定できる値は 2 から BC_BASE_MAX までです。 (「制限」の章を参照。) 基数 2 から 16 まででは、通常の数表記法が用いられます。 基数が 16 より大きい場合、\fBbc\fR は、 各桁を 10 進表記する複数桁文字表記法で表示します。 複数桁文字表記法では、各桁は空白で区切られます。 各桁は "obase-1" を 10 進で表記するのに必要な桁数の数字から成ります。 数の精度は任意に選べるため、数によっては 1 行に表示できない場合もあります。 そのような長い数は、行末に "\e" を付けて次行に継続します。 1 行に表示できる文字数は 70 です。 \fBbc\fR の対話的性質により、ある数を表示すると、 表示した値が特殊変数 \fBlast\fR に代入されるという副作用が生じます。 ユーザはタイプし直すことなく最後に表示された値を再利用できます。 \fBlast\fR に値を代入することも可能で、 その場合、前回表示された値が代入値で上書きされます。 新しく代入した値は、次に数が表示されるか別の値が \fBlast\fR に代入される まで有効です。(bc の実装によっては、 数の一部になっていない単一のピリオド (.) を \fBlast\fR の短縮表記として 用いることができます。) .IP "string" 文字列 string が出力に表示されます。 文字列は二重引用符で始まり、次の二重引用符までのすべての文字を含みます。 改行を含め、すべての文字は文字通りに解釈されます。 文字列の後に改行は出力されません。 .IP "\fBprint\fR list" print 文 (これは拡張機能です) は、もうひとつの出力方法です。 "list" はコンマで区切った文字列および演算式のリストであり、 各文字列あるいは演算式がリストの順に表示されます。 最後に改行は出力されません。 演算式は評価され、その値が表示されるとともに、 変数 \fBlast\fR に代入されます。 print 文中の文字列は出力に表示されますが、特殊文字を含めることができます。 特殊文字はバックスラッシュ (\e) で始まります。 \fBbc\fR で使える特殊文字は、 "a" (ベル)、"b" (バックスペース)、 "f" (フォームフィード)、"n" (改行)、"r" (復帰)、"q" (二重引用符)、 "t" (タブ)、"\e" (バックスラッシュ) です。 これ以外は無視されます。 .IP "{ statement_list }" 複文です。複数の文を 1 つのグループにまとめて実行します。 .IP "\fBif\fR ( expression ) statement1 [\fBelse\fR statement2]" if 文は演算式 expression を評価し、その値に応じて 文 statement1 または文 statement2 を実行します。 expression の値が 0 でなければ statement1 が実行されます。 statement2 が存在し、expression の値が 0 ならば、statement2 が実行されます。 (else 節は拡張機能です。) .IP "\fBwhile\fR ( expression ) statement" while 文は expression が 0 でない間、繰り返し statement を実行します。 statement の実行前に毎回 expression を評価します。 expression の値が 0 になるか、break 文を実行すると、 ループが終了します。 .IP "\fBfor\fR ( [expression1] ; [expression2] ; [expression3] ) statement" for 文は statement の繰り返し実行を制御します。 expression1 はループ実行の前に評価されます。 expression2 は statement の実行前に毎回評価され、 その値が 0 でなければ statement が実行されます。 expression2 の値が 0 になると、ループは終了します。 各 statement 実行の後、再び expression2 が評価される前に expression3 が 評価されます。 expression1 あるいは expression3 が省略されていると、 そこでは何も評価されません。 expression2 が省略されている場合、expression2 が 1 であるのと 同様に扱われます。 (各 expression が省略可能なのは拡張機能です。 POSIX \fBbc\fR では、3 つの expression はどれも省略できません。) 以下は for 文と等価なコードです: .nf .RS expression1; while (expression2) { statement; expression3; } .RE .fi .IP "\fBbreak\fR" それを含む最も内側の while もしくは for 文による繰り返しを強制的に中断します。 .IP "\fBcontinue\fR" それを含む最も内側の for 文における次の繰り返しに進みます。 (continue 文は拡張機能です) .IP "\fBhalt\fR" 実行されると \fBbc\fR プロセッサを終了させます(拡張機能)。 例えば "if (0 == 1) halt" の場合は \fBbc\fR は終了しません。 halt 文が実行されないからです。 .IP "\fBreturn\fR" 関数から戻ります。関数の結果は 0 になります。(関数の章を参照) .IP "\fBreturn\fR ( expression )" 関数から戻ります。関数の結果は expression になります。(関数の章を参照) 拡張機能ですが、括弧は必須ではありません。 .SS 疑似文 これらは今までの文とは動作が異なります。 疑似文は実行文ではなく、「コンパイル」時点で処理されます。 .IP "\fBlimits\fR" \fBbc\fR のローカルバージョンにより制限される限界値を表示します。 (limits は拡張機能です) .IP "\fBquit\fR" \fBbc\fR を終了します。どんな場所にあっても、quit 文は 入力された時点で実行されます。例えば、 "if (0 == 1) quit" という記述であっても、\fBbc\fR は終了します。 .IP "\fBwarranty\fR" 保証に関する注意を長めに表示します。 (warranty は拡張機能です) .SS 関数 関数は、後で実行されるべき計算手順を定義する機能です。 .B bc の関数は常に値を計算し、それを呼びだし側に返します。 関数定義は、それが入力から読み込まれた時点で定義が行われるという点で 「ダイナミック(動的)」です。 一度定義された関数は、同じ名前で別の関数が定義されるまで使用可能で、 新しい関数が定義された場合は、前の関数が置き換えられます。 関数の定義は、以下のように行います: .nf .RS \fBdefine \fIname \fB( \fIparameters \fB) { \fInewline \fI auto_list statement_list \fB}\fR .RE .fi 関数呼び出しは、 "\fIname\fB(\fIparameters\fB)\fR" という形式の演算式です。 .PP パラメータ parameters は数あるいは配列 (拡張機能) です。 関数定義では、0 あるいは 1 個以上のパラメータ名を コンマで区切って並べることで定義します。 数は値渡し(call by value)でのみ渡され、配列は変数渡し(call by variable)で のみ渡されます。 配列はパラメータ定義中で "\fIname\fB[]\fR" のように表記して指定します。 関数呼び出しでは、数のパラメータに対して完全な演算式の実パラメータを 記述します。 配列を渡す表記は配列パラメータ定義と同様です。 名前付き配列は変数(variable)によって関数に渡されます。 関数定義はダイナミックゆえ、 パラメータの数と型は関数呼び出しの際にチェックされます。 パラメータの数あるいは型に何らかの不整合があると、 ランタイムエラーが発生します。 未定義関数を呼び出した場合もランタイムエラーとなります。 .PP \fIauto_list\fR は省略可能で、ローカル変数として使用する変数のリスト です。auto_list が存在するなら、その文法は "\fBauto \fIname\fR, ... ;" となります。(セミコロンは省略可能です。) 各 \fIname\fR がローカル変数の名前となります。 配列はパラメータと同様の表記で指定できます。 これらの変数は、関数の最初でその値がスタックにプッシュされたのち 値 0 に初期化され、関数の実行中に使用されます。 これらの変数は関数出口にてポップされ、 (関数呼び出し時の)元の値が復元されます。 パラメータは実際にはローカル変数であり、 関数呼び出しで与えられた値に初期化されます。 bc のローカル変数は伝統的な意味でのローカル変数と異なり、 関数 A が関数 B を呼び出しているような場合、関数 B の中に 関数 A のローカル変数と同じ名前のローカル変数がない限り、 関数 A のローカル変数名をそのまま使って、 関数 B から関数 A のローカル変数をアクセスできます。 ローカル変数とパラメータはスタックにプッシュされるため、 \fBbc\fR は再帰的な関数呼び出しをサポートしています。 .PP 関数本体は \fBbc\fR の文のリストです。 繰り返し述べますと、文はセミコロンか改行で区切られています。 return 文により関数は終了し、値を返します。 return 文には 2 つの形式があり、 ひとつめの形式 "\fBreturn\fR" は、呼び出し元に値 0 を返します。 もうひとつの形式 "\fBreturn ( \fIexpression \fB)\fR" は、 expression の値を計算し、それを呼び出し元に返します。 各関数の最後には "\fBreturn (0)\fR" があるものと解釈されます。 これにより、明示的に return 文を置かなくても、 関数は終了して値 0 を返します。 .PP 関数の中では、変数 \fBibase\fR の動作が変わります。関数の中で使われて いる定数は、関数の呼びだし時点の \fBibase\fR を元に変換が行われます。 このため、関数内部で \fBibase\fR を変更しても無視されます。ただし、標 準関数 \fBread\fR を呼び出した場合は例外で、これは常に現在の \fBibase\fR の値をもとに変換が行われます。 .PP 拡張機能ですが、定義の書式が若干緩やかになりました。 標準では、開くブレースが \fBdefine\fR キーワードと同じ行にあることと、 他の部分が引き続く行にあることが必須です。 本バージョンの \fBbc\fR では、関数の開くブレースの前後の改行数は任意です。 例えば、次の定義は合法です。 .nf .RS \f(CW define d (n) { return (2*n); } define d (n) { return (2*n); } \fR .RE .fi .SS 数学ライブラリ \fBbc\fR に \fB-l\fR オプションを付けて起動した場合は、数学ライブラリが 読み込まれ、デフォルトの scale が 20 に設定されます。 数学関数は、それを呼び出した時点の scale の値に従って計算を行います。 数学ライブラリによって使用可能になる関数は、次の通りです: .IP "s (\fIx\fR)" sin (x の単位はラジアン) .IP "c (\fIx\fR)" cos (x の単位はラジアン) .IP "a (\fIx\fR)" atan (返り値の単位はラジアン) .IP "l (\fIx\fR)" log (自然対数) .IP "e (\fIx\fR)" exp (指数関数) .IP "j (\fIn,x\fR)" 整数 n 次のベッセル関数 .SS 使用例 次の例は、/bin/sh でシェル変数 \fBpi\fR に ``パイ'' の値を代入します。 .RS \f(CW pi=$(echo "scale=10; 4*a(1)" | bc -l) \fR .RE .PP 次の例は、数学ライブラリで使われている ``e (x)'' の定義です。 この関数は POSIX \fBbc\fR で記述されています。 .nf .RS \f(CW scale = 20 /* Uses the fact that e^x = (e^(x/2))^2 When x is small enough, we use the series: e^x = 1 + x + x^2/2! + x^3/3! + ... */ define e(x) { auto a, d, e, f, i, m, v, z /* Check the sign of x. */ if (x<0) { m = 1 x = -x } /* Precondition x. */ z = scale; scale = 4 + z + .44*x; while (x > 1) { f += 1; x /= 2; } /* Initialize the variables. */ v = 1+x a = x d = 1 for (i=2; 1; i++) { e = (a *= x) / (d *= i) if (e == 0) { if (f>0) while (f--) v = v*v; scale = z if (m) return (1/v); return (v/1); } v += e } } \fR .RE .fi .PP 次の例は、\fBbc\fR の拡張機能を使って、``checkbook balances'' (小切手帳残高) を計算する簡単なプログラムです。 このプログラムをファイルにしておくと、 毎回タイプしなおさずに何度も使うことができます。 .nf .RS \f(CW scale=2 print "\enCheck book program!\en" print " Remember, deposits are negative transactions.\en" print " Exit by a 0 transaction.\en\en" print "Initial balance? "; bal = read() bal /= 1 print "\en" while (1) { "current balance = "; bal "transaction? "; trans = read() if (trans == 0) break; bal -= trans bal /= 1 } quit \fR .RE .fi .PP 次の例は、再帰呼び出しにより階乗を計算する関数です。 .nf .RS \f(CW define f (x) { if (x <= 1) return (1); return (f(x-1) * x); } \fR .RE .fi .SS readline と libedit のオプション GNU \fBbc\fR は (configure のオプションによって) GNU \fBreadline\fR 入力エディタライブラリまたは BSD \fBlibedit\fR ライブラリ を使うようにコンパイルできます。 これは、\fBbc\fR に入力する前に、行の編集を可能にします。 以前に入力した行のヒストリも利用可能になります。このオプションで コンパイルされた \fBbc\fR では、さらに 1 つの特殊な変数 \fBhistory\fR が追加され、ヒストリに保存される行の数を指定します。 \fBreadline\fR では、 その値が -1 (デフォルト値)なら、ヒストリ行は制限なく保存されます。 正の数を指定すると、ヒストリ行がその数に制限されます。 0 ならヒストリ機能が無効になります。 デフォルト値は 100 です。 詳しくは、ユーザマニュアルの GNU \fBreadline\fR と \fBhistory\fR ライブラリと BSD \fBlibedit\fR をご覧下さい。 \fBreadline\fR と \fBlibedit\fR の両方を同時に有効化できません。 .SS 相違点 このバージョンの .B bc は POSIX P1003.2/D11 ドラフトから実装されており、 そのドラフトや以前の実装に比べていくつかの相違点や拡張点があります。 伝統的に行われていたような .I dc(1) を用いた実装ではありません。 このバージョンは単一プロセスであり、 プログラムをバイトコードに変換したものを解析して実行します。 「ドキュメントに記載されていない」オプション (-c) があり、 プログラムを実行する代わりに、それをバイトコードに変換した結果を 標準出力に出力します。 これは主として、パーザのデバッグと数学ライブラリの準備に用いられました。 .PP 主な相違点は拡張機能によるものです。 機能を高めたり追加したりするために機能が拡張されたり、 新機能が追加されたりしています。 相違点と拡張点のリストを以下に示します。 -.IP LANG +.IP "LANG 環境変数" このバージョンは、 環境変数 LANG および LC_ で始まるすべての環境変数の処理に関して POSIX 標準に 準拠していません。 .IP 名前 伝統的な .B bc および POSIX .B bc は、関数、変数、配列の名前として単一の文字を使います。 このバージョンでは、 先頭が文字で始まり、文字と数字とアンダースコアで 構成される 2 文字以上の名前が使えるように拡張されています。 .IP 文字列 文字列には NUL 文字を含むことはできません。 POSIX では、文字列にはあらゆる文字を含めることができなければならない、 としています。 .IP last POSIX \fBbc\fR には変数 \fBlast\fR はありません。 \fBbc\fR の実装によっては、\fBlast\fR と同じ意味で ピリオド (.) を用いるものがあります。 .IP 比較 POSIX \fBbc\fR では、比較は if 文、while 文、for 文の第 2 式の中でのみ 用いることができます。 また、これらの文の中ではただ 1 つの関係演算しか使えません。 .IP "if 文, else 節" POSIX \fBbc\fR には else 節はありません。 .IP "for 文" POSIX \fBbc\fR では for 文の各演算式は省略できません。 .IP "&&, ||, !" POSIX \fBbc\fR には論理演算子はありません。 .IP "read 関数" POSIX \fBbc\fR には read 関数はありません。 .IP "print 文" POSIX \fBbc\fR には print 文はありません。 .IP "continue 文" POSIX \fBbc\fR には continue 文はありません。 .IP "return 文" POSIX \fBbc\fR では、return 文の周りに括弧が必要です。 .IP "配列パラメータ" POSIX \fBbc\fR では (現在のところ) 配列パラメータは完全には使えません。 POSIX の文法では、関数定義では配列を使えますが、実際に呼び出すときの パラメータに配列を指定することができません。(これはおそらく、文法上の 見落としでしょう。) 伝統的な \fBbc\fR の実装では、配列パラメータは値渡し のみでした。 .IP "function format" POSIX \fBbc\fR では、開くブレースが \fBdefine\fR キーワードと同じ行にあり、 \fBauto\fR 文が次の行にあることが必要です。 .IP "=+, =-, =*, =/, =%, =^" POSIX \fBbc\fR ではこれらの「旧式」の代入演算子を定義する必要はありません。 このバージョンではこれらの「旧式」代入演算子が使えるかも知れません。 limits 文を使って、インストールしたバージョンがこれらをサポートしているか どうか、確かめてみて下さい。 もしそのバージョンが「旧式」代入演算子をサポートしていれば、 文 "a =- 1" は \fBa\fR に値 -1 を代入する代わりに \fBa\fR を 1 減じます。 .IP "数字表記中の空白" 他の \fBbc\fR 実装では、数字表記の中に空白を含めることが許されます。 例えば、"x=1 3" は変数 x に値 13 を代入します。 このバージョンの \fBbc\fR では、先の文は文法エラーになります。 .IP "エラーと実行" このバージョンの bc は、 プログラムに文法上のエラーや他のエラーが見つかった場合に どういうコードが実行されるか、 という点で、他の実装と異なっています。 ある関数定義中で文法エラーが見つかると、 エラー回復機構は文の先頭を見つけて関数のパーズを続けようと努力します。 ひとたび関数の中で文法エラーが見つかると、 その関数は呼び出せなくなり、未定義状態となります。 対話的実行コードで文法エラーがあると、 現在の実行ブロックが無効になります。 実行ブロックとは、ひと続きの完全な文のあとの行末までのことです。 例えば、次のコード .nf .RS a = 1 b = 2 .RE .fi には 2 つの実行ブロックがあり、 .\" ↑ここで groff 時の字下げ量がおかしくなっているようだが、 .\" 元の英語マニュアルでもそうなっているようだ。(jpman 酒井) .nf .RS { a = 1 b = 2 } .RE .fi には 1 つの実行ブロックがあります。 ランタイムエラーが発生すると、現在の実行ブロックの実行が終了します。 ランタイムの警告が発生しても、現在の実行ブロックは終了しません。 .IP "割り込み" 対話セッションの間、SIGINT シグナル (通常、端末からの Control-C 入力で 発生します) によって現在の実行ブロックの実行が中断され、 どの関数が中断されたかを示す「ランタイム」エラーが表示されます。 ランタイムのデータ構造をすべてクリアした後メッセージが表示され、 \fBbc\fR は次の入力を受け付ける状態になったことを示します。 これまでに定義した関数はすべて定義されて残っており、 ローカルでない変数の値は割り込み発生時点の値のままになっています。 ローカル変数と関数パラメータはすべて、クリア処理によって消去されます。 非対話セッションでは、SIGINT シグナルで \fBbc\fR の実行全体が終了します。 .SS 限界 以下の項目が現在の .B bc プロセッサの限界値となっています。 このうちいくつかは、インストール時に変更できます。 実際の値を得るには limits 文を使って下さい。 .IP BC_BASE_MAX 現在のところ、出力の基数の最大値は 999 に設定されています。 入力側の基数の最大値は 16 です。 .IP BC_DIM_MAX 現在のところ 65535 として配布されていますが、 インストールしたバージョンでは異なっているかも知れません。 .IP BC_SCALE_MAX 小数点以下の桁数は INT_MAX 桁に制限されています。 また、小数点より上の桁数も INT_MAX 桁に制限されています。 .IP BC_STRING_MAX 文字列中の文字数は INT_MAX 文字に制限されています。 .IP 指数 累乗演算 (^) の指数の値は LONG_MAX に制限されています。 .IP 変数名 単純変数、配列、関数各々について、一意に識別される名前は 32767 個に 制限されています。 .SH 環境変数 \fBbc\fR は以下の環境変数を解釈します。 .IP "POSIXLY_CORRECT" \fB-s\fR オプションと同じです。 .IP "BC_ENV_ARGS" これは \fBbc\fR に引数を渡す別の方法で、コマンドライン引き数と 同じ書式です。この引数が最初に処理されるので、この環境変数で 指定されたファイルはコマンドライン引数で指定されたファイルよりも 先に処理されます。これにより、毎回 \fBbc\fR を呼び出すごとに 処理する「標準の」オプションやファイルを設定できます。この環境変数で 指定するファイルには、\fBbc\fR を走らせるたびに定義しておきたいような 関数の定義を書いておくとよいでしょう。 .IP "BC_LINE_LENGTH" 数字を出力するときの 1 行の文字数を整数で指定します。 数字が長過ぎると、バックスラッシュと改行を含めた出力となります。 .SH 診断 コマンドラインで指定したファイルがオープンできない場合、 \fBbc\fR はファイルが利用できない旨を表示して終了します。 また、コンパイル時あるいはランタイムの診断メッセージもありますが、 それらは自身で理解できるようになっているはずです。 .SH バグ エラーリカバリがまだうまくいっていません。 .PP バグ報告は、 .BR bug-bc@gnu.org に電子メールでお願いします。 単語 ``bc'' を ``Subject:'' フィールドのどこかに入れておいてください。 .SH 作者 .nf Philip A. Nelson philnelson@acm.org .fi .SH 謝辞 実装をテストする際に 広範囲に手助けしてくれた Steve Sommars (Steve.Sommars@att.com) に感謝します。 たくさんの素晴らしい意見をもらいました。 彼のおかげでとてもよいものになりました。 diff --git a/ja_JP.eucJP/man/man1/biff.1 b/ja_JP.eucJP/man/man1/biff.1 index 6d58ebcdd9..88d5ba4c3b 100644 --- a/ja_JP.eucJP/man/man1/biff.1 +++ b/ja_JP.eucJP/man/man1/biff.1 @@ -1,97 +1,108 @@ .\" Copyright (c) 1980, 1990 The Regents of the University of California. .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" from: @(#)biff.1 6.5 (Berkeley) 3/14/91 -.\" %FreeBSD: src/usr.bin/biff/biff.1,v 1.8.2.5 2002/06/20 23:45:13 charnier Exp % +.\" %FreeBSD: src/usr.bin/biff/biff.1,v 1.8.2.6 2002/07/21 15:31:09 johan Exp % .\" .\" $FreeBSD$ .\" .Dd June 6, 1993 .Dt BIFF 1 .Os .Sh 名称 .Nm biff .Nd メールの到着時に、メールの着信とメールの発信人を報告するかどうか設定する .Sh 書式 .Nm biff .Op Cm n | y .Sh 解説 .Nm ユーティリティは、現在の端末を利用している間、メールの到着を システムから報告してもらうかどうかを設定します。 .Pp .Nm がサポートしているオプションとしては、以下のものがあります: .Bl -tag -width indent .It Cm n 報告しないように設定します。 .It Cm y 報告するように設定します。 .El .Pp .\" 以下の一文は元の英語版マニュアルには含まれていないので .\" とりあえずコメントアウトしてある --- jpman project sakai@csl.cl.nec.co.jp .\" .\" オプションを指定しない場合は現在状態を表示します。 .\" メールの到着を報告するように設定しているときにメールが届いた場合、 メールのヘッダとメッセージの最初の数行が自分の画面に表示されます。 ログインするたびに設定されるように、たいてい .Pa \&.login や .Pa \&.profile ファイルに .Dq Li biff y コマンドの記述が含められます。 .Pp .Nm ユーティリティは非同期に動作します。同期して動作させる場合は、 .Xr sh 1 の .Ev MAIL 変数を用いるか、 .Xr csh 1 の .Ev mail 変数を利用してください。 +.Sh 診断 +.Nm +ユーティリティは次のいずれかの値で終了します: +.Bl -tag -width Ds +.It 0 +報告するようになっています。 +.It 1 +報告しないようになっています。 +.It >1 +エラーが発生しました。 +.El .Sh 関連項目 .Xr csh 1 , .Xr mail 1 , .Xr sh 1 , .Xr comsat 8 .Sh 歴史 .Nm コマンドは .Bx 4.0 から登場しました。 .Nm コマンドの名前は、 Heidi Stettner の犬の名前にちなんでいます。 彼は、1993年の8月に15歳で亡くなりました。 diff --git a/ja_JP.eucJP/man/man1/calendar.1 b/ja_JP.eucJP/man/man1/calendar.1 index 5780cbd2ee..39195478cb 100644 --- a/ja_JP.eucJP/man/man1/calendar.1 +++ b/ja_JP.eucJP/man/man1/calendar.1 @@ -1,242 +1,243 @@ .\" Copyright (c) 1989, 1990, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)calendar.1 8.1 (Berkeley) 6/29/93 -.\" %FreeBSD: src/usr.bin/calendar/calendar.1,v 1.16.2.7 2002/05/27 12:14:46 dwmalone Exp % +.\" %FreeBSD: src/usr.bin/calendar/calendar.1,v 1.16.2.8 2002/07/23 15:13:04 trhodes Exp % .\" $FreeBSD$ .\" .Dd October 1, 2001 .Dt CALENDAR 1 .Os .Sh 名称 .Nm calendar .Nd 予定表サービス .Sh 書式 .Nm calendar .Op Fl a .Op Fl A Ar num .Op Fl B Ar num .Op Fl f Ar calendarfile .Oo Fl t Ar dd Ns .Sm off .Op . Ar mm Op . Ar year .Sm on .Oc .Sh 解説 .Nm ユーティリティは、カレントディレクトリの .Pa calendar という名前のファイルをチェックし、今日もしくは明日の日付で始まる行を -表示します。金曜日には、金曜日から月曜日までのイベントを表示します。 +表示します。 +週末の前日 (通常は金曜日) には、3 日間分のイベントを表示します。 .Pp オプションには以下のものがあります: .Bl -tag -width Ds .It Fl a 全ユーザの ``calendar'' ファイルを処理し、結果をメールで各ユーザに 送ります。このオプションを使用するためには、スーパユーザの権限が必要です。 .It Fl A Ar num 今日から .Ar num 日先(未来)までの行を表示します。 .It Fl B Ar num 今日から .Ar num 日前 (過去) までの行を表示します。 .It Fl f Pa calendarfile デフォルトのカレンダファイルとして .Pa calendarfile を使用します。 .It Xo Fl t .Sm off .Ar dd .Op . Ar mm Op . Ar year .Sm on .Xc テスト専用: 指定された値に日付を設定します。 .El .Pp 各国語でのカレンダを扱うには、 カレンダファイルのできるだけ最初のほうに .Dq LANG= という記述を入れておきます。 その国のカレンダでのイースター名を扱うには、 .Dq Easter= (Catholic Easter の場合) あるいは .Dq Paskha= (Orthodox Easter の場合) という記述を入れます。 .\" ↑ catholic easter, orthodox easter の訳がわからないのでそのままに .\" してあります。どなたか分かる方、修正して下さい。 (J.Sakai) .Pp 各行は月や日で始まらなければなりません。 数字による表記、文字による表記を含め、ほぼいかなる形式でも受け付けます。 適切な locale が設定されていれば、 その国の月表記や曜日表記も使用できます。 アスタリスク (``*'') 1 つは、全ての月にマッチします。 曜日だけで月の指定のないものは、毎週のその曜日にマッチします。 月だけの指定で日のないものは、その月の 1 日 (ついたち) にマッチします。 .\" ↓原文と若干異なるがこの意味であっていると思う (J.Sakai) 日の指定の後に 2 桁の数字が来た場合は、この数字が月の指定とみなされます。 .\" 原文は "Two numbers default to the month followed by the day." タブではじまる行は直前に指定した日にちが指定されたことになり、 これによって同一日のイベントを複数の行に記述することが出来ます。 .Pp ``Easter'' は今年のイースターであり、 正または負の整数を後ろにつけることができます。 .Pp ``Paskha'' は今年の Orthodox Easter であり、 正または負の整数を後ろにつけることができます。 .Pp 曜日の後ろには ``-4'' ... ``+5'' をつけることができます。 これらは「最後」「第 1」「第 2」「第 3」「第 4」の別名であり、 「4 月の最後の月曜日」といった日付が変動するイベントの記述に用いられます。 .Pp 慣習により、日付の後にアスタリスクが付いているイベントは 決まった日にちではなく、その年によって日にちが変わります。 .Pp イベントの内容は行の中の最初のタブ文字以降に記述します。 行の中にタブ文字がなければイベント内容は表示されません。 行の中の最初の文字がタブである場合、 その行は直前の行の継続行として扱われます。 .Pp ``calendar'' ファイルは .Xr cpp 1 によって処理されます。例えば、その会社の休日やミーティングの予定などの 共有ファイルを include することができます。 共有ファイルがフルパス名指定されない場合、 .Xr cpp 1 はまずカレントディレクトリ (もしくはホームディレクトリ) を参照し、 次に .Pa /usr/share/calendar ディレクトリを参照します。空行や C のコメント .Pq Li /* ... */ の部分は無視されます。 .Pp calendar ファイルの例を示します (タブ文字 は強調した \fB\et\fR で示します): .Bd -unfilled -offset indent LANG=C Easter=Ostern #include #include 6/15\fB\et\fR6月15日 (曖昧だと、デフォルトでは 月/日になります). Jun. 15\fB\et\fR6月15日. 15 June\fB\et\fR6月15日. Thursday\fB\et\fR毎週木曜日. June\fB\et\fR毎年6月1日. 15 *\fB\et\fR毎月15日. May Sun+2\fB\et\fR5月の第2日曜日 (母の日) 04/SunLast\fB\et\fR4月の最後の日曜日, \fB\et\fR欧州のサマータイム Easter\fB\et\fRイースター Ostern-2\fB\et\fRGood Friday (イースターの 2 日前) Paskha\fB\et\fROrthodox Easter .Ed .Sh 関連ファイル .Bl -tag -width calendar.christian -compact .It Pa calendar カレントディレクトリにあるカレンダファイル。 .It Pa ~/.calendar .Pa カレンダ のホームディレクトリ。 もしこのディレクトリが存在すれば、 そこに chdir します。 .It Pa ~/.calendar/calendar カレントディレクトリにカレンダファイルが存在しない場合に 用いるカンレダファイル。 .It Pa ~/.calendar/nomail このファイルが存在すればメールは送信しません。 .El .Pp デフォルトのカレンダファイルとして、以下のものが用意されています: .Pp .Bl -tag -width calendar.christian -compact .It Pa calendar.birthday 有名な人 (およびそれほど有名でない人) の誕生日や没日。 .It Pa calendar.christian キリスト教の休暇。 このカレンダは、その年にあうように、 システム管理者が毎年更新する必要があります。 .It Pa calendar.computer コンピュータ関連の人が知っておきたい記念日。 .It Pa calendar.freebsd .Fx コミッタの誕生日。 .It Pa calendar.history その他いろいろ。主にアメリカの歴史的な記念日。 .It Pa calendar.holiday その他の記念日。あまり知られていないものや、全く知られていないものも 含まれています。 .It Pa calendar.judaic ユダヤ教の休暇。 このカレンダは、その年にあうように、 システム管理者が毎年更新する必要があります。 .It Pa calendar.music 音楽関係の記念日。誕生日、没日。特にロックンロール系。 .It Pa calendar.usholiday アメリカの記念日。 このカレンダは、その年にあうように、 システム管理者が毎年更新する必要があります。 .It Pa calendar.french フランスのカレンダ。 .It Pa calendar.german ドイツのカレンダ。 .It Pa calendar.russian ロシアのカレンダ。 .\" 日本のカレンダーも標準配布されるようになれば、 .\" 以下のような行を追加しないとね。 (J.Sakai) .\" .It Pa calendar.japan .\" 日本の暦 .El .Sh 関連項目 .Xr at 1 , .Xr cpp 1 , .Xr mail 1 , .Xr cron 8 .Sh 互換性 以前の .Nm は、正しい日付であれば、行のどこにあっても認識するように プログラムされていましたが、本バージョンの .Nm は、行の先頭にある日付しか認識しません。 .Sh 歴史 .Nm コマンドは Version 7 AT&T UNIX から登場しました。 .Sh バグ ユダヤの祝日や月齢は .Nm ユーティリティでは処理できません。 diff --git a/ja_JP.eucJP/man/man1/checknr.1 b/ja_JP.eucJP/man/man1/checknr.1 index e8b869d233..1da161cee9 100644 --- a/ja_JP.eucJP/man/man1/checknr.1 +++ b/ja_JP.eucJP/man/man1/checknr.1 @@ -1,161 +1,161 @@ .\" Copyright (c) 1980, 1990, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)checknr.1 8.1 (Berkeley) 6/6/93 -.\" %FreeBSD: src/usr.bin/checknr/checknr.1,v 1.5.2.4 2002/06/20 23:45:18 charnier Exp % +.\" %FreeBSD: src/usr.bin/checknr/checknr.1,v 1.5.2.5 2002/07/15 04:29:39 keramida Exp % .\" $FreeBSD$ .\" .Dd June 6, 1993 .Dt CHECKNR 1 .Os .Sh 名称 .Nm checknr .Nd nroff および troff ファイルをチェックする .Sh 書式 .Nm checknr .Op Fl a Ns Ar \&.x1.y1.x2.y2. ... \&.xn.yn .Op Fl c Ns Ar \&.x1.x2.x3 ... \&.xn .Op Fl s .Op Fl f .Ar file .Sh 解説 .Nm ユーティリティは、 .Xr nroff 1 や .Xr troff 1 の入力ファイルのリストに対して、デリミタの開始および終了の不一致や 間違ったコマンドを含む、ある種類のエラーをチェックします。 ファイルが指定されなかった場合、 .Nm は標準入力をチェックします。 .Pp -オプション +使用可能なオプションは次の通りです: .Bl -tag -width Ds .It Fl a 既知マクロのリストに追加のマクロペアを追加します。 その後ろには 6 文字のグループが続かなくてはなりません。 各グループはマクロのペアを定義します。 6 文字はピリオドと最初のマクロ名、更にピリオドと2番目のマクロ名です。 例えば、 .BS と .ES のペアを定義するためには、 .Sq Li \-a.BS.ES を使ってください。 .It Fl c 通常なら未定義であるといわれるコマンドを定義します。 .It Fl f .Nm に .Ql \ef のフォント変更を無視させます。 .It Fl s .Ql \es のサイズ変更を無視させます。 .El .Pp デリミタのチェックは以下の通りです。 .Bl -enum .It \efx ... \efP を使ったフォントの変更。 .It \esx ... \es0 を使ったサイズの変更。 .It \&.TS と .TEマクロのようにいつもペアで使われる、 ``開始...終了''形式のマクロ。 .El .Pp .Nm ユーティリティは、 .Xr lint 1 と同じように、 .Nm によるチェックを念頭に置いて作成されたドキュメントを チェックするのに用いることを意図しています。 .\"(チェック者注) この部分若干意訳。原文は以下の通り。(sakai@jp.freebsd.org) .\".Nm Checknr .\"is intended for use on documents that are prepared with .\".Nm checknr .\"in mind, much the same as .\".Xr lint 1 . コマンドは、記述形式が .Ql \ef と .Ql \es コマンドに対して、 各 .Ql \efx は .Ql \efP で終了されており、 .Ql \esx は .Ql \es0 で終了されているようなものを期待しています。 直接次のフォントに切り替えたり、 明示的にもとのフォントやポイントサイズを指定したりしても動作しますし、 実際そのようにしているドキュメントは数多く存在しますが、 .Nm はそのような使用法に対して警告を発します。 おそらく .Ql \efP と .Ql \es0 形式を使うほうがよいはずなので、 このようなスタイルを用いることは、 ドキュメント執筆スタイルの向上に寄与すると考えて下さい。 .Pp .Nm ユーティリティは、 .Xr ms 7 と .Xr me 7 マクロパッケージを認識します。 .Sh 関連項目 .Xr nroff 1 , .Xr troff 1 , .Xr me 7 , .Xr ms 7 .\" .Xr checkeq 1 , .Sh 診断 .Bd -ragged -compact デリミタが一致しない時に、警告を出します。 コマンドを認識できない時に、警告を出します。 コマンドの文法について、さまざまな警告を出します。 .Ed .Sh バグ .Fl a を用いて 1 文字のマクロ名を定義する方法がありません。 .Pp 条件文のような、ある種の正当な構造を認識できません。 .Sh 歴史 .Nm コマンドは .Bx 4.0 から登場しました。 diff --git a/ja_JP.eucJP/man/man1/chmod.1 b/ja_JP.eucJP/man/man1/chmod.1 index 7450c019e0..256b194113 100644 --- a/ja_JP.eucJP/man/man1/chmod.1 +++ b/ja_JP.eucJP/man/man1/chmod.1 @@ -1,329 +1,325 @@ .\" Copyright (c) 1989, 1990, 1993, 1994 .\" The Regents of the University of California. All rights reserved. .\" .\" This code is derived from software contributed to Berkeley by .\" the Institute of Electrical and Electronics Engineers, Inc. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)chmod.1 8.4 (Berkeley) 3/31/94 -.\" %FreeBSD: src/bin/chmod/chmod.1,v 1.17.2.8 2002/02/01 12:38:25 sheldonh Exp % +.\" %FreeBSD: src/bin/chmod/chmod.1,v 1.17.2.9 2002/07/14 21:38:40 keramida Exp % .\" .\" $FreeBSD$ .Dd March 31, 1994 .Dt CHMOD 1 .Os .Sh 名称 .Nm chmod .Nd ファイルのモードを変更する .Sh 書式 .Nm chmod .Oo .Fl fv .Fl R .Op Fl H | Fl L | Fl P .Oc .Ar mode .Ar .Sh 解説 .Nm は指定されたファイルのモードを .Ar mode で指定したものに変更します。 .Pp オプションとして以下のものがあります: .Bl -tag -width Ds .It Fl H .Fl R オプションが指定されていれば、引数がシンボリックリンクのとき、それを たどって変更します。 (ディレクトリツリー探索中に見つかったシンボリックリンクは、デフォルトでは それ以上追跡しません) .It Fl L .Fl R オプションが指定されていれば、すべてのシンボリックリンクをたどり、 リンク先のファイルを変更します。 .It Fl P .Fl R オプションが指定されていても、どのシンボリックリンクもたどりません。 これがデフォルトです。 .It Fl R 指定されたファイル自身だけではなく、それらをルートとする ディレクトリ階層を再帰的に検索してモードを変更します。 .It Fl f .Nm が .Va file のモードを変更できなかった場合に、診断メッセージを表示しません。 .It Fl v .Nm を冗長にし、モードが変更されるファイルを表示させます。 .El .Pp シンボリックリンクはモードを持たないので、 .Fl H または .Fl L オプションが指定されていなければ、シンボリックリンクに対する .Nm 実行結果は常に真となり、何も変えません。 .Fl H , .Fl L , .Fl P オプションは、 .Fl R オプションが指定されていなければ無視されます。また、これらが 複数指定されると最後に指定したものが有効になります。 .Pp ファイルのモードの変更はそのファイルの所有者とスーパユーザだけにしか 許されていません。 .Sh 診断 .Ex -std .Sh モード モードには、数値を用いた絶対値指定と、シンボルによる指定があります。 数値指定では、以下の値を .Ar ``or'' で組み合わせた 8 進数を用います: .Pp .Bl -tag -width 6n -compact -offset indent .It Li 4000 (set-user-ID-on-execution ビット) このビットがセットされている実行可能ファイルは、 ファイルを所有するユーザ ID に実効ユーザ ID を設定されて実行されます。 set-user-id ビットをセットされているディレクトリは、 その中で作成される全てのファイルおよびディレクトリの所有者を ディレクトリの所有者に設定することを強制し、 作成するプロセスのユーザ ID は無関係となります。 これは、ディレクトリが存在するファイルシステムが この機能をサポートしている場合に限られます: .Xr chmod 2 と .Xr mount 8 の .Ar suiddir オプションを参照してください。 .It Li 2000 (set-group-ID-on-execution ビット) このビットがセットされている実行可能ファイルは、 ファイルを所有するグループ ID に実効グループ ID を設定されて実行されます。 .It Li 1000 (スティッキービット) -ディレクトリに設定した時には、 -非特権ユーザは、所有するファイルのみ削除およびリネーム可能となり、 -ディレクトリのパーミッションは無関係となります。 -.Fx -では、実行可能ファイルに設定されたスティッキービットは無視され、 -ディレクトリにのみ設定可能です ( +.Xr chmod 2 +と .Xr sticky 8 -参照)。 +を参照してください。 .It Li 0400 所有者の読み込みを許可。 .It Li 0200 所有者の書き込みを許可。 .It Li 0100 ファイルの場合、所有者の実行を許可。 ディレクトリの場合、所有者の検索を許可。 .It Li 0040 グループのメンバの読み込みを許可。 .It Li 0020 グループのメンバの書き込みを許可。 .It Li 0010 ファイルの場合、グループのメンバの実行を許可。 ディレクトリの場合、グループのメンバの検索を許可。 .It Li 0004 他者の読み込みを許可。 .It Li 0002 他者の書き込みを許可。 .It Li 0001 ファイルの場合、他者の実行を許可。 ディレクトリの場合、他者の検索を許可。 .El .Pp 例えば、所有者に読み込み・書き込み・実行を許可し、 グループのメンバに読み込み・実行を許可し、 他者に読み込み・実行を許可し、 set-uid と set-gid を指定しない絶対値指定のモードは、 755 (400+200+100+040+010+004+001) となります。 .Pp シンボルによる指定は以下の文法に従います。 .Bd -literal -offset indent mode ::= clause [, clause ...] clause ::= [who ...] [action ...] action action ::= op [perm ...] who ::= a | u | g | o op ::= + | \- | = perm ::= r | s | t | w | x | X | u | g | o .Ed .Pp .Ar who シンボルの ``u'', ``g'', ``o'' はそれぞれユーザ、グループ、それ以外に 相当します。``a'' シンボルは ``ugo'' を指定した場合と同じになります。 .Pp .Ar perm シンボルはモードの各ビットを以下のように表現します。 .Pp .Bl -tag -width Ds -compact -offset indent .It r 読み込み許可ビット .It s 実行時 setuid および実行時 setgid ビット .It t sticky ビット .It w 書き込み許可ビット .It x 実行/検索 許可ビット .It X 対象がディレクトリであるか、変更前のモードで誰かの実行/検索許可ビット が立っている場合に、実行/検索許可ビットがセットされます。 .Ar perm シンボルでの ``X'' の指定は、 .Ar op シンボルを ``+''で連結する時のみ意味があり、他の場合は無視されます。 .It u 元の、ファイルの所有者許可ビット .It g 元の、ファイルのグループ許可ビット .It o 元の、ファイルの所有者とグループ以外の許可ビット .El .Pp .Ar op シンボルの働きは以下のようになります .Bl -tag -width 4n .It + .Ar perm 値が指定されなければ、``+'' は何の作用もありません。 .Ar who シンボルが指定されていなければ、 .Ar perm 値はそれぞれの who シンボルの対応するビットに作用し、それを umask で マスクしたビットがセットされます。 .Ar who シンボルが指定されていれば、その .Ar perm 値が設定されます。 .It \&\- .Ar perm 値が指定されていなければ、``\-'' は何の作用もありません。 .Ar who シンボルが指定されていなければ、 .Ar perm 値はそれぞれの who シンボルの対応するビットに作用し、それを umask で マスクしたビットがクリアされます。 .Ar who シンボルが指定されていれば、その .Ar perm 値がクリアされます。 .It = .Ar who シンボルで指定されたモードビットがクリアされます。who シンボルが指定 されていなければ、所有者、グループ、その他の各モードビットがクリアされ ます。 .Ar who シンボルが指定されていなければ、 perm で指定したビットが、所有者、グループ、その他のそれぞれを umask で マスクしたものだけ設定されます。 .Ar who シンボルと .Ar perm が指定されていれば、その値がそのまま設定されます。 .El .Pp 各 .Ar clause では、モードビットを操作するためのオペレーションを 1 つ以上記述しなけ ればなりません。そして各オペレーションは記述した順番で適用されます。 .Pp 所有者とグループ以外の ``o'' のみに対して、``s'' や ``t'' の組み合わせの .Ar perm 値が指定されても無視されます。 .Sh 使用例 .Bl -tag -width "u=rwx,go=u-w" -compact .It Li 644 ファイルを誰にでも読めるようにして、ファイルの所有者のみ書き込み可能に します。 .Pp .It Li go-w ファイルの所有者以外の書き込みを禁止します。 .Pp .It Li =rw,+X umask でマスクされていないビットの読み書きを許可しますが、実行許可は 現在設定されているものを保持します。 .Pp .It Li +X 誰かが実行/検索可能なファイルやディレクトリならば、すべてのユーザが 実行/検索できるファイルやディレクトリとします。 .Pp .It Li 755 .It Li u=rwx,go=rx .It Li u=rwx,go=u-w 誰にでも読み込みと実行ができて、所有者のみ書き込み可能になるようにしま す。 .Pp .It Li go= グループやその他のユーザにいかなる許可も与えません。 .Pp .It Li g=u-w グループビットをユーザビットと同じにしますが、グループの書き込みは禁止 します。 .El .Sh バグ naughty bit のための .Ar perm オプションがありません。 .Sh 互換性 .Fl v オプションは非標準であり、スクリプト中の使用は非推奨です。 .Sh 関連項目 .Xr chflags 1 , .Xr install 1 , .Xr chmod 2 , .Xr stat 2 , .Xr umask 2 , .Xr fts 3 , .Xr setmode 3 , .Xr symlink 7 , .Xr chown 8 , .Xr mount 8 , .Xr sticky 8 .Sh 規格 .Nm ユーティリティは、規格にない .Ar perm シンボルの .Dq t を除いては .St -p1003.2 互換になるように作られています。 .Sh 歴史 .Nm コマンドは .At v1 から導入されました. diff --git a/ja_JP.eucJP/man/man1/col.1 b/ja_JP.eucJP/man/man1/col.1 index 45d4819c0f..46e4ee0d77 100644 --- a/ja_JP.eucJP/man/man1/col.1 +++ b/ja_JP.eucJP/man/man1/col.1 @@ -1,134 +1,139 @@ .\" Copyright (c) 1990, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" This code is derived from software contributed to Berkeley by .\" Michael Rendell. .\" .\" 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. .\" .\" @(#)col.1 8.1 (Berkeley) 6/29/93 -.\" %FreeBSD: src/usr.bin/col/col.1,v 1.4.2.6 2002/06/20 23:45:26 charnier Exp % +.\" %FreeBSD: src/usr.bin/col/col.1,v 1.4.2.7 2002/07/15 04:32:27 keramida Exp % .\" .\" $FreeBSD$ .\" .Dd June 29, 1993 .Dt COL 1 .Os .Sh 名称 .Nm col .Nd 入力から逆行送り (reverse line feed) を取り除くフィルタ .Sh 書式 .Nm col .Op Fl bfhpx .Op Fl l Ar num .Sh 解説 .Nm col ユーティリティは、 出力が順方向の行送りと半行送りで正しい順序になるように逆行送り (と半逆行送り) を取り除き、空白をなるべくタブに置き換えます。 これは、 .Xr nroff 1 と .Xr tbl 1 の出力を処理する場合に便利です。 .Pp .Nm ユーティリティは標準入力を読み込み、標準出力に出力します。 .Pp オプションには以下のものがあります。 .Bl -tag -width indent .It Fl b バックスペースを出力せず、各桁の位置に最後に書かれた文字だけを 表示します。 .It Fl f 順方向の半行送りを許します(``詳細 (fine) '' モード)。 半行送りの境界に打たれる文字は、通常次の行に表示されます。 .It Fl h タブのかわりに複数の空白を出力しません (デフォルト)。 +.It Fl l Ar num +メモリに、少なくとも +.Ar num +行をバッファリングします。 +デフォルトで 128 行までバッファリングされます。 .It Fl p 未知の制御シーケンスを無変更のまま通します。 通常、 .Nm は、自身で認識して解釈するもの以外の制御シーケンスを取り除きます。 自身で認識する制御シーケンスは、後述します。 .It Fl x タブのかわりに複数の空白を出力します。 -.It Fl l Ar num -メモリに、少なくとも -.Ar num -行をバッファリングします。 -デフォルトで 128 行までバッファリングされます。 .El .Pp .Nm が理解できる復帰動作の制御文字とその 10 進値の一覧を以下の表に示します。 .Pp .Bl -tag -width "carriage return" -compact .It ESC\-7 逆行送り (エスケープ 7) .It ESC\-8 半逆行送り (エスケープ 8) .It ESC\-9 半行送り (エスケープ 9) .It backspace 一桁戻る (8); 最初の桁では無視されます .It carriage return (13) .It newline 改行 (10); 復帰動作も同時に行ないます .It shift in 通常の文字セットにシフトします (15) .It shift out 異なる文字セットにシフトします (14) .It space 一桁移動します (32) .It tab 次のタブストップまで移動します (9) .It vertical tab 逆行送り (11) .El .Pp 認識できないすべての制御文字とエスケープシーケンスは捨てられます。 .Pp .Nm は、読み込まれた通りに文字セットの移り変わりを記憶し、 出力時に文字セットが正しくなるようにします。 .Pp 入力が最後に表示された行に戻ろうとすると、 .Nm ユーティリティは警告メッセージを表示します。 .Sh 関連項目 .Xr expand 1 , .Xr nroff 1 , .Xr tbl 1 +.Sh 規格 +.Nm +ユーティリティは +.St -susv2 +に適合しています。 .Sh 歴史 .Nm コマンドは .At v6 から登場しました。 diff --git a/ja_JP.eucJP/man/man1/compress.1 b/ja_JP.eucJP/man/man1/compress.1 index b6c9c211f6..21e8d96029 100644 --- a/ja_JP.eucJP/man/man1/compress.1 +++ b/ja_JP.eucJP/man/man1/compress.1 @@ -1,164 +1,182 @@ .\" Copyright (c) 1986, 1990, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" This code is derived from software contributed to Berkeley by .\" James A. Woods, derived from original work by Spencer Thomas .\" and Joseph Orost. .\" .\" 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. .\" .\" @(#)compress.1 8.2 (Berkeley) 4/18/94 -.\" %FreeBSD: src/usr.bin/compress/compress.1,v 1.4.2.7 2002/06/20 23:45:37 charnier Exp % +.\" %FreeBSD: src/usr.bin/compress/compress.1,v 1.4.2.8 2002/07/15 04:41:52 keramida Exp % .\" $FreeBSD$ .\" -.Dd April 18, 1994 +.Dd May 17, 2002 .Dt COMPRESS 1 .Os .Sh 名称 .Nm compress , .Nm uncompress .Nd データを圧縮、展開する .Sh 書式 .Nm compress .Op Fl cfv .Op Fl b Ar bits .Op Ar .Nm uncompress .Op Fl cfv .Op Ar .Sh 解説 .Nm ユーティリティは adaptive Lempel-Ziv 法を用いて、ファイルを圧縮します。 個々の圧縮された .Ar file は、元のファイル名に拡張子 .Dq .Z を付加したものにリネームされます。そして、ファイルの更新時刻、 最終アクセス時刻、ファイルフラグ、モード、ユーザID、グループID の大半 は、パーミッションの許す範囲で圧縮ファイルに引き継がれます。 もし圧縮しても .Ar file のサイズが小さくならない場合、compress はそのファイルを無視します。 .Pp .Nm uncompress ユーティリティは、compress されたファイルを元通りのファイルにリストアし、 ファイル名を拡張子 .Dq .Z を除いたものにリネームします。 .Pp compress, uncompress によってリネームされるファイルの名前がすでに存在 し、標準入力が端末の場合は、上書きしてもよいか確認を求めるプロンプトが (標準エラー出力に) 出力されます。 プロンプトが出せなかったり、確認の回答が得られなかった場合には、 ファイルは上書きされません。 .Pp -ファイル名が指定されなかった場合、標準入力からのデータが圧縮もしくは +ファイル名が指定されなかった場合または +.Ar file +引数が単一のダッシュ +.Pq Sq Fl +の場合、標準入力からのデータが圧縮もしくは 展開され、結果が標準出力に出力されます。 入力および出力ファイルが通常ファイルでない場合、圧縮後のサイズの チェックとファイルの上書きチェックは行なわれません。 入力ファイルは削除されず、また入力ファイルの属性は引き継がれません。 .Pp オプションは以下のものがあります: .Bl -tag -width indent .It Fl b .Ar bits コードの上限値を指定します(以下を参照)。 .It Fl c compressed または uncompressed の出力を標準出力に出します。 入力元のファイルは参照されるのみで変更されません。 .It Fl f ファイル長が小さくなるならないにかかわらず、ファイルの圧縮を強行 します。また、圧縮ファイルと同名のファイルがすでに存在しても、確認を 求めることなく強制的にファイルの上書きを行ないます。 .It Fl v 圧縮後、ファイルサイズがどれだけ減ったかをパーセント表示します。 .El .Pp .Nm ユーティリティは Lempel-Ziv 修正アルゴリズムを使用します。 ファイル内の重複する部分文字列は、まず、257 以上の 9ビットコードに 置き換えられます。コードが 512 に達すると、アルゴリズムは 10ビットコードへ切り替えられ、 .Fl b フラグによって指定された上限(デフォルトは16)に達するまで、更に上の ビットを使っていきます。 .Ar Bits は、9 から 16 の範囲になければなりません。 .Pp .Ar bits の上限に達すると、 .Nm は圧縮率を定期的にチェックします。 圧縮率が上がっているとき、 .Nm は既存のコード辞書を使い続けますが、 圧縮率が下がったときは .Nm は、部分文字列のテーブルを破棄し、最初からテーブルを作り直します。 こうして、アルゴリズムをファイルの次の "block" へ適用していくことが できます。 .Pp ランダムデータの展開または圧縮されたデータの再圧縮を行わないように するためのマジックナンバと共に、圧縮の際に指定された .Ar bits パラメータがエンコードされ、圧縮ファイルの中に保存されるため、 .Nm uncompress では .Fl b フラグが省略されています。 .Pp 得られる圧縮の量は、入力サイズ、コードあたりの .Ar bits の数, および重複する部分文字列の分布に依存しています。 普通、ソースコードや英語のテキストは、50\-60% 圧縮されます。 一般的に (packコマンドで使われている) Huffman法、または (compactコマンドで使われている)最適化Huffman法よって得られるより、圧縮 は良く、計算時間もかかりません。 .Sh 診断 .Ex -std compress uncompress +.Pp +圧縮を試みたファイルの大きさが減少しない場合で +.Fl f +オプションが指定されなかった場合、ユーティリティ +.Nm compress +は 2 で終了します。 .Sh 関連項目 .Xr gunzip 1 , .Xr gzexe 1 , .Xr gzip 1 , .Xr zcat 1 , .Xr zmore 1 , .Xr znew 1 .Rs .%A Welch, Terry A. .%D June, 1984 .%T "A Technique for High Performance Data Compression" .%J "IEEE Computer" .%V 17:6 .%P pp. 8-19 .Re +.Sh 規格 +ユーティリティ +.Nm compress +および +.Nm uncompress +は +.St -p1003.1-2001 +に適合しています。 .Sh 歴史 .Nm コマンドは .Bx 4.3 から登場しました。 diff --git a/ja_JP.eucJP/man/man1/ctags.1 b/ja_JP.eucJP/man/man1/ctags.1 index e7a67af634..b2221d7a65 100644 --- a/ja_JP.eucJP/man/man1/ctags.1 +++ b/ja_JP.eucJP/man/man1/ctags.1 @@ -1,224 +1,224 @@ .\" Copyright (c) 1987, 1990, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)ctags.1 8.1 (Berkeley) 6/6/93 -.\" %FreeBSD: src/usr.bin/ctags/ctags.1,v 1.5.2.5 2002/06/20 23:45:39 charnier Exp % +.\" %FreeBSD: src/usr.bin/ctags/ctags.1,v 1.5.2.6 2002/07/30 01:06:31 tjr Exp % .\" $FreeBSD$ .\" .\" ctags.1 修正時には gctags.1 も同様に修正して下さい。 .\" Aug 31 1997 .Dd June 6, 1993 .Dt CTAGS 1 .Os .Sh 名称 .Nm ctags .Nd .Pa tags ファイルを作成する .Sh 書式 .Nm ctags .Op Fl BFadtuwvx .Op Fl f Ar tagsfile .Ar name ... .Sh 解説 .Nm は、指定された C, Pascal, Fortran, .Xr yacc 1 , .Xr lex 1 , lisp のソースから、 .Xr ex 1 コマンド用の .Pa tags ファイルを作成します。 タグファイルは、指定されたオブジェクトが一群のファイル中の どの場所にあるかを示すものです。 タグファイルの各行はオブジェクトの名前、定義されているファイル、 オブジェクトの定義を見つけるための検索パターンを含み、 各々は空白で区切られています。 この .Pa tags ファイルを用いることにより、 .Xr ex 1 でこれらのオブジェクトが定義されている場所をすばやく見つけることが できます。 .Nm に与えられるオプションによりますが、オブジェクトは subroutine、 typedef、 define、 struct、 enum、 union から 構成されます。 .Pp 次のオプションを使用可能です: .Bl -tag -width indent .It Fl B 後方検索パターン .Pq Li ?...? を用います。 .It Fl F 前方検索パターン .Pq Li /.../ を用います(デフォルト)。 .It Fl a 既存の .Pa tags ファイルに追加します。 .It Fl d 引数を持たない .Li #define に関してもタグを作成します。引数を持つ .Li #define は自動的にタグが作成されます。 .It Fl f Ar tagsfile .Ar tagsfile で指定されたファイル名でタグファイルを生成します。 デフォルトでは .Pa tags というファイル名でタグファイルを生成します。 .It Fl t typedef, struct, union, enum 宣言のタグを生成します。 .It Fl u .Pa tags ファイル内の指定されたファイルに関する情報を更新します。 すなわち、関係するファイルへのすべての参照が削除され、新しいタグ情報が ファイルに追加されます。 (注意: このオプションはあまりスピードのでないような実装しか おこなわれていません。単に .Pa tags ファイルを再構築した方が早く終了するでしょう。) .It Fl v .Xr vgrind 1 形式のファイル一覧が標準出力に出力されます。 この一覧はオブジェクト名、ファイル名、1 ページあたり 64 行とした場合の ページ番号から構成されます。 出力は辞書式の順番でソートされているので、この後に .Xr sort 1 を通した方がよいでしょう。次のように使います。 .Bd -literal -offset indent ctags -v files | sort -f > index vgrind -x index .Ed .It Fl w 診断用メッセージを表示しないようにします。 .It Fl x .Nm はオブジェクト名、行番号、ファイル名、その行の内容からなる一覧を作成し、 それを標準出力に出力します。 これはオフラインでも読みやすいように印刷できる簡単な関数一覧として 利用できます。 .El .Pp .Pa .c や .Pa .h で終わる名前のファイルは、 C 言語のソースファイルとみなされ、 C の形式の関数・マクロ定義が検索されます。 .Pa .y で終わる名前のファイルは、 .Xr yacc 1 のソースファイルとみなされます。 .Pa .l で終わる名前のファイルは、最初の空白でない文字が .Ql \&; , .Ql \&( , .Ql \&[ のいずれかであれば Lisp のファイルであるとみなされ、そうでなければ .Xr lex 1 のファイルとみなされます。 その他のファイルは、まず Pascal か Fortran の定義が含まれるか どうかがチェックされ、含まれない場合には C 形式の定義が検索されます。 .Pp C 言語の場合、 .Dq Li main は特別に扱われ、元のソースファイルのパス名部分と末尾の .Pa .c の部分を取り除いたファイル名に対し、その先頭に .Ql M を付加したものをオブジェクト名とします。 これにより、同じディレクトリに複数のプログラムがある場合でも .Nm を実用的に使うことができます。 .Pp .Xr yacc 1 と .Xr lex 1 のファイルには特殊なタグがあります。 .Dq Li yyparse は .Xr yacc 1 ファイルの第二セクションの始まりを示し、 .Dq Li yylex は .Xr lex 1 ファイルの第二セクションの始まりを示します。 .Sh 関連ファイル .Bl -tag -width ".Pa tags" -compact .It Pa tags デフォルトで出力されるタグファイル .El .Sh 診断 .Nm ユーティリティは、エラーが発生すると 1 を返し、それ以外では 0 を返します。 同じ名前のオブジェクトが複数出てきてもエラーとはみなされません。 .Sh 関連項目 .Xr ex 1 , .Xr vi 1 +.Sh 歴史 +.Nm +ユーティリティは +.Bx 3.0 +から登場しました。 .Sh バグ Fortran と Pascal 用の 関数(function)、サブルーチン(subroutine)、手続き(procedure) の認識にはとても単純な方法を用いています。 ブロック構造が解釈できないので、異なるブロックに同じ名前の Pascal 手続きが 存在するとうまく動作しません。 .Nm ユーティリティは Pascal の型(type)も理解しません。 .Pp C か Pascal か Fortran かを判断する方法はとりあえず動いている、という程度のものです。 .Pp .Nm ユーティリティはきちんと整形された入力に頼っています。 また、ソースファイルに文法的な間違いがあると 簡単に混乱してしまいます。 文法的に間違っていなくても混乱する場合があります。 例えば、 .Li #ifdef を理解しないので(バグではなく仕様です)、 .Li #ifdef 内に括弧のつりあっていないコードがあると混乱してしまいます。 同様に、定義が複数行にわたっている場合、オブジェクトの先頭行ではなく 最終行が検索パターンにマッチします。 複数行にわたる .Li typedef に関しても同様です。 -.Sh 歴史 -.Nm -ユーティリティは -.Bx 3.0 -から登場しました。 diff --git a/ja_JP.eucJP/man/man1/cut.1 b/ja_JP.eucJP/man/man1/cut.1 index ba5cbd725a..ff4fc43cd7 100644 --- a/ja_JP.eucJP/man/man1/cut.1 +++ b/ja_JP.eucJP/man/man1/cut.1 @@ -1,123 +1,128 @@ .\" %NetBSD: cut.1,v 1.5 1995/03/26 20:51:25 glass Exp % .\" .\" Copyright (c) 1989, 1990, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" This code is derived from software contributed to Berkeley by .\" the Institute of Electrical and Electronics Engineers, Inc. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. -.\" %FreeBSD: src/usr.bin/cut/cut.1,v 1.9.2.3 2001/07/22 12:40:02 dd Exp % +.\" %FreeBSD: src/usr.bin/cut/cut.1,v 1.9.2.4 2002/07/23 15:13:15 trhodes Exp % .\" .\" @(#)cut.1 8.1 (Berkeley) 6/6/93 -.\" $FreeBSD: doc/ja_JP.eucJP/man/man1/cut.1,v 1.8 2001/05/14 01:07:22 horikawa Exp $ +.\" $FreeBSD$ .\" .Dd June 6, 1993 .Dt CUT 1 .Os .Sh 名称 .Nm cut .Nd ファイルの各行の、指定した部分を取り出す .Sh 書式 .Nm cut .Fl b Ar list .Op Fl n .Op Ar .Nm cut .Fl c Ar list .Op Ar .Nm cut .Fl f Ar list .Op Fl d Ar delim .Op Fl s .Op Ar .Sh 解説 .Nm は、 .Ar file -が指定されていればそのファイルから、指定されていなければ標準入力から -行を読み込み、 +から行を読み込み、 .Ar list の指定に従って選択した部分を取り出して標準出力に出力します。 +.Ar file +引数が指定されない場合もしくはこれが単一のダッシュ +.Pq Sq Fl +の場合、 +.Nm +は標準入力から読み込みます。 .Ar list には、カラム番号、もしくはフィールド番号を指定します。 フィールドは特定の文字で区切られた領域です。 カラム番号およびフィールド番号は 1 から始まります。 .\" フィールド番号が 1 から始まるという記述はオリジナルには無いですが、 .\" 分かりやすくするために補足しました。 .\" By horikawa@isrd.hitachi.co.jp (Nov 9 1996) .Pp .Ar list -には、コンマ (,) もしくは空白で区切られた +オプション引数には、コンマもしくは空白で区切られた 複数の増加方向の番号もしくは番号範囲を指定することができます。 番号範囲は、1 番目の番号、ダッシュ .Pq Sq \- 、2 番目の番号の 3 つの組から構成され、 1 番目の番号から 2 番目の番号までの複数のフィールドもしくは複数のカラムを 選択します。 範囲には 1 番目の番号および 2 番目の番号も含まれます。 番号もしくは番号範囲の前にダッシュをつけた場合には、 1 番目の番号までのすべてのフィールドもしくはカラムも選択します。 番号もしくは番号範囲の後にダッシュをつけた場合には、 最後の番号以降のすべてのフィールドもしくはカラムも選択します。 番号もしくは番号範囲は、 繰り返しても、重なっても、いかなる順番であっても構いません。 また、入力行に指定のフィールドやカラムがない場合、 エラーとはなりません。 .Pp オプションとしては以下のものがあります: .Bl -tag -width indent .It Fl b Ar list バイト単位で指定します。 .It Fl c Ar list 文字単位で指定します。 .It Fl d Ar delim フィールドを区切る文字として .Ar delim を使用します。デフォルトではタブが使用 されます。 .It Fl f Ar list タブで区切られたフィールド単位で指定します。 出力フィールドはタブで区切られます。 .It Fl n マルチバイト文字を分割しません。 .It Fl s 区切り文字のない行を出力しないようにします。このオプションが 指定されてない場合、区切り文字がない行はそのまま出力されます。 .El .Pp .Nm ユーティリティは、成功した場合は 0 を、エラーが起きた場合は 1 を返します。 .Sh 関連項目 .Xr paste 1 .Sh 規格 .Nm ユーティリティは .St -p1003.2 準拠です。 diff --git a/ja_JP.eucJP/man/man1/cvs.1 b/ja_JP.eucJP/man/man1/cvs.1 index 04e935d17d..7029fe8aa0 100644 --- a/ja_JP.eucJP/man/man1/cvs.1 +++ b/ja_JP.eucJP/man/man1/cvs.1 @@ -1,2156 +1,2156 @@ -.\" %FreeBSD: src/contrib/cvs/man/cvs.1,v 1.15.2.3 2001/10/28 21:32:05 peter Exp % +.\" %FreeBSD: src/contrib/cvs/man/cvs.1,v 1.15.2.4 2002/07/16 01:42:18 trhodes Exp % .\" $FreeBSD$ .de Id .ds Rv \\$3 .ds Dt \\$4 .. .TH CVS 1 "\*(Dt" .\" Full space in nroff; half space in troff .de SP .if n .sp .if t .sp .5 .. .\" quoted command .de ` .RB ` "\|\\$1\|" '\\$2 .. .SH "名称" cvs \- コンカレントバージョンシステム .SH "注記" このマニュアルページは .B cvs の機能のまとめですが、より詳細な文書に関しては (このマニュアルページの関連項目の節に記述してあるように) Cederqvist 著のマニュアルを参照して下さい。 .SH "書式" .TP \fBcvs\fP [ \fIcvs_options\fP ] .I cvs_command [ .I command_options ] [ .I command_args ] .SH "解説" .IX "revision control system" "\fLcvs\fR" .IX cvs "" "\fLcvs\fP \- concurrent versions system" .IX "concurrent versions system \- \fLcvs\fP" .IX "release control system" "cvs command" "" "\fLcvs\fP \- concurrent versions system" .IX "source control system" "cvs command" "" "\fLcvs\fP \- concurrent versions system" .IX revisions "cvs command" "" "\fLcvs\fP \- source control" CVS はバージョン制御システムであり、RCS や SCCS のように、 ファイル (通常はソースコード) の古いバージョンの保持と 誰が何時何故変更を施したかなどの記録の保持を可能にします。 同様のシステムとは異なり、 CVS は一時に 1 ファイルや 1 ディレクトリのみを操作対象とするのではなく、 バージョン管理されたファイルを持つディレクトリ集合からなる階層を 操作対象とします。 CVS は、リリース管理を助け、 また複数の作者による並行的なソースファイル編集を助けます。 CVS は、 様々な操作を有効にしたり記録したり制御したりするためにトリガを使用可能であり、 広域ネットワークでうまく動作します。 .SP .B cvs はマスタソースの単一のコピーを保持します。 このコピーはソースの``リポジトリ''と呼ばれます。 これは、以前の ソフトウェアリリースをいつでもシンボリックなリビジョンタグか、 または過去の日付のいずれかに基づいて取り出せるようにするための 全ての情報を含みます。 .SH "不可欠なコマンド" .B cvs はバラエティに富んだコマンドを提供します (書式説明における \fIcvs_command\fP)。 また分散環境での多様なソース管理要求を満たすために、 これらのコマンドの多くにはいくつものオプションが用意されています。 しかしながら、 .BR cvs で便利に仕事をするためにそれぞれの細部に渡ってマスタする 必要はありません。 実際、ソースリポジトリを使う (そしてそれに貢献する) には 5 つの コマンドで充分です。 .TP \fBcvs checkout\fP \fImodules\fP\|.\|.\|. 大部分の \fBcvs\fP での作業のために必要な準備: \fImodules\fP (名前をつけたソースの集合。 ここにはソースリポジトリへの相対パスを 使うこともできます) のソースの私的なコピーを作成します。 他人の作業に邪魔されることなく このコピーで作業することができます。 少なくとも 1 レベルのサブディレクトリが必ず作成されます。 .TP .B cvs update 他の開発者がリポジトリのソースに行った変更を あなたのコピーに 取り込みたいと思ったときに、あなたの私的なソースのディレクトリの \fI中で\fP このコマンドを実行して下さい。 .TP \fBcvs add\fP \fIfile\fP\|.\|.\|. あなたの作業ディレクトリの \fBcvs\fP のレコードに新しいファイルを 載せるには、このコマンドを使います。そのファイルは次にあなたが .` "cvs commit" を実行した時にリポジトリに追加されます。 注意: 新しいソースをソースリポジトリに登録するには .` "cvs import" コマンドを使って下さい。 .` "cvs add" はすでにチェックアウトされているモジュールに新しいファイルを 追加するときにのみ使います。 .TP \fBcvs remove\fP \fIfile\fP\|.\|.\|. (指定するファイルを消した後に) リポジトリからファイルを 消したいことを宣言する場合に、このコマンドを使います。 .` "cvs commit" を実行するまで削除は他へは影響しません。 .TP \fBcvs commit\fP \fIfile\fP\|.\|.\|. あなたの変更をソースリポジトリに取り込むことで、他の開発者へ 変更結果を ``公開'' したいときに、このコマンドを使います。 .SH "オプション" .B cvs のコマンドラインには .IR cvs_options を含めることができ、 これは .B cvs プログラム全体に適用されます。 ひとつの .IR cvs_command がソースリポジトリへの特定の動作を 指定します。 そして .I cvs_command の動作を完全に指定するために .I command_options と .I command_arguments とを含めることができます。 .SP .I 警告: .IR cvs_command とオプションの相対的な位置関係に正確さを 期さなければなりません。 なぜなら同じオプションが .I cvs_options の位置 ( .B cvs コマンドの左側) と .I command_options の位置 ( .B cvs コマンドの右側) のいずれに置かれるかで異なる意味を持つ可能性が あるためです。 .SP .IR cvs_command を省略できる状況が 2 つだけあります: .` "cvs \-H" または .` "cvs --help" は利用可能なコマンドの一覧を引き出します、そして .` "cvs \-v" または .` "cvs --version" は \fBcvs\fP それ自身のバージョン情報を表示します。 .SP .SH "CVS OPTIONS" リリース 1.6 現在、 .B cvs は、短いオプションと共に .SM GNU スタイルの長いオプションもサポートします。 現在はまだ 2, 3 の長いオプションしかサポートされておらず、 それらは同じ意味を持つ短いオプションの後ろにかぎ括弧で囲んで 示されています。 .SP 以下のオプションは .B cvs プログラムの全体的な制御に使います: .TP .B \-H [ --help ] 指定された .I cvs_command の用法を表示します (が、コマンドの実行は行いません)。コマンド名を 指定しないと .` "cvs \-H" は利用可能な全コマンドの要約を表示します。 .TP .B \-Q はコマンドを .I 真に 寡黙にします。コマンドは深刻な問題についてのみ出力を行います。 .TP .B \-q はコマンドをいくぶん静かにします。サブディレクトリを再帰的に 移動する際の報告のような通知的なメッセージが抑制されます。 .TP \fB\-b\fP \fIbindir\fP .SM RCS プログラムが置かれているディレクトリとして .I bindir を使います (CVS 1.9 およびそれ以前)。 環境変数 .SM RCSBIN の設定より優先されます。 これは絶対パス名で指定しなければなりません。 .TP \fB\-d\fP \fICVS_root_directory\fP マスタとなる ソースリポジトリのルートディレクトリへのパス名として .I CVS_root_directory を使います。 環境変数 .SM CVSROOT の設定より優先されます。 これは絶対パスで指定しなければなりません。 .TP \fB\-e\fP \fIeditor\fP ログ情報の入力においてエディタとして .I editor を使います。 環境変数 .SM CVSEDITOR\c , .SM VISUAL\c , .SM EDITOR の設定より優先されます。 .TP .B \-f .B cvs スタートアップファイル (\fI~/.cvsrc\fP) を読み込みません。 .TP .B \-l コマンドヒストリに .I cvs_command のログを取りません (しかし実行はします)。コマンドヒストリに関する 情報については .B history コマンドの説明を参照して下さい。 .TP .B \-n いかなるファイルも変更しません。 .IR cvs_command を実行しようとしますが、 経過報告のみを行います。ファイルへの削除、更新やマージのいずれも 行いませんし、新しいファイルも作成しません。 .TP .B \-t プログラムの実行をトレースします。 .B cvs の動作のステップを示すメッセージを表示します。 不慣れなコマンドの影響の可能性を調べるのに .B \-n との組み合わせで特に有用です。 .TP .B \-r 新しい作業ファイルを読み出し専用にします。 環境変数 .SM CVSREAD がセットされている場合と同じ効果を持ちます。 .TP .B \-R 読み出し専用リポジトリモードをオンにします。 これにより、 anoncvs サーバ上などの読み出し専用リポジトリからのチェックアウトや、 CDROM 上のリポジトリからのチェックアウトが可能になります。 環境変数 .SM CVSREADONLYFS がセットされている場合と同じ効果を持ちます。 また、 .B \-R を使用すると NFS を介したチェックアウトが高速になります。 .TP .B \-v [ --version ] .BR cvs のバージョンと著作権情報を表示します。 .TP .B \-w 新しい作業ファイルを読み書き可能にします (デフォルトです)。 環境変数 .SM CVSREAD がセットされていても無視します。 .TP .B \-g 強制的に、グループ書き込み権限を作業ファイルに付加します。 典型的には、 単一のチェックアウトされたソースツリーを複数ユーザで共有する場合に このオプションを使用し、 各ユーザがより安全な umask でシェルを使用できるようにします。 この機能を使用するためには、 チェックアウトするソースツリーを格納するディレクトリを作成し、 本ディレクトリのグループをプライベートグループに設定し、 本ディレクトリ下のファイルがディレクトリのグループ ID を継承するようにします。 FreeBSD では自動的に、ファイルはディレクトリのグループ ID を継承します。 SysV では、典型的には SGID ビットをディレクトリに設定する必要があります。 チェックアウトしたツリーを共有するユーザは、 このグループに含まれる必要があります。 単一のチェックアウトされたソースツリーを共有するということは、 共通の CVS リポジトリに複数ユーザのアクセスを許すこととまったく異なることに 注意してください。 共通の CVS リポジトリへのアクセスは、 共有グループ書き込み権限によって既に実現されており、 本オプションを必要としません。 本オプションを透過的に使用するためには、 単に 'cvs -g' という行を ~/.cvsrc ファイルに置くだけで良いです。 プライベートグループもしくはプライベートモード 0700 のディレクトリに 全ソースをチェックアウトしたものをファイヤウォールで防御しているのでない限り、 本オプションの使用は勧められません。 .TP .B \-x クライアントとサーバの間の通信を全て暗号化します。 現在では、Kerberos コネクション使用時のみ使用可能です。 .TP \fB\-z\fP \fIcompression\-level\fP ファイルをネットワーク経由でやりとりする際、 圧縮レベル \fIcompression\-level\fP で .B gzip を使い、やりとりするデータの圧縮と伸長を行います。リンクの両端で .SM GNU .B gzip プログラムがその時点でのサーチパス中に存在する必要があります。 .SH "使用法" .` "cvs \-H" で全般のヘルプを要求する場合を除き、 行いたい特定のリリース制御機能を選択するために、 .B cvs に対して一つの .I cvs_command を指定しなければなりません。 各 .B cvs コマンドはそれ自身のオプションと引数の集まりを受け付けます。 しかしながら、多くのオプションが複数のコマンドに渡って利用可能です。 .B \-H オプションをコマンドと共に指定することで、 各コマンドの使用法のまとめを表示することができます。 .SH "CVS のスタートアップファイル" 通常、CVS は起動時にユーザのホームディレクトリから .I .cvsrc というファイルを読み込みます。この起動時の手続きは .B \-f フラグで止めることができます。 .SP .I .cvsrc ファイルには CVS コマンドに引数リストを付けて、1 行に 1 つの コマンドを並べます。例えば \fI.cvsrc\fP に以下のように書くと: .SP diff \-c .SP .` "cvs diff" コマンドには常にコマンドラインで指定されたオプションに加えて \-c オプションが渡されるという意味になります (この場合 .` "cvs diff" を実行すると 全てにおいて context diff 形式が生成されるという 効果を持ちます)。 .SP 大域的なオプションは、\fBcvs\fP キーワードを使用して指定します。 例えば次の .SP cvs \-q .SP は、大域的オプション \-q が指定されたかのように全 .` "cvs" コマンドが動作することを意味します。 .SH "CVS COMMAND のまとめ" 以下は全 .B cvs コマンドの解説を要約したものです: .TP .B add 新しいファイルまたはディレクトリをリポジトリに追加します。 ファイルについては追加を同ファイルに対する .` "cvs commit" が行われるまで待ちます。 以前に .` "cvs checkout" を行うことで作成されたソースの中からのみ実行可能です。 新しいソース階層の全体を .B cvs の制御下に置くには .` "cvs import" を使って下さい。 (リポジトリを直接に変更するものではありません。 作業ディレクトリを変更します。) .TP .B admin ソースリポジトリに対して 制御コマンドを実行します。(リポジトリを直接に変更します。 作業ディレクトリを使用しますが変更は行いません。) .TP .B checkout 編集作業のためのソースファイルの作業ディレクトリを作成します。 (作業ディレクトリを生成または変更します。) .TP .B commit 作業ディレクトリでの変更、追加、削除部分をソースリポジトリに 反映します。(リポジトリを変更します。) .TP .B diff 作業ディレクトリのファイルとソースリポジトリ、または ソースリポジトリ中の 2 つのリビジョン間の差分を表示します。 (リポジトリ、作業ディレクトリのいずれも変更しません。) .TP .B export サイトからの出荷のための一揃いのソースファイルのコピーを用意します。 .` "cvs checkout" と違い .B cvs 管理のためのディレクトリが作られず (そしてそのため .` "cvs export" で作成されたディクトリから .` "cvs commit" を行うことはできません)、 シンボリックタグが指定されなければなりません (リポジトリを変更しません。 作業ディレクトリに似たディレクトリを 作成します)。 .TP .B history ソースリポジトリの特定のファイルまたはディレクトリにあなたや 他の人が実行した .B cvs コマンドを表示します。(リポジトリも作業ディレクトリも変更しません。) ヒストリログは .` "$CVSROOT/CVSROOT/history" ファイルが作成されることで有効になった場合にのみ記録されます。 .BR cvs ( 5 ) を参照して下さい。 .TP .B import 外部で行われた更新内容を ``ベンダブランチ'' としてソースリポジトリに 取り込みます。(リポジトリを変更します。) .TP .B init CVSROOT サブディレクトリとデフォルトの制御ファイルを追加することで、 リポジトリを初期化します。 リポジトリを使用する前に、 本コマンドを使用するか、他の方法でリポジトリを初期化する必要があります。 .TP .B log ログ情報を表示します。 (リポジトリも作業ディレクトリも変更しません。) .TP .B rdiff リポジトリの中の 2 つのリリースの間の差分の集合をパッチファイルとして 用意します。(リポジトリも作業ディレクトリも変更しません。) .TP .B release .` "cvs checkout" をキャンセルし、 全ての変更を捨て去ります。 (作業ディレクトリを削除できます。 リポジトリは変更しません。) .TP .B remove ソースリポジトリからファイルを削除します、そのファイルに .` "cvs commit" が実行されるまで保留されます。(直接リポジトリには影響しません。 作業ディレクトリを変更します。) .TP .B rtag ソースリポジトリの特定のリビジョンのファイルに明示的に シンボリックタグを指定します。 .` "cvs tag" も参照して下さい。 (リポジトリを直接変更します。作業ディレクトリは必要なくまた 変更もしません。) .TP .B status 現在のファイルの状態を表示します: 最新バージョン、作業ディレクトリの ファイルのバージョン、作業バージョンが編集されたかどうか、オプションで .SM RCS ファイル中のシンボリックタグ。(リポジトリ、作業ディレクトリとも 変更しません。) .TP .B tag リポジトリ中のファイルにシンボリックタグを指定します。 デフォルトでは、作業ディレクトリと最後に同期を取ったリビジョンに タグをつけます。 (直接リポジトリを変更します。作業ディレクトリを使いますが 変更はしません。) .TP .B update リポジトリから変更を取り出して作業ディレクトリを最新状態にします。 可能であればマージが自動で行われます。 変更点が衝突しているために手動で解決しなければならない場合は、 警告が表示されます。(作業ディレクトリを変更します。 リポジトリは変更しません。) .SH "共通の COMMAND OPTIONS" この節では 複数の .B cvs コマンドで使用できる .I command_options について説明します。必ずしも全てのコマンドがこれら全てのオプションを サポートしているわけではありません。 コマンドの各オプションは、それが 意味を成すコマンドでのみサポートされます。しかしながら、 コマンドがそれらのオプションのひとつを持つとき、 他のコマンドでもそのオプションが同じ意味を持つと考えて差し支えありません。 (個々のコマンドと共に列挙してある別のオプションは ある .B cvs コマンドと別のコマンドで異なる意味を持つかもしれません。) .I "注意:" .B history コマンドは例外です。 このコマンドは、これら標準のオプションとも衝突するたくさんの オプションをサポートしています。 .TP \fB\-D\fP \fIdate_spec\fP \fIdate_spec\fP 以前のものの中で最も最近のリビジョンを使います (単独の 引数で、日時の表記は過去の日時を指定します)。 多種多様な日時のフォーマットが、 特に ISO ("1972-09-24 20:05") または Internet ("24 Sep 1972 20:05") が サポートされます。 特定のタイムゾーンが指定されていなければ、\fIdate_spec\fP は ローカルタイムゾーンで解釈されます。 ソースファイルの個人的なコピーを作るときに使うと、指定は ``sticky'' と なります。 つまり、\fB\-D\fP を使って作業ファイルを取り出すと、 \fBcvs\fP は指定された日時を記録します。 これは同じディレクトリでのその後の update で同じ日時を使うように するためです (これを明示的に無効にするよう指定していない場合に限ります。 \fBupdate\fP コマンドの説明を参照して下さい)。 .B \-D は .BR checkout ", " diff ", " history ", " export ", " .BR rdiff ", " rtag ", " .B update コマンドで有効です。 有効な日時指定には以下のようなものがあります: .in +1i .ft B .nf 1 month ago 2 hours ago 400000 seconds ago last year last Monday yesterday a fortnight ago 3/31/92 10:00:07 PST January 23, 1987 10:05pm 22:00 GMT .fi .ft P .in -1i .TP .B \-f \fBcvs\fP コマンドに特定の日時かタグを指定した場合、 通常は指定したタグを含まない (または指定した日時に存在しなかった) ファイルを無視します。一致するタグまたは日時が存在しなくても ファイルを取り出したいときは \fB\-f\fP オプションを使います。 (その場合、最も新しいバージョンが使われます。) .B \-f は以下のコマンドで使用できます: .BR checkout ", " export ", " .BR rdiff ", " rtag ", " update .TP \fB\-k\fP \fIkflag\fP デフォルトの キーワード処理を変更します。 \fB\-k\fP オプションは .BR add ", " checkout ", " diff ", " export ", " .BR rdiff ", " update コマンドで使用できます。 ソースファイルの個人的なコピーを作成するときに使うと \fIkflag\fP の指定は ``sticky'' になります。 つまり、このオプションを \fBcheckout\fP か \fBupdate\fP コマンドで指定すると、 \fBcvs\fP は指定した \fIkflag\fP をファイルに関連付け、 他のものを指定するまで、以降の \fBupdate\fP コマンドでそれを使い続けます。 .SP より有用な \fIkflag\fP としては \-ko と \-kb (バイナリファイル用) と \-kv があります。\-kv は .B export の際、どこか別のサイトで後に .B import されてもキーワード情報が残るようにしたい場合に有用です。 .TP .B \-l ローカル; サブディレクトリを再帰的に処理するのではなく、 現ディレクトリでのみ実行します。 以下のコマンドで使用できます: .BR checkout ", " commit ", " diff ", " .BR export ", " remove ", " rdiff ", " rtag ", " .BR status ", " tag ", " update .I 注意: これは .B cvs コマンドの .I 左 に指定することのできる、全体に作用する .` "cvs \-l" オプションとは違います! .TP .B \-n .BR checkout / commit / tag / update のいずれのプログラムも .I 実行しません。 (プログラムはそれぞれの動作中にモジュールデータベースで 実行することを指定される可能性があり、このオプションはこれを バイパスします。) .BR checkout ", " commit ", " export ", " .B rtag コマンドで利用できます。 .I 警告: これは .B cvs コマンドの .I 左側 に指定できる、全体に作用する .` "cvs \-n" オプションと同じではありません。 .TP .B \-P .BR checkout " か " update によって更新されたことで空になった余分なディレクトリを 取り除きます (すなわち削除します)。 通常は、空のディレクトリ (リビジョン管理されたファイルを 含まないもの) は残されます。 .B \-P を指定すると、チェックアウトしたソースからそういったディレクトリを 黙って削除します。 これはリポジトリからはディレクトリを削除しません。あなたが チェックアウトしたコピーから削除するだけです。 このオプションは .B \-r か .B \-D オプションが .BR checkout " と " export で指定された場合に暗黙のうちに 指定されることに注意して下さい。 .TP .B \-T (ローカル) リポジトリからのコピーにより、CVS/Template を作成/更新します。 本オプションは、ローカルの cvs リポジトリを管理し、 リモートのリポジトリへコミットする開発者にとって有用です。 CVS/Template を維持することにより、 リモートコミットにおいても依然として、 適切なテンプレートをコミットエディタセッションに立ち上げ可能となります。 .BR checkout " と " update で利用可能です。 .TP .B \-p リポジトリから取り出されたファイルを、カレントディレクトリに 書き込むのではなく、標準出力へパイプします。 .BR checkout " と " update コマンドで使用できます。 .TP \fB\-r\fP \fItag\fP デフォルトの ``head'' リビジョンの代わりに引数 .I tag で指定されたリビジョンを使います。 \fBtag\fP と \fBrtag\fP コマンドで 付けられた任意のタグと共に、常に 2 つの特別なタグが使用できます: .` "HEAD" はリポジトリ中で最も新しい有効なバージョンを指し、 そして .` "BASE" はカレントの作業ディレクトリに最後にチェックアウトした リビジョンを指します。 .SP このオプションを .` "cvs checkout" か .` "cvs update" でファイルのコピーを作成するときに使うと、 \fItag\fP の指定は ``sticky'' です: \fBcvs\fP は \fItag\fP を記憶して以降の \fBupdate\fP コマンドでも、他のものを 指定するまで、それを使い続けます。 .I tag としては シンボリックまたは番号によるものが使用できます。 .SM RCS ファイルが指定されたタグを含んでいないときに警告メッセージを抑止するため 全体に作用する .B \-q オプションをコマンドオプション .B \-r と一緒に指定すると便利な場合が多くあります。 .B \-r は .BR checkout ", " commit ", " diff ", " .BR history ", " export ", " .BR rdiff ", " rtag ", " update コマンドで使用できます。 .I 警告: これは .B cvs コマンドの .I 左側 に指定し、全体に作用する .` "cvs \-r" オプションと同じではありません。 .SH "CVS COMMANDS" 以下が (最終的な) 全 .B cvs コマンドの詳細とそれぞれが受け付けるオプションです。 各コマンドの最初のサマリ行の説明は 3 種類の事柄をまとめています: .TP 1i \ \ \ \ コマンドのオプションと引数 特別なオプションが以下で説明されます。共通のコマンドオプションは サマリ行にしか現れないかもしれません。 .TP 1i \ \ \ \ 作業ディレクトリかリポジトリか? いくつかの \fBcvs\fP コマンドは実行に作業ディレクトリが必要です。 いくつかはリポジトリが必要です。同様に、いくつかのコマンドは リポジトリを \fI変更し\fP、いくつかは作業ディレクトリを変更し、 いくつかは何の変更も行いません。 .TP 1i \ \ \ \ 同義語 多くのコマンドには同義語があります。 同義語は正式な名前よりも覚えやすい (あるいはタイプしやすい) と 感じることでしょう。 .PP .TP \fBadd\fP [\fB\-k\fP \fIkflag\fP] [\fB\-m '\fP\fImessage\fP\fB'\fP] \fIfiles.\|.\|.\fP .I 以下が必要: リポジトリ、作業ディレクトリ。 .br .I 以下を変更: 作業ディレクトリ。 .br .I 同義語: .B new .br .B add コマンドを使って ソースリポジトリに新しいファイルまたはディレクトリを作成します。 .B add で指定されるファイルまたはディレクトリは、すでに カレントディレクトリ ( .B checkout コマンドで作成されたディレクトリでなければなりません) に 存在しなければなりません。 新しいディレクトリ階層の全体をソースリポジトリに追加する (例えば、サードパーティのベンダから受け取ったファイル群のような) には、 代わりに .` "cvs import" コマンドを使います。 .SP .` "cvs add" の引数が直下のサブディレクトリを指しているなら、そのディレクトリが ソースリポジトリの現位置に作成され、必要な .B cvs 管理ファイルが作業ディレクトリに作成されます。 ディレクトリがすでにソースリポジトリに存在した場合でも、 .` "cvs add" はあなたのバージョンのディレクトリに管理ファイルを作成します。 これによって、あなたがソースを .B checkout した後に誰か他の人がディレクトリを作っていても .` "cvs add" でそのディレクトリをあなたの私的なソースに作成することが 可能になります。以下のようにすることができます: .SP .in +1i .ft B .nf example% mkdir new_directory example% cvs add new_directory example% cvs update new_directory .fi .ft P .in -1i .SP .` "cvs update" を使った別のアプローチもあります: .SP .in +1i .ft B .nf example% cvs update -d new_directory .fi .ft P .in -1i .SP (新しく \fIできた\fP ディレクトリをあなたの作業ディレクトリに 追加するには、おそらく .` "cvs checkout" か .` "cvs update -d" を使用する方が簡単でしょう。) .SP .` "cvs commit" で変更が恒久的なものとされるまで、追加されたファイルは ソースリポジトリには置かれません。 .` "cvs remove" コマンドで削除されたファイルに対して .` "cvs add" を行うと、間で .` "cvs commit" コマンドが実行されていなければファイルが復活します。 .SP 新しいファイルを .` "cvs commit" で恒久的なものにするときに、いつものように、ログメッセージを指定する 機会があります。もしファイルの .I 作成 と対応するもう一つのログメッセージを指定したいならば (例えば、ファイルの目的を説明するなど)、 .B add コマンドの .` "\-m \fImessage\fP" オプションで指定することができます。 .SP .` "-k kflag" オプションで このファイルがチェックアウトされるときの デフォルトを指定できます。 引数 .` "kflag" は .SM RCS ファイルに記録されて .` "cvs admin" で変更することができます。 展開された キーワードを持たないであろうバイナリをチェックインする場合には .` "-ko" を指定すると便利です。 .TP \fBadmin\fP [\fIrcs-options\fP] \fIfiles.\|.\|.\fP .I 以下が必要: リポジトリ、作業ディレクトリ。 .br .I 以下を変更: リポジトリ。 .br .I 同義語: .B rcs .br これは .BR rcs ( 1 ) に似た管理機構と対応する .B cvs のインタフェースです。 なんのフィルタや変換も行いません。 しかしながら、このコマンドは再帰的に働きます。よって使用には 特別な注意を払わなければいけません。 .TP \fBcheckout\fP [\fBoptions\fP] \fImodules\fP.\|.\|. .I 以下が必要: リポジトリ。 .br .I 以下を変更: 作業ディレクトリ。 .br .I 同義語: .BR co ", " get .br .IR modules で指定されたソースファイルのコピーを持つ 作業ディレクトリを作成します。他の大部分の .B cvs コマンドは作業ディレクトリに作用するものなので、これらを使う前に .` "cvs checkout" を実行しなくてはなりません。 .SP \fImodules\fP はいくつかのソースディレクトリとファイルを 集めたものに対するシンボル名 (それ自体は .` "modules" というモジュールとしてソースリポジトリに定義されています。 .BR cvs ( 5 ) 参照) か、あるいはリポジトリ中でのディレクトリまたはファイルへのパス名です。 .SP 指定した .I modules に応じて、 .B checkout は再帰的にディレクトリを作成して適切なソースファイルで満たします。 その後はいつでも、(他のソフトウェア開発者達がソースの彼らの分のコピーを 編集しているかどうかを気にすることなく) これらのソースファイルを編集したり、 他の人によってソースリポジトリに行われた新しい変更を取り込むために これらを更新 (update) したり、 あなたの作業を恒久的な変更としてリポジトリに 登録 (commit) することができます。 .SP .B checkout はディレクトリの作成に使われることに注意して下さい。 作成されるディレクトリのトップレベルは常に .B checkout が起動されたディレクトリに追加され、そして通常、指定された .IR module と同じ名前を持ちます。 .I module がエイリアスの場合は、作成されたサブディレクトリは違う名前を持つかも しれませんが、それがサブディレクトリであること、そして .B checkout はファイルが私的な作業領域に取り出される際に各ファイルへの 相対パスを表示すること (全体に作用する .B \-Q オプションを指定していなければ) は当てにできます。 .SP すでに以前の .B checkout で作成されているディレクトリで .` "cvs checkout" を実行することも許されています。これは 以下で説明する .B update コマンドに .B \-d オプションを指定するのと同じ効果を持ちます。 .SP .` "cvs checkout" で使える .I options は以下の標準のコマンドオプションです。 .BR \-P ", " \-f ", " .BI \-k " kflag" \&, .BR \-l ", " \-n ", " \-p ", " .BR \-r .IR tag ", " .BI \-D " date"\c .SP これらに加えて、以下の特別のコマンドオプションを .BR checkout で使うことができます: .SP .B \-A オプションで sticky なタグ、日付または .B \-k オプションをリセットできます。(作業ファイルを \fB\-r\fP, \fB\-D\fP, \fB\-k\fP オプションのいずれかを使って取り出すと、 \fBcvs\fP は対応するタグ、日付、\fIkflag\fP を記録して以降の 更新 (update) でそれを使い続けます。 \fB\-A\fP オプションを使って \fBcvs\fP に それらの指定を忘れさせ、ファイルの ``head'' バージョンを取り出します)。 .SP .BI \-j " branch" オプションはベースとなったリビジョンと、そこから変更された結果の リビジョンとの差分をマージします (例えば、もしタグがブランチを 指しているときは、 .B cvs は、そのブランチで行われた全ての変更を作業ファイルにマージします)。 .SP 2 つの \fB-j\fP オプションを指定すると、 .B cvs は 2 つの各々のリビジョン間での変更をマージします。 これは特定の差分を作業ファイルから ``削除'' するために使うことが できます。 .SP 加えて、各 \fB-j\fP オプションをブランチで使う場合に必要であれば 日時指定を加えることができ、選択するリビジョンを指定した日時以内に 制限できます。 日時を加える場合はタグにコロン (:) を付けて指定します。 例としては .` "cvs import" でローカルな変更と衝突する部分のあるソースを import するときに 実行するように指示されるコマンドがあります: .SP .in +1i .ft B .nf example% cvs checkout -jTAG:yesterday -jTAG module .fi .ft P .in -1i .SP .B \-N オプションと .` "\-d \fIdir\fP" を指定することで作業ディレクトリでモジュールのパスが短縮されるのを 防げます。(通常、明示的に対象ディレクトリを指定すると \fBcvs\fP は なるべくパスが短くなるようにします。) .SP .B \-c オプションで、作業ディレクトリのファイルやディレクトリに作成や変更を 行う代わりに、モジュールファイルをソートしたものを標準出力にコピー します。 .SP .BI \-d " dir" オプションで、モジュール名ではなく、 .I dir で指定した名前のディレクトリを作業ファイルのために作成します。 \fB\-N\fP を一緒に指定しない場合は、\fIdir\fP の下に作成されるパスは 可能な限り短くなります。 .SP .B \-s オプションを使って .B \-s オプションでモジュールファイルに格納されたモジュール単位の ステータス情報を表示します。 .TP \fBcommit\fP [\fB\-lnR\fP] [\fB\-m\fP '\fIlog_message\fP' | \fB\-f\fP \fIfile\fP] [\fB\-r\fP \fIrevision\fP] [\fIfiles.\|.\|.\fP] .I 以下が必要: 作業ディレクトリ、リポジトリ。 .br .I 以下を変更: リポジトリ。 .br .I 同義語: .B ci .br 作業ディレクトリでの変更を共有のソースリポジトリに組み込むにときには .` "cvs commit" を使います。 .SP コミットする対象となる \fIfiles\fP を指定しない場合、現在の 作業ディレクトリ中の全ファイルが調べられます。 .B commit はあなたが本当に変更したファイルだけを慎重にリポジトリで変更します。 デフォルトでは (または明示的に .B \-R オプションを指定した場合)、サブディレクトリのファイルも 調べられ、もし変更されていればコミットされます。 .B \-l オプションで現ディレクトリのみ .B コミット するように制限できます。 変更されていなくても強制的にファイルをコミットしたい場合があるかも しれません。 これは .B \-f フラグで可能で、これは同時に再帰も抑止します (もちろん .B \-R で再帰するようにできます)。 .SP .B commit は選択されたファイルがソースリポジトリの現リビジョンに対して 最新であることを確認します。 もし選択されたファイルのいずれかが まず .` "cvs update" で最新にされなければならないなら、そこで通知してコミットせずに終ります。 .B commit は .B update コマンドを呼び出しません。update すべきときであるかどうかの判断は ユーザにゆだねられます。 .SP 全てがうまくいくと、ログメッセージを入力するためにエディタが 呼び出されます。ログメッセージは一つかそれ以上のログを取る プログラムに書き込まれて ソースリポジトリのファイルに置かれます。 代わりにコマンドラインで .B \-m オプションと共にログメッセージを指定し、 エディタの呼び出しを抑制することができます。また .B \-F オプションで引数の \fIfile\fP にログメッセージが含まれていることを 指示することもできます。 .SP .B \-r オプションで特定のシンボリックまたは番号で指定される リビジョンとしてコミットできます。 例えば、全ファイルを リビジョン ``3.0'' に上げる (変更されていないものも含めて) には、以下のようにします: .SP .in +1i .ft B .nf example% cvs commit -r3.0 .fi .ft P .in -1i .SP .B cvs はメインの幹上のリビジョン (ドットが 1 つのリビジョン) へのコミットのみ 許します。 しかしながら、 .B \-r オプションでブランチ上のリビジョン (偶数個のドットをもつリビジョン) へ コミットすることもできます。 ブランチとなるリビジョンを作成するには、通常 .BR rtag " または " tag コマンドの .B \-b オプションを使います。 その後、 .BR checkout " または " update のいずれかでソースのベースを新しく作成したブランチにすることができます。 それ以降、それらの作業ファイルで行われた全ての .B commit される変更点は自動的にブランチのリビジョンに追加され、 それによって主たる開発ラインが混乱させられることはありません。 例をあげると、製品のバージョン 1.2 へのパッチを作成しなければ ならなくなったとすると、バージョン 2.0 がすでに開発中だったとしても、 以下のようにできます: .SP .in +1i .ft B .nf example% cvs rtag -b -rFCS1_2 FCS1_2_Patch product_module example% cvs checkout -rFCS1_2_Patch product_module example% cd product_module [[ hack away ]] example% cvs commit .fi .ft P .in -1i .SP 極めて実験的なソフトウェアを開発しているとして、 前の週にチェックアウトしたなんらかのリビジョンをベースにしていると します。 あなたのグループの別の人がこのソフトウェアであなたと一緒に作業したいが、 主たる開発ラインの邪魔はしたくないと考えたなら、あなたはあなたの 変更点を新しいブランチにコミットすると良いでしょう。 すると別の人はあなたの実験的な変更をチェックアウトして .B cvs の衝突解決機能を最大限に利用することができます。 シナリオは以下のようになります: .SP .in +1i .ft B .nf example% cvs tag -b EXPR1 example% cvs update -rEXPR1 [[ hack away ]] example% cvs commit .fi .ft P .in -1i .SP 別の人は単純に .` "cvs checkout -rEXPR1 whatever_module" とすれば実験的な変更を採り入れてあなたと作業できるようになります。 .TP \fBdiff\fP [\fB\-kl\fP] [\fIrcsdiff_options\fP] [[\fB\-r\fP \fIrev1\fP | \fB\-D\fP \fIdate1\fP | \fB\-j\fP \fIrev1:date1\fP] [\fB\-r\fP \fIrev2\fP | \fB\-D\fP \fIdate2\fP | \fB\-j\fP \fIrev2:date2\fP]] [\fIfiles.\|.\|.\fP] .I 以下が必要: 作業ディレクトリ、リポジトリ。 .br .I 以下を変更: なにも変更しません。 .br 作業ディレクトリのファイルとソースリポジトリのリビジョンを .` "cvs diff" コマンドで比較できます。もし特定のリビジョンを指定しなければ、 ベースにしたリビジョンと比較されます。 標準の .B cvs コマンドのオプション .B \-r で比較の対象となるリビジョンを指定することもできます。 最後に、 .B \-r を 2 回 使うと、リポジトリの 2 つのリビジョン間の差分を取ることができます。 (head ブランチの) 過去のリビジョンとの差分を取るために .B \-D オプションを指定することもできます。 また、過去のブランチタグ間の差分を取るために .B \-j オプションを指定することもできます。 .B \-r と .B \-D と .B \-j オプションは常に指定された中で 2 つまでを組み合わせられます。 .SP 他の使用可能なオプションについては .BR rcsdiff ( 1 ) を参照して下さい。 .SP ファイルを何も指定しないと、 .B diff は現ディレクトリ (そして、標準オプション .BR \-l を指定していなければ そのサブディレクトリ) の全てのファイルについて、 ソースリポジトリの対応するリビジョンと異なっているもの (つまり .I あなたが 変更したファイル) または指定されたリビジョンと 異なっているものについて、その差分を表示します .TP \fBexport\fP [\-\fBf\|lNnQq\fP] \fB\-r\fP \fIrev\fP\||\|\fB\-D\fP \fIdate\fP [\fB\-d\fP \fIdir\fP] [\fB\-k\fP \fIkflag\fP] \fImodule\fP.\|.\|. .I 以下が必要: リポジトリ。 .br .I 以下を変更: 現ディレクトリ。 .br このコマンドは .` "cvs checkout" の一種です。 \fBcvs\fP の管理ディレクトリを持たない \fImodule\fP のソースのコピーが必要なときに使います。 例えば、サイト外にソースを出す準備をするために .` "cvs export" を使うことができます。 このコマンドでは日付またはタグを指定することが \fI必要\fP です。 (\fB\-D\fP または \fB\-r\fP によって)。それによって出荷したソースを 確実に再構成できるようになります。 .SP 標準でないオプションは .` "\-d \fIdir\fP" (ソースをディレクトリ \fIdir\fP に書き込みます) と .` "\-N" (モジュールパスを短縮しません) のみです。 これらは .` "cvs checkout" の同名のオプションと同じ意味を持ちます。 .SP .B export が使われるときは .B \-kv オプションが有用です。 これによって キーワードが、どこか別のサイトで .B import が行われたときにリビジョン情報が失われないような形に展開されるように なります。 他の \fIkflag\fP を .` "cvs export" で使用することもできます。その説明は .BR co ( 1 ) にあります。 .TP \fBhistory\fP [\fB\-\fP\fIreport\fP] [\fB\-\fP\fIflags\fP] [\fB\-\fP\fIoptions args\fP] [\fIfiles\fP.\|.\|.] .I 以下が必要: .` "$CVSROOT/CVSROOT/history" ファイル。 .br .I 以下を変更: 何も変更しません。 .br \fBcvs\fP はヒストリファイルを管理しており、各 \fBcheckout\fP, \fBcommit\fP, \fBrtag\fP, \fBupdate\fP, \fBrelease\fP コマンドの使用を記録します。 .` "cvs history" を使って、この情報を色々なフォーマットで表示することができます。 .SP .I 警告: .` "cvs history" は .` "\-f", .` "\-l", .` "\-n", .` "\-p" を .SM 共通の COMMAND OPTIONS\c \&での説明とは異なる意味に使用します。 .SP いくつかのオプション (上で \fB\-\fP\fIreport\fP となっている部分) は どんな種類のレポートを生成するかを制御します: .TP 1i .B \ \ \ \ \ \ \-c 今までの各 \fBcommit\fP (つまりリポジトリの変更) についてレポートします。 .TP 1i \fB\ \ \ \ \ \ \-m\fP \fImodule\fP 特定の \fImodule\fP についてレポートします。(コマンドラインで複数の \fB\-m\fP を指定できます。) .TP 1i .B \ \ \ \ \ \ \-o チェックアウトされたモジュールについてレポートします。 .TP 1i .B \ \ \ \ \ \ \-T 全てのタグについてレポートします。 .TP 1i \fB\ \ \ \ \ \ \-x\fP \fItype\fP 特定のレコードタイプ \fIX\fP のセットを \fBcvs\fP ヒストリから 取り出します。タイプは 1文字で表され、組み合わせて指定できます。 以下のコマンドは単一のレコードタイプを持ちます: \fBcheckout\fP (タイプ `O')、 \fBrelease\fP (タイプ `F')、\fBrtag\fP (タイプ `T')。 \fBupdate\fP は 4 つのレコードタイプのうちの 1 つになります: `W' は 作業用のファイルのコピーが update で (それがリポジトリから無くなって いたために) 削除された場合です; `U' は作業ファイルがリポジトリから コピーされた場合です; `G' は必要なマージが無事に終った場合です; 'C' は マージが必要だが衝突が検出された場合 (手動でのマージが必要な場合) です。 また、\fBcommit\fP では 3つのレコードタイプのうちの 1つになります: `M' はファイルが変更された場合; `A' はファイルが最初に追加された場合; `R' はファイルが削除された場合です。 .TP 1i .B \ \ \ \ \ \ \-e 全て (全レコードタイプ); 以下を指定するのと等価です。 .` "\-xMACFROGWUT" .TP 1i \fB\ \ \ \ \ \ \-z\fP \fIzone\fP ヒストリレコードを出力する際に .I zone で指定されたタイムゾーンを使います。 .B LT というゾーン名はローカルタイムの意味になります。 数値によるオフセットは時分での UTC との時差を意味します。 例えば、 .B +0530 は 5 時間と 30 分だけ UTC より前 (つまり東側) の意味になります。 .PP .RS .5i \fB\-\fP\fIflags\fP と書かれた部分のオプションは、レポートする範囲を絞ります。 引数の指定はありません。 .RE .TP 1i .B \ \ \ \ \ \ \-a 全てのユーザのデータを表示します (デフォルトでは .` "cvs history" を実行しているユーザのみのデータを表示します)。 .TP 1i .B \ \ \ \ \ \ \-l 最後の変更のみ表示します。 .TP 1i .B \ \ \ \ \ \ \-w .` "cvs history" が実行されているのと同じ作業ディレクトリから行われた変更に関する レコードのみを表示します。 .PP .RS .5i \fB\-\fP\fIoptions args\fP と書かれた部分のオプションは引数に 基づいてレポート範囲を絞ります: .RE .TP 1i \fB\ \ \ \ \ \ \-b\fP \fIstr\fP 文字列 \fIstr\fP をモジュール名、ファイル名、リポジトリパスの いずれかに含むレコードに戻って表示します。 .TP 1i \fB\ \ \ \ \ \ \-D\fP \fIdate\fP \fIdate\fP 以降のデータを表示します。 .TP 1i \fB\ \ \ \ \ \ \-p\fP \fIrepository\fP 特定のソースリポジトリのデータを表示します (複数の \fB\-p\fP オプションを同じコマンド行で指定できます)。 .TP 1i \fB\ \ \ \ \ \ \-r\fP \fIrev\fP 個々の RCS ファイルに現れるリビジョンが \fIrev\fP で指定されたリビジョンまたはタグ以降であるレコードを表示します。 各 .SM RCS ファイルについてリビジョンまたはタグが検索されます。 .TP 1i \fB\ \ \ \ \ \ \-t\fP \fItag\fP \fItag\fP で指定されるタグがヒストリファイルに最後に 追加されてからのレコードを表示します。 このオプションは、 .SM RCS ファイルではなくヒストリファイルのみ参照する点で 上記の \fB-r\fP フラグと異なり、 より高速です。 .TP 1i \fB\ \ \ \ \ \ \-u\fP \fIname\fP \fIname\fP で指定されるユーザのレコードを表示します。 .PP .TP \fBimport\fP [\fB\-\fP\fIoptions\fP] \fIrepository vendortag releasetag\fP.\|.\|. .I 以下が必要: リポジトリ、ソース配布物のディレクトリ。 .br .I 以下を変更: リポジトリ。 .br .` "cvs import" を使うことで外部の供給元 (例えばソースベンダ) からのソース配布物 全体をあなたのソースリポジトリのディレクトリへ取り込めます。 最初のリポジトリの作成と、外部の供給元からのモジュールへの 大規模な更新の両方にこのコマンドを使うことができます。 .SP 引数 \fIrepository\fP で CVS ルートディレクトリ下のリポジトリ用 ディレクトリ名 (またはディレクトリへのパス) を与えます。 もしディレクトリが存在しないなら、\fBimport\fP が作成します。 .SP あなたのソースリポジトリで (前回の \fBimport\fP から) 変更された ソースへの更新に \fBimport\fP を使った場合、開発の 2 本のブランチで 衝突しているファイルについて警告します。 \fBimport\fP が指示するように、 .` "cvs checkout -j" を使って差分を調整できます。 .SP デフォルトでは、ある種のファイル名が .` "cvs import" で無視されます: .SM CVS 管理、または他の一般的なソース管理システムに関連する名前; パッチファイル、オブジェクトファイル、アーカイブファイル、 エディタのバックアップファイルのための一般的な名前; そして雑多なユーティリティの加工品であることを示すその他の名前。 無視されるファイルのリストの最新については、 (このマニュアルページの関連項目の節に記述してあるように) Cederqvist 著のマニュアルを参照して下さい。 .SP 外部からのソースは第一レベルの ブランチ、デフォルトでは .` "1.1.1" に保存されます。 以降の更新は このブランチのリーフになります。 例えば、最初に import したソース集合からのファイルはリビジョン .` "1.1.1.1" になり、 次の import による更新でファイルはリビジョン .` "1.1.1.2" になり、以下同様に続きます。 .SP 最低で 3 つの引数が必要です。ソースの集合を識別するために \fIrepository\fP が必要です。\fIvendortag\fP はブランチ全体を示す タグになります (例えば .` "1.1.1" と対応します)。 .` "cvs import" を実行する度にリーフとしてできるファイルを 識別するために少なくとも一つの \fIreleasetag\fP も指定しなければ なりません。 .SP .B cvs の標準のコマンドオプションのうちの 1 つ \fB\-m\fP が利用可能です: ログメッセージを \fB\-m\fP で指定しないと、(\fBcommit\fP でのように) メッセージを 入力できるようにエディタが起動されます。 .SP さらに 3 つの特別なオプションがあります。 .SP .` "\-d" を使って、各ファイルの最終更新日時がチェックインの日付と時刻として 使われるよう指示できます。 .SP .` "\-b \fIbranch\fP" を使って第一レベルのブランチを .` "1.1.1" 以外に指定できます。 .SP .` "\-I \fIname\fP" を使って \fBimport\fP 中に無視されるべきファイル名を指定できます。 このオプションは繰り返して指定できます。 いかなるファイルも無視されない (デフォルトで無視されるものでも) ようにするには、 .` "\-I !" と指定します。 .TP \fBlog\fP [\fB\-l\fP] \fIrlog-options [files\fP\|.\|.\|.] .I 以下が必要: リポジトリ、作業ディレクトリ。 .br .I 以下を変更: 何も変更しません。 .br .I 同義語: .B rlog .br \fIfiles\fP のログ情報を表示します。 \fBrlog\fP のオプションの中でも有用なものとしては、次のものがあります: ヘッダ (タグの定義を含むが、ログの大部分は省略される) のみ表示する \fB\-h\fP ; 特定のリビジョンまたはリビジョンの範囲でログを選択する \fB\-r\fP; そして特定の日時または時刻の範囲を選択する \fB\-d\fP が あります。完全な説明は .BR rlog ( 1 ) を参照して下さい。 このコマンドは .B \-l オプションが指定されていなければ、デフォルトで再帰的に働きます。 .TP \fBrdiff\fP [\fB\-\fP\fIflags\fP] [\fB\-V\fP \fIvn\fP] [\fB\-r\fP \fIt\fP|\fB\-D\fP \fId\fP [\fB\-r\fP \fIt2\fP|\fB\-D\fP \fId2\fP]] \fImodules\|.\|.\|.\fP .I 以下が必要: リポジトリ。 .br .I 以下を変更: 何も変更しません。 .br .I 同義語: .B patch .br 2 つのリリース間の .BR patch ( 1 ) ファイルを Larry Wall 氏のフォーマットで作成します。それは直接 .B patch プログラムに入力できるもので、古いリリースを新しいリリースに更新する ために使えます。 (これは直接リポジトリを参照するため、これに先立って .BR checkout する必要のない、数少ない \fBcvs\fP コマンドのうちの 1 つです。) 差分出力は標準出力デバイスに送られます。 (標準の \fB\-r\fP と \fB\-D\fP オプションを 使って) 1 つまたは 2 つのリビジョンまたは日時の任意の組み合わせを指定できます。 もしリビジョンまたは日時が 1 つしか指定されないと、 そのリビジョンまたは日時とその時点での .SM RCS ファイルの ``head'' リビジョンの差分がパッチファイルに反映されます。 .SP もしソフトウェアリリースへの影響が複数ディレクトリにわたるなら、 古いソースにパッチを当てる際、 .B patch が他のディレクトリに置かれたファイルを見つけられるように、 .B \-p オプションを .B patch コマンドに指定する必要があるかもしれません。 .SP 標準オプションの \fIflags\fP \fB\-f\fP、\fB\-l\fP が このコマンドで利用可能です。他にもいくつかの 特別なオプションフラグがあります: .SP .B \-s オプションを指定すると、パッチ出力が作られません。 代わりに、2 つのリリース間で変更または追加されたファイルの要約が 標準出力デバイスに送られます。 これは、例えば、2 つの日付またはリビジョンの間で、どのファイルが 変更されたかを調べるのに便利です。 .SP .B \-t オプションを指定すると、新しい方から 2 つのリビジョンの差分が 標準出力デバイスに送られます。これはファイルへの最後の変更が 何であったかを知るのに最適です。 .SP .B \-u オプションを指定すると、パッチ出力として新しい ``unidiff'' フォーマットを使って文脈差分とします。 .SP 希望するなら、 .B \-c を使って明示的に .` "diff \-c" 形式の文脈差分を指定できます (こちらがデフォルトです)。 .TP \fBrelease\fP [\fB\-dQq\fP] \fImodules\fP\|.\|.\|. .I 以下が必要: 作業ディレクトリ。 .br .I 以下を変更: 作業ディレクトリ、ヒストリログ。 .br このコマンドは .` "cvs checkout' の効果を安全にキャンセルすることになっています。 .B cvs はファイルをロックしないので、厳密にはこのコマンドを使用する必要は ありません。 単に作業ディレクトリを削除しても構いません。 しかし忘れているかも知れない変更を失う危険があり、そして .B cvs ヒストリファイルには捨ててしまったチェックアウトの記録は残りません。 .SP .` "cvs release" を使うとこれらの問題を回避できます。 このコマンドは以下の点をチェックします: コミットされていない変更が存在しないこと、 \fBcvs\fP の作業ディレクトリの直上または内部から実行していること、 ファイルが記録されたリポジトリがモジュールデータベースに 定義されたリポジトリと同じであること、です。 .SP これらの条件が全て真なら .` "cvs release" は その実行記録 (意図的にチェックアウトを削除した証拠) を .B cvs のヒストリログに残します。 .SP \fB\-d\fP フラグを使ってソースの作業用コピーを \fBrelease\fP が 成功したら削除するように指示できます。 .TP \fBremove\fP [\fB\-lR\fP] [\fIfiles\|.\|.\|.\fP] .I 以下が必要: 作業ディレクトリ。 .br .I 以下を変更: 作業ディレクトリ。 .br .I 同義語: .BR rm ", " delete .br このコマンドを使って、\fIfiles\fP をソースリポジトリから削除する つもりであることを宣言できます。大部分の .B cvs コマンドがそうであるように、 .` "cvs remove" は作業ディレクトリのファイルに作用し、リポジトリには直接には 作用しません。安全機構として、まず指定するファイルを作業ディレクトリ から削除することも必要になっています。 .SP リポジトリに .BR commit で変更を反映するまで、ファイルは実際には削除されません。 commit した時点で、ソースリポジトリの対応する .SM RCS ファイルが .` "Attic" ディレクトリ (これもソースリポジトリの中です) に .I 移動 されます。 .SP このコマンドはデフォルトで再帰的になっており、 物理的に削除された全てのファイルが次の .BR commit での削除されるようにスケジュールします。 .B \-l オプションを使うか、または実際に削除したいファイルのみを 指定することで、この再帰を抑制できます。 .TP \fBrtag\fP [\fB\-f\|alnRQq\fP] [\fB\-b\fP] [\fB\-d\fP] [\fB\-r\fP \fItag\fP | \fB\-D\fP \fIdate\fP] \fIsymbolic_tag\fP \fImodules\|.\|.\|.\fP .I 以下が必要: リポジトリ。 .br .I 以下を変更: リポジトリ。 .br .I 同義語: .B rfreeze .br このコマンドを使って、リポジトリ中の特定の、明示的に 指定されたソースバージョンにシンボリックタグを割り当てられます。 .` "cvs rtag" はリポジトリの内容に直接に作用します (これに先立って .BR checkout する必要はありません)。 作業ディレクトリの内容に基づいて タグを付けるバージョンを選択するには、代わりに .` "cvs tag" を使います。 .SP 一般に、タグ (しばしばソフトウェア配布物のシンボリックな 名前でもある) は削除されるべきではありません。 しかし完全に廃れてしまったシンボリックな名前を削除する場合 (例えば、 アルファリリースの場合など) の手段として、 .B \-d オプションが用意されています。 .SP .` "cvs rtag" はすでに存在するタグを移動しません。 しかしながら、\fB\-F\fP オプションが指定されると .` "cvs rtag" はそのファイルに既に存在する \fIsymbolic_tag\fP のインスタンスを 新しいリポジトリのバージョンへ移動します。 \fB\-F\fP オプションが無い場合、 .` "cvs rtag" を使ってすでにそのファイルに存在するタグを付けようとすると、 エラーメッセージが出力されます。 .SP \fB-b\fP オプションはタグを ``ブランチ'' タグにし、並行の、 独立した開発を可能にします。 これは以前にリリースしたソフトウェア配布物へのパッチを作成するのに 最も有用です。 .SP 標準の \fB\-r\fP と \fB\-D\fP オプションを使って、すでに特定の タグを含んでいるファイルのみにタグを付けることができます。 この方法はタグの名前を変えるのに使えるでしょう: 古いタグで指定されるファイルにのみタグを付け、 それから古いタグを削除すれば、確実に同じファイルで古いタグを 新しいタグで置き換えることができます。 .SP .B rtag はデフォルトで再帰的に実行し、引数で指定した \fImodules\fP の全てのサブディレクトリにタグをつけます。 この動作を トップレベルのディレクトリに制限するには標準の \fB\-l\fP オプションを 指定します。 また明示的に再帰を指定するには \fB\-R\fP を指定します。 .SP モジュールデータベースではタグが指定されたときに必ず実行される プログラムを指定できます。よくある使い方は、興味を持っている グループに電子メールを送るというものです。もしそのプログラムを バイパスしたい場合は、標準の \fB\-n\fP オプションを使います。 .SP .B \-a オプションを使うと .` "Attic" の中の指定されたタグを含む削除されたファイルを .B rtag の対象にできます。 タグはそれらのファイルから削除され、開発の進展につれての シンボリックタグの再利用に便利になります (そしてファイルは以降の 配布物から削除されます)。 .TP \fBstatus\fP [\fB\-lRqQ\fP] [\fB\-v\fP] [\fIfiles\fP\|.\|.\|.] .I 以下が必要: 作業ディレクトリ、リポジトリ。 .br .I 以下を変更: 何も変更しません。 .br \fIfiles\fP の現在の状態について、``sticky'' なタグ、 日付、\fB\-k\fP オプションを含む、ソースリポジトリに関する 簡潔なレポートを表示します。(``sticky'' オプションはリセットするまで .` "cvs update" がどう働くかを規定します。 .` "cvs update \-A\|.\|.\|." の説明を参照して下さい。) .SP このコマンドを用いて、作業用ソースディレクトリでの .` "cvs update" による潜在的な影響を予測することもできます。 もし \fIfiles\fP を明示的に指定しないと、\fBcvs\fP が 作業ディレクトリに置いた全てのファイルについてレポートが 表示されます。 この検索の範囲を (そのサブディレクトリではなく) カレントディレクトリ だけに制限するには、標準の \fB\-l\fP オプションフラグを使います。 \fB\-R\fP オプションによって、明示的に再帰的なステータスレポートを 指定することもできます。 .SP .B \-v オプションを指定すると .SM RCS ファイルのシンボリックタグも表示されるようになります。 .TP \fBtag\fP [\fB\-lQqR\fP] [\fB\-F\fP] [\fB\-b\fP] [\fB\-d\fP] [\fB\-r\fP \fItag\fP | \fB\-D\fP \fIdate\fP] [\fB\-f\fP] \fIsymbolic_tag\fP [\fIfiles\fP\|.\|.\|.\|] .I 以下が必要: 作業ディレクトリ、リポジトリ。 .br .I 以下を変更: リポジトリ。 .br .I 同義語: .B freeze .br このコマンドは、作業ディレクトリに最も近いリポジトリのバージョンに シンボリックタグをつけるために使います。\fBrtag\fP を 使ったときのように、タグはリポジトリに直接つけられます。 .SP タグの使い方の一つは、プロジェクトのソフトウェア凍結日が やってきたときに開発中のソースの ``snapshot'' を記録するというものです。 凍結した日の後でバグが修正されたら、それらの変更されたリリースの 一部となるソースのみに再度タグをつける必要があります。 .SP シンボリックタグはどのファイルのどのリビジョンがソフトウェア配布物を 作成する際に使われたかを恒久的に記録する意味があります。 .BR checkout , .B export , .B update コマンドは、タグをつけたリリースと全く同じものを、リリースのタグが つけられて以降にファイルが変更、追加、削除されたかどうかを気にする ことなく、将来のいつでも取り出すことを可能にします。 .SP 標準の \fB\-r\fP と \fB\-D\fP オプションを使って、すでに特定の タグを含んでいるファイルのみにタグを付けることができます。 この方法はタグの名前を変えるのに使えます。 すなわち、 古いタグで指定されるファイルにのみタグを付け、 それから古いタグを削除すれば、確実に同じファイルで古いタグを 新しいタグで置き換えることができます。 .SP \fB\-r\fP または \fB\-D\fP フラグに加えて \fB\-f\fP フラグを 指定すると、コマンドラインで指定したファイルで古いタグを 持っていないか指定された日時に存在しなかったものにもタグを 付けます。 .SP デフォルト (\fB\-r\fP または \fB\-D\fP フラグが無い場合) では、 バージョンは明示的に指定されるのではなく、暗黙のうちに作業ファイルの ヒストリの \fBcvs\fP レコードから取られます。 .SP .` "cvs tag \-d \fIsymbolic_tag\fP\|.\|.\|." とすると、指定したシンボリックタグが追加されるのではなく .I 削除 されます。\fI警告\fP: タグを削除する前にその根拠をしっかり確認して下さい。 これは効率的に一部の履歴情報を捨てますが、後になってその情報が重要だったと 判明するかも知れないからです。 .SP .` "cvs tag" はすでに存在するタグを移動しません。 しかしながら、\fB\-F\fP オプションが指定されると .` "cvs tag" はそのファイルに既に存在する \fIsymbolic_tag\fP のインスタンスを 新しいリポジトリのバージョンへ移動します。 \fB\-F\fP オプションが無い場合、 .` "cvs tag" を使って すでにそのファイルに存在するタグを付けようとすると エラーメッセージが出力されます。 .SP \fB-b\fP オプションはタグを ``ブランチ'' タグにし、並行して、 独立した開発を可能にします。 これは以前にリリースしたソフトウェア配布物へのパッチを作成するために 最も有効です。 .SP 通常、 .B tag はサブディレクトリに渡って再帰的に実行します。これは 標準の \fB\-l\fP オプションを使って抑制できます。 明示的に再帰を指定するには \fB\-R\fP を使います。 .TP \fBupdate\fP [\fB\-ACdf\|lPpQqR\fP] [\fB\-d\fP] [\fB\-r\fP \fItag\fP|\fB\-D\fP \fIdate\fP] \fIfiles\|.\|.\|.\fP .I 以下が必要: リポジトリ、作業ディレクトリ。 .br .I 以下を変更: 作業ディレクトリ。 .br あなたが共有のリポジトリから私的なソースのコピーを作成するために .B checkout を実行した後も、別の開発者は共有のソースへの変更を続けるでしょう。 時々、開発過程で都合のいいときに、作業ディレクトリ内から .B update コマンドを使うことで、 最後に .B checkout または .BR update してからソースリポジトリに登録された変更を、あなたの変更と 融合させることができます。 .SP .B update は進行状況をファイルごとに 1 行表示することで知らせ続けます。 各行の先頭には以下の .` "U A R M C ?" のいずれか 1 文字があり、ファイルの状態を示しています: .TP 1i \fBU\fP \fIfile\fP file はリポジトリに関して \fI最新に\fP なりました。 これはリポジトリには存在するがあなたのソースには無いもの、 およびあなたは変更していないけれどもリポジトリの 最新リビジョンでは無いものに関して行われます。 .TP 1i \fBA\fP \fIfile\fP file はソースのあなたの私的なコピーに \fI追加\fP されたもので、 file に対して .` "cvs commit" を実行したときに ソースリポジトリに追加されます。 これは当該ファイルを commit する必要があるという助言です。 .TP 1i \fBR\fP \fIfile\fP これはソースのあなたの私的なコピーから file が \fI削除\fP されており、 file に対して .` "cvs commit" を実行すると ソースリポジトリから削除されることを示します。 これは当該ファイルを commit する必要があるという助言です。 .TP 1i \fBM\fP \fIfile\fP あなたの作業ディレクトリの file は \fI変更\fP されています。 .` "M" は作業中のファイルについて 2 つの状態のうちの 1 つを示します: リポジトリ中の対応するファイルは変更されておらず、あなたのファイルは 最後に見たときのままになっている。 または、あなたのコピー同様 リポジトリのものも変更されているが、それらの変更は 衝突することなく無事にあなたの作業ディレクトリに \fI融合 (merge)\fP されました。 .TP 1i \fBC\fP \fIfile\fP \fIfile\fP へのあなたの変更とソースリポジトリからの変更との 融合を試みる間に \fI衝突 (conflict)\fP が検出されました。 現在 \fIfile\fP (あなたの作業ディレクトリのコピー) は 2 つのバージョンをマージした結果になっています。 変更されていない あなたのファイルのコピーも作業ディレクトリに、 `\fB.#\fP\fIfile\fP\fB.\fP\fIversion\fP' という名前で置かれます。 ここで .I version は あなたの変更したファイルの出発点となった リビジョンです。 (ある種のシステムでは、 \& .` ".#" で始まるファイルは何日かアクセスされないと自動的に削除されるので 注意して下さい。もし元のファイルのコピーを取っておくつもりなら、 名前を変えておくのが良いでしょう。) .TP 1i \fB?\fP \fIfile\fP \fIfile\fP が あなたの作業ディレクトリにありますが、 ソースリポジトリのどれとも対応しておらず、 \fBcvs\fP が無視するファイルのリストにもありません (\fB\-I\fP オプションの説明を参照して下さい)。 .PP .RS .5i .SP .B \-A オプションを用いて sticky なタグ、日付、 .B \-k オプションをリセットできます。(\fB\-r\fP, \fB\-D\fP, \fB\-k\fP オプションの いずれかを使って作業ファイルのコピーを得ると、 \fBcvs\fP は対応するタグ、日付、\fIkflag\fP を記憶し、 以降の update で それを使い続けます。\fB\-A\fP オプションを使って \fBcvs\fP にそれらの指定を忘れさせることで、ファイルの ``head'' バージョンを取り出します)。 .SP \fB\-j\fP\fIbranch\fP オプションは、変更結果のリビジョンと ベースにしたリビジョンの間での変更をマージします (例えば、もしタグがブランチを指しているなら、 .B cvs は、そのブランチで行われた全ての変更をあなたの作業ファイルにマージします)。 .SP 2 つの \fB-j\fP オプションを指定すると、 .B cvs は 2 つの それぞれのリビジョン間での変更をマージします。 これは特定の変更を作業ファイルから ``削除'' するのに使えます。 例えば、ファイル foo.c がリビジョン 1.6 をベースにしていて、 1.3 と 1.5 の間で行われた変更を削除したいなら、次のようにします: .SP .in +1i .ft B .nf example% cvs update -j1.5 -j1.3 foo.c # 順番に注意... .fi .ft P .in -1i .SP 加えて、各 \fB-j\fP オプションにはオプションで、ブランチと使う場合に、 日付指定を含めることが可能で、選択するリビジョンを指定した 日付の範囲内に制限できます。 オプションの日付はコロン (:) をタグに付けることで指定します。 .SP .in +1i .ft B .nf -jSymbolic_Tag:Date_Specifier .fi .ft P .in -1i .SP .B \-d オプションを使うと、もし作業ディレクトリに無いディレクトリが リポジトリにあれば作成します。(通常、update は作業ディレクトリに すでに登録されているディレクトリとファイルのみに働きます。) これは最初の \fBcheckout\fP 以降に作成されたディレクトリを 更新するのに有用です。しかし不幸にも副作用があります。 もし作業ディレクトリを作る際に慎重にリポジトリ中の特定の ディレクトリを除いた (モジュール名を使ったか明示的に必要な ファイルとディレクトリをコマンドラインで指定したかのいずれかで) とすると、 .B \-d で更新するとそれらの不要かも知れないディレクトリができてしまいます。 .SP \fB\-I\fP \fIname\fP を使うと、update の際、名前が \fIname\fP に符合する (作業ディレクトリの) ファイルを無視します。 コマンドラインで \fB\-I\fP を 2 回以上指定することで、 複数の無視するファイルを指定できます。 デフォルトで、\fBupdate\fP はあるパターンに名前がマッチするファイルを 無視します; 無視されるファイル名の最新リストについては、 (このマニュアルページの関連項目の節に記述してあるように) Cederqvist 著のマニュアルを参照して下さい。 .SP いずれのファイルも無視しないようにするには .` "\-I !" を使います。 .SP ローカルで修正したファイルを、 リポジトリ上のクリーンなファイルで上書きするには、 .` "\-C" を使います (修正されたファイルは `\fB.#\fP\fIfile\fP\fB.\fP\fIrevision\fP' に保存されます)。 .SP 標準の \fBcvs\fP コマンドオプション \fB\-f\fP, \fB\-k\fP, \fB\-l\fP, \fB\-P\fP, \fB\-p\fP, \fB\-r\fP も \fBupdate\fP で使用可能です。 .RE .SH "関連ファイル" より詳細な .B cvs サポートファイルの情報については .BR cvs ( 5 ) を参照して下さい。 .LP .I ホームディレクトリのファイル: .TP \&.cvsrc .B cvs の初期化ファイル。このファイルの行は各 .B cvs コマンドのデフォルトのオプションの指定に使えます。例えば .` "diff \-c" と言う行は .` "cvs diff" に対して、コマンドラインで渡されたオプションに、常に .B \-c オプションが加えられて渡されることを指定します。 .TP \&.cvswrappers リポジトリのファイル CVSROOT/cvswrappers で指定されている ものに加えて使用されるラッパを指定します。 .LP .I 作業ディレクトリのファイル: .TP CVS \fBcvs\fP 管理ファイルのディレクトリ。 .I 削除してはいけません。 .TP CVS/Entries 作業ディレクトリのファイルのリストと状態。 .TP CVS/Entries.Backup .` "CVS/Entries" のバックアップ。 .TP CVS/Entries.Static フラグ: .` "cvs update" でそれ以上エントリを追加しません。 .TP CVS/Root チェックアウトしたときのリポジトリ ( .SM CVSROOT ) 位置へのパス名。 .SM CVSROOT 環境変数が設定されていない場合、このファイルが代わりに使用されます。 このファイルの内容と .SM CVSROOT 環境変数が異なっていると警告メッセージが出されます。 .SM CVS_IGNORE_REMOTE_ROOT 環境変数が設定されていると、このファイルは上書きされることがあります。 .TP CVS/Repository ソースリポジトリ中の対応するディレクトリへのパス名。 .TP CVS/Tag ディレクトリ毎の ``sticky'' なタグまたは日付情報を保持しています。 このファイルは .B \-r か .B \-D を .B checkout または .B update コマンドに指定して、ファイルが指定されなかったときに作成/更新されます。 .TP CVS/Checkin.prog .` "cvs commit" 時に実行するプログラム名。 .TP CVS/Update.prog .` "cvs update" 時に実行するプログラム名。 .LP .I ソースリポジトリ中のファイル: .TP $CVSROOT/CVSROOT リポジトリ全体の管理ファイルのディレクトリ。 .TP CVSROOT/commitinfo,v .` "cvs commit" のリクエストを選別するプログラムを登録します。 .TP CVSROOT/cvswrappers,v ファイルをリポジトリにチェックインそしてリポジトリから チェックアウトするときに使用される .B cvs ラッパコマンドを登録します。 ラッパはファイルまたはディレクトリが CVS で入出力される際に 処理を行うことを可能にします。使い道はいろいろありますが、 その一つとして、C のファイルをチェックインする前に再フォーマットして、 リポジトリ中のコードの見た目を揃えるというものがあります。 .TP CVSROOT/editinfo,v .` "cvs commit" のログエントリの編集/確認用プログラムを登録します。 .TP CVSROOT/history \fBcvs\fP 処理のログファイル。 .TP CVSROOT/loginfo,v .` "cvs commit" のログエントリをパイプで渡すプログラムを登録します。 .TP CVSROOT/modules,v このリポジトリ中のモジュールを定義します。 .TP CVSROOT/rcsinfo,v .` "cvs commit" 操作中に使用するテンプレートへのパス名を登録します。 .TP CVSROOT/taginfo,v .` "cvs tag" と .` "cvs rtag" での確認/ログ採集のためのプログラムを登録します。 .TP MODULE/Attic 削除されたソースファイルのためのディレクトリ。 .TP #cvs.lock ソースリポジトリに微妙な変更を行っているときに .B cvs が作成するロックディレクトリ。 .TP #cvs.tfl.\fIpid\fP リポジトリの一時的なロックファイル。 .TP #cvs.rfl.\fIpid\fP 読み出しロック。 .TP #cvs.wfl.\fIpid\fP 書き込みロック。 .SH "環境変数" .TP .SM CVSROOT .B cvs ソースリポジトリのルートへのフルパス名 ( .SM RCS ファイルが保存されている場所) を指定します。 この情報は大部分のコマンドの実行で \fBcvs\fP から参照できなければなりません。 もし .SM CVSROOT が設定されていないか、それを上書き指定したい場合は、 コマンドライン上で与えることができます: .` "cvs \-d \fIcvsroot cvs_command\fP\|.\|.\|." もし \fBcvs\fP バイナリのコンパイル時に正しいパスが指定されているなら .SM CVSROOT を設定しなくて構いません。 .TP .SM CVSREAD これがセットされていると、 .B checkout と .B update は作業ディレクトリのファイルを読み出し専用にするべく努力します。 これがセットされていないときは、デフォルトでは作業ファイルの 変更が許可されます。 .TP .SM CVSREADONLYFS これがセットされていると、 .B \-R オプションが仮定され、 .B cvs の動作が読み出し専用リポジトリモードになります。 .TP .SM RCSBIN .BR co ( 1 ) や .BR ci ( 1 ) といった .SM RCS のプログラムが置かれている場所へのフルパス名を指定します (CVS 1.9 またはそれ以前)。 .TP .SM CVSEDITOR .BR commit 中にログメッセージの記録に使われるプログラムを指定します。 設定されていないと、 .SM VISUAL と .SM EDITOR の環境変数が (この順序で) 試されます。 どちら も設定されていないなら、システム依存のデフォルトエディタ (例えば .BR vi ) が使用されます。 .TP .SM CVS_IGNORE_REMOTE_ROOT この変数がセットされていると .B cvs は CVS/Root ファイル中のリモートのリポジトリへの参照を全て 無視します。 .TP .SM CVS_OPTIONS .B cvs のデフォルトオプションを指定します。 これらのオプションは、 スタートアップファイル (\fI~/.cvsrc\fP) の読み込み前に解釈されます。 また、コマンドラインパラメータにより明示的に上書き可能です。 .TP .SM CVS_RSH .B cvs サーバを開始するときに使用するリモートシェルコマンドの 名前を決定します。 この変数が設定されていない場合は -.` "rsh" +.` "ssh" が使用されます。 .TP .SM CVS_SERVER .B cvs サーバコマンドの名前を指定します。 この変数が設定されていない場合は .` "cvs" が使用されます。 .TP .SM CVSWRAPPERS .` "cvswrappers" スクリプトは、 リポジトリの .SM CVSROOT/cvswrappers とユーザのホームディレクトリの ~/.cvswrappers に 含まれるデフォルトのラッパに加え、 変数 .SM CVSWRAPPERS を参照して、ラッパファイルの名前を決定します。 .SH "作者" .TP Dick Grune .B comp.sources.unix にポストされ、1986 年 12 月のリリース volume6 に収められたオリジナルの .B cvs シェルスクリプト版の作者。 .B cvs の衝突を解決するアルゴリズムの大部分を作成しました。 .TP Brian Berliner .B cvs プログラム自身のコーディングとデザインを 1989 年 4 月に、Dick によるオリジナルをベースにして行いました。 .TP Jeff Polk Brian を助けて .B cvs のモジュールとベンダブランチのサポートをデザインしました。 そして .BR checkin ( 1 ) シェルスクリプト ( .` "cvs import" の祖先) の作者でもあります。 .TP ここに書くには多くの人が他にもいます。 .SH "関連項目" CVS の最も包括的なマニュアルは Per Cederqvist らによる Version Management with CVS です。 システムによっては、 .B info cvs コマンドで閲覧できたり、 cvs.ps (postscript), cvs.texinfo (texinfo のソース), cvs.html が 利用可能かもしれません。 .SP CVS の更新、ドキュメントに関するさらなる情報、 CVS 関連のソフトウェア、CVS の開発等については、下記をご覧ください: .in +1i .B http://www.cyclic.com .B http://www.loria.fr/~molli/cvs-index.html .in -1i .SP .BR ci ( 1 ), .BR co ( 1 ), .BR cvs ( 5 ), .BR cvsbug ( 8 ), .BR diff ( 1 ), .BR grep ( 1 ), .BR patch ( 1 ), .BR rcs ( 1 ), .BR rcsdiff ( 1 ), .BR rcsmerge ( 1 ), .BR rlog ( 1 ). .SH 日本語訳 野首 寛高(h-nokubi@nmit.mt.nec.co.jp): FreeBSD 用に翻訳 .br 酒井 淳嗣(sakai@jp.freebsd.org): FreeBSD 版の校正 diff --git a/ja_JP.eucJP/man/man1/dd.1 b/ja_JP.eucJP/man/man1/dd.1 index 7513a9cc0c..235ae7abea 100644 --- a/ja_JP.eucJP/man/man1/dd.1 +++ b/ja_JP.eucJP/man/man1/dd.1 @@ -1,355 +1,354 @@ .\" Copyright (c) 1990, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" This code is derived from software contributed to Berkeley by .\" Keith Muller of the University of California, San Diego. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)dd.1 8.2 (Berkeley) 1/13/94 -.\" %FreeBSD: src/bin/dd/dd.1,v 1.15.2.3 2002/04/10 02:11:37 keramida Exp % +.\" %FreeBSD: src/bin/dd/dd.1,v 1.15.2.4 2002/07/14 21:39:26 keramida Exp % .\" .\" $FreeBSD$ .Dd January 13, 1994 .Dt DD 1 .Os .Sh 名称 .Nm dd .Nd ファイルのコンバートおよびコピー .Sh 書式 .Nm dd .Op Ar operands ... .Sh 解説 .Nm ユーティリティは、標準入力を標準出力にコピーします。入力データは ブロック単位 (デフォルトでは 512 バイト) で読み書きされます。 入力データのブロック数が短かった場合は、何回か読み込みを行い、 ブロック数単位にまとめて出力します。 終了時に、 .Nm は、入力と出力の各々について、ブロック単位で処理できたブロック数と 最終ブロックを満たさず半端になったブロック数を 標準エラー出力に表示します。ブロック単位の変換で切り捨てられた 入力レコードがあった場合には、そのブロック数も表示します。 .Pp 以下のオペランドが利用可能です: -.\" XXX -.Bl -tag -width of=file +.Bl -tag -width ".Cm of Ns = Ns Ar file" .It Cm bs Ns = Ns Ar n 入出力両方のブロックサイズを .Ar n バイトに設定します。 .Cm ibs , obs の指定に優先します。 .Cm noerror , .Cm notrunc , .Cm sync 以外の変換指定がない場合は、入力ブロック数が小さい場合のまとめ処理なしで 入力ブロックを出力ブロックに 1 ブロック単位でコピーします。 .It Cm cbs Ns = Ns Ar n 変換レコードサイズを .Ar n バイトにします。 レコード指向の変換が指定された場合には変換レコードサイズが必要です。 .It Cm count Ns = Ns Ar n 入力のうち .Ar n 個のブロックだけをコピーします。 .It Cm files Ns = Ns Ar n .Ar n 個の入力ファイルをコピーします。このオペランドは入力デバイスが テープのときだけ有効です。 .It Cm ibs Ns = Ns Ar n 入力ブロックのサイズを、デフォルトの 512 バイトに代えて .Ar n バイトにします。 .It Cm if Ns = Ns Ar file 標準入力のかわりに .Ar file から入力を行います。 .It Cm iseek Ns = Ns Ar n 入力ファイルの .Ar n ブロック目にシークします。 .Cm skip Ns = Ns Ar n と同じです。 .It Cm obs Ns = Ns Ar n 出力ブロックのサイズをデフォルトの 512 バイトに代えて .Ar n バイトにします。 .It Cm of Ns = Ns Ar file 標準出力のかわりに .Ar file に対し出力を行います。 .Cm notrunc が指定されないかぎり、普通の出力ファイルでは最後の 1 ブロックサイズに 満たないデータは切り詰められます。 出力ファイルの最初の部分がシークされて通り過ぎる場合は ( .Cm oseek オペランド参照) 出力ファイルは そこまで切り詰められます。 .It Cm oseek Ns = Ns Ar n 出力ファイルの .Ar n ブロック目にシークします。 .Cm seek Ns = Ns Ar n と同じです。 .It Cm seek Ns = Ns Ar n コピーする前に、出力側ファイルの開始位置を先頭から .Ar n ブロックだけ進めます。出力がテープデバイスでない場合は、 .Xr lseek 2 システムコールを使ってシークが実行され ます。テープデバイスの場合は、既存のブロックを読み捨てる事で指定位置まで 進める処理を実行します。もしユーザがテープデバイスに対し読み込みのアクセス権 を持っていないときは、テープデバイスに対する .Xr ioctl 2 システムコールを使います。シーク処理がファイルの最後を超えて行われる場合は、 ファイルの末尾から指定のシーク位置に相当する部分まで .Dv NUL データのブロックを挿入します。 .It Cm skip Ns = Ns Ar n コピーする前に、入力側ファイルの開始位置を先頭から .Ar n ブロックだけ進めます。入力がシーク機能を持っているなら、 .Xr lseek 2 システムコールが使用されます。シーク機能がなければ、既存のブロックを 読み捨てる事で指定位置まで進める処理を実行します。入力がパイプから渡される 場合は、正確に指定されたバイト数が読まれます。 それ以外のデバイスでは、読まれたブロックのサイズが指定のブロックサイズに 満たない物や完全な物の区別をせずに、正確に指定されたブロック数が 読まれます。 .It Cm conv Ns = Ns Ar value Ns Op , Ns Ar value ... .Cm value に以下のリストから 1 つのシンボルを指定して変換を行います。 .Bl -tag -width ".Cm unblock" .It Cm ascii , oldascii レコードの変換を行う前に .Tn EBCDIC から .Tn ASCII への文字コード変換を行います。そのほかは .Cm unblock と同じです。 (これらの指定では .Cm cbs も指定されている場合は暗黙の内に .Cm unblock も指定された事になります。) .Tn ASCII 用に 2 つの変換マップがあります。 .Cm ascii は .At V 互換の お奨め変換マップです。 .Cm oldascii は昔の .At および .No pre- Ns Bx 4.3 reno システムで使われていた変換マップです。 .It Cm block 入出力のブロック境界に関係なく、入力を newline (改行) もしくは end-of-file (ファイル末) で区切られる可変長レコード列として 扱います。各入力レコードは .Cm cbs で指定する長さの固定長レコードに変換されます。 変換するレコード・サイズより短い入力レコードは space (空白) で パディングされます。変換するレコード・サイズより長い入力レコードは 長い部分が切り捨てられます。切り捨てがあった入力レコード数は、 もしあれば、コピーの終了時に標準エラー出力に表示されます。 .It Cm ebcdic , ibm , oldebcdic , oldibm レコードが変換された後で .Tn ASCII から .Tn EBCDIC への変換を行う以外は .Cm block と同じです。 (これらの指定では .Cm cbs も指定されている場合は暗黙の内に .Cm block も指定された事になります。) .Tn EBCDIC 用に 4 つの変換マップがあります。 .Cm ebcdic は .At V 互換の お奨め変換マップです。 .Cm ibm は微妙に違う変換マップで、 .At V で変換に .Cm ibm を指定した場合に相当します。 .Cm oldebcdic と .Cm oldibm は、昔の .At および .No pre- Ns Bx 4.3 reno システムで使われていた変換マップです。 .It Cm lcase 英大文字を小文字に変換します。 .It Cm noerror 入力にエラーがあっても処理を止めないようにします。入力エラーが 起こったときは、診断メッセージに続けて その時の入力と出力の ブロック数を、正常動作終了時に表示するメッセージと同じ フォーマットで標準エラー出力に表示します。 もし .Cm sync 変換も指定されていた場合は、入力データのうち失われた物を .Dv NUL バイト (ブロック指向の変換のときは space) に置き換えて、 通常の入力バッファとして処理します。 .Cm sync 変換が指定されていなければ、その入力ブロックは出力から削除されます。 テープかパイプ以外の入力ファイルでは、ファイル・オフセットは .Xr lseek 2 を使ってエラーの発生したブロック以降にも設定されます。 .It Cm notrunc 出力ファイルを切り詰めません。 これによって出力ファイルのブロックの内で明らかに .Nm によって書き込まれる部分以外は保存されます。 .Cm notrunc はテープではサポートされません。 .It Cm osync 最後の出力ブロックを出力ブロックサイズを満たすようにパディングします。 もし変換後に入力ファイルが出力ブロックサイズの整数倍でなかった場合に、 書き込む際に一定サイズのブロックが必要なデバイスで使う時のため、 最後の出力ブロックが直前のブロックと同じなるようにします。 このオプションは .Cm bs Ns = Ns Ar n によるブロックサイズ指定とは両立しません。 .It Cm sparse 一つ以上の出力ブロックが .Dv NUL バイトのみからなる場合、 .Dv NUL で埋める代りに、必要な空間だけ出力ファイルのシークを試みます。 結果として、疎なファイルとなります。 .It Cm swab 入力データを 2 バイトごとのペアとみなし、入れ替えます。入力が奇数 バイトだった場合、最後のデータはそのままになります。 .It Cm sync 各入力ブロックを入力バッファ・サイズになるようにパディングします。 パディングには、ブロック指向の変換の場合は空白を、そうでなければ .Dv NUL バイトを使います。 .It Cm ucase 英小文字を大文字に変換します。 .It Cm unblock 入出力のブロック境界に関係なく、入力を固定長レコード列として扱います。 入力レコードの長さは .Cm cbs オペランドで指定します。 データの後ろにパディングされている space を除去して newline をつけます。 .El .El .Pp サイズの指定は 10 進・ 8 進・ 16 進のバイト数が期待されます。 数字の最後に .Dq Li b , .Dq Li k , .Dq Li m , .Dq Li g , .Dq Li w をつけた場合、 その数字に、 512, 1024 (1K), 1048576 (1M), 1073741824 (1G), integer (整数) に格納されるバイト数が、それぞれ乗ぜられます。 2 つ以上の数字を .Dq x でつないだ物を積の意味で使用できます。 .Pp 終了時に、 .Nm は、きちんともしくは部分的に入出力を行ったブロックの数、 切り詰められた入力レコードの数、奇数長のバイト入れ換えを行った ブロックの数を標準エラー出力に表示します。 部分的入力ブロックとは、入力ブロックサイズより少なく読まれた 物のことです。 部分出力ブロックとは、出力ブロックサイズより少なく書かれた 物のことです。 テープデバイスで部分出力ブロックが出た場合は致命的なエラーとみなされます。 それ以外の場合は、そのブロックの残りが書かれます。 キャラクタ・デバイスで部分出力ブロックが出た場合は警告メッセージが出ます。 切り詰められた入力ブロックとは、可変長レコード指向の変換が 指定され入力行が変換レコードに合わせるには長すぎるか newline で 終っていない場合の物です。 .Pp 通常、入力または変換の もしくは両方の結果のデータは 指定されたサイズの出力ブロックに集められます。 入力データが最後に達した場合、残っている出力データはブロックとして 出力されます。これは、最後の出力ブロックのサイズは 出力ブロックサイズより短くなる可能性がある事を意味します。 .Pp .Nm が .Dv SIGINFO ( .Xr stty 1 の引数 .Dq status 参照) シグナルを受けた場合、その時点の入出力ブロック数を標準エラー出力に 通常の処理完了時と同じフォーマットで出力します。 .Nm が .Dv SIGINT シグナルを受けた場合、その時点の入出力ブロック数を標準エラー出力に 通常の処理完了時と同じフォーマットで出力して .Nm は終了します。 .Sh 診断 .Ex -std .Sh 関連項目 .Xr cp 1 , .Xr mt 1 , .Xr tr 1 .Sh 規格 .Nm ユーティリティは .St -p1003.2 規格のスーパセットです。 .Cm files オペランドおよび、 .Cm ascii , .Cm ebcdic , .Cm ibm , .Cm oldascii , .Cm oldebcdic , .Cm oldibm は \*[Px] 規格を拡張しています。 diff --git a/ja_JP.eucJP/man/man1/ed.1 b/ja_JP.eucJP/man/man1/ed.1 index bff6893d0e..881e46a52a 100644 --- a/ja_JP.eucJP/man/man1/ed.1 +++ b/ja_JP.eucJP/man/man1/ed.1 @@ -1,903 +1,959 @@ -.\" %FreeBSD: src/bin/ed/ed.1,v 1.17.2.11 2002/07/02 00:59:37 keramida Exp % +.\" %FreeBSD: src/bin/ed/ed.1,v 1.17.2.12 2002/07/14 21:40:34 keramida Exp % .\" .\" $FreeBSD$ .Dd May 21, 1993 .Dt ED 1 .Os .Sh 名称 .Nm ed , .Nm red .Nd 行指向のテキストエディタ .Sh 書式 .Nm ed .Op Fl .Op Fl sx .Op Fl p Ar string .Op Ar file -.LP .Nm red .Op Fl .Op Fl sx .Op Fl p Ar string .Op Ar file .Sh 解説 .Nm ユーティリティは、行指向のテキストエディタです。 本コマンドを用いることで、テキストファイルの生成、表示、変更その他の操作を 行なうことができます。 .Nm red として起動された場合、エディタは .Qq 制限 モードで動作します。 唯一の違いは、 .Ql \&! .Nm ( ed がシェルコマンドと解釈) で開始または .Ql \&/ を含むファイル名の使用を制限することです。 カレントディレクトリ外の編集を妨げるのは、 ユーザがカレントディレクトリに対して書き込み権限が無い場合だけです。 ユーザがカレントディレクトリに対して書き込み権限がある場合、 カレントディレクトリにシンボリックリンクを作成可能であり、 シンボリックリンクが指すファイルをユーザが編集することを .Nm red は妨げません。 .Pp .Ar file 引数を指定して本コマンドを起動すると、ファイル .Ar file のコピーをエディタのバッファに読み込みます。 以後の変更はそのコピーに対して行なわれ、 .Ar file で指定したファイル自身が直接変更されることはありません。 .Nm コマンドを終了する際、 .Em w コマンドで明示的にセーブしなかった変更点はすべて失われます。 .Pp 編集は、 .Em コマンド モードと .Em 入力 モードの 2 つの異なるモードを使い分けて行ないます。 .Nm を起動したら、まずコマンドモードに入ります。 本モードでは、標準入力からコマンドを読み込み、それを実行することで エディタバッファの内容操作を行ないます。 典型的なコマンドは、以下のようなものです。 .Pp .Sm off .Cm ,s No / Em old Xo .No / Em new .No / Cm g .Xc .Sm on .Pp これは、編集しているテキストファイル中に .Em old という文字列があったら、これらをすべて文字列 .Em new に置き換えるコマンドです。 .Pp .Em a (append)、 .Em i (insert)、あるいは .Em c (change) といった入力コマンドが入力された場合、 .Nm -は入力モードに移行します。これが、ファイルにテキストを追加する -主たる方法です。 +は入力モードに移行します。 +これが、ファイルにテキストを追加する主たる方法です。 このモードでは、コマンドを実行することはできません。 そのかわり、標準入力から入力されたデータは、 -直接エディタバッファへと書き込まれます。行は、改行キャラクタまで -のテキストデータおよび、最後の +直接エディタバッファへと書き込まれます。 +行は、改行キャラクタまでのテキストデータおよび、最後の .Em 改行 キャラクタを含むデータから構成されます。 ピリオド 1 つだけ .Pq Em .\& の行を入力すると、入力モードを終了します。 .Pp すべての .Nm -コマンドは、全ての行もしくは指定した範囲の行の操作が可能です。例えば、 +コマンドは、全ての行もしくは指定した範囲の行の操作が可能です。 +例えば、 .Em d コマンドは指定した行を削除し、 .Em m コマンドは指定した行を移動します。 上に示した例のように、置換によってある行の一部分のみを変更することは 可能ですが、 .Em s コマンドは、一度に全部の行にわたって変更を行なうことも可能です。 .Pp 一般的には、 .Nm コマンドは、0 個以上の行番号および、それに連なる 1 文字コマンドから -成り立ちます。場合によっては追加のパラメータをもつこともあります。 +成り立ちます。 +場合によっては追加のパラメータをもつこともあります。 いうなれば、コマンドは以下の構造を持ちます。 .Pp .Sm off .Xo .Op Ar address Op , Ar address .Ar command Op Ar parameters .Xc .Sm on .Pp 行番号はコマンドの操作対象行あるいは対象行範囲を示します。 行番号の指定個数が、コマンドが受け付け可能な個数よりも少ない場合には、 デフォルトの行番号が採用されます。 .Sh オプション 以下のオプションが使用できます。 .Bl -tag -width indent .It Fl s -診断メッセージを抑制します。本オプションは、 +診断メッセージを抑制します。 +本オプションは、 .Nm の入力がスクリプトによって行なわれる場合に有効です。 .It Fl x 続く読み書きの際に行なわれる暗号化に用いる鍵の入力を促します -( -.Em x +.Em ( x コマンドを参照して下さい)。 .It Fl p Ar string コマンドプロンプトとして表示する文字列を指定します。 コマンドプロンプトは、コマンドモードで .Em p コマンドを実行することで、表示する/しないを切り替えることが可能です。 .It Ar file 編集対象のファイルを指定します。 .Ar file 名の先頭に感嘆符 (!) が付加されていた場合、そのファイル名はシェルコマンドと -して解釈されます。この場合、編集対象として読み込まれるテキストは、 +して解釈されます。 +この場合、編集対象として読み込まれるテキストは、 .Xr sh 1 が .Ar file で指定したコマンドを実行した結果、標準出力に出力されるデータです。 先頭が感嘆符で始まるファイルを編集する場合には、ファイル名の先頭に バックスラッシュ (\\) を付加して下さい。 感嘆符以外の文字で始まるファイル名については、編集対象のファイル名は .Ar file となります。 .El .Sh 行指定 行は、バッファ内の行番号で表現されます。 .Nm ユーティリティは .Em 現在行 を管理しており、 コマンドに行番号が指定されない場合は、 現在行がデフォルト行として用いられます。 ファイルが最初に読み出された直後は、現在行はファイルの最後の行となります。 一般的に、現在行はコマンドが操作した最後の行となります。 .Pp 行番号は、以下の一覧のうち 1 つおよび、補助的に付加される 相対行番号 (オフセット) から構成されます。 相対行番号は、任意の数字の組み合わせと演算子、そして空白文字を含みます -( 例えば +(例えば .Em + , .Em - や .Em ^ -が演算子に含まれます )。 +が演算子に含まれます)。 行番号は、左から右に解釈され、それらの演算子を含む値は、現在行からの相対行番 号と解釈されます。 .Pp 行番号の表現に関して上記の規則が適用される中で、行番号 .Em 0 -( ゼロ ) -に関しては、例外的な扱いがされます。 +(ゼロ) に関しては、例外的な扱いがされます。 これは「最初の行より前」を意味し、 それが正しい意味を持つ場合は常に利用可能です。 .Pp 行範囲は、コンマもしくはセミコロンで区切られた 2 つのアドレスで示されます。 最初に指定される行番号は、2 番目に指定される行番号を超える値を指定して -はいけません。行範囲指定で行番号が 1 つしか指定されなかった場合には、2 番目に -指定されるアドレスとして最初に指定されたアドレスが設定され -ます。ここで 3 個以上の行番号が指定されると、最後の 2 つの行番号で -決定される範囲がコマンド実行対象になります。行番号の指定を 1 つだけしか +はいけません。 +行範囲指定で行番号が 1 つしか指定されなかった場合には、2 番目に +指定されるアドレスとして最初に指定されたアドレスが設定されます。 +ここで 3 個以上の行番号が指定されると、最後の 2 つの行番号で +決定される範囲がコマンド実行対象になります。 +行番号の指定を 1 つだけしか 想定していないコマンドの場合、最後の 1 つの行番号の行がコマンド実行対象 となります。 .Pp コンマで区切られた各行番号は、現在行からの相対行を指し示します。 セミコロンで区切られている場合は、範囲の始めの行は現在行が設定され、 範囲の終りは始めの行からの相対行で表わされます。 .Pp 行番号の指定には、以下のシンボルが使用可能です。 .Bl -tag -width indent .It . バッファ中の現在行を表します。 .It $ バッファ中の最終行を表します。 .It n バッファ内の .Em n 番目の行を表します。 .Em n は、 .Em [0,$] の間です。 .It - or ^ 1 行前の行です。 相対行指定 .Em -1 と同等であり、複数指定することで効果を累積することが可能です。 .\" --- という指定をすることで、2 行前を示すことができます。 .\" ↑原文中に無いのでコメントアウト sakai@jp.freebsd.org (Jun 9,1997) .It -n or ^n .Em n 行前の行を表します。 .Em n は、負でない整数です。 .It + 次の行を表します。 これは、 .Em +1 と同様であり、 .Em - と同様の累積的指定が可能です。 .It +n or whitespace .Em n 行後ろの行を表します。 .Em n は、負でない整数です。 .Em n の前に -.Em whitespace ( 空白文字 ) +.Em whitespace (空白文字) を付加して指定した場合も .Em +n と解釈されます。 .\" ↓原文中に無いのでコメントアウト sakai@jp.freebsd.org (Jun 9,1997) .\" ただし、空白文字による指定を行なった場合は、単独では現在行からの相対行数を .\" 指定することはできず、相対行指定の基準となる行をその前に指定しなければなり .\" ません。 .It , or % -バッファの最初から最後までを表します。これは、 +バッファの最初から最後までを表します。 +これは、 .Em 1,$ と指定した場合と同等です。 .It ; -バッファ中の現在行から最後の行までを表します。これは、 +バッファ中の現在行から最後の行までを表します。 +これは、 .Em .,$ と指定した場合と同等です。 .It /re/ 指定された正規表現 .Em re を含む、(現在行よりも後ろの) 次の行を表します。 必要であれば、文字列検索はテキスト先頭に折り返し、 現在行に達するまで検索を行ないます。 // は、最後に行なった検索を繰り返します。 .It ?re? 指定した正規表現 .Em re を含む、現在行より前の行を表します。 必要であれば、文字列検索はテキストの最後に折り返し、 現在行に達するまで検索を行ないます。 ?? は、最後に行なった検索を繰り返します。 .It 'lc .Em k -(mark) コマンドでマークをつけた行を表します。ここで +(mark) コマンドでマークをつけた行を表します。 +ここで .Em lc は、英小文字1文字です。 .El .Sh 正規表現 正規表現はテキストを選択する際に用いるパターンです。 例えば次の .Em ed コマンド .Pp .Sm off .Cm g No / Em string Xo .No / .Xc .Sm on .Pp は .Em string を含む全ての行を表示します。 正規表現は .Em s コマンドで古いテキストを新しいテキストで置き換える際にも用いられます。 .Pp 文字リテラルを指定するのに加え、 正規表現は文字列のクラスを表現することができます。 このようにして表現された文字列は、それに対応する正規表現に「マッチする」と 言います。 ある正規表現が一つの行の中の複数の文字列にマッチする場合、 マッチする部分のうち最も左にあって最も長いものが選択されます。 .Pp 正規表現を組み立てる際には以下のシンボルが用いられます: .Bl -tag -width indent .It c 以下に挙げるものを除く任意の文字 .Em c は、その文字自身にマッチします。 -このような文字には `{', '}', `(', `)', `<', `>' が含まれます。 +このような文字には +.Ql \&{ , +.Ql \&} , +.Ql \&( , +.Ql \&) , +.Ql < , +.Ql > +が含まれます。 .It Pf \e c バックスラッシュでエスケープした文字 .Em c は、その文字自身にマッチします。 -ただし `{', '}', `(', `)', `<', `>' を除きます。 +ただし +.Ql \&{ , +.Ql \&} , +.Ql \&( , +.Ql \&) , +.Ql < , +.Ql > +を除きます。 .It . 任意の一文字にマッチします。 .It Op char-class 文字クラス .Em char-class に含まれる任意の一文字にマッチします。 文字クラス .Em char-class -に `]' を含めるには、文字 `]' を最初の文字に指定します。 -文字の範囲を指定するには、範囲の両端の文字の間を `-' でつなぎます。 -例えば `a-z' は小文字全体を表します。 +に +.Ql \&] +を含めるには、文字 +.Ql \&] +を最初の文字に指定します。 +文字の範囲を指定するには、範囲の両端の文字の間を +.Ql - +でつなぎます。 +例えば +.Ql a-z +は小文字全体を表します。 以下のようなリテラル表記も、文字集合を指定するために文字クラス .Em char-class で使用することができます: .Pp .Bl -column "[:alnum:]" "[:cntrl:]" "[:lower:]" "[:xdigit:]" -compact .It [:alnum:] Ta [:cntrl:] Ta [:lower:] Ta [:space:] .It [:alpha:] Ta [:digit:] Ta [:print:] Ta [:upper:] .It [:blank:] Ta [:graph:] Ta [:punct:] Ta [:xdigit:] .El .Pp 文字クラス .Em char-class -の最初あるいは最後の文字として `-' が用いられると、 +の最初あるいは最後の文字として +.Ql - +が用いられると、 それはその文字自身にマッチします。 文字クラス .Em char-class 中のこれ以外の文字は全て、それら自身にマッチします。 .Pp 以下の形式の文字クラス中のパターン: .Pp .Bl -item -compact -offset 2n .It .Op \&. Ns Ar col-elm Ns .\& or, .It .Op = Ns Ar col-elm Ns = .El .Pp は .Xr locale 5 -に沿って解釈されます (現在のところサポートされません)。ここで +に沿って解釈されます (現在のところサポートされません)。 +ここで .Ar col-elm は .Em collating element -です。詳しい説明は +です。 +詳しい説明は .Xr regex 3 を参照して下さい。 .It Op ^char-class 文字クラス .Em char-class に含まれない、改行以外の任意の一文字にマッチします。 文字クラス .Em char-class は上で定義しています。 .It ^ .Em ^ が正規表現の最初の文字である場合、 その正規表現は行頭でのみマッチします。 それ以外の場合、 .Em ^ はそれ自身にマッチします。 .It $ .Em $ が正規表現の最後の文字である場合、 その正規表現は行末でのみマッチします。 それ以外の場合、 .Em $ はそれ自身にマッチします。 .It Pf \e < これに続く単一文字の正規表現あるいはその部分式が、 単語の先頭でのみマッチするようにします (この機能は利用できない 場合があります)。 .It Pf \e > これに続く単一文字の正規表現あるいはその部分式が、 単語の末尾でのみマッチするようにします (この機能は利用できない 場合があります)。 .It Pf \e (re\e) 部分式 (subexpression) .Em re -を定義します。部分式はネストできます。 +を定義します。 +部分式はネストできます。 これ以降、 .Pf \e Em n ( .Em n は [1,9] の範囲の数) の形式の後方参照は、 .Em n 番目の部分式にマッチしたテキストに展開されます。 -例えば、正規表現 `\e(.*\e)\e1' は、 +例えば、正規表現 +.Ql \e(.*\e)\e1 +は、 同じ文字列が隣接しているような任意の文字列にマッチします。 部分式は左側のデリミタから順に番号が振られます。 .It * -直前にある単一文字の正規表現あるいはその部分式のゼロ回以上の繰り返しに +直前にある単一文字の正規表現あるいはその部分式の 0 回以上の繰り返しに マッチします。 .Em * が正規表現あるいはその部分式の最初の文字として用いられた場合、 .Em * はその文字自身にマッチします。 .Em * 演算子は時に予期しない結果をもたらすことがあります。 -例えば、正規表現 `b*' は文字列 `abbb' の先頭に -マッチします (部分文字列 `bbb' ではありません)。 +例えば、正規表現 +.Ql b* +は文字列 +.Ql abbb +の先頭にマッチします (部分文字列 +.Ql bbb +ではありません)。 これはヌルへのマッチが最も左にあるマッチだからです。 .It \e{n,m\e} or \e{n,\e} or \e{n\e} 直前にある単一文字の正規表現あるいはその部分式の、 .Em n 回以上 .Em m 回以下の繰り返しにマッチします。 .Em m が省略された場合、 .Em n 回以上の繰り返しにマッチします。 更にコンマも省略された場合、ちょうど .Em n 回の繰り返しにのみマッチします。 .El .Pp 各 .Xr regex 3 の実装によっては、 更に正規表現演算子がいくつか定義されていることがあります。 .Sh コマンド 全ての .Nm コマンドは、1 文字からなりますが、追加パラメータが必要なコマンドもあります。 コマンドのパラメータが複数の行にわたる場合には、そのパラメータを含めたコマンド の終りを含む行を除き、行末にバックスラッシュ (\\) を付加して下さい。 .Pp 一般的には、1 行ごとに 1 コマンドを入れることが許されています。 しかしながら、ほとんどのコマンドは、コマンド実行を行なった後のデータ更新 その他を確認するために、 .Em p (print)、 や .Em l (list)、 .Em n (enumerate), のような表示系のコマンドを同時に指定できます。 .Pp インタラプト (一般的には ^C) を入力することで、現在実行しているコマンドを 強制終了し、コマンドモードに戻すことができます。 .Pp .Nm ユーティリティは、以下のコマンドを使用できます。 コマンド実行時に何の指定もない場合の デフォルトの行番号もしくは行範囲が括弧内に示されています。 .Bl -tag -width indent .It (.)a 指定した行の後にテキストを追加します。 テキストは入力モードで入力されていきます。 現在行番号は、入力された最後の行に設定されます。 .It (.,.)c -バッファ内の指定した行を変更します。指定した行のデータは、バッファから消去 +バッファ内の指定した行を変更します。 +指定した行のデータは、バッファから消去 され、そこに対してテキストデータを入力するようになります。 テキストは入力モードで入力されていきます。 現在行番号は、入力した最後の行に設定されます。 .It (.,.)d 指定した範囲をバッファから削除します。 削除した範囲の後に行が続いている場合、現在行番号は、その行に設定されます。 そうでない場合には、現在行番号は、削除された範囲の前の行に設定されます。 .It e Ar file .Ar file を編集し、デフォルトのファイル名を設定します。 もし .Ar file が指定されなかった場合には、デフォルトのファイル名が使用されます。 本コマンド実行時に、それまで別のファイルを編集していた場合には、 その内容はすべて消去され、新しいファイルが読み込まれます。 現在行番号は、入力された最後の行に設定されます。 .It e Ar !command .Ar !command で指定されたコマンドを実行し、その結果として標準出力へ 出力されたデータを編集します (後述する .Ar ! command を参照して下さい)。 デフォルトのファイル名は変更されません。 .Ar command の出力が読み込まれる前に、バッファ内に存在した行はすべて消去されます。 現在行番号は、入力された最後の行に設定されます。 .It E Ar file 無条件で .Ar file で指定したファイルを読み込み、編集します。 .Em e コマンドと動作は似ていますが、すでにバッファ上のデータに変更が加えられ ている場合でも、未書き込みの変更を警告を出さずに捨ててしまう点が異なります。 現在行番号は、入力された最後の行に設定されます。 .It f Ar file デフォルトファイル名を .Ar file に設定します。 .Ar file 名が指定されない場合には、デフォルトファイル名が表示されます。 .It (1,$)g/re/command-list .Ar command-list で指定されたコマンドを、指定した正規表現 .Ar re に一致する各行に対して実行します。 現在行番号は、 .Ar command-list で指定されたコマンドが実行される前に、指定した正規表現に一致した行 に設定されます。 .Em g コマンドが終了した場合、現在行番号は最後に .Ar command-list 実行の影響を受けた行に設定されます。 .Pp .Ar command-list -で指定されるコマンドは、1 行ごとに 1 つずつ書かれる必要があります。各コマンド +で指定されるコマンドは、1 行ごとに 1 つずつ書かれる必要があります。 +各コマンド 行の終りには、一番最後のコマンド行を除いてはバックスラッシュ (\\) を記述する 必要があります。 コマンド .Em g , .Em G , .Em v , .Em V を除くすべてのコマンドを指定可能です。 .Ar command-list 中の空行は、 .Em p コマンドと同等に扱われます。 .It (1,$)G/re/ 指定した正規表現 .Ar re に一致した行に対して、対話編集を行ないます。 指定した正規表現に一致する文字列を含む行があると、その行を表示し、現在行番号を 設定します。 そして、ユーザに .Ar command-list の入力を促します。 .Em G コマンドが終了した場合、現在行番号は、 .Ar command-list 実行の影響を受けた最後の行に設定されます。 .Pp .Ar command-list の記述形式は、 .Em g -コマンドで指定するものと同じです。改行のみの場合は、コマンド実行をしない -( ヌルコマンドリストを指定した ) ものとみなされます。 -`&' 文字のみを入力した場合には、 -直前に実行した ( ヌルコマンドリストではない ) コマンドを再実行します。 +コマンドで指定するものと同じです。 +改行のみの場合は、コマンド実行をしない +(ヌルコマンドリストを指定した) ものとみなされます。 +.Ql & +文字のみを入力した場合には、 +直前に実行した (ヌルコマンドリストではない) コマンドを再実行します。 .It H エラーメッセージの出力の有無を切り替えます。 デフォルトでは、エラーメッセージは出力されません。 ed スクリプトを作成する場合、スクリプトのデバッグのために、本コマンドを 最初に実行することをおすすめします。 .It h 最後に表示されたエラーメッセージを表示します。 .It (.)i 編集バッファ中の現在行の前に、テキストを挿入します。 テキストは入力モードで入力されていきます。 現在行番号は、入力された最後の行に設定されます。 .It (.,.+1)j -指定した範囲の行を 1 行に連結します。指定した行はバッファから削除され、 +指定した範囲の行を 1 行に連結します。 +指定した行はバッファから削除され、 その行の内容を含む 1 行に置き換えられます。 現在行番号は、置き換えられた行に設定されます。 .It (.)klc 行に、英小文字 .Em lc で指定したマークをつけます。 その後、マークをつけられた行は、コマンド中で .Em 'lc (つまり、シングルクォートと小文字 -.Em lc -) として指定できるようになります。 +.Em lc ) +として指定できるようになります。 マークは、その行が削除されるかもしくは変更されるかしない限り、消えることは ありません。 .It (.,.)l 指定した範囲の行の内容を見やすく表示します。 -もし 1 つの行が 1 画面以上を占める場合 ( 例えばバイナリファイルを見ている -場合など ) -`--More--' プロンプトが最下行に表示されます。 +もし 1 つの行が 1 画面以上を占める場合 (例えばバイナリファイルを見ている +場合など) +.Dq Li --More-- +プロンプトが最下行に表示されます。 次の画面を表示する前に .Nm ユーティリティはリターンキーが入力されるまで待ちます。 現在行番号は、表示された最後の行に設定されます。 .It (.,.)m(.) -指定した範囲の行をバッファ内で移動します。指定した行は、 -コマンドの右辺で指定した行の後ろに -移動されます。移動先の行としては、 +指定した範囲の行をバッファ内で移動します。 +指定した行は、コマンドの右辺で指定した行の後ろに移動されます。 +移動先の行としては、 .Em 0 (ゼロ) が指定可能です。 現在行番号は、移動された最後の行に設定されます。 .It (.,.)n 指定した行の内容を、行番号つきで表示します。 現在行番号は、表示された最後の行に設定されます。 .It (.,.)p 指定した範囲の行の内容を表示します。 現在行番号は、表示された最後の行に設定されます。 .It P コマンドプロンプト表示の有無を切り替えます。 コマンド起動時のオプション .Fl p Ar string でプロンプトが指定されていなければ、 コマンドプロンプトの表示はデフォルトでオフになっています。 .It q .Nm を終了します。 .It Q 無条件に .Nm を終了します。 このコマンドは .Em q コマンドと似ていますが、まだファイルに書き出されていない 変更があっても警告せずに終了する点が異なります。 .It ($)r Ar file .Ar file で指定されたファイルを、指定した行の後ろに読み込みます。 .Ar file が指定されない場合、デフォルトのファイル名が読み込みに使用されます。 このコマンドに先だってデフォルトのファイル名が設定されていない場合、 デフォルトのファイル名には、 .Ar file で指定されたものが設定されます。 それ以外の場合、デフォルトのファイル名は変更されません。 現在行番号は、読み込まれたファイルの最後の行に設定されます。 .It ($)r Ar !command .Ar command で指定されたコマンドを実行し、その結果として標準出力へ出力された データを指定した行の後ろに読み込みます (後述する .Ar ! command を参照して下さい)。 -デフォルトのファイル名は変更されません。現在行番号は、読み込まれた最後の行の -行番号に設定されます。 +デフォルトのファイル名は変更されません。 +現在行番号は、読み込まれた最後の行の行番号に設定されます。 .It (.,.)s/re/replacement/ .It (.,.)s/re/replacement/g .It (.,.)s/re/replacement/n 指定した行のテキスト中の、正規表現 .Ar re に一致する文字列を、文字列 .Ar replacement に置き換えます。 デフォルトでは、それぞれの行で最初に一致した文字列のみを置き換えます。 .Em g (global) サフィックスが指定された場合、一致した文字列はすべて置き換えられます。 .Em n -サフィックス ( -.Em n +サフィックス +.Em ( n は正の整数) が指定された場合、 .Em n 回目に一致した文字列だけを置き換えます。 指定した範囲で一度も文字列の置換が起こらなかった場合、エラーとみなされます。 現在行番号は、最後に置換が発生した行に設定されます。 .Pp .Ar re および .Ar replacement は、スペースおよび改行を除くすべてのキャラクタを用いて区切ることが 可能です (後述する .Em s コマンドを見て下さい)。 最後のデリミタのうち 1 つか 2 つが省略された場合、 最後に文字列置換が発生した行は、 .Em p コマンドが指定された場合と同様に表示されます。 .Pp .Ar replacement -中のエスケープされていない `&' は、一致した文字列と置き換えられます。 +中のエスケープされていない +.Ql & +は、一致した文字列と置き換えられます。 キャラクタシーケンス .Em \em -( -.Em m +.Em ( m は [1,9] の範囲の整数です ) は、一致した文字列の .Em m 番目の後方参照で置き換えられます。 .Ar replacement -の中に入る文字が `%' のみだった場合、 -最後に行なった置換の +の中に入る文字が +.Ql % +のみだった場合、最後に行なった置換の .Ar replacement が使用されます。 改行を .Ar replacement に指定したい場合は、バックスラッシュを用いてエスケープすれば可能です。 .It (.,.)s 最後の置換を繰り返します。 この形式の .Em s コマンドは、回数を示すサフィックス .Em n もしくは、他の .Em r、 .Em g、 .Em p のどのキャラクタとの組み合わせも可能です。 .Em n が指定されると、 .Em n 回目に一致した文字列だけが置換されます。 .Em r サフィックスが指定されると、最後の置換が発生した文字列の変わりに、 最後に指定した正規表現が使用されます。 .Em g サフィックスは、最後の置換で用いたグローバルサフィックスの使用の 有効/無効を切り替えます。 .Em p サフィックスは、最後の置換に指定されたプリントサフィックスを反転します。 現在行番号は、最後に置換が発生した行に設定されます。 .It (.,.)t(.) 指定した範囲の行を、コマンド文字の右辺に指定した行番号の後に -コピー (つまり転送) します。コピー先の行番号としては、 +コピー (つまり転送) します。 +コピー先の行番号としては、 .Em 0 (ゼロ) の指定が許されています。 現在行番号は、コピーした一番最後の行の行番号に設定されます。 .It u 最後に実行したコマンドの実行結果を取り消し、現在行番号を、取り消したい コマンドが実行される前のものに戻します。 グローバルコマンドである .Em g、 .Em G、 .Em v、 .Em V については、その改変は 1 コマンドで行なわれたとして扱います。 .Em u は自分自身の動作を取り消すこともできます。 .It (1,$)v/re/command-list 指定した範囲の行のうち、指定した正規表現 .Ar re と一致する文字列が含まれていない行について、 .Ar command-list で指定したコマンドを実行します。 これは .Em g コマンドに動作が似ています。 .It (1,$)V/re/ 指定した範囲の行のうち、指定した正規表現 .Ar re に一致する文字列が含まれていない行について、対話編集を行ないます。 これは .Em G コマンドに動作が似ています。 .It (1,$)w Ar file 指定した範囲の行を、 .Ar file で指定したファイルに書き出します。 それまで .Ar file に格納されていた内容は、警告なしに消去されます。 デフォルトファイル名が設定されていない場合、デフォルトファイル名は .Ar file -に設定されます。それ以外の場合では、デフォルトファイル名は変更されません。 +に設定されます。 +それ以外の場合では、デフォルトファイル名は変更されません。 ファイル名が指定されなかった場合には、デフォルトファイル名が使用されます。 現在行番号は変更されません。 .It (1,$)wq Ar file 指定した範囲の行を .Ar file で指定したファイルに書き出し、 .Em q コマンドを実行します。 .It (1,$)w Ar !command 指定した範囲の行の内容を .Ar !command -の標準入力に書き出します ( -.Em !command +の標準入力に書き出します +.Em ( !command については、以下の説明を参照して下さい)。 デフォルトファイル名および現在行番号は変更されません。 .It (1,$)W Ar file 指定した範囲の行の内容を、 .Ar file で指定したファイルの後ろに追加書き込みします。 .Em w コマンドと似ていますが、指定したファイルにそれまで格納されていた内容 がなくなることはありません。 現在行番号は変更されません。 .It x 以降の読み書きで用いられる暗号化鍵の入力を促します。 改行のみが入力されると、暗号化は解除されます。 それ以外の場合、キー読み込み中のエコーは抑制されます。 暗号化および復号化は .Xr bdes 1 アルゴリズムを用いて行われます。 .It Pf (.+1)z n 指定した行から一度に .Ar n 行だけスクロールします。 .Ar n が指定されない場合には、現在のウィンドウサイズだけスクロールします。 現在行番号は、最後に表示した行の行番号に設定されます。 .It !command .Ar command で指定したコマンドを、 .Xr sh 1 を用いて実行します。 .Ar command -の最初の文字が `!'の場合には、その文字は直前に +の最初の文字が +.Ql \&! +の場合には、その文字は直前に .Ar !command で実行したコマンド文字列が格納されます。 .Ar command -文字列をバックスラッシュ(\\)でエスケープした場合には、 +文字列をバックスラッシュ (\\) でエスケープした場合には、 .Nm ユーティリティは処理を行ないません。 しかし、エスケープされない .Em % 文字があった場合には、その文字列はデフォルトファイル名に置き換えられます。 -シェルがコマンド実行から戻ってきた場合には、`!' が標準出力に出力されます。 +シェルがコマンド実行から戻ってきた場合には、 +.Ql \&! +が標準出力に出力されます。 現在行番号は変更されません。 .It ($)= 指定された行の行番号を表示します。 .It (.+1)newline -指定した行を表示します。そして、現在行番号を表示した行のものに -設定します。 +指定した行を表示します。 +そして、現在行番号を表示した行のものに設定します。 .El .Sh 関連ファイル .Bl -tag -width /tmp/ed.* -compact .It /tmp/ed.* バッファファイル .It ed.hup 端末が回線切断した場合に、 .Nm がバッファ内容を書き出すファイル .El .Sh 関連項目 .Xr bdes 1 , .Xr sed 1 , .Xr sh 1 , .Xr vi 1 , .Xr regex 3 .Pp USD:12-13 .Rs .%A B. W. Kernighan .%A P. J. Plauger .%B Software Tools in Pascal .%O Addison-Wesley .%D 1981 .Re .Sh 制限 .Nm ユーティリティは、 .Ar file 引数に対してバックスラッシュエスケープ処理を施します。 つまり、ファイル名中でバックスラッシュ (\\) を前につけた文字は、 リテラルとして解釈されます。 .Pp (バイナリではない) テキストファイルの最後が改行文字で終っていない場合、 .Nm はそれを読み書きする際に改行文字を追加します。 バイナリファイルの場合は、 .Nm はこのような改行文字追加は行いません。 .Pp 1 行あたりのオーバヘッドは整数 4 つ分です。 .Sh 診断 エラーが発生すると、 .Nm -は `?' を表示し、コマンドモードに戻るか、スクリプトによる実行のエラーの場合には +は +.Ql \&? +を表示し、コマンドモードに戻るか、スクリプトによる実行のエラーの場合には プログラムを終了します。 最後のエラーメッセージについての説明は、 .Em h (help) コマンドを用いることで表示可能です。 .Pp .Em g (global) コマンドは、検索や置換が失敗したというエラーを隠蔽します。 そのため、スクリプトの中で条件つきコマンド実行を行なわせるのによく使われます。 例えば .Pp .Sm off .Cm g No / Em old Xo .No / Cm s .No // Em new .No / .Xc .Sm on .Pp は、出現した文字列 .Em old をすべて文字列 .Em new に置き換えます。 .Em u (undo) コマンドがグローバルコマンドリスト内で実行された場合、コマンドリストは 1 度だけの実行になります。 .Pp 診断が無効にされていないと、 .Nm を終了しようとする場合やバッファ内のデータを書き出さずに他のファイルを 編集しようとする場合にエラーになります。 その場合でも、同一のコマンドを 2 回入力すると、コマンドは成功します。 しかし、それまでの未保存の編集結果は、すべて失われます。 .Sh 歴史 .Nm コマンドは Version 1 AT&T UNIX で登場しました。 diff --git a/ja_JP.eucJP/man/man1/finger.1 b/ja_JP.eucJP/man/man1/finger.1 index 68e65c94aa..a6e2ff8fd7 100644 --- a/ja_JP.eucJP/man/man1/finger.1 +++ b/ja_JP.eucJP/man/man1/finger.1 @@ -1,233 +1,239 @@ .\" Copyright (c) 1989, 1990, 1993, 1994 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)finger.1 8.3 (Berkeley) 5/5/94 -.\" %FreeBSD: src/usr.bin/finger/finger.1,v 1.9.2.10 2002/07/03 01:14:24 des Exp % +.\" %FreeBSD: src/usr.bin/finger/finger.1,v 1.9.2.11 2002/07/29 18:52:52 ume Exp % .\" $FreeBSD$ .\" .Dd August 1, 1997 .Dt FINGER 1 .Os .Sh 名称 .Nm finger .Nd ユーザ情報を調べるプログラム .Sh 書式 .Nm finger -.Op Fl glmpshoT +.Op Fl 46glmpshoT .Op Ar user ...\& .Op Ar user@host ...\& .Sh 解説 .Nm ユーティリティはシステムのユーザに関する情報を表示します。 .Pp オプションは以下の通りです: .Bl -tag -width flag +.It Fl 4 +.Nm +が IPv4 アドレスのみを使用するよう、強制します。 +.It Fl 6 +.Nm +が IPv6 アドレスのみを使用するよう、強制します。 .It Fl s ユーザのログイン名、本名、端末名、端末への書き込み 状態 (書き込みが不可の場合は、端末名の前に ``*'' が付きます)、 アイドル時間、ログイン時間、また、オフィスの所在地と電話番号もしくは リモートホスト名を表示します。 .Fl o が指定されていた場合 (デフォルト) は、 オフィスの所在地と電話番号が表示されます。 .Fl h が指定されていた場合は、代わりに、リモートホスト名が表示されます。 .Pp アイドル時間の単位は、数字だけの場合は 何分か、``:'' がある場合は何時間何分か、``d'' がある場合は何日か、です。 アイドル時間が .Dq * の場合、ログイン時間は最後のログイン時間を示します。 ログイン時間は、6 日以内の場合は何曜日の何時何分からか、それ以上の 場合は何月何日の何時何分からかが表示されます。もし 6 ヶ月を超えて いる場合は、何年何月何日からかが表示されます。 .Pp アイドル時間やログイン時間がない場合と同様に、 不明なデバイスは一つのアスタリスクとして表示されます。 .Pp .It Fl h .Fl s オプションと共に指定されたとき、オフィスの所在地と電話番号の代わりに リモートホスト名を表示します。 .Pp .It Fl o .Fl s オプションと共に指定されたとき、リモートホスト名の代わりに オフィスの所在地と電話番号を表示します。 .Pp .It Fl g 本オプションは、gecos 出力をユーザの実名のみに制限します。 .Fl h オプション共に指定されたとき、 リモートホストの出力を制限するという副作用もあります。 .Pp .It Fl l ユーザのホームディレクトリ、自宅の電話番号、ログインシェル、 メールの状態、そしてユーザのホームディレクトリの .Dq Pa .forward , .Dq Pa .plan , .Dq Pa .project , .Dq Pa .pubkey の内容に加えて、 .Fl s オプションの解説で述べた情報全てが複数行にわたる形式で出力されます。 .Pp アイドル時間は 1 分以上 1 日以内の場合は、``hh:mm'' の形式となります。 1 日よりも大きいときには、``d day[s]hh:mm'' の形式となります。 .Pp 電話番号は、11 桁の場合には ``+N-NNN-NNN-NNNN'' と表示 されます。10 桁もしくは 7 桁の場合には、上の文字列の適切な 部分として表示されます。5 桁の場合は ``xN-NNNN''、 4 桁の場合は ``xNNNN'' と表示されます。 .Pp デバイスの書き込み許可がない場合、デバイス名を含む 行に ``(messages off)'' という語句が追加されます。 .Fl l オプションを指定すると、1 人のユーザにつき 1 つの項目が表示されます。 もしあるユーザが複数回ログインしている場合には、端末の情報は その各ログインについて表示されます。 .Pp メールの状態は、全くメールがない場合には ``No Mail.''、その人が自分の メールボックスに届いた新着メールを全て読んでいた場合 には ``Mail last read DDD MMM ## HH:MM YYYY (TZ)''、その人あての新着 メールがあれば ``New mail received ...'' や ``Unread since ...'' の ように表示されます。 .Pp .It Fl p オプションは、 .Nm の .Fl l オプションが、 .Dq Pa .forward , .Dq Pa .plan , .Dq Pa .project , .Dq Pa .pubkey のファイルの内容を表示するのを抑制します。 .It Fl m ユーザの本名と .Ar user とが名前の比較で一致しないようにします。 .Ar user は、たいていはログイン名なのですが、 .Fl m オプションを指定しない限り、ユーザの本名との比較もまた行われてしまいます。 .Nm によって比較される名前は、大文字小文字を区別しません。 .Pp .It Fl T 最初の接続要求において、データをピギーバックしません。 このオプションは,いい加減な TCP の実装が行われている ホストに finger を行う時に必要です。 .El .Pp オプションが指定されなかった場合は、 .Nm は、対象が与えられた場合は .Fl l の出力形式、与えられなかった場合は .Fl s の出力形式をデフォルトの形式とします。 どちらの形式であったとしても、情報が有効でなかった場合には、その フィールドは欠けているかもしれないことに注意してください。 .Pp 引数が全く指定されていない場合は、 .Nm は、現在システムにログインしている各ユーザについての情報を表示します。 .Pp .Nm ユーティリティは、リモートマシン上のユーザを調べることにも利用できます。 これには、 .Ar user として .Dq Li user@host もしくは .Dq Li @host と指定する形式を使います。デフォルトでは、前者は .Fl l 形式の出力、後者は .Fl s 形式の出力となります。 .Fl l オプションは、リモートマシンに渡される唯一のオプションかも知れません。 .Pp もし、ユーザのホームディレクトリに .Dq Pa .nofinger というファイルが存在した場合、 .Nm は、そのユーザが存在していないかのように振る舞います。 .Pp オプションの .Xr finger.conf 5 設定ファイルを使用して、別名を指定可能です。 .Xr finger 1 は .Xr fingerd 8 が起動しますので、 ローカルの問い合わせとネットワークの問い合わせの両方で有効です。 .Sh 環境変数 .Nm ユーティリティは、もし設定されていれば、以下の環境変数を利用します: .Bl -tag -width Fl .It Ev FINGER .Nm に好みのオプションがあれば、この環境変数に設定しておくとよいでしょう。 .El .Sh 関連ファイル .Bl -tag -width /var/log/lastlog -compact .It Pa /etc/finger.conf 別名定義のデータベース .It Pa /var/log/lastlog 最後にログインした時間のデータベース .El .Sh 関連項目 .Xr chpass 1 , .Xr w 1 , .Xr who 1 , .Xr finger.conf 5 , .Xr fingerd 8 .Rs .%A D. Zimmerman .%T The Finger User Information Protocol .%R RFC 1288 .%D December, 1991 .Re .Sh 歴史 .Nm コマンドは、 .Bx 3.0 で登場しました。 .Sh バグ 現在の FINGER プロトコルの RFC では、 サーバが接続を閉じるまでクライアントはフルに接続をオープンする必要があります。 これでは、最適な 3 パケット T/TCP 交換を妨げてしまいます。 (この仕様に依存するサーバは壊れていますが、 広いインターネットにはこのようなサーバが存在します。) diff --git a/ja_JP.eucJP/man/man1/from.1 b/ja_JP.eucJP/man/man1/from.1 index 9bbaa78be2..2cbc8385a7 100644 --- a/ja_JP.eucJP/man/man1/from.1 +++ b/ja_JP.eucJP/man/man1/from.1 @@ -1,101 +1,103 @@ .\" Copyright (c) 1980, 1990, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)from.1 8.2 (Berkeley) 12/30/93 -.\" %FreeBSD: src/usr.bin/from/from.1,v 1.7.2.5 2001/11/20 14:25:24 murray Exp % +.\" %FreeBSD: src/usr.bin/from/from.1,v 1.7.2.6 2002/07/15 06:17:55 keramida Exp % .\" .\" $FreeBSD$ .\" .Dd December 30, 1993 .Dt FROM 1 .Os .Sh 名称 .Nm from .Nd スプールにあるメールが誰から送られたものかを表示する .Sh 書式 .Nm .Op Fl c .Op Fl s Ar sender .Op Fl f Ar file .Op Ar user .Sh 解説 .Nm ユーティリティは、起動したユーザのポストオフィス (デフォルトは -.Pa /var/mail/* -) を読んで、メールのヘッダを表示します。 +.Pa /var/mail/* ) +を読んで、メールのヘッダを表示します。 .Pp -オプション: -.Bl -tag -width Fl +次のオプションが使用可能です: +.Bl -tag -width indent .It Fl c メッセージ数を表示するだけで、終了します。 .It Fl f Ar file デフォルトのポストオフィス ( .Pa /var/mail/* のファイル) のかわりに、 指定された .Ar file -を読んでメールのヘッダを表示します。このとき、 -引数 +を読んでメールのヘッダを表示します。 +このとき、引数 .Ar user は無視されます。 ファイル名が .Ar - の場合、標準有力より読み込みます。 .It Fl s Ar sender From アドレス (メールの送り手) に、 .Ar sender で指定された文字列を含むメールに関するものだけ を表示します。 .El .Pp .Ar user が与えられると、指定された .Ar user のポストオフィスをチェックします (権限が必要です)。 .Sh 環境変数 .Bl -tag -width Fl .It Ev MAIL セットされている場合、コマンドを起動したユーザのメールボックスとなります。 -指定されていない場合には /var/mail のデフォルトのものが使用されます。 +指定されていない場合には +.Pa /var/mail +のデフォルトのものが使用されます。 .El .Sh 関連ファイル .Bl -tag -width /var/mail/* -compact .It Pa /var/mail/* メールのポストオフィス .El .Sh 関連項目 .Xr biff 1 , .Xr mail 1 .Sh 歴史 .Nm コマンドは .Bx 3.0 から登場しました。 diff --git a/ja_JP.eucJP/man/man1/gcore.1 b/ja_JP.eucJP/man/man1/gcore.1 index 4da1707c10..5b3c23ea89 100644 --- a/ja_JP.eucJP/man/man1/gcore.1 +++ b/ja_JP.eucJP/man/man1/gcore.1 @@ -1,102 +1,102 @@ .\" Copyright (c) 1983, 1990, 1992, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)gcore.1 8.2 (Berkeley) 4/18/94 -.\" %FreeBSD: src/usr.bin/gcore/gcore.1,v 1.8.2.4 2002/06/21 15:27:02 charnier Exp % +.\" %FreeBSD: src/usr.bin/gcore/gcore.1,v 1.8.2.5 2002/07/15 06:25:27 keramida Exp % .\" $FreeBSD$ .\" .Dd April 18, 1994 .Dt GCORE 1 .Os .Sh 名称 .Nm gcore .Nd 実行中のプロセスのコアイメージを取得する .Sh 書式 .Nm gcore .Op Fl s .Op Fl c Ar core -.Op Ar exec +.Op Ar executable .Ar pid .Sh 解説 .Nm gcore ユーティリティは指定したプロセスのコアイメージを生成します。 このコアイメージは .Xr gdb 1 で用いるのに適したものです。 デフォルトでは、コアはファイル .Dq Pa core. に書き出されます。 プロセス ID .Ar pid をコマンドラインで指定する必要があります。 実行可能イメージは指定されない場合、 .Nm は .Dq Pa /proc//file を使用します。 .Pp オプションは以下の通りです: .Bl -tag -width indent .It Fl c コアファイルを .Dq Pa core. ではなく、指定したファイルに書き出します。 .It Fl s コアイメージを集める間プロセスを停止し、 集め終わったらプロセスを再開させます。 これにより、生成されたコアダンプが一貫性のとれた状態になっていることを 保証できます。 プロセスはたとえ既に停止していても、再開されます。 同じ効果は .Xr kill 1 を用いて手動で行うことも可能です。 .El .Sh 関連ファイル .Bl -tag -width /var/log/messages -compact .It Pa core. コアイメージ .It Pa /proc//file 実行可能イメージ .El .Sh 歴史 .Nm gcore ユーティリティは .Bx 4.2 から登場しました。 .Sh バグ .Nm gcore 動作中にコンテキスト切り替えやページング動作が発生すると混乱します。 最善の結果を得るには、-s を用いて目的プロセスを一時停止させて下さい。 .Pp .Nm gcore はオリジナルの .Bx 4.2 バージョンと互換ではありません。 diff --git a/ja_JP.eucJP/man/man1/head.1 b/ja_JP.eucJP/man/man1/head.1 index 000f88cc69..0faba1d359 100644 --- a/ja_JP.eucJP/man/man1/head.1 +++ b/ja_JP.eucJP/man/man1/head.1 @@ -1,74 +1,71 @@ .\" Copyright (c) 1980, 1990, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)head.1 8.1 (Berkeley) 6/6/93 -.\" %FreeBSD: src/usr.bin/head/head.1,v 1.4.2.5 2002/02/16 12:29:04 dwmalone Exp % +.\" %FreeBSD: src/usr.bin/head/head.1,v 1.4.2.6 2002/07/15 06:33:12 keramida Exp % .\" $FreeBSD$ .\" .Dd June 6, 1993 .Dt HEAD 1 .Os .Sh 名称 .Nm head .Nd ファイルの先頭の数行を表示する .Sh 書式 .Nm -.Oo -.Fl n Ar count | -.Fl c Ar bytes -.Oc +.Op Fl n Ar count | Fl c Ar bytes .Op Ar .Sh 解説 フィルタ .Nm は、fileが指定されていればそのファイルを、指定されていなければ標準入力を読み 込み、先頭から .Ar count で指定された行数だけ、もしくは .Ar bytes だけ表示します。 .Ar count が指定されていなかった場合は、デフォルトの 10 行を表示します。 .Pp 複数のファイルが指定された場合は、 .Dq ==> XXX <== という形式の文字列からなるヘッダを付けられます。ここで、 .Dq XXX は、ファイル名です。 .Sh 診断 .Ex -std .Sh 関連項目 .Xr tail 1 .Sh 歴史 .Nm ユーティリティは -.Bx 3.0 +PWB UNIX から登場しました。 diff --git a/ja_JP.eucJP/man/man1/hexdump.1 b/ja_JP.eucJP/man/man1/hexdump.1 index 780c275799..9bc8e9523e 100644 --- a/ja_JP.eucJP/man/man1/hexdump.1 +++ b/ja_JP.eucJP/man/man1/hexdump.1 @@ -1,328 +1,342 @@ .\" Copyright (c) 1989, 1990, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)hexdump.1 8.2 (Berkeley) 4/18/94 -.\" %FreeBSD: src/usr.bin/hexdump/hexdump.1,v 1.9.2.7 2002/06/21 15:27:11 charnier Exp % +.\" %FreeBSD: src/usr.bin/hexdump/hexdump.1,v 1.9.2.8 2002/07/23 14:27:06 tjr Exp % .\" $FreeBSD$ .\" .Dd April 18, 1994 .Dt HEXDUMP 1 .Os .Sh 名称 .Nm hexdump , hd .Nd ASCII, 10進, 16進, 8進でのダンプ .Sh 書式 .Nm .Op Fl bcCdovx .Op Fl e Ar format_string .Op Fl f Ar format_file .Op Fl n Ar length .Bk -words .Op Fl s Ar skip .Ek .Ar .Nm hd .Op Fl bcdovx .Op Fl e Ar format_string .Op Fl f Ar format_file .Op Fl n Ar length .Bk -words .Op Fl s Ar skip .Ek .Ar .Sh 解説 .Nm ユーティリティは、ファイルが指定されていればそのファイル、 指定されていなければ標準入力を読み込み、ユーザの指定した フォーマットに従って表示するフィルタです。 .Pp オプションは以下の通りです: .Bl -tag -width Fl .It Fl b .Em 1 バイト 8 進表示。 入力のオフセットを 16 進数で表示し、次に、 入力の1バイトずつを、0 詰めした 3 桁の 8 進数で、1 行あたり 16 個、 空白で区切って表示します。 .It Fl c .Em 1 バイト キャラクタ表示。 入力のオフセットを 16 進数で表示し、次に、 入力の1バイトずつを、空白詰めした 3 桁の ASCII 文字で、1 行あたり 16 個、 空白で区切って表示します。 .It Fl C .Em 標準的な hex+ASCII 表示 。 入力オフセットを 16 進数で表示し、 引続いて 16 バイトを 16 進数 2 桁で空白で区切って表示し、 引き続いて同じ 16 バイトを %_p フォーマットで ``|'' 文字で括って表示します。 .Pp コマンド .Nm hd を実行すると、このオプションで .Nm 実行したことを意味します。 .It Fl d .Em 2 バイト 10 進表示 。 入力のオフセットを 16 進数で表示し、次に、 入力の 2 バイトずつを、0 詰めした 5 桁の 10 進数で、1 行あたり 8 個、 空白で区切って表示します。 .It Fl e Ar format_string データの表示形式を決めるフォーマット文字列を指定します。 .It Fl f Ar format_file 1 つあるいはそれ以上のフォーマット文字列 (改行で区切る) -の書かれたファイルを指定します。空行、および、 +の書かれたファイルを指定します。 +空行、および、 空白を除いた最初の文字が ハッシュ記号 .Pf ( Cm \&# ) である行は無視されます。 .It Fl n Ar length 入力のうち .Ar length バイト分だけを処理します。 .It Fl o .Em 2 バイト 8 進表示 。 入力のオフセットを 16 進数で表示し、次に、 入力の 2 バイトずつを、0 詰めした 6 桁の 8 進数で、1 行あたり 8 個、 空白で区切って表示します。 .It Fl s Ar offset 入力の先頭から .Ar offset バイトを読み飛ばします。 デフォルトでは .Ar offset は 10 進数として解釈されます。 .Cm 0x または .Cm 0X , を頭に付けると .Ar offset -は 16 進数として解釈されます。また、 +は 16 進数として解釈されます。 +また、 .Cm 0 を頭に付けると .Ar offset は 8 進数として解釈されます。 .Cm b , .Cm k , .Cm m を .Ar offset の後ろにつけると、それぞれ .Li 512 , .Li 1024 , .Li 1048576 倍と解釈されます。 .It Fl v .Fl v オプションは .Nm に対してすべての入力を表示させます。 .Fl v オプションを指定しない場合、直前の行と 内容 (オフセットは除く) が全く同じ行は何行であっても、 アスタリスク 1 個の 1 行で置き換えられます。 .It Fl x .Em 2 バイト 16 進表示 。 入力のオフセットを 16 進数で表示し、次に、 入力の 2 バイトづつを、0 詰めした 4 桁の 16 進数で、1 行あたり 8 個、 空白で区切って表示します。 .El .Pp .Nm は、各々の入力ファイルの内容を、それらが指定された順に、 .Fl e および .Fl f オプションによって指示されたフォーマット文字列に従って変換しながら、 シーケンシャルに標準出力へコピーします。 .Ss フォーマット フォーマット文字列は、任意の数のフォーマット単位を空白で区切って -並べたものです。フォーマット単位は最大 3 個までの要素すなわち +並べたものです。 +フォーマット単位は最大 3 個までの要素すなわち 繰り返し回数・バイト数・フォーマットによって構成されます。 .Pp -繰り返し回数は正の整数で、省略時の値は 1 です。それぞれのフォーマットは +繰り返し回数は正の整数で、省略時の値は 1 です。 +それぞれのフォーマットは この繰り返し回数だけ適用されます。 .Pp -バイト数も正の整数で、省略することもできます。指定された場合には +バイト数も正の整数で、省略することもできます。 +指定された場合には 繰り返し 1 回あたりに処理されるバイト数を示します。 .Pp -繰り返し回数とバイト数はスラッシュ (/) で区切ります。どちらか一方だけ +繰り返し回数とバイト数はスラッシュ (/) で区切ります。 +どちらか一方だけ 指定する時も、繰り返し回数の場合は直後、バイト数の場合は直前にスラッシュを -付け、曖昧にならないようにします。スラッシュの前後にある空白は無視されます。 +付け、曖昧にならないようにします。 +スラッシュの前後にある空白は無視されます。 .Pp -フォーマットは必須であり、ダブルクォート (" ") で囲みます。フォーマットは +フォーマットは必須であり、ダブルクォート (" ") で囲みます。 +フォーマットは fprintf 形式のフォーマット文字列 ( .Xr fprintf 3 を参照) ですが、以下の例外があります。 .Bl -bullet -offset indent .It フィールドの幅あるいは精度としてアスタリスク (*) を使用することはできません。 .It ``s'' 変換文字にはバイト数または精度を指定しなければなりません (精度が指定されなかった場合は文字列全体を表示するという .Xr fprintf 3 のデフォルトとは異なります)。 .It 変換文字 ``h'', ``l'', ``n'', ``p'' , ``q'' は サポートされていません。 .It C の標準規格の中で記述されている 以下の 1 文字エスケープシーケンスをサポートしています。 .Bd -ragged -offset indent -compact .Bl -column .It "NUL \e0 .It " \ea .It " \eb .It " \ef .It " \en .It " \er .It " \et .It " \ev .El .Ed .El .Pp .Nm ユーティリティはさらに以下の変換文字をサポートします。 .Bl -tag -width Fl .It Cm \&_a Ns Op Cm dox 次に表示されるバイトのオフセット (複数の入力ファイルを通算しての値) -を表示します。文字 +を表示します。 +文字 .Cm d , .Cm o , .Cm x を付加すると、表示をそれぞれ 10 進、8 進、16 進形式にします。 .It Cm \&_A Ns Op Cm dox .Cm \&_a 変換文字とほぼ同じですが、すべての入力が処理された後で一度だけ実行 されるという点が異なります。 .It Cm \&_c デフォルトの文字セット中における文字を表示します。 表示不能な文字は 0 詰めして 3 桁にした 8 進数で表示します。 ただし標準のエスケープ 表記 (上述) ができるものについてはその 2 文字で表示します。 .It Cm _p デフォルトの文字セット中における文字を表示します。 表示不能な文字は .Dq Cm \&. として表示します。 .It Cm _u -文字セット US ASCII 中での文字を表示します。ただし制御文字については -以下に示す小文字名で表示します。16 進で 0xff より大きな文字に +文字セット US +.Tn ASCII +中での文字を表示します。 +ただし制御文字については以下に示す小文字名で表示します。 +16 進で 0xff より大きな文字に ついては 16 進表記の文字列として表示します。 .Bl -column \&000_nu \&001_so \&002_st \&003_et \&004_eo .It "\&000\ nul\t001\ soh\t002\ stx\t003\ etx\t004\ eot\t005\ enq .It "\&006\ ack\t007\ bel\t008\ bs\t009\ ht\t00A\ lf\t00B\ vt .It "\&00C\ ff\t00D\ cr\t00E\ so\t00F\ si\t010\ dle\t011\ dc1 .It "\&012\ dc2\t013\ dc3\t014\ dc4\t015\ nak\t016\ syn\t017\ etb .It "\&018\ can\t019\ em\t01A\ sub\t01B\ esc\t01C\ fs\t01D\ gs .It "\&01E\ rs\t01F\ us\t0FF\ del .El .El .Pp 各々の変換文字について、サポートされているバイト数とデフォルトの バイト数は以下の通りです: .Bl -tag -width "Xc,_Xc,_Xc,_Xc,_Xc,_Xc" -offset indent .It Li \&%_c , \&%_p , \&%_u , \&%c 1 バイトのみ使用できます。 .It Xo .Li \&%d , \&%i , \&%o , .Li \&%u , \&%X , \&%x .Xc デフォルトでは 4 バイトで、1 バイト・2 バイト・4 バイトが使用できます。 .It Xo .Li \&%E , \&%e , \&%f , .Li \&%G , \&%g .Xc -デフォルトでは 8 バイトで、4 バイトも使用できます。 +デフォルトでは 8 バイトで、4 バイトと 12 バイトも使用できます。 .El .Pp 各フォーマット文字列によって処理されるデータの量は、 各フォーマット単位が必要とするデータ量の合計であり、これは バイト数の繰り返し回数倍、あるいはバイト数が指定されていない場合には フォーマットの必要とするバイト数の繰り返し回数倍になります。 .Pp -入力は ``ブロック'' ごとに処理されます。ブロックとは、フォーマット +入力は ``ブロック'' ごとに処理されます。 +ブロックとは、フォーマット 文字列によって指定されるデータの塊のうちで最も大きいものです。 1 ブロック分のデータを処理し切らないフォーマット文字列で、その中の 最後のフォーマット単位が何バイトかを処理し、かつ繰り返し 回数が指定されていないものは、ブロック全体が処理され切るか、 フォーマット文字列に合致するデータがブロック中になくなるまで 繰り返し回数を増やされます。 .Pp ユーザの指定または hexdump が上記のように繰り返し回数を変更した結果、 繰り返し回数が 1 より大きくなった場合、最後の繰り返しにおける 末尾の空白は出力されません。 .Pp バイト数を複数の変換文字と共に指定すると、1 つを除いた全ての変換文字が .Cm \&_a または .Cm \&_A である時以外、エラーになります。 .Pp 入力がフォーマット文字列の一部分しか満たしていない状態で .Fl n オプションで指定したバイト数あるいはEOFに到達した場合、 有効なデータをすべて表示できるよう、入力ブロックには適当な数の 0 が 補われます。(すなわち、データの終端にまたがっている フォーマット単位は何バイトかの 0 を表示します。) .Pp そのようなフォーマット文字列によるさらなる出力は、等数の空白で -置き換えられます。等数の空白とは、 +置き換えられます。 +等数の空白とは、 もとの変換文字あるいは変換文字列とフィールド幅と精度は同じで .Dq Li \&+ , .Dq \&\ \& , .Dq Li \&# を取り除いた .Cm s 変換文字が、NULL 文字列を指した場合に出力される数の空白です。 .Pp フォーマット文字列が指定されない場合、デフォルトの表示形式は .Fl x オプションが指定された場合のものと同じになります。 .Sh 診断 .Ex -std hexdump hd .Sh 使用例 入力を perusal 形式で表示する: .Bd -literal -offset indent "%06.6_ao " 12/1 "%3_u " "\et\et" "%_p " "\en" .Ed .Pp \-x オプションを実装: .Bd -literal -offset indent "%07.7_Ax\en" "%07.7_ax " 8/2 "%04x " "\en" .Ed .Sh 関連項目 .Xr gdb 1 diff --git a/ja_JP.eucJP/man/man1/info.1 b/ja_JP.eucJP/man/man1/info.1 index cc7eb5434c..9859194b98 100644 --- a/ja_JP.eucJP/man/man1/info.1 +++ b/ja_JP.eucJP/man/man1/info.1 @@ -1,85 +1,86 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.24. .\" $FreeBSD$ -.TH INFO "1" "March 2002" "GNU texinfo 4.1" FSF +.TH INFO "1" "April 2002" "GNU texinfo 4.2" FSF .SH 名称 info \- Info ドキュメントを読む .SH 書式 .B info [\fIOPTION\fR]... [\fIMENU-ITEM\fR...] .SH 解説 Info フォーマットのドキュメントを読みます。 .SH オプション .TP -\fB\-\-apropos\fR=\fISUBJECT\fR -SUBJECT をすべてのマニュアルの索引から探します。 +\fB\-\-apropos\fR=\fISTRING\fR +STRING をすべてのマニュアルの索引から探します。 .TP -\fB\-\-directory\fR=\fIDIR\fR +\fB\-d\fR, \fB\-\-directory\fR=\fIDIR\fR INFOPATH に DIR を追加します。 .TP \fB\-\-dribble\fR=\fIFILENAME\fR ユーザのキー操作を FILENAME で指定したファイルに保存します。 .TP -\fB\-\-file\fR=\fIFILENAME\fR +\fB\-f\fR, \fB\-\-file\fR=\fIFILENAME\fR 閲覧する Info ファイルを指定します。 .TP -\fB\-\-help\fR +\fB\-h\fR, \fB\-\-help\fR このヘルプメッセージを表示して終了します。 .TP \fB\-\-index\-search\fR=\fISTRING\fR インデックスエントリ STRING で示される項目に移動します。 .TP -\fB\-\-node\fR=\fINODENAME\fR +\fB\-n\fR, \fB\-\-node\fR=\fINODENAME\fR 最初に表示される Info ファイルの中の項目を指定します。 .TP -\fB\-\-output\fR=\fIFILENAME\fR +\fB\-o\fR, \fB\-\-output\fR=\fIFILENAME\fR 選択した項目を FILENAME で指定したファイルに出力します。 .TP -\fB\-\-raw\-escapes\fR +\fB\-R\fR, \fB\-\-raw\-escapes\fR ANSI エスケープをマニュアルページから削除しません。 .TP \fB\-\-restore\fR=\fIFILENAME\fR 最初のキー操作を FILENAME で指定したファイルから読み込みます。 .TP -\fB\-\-show\-options\fR, \fB\-\-usage\fR +\fB\-O\fR, \fB\-\-show\-options\fR, \fB\-\-usage\fR コマンドラインオプションの項目に移動します。 .TP \fB\-\-subnodes\fR すべての下の階層のメニューの項目を出力します。 .TP \fB\-\-vi\-keys\fR vi と less に似たキー操作を使用します。 .TP \fB\-\-version\fR バージョン情報を表示して終了します。 .PP 最初にオプションでない引数が指定されていれば、 それは初めに表示するメニュー項目となります。 その項目は INFOPATH で指定されたすべての 'dir' ファイルから検索されます。 もしそれが存在しなければ、 info はすべての 'dir' ファイルを結合した結果を表示します。 残りのすべての引数は、 最初に表示する項目を決めるメニュー項目に関連するものとして取り扱われます。 .SH 使用例 .TP info トップレベルのディレクトリメニューを表示します .TP info emacs 最初にトップレベルのディレクトリの、emacs の項目を表示します .TP info emacs buffers 最初に emacs のマニュアルの、buffers の項目を表示します .TP info \fB\-\-show\-options\fR emacs 最初に emacs のコマンドラインオプションの項目を表示します .TP info \fB\-f\fR ./foo.info 検索ディレクトリからではなく、ファイル ./foo.info を表示します .SH "バグ報告" バグレポートは電子メールで bug-texinfo@gnu.org 宛にお送りください。 その他の質問や議論は help-texinfo@gnu.org 宛にお送りください。 +Texinfo ホームページ: http://www.gnu.org/software/texinfo/ .SH COPYRIGHT Copyright \(co 2002 Free Software Foundation, Inc. There is NO warranty. You may redistribute this software under the terms of the GNU General Public License. For more information about these matters, see the files named COPYING. diff --git a/ja_JP.eucJP/man/man1/install-info.1 b/ja_JP.eucJP/man/man1/install-info.1 index 35d504478e..1907876f76 100644 --- a/ja_JP.eucJP/man/man1/install-info.1 +++ b/ja_JP.eucJP/man/man1/install-info.1 @@ -1,78 +1,79 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.24. .\" $FreeBSD$ -.TH INSTALL-INFO "1" "March 2002" "GNU texinfo 4.1" FSF +.TH INSTALL-INFO "1" "April 2002" "GNU texinfo 4.2" FSF .SH 名称 install-info \- info/dir エントリの更新 .SH 書式 .B install-info [\fIOPTION\fR]... [\fIINFO-FILE \fR[\fIDIR-FILE\fR]] .SH 解説 Info ディレクトリファイル DIR-FILE に対し、 INFO-FILE 用のディレクトリエントリのインストールまたは削除を行います。 .SH オプション .TP \fB\-\-delete\fR INFO-FILE 用に既に存在するエントリを DIR-FILE から削除します。 新規エントリをなにも挿入しません。 .TP \fB\-\-dir\-file\fR=\fINAME\fR Info ディレクトリファイルのファイル名を指定します。 これは、DIR-FILE 引数を使用するのと等価です。 .TP \fB\-\-entry\fR=\fITEXT\fR Info ディレクトリエントリとして、TEXT を挿入します。 TEXT の形式は、 Info メニュー項目行 1 行に加え、 空白から開始する追加行を 0 行以上です。 複数エントリを指定した場合、すべてが追加されます。 エントリをなにも指定しない場合、Info ファイル自身の中の情報から、 エントリが決定されます。 .TP \fB\-\-help\fR このヘルプを表示し終了します。 .TP \fB\-\-info\-file\fR=\fIFILE\fR ディレクトリにインストールする Info ファイルを指定します。 これは、INFO-FILE 引数を指定するのと等価です。 .TP \fB\-\-info\-dir\fR=\fIDIR\fR \fB\-\-dir\-file\fR=\fIDIR\fR/dir と同じです。 .TP \fB\-\-item\fR=\fITEXT\fR \fB\-\-entry\fR TEXT と同じです。 Info ディレクトリエントリは、実際にメニュー項目です。 .TP \fB\-\-quiet\fR 警告を抑制します。 .TP \fB\-\-remove\fR \fB\-\-delete\fR と同じです。 .TP \fB\-\-section\fR=\fISEC\fR このファイルのエントリを、ディレクトリのセクション SEC に置きます。 複数のセクションを指定した場合、全セクションが各セクションに追加されます。 セクションを指定しない場合、Info ファイル自身の中の情報から、 セクションが決定されます。 .TP \fB\-\-version\fR バージョン情報を表示し終了します。 .SH バグ報告 バグ報告は bug-texinfo@gnu.org へ、 一般的な質問や議論は help-texinfo@gnu.org へメールしてください +Texinfo ホームページ: http://www.gnu.org/software/texinfo/ .SH COPYRIGHT Copyright \(co 2002 Free Software Foundation, Inc. There is NO warranty. You may redistribute this software under the terms of the GNU General Public License. For more information about these matters, see the files named COPYING. .SH 関連項目 .B install-info の完全な文書は、Texinfo マニュアルにて維持されています。 あなたのサイトで .B info と .B install-info が適切にインストールされているならば、 .IP .B info install-info .PP というコマンドで、完全なマニュアルを読めるでしょう。 diff --git a/ja_JP.eucJP/man/man1/jot.1 b/ja_JP.eucJP/man/man1/jot.1 index 1358a399ef..19108447b0 100644 --- a/ja_JP.eucJP/man/man1/jot.1 +++ b/ja_JP.eucJP/man/man1/jot.1 @@ -1,212 +1,212 @@ .\" Copyright (c) 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)jot.1 8.1 (Berkeley) 6/6/93 -.\" %FreeBSD: src/usr.bin/jot/jot.1,v 1.8.2.5 2002/06/21 15:27:21 charnier Exp % +.\" %FreeBSD: src/usr.bin/jot/jot.1,v 1.8.2.6 2002/07/15 07:13:13 keramida Exp % .\" .\" $FreeBSD$ .\" .Dd June 6, 1993 .Dt JOT 1 .Os .Sh 名称 .Nm jot .Nd 連続ないしは、乱数データを出力する .Sh 書式 .Nm .Op Fl cnr .Op Fl b Ar word .Op Fl w Ar word .Op Fl s Ar string .Op Fl p Ar precision -.Op reps Op begin Op end Op s +.Op Ar reps Op Ar begin Op Ar end Op Ar s .Sh 解説 .Nm ユーティリティは、 増加・減少・ランダム・冗長データを通常は数字で、一行毎に出力します。 .Pp 以下のようなオプションが利用できます。 .Bl -tag -width indent .It Fl r デフォルトの連続したデータの代わりに、乱数を作成します。 .It Fl b Ar word .Ar word を、繰り返し出力するだけです。 .It Fl w Ar word .Ar word のあとに、生成されたデータを付け加え、出力します。 -8 進・16 進・指数・ASCII・ゼロで埋めた表示・右詰め表現などは、適切な +8 進・16 進・指数・ASCII・0 で埋めた表示・右詰め表現などは、適切な .Xr printf 3 記法を .Ar word 中で指定することで、可能です。この場合、データは追加されるというよりも、 挿入されると考えてください。 .It Fl c これは、 .Fl w Ar %c の省略形です。 .It Fl s Ar string .Ar string で分けられたデータを出力します。 普通は、改行文字がデータを分割します。 .It Fl n 通常追加される、最後の改行を出力しません。 .It Fl p Ar precision 整数 .Ar precision で指定されたデータの文字数もしくは桁数だけ表示します。 .Fl p がない場合、精度値は .Ar begin と .Ar end -の精度の大きい方です。 +の引数の精度の大きい方です。 .Fl p オプションは、 .Fl w に続く .Xr printf 3 記法が指定されている時には、上書きされます。 .El .Pp 最後の 4 つの引数はそれぞれデータ数・下界・上界と、幅の大きさまたは、乱数のため の種です。 少なくともどれか一つが指定されなければなりませんが、その他の 3 つは引数として \ - を与えると、省略できます。 これら 3 つの引数を指定すれば、4 つ目が決まります。 4 つとも指定されて、 .Ar reps の与えられた値と、計算された値とが相反する場合、小さい方を用います。 指定された数が 3 つより少ない場合には、 .Ar s を除いて、 デフォルト値を左から右へ割り当てます。 .Ar s は、 .Ar begin と .Ar end が共に指定された場合以外、デフォルト値が設定されます。 .Pp 4 つの引数に対するデフォルトは、乱数が要求された時を除いて、 それぞれ、100, 1, 100, 1です。 乱数の種 .Ar s はランダムに選択されます。 .Ar reps -は、符号無し整数であると想定されています。 -ゼロが与えられた場合は、無限回数となります。 +引数は、符号無し整数であると想定されています。 +0 が与えられた場合は、無限回数となります。 .Ar begin と .Ar end は、実数、もしくは文字の場合は対応する .Tn ASCII 値としてあたえられます。 最後の引数は、実数でなければなりません。 .Pp 乱数値は、 .Xr random 3 を使って得られます。 名前 .Nm は、 APL 中の関数 .Nm iota の部分から来ています。 .Sh 使用例 コマンド .Dl jot 21 -1 1.00 .Pp は、\-1 から 1 へ増加する等間隔の数字を 21 個出力します。 .Tn ASCII 文字集合は、以下のようにします。 .Dl jot -c 128 0 .Pp xaa から xaz までの文字列は以下のようにします。 .Dl jot -w xa%c 26 a .Pp 20 個のランダムな 8 文字は以下のようにして作成します。 .Dl "jot -r -c 160 a z | rs -g 0 8" .Pp 無限に、 .Em yes を出したい場合は、以下のようにします。 .Dl jot -b yes 0 .Pp .Xr ed 1 の置換コマンドを、30 回、2, 7, 12 行等のように (5 行毎に ) 適用する場合の 解答例は以下のようになります。 .\"(訳中)(5 行毎に )は訳者が挿入しました。 .\" 2.2.1R 対象(1997/05/06) Takeshi MUTOH .Dl jot -w %ds/old/new/ 30 2 - 5 .Pp だぶりのある 9, 9, 8, 8, 7 の様な列は、 以下のように適切にステップの大きさを設定することで、実現できます。 .Dl jot - 9 0 -.5 .Pp ファイルが正確に 1024 バイトであるように作成するには、 .Dl jot -b x 512 > block .Pp 最後に、タブを 4 つのスペースに設定し、10 カラム目からはじまって、 132 カラム目で終るようにするには、以下のようにします。 .Dl expand -`jot -s, - 10 132 4` .Pp 80 文字以上の行を全て表示するには、以下を使ってください。 .Dl grep `jot -s \&"\&" -b \&. 80` .Sh 診断 .Ex -std 次の診断メッセージは、特別な解説を要します: .Bl -diag .It "illegal or unsupported format '%s'" .Xr printf 3 用に要求された変換書式指示子は、 .Dl %[#][ ][{+,-}][0-9]*[.[0-9]*]? の書式ではありませんでした。 ここで .Dq ?\& は .Dl [l]{d,i,o,u,x} または .Dl {c,e,f,g,D,E,G,O,U,X} のいずれかひとつです。 .It "range error in conversion" 表示すべき値は、要求された出力書式に関連付けられたデータタイプの 範囲外の結果になりました。 .It "too many conversions" 1 個しか許されないところを、複数の変換書式指示子が指定されました。 .El .Sh 関連項目 .Xr ed 1 , .Xr expand 1 , .Xr rs 1 , .Xr yes 1 , .Xr printf 3 , .Xr random 3 diff --git a/ja_JP.eucJP/man/man1/keylogout.1 b/ja_JP.eucJP/man/man1/keylogout.1 index 7945dcab4b..84b96b7a09 100644 --- a/ja_JP.eucJP/man/man1/keylogout.1 +++ b/ja_JP.eucJP/man/man1/keylogout.1 @@ -1,42 +1,42 @@ -.\" %FreeBSD: src/usr.bin/keylogout/keylogout.1,v 1.4.2.1 2002/06/21 15:27:26 charnier Exp % +.\" %FreeBSD: src/usr.bin/keylogout/keylogout.1,v 1.4.2.2 2002/07/15 06:39:20 keramida Exp % .\" @(#)keylogout.1 1.4 91/03/11 TIRPC 1.0; from 1.3 89/07/26 SMI; .\" $FreeBSD$ .Dd April 15, 1989 .Dt KEYLOGOUT 1 .Os .Sh 名称 .Nm keylogout .Nd 格納された秘密鍵を削除する .Sh 書式 .Nm .Op Fl f .Sh 解説 .Nm ユーティリティは、鍵サーバプロセス .Xr keyserv 8 が格納している鍵を削除します。 この鍵は、NFS などの安全なネットワークサービスが使用します。 これ以降の鍵へのアクセスは禁止されますが、 現在のセッション鍵は期限切れまたはリフレッシュされるまで、有効なままです。 このオプションは、 安全な RPC サービスを必要とするバックグラウンドジョブを失敗させ、 鍵を必要とする予定された .Nm at ジョブを失敗させます。 また、鍵のコピーはマシン 1 台につき 1 つだけですので、 .Pa .logout ファイルにこれを置くのは良くない考えです。 なぜなら、同一マシン上の他のセッションに影響があるからです。 -.Sh オプション +次のオプションが使用可能です: .Bl -tag -width indent .It Fl f ルート鍵 (rootkey) を忘れます。 サーバで実行すると、安全な NFS を破綻させます。 .El .Sh 関連項目 .Xr chkey 1 , .Xr keylogin 1 , .Xr login 1 , .Xr publickey 5 , .Xr keyserv 8 , .Xr newkey 8 diff --git a/ja_JP.eucJP/man/man1/kill.1 b/ja_JP.eucJP/man/man1/kill.1 index 4375c0ea9c..7ad323bbd4 100644 --- a/ja_JP.eucJP/man/man1/kill.1 +++ b/ja_JP.eucJP/man/man1/kill.1 @@ -1,147 +1,163 @@ .\" Copyright (c) 1980, 1990, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" This code is derived from software contributed to Berkeley by .\" the Institute of Electrical and Electronics Engineers, Inc. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)kill.1 8.2 (Berkeley) 4/28/95 -.\" %FreeBSD: src/bin/kill/kill.1,v 1.11.2.1 2000/12/08 13:34:35 ru Exp % -.\" $FreeBSD: doc/ja_JP.eucJP/man/man1/kill.1,v 1.9 2001/05/14 01:07:25 horikawa Exp $ +.\" %FreeBSD: src/bin/kill/kill.1,v 1.11.2.2 2002/07/14 21:41:26 keramida Exp % +.\" $FreeBSD$ .\" .Dd April 28, 1995 .Dt KILL 1 .Os .Sh 名称 .Nm kill .Nd プロセスを終了させる、もしくは、プロセスにシグナルを送る .Sh 書式 .Nm .Op Fl s Ar signal_name .Ar pid \&... .Nm .Fl l .Op Ar exit_status .Nm -.Fl signal_name +.Fl Ar signal_name .Ar pid \&... .Nm -.Fl signal_number +.Fl Ar signal_number .Ar pid \&... .Sh 解説 .Nm は、 .Ar pid で指定されたプロセス番号のプロセスに対し シグナルを送ります。 .Pp 他のユーザのプロセスにシグナルを送ることができるのは、スーパユーザ だけです。 .Pp オプションとしては以下のものがあります: .Pp .Bl -tag -width Ds .It Fl s Ar signal_name デフォルトの .Dv TERM シグナルのかわりに、 シンボルによるシグナル名で指定したシグナルを送ります。 .It Fl l Op Ar exit_status オペランドを指定しない場合、シグナル名をリストします; オペランドを指定する場合、 .Ar exit_status に対応するシグナル名を表示します。 -.It Fl signal_name +.It Fl Ar signal_name デフォルトの .Dv TERM シグナルのかわりに、 シンボルによるシグナル名で指定したシグナルを送ります。 -.It Fl signal_number +.It Fl Ar signal_number 負でない整数値を指定すると、 デフォルトの .Dv TERM シグナルのかわりに、その番号のシグナルを送ります。 .El .Pp 以下のプロセス番号には特別な意味があります: .Bl -tag -width Ds -compact .It -1 スーパユーザの場合、全てのプロセスに対しシグナルを放送します; そうでない場合、そのユーザの全てのプロセスに対しシグナルを放送します。 .El .Pp 主なシグナル番号とシグナル名は次のとおりです: .Bl -tag -width Ds -compact .It 1 HUP (hang up) .It 2 INT (interrupt) .It 3 QUIT (quit) .It 6 ABRT (abort) .It 9 KILL (non-catchable, non-ignorable kill) .It 14 ALRM (alarm clock) .It 15 TERM (software termination signal) .El .Pp シェルによっては、本ユーティリティと似たまたは同じ、組み込みの .Nm コマンドを提供しているものがあります。 .Xr builtin 1 マニュアルページを参照してください。 +.Sh 使用例 +pid 142 と 157 のプロセスを終了させます: +.Pp +.Dl "kill 142 157" +.Pp +ハングアップシグナル +.Pq Dv SIGHUP +を pid 507 のプロセスに送ります: +.Pp +.Dl "kill -s HUP 507" +.Pp +pgid 117 のプロセスグループを終了させます: +.Pp +.Dl "kill -- -117" +.Sh 診断 +.Ex -std .Sh 関連項目 .Xr builtin 1 , .Xr csh 1 , .Xr killall 1 , .Xr ps 1 , .Xr kill 2 , .Xr sigaction 2 .Sh 規格 .Nm の機能は .St -p1003.2 互換であることが期待されています。 .Sh 歴史 .Nm コマンドは -.At v6 +.At v3 から登場しました。 .Sh バグ .Xr csh 1 ユーザのために .Dq Li kill 0 の代替コマンドを用意するべきです。 diff --git a/ja_JP.eucJP/man/man1/killall.1 b/ja_JP.eucJP/man/man1/killall.1 index becbcdae7e..be041e2926 100644 --- a/ja_JP.eucJP/man/man1/killall.1 +++ b/ja_JP.eucJP/man/man1/killall.1 @@ -1,156 +1,156 @@ .\" Copyright (C) 1995 by Joerg Wunsch, Dresden .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS .\" OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED .\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE .\" DISCLAIMED. IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, .\" INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES .\" (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR .\" SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, .\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING .\" IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE .\" POSSIBILITY OF SUCH DAMAGE. .\" -.\" %FreeBSD: src/usr.bin/killall/killall.1,v 1.11.2.9 2002/06/21 15:27:28 charnier Exp % +.\" %FreeBSD: src/usr.bin/killall/killall.1,v 1.11.2.10 2002/07/15 11:35:31 rse Exp % .\" $FreeBSD$ .\" .Dd June 25, 1995 .Os .Dt KILLALL 1 .Sh 名称 .Nm killall .Nd 名前で指定されるプロセスにシグナルを送る .\"(訳注)原文では、 kill processes by name であるが、機能から考えて .\" "プロセスにシグナルを送る"と訳した。 .\" 2.2.1R 対象(1997/04/13) Takeshi MUTOH .Sh 書式 .Nm .Op Fl d | v .Op Fl h | ?\& .Op Fl help .Op Fl l .Op Fl m .Op Fl s .Op Fl u Ar user .Op Fl t Ar tty .Op Fl c Ar procname .Op Fl SIGNAL .Op Ar procname ... .Sh 解説 .Nm ユーティリティは、 .Xr kill 1 がプロセス id で指定されるプロセスにシグナルを送るのに対して、 名前で指定されるプロセスにシグナルをおくります。 デフォルトでは、 .Dv TERM シグナルを、 .Nm 実行者と同じ実 UID を持つ、 .Ar procname に名前が一致する全てのプロセスに送ります。 スーパユーザはどんなプロセスにたいしてもシグナルを送ることができます。 .Pp 以下のようなオプションがあります。 .Bl -tag -width 10n -offset indent .It Fl d | v これから、行おうとすることをより冗長に報告します。一つの .Fl d オプションによって、シグナルを送ろうとするプロセスの一覧が表示されるか、 一つも一致するプロセスが見付からなかったことが示されます。 .It Fl h | ?\& .It Fl help コマンドの使い方のヘルプを表示し、終了します。 .It Fl l .Xr kill 1 の様に利用可能なシグナルの名前の一覧を表示し、終了します。 .It Fl m 引数 .Ar procname を ( 大文字小文字を区別しない ) 正規表現として、 得られた名前に対して対応を取ります。 注意! 一つのドット (.) は、呼び出しユーザと同一の実 UID を持つ 全てのプロセスに一致し、 危険です。 .It Fl s 何が行われるのかだけを表示し、シグナルは送られません。 .It Fl SIGNAL デフォルトの .Dv TERM とは違うシグナルを送ります。シグナルは、 (頭に .Dv SIG を付けても付けなくても良い) 名前もしくは数字で指定します。 .It Fl u Ar user 潜在的に対応するプロセスを、指定した .Ar user に属するものに限定します。 .It Fl t Ar tty 潜在的に対応するプロセスを、指定した .Ar tty で動作するものに限定します。 .It Fl c Ar procname .Fl u または .Fl t のフラグと共に使用されたとき、潜在的に対応するプロセスを、指定した -.Ar progname +.Ar procname に限定します。 .El .Sh 全てのプロセス uid が .Nm XYZ である全てのプロセスに対してシグナルを送る動作は、 .Xr kill 1 で既にサポートされています。したがって、このような仕事を行うためには .Xr kill 1 を使ってください(たとえば、 $ kill -TERM -1 もしくは、 root になって、 $ echo kill -TERM -1 |su -m で可能です。)。 .Sh 診断 .Nm コマンドは、コマンドエラーが起こった場合は、短い利用法のメッセージを 表示し、終了状態 2 で終了します。 終了状態 1 は、一致するプロセスが見付からなかった時か、全ての プロセスに対してシグナルを送ることに成功しなかった時に返されます。 それ以外の場合は、終了状態 0 が返されます。 .Pp 診断メッセージは、 .Fl d オプションで要求された場合だけ表示されます。 .Sh 関連項目 .Xr kill 1 , .Xr sysctl 3 .Sh 歴史 .Nm コマンドは .Fx 2.1 から導入されました。 .Nm コマンドは他のプラットホームでも利用可能なように設計されています。 .Sh 作者 .An -nosplit .Nm プログラムは、 .An Wolfram Schneider によって提供されました。 このマニュアルページは .An J\(:org Wunsch によって書かれました。 現在のバージョンの .Nm は、 .An Peter Wemm が .Xr sysctl 3 を使った C で書き直しました。 diff --git a/ja_JP.eucJP/man/man1/last.1 b/ja_JP.eucJP/man/man1/last.1 index 02d154d2fe..3cd2d18b12 100644 --- a/ja_JP.eucJP/man/man1/last.1 +++ b/ja_JP.eucJP/man/man1/last.1 @@ -1,214 +1,216 @@ .\" Copyright (c) 1980, 1990, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)last.1 8.1 (Berkeley) 6/6/93 -.\" %FreeBSD: src/usr.bin/last/last.1,v 1.6.2.6 2002/06/21 15:27:37 charnier Exp % +.\" %FreeBSD: src/usr.bin/last/last.1,v 1.6.2.7 2002/07/15 06:45:36 keramida Exp % .\" .\" $FreeBSD$ .\" .Dd March 1, 2002 .Dt LAST 1 .Os .Sh 名称 .Nm last .Nd 最近ログインしたユーザの記録を表示する .Sh 書式 .Nm .Op Fl Ns Ar n .Oo .Fl d .Sm off .Op Oo Ar CC Oc Ar YY .Op Ar MM DD .Ar hh mm .Op Ar .SS .Sm on .Oc .Op Fl f Ar file .Op Fl h Ar host .Op Fl s .Op Fl t Ar tty .Op Fl w .Op Ar user ... .Sh 解説 .Nm ユーティリティは指定された .Ar user , .Ar tty , や .Ar host でのログインしてからログアウトまでを 最近の物から表示します。 または、本コマンドは、指定した時刻にログインしていたユーザを表示します。 出力の各行には、ユーザ名、セッションを処理した tty、ホスト名、セッションの 開始および終了時刻、セッションの期間の情報が含まれます。セッションがまだ 継続中であるか、クラッシュないしシャットダウンにより中断された場合は そのように表示されます。 .Pp +次のオプションが使用可能です: .Bl -tag -width indent-two .It Fl Ar n 表示するセッション情報を、 .Ar n 行 以内に制限します。 .It Fl d Ar date スナップショットの日時を指定します。 そのスナップショットの日時にログインしていた全ユーザが報告されます。 保存されている wtmp ファイルから結果を引き出すために、 .Fl f オプションを使用可能です。 本オプションが指定されると、 .Fl f と .Fl Ar n 以外の全オプションは無視されます。 引数は次の書式であるべきです: .Sm off .Op Oo Ar CC Oc Ar YY .Op Ar MM DD .Ar hh mm .Op Ar .SS .Sm on ここで、各文字の組は次の意味です: .Pp .Bl -tag -width Ds -compact -offset indent .It Ar CC 年の最初の 2 桁 (世紀)。 .It Ar YY 年の次の 2 桁。 .Ar YY が指定され、 .Ar CC が指定されない場合、 .Ar YY に 69 から 99 の値を指定すると .Ar CC の値は 19 になります。 そうでない場合、 .Ar CC の値は 20 になります。 .It Ar MM 月であり、1 から 12 です。 .It Ar DD 日であり、1 から 31 です。 .It Ar hh 時間であり、0 から 23 です。 .It Ar mm 分であり、0 から 59 です。 .It Ar SS 秒であり、0 から 61 です。 .El .Pp .Ar CC と .Ar YY の文字の組が指定されない場合、値は現在の年になります。 .Ar SS 文字の組が指定されない場合、値は 0 になります。 .It Fl f Ar file -指定したファイルからログイン情報ファイルを読み込みます。デフォルト +指定したファイルからログイン情報ファイルを読み込みます。 +デフォルト では、 .Pa /var/log/wtmp を読み込みます。 .It Fl h Ar host .Ar host は、ホスト名かインターネットアドレスを指定します。 .It Fl s ログインセッションの長さを、デフォルトの日数・時間数・分数ではなく、 秒数でレポートします。 .It Fl t Ar tty .Ar tty を指定します。 .Ar tty には、完全な 端末名か、tty を省略した名前を使うことができます。たとえば、 .Dq Li "last -t 03" は、 .Dq Li "last -t tty03" と同じです。 .It Fl w ログインセッションのフィールド幅を広げ、 デフォルトの日数・時間数・分数のみではなく、秒数もレポートします。 .It Fl y セッション開示時刻に年もレポートします。 .El .Pp 複数の引数が与えられ、スナップショットの日時が指定されないと、 .Nm はそれらの引数のいずれかを満足するすべての セッション情報を表示しようとします。すなわち、 .Dq Li "last root -t console" とすると、 .Dq Li root の行ったセションのすべてと、端末 console 上での セッションのすべてを表示します。もし、 .Ar user も .Ar host も .Ar tty も 指定されなければ、 .Nm はすべてのログイン、ログアウト情報を表示 します。 .Pp システムをリブートすると、その情報は仮想ユーザである .Ar reboot のセッションとして記録されます。したがって、 .Dq Li last reboot とすると、システムのリブート 間隔を知ることができます。 .Pp 割り込みが起こると、 .Pa wtmp の記録開始日時を表示します。QUIT シグナルによって割り込みが行われた場合、 .Nm は 検索を開始してからシグナルを受けるまでに検索した日付を表示し、実行を続けます。 .Sh 関連ファイル .Bl -tag -width /var/log/wtmp -compact .It Pa /var/log/wtmp ログイン情報データベース .El .Sh 関連項目 .Xr lastcomm 1 , .Xr utmp 5 , .Xr ac 8 .Sh バグ ログインシェルが何らかの理由で異常終了した場合、ログアウトの記録が wtmp ファイルに記録されない場合があります。この様な場合、last は、 ログアウトの時刻を "shutdown" と表示します。 .Sh 歴史 .Nm ユーティリティは .Bx 3.0 から登場しました。 diff --git a/ja_JP.eucJP/man/man1/lex.1 b/ja_JP.eucJP/man/man1/lex.1 index e1be409ccf..00d8be24f8 100644 --- a/ja_JP.eucJP/man/man1/lex.1 +++ b/ja_JP.eucJP/man/man1/lex.1 @@ -1,4079 +1,4079 @@ -.\" %FreeBSD: src/usr.bin/lex/lex.1,v 1.10.2.3 2001/09/30 12:40:04 dd Exp % +.\" %FreeBSD: src/usr.bin/lex/lex.1,v 1.10.2.4 2002/07/15 06:48:02 keramida Exp % .\" .\" $FreeBSD$ .TH FLEX 1 "April 1995" "Version 2.5" .SH 名称 flex \- 高速な字句解析処理系の生成ツール .SH 書式 .B flex .B [\-bcdfhilnpstvwBFILTV78+? \-C[aefFmr] \-ooutput \-Pprefix \-Sskeleton] .B [\-\-help \-\-version] .I [filename ...] .SH 概説 本マニュアルは、 テキストのパターンマッチングを行うプログラムを生成するツール .I flex を扱います。 本マニュアルはチュートリアルとリファレンス節とを含みます: .nf 解説 ツールの短い概説 簡単な例 入力ファイルのフォーマット パターン flex が使用する拡張した正規表現 入力のマッチ方法 何がマッチするかを決定する規則 アクション パターンがマッチした時に何を行うかを指定する方法 生成されたスキャナ flex が生成するスキャナに関する詳細; 入力元の制御方法 開始条件 スキャナへの文脈の導入と、 "ミニスキャナ" の制御方法 複数の入力バッファ 複数の入力元を扱う方法; ファイルではなく文字列からスキャンする方法 ファイルの終りのルール ファイルの終りにマッチする特別なルール 雑多なマクロ アクションで使用可能なマクロのまとめ ユーザが使用可能な値 アクションで使用可能な値のまとめ Yacc とのインタフェース lex スキャナと yacc パーサとの結合 オプション flex のコマンドラインオプションと、 "%option" ディレクティブ 性能関連 スキャナを可能な限り高速にする方法 C++ スキャナの生成 C++ スキャナクラス生成のための (実験的な) 機能 Lex および POSIX との非互換性 AT&T lex および POSIX lex 標準と flex との違い 診断 flex (もしくは生成したスキャナ) が出力する エラーメッセージで意味が明確でないもの 関連ファイル flex が使用するファイル 欠陥 / バグ flex の既知の問題 関連項目 ツールに関係する他のドキュメント 作者 連絡方法を含みます .fi .SH 解説 .I flex は .I スキャナ を生成するためのツールです。 ここで、スキャナとは、 テキスト内の字句パターンを解析するプログラムです。 .I flex は指定したファイル、もしくはファイル名が与えられなかった場合は 標準入力から、生成するスキャナの記述を読み込みます。 この記述は、 正規表現と C コードのペアの形をとっています。 これは .I ルール と呼ばれます。 .I flex は、出力として C ソースファイルの .B lex.yy.c を生成しますが、その中に .B yylex() ルーチンが定義されます。 このファイルはコンパイルされ、 .B \-ll ライブラリとともにリンクされて、 実行形式となります。 実行形式が走り始めると、 正規表現をマッチさせるために 入力が解析されます。 マッチするものを見つけると、対応する C コードが実行されます。 .SH 簡単な例 まず簡単な例から、 .I flex の使い方を見て行きましょう。 次の .I flex の入力は、"username" という文字列に出会うとユーザのログイン名に置き換える スキャナを指定しています: .nf %% username printf( "%s", getlogin() ); .fi デフォルトでは、 .I flex スキャナにマッチしなかったテキストは出力にコピーされますので、 "username" を展開しながら入力を出力にコピーすることが このスキャナの最終的な結果となります。 この入力にはただ一つのルールだけがあります。 "username" は .I パターン であり、"printf" は .I アクション です。 "%%" はルールの始まりの印です。 .PP 別の例を見て見ましょう: .nf %{ int num_lines = 0, num_chars = 0; %} %% \\n ++num_lines; ++num_chars; . ++num_chars; %% main() { yylex(); printf( "# of lines = %d, # of chars = %d\\n", num_lines, num_chars ); } .fi このスキャナは入力の文字数および行数を数えます (数えた最終結果を報告するだけです)。 最初の行は 2 つの大域変数 "num_lines" と "num_chars" を宣言します。 これらの変数は、2 番目の "%%" の後に宣言されている .B yylex() と .B main() のルーチンからアクセス可能です。 ここには 2 つのルールがあります。 1 つ目は改行文字 ("\\n") にマッチし、行数と文字数のカウントを増加させます。 もう 1 つは、改行文字以外の全ての文字 ("." という正規表現で表されています)にマッチします。 .PP 次はもうちょっと複雑な例です: .nf /* scanner for a toy Pascal-like language */ %{ /* need this for the call to atof() below */ #include %} DIGIT [0-9] ID [a-z][a-z0-9]* %% {DIGIT}+ { printf( "An integer: %s (%d)\\n", yytext, atoi( yytext ) ); } {DIGIT}+"."{DIGIT}* { printf( "A float: %s (%g)\\n", yytext, atof( yytext ) ); } if|then|begin|end|procedure|function { printf( "A keyword: %s\\n", yytext ); } {ID} printf( "An identifier: %s\\n", yytext ); "+"|"-"|"*"|"/" printf( "An operator: %s\\n", yytext ); "{"[^}\\n]*"}" /* eat up one-line comments */ [ \\t\\n]+ /* eat up whitespace */ . printf( "Unrecognized character: %s\\n", yytext ); %% main( argc, argv ) int argc; char **argv; { ++argv, --argc; /* skip over program name */ if ( argc > 0 ) yyin = fopen( argv[0], "r" ); else yyin = stdin; yylex(); } .fi これは Pascal のような言語の単純なスキャナの原型です。 異なったタイプの .I トークン を定義し、これを見付けると報告します。 .PP この例の詳細は、以降の節で説明します。 .SH 入力ファイルのフォーマット .I flex の入力ファイルは 3 つの部分からなり、 .B %% だけからなる行により分けられます: .nf 定義 %% ルール %% ユーザコード .fi .I 定義 部分は、スキャナの宣言を単純化する単純な .I 名前 の定義の宣言と、後で説明する .I 開始条件 の宣言とからなります。 .PP 名前の定義は次の形式です: .nf 名前\ 定義 .fi "名前" は語であり、 レターかアンダースコア ('_') から始まって 0 個以上のレター・数字・'_'・'-' (ダッシュ)が続きます。 定義は、名前に続く最初の非空白文字から始まり、行末まで続くものとされます。 定義は後で "{名前}" で参照でき、"(定義)" を展開します。 例えば、 .nf DIGIT [0-9] ID [a-z][a-z0-9]* .fi は、 "DIGIT" が単一の数字にマッチする正規表現であると定義し、 "ID" がレターに 0 個以上のレターか数字が続く正規表現であると定義します。 後で出て来る参照 .nf {DIGIT}+"."{DIGIT}* .fi は .nf ([0-9])+"."([0-9])* .fi と同じであり、1 個以上の数字に '.' が続き、 0 個以上の数字が続くものにマッチします。 .PP .I flex の入力の .I ルール は次の形式の一連のルールからなります: .nf パターン\ \ \ アクション .fi ここで、パターンはインデントされていてはならず、 アクションは同じ行から始まる必要があります。 .PP パターンとアクションの詳細は後の解説を見て下さい。 .PP 最後に、ユーザコードの部分は単純にそのままの形で .B lex.yy.c にコピーされます。 スキャナを呼び出すまたは呼び出される付随ルーチンのために使用されます。 この部分はあっても無くても構いません; 無い場合には、入力ファイル中の 2 番目の .B %% も省略できます。 .PP 定義とルールの部分では、 .I インデントされた テキストと .B %{ と .B %} との間のテキストはそのままの形で出力にコピーされます (この際 %{} は削除されます)。 %{} はインデントされていない行に現れる必要があります。 .PP ルールの部分では、 最初のルールの前に現れるインデントされたもしくは %{} 部分のテキストは、 スキャンルーチンにローカルな変数と、 (宣言の後では)スキャンルーチンに入るたびに実行されるコードとを宣言します。 ルール部分の他のインデントされたもしくは %{} 部分のテキストは 出力にコピーされますが、 意味はちゃんと定義されておらずコンパイル時にエラーとなるかも知れません (この仕様は .I POSIX 互換のためにあります; 他のこのような仕様は以降を見て下さい)。 .PP 定義の部分(ルールの部分ではないです)では、 インデントされていないコメント("/*" から始まる行) は次の "*/" まで そのままの形でコピーされます。 .SH パターン 入力ファイルのパターンは拡張した正規表現を使って記述します。 以下に示します: .nf x 文字 'x' にマッチ。 . 改行を除く全ての文字(バイト)。 [xyz] "文字クラス"; この場合、'x', 'y', 'z' のいずれにも マッチします。 [abj-oZ] 範囲指定を含む "文字クラス"; この場合、'a', 'b' と 'j' から 'o' までの任意のレターと 'Z' にマッチします。 [^A-Z] "否定文字クラス"; クラスに含まれない任意の文字に マッチします。 この場合、'A' から 'Z' までの大文字 「以外の」文字にマッチします。 [^A-Z\\n] 大文字と改行を「除く」全ての文字。 r* 0 もしくはそれ以上の r。r は任意の正規表現。 r+ 1 もしくはそれ以上の r。 r? 0 もしくは 1つの r (「おまけ」の r) r{2,5} 2 つから 5つまでの r。 r{2,} 2 つ以上の r。 r{4} ちょうど 4つ の r。 {名前} "名前" の定義の展開。 (上を参照) "[xyz]\\"foo" 文字列 [xyz]"foo \\X X が 'a', 'b', 'f', 'n', 'r', 't', 'v' のいずれかの とき、ANSI-C での \\X の解釈となります。 それ以外の場合、文字 'X' ('*' のようなオペレータの 意味を打ち消し、その文字自体を指定する際に使います)。 \\123 8進数で 123 と表される文字。 \\x2a 16進数で 2a と表される文字。 (r) r にマッチ; ()は 優先順位を変えるために使用。 (以下を参照) rs 正規表現 r に正規表現 s が続く; 「連結(concatenation)」 と呼びます。 r|s r もしくは s。 r/s 後ろに s が続く時の r。 s にマッチするテキストはこのルールの "最長適合" を判定する 時には含まれますが、アクションが実行される前に 入力に戻されます。 アクションは r にマッチするテキストだけを見ます。 このパターンは "右文脈(trailing context)" と呼ばれます。 (flex が正確にマッチ不能な r/s の組合せは複数あります; "危険な右文脈" については、 以降の、欠陥 / バグ の節の記述を見て下さい。) ^r 行頭にある r。(スキャンの始まりもしくは スキャンされた改行の右です)。 r$ 行末にある r。"r/\\n" と等価(改行の前です)。 "r/\\n" と同じです。 flex の "改行" の表現は flex をコンパイルした C コンパイラが解釈する '\\n' と完全に一致することに 注意して下さい; 特定のシステム DOS では \\r を入力から取り除くか "r$" を表すために明示的に r/\\r\\n を使用する必要があります。 r 開始条件 s における r。(開始条件については以下を 参照)。 r 上に同じ。ただし開始条件は s1, s2, s3 のいずれでもよい。 <*>r 任意の開始条件の r。開始条件は排他的なものでもよい。 <> ファイルの終了。 <> 開始条件が s1 もしくは s2 であるときのファイルの終了。 .fi 文字クラス中では、全ての正規表現のオペレータは、 エスケープ ('\\') および 文字クラスオペレータである '-' と ']' とクラスの先頭の '^' を除き 特別な意味を失うことに注意して下さい。 .PP 上に挙げた正規表現は優先順位によってグループに分けられています。 一番上のグループが最も高い優先度で、 一番下のグループの優先順位が最も低くなっています。 グループ内では同じ優先順位です。例えば、 .nf foo|bar* .fi は .nf (foo)|(ba(r*)) .fi と同じです。なぜなら '*' オペレータは連結より優先度が高く、 連結は選言 ('|') より優先度が高いからです。このパターンは 文字列 "foo" .I もしくは 文字列 "ba" に 0 個以上の r がつづくものの .I どちらにも マッチします。 "foo" もしくは 0 個以上の "bar" にマッチさせるためには次の表現を使用して下さい: .nf foo|(bar)* .fi 0 個以上の "foo" または "bar" にマッチするためには次の表現を使用して下さい: .nf (foo|bar)* .fi .PP 文字もしくは文字範囲に加え、文字クラスも文字クラスの .I 表現 を含みます。 これらの表現は .B [: および .B :] のデリミタに囲まれます (文字クラスの '[' と ']' との間に現れる必要があります; 他の要素が文字クラス中に現れても構いません)。 有効な表現は以下の通りです: .nf [:alnum:] [:alpha:] [:blank:] [:cntrl:] [:digit:] [:graph:] [:lower:] [:print:] [:punct:] [:space:] [:upper:] [:xdigit:] .fi これらの表現は対応する標準 C の .B isXXX 関数に適合する全ての文字集合を指示します。例えば、 .B [:alnum:] は .B isalnum() が真を返す文字を指示します - すなわちすべてのアルファベットと数字です。 .B isblank(), が無いシステムでは、flex は .B [:blank:] を空白とタブと定義します。 .PP 例えば以下の表現は全て同じです: .nf [[:alnum:]] [[:alpha:][:digit:]] [[:alpha:]0-9] [a-zA-Z0-9] .fi スキャナが大文字小文字を意識しない場合( .B \-i フラグ指定時) .B [:upper:] と .B [:lower:] は .B [:alpha:] と同じです。 .PP パターンに関する注意点です: .IP - 否定文字クラス、例えば上の "[^A-Z]" は "\\n" (もしくはこれを表すエスケープシーケンス) が明示的に 否定文字クラスに現れている場合 (例えば "[^A-Z\\n]") を除き .I 改行にマッチします。 これは他の正規表現ツールが否定文字クラスを扱う方法とは異なりますが、 不幸なことにこの矛盾は歴史的に確立しています。 改行にマッチするとは、 入力に別のクオートが存在しない場合に [^"]* のようなパターンが 入力全体にマッチすることを意味します。 .IP - ルールは右文脈('/' オペレータもしくは '$' オペレータ) を高々一つしか持てません。 開始条件 '^' と "<>" パターンは パターンの最初になければならず、 '/', '$' 同様に () 内にいれることは出来ません。 ルールの先頭ではない '^' もしくはルールの終りではない '$' は 特別な意味を失い、通常の文字として扱われます。 .IP 以下は無効です: .nf foo/bar$ foobar .fi 前者は "foo/bar\\n" と書けます。 .IP 以下では '$' と '^' とは通常の文字として扱われます: .nf foo|(bar$) foo|^bar .fi "foo" もしくは "改行が続く bar" を指定したい場合は、 次の表現を使用して下さい (特別な '|' の動作は後で説明します): .nf foo | bar$ /* action goes here */ .fi 同じ方法で、foo もしくは 行頭の bar を指定可能です。 .SH 入力のマッチ方法 生成したスキャナを実行すると、 スキャナは入力を見てパターンにマッチする文字列を探します。 1 より多くのマッチを見付けると、最長テキストのマッチを採用します (右文脈(trailing context rule)の後ろの部分も長さに含みますが、 後ろの部分は入力に戻されます)。 同じ長さのマッチを 2 つ以上見付けた場合、 .I flex 入力ファイルで最初に記述されたルールを採用します。 .PP マッチが決定すると、マッチに対応するテキスト( .I トークン と呼ばれます)がグローバル文字ポインタ .B yytext により使用可能となり、長さがグローバル整数 .B yyleng により使用可能となります。 その後、マッチしたパターンに対応する .I アクション が実行され(アクションの詳細な記述は後で行います)、 残りの入力が残りのマッチのためにスキャンされます。 .PP マッチが見付からないと、 .I デフォルトルール が実行されます: 入力の次の文字がマッチしたと見倣され、 標準出力にコピーされます。最も簡単で正当な .I flex の入力は以下の通りです: .nf %% .fi これは、入力を単純に出力にコピー(1 度に 1 文字ずつ)するスキャナを生成します。 .PP .B yytext は 2 つの異なった方法により定義されうることに注意して下さい: 文字 .I ポインタ もしくは文字 .I 配列 です。 .I flex がどちらの定義を使用するかは特別なディレクティブ .B %pointer もしくは .B %array を flex の入力の最初の(定義)部分に含めることにより制御できます。 デフォルトは .B %pointer であり、 .B -l lex 互換オプションを使用した場合には例外的に .B yytext は配列になります。 .B %pointer を使用する利点はスキャンが高速であること、 非常に大きなトークンにマッチする時にも (動的メモリを使用し尽くさない限り)バッファオーバフローとならないことです。 欠点は、アクションが .B yytext を修正することが制限されること(次節参照)、 .B unput() 呼び出しが .B yytext の現在の内容を破壊することです。 これは異なる .I lex バージョン間での移植性に関する頭痛の種です。 .PP .B %array の利点は .B yytext の内容を思った通りに変更できること、 .B unput() を呼び出しても .B yytext の内容が破壊されないことです(下記参照)。 その上、既存の .I lex プログラムは .B yytext を外部から次の形式の宣言を使用してアクセスしていることがあります: .nf extern char yytext[]; .fi この定義は .B %pointer 使用時には誤りですが、 .B %array 使用時には正しいです。 .PP .B %array は .B yytext を文字数 .B YYLMAX (デフォルトは十分大きな値)の配列であると定義します。 この大きさは、 .I flex の入力の最初の部分で単純に .B YYLMAX を異なった値に #define することにより変更できます。 上記の通り、 .B %pointer 使用時には yytext は大きなトークンを格納するために動的に大きくなります。 このことは .B %pointer を使用したスキャナは非常に大きなトークン (例えばコメントブロック全体)を格納可能であることを意味しますが、 スキャナが .B yytext の大きさを変えるたびにトークン全体を先頭から再スキャンすることが必要となるため このようなトークンに対するマッチングは遅くなりうることを覚えておいて下さい。 現在、 .B yytext は .B unput() が結果として返すテキストが大きい時には動的には大きくなり .I ません; 実行時エラーとなります。 .PP また、 .B %array は C++ スキャナクラスでは使用できないことに注意して下さい( .B c++ オプションに関しては下記参照)。 .SH アクション ルール中のパターンは対応するアクションを持ちます。 アクションは任意の C の文です。 パターンは最初のエスケープされていない空白文字で終ります; 行の残りがアクションです。 アクションが空である場合、 パターンがマッチした時に入力トークンは単純に捨てられます。 例えば入力から全ての "zap me" を削除するプログラムの仕様を示します: .nf %% "zap me" .fi (入力の他の全ての文字を出力にコピーします。 なぜならデフォルトルールにマッチするからです。) .PP 次は、複数の空白や文字を単一の空白に圧縮し行末の空白を捨てるプログラムです: .nf %% [ \\t]+ putchar( ' ' ); [ \\t]+$ /* ignore this token */ .fi .PP アクションが '{' を含む場合、アクションは対応する '}' まで続き、 複数行に渡る場合もあります。 .I flex は C の文字列およびコメントに関して知っており、 それらの中のブレースを誤解することはありませんが、 アクションが .B %{ で始まることを許し、次の .B %} までのテキストがアクションであるとします (アクション内部の任意個のブレースには関係ありません)。 .PP 垂直バー ('|') のみからなるアクションは "次のルールと同じ" を意味します。説明は以下を見て下さい。 .PP アクションは任意の C コードを含むことが出来ます。 これには、 .B yylex() を呼び出したルーチンに対して値を返す .B return 文も含まれます。 .B yylex() が呼ばれるたび、最後に残ったトークンから処理を再開し、 ファイルの終了もしくは return を実行するまで処理を行います。 .PP アクションは自由に .B yytext を変更できますが、例外は長さを増やすことです (文字を末尾に加えることになり、 これは入力ストリームの後続する文字を上書きします)。 これは .B %array 使用時には当てはまりません(上述); この場合 .B yytext を自由に変更できます。 .PP アクションは自由に .B yyleng を変更できますが、アクションが .B yymore() を使用する時には例外的に変更してはいけません(後述)。 .PP 多くの特別なディレクティブがあり、アクション中に含めることが出来ます: .IP - .B ECHO yytext をスキャナの出力にコピーします。 .IP - .B BEGIN 後ろに開始条件の名前を書くと、スキャナを対応する開始条件に設定します(後述)。 .IP - .B REJECT 入力(もしくは入力の頭)に "2 番目によく(second best)" マッチするルール に進むようにスキャナに指示します。 "入力のマッチ方法" で示したようにルールは選択され、 .B yytext と .B yyleng は適切に設定されます。 選択されるルールは、最初に選択されたルールと同じ長さであるが .I flex の入力ファイルにて後で出て来るもの、もしくは少ない文字数にマッチするものです。 例えば次の例では入力中の語を数え、 "frob" が見付かるたびにルーチン special() を呼びます: .nf int word_count = 0; %% frob special(); REJECT; [^ \\t\\n]+ ++word_count; .fi .B REJECT が無い場合、 入力中の "frob" は語として数えられず、 スキャナは通常通りトークン毎に 1 つのアクションだけを行います。 複数の .B REJECT を使用可能であり、それぞれ現在有効なルールの次に良い選択を見付けます。 例えば次のスキャナは、"abcd" というトークンをスキャンし、 出力に "abcdabcaba" を書きます: .nf %% a | ab | abc | abcd ECHO; REJECT; .|\\n /* eat up any unmatched character */ .fi (前の 3 つのルールは 4 番目のルールのアクションを共有します。 なぜなら特別な '|' アクションが使用されているからです。) .B REJECT はスキャナの性能という点で特にコストのかかる機能です; もしスキャナのアクションの .I いずれか にでも REJECT が使われたなら、スキャナの .I 全ての マッチング速度を低下させるということです。 さらに .B REJECT をオプション .I -Cf や .I -CF と共に用いることは出来ません。 .IP また、他の特別アクションと違い .B REJECT は .I 分岐(branch) であることに注意してください; すなわち REJECT 直後のアクションは 実行 .I されません。 .IP - .B yymore() 次にルールとマッチしたときには、対応するトークンは、 現在の .B yytext の内容と入れ換えるのではなく .B yytext に .I 追加 するようスキャナに指示します。 例えば、入力 "mega-kludge" が与えられると、以下は "mega-mega-kludge" を出力に書きます: .nf %% mega- ECHO; yymore(); kludge ECHO; .fi 最初の "mega-" はマッチし出力にエコーされます。 次に "kludge" がマッチしますが、直前の "mega-" がまだ .B yytext の先頭に残っており、"kludge" の .B ECHO ルールは実際には "mage-kludge" を書きます。 .PP .B yymore() の使用に関し 2 つの注意点があります。 まず、 .B yymore() は現在のトークンの大きさを反映する .I yyleng の値の正確さに依存することであり、 .B yymore() 使用時には .I yyleng を変更してはなりません。 次に、 スキャナのアクションに .B yymore() があると、スキャナのマッチ速度に若干悪影響があります。 .IP - .B yyless(n) 現在のトークンから最初の .I n 文字を除いたものを入力ストリームに戻します。 戻した文字列はスキャナが次のマッチングをとるときに再度スキャンされます。 .B yytext と .B yyleng は適切に調整されます(例えば .B yyleng は .I n となります)。 例えば、入力 "foobar" が与えられると、以下は "foobarbar" を書きます: .nf %% foobar ECHO; yyless(3); [a-z]+ ECHO; .fi 引数 0 を .B yyless に与えると、現在の入力文字列全体が再度スキャンされます。 (例えば .B BEGIN を使用して)次にスキャナが入力する方法を変更していないと、無限ループとなります。 .PP .B yyless はマクロであり、flex 入力ファイルでのみ使用可能であり、 別のソースファイルからは使用不能であることに注意して下さい。 .IP - .B unput(c) 文字 .I c を入力ストリームへ戻します。戻した文字は次にスキャンされる文字になります。 次のアクションは現在のトークンを取り上げ、 括弧内に入れて再スキャンします。 .nf { int i; /* Copy yytext because unput() trashes yytext */ char *yycopy = strdup( yytext ); unput( ')' ); for ( i = yyleng - 1; i >= 0; --i ) unput( yycopy[i] ); unput( '(' ); free( yycopy ); } .fi .B unput() は文字を入力ストリームの .I 先頭 に戻すので、文字列を戻す場合には後ろから前に向かって戻す必要があります。 .PP .B unput() 使用時の重要な潜在的な問題は、 .B %pointer 使用時(デフォルト)に .B unput() を呼び出すと、 右端の文字から開始し 1 文字ずつ左に向かって消費され、 .I yytext の内容が .I 破壊 されることです。 (上記例のように) .B unput() 呼び出し後も .I yytext の内容を保存するためには、始めに別の場所にコピーするか、 スキャナを .B %array を使うように構築することです(入力のマッチ方法参照)。 .PP 最後に、 .B EOF を戻して入力ストリームにファイルの終りをマークするとは 出来ないことに注意して下さい。 .IP - .B input() 次の文字を入力ストリームから読みます。 次の例は C コメントを食べます: .nf %% "/*" { register int c; for ( ; ; ) { while ( (c = input()) != '*' && c != EOF ) ; /* eat up text of comment */ if ( c == '*' ) { while ( (c = input()) == '*' ) ; if ( c == '/' ) break; /* found the end */ } if ( c == EOF ) { error( "EOF in comment" ); break; } } } .fi (スキャナが .B C++ でコンパイルされたときは、このルーチンは .B yyinput() という名称になり、 .B C++ ストリームの .I input と名前が衝突することを避けます。) .IP - .B YY_FLUSH_BUFFER スキャナの内部バッファをフラッシュし、 次にスキャナがトークンをマッチしようとした時 バッファを .B YY_INPUT にてリフィルします(生成されたスキャナで後述)。 このアクションは、 複数の入力バッファにおいて後述する より一般的な .B yy_flush_buffer() 関数の特別なケースです。 .IP - .B yyterminate() アクションの return 文の代わりに使うことが出来ます。 .B yyterminate() はスキャナを終了し、"全て終了" を意味する 0 を呼び出し元関数に返します。 デフォルトでは .B yyterminate() はファイルの終わりに達したときにも呼ばれます。 .B yyterminate() はマクロであり、定義しなおすことができます。 .SH 生成されたスキャナ .I flex の出力は .B lex.yy.c というファイルであり、スキャンルーチン .B yylex() と、トークンのマッチングに使用する複数のテーブルと、 複数の付属ルーチンとマクロからなります。デフォルトでは、 .B yylex() は次のように宣言されます: .nf int yylex() { ... various definitions and the actions in here ... } .fi (環境が関数プロトタイプをサポートしている場合、 "int yylex( void )" となります。) この定義は "YY_DECL" マクロを定義することにより変更できます。 例えば次のように使用することが出来ます: .nf #define YY_DECL float lexscan( a, b ) float a, b; .fi これはスキャンルーチンの名前を .I lexscan とし、浮動小数点数を返すようにし、2 つの浮動小数点数を引数とします。 K&R の非プロトタイプの関数宣言を使用してスキャンルーチンに対して引数を 与える場合、定義をセミコロン(;)で終了する必要があります。 .PP .B yylex() は呼ばれるたび、グローバル入力ファイル .I yyin (デフォルトでは標準入力)からトークンをスキャンします。 ファイルの終りになる(この場合 0 を返します)か、 アクションが .I return 文を実行するまで、実行を続けます。 .PP スキャナがファイルの終りに到達すると、 .I yyin が新たなファイルを指さないか (新たなファイルを指す場合はこのファイルのスキャンを続けます)、 .B yyrestart() が呼ばれない限り、 後続する呼び出しは未定義です。 .B yyrestart() は .B FILE * ポインタ( .B YY_INPUT を設定して .I yyin 以外のソースをスキャンするようにした場合には nil も可です) である引数を 1 つとり、そのファイルからのスキャンのために .I yyin を初期化します。 本質的に、 .I yyin を新しい入力ファイルに割り当てることと .B yyrestar() を使用することとは同じです; 後者は前のバージョンの .I flex との互換性のために使用可能であり、 またスキャンの途中で入力ファイルを変えることが可能です。 引数を .I yyin として呼び出すことにより、現在の入力バッファを捨てることも出来ます; ただし、 .B YY_FLUSH_BUFFER (上述)を使用する方が良いです。 .B yyrestart() は .B INITIAL の開始条件を変更し .I ない ことに注意して下さい (後述の開始条件参照)。 .PP あるアクション中で .I return 文を実行することにより .B yylex() がスキャンを止めた場合、スキャナは再度呼び出し可能であり、 この場合スキャンの残りの部分から再開します。 .PP デフォルトで(効率のため)、スキャナは単純な .I getc() コールではなくブロックリードを行い、 .I yyin から文字を読みます。 入力取得方法は .B YY_INPUT マクロを定義することにより制御できます。 YY_INPUT 呼び出し手順は "YY_INPUT(buf,result,max_size)" です。 このアクションは、 .I buf 文字配列中に最大 .I max_size 文字を用意し、整数変数 .I result 中に読めた文字数もしくは定数 YY_NULL (Unix システムでは 0)を入れて返します。 デフォルトの YY_INPUT はグローバルファイルポインタ "yyin" から読みます。 .PP YY_INPUT のサンプル定義です(入力ファイルの定義部に格納): .nf %{ #define YY_INPUT(buf,result,max_size) \\ { \\ int c = getchar(); \\ result = (c == EOF) ? YY_NULL : (buf[0] = c, 1); \\ } %} .fi この定義により、入力処理は 1 度に 1 文字ずつ行うように変更されます。 .PP スキャナが YY_INPUT からファイルの終りを通知された場合、 スキャナは .B yywrap() 関数をチェックします。 .B yywrap() 関数が偽(ゼロ)を返す場合、関数は続行中であるとされ、 .I yyin を別の入力ファイルを指すように設定し、スキャンを続行します。 関数が真(非ゼロ)を返す場合、スキャナは終了し、呼び出し元に 0 を返します。 どちらの場合も開始条件は変化しないことに注意して下さい; つまり .B INITIAL には戻り .I ません。 .PP 独自の .B yywrap() を設定しない場合、 .B %option noyywrap (この場合スキャナは .B yywrap() が 1 を返したかのように動作します)を使用するか、フラグ .B \-ll を指定してデフォルトのルーチン(常に 1 を返します)を使用しなければなりません。 .PP ファイルではなくメモリ中のバッファからスキャンするための 3 つのルーチンを 使用可能です: .B yy_scan_string(), yy_scan_bytes(), yy_scan_buffer() 。 これらに関する議論は複数の入力バッファの節を参照して下さい。 .PP スキャナは、自己の .B ECHO 出力を .I yyout グローバル(デフォルトでは標準出力であり、 別の .B FILE ポインタに割り当てることで再定義できます)に書きます。 .SH 開始条件 .I flex は、条件的に有効となるルールのための機構を提供します。 パターンのプレフィックスが "" となっているルールは、 スキャナが "sc" という名前の開始条件にいる場合のみ有効です。 例えば、 .nf [^"]* { /* eat up the string body ... */ ... } .fi はスキャナが "STRING" 開始条件にいる時のみ有効であり、 .nf \\. { /* handle an escape ... */ ... } .fi は現在の開始条件が、 "INITIAL", "STRING", "QUOTE" のいずれかの場合のみ有効です。 .PP 開始条件は、入力の定義(先頭)部において、インデントされない行で .B %s もしくは .B %x から始まり名前が続く行において宣言されます。 前者は .I 内包的 開始条件を、 後者は .I 排他的 開始条件を、それぞれ宣言します。 開始条件を有効にするのは .B BEGIN アクションです。 次の .B BEGIN アクションが実行されるまで、与えられた開始条件のルールは有効であり、 他の開始条件のルールは無効です。 開始条件が .I 内包的 な場合、開始条件を持たないルールもまた有効です。 開始条件が .I 排他的 な場合、 開始条件を満たすルール .I だけ が有効です。 同じ排他開始条件に依存するルールの組は、 .I flex 入力中の別のルールとは独立なスキャナを記述します。 そのため、排他開始条件を使用すれば、"ミニスキャナ" (別部分とは文法的に異なる部分(例えばコメント)に対するスキャナ) を簡単に指定できます。 .PP 内包的開始条件と排他的開始条件とがまだ少し曖昧であるなら、 両者の関係を表す例を示して説明します。以下のルールの組: .nf %s example %% foo do_something(); bar something_else(); .fi は .nf %x example %% foo do_something(); bar something_else(); .fi と等価です。 .B が無いと、2 番目の例における .I bar パターンは、開始条件が .B example の場合、有効となりません(すなわちマッチしません)。 .B だけを .I bar につけると、 .B example だけにおいて有効となり、 .B INITIAL では有効となりません。一方、最初の例ではどちらの場合でも有効です。 なぜなら最初の例では .B example 開始条件は .I 内包的 .B (%s) 開始条件だからです。 .PP 特殊な開始条件指定子 .B <*> は全ての開始条件にマッチすることに注意して下さい。 このため、上の例は次のようにも書けます; .nf %x example %% foo do_something(); <*>bar something_else(); .fi .PP デフォルトルール(マッチしなかった文字に対しては .B ECHO です)は開始条件中でも有効です。 これは次のものと等価です: .nf <*>.|\\n ECHO; .fi .PP .B BEGIN(0) は、開始条件の無いルールだけが有効である、最初の状態に戻ります。 この状態は開始条件 "INITIAL" として参照できるため、 .B BEGIN(INITIAL) は .B BEGIN(0) と等価です。 (開始条件名を括る括弧は不要ですが、良いスタイルであるとされています。) .PP .B BEGIN アクションは、ルール部の先頭のインデントされたコード中に現れても良いです。 例えば以下の例では、 .B yylex() が呼ばれグローバル変数 .I enter_special が真の場合には、スキャナは "SPECIAL" 開始条件に入ります: .nf int enter_special; %x SPECIAL %% if ( enter_special ) BEGIN(SPECIAL); blahblahblah ...more rules follow... .fi .PP 開始条件を説明するために、 "123.456" のような文字列を 2 通りの異なった解釈をするスキャナを示します。 デフォルトではこれは、 整数 "123" とドット ('.') と整数 "456" の 3 トークンに数えられます。 しかし、この文字列の前に "expect-floats" の文字列がある場合、 これは単一のトークンであるとされ、浮動小数点数 123.456 とされます: .nf %{ #include %} %s expect %% expect-floats BEGIN(expect); [0-9]+"."[0-9]+ { printf( "found a float, = %f\\n", atof( yytext ) ); } \\n { /* that's the end of the line, so * we need another "expect-number" * before we'll recognize any more * numbers */ BEGIN(INITIAL); } [0-9]+ { printf( "found an integer, = %d\\n", atoi( yytext ) ); } "." printf( "found a dot\\n" ); .fi 次は、C のコメントを理解(して捨てる)一方で、 現在の入力行を数えるスキャナです。 .nf %x comment %% int line_num = 1; "/*" BEGIN(comment); [^*\\n]* /* eat anything that's not a '*' */ "*"+[^*/\\n]* /* eat up '*'s not followed by '/'s */ \\n ++line_num; "*"+"/" BEGIN(INITIAL); .fi このスキャナは各ルールで可能な最大のテキストにマッチしようとする場合、 ちょっとした問題が起こります。 一般的には、高速なスキャナを記述する場合、 各ルールで最大のマッチを得ようとすることが最も成功します。 .PP 開始条件名は実際には整数値であり、格納することが出来ることに注意して下さい。 そのため、上記例は以下のように拡張できます: .nf %x comment foo %% int line_num = 1; int comment_caller; "/*" { comment_caller = INITIAL; BEGIN(comment); } ... "/*" { comment_caller = foo; BEGIN(comment); } [^*\\n]* /* eat anything that's not a '*' */ "*"+[^*/\\n]* /* eat up '*'s not followed by '/'s */ \\n ++line_num; "*"+"/" BEGIN(comment_caller); .fi さらに、現在の開始条件を整数値であるマクロ .B YY_START にてアクセスできます。 例えば、上記の .I comment_caller への代入は次のように記述できます。 .nf comment_caller = YY_START; .fi flex は .B YYSTATE を .B YY_START のエイリアスとして提供します (AT&T の .I lex が使用しています)。 .PP 開始条件は独自の名前空間を持たないことに注意して下さい; %s や %x の宣言における名前宣言の扱いは #define と同じです。 .PP 最後に、排他的開始条件を使用する、 展開されたエスケープシーケンスを含む(長すぎる文字列のチェックは含みません) C スタイルのクオート文字列へのマッチ方法を示します: .nf %x str %% char string_buf[MAX_STR_CONST]; char *string_buf_ptr; \\" string_buf_ptr = string_buf; BEGIN(str); \\" { /* saw closing quote - all done */ BEGIN(INITIAL); *string_buf_ptr = '\\0'; /* return string constant token type and * value to parser */ } \\n { /* error - unterminated string constant */ /* generate error message */ } \\\\[0-7]{1,3} { /* octal escape sequence */ int result; (void) sscanf( yytext + 1, "%o", &result ); if ( result > 0xff ) /* error, constant is out-of-bounds */ *string_buf_ptr++ = result; } \\\\[0-9]+ { /* generate error - bad escape sequence; something * like '\\48' or '\\0777777' */ } \\\\n *string_buf_ptr++ = '\\n'; \\\\t *string_buf_ptr++ = '\\t'; \\\\r *string_buf_ptr++ = '\\r'; \\\\b *string_buf_ptr++ = '\\b'; \\\\f *string_buf_ptr++ = '\\f'; \\\\(.|\\n) *string_buf_ptr++ = yytext[1]; [^\\\\\\n\\"]+ { char *yptr = yytext; while ( *yptr ) *string_buf_ptr++ = *yptr++; } .fi .PP 上記例のように同一の開始条件を持つ全てのルールの前に 開始条件を書かねばならないことが多いです。 flex はこれを簡単かつ綺麗にするため開始条件 .I スコープ を導入しました。 開始条件スコープは次のように始まります: .nf { .fi ここで .I SCs は 1 つ以上の開始条件のリストです。 開始条件スコープ内では、 最初の .I '{' にマッチするまでの .I '}' において、全てのルールは自動的に .I のプレフィックスが付きます。 そのため、例えば .nf { "\\\\n" return '\\n'; "\\\\r" return '\\r'; "\\\\f" return '\\f'; "\\\\0" return '\\0'; } .fi は次のものと等価です: .nf "\\\\n" return '\\n'; "\\\\r" return '\\r'; "\\\\f" return '\\f'; "\\\\0" return '\\0'; .fi 開始条件スコープはネストすることが出来ます。 .PP 開始条件のスタックを制御するために 3 つのルーチンを使用可能です: .TP .B void yy_push_state(int new_state) 現在の開始条件を開始条件スタックの先頭にプッシュし、 .B BEGIN new_state を使用したかのように .I new_state に切り替えます (開始条件名は整数値でもあることを思い出して下さい)。 .TP .B void yy_pop_state() スタックの先頭をポップし、 .B BEGIN を使用してその開始条件に切り替えます。 .TP .B int yy_top_state() スタックの内容を変更せずに、スタックの先頭を返します。 .PP 開始条件スタックは動的に大きくなり、 また組み込み時のサイズ制限はありません。 メモリを使い切ると、プログラム実行は中止されます。 .PP 開始条件スタックを使用するためには、スキャナは .B %option stack ディレクティブをインクルードする必要があります (下記オプションを参照して下さい)。 .SH 複数の入力バッファ スキャナによっては(ファイルの "include" をサポートする等) 複数の入力ストリームを扱う必要があります。 .I flex スキャナでは大きなバッファリングを行うため、 スキャンコンテキストに影響される .B YY_INPUT を単純に書き換えるだけでは次の入力がどこから読まれるのかを制御できません。 .B YY_INPUT が呼ばれるのはスキャナがバッファの終りに到達する時だけですので、 例えば "include" のように入力元を切り替える必要のある文をスキャンした後でも 長時間を費す場合があります。 .PP この様な問題を解決するため、 .I flex は複数の入力バッファを生成して切り替える機構を提供します。 入力バッファは次のように生成されます: .nf YY_BUFFER_STATE yy_create_buffer( FILE *file, int size ) .fi これは .I FILE ポインタと size を取り、与えられる file に関連し .I size 文字を保持するに十分なバッファを生成します (疑わしい場合には size には .B YY_BUF_SIZE を使用して下さい)。 これは、別のルーチン(下記参照)に渡すための .B YY_BUFFER_STATE ハンドルを返します。 .B YY_BUFFER_STATE のタイプは .B struct yy_buffer_state 構造体へのポインタであるため、 安全のため YY_BUFFER_STATE 変数を .B ((YY_BUFFER_STATE) 0) と初期化することが出来、 スキャナではなくソースファイルにおいて 入力バッファを正しく宣言するためにこの構造体を参照することが出来ます。 .B yy_create_buffer 呼び出しにおける .I FILE ポインタは .B YY_INPUT から見える .I yyin の値と同じようにだけ使用されることに注意して下さい; .B YY_INPUT を再定義して .I yyin を使わないようにすることにより、 .B yy_create_buffer に対して安全にニル .I FILE ポインタを渡せます。 スキャンするバッファを選択するためには次のようにします: .nf void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer ) .fi これはスキャナの入力バッファを切り替え、 トークンが .I new_buffer から来るようになります。 新たなファイルをオープンして .I yyin を指すのではなく、スキャンを継続するために yywrap() から .B yy_switch_to_buffer() を使用することがあることに注意して下さい。 また、 .B yy_switch_to_buffer() または .B yywrap() による入力元の切り替えは開始条件を変更し .I ない ことにも注意して下さい。 .nf void yy_delete_buffer( YY_BUFFER_STATE buffer ) .fi はバッファに関連づけられたストレージの返還要求に使用します。( .B buffer はニルでも構いませんがこの場合このルーチンは何もしません。) 現在のバッファの内容をクリアするには次のようにします: .nf void yy_flush_buffer( YY_BUFFER_STATE buffer ) .fi この関数はバッファの内容を捨てるため、 次にスキャナがこのバッファとトークンのマッチを行う場合、 スキャナはまず .B YY_INPUT を使用してこのバッファをフィルします。 .PP .B yy_new_buffer() は .B yy_create_buffer() のエイリアスであり、動的オブジェクトの生成と破壊のために使用する C++ の .I new と .I delete との互換性のために提供しています。 .PP 最後に .B YY_CURRENT_BUFFER マクロは、現在のバッファに対する .B YY_BUFFER_STATE ハンドルを返します。 .PP この機能を使用してインクルードファイルを展開するスキャナの記述例です( .B <> 機能は後述します): .nf /* the "incl" state is used for picking up the name * of an include file */ %x incl %{ #define MAX_INCLUDE_DEPTH 10 YY_BUFFER_STATE include_stack[MAX_INCLUDE_DEPTH]; int include_stack_ptr = 0; %} %% include BEGIN(incl); [a-z]+ ECHO; [^a-z\\n]*\\n? ECHO; [ \\t]* /* eat the whitespace */ [^ \\t\\n]+ { /* got the include file name */ if ( include_stack_ptr >= MAX_INCLUDE_DEPTH ) { fprintf( stderr, "Includes nested too deeply" ); exit( 1 ); } include_stack[include_stack_ptr++] = YY_CURRENT_BUFFER; yyin = fopen( yytext, "r" ); if ( ! yyin ) error( ... ); yy_switch_to_buffer( yy_create_buffer( yyin, YY_BUF_SIZE ) ); BEGIN(INITIAL); } <> { if ( --include_stack_ptr < 0 ) { yyterminate(); } else { yy_delete_buffer( YY_CURRENT_BUFFER ); yy_switch_to_buffer( include_stack[include_stack_ptr] ); } } .fi ファイルではなくメモリ上の文字列をスキャンするための 入力バッファを設定するための 3 つのルーチンを使用可能です。 いずれも文字列をスキャンする新しい入力バッファを生成し、対応する .B YY_BUFFER_STATE ハンドル(終了時には .B yy_delete_buffer() にて消去します)を返します。新しいバッファに切り替える時には .B yy_switch_to_buffer() を使用し、次の .B yylex() の呼び出し時にはこの文字列をスキャン開始します。 .TP .B yy_scan_string(const char *str) NUL ターミネートされた文字列をスキャンします。 .TP .B yy_scan_bytes(const char *bytes, int len) .I len バイト (NUL が含まれるかも知れません)を位置 .I bytes からスキャンします。 .PP どちらの関数も文字列もしくはバイト列の .I コピー を生成してからスキャンします。( .B yylex() はスキャンするバッファの内容を変更するため、これが望ましいのです。) コピーを避けるためには次のようにします: .TP .B yy_scan_buffer(char *base, yy_size_t size) バッファ内で .I base から .I size バイトの長さをスキャンします。最後の 2 バイトは .B YY_END_OF_BUFFER_CHAR (ASCII NUL) である .I 必要があります。 これらの最後の 2 バイトはスキャンされません; そのためスキャンの内容は .B base[0] から .B base[size-2] までで両端を含みます。 .IP この様になるように .I base を設定しなかった場合(つまり最後の 2 つの .B YY_END_OF_BUFFER_CHAR バイトを忘れた場合)、 .B yy_scan_buffer() は新しいバッファを生成するのではなくニルポインタを返します。 .IP 型 .B yy_size_t は整数型であり、 バッファの大きさを反映する整数式をこの型にキャストすることが出来ます。 .SH ファイルの終りのルール 特別ルール "<>" は、 ファイルの終了時もしくは yywrap() が非ゼロ(すなわち処理するファイルが無いことを表す)の時に 行われるべきアクションを表します。 アクションは以下の 4 つのうちのいずれかで終る必要があります。 .IP - .I yyin に新しいファイルを割り当てる(前のバージョンの flex では、 割り当て後に特別なアクション .B YY_NEW_FILE を呼び出す必要がありました; 今では不要です。); .IP - .I return 文を実行する; .IP - 特別な .B yyterminate() アクションを実行する; .IP - .B yy_switch_to_buffer() を使用して新たなバッファに切り替える (上記例で示した通り)。 .PP <> ルールを他のパターンと共に使用してはなりません; 他のパターンは開始条件のリストともにだけ満たされるからです。 満たされない <> ルールが与えられた場合、 <> アクションをまだ持っていない .I 全ての 開始条件に適用されます。 <> ルールを最初の開始条件だけに指定するためには次のようにして下さい。 .nf <> .fi .PP これらのルールは閉じていないコメントを捕まえる場合等に便利です。 例えば: .nf %x quote %% ...other rules for dealing with quotes... <> { error( "unterminated quote" ); yyterminate(); } <> { if ( *++filelist ) yyin = fopen( *filelist, "r" ); else yyterminate(); } .fi .SH 雑多なマクロ マクロ .B YY_USER_ACTION にはマッチルールアクションに先だって常に行うアクションを定義できます。 例えば、yytext を小文字に変換するルーチンを呼ぶように #define 出来ます。 .B YY_USER_ACTION 起動時には、変数 .I yy_act はマッチしたルールの番号を与えます(ルールは 1 番から数えます)。 各ルールがマッチする頻度を知りたい場合を想像して下さい。 以下に仕掛けを示します: .nf #define YY_USER_ACTION ++ctr[yy_act] .fi ここで .I ctr は配列であり、それぞれのルールがマッチした回数を計数します。 マクロ .B YY_NUM_RULES はルールの総数を表すため( .B \-s を使った時でさえデフォルトルールを含みます)、 正しい .I ctr の宣言は次のようになります: .nf int ctr[YY_NUM_RULES]; .fi .PP マクロ .B YY_USER_INIT には最初のスキャンの前に常に行うアクションを再定義できます (スキャナの内部初期化の前に行われます)。 例えばデータ表を読み込んだり、ログファイルをオープンするために使用できます。 .PP マクロ .B yy_set_interactive(is_interactive) は現在のバッファが .I 対話的 と見倣されているか否かを制御するために使用します。 対話的なバッファの処理は遅くなりますが、 スキャナの入力元が対話的でありバッファをフィルするのを待つことに起因する 問題を避けるためには指定しなければなりません(以下の .B \-I .B %option interactive フラグに関する議論を参照して下さい)。 マクロ起動時に非ゼロを指定するとバッファは対話的になり、 ゼロを指定すると非対話的になります。 このマクロの使用は .B %option interactive , .B %option always-interactive , .B %option never-interactive に優先します(下記オプションを参照して下さい)。 バッファをスキャンして対話的である(もしくはでない)と判断される前に、 .B yy_set_interactive() を起動して下さい。 .PP マクロ .B yy_set_bol(at_bol) は現在のバッファにおける次のトークンに対するマッチのためのスキャンが 行頭から始まるか否かを制御します。 非ゼロのマクロ引数は、'^' が付いたルールを有効にしますが、 ゼロのマクロ引数は '^' が付いたルールを無効にします。 .PP 現在のバッファからスキャンされた次のトークンが有効な '^' ルールを持つ時、 マクロ .B YY_AT_BOL() は真を返します。 そうでない場合は偽を返します。 .PP 生成されたスキャナでは、全てのアクションは大きな一つの switch 文に 集められ、 .B YY_BREAK で分けられています。 .B YY_BREAK は再定義可能です。デフォルトではそれぞれのルールのアクションを 分けるための単なる "break" です。 .B YY_BREAK を再定義することにより、例えば C++ ユーザが #define YY_BREAK を何もしないように定義し (ただし全てのルールが "break" か "return" で終るように 注意しなければなりません!)、 ルールのアクションが "return" で終ることにより .B YY_BREAK がアクセスできないことに起因する、 到達できない文があるという警告を避けることが出来ます。 .SH ユーザが使用可能な値 この節ではユーザがルールのアクション部分で使用可能な値をまとめます。 .IP - .B char *yytext 現トークンのテキストを保持しています。内容を変更しても構いませんが、 その長さを伸ばしてはいけません(終りに文字を追加してはいけない)。 .IP スキャナの記述の最初の部分に特別な指示である .B %array が書かれているとき、 .B yytext は .B char yytext[YYLMAX] と定義されます。 .B YYLMAX はマクロで、デフォルトの値 (多くの場合8KB) を変更したい場合には 最初の部分で再定義可能です。 .B %array を使うといくらか遅いスキャナになりますが、 .B yytext の値は .I input() と .I unput() の呼び出しでも破壊されなくなります。 .B yytext が文字ポインタである場合、 これらの関数呼び出しは .B yytext を破壊する可能性があります。 .B %array と対称な指定 .B %pointer がデフォルトです。 .IP C++ のスキャナクラスを生成する (オプション .B \-+ ) ときには .B %array は使えません。 .IP - .B int yyleng 現トークンの長さを保持しています。 .IP - .B FILE *yyin はデフォルトで .I flex が読むファイルです。再定義することは可能ですが、スキャンを 始める前か EOF に到達した後でのみ再定義は意味を持ちます。 スキャンの途中で変更すると予想外の結果をもたらします。 というのも .I flex は入力をバッファリングしているからです; そのような場合には、直接再定義せず .B yyrestart() を使って下さい。 ファイルの終わりでスキャンが終了した場合には .I yyin を新しい入力ファイルに割り当て、 再びスキャナを呼び出してスキャンを続けることが出来ます。 .IP - .B void yyrestart( FILE *new_file ) を呼ぶことで .I yyin が新しい入力ファイルを指すように出来ます。新しいファイルへの変更は すぐに行われます (それまでにバッファに読み込まれていた入力は失われます)。 .I yyin を引数として .B yyrestart() を呼ぶと、現在の入力バッファを捨てて同じ入力ファイルを スキャンし続けることに注意して下さい。 .IP - .B FILE *yyout は .B ECHO アクションが行われる対象のファイルです。 ユーザが再割当することが出来ます。 .IP - .B YY_CURRENT_BUFFER カレントバッファの .B YY_BUFFER_STATE ハンドルを返します。 .IP - .B YY_START 現在の開始条件に対応する整数値を返します。 続いてこの値を .B BEGIN と共に使うことで、スキャナをその開始条件へ戻すことが出来ます。 .SH YACC とのインタフェース .I flex の主な使用方法の一つは、 .I yacc パーサジェネレータと共に使用することです。 .I yacc パーサは .B yylex() と言う名前のルーチンを呼び、次の入力トークンを見付けるものとしています。 このルーチンは、次のトークンの型を返し、 関連する値をグローバルの .B yylval に格納するものとされています。 .I flex を .I yacc と共に使うには、 .I yacc に .B \-d オプションを指定して、 .I yacc の入力に現れる全ての .B %tokens の定義を含む .B y.tab.h ファイルを生成させます。 このファイルは .I flex スキャナにインクルードされます。 例えばトークンの一つが "TOK_NUMBER" である場合、 スキャナの一部分は次のようになっています: .nf %{ #include "y.tab.h" %} %% [0-9]+ yylval = atoi( yytext ); return TOK_NUMBER; .fi .SH オプション .I flex には以下のようなオプションがあります: .TP .B \-b バックアップ情報を .I lex.backup に出力します。 このファイルには、スキャナのバックアップ(backing-up)を必要とする状態と それに対応する入力文字の一覧がリストされます。 ルールを追加することでバックアップ状態を取り除くこと ができます。バックアップ状態が .I 全て 取り除かれ、 .B \-Cf または .B \-CF を指定すると、生成されたスキャナの実行速度が向上します( .B \-p フラグを見て下さい)。 スキャナをぎりぎりまで最適化しようとしてるユーザのみが このオプションに関係あります。 (後述の性能関連の節を見て下さい。) .TP .B \-c 何もしません。POSIX 互換のために用意されています。 .TP .B \-d 生成されたスキャナが .I デバッグ モードで実行されます。 .B yy_flex_debug が非ゼロの場合(デフォルト)、 パターンが認識されるたびに、スキャナは次のようなメッセージを .I 標準エラー出力 へ出力します。 .nf --accepting rule at line 53 ("the matched text") .fi 行番号はスキャナを定義しているファイル (flexに与えられたファイル) でのルールの位置です。 スキャナがバックアップしたとき、デフォルトルールを受け入れたとき、 入力バッファの最後に到達したとき (あるいは、NULに到達したとき; スキャナには、この二つの区別はつきません)、ファイルの最後に到達した ときにもメッセージが出力されます。 .TP .B \-f .I 高速なスキャナ を指定します。 テーブル圧縮は行われず、標準入出力をバイパスします。 その結果生成されるスキャナは大きくなりますが、高速なものになります。 このオプションは .B \-Cfr と同等です (以下を参照)。 .TP .B \-h .I flex のオプションの要約からなる "ヘルプ" を .I 標準出力 に書き出し終了します。 .B \-? と .B \-\-help とは .B \-h と同じです。 .TP .B \-i .I 大文字小文字を区別しない スキャナを生成します。 .I flex の入力パターンに与えられる文字が大文字であるか小文字であるかは区別されず、 スキャナに入力される文字列は大文字小文字に関係なくマッチします。 マッチしたテキスト .I yytext では入力時の大文字小文字が保存されます (大文字を小文字に変換したりしません)。 .TP .B \-l AT&T の .I lex の実装に対して最大限の互換性を持たせます。これは .I 完全な 互換性を意味しません。 このオプションを使用すると性能に大きな影響があります。 このオプションは、 .B \-+, \-f, \-F, \-Cf, \-CF と同時に使用できません。詳しくは、 後述の "Lex および POSIX との非互換性" の節を御覧下さい。 またこのオプションを使用すると、 .B YY_FLEX_LEX_COMPAT が生成されたスキャナの名前に #define されます。 .TP .B \-n 何もしません。POSIX 互換のためにだけ用意されたオプションです。 .TP .B \-p 性能情報を標準エラー出力に出力します。 .I flex 入力ファイルの記述のうち、 生成されるスキャナの性能低下の深刻な原因となる部分について、 コメントされます。 オプションを2回指定すると、より細かな性能低下についても コメントが出力されます。 .IP .B REJECT ・ .B %option yylineno ・可変長右文脈(欠陥/バグの節で後述)は多大なる性能への悪影響があります; .I yymore() の使用・ .B ^ オペレータ・ .B \-I フラグは小さな性能の悪影響があります。 .TP .B \-s .I デフォルトルール (マッチしないスキャナの入力を .I 標準出力 に出力する) が抑制されます。ルールにマッチしない入力が表れたとき、スキャナは エラーで異常終了します。 スキャナのルールの組に抜けが無いかを確認する場合に有効です。 .TP .B \-t .B lex.yy.c ではなく、標準出力にスキャナを書き出します。 .TP .B \-v 生成するスキャナの特徴の要約を .I 標準エラー出力 に出力するように .I flex に指示します。 ほとんどの特徴は通常の .I flex ユーザには意味がありませんが、最初の行は .I flex のバージョンを表示し( .B \-V で表示されるもと同じです)、次の行はデフォルトを含むスキャナ生成時のフラグです。 .TP .B \-w 警告メッセージを抑制します。 .TP .B \-B .I 対話的 なスキャナ (以下の .B \-I の項を参照) ではなく .I バッチ的 なスキャナを生成するよう .I flex に指示します。 通常 .B \-B を使用するのは、スキャナを対話的に使用しないことが .I 分かっている 時であり、 .I 少しでも 性能を追求したい時です。 より大きい性能を追求する場合には、 .B \-Cf もしくは .B \-CF オプションを使用すべきです(後述)。 .B \-B を自動的に設定します。 .TP .B \-F .ul 高速な スキャナテーブルの表現を使う(標準入出力はバイパスする)ことを指定します。 この表現は、完全テーブル表現 .B (-f) とほぼ同じぐらい高速で、 ある種のパターンに対してはかなり小さく (ある種に対しては大きく) なります。 通常、次のように、パターンの組が "keywords" とその対応 および "identifier" ルールからなる場合: .nf "case" return TOK_CASE; "switch" return TOK_SWITCH; ... "default" return TOK_DEFAULT; [a-z]+ return TOK_ID; .fi この場合、完全テーブル表現を使用する方が良いです。 もし "identifier" ルールからのみ表現され、 キーワードを検知するためにハッシュ表等を使用する場合は、 .B -F を使用する方が良いです。 .IP このオプションは .B \-CFr と等価です (以下を参照)。 これは .B \-+ オプションとは同時に指定できません。 .TP .B \-I .I flex に .I 対話的 なスキャナを生成するように指示します。 対話的なスキャナは、 先読みすることによりマッチするトークンが完全に決まる場合のみ先読みします。 現在のトークンが既に明らかな場合でも常に先読みする方法は、 必要時のみ先読みする方法より少し速いです。 しかし、常に先読みする方法では対話性能に著しく悪影響があります; 例えばユーザが改行を入力した場合、 .I 別の トークンを入力するまでそれは改行として認識されません。 大概の場合、次の行全体を入力することになります。 .IP .I flex のスキャナのデフォルトは .I 対話的 であり、例外は .B \-Cf や .B \-CF といったテーブル圧縮オプション(後述)使用時です。 高性能追求時にはこれらのオプションを使用しているべきですので、 これらのオプションを使用していない場合には、 .I flex は実行時性能を少し犠牲にして直観的な対話的な振舞いを取っているものとします。 .B \-I オプションを .B \-Cf や .B \-CF と共に .I 使用できない ことにも注意して下さい。 実際はこのオプションは不要です; 許される場合、デフォルトで有効になっています。 .IP .B isatty() がスキャナの入力に対して偽を返す場合、 .B \-I が指定されていた場合でも、flex はバッチモードへ戻ります。 なにがあっても対話モードを強制するには、 .B %option always-interactive (後述のオプションを参照) を使用します。 .IP スキャナを対話的で .I 無い ように強制するには .B \-B (先述)を使用します。 .TP .B \-L .I flex に .B #line ディレクティブを .B lex.yy.c 中に生成しないように指示します。 デフォルトではこの #line ディレクティブを生成するので、 アクションにおけるエラーメッセージは、オリジナルの .I flex 入力ファイル( エラーが入力ファイルのコードに起因する場合)もしくは ファイル .B lex.yy.c ( .I flex の誤り -- 以下の電子メールアドレスに報告して下さい) における正しい位置を与えます。 .TP .B \-T .I flex を .I トレース モードで実行します。 入力の形式とその結果として出力される非決定性/決定性有限 オートマトンに関して .I 標準エラー出力 に多量のメッセージを出力します。 このオプションは主に .I flex をメンテナンスするために使われます。 .TP .B \-V バージョン番号を .I 標準出力 に出力して終了します。 .B \-\-version は .B \-V と同じです。 .TP .B \-7 7 ビットのスキャナを生成します。 すなわち、入力に 7 ビットの文字のみを使用することを意味します。 .B \-7 を指定する利点は、 .B \-8 オプション(後述)を指定して生成するテーブルの半分まで小さくなりうることです。 欠点は、入力に 8 ビット文字が含まれている時に、 スキャナがハングもしくはクラッシュすることです。 .IP しかしながら、 .B \-Cf や .B \-CF といったテーブル圧縮オプション使用時にはテーブル圧縮の効果は少なく、 移植性が著しく低下することに注意して下さい。 .I flex のデフォルトの動作では、 .B \-Cf や .B \-CF, を指定しない限り 8 ビットスキャナを生成します。 指定時には、 あなたのサイトが常に 8 ビットスキャナを生成するように (USA 以外のサイトでは良くあります)していない場合には、 7 ビットスキャナを生成します。 flex が 7 ビットもしくは 8 ビットのいずれのスキャナを生成するのかを 知りたい場合には、上述の .B \-v の出力のフラグの要約を調べて下さい。 .IP .B \-Cfe もしくは .B \-CFe (これらのテーブル圧縮オプションおよび等価クラスは後述) を使用しても、flex はデフォルトで 8 ビットスキャナを生成することに 注意して下さい。 なぜなら、完全な 8 ビットテーブルは 7 ビットテーブルと比べても たいして高価にはならないからです。 .TP .B \-8 8 ビットのスキャナを生成するように .I flex に指示します。すなわち 8 ビット文字を解釈します。 圧縮オプション .B \-Cf と .B \-CF 使用時にのみ必要です。 なぜなら flex はデフォルトでは 8 ビットスキャナを生成するからです。 .IP flex のデフォルト動作と 7 ビットおよび 8 ビットスキャナの トレードオフに関しては、上記 .B \-7 の議論を見て下さい。 .TP .B \-+ C++ のスキャナクラスを生成します。 詳しくは C++ スキャナの生成で後述します。 .TP .B \-C[aefFmr] テーブル圧縮の程度と、 より一般的には小さいスキャナと高速なスキャナとのトレードオフを指定します。 .IP .B \-Ca ("アライン") 生成されるスキャナのテーブルは、 メモリアクセスおよび計算のためにアラインされるため、より大きなものになります。 RISC アーキテクチャではロングワードのフェッチおよび操作は ショートワードといったより小さな大きさのものに対するものより効率的です。 場合によってはスキャナのテーブルサイズが通常の 2倍になることもあります。 .IP .B \-Ce .I 等価クラス (同一の字句属性を持つ文字セット)を構築します (例えば、 .I flex 入力中に数字が現れるのが文字クラス "[0-9]" のみの場合、 数字 '0', '1', ..., '9' は全て同じ等価クラスになります)。 多くの場合、等価クラスを用いることで最終的なテーブル/ オブジェクトファイルのサイズを劇的(平均して 1/2-1/5)に減らすことが出来ます。 また、その際の性能コストは非常に低く抑えられます ( 1文字スキャンするごとに 1回の配列検索を行うだけです)。 .IP .B \-Cf .I 完全(full) スキャナテーブルを生成することを指示します - .I flex は、別の状態に関する類似した遷移関数をうまく利用するという、 テーブル圧縮手法を用いません。 .IP .B \-CF 別の高速スキャナ表現( .B \-F フラグにて記述)を用いることを指定します。 このオプションは .B \-+ と同時に使用できません。 .IP .B \-Cm .I flex に .I メタ等価クラス を構築するよう指示します。 メタ等価クラスは一緒に使われることの多い等価クラス (等価クラスが使われていないときには文字群) の集合です。 圧縮テーブルを使っているとき、 メタ等価クラスは多くの場合にかなりの効果的をもたらしますが、 やや性能に影響します (1-2 回の条件テストと 1 回の配列検索がスキャンした文字ごとに行われます)。 .IP .B \-Cr 生成されたスキャナは入力に対しては標準入出力ライブラリ(標準入出力)を .I バイパス します。 スキャナは、 .B fread() や .B getc() ではなく、 .B read() システムコールを使用します。 性能改善結果はシステムに依存します。 オプション .B \-Cf もしくは .B \-CF を使用していない場合には、 一般にこのオプションは性能をあまり改善しません。 .B \-Cr を指定すると、例えばスキャナを設定する前に標準入出力を使用して .I yyin を読み取る等した場合奇妙な動作となり得ます (標準入出力の入力バッファに以前読み込んだものを、スキャナは読めません)。 .IP .B \-Cr は .B YY_INPUT を定義した場合意味がありません (前述の生成されたスキャナを参照)。 スキャナの呼出に先だって標準入力を使って .I yyin から読みだしているときには、予想外の振る舞いをすることがあります。 .IP .B \-C のみを指定したときには、スキャナはテーブル圧縮は行いますが、 等価クラスもメタ等価クラスも使いません。 .IP オプション .B \-Cf と .B \-CF はオプション .B \-Cm を同時に指定しても意味をなしません - なぜなら、テーブル圧縮が行われないときメタ等価クラス は現れないからです。 それ以外のオプションは自由に組み合わせることが出来ます。 .IP デフォルトの設定は .B \-Cem です。このとき .I flex は等価クラスとメタ等価クラスを生成します。 この設定は最も高いテーブル圧縮を行います。 テーブルサイズの大きさと実行の高速性はトレードオフの関係にあり、 一般に .nf 遅いが 小さい -Cem -Cm -Ce -C -C{f,F}e -C{f,F} -C{f,F}a 速いが 大きい .fi となります。 小さいテーブルのスキャナは通常生成もコンパイルも高速であるため、 通常の開発時は最大の圧縮を行うでしょう。 .IP 製品のスキャナでは、 .B \-Cfe が速度と大きさの良いバランスです。 .TP .B \-ooutput .B lex.yy.c ではなくファイル .B output にスキャナを書くように flex に指示します。 .B \-o と .B \-t オプションを組み合わせると、 スキャナは .I 標準出力 に書かれますが、 .B #line ディレクティブ( .B \\-L にて上述)はファイル .B output を参照します。 .TP .B \-Pprefix .I flex の使うデフォルトのプレフィックス .I "yy" の代わりに .I prefix を使います。これはグローバル変数とファイル名に影響します。 例えば .B \-Pfoo とすると、 .B yytext の名前は .B footext となります。 またデフォルトの出力ファイル名を .B lex.yy.c から .B lex.foo.c に変えます。 影響を受ける名前の一覧です: .nf yy_create_buffer yy_delete_buffer yy_flex_debug yy_init_buffer yy_flush_buffer yy_load_buffer_state yy_switch_to_buffer yyin yyleng yylex yylineno yyout yyrestart yytext yywrap .fi (C++ スキャナ使用時には .B yywrap と .B yyFlexLexer だけが影響を受けます。) スキャナの中では、グローバル変数および関数を どちらの名前ででも参照できます; 外部的には修正した名前のみ持ちます。 .IP このオプションを使用することにより、複数の .I flex プログラムを同一の実行形式に容易にリンクすることが出来ます。 しかし、このオプションは .B yywrap() の名前をも変えますので、 独自の(適切に名前を付けた)ルーチンをスキャナのために用意するか、 .B %option noyywrap を使用して .B \-ll とリンクする .I 必要があります。 どれもデフォルトでは提供されません。 .TP .B \-Sskeleton_file .I flex がスキャナを構築するのに使うデフォルトの スケルトンファイルに優先します。 .I flex のメンテナンスや開発をする場合以外、このオプションは必要ありません。 .PP .I flex は、flex のコマンドラインではなく、 スキャナ仕様記述中からオプションを制御する機構を提供します。 これはスキャナの最初の部分に .B %option ディレクティブを含めることで実現できます。 単一の .B %option ディレクティブにおいて複数のオプションを指定でき、 また複数のディレクティブを flex 入力ファイルの最初の部分に置くことが出来ます。 .PP ほとんどのオプションが単純な名前であり、 オプションとして前に "no" という語(空白をはさみません)を付けて 意味を反転できます。 数値は flex のフラグやその反転と等価です。 .nf 7bit -7 オプション 8bit -8 オプション align -Ca オプション backup -b オプション batch -B オプション c++ -+ オプション caseful または case-sensitive -i オプションの逆(デフォルト) case-insensitive または caseless -i オプション debug -d オプション default -s オプションの逆 ecs -Ce オプション fast -F オプション full -f オプション interactive -I オプション lex-compat -l オプション meta-ecs -Cm オプション perf-report -p オプション read -Cr オプション stdout -t オプション verbose -v オプション warn -w オプションの逆 (-w オプションには "%option nowarn" を使用して下さい) array "%array" と等価 pointer "%pointer" と等価(デフォルト) .fi .B %option には、他では利用できない機能を提供するものもあります: .TP .B always-interactive 入力を常に "対話的" に扱うスキャナを生成するように flex に指示します。 通常、新たな入力ファイル毎にスキャナは .B isatty() を呼び出し、スキャナの入力元が対話的であり 1 度に 1 文字ずつ読むべきか どうか判定しようとします。 一方このオプションを使用するとこの様な呼び出しは行いません。 .TP .B main スキャナに対し、 .B yylex() を呼び出すだけのデフォルトの .B main() プログラムを提供するように指示します。 このオプションは .B noyywrap (後述)も暗黙的に指示します。 .TP .B never-interactive 入力を "対話的" とはしないスキャナを生成するように flex に指示します (これもまた .B isatty() を呼び出しません)。 これは .B always-interactive の逆です。 .TP .B stack 開始条件スタックの使用を有効にします(前述の開始条件を参照)。 .TP .B stdinit 設定されている場合 (すなわち .B %option stdinit) .I yyin および .I yyout を、 デフォルトの .I nil ではなく、 .I 標準入力 と .I 標準出力 に設定します。 既存の .I lex プログラムには、 ANSI C 互換ではないものの、この動作に依存しているものがあります。 ANSI C では .I 標準入力 と .I 標準出力 がコンパイル時の定数である必要はありません。 .TP .B yylineno 入力から読み取った現在の行番号をグローバル変数 .B yylineno に保持するスキャナを生成するように、 .I flex に指示します。 このオプションは .B %option lex-compat から暗黙的に指定されます。 .TP .B yywrap セットされていない場合 (すなわち .B %option noyywrap) 、スキャナはファイルの終りに際し .B yywrap() を呼ばず単にスキャンすべきファイルがもう無いものとするようになります( ユーザが .I yyin を新しいファイルを指すようにし、再度 .B yylex() を呼び出すまでです)。 .PP .I flex はルールアクションをスキャンし、 .B REJECT と .B yymore() の機能が使われているかどうかを調べます。 .B reject と .B yymore のオプションを使用すると、 オプションで指定した通りにこの判定に優先します。 オプションの指定は、セットして機能を使用していることを示す(例えば .B %option reject) 、もしくはアンセットして機能を使用していないことを示す(例えば .B %option noyymore) ものとします。 .PP 次のオプションは文字列の値を取り、'=' で区切ります: .nf %option outfile="ABC" .fi これは .B -oABC と同じであり、 .nf %option prefix="XYZ" .fi は .B -PXYZ と同じです。 最後に、 .nf %option yyclass="foo" .fi は C++ スキャナ生成時のみ有効( .B \-+ オプション)です。これは .I flex に対して、 .B foo が .B yyFlexLexer のサブクラスであることを知らせますので、 .I flex はアクションを .B yyFlexLexer::yylex() ではなく .B foo::yylex() のメンバ関数とします。 また、( .B yyFlexLexer::LexerError() を起動することにより)呼び出すと実行時エラーを除去する .B yyFlexLexer::yylex() メンバ関数を生成します。 詳細は後述の C++ スキャナの生成を見て下さい。 .PP 生成されたスキャナから不要なルーチンを除きたい lint 純正主義者のために 多くのオプションが用意されています。 以下をアンセットすると(例えば .B %option nounput )、対応するルーチンは生成されるスキャナから除かれます: .nf input, unput yy_push_state, yy_pop_state, yy_top_state yy_scan_buffer, yy_scan_bytes, yy_scan_string .fi ( .B yy_push_state() 等は .B %option stack を使用しない場合には現れません)。 .SH 性能関連 .I flex の主なデザインゴールは高性能なスキャナを生成することです。 多くのルールセットを良く扱うことで最適化されます。 既に概説した .B \-C オプション使用によるテーブル圧縮に起因する速度への影響の他に、 性能を悪化させる多くのオプション/アクションがあります。 それらを高価なものから安価なものへと並べます: .nf REJECT %option yylineno 自由長の右文脈(trailing context) バックアップが必要なパターンの組 %array %option interactive %option always-interactive '^' 行頭オペレータ yymore() .fi 最初の 3 つは非常に高価であり、最後の 2 つは非常に安価です。 .B unput() は潜在的に非常に大きな仕事をするルーチン呼び出しとして実装されているのに対し、 .B yyless() は非常に安価なマクロです; ですからスキャンした余分なテキストを戻すだけの場合には .B yyless() を使って下さい。 .PP 性能が重要な場合には、出来うる限りの努力でもって .B REJECT を避けて下さい。 これは特に高価なオプションです。 .PP バックアップを取り除くと、乱雑になり、 ひどく苦労して複雑なスキャナを作ることになります。 実際的には .B \-b フラグを指定して .I lex.backup ファイルを生成することから始めます。例えば、入力 .nf %% foo return TOK_KEYWORD; foobar return TOK_KEYWORD; .fi に対しては、ファイルは次のようになります: .nf State #6 is non-accepting - associated rule line numbers: 2 3 out-transitions: [ o ] jam-transitions: EOF [ \\001-n p-\\177 ] State #8 is non-accepting - associated rule line numbers: 3 out-transitions: [ a ] jam-transitions: EOF [ \\001-` b-\\177 ] State #9 is non-accepting - associated rule line numbers: 3 out-transitions: [ r ] jam-transitions: EOF [ \\001-q s-\\177 ] Compressed tables always back up. .fi 最初の数行は、 \&'o' に遷移できるが他の文字には遷移できない状態があり、 その状態では現在スキャンされたテキストは他のルールにはマッチしないことを 表します。 この状態が発生したのは、 入力ファイルの行 2, 3 のルールにマッチしようとした時です。 スキャナがこの様な状態にあり 'o' 以外の文字を読んだ場合には、 マッチするルールを探すためのバックアップが必要となります。 少し考えれば、これは "fo" を見た時にある状態に違いないことが分かるでしょう。 この様な時、'o' 以外のものが現れると、 スキャナは、単に 'f' にマッチする(デフォルトルール)ところまで 戻り(バックアップし)ます。 .PP 状態 #8 に関係するコメントは、 "foob" がスキャンされた時に問題があることを表しています。 実際、'a' 以外の文字に出会うと、スキャナは "foo" を受理するところまで戻ります。 同様に状態 #9 に関係するコメントは、 "fooba" がスキャンされ 'r' が続かない場合に関係します。 .PP 最後のコメントが通知するのは、 .B \-Cf や .B \-CF を使っているのでなければ バックアップを取り除こうと努力することは無意味であることです。 なぜなら、圧縮されたスキャナに対してそのようなことをしても、 性能上の利益は無いからです。 .PP バックアップを取り除くためには "エラー" ルールを追加します: .nf %% foo return TOK_KEYWORD; foobar return TOK_KEYWORD; fooba | foob | fo { /* false alarm, not really a keyword */ return TOK_ID; } .fi .PP キーワードのリストからバックアップを取り除くには、"全てを捕まえる" ルールを使用することが出来ます: .nf %% foo return TOK_KEYWORD; foobar return TOK_KEYWORD; [a-z]+ return TOK_ID; .fi 通常、適切な時にはこれは一番良い解決策です。 .PP バックアップメッセージはカスケードすることが多いです。 複雑なルールの組では、数百ものメッセージを得るのは普通のことです。 しかし、これを解析すれば、バックアップを除去するためには 大抵の場合数ダースのルールにだけ関係あることが分かるでしょう (しかし、間違えることが多く、誤ったルールが偶然有効なトークンにマッチし得ます。 将来の .I flex の機能では、 自動的にバックアップを除去するルールを追加するようになるかも知れません)。 .PP バックアップを除去することにより利益があるのは、 .I 全ての バックアップを除去した時だけということを覚えておくことは重要です。 たった一つを残しても何も得ることが出来ません。 .PP .I 可変長の 右文脈 (左部分と右部分のいずれかもしくは両方が可変長)は .B REJECT とほぼ同じだけの(すなわち相当の)性能劣化となります。 そのため次のようなルール: .nf %% mouse|rat/(cat|dog) run(); .fi は次のように書くか: .nf %% mouse/cat|dog run(); rat/cat|dog run(); .fi 次のように書いた方が良いです: .nf %% mouse|rat/cat run(); mouse|rat/dog run(); .fi 特別な '|' アクションは助けにはなり .I ません し、かえって状況を悪くします (後述の欠陥/バグを参照)。 .LP スキャナの性能を向上させるための余地(実現は最も容易)は、 マッチするトークンが長ければスキャナが高速になることにあります。 長いトークンではほとんどの入力処理は(短い)内部ループで処理され、 アクションのためにスキャナ環境を設定する追加の仕事(例えば .B yytext) をほとんどしないからです。 C コメントのスキャナを思い出しましょう: .nf %x comment %% int line_num = 1; "/*" BEGIN(comment); [^*\\n]* "*"+[^*/\\n]* \\n ++line_num; "*"+"/" BEGIN(INITIAL); .fi 次のように書くと高速になります: .nf %x comment %% int line_num = 1; "/*" BEGIN(comment); [^*\\n]* [^*\\n]*\\n ++line_num; "*"+[^*/\\n]* "*"+[^*/\\n]*\\n ++line_num; "*"+"/" BEGIN(INITIAL); .fi 今度は、改行毎に別のアクションの処理を行うのではなく、 改行認識はルール間で "分散" され、 可能な限り長いテキストにマッチするようになっています。 ルールの .I 追加 はスキャナを遅く .I しません! スキャナの速度は、ルール数とも、 オペレータ '*' や '|' といったものに基づくルールの複雑さ (この節の始めで扱いました)とも独立です。 .\" 括弧内自信無しです .\" Apr 29 1997, horikawa@jp.freebsd.org .PP 最後の高速化の例です: 1 行に 1 つずつであり別の文字は付かないような、 識別子とキーワードを全てファイルからスキャンすることを考えます。 最初は次のようになるでしょう: .nf %% asm | auto | break | ... etc ... volatile | while /* it's a keyword */ .|\\n /* it's not a keyword */ .fi 後戻りを避けるために全てを捕まえるルールを導入します: .nf %% asm | auto | break | ... etc ... volatile | while /* it's a keyword */ [a-z]+ | .|\\n /* it's not a keyword */ .fi 1 行に正確に 1 語だけあることが保証されている場合、 改行の認識を別のトークンと併せることで、 マッチの総数を半分に減らすことが出来ます: .nf %% asm\\n | auto\\n | break\\n | ... etc ... volatile\\n | while\\n /* it's a keyword */ [a-z]+\\n | .|\\n /* it's not a keyword */ .fi ここで、再度バックアップをスキャナに組み込んだことに 気を付けなければなりません。 実際 .I 我々は 入力ストリームはレターと改行だけであることを知っていますが、 .I flex はこれが分からないため、 トークン "auto" などをスキャンした次の文字が改行でもレターでもない場合には バックアップが必要であると考えます。 以前は "auto" ルールに適合しそれで終りでしたが、 今は "auto" ルールは無く、"auto\\n" ルールだけがあります。 バックアップの可能性を除去するためには、 最後の改行以外のルールを二重化するか、 そのような入力に出くわさないので分類は不要と分かっているため、 改行を導入しないもう一つの全てを捕まえるルールを導入することが出来ます: .nf %% asm\\n | auto\\n | break\\n | ... etc ... volatile\\n | while\\n /* it's a keyword */ [a-z]+\\n | [a-z]+ | .|\\n /* it's not a keyword */ .fi .B \-Cf を付けてコンパイルすると、実際問題上 .I flex で得られるほぼ最速になります。 .PP 最後の注意事項: .I flex は NUL にマッチする時には遅く、トークンが複数の NUL を含む時には特に遅いです。 テキストがしばしば NUL を含むものと予想される場合には、テキストの .I 短い 部分とマッチするようにルールを書くべきです。 .PP もう一つの性能に関する最終注意事項: 入力のマッチ方法の節で既に示したように、 大きなトークンを納めるために .B yytext のサイズを動的に変更すると処理が遅くなります。 なぜなら、(巨大な)トークンを再度先頭からスキャンしなおさねばならないからです。 性能が重要な場合、 テキストの "大きな" 部分にマッチさせるべきですが "巨大な" 部分にマッチさせる べきではありません。 両者の堺目は 8K 文字/トークンです。 .SH C++ スキャナの生成 .I flex は 2 通りの C++ スキャナ生成方法を提供します。 最初の方法は .I flex が生成したスキャナを単に C コンパイラではなく C++ コンパイラで コンパイルするというものです。 この場合コンパイルエラーには出会わないはずです (見付けた場合には作者の節で後述する電子メールアドレスに報告して下さい)。 この場合ルールにおいて C コードではなく C++ コードを書くことが出来ます。 スキャナのデフォルトの入力元は .I yyin のままであり、 デフォルトのエコー先は .I yyout のままであることに注意して下さい。 どちらも .I FILE * 変数のままであり、C++ .I streams ではないです。 .PP .I flex に C++ スキャナクラスを生成させることも出来ます。 .B \-+ オプションを指定する(もしくは等価的に .B %option c++ を使う)とこのように実行され、 flex の実行形式名が '+' で終っている場合には自動的に指定されます。 このオプションを指定すると flex が生成するスキャナのデフォルトはファイル .B lex.yy.cc となり .B lex.yy.c ではありません。 生成されたスキャナは 2 つの C++ クラスとのインタフェースを定義するヘッダファイル .I FlexLexer.h をインクルードします。 .PP 最初のクラス .B FlexLexer は一般的なスキャナクラスを定義する抽象基盤クラスを提供します。 以下のメンバ関数を提供します: .TP .B const char* YYText() 最後にマッチしたテキストを返します。 .B yytext と等価です。 .TP .B int YYLeng() 最後にマッチしたトークンの長さを返します。 .B yyleng と等価です。 .TP .B int lineno() const 現在の入力の行番号( .B %option yylineno 参照)もしくは .B %option yylineno を使用していない場合には .B 1 を返します。 .TP .B void set_debug( int flag ) スキャナのデバッグフラグをセットします。 .B yy_flex_debug に代入するのと同じです(オプションの節で前述)。 スキャナ構築時に .B %option debug を使用してデバッグ情報を組み込む必要があることに注意して下さい。 .TP .B int debug() const 現在のデバッグフラグの設定を返します。 .PP また次のものと等価なメンバ関数も提供されます .B yy_switch_to_buffer(), .B yy_create_buffer() (最初の引数は .B istream* オブジェクトポインタであり .B FILE* ではありません), .B yy_flush_buffer(), .B yy_delete_buffer(), .B yyrestart() (これもまた最初の引数は .B istream* オブジェクトポインタです)。 .PP 2 番目のクラスは .I FlexLexer.h で定義される .B yyFlexLexer であり、 .B FlexLexer から導出したものです。 以下の追加のメンバ関数を定義します: .TP .B yyFlexLexer( istream* arg_yyin = 0, ostream* arg_yyout = 0 ) 与えられた入出力ストリームを使う .B yyFlexLexer オブジェクトを構築します。 指定しない場合にはそれぞれストリームのデフォルト .B cin と .B cout になります。 .TP .B virtual int yylex() これは .B yylex() が通常の flex スキャナに対して行ったのと同様の役割を担います: ルールのアクションが値を返すまで、 入力ストリームをスキャンし、トークンを消費します。 .B yyFlexLexer からサブクラス .B S を導出し .B yylex() から .B S のメンバ関数および変数をアクセスしたい場合、 .B %option yyclass="S" を指定して .B yyFlexLexer ではなくサブクラスを使用することを .I flex に知らせる必要があります。 この場合 .B yyFlexLexer::yylex() を生成するのではなく、 .I flex は .B S::yylex() (および呼び出されたなら .B yyFlexLexer::LexerError() を呼び出すダミーの .B yyFlexLexer::yylex() も)を生成します。 .TP .B virtual void switch_streams(istream* new_in = 0, .B ostream* new_out = 0) .B yyin を .B new_in (非ニルの場合) に再割当し、 .B yyout を .B new_out (同様)に再割当します。 .B yyin が再割当された場合には以前の入力バッファは消去されます。 .TP .B int yylex( istream* new_in, ostream* new_out = 0 ) まず入力ストリームを .B switch_streams( new_in, new_out ) を使用して切り替え、 .B yylex() の値を返します。 .PP さらに、 .B yyFlexLexer は次のプロテクトされた仮想関数を定義します。 スキャナにあわせてこれらを導出クラスにおいて再定義出来ます: .TP .B virtual int LexerInput( char* buf, int max_size ) 最大 .B max_size 文字を .B buf に読み込み、読めた文字数を返します。 入力の終りを示すには 0 文字を返します。"対話的" スキャナ( .B \-B と .B \-I フラグを参照)はマクロ .B YY_INTERACTIVE を定義することに注意して下さい。 .B LexerInput() を再定義し、 対話的な入力元をスキャンする可能性があるかどうかに依存して 異なるアクションが必要となる場合、 この名前が存在するかどうかのテストは .B #ifdef にて可能です。 .TP .B virtual void LexerOutput( const char* buf, int size ) .B size 文字をバッファ .B buf から書き出します。 スキャナのルールが NUL を含むテキストにマッチ可能な場合、 NUL 終端されているこのバッファは "内部に" NUL を含んでいても構いません。 .TP .B virtual void LexerError( const char* msg ) 致命的なエラーメッセージを報告します。 デフォルトのこの関数はメッセージをストリーム .B cerr に書き、終了します。 .PP .B yyFlexLexer オブジェクトは .I 全ての スキャン時の状態を含むことに注意して下さい。 それゆえこの様なオブジェクトをリエントラントなスキャナとして使用できます。 同一の .B yyFlexLexer クラスの複数のインスタンスを具体化可能であり、 複数の C++ スキャナクラスを組み合わせ上記 .B \-P オプションを使用することで同一のプログラムで使用可能です。 .PP 最後に .B %array 機能は C++ スキャナクラスでは使用できないことに注意して下さい; .B %pointer を使用しなければなりません(デフォルト)。 .PP 単純な C++ スキャナの例を以下に示します: .nf // An example of using the flex C++ scanner class. %{ int mylineno = 0; %} string \\"[^\\n"]+\\" ws [ \\t]+ alpha [A-Za-z] dig [0-9] name ({alpha}|{dig}|\\$)({alpha}|{dig}|[_.\\-/$])* num1 [-+]?{dig}+\\.?([eE][-+]?{dig}+)? num2 [-+]?{dig}*\\.{dig}+([eE][-+]?{dig}+)? number {num1}|{num2} %% {ws} /* skip blanks and tabs */ "/*" { int c; while((c = yyinput()) != 0) { if(c == '\\n') ++mylineno; else if(c == '*') { if((c = yyinput()) == '/') break; else unput(c); } } } {number} cout << "number " << YYText() << '\\n'; \\n mylineno++; {name} cout << "name " << YYText() << '\\n'; {string} cout << "string " << YYText() << '\\n'; %% int main( int /* argc */, char** /* argv */ ) { FlexLexer* lexer = new yyFlexLexer; while(lexer->yylex() != 0) ; return 0; } .fi 複数の(異なった)字句解析クラスを生成したい場合、 .B \-P フラグ (もしくは .B prefix= オプション) を使用して各 .B yyFlexLexer を .B xxFlexLexer 等の別の名前にします。 次に字句解析クラスのソースごとに .B をインクルードします。 以下のように .B yyFlexLexer をリネームします: .nf #undef yyFlexLexer #define yyFlexLexer xxFlexLexer #include #undef yyFlexLexer #define yyFlexLexer zzFlexLexer #include .fi これはあるスキャナに対し .B %option prefix="xx" を使用しもう一方に対し .B %option prefix="zz" を使用した場合です。 .PP 重要: 現在のスキャンクラスの形式は .I 実験的 であり、メジャーリリースが変わると大きく変更される可能性があります。 .SH LEX および POSIX との非互換性 .I flex は AT&T Unix の .I lex ツールのリライトですが(2 つの実装はいかなるコードも共有しません)、 いくばくかの拡張と非互換性を持っており、 どちらの実装でも受理可能なスキャナを書きたい方は これを意識しなければなりません。 flex は POSIX .I lex 仕様に完全合致しますが、例外は .B %pointer (デフォルト)使用と .B unput() 呼び出しにより .B yytext の内容を破壊することであり、これは POSIX 仕様に反します。 .PP この節では、 flex と AT&T lex と POSIX 仕様との間の全ての既知の非互換性を扱います。 .PP .I flex の .B \-l オプションはオリジナルの AT&T .I lex 実装との最大の互換性を有効にしますが、 生成されたスキャナの性能は大きく低下します。 .B \-l オプションを使用しても発生しうる非互換性は後で述べます。 .PP .I flex は以下の例外を除き .I lex と完全互換です: .IP - ドキュメントに記載されていない .I lex スキャナ内部の変数 .B yylineno は .B \-l もしくは .B %option yylineno を使用しないとサポートされません。 .IP .B yylineno はスキャナ毎(単一のグローバル変数)ではなく、バッファ毎に管理されるべきです。 .IP .B yylineno は POSIX 仕様ではありません。 .IP - .B input() ルーチンは再定義できませんが、 ルールにマッチしたものに後続する文字を読むために呼ばれえます。 .B input() がファイルの終りに到達すると、通常の .B yywrap() 処理は終了します。``実際の'' ファイルの終りは .I EOF として返されます。 .IP 実際には入力は .B YY_INPUT マクロを定義することにより制御されます。 .IP .B input() を再定義できないという .I flex の制限は、最初に .I yyin を設定する以外のスキャナ入力制御方法を単に規定していないという、 POSIX 仕様と合致します。 .IP - .B unput() ルーチンは再定義できません。この制限は POSIX に合致しています。 .IP - .I flex スキャナは .I lex スキャナとは異なりリエントラントではありません。 実際、対話的なスキャナにおいて、 割り込みハンドラにてロングジャンプを用いてスキャナから脱出し、 その後スキャナを再度呼び出す場合、以下のメッセージを得るでしょう: .nf fatal flex scanner internal error--end of buffer missed .fi スキャナに再度入るためには、まず以下のようにして下さい .nf yyrestart( yyin ); .fi この呼び出しにより入力バッファは捨てられることに注意して下さい; 通常これは対話的スキャナでは問題ではありません。 .IP また、C++ スキャナクラスはリエントラント .I です ので、C++ を使用できるのなら、C++ を使用すべきです。 前述の "C++ スキャナの生成" を参照して下さい。 .IP - .B output() はサポートされていません。 .B ECHO マクロからの出力はファイルポインタ .I yyout (デフォルトでは .I 標準出力 )に対して行われます。 .IP .B output() は POSIX 仕様にはありません。 .IP - .I lex は排他的開始条件 (%x) をサポートしませんが、これは POSIX 仕様にあります。 .IP - 定義を展開する時、 .I flex では括弧で括ります。 lex では以下は: .nf NAME [A-Z][A-Z0-9]* %% foo{NAME}? printf( "Found it\\n" ); %% .fi 文字列 "foo" にはマッチしません。 なぜなら展開されたマクロはルール "foo[A-Z][A-Z0-9]*?" と等価になり、 優先度にて `?' は "[A-Z0-9]*" と結び付きます。 .I flex ではルールが展開されると "foo([A-Z][A-Z0-9]*)?" となり、 文字列 "foo" がマッチします。 .IP .B ^ で始まるか .B $ で終る定義は、展開時に括弧で括らず、 これらのオペレータが定義において特別な意味を失わないようにすることに 注意して下さい。 しかし .B , /, .B <> オペレータは .I flex の定義では使用できません。 .IP .B \-l を使用すると、 .I lex の振舞いと同じく定義を括弧で括りません。 .IP POSIX 仕様では、定義を括弧で括ります。 .IP - .I lex の実装によっては、 ルールのパターンの右側に空白がある場合、 ルールのアクションを別の行から始めることを許します: .nf %% foo|bar { foobar_action(); } .fi .I flex はこの機能をサポートしません。 .IP - .I lex の .B %r (Ratfor スキャナの生成)オプションはサポートされていません。 これは POSIX 仕様には含まれません。 .IP - スキャナを .B %array を使用して構築したのではない限り、 .B unput() 呼び出し後には、次のトークンにマッチするまで .I yytext は未定義です。 これは .I lex にも POSIX 仕様にも当てはまりません。 .B \-l オプションを指定するとこの非互換性を取り除きます。 .IP - .B {} (数値範囲)オペレータの優先度が異なります。 .I lex は "abc{1,3}" を "1 度か 2 度か 3 度の 'abc' にマッチ" と解釈しますが、 .I flex は "'ab' に 1 度か 2 度か 3 度の 'c' が続くものにマッチ" と解釈します。 後者が POSIX 仕様に合致します。 .IP - .B ^ オペレータの優先度が異なります。 .I lex は "^foo|bar" を "行頭の 'foo' か任意位置の 'bar' にマッチ" と解釈しますが、 .I flex は "行頭の 'foo' か 'bar' にマッチ" と解釈します。 後者が POSIX 仕様に合致します。 .IP - .I lex でサポートされている .B %a 等の特別なテーブルサイズの宣言は .I flex スキャナでは不要です; .I flex はこれらを無視します。 .IP - .I flex と .I lex のどちらでもスキャナを使用可能に書けるように、 .bd -FLEX_SCANNER +.B FLEX_SCANNER という名前を定義します。 スキャナを生成した .I flex のバージョンを表す .B YY_FLEX_MAJOR_VERSION と .B YY_FLEX_MINOR_VERSION を、スキャナは含みます (例えば 2.5 リリースではこれらはそれぞれ 2 と 5 になります)。 .PP 以下の .I flex の機能は .I lex および POSIX 仕様には含まれません: .nf C++ スキャナ %option 開始条件スコープ 開始条件スタック 対話的/非対話的スキャナ yy_scan_string() 等 yyterminate() yy_set_interactive() yy_set_bol() YY_AT_BOL() <> <*> YY_DECL YY_START YY_USER_ACTION YY_USER_INIT #line ディレクティブ アクションの周りの %{} 単一行における複数のアクション .fi さらにほぼ全ての flex フラグです。 リストの最後の機能の意味は、 .I flex では複数のアクションをセミコロンで区切って同一行に記述可能ですが、 .I lex では次の .nf foo handle_foo(); ++num_foos_seen; .fi は (驚くべきことに) 次のように切り詰められるということです。 .nf foo handle_foo(); .fi .I flex はアクションを切り詰めません。 ブレースで括られないアクションは単純に行末で終了します。 .SH 診断 .I warning, rule cannot be matched 常に同じテキストにマッチするルールが前にあるので、 与えられたルールがマッチしません。 例えば以下の "foo" は "全てを捕まえる" ルールの後ろにありますので 決してマッチしません: .nf [a-z]+ got_identifier(); foo got_foo(); .fi スキャナ中で .B REJECT を使用するとこの警告を抑制します。 .PP .I warning, .B \-s .I option given but default rule can be matched (おそらくある特定の開始条件のもとでは) デフォルトルール (任意の一文字にマッチする) しか特定の入力に 対してはマッチしないことがあります。 .B \-s を指定しているので、おそらくそうなりません。 .PP .I reject_used_but_not_detected undefined あるいは .I yymore_used_but_not_detected undefined - これらのエラーは コンパイル時に起きます。スキャナが .B REJECT もしくは .B yymore() を使っていますが .I flex がそのことに気づかなかったということです。 つまり、 .I flex は最初の 2 つの部分を探しても これらのアクションの出現を見つけられなかったのですが、 実際には何らかの方法 (例えば #include ファイルを介して)でこれらが記述されていた、ということです。 .B %option reject か .B %option yymore を使用して、flex にこれらの機能を実際に使用していることを教えて下さい。 .PP .I flex scanner jammed - .B \-s でコンパイルされたスキャナが、どのルールにもマッチしない 入力文字列に遭遇しました。 内部的な問題に起因してこのエラーが起こることもあります。 .PP .I token too large, exceeds YYLMAX - スキャナが .B %array を使っている場合に、あるルールが定数 .B YYLMAX (デフォルトで 8K バイト) より大きな文字列とマッチしました。 .I flex の入力ファイルの定義部で .B YYLMAX を #define することで値を大きくできます。 .PP .I scanner requires \-8 flag to .I use the character 'x' - スキャナの記述に 8 ビットの文字 .I 'x' を識別する部分があり、 .B \-Cf もしくは .B \-CF のテーブル圧縮オプションのためにデフォルトの 7 ビットになっている にもかかわらず、 \-8 オプションをつけていないということです。 詳細は .B \-7 フラグのオプションの議論を参照して下さい。 .PP .I flex scanner push-back overflow - .B unput() でテキストを戻しすぎたため、スキャナのバッファは 戻したテキストと現トークンを .B yytext に保てません。 この場合、理想的にはスキャナが動的にバッファの大きさを変えるべきですが、 現在のところそうなってはいません。 .PP .I input buffer overflow, can't enlarge buffer because scanner uses REJECT - スキャナは非常に大きなトークンのマッチを調べていて、入力バッファを 拡張する必要が起きました。しかしながら、バッファの拡張は .B REJECT を使うスキャナでは働きません。 .PP .I fatal flex scanner internal error--end of buffer missed - スキャナが使用しているフレームから(を越えて)ロングジャンプした後、 再度スキャナに入った場合に起こります。 再度スキャナに入る前に: .nf yyrestart( yyin ); .fi を使うか、前述のように C++ スキャナクラスを使用するようにして下さい。 .PP .I too many start conditions in <> construct! - 存在するより多くの開始条件を <> 中に記載しました (少なくとも一つを二度記載しました)。 .SH 関連ファイル .TP .B \-ll スキャナがリンクしなければならないライブラリ。 .TP .I lex.yy.c 生成されたスキャナ(システムによっては .I lexyy.c という名前になります)。 .TP .I lex.yy.cc .B -+ を使った時に作成された C++ スキャナクラス。 .TP .I C++ スキャナベースクラス .B FlexLexer とその導出クラス .B yyFlexLexer を定義するヘッダファイル。 .TP .I flex.skl スケルトンスキャナ。 このファイルは flex の実行時ではなく、flex を構築する時のみ利用されます。 .TP .I lex.backup .B \-b フラグ用のバックアップ情報(システムによっては .I lex.bck という名前になります)。 .SH 欠陥 / バグ 右文脈(trailing context)パターンの中には、正しくマッチせず 警告メッセージ ("dangerous trailing context") を出すものがあります。 これらのパターンは、 ルールの最初の部分が 2番目の頭の部分とマッチするようなものです。 例えば "zx*/xy*" の場合、'x*' は右文脈の頭の 'x' とマッチします。 (POSIX ドラフトではそのようなパターンにマッチするテキストは 未定義であると述べていることに注意して下さい。) .PP 右文脈の中には、実際には固定長であるのにそうとは解釈されないものがあり、 上に述べた性能の低下が起こります。 特に、 '|' や {n} (例えば "foo{3}") は常に可変長であると解釈されます。 .PP 右文脈と特別なアクション '|' を組み合わせると .I 固定の 右文脈がよりコストのかかる .I 可変の 右文脈となります。例えば、次のようなものです: .nf %% abc | xyz/def .fi .PP .B %array もしくは .B \-l オプションを指定しない場合、 .B unput() を使うと yytext と yyleng を破壊します。 .PP NUL のパターンマッチングは他の文字の比較よりかなり遅くなっています。 .PP 入力バッファの動的な大きさの再調整は時間がかかります。これは現トークン (一般に巨大)までのマッチした全テキストの再スキャンを伴うためです。 .PP 入力のバッファリングと先読みのため、 ルーチンと 混合して使うことが出来ません。例えば、 .B getchar() と .I flex のルールはうまく行きません。代わりに .B input() を使って下さい。 .PP .B \-v オプションで表示される全テーブルエントリには、 どのルールがマッチしたのかを決定するのに必要なテーブルエントリ数が 含まれていません。エントリの数はスキャナが .B REJECT を使っていないときには DFA 状態数に等しく、 使っているときには DFA 状態数よりいくらか大きくなります。 .PP .B REJECT がオプション .B \-f もしくは .B \-F とともに使えません。 .PP .I flex の内部アルゴリズムについてのドキュメントが必要です。 .SH 関連項目 lex(1), yacc(1), sed(1), awk(1) .PP John Levine, Tony Mason, and Doug Brown, .I Lex & Yacc, O'Reilly and Associates. 第 2 版を入手すること。 .PP M. E. Lesk and E. Schmidt, .I LEX \- Lexical Analyzer Generator .PP Alfred Aho, Ravi Sethi and Jeffrey Ullman, .I Compilers: Principles, Techniques and Tools, Addison-Wesley (1986). .I flex で使用しているパターンマッチング技法を解説している(決定性オートマトン)。 .SH 作者 Vern Paxson が多くのアイディアとインスピレーションを得る助けを Van Jacobson から受けました。 オリジナルバージョンは Jef Poskanzer が作成しました。 高速テーブル表現は Van Jacobson のデザインの部分実装です。 この実装は Kevin Gong と Vern Paxson が行いました。 .PP 多くの .I flex ベータテスタ、フィードバッカ、コントリビュータ、特に Francois Pinard, Casey Leedom, Robert Abramovitz, Stan Adermann, Terry Allen, David Barker-Plummer, John Basrai, Neal Becker, Nelson H.F. Beebe, benson@odi.com, Karl Berry, Peter A. Bigot, Simon Blanchard, Keith Bostic, Frederic Brehm, Ian Brockbank, Kin Cho, Nick Christopher, Brian Clapper, J.T. Conklin, Jason Coughlin, Bill Cox, Nick Cropper, Dave Curtis, Scott David Daniels, Chris G. Demetriou, Theo Deraadt, Mike Donahue, Chuck Doucette, Tom Epperly, Leo Eskin, Chris Faylor, Chris Flatters, Jon Forrest, Jeffrey Friedl, Joe Gayda, Kaveh R. Ghazi, Wolfgang Glunz, Eric Goldman, Christopher M. Gould, Ulrich Grepel, Peer Griebel, Jan Hajic, Charles Hemphill, NORO Hideo, Jarkko Hietaniemi, Scott Hofmann, Jeff Honig, Dana Hudes, Eric Hughes, John Interrante, Ceriel Jacobs, Michal Jaegermann, Sakari Jalovaara, Jeffrey R. Jones, Henry Juengst, Klaus Kaempf, Jonathan I. Kamens, Terrence O Kane, Amir Katz, ken@ken.hilco.com, Kevin B. Kenny, Steve Kirsch, Winfried Koenig, Marq Kole, Ronald Lamprecht, Greg Lee, Rohan Lenard, Craig Leres, John Levine, Steve Liddle, David Loffredo, Mike Long, Mohamed el Lozy, Brian Madsen, Malte, Joe Marshall, Bengt Martensson, Chris Metcalf, Luke Mewburn, Jim Meyering, R. Alexander Milowski, Erik Naggum, G.T. Nicol, Landon Noll, James Nordby, Marc Nozell, Richard Ohnemus, Karsten Pahnke, Sven Panne, Roland Pesch, Walter Pelissero, Gaumond Pierre, Esmond Pitt, Jef Poskanzer, Joe Rahmeh, Jarmo Raiha, Frederic Raimbault, Pat Rankin, Rick Richardson, Kevin Rodgers, Kai Uwe Rommel, Jim Roskind, Alberto Santini, Andreas Scherer, Darrell Schiebel, Raf Schietekat, Doug Schmidt, Philippe Schnoebelen, Andreas Schwab, Larry Schwimmer, Alex Siegel, Eckehard Stolz, Jan-Erik Strvmquist, Mike Stump, Paul Stuart, Dave Tallman, Ian Lance Taylor, Chris Thewalt, Richard M. Timoney, Jodi Tsai, Paul Tuinenga, Gary Weik, Frank Whaley, Gerhard Wilhelms, Kent Williams, Ken Yap, Ron Zellar, Nathan Zelle, David Zuhn, および私の最低のメールアーカイブ能力から滑り落ちた方々、 それらの方々の協力にも同様に感謝します。 .PP Keith Bostic, Jon Forrest, Noah Friedman, John Gilmore, Craig Leres, John Levine, Bob Mulcahy, G.T. Nicol, Francois Pinard, Rich Salz, Richard Stallman には多くの悩みの分散に関して感謝します。 .PP Esmond Pitt と Earle Horton には 8 ビット文字サポートに関して; Benson Margulies と Fred Burke には C++ サポートに関して; Kent Williams と Tom Epperly には C++ クラスサポートに関して; Ove Ewerlid には NUL のサポートに関して; Eric Hughes には複数バッファのサポートに関して、それぞれ感謝します。 .PP この作品は当初、私が CA Berkeley の Lawrence Berkeley Laboratory における Real Time Systems Group にいた時に作成されました。 私に協力してくれた方々に感謝します。 .PP コメントは vern@ee.lbl.gov に送って下さい。 diff --git a/ja_JP.eucJP/man/man1/limits.1 b/ja_JP.eucJP/man/man1/limits.1 index 961e07fedb..df82ce7914 100644 --- a/ja_JP.eucJP/man/man1/limits.1 +++ b/ja_JP.eucJP/man/man1/limits.1 @@ -1,337 +1,340 @@ .\" Copyright (c) 1996 David Nugent .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, is permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice immediately at the beginning of the file, without modification, .\" 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. This work was done expressly for inclusion into FreeBSD. Other use .\" is permitted provided this notation is included. .\" 4. Absolutely no warranty of function or purpose is made by the author .\" David Nugent. .\" 5. Modifications may be freely made to this file providing the above .\" conditions are met. .\" -.\" %FreeBSD: src/usr.bin/limits/limits.1,v 1.14.2.8 2002/07/02 20:06:25 dillon Exp % +.\" %FreeBSD: src/usr.bin/limits/limits.1,v 1.14.2.9 2002/07/15 06:53:59 keramida Exp % .\" .\" $FreeBSD$ .Dd January 15, 1996 .Dt LIMITS 1 .Os .Sh 名称 .Nm limits .Nd リソースの制限値の設定および表示 .Sh 書式 .Nm .Op Fl C Ar class .Op Fl SHB .Op Fl ea .Op Fl cdflmnstuv Op val .Nm .Op Fl C Ar class .Op Fl SHB .Op Fl cdflmnstuv Op val .Op Fl E .Op Ar name Ns = Ns Ar value ... .Op Ar command .Nm .Op Fl U Ar user .Op Fl SHB .Op Fl ea .Op Fl cdflmnstuv Op val .Nm .Op Fl U Ar user .Op Fl SHB .Op Fl cdflmnstuv Op val .Op Fl E .Op Ar name Ns = Ns Ar value ... .Op Ar command .Sh 解説 .Nm ユーティリティはカーネルのリソース制限の表示および設定を行ないます。 また、 .Xr env 1 のように環境変数を設定して、プログラムを選択したリソースで動作させるこ ともできます。 .Nm コマンドは以下の 3 通りの使い方ができます: .Pp .Bl -tag -width indent .It Xo .Nm .Op Ar limitflags .Op Ar name Ns = Ns Ar value .Ar command .Xc この使い方では .Ar limitflags にしたがって制限をセットし、オプションで .Ar name Ns = Ns Ar value のペアで与えられた環境変数をセットし、指定されたコマンドを実行します。 .It Xo .Nm .Op Ar limitflags .Xc この使い方ではリソースの設定の値は実際には設定せずに、設定値を .Ar limitflags にしたがって決定し、標準出力に出力します。 デフォルトでは、呼び出しプロセスにおいて有効な 現在のカーネルのリソースの設定値を出力します。 .Fl C Ar class や .Fl U Ar user フラグを使うと、ログイン能力データベース .Xr login.conf 5 で設定されているログインクラスのリソース制限エントリによって変更された 現在のリソース設定を表示します。 .It Xo .Nm .Fl e Op Ar limitflags .Xc この使い方では .Ar limitflags にしたがってリソースの設定値を決定しますが、実際には設定は行ないません。 前の使い方のように、これらの設定値を標準出力しますが、 シェルをコールするのに都合の良いように .Em eval の形式で出力します。 コールされるシェルは、親プロセスの .Pa /proc ファイルシステム中のエントリを調べて決定されます。 もし、シェルが判明すると (すなわち sh, csh, bash, tcsh, ksh, pdksh, rc のいずれか)、 .Nm は 'limit' もしくは 'ulimit' コマンドをそのシェルが解釈できるフォーマットで 出力します。シェル名が決定できなかった場合は、 .Xr sh 1 によって使われる 'ulimit' 形式で出力します。 .Pp これはスクリプトで制限を設定したり、 デーモンや他のバックグランドタスクを リソースを制限して起動したりする場合に非常に便利な機能です。 また、ログインクラスデータベースを設定し中央データベースを保守することにより、 最大使用リソースをグローバルに設定することができるという利点があります。 .Pp .Nm は通常 シェルスクリプト中では次のようにバッククォーテーションに囲み評価するよ うにして使われます。 .Pp .Dl eval `limits -e -C daemon` .Pp これで .Nm の出力が評価され、現在のシェルで設定されます。 .El .Pp -上記の中で指定された limitflags の値には以下のオプションのうちの +上記の中で指定された +.Ar limitflags +の値には以下のオプションのうちの 1 つ以上のものが含まれます: .Pp .Bl -tag -width "-d [limit]" .It Fl C Ar class 現在のリソースの値をもとに、ログインクラス "class" で適用される リソースエントリによって変更したものを使います。 .It Fl U Ar user 現在のリソースの値をもとに、"user" が属するログインクラスに適用される リソースエントリによって変更したものを使います。 user がどのクラスにも属していない場合、"default" クラスが存在すればそ のリソース能力が使用され、もしそのユーザがスーパユーザアカウントであれ ば、"root" クラスが使用されます。 .It Fl S リソースの "soft" (もしくは現在の) 制限を表示もしくは設定します。 このスイッチに続いて指定される制限の設定は、 .Fl H や .Fl B フラグでオーバライドしない限り、soft リミットに対する設定となります。 .It Fl H リソースの "hard" (もしくは最大の) 制限を表示もしくは設定します。 このスイッチに続いて指定される制限の設定は、 .Fl S や .Fl B フラグでオーバライドしない限り、hard リミットに対する設定となります。 .It Fl B リソースの "soft" (現在の) および "hard" (最大の) 制限を表示もしくは設 定します。 このスイッチに続いて指定される制限の設定は、 .Fl S や .Fl H フラグでオーバライドしない限り、soft リミットおよび hard リミットの 両者に対する設定となります。 .It Fl e 出力を "eval mode" (評価モード) の書式にします。 これは表示モードでのみ有効であり、コマンドを実行するときには使えません。 出力に使用される正確なシンタックスは .Nm が起動されたシェルのタイプに依存します。 .It Fl b Op Ar limit .Em sbsize 資源制限を選択または設定します。 .It Fl c Op Ar limit .Em coredumsize のリソースの制限を選択もしくは設定 ( 'limit' が指定された場合) します。 値に 0 を指定するとコアダンプしないようになります。 .It Fl d Op Ar limit .Em datasize のリソースの制限を選択もしくは設定 ( 'limit' が指定された場合) します。 .It Fl f Op Ar limit .Em filesize のリソースの制限を選択もしくは設定します。 .It Fl l Op Ar limit .Em memorylocked のリソースの制限を選択もしくは設定します。 .It Fl m Op Ar limit .Em memoryuse のサイズの制限を選択もしくは設定します。 .It Fl n Op Ar limit .Em openfiles のリソースの制限を選択もしくは設定します。 プロセスごとの最大オープンファイル数のシステムワイドの制限は、 \&'sysctl kern.maxfilesperproc' コマンドで表示できます。 システム全体で同時にオープンできるファイルの総数は、 \&'sysctl kern.maxfiles' コマンドで表示できる値に制限されます。 .It Fl s Op Ar limit .Em stacksize のリソースの制限を選択もしくは設定します。 .It Fl t Op Ar limit .Em cputime のリソースの制限を選択もしくは設定します。 .It Fl u Op Ar limit .Em maxproc のリソースの制限を選択もしくは設定します。 UID ごとの最大プロセス数のシステムワイドの制限は、 \&'sysctl kern.maxprocperuid' コマンドで表示できます。 システム全体で同時に走行できるプロセスの総数は、 \&'sysctl kern.maxproc' コマンドで表示できる値に制限されます。 .It Fl v Op Ar limit .Em virtualmem のリソースの制限を選択もしくは設定します。 当該ユーザプロセスが使用可能な VM 空間全体を制限し、 これには、テキスト、データ、BSS、スタック、 .Xr brk 2 , .Xr sbrk 2 .Xr mmap 2 される空間が含まれます。 +.El .Pp 上記のフラグのセットにおける有効な .Ar limit の値は、無限値 (もしくは カーネルにおいて定義されている最大値) を設定する場合は文字列 .Em infinity .Em inf .Em unlimited .Em unlimit のいずれかを指定し、それ以外の場合は接尾子つきの数字を指定します。 サイズに関する値はデフォルトではバイトでの値となります。また以下の 接尾子の 1 つを付けることによってその単位となります。 .Pp .Bl -tag -offset indent -width "xxxx" -compact .It b 512 バイトブロック。 .It k キロバイト (1024 バイト)。 .It m メガバイト (1024*1024 バイト)。 .It g ギガバイト。 .It t テラバイト。 .El .Pp .Em cputime リソースについてはデフォルトでは秒による値となります。 また以下の接尾子を付加することにより、それぞれの単位で指定可能です。 有効な複数の単位指定を並べると、その和を指定したことになります: .Bl -tag -offset indent -width "xxxx" -compact .It s 秒。 .It m 分。 .It h 時間。 .It d 日。 .It w 週。 .It y 年 (365 日)。 .El -.Pp +.Bl -tag -width indent .It Fl E .Sq Fl E オプションを使用すると .Nm は継承している環境を完全に無視します。 .It Fl a このオプションは特定のリソースの設定が指定されていても、 全てのリソースの設定を表示させます。 例えば、USENET ニュースシステムの立ち上げ時にコアダンプを無効にしたい が、'news' アカウントに適用されるその他の全てのリソースの設定を行ない たい場合は、次のように使います: .Pp .Dl eval `limits -U news -aBec 0` .Pp .Xr setrlimit 2 コールのように、スーパユーザのみが "hard" リソース制限を引き上げるこ とができます。 root 以外のユーザはそれを引き下げるか、リソースの "soft" リミットを hard リミットの範囲で変更することができます。 プログラムを実行する場合、 .Nm が hard リミットを引き上げようとすると、それは致命的エラーとして扱われ ます。 .El .Sh 診断 .Nm ユーティリティは、 ユーザが何らかの方法で誤使用をすると EXIT_FAILURE で終了します。 誤使用には不正なオプションを使用した場合や、同時に設定と表示のオプション を指定した場合、または .Fl e がプログラムを起動する時に使われた場合などが含まれます。 表示モードもしくは評価モードにて実行されたとき、 .Nm は EXIT_SUCCESS の終了ステータスで終了します。 コマンドモードで実行されコマンドの実行が成功したときには、終了ステータスは 実行されたプログラムが返すものになります。 .Sh 関連項目 .Xr csh 1 , .Xr env 1 , .Xr limit 1 , .Xr sh 1 , .Xr getrlimit 2 , .Xr setrlimit 2 , .Xr login_cap 3 , .Xr login.conf 5 , .Xr sysctl 8 .Sh バグ 明らかな理由により、 .Nm ユーティリティは、 等号 (``='') がその名称に含まれるコマンドを扱うことができません。 .Pp 評価用の出力が選択された場合、シェルを正しく認識し、そのシェルにとって 出力が正しいシンタックスとなるためには、 .Pa /proc ファイルシステムがインストールされマウントされていなければなりません。 デフォルトの出力は .Xr sh 1 にとって有効なものとなります。そのため、 .Pa /proc マウント前に .Nm を使用できるのは、標準の bourne シェルスクリプト中でのみとなります。 .Pp .Nm ユーティリティは、 出力や表示するリソースの設定が現在のユーザで有効であるかや、設定可能 であるかについては確認を行ないません。スーパユーザアカウントのみが hard リミットを引き上げることができます。与えられた値が大きすぎる場合は .Fx カーネルは何も出力せずにその制限値を指定された値より低く設定します。 diff --git a/ja_JP.eucJP/man/man1/logger.1 b/ja_JP.eucJP/man/man1/logger.1 index 2e733ac2ef..6ed0d86b48 100644 --- a/ja_JP.eucJP/man/man1/logger.1 +++ b/ja_JP.eucJP/man/man1/logger.1 @@ -1,114 +1,114 @@ .\" Copyright (c) 1983, 1990, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)logger.1 8.1 (Berkeley) 6/6/93 -.\" %FreeBSD: src/usr.bin/logger/logger.1,v 1.4.2.6 2002/06/21 15:27:53 charnier Exp % +.\" %FreeBSD: src/usr.bin/logger/logger.1,v 1.4.2.7 2002/07/15 06:59:21 keramida Exp % .\" $FreeBSD$ .\" .Dd June 6, 1993 .Dt LOGGER 1 .Os .Sh 名称 .Nm logger .Nd システムのログに記録を残す .Sh 書式 .Nm .Op Fl 46Ais .Op Fl f Ar file .Op Fl h Ar host .Op Fl p Ar pri .Op Fl t Ar tag .Op Ar message ... .Sh 解説 .Nm ユーティリティは、 .Xr syslog 3 システムログ記録モジュールとのシェルコマンドインタフェースを提供します。 .Pp 次のオプションを使用可能です: .Bl -tag -width indent .It Fl 4 .Nm が IPv4 アドレスのみを使用するよう、強制します。 .It Fl 6 .Nm が IPv6 アドレスのみを使用するよう、強制します。 .It Fl A ホストが複数の A または AAAA レコードを持っている場合でも、 メッセージを単一のアドレスにのみ送信しようとします。 本オプションが指定されると、 .Nm はメッセージをすべてのアドレスに送信しようとします。 .It Fl i logger プロセスのプロセス ID を各行に記録します。 .It Fl s システムのログと同様に、標準エラー出力にログを出力します。 .It Fl f Ar file 指定したファイルの内容をログとして記録します。 .It Fl h Ar host ローカルでログする代わりに、リモートシステム .Ar host へメッセージを送ります。 .It Fl p Ar pri 指定した優先順位でメッセージを入力します。優先順位は、 数字で指定するか、``ファシリティ.レベル'' の組で指定されます。 たとえば、``\-p local3.info'' は .Ar local3 ファシリティに、情報( .Ar info )レベルでメッセージを記録します。デフォルトは、``user.notice'' です。 .It Fl t Ar tag 各行に指定した .Ar tag を埋め込みます。 .It Ar message この .Ar message をログとして記録します。これが指定されておらず、 .Fl f も指定されていなければ、標準入力をログとして記録します。 .El .Sh 診断 .Ex -std .Sh 使用例 .Bd -literal -offset indent -compact logger System rebooted logger \-p local0.notice \-t HOSTIDM \-f /dev/idmc .Ed .Sh 関連項目 .Xr syslog 3 , .Xr syslogd 8 .Sh 規格 .Nm は .St -p1003.2 準拠です。 diff --git a/ja_JP.eucJP/man/man1/makeinfo.1 b/ja_JP.eucJP/man/man1/makeinfo.1 index 5b102bcdb6..bc07838e88 100644 --- a/ja_JP.eucJP/man/man1/makeinfo.1 +++ b/ja_JP.eucJP/man/man1/makeinfo.1 @@ -1,164 +1,180 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.24. .\" $FreeBSD$ -.TH MAKEINFO "1" "March 2002" "GNU texinfo 4.1" FSF +.TH MAKEINFO "1" "April 2002" "GNU texinfo 4.2" FSF .SH 名称 makeinfo \- Texinfo 文書を変換する .SH 書式 .B makeinfo [\fIOPTION\fR]... \fITEXINFO-FILE\fR... .SH 解説 Texinfo で書かれたドキュメントを他のさまざまなフォーマットに変換します。 デフォルトでは、 Emacs またはスタンドアロンの GNU Info でオンラインに読むのに 適している Info ファイルに変換します。 .SS 一般オプション .TP \fB\-\-error\-limit\fR=\fINUM\fR NUM 個のエラーが出ると終了します (デフォルトでは NUM は 100 です)。 .TP \fB\-\-force\fR エラーが起こっても出力を保持します。 .TP \fB\-\-help\fR このヘルプ画面を表示し、終了します。 .TP \fB\-\-no\-validate\fR ノードの相互参照の検証処理を省きます。 .TP \fB\-\-no\-warn\fR 警告を出力しません (ただし、エラーは出力します)。 .TP \fB\-\-reference\-limit\fR=\fINUM\fR NUM 個の参照までに関して警告を出します (デフォルトは 1000 です)。 .TP \fB\-v\fR, \fB\-\-verbose\fR 現在何を処理しているかを表示します。 .TP \fB\-\-version\fR バージョン情報を表示し、終了します。 .SS "出力フォーマット選択 (デフォルトでは Info を出力):" .TP \fB\-\-docbook\fR Info フォーマットではなく、DocBook フォーマットで出力します。 .TP \fB\-\-html\fR Info フォーマットではなく、HTML フォーマットで出力します。 .TP -\fB\-\-no\-headers\fR -プレーンテキストを出力します。 -Info のノードセパレータおよび Node: 行を省き、標準出力に -\fB\-\-output\fR オプションを付けないものを出力します。 -.TP \fB\-\-xml\fR Info フォーマットではなく、XML (TexinfoML) フォーマットで出力します。 .SS "一般出力オプション" .TP \fB\-E\fR, \fB\-\-macro\-expand\fR FILE マクロを展開したソースを FILE に出力します。 いかなる @setfilename も無視します。 .TP +\fB\-\-no\-headers\fR +Info 出力または HTML から、ノードセパレータ、Node: 行、メニューを省き、 +それぞれプレーンテキストまたは短かい出力を生成します。 +また、デフォルトで標準出力に出力します。 +.TP \fB\-\-no\-split\fR Info や HTML を分割しません。 単一のファイルのみを生成します。 .TP \fB\-\-number\-sections\fR 出力に章、セクションなどの番号を含むようにします。 .TP \fB\-o\fR, \fB\-\-output\fR=\fIFILE\fR FILE (分割 HTML の場合はディレクトリ) に出力します。 .SS "Info およびプレーンテキスト用オプション:" .TP \fB\-\-enable\-encoding\fR Info 出力に、@documentencoding に従ったアクセント付の特殊文字を出力します。 .TP \fB\-\-fill\-column\fR=\fINUM\fR Info ファイルの行を NUM 文字目で折り返します (デフォルトでは 72 です)。 .TP \fB\-\-footnote\-style\fR=\fISTYLE\fR Info に、STYLE に従った脚注を出力します: `separate' は、固有のノードを作成して脚注を置きます。 `end' は、脚注が定義されているノードの末尾に脚注を置きます (これがデフォルトです)。 .TP \fB\-\-paragraph\-indent\fR=\fIVAL\fR Info の段落を VAL 文字だけスペースで字下げします (デフォルトは 3 です)。 VAL が `none' であるとき、字下げは行いません。 VAL が `asis' であるとき、現在存在する字下げ処理を保持します。 \fB\-\-split\-size\fR=\fINUM\fR Info ファイルを大きさ NUM に分割します (デフォルトは 50000 です)。 .SS "入力ファイルオプション:" .TP \fB\-\-commands\-in\-node\-names\fR ノード名に @ コマンドを許可します。 .TP \fB\-D\fR VAR 変数を定義します。@set を使用した場合と同様です。 .TP \fB\-I\fR DIR DIR を @include のサーチパスに加えます。 .TP \fB\-P\fR DIR DIR を @include サーチパスの先頭に置きます。 .TP \fB\-U\fR VAR 変数の定義を無効にします。@clear を使用した場合と同じです。 .SS "入力ファイルの条件処理:" .TP \fB\-\-ifhtml\fR HTML を生成しないときでも、@ifhtml および @html を処理します。 .TP \fB\-\-ifinfo\fR -HTML を生成するときでも、@ifinfo テキストを処理します。 +Info を生成しないときでも、@ifinfo テキストを処理します。 +.TP +\fB\-\-ifplaintext\fR +プレーンテキストを生成しないときでも @ifplaintext を処理します。 .TP \fB\-\-iftex\fR -@iftex および @tex テキストを処理します。 +@iftex および @tex を処理します。 \fB\-\-no\-split\fR オプションを暗に含んでいます。 .TP \fB\-\-no\-ifhtml\fR @ifhtml および @html テキストを処理しません。 .TP \fB\-\-no\-ifinfo\fR @ifinfo テキストを処理しません。 .TP +\fB\-\-no\-ifplaintext\fR +@ifplaintext テキストを処理しません。 +.TP \fB\-\-no\-iftex\fR @iftex および @tex テキストを処理しません。 .PP @if... 条件文に対するデフォルトの動作は、出力フォーマットに依存します : HTML を生成する場合、\fB\-\-ifhtml\fR がオンになり、他はオフになります。 -Info ファイルやプレーンテキストのファイルを生成する場合、\fB\-\-ifinfo\fR が -オンになり、他はオフになります。 +Info を生成する場合、\fB\-\-ifinfo\fR がオンになり、他はオフになります。 +プレーンテキストを生成する場合、 +\fB\-\-ifplaintext\fR がオンになり、他はオフになります。 .SH 使用例 .TP makeinfo foo.texi Info ファイルを foo の @setfilename で定義されているファイルへ書き出します。 .TP makeinfo \fB\-\-html\fR foo.texi -HTML ファイルを foo の @setfilename で定義されているファイルへ書き出します。 +HTML を @setfilename で定義されているファイルへ書き出します。 +.TP +makeinfo \fB\-\-xml\fR foo.texi +XML を @setfilename で定義されているファイルへ書き出します。 +.TP +makeinfo \fB\-\-docbook\fR foo.texi +DocBook XML を @setfilename で定義されているファイルへ書き出します。 +.TP +makeinfo \fB\-\-no\-headers\fR foo.texi +プレーンテキストを標準出力へ書き出します。 .TP -makeinfo \fB\-\-no\-headers\fR \fB\-o\fR - foo.texi -プレーンテキストを標準出力に書き出します。 +makeinfo \fB\-\-html\fR \fB\-\-no\-headers\fR foo.texi +ノード行とメニューの無いhtml を書き出します。 .TP makeinfo \fB\-\-number\-sections\fR foo.texi -番号づけした章を付けた Info ファイルを書き出します。 +番号付けしたセクション付きの Info を書き出します。 .TP makeinfo \fB\-\-no\-split\fR foo.texi -Info ファイルを 1 つだけ書き出します。大きいかもしれませんが。 +単一の Info を書き出しますが、大きくなります。 .SH バグレポート バグレポートは bug-texinfo@gnu.org へ電子メールで送ってください。 一般的な質問や議論は help-texinfo@gnu.org へお願いします。 .SH COPYRIGHT Copyright \(co 2002 Free Software Foundation, Inc. There is NO warranty. You may redistribute this software under the terms of the GNU General Public License. For more information about these matters, see the files named COPYING. .SH 関連項目 .B makeinfo のドキュメント全体は、Texinfo マニュアルとして管理されています。 .B info および .B makeinfo プログラムがあなたのサイトで正しくインストールされていれば、 .IP .B info makeinfo .PP コマンドで完全なマニュアルにアクセスすることができます。 diff --git a/ja_JP.eucJP/man/man1/mkdir.1 b/ja_JP.eucJP/man/man1/mkdir.1 index 8440870a1c..51da7f0ee8 100644 --- a/ja_JP.eucJP/man/man1/mkdir.1 +++ b/ja_JP.eucJP/man/man1/mkdir.1 @@ -1,109 +1,109 @@ .\" Copyright (c) 1989, 1990, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" This code is derived from software contributed to Berkeley by .\" the Institute of Electrical and Electronics Engineers, Inc. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)mkdir.1 8.2 (Berkeley) 1/25/94 -.\" %FreeBSD: src/bin/mkdir/mkdir.1,v 1.12.2.4 2002/04/22 22:24:24 keramida Exp % +.\" %FreeBSD: src/bin/mkdir/mkdir.1,v 1.12.2.5 2002/07/14 21:42:14 keramida Exp % .\" .\" $FreeBSD$ .Dd January 25, 1994 .Dt MKDIR 1 .Os .Sh 名称 .Nm mkdir .Nd ディレクトリの作成 .Sh 書式 .Nm .Op Fl pv .Op Fl m Ar mode .Ar directory_name ... .Sh 解説 .Nm ユーティリティは、 オペランドで指定されたディレクトリを作成します。 作成する順番は指定された順番です。 作成されるディレクトリのパーミッションは、 .Li rwxrwxrwx (\&0777) に .Xr umask 2 の修正を加えたものです。 .Pp オプションとしては以下のものがあります: .Pp .Bl -tag -width indent .It Fl m Ar mode 作成されるディレクトリのパーミッションを指定します。 .Ar mode の書式は .Xr chmod 1 コマンドと同じです。シンボリック形式で指定する場合、 .Dq + および .Dq - は、最初のパーミッションが .Dq a=rwx であるものとして解釈されます。 .It Fl p 必要に応じて途中のディレクトリを作成します。 このオプションが指定されていない場合には、 .Ar directory_name で指定するパスの途中のディレクトリは既に存在している必要があります。 また、本オプションを指定時には、 オペランドとして指定したディレクトリが既に存在しても、エラーは報告されません。 途中に作成されるディレクトリのパーミッションは、 .Li rwxrwxrwx (\&0777) に現在の umask の修正を加えたものに、 所有者に対する書き込みと検索パーミッションが加わった値となります。 .It Fl v ディレクトリ作成時に冗長になり、作成時にこれを表示します。 .El .Pp ユーザは親ディレクトリに対する 書き込みパーミッションを持っている必要があります。 .Sh 診断 .Ex -std .Sh 関連項目 .Xr rmdir 1 .Sh 互換性 .Fl v オプションは非標準であり、スクリプト中での使用は非推奨です。 .Sh 規格 .Nm ユーティリティは .St -p1003.2 互換です。 .Sh 歴史 .Nm コマンドは .At v1 から登場しました。 diff --git a/ja_JP.eucJP/man/man1/mkstr.1 b/ja_JP.eucJP/man/man1/mkstr.1 index 5d5f4989f3..118fcb8526 100644 --- a/ja_JP.eucJP/man/man1/mkstr.1 +++ b/ja_JP.eucJP/man/man1/mkstr.1 @@ -1,145 +1,143 @@ .\" Copyright (c) 1980, 1990, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)mkstr.1 8.1 (Berkeley) 6/6/93 -.\" %FreeBSD: src/usr.bin/mkstr/mkstr.1,v 1.7.2.2 2002/06/21 15:28:17 charnier Exp % +.\" %FreeBSD: src/usr.bin/mkstr/mkstr.1,v 1.7.2.3 2002/07/15 07:10:07 keramida Exp % .\" $FreeBSD$ .\" .Dd June 6, 1993 .Dt MKSTR 1 .Os .Sh 名称 .Nm mkstr .Nd C 言語ソースファイルからエラーメッセージファイルを作成する .Sh 書式 .Nm .Op Fl .Ar messagefile .Ar prefix Ar .Sh 解説 .Nm ユーティリティは、C 言語ソースファイルからエラーメッセージを抽出し、 これを格納するファイルを作成します。また作成され たエラーメッセージファイルを使用するように、そのソースファイルを修正し ます。mkstr は巨大なプログラムのサイズを減少させ、スワップを減らすこと を目的としています ( .Sx バグ の項を参照) 。 .Pp .Nm ユーティリティは、 コマンドラインで指定されたファイルを処理し、修正した入力ファイルを、 指定されたファイル名に、指定されたプレフィックスをつけた名前のファイル で出力します。以下の使用例は典型的なものです。 .Bd -literal -offset indent mkstr pistrings xx *.c .Ed .Pp .Nm は、カレントディレクトリにあるすべての C 言語ソースから集めた エラーメッセージを、ファイル .Ar pistrings に出力し、修正されたソースファイルを、ファイル名の先頭に .Ar \&xx をつけたファイルに出力します。 .Pp オプション .Bl -tag -width indent .It Fl 指定されたエラーメッセージファイルの最後に、エラーメッセージが置かれます。 これは、 .Nm で処理された巨大なプログラムの一部を再コンパイルするために使用します。 .El .Pp .Nm ユーティリティは、ソースファイル中の .Li \&`error("' という文字列をもとにエラーメッセージを検索します。この文字列が出現すると、 .Sq \&"\& から開始される文字列および その後にヌル文字と改行文字をメッセージファイルに出力します; 変更前のソースにおいて文字列であった部分は、 メッセージファイルのオフセットに置き換えられ .Xr lseek 2 によって対応するメッセージを取り出すことができます。 実際にメッセージを取り出す場合には、以下のようなコードを使用します。 .Bd -literal -offset indent char efilname = "/usr/lib/pi_strings"; int efil = -1; error(a1, a2, a3, a4) \&{ char buf[256]; if (efil < 0) { efil = open(efilname, 0); - if (efil < 0) { -oops: - perror(efilname); - exit 1 ; - } + if (efil < 0) + err(1, "%s", efilname); } - if (lseek(efil, (long) a1, 0) \ read(efil, buf, 256) <= 0) - goto oops; + if (lseek(efil, (off_t)a1, SEEK_SET) < 0 || + read(efil, buf, 256) <= 0) + err(1, "%s", efilname); printf(buf, a2, a3, a4); } .Ed .Sh 関連項目 .Xr xstr 1 , .Xr lseek 2 .Sh 歴史 .Nm ユーティリティは .Bx 3.0 で登場しました。 .Sh バグ .Nm ユーティリティは、 PDP 11 ファミリーの制限されたアーキテクチャのために開発されました。 ごく一部のプログラムしか mkstr を使用していません。 Pascal インタプリタ .Xr \&pi 1 とエディタ .Xr \&ex 1 が .Nm により作成されています。 .Nm の方法は効率的なものとはいえないので、 エラーメッセージはプログラムテキストのなかに埋め込まれているべきです .Pq (訳注) 最近はメッセージの国際化等のために、プログラム中にメッセージを埋め込まない方法もよく用いられます 。 .\" 上記(訳注)は翻訳時からあったが、現状確かにそうなので残しました。 .\" 2.1.5-2.2-RELEASE 対象 .\" By horikawa@jp.freebsd.org (Mar 29 1997) diff --git a/ja_JP.eucJP/man/man1/msgs.1 b/ja_JP.eucJP/man/man1/msgs.1 index 414a1ae727..8c40f50107 100644 --- a/ja_JP.eucJP/man/man1/msgs.1 +++ b/ja_JP.eucJP/man/man1/msgs.1 @@ -1,217 +1,218 @@ .\" Copyright (c) 1980, 1990, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)msgs.1 8.2 (Berkeley) 4/28/95 -.\" %FreeBSD: src/usr.bin/msgs/msgs.1,v 1.9.2.6 2002/06/21 15:28:22 charnier Exp % +.\" %FreeBSD: src/usr.bin/msgs/msgs.1,v 1.9.2.7 2002/07/15 07:19:24 keramida Exp % .\" $FreeBSD$ .\" .Dd April 28, 1995 .Dt MSGS 1 .Os .Sh 名称 .Nm msgs .Nd システムからのメッセージを読むための簡単なメールプログラム .Sh 書式 .Nm .Op Fl fhlpq .Op Ar number .Op Ar \-number .Nm .Op Fl s .Nm .Op Fl c .Op \-days .Sh 解説 .Nm ユーティリティは、システムからのメッセージを読むためのプログラムです。 これらのメッセージはユーザ `msgs' あてにメールを送ることで送信されます。 これらのメッセージは、ユーザがシステムにログインした時に、 システムからの簡単なメッセージを一度だけ表示するのに便利です。 .Pp .Nm ユーティリティを .Pa .login ファイル ( .Xr sh 1 を使っているならば、 .Pa .profile ) に書いておくことによって、 ログインするたびに .Nm が実行されます。 もし、新しいメッセージがあれば、誰からのメッセージかという情報と、 Subject とを表示します。 もし Subject 行が無ければ、先頭の空行でない数行を表示します。 もし、より多くのメッセージがあれば、残りのメッセージ量を示し、 残りのメッセージを見るかどうかを尋ねます。 返事としては、以下のものを使うことができます: .Bl -tag -width Fl .It Ic y メッセージを表示します。 .It Ic RETURN y と同じです。 .It Ic n このメッセージをスキップして、次のメッセージに行きます。 .It Fl 最後に表示したメッセージを再表示します。 .It Ic q .Nm を終了します。次回には読まなかったメッセージを読むことができます。 .It Ic s メッセージをセーブします。現在のメッセージをカレントディレクトリの ``Messages'' というファイルに追加します。 `s\-' は表示する前にセーブします。 `s' や `s\-' はその後ろに空白をはさんでセーブするファイル名を指定できます。 .It Ic m 指定されたメッセージを、一時的な mailbox としてファイルに記録し、 .Xr mail 1 を起動して、記録したファイルをメールとして扱うことができるようにします。 `m' , `s' コマンドは、`-' の代わりに数字の引数を受け付けます。 .El .Pp .Nm ユーティリティは、各ユーザのホームディレクトリの .Pa \&.msgsrc に記録されている番号を読み込んで、新たに読むべきメッセージを決定します。 .Pa /var/msgs というディレクトリには、(シーケンシャルな)メッセージ番号を ファイル名として格納しています。 .Pa /var/msgs/bounds というファイルには、 このディレクトリにあるメッセージの一番小さな番号と大きな番号を記録しています。 これにより、 .Nm はメッセージがあるかどうか、ただちに判定できます。 .Pa bounds の内容が壊れている場合は、このファイルを削除することで、次回 .Fl s オプション付きで起動されたときに、新しく .Pa bounds を作成します。 .Nm が .Fl s 以外のオプションを指定されて実行された場合、 .Pa /var/msgs/bounds が存在しないとエラーが表示されます。 .Pp .Fl s オプションは、メッセージの配送を設定する時に使います。 .Pp .Dl msgs: \&"\&| /usr/bin/msgs \-s\&" .Pp という行を .Pa /etc/mail/aliases に挿入して ( .Xr newaliases 1 参照)、メッセージを投函できるようにします。 .Pp .Fl c オプションは .Pa /var/msgs をクリアするために使います。 .Nm を .Fl c つきで実行するシェルスクリプトのエントリを、 .Pa /etc/periodic/daily ( .Xr periodic 8 参照) に記述して、毎晩実行するようにするといいでしょう。 これで、21 日より古いメッセージを消すことができます。 デフォルトの日付を変更するにはコマンドラインで設定する必要があります。 +本オプションを使用するにはスーパユーザであることが必要です。 .Pp メッセージを読む時のオプションとしては以下のものがあります: .Bl -tag -width Fl .It Fl f ``No new messages.'' を表示しません。これは、 .Pa .login ファイルなどに .Nm を書いておく場合に便利です。 .It Fl q メッセージがある場合に、``There are new messages.'' と表示するようにし ます。 .Pa .login ファイルなどに ``msgs \-q'' と書いておくと便利です。 .It Fl h メッセージの最初の部分だけを表示します。 .It Fl l ローカルに作られたメッセージだけを報告します。 .It Ar num コマンドラインから番号を与えると、 .Pa \&.msgsrc に記録されている番号を使わずに、指定した番号以降のメッセージを表示します。 つまり、 .Pp .Dl msgs \-h 1 .Pp は、すべてのメッセージのはじめの部分を表示します。 .It Ar \-number .Pa \&.msgsrc に記録されている番号より .Ar number 分だけ戻ったメッセージから表示します。最近のメッセージを見るのに便利です。 .It Fl p 長いメッセージは、 .Xr more 1 を使います。 .El .Pp .Nm のコマンド対話モードの時に、コマンドの代わりに番号を入力することで、 指定した番号のメッセージに移動することができます。 .Sh 環境変数 .Nm ユーティリティは、デフォルトのホームディレクトリと端末タイプを知るために、 .Ev HOME と .Ev TERM を参照します。 .Sh 関連ファイル .Bl -tag -width /var/msgs/* -compact .It Pa /var/msgs/* メッセージデータベース .It Pa ~/.msgsrc 次のメッセージ番号を記録しているファイル .El .Sh 関連項目 .Xr mail 1 , .Xr more 1 , .Xr aliases 5 , .Xr periodic 8 .Sh 歴史 .Nm コマンドは、 .Bx 3.0 から登場しました。 diff --git a/ja_JP.eucJP/man/man1/mt.1 b/ja_JP.eucJP/man/man1/mt.1 index 54da14e1f0..fd92023920 100644 --- a/ja_JP.eucJP/man/man1/mt.1 +++ b/ja_JP.eucJP/man/man1/mt.1 @@ -1,372 +1,378 @@ .\" Copyright (c) 1981, 1990, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)mt.1 8.1 (Berkeley) 6/6/93 -.\" %FreeBSD: src/usr.bin/mt/mt.1,v 1.19.2.6 2002/06/21 15:28:24 charnier Exp % +.\" %FreeBSD: src/usr.bin/mt/mt.1,v 1.19.2.7 2002/07/16 20:02:06 joerg Exp % .\" $FreeBSD$ .\" .Dd June 6, 1993 .Dt MT 1 .Os .Sh 名称 .Nm mt .Nd 磁気テープ操作プログラム .Sh 書式 .Nm .Op Fl f Ar tapename .Ar command .Op Ar count .Sh 解説 .Nm ユーティリティは、 磁気テープドライブへコマンドを与えるのに使われます。 通常、 .Nm は要求された操作を一度だけ行います。 操作によっては .Ar count で指定した回数だけ繰り返し実行できます。 なお、 .Ar tapename は生の (ブロック型でない) テープデバイスを指していなければなりません。 .Pp 使用可能なコマンドは下記のようになっています。 コマンドの指定にあたって、 一意に特定するのに必要なだけの文字数は与える必要があります。 .Bl -tag -width "eof, weof" .It Cm weof テープの現在位置に .Ar count 個のファイル終端マークを書き込みます。 .It Cm smk テープの現在位置に .Ar count 個の位置決定マークを書き込みます。 .It Cm fsf ファイル .Ar count 個分早送りします。 .It Cm fsr レコード .Ar count 個分早送りします。 .It Cm fss 位置決定マーク .Ar count 個分早送りします。 .It Cm bsf ファイル .Ar count 個分巻き戻します。 .It Cm bsr レコード .Ar count 個分巻き戻します。 .It Cm bss 位置決定マーク .Ar count 個分巻き戻します。 .It Cm rdhpos ハードウェアブロック位置を読み取ります。 この機能をサポートしないドライブもあります。 報告されるブロック番号は、そのハードウェア固有のものです。 count 引数は無視されます。 .It Cm rdspos SCSI 論理ブロック位置を読み取ります。 この機能をサポートしないドライブもあります。 count 引数は無視されます。 .It Cm sethpos ハードウェアブロック位置を設定します。 この機能をサポートしないドライブもあります。 count 引数は、テープ移動先のハードウェアブロックであると解釈されます。 .It Cm setspos SCSI 論理ブロック位置を設定します。 この機能をサポートしないドライブもあります。 count 引数は、テープ移動先の SCSI 論理ブロックであると解釈されます。 .It Cm rewind テープを巻き戻します (カウントは無視)。 .It Cm offline , rewoffl テープを巻き戻して、 テープユニットをオフライン状態にします (カウントは無視)。 .It Cm erase テープを消去します。 カウント 0 は長い消去を無効にします。これがデフォルトです。 .It Cm retension テープのたるみを取ります (一度最後まで早送りして、 また巻き戻します。カウントは無視)。 .It Cm status テープユニットの状態情報を出力します。 SCSI 磁気テープドライブに対しては、 現在の操作モードとして、密度・ブロックサイズ・圧縮の有無が報告されます。 ドライブの現在の状態 (デバイスに対して何を行っているのか) も報告されます。 ドライブが (ファイルマークおよびレコードを基準とした) BOT からの相対位置を知っている場合、これも表示します。 この情報は信頼できるものではないことに注意してください (BOT、記録メディアの終端、(ドライブが報告するのであれば) ハードウェアブロック位置と SCSI 論理ブロック位置のみが、 テープ位置として信頼できます)。 .It Cm errstat このドライブに関するエラー状態情報を表示 (およびクリア) します。 各通常操作 (例えば読み込みや書き込み) および 各制御操作 (例えば巻き戻し) に対し、 最後に実行したコマンドとこれに関連した状態と存在すれば残りのカウントを、 ドライバは格納します。 本コマンドは、この情報を引き出して表示します。 可能であれば、ラッチしたエラー情報もまたクリアします。 .It Cm blocksize テープユニットに対してブロックサイズを指定します。 零は可変長ブロックを意味します。 .It Cm density テープユニットに対して密度を指定します。 密度の符号化方式については、 下記を参照して下さい。 密度の値は、 .Dq リファレンス 欄に応じた数字と文字列のどちらでも与えることができます。 もし文字列が略記されていたら、 表に書かれてある順番で調べていき、 最初に合致した項目が使われます。 与えられた文字列と正しい密度名称を調べた結果が正確に合致しないのであれば、 与えられた文字列がどう解釈されたかについて、 通知メッセージが出力されます。 .It Cm geteotmodel 現在の EOF ファイルマークモデルを、取得して表示します。 モデル状態とは、 テープが書き込まれる場合、 書き込みクローズ時に何個のファイルマークが書き込まれるかを表現します。 .It Cm seteotmodel 現在の EOT ファイルマークモデルを、( .Ar count 引数に) 設定して表示します。 典型的には、これはファイルマーク .Ar 2 個ですが、デバイスによっては (典型的には QIC カートリッジドライブでは)、 ファイルマークを .Ar 1 個だけ書き込み可能です。現在のところ、値は .Ar 1 または .Ar 2 だけから選択可能です。 .It Cm eom 記録されたメディアの終端まで早送りします (カウントは無視)。 .It Cm eod データの終端まで早送りします。 .Cm eom と同じです。 .It Cm comp 圧縮モードを指定します。 現在、圧縮モードに指定可能な値はいくつかあります: .Pp .Bl -tag -width 9n -compact .It off 圧縮オフ .It on 圧縮オン .It none .Ar off と同じ .It enable .Ar on と同じ .It IDRC IBM Improved Data Recording Capability 圧縮 (0x10)。 .It DCLZ DCLZ 圧縮アルゴリズム (0x20)。 .El .Pp 前記の認識される圧縮キーワードに加え、 テープドライブが使用する圧縮アルゴリズムをユーザが数値で指定可能です。 ほとんどの場合、単に圧縮を .Sq on にするだけで、 ドライブがサポートしているデフォルトの圧縮アルゴリズムを有効にするという 望ましい効果が得られます。 そうでない場合 ( .Cm status を見て、どの圧縮アルゴリズムを現在使用しているかを見てください)、 サポートされている圧縮キーワード (上述) もしくは 数値の圧縮値をユーザが手動で指定可能です。 .El .Pp テープ名が与えられていないくて、かつ環境変数 .Ev TAPE が存在しない場合、 .Nm はデバイス .Pa /dev/nsa0 を使用します。 .Pp .Nm ユーティリティは、操作が成功したならば 0 の終了値を、 コマンドが認識不能の場合には 1 を、 また操作が失敗したならば 2 を返します。 .Pp 次に示す密度表は、1997 年 11 月 11 の SCSI-3 Stream Device Commands (SSC) working draft の Revision 11 における、 .Sq Historical sequential access density codes table (A-1) の情報です。 .Pp それぞれ密度の符号化方式は次の通りです。 .Pp .Dl "0x0 デバイスの既定値" .Dl "0xE ECMA 用予約値" .Bd -literal -offset 3n 値 幅 トラック 密度 コード 型 リファレンス 注 mm in bpmm bpi 0x01 12.7 (0.5) 9 32 (800) NRZI R X3.22-1983 2 0x02 12.7 (0.5) 9 63 (1,600) PE R X3.39-1986 2 0x03 12.7 (0.5) 9 246 (6,250) GCR R X3.54-1986 2 0x05 6.3 (0.25) 4/9 315 (8,000) GCR C X3.136-1986 1 0x06 12.7 (0.5) 9 126 (3,200) PE R X3.157-1987 2 0x07 6.3 (0.25) 4 252 (6,400) IMFM C X3.116-1986 1 0x08 3.81 (0.15) 4 315 (8,000) GCR CS X3.158-1987 1 0x09 12.7 (0.5) 18 1,491 (37,871) GCR C X3.180 2 0x0A 12.7 (0.5) 22 262 (6,667) MFM C X3B5/86-199 1 0x0B 6.3 (0.25) 4 63 (1,600) PE C X3.56-1986 1 0x0C 12.7 (0.5) 24 500 (12,690) GCR C HI-TC1 1,6 0x0D 12.7 (0.5) 24 999 (25,380) GCR C HI-TC2 1,6 0x0F 6.3 (0.25) 15 394 (10,000) GCR C QIC-120 1,6 0x10 6.3 (0.25) 18 394 (10,000) GCR C QIC-150 1,6 0x11 6.3 (0.25) 26 630 (16,000) GCR C QIC-320 1,6 0x12 6.3 (0.25) 30 2,034 (51,667) RLL C QIC-1350 1,6 0x13 3.81 (0.15) 1 2,400 (61,000) DDS CS X3B5/88-185A 5 0x14 8.0 (0.315) 1 1,703 (43,245) RLL CS X3.202-1991 5 0x15 8.0 (0.315) 1 1,789 (45,434) RLL CS ECMA TC17 5 0x16 12.7 (0.5) 48 394 (10,000) MFM C X3.193-1990 1 0x17 12.7 (0.5) 48 1,673 (42,500) MFM C X3B5/91-174 1 0x18 12.7 (0.5) 112 1,673 (42,500) MFM C X3B5/92-50 1 +0x19 12.7 (0.5) 128 2,460 (62,500) RLL C DLTapeIII 6,7 +0x1A 12.7 (0.5) 128 3,214 (81,633) RLL C DLTapeIV(20) 6,7 +0x1B 12.7 (0.5) 208 3,383 (85,937) RLL C DLTapeIV(35) 6,7 0x1C 6.3 (0.25) 34 1,654 (42,000) MFM C QIC-385M 1,6 0x1D 6.3 (0.25) 32 1,512 (38,400) GCR C QIC-410M 1,6 0x1E 6.3 (0.25) 30 1,385 (36,000) GCR C QIC-1000C 1,6 0x1F 6.3 (0.25) 30 2,666 (67,733) RLL C QIC-2100C 1,6 0x20 6.3 (0.25) 144 2,666 (67,733) RLL C QIC-6GB(M) 1,6 0x21 6.3 (0.25) 144 2,666 (67,733) RLL C QIC-20GB(C) 1,6 0x22 6.3 (0.25) 42 1,600 (40,640) GCR C QIC-2GB(C) ? 0x23 6.3 (0.25) 38 2,666 (67,733) RLL C QIC-875M ? 0x24 3.81 (0.15) 1 2,400 (61,000) CS DDS-2 5 0x25 3.81 (0.15) 1 3,816 (97,000) CS DDS-3 5 0x26 3.81 (0.15) 1 3,816 (97,000) CS DDS-4 5 0x27 8.0 (0.315) 1 3,056 (77,611) RLL CS Mammoth 5 0x28 12.7 (0.5) 36 1,491 (37,871) GCR C X3.224 1 0x29 12.7 (0.5) 0x2A 0x2B 12.7 (0.5) 3 ? ? ? C X3.267 5 +0x41 12.7 (0.5) 208 3,868 (98,250) RLL C DLTapeIV(40) 6,7 .Ed .Bd -literal -offset 3n コード 意味 型 意味 ---------------- ---------------- NRZI 非 0 復帰、1 で変更 R リールトゥリール (Non Return to Zero, change on ones) C カートリッジ GCR グループ符号記録 CS カセット (Group Code Recording) PE 位相符号化 (Phase Encoded) IMFM 反転修正周波数変調 (Inverted Modified Frequency Modulation) MFM 修正周波数変調 (Modified Frequency Modulation) DDS DAT データ記憶装置 (Dat Data Storage) RLL ランレングス符号化 (Run Length Encoding) .Ed .\" 上記(訳注)は、略号の解説には訳文とその原文とを併記しておくことが .\" 理解の助けになるものと判断し、追加しました。 .\" 2.2.2-RELEASE 対象 .\" By taku@tail.net (June 16, 1997) .\" 3.0-RELEASE でも確認 by horikawa@jp.freebsd.org .Bd -literal -offset 3n 注 1. シリアル記録。 2. パラレル記録。 3. QIC-11 として知られる古い形式。 5. ヘリカルスキャン。 6. American National Standard ではありません。リファレンスは、 メディアフォーマットの工業標準の定義に基づいています。 +7. DLT 記録: 直線的に記録されたトラックの組 (DLTapeIII と DLTapeIV(20)) + か、トラックの 4 つ組み (DLTapeIV(35) と DLTapeIV(40))。 .Ed .Sh 環境変数 次の環境変数が存在すれば、 .Nm に利用されます。 .Bl -tag -width Fl .It Ev TAPE 引数 .Ar tapename が与えられていない時、 .Nm ユーティリティは .Ev TAPE 環境変数を調べます。 .El .Sh 関連ファイル .Bl -tag -width /dev/*rst[0-9]*xx -compact .It Pa /dev/*rwt* QIC-02/QIC-36 磁気テープインタフェース .It Pa /dev/*rsa[0-9]* SCSI 磁気テープインタフェース .El .Sh 関連項目 .Xr dd 1 , .Xr ioctl 2 , .Xr mtio 4 , .Xr sa 4 , .Xr wt 4 , .Xr environ 7 .Sh 歴史 .Nm コマンドは .Bx 4.3 で登場しました。 .Pp .Xr st 4 ドライバに関する拡張部分は .Xr st 1 コマンドとは別のものとして .Bx 386 0.1 で登場し、 .Nm コマンドに .Fx 2.1 で含められました。 .Pp .Cm weof と同義のコマンドであった .Cm eof コマンドは .Fx 2.1 で破棄されました。 なぜなら、しばしば .Cm eom との混乱があり、非常に危険だったためです。 diff --git a/ja_JP.eucJP/man/man1/ncal.1 b/ja_JP.eucJP/man/man1/ncal.1 index 6b6e74d11e..181d5b69b3 100644 --- a/ja_JP.eucJP/man/man1/ncal.1 +++ b/ja_JP.eucJP/man/man1/ncal.1 @@ -1,123 +1,123 @@ .\" Copyright (c) 1997 Wolfgang Helbig .\" 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.bin/ncal/ncal.1,v 1.8.2.5 2002/06/21 15:28:26 charnier Exp % +.\" %FreeBSD: src/usr.bin/ncal/ncal.1,v 1.8.2.6 2002/07/15 07:22:42 keramida Exp % .\" $FreeBSD$ .\". .Dd December 16, 1997 .Dt CAL 1 .Os .Sh 名称 .Nm cal , .Nm ncal .Nd カレンダおよびイースターの日付を表示する .Sh 書式 .Nm .Op Fl jy .Oo .Op Ar month .Ar year .Oc .Nm ncal .Op Fl jJpwy .Op Fl s Ar country_code .Oo .Op Ar month .Ar year .Oc .Nm ncal .Op Fl Jeo .Op Ar year .Sh 解説 .Nm ユーティリティは簡単なカレンダを表示します。 また .Nm ncal は別のフォーマット、追加のオプション、イースターの日付も提供します。 新しいフォーマットは込み入っていますが、 25x80 文字の端末で一年が表示できます。 引数が指定されなかった場合は今月のものを表示します。 .Pp オプションには以下のものがあります: .Bl -tag -width indent .It Fl J ユリウス暦でカレンダーを表示します。 .Fl e オプションと共に使用すると、ユリウス暦でのイースターを表示します。 .It Fl e イースターの日付を表示します (西方教会)。 .It Fl j ユリウス日で表示します。(1 月 1 日を第 1 日とする通日です) (訳注:天文学での定義とは異なります。[Mar.1996]) .It Fl o 東方正教会のイースターの日付を表示します (ギリシャおよびロシアの東方正教会)。 .It Fl p カントリーコードと、ユリウス暦からグレゴリオ暦へ移行したと .Nm ncal が見なす日付を表示します。 ローカル環境で定義されるカントリーコードにはアスタリスクが表示されます。 .It Fl s Ar country_code ユリウス暦からグレゴリオ暦へ移行した日付を .Ar country_code に基づくものとします。 指定しない場合には、 .Nm ncal はローカル環境に基づき推定しますが、 推定に失敗した場合は、1752 年 9 月 2 日であるとします。 この日付は、英国およびその植民地がグレゴリオ暦に移行した日付です。 .It Fl w 週のカラムの下に週の番号を表示します。 .It Fl y 今年のカレンダを表示します。 .El .Pp パラメータが 1 つの時は西暦年 (1 - 9999) を指定したものとして、 その年のカレンダを表示します。 年は完全な形で指定して下さい。例えば .Dq Li cal 89 では 1989 年のカレンダを表示 .Em しません 。パラメータが 2 つの時は月 (1 - 12) と年を指定します。 .Pp 一年は 1 月 1 日から始まります。 .Sh 関連項目 .Xr calendar 3 , .Xr strftime 3 .Sh 歴史 .Nm コマンドは -.At v6 +.At v5 から登場しました。 .Nm ncal は .Fx 2.2.6 に登場しました。 .Sh 作者 .Nm ncal コマンドとマニュアルは .An Wolfgang Helbig Aq helbig@FreeBSD.ORG が作成しました。 .Sh バグ ユリウス暦からグレゴリオ暦に移行した日付とカントリーコードの対応は、 多くの国について不適当です。 diff --git a/ja_JP.eucJP/man/man1/nl.1 b/ja_JP.eucJP/man/man1/nl.1 index 8e6f1c021c..e3564cecd4 100644 --- a/ja_JP.eucJP/man/man1/nl.1 +++ b/ja_JP.eucJP/man/man1/nl.1 @@ -1,243 +1,238 @@ -.\" %FreeBSD: src/usr.bin/nl/nl.1,v 1.8.2.2 2001/12/14 15:53:31 ru Exp % +.\" %FreeBSD: src/usr.bin/nl/nl.1,v 1.8.2.3 2002/07/15 06:18:43 tjr Exp % .\" .\" Copyright (c) 1999 The NetBSD Foundation, Inc. .\" All rights reserved. .\" .\" This code is derived from software contributed to The NetBSD Foundation .\" by Klaus Klein. .\" .\" 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 NetBSD .\" Foundation, Inc. and its contributors. .\" 4. Neither the name of The NetBSD Foundation 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 NETBSD FOUNDATION, INC. 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 FOUNDATION 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$ .Dd September 20, 2001 .Dt NL 1 .Os .Sh 名称 .Nm nl .Nd 行番号生成フィルタ .Sh 書式 .Nm .Op Fl p .Bk -words .Op Fl b Ar type .Ek .Bk -words .Op Fl d Ar delim .Ek .Bk -words .Op Fl f Ar type .Ek .Bk -words .Op Fl h Ar type .Ek .Bk -words .Op Fl i Ar incr .Ek .Bk -words .Op Fl l Ar num .Ek .Bk -words .Op Fl n Ar format .Ek .Bk -words .Op Fl s Ar sep .Ek .Bk -words .Op Fl v Ar startnum .Ek .Bk -words .Op Fl w Ar width .Ek .Op Ar file .Sh 解説 .Nm ユーティリティは指定された .Ar file から、また .Ar file 引数が省略されている場合には標準入力から行を読み取り、 設定可能な行番号を生成添付するフィルタ処理を行い、 結果を標準出力に書き込みます。 .Pp .Nm ユーティリティは読み取るテキストを論理ページ単位で処理します。 特別に指定しない場合には、各論理ページの最初で行番号はリセットされます。 論理ページはヘッダ、本文、フッタで構成されます。 またブランクセクションでも有効です。ヘッダ、本文、フッタの 各セクションについて個別に行番号生成オプションを使い分けられます。 .Pp 以下のような区切り記号文字並びのうちの一つだけからなる入力行が 論理ページセクション開始の合図となります。 .Pp .Bl -column "\e:\e:\e:" "start of section" -offset indent .Em "行 開始セクション" .It "\e:\e:\e: ヘッダ" .It "\e:\e: 本文" .It "\e: フッタ" .El .Pp 入力に論理ページセクションの合図となる宣言子が存在しない場合には、 読み取り中のテキストは単一の論理ページ本文であると仮定されます。 .Pp 以下のようなオプションが使用できます。 .Bl -tag -width ".Fl v Ar startnum" .It Fl b Ar type 論理ページ本文の行に行番号をつけることを指定します。 認識される引数 .Ar type は以下のとおりです。 .Bl -tag -width indent .It Cm a 行全部に行番号をつけます。 .It Cm t ブランク行でない行だけに行番号をつけます。 .It Cm n 行番号をつけません。 .It Cm p Ns Ar expr .Ar expr で指定される基本的正規表現を含む行だけに行番号をつけます。 .El .Pp 論理ページ本文の行についてはデフォルトの .Ar type は .Cm t です。 .It Fl d Ar delim 入力ファイルの論理ページセクションの開始を指示する区切り記号文字を 指定します。最大 2 文字を指定できます。 また、 1 文字だけ指定した場合には、最初の文字が置換され、 2 番目の文字は そのまま変わりません。 デフォルトの .Ar delim 文字は .Dq Li \e: です。 .It Fl f Ar type 論理ページフッタの行に対すること以外は .Fl b Ar type と同じ指定です。 論理ページフッタの行についてはデフォルトの .Ar type は .Cm n です。 .It Fl h Ar type 論理ページヘッダの行に対すること以外は .Fl b Ar type と同じ指定です。 論理ページヘッダの行についてはデフォルトの .Ar type は .Cm n です。 .It Fl i Ar incr 論理ページの行に行番号をつけるための増分値を指定します。 デフォルトの .Ar incr の値は 1 です。 .It Fl l Ar num いずれかの論理セクションについて、対応する .Fl b Cm a , .Fl f Cm a , .Fl h Cm a オプションを用いて行全部に行番号をつけることを指定した場合に、 1 行と 見なすべき隣接するブランク行の行数を指定します。 例えば、 .Fl l 2 は隣接する 2 番目のブランク行だけに行番号をつけます。 デフォルトの .Ar num の値は 1 です。 .It Fl n Ar format 行番号の出力形式を指定します。 認識される引数 .Ar format は以下のとおりです。 .Bl -tag -width indent -compact .It Cm ln 左詰します。 .It Cm rn 右詰します。先行 0 は 0 抑制されます。 .It Cm rz 右詰します。先行 0 は残されます。 .El .Pp デフォルトの .Ar format は .Cm rn です。 .It Fl p 行番号付けは論理ページ区切り記号で再スタートしないことを指定します。 .It Fl s Ar sep 行番号と対応するテキスト行を分離する文字を指定します。 .Ar sep のデフォルトの設定は単一のタブ文字です。 .It Fl v Ar startnum 論理ページの行に行番号をつけるときに使う初期値を指定します。 関連項目は .Fl p オプションの解説です。 デフォルトの .Ar startnum の値は 1 です。 .It Fl w Ar width 行番号が占有する文字数を指定します。 .Ar width が不充分で行番号を収容しきれない場合には、行番号は最下位側 .Ar width 桁の数字に切り詰められます。 デフォルトの .Ar width は 6 です。 .El .Sh 診断 .Ex -std .Sh 関連項目 .Xr jot 1 , .Xr pr 1 .Sh 規格 -すたれかけていて将来の版から -除くべきであると規格では考えられている機能である、 -オペランド -.Ar file -とオプションとの混在をサポートしないという例外を除いて、 .Nm ユーティリティは、 -.St -xpg4.2 +.St -p1003.1-2001 に適合しています。 .Sh 歴史 この .Nm ユーティリティは .At V.2 ではじめて登場しました。 .\"Trans: Tetsuro Furuya (古谷 哲郎) .\"Trans-check: Kazuo Horikawa (堀川 和雄) diff --git a/ja_JP.eucJP/man/man1/od.1 b/ja_JP.eucJP/man/man1/od.1 index c34c2e7fc7..c8b28595c9 100644 --- a/ja_JP.eucJP/man/man1/od.1 +++ b/ja_JP.eucJP/man/man1/od.1 @@ -1,85 +1,258 @@ .\" Copyright (c) 1990, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)od.1 8.1 (Berkeley) 6/6/93 -.\" %FreeBSD: src/usr.bin/hexdump/od.1,v 1.8.2.3 2002/06/21 15:27:11 charnier Exp % +.\" %FreeBSD: src/usr.bin/hexdump/od.1,v 1.8.2.4 2002/07/23 14:27:06 tjr Exp % .\" $FreeBSD$ .\" .Dd May 27, 1994 .Os .Dt OD 1 .Sh 名称 .Nm od .Nd 8進, 10進, 16進, ASCIIでのダンプ .Sh 書式 .Nm -.Op Fl aBbcDdeFfHhIiLlOovXx +.Op Fl aBbcDdeFfHhIiLlOosvXx +.Op Fl A Ar base +.Op Fl j Ar skip +.Op Fl N Ar length +.Op Fl t Ar type .Sm off .Oo .Op Cm \&+ .Li offset .Op Cm \&. .Op Cm Bb .Oc .Sm on -.Ar file +.Op Ar .Sh 解説 .Nm -ユーティリティは -.Xr hexdump 1 -に取って代わられています。 +ユーティリティは、ファイルが指定されていればそのファイル、 +指定されていなければ標準入力を読み込み、ユーザの指定した +フォーマットに従って表示するフィルタです。 .Pp -.Nm hexdump -ユーティリティは -.Nm -という名前で起動された場合、上記の -.Nm -のオプションと互換の動作をします。 +オプションは次の通りです: +.Bl -tag -width ".Fl I , L , l" +.It Fl A Ar base +入力アドレスの基数を指定します。 +.Ar base +は +.Cm d , +.Cm o , +.Cm x , +.Cm n +のいずれかであり、それぞれ 10 進数、8 進数、16 進数、アドレス無しを +意味します。 +.It Fl a +文字名を出力します。 +.Fl t Ar a +と同じです。 +.It Fl B , o +8 進数の short を出力します。 +.Fl t Ar o2 +と同じです。 +.It Fl b +8 進数の byte を出力します。 +.Fl t Ar o1 +と同じです。 +.It Fl c +C スタイルのエスケープ文字を出力します。 +.Fl t Ar c +と同じです。 +.It Fl D +符号無し 10 進数 int を出力します。 +.Fl t Ar u4 +と同じです。 +.It Fl e , F +倍精度浮動小数点数を出力します。 +.Fl t Ar fD +と同じです。 +.It Fl f +単精度浮動小数点数を出力します。 +.Fl t Ar fF +と同じです。 +.It Fl H , X +16 進数 int を出力します。 +.Fl t Ar x4 +と同じです。 +.It Fl h , x +16 進数 short を出力します。 +.Fl t Ar x2 +と同じです。 +.It Fl I , L , l +符号付き 10 進数 long を出力します。 +.Fl t Ar dL +と同じです。 +.It Fl i +符号付き 10 進数 int を出力します。 +.Fl t Ar dI +と同じです。 +.It Fl j Ar skip +結合された入力の +.Ar skip +バイトをスキップしてから、ダンプを開始します。 +数値の後には +.Cm b , +.Cm k , +.Cm m +のいずれかを付けることもでき、 +数値の単位をブロック数 (512 バイト)、キロバイト、メガバイトで指定します。 +.It Fl N Ar length +最大でも入力の +.Ar length +バイトだけダンプします。 +.It Fl O +8 進数 int を出力します。 +.Fl t Ar o4 +と同じです。 +.It Fl s +符号付き 10 進数 short を出力します。 +.Fl t Ar d2 +と同じです。 +.It Fl t Ar type +出力書式を指定します。 +.Ar type +は、次の型指定子を 1 個以上含む文字列です: +.Bl -tag -width indent +.It Cm a +文字名 +.Pq Tn ASCII +。 +制御文字は次の名前で表示されます: +.Bl -column "000 nul" "001 soh" "002 stx" "003 etx" "004 eot" "005 enq" +.It "000 nul 001 soh 002 stx 003 etx 004 eot 005 enq" +.It "006 ack 007 bel 008 bs 009 ht 00A nl 00B vt" +.It "00C ff 00D cr 00E so 00F si 010 dle 011 dc1" +.It "012 dc2 013 dc3 014 dc4 015 nak 016 syn 017 etb" +.It "018 can 019 em 01A sub 01B esc 01C fs 01D gs" +.It "01E rs 01F us 020 sp 0FF del" +.El +.It Cm c +デフォルトの文字集合での文字。 +表示できない文字は 3 桁の 8 進数文字コードで表現されます。 +ただし、次の文字は C エスケープで表現されます: .Pp +.Bl -tag -width carriage-return -compact +.It NUL +\e0 +.It 警告 +\ea +.It バックスペース +\eb +.It 改行 +\en +.It 復改 +\er +.It タブ +\et +.It 垂直タブ +\ev +.El +.It Xo +.Sm off +.Op Cm d | o | u | x +.Op Cm C | S | I | L | Ar n +.Sm on +.Xc +符号付き 10 進数 +.Pq Cm d +、8 進数 +.Pq Cm o +、符号無し 10 進数 +.Pq Cm u +、16 進数 +.Pq Cm x +。 +次のいずれかのオプションのサイズ指定子を後に付けることができます: +.Cm C +.Pq Vt char , +.Cm S +.Pq Vt short , +.Cm I +.Pq Vt int , +.Cm L +.Pq Vt long , +または 10 進数整数でのバイト数。 +.It Xo +.Sm off +.Cm f +.Op Cm F | D | L | Ar n +.Sm on +.Xc +浮動小数点数。 +次のいずれかのオプションのサイズ指定子を後に付けることができます: +.Cm F +.Pq Vt float , +.Cm D +.Pq Vt double , +.Cm L +.Pq Vt "long double" +。 +.El +.It Fl v +すべての入力を書き出しますが、重複値は単一の +.Ql * +で置き換えられます。 +.El +.Pp +出力書式を指定するオプションを複数指定可能です。 +この場合、出力には、書式毎に行が別になって表示されます。 +.Pp +出力書式が指定されない場合、 +.Fl t Ar oS +が仮定されます。 +.Sh 診断 +.Ex -std +.Sh 互換性 +文字列定数を取り出すための伝統的な .Fl s -オプション ( +オプションはサポートされていません。 +代りに .Xr strings 1 -を参照) および -.Fl P , -.Fl p , -.Fl w -オプションに対応する互換性は提供されていません。 -また offset 使用時の ``label'' に対応する互換性も提供されていません。 +を使用してください。 +.Sh 関連項目 +.Xr hexdump 1 , +.Xr strings 1 +.Sh 規格 +.Nm +ユーティリティは +.St -p1003.1-2001 +に適合しています。 .Sh 関連項目 .Xr hexdump 1 , .Xr strings 1 -.Sh バグ -たくさんあります。 -.Sh 歴史 +Sh 歴史 .Nm コマンドは .At v1 から登場しました。 diff --git a/ja_JP.eucJP/man/man1/opieinfo.1 b/ja_JP.eucJP/man/man1/opieinfo.1 index e91c6e69e5..dc88d03681 100644 --- a/ja_JP.eucJP/man/man1/opieinfo.1 +++ b/ja_JP.eucJP/man/man1/opieinfo.1 @@ -1,102 +1,102 @@ .\" opieinfo.1: Manual page for the opieinfo(1) program. .\" .\" %%% portions-copyright-cmetz-96 -.\" Portions of this software are Copyright 1996-1998 by Craig Metz, All Rights +.\" Portions of this software are Copyright 1996-1999 by Craig Metz, All Rights .\" Reserved. The Inner Net License Version 2 applies to these portions of .\" the software. .\" You should have received a copy of the license with this software. If .\" you didn't get a copy, you may request one from . .\" .\" Portions of this software are Copyright 1995 by Randall Atkinson and Dan .\" McDonald, All Rights Reserved. All Rights under this copyright are assigned .\" to the U.S. Naval Research Laboratory (NRL). The NRL Copyright Notice and .\" License Agreement applies to this software. .\" .\" History: .\" .\" Modified by cmetz for OPIE 2.2. Removed MJR DES documentation. .\" Modified at NRL for OPIE 2.0. .\" Written at Bellcore for the S/Key Version 1 software distribution .\" (keyinfo.1). .\" -.\" %FreeBSD: src/contrib/opie/opieinfo.1,v 1.3.6.1 2000/06/09 07:14:56 kris Exp % -.\" $FreeBSD: doc/ja_JP.eucJP/man/man1/opieinfo.1,v 1.5 2001/05/14 01:07:26 horikawa Exp $ +.\" %FreeBSD: src/contrib/opie/opieinfo.1,v 1.3.6.4 2002/07/15 14:48:43 des Exp % +.\" $FreeBSD$ .ll 6i .pl 10.5i .lt 6.0i .TH OPIEINFO 1 "January 10, 1995" .AT 3 .SH 名称 opieinfo \- 将来の OPIE チャレンジのために、シーケンス番号と種を取り出す .SH 書式 .B opieinfo [\-v] [\-h] [ .I user_name ] .SH 解説 .I opieinfo はオプションとしてユーザ名を取り、 現在のユーザもしくは指定されたユーザの現在のシーケンス番号と種を OPIE キーデータベースから取り出して表示します。 opiekey は Bellcore's S/Key Version 1 の .IR keyinfo (1) プログラムと互換ですが、リモートシステム名を指定できないところが違います。 .sp .I opieinfo を使用して将来の OPIE 応答リストを生成しておくことにより、 OPIE 計算機を持たずに出かけてもシステムにログインできるようになります。 そのためには、次のように実行します: .sp .B opiekey \-n 42 `opieinfo` .SH オプション .TP .B \-v バージョン番号とコンパイル時のオプションを表示し、終了します。 .TP .B \-h 短いヘルプメッセージを表示し、終了します。 .TP .B キー情報を表示したいユーザの名前です。 デフォルトは opieinfo を実行したユーザです。 .SH 使用例 .sp 0 wintermute$ opieinfo .sp 0 495 wi01309 .sp 0 wintermute$ .LP .SH 関連ファイル .TP /etc/opiekeys -- OPIE システム用のキー情報データベース .SH 関連項目 .BR opie (4), .BR opiekey (1), .BR opiepasswd (1), .BR su (1), .BR login (1), .BR ftpd (8), .BR opiekeys (5) .BR opieaccess (5) .SH 作者 Bellcore の S/Key は Bellcore の Phil Karn, Neil M. Haller, John S. Walden によって書かれました。 OPIE は NRL で Randall Atkinson, Dan McDonald, Craig Metz によって作成 されました。 S/Key は Bell Communications Research (Bellcore) のトレードマークです。 .SH 連絡先 OPIE は Bellcore の "S/Key Users" メーリングリストで議論されました。 参加するためには、電子メールを以下の所に送って下さい: .sp skey-users-request@thumper.bellcore.com diff --git a/ja_JP.eucJP/man/man1/opiekey.1 b/ja_JP.eucJP/man/man1/opiekey.1 index 9802038a52..818b4e8a4a 100644 --- a/ja_JP.eucJP/man/man1/opiekey.1 +++ b/ja_JP.eucJP/man/man1/opiekey.1 @@ -1,182 +1,182 @@ .\" opiekey.1: Manual page for the opiekey(1) program. .\" .\" %%% portions-copyright-cmetz-96 -.\" Portions of this software are Copyright 1996-1998 by Craig Metz, All Rights +.\" Portions of this software are Copyright 1996-1999 by Craig Metz, All Rights .\" Reserved. The Inner Net License Version 2 applies to these portions of .\" the software. .\" You should have received a copy of the license with this software. If .\" you didn't get a copy, you may request one from . .\" .\" Portions of this software are Copyright 1995 by Randall Atkinson and Dan .\" McDonald, All Rights Reserved. All Rights under this copyright are assigned .\" to the U.S. Naval Research Laboratory (NRL). The NRL Copyright Notice and .\" License Agreement applies to this software. .\" .\" History: .\" .\" Modified by cmetz for OPIE 2.3. Added -t documentation. Removed .\" opie-bugs pointer. Removed opie-md5 and opie-md4 names. Fixed .\" a bolding bug. Added -f flag. Added escapes on flags. Minor .\" editorial changes. Updated example. .\" Modified by cmetz for OPIE 2.2. Removed MJR DES documentation. .\" Re-worded retype documentation. Added opiegen reference. .\" Added -x documentation. .\" Modified at NRL for OPIE 2.0. .\" Written at Bellcore for the S/Key Version 1 software distribution .\" (key.1). .\" -.\" %FreeBSD: src/contrib/opie/opiekey.1,v 1.3.6.1 2000/06/09 07:14:56 kris Exp % -.\" $FreeBSD: doc/ja_JP.eucJP/man/man1/opiekey.1,v 1.5 2001/05/14 01:07:26 horikawa Exp $ +.\" %FreeBSD: src/contrib/opie/opiekey.1,v 1.3.6.3 2002/07/15 14:48:43 des Exp % +.\" $FreeBSD$ .ll 6i .pl 10.5i .lt 6.0i .TH OPIEKEY 1 "February 20, 1996" .AT 3 .SH 名称 opiekey, otp-md4, otp-md5 \- OTP チャレンジに対する応答を計算するプログラム .SH 書式 .B opiekey | .B otp-md4 | .B otp-md5 [\-v] [\-h] [\-f] [\-x] .sp 0 [\-t .I type ] [\-4|\-5] [\-a] [\-n .I count ] .I sequence_number seed .sp 0 .SH 解説 .I opiekey のコマンドライン引数は、表示すべき返答数をオプションとして、 (最大の) シーケンス番号と種と共に指定します。 このコマンドはユーザに秘密のパスフレーズの入力を促し、 OPIE 応答を 6 語で生成します。 ミスタイプによるエラーが発生することを防ぐために、 コンパイル時の設定により、 ユーザの秘密のパスフレーズを 2 度入力させることが可能です。 この場合、2 番目のパスワードエントリに end of line のみを入力することで、 再入力せずに済ませることが可能です。 .I opiekey は Bellcore S/Key Version 1 distribution やその変形の .IR key (1) プログラムの下位互換となっています。 .SH オプション .TP .B \-v バージョン番号とコンパイル時のオプションを表示し、終了します。 .TP .B \-h 短いヘルプメッセージを表示し、終了します。 .TP .B \-4, \-5 応答を生成するアルゴリズムとして、それぞれ MD4 または MD5 を選択します。 otp-md4 のデフォルトは MD4 であり、 opie-md5 のデフォルトは MD5 です。 opiekey のデフォルトはコンパイル時の設定に依存しますが、MD5 にすべきです。 MD4 は Bellcore S/Key Version 1 distribution 互換です。 .TP .B \-f 通常時には停止してしまう場合においても .I opiekey が実行継続するように強制します。 現在では、安全ではないと思われる端末からでも opiekey が「コンソール」モードで動作するよう強制する場合に使用します。 これはまた、ユーザの秘密のパスフレーズを攻撃者に公開してしまうことになります。 OPIE システム構築時のコンパイルオプション指定により、-f フラグ を指定できないようにすることが可能です。 .TP .B \-a チェックを行わず、任意の秘密のパスフレーズを入力できるようにします。 -現在は、任意とはいえ '\0' 文字と '\n' 文字は除外します。 +現在は、任意とはいえ '\\0' 文字と '\\n' 文字は除外します。 このオプションは、 パスワードをチェックしないキー計算機との下位互換性を保つために使用します。 .TP .B \-n 表示する一回利用パスワードの個数を指定します。 デフォルトは 1 です。 .TP .B \-x OTP を、6 語でなく、16 進数で表示します。 .TP .B \-t 指定したタイプの拡張応答を生成します。サポートされているタイプは以下です: .sp 1 word 6 語 .sp 0 hex 16 進数 .sp 0 init 16 進数で再初期化 .sp 0 init-word 6 語で再初期化 .sp 1 再初期化の返答は .I 常 に簡単な能動攻撃に対する防御となります。 .TP .SH 使用例 .sp 0 wintermute$ opiekey \-5 \-n 5 495 wi01309 .sp 0 Using MD5 algorithm to compute response. .sp 0 Reminder: Don't use opiekey from telnet or dial-in sessions. .sp 0 Enter secret pass phrase: .sp 0 491: HOST VET FOWL SEEK IOWA YAP .sp 0 492: JOB ARTS WERE FEAT TILE IBIS .sp 0 493: TRUE BRED JOEL USER HALT EBEN .sp 0 494: HOOD WED MOLT PAN FED RUBY .sp 0 495: SUB YAW BILE GLEE OWE NOR .sp 0 wintermute$ .LP .SH バグ ユーザがリモートログインしている時には .BR opiekey(1) はユーザがパスワードを公開してしまうことを許してしまい、 OPIE の目的をだいなしにしてしまいます。 これは xterm においては特に問題となります。 .BR opiekey(1) は簡単なチェックを行うことで、ユーザがこの誤りを犯す危険を軽減します。 よりよいチェック機構が必要です。 .LP .SH 関連項目 .BR ftpd (8), .BR login (1), .BR opie (4), .BR opiepasswd (1), .BR opieinfo (1), .BR opiekeys (5), .BR opieaccess (5), .BR opiegen (1) .BR su (1), .SH 作者 Bellcore の S/Key は Bellcore の Phil Karn, Neil M. Haller, John S. Walden によって書かれました。 OPIE は NRL で Randall Atkinson, Dan McDonald, Craig Metz によって作成 されました。 S/Key は Bell Communications Research (Bellcore) のトレードマークです。 .SH 連絡先 OPIE は Bellcore の "S/Key Users" メーリングリストで議論されました。 参加するためには、電子メールを以下の所に送って下さい: .sp skey-users-request@thumper.bellcore.com diff --git a/ja_JP.eucJP/man/man1/opiepasswd.1 b/ja_JP.eucJP/man/man1/opiepasswd.1 index 2a3d5a2fef..c388b425e9 100644 --- a/ja_JP.eucJP/man/man1/opiepasswd.1 +++ b/ja_JP.eucJP/man/man1/opiepasswd.1 @@ -1,181 +1,182 @@ .\" opiepasswd.1: Manual page for the opiepasswd(1) program. .\" .\" %%% portions-copyright-cmetz-96 -.\" Portions of this software are Copyright 1996-1998 by Craig Metz, All Rights +.\" Portions of this software are Copyright 1996-1999 by Craig Metz, All Rights .\" Reserved. The Inner Net License Version 2 applies to these portions of .\" the software. .\" You should have received a copy of the license with this software. If .\" you didn't get a copy, you may request one from . .\" .\" Portions of this software are Copyright 1995 by Randall Atkinson and Dan .\" McDonald, All Rights Reserved. All Rights under this copyright are assigned .\" to the U.S. Naval Research Laboratory (NRL). The NRL Copyright Notice and .\" License Agreement applies to this software. .\" .\" History: .\" +.\" Modified by cmetz for OPIE 2.4. Fixed spelling bug. .\" Modified by cmetz for OPIE 2.3. Added -f flag documentation. .\" Updated console example. .\" Modified by cmetz for OPIE 2.2. Removed MJR DES documentation. .\" Modified at NRL for OPIE 2.0. .\" Written at Bellcore for the S/Key Version 1 software distribution .\" (keyinit.1). .\" -.\" %FreeBSD: src/contrib/opie/opiepasswd.1,v 1.3.6.1 2000/06/09 07:14:57 kris Exp % -.\" $FreeBSD: doc/ja_JP.eucJP/man/man1/opiepasswd.1,v 1.4 2001/05/14 01:07:26 horikawa Exp $ +.\" %FreeBSD: src/contrib/opie/opiepasswd.1,v 1.3.6.3 2002/07/15 14:48:43 des Exp % +.\" $FreeBSD$ .ll 6i .pl 10.5i .lt 6.0i .TH OPIEPASSWD 1 "January 10, 1995" .AT 3 .SH 名称 opiepasswd \- OPIE 認証システムのユーザパスワードを変更または設定する .SH 書式 .B opiepasswd [\-v] [\-h] [\-c|\-d] [\-f] .sp 0 [\-n -.I inital_sequence_number +.I initial_sequence_number ] [\-s .I seed ] [ .I user_name ] .SH 解説 .I opiepasswd ユーザが OPIE を使用してログインできるように、システム情報を初期化します。 .I opiepasswd は Bellcore S/Key Version 1 distribution の keyinit(1) の下位互換 となっています。 .SH オプション .TP .TP .B \-v バージョン番号とコンパイル時のオプションを表示し、終了します。 .TP .B \-h 短いヘルプメッセージを表示し、終了します。 .TP .B \-c コンソールモード、 すなわちユーザがシステムへの安全なアクセスを行っていると指定します。 コンソールモードでは、あなたは OPIE 計算機を使用せずに、直接パスワードを入力するように促されます。 システムへの安全なアクセスを行っていない場合 (つまりシステムコンソールにいる場合以外) にこのモードを使用すると、 あなたのパスワードを攻撃者へ提供することになってしまいます。 .TP .B \-d 指定したアカウントの OTP ログインを無効にします。 .TP .B \-f 通常時には停止してしまう場合においても .I opiepasswd が実行継続するように強制します。 現在では、安全ではないと思われる端末からでも opiepasswd が「コンソール」モードで動作するよう強制する場合に使用します。 これはまた、ユーザの秘密のパスフレーズを攻撃者に公開してしまうことになります。 OPIE システム構築時のコンパイルオプション指定により、-f フラグ を指定できないようにすることが可能です。 .TP .B \-n 初期シーケンス番号を手動で指定します。デフォルトは 499 です。 .TP .B \-s ランダムではない種を指定します。デフォルトでは、 ホスト名の最初の 2 文字と 5 桁の擬似乱数を使用して、 「ランダム」な種を生成します。 .SH 使用例 コンソールから .I opiepasswd を使用します: .LP .sp 0 wintermute$ opiepasswd \-c .sp 0 Updating kebe: .sp 0 Reminder \- Only use this method from the console; NEVER from remote. If you .sp 0 are using telnet, xterm, or a dial\-in, type ^C now or exit with no password. .sp 0 Then run opiepasswd without the \-c parameter. .sp 0 Using MD5 to compute responses. .sp 0 Enter old secret pass phrase: .sp 0 Enter new secret pass phrase: .sp 0 Again new secret pass phrase: .sp 0 .sp 0 ID kebe OPIE key is 499 be93564 .sp 0 CITE JAN GORY BELA GET ABED .sp 0 wintermute$ .LP .I opiepasswd を遠隔地から使用します: .LP .sp 0 wintermute$ opiepasswd .sp 0 Updating kebe: .sp 0 Reminder: You need the response from your OPIE calculator. .sp 0 Old secret password: .sp 0 otp-md5 482 wi93563 .sp 0 Response: FIRM BERN THEE DUCK MANN AWAY .sp 0 New secret password: .sp 0 otp-md5 499 wi93564 .sp 0 Response: SKY FAN BUG HUFF GUS BEAT .sp 0 .sp 0 ID kebe OPIE key is 499 wi93564 .sp 0 SKY FAN BUG HUFF GUS BEAT .sp 0 wintermute$ .LP .SH 関連ファイル .TP /etc/opiekeys -- OPIE システム用のキー情報データベース .SH 関連項目 .BR ftpd (8), .BR login (1), .BR passwd (1), .BR opie (4), .BR opiekey (1), .BR opieinfo (1), .BR su (1), .BR opiekeys (5), .BR opieaccess (5) .SH 作者 Bellcore の S/Key は Bellcore の Phil Karn, Neil M. Haller, John S. Walden によって書かれました。 OPIE は NRL で Randall Atkinson, Dan McDonald, Craig Metz によって作成 されました。 S/Key は Bell Communications Research (Bellcore) のトレードマークです。 .SH 連絡先 OPIE は Bellcore の "S/Key Users" メーリングリストで議論されました。 参加するためには、電子メールを以下の所に送って下さい: .sp skey-users-request@thumper.bellcore.com diff --git a/ja_JP.eucJP/man/man1/paste.1 b/ja_JP.eucJP/man/man1/paste.1 index ae18d23cf3..e29fbeb380 100644 --- a/ja_JP.eucJP/man/man1/paste.1 +++ b/ja_JP.eucJP/man/man1/paste.1 @@ -1,111 +1,140 @@ .\" Copyright (c) 1989, 1990, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" This code is derived from software contributed to Berkeley by .\" Adam S. Moskowitz and 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. .\" .\" @(#)paste.1 8.1 (Berkeley) 6/6/93 -.\" %FreeBSD: src/usr.bin/paste/paste.1,v 1.4.2.5 2001/09/27 17:59:10 wollman Exp % +.\" %FreeBSD: src/usr.bin/paste/paste.1,v 1.4.2.6 2002/07/14 15:16:53 tjr Exp % .\" $FreeBSD$ .\" .Dd June 6, 1993 .Dt PASTE 1 .Os .Sh 名称 .Nm paste .Nd ファイルの対応する行または引き続く行を併合する .Sh 書式 .Nm .Op Fl s .Op Fl d Ar list .Ar .Sh 解説 .Nm ユーティリティは、与えられた入力ファイルの対応する行の結合を、 最後のファイル以外の改行文字を一つのタブ文字に置き換えながら行い、 その結果の行を標準出力に書き出します。 入力ファイルの一つが EOF (ファイルの終り) に達した場合、 他のファイルの終了までそのファイルは空行が有るかのように 扱われます。 .Pp 以下のようなオプションがあります。 .Bl -tag -width Fl .It Fl d Ar list デフォルトのタブの代わりに改行文字を置換するための文字として使います。 .Ar list 中の文字は巡回するように使われます。つまり、 .Ar list の文字が終った時には最初の文字が再び使われます。 これは、(デフォルトの操作では) 最後の入力ファイルからの行まで、もしくは ( .Fl s オプション使用時には) 各ファイルの最後の行が表示されるまで続きます。 最後の行を表示したところで、 .Nm は、選択された文字の最初から操作を行います。 .Pp 以下の特殊文字を記述可能です。 .Pp .Bl -tag -width flag -compact .It Li \en 改行文字 .It Li \et タブ文字 .It Li \e\e バックスラッシュ文字 .It Li \e0 空文字列 (ヌル文字ではありません) .El .Pp 上記以外の文字は、バックスラッシュ付きの場合その文字自身を表現します。 .It Fl s 別個の入力ファイルの全行の結合を、コマンドラインに並んだ順に行います。 入力ファイル中の、最後の行以外の全ての行の改行文字は、 .Fl d オプションが 指定されていない場合は、タブ文字で置き換えられます。 .El .Pp .Ql Fl が、1 つ以上の入力ファイルに指定された場合、標準入力が使われます。 標準入力は、一度に一行読み込まれ、巡回的に .Ql Fl の各実体として使われます。 +.Sh 使用例 +カレントディレクトリのファイルを 3 コラムで表示します: +.Pp +.Dl "ls | paste - - -" +.Pp +ファイル中の行の組を単一行に組み合わせます。 +.Pp +.Dl "paste -s -d '\et\en' myfile" +.Pp +ファイル中の行に番号を付けます。 +.Xr nl 1 +と似ています: +.Pp +.Dl "sed = myfile | paste -s -d '\et\en' - -" +.Pp +bin という名前のディレクトリをコロンで区切ってリストします。 +.Ev PATH +環境変数で使用するのに適しています: +.Pp +.Dl "find / -name bin -type d | paste -s -d : -" .Sh 診断 .Ex -std .Sh 関連項目 .Xr cut 1 , .Xr lam 1 .Sh 規格 .Nm ユーティリティは、 .St -p1003.2 互換であることが期待されています。 +.Sh 歴史 +.Nm +コマンドは +.At 32v +から登場しました。 +.Sh バグ +マルチバイト文字のデリミタは +.Fl d +オプションで指定できません。 diff --git a/ja_JP.eucJP/man/man1/pkg_create.1 b/ja_JP.eucJP/man/man1/pkg_create.1 index b41c106f63..1224cd2301 100644 --- a/ja_JP.eucJP/man/man1/pkg_create.1 +++ b/ja_JP.eucJP/man/man1/pkg_create.1 @@ -1,552 +1,565 @@ .\" .\" FreeBSD install - a package for the installation and maintainance .\" of non-core utilities. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" .\" Jordan K. Hubbard .\" .\" .\" @(#)pkg_create.1 -.\" %FreeBSD: src/usr.sbin/pkg_install/create/pkg_create.1,v 1.35.2.13 2002/05/29 18:31:11 obrien Exp % +.\" %FreeBSD: src/usr.sbin/pkg_install/create/pkg_create.1,v 1.35.2.14 2002/08/02 11:09:05 sobomax Exp % .\" .\" hacked up by John Kohl for NetBSD--fixed a few bugs, extended keywords, .\" added dependency tracking, etc. .\" .\" [jkh] Took John's changes back and made some additional extensions for .\" better integration with FreeBSD's new ports collection. .\" .\" $FreeBSD$ .Dd April 21, 1995 .Dt PKG_CREATE 1 .Os .Sh 名称 .Nm pkg_create .Nd ソフトウェア配布 package を作成するプログラム .Sh 書式 .Nm .Op Fl YNOhjvyz .Op Fl P Ar pkgs .Op Fl p Ar prefix .Op Fl f Ar contents .Op Fl i Ar iscript .Op Fl I Ar piscript .Op Fl k Ar dscript .Op Fl K Ar pdscript .Op Fl r Ar rscript .Op Fl s Ar srcdir .Op Fl t Ar template .Op Fl X Ar excludefile .Op Fl D Ar displayfile .Op Fl m Ar mtreefile .Op Fl o Ar originpath .Fl c Ar comment .Fl d Ar description .Fl f Ar packlist .Ar pkg-filename .Nm .Op Fl YNhvy .Fl b Ar pkg-name .Op Ar pkg-filename .Sh 解説 この .Nm コマンドは、package 展開/情報プログラムに渡される package (訳注: FreeBSD の package system におけるパッケージを指す場合にこう表記します) を作成します。 package 作成のために入力する説明とコマンドライン引数 は本来人間が生成することを意図していませんが、 そうすることも簡単にできます。 自力でどうにかすることも可能ですが、作成にはフロントエンドツールを 用いた方がいいでしょう。 とはいうものの、入力書式の概略はこの文書に含まれています。 .Sh オプション 以下のコマンドラインオプションが提供されています: .Bl -tag -width indent .It Fl f Ar packinglist ファイル .Ar packinglist から、もしくは .Ar packinglist が .Cm - (ダッシュ)であれば .Cm stdin から、package 用の .Dq packing list を取得します。 .It Fl c Xo .Oo Fl Oc Ns Ar desc .Xc ファイル .Ar desc から、もしくは先頭が .Cm - で始まっていれば引数自身から、package の .Dq 一行説明 を取得します。 この文字列は、package が提供するもののバージョンを知る 手がかりとなるべきです。 .It Fl d Xo .Oo Fl Oc Ns Ar desc .Xc ファイル .Ar desc から、もしくは先頭が .Cm - で始まっていれば引数自身から、package の長い説明を取得します。 .It Fl Y 質問に対してのデフォルトの解答を `Yes' とします。 .It Fl N 質問に対してのデフォルトの解答を `No' とします。 .It Fl O `packing list Only' モードに移行します。 これは .Fx .Em "Ports Collection" のための特別な修正であり、port がインストールされる時の `fake pkg_add' を行うために用いられます。 このような場合には、調整された最終的な packing list が どのようなものになるかを知る必要があるのです。 .It Fl v 饒舌な出力に切り替えます。 .It Fl h tar がシンボリックリンクをたどるようにします。 この結果、リンク自身ではなくリンク先のファイルが出力されます。 .It Fl i Ar iscript package のインストール前手続きとして .Ar iscript を用います。 これは実行可能なプログラム (もしくはシェルスクリプト) なら なんでも構いません。 これは package がインストールされる時に自動的に起動されます。 その際、package 名が第 1 引数として渡されます。 .Pp .Sy 注: .Fl I オプションが指定されない場合、 本スクリプトは当該 package の pre-install および post-install の両方のスクリプトとして動作します。 package 名とともにキーワード .Ar PRE-INSTALL および .Ar POST-INSTALL をそれぞれ渡すことにより、機能を切り替えることになります。 .It Fl I Ar piscript package のインストール後手続きとして .Ar piscript を用います。 これは実行可能なプログラム (もしくはシェルスクリプト) なら なんでも構いません。 これは package がインストールされる時に自動的に起動されます。 その際、package 名が第 1 引数として渡されます。 .It Fl P Ar pkgs 初期の package 依存リストとして .Ar pkgs を用います。 これは空白で区切られた package の名前となります。 -また、packing list (後述の「PACKING LIST 詳細」セクションを参照) +また、packing list (後述の +.Sx "PACKING LIST 詳細" +セクションを参照) 内の複数の .Cm @pkgdep ディレクティブを指定する手っ取り早い方法でもあります。 +.Ar pkgs +リストの各引数は +.Ar pkgname Ns Op : Ns Ar pkgorigin +という書式です。 +省略可能な +.Ar pkgorigin +要素は、リストからの各依存の起源を表し、 +.Ar pkgname +と共に +.Cm @comment +ディレクティブを使用して packing list 中に記録されます。 .It Fl p Ar prefix package のファイルを選択する際に .Dq 基準 となる初期ディレクトリとして .Ar prefix を用います。 .It Fl k Ar dscript package のアンインストール手続きとして .Ar dscript を用います。 これは実行可能なプログラム (もしくはシェルスクリプト) なら なんでも構いません。 これは package がアンインストールされる時に自動的に起動されます。 その際、package 名が第 1 引数として渡されます。 .Pp .Sy 注: .Fl K オプションが指定されない場合、 本スクリプトは当該 package の de-install および post-deinstall の両方のスクリプトとして動作します。 package 名とともにキーワード .Ar DEINSTALL および .Ar POST-DEINSTALL をそれぞれ渡すことにより、機能を切り替えることになります。 .It Fl K Ar pdscript package のアンインストール後手続きとして .Ar pdscript を用います。 これは実行可能なプログラム (もしくはシェルスクリプト) なら なんでも構いません。 これは package がアンインストールされる時に自動的に起動されます。 その際、package 名が第 1 引数として渡されます。 .It Fl r Ar rscript package の .Dq requirements 手続きとして .Ar rscript を用います。 これは実行可能なプログラム (もしくはシェルスクリプト) なら なんでも構いません。 これはインストール時、アンインストール時に自動的に起動され、 インストール、アンインストールを継続するべきかどうかを決定するのに 用いられます。 インストールとアンインストールを区別するために、キーワード .Ar INSTALL と .Ar DEINSTALL がそれぞれ、package 名と共に渡されます。 .It Fl s Ar srcdir package 作成中に .Ar srcdir は、 .Cm @cwd の値に優先します。 .It Fl t Ar template .Xr mktemp 3 への入力として .Ar template を用います。 これはデフォルトでは .Pa /tmp/instmp.XXXXXX という文字列ですが、 .Pa /tmp ディレクトリの容量が制限されているような状況では 変更する必要があるかもしれません。 .Xr mktemp 3 が一意の ID を用いるために必要な `X' の文字をいくつか残しておく ことを忘れないでください。 .It Fl X Ar excludefile 最終的に package を作成する際に、 .Ar excludefile を .Cm tar に .Fl exclude-from 引数として渡します。 このオプションを使うにあたっての詳しい情報は、 .Cm tar のマニュアルページ (もしくは .Fl -help 引数を付けて .Cm tar を実行) を参照してください。 .It Fl D Ar displayfile package をインストールした後にファイルを (連結して標準出力へ) 表示します。 「ほとんど free なソフトウェア」などにおいて、 法的な通知のようなものなどに便利でしょう。 .It Fl m Ar mtreefile package がインストールされる前に、mtreefile を入力として .Xr mtree 8 を実行します。mtree は .Cm mtree .Fl u .Fl f .Ar mtreefile .Fl d .Fl e .Fl p .Pa prefix として起動されます (ただし .Pa prefix は .Cm @cwd ディレクティブにより名付けられた最初のディレクトリの名前)。 .It Fl o Ar originpath .Ar originpath を、 .Em "FreeBSD Ports Collection" 中で package が作成された場所として記録します。 この書式は、 .Pa MASTERCATEGORY/PORTDIR であるべきです。 .It Fl j package の tarball を圧縮するために、 .Xr bzip2 1 ユーティリティを .Xr gzip 1 の代りに使用します。 最終的なアーカイブの書式が、認識可能なサフィックスによって .Ar pkg-filename で明示的に指定されている場合、本オプションは無効であることに注意してください。 現在 .Nm は、次のサフィックスを認識します: .Pa .tgz , .tar , .tbz , .Pa .tbz2 。 .It Fl y 互換性のための、 .Fl j の同義語です。 .It Fl z package の tarball を圧縮するために、 .Xr gzip 1 ユーティリティを使用します。 .It Fl b Ar pkg-name .Ar pkg-name という名前でローカルにインストールされた package から、 package ファイルを作成します。 .Ar pkg-filename が指定されない場合、最終的なアーカイブはカレントディレクトリに作成され、 .Ar pkg-name に対して伸長用の適切なサフィックスが付いた名前となります。 .El .Sh PACKING LIST 詳細 .Dq packing list の書式 ( .Fl f を参照) は単純で、package に含めるファイル名を一行につきひとつずつ 並べたものにすぎません。 どこにインストールされるかわからない package に対して絶対パスを 用いるのは一般的に悪い方法なので、 どこにインストールされることを想定しているのか、 そしてどんな ownership と mode を伴ってインストールされるべきなのか (こちらはオプション) を指定する方法が用意されています。 これは packing list 内に一連の特殊コマンドを 埋め込むことで実現されています。以下に簡単に示します: .Bl -tag -width indent -compact .It Cm @cwd Ar directory 内部のディレクトリポインタが .Ar directory を指すようにします。以降のファイル名はこのディレクトリへの相対パス であるとみなされます。 注: .Cm @cd はこのコマンドの別名です。 .It Cm @srcdir Ar directory 「作成時のみ」の内部ディレクトリポインタを .Ar directory に設定します。 package 作成時に .Cm @cwd に優先すると言えますが、展開時にはこれはあてはまりません。 .It Cm @exec Ar command 展開処理の一環として .Ar command を実行します。 .Ar command が以下の文字列を含んでいた場合、その場で置換されます。 以下の例では .Cm @cwd が .Pa /usr/local と設定されていて、最後に展開されたファイルが .Pa bin/emacs だったとしています。 .Bl -tag -width indent -compact .It Cm "%F" 最後に展開されたファイル名に置換されます。この例では .Pa bin/emacs となります。 .It Cm "\&%D" .Cm @cwd で設定されたカレントディレクトリプレフィックスに置換されます。 この例では .Pa /usr/local になります。 .It Cm "\&%B" 完全な (フルパスの) ファイル名の .Dq basename へ置換されます。 これはカレントディレクトリプレフィックスに最後の filespec を 加え、末尾のファイル名部分を除いたものです。 この例では、 .Pa /usr/local/bin になります。 .It Cm "%f" 完全な (フルパスを含む) ファイル名の .Dq filename 部分へ置換されます。 .Cm \&%B と対応していて、この例では .Pa emacs となります。 .El .It Cm @unexec Ar command アンインストール処理の一環として .Ar command を実行します。特別な .Cm % 文字列の置換は .Cm @exec と同様です。 このコマンドは .Cm @exec のように package を加える際に実行されるのではなく、package が 削除されるときに実行されます。 これは、package を加えるときに作られたリンクや他の 付随ファイル (package の内容一覧に記されているファイルは自動的に 削除されるので除く) を削除するのに便利です。 アンインストールスクリプトよりも .Cm @unexec を用いる方が有利な点は、どこにインストールされているかわからない ( .Fl p を参照) ファイルの場所を得るのに .Dq 特殊文字列置換 を用いることが 可能なことです。 .It Cm @mode Ar mode この後で展開されるすべてのファイルのデフォルトの許可属性を .Ar mode に設定します。 書式は .Cm chmod コマンドで用いられているものと同じです (というよりも、そのまま 渡されています)。 引数無しで用いると、デフォルトの (展開) 許可属性に戻します。 .It Cm @option Ar option 内部用 package オプションを設定します。 現在二つのオプションのみがサポートされています。 ひとつは .Ar extract-in-place で、これは pkg_add コマンドに package の tarball を staging area に展開せずに、目的の階層に直接展開するよう指示します (これは主に配布物や他の特殊な package などに用いられます)。 もうひとつは .Ar preserve で、存在するファイルを別の所に保存しておくよう pkg_add に指示します (これらは pkg_delete の時に復活しますが、自分の責任で行ってください)。 .It Cm @owner Ar user この後で展開されるすべてのファイルのデフォルトの ownership を .Ar user に設定します。 引数無しで用いると、デフォルトの (展開) ownership に戻します。 .It Cm @group Ar group この後で展開されるすべてのファイルのデフォルトの group ownership を .Ar group に設定します。 引数無しで用いると、デフォルトの (展開) group ownership に戻します。 .It Cm @comment Ar string packing list 内にコメントを埋め込みます。 誰かが後で間違えてしまうかもしれない特に厄介な部分を説明しようとする 場合に便利です。 .It Cm @ignore 特殊な目的に使われるファイルなどのため、展開時に次のファイルを 無視する (どこにもコピーしない) ように、内部で用いられます。 .It Cm @ignore_inst .Cm @ignore と同様ですが、次のファイルを無視するのは一評価サイクルだけ 遅らせられます。 このおかげでこのディレクティブを .Ar packinglist ファイル内で用いることが可能になるので、インストーラが 無視するような、インストールスクリプトなどのための特殊な データファイルを、配布物内に入れることができるようになります。 .It Cm @name Ar name package の名前を設定します。 これは必須項目であり、通常先頭に置かれます。 この名前は package が提供するファイルの名前とは異なる可能性があり、 後でアンインストールする時のために package の記録を残しておくのに使われます。 名前が指定されなかった場合には、 .Nm は package 名から推定し、自動的に設定することに注意してください。 .It Cm @dirrm Ar name ディレクトリ .Pa name がアンインストール時に削除されるよう宣言します。デフォルトでは、 package のインストール時に作成されたディレクトリは アンインストール時には削除されませんが、このディレクティブは明示的な ディレクトリ削除方法を提供します。 このディレクティブは package リストの最後で用いるようにしてください。 一つ以上の .Cm @dirrm ディレクティブが指定された場合、指定された順番に削除されます。 .Pa name は空きディレクトリでなければ削除されません。 .It Cm @mtree Ar name .Pa name を、インストール時に用いられる .Xr mtree 8 への入力ファイルとして宣言します (上述の .Fl m を参照)。最初にひとつだけ .Cm @mtree ディレクティブを指定することが推奨されます。 .It Cm @display Ar name .Pa name を、インストール時に表示されるファイルとして宣言します (上述の .Fl D を参照)。 .It Cm @pkgdep Ar pkgname package .Ar pkgname に依存することを宣言します。 package .Ar pkgname はこの package がインストールされる前にインストールされていなければ ならず、またこの package は package .Ar pkgname がアンインストールされる前にアンインストールされなければなりません。 package が複数の package に依存する場合には、複数の .Cm @pkgdep ディレクティブが用いられます。 .El .Sh 環境変数 環境変数 .Ev PKG_TMPDIR で、 .Nm が作業用ファイルの生成を試みるディレクトリの名前を指定します。 .Ev PKG_TMPDIR が設定されていない場合、 .Ev TMPDIR で指定されたディレクトリが使用されます。 .Ev PKG_TMPDIR 、 .Ev TMPDIR ともに設定されていない場合は、組み込みのデフォルトディレクトリが 使用されます。 .Sh 関連ファイル .Bl -tag -width /usr/tmp -compact .It Pa /var/tmp 環境変数 .Ev PKG_TMPDIR 、 .Ev TMPDIR がともに設定されていない場合の作業用ディレクトリ。 .It Pa /tmp .Pa /var/tmp が存在しない場合の、その次の選択肢。 .It Pa /usr/tmp .Pa /tmp が適切でない場合の、最後の選択肢。 .El .Sh 関連項目 .Xr pkg_add 1 , .Xr pkg_delete 1 , .Xr pkg_info 1 , .Xr pkg_update 1 , .Xr pkg_version 1 , .Xr sysconf 3 .Sh 歴史 .Nm コマンドは .Fx で最初に登場しました。 .Sh 作者 .An Jordan Hubbard .Sh 協力者 .An John Kohl Aq jtk@rational.com .Sh バグ package が展開される際にハードリンクを保存しておくために、 配布物のファイル間でのハードリンクは .Cm @cwd ディレクティブで括られていなければなりません。 その上、実行時の引数の長さの制限 (これは .Fn sysconf _SC_ARG_MAX により返される値に依存します) のために、それらのハードリンクは単一の .Cm tar 実行内で行われなければなりません。 .Pp バグは他にもあるはずです。 diff --git a/ja_JP.eucJP/man/man1/pkg_info.1 b/ja_JP.eucJP/man/man1/pkg_info.1 index a410b36289..73d93c8e40 100644 --- a/ja_JP.eucJP/man/man1/pkg_info.1 +++ b/ja_JP.eucJP/man/man1/pkg_info.1 @@ -1,225 +1,234 @@ .\" .\" FreeBSD install - a package for the installation and maintenance .\" of non-core utilities. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" .\" Jordan K. Hubbard .\" .\" .\" @(#)pkg_info.1 -.\" %FreeBSD: src/usr.sbin/pkg_install/info/pkg_info.1,v 1.24.2.12 2001/10/24 10:06:56 sobomax Exp % +.\" %FreeBSD: src/usr.sbin/pkg_install/info/pkg_info.1,v 1.24.2.13 2002/08/02 11:09:05 sobomax Exp % .\" .\" $FreeBSD$ .\" .Dd November 25, 1994 .Dt pkg_info 1 .Os .Sh 名称 .Nm pkg_info .Nd ソフトウェア配布 package の情報を表示するプログラム .Sh 書式 .Nm .Op Fl cdDfgGiIkLmopqrRsvVx .Op Fl e Ar package .Op Fl l Ar prefix .Op Fl t Ar template -.Op Fl W Ar filename .Op Ar pkg-name ... .Nm +.Op Fl q +.Fl W Ar filename +.Nm +.Op Fl q +.Fl O Ar origin +.Nm .Fl a .Op Ar flags .Sh 解説 .Nm コマンドは、 .Xr pkg_create 1 によりファイルにパックされた package (訳注: FreeBSD の package system におけるパッケージを指す場合にこう表記します) か、 .Xr pkg_add 1 によりすでにシステムにインストールされた package に関し、 情報を表示するために用いられます。 .Sh オプション 以下のコマンドラインオプションが提供されています。 .Bl -tag -width indent .It Ar pkg-name ... 指定された package が表示されます。指定されるのはイントール済みの package の名前か、package 配布ファイルへのパス、FTP 可能な package への URL のいずれかになります。 .It Fl a 現在インストールされているすべての package を表示します。 .It Fl v 饒舌な出力に切り替えます。 .It Fl p 各 package のインストール用 prefix を表示します。 .It Fl q レポートヘッダのような情報を出力する際に余分な出力を .Dq 省略 し、 生の情報のみ出力します (基本的に人が読みやすいものではありません)。 .It Fl c 各 package の (一行) コメントフィールドを表示します。 .It Fl d 各 package の長い説明フィールドを表示します。 .It Fl D 各 package のインストールメッセージファイルを表示します。 .It Fl f 各 package の packing list instructions を表示します。 .It Fl g 記録されたチェックサムに合致しないファイルを表示します。 .It Fl i もしあれば、各 package のインストールスクリプトを表示します。 .It Fl I 各 package のインデックス行を表示します。このオプションは他の package 書式整形オプションの全てに優先します。 .It Fl k もしあれば、各 package のアンインストールスクリプト を表示します。 .It Fl r もしあれば、各 package の requirements スクリプトを表示します。 .It Fl R (指定した) 各 package を必要とする package のうちで、インストールされて いるもののリストを表示します。 .It Fl m もしあれば、各 package の mtree ファイルを表示します。 .It Fl L 各 package に含まれるファイルを表示します。 これは packing list をただ見るのとは異なり、 生成されるすべてのフルパス名が表示されます。 .It Fl s 各 package 中のインストールされたファイルの総容量を表示します。 .It Fl o package 生成時に記録された .Dq 起源 パスを表示します。 このパスは、 生成された package から、 .Fx .Em "Ports Collection" における元の port の場所を与えることを意図しています。 .It Fl G 表示する package 選択時に、 .Ar pkg-name 中のシェルグロブパターン展開しません (デフォルトでは .Nm は、 .Ar pkg-name 中のシェルグロブパターンを展開します)。 .It Fl W 指定した .Ar filename 引数に対して、これが属する package を表示します。 ファイルが現在のディレクトリに無い場合で、絶対パス指定でない場合、 .Xr which 1 を使用して .Ev PATH が検索されます +.It Fl O +指定された +.Ar origin +引数に対し、これを起源として持つ全パッケージを表示します。 .It Fl x .Ar pkg-name を正規表現として扱い、 名前が正規表現に適合する package の情報のみを表示します。 複数の正規表現を指定可能です。 この場合、リスト少なくともひとつの正規表現に適合する package を .Nm は表示します。 .It Fl e Ar pkg-name .Ar pkg-name で示される package が現在インストールされている場合には 0 を 返し、そうでなければ 1 を返します。 このオプションにより、スクリプトから (おそらく必要不可欠な) 他の package の存在を簡単に確認することが可能になります。 .It Fl l Ar str 各 information category header ( .Fl q を参照) の前に .Ar str を付加します。 これは本来、package に関する多くの information fields を一度に 得たいが、そのごっちゃになった出力で混乱したくない、という フロントエンドプログラムのためにあります。 このオプションで各 field の先頭に特別な文字列を付け加えることが できます。 .It Fl t Ar template .Dq 作業場所 を作成する際に、 .Xr mktemp 3 への入力として .Ar template を用います。 これはデフォルトでは .Pa /tmp/instmp.XXXXXX という文字列ですが、 .Pa /tmp ディレクトリの容量が制限されているような状況では 変更する必要があるかもしれません。 .Xr mktemp 3 が一意の ID を用いるために必要な `X' の文字をいくつか残しておく ことを忘れないでください。 .Bd -ragged -offset indent -compact 注: .Nm は各 package からとても小さな情報しか 抽出しないので、実際にはこのオプションは必要ありません。 溢れさせるには非常に小さな .Pa /tmp でなければならないでしょう。 .Ed .It Fl V packing list の書式のバージョン番号を表示します。 .El .Sh 技術詳細 package の情報は、コマンドラインから指定された package のファイル名か、 .Pa /var/db/pkg/ Ns Aq Ar pkg-name にあるすでにインストールされた package の情報から抽出されます。 .Sh 環境変数 .Ev PKG_TMPDIR で、 .Nm が作業用ファイルを生成するディレクトリを指定します。 この変数が設定されていない場合、 .Ev TMPDIR が用いられます。両方とも設定されていない場合、 組み込みのデフォルトディレクトリが用いられます。 .Pp .Ev PKG_DBDIR で、 インストールされた package についての代替的なデータベースの位置を指定します。 .Sh 関連ファイル .Bl -tag -width /var/db/pkg -compact .It Pa /var/tmp 環境変数 .Ev PKG_TMPDIR , .Ev TMPDIR がともに設定されていない場合、もしくはこれらのディレクトリの空き領域が 十分でない場合に用いられます。 .It Pa /tmp .Pa /var/tmp が存在しないか、十分な空き領域を持たない場合に、次の選択肢として 用いられます。 .It Pa /usr/tmp .Pa /tmp が適切でない場合の最後の選択肢です。 .It Pa /var/db/pkg インストールされた package についてのデータベースのデフォルトの 位置です。 .El .Sh 関連項目 .Xr pkg_add 1 , .Xr pkg_create 1 , .Xr pkg_delete 1 , .Xr pkg_version 1 , .Xr mktemp 3 , .Xr mtree 8 .Sh 作者 .An Jordan Hubbard .Sh 協力者 .An John Kohl Aq jtk@rational.com .Sh バグ まだあるはずです。 diff --git a/ja_JP.eucJP/man/man1/pr.1 b/ja_JP.eucJP/man/man1/pr.1 index 4f80060d93..1abb23d4b1 100644 --- a/ja_JP.eucJP/man/man1/pr.1 +++ b/ja_JP.eucJP/man/man1/pr.1 @@ -1,357 +1,357 @@ .\" Copyright (c) 1991 Keith Muller. .\" Copyright (c) 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" This code is derived from software contributed to Berkeley by .\" Keith Muller of the University of California, San Diego. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)pr.1 8.3 (Berkeley) 4/18/94 -.\" %FreeBSD: src/usr.bin/pr/pr.1,v 1.9.2.8 2002/04/15 17:16:57 jmallett Exp % +.\" %FreeBSD: src/usr.bin/pr/pr.1,v 1.9.2.9 2002/07/15 07:29:05 keramida Exp % .\" .\" $FreeBSD$ .\" .Dd April 18, 1994 .Dt PR 1 .Os .Sh 名称 .Nm pr .Nd ファイルの表示 .Sh 書式 .Nm .Bk -words .Op Ar \&+page .Ek .Bk -words .Op Fl Ar column .Ek .Op Fl adFfmprt .Bk -words .Oo .Op Fl e .Op Ar char .Op Ar gap .Oc .Ek .Bk -words .Op Fl L Ar locale .Ek .Bk -words .Op Fl h Ar header .Ek .Bk -words .Oo .Op Fl i .Op Ar char .Op Ar gap .Oc .Ek .Bk -words .Op Fl l Ar lines .Ek .Bk -words .Op Fl o Ar offset .Ek .Bk -words .Oo .Op Fl s .Op Ar char .Oc .Ek .Bk -words .Oo .Op Fl n .Op Ar char .Op Ar width .Oc .Ek .Bk -words .Op Fl w Ar width .Ek .Op - .Op Ar .Sh 解説 .Nm ユーティリティは、テキストファイルをページ単位に整形し、 出力します。複数の入力ファイルが指定された場合はそれぞれについて読み、 整形し、標準出力に書き出します。デフォルトでは、入力ファイルは 1 ページ 66 行に分割され、各ページに以下のものがつきます。 .Bl -bullet .It ページ番号、日付、時間、ファイルのパス名のついた 5 行のヘッダ .It 空行からなる 5 行のトレーラ .El .Pp 標準出力が端末の場合、 .Nm が処理を完了するまで、診断メッセージを出しません. .Pp マルチカラム出力が指定された場合、テキストの各列は同一の幅で出力されます。 デフォルトでテキストの各列は 1 つ以上の .Em で分割されます。入力行がテキストの幅からはみ出るときは切り捨てられます。 単一列の出力の場合は切り捨てられません。 .Sh オプション 以下のオプションの記述において、 column, lines, offset, page, width は 10 進の正の整数で、gap は 10 進の負でない整数です。 .Bl -tag -width 4n .It Ar \&+page 入力を整形したあと、ページ番号 .Ar page から出力をはじめます。 .It Fl Ar column .Ar column 列で出力します (デフォルトは 1)。テキストは 入力ファイルから読んだ順に、各列に垂直に書かれます。このオプションを 指定すると、 .Fl e と .Fl i オプションも指定されたものとみなされます。このオプションは、 .Fl m と一緒に使用することはできません。 .Fl t と一緒に使用すると、出力の表示行数が最小になります (もっと一般的に、追加の整形無しにテキストファイルをカラム化して整形するには、 .Xr rs 1 ユーティリティを参照してください)。 .It Fl a このオプションは .Fl column オプションを変更し、 同一ページで行毎に、順次複数列の出力を行います (例えば, 列数が 2 の場合、最初の入力行を第 1 列先頭、2 番目の入力行を 第 2 列先頭、3 番目の出力を第一列第 2 行にという具合です)。 このオプションを使うには .Fl column オプションの指定が必要です。 .It Fl d ダブルスペースで出力します。入力に .Em を見つけると、続けて余分な .Em を一つ出力します。 .It Fl e Xo .Op Ar char Ns .Op Ar gap .Xc 入力中の各 .Em を、式 .Ar n*gap+1 で表される位置のうちの現在位置の次に大きい列位置まで展開します。 この .Em n は 0 より大きい整数です。 .Ar gap が 0 もしくは省略された場合、デフォルトとして 8 が指定されたことになります。 入力中のすべての .Em キャラクタは、適切な個数の .Em に展開されます。 数字でない文字 .Ar char が指定された場合、この文字がその入力のタブキャラクタとして使われます。 .It Fl F デフォルトの .Em キャラクタシーケンスの代わりに、 改ページに .Em キャラクタを使います。 .It Fl f .Fl F と同じですが、標準出力が端末の場合には最初のページを開始する前に 一時停止します。 .It Fl h Ar header ヘッダ行内のファイル名を、文字列 .Ar header に置き換えます。 .It Fl i Xo .Op Ar char Ns .Op Ar gap .Xc 出力において、2 個以上の空白が、 式 .Ar gap+1 や .Ar 2*gap+1 などの列まで連続していた場合に、 この複数の .Em を .Em で置き換えます。 .Ar gap が 0 もしくは省略された場合、デフォルトとしてタブ位置が 8 列ごとと指定された ことになります。 数字でない文字 .Ar char が指定された場合、それがその出力のタブキャラクタとして使われます。 .It Fl L Ar locale 環境変数のかわりに、引数として指定される .Ar locale を使用します。 ロケールをデフォルト設定にリセットするには、"C" を使用します。 .It Fl l Ar lines ページ長をデフォルトの 66 行のかわりに .Ar lines 行にします。 .Ar lines がヘッダとトレーラの行数の和より大きくないときには、 .Fl t オプションをつけたときのように、ヘッダとトレーラを出力しません。 .It Fl m 複数のファイルの中身をマージします。引数で指定した各ファイルから 読み込まれた一つの行は、同一の幅で並べて書かれます。テキストの列の数は、 引数で指定したファイルのうちのオープンに成功したものの数になります。 マージするファイルの最大値は、ページ幅とプロセスがオープンできる ファイルの最大数に依存します。このオプションを指定すると、 .Fl e と .Fl i オプションも指定されたものとみなされます。 .It Fl n Xo .Op Ar char Ns .Op Ar width .Xc .Ar width 桁の 行番号をつけます。 .Ar width のデフォルト値は 5 です。 各列の .Ar width で指定された位置、 または .Fl m による出力の各行に、行番号がつきます。 .Ar char (数字でない文字)が与えられた場合は、 行番号とテキストの間をその文字で区切ります。 .Ar char のデフォルトは .Em です。 .Ar width より長い行番号は 切り詰められます。 .It Fl o Ar offset 出力の各行の先頭には .Ar offset 個の .Em がつきます。 .Fl o オプションの指定がなければ、デフォルトは 0 になります。 このスペースは出力の幅に追加されます。 .It Fl p 標準出力が端末の場合には、各ページの前に一時停止します。 .Nm は警告文字を標準エラーに書き込み、復改が端末から読み込まれるまで待ちます。 .It Fl r ファイルのオープンに失敗したときのエラーメッセージを出力しません。 .It Fl s Ar char テキストの各列間を、複数個の .Em の代わりに単一の文字 .Ar char で分割します ( .Ar char のデフォルトは .Em です)。 .It Fl t 通常ならば各ページに付加される 5 行の識別ヘッダと 5 行のトレーラを どちらも表示しなくなります。各ファイルの最終行が出力されたあと、 ページの最後までの空白を作らずに、そこで動作をやめてしまいます。 .It Fl w Ar width マルチカラム出力のために、1 行の幅を .Ar width 文字分にします。 .Fl w オプションも .Fl s オプションも指定されなかった場合、デフォルト幅は 72 です。 .Fl w オプションが指定されずに .Fl s オプションが指定された場合は、デフォルト幅は 512 になります。 .It Ar file 表示するファイルのパス名です。 .Ar file が指定されなかった場合、もしくは .Ar file が .Sq Fl だった場合は、標準入力が利用されます。 標準入力が使用されるのは、 .Ar file が指定されなかった場合、もしくは .Ar file が .Sq Fl だった場合のみです。 .El .Pp .Fl s オプションでは、オプション文字 (`s') と その引数 ( .Ar char ) との間を空けることは許されていません。また、 .Fl e , .Fl i , .Fl n は両方の引数が必要で、オプション文字と分割できません。 .Sh エラー .Nm が端末に出力中に割り込みを受け取ると、 保存していたエラーメッセージを スクリーン上に全てフラッシュしてから終了します。 -.Pp +.Sh 診断 .Nm ユーティリティは, 正常終了時には 0 を、 エラー終了時には 1 を返します。 .Pp エラーメッセージは、(出力がリダイレクトされている場合は)整形作業中に、 (端末に出力されている場合は)整形に成功したすべてのファイル出力が完了した後、 標準エラー出力に表示されます。 .Sh 関連項目 .Xr cat 1 , .Xr more 1 , .Xr rs 1 .Sh 規格 .Nm ユーティリティは .St -p1003.1-2001 に準拠しています。 .Sh 歴史 .Nm コマンドは .At v1 に登場しました。 diff --git a/ja_JP.eucJP/man/man1/printf.1 b/ja_JP.eucJP/man/man1/printf.1 index 13d511a7b7..b8cb95dbee 100644 --- a/ja_JP.eucJP/man/man1/printf.1 +++ b/ja_JP.eucJP/man/man1/printf.1 @@ -1,284 +1,285 @@ .\" Copyright (c) 1989, 1990, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" This code is derived from software contributed to Berkeley by .\" the Institute of Electrical and Electronics Engineers, Inc. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)printf.1 8.1 (Berkeley) 6/6/93 -.\" %FreeBSD: src/usr.bin/printf/printf.1,v 1.8.2.6 2002/04/29 16:45:16 jmallett Exp % +.\" %FreeBSD: src/usr.bin/printf/printf.1,v 1.8.2.7 2002/07/15 07:37:49 keramida Exp % .\" $FreeBSD$ .\" .Dd June 6, 1993 .Dt PRINTF 1 .Os .Sh 名称 .Nm printf .Nd フォーマット済み出力 .Sh 書式 .Nm .Ar format Op Ar arguments ... .Sh 解説 .Nm ユーティリティは第一引数より後の引数をフォーマットに合わせて出力します。 .Ar format は 3 種類のオブジェクトを含む文字列です。 一つは通常の文字列で、単純に標準出力にコピーされます。 一つはエスケープシーケンスで、変換されてから標準出力にコピーされます。 もう一つはフォーマット記述で、これらはそれぞれ、後に続く .Ar arguments を表示します。 .Pp 第一引数より後の .Ar arguments は対応するフォーマットが .Cm c か .Cm s の場合は文字列として扱われ、それ以外は以下のような拡張部分と 合わせて C の定数として評価されます。 .Pp .Bl -bullet -offset indent -compact .It 先頭に ``+'' や ``-'' の符号をつけることができます。 .It もし先頭がシングルクォートやダブルクォートで始まっている場合、 その値は次の文字の .Tn ASCII コードになります。 .El .Pp フォーマット文字列は .Ar arguments を変換するために何度も再利用されます。 余分なフォーマット記述は 0 やヌル文字列に評価されます。 .Pp キャラクタエスケープシーケンスは .St -ansiC の定義を拡張した、バックスラッシュによる表記です。 文字キャラクタとその意味は以下のようになります。 .Pp .Bl -tag -width Ds -offset indent -compact .It Cm \ea <ベル> キャラクタを書きます。 .It Cm \eb <バックスペース> キャラクタを書きます。 .It Cm \ec この文字列中の残りのキャラクタを無視します。 .It Cm \ef <フォームフィード> キャラクタを書きます。 .It Cm \en <改行> キャラクタを書きます。 .It Cm \er <復帰> キャラクタを書きます。 .It Cm \et <タブ> キャラクタを書きます。 .It Cm \ev <垂直タブ> キャラクタを書きます。 .It Cm \e\' <シングルクォート> キャラクタを書きます。 .It Cm \e\e <バックスラッシュ>キャラクタを書きます。 .It Cm \e Ns Ar num .It Cm \e0 Ns Ar num 1 から 3 桁の 8 進数 .Ar num で表される .Tn ASCII コードの 8 ビット文字を書きます。 .El .Pp 各フォーマットの指定はパーセント文字 (``%'') から始まります。 フォーマットの他の部分は、以下の順番で続きます: .Bl -tag -width Ds .It "以下のフラグが 0 個以上つきます:" .Bl -tag -width Ds .It Cm # `#' キャラクタは数値を ``別形式'' で表示させるという指定です。 .Cm c , .Cm d , .Cm s フォーマットではこのオプションは無効です。 .Cm o フォーマットでは出力文字列の先頭に 0 をつけるため、 その値の精度が上がります。 .Cm x .Pq Cm X フォーマットでは、0 以外の値なら出力される文字列の先頭に .Li 0x .Pq Li 0X がつきます。 .Cm e , .Cm E , .Cm f , .Cm g , .Cm G のフォーマットでは、たとえ小数点以下の値がなくても常に小数点がつきます (通常のフォーマットでは、小数点以下の値がある時のみ結果に小数点が含まれます)。 .Cm g と .Cm G のフォーマットでは、結果の終わりに付く 0 は通常のフォーマットと違って 省略されません。 .It Cm \&\- 指定したフィールド幅で .Em 左詰め で出力します。 .It Cm \&+ 符号つきのフォーマットの時に、数字の前に常に符号がつくようになります。 .It Sq \&\ \& 符号つきのフォーマットで正の値を表示する時に先頭に空白が一つ挿入されます。 `+' と空白の両方が指定された場合、`+' が空白に優先されます。 .It Cm \&0 `0' は空白でパディングする代りに `0' でパディングを行ないます。 `\-' と `0' の両方が指定された場合、`\-' が優先されます。 .El .It "フィールド幅:" .Em field width ; .Em フィールド幅 を指定するためにオプションとしてつける数値です。 出力する文字列がこのフィールド幅よりも短い場合、フィールド幅を埋めるよ うに左側が (左詰めの指示があれば、右側が) 空白でパディングされます。 (先頭につく 0 はフラグですが、埋め込まれた 0 はフィールド幅の一部であ ることに注意) .It 精度: オプションでつけるピリオド .Sq Cm \&.\& , には、 .Em 精度 を表わす数のオプションが続きます。この数は .Cm e と .Cm f フォーマットの場合に小数点以下の値を表示する桁数を指定します。 .Cm e , .Cm f 以外では、文字列から表示される文字の最大数になります。もし精度を表す数 がなければ、精度は 0 とされます。 .It Format: フォーマットの型を表す文字です ( .Cm diouxXfwEgGcsb のうちのいずれか)。 .El .Pp フィールド幅や精度は数字の代りに .Sq Cm \&* も使えます。この場合、フィールド幅や精度は .Ar argument で与えます。 .Pp フォーマットキャラクタとその意味は以下のようになります: .Bl -tag -width Fl .It Cm diouXx .Ar argument はそれぞれ符号つき 10 進数 (d または i)、符号なし 8 進数 (o)、 符号なし 10 進数 (u)、符号なし 16 進数 (X または x) で表示されます。 .It Cm f .Ar argument が `[\-]ddd.ddd' のスタイルで表示され、引数の精度で指定した数だけ小数 点以下の d が続きます。精度の指定がなければ 6 文字になります。もし精度 が明示的に 0 と指定された場合は小数点とそれ以下の値は表示されません。 .It Cm eE .Ar argument が .Sm off .Sq Op - Ar d.ddd No \(+- Ar dd .Sm on のように、小数点の前に数字が一つで、後には引数の精度で指定した数だけ 数字が続きます。 精度の指定がなければ 6 文字になります。 .Sq Cm \&E フォーマットが使われます。 .It Cm gG .Ar argument が、最小の長さで最大の精度が得られるように、 .Cm f または、 .Cm e .Pq Cm E で表示されます。 .It Cm c .Ar argument の最初の文字が表示されます。 .It Cm s .Ar argument が終わりまでか、または精度で指定された文字数だけ表示されます。 精度が 0 かもしくは指定されていない場合は文字列全てが表示されます。 .It Cm b .Cm s と同様ですが、文字列 .Ar argument 中のバックスラッシュ表現のキャラクタエスケープを解釈します。 .It Cm \&% `%' を表示します。引数はつきません。 .El .Pp 小数点文字は、プログラムのロケール (カテゴリ .Dv LC_NUMERIC ) で定義されます。 .Pp 存在しないフィールド、もしくは小さなフィールド幅指定でフィールドが切り 詰められることはありません。指定されたフィールドが実際の幅を越えた時は、 パディングが起こります。 .Sh 診断 .Ex -std .Sh 互換性 伝統的な .Bx の動作である、数字で開始しない数値書式引数が、 -ASCII コードの最初の文字に変換されるという動作は、サポートされません。 +.Tn ASCII +コードの最初の文字に変換されるという動作は、サポートされません。 .Sh 関連項目 .Xr echo 1 , .Xr printf 3 .Sh 標準 .Nm コマンドは、 .St -p1003.2 仕様互換と期待されます。 .Sh 歴史 .Nm は、 .Bx 4.3 Reno で追加され、標準ライブラリ関数 .Xr printf 3 に基いています。 .Sh バグ 浮動小数点数は .Tn ASCII から浮動小数に変換されてまた戻るので、浮動小数の精度が失われます。 .Pp .Tn ANSI 16 進文字定数はわざと用意されていません。 .Pp エスケープシーケンス \e000 が文字列終端子です。 .Ar format 中に存在すると、 .Ar format は \e000 文字のところで切り捨てられます。 diff --git a/ja_JP.eucJP/man/man1/split.1 b/ja_JP.eucJP/man/man1/split.1 index 4771697958..514338bbfb 100644 --- a/ja_JP.eucJP/man/man1/split.1 +++ b/ja_JP.eucJP/man/man1/split.1 @@ -1,112 +1,134 @@ .\" Copyright (c) 1990, 1991, 1993, 1994 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)split.1 8.3 (Berkeley) 4/16/94 -.\" %FreeBSD: src/usr.bin/split/split.1,v 1.3.2.3 2001/07/22 12:40:33 dd Exp % +.\" %FreeBSD: src/usr.bin/split/split.1,v 1.3.2.4 2002/07/25 12:46:36 tjr Exp % .\" -.\" $FreeBSD: doc/ja_JP.eucJP/man/man1/split.1,v 1.7 2001/05/14 01:07:28 horikawa Exp $ +.\" $FreeBSD$ .Dd April 16, 1994 .Dt SPLIT 1 .Os .Sh 名称 .Nm split .Nd ファイルを分割する .Sh 書式 .Nm +.Op Fl a Ar suffix_length .Op Fl b Ar byte_count[k|m] .Op Fl l Ar line_count .Op Fl p Ar pattern .Op Ar file Op Ar name .Sh 解説 .Nm -は、 +は、指定された .Ar file -が指定された場合はそのファイルを、指定されなかった場合は -標準入力から読み込んだデータを、1000 行ごとに分割します。 +を 1000 行ごとに分割します。 +.Ar file +が単一のダッシュ +.Pq Sq Fl +または無い場合、 +.Nm +は標準入力を読み込みます。 .Pp オプションは以下のとおりです。 .Bl -tag -width Ds +.It Fl a +.Ar suffix_length +文字を、ファイル名のサフィックスの生成に使用します。 .It Fl b .Ar byte_count バイト単位で分割します。 .Dq Li k を数字の後ろに付けた場合は、 .Ar byte_count キロバイト単位で分割します。 .Dq Li m を数字の後ろに付けた場合は、 .Ar byte_count メガバイト単位で分割します。 .It Fl l .Ar n 行単位で分割します。 .It Fl p Ar pattern 拡張正規表現として解釈される .Ar pattern に入力行がマッチするたび、ファイルが分割されます。 マッチする行は、次の出力ファイルの最初の行になります。 本オプションは、 .Fl b および .Fl l のオプションと共には指定できません。 .El .Pp オプションのあとに引数を指定した場合、最初の引数は 入力ファイルの名前として扱われます。 その次の引数は、分割したデータを格納する ファイル名の接頭語として扱われます。 この場合、分割したデータを格納するファイル名は 接頭語のあとに -.Dq Li aa-zz -という文字列を付けたファイルに、辞書式順序で分割されます。 +.Dq Li a-z +の範囲の +.Ar suffix_length +個の文字を付けたファイルに、辞書式順序で分割されます。 +.Fl a +が指定されない場合、2 文字が接尾語として使用されます。 .Pp .Ar name -が指定されなかった場合、分割されたデータは -.Dq Li xaa-zzz -というファイルに、辞書式順序で分割されます。 +引数が指定されなかった場合、分割されたデータ名は、接頭語が +.Dq Li x-z +の範囲となり、前述の接尾語が付きます。 +.Sh 関連項目 +.Xr re_format 7 +.Sh 規格 +.Nm +ユーティリティは +.St -p1003.1-2001 +に適合しています。 +.Sh 歴史 +.Nm +コマンドは +.At v3 +から登場しました。 .Sh バグ 歴史的な理由により、 .Ar name を指定した場合は、 .Nm は 最大 676 個のファイルにしか分割できません。 デフォルトのファイル名に分割した場合は、最大 2028 個の ファイルに分割することができます。 +.Fl a +オプションを使用することで、この限界を回避できます。 .Pp パターンにマッチする最大行長は 65536 です。 .Sh 関連項目 .Xr re_format 7 -.Sh 歴史 -.Nm -は -.At v6 -から登場しました。 diff --git a/ja_JP.eucJP/man/man1/tail.1 b/ja_JP.eucJP/man/man1/tail.1 index e5da8533ee..967300192e 100644 --- a/ja_JP.eucJP/man/man1/tail.1 +++ b/ja_JP.eucJP/man/man1/tail.1 @@ -1,154 +1,154 @@ .\" Copyright (c) 1980, 1990, 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" This code is derived from software contributed to Berkeley by .\" the Institute of Electrical and Electronics Engineers, Inc. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)tail.1 8.1 (Berkeley) 6/6/93 -.\" %FreeBSD: src/usr.bin/tail/tail.1,v 1.5.2.3 2001/08/16 13:17:05 ru Exp % +.\" %FreeBSD: src/usr.bin/tail/tail.1,v 1.5.2.4 2002/07/15 07:46:27 keramida Exp % .\" $FreeBSD$ .\" .Dd June 6, 1993 .Dt TAIL 1 .Os .Sh 名称 .Nm tail .Nd ファイルの最後の部分を表示する .Sh 書式 .Nm .Oo .Fl F | .Fl f | .Fl r .Oc .Oo .Fl b Ar number | .Fl c Ar number | .Fl n Ar number .Oc .Op Ar .Sh 解説 .Nm は、 .Ar file が指定されていればそのファイルを、 指定されていなければ標準入力を読み込み、 バイト数、行数、もしくは、512 バイト単位のブロック数で指定された位置 以降を表示します。 .Pp .Ar number に ``+'' をつけた場合は、入力の先頭からの指定となります。たとえば、 .Dq -c +2 と指定すれば 2 バイト目から表示されます。 .Ar number に ``-'' もしくは符号をつけていない場合は、入力の最後からの相対位置の 指定となります。たとえば、 .Dq -n 2 では最後の 2 行が表示されます。デフォルトでは .Dq -n 10 , で、入力の最後から 10 行分が表示されます。 .Pp オプションとしては以下のものがあります: .Bl -tag -width Ds .It Fl b Ar number 512 バイト単位のブロック数で指定します。 .It Fl c Ar number バイト単位で指定します。 .It Fl f ファイルの最後に達しても終了せず、入力に追加されるデータを待つようにします。 .Fl f オプションは、標準入力がパイプの場合は無視されますが、 FIFO の場合は無視されません。 .It Fl F .Fl F オプションは .Fl f オプションを暗示しますが、 追跡されるファイルの名前変更やローテートをチェックします。 読み込みを行っているファイルの inode 番号が新しくなっていることを .Nm が検知した場合、ファイルをクローズして再オープンします。 ファイルではなく標準入力読み込み時には .Fl F オプションは無視されます。 .It Fl n Ar number 行単位で指定します。 .It Fl r 行ごとに、逆順に表示します。また、 .Fl b , .Fl c , .Fl n の各オプションの意味も変わり、 それぞれ表示するブロック数、バイト数、行数の指定になります。 デフォルトでは、入力したものがすべて逆に表示されます。 .El .Pp もし一つ以上のファイルが指定されていると、それぞれのファイルを表示する前に .Dq ==> XXX <== という形式のヘッダを表示します。 ただし .Dq XXX はファイル名です。 .Sh 診断 .Ex -std .Sh 関連項目 .Xr cat 1 , .Xr head 1 , .Xr sed 1 .Sh 規格 .Nm ユーティリティは .St -p1003.2-92 のスーパセットであると考えられています。特に .Fl F , .Fl b , .Fl r オプションは拡張されたものです。 .Pp 以前の UNIX とのオプション書式の互換は保たれています。ただし、 .Fl r オプションが .Fl b , .Fl c , .Fl n 修飾オプションとなったため、完全には互換はありません。以前の .Nm では ``-4cr'' としても、 .Fl c が無視されて最後の 4 行が逆順に表示されましたが、本バージョンの .Nm では ``-r -c 4'' と解釈され、最後の 4 バイトが表示されます。 .Sh 歴史 .Nm コマンドは -.At v7 +PWB UNIX から登場しました。 diff --git a/ja_JP.eucJP/man/man1/talk.1 b/ja_JP.eucJP/man/man1/talk.1 index 6f58ccc26b..e7934f07d1 100644 --- a/ja_JP.eucJP/man/man1/talk.1 +++ b/ja_JP.eucJP/man/man1/talk.1 @@ -1,138 +1,142 @@ .\" Copyright (c) 1983, 1990, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)talk.1 8.1 (Berkeley) 6/6/93 -.\" %FreeBSD: src/usr.bin/talk/talk.1,v 1.6.2.4 2002/06/21 15:29:23 charnier Exp % +.\" %FreeBSD: src/usr.bin/talk/talk.1,v 1.6.2.5 2002/07/15 07:57:15 keramida Exp % .\" $FreeBSD$ .\" .Dd June 6, 1993 .Dt TALK 1 .Os .Sh 名称 .Nm talk .Nd 他のユーザと会話(筆談)を行う .Sh 書式 .Nm .Ar person .Op Ar ttyname .Sh 解説 .Nm ユーティリティは、視覚的な通信プログラムで、 端末に入力された行を他のユーザの端末にコピーします。 .Pp オプション: .Bl -tag -width ttyname .It Ar person ログイン名だけを指定したときは、同じマシンにいるユーザ -と会話をすることができます。他のマシンのユーザと会話をしたい場合は、 +と会話をすることができます。 +他のマシンのユーザと会話をしたい場合は、 .Ql user@host または .Ql host!user または .Ql host:user という形で .Ar person を指定します。 .It Ar ttyname 複数の端末にログイン しているユーザと会話をしたい場合、端末名 .Ar ttyname を指定することができます。 .Ar ttyename は .Dq ttyXX という形で指定します。 .El .Pp 最初に呼び出しを行うとき、 .Nm は以下のようなメッセージを .Ar person に送ります。 .Bd -literal -offset indent -compact Message from TalkDaemon@his_machine... talk: connection requested by your_name@your_machine. talk: respond with: talk your_name@your_machine .Ed .Pp メッセージを送られた相手は、この時点で以下のように返事をする必要があります。 .Pp .Dl talk \ your_name@your_machine .Pp ログイン名が同じであれば、相手はどのマシンから返事をしてもかまいません。 一度、相手との接続が確立すると、2人のユーザは同時に書き込みを行うこと -ができます。2人の書き込み結果は、異なったウィンドウに分割されて表示さ -れます。control-L +ができます。 +2 人の書き込み結果は、異なったウィンドウに分割されて表示されます。 +control-L .Ql ^L -を打ち込むと、画面を書き直します。また、erase, kill, word kill 文字 +を打ち込むと、画面を書き直します。 +また、erase, kill, word kill 文字 は通常どおりの動作をします。会話を終了するには、中断 (interrupt) 文字を 入力します。 .Nm は、カーソルを画面の一番下に移動させ、端末を元の状態に戻します。 .Pp .Nm から呼び出しを許すかどうかは、 .Xr mesg 1 で指定することができます。 .Xr mesg 1 で設定してないときは、 .Nm -からの呼び出しは許可されています。ただし、 +からの呼び出しは許可されています。 +ただし、 .Xr nroff 1 や .Xr pr 1 などのプログラムなどは、 .Nm からの呼び出しで出力画面が見にくくならないように、メッセージを拒否します。 .Sh 関連ファイル .Bl -tag -width /var/run/utmp -compact .It Pa /etc/hosts 受信者のホスト名を知るために用いる .It Pa /var/run/utmp 受信者の端末名を知るために用いる .El .Sh 関連項目 .Xr mail 1 , .Xr mesg 1 , .Xr wall 1 , .Xr who 1 , .Xr write 1 .Sh バグ .Bx 4.3 で使われているバージョンの .Xr talk 1 のプロトコルは、 .Bx 4.2 のものとは互換性がありません。 .Sh 歴史 .Nm コマンドは .Bx 4.2 から登場しました。 diff --git a/ja_JP.eucJP/man/man1/texindex.1 b/ja_JP.eucJP/man/man1/texindex.1 index 9dfe5fea51..f0651ebdda 100644 --- a/ja_JP.eucJP/man/man1/texindex.1 +++ b/ja_JP.eucJP/man/man1/texindex.1 @@ -1,48 +1,49 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.24. .\" $FreeBSD$ -.TH TEXINDEX "1" "March 2002" "GNU texinfo 4.1" FSF +.TH TEXINDEX "1" "April 2002" "GNU texinfo 4.2" FSF .SH 名称 texindex \- Texinfo のインデックスファイルをソート .SH 書式 .B texindex [\fIOPTION\fR]...\fI FILE\fR... .SH 解説 .PP 各 TeX 出力ファイル FILE に対し、ソートされたインデックスを作成します。 通常、FILE... は、 `foo.texi' という文書に対しては `foo.??' と指定します。 .SH オプション .TP \fB\-h\fR, \fB\-\-help\fR このヘルプメッセージを表示して終了します .TP \fB\-k\fR, \fB\-\-keep\fR 処理終了後も一時ファイルを削除しません .TP \fB\-\-no\-keep\fR 処理終了後に一時ファイルを削除します (デフォルト) .TP \fB\-o\fR, \fB\-\-output\fR FILE FILE で指定したファイルに出力します .TP \fB\-\-version\fR バージョン情報を表示して終了します .SH バグ報告 バグの報告は bug-texinfo@gnu.org 宛に電子メールで、 一般的な質問や議論は help-texinfo@gnu.org 宛にお願いします。 +Texinfo ホームページ: http://www.gnu.org/software/texinfo/ .SH COPYRIGHT Copyright \(co 2002 Free Software Foundation, Inc. There is NO warranty. You may redistribute this software under the terms of the GNU General Public License. For more information about these matters, see the files named COPYING. .SH 関連項目 .B texindex に関する全般的な説明は、Texinfo マニュアルとして保守されています。もし .B info 及び .B texindex が、あなたのサイトに正しくインストールされいれば、 .IP .B info texindex .PP とすることで完全なマニュアルにアクセスすることができます。 diff --git a/ja_JP.eucJP/man/man1/tr.1 b/ja_JP.eucJP/man/man1/tr.1 index b606bd839e..8052cb6e99 100644 --- a/ja_JP.eucJP/man/man1/tr.1 +++ b/ja_JP.eucJP/man/man1/tr.1 @@ -1,296 +1,307 @@ .\" 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. .\" .\" @(#)tr.1 8.1 (Berkeley) 6/6/93 -.\" %FreeBSD: src/usr.bin/tr/tr.1,v 1.5.2.6 2001/08/16 13:17:08 ru Exp % +.\" %FreeBSD: src/usr.bin/tr/tr.1,v 1.5.2.7 2002/07/29 12:59:33 tjr Exp % .\" -.\" $FreeBSD: doc/ja_JP.eucJP/man/man1/tr.1,v 1.11 2001/08/19 10:25:03 horikawa Exp $ +.\" $FreeBSD$ .\" .Dd October 11, 1997 .Dt TR 1 .Os .Sh 名称 .Nm tr .Nd 文字の置換 .Sh 書式 .Nm .Op Fl csu .Ar string1 string2 .br .Nm .Op Fl cu .Fl d .Ar string1 .br .Nm .Op Fl cu .Fl s .Ar string1 .br .Nm .Op Fl cu .Fl ds .Ar string1 string2 .Sh 解説 .Nm ユーティリティは、選択された文字を置き換え、または削除しながら 標準入力を標準出力にコピーします。 .Pp 以下のオプションが利用できます: .Bl -tag -width Ds .It Fl c .Ar string1 に含まれる文字の補集合を表します。つまり、``-c ab'' は、 ``a'' と ``b'' を除く全ての文字を含みます。 .It Fl d .Fl d オプションは、入力から指定した文字を削除します。 .It Fl s .Fl s オプションは、最後の引数 ( .Ar string1 か .Ar string2 のどちらか) に含まれている同一の文字が、入力の中に連続して現れるとき、 それを 1 つの文字に圧縮します。この圧縮は、全ての削除や変換が終わった 後に行われます。 .It Fl u .Fl u オプションは出力がバッファリングされないことを保証します。 .El .Pp 書式の最初の形式では、 .Ar string1 に含まれる文字は、 .Ar string1 の 1 文字目は .Ar string2 の 1 文字目と置き換え...というように .Ar string2 に置き換えられます。もし .Ar string1 が .Ar string2 よりも長い場合は、 .Ar string2 の最後の文字が、 .Ar string1 と対応させるのに足りない分だけ続いているものとみなされます。 .Pp 書式の 2 番目の形式では、 .Ar string1 に含まれる文字は、入力から削除されます。 .Pp 書式の 3 番目の形式では、 .Ar string1 に含まれる文字は、 .Fl s オプションの解説の通りに圧縮されます。 .Pp 書式の 4 番目の形式では、 .Ar string1 に含まれる文字は入力から削除され、 .Ar string2 に含まれる文字は .Fl s オプションの解説の通りに圧縮されます。 .Pp .Ar string1 , .Ar string2 の文字の集合を指定するのに、以下のような記述方法が利用できます: .Bl -tag -width [:equiv:] .It character 以下で示したものを除く、その文字自身を表す 通常の文字 (キャラクタ) です。 .It \eoctal バックスラッシュに続き、1〜3 桁の 8 進数が続いたものは、 その値を符号化した文字を表現します。この 8 進数の並びに続いて 数字を文字として指定したい場合には、8 進数の並びが 3 桁と なるように、8 進数の上位桁 (左) に 0 を埋めてください。 .It \echaracter バックスラッシュに続く、特定の特殊な文字は、特殊な値に対応しています。 .Pp .Bl -column "\ea" .It "\ea <ベル文字> .It "\eb <バックスペース> .It "\ef <フォームフィード> .It "\en <改行> .It "\er <復帰> .It "\et <水平タブ> .It "\ev <垂直タブ> .El .sp これら以外のバックスラッシュに続く文字は、その文字自身に対応します。 .It c-c 両端を指定することにより、文字の範囲を表します。両端を含みます。 .It [:class:] 定義された文字クラスに属する、全ての文字を表します。 クラス名は以下の通りです: .sp .Bl -column "xdigit" .It "alnum <英数字> .It "alpha <英字> .It "cntrl <コントロール文字> .It "digit <数字> .It "graph <グラフィック文字> .It "lower <英小文字> .It "print <表示可能文字> .It "punct <句読点> .It "space <空白文字> .It "upper <英大文字> .It "xdigit <16進数> .El .Pp .\" .Fl d .\" と .\" .Fl s .\" の両方のオプションが指定された場合には、 .\" すべてのクラスを .\" .Ar string1 .\" および .\" .Ar string2 .\" に使うことができます。 .\" そうでない場合には、 .\" .Ar string2 .\" には、``upper'' もしくは ``lower'' .\" しか指定できません。 .\" しかも、対応するクラス (``upper'' に対する ``lower''、逆も同様)が .\" .Ar string1 .\" に指定されているとき限ります。 .\" .Pp ``upper'' と ``lower'' を除いたクラスでは、クラスに含まれる文字の 順序は特定されていません。``upper'' と ``lower'' では、 文字は昇順に並んでいます。 .Pp どのような ASCII 文字が、これらのクラスに含まれているのかという情報を 調べたい場合には、 .Xr ctype 3 および関連マニュアルを参照してください。 .It [=equiv=] -全ての文字、もしくは .Ar equiv -と同じ同値関係クラスに属する区分要素を表します。もし、 -同値関係クラス内で、2 次的な順序付けが存在する場合、 -文字は昇順に並べられます。存在しない場合には、 -符号化された値に従った順序付けがなされます。 -同値関係クラスの例としては、スペイン語における ``c'' と ``ch'' などが -あげられます。しかし、英語にはこのような同値関係クラスはありません。 +と同じ同値関係クラスに属する全ての文字を表します。 +これらはエンコード値の順序となります。 .It [#*n] .Ar # で指定された .Ar n 個の文字の繰り返しを表現します。この表現は、 .Ar string2 で指定されたときのみ有効です。 もし .Ar n が省略された場合、または 0 の場合は、 .Ar string2 が .Ar string1 の長さを満たすような、十分大きな値として解釈されます。 .Ar n は、0 で始まる場合には 8 進数として、そうでない場合には 10 進数として 解釈されます。 .El +.Sh 環境変数 +.Ev LANG , +.Ev LC_ALL , +.Ev LC_CTYPE , +.Ev LC_COLLATE +の環境変数が、 +.Xr environ 7 +の記述通りに、 +.Nm +の実行に影響します。 .Sh 診断 .Ex -std .Sh 使用例 以下の例は、シェルに対して与えられたものです: .sp file1 に含まれる単語 (文字の最大長の並び) のリストを、 各行につき 1 つずつ出力します。 .sp .D1 Li "tr -cs \*q[:alpha:]\*q \*q\en\*q < file1" .sp file1 の内容を大文字に変換します。 .sp .D1 Li "tr \*q[:lower:]\*q \*q[:upper:]\*q < file1" .sp 表示できない文字を file1 から削除します。 .sp .D1 Li "tr -cd \*q[:print:]\*q < file1" +.Pp +発音区分記号を、 +.Sq e +のアクセント付きバリアントすべてから削除します。 +.Pp +.Dl "tr \*q[=e=]\*q \*qe\*q" .Sh 互換性 古くからの .Bx の実装および POSIX 標準では、文字の 範囲指定には ``c-c'' という文法を用いますが、 古い System V の実装では ``[c-c]'' を用いています。 System V のシェルスクリプトは、文字の置換を行おうとする 場合にはうまく動作するはずです。つまり、``tr [a-z] [A-Z]'' と 指定した場合には、 .Ar string1 の ``['' が .Ar string2 の ``['' に変換されるため、うまく動作します。 しかし、シェルスクリプトが、``tr -d [a-z]'' というコマンドのように 文字の削除や圧縮を行う場合には、``['' と ``]'' の文字が 削除や圧縮の対象に含まれてしまいます。古い実装の System V では このようには動作しません。さらに、``a'', ``-'', ``z'' と いう 3 つの文字を表現するのに、``a-z'' と記述するような、 その並びに依存しているあらゆるスクリプトは、``a\e-z'' と書き 直す必要があります。 .Pp .Nm ユーティリティは昔から、入力における NUL バイトの操作を 禁止されていました。さらに、入力から NUL を取り除いていました。 この実装では、この振る舞いはバグとみなされ、削除されました。 .Pp .Nm ユーティリティは昔から、たとえば、2 つの文字列が指定されない限り .Fl c および .Fl s オプションを無視する、などの文法上の誤りを 極端なまでに許していました。この実装では、不正な文法は 許されなくなっているはずです。 .Sh 規格 .Nm ユーティリティは、 .St -p1003.2 と互換です。 .Ar string2 が .Ar string1 よりも短い場合に .Ar string2 の最後の文字が複製される機能は、 POSIX では許されていますが必須ではないことに注意して下さい。 他の POSIX システムへの可搬性のあるシェルスクリプトを 作ろうとするならば、この振る舞いを当てにせずに、``[#*]'' と いう表現を使うべきです。 .Fl u オプションは .St -p1003.2 標準の拡張です。 diff --git a/ja_JP.eucJP/man/man1/tsort.1 b/ja_JP.eucJP/man/man1/tsort.1 index 92f25162b4..a7e1006a61 100644 --- a/ja_JP.eucJP/man/man1/tsort.1 +++ b/ja_JP.eucJP/man/man1/tsort.1 @@ -1,94 +1,92 @@ .\" Copyright (c) 1990, 1993, 1994 .\" The Regents of the University of California. All rights reserved. .\" .\" This manual is derived from one contributed to Berkeley by .\" Michael Rendell of Memorial University of Newfoundland. .\" .\" 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. .\" .\" @(#)tsort.1 8.3 (Berkeley) 4/1/94 -.\" %FreeBSD: src/usr.bin/tsort/tsort.1,v 1.7.2.2 2002/06/21 15:29:45 charnier Exp % +.\" %FreeBSD: src/usr.bin/tsort/tsort.1,v 1.7.2.3 2002/07/15 08:02:19 keramida Exp % .\" $FreeBSD$ .\" .Dd April 1, 1994 .Dt TSORT 1 .Os .Sh 名称 .Nm tsort .Nd 有向グラフのトポロジカルソートを行う .Sh 書式 .Nm -.Op Fl d -.Op Fl l -.Op Fl q +.Op Fl dlq .Op Ar file .Sh 解説 .Nm ユーティリティは、 グラフの有向アークを表現するノード名の対を列挙したもの入力とし、 トポロジカルな順序でノード名を標準出力に出力します。 入力は指定されたファイル .Ar file から、あるいは指定がない場合は標準入力から読み込みます。 .Pp 入力においてノード名は空白で区切ります。 ノードの数は偶数個でなければなりません。 .Pp グラフ中のノードは 自分自身へのアークを持つノードとして記述することができます。 これはノードが他のノードと接続されていない場合に有用です。 .Pp グラフがサイクルを含んでいる(そのままではソートできない)場合、 サイクル上の 1 つのアークを無視してソートを続行します。 サイクルは標準エラー出力に報告されます。 .Pp オプションは以下の通り: .Bl -tag -width Ds .It Fl d デバッグ機能を有効にします。 .It Fl l 最長サイクルを検索して表示します。 かなり時間がかかる場合があります。 .It Fl q サイクルに関して詳しい情報を表示しません。 これは主としてライブラリ構築向けです。 その場合必ずしも最適な順序を求める必要はなく、 サイクルもしばしば含まれます。 .El .Sh 関連項目 .Xr ar 1 .Sh 歴史 .Nm コマンドは .At v7 で登場しました。 本 .Nm tsort コマンドとマニュアルは Memorial University of Newfoundland の Michael Rendell による Berkeley に提供されたコードをベースにしています。 diff --git a/ja_JP.eucJP/man/man1/uname.1 b/ja_JP.eucJP/man/man1/uname.1 index 23c38994b8..d1a57c3dcf 100644 --- a/ja_JP.eucJP/man/man1/uname.1 +++ b/ja_JP.eucJP/man/man1/uname.1 @@ -1,94 +1,91 @@ .\" Copyright (c) 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)uname.1 8.3 (Berkeley) 4/8/94 -.\" %FreeBSD: src/usr.bin/uname/uname.1,v 1.8.2.2 2002/02/04 12:37:38 nyan Exp % +.\" %FreeBSD: src/usr.bin/uname/uname.1,v 1.8.2.3 2002/07/15 08:06:35 keramida Exp % .\" $FreeBSD$ .\" .Dd April 8, 1994 .Dt UNAME 1 .Os .Sh 名称 .Nm uname .Nd システムに関する情報を表示する .Sh 書式 .Nm .Op Fl amnprsv .Sh 解説 .Nm は、オペレーティングシステム実装の名前を標準出力へ出力します。 オプションがあると、システムの特徴を標準出力へ出力します。 .Pp オプション: -.Bl -tag -width Ds +.Bl -tag -width indent .It Fl a は、 -.Fl m , -.Fl n , -.Fl r , -.Fl s , +.Fl m , n , r , s , .Fl v をすべて指定した場合と同一です。 .It Fl m 現在のハードウェアプラットフォームのタイプを標準出力に出力します。 .It Fl n システム名を標準出力に出力します。 .It Fl p マシンプロセッサアーキテクチャのタイプを標準出力に出力します。 .It Fl r 現在のオペレーティングシステムのリリースレベルを標準出力へ出力します。 .It Fl s オペレーティングシステム実装の名前を標準出力へ出力します。 .It Fl v このリリースのオペレーティングシステムにおける バージョンレベルを標準出力へ出力します。 .El .Pp もし .Fl a オプションが指定されるか、複数のオプションが指定されれば、 出力はすべて一行にスペースで区切られて表示します。 .Sh 診断 .Ex -std .Sh 関連項目 .Xr sysctl 3 , .Xr uname 3 , .Xr sysctl 8 .Sh 歴史 .Nm コマンドは -.Bx 4.4 +PWB UNIX から登場しました。 .Sh 規格 .Nm コマンドは .St -p1003.2 準拠であると考えられています。 diff --git a/ja_JP.eucJP/man/man1/uniq.1 b/ja_JP.eucJP/man/man1/uniq.1 index 29e3664fe2..4f1289367e 100644 --- a/ja_JP.eucJP/man/man1/uniq.1 +++ b/ja_JP.eucJP/man/man1/uniq.1 @@ -1,140 +1,145 @@ .\" 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. .\" .\" From: @(#)uniq.1 8.1 (Berkeley) 6/6/93 -.\" %FreeBSD: src/usr.bin/uniq/uniq.1,v 1.5.2.4 2002/06/21 05:18:59 tjr Exp % +.\" %FreeBSD: src/usr.bin/uniq/uniq.1,v 1.5.2.5 2002/07/15 08:11:33 keramida Exp % .\" .\" $FreeBSD$ .Dd June 6, 1993 .Dt UNIQ 1 .Os .Sh 名称 .Nm uniq .Nd ファイル内の重複行の報告または、フィルタ出力 .Sh 書式 .Nm .Op Fl c | Fl d | Fl u .Op Fl i .Op Fl f Ar num .Op Fl s Ar chars .Oo .Ar input_file .Op Ar output_file .Oc .Sh 解説 .Nm ユーティリティは、 .Ar input_file を読み込み、隣り合う行同士を比較し、 重複した行を取り除いて .Ar output_file へ書き込みます。 .Ar input_file が単一のダッシュ .Pq Sq \&- または無い場合、標準入力が読み込まれます。 .Ar output_file が無い場合、標準出力が出力として使用されます。 隣り合った行が同じ内容だったら 2 行目以降を出力しません。 同じ内容でも行が隣り合っていない場合は比較の対象になりませんので、 まずファイルをソートする事が必要になるかもしれません。 .Pp オプションとしては以下のものがあります: .Bl -tag -width Ds .It Fl c 各出力行の先頭に、行が入力中に続けて出現した回数を表示し、空白一つあけて その行の内容を表示します。 .It Fl d 重複した行のみを出力します。 .It Fl f Ar num 比較する時に、各入力行の先頭から .Ar num 個のフィールドを無視します。 フィールドとは、空白文字で区切られた、空白以外の文字からなる文字列です。 .Ar num を指定するときは、最初のフィールドを 1 として数えます。 .It Fl s Ar chars 比較する時に、各入力行の先頭から .Ar chars 文字を無視します。 本オプションを .Fl f オプションと一緒に指定した場合は、 .Ar num 個のフィールドに続く .Ar chars 文字が無視されます。 .Ar chars を指定するときは、最初の文字を 1 として数えます。 .It Fl u 入力の重複がなかった行のみを出力します。 .It Fl i 行の比較において大文字小文字を区別しません。 .\".It Fl Ns Ar n .\"(Deprecated; replaced by .\".Fl f ) . .\"Ignore the first n .\"fields on each input line when doing comparisons, .\"where n is a number. .\"A field is a string of non-blank .\"characters separated from adjacent fields .\"by blanks. .\".It Cm \&\(pl Ns Ar n .\"(Deprecated; replaced by .\".Fl s ) . .\"Ignore the first .\".Ar m .\"characters when doing comparisons, where .\".Ar m .\"is a .\"number. .El .Pp コマンドラインにさらに引数が指定されると、その最初の引数を入力ファイルの 名前として使用し、その次の引数を出力ファイルの名前として使用します。 .Sh 診断 .Ex -std .Sh 互換性 古くからある .Cm \&\(pl Ns Ar number と .Fl Ns Ar number のオプションは時代遅れですが、この実装ではまだサポートしています。 .Sh 関連項目 .Xr sort 1 .Sh 規格 .Nm ユーティリティは、 .St -p1003.2 互換であるはずです。 +.Sh 歴史 +.Nm +コマンドは +.At v3 +から登場しました。 diff --git a/ja_JP.eucJP/man/man1/wall.1 b/ja_JP.eucJP/man/man1/wall.1 index de33fc71ae..dac845c055 100644 --- a/ja_JP.eucJP/man/man1/wall.1 +++ b/ja_JP.eucJP/man/man1/wall.1 @@ -1,72 +1,72 @@ .\" Copyright (c) 1989, 1990, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)wall.1 8.1 (Berkeley) 6/6/93 -.\" %FreeBSD: src/usr.bin/wall/wall.1,v 1.3.2.4 2002/06/21 15:30:10 charnier Exp % +.\" %FreeBSD: src/usr.bin/wall/wall.1,v 1.3.2.5 2002/07/15 08:14:59 keramida Exp % .\" $FreeBSD$ .\" .Dd June 6, 1993 .Dt WALL 1 .Os .Sh 名称 .Nm wall .Nd ログインしているユーザにメッセージを送る .Sh 書式 .Nm .Op Fl g Ar group .Op Ar file .Sh 解説 .Nm ユーティリティは、 デフォルトでは、標準入力の内容を現在ログインしているすべての ユーザの端末に表示します。 .Ar file を指定すれば、その内容が表示されます。 .Pp スーパユーザだけが、メッセージを拒否しているユーザや 自動的にメッセージを拒否するプログラムを使っているユーザの端末にメッセージ を送ることができます。 .Bl -tag -width indent .It Fl g このグループのユーザに対しメッセージを送ります。 本オプションは複数回指定可能であり、 指定したグループのいずれかに属するユーザがメッセージを受け取ります。 .El .Sh 関連項目 .Xr mesg 1 , .Xr talk 1 , .Xr write 1 , .Xr shutdown 8 .Sh 歴史 .Nm コマンドは -.At v7 -ではじめて実装されました。 +PWB UNIX +で初めて登場しました。 diff --git a/ja_JP.eucJP/man/man1/write.1 b/ja_JP.eucJP/man/man1/write.1 index 9291d4bee2..593760db4e 100644 --- a/ja_JP.eucJP/man/man1/write.1 +++ b/ja_JP.eucJP/man/man1/write.1 @@ -1,101 +1,101 @@ .\" Copyright (c) 1989, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" This code is derived from software contributed to Berkeley by .\" Jef Poskanzer and Craig Leres of the Lawrence Berkeley Laboratory. .\" .\" 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. .\" .\" @(#)write.1 8.1 (Berkeley) 6/6/93 -.\" %FreeBSD: src/usr.bin/write/write.1,v 1.7.2.2 2001/12/14 15:53:32 ru Exp % +.\" %FreeBSD: src/usr.bin/write/write.1,v 1.7.2.3 2002/07/15 08:18:03 keramida Exp % .\" $FreeBSD$ .\" .Dd June 6, 1993 .Dt WRITE 1 .Os .Sh 名称 .Nm write .Nd 別のユーザにメッセージを送る .Sh 書式 .Nm .Ar user .Op Ar ttyname .Sh 解説 .Nm -は、あなたの端末入力行を他の端末に送ることで、 +ユーティリティは、あなたの端末入力行を他の端末に送ることで、 他のユーザとのコミュニケーションを可能にします。 .Pp .Nm を使ってメッセージを書くと、指定されたユーザは次のような 書き出しで始まるメッセージを受け取ります: .Pp .Dl Message from yourname@yourhost on yourtty at hh:mm ... .Pp この後の行は、1行入力するたびにその内容が相手の端末にコピーされます。 もし相手が返事をしたいと思ったら、その人も .Nm を実行して同じようにメッセージを送る必要があります。 .Pp メッセージを送り終わったら、ファイルの終り文字か割り込み文字を入力します。 相手には、通信の終りを表す .Ql EOF が表示されます。 .Pp 他のユーザからのメッセージを拒否したいときは (ただしスーパユーザからのメッセージは拒否できません)、 .Xr mesg 1 を使います。 .Pp 2つ以上の端末にログインしているユーザにメッセージを送りたい場合には、 どの端末にメッセージを送るかを、 .Nm の2番目の引数で指定することができます。 端末名を指定しなければ、もっともアイドル時間の短い端末が選択されます。 事務所でログインしたままになっているユーザが、今は自宅からモデムでログイン している場合などは、これによって正しい端末が選択されるでしょう。 .Pp .Nm コマンドで人とやりとりする時には、次のようなプロトコルが使われてきました。 行末の .Ql \-o や、 .Ql \-o だけの行は、あなたが話す番ですよ、という意味であり、 .Ql oo は、会話を終りにしましょうという意味になります。 .Sh 関連項目 .Xr mesg 1 , .Xr talk 1 , .Xr wall 1 , .Xr who 1 .Sh 歴史 .Nm コマンドは .At v1 から登場しました。 diff --git a/ja_JP.eucJP/man/man1/yyfix.1 b/ja_JP.eucJP/man/man1/yyfix.1 index fc372f43d5..ca14129504 100644 --- a/ja_JP.eucJP/man/man1/yyfix.1 +++ b/ja_JP.eucJP/man/man1/yyfix.1 @@ -1,116 +1,116 @@ .\" Copyright (c) 1990, 1991 The Regents of the University of California. .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)yyfix.1 5.4 (Berkeley) 3/23/93 -.\" %FreeBSD: src/usr.bin/yacc/yyfix.1,v 1.3.2.1 2001/08/16 13:17:16 ru Exp % -.\" $FreeBSD: doc/ja_JP.eucJP/man/man1/yyfix.1,v 1.8 2001/07/29 05:14:53 horikawa Exp $ +.\" %FreeBSD: src/usr.bin/yacc/yyfix.1,v 1.3.2.2 2002/07/15 08:21:25 keramida Exp % +.\" $FreeBSD$ .\" .Dd March 23, 1993 .Dt YYFIX 1 .Os .Sh 名称 .Nm yyfix .Nd y.tab.c ファイルからテーブルを取り出す .Sh 書式 .Nm yyfix .Ar file .Op Ar tables .Sh 解説 歴史的には、 .Xr yacc 1 が生成したファイル .Pa y.tab.c からテーブルを取り出すために、 あるスクリプト (大抵は .Dq :yyfix という名前のもの) が用いられてきました。 現在のバージョンの .Xr yacc が生成するテーブル名は、これまでのバージョンの .Xr yacc が生成するものと異なるので、 この変換を簡単にするためにシェルスクリプト .Nm が提供されています。 .Pp .Nm の最初の (そして必須の) 引数は、 取り出したテーブルを格納するファイルの名前です。 .Pp コマンドライン引数が更に指定された場合、 それらは取り出すテーブルのリストと解釈されます。 それ以外の場合、 .Nm はファイル .Pa y.tab.c が新旧いずれの .Xr yacc から生成されたものかを判定し、 適切なテーブルを取り出そうとします。 .Pp 以前の .Xr yacc から取り出されるテーブルは次の通りです: .Dq yyexca , .Dq yyact , .Dq yypact , .Dq yypgo , .Dq yyr1 , .Dq yyr2 , .Dq yychk , .Dq yydef .Pp 現バージョンの .Xr yacc から取り出されるテーブルは次の通りです: .Dq yylhs , .Dq yylen , .Dq yydefred , .Dq yydgoto , .Dq yysindex , .Dq yyrindex , .Dq yygindex , .Dq yytable , .Dq yyname , .Dq yyrule , .Dq yycheck .Sh 関連ファイル .Bl -tag -width y.tab.c .It Pa y.tab.c テーブルを取り出す元となるファイル .El .Sh 関連項目 .Xr yacc 1 .Sh 歴史 .Nm コマンドは .Bx 4.4 -から登場しました。 +で初めて登場しました。 diff --git a/ja_JP.eucJP/man/man2/fcntl.2 b/ja_JP.eucJP/man/man2/fcntl.2 index b149e0829d..9cc3b4520f 100644 --- a/ja_JP.eucJP/man/man2/fcntl.2 +++ b/ja_JP.eucJP/man/man2/fcntl.2 @@ -1,543 +1,543 @@ .\" Copyright (c) 1983, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)fcntl.2 8.2 (Berkeley) 1/12/94 -.\" %FreeBSD: src/lib/libc/sys/fcntl.2,v 1.16.2.12 2002/04/29 08:21:58 asmodai Exp % +.\" %FreeBSD: src/lib/libc/sys/fcntl.2,v 1.16.2.13 2002/07/22 15:15:16 bde Exp % .\" .\" $FreeBSD$ .Dd January 12, 1994 .Dt FCNTL 2 .Os .Sh 名称 .Nm fcntl .Nd ファイル制御 .Sh ライブラリ .Lb libc .Sh 書式 .In fcntl.h .Ft int .Fn fcntl "int fd" "int cmd" "..." .Sh 解説 .Fn fcntl は、記述子の制御機能を提供します。引数 .Fa fd は、後述する .Fa cmd によって操作される記述子です。 .Fa cmd の値によっては、 .Nm は 3 つめの引数 .Fa "int arg" を取ることができます。 .Bl -tag -width F_GETOWNX .It Dv F_DUPFD 次のような新しい記述子を返します。 .Pp .Bl -bullet -compact -offset 4n .It .Fa arg 以上で最小番号をもつ利用可能な記述子 .It オリジナルの記述子と同じオブジェクトを参照 .It オブジェクトがファイルだった場合、 同じファイルオフセットを共有 .It 同じアクセスモード (読取り、書込み、または読取りと書込み) .It 同じファイルステータスフラグ (すなわち、 両方のファイル記述子が同じファイルステータス フラグを共有) .It close-on-exec フラグは、 .Xr execve 2 システムコールの後でも 記述子をオープンしたままでいるように設定 .El .It Dv F_GETFD ファイル記述子 .Fa fd に結び付けられた close-on-exec フラグを、 .Dv FD_CLOEXEC として取得します。 返された値と .Dv FD_CLOEXEC の論理積が 0 の場合、ファイルは .Fn exec を実行してもオープンされたままになります。 そうでない場合、ファイルは .Fn exec の実行でクローズされます。 .Fa ( arg は無視されます)。 .It Dv F_SETFD .Fa fd に結び付けられた close-on-exec フラグを .Fa arg に設定します。 .Fa arg は 0 または前述の .Dv FD_CLOEXEC です。 .It Dv F_GETFL 後述するように記述子のステータスフラグを取得します .Fa ( arg は無視されます)。 .It Dv F_SETFL 記述子ステータスフラグを .Fa arg で指定される値に設定します。 .It Dv F_GETOWN 現時点で .Dv SIGIO シグナルと .Dv SIGURG シグナルを受信しているプロセス ID またはプロセスグループを取得 します。プロセスグループは負の値として返されます .Fa ( arg は無視されます)。 .It Dv F_SETOWN プロセスまたはプロセスグループが .Dv SIGIO シグナルおよび .Dv SIGURG シグナルを受信するように設定します。 プロセスグループは .Fa arg を負数にして与えることによって指定されます。そうでない場合、 .Fa arg はプロセス ID として解釈されます。 .El .Pp .Dv F_GETFL および .Dv F_SETFL 用のフラグは次のとおりです。 .Bl -tag -width O_NONBLOCKX .It Dv O_NONBLOCK 非ブロッキング入出力。 .Xr read 2 呼び出しで読み取るべきデータが無い場合、または .Xr write 2 操作がブロックするであろう場合に、読取り呼び出しまたは書込み呼び出しはエラー .Er EAGAIN で -1 を返します。 .It Dv O_APPEND 各書込みがファイルの末尾に追加されるようにします。 .Xr open 2 の .Dv O_APPEND フラグに対応します。 .It Dv O_DIRECT 読み書きにおけるキャッシュ効果を最小化または無くします。 システムは、読み書きするデータのキャッシングを避けようとします。 データのキャッシングが避けられない場合、 データのキャッシュに対する影響を最小化します。 注意せずに使用すると、本フラグは劇的に性能を劣化させます。 .It Dv O_ASYNC たとえば、読み取るべきデータが用意できたときなど、 入出力が可能になったときに .Dv SIGIO シグナルがプロセスグループに送信されるようにします。 .El .Pp 問合せ型ファイルロックを行なうためにいくつかのコマンドが利用できます。 これらのコマンドはすべて次の構造体で操作します。 .ne 7v .Bd -literal struct flock { off_t l_start; /* 開始位置のオフセット */ off_t l_len; /* len = 0 はファイル末尾までという意味 */ pid_t l_pid; /* ロック所有者 */ short l_type; /* ロックタイプ: 読取り/書込みなど */ short l_whence; /* l_start のタイプ */ }; .Ed 問合せ型レコードロックに利用できるコマンドは次のとおりです。 .Bl -tag -width F_SETLKWX .It Dv F_GETLK 3 番めの引数 .Fa arg を .Fa "struct flock" (前記を参照) へのポインタと解釈して、それによって指定される ロック記述をブロックする最初のロックを取得します。取り出された情報は、 .Fn fcntl に渡された .Fa flock 構造体内の情報に上書きされます。 このロックが作成されるのを妨げるロックが見つからない場合は、 構造体はこの関数呼び出しによっても変更されません。 ただし、ロックタイプが .Dv F_UNLCK に設定されている場合は除きます。 .It Dv F_SETLK 3 番めの引数 .Fa arg を .Fa "struct flock" (前記を参照) へのポインタと解釈して、それによって指定される ロック記述に従ってファイルセグメントロックを設定またはクリアします。 .Dv F_SETLK は、共有 (または読取り) ロック .Pq Dv F_RDLCK または排他的 (または書込み) ロック .Pq Dv F_WRLCK を確立、ならびにいずれかのタイプのロックを解除 .Pq Dv F_UNLCK するのに使用されます。 共有ロックまたは排他的ロックが設定できない場合、 .Fn fcntl は .Er EAGAIN でただちに戻ります。 .It Dv F_SETLKW このコマンドは .Dv F_SETLK と同じですが、共有ロックまたは排他的ロックが他のロックによって ブロックされる場合に、 要求が満たされるまでプロセスが待機する点が異なります。 .Fn fcntl がある領域を確保するために待機している間に 捕捉されるべきシグナルを受信して、シグナルハンドラが .Dv SA_RESTART .Pf ( Xr sigaction 2 を参照) を 指定していない場合、 .Fn fcntl は中断されます。 .El .Pp 共有ロックがファイルのあるセグメントに設定されている場合、 他のプロセスはそのセグメントまたはその 一部に共有ロックを設定できます。共有ロックは、保護している どの領域にも、他のプロセスが排他的ロックを設定するのを防止します。 ファイル記述子が読取りアクセスで開かれていない場合、 共有ロックの要求は処理を失敗します。 .Pp 排他的ロックは、保護している領域に他のプロセスが 共有ロックまたは排他的ロックを設定するのを防止します。 ファイルが書込みアクセスで開かれていない場合、 排他的ロックの要求は失敗します。 .Pp .Fa l_whence の値は .Dv SEEK_SET , .Dv SEEK_CUR , または .Dv SEEK_END で、これらは相対オフセット .Fa l_start バイトが、それぞれファイルの先頭、現在位置、 またはファイルの末尾から測定されることを指示します。 .Fa l_len の値はロックされる連続領域のバイト数です。 .Fa l_len が負の場合の結果は未定義です。 .Fa l_pid フィールドは、 ブロックするロックを保持しているプロセスのプロセス ID を返すために .Dv F_GETLK でのみ使用されます。 .Dv F_GETLK 要求が正常に完了すると .Fa l_whence の値は .Dv SEEK_SET になります。 .Pp ロックは現在のファイル末尾以降で開始したり、 ファイル末尾を越えて延長することはできますが、 ファイルの先頭より前で開始したり、 ファイルの先頭を越えて延長することはできません。 .Fa l_len が 0 に設定されている場合、ロックはそのファイルの ファイルオフセットの可能な最大の値まで延長されます。 .Fa l_whence と .Fa l_start がファイルの先頭を指しており、しかも .Fa l_len が 0 の場合はファイル全体がロックされます。 アプリケーションがファイル全体をロックしようとしているだけなら、 .Xr flock 2 システムコールの方がはるかに効率的です。 .Pp ファイル内の各バイトについて最大で 1 つのタイプのロックが設定されます。 呼び出しプロセスが .Dv F_SETLK 要求、または .Dv F_SETLKW 要求で指定した領域内に既存のロックを保持しているとき、 要求から正常に戻る前に、 指定の領域内の各バイトについて以前の ロックタイプが新しいロックタイプで置き換えられます。共有ロックと 排他的ロックのところで前述したように、 別のプロセスが指定の領域内にロックを保持しており、しかもそれらのロック のタイプが要求で指定されたタイプと競合するとき、 .Dv F_SETLK 要求は失敗し、 .Dv F_SETLKW 要求はブロックします。 .Pp このインタフェースは、System V と .St -p1003.1-88 が要求する不毛なセマンティクスに完全に従っています。 つまり、あるプロセスが保持している、 あるファイルと結び付けられたすべてのロックは、 そのファイルの記述子の .Em いずれか がそのプロセスによって クローズされたときに解除されます。 これは、サブルーチンライブラリがアクセスする可能性のあるファイル全てを アプリケーションが認識している必要がある ことを意味します。たとえば、パスワードファイルを更新する アプリケーションが、更新を行なうために パスワードファイルデータベースをロックし、 レコードを取り出すために .Xr getpwnam 3 を呼び出したとしましょう。 .Xr getpwnam 3 はパスワードデータベースをオープンし、読み取り、 そしてクローズするので、ロックは失われます。 データベースをクローズすると、ライブラリルーチン がデータベースへのロックを要求したことがない場合でさえ、 プロセスがデータベースに結び付けたすべての ロックが開放されてしまうのです。 このインタフェースの別のさほど重要でないセマンティクス上の問題は、 ロックが .Xr fork 2 関数を使用して作成された子プロセスによって継承されないことです。 .Xr flock 2 インタフェースは、はるかに合理的な last close セマンティクスを採用し、 ロックが子プロセスによって継承されるようになっています。 ライブラリを使用するときにロックの整合性を確実にする、 またはロックを子プロセスに渡したいアプリケーションについては .Xr flock 2 をお勧めします。 .Xr flock 2 と .Xr fcntl 2 ロックは同時に安全に使用できます。 ブロックするロックを保持しているプロセスがファイル記述子を以前に .Xr flock 2 でロックしていた場合、 .Fn fcntl F_GETLK は .Fa l_pid に \-1 を入れて戻ります。 .Pp プロセスの、あるファイルに結び付けられたすべてのロックは そのプロセスが終了するときに解除されます。 .Pp .Xr execve 2 の呼び出し前に取得されたすべてのロックは、 新規プログラムがそれらを解放するまで有効なままです。 新規プログラムがロックについて知らないならば、 プログラム終了まで解放されません。 .Pp あるロックした領域を制御しているプロセスが、 別のプロセスがロックした領域をロックしようとして 休眠状態にされる場合に、デッドロックが発生する可能性があります。 この実装では、ロックされた領域がアンロックされるまでの休眠が デッドロックを引き起こす可能性を検出すると、 .Er EDEADLK エラーで失敗します。 .Sh 戻り値 処理が正常に完了した場合、返される値は .Fa cmd に応じて次のようになります。 .Bl -tag -width F_GETOWNX -offset indent .It Dv F_DUPFD 新しいファイル記述子 .It Dv F_GETFD フラグの値 (下位ビットだけが定義されます) .It Dv F_GETFL フラグの値 .It Dv F_GETOWN ファイル記述子所有者の値 .It その他 \-1 以外の値 .El .Pp そうでない場合は -1 が返され、エラーを示すために .Va errno が設定されます。 .Sh エラー .Fn fcntl は次の場合に失敗します。 .Bl -tag -width Er .It Bq Er EAGAIN 引数 .Fa cmd は .Dv F_SETLK であり、ロックのタイプ .Pq Fa l_type は共有ロック .Pq Dv F_RDLCK 、または 排他的ロック .Pq Dv F_WRLCK で、ロックされるはずのファイルの セグメントは既に別のプロセスによって排他的に ロックされています。または、タイプが排他的なロックで、 ロックされるファイルのセグメントの一部が 既に別のプロセスによって共有ロックまたは排他的ロックされています。 .It Bq Er EBADF -.Fa fildes +.Fa fd は有効なオープンファイル記述子ではありません。 .Pp 引数 .Fa cmd が .Dv F_SETLK または .Dv F_SETLKW で、かつロックタイプ .Pq Fa l_type が共有ロック .Pq Dv F_RDLCK のとき、 -.Fa fildes +.Fa fd は読取り用に開かれた有効なファイル記述子ではありません。 .Pp 引数 .Fa cmd が .Dv F_SETLK または .Dv F_SETLKW で、かつロックタイプ .Pq Fa l_type が排他的ロック .Pq Dv F_WRLCK のとき、 -.Fa fildes +.Fa fd は書込み用に開かれた有効なファイル記述子ではありません。 .It Bq Er EDEADLK 引数 .Fa cmd が .Dv F_SETLKW であり、デッドロック条件が検出されました。 .It Bq Er EINTR 引数 .Fa cmd が .Dv F_SETLKW であり、関数がシグナルによって割り込まれれました。 .It Bq Er EINVAL .Fa cmd が .Dv F_DUPFD で、 .Fa arg が負であるかまたは許容される最大値より大きくなっています .Pf ( Xr getdtablesize 2 を参照)。 .Pp 引数 .Fa cmd が .Dv F_GETLK , .Dv F_SETLK , または .Dv F_SETLKW で、 .Fa arg が指すデータが有効でありません。または -.Fa fildes +.Fa fd が、ロックをサポートしないファイルを参照しています。 .It Bq Er EMFILE 引数 .Fa cmd が .Dv F_DUPFD であり、プロセスについて許容される最大数までファイル記述子が 既に使用されています。 .Fa arg で指定された以上のファイル記述子は利用できません。 .It Bq Er ENOLCK 引数 .Fa cmd が .Dv F_SETLK または .Dv F_SETLKW であり、ロック要求またはアンロック要求を満たすことによって、 システムが課した限界を越える数のロックされた領域がシステム内に できてしまいます。 .It Bq Er EPERM .Fa cmd は、 .Dv F_SETOWN であり、引数として指定されたプロセス ID またはプロセスグループ は、呼び出し側と異なるセッション内にあります。 .It Bq Er ESRCH .Fa cmd は .Dv F_SETOWN であり、引数として指定されたプロセス ID が使用されていません。 .El .Pp さらに、 .Fa fd が (ソケット上で開いている記述子とは反対に) 端末デバイス上で開いている記述子を参照する場合、 .Fa cmd で .Dv F_SETOWN を指定すると .Xr tcsetpgrp 3 と同じ理由で処理を失敗する可能性があり、 .Xr tcgetpgrp 3 で述べたような 理由で .Fa cmd で .Dv F_GETOWN を指定した場合に処理に失敗する可能性があります。 .Sh 関連項目 .Xr close 2 , .Xr execve 2 , .Xr flock 2 , .Xr getdtablesize 2 , .Xr open 2 , .Xr sigvec 2 , .Xr tcgetpgrp 3 , .Xr tcsetpgrp 3 .Sh 歴史 .Fn fcntl 関数は .Bx 4.2 で登場しました。 diff --git a/ja_JP.eucJP/man/man2/fork.2 b/ja_JP.eucJP/man/man2/fork.2 index c3e80f23fd..5da0e971f0 100644 --- a/ja_JP.eucJP/man/man2/fork.2 +++ b/ja_JP.eucJP/man/man2/fork.2 @@ -1,130 +1,130 @@ .\" Copyright (c) 1980, 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)fork.2 8.1 (Berkeley) 6/4/93 -.\" %FreeBSD: src/lib/libc/sys/fork.2,v 1.9.2.5 2002/01/09 14:44:52 sheldonh Exp % +.\" %FreeBSD: src/lib/libc/sys/fork.2,v 1.9.2.6 2002/07/30 19:04:25 silby Exp % .\" .\" $FreeBSD$ .Dd June 4, 1993 .Dt FORK 2 .Os .Sh 名称 .Nm fork .Nd 新しいプロセスを作成する .Sh ライブラリ .Lb libc .Sh 書式 .In sys/types.h .In unistd.h .Ft pid_t .Fn fork void .Sh 解説 .Fn fork によって新しいプロセスの作成が行われます。新しいプロセス (子プロセス)は、 以下の項目を除いた呼び出しプロセス (親プロセス) の正確なコピーです。 .Bl -bullet -offset indent .It 子プロセスはユニークなプロセス ID を持ちます。 .It 子プロセスは異なる親プロセス ID を持ちます (すなわち、親プロセスのプロセス ID です)。 .It 子プロセスは、専用の、親の記述子のコピーを持ちます。 それらの記述子は下層の同じオブジェクトを参照します。 つまり子と親の間で、たとえばファイルオブジェクト内の ファイルポインタが共有されます。そのため 子プロセスの記述子への .Xr lseek 2 が、その後の親による .Xr read 2 または .Xr write 2 に影響を及ぼします。この記述子コピーは、 新しく作成されたプロセス用の標準入出力を確立するために、 およびパイプをセットアップするために、シェルによっても使用されます。 .It 子プロセスのリソース使用状況は 0 に設定されます。 .Xr setrlimit 2 を参照してください。 .It すべてのインターバルタイマがクリアされます。 .Xr setitimer 2 を参照してください。 .El .Sh 戻り値 正常に完了した場合、 .Fn fork は、子プロセスに値 0 を返し、子プロセスのプロセス ID を親プロセスに返します。 そうでない場合は -1 が親プロセスに返され、子プロセスは作成されずに、 エラーを示すためにグローバル変数 .Va errno が設定されます。 .Sh エラー 次の場合に .Fn fork は処理に失敗し、子プロセスは作成されません。 .Bl -tag -width Er .It Bq Er EAGAIN 実行中のプロセスの合計数がシステムの限界を超えます。限界値は .Xr sysctl 3 の MIB 変数の .Dv KERN_MAXPROC によって指定されます (スーパユーザを除いて、 -実際には限界はこれより 1 つ小さくなります)。 +実際には限界はこれより 10 個少なくなります)。 .It Bq Er EAGAIN ユーザがスーパユーザでなく、 1 人のユーザによって実行中のプロセスの合計数にシステムが課す 限界を越えます。限界は .Xr sysctl 3 の MIB 変数の .Dv KERN_MAXPROCPERUID によって指定されます。 .It Bq Er EAGAIN ユーザがスーパユーザでなく、リソースパラメータの .Dv RLIMIT_NPROC に対応するソフトリソース限界を越えます。 .Pf ( Xr getrlimit 2 を参照)。 .It Bq Er ENOMEM 新しいプロセス用のスワップ空間が不充分です。 .El .Sh 関連項目 .Xr execve 2 , .Xr rfork 2 , .Xr setitimer 2 , .Xr setrlimit 2 , .Xr vfork 2 , .Xr wait 2 .Sh 歴史 .Fn fork 関数は .At v6 で登場しました。 diff --git a/ja_JP.eucJP/man/man2/rfork.2 b/ja_JP.eucJP/man/man2/rfork.2 index 9326f96558..8ffaaf22e4 100644 --- a/ja_JP.eucJP/man/man2/rfork.2 +++ b/ja_JP.eucJP/man/man2/rfork.2 @@ -1,174 +1,174 @@ .\" .\" This manual page is taken directly from Plan9, and modified to .\" describe the actual BSD implementation. Permission for .\" use of this page comes from Rob Pike . .\" -.\" %FreeBSD: src/lib/libc/sys/rfork.2,v 1.11.2.10 2001/12/14 18:34:01 ru Exp % +.\" %FreeBSD: src/lib/libc/sys/rfork.2,v 1.11.2.11 2002/07/30 19:04:25 silby Exp % .\" .\" $FreeBSD$ .Dd January 12, 1996 .Dt RFORK 2 .Os .Sh 名称 .Nm rfork .Nd プロセスリソースの操作 .Sh ライブラリ .Lb libc .Sh 書式 .In unistd.h .Ft int .Fn rfork "int flags" .Sh 解説 fork, vfork, rfork は、新しいプロセスが作成される唯一の方法です。 .Fn rfork への引数 .Fa flags は、起動しているプロセス (親) のどのリソースが新しいプロセス (子) に よって共有されるか、またはそれらのデフォルト値に初期化されるかを選択します。 リソースにはオープンファイル記述子テーブル (これは、共有される場合、 プロセスが他のプロセスについてファイルを開閉することを 許容します) およびオープンファイルが含まれます。 .Fa flags は次の項目の倫理和 (OR) です。 .Bl -tag -width "RFCNAMEG" -compact -offset indent .It RFPROC 設定されている場合、新しいプロセスが 作成されます。そうでない場合、変更が現在のプロセスに影響を及ぼします。 現在の実装は、このフラグが必ず設定されていることを要求します。 .It RFNOWAIT 設定されている場合、子プロセスは親プロセスから分離されます。 終了時に、子プロセスは、親プロセスが集めるステータスを残しません。 .Xr wait 2 を参照してください。 .It RFFDG 設定されている場合、起動側のファイル記述子テーブル .Xr ( intro 2 を参照) がコピーされます。 そうでない場合、2 つのプロセスが 1 つのテーブルを共有します。 .It RFCFDG 設定されている場合、新しいプロセスは新しいファイル記述子テーブルで 開始します。 .Dv RFFDG とは互いに排他的です。 .It RFMEM 設定されている場合、 通常、ハードウェアのページテーブルを直接共有することで、 カーネルはアドレス空間全体の共有を強制します。 子は、このような方法で、 親プロセスが所有しているすべてのセグメントを、 それが普段共有可能であるか否かに関係なく、 継承し共有します。 スタックセグメントは分割されない (親と子の両方が同じスタック上に復帰する) ので、 RFMEM フラグを指定した .Fn rfork は一般に、C 言語を含む高級言語から直接呼び出すことはできません。 共に設定可能なフラグは .Dv RFPROC だけです。 この問題を解決し、提供されたスタック上で新しいプロセスを 走らせるために補助関数が提供されています。詳しくは .Fn rfork_thread 3 を参照してください。 .It RFSIGSHARE 設定されている場合、カーネルは、親子間で sigacts 構造体を共有することを 強制します。 .It RFLINUXTHPN 設定されている場合、カーネルは、 子についてのスレッド終了時に、SIGCHILD の代わりに SIGUSR1 を返します。これは特定の Linux クローン動作を模倣するためです。 .El .Pp 共有ファイル記述子テーブル内のファイル記述子は、 明示的に閉じられるか、またはテーブルを 共有しているすべてのプロセスが終了するまで開いたままに保たれます。 .Pp .Dv RFPROC が設定されている場合、 親プロセス内で返される値は子プロセスのプロセス ID です。 子プロセス内で返される値は 0 です。 .Dv RFPROC がない場合、戻り値は 0 です。プロセス ID の範囲は 1 から最大整数値 .Ft ( int ) です。必要であれば、要求されたプロセスリソースが 利用できるようになるまで .Fn rfork は待機します。 .Pp .Fn fork は、 .Fn rfork "RFFDG | RFPROC" への呼び出しとして実装可能ですが、後方互換性のために そのようには実装されていません。 .Sh 戻り値 正常に完了した場合、 .Fn rfork は、子プロセスに値 0 を返し、子プロセスのプロセス ID を親プロセスに 返します。そうでない場合、子プロセスは作成されずに、 値 -1 が親プロセスに返され、 エラーを示すためにグローバル変数 .Va errno が設定されます。 .Sh エラー .Fn rfork は、次の場合に処理を失敗し、子プロセスは作成されません。 .Bl -tag -width Er .It Bq Er EAGAIN 実行中のプロセスの合計数がシステムの課す制限を超過してしまいます。 制限は .Xr sysctl 3 MIB 変数 .Dv KERN_MAXPROC によって指定されます (スーパユーザを除いて、制限は実際には -これより 1 少なくなります)。 +これより 10 個少なくなります)。 .It Bq Er EAGAIN ユーザがスーパユーザではなく、 1 人のユーザによる実行中のプロセスの合計数がシステムの課した制限を 超過してしまいます。制限は、 .Xr sysctl 3 MIB 変数 .Dv KERN_MAXPROCPERUID によって指定されます。 .It Bq Er EAGAIN ユーザがスーパユーザではなく、リソースパラメータ .Dv RLIMIT_NOFILE に対応するソフトリソースの制限を超過してしまいます .Pf ( Xr getrlimit 2 を参照)。 .It Bq Er EINVAL RFPROC フラグが指定されませんでした。 .It Bq Er EINVAL RFFDG フラグと RFCFDG フラグの両方が指定されました。 .It Bq Er ENOMEM 新しいプロセス用に十分なスワップ空間が不足しました。 .El .Sh 関連項目 .Xr fork 2 , .Xr intro 2 , .Xr minherit 2 , .Xr vfork 2 , .Xr rfork_thread 3 .Sh バグ .Fx は native な .Fn clone ライブラリコールを未だに実装されていませんし、 現在の pthreads 実装は RFMEM を指定した .Fn rfork を利用していません。 linux スレッドライブラリの native port である、 .Pa /usr/ports/devel/linuxthreads は RFMEM を利用して動作する .Fn clone 呼び出しを含んでいます。 .Fn rfork_thread ライブラリ関数は .Fn clone の代わりとして利用することができます。 .Sh 歴史 .Fn rfork 関数は Plan9 ではじめて登場しました。 diff --git a/ja_JP.eucJP/man/man5/make.conf.5 b/ja_JP.eucJP/man/man5/make.conf.5 index 8670806740..c6f964e901 100644 --- a/ja_JP.eucJP/man/man5/make.conf.5 +++ b/ja_JP.eucJP/man/man5/make.conf.5 @@ -1,853 +1,860 @@ .\" Copyright (c) 2000 .\" Mike W. Meyer .\" .\" 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/make.conf.5,v 1.12.2.19 2002/07/02 05:07:25 gshapiro Exp % +.\" %FreeBSD: src/share/man/man5/make.conf.5,v 1.12.2.23 2002/08/08 09:03:47 ru Exp % .\" .\" $FreeBSD$ .\" .Dd November 3, 2000 .Dt MAKE.CONF 5 .Os .Sh 名称 .Nm make.conf .Nd システムビルド情報 .Sh 解説 .Nm ファイルには .Fx のソースや ports アプリケーションの制御に関する設定が含まれています。 通常 .Nm ファイルは、システム管理者が、 これらの値をデフォルトから変更したい場合に作成します。 .Pp .Nm の用途は、コマンド実行やコンパイル動作を直接行うことではなく、 .Pa /usr/src , .Pa /usr/ports , .Pa /usr/doc などにある様々な makefile にインクルードされることです。 そのような makefile では、 内部の動作が .Nm の与える条件によって変化するようになっているのです。 .Pp .Pa /etc/make.conf ファイルはそれぞれ適切な .Pa Makefile からインクルードされます。 各々の Makefile の中では、 利用可能なすべてのオプションに対し、デフォルトの設定が与えられています。 .Pa /etc/make.conf で指定する必要があるオプションは、 システム管理者がデフォルトから変更したいと思ったものだけです。 .Pp ビルドの手続きは、大きく 4 つの領域に分けられます。 world、カーネル、ドキュメント、ports です。 .Nm で設定された変数はこれらの領域の 1 つ、2 つ、 あるいは全てに適用されます。 変数は、特定のビルドに対して .Xr make 1 の .Fl D オプションを用いて指定することもできます。 .Pp 以下のリストでは、それぞれ指定したビルドの途中で用いることのできる 各変数の名前と簡単な説明を記述します。 .Vt bool と指定されている変数では、その値は意味を持ちません。 変数が設定されていれば (たとえ値が .Dq Li FALSE や .Dq Li NO でも)、変数が設定されているものとして扱われます。 .Pp 次のリストは、すべてのビルド (あるいはビルド以外の目的で使われる .Pa Makefile ) で用いられる変数の名前と簡単な説明です。 .Bl -tag -width Ar .It Va CFLAGS .Pq Vt str C のコードをコンパイルするときのコンパイラの設定を制御します。 .Fl O を越えた最適化レベル .Pq Fl O2 , No ... はサポートされていません。 .Va BDECFLAGS は、 .An "Bruce Evans" Aq bde@FreeBSD.org が開発や変更のテスト用に勧めている .Xr gcc 1 設定です。 これは、設定すれば、以下のように使用可能です。 .Pp .Bd -literal -offset indent CFLAGS+=${BDECFLAGS} .Ed .It Va CVS_UPDATE .Pq Vt bool .Dq Li "make update" で ports を更新するときに .Xr cvs 1 を用いる場合、設定します。 .It Va CXXFLAGS .Pq Vt str C++ のコードをコンパイルするときのコンパイラの設定を制御します。 .Va CXXFLAGS は最初は .Va CFLAGS の値に設定されます。この .Va CXXFLAGS の値に追加を行いたい場合は、 .Dq Li = ではなく .Dq Li += を用いてください。 .It Va INSTALL .Pq Vt str デフォルトのインストールコマンドです。 インストールを行う前に比較を行いたい場合は、次の例を用いてください。 .Bd -literal -offset indent INSTALL="install -C" .Ed .It Va LOCAL_DIRS .Pq Vt str この変数には .Pa /usr/src で make を行うときに入るべきディレクトリをすべてリストします。 .It Va MTREE_FOLLOWS_SYMLINKS .Pq Vt str .Xr mtree 8 にシンボリックリンクを追跡させたい場合は、 これを .Dq Fl L に設定します。 .It Va NO_DOCUPDATE .Pq Vt bool .Dq Li "make update" で doc ツリーを更新させない場合これを設定します。 .It Va NO_PORTSUPDATE .Pq Vt bool .Dq Li "make update" で ports ツリーを更新させない場合これを設定します。 .It Va SUP_UPDATE .Pq Vt bool .Dq Li "make update" による ports の更新に .Xr cvsup 1 を使う場合これを設定します。 .It Va SUP .Pq Vt str .Dq Li "make update" で用いられる .Xr cvsup 1 コマンドの置き場所です。 .It Va SUPFLAGS .Pq Vt str .Dq Li "make update" を行うとき .Xr sup 1 に与えるフラグ。デフォルトは .Op Fl g L Ar 2 です。 .It Va SUPHOST .Pq Vt str .Dq Li "make update" を行うときに用いる sup サーバのホスト名です。 .It Va SUPFILE .Pq Vt str .Dq Li "make update" を行うとき、最初に用いる .Ar supfile です。デフォルトは .Pa /usr/share/examples/cvsup/standard\-supfile です。 .It Va SUPFILE1 .Pq Vt str .Dq Li "make update" を行うとき、二番目に用いる .Ar supfile です。デフォルトは .Pa /usr/share/examples/cvsup/secure\-supfile です。 .It Va SUPFILE2 .Pq Vt str .Dq Li "make update" を行うとき、三番目に用いる .Ar supfile です。デフォルトは .Pa /usr/share/examples/cvsup/secure\-supfile です。 .It Va PORTSSUPFILE .Pq Vt str .Dq Li "make update" を行うときの ports 用の .Ar supfile です。デフォルトは .Pa /usr/share/examples/cvsup/ports\-supfile です。 .It Va DOCSUPFILE .Pq Vt str .Dq Li "make update" を行うときのドキュメント用の .Ar supfile です。デフォルトは .Pa /usr/share/examples/cvsup/doc\-supfile です。 .It Va WARNS_WERROR WARNS が有効な場合、 -Werror を .Va CFLAGS へ追加させます。 .El .Pp 次のリストは、カーネルのビルドで用いられる変数の名前と簡単な説明です。 .Bl -tag -width Ar .It Va BOOT_COMCONSOLE_PORT .Pq Vt str ブートブロックが、 キーボード/ビデオカードの代わりに シリアルコンソールを用いるよう設定された場合に、 コンソールとして用いるポートアドレスです。 .It Va BOOT_COMCONSOLE_SPEED .Pq Vt int ブートブロックが、 キーボード/ビデオカードの代わりに シリアルコンソールを用いるよう設定された場合に、 コンソールで用いるボーレートです。 .It Va BOOTWAIT .Pq Vt int カーネルがデフォルトカーネルのブートを開始する前に、 コンソールのキーが押されるのを待つ時間を制御します。 値はだいたいミリ秒単位となります。 ディスクからブートする前のキー入力の認識は BIOS が行うので、 これが 0 に設定されていた場合でも、 ユーザの選択したブートパラメータを与えることは可能です。 .It Va COPTFLAGS .Pq Vt str カーネルをコンパイルするときのコンパイラの設定を制御します。 .Op Fl O を越えた最適化レベル .Pq Op Fl O2 , No ...\& は、動作が保証されていません。 .It Va KERNCONF .Pq Vt str .Dq Li "${MAKE} buildkernel" によるビルドと .Dq Li "${MAKE} installkernel" . によるインストールとで、 どのカーネル設定を用いるかを制御します。例えば .Bd -literal -offset indent KERNCONF=MINE DEBUG GENERIC OTHERMACHINE .Ed .Pp とすると、 .Pa MINE , DEBUG , GENERIC , OTHERMACHINE といった各設定ファイルに対応するカーネルをビルドし、 .Pa MINE に対応するカーネルをインストールします。 デフォルトは .Pa GENERIC です。 .It Va NO_KERNELCONFIG .Pq Vt bool .Dq Li "${MAKE} buildkernel" の際に .Xr config 8 を実行しない場合には、これを設定します。 .It Va NO_KERNELDEPEND .Pq Vt bool .Dq Li "${MAKE} buildkernel" の際に .Dq Li "${MAKE} depend" を実行しない場合には、これを設定します。 .It Va NO_MODULES .Pq Vt bool カーネルといっしょにモジュールをビルドしない場合に設定します。 +.It Va MODULES_OVERRIDE +.Pq Vt str +モジュールすべてではなく一部をビルドしたい場合、 +モジュールリストをここに設定します。 .El .Pp 次のリストは、world のビルドで用いられる変数の名前と簡単な説明です。 .Bl -tag -width Ar .It Va COMPAT1X .Pq Vt bool .Fx 1 互換ライブラリをインストールする場合に設定します。 .It Va COMPAT20 .Pq Vt bool .Fx 2.0 互換ライブラリをインストールする場合に設定します。 .It Va COMPAT21 .Pq Vt bool .Fx 2.1 互換ライブラリをインストールする場合に設定します。 .It Va COMPAT22 .Pq Vt bool .Fx 2.2 互換ライブラリをインストールする場合に設定します。 .It Va COMPAT3X .Pq Vt bool .Fx 3 互換ライブラリをインストールする場合に設定します。 .It Va COMPAT4X .Pq Vt bool .Fx 4 互換ライブラリをインストールする場合に設定します。 .It Va ENABLE_SUIDPERL .Pq Vt bool suid .Xr perl 1 バイナリのインストールを行う場合に設定します。 .It Va FETCH_CMD .Pq Vt str ファイルの取得に用いるコマンドです。 通常は .Xr fetch 1 です。 .It Va MAKE_IDEA .Pq Vt bool IDEA 暗号化コードをビルドする場合に設定します。 このコードは米国やヨーロッパの多くの国々で特許が取得されています。 合法的に IDEA を使えるかどうか決めるのは .Em あなたの責任 です。 .It Va MAKE_KERBEROS4 .Pq Vt bool KerverosIV (KTH eBones) をビルドする場合に設定します。 .It Va MAKE_KERBEROS5 .Pq Vt bool Kerveros5 (KTH Heimdal) をビルドする場合に設定します。 .Em 注意! これはまだ実験的なコードです。 安定している Kerberos5 が必要ならば、 ports を用いてください。 .It Va ENABLE_SUID_K5SU .Pq Vt bool k5su ユーティリティを使用したい場合に設定します。 設定しないと、本ユーティリティはセットユーザ ID ビットをセット されずにインストールされます。 .It Va MODULES_WITH_WORLD .Pq Vt bool カーネルと同時にではなく、 システムと同時にモジュールをビルドする場合に設定します。 .It Va NO_CVS .Pq Vt bool CVS をビルドしない場合に設定します。 .It Va NO_BIND .Pq Vt bool BIND をビルドしない場合に設定します。 .It Va NO_FORTRAN .Pq Vt bool .Xr g77 1 と関連ライブラリをビルドしない場合に設定します。 .It Va NO_I4B .Pq Vt bool isdn4bsd パッケージをビルドしない場合に設定します。 +.It Va NO_IPFILTER +.Pq Vt bool +IP Filter パッケージをビルドしない場合に設定します。 .It Va NO_LPR .Pq Vt bool .Xr lpr 1 と関連プログラムをビルドしない場合に設定します。 .It Va NO_MAILWRAPPER .Pq Vt bool MTA セレクタである .Xr mailwrapper 8 をビルドしない場合に設定します。 .It Va NO_MAKEDEV .Pq Vt bool インストールの際に .Pa /dev で .Dq Li "MAKEDEV all" を実行しない場合に設定します。 .It Va NO_OBJC .Pq Vt bool Objective C のサポートをビルドしない場合に設定します。 .It Va NO_OPENSSH .Pq Vt bool OpenSSH をビルドしない場合に設定します。 .It Va NO_OPENSSL .Pq Vt bool OpenSSL をビルドしない場合に設定します (同時に .Va NO_OPENSSH も設定されたことになります)。 .It Va NO_SENDMAIL .Pq Vt bool .Xr sendmail 8 と関連プログラムをビルドしない場合に設定します。 .It Va NO_SHAREDOCS .Pq Vt bool .Bx 4.4 の古い文書をビルドしない場合に設定します。 .It Va NO_TCSH .Pq Vt bool .Pa /bin/csh (これは .Xr tcsh 1 です) をビルド・インストールしない場合に設定します。 .It Va NO_X .Pq Vt bool X\-Windows のサポート (例えば .Xr doscmd 1 など) をコンパイルしない場合に設定します。 .It Va NOCLEAN .Pq Vt bool .Dq Li "make buildworld" の途中で clean を行わない場合に設定します。 何をやっているかわからない人は設定すべきではありません。 .It Va NOCLEANDIR .Pq Vt bool .Dq Li "${MAKE} cleandir" の代わりに .Dq Li "${MAKE} clean" を実行する場合に設定します。 .It Va NOCRYPT .Pq Vt bool crypto コードを一切ビルドしない場合に設定します。 .It Va NOGAMES .Pq Vt bool ゲームをビルドしない場合に設定します。 .It Va NOINFO .Pq Vt bool .Xr info 5 各ファイルを作成・インストールしない場合に設定します。 .It Va NOLIBC_R .Pq Vt bool .Nm libc_r .Pf ( Nm libc のリエントラント版) をビルドしない場合に設定します。 .It Va NOMANCOMPRESS .Pq Vt bool man ページのインストールの際に圧縮を行わない場合に設定します。 .It Va NOPERL .Pq Vt bool .Xr perl 1 をビルドしない場合に設定します。 .It Va NOPROFILE .Pq Vt bool profile 版ライブラリをコンパイルしない場合に設定します。 .It Va NOSECURE .Pq Vt bool .Pa secure サブディレクトリで crypto コードをビルドしない場合に設定します。 .It Va NOSHARE .Pq Vt bool .Pa share サブディレクトリをビルドしない場合に設定します。 .It Va NOUUCP .Pq Vt bool .Xr uucp 1 と関連プログラムをビルドしない場合に設定します。 .It Va PERL_THREADED .Pq Vt bool .Xr perl 1 をスレッドサポート機能込みでビルド・インストールする場合に設定します。 .It Va PPP_NOSUID .Pq Vt bool .Xr ppp 8 を suid root プログラムとしてはインストールしない場合に設定します。 .It Va SENDMAIL_MC .Pq Vt str インストール時に用いるデフォルトの m4 設定ファイルです。 この値には .Pa .mc ファイルのフルパスを与えます。例えば .Pa /etc/mail/myconfig.mc です。 make install すると、既存の .Pa /etc/mail/sendmail.cf を上書きしてしまうので、注意して使ってください。 .Va SENDMAIL_CF はもう推奨されなくなりました。 .Pa /etc/mail/sendmail.mc の値は使用しないでください。 buildworld によって .Pa /etc/mail/sendmail.cf が作成されるのは installworld によって更新された .Xr sendmail 8 バイナリがインストールされる前だからです。 .It Va SENDMAIL_SUBMIT_MC .Pq Vt str インストール時に用いるメール提出用デフォルト m4 設定ファイルです。 この値には .Pa .mc ファイルのフルパスを与えます。例えば .Pa /etc/mail/mysubmit.mc です。 インストールによって既存の .Pa /etc/mail/submit.cf が上書きされてしまいますので、注意して使用してください。 .Pa /etc/mail/submit.mc の値は使用しないでください。 buildworld によって .Pa /etc/mail/submit.cf が作成されるのは installworld によって更新された .Xr sendmail 8 バイナリがインストールされる前だからです。 .It Va SENDMAIL_ADDITIONAL_MC .Pq Vt str ビルド時に .Pa .cf ファイルに変換される追加分の .Pa .mc ファイル (複数指定可) です。 値には、これらの .Pa .mc ファイルへのフルパスを与えます。 例えば .Pa /etc/mail/foo.mc .Pa /etc/mail/bar.mc など。 .Pa /etc/mail/sendmail.mc の値は使用しないでください。 buildworld によって .Pa /etc/mail/sendmail.cf が作成されるのは installworld によって更新された .Xr sendmail 8 バイナリがインストールされる前だからです。 .It Va SENDMAIL_M4_FLAGS .Pq Vt str .Pa .mc ファイルから .Pa .cf ファイルを作成するときに m4 に渡されるフラグ。 .It Va SENDMAIL_CFLAGS .Pq Vt str .Xr sendmail 8 をビルドするときにコンパイルコマンドに渡すフラグです。 .Va SENDMAIL_* 各フラグを用いれば、 SASL サポートをその設定と共に指定できます。 例えば次のようにします。 .Bd -literal -offset indent SENDMAIL_CFLAGS=-I/usr/local/include -DSASL SENDMAIL_LDFLAGS=-L/usr/local/lib SENDMAIL_LDADD=-lsasl .Ed .It Va SENDMAIL_LDFLAGS .Pq Vt str .Xr sendmail 8 をビルドするときに .Xr ld 1 コマンドに渡すフラグです。 .It Va SENDMAIL_LDADD .Pq Vt str .Xr sendmail 8 をビルドするときに .Xr ld 1 コマンドの末尾に追加するフラグです。 .It Va SENDMAIL_DPADD .Pq Vt str .Xr sendmail 8 をビルドするときに追加する依存関係です。 .It Va SENDMAIL_SET_USER_ID .Pq Vt bool 設定すると、 .Xr sendmail 8 をセットグループ ID ではなく root にセットユーザ ID したバイナリとしてインストールし、 .Pa /etc/mail/submit.{cf,mc} をインストールしません。 このフラグの使用は推奨できません。 可能であれば、 .Pa /etc/mail/README に書かれている代りの方法を採用すべきです。 .It Va SENDMAIL_MAP_PERMS .Pq Vt str このモードのエイリアスおよびマップのデータベースファイルが、 .Pa /etc/mail/Makefile を使用して作成されます。 デフォルト値は 0640 です。 .El .Pp 次のリストは、ドキュメントのビルドで用いられる変数の名前と簡単な説明です。 .Bl -tag -width Ar .It Va DISTDIR .Pq Vt str distfiles が保存されている場所です。 通常これは .Va PORTSDIR の .Pa distfiles です。 .It Va DOC_LANG .Pq Vt str ビルド・インストール対象の言語とエンコーディングのリストです。 .It Va PRINTERDEVICE .Pq Vt str システム文書のデフォルトのフォーマットです。 プリンタに依存します。 簡単なプリンタなら .Dq Li ascii に、PostScript プリンタや グラフィックスプリンタ + ghostscript フィルタなら .Dq Li ps に設定できます。 .El .Pp 次のリストは、ports のビルドで用いられる変数の名前と簡単な説明です。 .Bl -tag -width Ar .It Va FORCE_PKG_REGISTER .Pq Vt bool 既存の package (訳注: FreeBSD の package system におけるパッケージを指す場合にこう表記します) の登録情報を上書きする場合に設定します。 .It Va HAVE_MOTIF .Pq Vt bool システムに Motif がある場合に設定します。 .It Va KRB5_HOME .Pq Vt str MIT Kerberos5 の port を .Pa /usr/local 以外にインストールしたい場合に設定します。 .\"translator: "ports" で固有単語とみなすべき? .It Va LOCALBASE .Pq Vt str X 以外の ports をインストールする際のベースディレクトリを与えます。 これは .Pa /usr/ports でビルドを行う際に .Va PREFIX にデフォルト値として与えられます。 .It Va MASTER_SITE_AFTERSTEP .Pq Vt str AfterStep の ports のマスタサイトを変更します。 パスの最後の部分は .Dq Li /%SUBDIR%/ でなければなりません。 .It Va MASTER_SITE_BACKUP .Pq Vt str .Pa Makefile にリストされている場所が使えない場合、 ports が distfile をチェックしに行く場所を制御します。 パスの最後の部分は .Dq Li /${DIST_SUBDIR}/ でなければなりません。 .It Va MASTER_SITE_COMP_SOURCES .Pq Vt str .Pa comp.sources ports のマスタサイトの場所を制御します。 パスの最後の部分は .Dq Li %SUBDIR%/ でなければなりません。 .It Va MASTER_SITE_GNOME .Pq Vt str GNOME ports のマスタサイトの場所を制御します。 パスの最後の部分は .Dq Li %SUBDIR%/ でなければなりません。 .It Va MASTER_SITE_GNU .Pq Vt str GNU ports のマスタサイトの場所を制御します。 パスの最後の部分は .Dq Li %SUBDIR%/ でなければなりません。 .It Va MASTER_SITE_KDE .Pq Vt str KDE ports のマスタサイトの場所を制御します。 パスの最後の部分は .Dq Li %SUBDIR%/ でなければなりません。 .It Va MASTER_SITE_FREEBSD .Pq Vt bool 設定されていると、すべてのファイルをマスタの .Fx サイトから取得します。 .It Va MASTER_SITE_MOZILLA .Pq Vt str Mozilla ports のマスタサイトの場所を制御します。 パスの最後の部分は .Dq Li %SUBDIR%/ でなければなりません。 .It Va MASTER_SITE_OVERRIDE .Pq Vt str 設定されていると、ports の .Pa Makefile にリストされているサイトよりも先に、このサイトをチェックしに行きます。 次のようにすればバックアップサイトを先にチェックさせることができます。 .Bd -literal -offset indent MASTER_SITE_OVERRIDE?= ${MASTER_SITE_BACKUP} .Ed .It Va MASTER_SITE_PERL_CPAN .Pq Vt str Perl ports のマスタサイトの場所を制御します。 パスの最後の部分は .\".Bd -literal -offset indent .\" /%SUBDIR%/ .\".Ed .Dq Li /%SUBDIR%/ でなければなりません。 .\"translator: ここの .Bd .Ed はコメントアウトしました。 .It Va MASTER_SORT_REGEX .Pq Vt str ミラーセットのソート順を制御する場合に設定します。 .Pa .jp ドメインのミラーを優先的に用いたければ、以下のような設定をします。 .Bd -literal -offset indent MASTER_SORT_REGEX?= ^file: ^ftp://ftp\.FreeBSD\.org/pub/FreeBSD/ports/local-distfiles/ ://[^/]*\.jp/ ://[^/]*\.jp\. .Ed .Pp 他の国別 TLD ドメインのユーザは、 .Dq Li jp を適切なドメインに変更してください。 .It Va MASTER_SITE_RINGSERVER .Pq Vt str Ringserver ports のマスタサイトの場所を制御します。 パスの最後の部分は .Dq Li /%SUBDIR%/ でなければなりません。 .It Va MASTER_SITE_RUBY .Pq Vt str Ruby ports のマスタサイトの場所を制御します。 パスの最後の部分は .Dq Li /%SUBDIR%/ でなければなりません。 .It Va MASTER_SITE_SUNSITE .Pq Vt str Sunsite ports のマスタサイトの場所を制御します。 パスの最後の部分は .Dq Li /%SUBDIR%/ でなければなりません。 .It Va MASTER_SITE_TCLTK .Pq Vt str Tcl/Tk ports のマスタサイトの場所を制御します。 パスの最後の部分は .Dq Li /%SUBDIR%/ でなければなりません。 .It Va MASTER_SITE_TEX_CTAN .Pq Vt str TeX ports のマスタサイトの場所を制御します。 パスの最後の部分は .Dq Li /%SUBDIR%/ でなければなりません。 .It Va MASTER_SITE_WINDOWMAKER .Pq Vt str WindowMaker ports のマスタサイトの場所を制御します。 パスの最後の部分は .Dq Li /%SUBDIR%/ でなければなりません。 .It Va MASTER_SITE_XCONTRIB .Pq Vt str X contrib の ports のマスタサイトの場所を制御します。 パスの最後の部分は .Dq Li /%SUBDIR%/ でなければなりません。 .It Va MASTER_SITE_XEMACS .Pq Vt str Xemacs ports のマスタサイトの場所を制御します。 パスの最後の部分は .Dq Li /%SUBDIR%/ でなければなりません。 .It Va MASTER_SITE_XFREE .Pq Vt str XFree ports のマスタサイトの場所を制御します。 パスの最後の部分は .Dq Li /%SUBDIR%/ でなければなりません。 .It Va MOTIFLIB .Pq Vt str .Pa libXm.a と .Pa libXm.so の場所です。 .It Va MOTIF_STATIC .Pq Vt bool Motif を用いる ports を、Motif の共有ライブラリを持たない システム上でも実行させたい場合に設定します。 .It Va NOCLEANDEPENDS .Pq Vt bool .Dq Li "make clean" によって clean される他の ports から依存されている ports を clean したくない場合に設定します。 .It Va NOPORTDOCS .Pq Vt bool ports と同時に追加ドキュメントをインストールしない場合に設定します。 .It Va PACKAGES .Pq Vt str package ターゲットのみに用いられます。 package ツリーのディレクトリです。 .It Va PATCH_SITES .Pq Vt str パッチファイルの配布をしている一次サイトの場所です。 .It Va PORTSDIR .Pq Vt str ports ツリーの場所です。 .It Va USA_RESIDENT .Pq Vt bool 米国居住者は設定してください。 設定すると、米国輸出規制に従う必要がある ports が、 この規制に従うようになります。 .It Va WITHOUT_X11 .Pq Vt bool 設定すると、X11 サポート有り無しの両方で構築可能な ports を、 デフォルトで X11 サポート無しで構築するようにします。 .It Va WRKDIRPREFIX .Pq Vt str ports をビルドする際に用いる一時ファイルを作成する場所です。 .It Va X11BASE .Pq Vt str X11 ディストリビューションを .Pa /usr/X11R6 以外の場所にインストールしたい場合、その場所を設定します。 .El .Sh 関連ファイル .Bl -tag -width /etc/defaults/make.conf -compact .It Pa /etc/defaults/make.conf .It Pa /etc/make.conf .It Pa /usr/doc/Makefile .It Pa /usr/src/Makefile .It Pa /usr/src/Makefile.inc1 .It Pa /usr/ports/Mk/bsd.port.mk .It Pa /usr/ports/Mk/bsd.sites.mk .El .Sh 関連項目 .Xr gcc 1 , .Xr install 1 , .Xr make 1 , .Xr ports 7 , .Xr lpd 8 , .Xr sendmail 8 .Sh 歴史 .Nm ファイルは .Fx 4.0 以前のいつかに登場しました。 .Sh 作者 このマニュアルページは .An "Mike W. Meyer" Aq mwm@mired.org が書きました。 .Sh バグ このマニュアルページは現在の .Nm で利用できるオプションに比べると、 古くなることが時々あるかもしれません。 現在利用できる最新のオプションについては、 .Pa /etc/defaults/make.conf ファイルを調べてください。 diff --git a/ja_JP.eucJP/man/man5/opieaccess.5 b/ja_JP.eucJP/man/man5/opieaccess.5 index 6e958b76df..9961c977b7 100644 --- a/ja_JP.eucJP/man/man5/opieaccess.5 +++ b/ja_JP.eucJP/man/man5/opieaccess.5 @@ -1,94 +1,96 @@ .\" opieaccess.5: Manual page describing the /etc/opieaccess file. .\" .\" Portions of this software are Copyright 1995 by Randall Atkinson and Dan .\" McDonald, All Rights Reserved. All Rights under this copyright are assigned .\" to the U.S. Naval Research Laboratory (NRL). The NRL Copyright Notice and .\" License Agreement applies to this software. .\" .\" History: .\" +.\" Modified by cmetz for OPIE 2.4. Fixed "0PIE" typo. .\" Written at NRL for OPIE 2.0. .\" -.\" $FreeBSD: doc/ja_JP.eucJP/man/man5/opieaccess.5,v 1.3 2001/05/14 01:09:30 horikawa Exp $ .ll 6i .pl 10.5i .\" @(#)opieaccess.5 2.0 (NRL) 1/10/95 +.\" %FreeBSD: src/contrib/opie/opieaccess.5,v 1.2.8.3 2002/07/15 14:48:43 des Exp % +.\" $FreeBSD$ .\" WORD: passive attack 受動攻撃 .\" .lt 6.0i .TH OPIEACCESS 5 "January 10, 1995" .AT 3 .SH 名称 /etc/opieaccess \- 信頼できるネットワークの OPIE(One-time Password In Everything) データベース .SH 解説 .I opieaccess ファイルは、受動攻撃に対するセキュリティに関して、そのシステム が信頼しても構わないと考えられるネットワークのリストを含みます。 ここで、信頼できるネットワークからのユーザは、OPIE 応答を用いてログインする ことができますが、必ずしも OPIE 応答を使う必要はありません。一方、 信頼できないネットワークからのユーザは、必ず OPIE 応答を使う (これがデフォルトの動作) 必要があります。 "内側の" ネットワークに関しては、そのサイトに対して OPIE の使用を強制 しませんし、また、OPIE を使って自分のパスワードを保護するかどうかを ユーザが選ぶことができるので、この信頼関係により、サイトがよりスムーズに OPIE に移行することができます。 .sp OPIE システムは受動攻撃からユーザを保護するものですが、 .I opeiaccess ファイルで実装された信頼という全概念は、 それと同様の受動攻撃に対して システムのバックアップをオープンにしてしまいます。 従って、この信頼という概念は重大なセキュリティホールとなります。 本バージョンの OPIE にこのような .I opieaccess が存在するのは、ひとえに、OPIE を使いたくないユーザのせいで自分の アカウントを破られたくないユーザが OPIE を使えなくなるよりも、 このようなユーザが OPIE を使えるようにすることの方がよいと信じているためです。 どのような環境であれ、 trust 機能を活かした本バージョンの OPIE は移行のためのツールと考えるべきで、 永久に使い続けるべきではありません。 移行のためのツールとして使う必要がなくなった時点で、 .I opieaccess ファイルをサポートしないバージョンの OPIE を構築し、OPIE システムの 裏をかくための手段としてこのファイルを使おうとする攻撃者にチャンスを 与えないようにする必要があります。 .sp .I opieaccess は、以下のように空白で区切られた 3 つのフィールドからなる行から構成されます (区切りとしてタブも正しく解釈されますが、空白を代わりに使って下さい)。 .PP .nf .ta \w' 'u フィールド名 内容 action OPIEを利用しないログインを "許可" もしくは "拒否" します address 照合するネットワークのアドレスです mask 照合のためのネットワークのマスクです .fi サブネットは適切なアドレスとマスクを使うことで制御されます。 個々のホストは 255.255.255.255 のマスクと適切なアドレスを使うことで 制御されます。 どの規則も一致しない場合、デフォルトでは OPIE 無しのログインは拒否されます。 .SH 関連項目 .BR ftpd (8) .BR login (1), .BR opie (4), .BR opiekeys (5), .BR opiepasswd (1), .BR opieinfo (1), .BR su (1), .SH 作者 Bellcore の S/Key は Bellcore の Phil Karn, Neil M. Haller, John S. Walden によって書かれました。 OPIE は NRL で Randall Atkinson, Dan McDonald, Craig Metz によって作成 されました。 S/Key は Bell Communications Research (Bellcore) のトレードマークです。 .SH 連絡先 OPIE は Bellcore の "S/Key Users" メーリングリストで議論されました。 参加するためには、電子メールを以下の所に送って下さい。 .sp skey-users-request@thumper.bellcore.com diff --git a/ja_JP.eucJP/man/man5/opiekeys.5 b/ja_JP.eucJP/man/man5/opiekeys.5 index 306825856e..34c0695576 100644 --- a/ja_JP.eucJP/man/man5/opiekeys.5 +++ b/ja_JP.eucJP/man/man5/opiekeys.5 @@ -1,70 +1,70 @@ .\" opiekeys.5: Manual page describing the /etc/opiekeys file. .\" .\" Portions of this software are Copyright 1995 by Randall Atkinson and Dan .\" McDonald, All Rights Reserved. All Rights under this copyright are assigned .\" to the U.S. Naval Research Laboratory (NRL). The NRL Copyright Notice and .\" License Agreement applies to this software. .\" .\" History: .\" .\" Modified by cmetz for OPIE 2.32. This is opiekeys.5, not opiekeys.1 or .\" opieaccess.5. .\" Written at NRL for OPIE 2.0. .\" -.\" $FreeBSD$ .ll 6i .pl 10.5i .\" @(#)opiekeys.5 2.0 (NRL) 1/10/95 -.\" %FreeBSD: src/contrib/opie/opiekeys.5,v 1.3.6.1 2000/06/09 07:14:56 kris Exp % +.\" %FreeBSD: src/contrib/opie/opiekeys.5,v 1.3.6.3 2002/07/15 14:48:43 des Exp % +.\" $FreeBSD$ .\" .lt 6.0i .TH OPIEKEYS 5 "January 10, 1995" .AT 3 .SH 名称 /etc/opiekeys \- ユーザキー情報の OPIE(One-time Password In Everything) データベース .SH 解説 .I opiekeys ファイルには OPIE ソフトウェアがユーザ認証のために使用するユーザ情報が格納されます。 .I opiekeys ファイルは S/Key の .I /etc/skeykeys データベースファイルに対して下位互換ですが、これは ハッシングアルゴリズム (MD4 および MD5) が S/Key と OPIE で同一の 場合に限られます (すなわち、 MD5 OPIE は MD4 S/Key キーを使用できません)。 .I opiekeys ファイルは、空白 (タブは正しく解釈されますが、代りにスペースを使うべきです) で区切られた次のような 6 フィールドから成ります: .PP .nf .ta \w' 'u フィールド名 内容 name ユーザのログイン名。 sequence ユーザのシーケンス番号。 seed ユーザの種。 key ユーザの最後のレスポンス (16 進数)。 date 最後に変更された日付。 time 最後に変更された時刻。 .fi .SH 関連項目 .BR ftpd (8) .BR login (1), .BR opie (4), .BR opiekeys (5), .BR opiepasswd (1), .BR opieinfo (1), .BR su (1), .SH 作者 Bellcore の S/Key は、 Bellcore の Phil Karn, Neil M. Haller, John S. Walden が記述しました。 OPIE は NRL にて Randall Atkinson, Dan McDonald, Craig Metz が作成しました。 S/Key は Bell Communications Research (Bellcore) の商標です。 .SH 連絡先 OPIE は Bellcore の "S/Key Users" メーリングリストで議論されています。 加入要求は電子メールを下記アドレスに送ってください: .sp skey-users-request@thumper.bellcore.com diff --git a/ja_JP.eucJP/man/man7/groff_mdoc.7 b/ja_JP.eucJP/man/man7/groff_mdoc.7 index 77500fd189..7edf321a59 100644 --- a/ja_JP.eucJP/man/man7/groff_mdoc.7 +++ b/ja_JP.eucJP/man/man7/groff_mdoc.7 @@ -1,4119 +1,4117 @@ .\" groff_mdoc.man .\" .\" A complete reference of the mdoc macro package for GNU troff. .\" .\" Based on NetBSD's mdoc.samples.7, version 1.21. .\" .\" .\" Warning: You can't format this file with the old mdoc macros! .\" .\" .\" Copyright (c) 1990, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)mdoc.samples.7 8.2 (Berkeley) 12/30/93 .\" .\" This reference invokes every macro in the package several .\" times and is guaranteed to give a worst case performance .\" for an already extremely slow package. .\" -.\" %FreeBSD: src/contrib/groff/tmac/groff_mdoc.man,v 1.1.1.1.4.8 2002/06/18 00:50:30 dougb Exp % -.\" .\" $FreeBSD$ .\" Copyright (c) 2001 FreeBSD jpman project .\" This is for Japanese translation done by FreeBSD jpman project. .\" WORD: epoch 基準時点 (協定世界時 1970年1月1日 00:00:00) .\" WORD: display ディスプレイ .\" WORD: bracket 角括弧 [] .\" WORD: brace 中括弧 () .\" WORD: angle bracket 山括弧 <> .\" WORD: acronym 頭字語 .\" WORD: keep キープ .\" WORD: literal リテラル .\" WORD: content macro コンテントマクロ .\" WORD: command modifier コマンド修飾子 .\" WORD: enclosure 囲い .\" WORD: quoting クォート .\" WORD: nest 入れ子 .\" WORD: block ragged 凹凸ブロック .\" WORD: constant width character 定幅文字 .\" WORD: scale indicator スケール指示子 .\" WORD: hanging tag ぶら下がりタグ .\" WORD: overhanging tag オーバハングタグ .\" WORD: parsed 構文解析される .\" WORD: callable 呼び出し可能 . .Dd July 20, 2001 .Os .Dt GROFF_MDOC 7 . . .Sh 名称 . .Nm groff_mdoc .Nd groff mdoc の実装に関するリファレンス . . .Sh 書式 . .Nm groff Fl m Ns Cm doc Ar . . .Sh 解説 . .Tn GNU .Xr troff 1 用の .Em コンテントベース でかつ .Em 領域ベース な整形用パッケージである .Nm \-mdoc マクロパッケージを使って .Ux マニュアルページを書くための完全なリファレンスです。 前身である .Xr \-man 7 パッケージは、フォントの操作や他の写植方法の詳細は個々の作者に任せ、 ページのレイアウトを取り扱ってきました。 .Nm \-mdoc では、ページレイアウトマクロは タイトル、セクションのヘッダ、ディスプレイ、リストのマクロからなる .Em "ページ構造領域" を形成しています。本質的にこれらの要素は整形されたページにおける テキストの物理的位置に影響を与えます。 ページ構造領域に加え、さらに .Em マニュアル 領域および .Em 一般 テキスト領域の 2 つの領域があります。 一般テキスト領域は、テキストの一部をクォートしたり強調したりと いったような作業を実行するマクロとして定義されています。 マニュアル領域はコマンドやルーチン、それに .Ux の関連ファイルを記述するための日常使用されるインフォーマルな言葉の サブセットであるマクロとして定義されています。 マニュアル領域のマクロはコマンド名、コマンド行の引数とオプション、 関数名、関数のパラメータ、パス名、変数名、他のマニュアルページへの クロスリファレンスなどを扱います。 これらの領域の項目は作者とマニュアルページの将来のユーザの両者に とって価値のあるものです。 マニュアル間で一貫性を高めることによって将来のドキュメントツールへの 移行が容易になることが期待されます。 .Pp .Ux マニュアルページ全体を通して、マニュアルのエントリは単純に マニュアルページ (a man page) とみなされます。 これは実際のページ数と関係ありませんし、性差別をする意図もありません。 .\" 訳注: a man page -- 1 ページ (a page) と男 (man) の意味 . . .Sh "さあ、始めよう" . このドキュメントの残りの部分で説明されている題材は以下のような構成に なっています。 . .Bl -enum -width 3n -offset indent . It . Tn "TROFF に特有な表現" . . Bl -tag -width 2n -compact . It "マクロの使用方法" . It "引数に空白文字を指定する" . It "行末の空白文字" . It "特殊文字のエスケープ" . It "その他の注意点" . El . . It . Tn "マニュアルページのテンプレート" . . It . Tn "使用法" . . It . Tn "タイトルマクロ" . . It . Tn "マニュアル領域および一般テキスト領域の紹介" . . Bl -tag -width 2n -compact . It "この名前には何が" Ns ... . It "一般的な構文" . El . . It . Tn "マニュアル領域" . . Bl -tag -width 2n -compact . It "アドレス" . It "作者名" . It "引数" . It "コンフィギュレーション宣言 (セクション 4 のみ)" . It "コマンド修飾子" . It "定義済みの変数" . It "errno (セクション 2 のみ)" . It "環境変数" . It "フラグ" . It "関数の宣言" . It "関数の型" . It "関数 (ライブラリルーチン)" . It "関数の引数" . It "戻り値" . It "終了ステータス" . \" .It "ヘッダファイル (ソースコードを含む)" . It "対話的なコマンド" . It "ライブラリ名" . It "リテラル" . It "名称" . It "オプション" . It "パス名" . It "標準" . It "変数の型" . It "変数" . It "マニュアルページのクロスリファレンス" . El . . It . Tn "一般テキスト領域" . . Bl -tag -width 2n -compact . It "AT&T マクロ" . It "BSD マクロ" . It "NetBSD マクロ" . It "FreeBSD マクロ" . It "OpenBSD マクロ" . It "BSD/OS マクロ" . It "UNIX マクロ" . It "強調マクロ" . It "フォントモード" . It "囲い/クォート マクロ" . It "無操作もしくは通常テキストマクロ" . It "空白なしマクロ" . It "セクションのクロスリファレンス" . It "記号" . It "数式記号" . It "参考文献と引用" . It "商標名 (頭字語とタイプ名)" . It "拡張引数" . El . . It . Tn "ページ構造領域" . . Bl -tag -width 2n -compact . It "セクションヘッダ" . It "サブセクションヘッダ" . It "段落と行スペース" . It "キープ" . It "例示とディスプレイ" . It "リストとカラム" . El . . It . Tn "その他のマクロ" . . It . Tn "定義済みの文字列" . . It . Tn "診断" . . It . Tn "GROFF, TROFF および NROFF を使用した整形" . . It . Tn "関連ファイル" . . It . Tn "関連項目" . . It . Tn "バグ" .El . .\" XXX .if t \ . ne 7 . . .Sh "TROFF に特有な表現" . .Nm \-mdoc パッケージは、マニュアルページを記述するプロセスを簡単にすることを 目的としています。 .Nm \-mdoc を使うために .Tn GNU .Xr troff 1 のゴタゴタした詳細を学ぶ必要がないのが理想ですが、 いくつか片付けるべき避けられない制限事項があります。 また、このパッケージは高速で .Em ない ということも予め警告しておきます。 . .Ss "マクロの使用方法" . .Tn GNU .Xr troff 1 のように、マクロは .Ql .\& (ドット) を行頭に置き、それに続けて 2 文字 (または 3 文字) からなる マクロの名称を指定することによって呼び出されます。 ドットとマクロの間にはスペースを置くことができます (ただし、タブを置くことは .Em できません )。 引数はマクロの後にスペースで区切って指定することができます (やはり、タブは使用できません)。 行頭にドットを指定することによって .Tn GNU .Xr troff 1 にそれに続く 2 文字 (あるいはそれより多い文字) を マクロ名として解釈するよう指示しています。 最初にドット 1 文字をとり、その後ろに何も来ない場合は 無視されます。 マクロを起動させたくないような文脈で、入力行の先頭に .Ql .\& (ドット) を置くためには、 .Ql .\& (ドット) の前にエスケープシーケンス .Ql \e& を指定します。 .Ql \e& は文字通りスペース幅が 0 として解釈され、出力には現れません。 .Pp 一般的に .Tn GNU .Xr troff 1 マクロは取り得る引数の数に制限はありません (9 つ以上の 引数を扱うことのできない他のバージョンの troff とは違います)。 限られた場合ではありますが、引数を次の行に続けたり、拡張したり することができます (後述の .Sx 拡張引数 のセクションを参照)。 ほとんどすべてのマクロで引用符に囲まれた引数を扱うことができます (後述の .Sx 引数に空白文字を指定する のセクションを参照)。 .Pp .Nm \-mdoc での一般テキスト領域とマニュアル領域のほとんどのマクロは、 呼び出し可能なマクロ名を決定するためにその引数のリストが .Em 構文解析 されるという点で特別なものです。 これはつまり、一般テキスト領域またはマニュアル領域のマクロ名に一致し、 かつ、呼び出し可能であると判断された引数リスト中の引数は、 処理される時に実行されるか、もしくは呼び出されるということです。 この場合、引数がマクロの名前であっても .Ql .\& (ドット) で前置されません。 このようにしてたくさんのマクロを入れ子にすることができます。 例えばオプションマクロ .Ql .Op はフラグマクロおよび引数マクロ .Ql \&Fl と .Ql \&Ar を .Em 呼び出し て、オプションのフラグを引数とともに指定することができます: . .Bl -tag -width ".Op Fl s Ar bytes" -offset indent .It Op Fl s Ar bytes は .Ql ".Op Fl s Ar bytes" で生成されます。 .El . .Pp 文字列がマクロ名と解釈されないようにするには、 その文字列の前にエスケープシーケンス .Ql \e& を指定します。 . .Bl -tag -width ".Op \&Fl s \&Ar bytes" -offset indent .It Op \&Fl s \&Ar bytes は .Ql ".Op \e&Fl s \e&Ar bytes" で生成されます。 .El . .Pp ここで文字列 .Ql \&Fl と .Ql \&Ar はマクロとして解釈されていません。 このドキュメントを通じて、 呼び出し可能な引数を調べるために引数リストが構文解析されるマクロは .Em 構文解析される マクロとして参照し、 引数リストから呼び出されることができるマクロは .Em 呼び出し可能 なマクロとして参照します。 .Nm \-mdoc のマクロはほとんどすべてが構文解析されるのですから、これは技術的には .Em 適当でない 表現ですが、常にマクロを「呼び出し可能である」とか「他のマクロを 呼び出すことができる」と表現するのは面倒なことであるため、 「構文解析される」という用語を使います。 . .Ss "引数に空白文字を指定する" . 1 つ以上の空白文字を含む文字列を引数として指定したい 場合があります。 引数リスト中の要素が特定の並びをしていることを 期待しているマクロに引数を指定する時に必要になることがあります。 さらに、こうすると .Nm \-mdoc が速く実行されるようになるのです。 例えば、関数マクロ .Ql .Fn では第 1 引数は関数名であり、残りの引数が関数のパラメータであると 想定されています。 .Tn ANSI\~C では、関数のパラメータ宣言を括弧で囲まれたパラメータリスト中に 明示することを規定しているので、 各パラメータは最低でも 2 語の文字列となります。 例えば、 .Fa int foo のようになります。 .Pp 空白を含む引数を指定するには 2 通りの方法があります。 1 つは、空白を含む文字列を渡すのに、固定の空白、 つまりパディングされない空白文字 .Ql \e\ を使う方法です。すなわち、空白の前にエスケープ文字 .Ql \e を指定します。 この方法はどのマクロでも使うことができますが、1 行が長くなり過ぎた テキストを調整するときの邪魔になるという副作用があります。 .Xr troff では、固定の空白は他の印刷可能な文字と同様に扱われ、通常期待されるように その箇所で文字列を空白や改行で分けることは行われなくなります。 この方法は文字列が行の境界にまたがることが好ましくない場合に有用です。 代替案としては、 パディング可能 (すなわち伸長可能) で分割不可能な空白 .Ql \e~ を使うことがあります (これは、 .Tn GNU .Xr troff 1 拡張です)。 2 つ目の方法は、文字列をダブルクォートで括ることです。 .Pp 例えば、次のようにします: . .Bl -tag -width ".Fn fetch char\ *str" -offset indent .It Fn fetch char\ *str は .Ql ".Fn fetch char\e *str" で生成されます。 .It Fn fetch "char *str" も .Ql ".Fn fetch \*[q]char *str\*[q]" で生成することができます。 .El . .Pp もし、最初の例の空白の前もしくは次の例のダブルクォートの前の .Ql \e が省略されていた場合には .Ql .Fn は引数が 3 つであるとみなし、その結果は .Pp .Dl Fn fetch char *str .Pp となります。 .\" For an example of what happens when the parameter list overlaps a newline .\" boundary, see the .\" .Sx BUGS .\" section. . .Ss "行末の空白文字" . .Xr Troff は行末に空白文字があると混乱してしまうことがあります。 .Ao 空白 Ac Ns Ao 行末 Ac の文字の並びからすべての空白文字を取り除くのは良い予防策です。 どうしても行末に空白文字をおく必要性が出てきた場合は、 パディングされない空白とエスケープ文字 .Ql \e& を使用することによって対応できます。 例えば、 .Ql string\e\ \e& のようにします。 . .Ss "特殊文字のエスケープ" . 改行 .Ql \en のような特殊文字は、バックスラッシュを保存するために .Ql \e を .Ql \ee で置き換え (たとえば .Ql \een とする) て扱います。 . .Ss "その他の注意点" . 表示領域外で空の入力行が見つかった場合には警告が発生します (後述)。 代わりに .Ql .sp を使用してください ( .Nm \-mdoc マクロを使用して、低レベルコマンドを使用しないようにすると ずっと良いです)。 .Pp 先頭に空白を置くと行分割が生じ、そのまま出力されてしまいます。 可能ならばこうなることを避けてください。 同様に、通常のテキスト行において単語間に 2 つ以上の空白文字を 使用しないでください。これは、他のテキストフォーマッタとは 対照的です。空白文字を 2 つ以上置いても 1 つの空白文字に .Em 置き換わりません 。 .Pp 引数として .Ql \*[q] を直接渡すことはできません。 代わりに .Ql \e*[q] (あるいは .Ql \e*q ) を使用してください。 .Pp デフォルトでは、 .Xr troff 1 は文を終了させる句読点の後に空白文字を 2 つ挿入します。 つまり、 .Ql \&) あるいは .Ql \&' などの文字はそのまま扱われ、文の終了には影響を与えません。 この動作を変更するには、 ドットの前あるいは後に .Ql \e& を挿入してください。 . .Bd -literal -offset indent The \&.Ql . character. \&.Pp The \&.Ql \e&. character. \&.Pp \&.No test . test \&.Pp \&.No test. test .Ed .Pp . は、 . .Bd -filled -offset indent The .Ql . character. .Pp The .Ql \&. character. .Pp .No test . test .Pp .No test. test .Ed .Pp となります。 .Pp . 1 行目および 3 行目にみられるように、 .Nm \-mdoc はマクロ引数の中では句読点を特別に扱います。 これについては、後述の .Sx 一般的な構文 の節で述べます。 同様の方法で、幅 0 の空白を続けることで、 省略形の後に続いたピリオドを保護しなくてはなりません。 例えば .Ql e.g.\e& のようにします。 .Pp マニュアルページのソースファイル中のコメントは、 独立した行では .Ql .\e" 、何らかの入力があった後では .Ql \e" を、あるいはどのような場所でも使いたい場合は .Ql \e# を使うことができます (後者は .Tn GNU .Xr troff 1 拡張です)。このような行の残りの部分は無視されます。 . . .Sh "マニュアルページのテンプレート" . マニュアルページの中身は次のような基本的なテンプレートから 簡単に作成できます。 . .Bd -literal -offset indent \&.\e" 以下の項目はすべてのマニュアルページで必要な項目です。 \&.Dd 月 日, 年 \&.Os [オペレーティングシステム] [バージョン/リリース] \&.Dt ドキュメントタイトル [セクション番号] [アーキテクチャ/ボリューム] \&.Sh NAME \&.Nm 名称 \&.Nd 名称についての 1 行での説明 \&.\e" 次の項目はセクション 2, 3 でのみ必要なものです。 \&.\e" .Sh LIBRARY \&.Sh SYNOPSIS \&.Sh DESCRIPTION \&.\e" 以下の項目については、必要に応じてコメントをはずして使用してく \&.\e" ださい。 \&.\e" .Sh IMPLEMENTATION NOTES \&.\e" この次の項目はセクション 2, 3, 9 でのみ必要な、関数の \&.\e" 戻り値です。 \&.\e" .Sh RETURN VALUES \&.\e" 次の項目はセクション 1, 6, 7, 8, 9 でのみ必要なものです。 \&.\e" .Sh ENVIRONMENT \&.\e" .Sh FILES \&.\e" .Sh EXAMPLES \&.\e" 次の項目はセクション 1, 6, 7, 8, 9 でのみ必要なものです。 \&.\e" ((シェルへの)コマンドの戻り値と \&.\e" fprintf/stderr タイプの診断です) \&.\e" .Sh DIAGNOSTICS \&.\e" .Sh COMPATIBILITY \&.\e" 次の項目はセクション 2, 3, 9 でのみ必要な、 \&.\e" エラーハンドリングとシグナルハンドリングです。 \&.\e" .Sh ERRORS \&.\e" .Sh SEE ALSO \&.\e" .Sh STANDARDS \&.\e" .Sh HISTORY \&.\e" .Sh AUTHORS \&.\e" .Sh BUGS .Ed .Pp . このテンプレートにおける最初の項目はマクロ .Ql .Dd , .Ql .Os , および .Ql .Dt であり、それぞれドキュメントの日付、 マニュアルページもしくは題材となっているソースの開発や変更の 対象となったオペレーティングシステム、そして マニュアルページのタイトルを属するマニュアルのセクション番号と ともに ( .Em 大文字で ) 指定したもの、となっています。 これらのマクロはそのページを識別するものであり、後述の .Sx タイトルマクロ で解説されます。 .Pp テンプレート中の残りの項目はセクションのヘッダ .Pf ( Li .Sh ) であり、それらのうち .Sx NAME , .Sx SYNOPSIS , および .Sx DESCRIPTION は必須項目です。 これらのヘッダについては .Sx "マニュアル領域" を説明した後、 .Sx "ページ構造領域" で解説されます。 いくつかのコンテントマクロはページレイアウトマクロの説明に 使用されていますので、ページレイアウトマクロの前にコンテントマクロに ついて読むことを推奨します。 . . .Sh 使用法 . 次に説明するマクロはすべて、オプションの引数は 角括弧 ([]) で括られます。 省略符号 .Pf ( Sq ... ) はさらに 0 個以上の引数があることを表しています。 パラメータの代替値は .Ql | で区切って示します。 必須パラメータに代替値がある場合は、 ( .Ql | と一緒に) 中括弧 ({}) を用い、値の組を括ります。 メタ変数は山括弧 (<>) の中で指定されます。 .Pp 例: . .Bl -tag -width 6n -offset indent .It Li .Xx Xo .Aq foo .Brq bar1 | bar2 .Op \-test1 Op \-test2 | \-test3 .No ... .Xc .El . .Pp とくに明示しない限り、すべてのマクロは 構文解析され、呼び出し可能なものです。 .Pp 大部分のマクロはデフォルトの幅の値を持っており、これを .Ql .Bl および .Ql .Bd マクロ用にラベル width .Pf ( Fl width ) あるいは offset .Pf ( Fl offset ) を指定するのに使用することができます。 .Nm \-mdoc パッケージのローカルな変更に依存することのないように、 このとても曖昧な機能は使わないことを推奨します。 . . .Sh "タイトルマクロ" . タイトルマクロはページ構造領域の一部ですが、 マニュアルページを昨日書き始めようと思ったという人のために、 最初に、他のとは別に記述されています。 3 つのヘッダマクロでドキュメントまたはマニュアルページのタイトル、 オペレーティングシステム、および原著の日付を指定します。 これらのマクロはドキュメントの最初で一度だけ呼び出されるもので、 ヘッダとフッタを構成するためだけに使用されます。 . .Bl -tag -width 6n .It Li .Dt Xo .Op Aq ドキュメントタイトル .Op Aq セクション番号 .Op Aq ボリューム .Xc ドキュメントタイトルはマニュアルページの主題であり、 troff の制限により .Tn 大文字 でなければいけません。 省略された場合、 .Sq Tn UNTITLED が使われます。 セクション番号は .No 1,\~ Ns ... Ns ,\~9 の範囲の番号もしくは .Ql unass , .Ql draft , .Ql paper のいずれかを取ることができます。 セクション番号が指定されており、ボリューム名が与えられていない 場合には、デフォルトのボリューム名が使用されます。 . .Pp .Tn \*[operating-system] では、次のセクションが定義されています: .Pp .Bl -column LOCAL -offset indent -compact .It Li 1 Ta "\*[volume-operating-system] \*[volume-ds-1]" .It Li 2 Ta "\*[volume-operating-system] \*[volume-ds-2]" .It Li 3 Ta "\*[volume-operating-system] \*[volume-ds-3]" .It Li 4 Ta "\*[volume-operating-system] \*[volume-ds-4]" .It Li 5 Ta "\*[volume-operating-system] \*[volume-ds-5]" .It Li 6 Ta "\*[volume-operating-system] \*[volume-ds-6]" .It Li 7 Ta "\*[volume-operating-system] \*[volume-ds-7]" .It Li 8 Ta "\*[volume-operating-system] \*[volume-ds-8]" .It Li 9 Ta "\*[volume-operating-system] \*[volume-ds-9]" .El .Pp . ボリューム名は任意であるか、もしくは次のものを 取ることができます: . .Pp .Bl -column LOCAL -offset indent -compact .It Li USD Ta "\*[volume-ds-USD]" .It Li PS1 Ta "\*[volume-ds-PS1]" .It Li AMD Ta "\*[volume-ds-AMD]" .It Li SMM Ta "\*[volume-ds-SMM]" .It Li URM Ta "\*[volume-ds-URM]" .It Li PRM Ta "\*[volume-ds-PRM]" .It Li KM Ta "\*[volume-ds-KM]" .It Li IND Ta "\*[volume-ds-IND]" .It Li LOCAL Ta "\*[volume-ds-LOCAL]" .It Li CON Ta "\*[volume-ds-CON]" .El .Pp . 互換性を保つため、 .Ql IND の代わりに .Ql MMI を使用することができ、 .Ql LOCAL の代わりに .Ql LOC を使用できます。 先の表の値は、新しいボリューム名を指定します。 第 3 パラメータがコンピュータアーキテクチャを表すキーワードで ある場合、その値は第 2 パラメータで指定したボリューム名の 前に追加されます。 デフォルトでは次のアーキテクチャに関するキーワードが定義されています: . \# we use `No' to avoid hyphenation .Bd -ragged -offset indent .No alpha , amiga , arc , arm26 , arm32 , atari , bebox , cobalt , evbsh3 , .No hp300 , hpcmips , i386 , luna68k , m68k , mac68k , macppc , mips , .No mmeye , mvme68k , news68k , newsmips , next68k , ofppc , pc532 , pmax , .No powerpc , prep , sgimips , sh3 , sparc , sparc64 , sun3 , tahoe , vax , .No x68k .Ed .Pp . 次の例では、マニュアルページのヘッダの左側 (これは右側と同じものです) と 中央に書かれる文字列を示しています。 . .Bd -ragged .Bl -tag -width ".Li .Dt\ FOO\ 2\ i386" -compact -offset indent .It Li ".Dt FOO 7" .Ql FOO(7) .Ql \*[volume-operating-system] \*[volume-ds-7] .It Li ".Dt FOO 2 i386" .Ql FOO(2) .Ql \*[volume-operating-system]/\*[volume-as-i386] \*[volume-ds-2] .It Li ".Dt FOO \*[q]\*[q] bar" .Ql FOO .Ql bar .El .Ed .Pp . ローカルな追加項目や OS に特化した追加項目が、ファイル .Pa mdoc.local にあるかもしれません。このファイル中で .Ql volume-ds-XXX (前者のタイプについて) および .Ql volume-as-XXX (後者のタイプについて) という名前の文字列を検索してください。ここで .Ql XXX は .Ql .Dt マクロで使用されるキーワードを表しています。 .Pp このマクロは呼び出し不可能であり、構文解析もされません。 . .It Li .Os Xo .Op Aq オペレーティングシステム .Op Aq リリース番号 .Xc 第 1 パラメータが空の場合、 デフォルト値 .Sq Tn "\*[operating-system]" が使用されます。 これは、ローカルの設定ファイル .Pa mdoc.local で上書きできます。一般的には、 オペレーティングシステムの名称には一般的な頭字語 (略称) を 使わなければなりません。 例えば .Tn BSD や .Tn ATT といったものです。 リリース番号は、各システムでの標準のリリースの命名法を使用します。 次の表では、いくつか事前に定義されているオペレーティングシステムに 対して取り得る第 2 引数をリストしています。 .Ql .Dt と同じように、ローカルな追加項目が .Pa mdoc.local に定義されているかもしれません。このファイル中で .Ql operating-system-XXX-YYY という名前の文字列を検索してください。ここで .Ql XXX はオペレーティングシステムの頭字語 (略称) そして .Ql YYY がリリース ID です。 . .Bd -ragged -compact .Bl -tag -width ".No FreeBSD" -offset indent .It ATT 7th, 7, III, 3, V, V.2, V.3, V.4 .It BSD 3, 4, 4.1, 4.2, 4.3, 4.3t, 4.3T, 4.3r, 4.3R, 4.4 .It NetBSD 0.8, 0.8a, 0.9, 0.9a, 1.0, 1.0a, 1.1, 1.2, 1.2a, 1.2b, 1.2c, 1.2d, 1.2e, 1.3, 1.3a, 1.4, 1.5, 1.6 .It FreeBSD 1.0, 1.1, 1.1.5, 1.1.5.1, 2.0, 2.0.5, 2.1, 2.1.5, 2.1.6, 2.1.7, 2.2, 2.2.1, 2.2.2, 2.2.5, 2.2.6, 2.2.7, 2.2.8, 3.0, 3.1, 3.2, 3.3, 3.4, 3.5, 4.0, 4.1, 4.2, 4.3, 4.4, 4.5, 4.6, 5.0 .El .Ed .Pp . .Tn ATT に関しては、判別できない第 2 パラメータがある時には それを文字列 .Tn UNIX に置き換えます。事前に定義されているその他の頭字語 (略称) に ついては、そのようなパラメータは無視され、警告メッセージが 出力されます。 認識できない引数は、ページフッタ中に記述された通りに 表示されます。例えば、典型的なフッタは次のようになるでしょう: .Pp .Dl .Os BSD 4.3 .Pp は .Ql 4.3\~Berkeley Distribution となります。また、ローカルで作られたセットの例では、 .Pp .Dl .Os CS Department .Pp は .Ql CS\~Department となります。 .Pp .Ql .Os マクロがない場合、ページの左下隅は見苦しくなってしまうでしょう。 .Pp このマクロは呼び出し不可能であり、構文解析もされません。 . .It Li .Dd Oo .Aq 月 .Aq 日 , .Aq 年 .Oc .Ql Dd に引数がない場合は、日付には .Ql "基準時点 (協定世界時 1970年1月1日 00:00:00)" が使用されます。 ちょうど 3 つ引数がある場合には、それらは連結され、 分割できない空白で分けられたものになります。 .Pp .Dl .Dd January 25, 2001 .Pp それ以外の場合は現在の日付が使用され、パラメータは無視されます。 .Pp このマクロは呼び出し不可能であり、構文解析もされません。 .El . . .Sh "マニュアル領域および一般テキスト領域の紹介" . .Ss "この名前には何が" Ns ... . マニュアル領域のマクロ名はコマンドやサブルーチン、それに関連ファイルを 説明するために使われている日常のインフォーマルな言葉から取られています。 この言葉と少し違うバリエーションのものがマニュアルページを書く上での 3 つの異なった側面を記述するのに使われます。 最初のものは、 .Nm \-mdoc マクロ使用方法の説明です。2 番目は .Nm \-mdoc マクロを .Em 用いた .Ux コマンドの記述です。 3 番目はコマンドを通常の言葉の感覚でユーザに示したものです。 これはすなわち、マニュアルページのテキスト中でのコマンドの 説明となります。 .Pp 最初のケースでは、 .Xr troff 1 マクロはそれ自身、一種のコマンドとなっています。 troff コマンドは一般的に以下のような形式をとります。 . .Bd -filled -offset indent .Li ".Xx argument1 argument2" ... .Ed .Pp . .Ql .Xx はマクロコマンドもしくは要求を示しており、それに続くものは すべて処理されるべき引数として処理されます。 2 番目のケースでは、コンテントマクロを使用する .Ux コマンドの記述がもう少し含まれます。 典型的な .Sx SYNOPSIS コマンド行はこのように表示されます。 . .Bd -filled -offset indent .Nm filter .Op Fl flag .Ao Ar infile Ac Ao Ar outfile Ac .Ed .Pp . ここで .Nm filter はコマンド名であり、角括弧で囲まれた文字列 .Fl flag は .Em フラグ 引数で、これは角括弧で囲むことによってオプションであることを 示しています。 .Nm \-mdoc の用語では、 .Ao Ar infile Ac および .Ao Ar outfile Ac は .Em メタ引数 と称されています。 この例では、ユーザは山括弧 (<>) の中で与えられたメタ引数を 実際のファイル名に置き換えなくてはなりません。 このドキュメントでは、メタ引数は .Nm \-mdoc コマンドを記述するのに使用していることに注意してください。 多くのマニュアルページでは、メタ変数はわざわざ山括弧を使って 書かれていません。 上の例を整形したマクロは以下のものです。 . .Bd -literal -offset indent \&.Nm filter \&.Op Fl flag \&.Ao Ar infile Ac Ao Ar outfile Ac .Ed .Pp . 3 番目のケースでは、コマンドの説明や構文に上記の例の両方が使われ、 さらに細かい記述が追加されるでしょう。 上の例での引数 .Ao Ar infile Ac および .Ao Ar outfile Ac は .Em オペランド もしくは .Em ファイル引数 として参照されます。 コマンド行の引数のリストはかなり長くなる場合もあります。 . .Bd -ragged .Bl -tag -width ".Nm make" -offset indent -compact .It Nm make .Op Fl eiknqrstv .Op Fl D Ar variable .Op Fl d Ar flags .Op Fl f Ar makefile .Op Fl I Ar directory .Op Fl j Ar max_jobs .Op Ar variable Ns = Ns Ar value .Bk .Op Ar target ... .Ek .El .Ed .Pp . ここではコマンド .Nm make について記述しており、 .Ar makefile をフラグ .Fl f の引数としています。 またオプションのファイルオペランドである .Ar target についても言及しています。 言葉での説明では、こういった詳細な記述が混乱を防いでくれますが、 .Nm \-mdoc パッケージにはフラグ .Em への 引数のためのマクロがありません。 その代わりに .Ar target のようなオペランドやファイル引数に使われる引数マクロ .Ql \&Ar が .Ar variable のようなフラグへの引数と同様に使われます。 この make コマンド行は次の指定により生成されています。 . .Bd -literal -offset indent \&.Nm make \&.Op Fl eiknqrstv \&.Op Fl D Ar variable \&.Op Fl d Ar flags \&.Op Fl f Ar makefile \&.Op Fl I Ar directory \&.Op Fl j Ar max_jobs \&.Op Ar variable Ns = Ns Ar value \&.Bk \&.Op Ar target ... \&.Ek .Ed .Pp . マクロ .Ql .Bk および .Ql .Ek は .Sx キープ セクションにおいて解説されています。 . .Ss "一般的な構文" . マニュアル領域のマクロと一般テキスト領域のマクロとはいくつか 小さな違いがあるものの、同様な構文を使用しています。とりわけ、 .Ql .Ar , .Ql .Fl , .Ql .Nm , および .Ql .Pa は引数なしで呼び出された時の違いしかありません。また、 .Ql .Fn および .Ql .Xr は引数のリストの順番が異なります。 すべてのコンテントマクロが句読点を認識し、それを正しく扱うには、 各々の句読点文字が先行する空白で分離されている必要があります。 次のように指定されている場合、 .Pp .Dl \&.Ar sptr, ptr), .Pp その結果は以下のようになります。 .Pp .Dl Ar sptr, ptr), .Pp ここでは句読点は認識されず、すべての出力は .Ql .Ar で使用されるフォントで行われています。 句読点が空白文字で区切られている場合、 .Pp .Dl \&.Ar "sptr , ptr ) ," .Pp 結果は以下のようになります。 .Pp .Dl Ar sptr , ptr ) , .Pp 今度は句読点が認識され、出力はデフォルトのフォントで行われ 引数文字列とは区別されています。 句読点文字の特別な意味を取り除くには、 .Ql \e& でエスケープしてください。 .Pp .Xr troff はマクロ言語としての限界から、以下のような、数学、論理学、引用符の 集合のメンバを含んだ文字列を表現するのは困難です。 . .Bd -literal -offset indent-two {+,\-,/,*,%,<,>,<=,>=,=,==,&,`,',"} .Ed .Pp . 問題なのは、文字によって示唆されている操作もしくは評価が、 実行されるべきであると .Xr troff が仮定する場合があることです。 これらの文字が予期しない形で評価されないようにするには、 .Ql \e& でこれらをエスケープしてください。 最初のコンテントマクロは、以下の .Ql .Ad において、その典型的な構文が示されています。 . . .Sh "マニュアル領域" . .Ss "アドレス" . アドレスマクロはアドレスの構成を識別します。 .Pp .Dl 使い方: .Ad Ao アドレス Ac ... .Pp .Bl -tag -width ".Li .Ad\ f1\ ,\ f2\ ,\ f3\ :" -compact -offset 15n .It Li ".Ad addr1" .Ad addr1 .It Li ".Ad addr1 ." .Ad addr1 . .It Li ".Ad addr1 , file2" .Ad addr1 , file2 .It Li ".Ad f1 , f2 , f3 :" .Ad f1 , f2 , f3 : .It Li ".Ad addr ) ) ," .Ad addr ) ) , .El .Pp . デフォルトの文字幅は 12n です。 . .Ss "作者名" . .Ql .An マクロは文書化されている項目の作者の名前、もしくは実際の マニュアルページの作者の名前を指定するために使われます。 .Pp .Dl 使い方: .An Ao 作者名 Ac ... .Pp .Bl -tag -width ".Li .An\ \*[q]Joe\ Author\*[q]\ )\ )\ ," -offset 15n .It Li ".An \*[q]Joe Author\*[q]" .An "Joe Author" .It Li ".An \*[q]Joe Author\*[q] ," .An "Joe Author" , .It Li ".An \*[q]Joe Author\*[q] Aq nobody@FreeBSD.org" .An "Joe Author" Aq nobody@FreeBSD.org .It Li ".An \*[q]Joe Author\*[q] ) ) ," .An "Joe Author" ) ) , .El .Pp . デフォルトの文字幅は 12n です。 .Pp .Sx AUTHORS セクションでは、 .Ql .An リクエストは改行を引き起こし、新しい名前がそれぞれの行に表示されます。 この動作が望ましくない場合、 . .Bd -literal -offset indent \&.An -nosplit .Ed .Pp . を呼び出すことで無効にできます。 それぞれの行に表示させる動作に戻したい場合は、 . .Bd -literal -offset indent \&.An -split .Ed .Pp . と記述します。 . .Ss "引数" . 引数マクロ .Li .Ar はコマンド行の引数を参照する際にはいつでも使用することができます。 引数なしで呼ばれた場合、 .Sq Ar が出力になります。 .Pp .Dl 使い方: .Ar Oo Ao 引数 Ac Oc ... .Pp .Bl -tag -width ".Li .Ar\ file1\ file2" -compact -offset 15n .It Li .Ar .Ar .It Li ".Ar file1" .Ar file1 .It Li ".Ar file1 ." .Ar file1 . .It Li ".Ar file1 file2" .Ar file1 file2 .It Li ".Ar f1 f2 f3 :" .Ar f1 f2 f3 : .It Li ".Ar file ) ) ," .Ar file ) ) , .El .Pp . デフォルト幅は 12n です。 . .Ss "コンフィギュレーション宣言 (セクション 4 のみ)" . .Ql .Cd マクロはセクション 4 のマニュアルにおいて、デバイスインタフェースの .Xr config 8 による宣言の説明に使われます。 .Pp .Dl 使い方: .Cd Ao 引数 Ac ... .Pp .Bl -tag -width ".Li .Cd\ Xdevice\ le0\ at\ scode?X" -offset 15n .It Li ".Cd \*[q]device le0 at scode?\*[q]" .Cd "device le0 at scode?" .El .Pp .Sx SYNOPSIS セクションでは .Ql .Cd リクエストはその引数が表示される前後で改行を入れます。 .Pp . デフォルト幅は 12n です。 . .Ss "コマンド修飾子" . コマンド修飾子は .Ql .Cm マクロがすべての引数の前にダッシュ文字を付けないことを除いて、 .Ql .Fl (フラグ) コマンドと同じです。 伝統的にフラグはダッシュ文字に引き続いて指定されますが、 この方法を使わないコマンドやコマンドのサブセットもあります。 コマンド修飾子はエディタコマンドのような対話的なコマンドでも 指定されることがあります。 .Sx フラグ セクションを参照してください。 .Pp デフォルト幅は 10n です。 . .Ss "定義済みの変数" . インクルードファイルにおいて定義されている変数 (もしくは定数) は マクロ .Ql .Dv によって指定します。 .Pp .Dl 使い方: .Dv Ao 定義済みの変数 Ac ... .Pp .Bl -tag -width ".Li .Dv\ MAXHOSTNAMELEN" -compact -offset 15n .It Li ".Dv MAXHOSTNAMELEN" .Dv MAXHOSTNAMELEN .It Li ".Dv TIOCGPGRP )" .Dv TIOCGPGRP ) .El .Pp . デフォルト幅は 12n です。 . .Ss errno . .Ql .Er errno マクロは、セクション 2, 3, 9 のライブラリルーチンにおける エラーの戻り値を指定します。 下記の 2 番目の例では .Ql .Er は一般テキスト領域マクロである .Ql .Bq (これはセクション 2 のマニュアルページで使われています) と共に 使われています。 .Pp .Dl 使い方: .Er Ao errno のタイプ Ac ... .Pp .Bl -tag -width ".Li .Bq\ Er\ ENOTDIR" -compact -offset 15n .It Li ".Er ENOENT" .Er ENOENT .It Li ".Er ENOENT ) ;" .Er ENOENT ) ; .It Li ".Bq Er ENOTDIR" .Bq Er ENOTDIR .El .Pp . デフォルト幅は 17n です。 . .Ss "環境変数" . .Ql .Ev マクロは環境変数を指定します。 .Pp .Dl 使い方: .Ev Ao 引数 Ac ... .Pp .Bl -tag -width ".Li .Ev\ PRINTER\ )\ )\ ," -compact -offset 15n .It Li ".Ev DISPLAY" .Ev DISPLAY .It Li ".Ev PATH ." .Ev PATH . .It Li ".Ev PRINTER ) ) ," .Ev PRINTER ) ) , .El .Pp . デフォルト幅は 15n です。 . .Ss "フラグ" . .Ql .Fl マクロはコマンド行のフラグを扱います。 フラグの前にはダッシュ .Ql \- が挿入されます。 ダッシュがつかない対話的なコマンドのために .Ql .Cm (コマンド修飾子) マクロが用意されています。 これはダッシュを付けないことを除いて同じ働きをします。 .Pp .Dl 使い方: .Fl Ao 引数 Ac ... .Pp .Bl -tag -width ".Li .Fl\ xyz\ )\ ," -compact -offset 15n .It Li .Fl .Fl .It Li ".Fl cfv" .Fl cfv .It Li ".Fl cfv ." .Fl cfv . .It Li ".Cm cfv ." .Cm cfv . .It Li ".Fl s v t" .Fl s v t .It Li ".Fl \- ," .Fl \- , .It Li ".Fl xyz ) ," .Fl xyz ) , .It Li ".Fl |" .Fl | .El .Pp 引数なしで .Ql .Fl マクロを指定すると、標準入力/標準出力を意味するダッシュとなります。 .Ql .Fl マクロにダッシュを 1 つ与えると、2 つのダッシュとなることに 注意して下さい。 .Pp デフォルト幅は 12n です。 . .Ss "関数の宣言" . .Ql .Fd マクロは .Sx SYNOPSIS セクションにおいて、セクション 2 または 3 の関数の説明で使われます。 このマクロは呼び出し不可能であり、構文解析もされせん。 .Pp .Dl 使い方: .Fd Ao 引数 Ac ... .Pp .Bl -tag -width ".Li .Fd\ X#include\ X" -compact -offset 15n .It Li ".Fd \*[q]#include \*[q]" .Fd "#include " .El .Pp .Sx SYNOPSIS セクションでは、 関数がすでに示されており、改行がまだされていない場合には .Ql .Fd リクエストは改行を入れます。 これによって前の関数呼び出しと次の関数の宣言の間に 最適な行間が設定されます。 . .Pp .Ql .In .Li ( #include 文) マクロは、以上の例を短く記述したものです。 このマクロは C プログラム中でインクルードされる C ヘッダファイルを指定します。 このマクロも改行を挿入し、 呼び出し不可能であり、構文解析されることもありません。 .Pp .Dl 使い方: .In Ao ヘッダファイル Ac .Pp .Bl -tag -width ".Li .In\ stdio.h" -compact -offset 15n .It Li ".In stdio.h" .In stdio.h .El . .Ss "関数の型" . このマクロは .Sx SYNOPSIS セクションで使うものです。 マニュアルページ中の他の場所でも問題なく使うことができますが、 セクション 2 と 3 の .Sx SYNOPSIS セクションにおいてカーネルの通常の形式で関数の型を示すことが このマクロの目的です (このマクロは関数名が次の行に置かれるように改行を挿入します)。 .Pp .Dl 使い方: .Ft Ao 型 Ac ... .Pp .Bl -tag -width ".Li .Ft\ struct\ stat" -compact -offset 15n .It Li ".Ft struct stat" .Ft struct stat .El . .Ss "関数 (ライブラリルーチン)" . .Ql .Fn マクロは .Tn ANSI\~C の記法を規範としています。 .Pp .Dl 使い方: .Fn Ao 関数 Ac Oo Ao パラメータ Ac Oc ... .Pp .Bl -tag -width ".Li .Fn\ align\ Xchar\ *ptrX\ ," -compact -offset 15n .It Li ".Fn getchar" .Fn getchar .It Li ".Fn strlen ) ," .Fn strlen ) , .It Li ".Fn align \*[q]char *ptr\*[q] ," .Fn align "char *ptr" , .El .Pp 他のマクロを呼び出すと .Ql .Fn 呼び出しの終了を意味することに注意してください (閉じ括弧がその箇所に挿入されます)。 .Pp 多くのパラメータをとる関数 (これは滅多にないことですが) では、 .Ql .Fo マクロ (関数マクロの開始) と .Ql .Fc マクロ (関数マクロの終了) を .Ql .Fa (関数の引数) と共に使って、この制限を回避することができます。 .Pp 使用例: . .Bd -literal -offset indent \&.Ft int \&.Fo res_mkquery \&.Fa "int op" \&.Fa "char *dname" \&.Fa "int class" \&.Fa "int type" \&.Fa "char *data" \&.Fa "int datalen" \&.Fa "struct rrec *newrr" \&.Fa "char *buf" \&.Fa "int buflen" \&.Fc .Ed .Pp . 生成結果: . .Bd -ragged -offset indent .Ft int .Fo res_mkquery .Fa "int op" .Fa "char *dname" .Fa "int class" .Fa "int type" .Fa "char *data" .Fa "int datalen" .Fa "struct rrec *newrr" .Fa "char *buf" .Fa "int buflen" .Fc .Ed .Pp . .Sx SYNOPSIS セクションでは、関数は常に行の先頭から開始されます。 .Sx SYNOPSIS セクションにおいて複数の関数が示されており、関数の型が 示されない場合、改行が挿入され、現在の関数名とその前の 関数名の間に最適な改行量が設定されます。 .Pp .Ql .Fn および .Ql .Fo のデフォルト幅の値はそれぞれ 12n と 16n です。 . .Ss "関数の引数" . .Ql .Fa マクロは関数の引数 (パラメータ) を マニュアルの .Sx SYNOPSIS のセクション外で参照する場合、あるいは .Ql .Fn の代わりに .Ql .Fo および .Ql .Fc 囲いマクロを使用した場合には .Sx SYNOPSIS のセクション内で参照する場合にも使われます。 .Ql .Fa は構造体のメンバを参照する場合にも使われます。 .Pp .Dl 使い方: .Fa Ao 関数の引数 Ac ... .Pp .Bl -tag -width ".Li .Fa\ d_namlen\ )\ )\ ," -compact -offset 15n .It Li ".Fa d_namlen ) ) ," .Fa d_namlen ) ) , .It Li ".Fa iov_len" .Fa iov_len .El .Pp . デフォルト幅は 12n です。 . .Ss "戻り値" . .Ql .Rv マクロは .Sx RETURN VALUES のセクションで使うテキストを生成します。 .Pp .Dl 使い方: .Rv Oo -std Oc Op Ao 関数 Ac ... .Pp 例えば、 .Ql ".Rv -std atexit" は次のテキストを生成します。 . .Bd -ragged -offset -indent \# a small hack to suppress a warning message .ds section-old "\*[section] .ds section 3 .\" following part came from doc.tmac workaround the effect of .\" -dlang=ja_JP.eucJP .ds str-Rv-std-prefix "The .ds str-Rv-std-suffix "function returns the value\~0 if successful; .as str-Rv-std-suffix " otherwise the value\~-1 is returned and .as str-Rv-std-suffix " the global variable \*[Va-font]errno\f[P] .as str-Rv-std-suffix " is set to indicate the error. .ds str-Rv-stds-prefix "The .ds str-Rv-stds-and "and .ds str-Rv-stds-suffix "functions return the value\~0 if successful; .as str-Rv-stds-suffix " otherwise the value\~-1 is returned and .as str-Rv-stds-suffix " the global variable \*[Va-font]errno\f[P] .as str-Rv-stds-suffix " is set to indicate the error. .ds str-Rv-std0 "Upon successful completion, the value\~0 is returned; .as str-Rv-std0 " otherwise the value\~-1 is returned and .as str-Rv-std0 " the global variable \*[Va-font]errno\f[P] .as str-Rv-std0 " is set to indicate the error. .Rv -std atexit .ds section "\*[section-old] .Ed .Pp . .Fl std オプションはセクション 2 と 3 のマニュアルページでのみ有効です。 現在のところ、このマクロは .Fl std フラグなしで使用しても何も起こりません。 . .Ss "終了ステータス" . .Ql .Ex マクロは .Sx DIAGNOSTICS のセクションで使うテキストを生成します。 .Pp .Dl 使い方: .Ex Oo -std Oc Op Ao ユーティリティ Ac ... .Pp 例えば .Ql ".Ex -std cat" は次のテキストを生成します。 . .Bd -ragged -offset -indent \# a small hack to suppress a warning message .ds section-old "\*[section] .ds section 1 .\" following part came from doc.tmac workaround the effect of .\" -dlang=ja_JP.eucJP .ds str-Ex-std-prefix "The .ds str-Ex-std-suffix "utility exits\~0 on success, .as str-Ex-std-suffix " and\~>0 if an error occurs. .ds str-Ex-stds-prefix "The .als str-Ex-stds-and str-Rv-stds-and .ds str-Ex-stds-suffix "utilities exit\~0 on success, .as str-Ex-stds-suffix " and\~>0 if an error occurs. .Ex -std cat .ds section "\*[section-old] .Ed .Pp . .Fl std オプションはセクション 1 と 6 と 8 のマニュアルページでのみ有効です。 現在のところ、このマクロは .Fl std フラグなしで使用しても何も起こりません。 . .Ss "対話的なコマンド" . .Ql .Ic マクロは対話的なコマンド、もしくは内部コマンドを指定します。 .Pp .Dl 使い方: .Ic Ao 引数 Ac ... .Pp .Bl -tag -width ".Li .Ic\ setenv\ ,\ unsetenv" -compact -offset 15n .It Li ".Ic :wq" .Ic :wq .It Li ".Ic \*[q]do while {...}\*[q]" .Ic "do while {...}" .It Li ".Ic setenv , unsetenv" .Ic setenv , unsetenv .El .Pp . デフォルト幅は 12n です。 . .Ss "ライブラリ名" . .Ql .Lb マクロは、関数がどのライブラリに組み込まれるかを指定します。 .Pp .Dl 使い方: .Lb Ao 引数 Ac ... .Pp .Ql .Lb マクロに対して使用可能な引数と結果は次の通りです: . .Pp .Bl -tag -width ".Li libossaudio" -compact -offset indent .It Li libarm32 .Lb libarm32 .It Li libc .Lb libc .It Li libcompat .Lb libcompat .It Li libcrypt .Lb libcrypt .It Li libcurses .Lb libcurses .It Li libedit .Lb libedit .It Li libi386 .Lb libi386 .It Li libipsec .Lb libipsec .It Li libkvm .Lb libkvm .It Li libm .Lb libm .It Li libmenu .Lb libmenu .It Li libossaudio .Lb libossaudio .It Li libposix .Lb libposix .It Li libresolv .Lb libresolv .It Li libtermcap .Lb libtermcap .It Li libutil .Lb libutil .It Li libz .Lb libz .El .Pp . ローカルな追加項目や OS 特有の追加項目が、ファイル .Pa mdoc.local にあるかもしれません。 .Ql str-Lb-XXX という名前の文字列を検索してください。ここで .Ql XXX は .Ql .Lb マクロとともに使用されるキーワードを示しています。 . .Ss リテラル . リテラルマクロ .Ql .Li は特殊文字や変数定数、その他タイプされた通りに表示する必要があるものに 使用することができます。 .Pp .Dl 使い方: .Li Ao 引数 Ac ... .Pp .Bl -tag -width ".Li .Li\ cntrl-D\ )\ ," -compact -offset 15n .It Li ".Li \een" .Li \en .It Li ".Li M1 M2 M3 ;" .Li M1 M2 M3 ; .It Li ".Li cntrl-D ) ," .Li cntrl-D ) , .It Li ".Li 1024 ..." .Li 1024 ... .El .Pp . デフォルト幅は 16n です。 . .Ss 名称 . .Ql .Nm マクロは文書のタイトルやサブジェクト名を指定するために使われます。 このマクロは呼び出された時の第 1 引数を覚えておくという 変わった特性を持っており、 それは常にそのページのサブジェクト名であるべきです。 引数なしで呼び出されると .Ql .Nm は作者のために最低限の仕事をするという意味で、 この初期化された名称を出力します。 注: セクション 2 または 3 のドキュメントの関数名は .Sx NAME セクションにおいて .Ql .Nm で指定され、 .Sx SYNOPSIS セクションや残りのセクションでは .Ql .Fn で指定されます。 .Xr csh 1 での .Ql while コマンドのキーワードのような対話的なコマンドでは .Ql .Ic マクロを使う必要があります。 .Ql .Ic はほとんど .Ql .Nm と同一ですが、 それが使われたときの第 1 引数を記憶することはできません。 .Pp .Dl 使い方: .Nm Oo Ao 引数 Ac Oc ... .Pp .Bl -tag -width ".Li .Nm\ groff_mdoc" -compact -offset 15n .It Li ".Nm groff_mdoc" .Nm groff_mdoc .It Li ".Nm \e-mdoc" .Nm \-mdoc .It Li ".Nm foo ) ) ," .Nm foo ) ) , .It Li ".Nm :" .Nm : .El .Pp . デフォルト幅は 10n です。 . .Ss オプション . .Ql .Op マクロはコマンド行の残りのすべての引数を オプションであることを示す角括弧で囲み、 末尾の句読点は角括弧の外に置きます。 .Ql .Oo マクロと .Ql .Oc マクロ (それぞれ開き角括弧と閉じ角括弧を生成します) は 複数行に渡って使うことができ、また閉じ括弧の正確な位置を 指定するのに使うことができます。 .Pp .Dl 使い方: .Op Oo Ao オプション Ac Oc ... .Pp .Bl -tag -width ".Li .Op\ Fl\ c\ Ar\ objfil\ Op\ Ar\ corfil\ ," -compact -offset 15n .It Li .Op .Op .It Li ".Op Fl k" .Op Fl k .It Li ".Op Fl k ) ." .Op Fl k ) . .It Li ".Op Fl k Ar kookfile" .Op Fl k Ar kookfile .It Li ".Op Fl k Ar kookfile ," .Op Fl k Ar kookfile , .It Li ".Op Ar objfil Op Ar corfil" .Op Ar objfil Op Ar corfil .It Li ".Op Fl c Ar objfil Op Ar corfil ," .Op Fl c Ar objfil Op Ar corfil , .It Li ".Op word1 word2" .Op word1 word2 .It Li ".Li .Op Oo Ao option Ac Oc ..." .Li .Op Oo Ao options Ac Oc ... .El .Pp これは、 .Ql .Oo マクロと .Ql .Oc マクロを使った典型的な例です: . .Bd -literal -offset indent \&.Oo \&.Op Fl k Ar kilobytes \&.Op Fl i Ar interval \&.Op Fl c Ar count \&.Oc .Ed .Pp . 出力結果: . .Bd -filled -offset indent .Oo .Op Fl k Ar kilobytes .Op Fl i Ar interval .Op Fl c Ar count .Oc .Ed .Pp . .Ql .Op マクロおよび .Ql .Oo マクロのデフォルト幅はそれぞれ 14n と 10n です。 . .Ss パス名 . .Ql .Pa マクロはパス名もしくはファイル名を整形します。 引数なしで呼ばれた場合、 .Sq Pa 文字列が出力となり、これは現在のユーザのホームディレクトリを 表しています。 .Pp .Dl 使い方: .Pa Oo Ao パス名 Ac Oc ... .Pp .Bl -tag -width ".Li .Pa\ /tmp/fooXXXXX\ )\ ." -compact -offset 15n .It Li .Pa .Pa .It Li ".Pa /usr/share" .Pa /usr/share .It Li ".Pa /tmp/fooXXXXX ) ." .Pa /tmp/fooXXXXX ) . .El .Pp . デフォルト幅は 32n です。 . .Ss 規格 . .Ql .St マクロは、規格の短縮名称を正式名称に置換します。 .Pp .Dl 使い方: .St Ao 短縮名称 Ac ... .Pp 使用可能な .Dq 短縮名称/正式名称 の組は次の通りです: . .Pp .Tn ANSI/ISO C .Pp .Bl -tag -width ".Li -iso9945-1-90" -compact -offset indent .It Li -ansiC .St -ansiC .It Li -ansiC-89 .St -ansiC-89 .It Li -isoC .St -isoC .It Li -isoC-99 .St -isoC-99 .El .Pp . .Tn POSIX パート 1: System API .Pp .Bl -tag -width ".Li -p1003.1g-2000" -compact -offset indent .It Li -iso9945-1-90 .St -iso9945-1-90 .It Li -iso9945-1-96 .St -iso9945-1-96 .It Li -p1003.1 .St -p1003.1 .It Li -p1003.1-88 .St -p1003.1-88 .It Li -p1003.1-90 .St -p1003.1-90 .It Li -p1003.1-96 .St -p1003.1-96 .It Li -p1003.1b-93 .St -p1003.1b-93 .It Li -p1003.1c-95 .St -p1003.1c-95 .It Li -p1003.1g-2000 .St -p1003.1g-2000 .It Li -p1003.1i-95 .St -p1003.1i-95 .El .Pp . .Tn POSIX パート 2: シェルとユーティリティ .Pp .Bl -tag -width ".Li -p1003.1g-2000" -compact -offset indent .It Li -iso9945-2-93 .St -iso9945-2-93 .It Li -p1003.2 .St -p1003.2 .It Li -p1003.2-92 .St -p1003.2-92 .It Li -p1003.2a-92 .St -p1003.2a-92 .El .Pp . X/Open .Bl -tag -width ".Li -p1003.1g-2000" -compact -offset indent .Pp .It Li -susv2 .St -susv2 .It Li -svid4 .St -svid4 .It Li -xbd5 .St -xbd5 .It Li -xcu5 .St -xcu5 .It Li -xcurses4.2 .St -xcurses4.2 .It Li -xns5 .St -xns5 .It Li -xns5.2 .St -xns5.2 .It Li -xpg3 .St -xpg3 .It Li -xpg4 .St -xpg4 .It Li -xpg4.2 .St -xpg4.2 .It Li -xsh5 .St -xsh5 .El .Pp . その他 .Pp .Bl -tag -width ".Li -p1003.1g-2000" -compact -offset indent .It Li -ieee754 .St -ieee754 .It Li -iso8802-3 .St -iso8802-3 .El . .Ss "変数の型" . .Ql .Vt マクロは型を参照するときにはいつでも使用することができます。 .Sx SYNOPSIS セクションでは改行が挿入されます (古いスタイルの変数宣言では便利です)。 .Pp .Dl 使い方: .Vt Ao 型 Ac ... .Pp .Bl -tag -width ".Li .Vt\ extern\ char\ *optarg\ ;" -compact -offset 15n .It Li ".Vt extern char *optarg ;" .Vt extern char *optarg ; .It Li ".Vt FILE *" .Vt FILE * .El . .Ss 変数 . 一般的な変数への参照です。 .Pp .Dl 使い方: .Va Ao 変数 Ac ... .Pp .Bl -tag -width ".Li .Va\ Xchar\ sX\ ]\ )\ )\ ," -compact -offset 15n .It Li ".Va count" .Va count .It Li ".Va settimer ," .Va settimer , .It Li ".Va \*[q]int *prt\*[q] ) :" .Va "int *prt" ) : .It Li ".Va \*[q]char s\*[q] ] ) ) ," .Va "char s" ] ) ) , .El .Pp . デフォルト幅は 12n です。 . .Ss "マニュアルページのクロスリファレンス" . .Ql .Xr マクロは最初の引数にマニュアルページの名称をとります。 オプションである第 2 引数は、文字列 (マニュアルセクションを定義します) であれば 括弧で囲われます。 .Pp .Dl 使い方: .Xr Ao マニュアルページの名称 Ac Oo Ao セクション Ac Oc ... .Pp .Bl -tag -width ".Li .Xr\ xinit\ 1x\ ;" -compact -offset 15n .It Li ".Xr mdoc" .Xr mdoc .It Li ".Xr mdoc ," .Xr mdoc , .It Li ".Xr mdoc 7" .Xr mdoc 7 .It Li ".Xr xinit 1x ;" .Xr xinit 1x ; .El .Pp . デフォルト幅は 10n です。 . . .Sh "一般テキスト領域" . .Ss "AT&T マクロ" . .Pp .Dl 使い方: .At Oo Ao バージョン Ac Oc ... .Pp .Bl -tag -width ".Li .At\ v6\ ." -compact -offset 15n .It Li .At .At .It Li ".At v6 ." .At v6 . .El .Pp .Ao バージョン Ac には次の値をとることができます: .Pp .Dl 32v, v1, v2, v3, v4, v5, v6, v7, V, V.1, V.2, V.3, V.4 . .Ss "BSD マクロ" . .Pp .Dl "使い方: .Bx" Bro -alpha | -beta | -devel Brc ... .Dl " .Bx" Oo Ao バージョン Ac Oo Ao リリース Ac Oc Oc ... .Pp .Bl -tag -width ".Li .Bx\ -devel" -compact -offset 15n .It Li .Bx .Bx .It Li ".Bx 4.3 ." .Bx 4.3 . .It Li ".Bx \-devel" .Bx -devel .El .Pp .Ao バージョン Ac が文字列 .Sq Bx の前につきます。 .Ao リリース Ac には次の値をとることができます: .Pp .Dl Reno, reno, Tahoe, tahoe, Lite, lite, Lite2, lite2 . .Ss "NetBSD マクロ" . .Pp .Dl 使い方: .Nx Oo Ao バージョン Ac Oc ... .Pp .Bl -tag -width ".Li .Nx\ 1.4\ ." -compact -offset 15n .It Li .Nx .Nx .It Li ".Nx 1.4 ." .Nx 1.4 . .El .Pp .Ao バージョン Ac にとり得る値については前述の .Sx "タイトルマクロ" セクションの .Ql .Os リクエストの説明を参照してください。 . .Ss "FreeBSD マクロ" . .Pp .Dl 使い方: .Fx Oo Ao バージョン Ac Oc ... .Pp .Bl -tag -width ".Li .Fx\ 2.2\ ." -compact -offset 15n .It Li .Fx .Fx .It Li ".Fx 2.2 ." .Fx 2.2 . .El .Pp .Ao バージョン Ac にとり得る値については前述の .Sx "タイトルマクロ" セクションの .Ql .Os リクエストの説明を参照してください。 . .Ss "OpenBSD マクロ" . .Pp .Dl 使い方: .Ox Oo Ao バージョン Ac Oc ... .Pp .Bl -tag -width ".Li .Ox\ 1.0" -compact -offset 15n .It Li ".Ox 1.0" .Ox 1.0 .El . .Ss "BSD/OS マクロ" . .Pp .Dl 使い方: .Bsx Oo Ao バージョン Ac Oc ... .Pp .Bl -tag -width ".Li .Bsx\ 1.0" -compact -offset 15n .It Li ".Bsx 1.0" .Bsx 1.0 .El . .Ss "UNIX マクロ" . .Pp .Dl 使い方: .Ux ... .Pp .Bl -tag -width ".Li .Ux" -compact -offset 15n .It Li .Ux .Ux .El . .Ss "強調マクロ" . テキストは .Ql .Em マクロを用いて強調することができます。 通常強調に用いられるフォントはイタリック体です。 .Pp .Dl 使い方: .Em Ao 引数 Ac ... .Pp .Bl -tag -width ".Li .Em\ vide\ infra\ )\ )\ ," -compact -offset 15n .It Li ".Em does not" .Em does not .It Li ".Em exceed 1024 ." .Em exceed 1024 . .It Li ".Em vide infra ) ) ," .Em vide infra ) ) , .El .Pp . デフォルト幅は 10n です。 . .Ss "フォントモード" . .Ql .Bf フォントモードは .Ql .Ef マクロで終了しなくてはなりません (後者のマクロは引数をとりません)。 フォントモードは別のフォントモード内に入れ子にできます。 .Pp .Ql .Bf は次の文法をもっています: .Pp .Dl .Bf Ao フォントモード Ac .Pp .Ao フォントモード Ac は次の 3 種類のうちのいずれかでなくてはなりません。 .Pp .Bl -tag -width ".Sy \&Sy | Fl symbolic" -compact -offset indent .It Sy \&Em | Fl emphasis .Ql .Em マクロがテキストのブロック全体に対して使用された場合と 同じになります。 .It Sy \&Li | Fl literal .Ql .Li マクロがテキストのブロック全体に対して使用された場合と 同じになります。 .It Sy \&Sy | Fl symbolic .Ql .Sy マクロがテキストのブロック全体に対して使用された場合と 同じになります。 .El .Pp いずれのマクロも呼び出し不可能であり、構文解析もされません。 . .Ss "囲い/クォートマクロ" . 囲いの概念はクォートと似たものです。 1 つ以上の文字列が引用符や括弧のような文字のペアで囲まれている オブジェクトを指します。 クォートと囲いという用語はこの文書を通して同じ意味で使われます。 ほとんどの 1 行の囲いマクロはクォートであることをほのめかすために、 小文字の .Ql q で終了しますが、例外もいくつかあります。 各々の囲いマクロに対し、開始マクロと終了マクロのペアもあり、 それぞれ小文字の .Ql o と .Ql c で終了します。 .Pp \# XXX .if t \ . ne 10 . .Bd -filled -offset 4n .Bl -column "クォート" "終了" "開始" "クォートされたリテラル" "`string' もしくは string" .Em クォート Ta Em 開始 Ta Em 終了 Ta Em 機能 Ta Em 結果 .No .Aq Ta .Ao Ta .Ac Ta "山括弧による囲い" Ta Ao string Ac .No .Bq Ta .Bo Ta .Bc Ta "角括弧による囲い" Ta Bo string Bc .No .Brq Ta .Bro Ta .Brc Ta "中括弧による囲い" Ta Bro string Brc .No .Dq Ta .Do Ta .Dc Ta "2 重引用符" Ta Do string Dc .No .Eq Ta .Eo Ta .Ec Ta "囲い文字列 (XX による)" Ta XXstringXX .No .Pq Ta .Po Ta .Pc Ta "括弧による囲い" Ta Po string Pc .No .Ql Ta Ta Ta "クォートされたリテラル" Ta So string Sc もしくは Li string .No .Qq Ta .Qo Ta .Qc Ta "まっすぐな 2 重引用符" Ta Qo string Qc .No .Sq Ta .So Ta .Sc Ta "1 重引用符" Ta So string Sc .El .Ed .Pp .Sq q および .Sq o で終わるマクロはすべてデフォルト幅が 12n です。 . .Bl -tag -width ".Li .Ec , .Eo" .It Li .Eo , .Ec これらのマクロはそれぞれ第 1 引数に囲い始めに使う文字列と 囲い終わりに使う文字列をとります。 .It Li .Es , .En オリジナルの troff プログラムでは、引数の数が 9 つまでという 制限がありましたので、(Eo, Ec とは) 別の 2 つのマクロが 実装されています。現在は非推奨になっています。 .Ql .Es は第 1 引数と第 2 引数に左囲い文字列および右囲い文字列を とります。この文字列は、 .Ql .En の引数を囲うのに使用されます。 デフォルト幅は、どちらのマクロも 12n です。 .It Li .Eq このマクロの第 1、第 2 引数はそれぞれ囲い始めに使う文字列と 囲い終わりに使う文字列であり、この文字列の後に 囲われる引数が続きます。 .It Li .Ql クォートされたリテラルマクロは troff モードと nroff モードで 違った挙動をします。 .Xr nroff で整形された場合、 クォートされたリテラルは常にクォートされます。 troff で整形された場合、その要素の幅が固定幅文字 3 文字分の幅よりも 小さいときのみクォートされます。 これにより、リテラル (固定幅) フォントへフォントを変更すると 目立たなくなってしまうような短い文字列がより見やすくなります。 .Pp デフォルト幅は 16n です。 .It Li .Pf プレフィックスマクロは第 1 引数と第 2 引数の間の ホワイトスペースをなくします: . .Bl -tag -width ".Li .Pf\ (\ Fa\ name2" -offset indent .It Li ".Pf ( Fa name2" .Pf ( Fa name2 .El .Pp . デフォルト幅は 12n です。 .Pp .Ql .Ns マクロ (後述参照) は同じようにサフィックスに働きます。 .It Li .Ap .Ql .Ap マクロはアポストロフィを追加し、特別なテキストモードから 抜けます。そして .Ql .No モードで続けます。 .El .Pp . クォートの例: . .Pp .Bl -tag -width ".Li .Bq\ Em\ Greek\ ,\ French\ ." -compact -offset indent .It Li .Aq .Aq .It Li ".Aq Pa ctype.h ) ," .Aq Pa ctype.h ) , .It Li .Bq .Bq .It Li ".Bq Em Greek , French ." .Bq Em Greek , French . .It Li .Dq .Dq .It Li ".Dq string abc ." .Dq string abc . .It Li ".Dq \'^[A-Z]\'" .Dq \'^[A-Z]\' .It Li ".Ql man mdoc" .Ql man mdoc .It Li .Qq .Qq .It Li ".Qq string ) ," .Qq string ) , .It Li ".Qq string Ns )," .Qq string Ns ), .It Li .Sq .Sq .It Li ".Sq string" .Sq string .It Li ".Em or Ap ing" .Em or Ap ing .El .Pp . 囲いマクロの入れ子についての良い例については、 オプションマクロ .Ql .Op を参照してください。 このマクロは上でリストされているような囲いマクロと同じベースの上に 作られています。 .Ql .Xo と .Ql .Xc 拡張引数リストマクロについては後で述べます。 . .Ss "無操作もしくは通常テキストマクロ" . .Ql .No マクロは、マクロコマンド行において整形されては .Em ならない パラメータ用に使用できます。 この英単語 (マクロでなく) をパラメータとして 本当に使いたい場合は、この単語 .Ql \&No に .Ql \e& を足すように注意してください。 .Pp .Dl 使い方: .No Ao 引数 Ac ... .Pp .Bl -tag -width ".Li .No\ test\ Ta\ with\ Ta\ tabs" -compact -offset 15n .It Li ".No test Ta with Ta tabs" .No test Ta with Ta tabs .El .Pp . デフォルト幅は 12n です。 . .Ss "空白なしマクロ" . .Ql .Ns マクロは、現在の位置とマクロの第 1 パラメータとの間に 空白を挿入するのを抑止します。 例えば、フラグと引数の間に空白を含まない古いスタイルの 引数リストを使う場合に便利です: .Pp .Dl "使い方:" ... Ao 引数 Ac \&Ns Oo Ao 引数 Ac Oc ... .Dl " " .Ns Ao 引数 Ac ... .\" 訳注: 2 行目 Dl マクロの第 1 引数の空白の数は 1 行目と一致させる .Pp .Bl -tag -width ".Li .Op\ Fl\ I\ Ns\ Ar\ directory" -compact -offset 15n .It Li ".Op Fl I Ns Ar directory" .Op Fl I Ns Ar directory .El .Pp 注: .Ql .Ns マクロは他のマクロ名が続かなければ、スペースを除去したあとに .Ql .No マクロを常に起動します。 リクエストとして使用される場合 (つまり、 .Sq 使い方 の行での 2 番目の形式です)、 .Ql .Ns マクロは .Ql .No と同一です。 . .Ss "セクションのクロスリファレンス" . .Ql .Sx マクロは同一文書内でのセクションのヘッダへの参照を指定します。 .Pp .Dl 使い方: .Sx Ao セクションの参照 Ac ... .Pp .Bl -tag -width ".Li .Sx\ FILES" -offset 15n .It Li ".Sx FILES" .Sx FILES .El .Pp . デフォルト幅は 16n です。 . .Ss 記号 . 記号体強調マクロは、記号の意味でも伝統的な英語の 使い方においても通常はボールド体マクロとなっています。 .Pp .Dl 使い方: .Sy Ao 記号 Ac ... .Pp .Bl -tag -width ".Li .Sy\ Important\ Notice" -compact -offset 15n .It Li ".Sy Important Notice" .Sy Important Notice .El .Pp . デフォルト幅は 6n です。 . .Ss 数学記号 . 数学記号やそれに似たものについては、このマクロを使用して ください。 .Pp .Dl 使い方: .Ms Ao 数学記号 Ac ... .Pp .Bl -tag -width ".Li .Ms\ sigma" -compact -offset 15n .It Li ".Ms sigma" .Ms sigma .El .Pp . デフォルト幅は 6n です。 . .Ss "参考文献と引用" . 次のマクロは多少なりとも参考文献を扱えるようにと意図したものです。 これらのマクロは、せいぜい .Xr refer 1 スタイルの参考文献のサブセットを手動で 作成しやすくする程度です。 .Pp .Bl -tag -width 6n -offset indent -compact .It Li .Rs 参考文献の開始 (引数はとりません)。 .Sx "SEE ALSO" セクションでは改行を挿入し、参考文献の終了マクロが 読み込まれるまで参考文献の情報を収集します。 .It Li .Re 参考文献の終了 (引数はとりません)。 参考文献が表示されます。 .It Li .%A 参考文献の作者名。1 回の呼び出しにつき、作者名をひとつ指定します。 .It Li .%B 書籍のタイトル。 .It Li .%C 市 / 場所 (まだ実装されていません)。 .It Li .%D 日付。 .It Li .%I 発行者/出版社名。 .It Li .%J 定期刊行物の名称。 .It Li .%N 発行番号。 .It Li .%O 追加情報。 .It Li .%P ページ番号。 .It Li .%Q 組織内部、あるいは外部の著者。 .It Li .%R 報告書の名称。 .It Li .%T 記事のタイトル。 .It Li .%V 巻数。 .El .Pp .Ql % で始まるマクロは呼び出し不可能ですが、 通常の方法で複数の引数をとることができます。 パラメータとしては .Ql .Tn マクロのみ扱います。その他のマクロを使うと 奇妙な出力が得られてしまいます。 .Ql .%B および .Ql .%T を .Ql .Rs/.Re 環境の外側では使用することができます。 .Pp 使用例: . .Bd -literal -offset indent \&.Rs \&.%A "Matthew Bar" \&.%A "John Foo" \&.%T "Implementation Notes on foobar(1)" \&.%R "Technical Report ABC-DE-12-345" \&.%Q "Drofnats College, Nowhere" \&.%D "April 1991" \&.Re .Ed .Pp 出力結果 . .Bd -ragged -offset indent .Rs .%A "Matthew Bar" .%A "John Foo" .%T "Implementation Notes on foobar(1)" .%R "Technical Report ABC-DE-12-345" .%Q "Drofnats College, Nowhere" .%D "April 1991" .Re .Ed . .Ss "商標名 (頭字語とタイプ名)" . 商標名マクロは、引数をより小さなフォントで出力します。 意図される使い方は、大文字の頭字語用に小さな大文字フォントを 似せて作ることです。 .Pp .Dl 使い方: .Tn Ao シンボル Ac ... .Pp .Bl -tag -width ".Li .Tn\ ASCII" -compact -offset 15n .It Li ".Tn DEC" .Tn DEC .It Li ".Tn ASCII" .Tn ASCII .El .Pp . デフォルト幅は 10n です。 . .Ss "拡張引数" . .Li .Xo と .Li .Xc マクロによって、 .Ql .It マクロ (後述) についてマクロ境界での引数リストを 拡張することができます。 .Li .Xo と .Li .Xc マクロは囲いを開いたり閉じたりする他のすべてのマクロに 対して同じように実装されている (もちろん文字は挿入しません) ということに注意してください。 つまり、次の例もこれらのマクロには当てはまります。 .Pp 次は、スペーシングをオフにするために 空白モードマクロを使った .Ql .Xo の使用例です。 . .Bd -literal -offset indent \&.Sm off \&.It Xo Sy I Ar operation \&.No \een Ar count No \een \&.Xc \&.Sm on .Ed .Pp . これは以下のような結果になります。 .Bd -filled -offset indent .Bl -tag -compact .Sm off .It Xo Sy I Ar operation .No \en Ar count No \en .Xc .Sm on .El .Ed .Pp . 例をもうひとつ: . .Bd -literal -offset indent \&.Sm off \&.It Cm S No / Ar old_pattern Xo \&.No / Ar new_pattern \&.No / Op Cm g \&.Xc \&.Sm on .Ed .Pp . これは以下のような結果になります。 . .Bd -filled -offset indent .Bl -tag -compact .Sm off .It Cm S No \&/ Ar old_pattern Xo .No \&/ Ar new_pattern .No \&/ Op Cm g .Xc .Sm on .El .Ed .Pp . 囲いマクロを使った .Ql .Xo の他の例: 変数の値をテストして下さい。 . .Bd -literal -offset indent \&.It Xo \&.Ic .ifndef \&.Oo \e&! Oc Ns Ar variable Oo \&.Ar operator variable ... \&.Oc Xc .Ed .Pp . 結果は以下の通りです。 . .Bd -filled -offset indent .Bl -tag -width flag -compact .It Xo .Ic .ifndef .Oo \&! Oc Ns Ar variable Oo .Ar operator variable ... .Oc Xc .El .Ed .Pp . . .Sh "ページ構造領域" . .Ss "セクションヘッダ" . 次の .Ql .Sh セクションヘッダマクロは、すべてのマニュアルページで必須のものです。 残りのセクションヘッダはマニュアルページの作者の裁量において、 推奨されているものです。 .Ql .Sh マクロは構文解析されますが、一般的には呼び出し不可能です。 .Ql .Sh を呼び出すときだけは、このマクロは引数として使用することができます。 この場合、 .Ql .Sh 用のデフォルトフォントを再度有効にします。 .Pp デフォルト幅は 8n です。 . .Bl -tag -width ".Li .Sh\ RETURN\ VALUES" .It Li ".Sh NAME" .Ql ".Sh NAME" マクロは必須です。 これが指定されていないと、ヘッダとフッタ、それにデフォルトの ページレイアウトが設定されず、結果はかなり好ましくないものに なるでしょう。 .Sx NAME セクションは最低 3 つの項目からなります。 最初のものは名称マクロ .Ql .Nm であり、マニュアルページのサブジェクトとなります。 2 番目のものは名称説明マクロ .Ql .Nd であり、サブジェクト名を 3 つめの項目、 すなわちその名称の説明と分離します。 説明に割り当てられるスペースは小さいものですので、 できるだけ簡潔で分かりやすいものでなければなりません。 .Pp .Ql .Nd は全ての引数の頭に .Ql - , を印字します。 . .It Li ".Sh LIBRARY" このセクションは、セクション 2 および 3 の関数呼び出しの ためにあります。 このセクションには、 .Ql .Lb マクロ呼び出し 1 つのみが含まれている必要があります。 .Sx "ライブラリ名" を参照してください。 . .It Li ".Sh SYNOPSIS" .Sx SYNOPSIS セクションはそのマニュアルページのサブジェクトとなっている項目の 典型的な使用法を説明します。 .Ql .Nm , .Ql .Cd , あるいは .Ql .Fn です (他には .Ql .Fo , .Ql .Fc , .Ql .Fd , .Ql .Ft のマクロも必要な場合があります)。 関数名マクロ .Ql .Fn はセクション 2 と 3 のマニュアルページにおいて必須のもので、 コマンドと一般名称マクロ .Ql .Nm はセクション 1, 5, 6, 7, 8 で必須の項目です。 セクション 4 のマニュアルでは .Ql .Nm か .Ql .Fd 、もしくは設定デバイス使用法マクロ .Ql .Cd が必要です。 その他のいくつかのマクロが次に示すような書式行を生成するために 必要なことがあります: . .Bd -filled -offset indent .Nm cat .Op Fl benstuv .Op Fl .Ar .Ed .Pp . 次のマクロが使われています: .Pp .Dl ".Nm cat" .Dl ".Op Fl benstuv" .Dl ".Op Fl" .Dl .Ar . .It Li ".Sh DESCRIPTION" ほとんどの場合、 .Sx "DESCRIPTION" セクションでの最初のテキストはそのコマンド、関数もしくは ファイルについての短い段落で、オプションの構文リストと それぞれの説明がそれに続きます。 そのようなリストを作成するには .Ql .Bl (リスト開始マクロ)、 .Ql .It (リスト項目マクロ)、 .Ql .El (リスト終了マクロ) を使用します (後述の .Sx リストとカラム セクションを参照)。 . .It Li ".Sh IMPLEMENTATION NOTES" 特定の実装に関する情報はここに置く必要があります。 . .It Li ".Sh RETURN VALUES" セクション 2, 3, 9 の関数の戻り値はここに来る必要があります。 .Ql .Rv を使用して、セクション 2 および 3 のライブラリ関数の .Sx RETURN VALUES セクションを生成することができます。 .Sx "戻り値" の項を参照してください。 .El .Pp . 次の .Ql .Sh セクションヘッダはマニュアルページの好ましいレイアウトの一部であり、 一貫性を保つために適切に使われなければなりません。 これらは使われる順番にリストされています。 . .Bl -tag -width ".Li .Sh\ COMPATIBILITY" .It Li ".Sh ENVIRONMENT" .Sx ENVIRONMENT セクションでは関連する環境変数および それらの振るまいや使用方法に関する手がかりを明らかにする 必要があります。 . .It Li ".Sh FILES" マニュアルページのサブジェクトによって使用されるか生成されるファイルで、 .Sx FILES セクション中でマクロ .Ql .Pa によってリストする必要があります。 . .It Li ".Sh EXAMPLES" 使用例を生成するにはいくつか方法があります。 詳細は後述の .Sx 使用例 セクションを参照してください。 . .It Li ".Sh DIAGNOSTICS" コマンドからの診断メッセージはこのセクションに置く必要があります。 . .It Li ".Sh COMPATIBILITY" 知られている互換性の問題 (例えば、非推奨になったオプションや パラメータ) をここにリストする必要があります。 . .It Li ".Sh ERRORS" 特定のエラーハンドリング、特にライブラリ関数 (マニュアルページのセクション 2, 3, 9) でのエラーハンドリングは ここで説明する必要があります。 .Ql .Er マクロはエラー (errno) を指定するのに使用されます。 . .It Li ".Sh SEE ALSO" .Sx "SEE ALSO" セクションには、そのマニュアルページの題材に関する資料への参照と 他の関連するマニュアルページへのクロスリファレンスが記載されます。 クロスリファレンスは .Ql .Xr マクロによって指定されます。 現在、 .Xr refer 1 スタイルのリファレンスには適合していません。 .Pp クロスリファレンスはセクション番号順、同一セクションにあるものは アルファベット順に並べ、カンマで区切ることを推奨します。 以下に例を示します: .Pp .Xr ls 1 , .Xr ps 1 , .Xr group 5 , .Xr passwd 5 . .It Li ".Sh STANDARDS" コマンドやライブラリ関数やファイルが、 .St -p1003.2 や .St -ansiC のような特定の実装によるものであれば、ここで記述します。 もしコマンドがどの規格にも基づいていなければ、その歴史は .Sx HISTORY のセクションで説明されなければなりません。 . .It Li ".Sh HISTORY" 特定の規格に基づいていないコマンドは、 このセクションでその歴史の概要を説明する必要があります。 . .It Li ".Sh AUTHORS" クレジットはここに置く必要があります。 人物名を指定するには .Ql .An マクロを使用する必要があります。 . .It Li ".Sh BUGS" あきらかな問題はここで記述します。 .El .Pp . ユーザ指定の .Ql .Sh セクションを追加することができます。 例えば、このセクションは以下のように設定されています。 . .Bd -literal -offset 15n \&.Sh "ページ構造領域" .Ed . .Ss "サブセクションヘッダ" . サブセクションヘッダはセクションヘッダとまったく同じ文法を しています。 .Ql .Ss は構文解析されますが、一般的に呼び出し不可能です。 このマクロは、 .Ql .Ss の呼び出し時にのみ引数として使用できます。このとき、 .Ql .Ss のデフォルトフォントが再度有効になります。 .Pp デフォルト幅は 8n です。 . .Ss "段落と行スペース" . .Bl -tag -width ".Li .Pp" .It Li .Pp .Ql .Pp 段落コマンドは必要な場合に行スペースを指定するために使われます。 このマクロは .Ql .Sh マクロや .Ql .Ss マクロの後、ならびに .Ql .Bl マクロや .Ql .Bd マクロの前では必要ありません (いずれのマクロも .Fl compact フラグが指定されていなければ垂直方向の距離を宣言します)。 .Pp このマクロは呼び出し不可能であり、構文解析もされません。そして 引数をとりません。別名は .Ql .Lp です。 .El . .\" XXX . .\" This worked with version one, need to redo for version three .\" .Pp .\" .Ds I .\" .Cw (ax+bx+c) \ is\ produced\ by\ \& .\" .\".Cw (ax+bx+c) \&.Va_by_) \&_and_\& \&[?/]m_b1_e1_f1[?/]\& .\" .Cl Cx \t\t .\" .Li \&.Cx\ ( .\" .Cx .\" .Cl Cx \t\t .\" .Li \&.Va ax .\" .Cx .\" .Cl Cx \t\t .\" .Li \&.Sy \+ .\" .Cx .\" .Cl Cx \&(\& .\" .Va ax .\" .Cx + .\" .Va by .\" .Cx + .\" .Va c ) .\" .Cx \t .\" .Em is produced by .\" .Cx \t .\" .Li \&.Va by .\" .Cx .\" .Cl Cx \t\t .\" .Li \&.Sy \+ .\" .Cx .\" .Cl Cx \t\t .\" .Li \&.Va c ) .\" .Cx .\" .Cl Cx \t\t .\" .Li \&.Cx .\" .Cx .\" .Cw .\" .De .\" .Pp .\" This example shows the same equation in a different format. .\" The spaces .\" around the .\" .Li \&+ .\" signs were forced with .\" .Li \e : .\" .Pp .\" .Ds I .\" .Cw (ax\ +\ bx\ +\ c) \ is\ produced\ by\ \& .\" .\".Cw (ax+bx+c) \&.Va_by_) \&_and_\& \&[?/]m_b1_e1_f1[?/]\& .\" .Cl Cx \t\t .\" .Li \&.Cx\ ( .\" .Cx .\" .Cl Cx \t\t .\" .Li \&.Va a .\" .Cx .\" .Cl Cx \t\t .\" .Li \&.Sy x .\" .Cx .\" .Cl Cx \t\t .\" .Li \&.Cx \e\ +\e\ \e& .\" .Cx .\" .Cl Cx \&(\& .\" .Va a .\" .Sy x .\" .Cx \ +\ \& .\" .Va b .\" .Sy y .\" .Cx \ +\ \& .\" .Va c ) .\" .Cx \t .\" .Em is produced by .\" .Cl Cx \t\t .\" .Li \&.Va b .\" .Cx .\" .Cl Cx \t\t .\" .Li \&.Sy y .\" .Cx .\" .Cl Cx \t\t .\" .Li \&.Cx \e\ +\e\ \e& .\" .Cx .\" .Cl Cx \t\t .\" .Li \&.Va c ) .\" .Cx .\" .Cl Cx \t\t .\" .Li \&.Cx .\" .Cx .\" .Cw .\" .De .\" .Pp .\" The incantation below was .\" lifted from the .\" .Xr adb 1 .\" manual page: .\" .Pp .\" .Ds I .\" .Cw \&[?/]m_b1_e1_f1[?/]\& is\ produced\ by .\" .Cl Cx \t\t .\" .Li \&.Cx Op Sy ?/ .\" .Cx .\" .Cl Cx \t\t .\" .Li \&.Nm m .\" .Cx .\" .Cl Cx Op Sy ?/ .\" .Nm m .\" .Ad \ b1 e1 f1 .\" .Op Sy ?/ .\" .Cx \t .\" .Em is produced by .\" .Cx \t .\" .Li \&.Ar \e\ b1 e1 f1 .\" .Cx .\" .Cl Cx \t\t .\" .Li \&.Op Sy ?/ .\" .Cx .\" .Cl Cx \t\t .\" .Li \&.Cx .\" .Cx .\" .Cw .\" .De .\" .Pp . .Ss キープ . 現在実装されているキープは単語に対するものだけです。 マクロは .Ql .Bk (キープ開始) と .Ql .Ek (キープ終了) です。 現在 .Ql .Bk が受け付けるオプションは .Fl words のみで (オプションを何も与えていなければこれがデフォルトでもあります) オプションの途中で改行が入らないようにするのに便利です。 make コマンド行の引数を生成する例 ( .Sx この名前には何が の項を参照) において、キープは .Xr nroff がフラグと引数を別の行に分けないように使われています。 .Pp いずれのマクロも呼び出し不可能であり、構文解析もされません。 .Pp キープマクロについてはもっと作業をする必要があります。 特に .Fl line オプションは追加する必要があるでしょう。 . .Ss "例示とディスプレイ" . ディスプレイには 7 つのタイプがあります。 .Pp .Bl -tag -width ".Li .D1" .It Li .D1 (D-いちです) インデントされたテキストを 1 行表示します。 このマクロは構文解析されますが、呼び出し不可能です。 .Pp .D1 Fl ldghfstru .Pp これは次の指定で生成されたものです: .Li ".D1 Fl ldghfstru" . .It Li .Dl (D-エルです) インデントされた .Em リテラル テキストを 1 行表示します。 .Ql .Dl マクロの例は本ファイル中にわたって使われています。 これによって 1 行のテキストのインデント (表示) が可能になります。 デフォルトフォントは固定幅 (リテラル) に設定されます。 .Ql .Dl は構文解析されますが、呼び出し不可能です。 .Pp .Dl % ls -ldg /usr/local/bin .Pp これは、次の指定で生成されたものです: .Li ".Dl % ls -ldg /usr/local/bin" . .It Li .Bd ディスプレイ開始。 .Ql .Bd ディスプレイは .Ql .Ed マクロで終了しなければなりません。 これは、次の書式をとります: .Pp .Bl -tag -width ".Li .Bd" -offset indent .It Li .Bd Xo .Bro \-literal | \-filled | \-unfilled | \-ragged | \-centered Brc .Oo \-offset Ao 文字列 Ac Oc Oo \-file Ao ファイル名 Ac Oc Oo \-compact Oc Xc .El .Pp . .Bl -tag -width ".Fl file Ao Ar ファイル名 Ac " -compact .It Fl ragged 行詰めされますが、右マージンは調整しません (左マージンのみです)。 .It Fl centered 現在の左マージンと右マージン間の中央線です。 線それぞれが中央揃えになるということに注意してください。 .It Fl unfilled 行詰めしません。テキストのブロックを入力されたままの状態で 表示します。改行もユーザが指定した通りに使われます。 このため、何の警告メッセージも出さずに長過ぎる行を 生成する可能性があります。 .It Fl filled 行詰めされたブロックを表示します。 テキストブロックが整形されます (つまり、 テキストは左右どちら側にも揃えられます)。 .It Fl literal リテラルフォント (通常固定幅) でブロックを表示します。 ソースコードや、単純にタブもしくは空白で整えられた テキストには便利です。 .It Fl file Ao Ar ファイル名 Ac .Fl file フラグに続いた名前を持ったファイルが読み込まれ、 指定されたディスプレイタイプで .Ql .Bd と .Ql .Ed マクロで囲まれたデータよりも前に表示されます。 ファイル中の .Xr troff/ Ns Nm \-mdoc コマンドはどんなものでも処理されます。 .It Fl offset Ao Ar 文字列 Ac .Fl offset が以下の文字列のいずれかとともに指定されていると、 その文字列は次のテキストのブロックのインデントのレベルを示すものとして 解釈されます。 . .Pp .Bl -tag -width ".Ar indent-two" -compact .It Ar left ブロックを現在の左マージンに揃えます。 これは .Ql .Bd のデフォルトのモードです。 .It Ar center ブロックを中央揃えにします。 残念ながら現時点では、 単にブロックの左側を仮想的な中央マージンに揃えるだけです。 .It Ar indent デフォルトのインデント値もしくはタブの分だけインデントします。 デフォルトのインデント値は .Ql .D1 および .Ql .Dl マクロでも使われていますので、この 2 つのディスプレイと 行が揃うことが保証されています。 インデント値は通常 6n つまり約 2/3 インチ (固定幅文字 6 つ分) です。 .It Ar indent-two デフォルトのインデント値の 2 倍分インデントします。 .It Ar right これはブロックをページの右端から約 2 インチ離して .Em 左 揃えします。 このマクロはちゃんと動作する必要があるのですが、 .Xr troff ではまったくちゃんと動作してくれていません。 .El .Pp . .Ao 文字列 Ac がそれ以外で正しい数値表現をしている場合 .Pf ( Sq Em u .Em 以外のスケール指示子を伴う)、 インデント用にその値を使用します。 スケール指示子のなかで最も役に立つものは .Sq m および .Sq n です。これらはいわゆる .Em \&Em と .Em "En square" を指定します。 これらはそれぞれ、現在のフォントでの文字 .Sq m および文字 .Sq n の幅とほぼ同じです ( nroff の出力については、 どちらのスケール指示子でも同じ値が得られます )。 .Ao 文字列 Ac が数値表現をしていない場合、文字列は .Nm \-mdoc マクロ名であるかどうか検査され、このマクロに関連する デフォルトのオフセット値が使われます。 最終的にすべてのテストが失敗した場合 the width of .Ao 文字列 Ac の幅 (固定幅フォントでのタイプセット) がオフセットと見なされます。 .It Fl compact ディスプレイを開始するときに垂直方向の空白を挿入しないようにします。 .El . .It Li .Ed ディスプレイの終了 (引数はとりません)。 .El . .Ss "リストとカラム" . リスト開始マクロ .Ql .Bl で開始できるリストには何種類かあります。 リスト中の項目は項目マクロ .Ql .It で指定され、各リストは .Ql .El マクロで終了しなければなりません。 リストはリスト自身やディスプレイの中で入れ子にすることができます。 リスト中でカラムを使ったり、カラムの中でリストを使ったりすることに ついては検証されていません。 .Pp さらに、タグ幅、リストのオフセット、コンパクトの度合 (項目間の空白行が許されているかどうか) のような リストの属性をいくつか指定することができます。 本ドキュメントのほとんどはタグ .Pf ( Fl tag ) スタイルリストで整形されています。 .Pp このマクロは次の文法規則を持っています: . .Pp .Bl -tag -width ".Li .Bl" -offset indent -compact .It Li .Bl Xo .Bro \-hang | \-ohang | \-tag | \-diag | \-inset Brc .Oo \-width Ao 文字列 Ac Oc .Oo \-offset Ao 文字列 Ac Oc Oo \-compact Oc Xc .It Li .Bl Xo .No \-column Oo \-offset Ao 文字列 Ac Oc .Ao 文字列1 Ac Ao 文字列2 Ac ... Xc .It Li .Bl Xo .Bro \-item | \-enum Oo \-nested Oc | \-bullet | \-hyphen | \-dash Brc .Oo \-offset Ao 文字列 Ac Oc Oo \-compact Oc Xc .El .Pp . 次に、このリストタイプの詳細な解説を行います。 . .Pp .Bl -tag -width ".Fl column" -compact .It Fl bullet ビュレットリストです。 . .Bd -literal -offset indent \&.Bl -bullet -offset indent -compact \&.It 1 つ目のビュレットはここにきます。 \&.It 2 つ目のビュレットはここにきます。 \&.El .Ed .Pp . 生成結果は次の通りです: . .Pp .Bl -bullet -offset indent -compact .It 1 つ目のビュレットはここにきます。 .It 2 つ目のビュレットはここにきます。 .El .Pp . .It Fl dash No ( または Fl hyphen ) ダッシュ文字によるリストです。 . .Bd -literal -offset indent \&.Bl -dash -offset indent -compact \&.It 1 つ目のダッシュはここにきます。 \&.It 2 つ目のダッシュはここにきます。 \&.El .Ed .Pp . 生成結果は次の通りです: . .Pp .Bl -dash -offset indent -compact .It 1 つ目のダッシュはここにきます。 .It 2 つ目のダッシュはここにきます。 .El .Pp . .It Fl enum 箇条書きリストです。 . .Bd -literal -offset indent \&.Bl -enum -offset indent -compact \&.It 1 つ目の項目はここにきます。 \&.It 2 つ目の項目はここにきます。 \&.El .Ed .Pp . 生成結果は次の通りです: . .Pp .Bl -enum -offset indent -compact .It 1 つ目の項目はここにきます。 .It 2 つ目の項目はここにきます。 .El .Pp . 箇条書きリストを入れ子にしたい場合、 .Fl nested フラグを使用してください (第 2 レベルのリストが開始されます): . .Bd -literal -offset indent \&.Bl -enum -offset indent -compact \&.It 1 つ目の項目はここにきます。 \&.Bl -enum -nested -compact \&.It 2 つ目の項目はここにきます。 \&.It 3 つ目の項目はここにきます。 \&.It \&.El \&.It 4 つ目の項目はここにきます。 \&.El .Ed .Pp . 生成結果は次の通りです: . .Pp .Bl -enum -offset indent -compact .It 1 つ目の項目はここにきます。 .Bl -enum -nested -compact .It 2 つ目の項目はここにきます。 .It 3 つ目の項目はここにきます。 .El .It 4 つ目の項目はここにきます。 .El .Pp . .It Fl item リストの印をつけない .Fl item タイプのリストです。 . .Bd -literal -offset indent \&.Bl -item -offset indent \&.It 1 つ目の項目はここにきます。 1 つ目の項目はここにきます。 1 つ目の項目はここにきます。 \&.It 2 つ目の項目はここにきます。 2 つ目の項目はここにきます。 2 つ目の項目はここにきます。 \&.El .Ed .Pp . 生成結果は次の通りです: . .Pp .Bl -item -offset indent .It 1 つ目の項目はここにきます。 1 つ目の項目はここにきます。 1 つ目の項目はここにきます。 .It 2 つ目の項目はここにきます。 2 つ目の項目はここにきます。 2 つ目の項目はここにきます。 .El .Pp . .It Fl tag タグつきリストです。 タグ幅を指定するには .Fl width を使用してください。 . .Pp .Bl -tag -width "PPID" -compact -offset indent .It SL プロセスが sleep している時間 (ブロックされた秒数) .It PAGEIN そのプロセスによって、まだメモリにロードされていないページへの参照が 起こることにより生じたディスク .Tn I/O の回数 .It UID 数値表記によるプロセス所有者のユーザ ID .It PPID 数値表記による親プロセスの ID、プロセスの優先度 (割り込み不可の待機状態のときには、正でない値になる) .El .Pp . 元のテキストは次の通りです: . .Bd -literal -offset indent \&.Bl -tag -width "PPID" -compact -offset indent \&.It SL プロセスが sleep している時間 (ブロックされた秒数) \&.It PAGEIN そのプロセスによって、まだメモリにロードされていないページへの参照が 起こることにより生じたディスク \&.Tn I/O の回数 \&.It UID 数値表記によるプロセス所有者のユーザ ID \&.It PPID 数値表記による親プロセスの ID、プロセスの優先度 (割り込み不可の待機状態のときには、正でない値になる) \&.El .Ed .Pp . .It Fl diag 診断リストはセクション 4 の診断リストを生成するもので、 呼び出し可能なマクロが無視されることを除き、inset リストと似ています。 フラグ .Fl width は、この文脈では意味がありません。 .Pp 使用例: . .Bd -literal -offset indent \&.Bl -diag \&.It ここで Sy を使うことはできません。 このメッセージはすべて出力されます。 \&.El .Ed .Pp . 生成結果 . .Bl -diag .It ここで Sy を使うことはできません。 このメッセージはすべて出力されます。 .El .Pp . .It Fl hang ぶら下がりタグつきリストです。 . .Bl -hang -offset indent .It Em Hanged ラベル幅よりもラベルが小さい場合には ぶら下げられたラベルはタグつきリストと同じように見えます。 .It Em Longer hanged list labels ラベル幅より長いぶら下がりリストのラベルは、 タグつき段落ラベルとは違い、段落に溶け込みます。 .El .Pp 以上の文章を生成した、整形前のテキストは 次の通りです: . .Bd -literal -offset indent \&.Bl -hang -offset indent \&.It Em Hanged ラベル幅よりもラベルが小さい場合には ぶら下げられたラベルはタグつきリストと同じようにみえます。 \&.It Em Longer Hanged list labels ラベル幅より長いぶら下がりリストのラベルは、 タグつき段落ラベルとは違い、段落に溶け込みます。 \&.El .Ed .Pp . .It Fl ohang オーバハングタグ (overhanging tags) を用いたリストは 項目に対してインデントを使いません。 タグは別の行に出力されます。 .Pp .Bl -ohang -offset indent .It Sy SL プロセスが sleep している時間 (ブロックされた秒数) .It Sy PAGEIN そのプロセスによって、まだメモリにロードされていないページへの参照が 起こることで生じたディスク .Tn I/O の回数 .It Sy UID 数値表記によるプロセス所有者のユーザ ID .It Sy PPID 数値表記による親プロセスの ID、プロセスの優先度 (割り込み不可の待機状態のときには、正でない値になる) .El .Pp . 元のテキストは次の通りです: . .Bd -literal -offset indent \&.Bl -ohang -offset indent \&.It Sy SL プロセスが sleep している時間 (ブロックされた秒数) \&.It Sy PAGEIN そのプロセスによって、まだメモリにロードされていないページへの参照が 起こることで生じたディスク \&.Tn I/O の回数 \&.It Sy UID 数値表記によるプロセス所有者のユーザ ID \&.It Sy PPID 数値表記による親プロセスの ID、プロセスの優先度 (割り込み不可の待機状態のときには、正でない値になる) \&.El .Ed .Pp . .It Fl inset 次は、inset ラベルの例です: .Bl -inset -offset indent .It Em tag タグリスト (タグ段落とも呼びます) は バークレーのマニュアルで使われている最も一般的な 種類のリストです。 後で述べるように、 .Fl width 属性を使用してください。 .It Em diag 診断リストはセクション 4 の診断リストを生成し、 呼び出し可能なマクロを無視するという点を除けば inset リストと似ています。 .It Em hang ぶら下がりラベルは気分の問題です。 .It Em ohang オーバハングラベルは空白に制限がある場合には良いです。 .It Em inset inset ラベルは段落ブロックを制御するのに便利で、 .Nm \-mdoc マニュアルを別のフォーマットに変換するのに有用です。 .El .Pp 上の例を生成したソーステキストはこうなっています: . .Bd -literal -offset indent \&.Bl -inset -offset indent \&.It Em tag タグリスト (タグ段落とも呼びます) は バークレーのマニュアルで使われている最も一般的な 種類のリストです。 後で述べるように、 \&.Fl width 属性を使用してください。 \&.It Em diag 診断リストはセクション 4 の診断リストを生成し、 呼び出し可能なマクロを無視するという点を除けば inset リストと似ています。 \&.It Em hang ぶら下がりラベルは気分の問題です。 \&.It Em ohang オーバハングラベルは空白に制限がある場合には良いです。 \&.It Em inset inset ラベルは段落ブロックを制御するのに便利で、 \&.Nm \-mdoc マニュアルを別のフォーマットに変換するのに有用です。 \&.El .Ed .Pp . .It Fl column この種類のリストは複数カラムを生成します。 カラムの数および各カラムの幅は .Fl column リストへの引数、 .Aq Ar string1 , .Aq Ar string2 等によって決定されます。 .Aq Ar stringN が .Ql .\& (ドット) で開始し直後に有効な .Nm \-mdoc マクロ名が続く場合、 .Aq Ar stringN を解釈して結果の幅を使用します。 そうでない場合、 .Aq Ar stringN (固定幅フォントでのタイプセット) は .Ar N 番目の桁の幅になります。 .Pp .Ql .It 引数はそれぞれ構文解析され行を生成します。 行中の各列はタブや .Ql .Ta マクロで分けられた引数です。 .Pp 次の表、 . .Bl -column -offset indent ".Sy 文字列" ".Sy nroff" ".Sy troff" .It Sy 文字列 Ta Sy nroff Ta Sy troff .It Li <= Ta <= Ta \*(<= .It Li >= Ta >= Ta \*(>= .El .Pp . は次のようにして生成されています: . .Bd -literal -offset indent \&.Bl -column -offset indent ".Sy 文字列" ".Sy nroff" ".Sy troff" \&.It Sy 文字列 Ta Sy nroff Ta Sy troff \&.It Li <= Ta <= Ta \e*(<= \&.It Li >= Ta >= Ta \e*(>= \&.El .Ed .El .Pp . その他のキーワード: . .Bl -tag -width ".Fl indent Ao Ar 文字列 Ac" .It Fl width Ao Ar 文字列 Ac .Aq Ar 文字列 が .Ql .\& (ドット) で開始し直後に有効な .Nm \-mdoc マクロ名が続く場合、 .Aq Ar 文字列 を解釈し、その結果の幅を使います。 本ドキュメントのほとんどすべてのリストは このオプションを使用しています。 .Pp 使用例: . .Bd -literal -offset indent \&.Bl -tag -width ".Fl test Ao Ar 文字列 Ac" \&.It Fl test Ao Ar 文字列 Ac これは、 \&.Fl width フラグをタグリストと一緒に使うとどのように 働くかを見るためのもっと長い文です。 \&.El .Ed .Pp . 生成結果: . .Bl -tag -width ".Fl test Ao Ar 文字列 Ac" .It Fl test Ao Ar 文字列 Ac これは、 .Fl width フラグをタグリストと一緒に使うとどのように 働くかを見るためのもっと長い文です。 .El .Pp . .Ao 文字列 Ac が解釈される前に現在の .Nm \-mdoc の状態が保存されることに注意してください。 文字列が解釈された後ですべての変数が再度復元されます。 しかし、ボックス (囲いに使用される) は .Tn GNU .Xr troff 1 では保存されません。結果としては、醜いエラーを防ぐためには 引数は常に .Em 平衡がとれて いなくてはなりません。 例えば、本当に開き山括弧だけが必要である場合には .Ql ".Ao Ar 文字列" と書いてはだめで、代わりに .Ql ".Ao Ar 文字列 Xc" と書かなくてはなりません。 .Pp そうでない場合、 .Aq Ar 文字列 が正当な数値表現である場合 .Sq ( Em u .Em 以外のスケール指示子を伴う)、 インデント用にその値を使用します。 最も有用なスケール指示子は .Sq m と .Sq n です。 これらはいわゆる .Em \&Em および .Em "En square" を指定します。 これらはそれぞれ、現在のフォントでの文字 .Sq m および文字 .Sq n の幅とほぼ同じです (nroff の出力については、 どちらのスケール指示子でも同じ値が得られます)。 .Aq Ar 文字列 が数値表現をしていない場合、文字列は .Nm \-mdoc マクロ名であるかどうか検査され、このマクロに関連する デフォルトのオフセット値が使われます。 最終的にすべてのテストが失敗した場合 .Aq Ar 文字列 の幅 (固定幅フォントでのタイプセット) がオフセットと見なされます。 .Pp タグリストタイプ用に幅が指定されていない場合、 .Ql .It が起動される度に適切な幅を決定しようと試みます。 .Ql .It の第 1 引数が呼び出し可能なマクロである場合、 そのマクロのデフォルト幅が使われます。 そうでなければ、 .Ql .No のデフォルト幅が使われます。 .Pp .It Fl offset Ao Ar 文字列 Ac .Aq Ar 文字列 が .Ar indent である場合、デフォルトのインデント値 (通常 6n に設定されており、 .Ql .Dl または .Ql .Bd で使われる値と似ています) が使われます。 .Aq Ar 文字列 が正当な数値表現である場合 .Pf ( Sq Em u 以外のスケール指示子を伴う )、 その値をインデントに使用します。 最も有用なスケール指示子は .Sq m と .Sq n であり、これらはいわゆる .Em \&Em および .Em "En square" です。 これらはそれぞれ、それぞれ現在のフォントでの .Sq m と .Sq n の幅とほぼ同じです (nroff の出力については、 どちらのスケール指示子も同じ値をとります)。 .Ao 文字列 Ac が数値表現でない場合、その文字列が .Nm \-mdoc のマクロ名であるかどうか検査され、このマクロに関連する デフォルトのオフセット値が使われます。 最終的にすべてのテストが失敗した場合、 .Aq Ar 文字列 の幅 (固定幅フォントでのタイプセット) がオフセットとして とられます。 .It Fl compact リストの前およびリスト項目間に垂直方向の空白を挿入しないように します。 .El . . .Sh "その他のマクロ" . ここには、いままでのセクションにはうまく当てはまらなかった 残りのマクロのリストがあります。 次のマクロに対しては本物の使用例を見つけられませんでした。 それは .Ql .Me と .Ql .Ot です。この 2 つについても完璧を期するためにここに 文書化はしています。もしこの 2 つのマクロの 適切な使い方をご存知であれば .Mt bug-groff@gnu.org までメールを送ってください (例つきで)。 . .Bl -tag -width ".Li .Bt" .It Li .Bt は . .Bd -ragged -offset indent .Bt .Ed .Pp を表示します。 .Pp このマクロは呼び出し不可能であり、構文解析もされません。 また引数もとりません。 . .It Li .Fr .Pp .Dl 使い方: .Fr Ao 関数の戻り値 Ac ... .Pp このマクロは使わないでください。 このマクロは戻り値 (通常は数字 1 個) の直前での 改行を許してしまいます。 印刷時の振る舞いとしては悪いことです。 直前の単語と戻り値とを結合させるには .Ql \e~ を使用してください。 . .It Li .Hf (ヘッダ) ファイルをそのまま含めるにはこのマクロを 使ってください。 このマクロは、最初に .Ql File: とファイル名を表示し、その後で .Ao ファイル Ac の内容を表示します。 .Pp .Dl 使い方: .Hf Ao ファイル Ac .Pp このマクロは呼び出し不可能であり、構文解析もされません。 . .It Li .Lk 将来書かれる予定です。 . .It Li .Me 正確な使用方法は分かりません。 .Nm \-mdoc ソースファイル中の記述では .Dq "メニューエントリ" となっています。 .Pp デフォルト幅は 6n です。 . .It Li .Mt 将来書かれる予定です。 . .It Li .Ot 正確な使用方法は分かりません。 .Nm \-mdoc ソースファイル中の記述では .Dq "古い関数タイプ (fortran)" となっています。 . .It Li .Sm 空白モードを有効に (トグル) します。 .Pp .Dl 使い方: .Sm Oo on | off Oc ... .Pp 空白モードが off の場合、マクロ引数の間に空白は 挿入されません。引数なしで呼ばれた場合 (あるいは 次の引数が .Ql on でも .Ql off でもない場合) .Ql .Sm マクロは空白モードに入ります。 . .It Li .Ud マクロは . .Bd -ragged -offset indent .Ud .Ed .Pp を表示します。 .Pp このマクロは呼び出し不可能であり、構文解析もされません。 また引数もとりません。 .El . . .Sh "定義済み文字列" . 次の文字列が定義済みです: .Pp .Bl -column 文字列 infinity "troff " "まっすぐなダブルクォート" -offset indent .It Sy 文字列 Ta Sy nroff Ta Sy troff Ta Sy 意味 .It Li <= Ta <= Ta \*[<=] Ta "以下" .It Li >= Ta >= Ta \*[>=] Ta "以上" .It Li Rq Ta '' Ta \*[Rq] Ta "右側のダブルクォート" .It Li Lq Ta `` Ta \*[Lq] Ta "左側のダブルクォート" .It Li ua Ta ^ Ta \*[ua] Ta "上向き矢印" .It Li aa Ta \' Ta \*[aa] Ta "アキュートアクセント" .It Li ga Ta \` Ta \*[ga] Ta "グレーブアクセント" .It Li q Ta \&" Ta \*[q] Ta "まっすぐなダブルクォート" .It Li Pi Ta pi Ta \*[Pi] Ta "ギリシャ語のパイ" .It Li Ne Ta != Ta \*[Ne] Ta "不等号" .It Li Le Ta <= Ta \*[Le] Ta "以下" .It Li Ge Ta >= Ta \*[Ge] Ta "以上" .It Li Lt Ta < Ta \*[Lt] Ta "小なり" .It Li Gt Ta > Ta \*[Gt] Ta "大なり" .It Li Pm Ta +\- Ta \*[Pm] Ta "プラスマイナス" .It Li If Ta infinity Ta \*[If] Ta "無限" .It Li Na Ta \*[Na] Ta \*[Na] Ta "非数値" .It Li Ba Ta \*[Ba] Ta \*[Ba] Ta "垂直線" .El .Pp カラムの名前 .Sy nroff と .Sy troff は少々誤解を招くものです。 .Sy nroff は .Tn ASCII 文字を表示しますが、 .Sy troff では利用可能なもののうち一番良いグリフ形式を 表示します。 例えば、Unicode を使用可能にした .Tn TTY デバイスはすべての文字列に対して適切なグリフ表現を 持っていますが、それに対して Latin1 に対して機能を強化した .Tn TTY デバイスはプラスマイナス記号しか持っていません。 .Pp 文字を 2 つ含んだ文字列名は .Ql \e*(xx として表記できます。 文字を 1 文字だけ含んだ文字列名は .Ql \e*x と表記できます。 どのような長さの文字列名に対しても、一般的な文法は .Ql \e*[xxx] となります ( これは .Tn GNU .Xr troff 1 拡張です)。 . . \# \#===================================================================== \# .Sh 診断 . 以前のバージョンの .Nm \-mdoc パッケージでは利用可能だったデバッグ用マクロ .Ql .Db は取り除かれました。なぜなら、 .Tn GNU .Xr troff 1 ではパラメータをチェックするのにもっと良いファシリティを 提供しているからです。さらに、このマクロパッケージには エラーや警告メッセージが多数追加されており、よりロバストで 饒舌なものになっています。 .Pp 唯一残ったデバッグ用マクロは .Ql .Rd であり、これはすべてのグローバルレジスタならびに文字列の レジスタダンプを出力するものです。 通常のユーザが使う必要は決してないでしょう。 . . .Sh "GROFF, TROFF, および NROFF を使用した整形" . デフォルトでは、このパッケージでは .Sq latin1 や .Sq unicode のような .Tn TTY デバイスで表示する場合には改ページやヘッダ、フッタは 禁止されており、マニュアルをオンラインで効率良く 見ることができるようになっています。 この振る舞いは、 .Xr groff を呼んでいるときにレジスタ .Ql cR に 0 を指定することで変更することができます (例えば、 .Tn TTY 出力のハードコピーを作成したいときなど)。 .Pp .Dl groff -Tlatin1 -rcR=0 -mdoc foo.man > foo.txt .Pp 両面印刷用には、レジスタ .Ql D を 1 に設定してください: .Pp .Dl groff -Tps -rD1 -mdoc foo.man > foo.ps .Pp ドキュメントのフォントサイズを 11pt や 12pt に変更したい 場合は、レジスタ .Ql S をそれに合わせて設定してください: .Pp .Dl groff -Tdvi -rS11 -mdoc foo.man > foo.dvi .Pp レジスタ .Ql S は .Tn TTY デバイスに対しては無視されます。 . . .Sh 関連ファイル . .Bl -tag -width mdoc/doc-ditroff -compact .It Pa doc.tmac 主なマニュアル用マクロパッケージです。 .It Pa mdoc.tmac .Pa doc.tmac を呼ぶラッパファイルです。 .It Pa mdoc/doc-common 共通する文字列、定義、および印刷出力に関連する項目です。 .It Pa mdoc/doc-nroff .Tn TTY 出力デバイス用に使用される定義です。 .It Pa mdoc/doc-ditroff その他すべてのデバイス用に使用される定義です。 .It Pa mdoc.local ローカルマシンでの追加項目およびカスタマイズ項目です。 .It Pa andoc.tmac このファイルは .Nm \-mdoc パッケージと .Nm \-man パッケージのどちらを使用すべきかをチェックします。 .El . . .Sh "関連項目" . .Xr groff 1 , .Xr man 1 , .Xr troff 1 , .Xr groff_man 7 . . .Sh バグ . セクション 3f はヘッダルーチンには追加されていません。 .Pp .Ql \&.Nm .Sx NAME セクションにおいては、フォントを変更するべきです。 .Pp 行の長さが短すぎる場合に行が分割されるのを防ぐために .Ql \&.Fn がチェックを行う必要があります。 ときどき、最後の括弧が分割されることがあり、 行詰めモードであるときにおかしな結果になることがあります。 .Pp リストマクロおよびディスプレイマクロは何のキープも 行いませんが、これはキープを行うべきです。 .\" Note what happens if the parameter list overlaps a newline .\" boundary. .\" to make sure a line boundary is crossed: .\" .Bd -literal .\" \&.Fn struct\e\ dictionarytable\e\ *dictionarylookup struct\e\ dictionarytable\e\ *tab[] .\" .Ed .\" .Pp .\" produces, nudge nudge, .\" .Fn struct\ dictionarytable\ *dictionarylookup char\ *h struct\ dictionarytable\ *tab[] , .\" .Fn struct\ dictionarytable\ *dictionarylookup char\ *h struct\ dictionarytable\ *tab[] , .\" nudge .\" .Fn struct\ dictionarytable\ *dictionarylookup char\ *h struct\ dictionarytable\ *tab[] . .\" .Pp .\" If double quotes are used, for example: .\" .Bd -literal .\" \&.Fn \*qstruct dictionarytable *dictionarylookup\*q \*qchar *h\*q \*qstruct dictionarytable *tab[]\*q .\" .Ed .\" .Pp .\" produces, nudge nudge, .\" .Fn "struct dictionarytable *dictionarylookup" "char *h" "struct dictionarytable *tab[]" , .\" nudge .\" .Fn "struct dictionarytable *dictionarylookup" "char *h" "struct dictionarytable *tab[]" , .\" nudge .\" .Fn "struct dictionarytable *dictionarylookup" "char *h" "struct dictionarytable *tab[]" . .\" .Pp .\" Not a pretty sight... .\" In a paragraph, a long parameter containing unpaddable spaces as .\" in the former example will cause .\" .Xr troff .\" to break the line and spread .\" the remaining words out. .\" The latter example will adjust nicely to .\" justified margins, but may break in between an argument and its .\" declaration. .\" In .\" .Xr nroff .\" the right margin adjustment is normally ragged and the problem is .\" not as severe. . .\" Local Variables: .\" mode: nroff .\" End: .\" .SH 履歴 .\" Yoshiteru Kageyama 2001/06/10 mdoc.samples.7 .\" を参考に翻訳 .\" MORI Kouji 2001/08/21 訳チェック diff --git a/ja_JP.eucJP/man/man7/ports.7 b/ja_JP.eucJP/man/man7/ports.7 index 1046cda1d5..8ed38fa0eb 100644 --- a/ja_JP.eucJP/man/man7/ports.7 +++ b/ja_JP.eucJP/man/man7/ports.7 @@ -1,388 +1,406 @@ .\" .\" Copyright (c) 1997 David E. O'Brien .\" .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" .\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR .\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES .\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. .\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT, .\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT .\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, .\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY .\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" %FreeBSD: src/share/man/man7/ports.7,v 1.17.2.8 2001/08/17 13:08:49 ru Exp % +.\" %FreeBSD: src/share/man/man7/ports.7,v 1.17.2.9 2002/08/07 10:54:39 blackend Exp % .\" -.\" $FreeBSD: doc/ja_JP.eucJP/man/man7/ports.7,v 1.16 2001/07/29 05:15:26 horikawa Exp $ +.\" $FreeBSD$ .Dd January 25, 1998 .Dt PORTS 7 .Os .Sh 名称 .Nm ports .Nd 寄贈されたアプリケーション .Sh 解説 .Fx -.Nm ports コレクション +ports コレクション によって、ユーザや管理者は簡単にアプリケーションをインストールする ことができます。 .Em port はそれぞれ、オリジナルのソースコードを .Bx 上でコンパイルして実行 させるために必要なパッチのすべてを含んでいます。アプリケーションの コンパイルは、 port のディレクトリで -.Ic make build +.Nm make Cm build と入力するだけで簡単にできます。 port の -.Ql Pa Makefile -は、ローカルディスクからもしくは ftp を使って、自動的にアプリケーションの +.Pa Makefile +は、ローカルディスクからもしくは FTP を使って、自動的にアプリケーションの ソースコードを取得 .Pq fetch して、自分のシステムでそれを展開して、 パッチを当て、コンパイルします。すべてが順調に進んだ場合、 -.Ic make install +.Nm make Cm install を実行することにより、アプリケーションがインストールされます。 .Pp インストールされたシステムよりも新しい ports を、 .Fx リポジトリからダウンロードして使用できます。 -ただし、最初に適切な「アップグレードキット」を http://www.FreeBSD.org/ports/ +ただし、最初に適切な +.Dq "アップグレードキット" +を +.Pa http://www.FreeBSD.org/ports/ から取得してインストールすることが重要です! 新しい ports をダウンロードするときには、 .Xr portcheckout 1 スクリプト (もちろんこれも port です!) が役立つでしょう。 .Pp port の利用に関してさらに情報が必要ならば、 -.Nm ports コレクション (The Ports Collection) -(原文: file:/usr/share/doc/handbook/ports.html または、 -http://www.FreeBSD.org/handbook/ports.html。 -和文: file:/usr/share/doc/ja/handbook/ports.html または、 -http://www.FreeBSD.org/ja/handbook/ports.html) -) に目を通して下さい。 +.%B "The FreeBSD Handbook" +の +.Dq "Packages and Ports" +(原文 +.Pa file:/usr/share/doc/handbook/ports.html +または、 +.Pa http://www.FreeBSD.org/handbook/ports.html +、和文 +.Pa file:/usr/share/doc/ja/books/handbook/ports.html +または、 +.Pa http://www.FreeBSD.org/ja/handbook/ports.html ) +に目を通して下さい。 port を新規に作成するための情報については、 -.Nm 自分で port を作る (Porting applications) -(原文: file:/usr/share/doc/handbook/porting.html または、 -http://www.FreeBSD.org/handbook/porting.html、 -和文: file:/usr/share/doc/ja/handbook/porting.html または -http://www.FreeBSD.org/ja/handbook/porting.html) に目を通して下さい。 -どちらも -.Fx -ハンドブックの一部です。 +.%B "The Porter's Handbook" +.Pa ( file:/usr/share/doc/handbook/porting.html +または、 +.Pa http://www.FreeBSD.org/handbook/porting.html ) +に目を通して下さい。 .Sh ターゲット ターゲットのいくつかは、サブディレクトリを再帰的に make して行きます。 -これにより、例えば、biology の port すべてをインストールすることが +これにより、例えば、 +.Dq Li biology +の port すべてをインストールすることが できます。再帰的に make を行なうターゲットは、 -.Ar build , checksum , clean , configure , -.Ar depends , extract , fetch , install , -.Ar package +.Cm build , checksum , clean , configure , +.Cm depends , extract , fetch , install , +.Cm package です。 .Pp 次のターゲットは、それぞれすぐ手前のターゲットによって順に自動的に 実行されます。すなわち、 -.Ar build +.Cm build は、 (必要があれば、) -.Ar install +.Cm install によって実行されます。以下のターゲットそれぞれについて、同様のルールが -.Ar fetch +.Cm fetch まで順次適用されます。 通常は、ターゲットとして、 -.Ar install +.Cm install を指定するだけでよいはずです。 -.Bl -tag -width configure +.Bl -tag -width ".Cm configure" .It Ar fetch -MASTER_SITES と PATCH_SITES でリストされたサイトから、 +.Va MASTER_SITES +と +.Va PATCH_SITES +でリストされたサイトから、 この port を構築するために必要なファイルすべてを取得 .Pq fetch します。 -.Ev FETCH_CMD +.Va FETCH_CMD と -.Ev MASTER_SITE_OVERRIDE +.Va MASTER_SITE_OVERRIDE とを参照して下さい。 -.It Ar checksum +.It Cm checksum 取得した distfile のチェックサムが port で動作確認されたものと 一致するかどうかを検証します。 -.Ev NO_CHECKSUM +.Va NO_CHECKSUM を定義することで、このステップを飛ばすことができます。 -.It Ar depends +.It Cm depends 現在の port と依存関係にある port をインストール (もしくは、必要がある場合のみコンパイル) します。ターゲット -.Ar extract +.Cm extract もしくは -.Ar fetch +.Cm fetch により呼び出された場合、 -.Ar fetch-depends , -.Ar build-depends +.Cm fetch-depends , +.Cm build-depends などとしてひとつずつ実行されます。 -.Ev NO_DEPENDS +.Va NO_DEPENDS を定義することで、このステップを飛ばすことができます。 -.It Ar extract +.It Cm extract distfile を作業用ディレクトリに展開します。 -.It Ar patch +.It Cm patch port に必要なパッチすべてを適用します。 -.It Ar configure +.It Cm configure port を構成 (configure) します。port によっては、この段階で質問して くるものもあります。 -.Ev INTERACTIVE +.Va INTERACTIVE と -.Ev BATCH +.Va BATCH を参照して下さい。 -.It Ar build +.It Cm build port を構築します。これはターゲット -.Ar all +.Cm all を呼び出すことと同じです。 -.It Ar install +.It Cm install port をインストールし、この port をインストールしたことを package (訳注: .Fx の package system におけるパッケージを指す場合にこう表記します) システムに登録します。このターゲットは、実際に必要なこと すべてを行なってくれます。 .El .Pp 次のターゲットは、通常のインストールプロセスでは実行されません。 -.Bl -tag -width fetch-list -.It Ar fetch-list +.Bl -tag -width ".Cm fetch-list" +.It Cm fetch-list この port を構築するために取得が必要なファイルのリストを表示します。 -.It Ar pretty-print-run-depends-list pretty-print-build-depends-list +.It Cm pretty-print-run-depends-list , pretty-print-build-depends-list コンパイル依存 port リストと実行依存 port リストを表示します。 また、これらの依存 port リストが依存する port についても表示します。 -.It Ar clean +.It Cm clean 展開されたソースコードを削除します。 -.Ev NOCLEANDEPENDS +.Va NOCLEANDEPENDS を定義しておかない限り、削除は依存関係にある port に再帰的に適用されます。 -.It Ar distclean +.It Cm distclean その port の distfile を削除し、 -.Ar clean +.Cm clean ターゲットを実行します。 -.Ev NOCLEANDEPENDS +.Va NOCLEANDEPENDS を定義しておかない限り、 -.Sq clean +.Cm clean の部分は依存関係にある port に再帰的に適用されます。しかし、 -.Sq distclean +.Cm distclean の部分は決して再帰的に適用されません (この挙動はひょっとするとバグかもしれません)。 -.It Ar reinstall -.Ar deinstall +.It Cm reinstall +.Cm deinstall を使用すべきところでうっかり .Xr pkg_delete 1 を使ってしまった場合、このターゲットを使って port を復活させて下さい。 -.It Ar deinstall +.It Cm deinstall .Xr pkg_delete 1 と同様に、インストールした port をシステムから削除します。 -.It Ar package +.It Cm package この port のバイナリ package を作成します。まだインストールされて いなかった場合、その port をインストールします。 package は\ .tgz ファイルであり、その port を他のマシンに .Xr pkg_add 1 を使ってインストールする際に使用することができます。 -.Ev PACKAGES +.Va PACKAGES で指定されたディレクトリが存在しなければ、package はカレントディレクトリに 置かれます。 -.Ev PKGREPOSITORY +.Va PKGREPOSITORY と -.Ev PKGFILE +.Va PKGFILE とを参照して下さい。 -.It Ar readmes +.It Cm readmes その port の .Pa README.html ファイルを生成します。 これは、あなたのシステム上の全 port をウェブでブラウズできるようにするために、 .Pa /usr/ports から使用可能です。 -.It Ar search +.It Cm search .Pa INDEX ファイルを、 -.Ar key +.Cm key (port の名前、コメント、依存を調べます) または -.Ar name -(port の名前のみを調べます) ターゲットのいずれかで指定されたパターンで -検索します。 +.Cm name +(port の名前のみを調べます) の +.Xr make 1 +変数で指定されたパターンで検索します。 例えば、次のように入力します: .Pp -.Dl cd /usr/ports && make search name=query +.Dl "cd /usr/ports && make search name=query" .Pp すると、全 ports のうち名前が -.Ql query +.Dq Li query に適合するものが探されます。 結果には、適合する ports のパス、コメント、メンテナ、構築依存、実行依存が 含まれます。 -.It Ar index +.It Cm index .Pa /usr/ports/INDEX を作成します。 これは、 -.Ar pretty-print-* +.Cm pretty-print-* および -.Ar search +.Cm search のターゲットで使用されます。 -CVS リポジトリのマスタ INDEX ファイルは定期的に更新されますが、 -.Ar index +CVS リポジトリのマスタ +.Pa INDEX +ファイルは定期的に更新されますが、 +.Cm index ターゲットを実行することで、 -INDEX ファイルが ports ツリに対して最新であることを保証します。 +.Pa INDEX +ファイルが ports ツリに対して最新であることを保証します。 .El .Sh 環境変数 これら環境変数のすべてを変更することができます。 -.Bl -tag -width MASTER_SITES -.It Ev PORTSDIR +.Bl -tag -width ".Va MASTER_SITES" +.It Va PORTSDIR port ツリーの場所を指定します。これは .Fx と .Ox では .Pa /usr/ports で、 .Nx では .Pa /usr/pkgsrc です。 -.It Ev WRKDIRPREFIX +.It Va WRKDIRPREFIX 一時ファイルを作成する場所です。 -.Ev PORTSDIR -が読み込み専用の場合 (おそらく cdrom をマウントした場合) 有用です。 -.It Ev DISTDIR +.Va PORTSDIR +が読み込み専用の場合 (おそらく CD-ROM をマウントした場合) 有用です。 +.It Va DISTDIR distfile を探す場所であり、取得した distfile を置く場所です。通常は -.Ev PORTSDIR +.Va PORTSDIR の下の .Pa distfiles/ です。 -.It Ev PACKAGES +.It Va PACKAGES ターゲット -.Ar package +.Cm package でのみ使用されます。 package ツリーのベースディレクトリです。通常は、 -.Ev PORTSDIR +.Va PORTSDIR の下の .Pa packages/ です。 このディレクトリが存在する場合、package ツリーが (部分的に) 構築されます。 このディレクトリは存在する必要はありません。存在しない場合、package は カレントディレクトリに置かれます。もしくは、以下のいずれか一方を定義 することができます。 -.Bl -tag -width PKGREPOSITORY -.It Ev PKGREPOSITORY +.Bl -tag -width ".Va PKGREPOSITORY" +.It Va PKGREPOSITORY package を置くディレクトリ。 -.It Ev PKGFILE +.It Va PKGFILE その package のフルパス。 .El -.It Ev PREFIX +.It Va PREFIX 一般に、成果物をどこにインストールするかを指定します (通常は .Pa /usr/local か、 .Pa /usr/X11R6 です)。 -.It Ev MASTER_SITES +.It Va MASTER_SITES ローカルマシンに配布ファイルが存在しない場合、最初に取得しに行くサイトです。 -.It Ev PATCH_SITES +.It Va PATCH_SITES ローカルマシンにパッチファイルが存在しない場合、最初に取得しに行くサイトです。 -.It Ev MASTER_SITE_FREEBSD +.It Va MASTER_SITE_FREEBSD これが設定されている場合、すべてのファイルを .Fx のマスタサイトに 取りに行きます。 -.It Ev MASTER_SITE_OVERRIDE +.It Va MASTER_SITE_OVERRIDE すべてのファイルとパッチについて、まずこのサイトに行って取得を試みます。 -.It Ev NOCLEANDEPENDS +.It Va NOCLEANDEPENDS これが定義されている場合、依存関係にある port に対して -.Sq clean +.Cm clean を再帰的に適用しません。 -.It Ev FETCH_CMD +.It Va FETCH_CMD ファイルを取得する際に使用するコマンドです。通常は .Xr fetch 1 です。 -.It Ev FORCE_PKG_REGISTER +.It Va FORCE_PKG_REGISTER これが設定されている場合、既にシステムに存在する package 登録情報を 上書きします。 -.It Ev MOTIFLIB -libXm.{a,so} の位置を指定します。 -.It Ev INTERACTIVE +.It Va MOTIFLIB +.Pa libXm. Ns Brq Pa a , Ns Pa so +の位置を指定します。 +.It Va INTERACTIVE これが設定されている場合、ユーザ入力が必要な port にのみ動作します。 -.It Ev BATCH +.It Va BATCH これが設定されている場合、100% 自動的にインストールできる port にのみ 動作します。 .El .Sh 関連ファイル -.Bl -tag -width /usr/ports/xxxx -compact +.Bl -tag -width ".Pa /usr/ports/Mk/bsd.port.mk" -compact .It Pa /usr/ports デフォルトの port ディレクトリ .No ( Fx と .Ox ) 。 .It Pa /usr/pkgsrc デフォルトの port ディレクトリ .Po .Nx .Pc 。 .It Pa /usr/ports/Mk/bsd.port.mk .\"kuma: big Kahuna というのはモアイのような巨大石のものらしい。 .\"kuma: だれか教えて?! ご本尊様であらしゃいます。 .El .Sh 関連項目 .Xr make 1 , .Xr pkg_add 1 , .Xr pkg_create 1 , .Xr pkg_delete 1 , .Xr pkg_info 1 , .Xr pkg_version 1 .Pp 次に示すものは ports コレクションの一部です: .Pp .Xr pib 1 , .Xr portcheckout 1 , .Xr portlint 1 +.Rs +.%B "The FreeBSD Handbook" +.Re .Pp -.Fx -ハンドブック -.Pp -http://www.FreeBSD.org/ports +.Pa http://www.FreeBSD.org/ports (port すべてが検索可能なインデックス) .Sh 作者 .An -nosplit このマニュアルページは、もともとは .An David O'Brien によるものです。 ports コレクションは .An Satoshi Asami と恐るべき port チームによって維持管理されています。 .Sh 歴史 -.Nm ports コレクション +ports コレクション は、 .Fx 1.0 で登場しました。 その後、 .Nx と .Ox にも広まりました。 .Sh バグ port に関する文書が 4 か所に分散されてしまっています。 -.Pa /usr/ports/Mk/bsd.port.mk , -ハンドブックの -.Dq port コレクション -のセクションと、 -.Dq 既存のソフトウェアを port にする -のセクション、 +.Pa /usr/ports/Mk/bsd.port.mk +と +.%B "The Porter's Handbook" +と +.%B "The FreeBSD Handbook" +の +.Dq "Packages and Ports" +セクションと、 .Xr ports 7 の 4 つです。 .Pp このマニュアルページは長過ぎです。 .\"ZZZ: 3.0-RELEASE compliant by N. Kumagai, 98-12-26 diff --git a/ja_JP.eucJP/man/man7/release.7 b/ja_JP.eucJP/man/man7/release.7 index 68445b7627..636c7e2aac 100644 --- a/ja_JP.eucJP/man/man7/release.7 +++ b/ja_JP.eucJP/man/man7/release.7 @@ -1,391 +1,413 @@ .\" Copyright (c) 2002 Murray Stokely .\" 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 ``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/man7/release.7,v 1.3.2.4 2002/05/10 15:22:11 matusita Exp % +.\" %FreeBSD: src/share/man/man7/release.7,v 1.3.2.5 2002/07/25 09:33:13 ru Exp % .\" $FreeBSD$ .\" .\" WORD: clean system まっさらのシステム[release.7] .\" .Dd March 12, 2002 .Dt RELEASE 7 .Os .Sh 名称 .Nm release .Nd "リリース構築基盤" .Sh 解説 .Fx は、ユーザが .Fx オペレーティングシステムのリリース全てを作成できるような完全な構築環境を 提供しています。 リリースを構築するために必要なツールの全ては、 CVS リポジトリ中の .Pa src/release に揃っています。 実のところ、 CD-ROM を焼く際に使える ISO イメージ、インストール用フロッピ、 FTP インストール用ディレクトリの生成をはじめとして、完全なリリースを コマンド一発で構築できます。 このコマンドは、 .Dq Li "make release" と、うまい名前が付けられています。 .Pp リリースを構築する前に、 .Xr build 7 の内容によく馴染んでおいてください。 また、 .Dq Li "make world" によるソースからのシステムアップグレードの経験も必須です。 リリース構築プロセスは、 .Dq Li "make buildworld" の結果を .Pa /usr/obj に置いておくことを要求します。 完全なシステムのためのオブジェクトファイルを、まっさらの .Xr chroot 8 環境にインストールできるようにするために、これが必要となります。 リリースを進めるには、 .Xr vn 4 (vnode ディスク) デバイスドライバがカーネルに存在する (コンパイル済み、またはモジュールとしてロードのいずれも可) ことも必要です。 .Pp この文書は、ソースコード管理、品質管理など、 リリースエンジニアリングプロセスに関するその他の側面は扱いません。 .Sh ターゲット リリース用 makefile .Pq Pa src/release/Makefile は、かなり難解です。 ほとんどの場合、 .Cm release ターゲットのことを考えるだけで済むと思います。 .\" XXX: Some sort of introduction to this list? All the others have one. .Bl -tag -width ".Cm rerelease" .It Cm release .Dq Li "make installworld" を用いて、ファイルシステムの .Xr chroot 8 環境にまっさらのシステムをインストールします。 指定したバージョンのソースコードをチェックアウトし、 .Dq Li "make world" を用いて、まっさらの環境に完全なシステムを再構築します。 そのあとに、ディストリビューション別のパッケージング(まとめ上げ)、 インストール用フロッピディスクの構築、リリース文書の構築などの 細かいステップが続きます。 .It Cm rerelease このターゲットは、リリース構築作業の結果を手で修正し、前の .Dq Li "make release" の中間結果を使い、最小のステップ数でリリースを再構築することを 想定したものです。 .It Cm floppies 新規のブートフロッピの組を作成します。 -.Cm release.4 , -.Cm release.8 , -.Cm release.9 +.Cm release.5 , +.Cm release.9 , +.Cm release.10 ターゲットを呼び、直前の .Dq Li "make release" のフロッピイメージを再作成します。 このターゲットは、カスタムブートフロッピの作成にもっとも良く使用されます。 .El .Pp .Dq Li "make release" により呼び出されるターゲットは次のとおりです。 -.Bl -tag -width ".Cm release.9" +.Bl -tag -width ".Cm release.10" .It Cm release.1 ディレクトリ .Pa ${CHROOTDIR}/R をまっさらにし、 .Xr mtree 8 を用いてシステム用のディレクトリ階層を構築します。 .It Cm release.2 システムをディストリビューション用ディレクトリにインストールします。 .It Cm release.3 +.Dq crypto , +.Dq krb4 , +.Dq krb5 +ディストリビューションをビルドおよびインストールします。 +.It Cm release.4 .\" XXX: We build more than one kernel. We build a stripped down .\" kernel for the boot media in addition to a full GENERIC kernel. .Pa GENERIC カーネルを作り、インストールします。 -.It Cm release.4 +.It Cm release.5 .Xr crunchgen 1 を用いて、インストール用フロッピに収容する .Dq crunched バイナリを構築します。 -.It Cm release.5 +.It Cm release.6 合成ディストリビューションを構築し、 また、作成されたディストリビューションツリーを掃除しきれいにします。 -.It Cm release.6 +.It Cm release.7 組み立てられたディストリビューションツリーの tarball を 生成します。 -.It Cm release.7 -ソースディストリビューションを作成します。 .It Cm release.8 -boot フロッピ、MFS root フロッピを生成します。 +ソースディストリビューションを作成します。 .It Cm release.9 +boot フロッピ、MFS root フロッピを生成します。 +.It Cm release.10 fixit フロッピを生成します。 .It Cm ftp.1 FTP インストールに適切な領域を .Pa ${CHROOTDIR}/R/ftp に整えます。 .It Cm cdrom.1 CD-ROM イメージ構築に適切な領域を .Pa ${CHROOTDIR}/R/cdrom に整えます。 .It Cm iso.1 CD-ROM リリース領域から ISO イメージを 2 つ構築します (インストール用と .Dq live ファイルシステムの 2 つ)。 デフォルトでは無効になっています。 以下の .Va MAKE_ISOS を参照してください。 .It Cm doc.1 .Fx ドキュメンテーションプロジェクトのソースドキュメント (SGML, XML) を リリースに含める HTML / テキストドキュメントに変換するために 必要なツール全てを構築します。 また、現在存在するユーザドキュメントも構築、インストールします。 これには、Handbook, FAQ, article などが含まれます。 .It Cm doc.2 リリースドキュメントを構築します。 これには、リリースノート、ハードウエアガイド、インストール作業説明書 (installation instructions) が含まれます。 .El .Sh 環境変数 指定しなければならない環境変数は以下のとおりです。 .Bl -tag -width ".Va RELEASETAG" .It Va CHROOTDIR .Xr chroot 8 環境として、全リリース構築に使用するディレクトリ。 .\" XXX: I recommend against hardcoding specific numbers like "2.3" here; .\" XXX: perhaps it should be replaced with something to the effect of .\" XXX: "we don't know how much space you'll need, but make sure you have .\" XXX: at least 3 GB to be safe" (I know i'm still hardcoding a number, .\" XXX: but at least it looks less like a decree and more like an estimate. i386 アーキテクチャの場合、これが存在するファイルシステムには 少なくとも 2.3GB の空き領域が必要です。 .It Va BUILDNAME 構築するリリースの名前。 この名前は、 .Pa sys/conf/newvers.sh の中で .Va RELEASE の値を設定するのに使用します。 この値は .Xr uname 1 の出力を変更します。 .It Va CVSROOT .Fx CVS リポジトリの位置です。 このパス名は、実システムルートから参照され、 .Xr chroot 8 されたディレクトリツリーのルートからの参照では .Em ありません。 .It Ev RELEASETAG 構築するリリースに相当する CVS タグ。 未定義の場合、CVS ツリーの .Dv HEAD ( .Dq "-CURRENT スナップショット" ) から構築されます。 .El .Pp オプションの変数は次のとおりです。 .Bl -tag -width ".Va RELEASEDISTFILES" .It Va CVSCMDARGS .Xr cvs 1 のコマンド .Ic checkout と .Ic update への追加の引数です。 例えば、この変数を .Dq Li "-D '01/01/2002 00:00:00 GMT'" に設定して .Dq Li "make release" または .Dq Li "make rerelease" すると、 .Xr cvs 1 はそれぞれ 2002 年 1 月 1 日 00:00:00 GMT のソースを チェックアウトまたはアップデートするよう .Xr cvs 1 に指示します。 .It Va LOCAL_PATCHES .Pa /usr/src に対するパッチファイル。 このパッチは、リリース構築を開始する前に、 .Xr chroot 8 環境で適用されます。 .It Va PATCH_FLAGS パッチファイル .Va LOCAL_PATCHES を適用する際に用いる .Xr patch 1 コマンドに渡す引数。 .It Va LOCAL_SCRIPT .Xr chroot 8 環境で、ローカルパッチ適用直後に実行されるスクリプト。 .It Va MAKE_ISOS これを定義した場合、CD-ROM ステージのディレクトリの内容から、 ブータブル ISO CD-ROM イメージを生成します。 .It Va NODOC .Dq Li YES と設定した場合、 .Fx ドキュメンテーションプロジェクトの SGML ベースのドキュメントを生成しません。 しかしながら、 .Pa src/share/doc にある最小のドキュメンテーションセットから .Dq doc ディストリビューションが依然として作成されます。 .It Va NOPORTS .Dq Li YES と設定した場合、Ports Collection はリリースから省略されます。 .It Va NOPORTREADMES これを定義した場合、 Ports Collection の各 port に対する readme ファイルを作成しません。 デフォルトの動作は、 .Dq Li "make release" が .Dq Li "make readmes" を .Pa ${CHROOTDIR}/usr/ports から実行するというものであり、莫大な時間を費すことになります。 .It Va RELEASEDISTFILES ports 用として、リリース構築に必要となる ディストリビューションファイルが存在するディレクトリです。 これにより、低速なリンク経由で distfiles をダウンロードする際に費やされる莫大な時間を 節約することができます。 .It Va RELEASENOUPDATE .Dq Li "make rerelease" の際にこの変数の値を設定した場合、 .Dq Li "cvs update" によるソースコード更新を行ないません。 +.It Va TARGET_ARCH +ターゲットとなるマシンプロセッサアーキテクチャ。 +この環境変数は +.Dq Nm uname Fl p +の出力と同じものです。 +異なるアーキテクチャ用にクロスビルドするにはこの環境変数を設定してください +.It Va TARGET +ターゲットとなるハードウェアプラットフォーム。 +この環境変数は +.Dq Nm uname Fl m +の出力と同じものです。 +ターゲットアーキテクチャをクロスビルドするのに必要な変数です。 +例えば、PC98 マシン用にクロスビルドを行うには +.Va TARGET_ARCH Ns = Ns Li i386 +と +.Va TARGET Ns = Ns Li pc98 +が必要です。 .El .Sh 関連ファイル .Bl -tag -compact .It Pa /etc/make.conf .It Pa /usr/doc/Makefile .It Pa /usr/doc/share/mk/doc.project.mk .It Pa /usr/ports/Mk/bsd.port.mk .It Pa /usr/ports/Mk/bsd.sites.mk .It Pa /usr/share/examples/etc/make.conf .It Pa /usr/src/Makefile .It Pa /usr/src/Makefile.inc1 .It Pa /usr/src/release/Makefile .It Pa /usr/src/release/${arch}/drivers.conf .It Pa /usr/src/release/${arch}/boot_crunch.conf .It Pa /usr/src/release/${arch}/fixit_crunch.conf .El .Sh 使用例 以下のコマンド列は .Fx 4.5 release を構築する際に使用したものです。 .Bd -literal -offset indent cd /usr cvs co -rRELENG_4_5_0_RELEASE src cd src make buildworld cd release make release CHROOTDIR=/local3/release BUILDNAME=4.5-RELEASE \\ CVSROOT=/host/cvs/usr/home/ncvs RELEASETAG=RELENG_4_5_0_RELEASE .Ed .Pp これらのコマンドを実行すると、FTP ディストリビューション用と、 CD-ROM ディストリビューション用として使える完全なシステムが ディレクトリ .Pa /local3/release/R にできます。 .Pp 次のコマンド列は、ローカルで修正したソースツリーの .Dq "-CURRENT スナップショット" を構築するために使用できます。 .Bd -literal -offset indent cd /usr/src cvs diff -u > /path/to/local.patch make buildworld cd release make release CHROOTDIR=/local3/release BUILDNAME=5.0-CURRENT \\ CVSROOT=/host/cvs/usr/home/ncvs LOCAL_PATCHES=/path/to/local.patch .Ed .Sh 関連項目 .Xr cc 1 , .Xr crunchgen 1 , .Xr cvs 1 , .Xr install 1 , .Xr make 1 , .Xr patch 1 , .Xr uname 1 , .Xr vn 4 , .Xr drivers.conf 5 , .Xr make.conf 5 , .Xr build 7 , .Xr ports 7 , .Xr chroot 8 , .Xr mtree 8 .Rs .%T "FreeBSD Release Engineering" .%O http://www.FreeBSD.org/doc/en_US.ISO8859-1/articles/releng/ .Re .Rs .%T "FreeBSD Release Engineering of Third Party Packages" .%O http://www.FreeBSD.org/doc/en_US.ISO8859-1/articles/releng-packages/ .Re .Rs .%T "FreeBSD Developers' Handbook" .%O http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/developers-handbook/ .Re .Sh 歴史 .Fx 1.x では、チェックリストを手でチェックしながら、 .An Rod Grimes によりコンパイルされ、リリースが作成されました。 不完全さはさておくにしても、このチェックリストには、 ファイルシステムを使えるようにするためのこまごまとした要求が大量に 含まれており、その実行は拷問としかいいようがないものでした。 .Pp .Fx 2.0 リリースエンジニアリングを続ける中で、 .Pa src/release/Makefile を直して、隔離された無菌環境でリリースを構築する際の退屈な作業の ほとんどを自動的に行なえるようにすることに、顕著な努力が払われました。 .Pp 複数のブランチにまたがる 1000 回近くの改版を経て、 .Pa src/release/Makefile の .Xr cvs 1 ログには、リリースエンジニアたちが経験した苦難のいくばくかを示す 生々しい歴史の記録が刻み込まれています。 .Sh 作者 .Pa src/release/Makefile は、もともとは .An -nosplit .An Rod Grimes , .An Jordan Hubbard , .An Poul-Henning Kamp が書きました。 このマニュアルページは、 .An Murray Stokely Aq murray@FreeBSD.org が書きました。 diff --git a/ja_JP.eucJP/man/man8/chat.8 b/ja_JP.eucJP/man/man8/chat.8 index a859c4ce4b..2acda5e85c 100644 --- a/ja_JP.eucJP/man/man8/chat.8 +++ b/ja_JP.eucJP/man/man8/chat.8 @@ -1,521 +1,521 @@ .\" -*- nroff -*- .\" manual page [] for chat 1.8 -.\" %FreeBSD: src/usr.bin/chat/chat.8,v 1.15.2.1 2001/07/22 12:39:59 dd Exp % +.\" %FreeBSD: src/usr.bin/chat/chat.8,v 1.15.2.2 2002/07/23 15:13:09 trhodes Exp % .\" $FreeBSD$ .\" SH section heading .\" SS subsection heading .\" LP paragraph .\" IP indented paragraph .\" TP hanging label .TH CHAT 8 "27 Sep 1997" "Chat Version 1.17" .SH 名称 chat \- モデム接続の確立を自動化するスクリプト言語 .SH 書式 .B chat [ .I options ] .I script .SH 解説 .LP \fIchat\fR プログラムはコンピュータとモデムの間のメッセージ交換を制御します。 このコマンドの主な目的は、Point-to-Point Protocol デーモン (\fIpppd\fR) と リモートの \fIpppd\fR プロセスの間の接続を確立することです。 .SH オプション .TP .B -f \fI チャットスクリプトを \fIchat file\fR から読み込みます。このオプションと script パラメータとは、互いに排他の関係にあります。 chat コマンドを実行するユーザは、このファイルのリードアクセス権を 持っていなければなりません。このファイルの中では、文字列の区切りとして スペースとタブを使うことができます。 .TP .B -t \fI 文字列の受信待ちのタイムアウトを指定します。もし、タイムリミットまでに 指定された文字列を受信できなかった場合には、応答文字列の送信をおこないません。 この時、かわりの応答文字列が指定されていれば それが送信され、 指定されていなければ スクリプトの実行が失敗します。 スクリプトの実行が失敗すると、\fIchat\fR プログラムは 0 以外のエラーコードを返して終了します。 .TP .B -r \fI レポート文字列を出力するファイルを指定します。 キーワード \fIREPORT\fR を用いると、結果の文字列がこのファイルに 出力されます。このオプションを指定せずに \fIREPORT\fR キーワードを 使用すると、レポート文字列は \fIstderr\fR に出力されます。 .TP .B -e エコーオプションを有効にして開始します。 \fIchat\fR スクリプトの特定の場所において \fIECHO\fR キーワードにて エコーの有効および無効を切り替えることができます。 エコーが有効にされると、モデムからの出力は全て \fIstderr\fR へエコーされます。 .TP .B -v \fIchat\fR スクリプトを冗長モードで実行します。 これを指定すると、\fIchat\fR プログラムは、チャットスクリプトの実行状態、 モデムから受信した全てのテキスト、 モデムに送った全てのテキストのログをとります。 デフォルトでは .IR syslogd (8) を介して取得します。ログの方法は -S および -s のフラグで変更できます。 冗長トレースのログとりは \fIlocal2\fR ファシリティのレベル \fIinfo\fR でおこなわれ、エラーについてはレベル \fIerr\fR が使われます。 .TP .B -V \fIchat\fR スクリプトを標準エラー出力冗長モードにて実行するように要求します。 \fIchat\fR プログラムは、 モデムから受信する全てのテキストおよびモデムへ送信する全てのテキストを 標準エラー出力デバイスへログします。 chat もしくは pppd プログラムを動作させている場所では、 このデバイスは通常ローカルのコンソールです。 .TP .B -s 標準エラー出力を使用します。'-v' による全ログメッセージ および全エラーメッセージを標準エラー出力へ送られます。 .TP .B -S .IR syslog (3) を使用しません。デフォルトではエラーメッセージは .IR syslog (3) へ送られます。-S を使用すると '-v' によるログおよびエラーメッセージは .IR syslog (3) へは送られなくなります。 .TP .B -T \fI 送信文字列において \\T 置換メタ文字を置き換える任意の文字列を渡します。 通常は電話番号です。 .TP .B -U \fI 送信文字列において \\U 置換メタ文字を置き換える第 2 文字列を渡します。 通常は電話番号です。 2 つの番号を要する ISDN ターミナルアダプタでダイアルする場合に有用です。 .TP .B script \fI-f\fR オプションのファイルでスクリプトが指定されていなければ、 \fIchat\fR プログラムに対するパラメータ文字列が スクリプトとして読み込まれます。 .SH チャットスクリプト .LP \fIchat\fR スクリプトには通信の手順を定義します。 .LP スクリプトは一つまたはそれ以上の「受信待ち-送信」文字列の組からなり、 それぞれは空白で区切られています。 オプションとして「副受信待ち-副送信」文字列の組を追加することもでき、 その場合には以下の例のようにダッシュで区切ります: .IP ogin:-BREAK-ogin: ppp ssword: hello2u2 .LP これにより、\fIchat\fR プログラムは文字列 "ogin:" の受信待ちをおこないます。 もしもタイムアウトする前にログインプロンプトを受信できなければ、 リモートホストにブレーク信号を送信し、それから文字列 "ogin:" を受信待ちします。 もしも最初の "ogin:" が受信できていれば、ブレーク信号は送信されません。 .LP 一旦ログインプロンプトを受信すると、\fIchat\fR プログラムは文字列 ppp を 送信して、プロンプト "ssword:" の受信を待ちます。 パスワードプロンプトを 受信すると、chat プログラムはパスワード hello2u2 を送信します。 .LP 応答文字列に続いて、通常はキャリッジリターン文字が送られます。 「受信待ち」文字列中では、\\r 文字シーケンスで明示的に指定しないかぎり、 キャリッジリターンは文字列に含まれません。 .LP 目的の文字列を識別するのに必要な部分だけを受信待ち文字列に 指定するようにするべきです。 なぜなら、受信待ち文字列は通常ディスクファイルに記録されるため、 動的に変化する情報を含むことができないからです。 一般には、時刻を表す文字列やネットワーク ID 文字列その他の 変化するデータの塊を受信待ちさせることはできません。 .LP 通信の初期段階では、文字が化けて受信される場合があります。 この場合にも正しく認識ができるように、 文字列 "login:" ではなく "ogin:" を待つようにします。 仮に最初の "l" という文字が化けて受信されたとしますと、 リモートシステムが "login:" を送信したとしても、 その文字列は認識されないことになります。 このため、スクリプトでは "login:" ではなく "ogin:" を、 "password:" ではなく "ssword:" を待つようにします。 .LP 非常に単純なスクリプトは、以下のようになるでしょう: .IP ogin: ppp ssword: hello2u2 .LP 言いかえると、....ogin: を受信待ちして ppp を送信し、...ssword: を 受信待ちして hello2u2 を送信するということになります。 .LP 現実問題としては、単純なスクリプトが使われることはほとんどないでしょう。 少なくとも、最初の受信待ち文字列が受信できなかった場合に、 副受信待ち文字列を実行するようにするべきでしょう。 たとえば、以下のスクリプトを考えてみます: .IP ogin:--ogin: ppp ssword: hello2u2 .LP これは以前に使った単純なものよりも良いスクリプトでしょう。 以前のものと同様に login: プロンプトを待ちますが、もし受信できなかった場合には リターンを一つ送ってから再び login: が送られてくるのを待ちます。 最初のログインプロンプトがラインノイズによって化けたとしても、 空行が送られることで、通常はもう一度ログインプロンプトが送信されます。 .SH コメント コメントを chat スクリプト中に埋め込むことが可能です。 コメントは \fB#\fR (ハッシュ) 文字をカラム 1 から開始する行です。 このようなコメント行は chat プログラムは単に無視します。 「受信待ち」文字列の最初の文字が `#' 文字の場合、 「受信待ち」文字列をクォートする必要があります。 文字 # (ハッシュ)から始まるプロンプトを待ちたい場合には、 以下のように書かねばならないでしょう: .IP # Now wait for the prompt and send logout string .br -\'# ' logout +\&'# ' logout .LP .SH 中断文字列 多くのモデムはダイヤルの結果を文字列としてレポートします。 これらの文字列は \fBCONNECTED\fR だったり、\fBNO CARRIER\fR や \fBBUSY\fR だったりするでしょう。 モデムが相手との接続に失敗した場合には、スクリプトを終了させたいと 思うことがよくあるでしょう。 問題は、どの文字列を次に受信するかということを、 スクリプトが正確に知ることはできないということです。 ある時には \fBBUSY\fR を受信するかもしれませんが、 次には \fBNO CARRIER\fR を受信するかもしれません。 .LP これらの「中断」文字列は、\fIABORT\fR シーケンスにより スクリプト中に指定することができます。 それは、以下の例のようにスクリプトに指定します: .IP ABORT BUSY ABORT 'NO CARRIER' '' ATZ OK ATDT5551212 CONNECT .LP このシーケンスは受信待ちをおこないません。それから文字列 ATZ を送信します。 受信待ち文字列は \fIOK\fR です。 \fIOK\fR を受信すると、電話をかけるために文字列 ATDT5551212 を送信します。 受信待ち文字列は \fICONNECT\fR です。 文字列 \fICONNECT\fR を受信すると、スクリプトの残りが実行されます。 一方、モデムが話中を検出すると、文字列 \fIBUSY\fR が送られて 中断文字列への一致が起こります。 この一致が起きたことにより、スクリプトは失敗します。 もしも文字列 \fINO CARRIER\fR を受信すると、それは同じ理由で中断されます。 どちらの文字列が受信されても、\fIchat\fR スクリプトは終了します。 .SH CLR_ABORT 文字列 このシーケンスは以前に設定した \fBABORT\fR 文字列をクリアします。 \fBABORT\fR 文字列は規定サイズ(コンパイル時に決定)の配列に保持されます; \fBCLR_ABORT\fR はクリアされたエントリの領域を再要求し、 新たな文字列をそこに格納できるようにします。 .SH SAY 文字列 \fBSAY\fR ディレクティブにて、 script が標準エラー出力を介してユーザ端末ヘ文字列を送ることができます。 \fBchat\fR が pppd から起動される場合、 pppd はデーモンとして実行され(制御端末から切り離され)、 標準エラー出力は通常 /etc/ppp/connect-errors へとリダイレクトされます。 .LP \fBSAY\fR 文字列は、シングルクォートもしくはダブルクォートにて 括る必要があります。 出力中にキャリッジリターンおよびラインフィードが必要な場合、 明示的に文字列中に含める必要があります。 .LP SAY 文字列を使用して script の進捗状況メッセージを表示することで、'ECHO OFF' しつつもユーザになにが起っているのか示すことが可能です。 例を示します: .IP ABORT BUSY .br ECHO OFF .br SAY "Dialling your ISP...\\n" .br -\'' ATDT5551212 +\&'' ATDT5551212 .br TIMEOUT 120 .br SAY "Waiting up to 2 minutes for connection ... " .br CONNECT '' .br SAY "Connected, now logging in ...\\n" .br ogin: account .br ssword: pass .br $ \c SAY "Logged in OK ...\\n" \fIetc ...\fR .LP このシーケンスは SAY 文字列のみユーザに示し、script の詳細は隠します。 例えば、上記 script を実行した場合、ユーザが見るのは以下です: .IP Dialling your ISP... .br Waiting up to 2 minutes for connection ... Connected, now logging in ... .br Logged in OK ... .LP .SH レポート文字列 \fBレポート\fR 文字列は ABORT 文字列に似ています。 違うのは、その文字列自身とキャリッジリターン等の 次の制御文字までの 全ての文字がレポートファイルに書かれるということです。 .LP レポート文字列はモデムのコネクト文字列の転送レートと chat ユーザへのリターン値を切りわけるために使えます。 レポート文字列ロジックの分析は、受信待ち文字列の検索などの 他の文字列処理と同時におこなわれます。 レポート文字列と中断文字列に同じ文字列を使用することも可能ですが、 おそらくあまり使い道がないでしょう。 .LP レポート文字列はプログラムの終了コードに影響を及ぼしません。 .LP これらの「レポート」文字列は、\fIREPORT\fR シーケンスにより スクリプト中に指定することができます。 それは、以下の例のようにスクリプトに指定します: .IP REPORT CONNECT ABORT BUSY '' ATDT5551212 CONNECT '' ogin: account .LP このシーケンスは受信待ちをおこなわず、文字列 ATDT5551212 を送信して 電話をかけます。受信待ち文字列は \fICONNECT\fR です。 文字列 \fICONNECT\fR を受信すると、スクリプトの残りが実行されます。 さらに、文字列 "CONNECT" と、それに続く接続レートなどの 任意の文字がレポートファイルに記録されます。 .\" 原文では expect-file となっているが、report-file の間違いと思われる。 .\" send-pr する予定。 .\" 2.2.2R 対象(1997/06/04) Saeki Takashi .SH CLR_REPORT 文字列 このシーケンスを使用して、以前に設定した \fBREPORT\fR 文字列をクリア できます。 \fBREPORT\fR 文字列は規定サイズ(コンパイル時に決定)の配列に保持されます; \fBCLR_REPORT\fR はクリアされたエントリの領域を再要求し、 新たな文字列をそこに格納できるようにします。 .SH エコー エコーオプションはモデムからの出力を \fIstderr\fR へエコーするか否か を制御します。 このオプションを \fI-e\fR オプションにて設定することができますし、 \fIECHO\fR キーワードにて制御することもできます。 「受信待ち-送信」文字列の組 \fIECHO\fR \fION\fR はエコーを有効にし、 \fIECHO\fR \fIOFF\fR は無効にします。 このキーワードを使用してどの会話を見せるかを選択可能です。 例えば以下の script では: .IP ABORT 'BUSY' .br ABORT 'NO CARRIER' .br \&'' ATZ .br OK\\r\\n ATD1234567 .br \\r\\n \\c .br ECHO ON .br CONNECT \\c .br ogin: account .LP モデム設定結果およびダイヤル結果は見せませんが、 \fICONNECT\fR (もしくは \fIBUSY\fR) メッセージ後は全てをエコーします。 .SH 回線切断 HANGUP オプションはモデムの回線切断をエラーと扱うか否かを制御します。 このオプションは、 システムにダイヤル後に回線切断しコールバックする script 中で有効です。 HANGUP オプションは \fBON\fR もしくは \fBOFF\fR にできます。 .br HANGUP を OFF に設定しモデムを回線切断 (つまりコールバックシステムへの最初のログイン)すると、\fBchat\fR は script の実行を続けます (つまり呼び出しと二度目のログインプロンプトを待ちます)。 呼び出しにて接続後すぐに、\fBHANGUP ON\fR ディレクティブを使用して 通常の回線切断シグナルの動作を戻す必要があります。 (簡単な) script 例を示します: .IP ABORT 'BUSY' .br -'' ATZ +\&'' ATZ .br OK\\r\\n ATD1234567 .br \\r\\n \\c .br CONNECT \\c .br -\'Callback login:' call_back_ID +\&'Callback login:' call_back_ID .br HANGUP OFF .br ABORT "Bad Login" .br -\'Callback Password:' Call_back_password +\&'Callback Password:' Call_back_password .br TIMEOUT 120 .br CONNECT \\c .br HANGUP ON .br ABORT "NO CARRIER" .br ogin:--BREAK--ogin: real_account .br \fIetc ...\fR .LP .SH タイムアウト タイムアウトの初期値は 45 秒です。これは \fB-t\fR パラメータにより 変更することができます。 .LP 次に受信待ちする文字列のタイムアウト値を変更するには、以下のようにします: .IP ATZ OK ATDT5551212 CONNECT TIMEOUT 10 ogin:--ogin: TIMEOUT 5 assword: hello2u2 .LP これは login: プロンプトを受信待ちする際のタイムアウトを 10 秒に変更します。 さらに password プロンプトを受信待ちする際にはタイムアウトを 5 秒に変更します。 .LP 一旦タイムアウト値が変更されると、次に変更されるまでは そのままになります。 .SH EOT の送信 チャットプログラムは特殊な応答文字列 \fIEOT\fR により、 リモート側へ EOT 文字を送信します。 通常、これはファイル終了を表す文字です。 EOT に続けてリターン文字が送られることはありません。 -.PR +.LP \fI^D\fR シーケンスを使って EOT を送信文字列に埋め込むことができます。 .SH ブレークの生成 特殊な応答文字列 \fIBREAK\fR により、ブレーク信号が送られます。 ブレークは送信側では特殊な信号として扱われます。 受信側では通常、転送レートの変更要求として処理されます。 これにより、正常に login プロンプトを受信できるまで ブレーク信号を送ることで、リモート側がサポートしている転送レートを 順次切り替えさせることができます。 -.PR +.LP \fI\\K\fR シーケンスを使ってブレーク信号を送信文字列に埋め込むことができます。 .SH エスケープシーケンス 受信待ち文字列と応答文字列には、エスケープシーケンスを指定することができます。 応答文字列では、全てのエスケープシーケンスが使えます。 受信待ち文字列では、ほとんどのエスケープシーケンスが使えます。 受信待ち文字列では使えないエスケープシーケンスについては、 説明文中にそのことが書かれています。 .TP .B '' 空文字列を受信待ちしたり、送信したりします。 もし、空文字列を送信しようとすると、それはリターン文字を送ることになります。 このシーケンスはアポストロフィ文字またはクォート文字のペアの どちらでもかまいません。 .TP .B \\\\b バックスペース文字を表します。 .TP .B \\\\c 応答文字列の末尾の改行を抑制します。 これは末尾に改行文字のつかない文字列を送る唯一の方法です。 これは送信文字列の最後に置かれなければいけません。 たとえば、文字列 hello\\c は単に h, e, l, l, o という文字だけを送ります。 .I (受信待ち文字列では使えません) .TP .B \\\\d 1 秒のディレイです。プログラムは 1 秒のディレイのために sleep(1) を使います。 .I (受信待ち文字列では使えません) .TP .B \\\\K ブレーク信号を挿入します。 .I (受信待ち文字列では使えません) .TP .B \\\\n 改行文字を送信します。 .TP .B \\\\N 空 (null) 文字を送信します。\\0 でも同じシーケンスを表すことができます。 .I (受信待ち文字列では使えません) .TP .B \\\\p 1 秒以下のポーズです。ディレイ時間は 1/10 秒です。 .I (受信待ち文字列では使えません) .TP .B \\\\q .IR syslogd (8) への文字列出力を抑止します。 かわりに文字列 ?????? がログに出力されます。 .I (受信待ち文字列では使えません) .TP .B \\\\r キャリッジリターン文字を送信または受信待ちします。 .TP .B \\\\s 文字列中のスペース文字を表します。 これはスペースを含む文字列をクォートしたくない場合に使います。 シーケンス 'HI TIM' と HI\\sTIM は等価です。 .TP .B \\\\t タブ文字を送信または受信待ちします。 .TP .B \\\\\\\\ バックスラッシュ文字を送信または受信待ちします。 .TP .B \\\\ddd 8 進数 (ddd) を一つの ASCII 文字に変換し、その文字を送信します。 .I (受信待ち文字列では使えない文字がいくつかあります) .TP .B \^^C C で表現される制御文字に置きかえられます。 例えば、文字 DC1 (17) は \^^Q で表されます。 .I (受信待ち文字列では使えない文字がいくつかあります) .SH 終了コード \fIchat\fR プログラムは以下の終了コードを返します。 .TP .B 0 プログラムは正常終了しました。これは、スクリプトがエラーを起こさずに 実行されて、正常に終了したことを示します。 .TP .B 1 一つまたはそれ以上のパラメータが不正であるか、受信待ち文字列が 内部バッファよりも大きすぎます。これはプログラムが正しく 実行されなかったことを示します。 .TP .B 2 プログラムの実行中にエラーが発生しました。これは、何らかの理由で リードまたはライトの操作が失敗したか、chat が SIGINT のような シグナルを受信したためでしょう。 .TP .B 3 「-副送信」文字列のない\fI受信待ち\fR文字列があり、タイムアウトイベントが 発生しました。これは、スクリプトが正しくプログラムされていないか、 予期しないイベントが発生して受信待ち文字列を見つけられなかったためでしょう。 .TP .B 4 \fIABORT\fR 条件としてマークされた 1 番目の文字列を検出しました。 .TP .B 5 \fIABORT\fR 条件としてマークされた 2 番目の文字列を検出しました。 .TP .B 6 \fIABORT\fR 条件としてマークされた 3 番目の文字列を検出しました。 .TP .B 7 \fIABORT\fR 条件としてマークされた 4 番目の文字列を検出しました。 .TP .B ... その他の終了コードも、\fIABORT\fR 条件としてマークされた文字列を 検出したことを示します。 .LP 終了コードを使うと、どのイベントによりスクリプトが終了したのかを 判断することができます。 つまり、"NO DIAL TONE" を受信したのか "BUSY" を受信したのかを 識別することができるということです。 最初のイベント (BUSY) ならばリトライする価値がありますが、 二つ目のイベント (NO DIAL TONE) だと、 おそらくリトライしてもそれがうまくいく可能性は低いでしょう。 .SH 関連項目 UUCP のドキュメントからも、\fIchat\fR スクリプトに関する 追加情報が得られるでしょう。 \fIchat\fR スクリプトは \fIuucico\fR プログラムで使われる スクリプトによって提示されたアイデアを基にしています。 .LP uucico(1), uucp(1), syslog(3), syslogd(8). .SH 著作権 \fIchat\fR プログラムは、パブリックドメインのソフトウェアです。 これは GNU のパブリックライセンス (一般公有使用許諾) とは異なります。 このプログラムを分割する場合には、その両方を管理するようにしてください。 .\" 原文は The \fIchat\fR program is in public domain. This is not .\" the GNU public license. If it breaks then you get to keep both pieces. .\" 最後の文章にはあまり自信がありません。(^_^;; .\" 2.2.2R 対象(1997/06/26) Saeki Takashi diff --git a/ja_JP.eucJP/man/man8/comcontrol.8 b/ja_JP.eucJP/man/man8/comcontrol.8 index 7b80824bf8..8f30e87c91 100644 --- a/ja_JP.eucJP/man/man8/comcontrol.8 +++ b/ja_JP.eucJP/man/man8/comcontrol.8 @@ -1,66 +1,66 @@ -.\" %FreeBSD: src/sbin/comcontrol/comcontrol.8,v 1.15.2.5 2001/08/16 11:35:41 ru Exp % -.\" $FreeBSD: doc/ja_JP.eucJP/man/man8/comcontrol.8,v 1.12 2001/08/05 02:45:49 horikawa Exp $ +.\" %FreeBSD: src/sbin/comcontrol/comcontrol.8,v 1.15.2.6 2002/07/16 02:02:29 trhodes Exp % +.\" $FreeBSD$ .Dd May 15, 1994 .Dt COMCONTROL 8 .Os .Sh 名称 .Nm comcontrol .Nd 特殊 tty デバイスの制御 .Sh 書式 .Nm .Ar special_device .Op dtrwait Ar number .Op drainwait Ar number .Sh 解説 .Nm は、指定した tty デバイスの特別な設定内容を表示/変更するのに 用いられます。 デバイス名以外の引数 (または標準入力を表す "-") が指定されない場合、 制御可能な全ての項目が表示されます。 .Nm をこのように利用する際には、 当該デバイスの読み取り許可だけが必要になります。 設定を変更できるのはスーパユーザだけです。 .Pp 以下のオプションが利用可能です: .Bl -tag -width width .It Cm dtrwait Ar number DTR が落ちたあと待機する時間を設定します。 単位は 100 分の 1 秒です。 デフォルトは 300 すなわち 3 秒です。 このオプションは主として、モデムをリセットした後に 適切な復帰時間を置くのに用いられます。 .It Cm drainwait Ar number 出力が出てくるまでの待機時間を設定します。 単位は秒です。 -デフォルトは 5 分です。 +デフォルトは 0 分です。 0 は無限に待ち続けます。 このオプションは主に、 待ち時間上限値を指定してモデムのハングを回避するのに用いられます。 .El .Pp .Nm の標準的な使い方は、スタートアップスクリプト .Pa /etc/rc.serial の中に .Nm の起動を含めておくことです。 .Sh 関連項目 .Xr stty 1 , .Xr sio 4 .Sh 関連ファイル .Bl -tag -width /dev/ttyd? -compact .It Pa /dev/ttyd? ダイヤルインデバイス。結線した端末(hardwired terminals)。 .It Pa /dev/cuaa? ダイヤルアウトデバイス。 .El .Sh 作者 Christopher G. Demetriou .Sh 歴史 オリジナルは .Bx 386 0.1 に対する cgd の com パッケージパッチの バージョン 0.2.1 です。 かつては双方向制御機能を持っていましたが、 現在ではこれらは標準機能となり、制御できるものはほとんどありません。 diff --git a/ja_JP.eucJP/man/man8/intro.8 b/ja_JP.eucJP/man/man8/intro.8 index 7d29ea80f9..26c31660b3 100644 --- a/ja_JP.eucJP/man/man8/intro.8 +++ b/ja_JP.eucJP/man/man8/intro.8 @@ -1,79 +1,79 @@ .\" Copyright (c) 1983, 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)intro.8 8.2 (Berkeley) 12/11/93 -.\" %FreeBSD: src/share/man/man8/intro.8,v 1.3.2.3 2002/04/12 16:25:18 trhodes Exp % +.\" %FreeBSD: src/share/man/man8/intro.8,v 1.3.2.4 2002/08/08 09:45:32 ru Exp % .\" $FreeBSD$ .\" .Dd December 11, 1993 .Dt INTRO 8 .Os .Sh 名称 .Nm intro .Nd システムメンテナンスおよび操作コマンドの紹介 .Sh 解説 本セクションにはシステムの操作とメンテナンスに関連した情報が記載されています。 新しいファイルシステムを作成する時に使用する -.Ql Xr newfs , +.Xr newfs 8 , ファイルシステムの整合性をチェックする -.Ql Xr fsck , +.Xr fsck 8 , ディスクの使用を制限するための -.Ql Xr edquota , +.Xr edquota 8 , システムのバックアップを行なう -.Ql Xr dump , +.Xr dump 8 , ディスクの内容が壊れた時にファイルをリカバーする -.Ql Xr restore +.Xr restore 8 について解説されています。 ディスクやテープをフォーマットする場合には、 そのシステムが運用されている特定のアーキテクチャ用の -.Ql Xr format +.Xr format 8 のマニュアルを参照する必要があります。 -.Ql Xr inetd +.Xr inetd 8 や -.Ql Xr ftpd +.Xr ftpd 8 のようなネットワークに関連したサービスについても解説されています。 システムのクラッシュダンプをどのように解析するかについて理解するには -.Ql Xr crash +.Xr crash 8 のセクションを参照する必要があります。 .Pp すべてのコマンドは終了ステータスを設定します。 別途記述 (まれです) が無い限り、 値 0 はコマンドが完全に成功したことを表し、>0 の値はエラーを表します。 コマンドによっては、 .Xr sysexits 3 で定義されたエラーコードを使用して失敗の種類を記述しようとしますが、 他のコマンドは好き勝手な >0 値 (典型的には 1) を単に設定します。 このような値の多くはマニュアルに記述されていません。 .Sh 歴史 .Nm セクションのマニュアルページは .Bx 4.2 から登場しました。 diff --git a/ja_JP.eucJP/man/man8/mergemaster.8 b/ja_JP.eucJP/man/man8/mergemaster.8 index 3b44bb6fa9..99bdc79afa 100644 --- a/ja_JP.eucJP/man/man8/mergemaster.8 +++ b/ja_JP.eucJP/man/man8/mergemaster.8 @@ -1,360 +1,361 @@ .\" Copyright (c) 1998-2001 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.5.2.10 2002/05/28 07:30:20 dougb Exp % +.\" %FreeBSD: src/usr.sbin/mergemaster/mergemaster.8,v 1.5.2.11 2002/08/07 10:58:24 blackend Exp % .\" .\" $FreeBSD$ .Dd February 5, 2001 .Dt MERGEMASTER 8 .Os .Sh 名称 .Nm mergemaster .Nd アップグレード中の設定ファイルその他のマージ .Sh 書式 .Nm .Op Fl scrvahipC .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 .Op Fl D Ar /path .Sh 解説 .Nm -は、様々な設定や +ユーティリティは、様々な設定や .Fx に関連したファイルをアップデートする作業を 補助するために作られた Bourne シェルスクリプトです。 この作業を始める前に .Pa /etc ディレクトリをバックアップしておくことを .Sy 強く 勧めます。 .Pp このスクリプトは .Pa /usr/src/etc/Makefile を使って .Pa / から下の仮のルート環境を作成し、そこに様々なファイルを格納します。 .Op Fl m コマンドラインオプションで違うソースディレクトリを指定することや、 .Op Fl D コマンドラインオプションで違う宛先ディレクトリを指定することもできます。 そしてその環境中のそれぞれのファイルを、 インストールされているものと比較します。 スクリプトが新しいファイルに変更点を見つけた場合や、 新しいファイルに対応するインストールされているファイルがない場合には、 それを処理するための 4 つの選択肢を示します。 新しいファイルをそのままインストールする、 新しいファイルは消す、 新旧のファイルを .Xr sdiff 1 を使って適切にマージする、 後で手でマージするためにファイルを仮のルート環境に残しておく、 のいずれかを選べます。 .Pp デフォルトでは、 .Pa /var/tmp/temproot に仮のルートを作り、 .Xr cvs 1 バージョン文字列 %Id/%FreeBSD があるファイルについてはそれを比較して、 もし同じであれば仮のファイルを削除します。 $Id 文字列がない時や、あっても一致しない場合には、 ファイルそのものを比較します。 $Id 文字列を無視して全てのファイルを比較するように指定することもできます。 .Pp .Nm -は umask を調べて、022 以外であれば警告を出します。 +ユーティリティは 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 .Nm -は、比較開始直前と実行完了前に、指定したスクリプトを読み込みます。 +ユーティリティは、 +比較開始直前と実行完了前に、指定したスクリプトを読み込みます。 最も簡単な方法は、 .Pa .mergemasterrc において、スクリプトへのパスを適切な変数へ設定することです。 比較前に読み込まれるスクリプトは .Ev MM_PRE_COMPARE_SCRIPT で指定し、スクリプト完了後に実行するものは .Ev MM_EXIT_SCRIPT で指定します。 これが、 ローカルでの修正および特別な処理を行うファイルを指定するための推奨方法です。 これには、比較せずに削除したいファイルも含みます。 指定したスクリプトは、 .Nm 内部から読み込まれますので、 スクリプトの全変数がカスタムスクリプト中で使用可能です。 .Pa /etc/mergemaster.rc も使用可能です。 これは、 .Pa .mergemasterrc の前に読み込まれます。 コマンドラインで指定されたオプションが最後に更新されますので、 両方のファイルに優先します。 .Pp オプションは以下の通りです: .Bl -tag -width Fl .It Fl s 全てのファイルの対について diff をとり、厳密な比較をします。 この比較は、CVS $Id 以外に対し、1 行ずつ実行されます。 .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 i 宛先ディレクトリに存在しないファイルは、自動的にインストールします。 .It Fl p 世界構築前モード。 {build|install}world に不可欠なファイルのみ比較します。 これには .Pa /etc/make.conf も含まれます。 .It Fl C 標準の .Nm の実行の後に、rc.conf[.local] のオプションとデフォルトのものとを比較します。 .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 です。 .It Fl D Ar /path ファイルをインストールする、宛先ディレクトリを指定します。 .El .Sh 環境変数 .Nm -スクリプトは、 +ユーティリティは、 .Ev PAGER 環境変数がセットされていればそれを使い、さもなくば .Xr more 1 を使います。 もし .Ev PAGER に、フルパスではなく、 .Ev PATH の範囲にないプログラムを指定している場合には、 .Nm は選択肢とともにどう続行するのかを催促します。 .Ev MM_PRE_COMPARE_SCRIPT と .Ev MM_EXIT_SCRIPT の変数は、前述のように使用します。 スクリプト内部で使用する他の変数は、後で詳述するように、 .Pa .mergemasterrc で指定可能です。 .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 .It Pa /etc/mergemaster.rc .It Pa $HOME/.mergemasterrc .El .Pp .Nm -は、これらファイルがあれば読み込みます。 +ユーティリティは、これらファイルがあれば読み込みます。 コマンドラインオプションは、rc ファイルオプションに優先します。 .Pa $HOME/.mergemasterrc は、 .Pa /etc/mergemaster.rc に優先します。 全ての値をコメントアウトした例を示します: .Pp .Bd -literal # mergemaster のオプションが、デフォルト値とともに一覧してあります # 以下のオプションはコマンドラインが上書きします # # 仮のルート環境をインストールするディレクトリ #TEMPROOT='/var/tmp/temproot' # # CVS $Id の検査を省略して全てのファイルを比較する厳密な比較 #STRICT=no # # ファイルが食い違った時に差分を表示するための diff に使うフラグ #DIFF_FLAG='-u' # # より詳細な出力とチェックの追加を含める冗長モード #VERBOSE= # # システム上に存在しないファイルは自動的にインストールする #AUTO_INSTALL= # # /etc/rc.conf[.local] と /etc/defaults/rc.conf を比較する #COMP_CONFS=yes # # 'make' を実行するディレクトリ (新しいファイルがある場所) #SOURCEDIR='/usr/src/etc' # # mergemaster がデフォルトのファイルモードとの比較に使う umask #NEW_UMASK=022 # # ファイルをインストールする、宛先ディレクトリを指定する #DESTDIR= # # 以下のオプションはコマンドラインから上書きできません # PAGER にフルパスを含めたくない人用 #DONT_CHECK_PAGER= # # 上を 'yes' にしたら、ページャへの PATH が含まれているか確認してください #PATH=/bin:/usr/bin:/usr/sbin # # 新旧の motd ファイルを比較しない #IGNORE_MOTD=yes # # 比較開始前に実行するスクリプトやスクリプト完了後に実行するスクリプト # のパスを指定する #MM_PRE_COMPARE_SCRIPT= #MM_EXIT_SCRIPT= .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 .Rs -.%O http://www.FreeBSD.org/handbook/makeworld.html +.%O http://www.FreeBSD.org/doc/handbook/makeworld.html .%T The Cutting Edge (using make world) .%A Nik Clayton .Re .Pp .\" 関連項目更新に伴い、訳注も更新した .\" horikawa@jp.FreeBSD.org 2000/08/22 (訳注: 日本語版は http://www.jp.FreeBSD.org/www.FreeBSD.org/ja/handbook/makeworld.html ) .Sh 診断 成功終了、ないしユーザが実行中に手動で脱出した場合には、 終了ステータスは 0 です。 .Pp 以下に挙げるいずれかの理由で失敗した場合には、終了ステータスは 1 です: .Pp コマンドラインオプションが不正 .Pp 仮のルート環境を作成するのに失敗 .Pp 仮のルートにファイルを格納するのに失敗 .Sh 歴史 .Nm スクリプトは、 1998 年 3 月 13 日に 私のウェブページの中で もっと単純な形で .Pa comproot という名前で最初に公開されました。 仮のルート環境を作るというアイデアは、 上で参照した Nik Clayton の make world tutorial から来ています。 .Sh 作者 このマニュアルページとスクリプトは .An Douglas Barton Aq DougB@FreeBSD.org が書きました。 .Sh バグ 今のところわかっているバグはありません。 なにか問題や、コメントや、提案があれば、どうか作者まで報告してください。 このプログラムになされた改良のいくつかは ユーザからの提案によるものです。ありがとう。 diff --git a/ja_JP.eucJP/man/man8/ppp.8 b/ja_JP.eucJP/man/man8/ppp.8 index 4ba171e032..e11462b859 100644 --- a/ja_JP.eucJP/man/man8/ppp.8 +++ b/ja_JP.eucJP/man/man8/ppp.8 @@ -1,5609 +1,5609 @@ .\" .\" Copyright (c) 2001 Brian Somers .\" 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/ppp/ppp.8,v 1.209.2.33 2002/03/26 11:42:46 brian Exp % +.\" %FreeBSD: src/usr.sbin/ppp/ppp.8,v 1.209.2.34 2002/08/08 09:11:37 blackend Exp % .\" .\" $FreeBSD$ .\" .\" WORD: expect string 受信待ち文字列[chat.8,ppp.8] .Dd 20 September 1995 .nr XX \w'\fC00' .Dt PPP 8 .Os .Sh 名称 .Nm ppp .Nd PPP (Point to Point Protocol) (別名 user-ppp) .Sh 書式 .Nm .Op Fl Va mode .Op Fl nat .Op Fl quiet .Op Fl unit Ns Ar N .Op Fl alias .Op Ar system ... .Sh 解説 本プログラムは、ユーザプロセスとして動作する .Em PPP パッケージです。 .Em PPP は通常、( .Xr pppd 8 でそうなっているように) カーネルの一部として実装されますが、 そのため、デバッグや動作の変更が少々難しい場合があります。 それに対し、この実装ではトンネルデバイスドライバ (tun) を利用して、 ユーザプロセスで .Em PPP を実現しています。 .Pp .Fl nat フラグは、 .Dq nat enable yes と等価であり、 .Nm のネットワークアドレス変換機能を有効にします。 これにより .Nm は、内部 LAN 上の全マシンに対する NAT、 すなわちマスカレーディングエンジンとして動作します。 詳細は .Xr libalias 3 を参照してください。 .Pp .Fl quiet フラグを指定すると、 .Nm は起動時に静かになり、 モードとインタフェースを標準出力へ表示しなくなります。 .Pp .Fl unit フラグは、 .Nm が .Pa /dev/tun Ns Ar N のみのオープンを試みるように指定します。 通常、 .Nm は .Ar N に対して値 0 から開始し、成功するまで .Ar N を値 1 ずつ増加させて、トンネルデバイスのオープンを試みます。 デバイスファイルが存在しないために、3 回連続して失敗すると、諦めます。 .Pp .Nm は次の .Va mode を理解します: .Bl -tag -width XXX -offset XXX .It Fl auto .Nm は tun インタフェースをオープンし、 これを設定した後バックグラウンドになります。 出力データが tun インタフェース上で検出されるまでリンクはアップせず、 出力データが tun インタフェース上で検出されると .Nm はリンクをアップしようとします。 .Nm がリンクをアップしようとしている間に受信したパケット (最初のものを含みます) は、デフォルトで 2 分間キューにとどまります。 後述の .Dq set choked コマンドを参照してください。 .Pp .Fl auto モードでは、 コマンドラインには少なくとも 1 つの .Dq system を指定する必要があり (後述)、 インタフェース設定時に使用する相手の IP アドレスを指定する .Dq set ifaddr を、システムプロファイルで実行する必要があります。 通常、 .Dq 10.0.0.1/0 のようなものが適切です。例としては、 .Pa /usr/share/examples/ppp/ppp.conf.sample の .Dq pmdemand システムを参照してください。 .It Fl background この場合、 .Nm は相手との接続をすぐに確立しようとします。 成功すると、 .Nm はバックグラウンドになり、親プロセスは終了コード 0 を返します。 失敗すると、 .Nm は非 0 の結果で終了します。 .It Fl foreground フォアグラウンドモードでは、 .Nm は相手との接続をすぐに確立しようとしますが、デーモンにはなりません。 リンクはバックグラウンドモードで作成されます。 .Nm の起動を別のプロセスから制御したい場合に有用です。 .It Fl direct これは入力接続を受け付けるために使用します。 .Nm は .Dq set device 行を無視し、リンクに記述子 0 を使用します。 .Pp コールバックの設定を行うと、ダイヤルバック時に .Nm は .Dq set device 情報を使用します。 .It Fl dedicated このオプションは、専用線で接続されたマシンのためにデザインされています。 .Nm はデバイスを常にオープンに保ち、設定チャットスクリプトは一切使用しません。 .It Fl ddial .Fl auto モードと等価ですが、なんらかの理由でリンクが落ちた場合に .Nm が再度リンクをアップすることが違います。 .It Fl interactive これは no-op であり、 前述のフラグがどれも指定されなかった場合の動作を行います。 .Nm はコマンドラインで指定されたセクションをロードし、対話プロンプトを提供します。 .El .Pp ( .Pa /etc/ppp/ppp.conf に指定される) 設定エントリ、すなわち system を、コマンドラインで 1 つ以上指定可能です。 起動時に .Nm は .Pa /etc/ppp/ppp.conf から .Dq default システムを読み込み、その後コマンドラインで指定した各 system を読み込みます。 .Sh 主な特徴 .Bl -diag .It 対話的なユーザインタフェースを提供 コマンドモードで利用する場合、ユーザがコマンドを 入力することで、簡単にリモートコンピュータとの接続の確立、 接続状態の確認、 接続の切断を行うことができます。 オプションとして、セキュリティ確保のために すべての機能をパスワードで保護することができます。 .It 手動と自動でのダイヤルをサポート 対話モードでは、直接デバイスと通信できるように .Dq term コマンドが用意されています。 リモートホストと接続されて、 .Em PPP での通信が始まったら、 .Nm はそれを検出して自動的にパケットモードに移行します。 ひとたびリモートホストとの接続に必要なコマンドシーケンスがわかったら、 後々の接続を簡単にするため、必要なダイヤル手順やログイン手順を定義した チャットスクリプトを書くことができます。 .It オンデマンドでのダイヤルアップをサポート .Fl auto モード (自動モード) では .Nm はデーモンとして動作し、 .Em PPP リンクを通して送られるパケットを待ちうけます。 パケットを検出すると、デーモンが自動的にダイヤルを行って接続を確立します。 .Fl ddial モード (直接ダイヤルモード) でも ほぼ同様に、自動ダイヤルと接続の確立を行います。 しかしながらこのモードは、送るべきパケットが存在しない場合にも、 リンクが切れていることを検出するといつでもリモートへダイヤルするという点が auto モードと異なります。 このモードは、電話料金よりも常時接続されていることが重視される場合に有用です。 3 番目の .Fl dedicated モード (専用線モード) も利用可能です。 このモードは 2 つのマシン間の専用線を対象にしています。 専用線モードでは .Nm は自発的に動作を終了することはありません - 終了するには .Dq quit all コマンドを診断ソケットを介して送る必要があります。 .Dv SIGHUP は LCP の再ネゴシエーションを強要し、 .Dv SIGTERM は終了を強要します。 .It クライアントコールバックをサポート .Nm は標準 LCP コールバックプロトコルならびに Microsoft コールバック制御プロトコル (ftp://ftp.microsoft.com/developr/rfc/cbcp.txt) を使用できます。 .It NAT、すなわちパケットエイリアシングをサポート パケットエイリアシング (別名: IP マスカレード) により、 未登録でプライベートなネットワーク上のコンピュータからも インターネットにアクセスすることが可能です。 .Em PPP ホストはマスカレードゲートウェイとして動作します。 送信パケットの IP アドレスと TCP や UDP のポート番号は どちらも NAT され、返信パケットではエイリアスが元に戻されます。 .It バックグラウンド PPP 接続をサポート バックグラウンドモードでは、接続を確立するのに成功した場合に .Nm はデーモンになります。 それ以外の場合はエラーで終了します。 これにより、 接続が成功裏に確立した場合のみコマンドを実行するようなスクリプト をセットアップすることが出来ます。 .It サーバとしての PPP 接続をサポート ダイレクトモードでは、 .Nm は標準入力/標準出力からの .Em PPP 接続を受け入れるサーバとして動作させることができます。 .It "PAP と CHAP (rfc 1994, 2433 および 2759) による認証をサポート" PAP もしくは CHAP を用いることにより、Unix スタイルの .Xr login 1 手続きをスキップし、 .Em PPP プロトコルを代りに認証に使用することが可能です。 相手が Microsoft CHAP 認証を要求し、かつ .Nm が DES をサポートするようにコンパイルされている場合、適当な MD4/DES 応答がなされます。 .It RADIUS (rfc 2138) 認証をサポート PAP と CHAP の拡張である .Em \&R Ns No emote .Em \&A Ns No ccess .Em \&D Ns No ial .Em \&I Ns No n .Em \&U Ns No ser .Em \&S Ns No ervice は、集中データベースまたは分散データベースに、 ユーザごとに異なる接続特性を含んだ認証情報を、格納できます。 コンパイル時に .Xr libradius 3 が利用可能な場合、利用するように設定すると、 .Nm はこれを使用して .Em RADIUS 要求を作成します。 .It 代理 arp (Proxy Arp) をサポート .Nm が相手のために 1 個以上の代理 arp エントリを作成するように、設定可能です。 LAN 上の各マシンでの設定を行わずに、 相手側から LAN へのルーティングを可能とします。 .It パケットのフィルタリングをサポート ユーザは 4 種類のフィルタを定義できます。 .Em in は受信パケットに対するフィルタです。 .Em out は送信パケットに対するフィルタです。 .Em dial はダイヤルを行うきっかけとなるパケットを定義するフィルタで、 .Em alive は接続を保持するためのパケットを定義するフィルタです。 .It トンネルドライバは bpf (Berkeley Packet Filter) をサポート .Em PPP リンクを流れるパケットを調べるために、 .Xr tcpdump 1 を使うことができます。 .It PPP オーバ TCP および PPP オーバ UDP をサポート デバイス名が .Em host Ns No : Ns Em port Ns .Xo .Op / Ns tcp|udp , .Xc 形式で指定された場合、 .Nm は通常のシリアルデバイスを使うのではなく、 データ転送のための TCP または UDP の 接続を開きます。 UDP 接続は、 .Nm を強制的に同期モードにします。 .It PPP オーバ ISDN をサポート .Nm がオープンすべきリンクとして 生の B チャネル i4b デバイスを指定すると、 .Xr isdnd 8 と対話して ISDN 接続を確立できます。 .It PPP オーバイーサネットをサポート (rfc 2516) .Nm が .No PPPoE: Ns Ar iface Ns Xo .Op \&: Ns Ar provider Ns .Xc の書式のデバイス指定を与えられ、 .Xr netgraph 4 が利用可能な場合、 .Nm は .Ar iface ネットワークインタフェースを使用し、 .Ar provider に対して .Em PPP オーバイーサネットを話そうとします。 .Pp .Xr netgraph 4 をサポートしないシステム上では、 .Xr pppoe 8 のような外部プログラムを使用可能です。 .It "IETF ドラフトの Predictor-1 (rfc 1978) と DEFLATE (rfc 1979) 圧縮をサポート .Nm は VJ 圧縮の他に Predictor-1 と DEFLATE 圧縮もサポートしています。 モデムは通常 (例えば v42.bis のような) 組み込みの圧縮機能を持っており、 その結果システムは .\"(訳注)「転送データレートよりも」をここにいれたいと考えています。 .\" 2.2.1R 対象(1997/04/02) Takeshi MUTOH より高いデータレートで通信できます。 これは一般には良いことですが、より高速のデータによってシリアル回線からの 割り込みが増加します。 システムはこの割り込みをモデムと通信して処理しなくてはならないため、 システムの負荷と遅延時間が増加することになります。 VJ 圧縮とは異なり、Predictor-1 と DEFLATE 圧縮はリンクを通る .Em すべての ネットワークトラフィックをあらかじめ圧縮しておくことで、オーバヘッドを 最小にします。 .It Microsoft の IPCP 拡張をサポート (rfc 1877) Microsoft の .Em PPP スタックを使用するクライアント (つまり Win95, WinNT) との間で ネームサーバのアドレスと NetBIOS ネームサーバのアドレスを ネゴシエーションできます。 .It マルチリンク PPP をサポート (rfc 1990) 接続先への複数の物理的な回線をオープンし、すべてのリンクの 帯域幅を合わせてより高いスループットを得ることができます。 .It MPPE (draft-ietf-pppext-mppe) のサポート MPPE は、Microsoft 社の Point to Point 暗号化機構です。 .Nm を設定して、Microsoft Windows の仮想プライベートネットワーク (VPN) に参加できるようになります。現在のところ、 .Nm は、CHAP 81 認証機構からしか暗号鍵を取得することができません。 MPPE を動作させるためには、DES つきで .Nm をコンパイルしなくてはなりません。 .El .Sh パーミッション .Nm はユーザ .Dv root 、グループ .Dv network 、パーミッション .Dv 04554 でインストールされます。 デフォルトでは .Nm は、起動したユーザ ID が 0 でない場合には実行しません。 これは .Dq allow users コマンドを .Pa /etc/ppp/ppp.conf に記載することにより変更することが可能です。 通常ユーザとして実行する場合には、 .Nm はユーザ ID 0 に変わり、システムの経路表の変更と、 システムロックファイルの作成と、 ppp の設定ファイルの読み込みを行います。 すべての外部コマンド ("shell" や "!bg" で実行されます) は、 .Nm を起動したユーザ ID で実行されます。 ユーザ ID 0 にて正確になにが行われているのかに興味がある場合には、 ログ機能の .Sq ID0 を参照してください。 .Sh 始める前に 最初に .Nm を実行する時には、いくつかの初期設定を整える必要があります。 .Bl -bullet .It カーネルにトンネルデバイスが含まれていることが必要です (GENERIC カーネルではデフォルトで 1 つ含まれます)。 tun デバイスが含まれていない場合や、 複数の tun インタフェースが必要な場合、 次の行をカーネル設定ファイルに追加して、 カーネルを再構築する必要があります: .Pp .Dl pseudo-device tun N .Pp ここで .Ar N は .Em PPP 接続を行いたい最大の数です。 .It .Pa /dev ディレクトリにトンネルデバイスのエントリ .Pa /dev/tunN があるかどうかを調べてください。 ここで .Sq N は、0 から始まる tun デバイスの番号です。 もし無いようならば、"sh ./MAKEDEV tunN" を実行すれば作ることができます。 これにより 0 から .Ar N までの tun デバイスが作成されます。 .It あなたのシステムの .Pa /etc/group ファイルに .Dq network グループがあり、そのグループが .Nm を使うと想定されるすべてのユーザ名を含んでいることを確かめてください。 詳細は .Xr group 5 マニュアルページを参照してください。また、これらのユーザは .Pa /etc/ppp/ppp.conf ファイルで .Dq allow users コマンドを使用してアクセス権が与えられなければなりません。 .It ログファイルを作成します。 .Nm は .Xr syslog 3 を使用して情報を記録します。通常のログファイル名は .Pa /var/log/ppp.log です。 このファイルに出力を行うためには、次の行を .Pa /etc/syslog.conf ファイルに記述してください: .Bd -literal -offset indent !ppp *.*/var/log/ppp.log .Ed .Pp .Nm の実行形式にリンクを作成することにより、複数の .Em PPP ログファイルを持つことが可能です: .Pp .Dl # cd /usr/sbin .Dl # ln ppp ppp0 .Pp として .Pa /etc/syslog.conf で .Bd -literal -offset indent !ppp0 *.*/var/log/ppp0.log .Ed .Pp とします。 .Pa /etc/syslog.conf を更新した後に、 .Xr syslogd 8 に .Dv HUP シグナルを送ることをお忘れなく。 .It 厳密には .Nm の操作とは関係ありませんが、リゾルバが正しく働くように設定した方が 良いでしょう。 これは ( .Xr named 8 を用いて) ローカルな DNS サーバを設定するか、もしくは .Pa /etc/resolv.conf ファイルに適切な .Sq nameserver 行を加えることで行われます。 詳細は .Xr resolv.conf 5 のマニュアルを参照してください。 .Pp 他の方法として、もし接続先がサポートしている場合には .Nm が接続先にネームサーバのアドレスを尋ねて、自動的に .Pa /etc/resolv.conf を更新することができます。詳細は後述の .Dq enable dns コマンドと .Dq resolv コマンドとを参照してください。 .El .Sh 手動ダイヤル 次の例では、あなたのマシン名が .Dv awfulhak であるとして説明します。 .Nm を引数無しで起動すると (前述の .Sx パーミッション 参照) 次のプロンプトが表示されます: .Bd -literal -offset indent ppp ON awfulhak> .Ed .Pp プロンプトの .Sq ON の部分は常に大文字であるべきです。ここが小文字の場合、 .Dq passwd コマンドを使用してパスワードを入力しなければならないことを意味します。 実行中の .Nm に接続し、 まだ正しいパスワードを入力していない場合にのみこのような状態になります。 .Pp .Bd -literal -offset indent ppp ON awfulhak> set device /dev/cuaa0 ppp ON awfulhak> set speed 38400 .Ed .Pp 通常ハードウェアフロー制御 (CTS/RTS) を使用します。 しかし、特定の場合 (特定の PPP 可能な端末サービスに直接接続している場合に起り得ます)、 .Nm が通信リンクにデータを書き込もうとしたときに、 永遠に来ない CTS (送信時にクリア) シグナルを待つことにより .Nm がハングします。 直通線で接続できない場合は、 .Dq set ctsrts off で CTS/RTS をオフにしてみてください。 これが必要な場合、後述の .Dq set accmap の記述も参照してください - .Dq set accmap 000a0000 も必要かもしれません。 .Pp 通常、パリティは .Dq none に設定します。これが .Nm のデフォルトです。 パリティはどちらかというと古風なエラーチェック機構であり、 今となっては使用しません。 最近のモデムは各自のエラーチェック機構を持っており、 ほとんどのリンク層プロトコル ( .Nm はこれです) はより信頼できるチェック機構を使用します。 パリティは相対的に大きなオーバヘッドを持ちますので (トラフィックが 12.5% 増加します)、 .Dv PPP がオープンされると常に無効化 ( .Dq none に設定) されます。 しかし、ISP (インターネットサービスプロバイダ) によっては、 特定のパリティ設定を接続時 ( .Dv PPP がオープンする前) に使用するものがあります。 特に、Compuserve はログイン時に偶数パリティに固執しています: .Bd -literal -offset indent ppp ON awfulhak> set parity even .Ed .Pp ここで、現在のデバイス設定がどのようになっているか見られます: .Bd -literal -offset indent ppp ON awfulhak> show physical Name: deflink State: closed Device: N/A Link Type: interactive Connect Count: 0 Queued Packets: 0 Phone Number: N/A Defaults: Device List: /dev/cuaa0 Characteristics: 38400bps, cs8, even parity, CTS/RTS on Connect time: 0 secs 0 octets in, 0 octets out Overall 0 bytes/sec ppp ON awfulhak> .Ed .Pp ここでは、直接デバイスと通信するために term コマンドを使用可能です: .Bd -literal -offset indent ppp ON awfulhak> term at OK atdt123456 CONNECT login: myispusername Password: myisppassword Protocol: ppp .Ed .Pp 相手が .Em PPP で話しはじめると、 .Nm はそれを自動的に検出してコマンドモードに戻ります。 .Bd -literal -offset indent ppp ON awfulhak> # リンクは確立していません Ppp ON awfulhak> # 接続完了、LCP 完了 PPp ON awfulhak> # 認証完了 PPP ON awfulhak> # IP アドレス合意完了 .Ed .\" your end で「あなた側」 .Pp このようにならない場合、接続先がこちらのネゴシエーション開始を 待っている可能性があります。 強制的に .Nm に接続先への PPP 設定パケットの送出を開始させるためには .Dq ~p コマンドを使い、端末モードを抜けてパケットモードに移行して下さい。 .Pp それでもログインプロンプトが得られない場合、 Unix 的なログイン/パスワード認証ではなく、PAP または CHAP の認証を、 相手は要求している可能性が非常に高いです。 正しく設定するためには、プロンプトに戻り、 認証用の名前とキーを設定し、再度接続します: .Bd -literal -offset indent ~. ppp ON awfulhak> set authname myispusername ppp ON awfulhak> set authkey myisppassword ppp ON awfulhak> term at OK atdt123456 CONNECT .Ed .Pp ここで再度、ネゴシエーションを開始するように ppp に指定できます: .Bd -literal -offset indent ~p ppp ON awfulhak> # リンクは確立していません Ppp ON awfulhak> # 接続完了、LCP 完了 PPp ON awfulhak> # 認証完了 PPP ON awfulhak> # IP アドレス合意完了 .Ed .Pp これで接続されました! プロンプトの .Sq PPP が大文字に変化して、接続されたことを知らせます。もし 3 つの P の内 いくつかだけが大文字になっている場合には、すべての文字が大文字もしくは 小文字になるまで待ってください。もし小文字に戻った場合には、それは .Nm が接続先とのにネゴシエーションに成功しなかったことを意味します。 この時点での問題解決の第一歩としては、次のようにし、再挑戦します。 .Bd -literal -offset indent ppp ON awfulhak> set log local phase lcp ipcp .Ed .Pp 詳細は、下記の .Dq set log コマンドの説明を参照してください。 この時点でも失敗する場合、 ログを有効にして再挑戦することが非常に重要です。 プロンプトの変化に注意し、あなたを助けてくれる人に報告することもまた重要です。 .Pp リンクが確立したら、show コマンドを使用することで、 どのように事態が進行しているのかが分ります: .Bd -literal -offset indent PPP ON awfulhak> show physical * モデム関連の情報がここに表示されます * PPP ON awfulhak> show ccp * CCP (圧縮) 関連の情報がここに表示されます * PPP ON awfulhak> show lcp * LCP (回線制御) 関連の情報がここに表示されます * PPP ON awfulhak> show ipcp * IPCP (IP) 関連の情報がここに表示されます * PPP ON awfulhak> show link * (高レベル) リンク関係の情報がここに表示されます * PPP ON awfulhak> show bundle * (高レベル) 論理接続関係の情報がここに表示されます * .Ed .Pp この時点で、マシンは接続先に対するホスト単位の経路 (host route) を持っています。 これはリンクの相手のホストとのみ接続可能であるという意味です。 デフォルト経路のエントリ (他の経路エントリを持たずに、全パケットを .Em PPP リンクの相手に送る ように、あなたのマシンに指示します)を追加したければ、 次のコマンドを入力してください。 .Bd -literal -offset indent PPP ON awfulhak> add default HISADDR .Ed .Pp .Sq HISADDR という文字列は、相手側の IP アドレスを表します。 既存の経路のために失敗する場合には、 .Bd -literal -offset indent PPP ON awfulhak> add! default HISADDR .Ed .Pp を用いることで既存の経路を上書きできます。 このコマンドは、実際に接続を作成する前に実行可能です。 新しい IP アドレスを接続時にネゴシエートする場合、これに従って .Nm がデフォルト経路を更新します。 .Pp ここで、(ping, telnet, ftp のような) ネットワークアプリケーションを、 あなたのマシンの別のウィンドウまたは端末で使用可能です。 現在の端末を再利用したい場合、 .Nm をバックグラウンドモードにするために、 標準のシェルのサスペンドとバックグラウンドコマンド (通常 .Dq ^Z の後に .Dq bg ) を使用可能です。 .Pp 使用可能コマンドの詳細は .Sx PPP コマンドリスト の節を参照してください。 .Sh 自動ダイヤル 自動ダイヤルを行うためには、ダイヤルとログインのチャットスクリプトを 用意しなければなりません。定義の例は .Pa /usr/share/examples/ppp/ppp.conf.sample を見てください ( .Pa /etc/ppp/ppp.conf の書式は非常に簡単です)。 各行は単一のコメント、インクルード、ラベル、コマンドのいずれかを含みます。 .Bl -bullet .It .Pq Dq # 文字で始まる行は、コメントとして扱われます。 コメント行と認識した場合、先行する空白は無視されます。 .It インクルードは語 .Sq !include から始まる行です。 1 つの引数 - インクルードするファイル - を持つ必要があります。 古いバージョンの .Nm との互換性のために、 .Dq !include ~/.ppp.conf を使用したいかもしれません。 .It ラベルは行頭から始まり、最後にコロン .Pq Dq \&: が続かなければなりません。 .It コマンド行は、最初の桁に空白かタブを含む必要があります。 .El .Pp .Pa /etc/ppp/ppp.conf ファイルには少なくとも .Dq default セクションが存在する必要があります。 このセクションは常に実行されます。 このファイルには 1 つ以上のセクションが含まれます。 セクション名は用途に応じて付けます。例えば、 .Dq MyISP はあなたの ISP を表したり、 .Dq ppp-in は入力の .Nm 構成を表したります。 .Nm を立ち上げる際に、接続先のラベル名を指定可能です。 .Dq default ラベルに関係づけられたコマンドが実行されてから、 接続先ラベルに関連づけられたコマンドが実行されます。 .Nm を引数無しで起動した場合、 .Dq default だけは実行されます。load コマンドを使用して、 .Pa /etc/ppp/ppp.conf のセクションを手動でロード可能です: .Bd -literal -offset indent ppp ON awfulhak> load MyISP .Ed .Pp セクションロード後には、 .Nm はいかなる動作も行わないことに注意してください。 これは、コマンドラインでラベルを指定した結果でも、 .Dq load コマンドを使用した結果でも同様です。 設定ファイル中で、そのラベルに対して指定されたコマンドのみが、実行されます。 一方、 .Nm を .Fl background , .Fl ddial , .Fl dedicated のいずれかのスイッチ付きで起動したときには、 .Nm が接続を確立するように、リンクモードが指示します。 更なる詳細については、後述の .Dq set mode コマンドを参照してください。 .Pp ひとたび接続が確立したなら、プロンプトの .Sq ppp は .Sq PPP に変わります: .Bd -literal -offset indent # ppp MyISP \&... ppp ON awfulhak> dial Ppp ON awfulhak> PPp ON awfulhak> PPP ON awfulhak> .Ed .Pp Ppp プロンプトは .Nm が認証フェーズに入ったことを示します。PPp プロンプトは .Nm がネットワークフェーズに入ったことを示します。PPP プロンプトは .Nm がネットワーク層プロトコルのネゴシエーションに成功し、 使用可能状態にあることを示します。 .Pp もし .Pa /etc/ppp/ppp.linkup が利用可能ならば、 .Em PPP 接続が確立された時に、その内容が実行されます。 接続が確立された後のバックグラウンドでのスクリプト実行については、 提供されている .Pa /usr/share/examples/ppp/ppp.conf.sample (使用可能な置換文字列については、後述の .Dq shell と .Dq bg を参照してください) の .Dq pmdemand の例を参照してください。 同様に、接続が閉じられると、 .Pa /etc/ppp/ppp.linkdown ファイルの内容が実行されます。 これらのファイルのフォーマットは .Pa /etc/ppp/ppp.conf と同じです。 .Pp 以前のバージョンの .Nm では、デフォルト経路のような経路は .Pa ppp.linkup ファイルで追加し直す必要がありました。 現在では .Nm は、 .Dv HISADDR もしくは .Dv MYADDR が変化したときに、自動的に .Dv HISADDR もしくは .Dv MYADDR 文字列を含むすべての経路を更新する .Sq スティッキー経路 をサポートします。 .Sh バックグラウンドダイヤル .Nm を使って非対話的に接続を確立したい場合 (例えば .Xr crontab 5 エントリや .Xr at 1 ジョブから使うような場合) には、 .Fl background オプションを使います。 .Fl background が指定された場合、 .Nm はすぐに接続を確立しようとします。 複数の電話番号が指定された場合には、各電話番号が 1 回づつ試されます。 これらに失敗すると、 .Nm は即座に終了し、0 でない終了コードを返します。 接続に成功すると .Nm はデーモンになり、呼び出し側に終了コード 0 を返します。 デーモンは、リモートシステムが接続を終了した場合、 もしくは .Dv TERM シグナルを受け取った場合に、自動的に終了します。 .Sh ダイヤルオンデマンド デマンドダイヤル機能は .Fl auto または .Fl ddial オプションにて有効にされます。この場合にも .Pa /etc/ppp/ppp.conf で定義された接続先のラベルを指定しなければなりません。 これには、リモート接続先の IP アドレスを指定するための .Dq set ifaddr コマンドも書かれていなければなりません ( .Pa /usr/share/examples/ppp/ppp.conf.sample を参照してください)。 .Bd -literal -offset indent # ppp -auto pmdemand .Ed .Pp .Fl auto または .Fl ddial が指定された時に .Nm はデーモンとして動作しますが、 .Pa /etc/ppp/ppp.conf 中で .Dq set server コマンドを使うことで、設定を確認したり変更したりすることができます。 (たとえば、 .Dq Li "set server +3000 mypasswd" とすると) 次のように診断ポートを通じて接続することができます。 .Bd -literal -offset indent # pppctl 3000 (tun0 を仮定) Password: PPP ON awfulhak> show who tcp (127.0.0.1:1028) * .Ed .Pp .Dq show who コマンドは現在 .Nm 自身に接続しているユーザの一覧を表示します。診断ソケットが閉じられる、 もしくは異なるソケットに変更された場合、すべての接続は即座に終了します。 .Pp .Fl auto モードにて 送信パケットが検出された時、 .Nm は (チャットスクリプトに基づいて) ダイヤルを行い、 通信相手に接続しようとします。 .Fl ddial モードでは回線がダウンしていることが確認された場合にはいつでも ダイヤルが行われます。 接続に失敗したら、デフォルトの動作では 30 秒間待ってから、 別の送信パケットが検出された時に接続しようとします。 .Pp この動作は .Dq set redial コマンドで変更できます。 .Pp .No set redial Ar secs Ns Xo .Oo + Ns Ar inc Ns .Op - Ns Ar max Ns .Oc Ns Op . Ns Ar next .Op Ar attempts .Xc .Pp .Bl -tag -width attempts -compact .It Ar secs は、再び接続しようとするまでの秒数です。 引数がリテラル文字列 .Sq Li random の場合には、待ち時間を 1 秒以上から 30 秒以下の間でランダムに選びます。 .It Ar inc は秒数であり、 新規にダイヤルするときに .Ar secs に加えられます。 このタイムアウト値が .Ar secs に戻るのは、接続が成功裏に確立した後だけです。 .Ar inc のデフォルト値は 0 です。 .It Ar max は、 .Nm が .Ar secs を増加させる最大回数です。 .Ar max のデフォルト値は 10 です。 .It Ar next は電話番号リストの中の次の番号をダイヤルする前に待つ秒数です。( .Dq set phone コマンドを参照してください)。これのデフォルトは 3 秒です。 繰り返しますが、引数がリテラル文字列 .Sq Li random の場合には、待ち時間を 1 秒以上 30 秒以下の間でランダムに選びます。 .It Ar attempts は、受け取った個々の送信パケットに対して、最大何回接続を試みるのかを示す 数字です。 パラメータを省略すると、以前の値は変更されません。 .Ar attempts に 0 を指定すると、接続されるまで試みを続けます。 .El .Pp .Bd -literal -offset indent set redial 10.3 4 .Ed .Pp は個々の送信パケットに対して 4 回接続を試み、 番号間の待ち時間が 3 秒で、すべての番号を試した後に 10 秒待つことを表します。 複数の電話番号が指定されている場合でも、トータルのダイヤル回数は 4 回のままです。 (それぞれの番号を 4 回ダイヤルするのではありません)。 .Pp 代りに、 .Pp .Bd -literal -offset indent set redial 10+10-5.3 20 .Ed .Pp は、 .Nm に接続を 20 回試みさせます。最初の試みの後は、 .Nm は 10 秒待ちます。 次の試みの後は 20 秒待ちということを、 6 番目の試みの後では 1 分待つところまで行います。 次の 14 回の停止は、同じ 1 分間となります。 .Nm が接続し、切断した後、再度接続に失敗した場合、 タイムアウト値は再度 10 秒から開始します。 .Pp リンクの両端が .Nm の .Fl auto ダイヤルモードを利用している場合は、 ダイヤル間隔を変更しておくのが良いでしょう。 もし、リンクの両端が同じタイムアウト時間に設定されていて、 リンクが切れて両方に送信待ちのパケットがあった場合、 両方が同時に相手を呼び出しあうことになってしまいます。 場所によっては、シリアルリンクに信頼性がなく、 切れるべきでない時にキャリアが失われるかもしれません。 セッションの途中で予期せずキャリアが失われた場合、 .Nm にリダイヤルさせることができます。 .Bd -literal -offset indent set reconnect timeout ntries .Ed .Pp このコマンドは、キャリアが失われた時に .Ar timeout 秒の間隔を置いて .Ar ntries 回まで接続を再確立するよう .Nm に指示します。例えば、 .Bd -literal -offset indent set reconnect 3 5 .Ed .Pp は、予期せぬキャリア喪失の際に .Ar 3 秒待ってから再接続を試みるように .Nm に指示します。これは .Nm があきらめる前に .Ar 5 回まで行われます。 ntries のデフォルト値は 0 (再接続しない) です。 このオプションを使用する際には注意が必要です。 もしローカル側のタイムアウトがリモート側よりもわずかに長いと、 リモート側がタイムアウトにより回線を切断した場合に、 再接続機能が (指定した回数まで) 起動されてしまいます。 注: この文脈においては、多くの LQR を喪失するとキャリア喪失を引き起こし、 ひいては再接続を引き起こします。 .Fl background フラグが指定された場合、接続が行えるまで すべての電話番号が最大 1 回ダイヤルされます。 .Dq set redial コマンドにて、リダイヤル期間の後に、 再接続回数を指定します。 リダイヤル値が指定した電話番号数より少ない場合、 指定した電話番号で使用されないものが出来ます。 プログラムを終了させるには、次のように入力してください。 .Bd -literal -offset indent PPP ON awfulhak> close ppp ON awfulhak> quit all .Ed .Pp .Dq quit コマンドは .Xr pppctl 8 もしくは .Xr telnet 1 による接続を終了しますが、 プログラム自身は終了させません。 .Nm も終了させたい場合には、 .Dq quit all を実行してください。 .Sh PPP 接続の受け入れ (方法その 1) .Em PPP 接続要求を受け入れるには、次の手順にしたがってください。 .Bl -enum .It モデムと、 (必要であれば) .Pa /etc/rc.serial が正しく設定されていることを確認します。 .Bl -bullet -compact .It フロー制御にはハードウェアハンドシェイク (CTS/RTS) を使います。 .It モデムはエコーバックを行わず (ATE0)、コマンドの結果も報告しない (ATQ1) ように設定されていなければなりません。 .El .Pp .It モデムが接続されているポートで .Xr getty 8 が起動されるように .Pa /etc/ttys を編集します。 例えば、次のように設定すれば良いでしょう: .Pp .Dl ttyd1 Qo /usr/libexec/getty std.38400 Qc dialup on secure .Pp .Xr getty 8 を起動するために .Xr init 8 プロセスに .Dv HUP シグナルを送るのを 忘れないでください: .Pp .Dl # kill -HUP 1 .Pp 通常、あなたのモデムの DTR 速度を getty と同じに設定する必要があります: .Bd -literal -offset indent # ppp ppp ON awfulhak> set device /dev/cuaa1 ppp ON awfulhak> set speed 38400 ppp ON awfulhak> term deflink: Entering terminal mode on /dev/cuaa1 Type `~?' for help at OK at OK atz OK at OK ~. ppp ON awfulhak> quit .Ed .It .Pa /usr/local/bin/ppplogin ファイルを次のような内容で作成します: .Bd -literal -offset indent #!/bin/sh exec /usr/sbin/ppp -direct incoming .Ed .Pp ダイレクトモード .Pq Fl direct では、 .Nm は標準入力と標準出力を使って動作します。クライアント動作の .Nm と同様に、 .Xr pppctl 8 を使用することで、構成された診断ポートに接続可能です。 .Pp ここで .Pa /etc/ppp/ppp.conf 中の .Ar incoming セクションが設定されていなければなりません。 .Pp .Ar incoming セクションに適当な .Dq allow users コマンドがあることを確かめておいてください。 .It 受け入れるユーザのアカウントを用意してください。 .Bd -literal ppp:xxxx:66:66:PPP Login User:/home/ppp:/usr/local/bin/ppplogin .Ed .Pp 詳細は .Xr adduser 8 と .Xr vipw 8 のマニュアル項目を参照してください。 .Dq accept dns および .Dq set nbns コマンドを使うことで IPCP によるドメインネームサーバと NetBIOS ネームサーバの ネゴシエーションを有効にすることが可能です。 下記の記述を参照してください。 .El .Sh PPP 接続の受け入れ (方法その 2) この方法は、 .Xr login 1 ではなく .Nm で接続の認証を行うという点が異なります。 .Bl -enum .It .Pa /etc/gettytab の default セクションに .Dq pp ケーパビリティを指定することで ppp を自動的に認識するように 設定してください。 .Bd -literal default:\\ :pp=/usr/local/bin/ppplogin:\\ ..... .Ed .It 上記の方法その 1 の最初の 3 手順と同じように、 シリアルデバイスを設定し、 .Xr getty 8 を有効にして、 .Pa /usr/local/bin/ppplogin を作成してください。 .It .Pa /etc/ppp/ppp.conf の .Sq incoming ラベル (もしくは .Pa ppplogin が用いるラベルならなんでも構いません) 下に .Dq enable chap か .Dq enable pap (もしくはその両方) を加えてください。 .It .Pa /etc/ppp/ppp.secret に、受け入れるユーザそれぞれについて、エントリを作成してください。 .Bd -literal Pfredxxxx Pgeorgeyyyy .Ed .El .Pp これで、 .Xr getty 8 は (HDLC フレームヘッダを認識することで) ppp 接続を検出すると、すぐに .Dq /usr/local/bin/ppplogin を実行します。 .Pp 上記のように PAP もしくは CHAP を有効にすることは .Em 必須 です。そうしなければ、あらゆる人があなたのマシンにパスワード .Em なしに ppp セッションを確立することを許可し、 あらゆる種類の潜在的な攻撃に対して門戸を開いていることになります。 .Sh 内向き接続の認証 通常、接続の受信側は相手が相手自身を認証することを要求します。 これは通常 .Xr login 1 にて行われますが、代りに PAP か CHAP を使用可能です。 2 つのうちで CHAP の方がより安全ですが、 クライアントによってはサポートしていないものがあります。 どちらを使いたいか決めたら、 .Sq enable chap または .Sq enable pap を .Pa ppp.conf の適切なセクションに追加してください。 .Pp その後、 .Pa /etc/ppp/ppp.secret ファイルの設定を行う必要があります。 このファイルは、クライアントになりうるマシンごとに 1 行を含みます。 各行は 5 つまでのフィールドからなります: .Pp .Ar name Ar key Oo .Ar hisaddr Op Ar label Op Ar callback-number .Oc .Pp .Ar name と .Ar key は期待されるクライアントのユーザ名とパスワードを指定します。 .Ar key が .Dq \&* で PAP が使用される場合、 .Nm は認証時にパスワードデータベース .Pq Xr passwd 5 を検索します。 .Pa ppp.secret の如何なる .Ar name Ns No / Ar key の組み合わせにおいても適切でない返答をクライアントが与える場合、 認証は失敗します。 .Pp 認証に成功したならば、 (指定時には) .Ar hisaddr を IP 番号ネゴシエーション時に使用します。詳細は .Dq set ifaddr コマンドを参照してください。 .Pp 認証に成功し .Ar label が指定された場合、現在のシステムラベルは .Ar label にマッチするように修正されます。 このことはファイル .Pa ppp.linkup と .Pa ppp.linkdown の後続のパーズに影響があります。 .Pp 認証に成功し .Ar callback-number が指定され .Dq set callback が .Pa ppp.conf で指定された場合、クライアントは指定された番号でコールバックされます。 CBCP が使用される場合、 .Dq set cbcp コマンドに渡すのと同様の形式で、 .Ar callback-number にもまた番号のリストまたは .Dq \&* を含むことが可能です。 この値は、 .Nm で後続する CBCP フェーズで使用します。 .Sh PPP オーバ TCP と PPP オーバ UDP (別名: トンネリング) シリアルリンク上以外の .Nm の使用方法として、 device にホストとポートを指定することにより、 TCP 接続を使用することが可能です: .Pp .Dl set device ui-gate:6669/tcp .Pp シリアルデバイスをオープンする代りに、 .Nm は指定されたマシンの指定されたソケットへの TCP 接続をオープンします。 .Nm は telnet プロトコルを使用しないこと、 telnet サーバとネゴシエーションできないことに注意を払うべきです。 受信マシン (ui-gate) 上に、 この ppp 接続を受信するポートを設定する必要があります。まず .Pa /etc/services を更新して、サービスを定義します: .Pp .Dl ppp-in 6669/tcp # Incoming PPP connections over tcp .Pp そして .Pa /etc/inetd.conf を更新して、このポートへの受信接続をどのように扱うかを .Xr inetd 8 に指示します: .Pp .Dl ppp-in stream tcp nowait root /usr/sbin/ppp ppp -direct ppp-in .Pp .Pa /etc/inetd.conf を更新した後には、 .Xr inetd 8 に .Dv HUP シグナルを送るのをお忘れなく。 ここではラベル名 .Dq ppp-in を使用します。 ui-gate (受信側) の .Pa /etc/ppp/ppp.conf エントリは次の内容を含みます: .Bd -literal -offset indent ppp-in: set timeout 0 set ifaddr 10.0.4.1 10.0.4.2 .Ed .Pp また、 .Pa /etc/ppp/ppp.linkup 中のエントリには、次のようなものを含まなくてはなりません。 .Bd -literal -offset indent ppp-in: add 10.0.1.0/24 HISADDR .Ed .Pp .Nm がネゴシエーションを行い、インタフェースにアドレスを割り当てて からだけしか経路を追加しないように、 .Pa ppp.linkup ファイル中には .Dq add コマンドを置く必要があります。 .Pp セキュリティのために PAP もしくは CHAP の設定をしたいかもしれません。 PAP を有効にするには次の行を追加します: .Bd -literal -offset indent enable PAP .Ed .Pp また、次のエントリを .Pa /etc/ppp/ppp.secret に作成する必要があります: .Bd -literal -offset indent MyAuthName MyAuthPasswd .Ed .Pp .Ar MyAuthPasswd が .Dq * の場合には、パスワードは .Xr passwd 5 データベースから検索されます。 .Pp awfulhak (起動側) の .Pa /etc/ppp/ppp.conf エントリは次の内容を含む必要があります: .Bd -literal -offset indent ui-gate: set escape 0xff set device ui-gate:ppp-in/tcp set dial set timeout 30 set log Phase Chat Connect hdlc LCP IPCP CCP tun set ifaddr 10.0.4.2 10.0.4.1 .Ed .Pp そして、 .Pa /etc/ppp/ppp.linkup ファイル中に経路の設定もつけます。 .Bd -literal -offset indent ui-gate: add 10.0.2.0/24 HISADDR .Ed .Pp PAP を有効にするのなら、 .Pa /etc/ppp/ppp.conf プロファイル中に、次のような設定も必要です。 .Bd -literal -offset indent set authname MyAuthName set authkey MyAuthKey .Ed .Pp 我々は、 ui-gate に 10.0.4.1 のアドレスを割り当て、 awfulhak に 10.0.4.2 のアドレスを割り当てようとしています。 接続をオープンするためには、次の内容をタイプするだけで良いです。 .Pp .Dl awfulhak # ppp -background ui-gate .Pp 結果として、 awfulhak にはネットワーク 10.0.2.0/24 への新たな「経路」が、 ui-gate にはネットワーク 10.0.1.0/24 への新たな「経路」が、 TCP 接続経由でそれぞれ作成されます。 ネットワークは実質的にブリッジされます - 下位レベルの TCP 接続はパブリックなネットワーク (例えばインターネット) を またがっても良いです。 また 2 つのゲートウェイ間では ppp トラフィックは 概念的に TCP ストリーム中でカプセル化されます (パケットがパケットに対応するわけではありません)。 .Pp この機構の大きな欠点は、同時に 2 つの「配送保証」機構が存在することです - この 2 つとは、下位レベルの TCP ストリームと .Em PPP リンク上で使用されるプロトコルであり、おそらくまた TCP でしょう。 パケット喪失が起ると、両者はそれぞれの方法で喪失した パケットを再送しようと するでしょう。 .Pp このオーバヘッドを避けるために、 トランスポートとして TCP の代りに UDP を使用できます。 これは単にプロトコルを "tcp" から "udp" に変えるだけで可能です。 トランスポートとして UDP を使用するとき、 .Nm は同期モードで動作します。 入力データがパケットに再構成されないという、別の利点もあります。 .Pp このように、トンネルされた設定を通してデフォルトの経路を追加する ときには注意してください。 デフォルトの経路 ( .Pa /etc/ppp/ppp.linkup に追加されます) が、最終的にはリンクのトンネル経由の TCP 接続を ルーティングすることになるのは良く起こることであり、 結果的に接続を狭めてしまうことになります。 これを避けるため、トンネル経由の接続の助けになるように、静的経路を 追加することを忘れないでください。 .Bd -literal -offset indent ui-gate: set escape 0xff set device ui-gate:ppp-in/tcp add ui-gate x.x.x.x ..... .Ed .Pp ここで、 .Dq x.x.x.x は、 .Dq ui-gate への経路が通常使用する IP アドレスです。 .Pp インターネットのような、公共のネットワークを通して接続を ルーティングさせる場合、データを暗号化する方が望ましいです。 MPPE プロトコルの助けを借りれば、それが可能になります。 しかし、現在のところ、MPPE が圧縮層として実装している (この点に関しては Microsoft 社に感謝します) ように、 トラフィックを圧縮することもできるというわけではありません。 MPPE 暗号化を有効にするには、次のような行をサーバ側の .Pa /etc/ppp/ppp.conf に追加してください。 .Bd -literal -offset indent enable MSCHAPv2 disable deflate pred1 deny deflate pred1 .Ed .Pp その際、 .Pa /etc/ppp/ppp.secret に必要なエントリを置いたことを確認してください (MSCHAPv2 はチャレンジコードベースです。そのため、 .Xr passwd 5 は使用しません)。 .Pp MSCHAPv2 および MPPE はデフォルトで受け取ることができます。 ですので、クライアント側では、何も変更を加えなくても動くはずです (ですが、プロファイル中に .Dq set authname と .Dq set authkey があることは確認してください)。 .Sh ネットワークアドレス変換 (パケットエイリアシング) .Fl nat コマンドラインオプションにより、 ネットワークアドレス変換 (別名、パケットエイリアシング) が有効になります。 これにより、 .Nm ホストがローカルエリアネットワークの他のコンピュータに対して マスカレードゲートウェイとして動作するようになります。 送信される IP パケットは、まるで .Nm ホストから来たかのように NAT され、 受信パケットは、それがローカルエリアネットワークの正しいマシンに 送られるように NAT が戻されます。 NAT により、 未登録でプライベートなサブネット上のコンピュータを 外部から見えないようにしつつ、 インターネットへアクセス可能とします。 一般に、 .Nm が正しく動作していることの確認は、 まず最初にネットワークアドレス変換を禁止して行います。 次に .Fl nat オプションを有効にして、 .Nm ホストの上で (ウェブブラウザや .Xr telnet 1 , .Xr ftp 1 , .Xr ping 8 , .Xr traceroute 8 などの) ネットワークアプリケーションの動作を確認します。 最後に、LAN 上の別のコンピュータの上で同様なアプリケーションの 動作を確認することになります。 .Nm ホストではネットワークアプリケーションが正しく動作するのに、 LAN 上の別のコンピュータでは動かないのであれば、マスカレードソフトウェアは 正しく動いているけれども、ホストが IP パケットをフォワーディングしないか、 ひょっとするとパケットが送られて来ていないかのどちらかです。 .Pa /etc/rc.conf で IP フォワーディングが有効にされていることと、 他のコンピュータで .Nm ホストがその LAN のゲートウェイとして 指定されていることを確認してください。 .Sh パケットのフィルタリング この実装では、パケットのフィルタリングがサポートされています。 .Em in フィルタ、 .Em out フィルタ、 .Em dial フィルタ、そして .Em alive フィルタの 4 種類のフィルタがあります。 ここでは基本的なことについて書くことにします。 .Bl -bullet .It フィルタ定義は次のような構文になっています。 .Pp set filter .Ar name .Ar rule-no .Ar action .Op !\& .Oo .Op host .Ar src_addr Ns Op / Ns Ar width .Op Ar dst_addr Ns Op / Ns Ar width .Oc .Ar [ proto Op src Ar cmp port .Op dst Ar cmp port .Op estab .Op syn .Op finrst .Op timeout Ar secs ] .Bl -enum .It .Ar name は .Sq in , .Sq out , .Sq dial , .Sq alive のいずれかです。 .It .Ar rule-no は .Sq 0 から .Sq 39 までの数値で、ルール番号を指定します。 ルールは .Ar rule-no の番号順に指定されます。 ただしルール .Sq 0 が指定されている場合のみです。 .It .Ar action は .Sq permit , .Sq deny を指定可能であり、 あるパケットがこれらのルールに一致した場合、 結びつけられた action が直ちに実行されます。 また .Ar action には .Sq clear も指定可能です。 この場合、このルールに結びつけられた action をクリアします。 また .Ar action には、現在のルール番号よりも大きなルール番号を指定可能です。 この場合には、あるパケットが現在のルールに一致した場合、 (次のルール番号の代りに) この新しいルールに対して次にパケットが一致するかを確認します。 .Pp .Ar action にはエクスクラメーションマーク .Pq Dq !\& を続けることが可能です。この場合、 .Nm は後続する一致の意味を反転させます。 .It .Op Ar src_addr Ns Op / Ns Ar width と .Op Ar dst_addr Ns Op / Ns Ar width は始点と終点の IP アドレスです。 .Op / Ns Ar width が指定された場合には、それによって適切なネットマスクのビット値を与え、 アドレスの範囲を指定することができます。 .Pp .Ar src_addr と .Ar dst_addr には、 .Dv MYADDR と .Dv HISADDR という値を使用可能です (これらの値の解説は .Dq bg を参照してください)。 これらの値を使用した場合、これらの値が変化するたびにフィルタが更新されます。 これは、後述の .Dq add コマンドの動作と似ています。 .It .Ar proto は .Sq icmp , .Sq igmp , .Sq ipip , .Sq ospf , .Sq udp , .Sq tcp のうちのいずれか 1 つです。 .It .Ar cmp は .Sq \< , .Sq \&eq , .Sq \> のうちいずれか 1 つです。それぞれ、より小さい、等しい、 より大きいを意味します。 .Ar port はポート番号で指定するか、 .Pa /etc/services のサービス名で指定することができます。 .It .Sq estab , .Sq syn , .Sq finrst フラグは .Ar proto が .Sq tcp に設定されているときにのみ許可され、それぞれ TH_ACK、TH_SYN、および TH_FIN もしくは TH_RST という TCP フラグを表わします。 .It タイムアウト値は、現在のアイドルタイムアウトを最低でも .Ar secs 秒へと修正します。 タイムアウトを、alive フィルタと in/out フィルタの両方で指定すると、 in/out での値が使用されます。 タイムアウトを指定しないと、デフォルトタイムアウト ( .Ic set timeout を使用して設定するもので、デフォルトでは 180 秒になります) が使用されます。 .El .Pp .It 各フィルタはルール 0 から始まり、40 個までのルールをもつことができます。 規則のルールは、ルール 0 が定義されていなければ、有効にはなりません。 すなわち、デフォルトではすべてが通されます。 .It 定義されたルール集合中にマッチするものが無い場合、 パケットは破棄 (ブロック) されます。 フィルタにルールが存在しない場合、パケットは通過を許されます。 .It .Em PROTO_IP .Em PPP フレームヘッダを持つ UDP フレームに対しては、 ペイロードに基づいたフィルタリングを行なうことが可能です。 詳細については、後述の .Ar filter-decapsulation を参照してください。 .It すべての規則を消去するには、 .Dq set filter Ar name No -1 を使ってください。 .El .Pp .Pa /usr/share/examples/ppp/ppp.conf.sample . を参照してください。 .Sh アイドルタイマの設定 アイドルタイマを調べたり/設定するためには、それぞれ .Dq show bundle と .Dq set timeout コマンドを使ってください: .Bd -literal -offset indent ppp ON awfulhak> set timeout 600 .Ed .Pp タイムアウト時間は秒数で指定します。デフォルト値は timeout が 180 秒 (3 分) です。 アイドルタイマ機能を使わないようにするためには、 次のコマンドを利用してください。 .Bd -literal -offset indent ppp ON awfulhak> set timeout 0 .Ed .Pp .Fl ddial と .Fl dedicated モードではアイドルタイムアウトは無視されます。 .Fl auto モードでは、アイドルタイムアウトが発生すると .Nm プログラムは実行したままで .Em PPP セッションを終了します。別の引金となるパケットがきた時に リンクを再び確立しようとします。 .Sh Predictor-1 および DEFLATE 圧縮 .Nm は Predictor type 1 圧縮および deflate 圧縮をサポートしています。 デフォルトでは、 .Nm は、接続相手が同意 (あるいは要求) した場合に、 この機能を使おうと (もしくは受け入れようと) します。 .Nm は deflate プロトコルを優先します。 これらの機能を使用したくない時には .Dq disable と .Dq deny のコマンドを参照してください。 .Pp .Dq disable deflate か .Dq deny deflate の一方を使用することにより、 方向ごとに異ったアルゴリズムを使用することができます (接続相手が両方のプロトコルをサポートしていると仮定しています)。 .Pp デフォルトでは、DEFLATE についてネゴシエートするときには .Nm はウィンドウサイズとして 15 を使います。この動作を変更したい場合には .Dq set deflate コマンドを参照してください。 .Pp デフォルトでは無効にされ受け付けませんが、DEFLATE24 と呼ばれる特殊な アルゴリズムを使用することもできます。これは CCP ID 24 を ネゴシエーションに使う点を除いては DEFLATE と完全に同じものです。 これを使用することで .Nm は .Nm pppd バージョン 2.3.* と DEFLATE ネゴシエーションを成功させることができます。 .Sh IP アドレスの制御 .Nm は IP アドレスのネゴシエーションのために IPCP を使います。接続の両側は、自分が 使おうとするアドレスを提示し、要求された IP アドレスが受け入れ可能な ものであれば、相手に ACK (肯定応答) を返します。 受け入れることができなければ、別の IP アドレスの使用を促すために .Nm は相手に NAK (否定応答) を返します。 接続の両側が受け取った要求に同意し (ACK を送っ) た時、 IPCP はオープン状態にセットされ、ネットワーク層での接続が確立されます。 IPCP の動作を制御するために、この実装はローカルとリモートの IP アドレスを定義するための .Dq set ifaddr コマンドを持っています。 .Bd -ragged -offset indent .No set ifaddr Oo Ar src_addr Ns .Op / Ns Ar \&nn .Oo Ar dst_addr Ns Op / Ns Ar \&nn .Oo Ar netmask .Op Ar trigger_addr .Oc .Oc .Oc .Ed .Pp ここで、 .Sq src_addr はローカル側で使おうと思っている IP アドレスで、 .Sq dst_addr はリモート側が使用すべき IP アドレスです。 .Sq netmask は使用すべきネットマスクです。 .Sq src_addr のデフォルトは現在の .Xr hostname 1 のもの、 .Sq dst_addr のデフォルトは 0.0.0.0 であり、 .Sq netmask のデフォルトは .Sq src_addr に適したマスク値です。 .Sq netmask はデフォルトより小さくすることのみ可能です。 ほとんどのカーネルが POINTOPOINT インタフェースのネットマスクを 無視するので、便利な値は 255.255.255.255 でしょう。 .Pp 誤った .Em PPP の実装には、接続ネゴシエーションのために、 .Sq src_addr ではなく特別な IP アドレスを使用しなければならないものがあります。 この場合、 .Sq trigger_addr で指定した IP アドレスが使用されます。 相手がこの提案された番号に同意しない限り、経路表には影響しません。 .Bd -literal -offset indent set ifaddr 192.244.177.38 192.244.177.2 255.255.255.255 0.0.0.0 .Ed .Pp 上の例の意味は次の通りです: .Pp .Bl -bullet -compact .It 自分の IP アドレスとしてまず 0.0.0.0 を提案しますが、アドレス 192.244.177.38 のみは受け付けます。 .It 相手側のアドレスとして 192.244.177.2 を使うように要求し, 192.244.177.2 以外のどんなアドレスを使うことも許可しません。 相手側が別の IP アドレスを要求してきた時は、いつでも 192.244.177.2 を提案します。 .It 経路表のネットマスク値は 0xffffffff に設定されます。 .El .Pp これは、両側が既に決まった IP アドレスを持っている場合には うまくいきますが、多くの場合、一方がすべての IP アドレスを制御する サーバとして動作しており、もう一方はその方針に従います。 より柔軟な動作をさせるために、 .Dq set ifaddr コマンドで IP アドレス指定をもっと緩やかにすることが可能です: .Pp .Dl set ifaddr 192.244.177.38/24 192.244.177.2/20 .Pp スラッシュ .Pq Dq / に続く数字は、この IP アドレスで意味のあるビットの数を 表現しています。上の例は次のことを示しています。 .Pp .Bl -bullet -compact .It 可能なら自分のアドレスとして 192.244.177.38 を使おうとしますが、 192.244.177.0 から 192.244.177.255 の間の任意の IP アドレスも受け入れます。 .It 相手のアドレスとして 192.244.177.2 を使うことを希望しますが、 192.244.176.0 から 192.244.191.255 の間の任意の IP アドレスも許可します。 .It すでにお気づきと思いますが、 192.244.177.2 は 192.244.177.2/32 と書くことと 等価です。 .It 例外として、0 は 0.0.0.0/0 と等価であり、希望する IP アドレスは 特に無く、リモート接続先の選択に従うことを意味します。 0 を使用した場合は、接続が確立するまで、経路表のエントリは まったく設定されません。 .It 192.244.177.2/0 は、どんな IP アドレスでも受け入れる/許可することを 意味しますが、最初に 192.244.177.2 を使うように提案します。 .El .Sh インターネットサービスプロバイダと接続する プロバイダに接続する際には、次のステップを踏む必要があるでしょう: .Bl -enum .It .Dq set phone コマンドを使って、ダイヤルスクリプトにプロバイダの電話番号を記述します。 ダイヤルやリダイヤルに使用する電話番号は、 パイプ .Pq Dq \&| またはコロン .Pq Dq \&: で区切って複数指定することができます。例えば、次のようになります: .Bd -ragged -offset indent .No set phone Ar telno Ns Xo .Oo \&| Ns Ar backupnumber .Oc Ns ... Ns Oo : Ns Ar nextnumber .Oc Ns ... .Xc .Ed .Pp 最初のパイプで区切られたリストの番号は、 直前の番号でダイヤルもしくはログインスクリプトが失敗した場合のみ使用されます。 コロンで区切られた番号は、直前の番号の使用によりなにが起ったのかにかかわらず、 この順番で使用されます。例えば: .Bd -literal -offset indent set phone "1234567|2345678:3456789|4567890" .Ed .Pp この場合、まず 1234567 にダイヤルしてみます。 ダイヤルもしくはログインスクリプトに失敗したら、 次は 2345678 を使用します。 しかしこれはダイヤルもしくはログインスクリプトに失敗したとき *のみ* です。 このダイヤルの後、3456789 が使用されます。 4567890 は 345689 でダイヤルもしくはログインスクリプトに失敗したときのみ 使用されます。 2345678 のログインスクリプトが失敗したとしても、次の番号は 3456789 です。 必要な数だけ、パイプとコロンを使用可能です (しかし、通常はパイプのみかコロンのみであり両方の使用はないでしょう)。 次の番号へのリダイヤルまでのタイムアウトは、すべての番号にて使用されます。 リストが終了すると、 通常のリダイヤル期間だけ待ち、 最初から再開します。 .Dq set dial コマンドの \\\\T 文字列は選択された番号で置きかえられます。 (以降を参照してください)。 .It リダイヤルに関する設定は、 .Dq set redial で行います。 例えば回線の調子が悪かったり、 (最近では それほど多くないでしょうが) プロバイダがいつも話中だったりすると、 次のように設定したくなるかもしれません: .Bd -literal -offset indent set redial 10 4 .Ed .Pp これは最初の番号にリダイヤルを行う前に 10 秒待って、 4 回までダイヤルしてみるという意味になります。 .It .Dq set dial と .Dq set login コマンドを使ってログイン手続きを記述します。 .Dq set dial コマンドはモデムと通信してプロバイダへのリンクを確立するのに使われます。 例えば、次のようになります: .Bd -literal -offset indent set dial "ABORT BUSY ABORT NO\\\\sCARRIER TIMEOUT 4 \\"\\" \e ATZ OK-ATZ-OK ATDT\\\\T TIMEOUT 60 CONNECT" .Ed .Pp このモデム「チャット」文字列の意味は次の通りです。 .Bl -bullet .It \&"BUSY" または "NO CARRIER" を受信した場合には処理を中止します。 .It タイムアウトを 4 秒にセットします。 .It 文字列の受信待ちは行いません。 .It ATZ を送信します。 .It OK の受信待ちを行います。もし 4 秒以内に受信できなければ、 もう 1 度 ATZ を送信し、OK の受信待ちを行います。 .It ATDTxxxxxxx を送信します。xxxxxxx は 上記の電話番号リストの中の、次にダイヤルする番号です。 .It タイムアウトを 60 にセットします。 .It 文字列 CONNECT の受信待ちを行います。 .El .Pp 一旦接続が確立されると、ログインスクリプトが実行されます。 このスクリプトはダイヤルスクリプトと同じスタイルで書かれますが、 パスワードが記録されないように注意してください: .Bd -literal -offset indent set authkey MySecret set login "TIMEOUT 15 login:-\\\\r-login: awfulhak \e word: \\\\P ocol: PPP HELLO" .Ed .Pp このログイン「チャット」文字列の意味は次の通りです。 .Bl -bullet .It タイムアウトを 15 秒にセットします。 .It \&"login:" の受信待ちを行います。もし受信できなければ 復改文字を送信して、再び "login:" の受信待ちを行います。 .It \&"awfulhak" を送信します。 .It \&"word:" ("Password:" プロンプトの末尾) の受信待ちを行います。 .It .Ar authkey に現在設定されている値を送信します。 .It \&"ocol:" ("Protocol:" プロンプトの末尾) の受信待ちを行います。 .It \&"PPP" を送信します。 .It \&"HELLO" の受信待ちを行います。 .El .Pp .Dq set authkey コマンドのログは特別な方法でとられます。 .Ar command または .Ar chat のログが有効な時は、実際のパスワードは記録されません。 代りに .Sq ******** が記録されます。 .Pp ログインスクリプトはプロバイダによって大きく違うものになるでしょう。 始めてそれを設定するときには .Em チャットログを有効化 することで、あなたのスクリプトが予定通りに動いているかを 調べることができます。 .It シリアル回線と通信速度を指定するためには .Dq set device と .Dq set speed を使います。例えば次のようになります。 .Bd -literal -offset indent set device /dev/cuaa0 set speed 115200 .Ed .Pp .Fx では cuaa0 が 1 つめのシリアルポートになります。 .Ox で .Nm を実行している場合には cua00 が 1 つめです。 あなたのモデムが 28800 かそれ以上のビットレートで通信することが できるなら、シリアルポートの速度には 115200 を指定しておくべきでしょう。 一般に、シリアルポートの速度はモデムの速度の約 4 倍にしておきます。 .It .Dq set ifaddr コマンドで IP アドレスを定義します。 .Bl -bullet .It プロバイダがどの IP アドレスを使っているのか知っている場合には、 それをリモートアドレス (dst_addr) として使ってください。 知らない場合には、10.0.0.2/0 か何かを使ってください (以降を参照してください)。 .It 特定の IP アドレスをプロバイダから割り当てられている場合は、 それをローカルアドレス (src_addr) として使ってください。 .It プロバイダが IP アドレスを動的に割り当てる場合は、適当に控えめで 緩やかに記述した IP アドレスをローカルアドレスに選んでください。 10.0.0.1/0 が適切でしょう。 / に続く数値は、このアドレスのうち何ビットを重視しているかを示します。 もしもクラス C のネットワーク 1.2.3.0 上のアドレスを使うことを 主張したいのなら、1.2.3.1/24 と指定することができます。 .It プロバイダがあなたが提示した最初の IP 番号を受け付ける場合、 第 3, 4 の引数に .Dq 0.0.0.0 を指定してください。 これによりプロバイダが番号を割り当てます (3 つめの引数は、 .Sq src_addr に対してデフォルトのマスクよりも制約が緩いため、無視されます)。 .El .Pp 自分の IP アドレスもプロバイダの IP アドレスも 知らない場合には、次の例のようにするとよいでしょう。 .Bd -literal -offset indent set ifaddr 10.0.0.1/0 10.0.0.2/0 0.0.0.0 0.0.0.0 .Ed .Pp .It ほとんどの場合、プロバイダはデフォルトルータでもあるでしょう。 この場合、次の行を .Pa /etc/ppp/ppp.conf に追加します。 .Bd -literal -offset indent add default HISADDR .Ed .Pp これは、 .Nm 接続先のアドレスが何であっても .Pq この例では 10.0.0.2 デフォルト経路として追加するように指示します。 この経路は .Sq スティッキー です。これは .Dv HISADDR の値が変わると、経路もそれに従って自動的に更新されるという意味です。 .Pp 以前のバージョンの .Nm では .Pa /etc/ppp/ppp.linkup ファイルにこれと似たエントリが必要でした。 .Sq スティッキー経路 の出現により、これはもはや必要ではなくなりました。 .It プロバイダが PAP/CHAP による認証を要求している場合は、 .Pa /etc/ppp/ppp.conf ファイルに次の行を追加してください: .Bd -literal -offset indent set authname MyName set authkey MyPassword .Ed .Pp デフォルトではどちらも受け付けられますので、ISP が何を要求しても大丈夫です。 .Pp PAP もしくは CHAP を使用する場合、ログインスクリプトはほとんどの場合、 必要とされないことを記述しておくべきでしょう。 .It 次のような行を加え、ISP にネームサーバアドレスを確認してください。 .Bd -literal -offset indent enable dns .Ed .Pp ローカル DNS を走らせている場合には、 .Dq resolv readonly を使わず、かつ、 .Dq resolv restore を .Pa /etc/ppp/ppp.linkdown に含めていないならば、 これを .Em やらない でください。 .Nm は単純に .Pa /etc/resolv.conf に nameserver 行を入れることで、ローカル DNS の使用を 出し抜いてしまうからです。 .El .Pp 現実の例を見たい場合には、 .Pa /usr/share/examples/ppp/ppp.conf.sample と .Pa /usr/share/examples/ppp/ppp.linkup.sample を参照してください。 ラベル pmdemand は、ほとんどのプロバイダで使用できるでしょう。 .Sh ログ機能 .Nm は次のログ情報を、 .Xr syslog 3 経由で、もしくはスクリーンに出力することができます: .Pp .Bl -tag -width XXXXXXXXX -offset XXX -compact .It Li All ロギング用ファシリティをすべて有効にします。 この場合、ログがたくさんできます。 `all' の最も一般的な使い方は、共通部分として使うことです。 この場合、すべてのファシリティを有効にしたあとで一部の ファシリティを削ったりします (`debug' や `timer' が通常は無効にするのに最適な ファシリティです)。 .It Li Async 非同期レベルパケットの 16 進ダンプ。 .It Li CBCP CBCP (CallBack Control Protocol) ログの生成。 .It Li CCP CCP パケットトレースの生成。 .It Li Chat .Sq dial , .Sq login , .Sq logout , .Sq hangup のチャットスクリプトのトレースログの生成。 .It Li Command コマンド実行のログ。 .It Li Connect 文字列 "CONNECT" を含むチャット行のログ。 .It Li Debug デバッグ情報のログ。 .It Li DNS DNS QUERY パケットのログ。 .It Li Filter ダイヤルフィルタに許可され、他のフィルタに拒否されたパケットのログ。 .It Li HDLC HDLC パケットの 16 進ダンプ。 .It Li ID0 ユーザ ID 0 で実行された全関数呼び出しを詳細に記録。 .It Li IPCP IPCP パケットトレースの生成。 .It Li LCP LCP パケットトレースの生成。 .It Li LQM LQR レポートの生成。 .It Li Phase フェーズ遷移ログの出力。 .It Li Physical 物理レベルパケットの 16 進ダンプ。 .It Li Sync 同期レベルパケットの 16 進ダンプ。 .It Li TCP/IP 全 TCP/IP パケットのダンプ。 .It Li Timer タイマ操作のログ。 .It Li TUN ログの各行に tun デバイスを含めます .It Li Warning 端末デバイスへの出力。端末が存在しない場合は、 .Dv LOG_WARNING を使用してログファイルに送ります。 .It Li Error 端末デバイスとログファイルへの出力で、 .Dv LOG_ERROR を使用します。 .It Li Alert ログファイルへの出力で、 .Dv LOG_ALERT を使用します。 .El .Pp .Dq set log コマンドで、ログの出力レベルを設定することができます。 また、複数のレベルを単一コマンドラインにて指定することも可能です。 デフォルトは、 .Dq set log Phase です。 .Pp スクリーンに直接ログを表示することも可能です。 文法は同じで、語 .Dq local が .Dq set log の直後に付くことだけが違います。 デフォルトは .Dq set log local (つまり、マスクされない警告、エラーと注意のみ出力) です。 .Pp .Dq set log Op local への最初の引数が .Sq + か .Sq - の文字で始まる場合、現在のログレベルを消去せずに修正します。例えば: .Bd -literal -offset indent PPP ON awfulhak> set log phase PPP ON awfulhak> show log Log: Phase Warning Error Alert Local: Warning Error Alert PPP ON awfulhak> set log +tcp/ip -warning PPP ON awfulhak> set log local +command PPP ON awfulhak> show log Log: Phase TCP/IP Warning Error Alert Local: Command Warning Error Alert .Ed .Pp レベル Warning, Error, Alert のメッセージログは .Dq set log Op local では制御できません。 .Pp .Ar Warning レベルは特別で、ローカルに表示可能な場合には記録されません。 .Sh シグナルハンドリング .Nm は次のシグナルを扱います: .Bl -tag -width "USR2" .It INT このシグナルを受信すると、現在の接続がもしあればそれを終了します。 .Fl auto もしくは .Fl ddial のモードではない場合、 .Nm は終了します。 .It HUP, TERM, QUIT .Nm を終了させます。 .It USR1 .Nm に既存のサーバソケットを再度オープンさせ、すべての既存の診断ポートへの接続を 取り下げます。 以前にオープン出来なかったソケットは、再度試されます。 .It USR2 .Nm に全サーバソケットを閉じさせ、すべての既存の診断ポートへの接続を 取り下げます。 再度オープンするためには、 .Dv SIGUSR1 が使用できます。 .El .Sh マルチリンク PPP .Em PPP 相手に接続するのに複数の物理的なリンクを利用したいなら、 接続相手も .Em マルチリンク PPP プロトコルを理解する必要があります。 仕様の詳細は RFC 1990 を参照してください。 .Pp 接続先は、 .Dq 終点の選択 とその .Dq 認証 ID の組み合わせによって識別されます。 これらの一方、もしくは両方を指定することができます。 最低でも片方は指定しておくことが推奨されます。 そうでないと、すべてのリンクが実際に同一のプログラムに接続されていることを 確認する方法がなくなり、 混乱してロックアップを引き起こすことがあります。 ローカルには、これらの識別変数は .Dq set enddisc と .Dq set authname コマンドを用いることで指定されます。先立って接続相手と .Sq authname (と .Sq authkey ) について合意しておく必要があります。 .Pp マルチリンクの能力は .Dq set mrru コマンド (set maximum reconstructed receive unit) を用いることで 有効になります。一度マルチリンクが有効になれば、 .Nm は接続相手とマルチリンク接続のネゴシエーションを行います。 .Pp デフォルトでは ( .Sq deflink と呼ばれる) ただ 1 つの .Sq リンク のみが有効です。さらにリンクを作成するには .Dq clone コマンドが使われます。このコマンドは既存のリンクを複製します。 それは次の点を除いてすべての性質が同じものです: .Bl -enum .It 新しいリンクは .Dq clone コマンドラインで指定された独自の名前を持ちます。 .It 新しいリンクは .Sq interactive リンクです。そのモードは次の .Dq set mode コマンドで変更することができます。 .It 新しいリンクは .Sq closed の状態にあります。 .El .Pp すべての有効なリンクのまとめは、 .Dq show links コマンドを用いて見ることができます。 .Pp 一度リンクが作成されると、コマンドの使用方法が変わります。 すべてのリンク固有のコマンドの前には、 .Dq link Ar name プレフィックスをつけて、 コマンドを適用するリンクを指定する必要があります。 .Nm は十分賢いので、 利用可能なリンクが 1 つだけの場合には、 .Dq link Ar name プレフィックスは不要です。 .Pp コマンドの中には依然としてリンクの指定なしに使用できるものがあり、それは .Sq バンドル レベルの操作を行います。たとえば、2 つ以上のリンクが存在するとき .Dq show ccp はマルチリンクレベルの CPP 設定と統計を表示し .Dq link deflink show ccp は .Dq deflink のリンクレベルの同じ情報を表示します。 .Pp これらの情報を用いて、次の設定を用いることができます: .Pp .Bd -literal -offset indent mp: set timeout 0 set log phase chat set device /dev/cuaa0 /dev/cuaa1 /dev/cuaa2 set phone "123456789" set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \\"\\" ATZ \e OK-AT-OK \\\\dATDT\\\\T TIMEOUT 45 CONNECT" set login set ifaddr 10.0.0.1/0 10.0.0.2/0 0.0.0.0 0.0.0.0 set authname ppp set authkey ppppassword set mrru 1500 clone 1,2,3 # 3 個の新規リンクを作成 - デフォルトを複製 link deflink remove # デフォルトリンクを削除 (``deflink'' という名前) .Ed .Pp すべての複製が設定の最後で行われていることに注意してください。 一般にはリンクは最初に設定され、そして複製されます。 あなたが常にすべてのリンクがアップ状態であることを望む場合には、 設定の最後に次の行を追加することができます。 .Pp .Bd -literal -offset indent link 1,2,3 set mode ddial .Ed .Pp リンクが必要に応じてダイヤルされることを望む場合には、次のコマンドを 使うことができます。 .Pp .Bd -literal -offset indent link * set mode auto .Ed .Pp 上記の .Dq set device 行を取り除き、 .Dq clone コマンドに続けて次の内容を指定することで、 リンクを特定の名前に結びつけることもできます: .Pp .Bd -literal -offset indent link 1 set device /dev/cuaa0 link 2 set device /dev/cuaa1 link 3 set device /dev/cuaa2 .Ed .Pp どのコマンドが ( .Dq link コマンドを使用した) コンテキスト (文脈) を要求し、 どのコマンドがコンテキストをオプションとし、 そしてどのコマンドがコンテキストを一切とらないかを調べるには、 .Dq help コマンドを使用します。 .Pp .Nm が接続相手と .Em マルチリンク モードでネゴシエートすると、 .Nm はローカルドメインソケットを .Pa /var/run ディレクトリに作成します。このソケットは、 リンク情報 (実際のリンクファイル記述子も含む) を、異なる .Nm の間で受け渡しするために使われます。 この機能によって、 .Nm はシリアル回線の初期制御を行う必要なしに .Xr getty 8 から、もしくは直接 .Pa /etc/gettydefs から ( .Sq pp= ケーパビリティを用いて) 実行することが可能となっています。 ひとたび .Nm がマルチリンクモードのネゴシエーションを行うと、 .Nm は自分がオープンした リンクをすでに実行されている任意の他のプロセスに渡すことができます。 すでに実行されているプロセスがない場合、 .Nm はマスタとして振る舞い、ソケットを作成し、新たな接続を待ちます。 .Sh PPP コマンドリスト この節では利用可能コマンドとその効果をリストします。 .Nm セッションで対話的に使用することも、 設定ファイルで指定することも、 .Xr pppctl 8 もしくは .Xr telnet 1 セッションで指定することも可能です。 .Bl -tag -width 2h .It accept|deny|enable|disable Ar option.... これらのディレクティブは 最初の接続においてどのように相手とネゴシエートするかを .Nm に指示します。各 .Dq option は、accept/deny および enable/disable のデフォルトを持ちます。 .Dq accept は相手がこのオプションを要求したら、ACK を送ることを意味します。 .Dq deny は相手がこのオプションを要求したら、NAK を送ることを意味します。 .Dq enable はこのオプションを当方が要求することを意味します。 .Dq disable はこのオプションを当方が要求しないことを意味します。 .Pp .Dq option は次のいずれかです: .Bl -tag -width 2h .It acfcomp デフォルト: enable かつ accept。 ACFComp はアドレスおよびコントロールフィールド圧縮 (Address and Control Field Compression) を意味します。 LCP パケット以外は通常、 アドレスフィールド 0xff (全ステーションアドレス) と 制御フィールド 0x03 (番号付けされていない情報コマンド) を持ちます。 このオプションがネゴシエートされると、これらの 2 バイトは単に送信されなくなり、 流量が少なくなります。 .Pp 詳細は .Pa rfc1662 を参照してください。 .It chap Ns Op \&05 デフォルト: disable かつ accept。 CHAP はチャレンジ交換認証プロトコル (Challenge Handshake Authentication Protocol) を意味します。 CHAP もしくは PAP (後述) のどちらか一方のみネゴシエーション可能です。 CHAP では、認証者は「チャレンジ」メッセージを相手に送ります。 相手は一方向ハッシュ関数を使用して「チャレンジ」を暗号化し、 結果を送り返します。 認証者は同じことを行い結果を比較します。 この機構の利点は、接続を介してパスワードを送らないことです。 接続が最初に確立する時にチャレンジが行われます。 更なるチャレンジが行われるかもしれません。 相手の認証を行いたい場合は、 .Dq enable chap を .Pa /etc/ppp/ppp.conf に書き、相手のエントリを .Pa /etc/ppp/ppp.secret に書く必要があります。 .Pp クライアントとして CHAP を使用する場合、 .Dq AuthName と .Dq AuthKey を .Pa /etc/ppp/ppp.conf に指定するだけで良いです。 CHAP はデフォルトで accept されます。 .Em PPP の実装によっては、チャレンジの暗号化に MD5 ではなく "MS-CHAP" を使用するものがあります。 MS-CHAP は MD4 と DES の組み合わせです。もし .Nm が DES ライブラリの存在するマシン上で構築された場合 MS-CHAP 認証要求に応答しますが、要求はしません。 .It deflate デフォルト: enable かつ accept。 このオプションは圧縮制御プロトコル (Compression Control Protocol; CCP) に deflate 圧縮を使用するか否かを決定します。 使用されるアルゴリズムは .Xr gzip 1 プログラムが使用するものと同じです。 注: .Xr pppd 8 - 多くのオペレーティングシステムで使用可能な .Em PPP の実装 - との .Ar deflate 能力についてのネゴシエーションには問題があります。 .Nm pppd (バージョン 2.3.1) が .Ar deflate 圧縮のネゴシエーションを行おうとする CCP コンフィギュレーションタイプは、 .Pa rfc1979 に規定されたタイプ .Em 26 ではなくタイプ .Em 24 であり、誤っています。 タイプ .Ar 24 は実際には .Pa rfc1975 では .Dq PPP Magna-link Variable Resource Compression と指定されています! .Nm は .Nm pppd とネゴシエートする能力がありますが、 .Dq deflate24 が .Ar enable かつ .Ar accept されている場合のみです。 .It deflate24 デフォルト: disable かつ deny。 これは .Ar deflate のバリエーションで、 .Xr pppd 8 プログラムとのネゴシエーションを許可します。 詳細は上記の .Ar deflate セクションを参照してください。 これは .Pa rfc1975 に反するため、デフォルトでは disable となっています。 .It dns デフォルト: disable かつ deny。 このオプションは DNS ネゴシエーションを許可します。 .Pp .Dq enable にすることにより、 .Nm は接続相手が .Pa /etc/resolv.conf ファイルのエントリを確認することを要求します。 もし接続相手が当方の要求に否定応答をした場合 (新しい IP アドレスを 提案したら)、 .Pa /etc/resolv.conf ファイルは更新され、新しいエントリを確認するように要求を送ります。 .Pp .Dq accept にすることにより、 .Nm は接続相手からの DNS 検索要求を拒否せずに、返答します。 .Dq set dns コマンドの使用によって上書きされていない場合には、応答は .Pa /etc/resolv.conf から採られます。 .It enddisc デフォルト: enable かつ accept。 このオプションは、終点選択値をネゴシエートするか否かを制御します。 .Dq set enddisc が使用され .Ar enddisc が enable の場合のみ、当方の選択値を送ります。 .Ar enddisc が disable の場合、相手の選択値を拒否します。 .It LANMan|chap80lm デフォルト: disable かつ accept。 この認証プロトコルの使用は勧められません。 単一の CHAP タイプ (0x80) を装って、 2 つの異った機構 (LANMan と NT) を実装することにより、 部分的に認証プロトコルを侵害しているからです。 .Dq LANMan は単純な DES 暗号化機構を使用するものであり、 CHAP 代替としては最低の安全性のものです (それでも PAP よりは安全です)。 .Pp 更なる詳細は後述の .Dq MSChap の記述を参照してください。 .It lqr デフォルト: disable かつ accept。 このオプションはリンク品質要求 (Link Quality Request) を送信する、 もしくは受け入れるかどうかを決定します。 LQR は、モデムのキャリア検出を使用せずに、リンクダウンを .Nm に決定させるプロトコルです。 LQR が enable になっていると、 .Nm は LCP 要求の一部として .Em QUALPROTO オプション (後述の .Dq set lqrperiod を参照) を送ります。 接続相手が同意した場合、両端は同意した間隔で LQR パケットを交換し、 LQM ロギングを有効にすることで、詳細なリンク品質を監視することが 可能になります。 接続相手が同意しなかった場合、 .Nm は代りに ECHO LQR 要求を 送ります。これらのパケットは興味ある情報を何も渡しませんが、 .Em 必ず 接続相手に応答しなければなりません。 .Pp LQR, ECHO LQR のいずれを用いるにせよ、 .Nm は 5 つのパケットを送ったが確認応答が無い場合、6 つ目のパケットを送らずに 回線を切断します。 メッセージを .Em PHASE レベルで記録し、回線切断の原因が接続相手にあるものとして、適当な .Dq reconnect 値を使用します。 .It mppe デフォルト: enable かつ accept。 これは、Microsoft 社の Point to Point 暗号化機構です。 MPPE の鍵のサイズは、40, 56, 128 ビットです。 .Dq set mppe コマンドを参照してください。 .It MSChapV2|chap81 デフォルト: disable かつ accept。 標準 CHAP (タイプ 0x05) と非常に似ていますが、長さ 16 バイト固定の チャレンジコードを送ることと、チャレンジコードを暗号化するのに、 標準の MD5 機構ではなく MD4, SHA-1 そして DES を混合して使用する 点が異なります。 .It MSChap|chap80nt デフォルト: disable かつ accept。 この認証プロトコルの使用は勧められません。 単一の CHAP タイプ (0x80) を装って、 2 つの異った機構 (LANMan と NT) を実装することにより、 部分的に認証プロトコルを侵害しているからです。 標準の CHAP (タイプ 0x05) に非常に良く似ていますが、 チャレンジを固定 8 バイト長で発行し、 標準の MD5 機構ではなく MD4 と DES を組み合わせてチャレンジを暗号化するところが違います。 LANman 用の CHAP タイプ 0x80 もまたサポートされています - 詳細は .Dq enable LANMan を参照してください。 .Pp .Dq LANMan と .Dq NT の両方が CHAP タイプ 0x80 を使用しますので、両方を .Dq enable にして認証者として動作するときには、 相手が誤った方のプロトコルを使用して応答した場合には、 .Nm は最大 3 回相手に再チャレンジします。 これにより、相手が両方のプロトコルを使用する機会を与えます。 .Pp 逆に、両プロトコルを .Dq enable にして .Nm が被認証者となる場合、チャレンジに答えるたびに使用プロトコルを交換します。 .Pp 注: LANMan のみが enable にされた場合、 .Xr pppd 8 (バージョン 2.3.5) は被認証者としては誤った動作を行います。 NT と LANMan の両方の応答を行いますが、 NT の応答のみ使用すべきことも指示してしまうのです。 .It pap デフォルト: disable かつ accept。 PAP はパスワード認証プロトコル (Password Authentication Protocol) を 意味します。 CHAP (前述) もしくは PAP のどちらか一方のみネゴシエーション可能です。 PAP では、ID とパスワードが相手に送られ続け、 認証されるか接続が終了されるまでこれが続きます。 これは比較的良くないセキュリティ機構です。 接続が最初に確立した時のみ実行可能です。 相手の認証を行いたい場合は、 .Dq enable pap を .Pa /etc/ppp/ppp.conf に書き、相手のエントリを .Pa /etc/ppp.secret に書く必要があります (ただし、後述の .Dq passwdauth と .Dq set radius オプションを参照)。 .Pp クライアントとして PAP を使用する場合、 .Dq AuthName と .Dq AuthKey を .Pa /etc/ppp/ppp.conf に指定するだけで良いです。 PAP はデフォルトで accept されます。 .It pred1 デフォルト: enable かつ accept。 このオプションは圧縮制御プロトコル (Compression Control Protocol; CCP) に Predictor 1 圧縮を使用するかどうかを決定します。 .It protocomp デフォルト: enable かつ accept。 このオプションは PFC (プロトコルフィールド圧縮) のネゴシエートするために使用されます。 この機構により、 プロトコルフィールド数が 2 オクテットから 1 オクテットに減ります。 .It shortseq デフォルト: enable かつ accept。 このオプションは .Nm がマルチリンクモードのネゴシエーション時に (12 ビットの) 短いシーケンス番号を要求し、そして受け入れるかどうかを決定します。 これは、当方の MMRU が設定されたときのみ (マルチリンクが有効になっているときのみ) 適用されます。 .It vjcomp デフォルト: enable かつ accept。 このオプションは Van Jacobson ヘッダ圧縮を使用するかどうかを決定します。 .El .Pp 次に示すオプションは、実際には相手とネゴシエートしません。 それゆえ accept および deny は意味を持ちません。 .Bl -tag -width 20 .It filter-decapsulation デフォルト: disable。 本オプションを enable にすると、 .Nm は UDP フレームを検査し、 .Em PPP フレームをペイロードとして持っているか否かを見ます。 これが真である場合、パケット自身に対してではなく、ペイロードに対して、 すべてのフィルタを適用します。 .Pp .Em PPP リンク上で PPPoUDP トラフィックを送りたい場合で、 UDP ラッパではなく、 実際のデータに基いて賢いことをリンクにやらせたい場合に有用です。 .Pp UDP フレームのペイロードは、如何なる方法であっても圧縮してはなりません。 圧縮した場合には、 .Nm はペイロードを解釈できません。 ですから、UDP リンクに対する .Nm の起動の際には、設定中で .Ic disable vj pred1 deflate と .Ic deny vj pred1 deflate を行なうことを推奨します。 .It idcheck デフォルト: enable。 低レベルな LCP, CCP, IPCP 設定トラフィックを交換するときに、 すべての応答の識別子フィールドはその要求の識別子フィールドと 同一であることが予定されています。デフォルトでは .Nm は予定された識別子フィールドを持たないすべての応答パケットを 捨て、それぞれのログレベルで報告します。もし .Ar idcheck が disable になっている場合、 .Nm は識別子フィールドを無視します。 .It keep-session デフォルト: disable。 .Nm がマルチリンクサーバとして動作するとき、別の .Nm インスタンスが最初に各接続を受け付けます。 リンクが (別の .Nm によって制御されている) 既存のバンドルに属すと判定すると、 .Nm はこのリンクを当該別プロセスへ移管します。 .Pp リンクが tty デバイスである場合かこのオプションが enable されている場合、 .Nm は終了せず、自己のプロセス名を .Dq session owner に変え、リンクを制御する方の .Nm が処理を完了してアイドルプロセスの方へシグナルを返すまで待ちます。 リンク資源が再利用可能であると .Nm の親がみなす結果により生じる混乱を、これにより防ぎます。 .Pp .Pa /etc/ttys にエントリがある tty デバイスの場合、別の .Xr getty 8 の開始を防ぐために、これが必要です。 .Xr sshd 8 のようなプログラムリンクの場合、子供の死による .Xr sshd 8 の終了を防ぐために、これが必要です。 .Nm は親の要件を判断できませんので (tty の場合を除く)、 状況に応じて手動で本オプションを設定する必要があります。 .It loopback デフォルト: enable。 .Ar loopback が enable の場合、 .Nm は自動的に .Em PPP インタフェースと同じ終点アドレス宛に送出されたパケットを ループバックします。 disable の場合、 .Nm がパケットを送ると、おそらく他の終点からの ICMP リダイレクトとなります。 インタフェースがデフォルト経路であるため、 ループバック経路を必要とすることを避けたい場合、 このオプションを enable にすると便利です。 .It passwdauth デフォルト: disable。 このオプションを enable にすることにより、 PAP 認証コードが呼び出し側を認証する時に、 .Pa /etc/ppp/ppp.secret ファイル中でみつからない場合、パスワードデータベース ( .Xr passwd 5 参照) を使用します。 .Pa /etc/ppp/ppp.secret は常に、最初に調べられます。 .Xr passwd 5 からパスワードを調べ、かつそのクライアントに対して IP アドレスもしくは ラベルを指定したい場合には、 .Pa /etc/ppp/ppp.secret ファイル中のクライアントのパスワードとして .Dq \&* を用いてください。 .It proxy デフォルト: disable。 このオプションを enable にすることにより、 .Nm に相手のために代理 ARP をさせます。 .Dv HISADDR と .Dv HISADDR がいるローカルネットワークの .Dv MAC アドレスを使用して、 .Nm が ARP 表に単一エントリを作成することを意味します。 これにより、 相手自身がその LAN に接続されたかのような状態で、 LAN に接続された他のマシンと相手とが 通信できるようになります。 .Dv HISADDR が LAN からのアドレスではない場合、代理エントリは作成できません。 .It proxyall デフォルト: disable。 このオプションを enable にすることにより、 .Nm に代理 ARP エントリを追加させます。 追加されるエントリは、 tun インタフェースによってルーティングされる すべてのクラス C もしくはそれ以下のサブネットの中の、全 IP アドレスです。 .Pp 代理 arp エントリは、 .Dq add コマンドによって追加されたスティッキー経路に対してのみ作成されます。( .Dq set ifaddr コマンドによって作成された) インタフェースアドレス自身に対しては、代理 arp エントリは作成されません。 .It sroutes デフォルト: enable。 .Dq add コマンドが .Dv HISADDR もしくは .Dv MYADDR という値とともに用いられると、エントリは .Sq スティック経路 リストに格納されます。 .Dv HISADDR もしくは .Dv MYADDR が変更される度に、このリストが経路表に適用されます。 .Pp このオプションを disable にすると、 スティッキー経路が適用されなくなります。 .Sq スティッキー経路 リストは依然として保守されます。 .It Op tcp Ns Xo .No mssfixup .Xc デフォルト: enable。 このオプションは、 .Nm に、TCP SYN パケットを調整するように指示し、 インタフェース MTU が許可しているサイズを受信セグメントサイズの 最大値が超えないようにします。 .It throughput デフォルト: enable。 このオプションを有効にすると、 .Nm はスループット統計を収集します。 ずれ動く 5 秒間のウィンドウにおいて入出力が検査され、 現在、最良時、総計の数値が保持されます。 このデータは関連する .Em PPP 層が終了するときに出力され、また .Dq show コマンドで表示することで得られます。スループット統計は .Dq IPCP と .Dq physical のレベルで利用可能です。 .It utmp デフォルト: enable。 通常ユーザが PAP もしくは CHAP で認証された時で、 .Nm が .Fl direct モードで実行されている時は、このユーザのエントリが utmp ファイルおよび wtmp ファイルに作成されます。 このオプションを disable にすると、 .Nm は utmp および wtmp のエントリを作成しません。 通常、 ユーザがログインしかつ認証することを要求する場合のみ必要です。 .It iface-alias デフォルト: .Fl nat が指定された場合 enable。 このオプションは、 インタフェースのアドレスを交換するのではなく、 インタフェースに新規アドレスを追加するように、 .Nm に指示します。 ネットワークアドレス変換が有効な場合のみ .Pq Dq nat enable yes 、本オプションを enable にできます。 .Pp 本オプションを enable にすると、 .Nm は古いインタフェースアドレスのトラフィックを NAT エンジン .Pq Xr libalias 3 参照 を通すようになり、( .Fl auto モードでは) 最初に PPP リンクを立ち上げたプロセスが正しく接続できるようにします。 .Pp .Dq nat enable no として NAT を disable すると、 .Sq iface-alias も disable します。 .El .Pp .It add Ns Xo .Op !\& .Ar dest Ns Op / Ns Ar nn .Op Ar mask .Op Ar gateway .Xc .Ar dest は宛先 IP アドレスです。 ネットマスクは .Ar /nn によってビット数で指定するか、もしくは .Ar mask を用いて IP 番号で指定します。 .Ar 0 0 ならびにマスクなしの .Ar 0 はデフォルト経路を意味します。 .Ar 0 の代りにシンボル名 .Ar default を使うことが可能です。 .Ar gateway は、 .Ar dest マシン/ネットワークに至る、次のホップのゲートウェイです。 詳細は .Xr route 8 コマンドを参照してください。 .Pp 宛先にシンボル名 .Sq MYADDR と .Sq HISADDR を使用可能であり、 .Ar gateway には .Sq HISADDR を使用可能です。 .Sq MYADDR はインタフェースアドレスに置き換えられ、 .Sq HISADDR はインタフェースの宛先 (相手の) アドレスに置き換えられます。 .Pp .Ar add!\& コマンド ( .Dq !\& に注意) 使用時には、経路が存在する場合には .Sq route change コマンド (詳細は .Xr route 8 参照) にて経路を更新します。 .Pp .Dq HISADDR , .Dq MYADDR , .Dq DNS0 , .Dq DNS1 のいずれかを含む経路は .Sq スティッキー と見なされます。これらはリスト (リストを見るには .Dq show ipcp コマンドを使用します) に格納され、 .Dv HISADDR .Dq MYADDR , .Dq DNS0 , .Dq DNS1 のいずれかの値が変更される度に、経路表の関連するエントリが更新されます。 この機能は .Dq disable sroutes を使用することで無効にできます。 .It allow user Ns Xo .Op s .Ar logname Ns No ... .Xc このコマンドは .Nm と設定ファイルへのアクセスを制御します。 設定ファイルのラベルと .Nm 実行モードにより、 ユーザレベルでのアクセスも可能です。 例えば、 .Fl background モードでは、ユーザ .Sq fred のみがラベル .Sq fredlabel にアクセスできるように、 .Nm を構成したいかもしれません。 .Pp ユーザ ID 0 はこれらのコマンドの対象外です。 .Bl -tag -width 2h .It allow user[s] Ar logname... デフォルトでは、ユーザ ID 0 のみが .Nm へのアクセスを許されています。 このコマンドを指定することで、 .Dq allow users が記載されているセクションに列挙されているユーザは、 そのセクションへのアクセスが可能となります。 .Sq default セクションは 常に最初にチェックされます (スタートアップ時に常にロードされる唯一の セクションです)。 あるセクションの中では、複数の .Dq allow users コマンドは、加算的です。 しかしながら、あるセクション中で許可されたユーザ群は、 .Sq default セクションで許可されたユーザ群を上書きします。 ですから、デフォルトユーザを .Sq default セクションで指定し、新しいユーザリストをあるラベルに指定することで、 あるラベル以外のすべてにアクセスを許すといったことが可能です。 .Pp ユーザ .Sq * が指定されると、全ユーザにアクセスが許されます。 .It allow mode Ns Xo .Op s .Ar mode Ns No ... .Xc デフォルトでは全 .Nm モードが使用可能です。 このコマンドが使用されると、 このコマンドが指定されたラベルのロードに許されるアクセス .Ar mode が制限されます。 .Dq allow users コマンドと同様、 各 .Dq allow modes コマンドは先行するコマンドに優先し、 .Sq default セクションは常に最初にチェックされます。 .Pp 使用可能なモードは次の通りです: .Sq interactive , .Sq auto , .Sq direct , .Sq dedicated , .Sq ddial , .Sq background , .Sq * 。 .Pp マルチリンクモードで動作するときには、 現在存在する回線モードを許可するセクションをロード可能です。 .El .Pp .It nat Ar command Op Ar args このコマンドは .Nm 組込みのネットワークアドレス変換機能 (マスカレーディングや IP エイリアシングとしても知られています) を 制御するために使用します。 NAT は、外部インタフェースでのみ動作し、 .Fl direct フラグと共に使用してもおそらく意味がありません。 .Pp あなたのシステムで nat を有効にすると (コンパイル時に削除できます)、 次のコマンドが使用可能となります: .Bl -tag -width 2h .It nat enable yes|no このコマンドは、ネットワークアドレス変換を有効もしくは無効にします。 .Fl nat コマンドラインフラグは .Dq nat enable yes と同じ意味です。 .It nat addr Op Ar addr_local addr_alias このコマンドには、 .Ar addr_alias のデータを .Ar addr_local へリダイレクトします。 少数の実 IP アドレスを持ち、 それらをゲートウェイの後の特定のマシンにマップしたい場合に有用です。 .It nat deny_incoming Op yes|no yes に設定すると、 エイリアシングリンクがまだ存在しないところでは、 このコマンドは全パケットを拒否します。 .Dq エイリアシングリンク が何であるかについては、 .Xr libalias 3 の .Sx 概念の背景 節を参照してください。 .Pp どのような状況において .Xr libalias 3 がエイリアシングリンクを作成したか、気をつける必要があります。 .Dq set filter または .Dq nat target のコマンドを使用して、更にネットワークを保護する必要があるかもしれません。 .It nat help|? このコマンドは、使用可能な nat コマンドのまとめを表示します。 .It nat log Op yes|no このオプションは、NAT の様々な統計と情報がファイル .Pa /var/log/alias.log に記録されるようにします。 .It nat port Ar proto Ar targetIP Ns Xo .No : Ns Ar targetPort Ns .Oo .No - Ns Ar targetPort .Oc Ar aliasPort Ns .Oo .No - Ns Ar aliasPort .Oc Oo Ar remoteIP : Ns .Ar remotePort Ns .Oo .No - Ns Ar remotePort .Oc Ns .Oc .Xc このコマンドは、 .Ar aliasPort への入力の .Ar proto 接続を、 .Ar targetIP の .Ar targetPort へリダイレクトします。 .Ar proto は、 .Dq tcp または .Dq udp です。 .Pp ポート番号の範囲は、前述のように指定可能です。 範囲は同じ大きさであることが必要です。 .Pp .Ar remoteIP が指定された場合、この IP 番号から来たデータのみがリダイレクトされます。 .Ar remotePort は、 .Dq 0 (すべての送信元ポート) か、もう一方の範囲と同じ大きさのポート範囲です。 .Pp あなたのゲートウェイの後のマシンでインターネット電話等を実行したい場合に、 このオプションは有用です。 しかし、送信元ホストと宛先ポートにつき 内部マシン 1 台のみに接続可能という制限があります。 .It nat proto Ar proto localIP Oo .Ar publicIP Op Ar remoteIP .Oc このコマンドは、プロトコルタイプ .Ar proto ( Xr protocols 5 参照) のパケットを内部アドレス .Ar localIP にリダイレクトするよう .Nm に指示します。 .Pp .Ar publicIP が指定された場合、そのアドレスが宛先のパケットのみが適合し、 そうでない場合、デフォルトのエイリアスアドレスが使用されます。 .Pp .Ar remoteIP が指定された場合、その始点アドレスに適合するパケットのみが適合します。 .Pp このコマンドは、 トンネルのエンドポイントを内部マシンにリダイレクトするために有用です。 例えば次のようにします: .Pp .Dl nat proto ipencap 10.0.0.1 .It "nat proxy cmd" Ar arg Ns No ... このコマンドは、 .Nm に特定の接続に対する代理をさせ、 これらの接続を指定したサーバにリダイレクトします。 使用可能なコマンドについての詳細は .Xr libalias 3 の .Fn PacketAliasProxyRule の記述を参照してください。 .It nat same_ports yes|no 有効になると、 ネットワークアドレス変換エンジンに対して、 出力パケットのポート番号をできるだけ変更しないように指示します。 RPC や LPD といった、 ウェルノウンポート (well known port) からの接続を要求する プロトコルをサポートするのに有用です。 .It nat target Op Ar address アドレスを指定したときは、そのアドレスをターゲットアドレスとして設定し、 指定しないときは、ターゲットアドレスの設定をクリアします。 ターゲットアドレスは、デフォルトでどのように受信パケットを NAT するかを指定するために libaliases が使用します。 ターゲットアドレスが設定されていないか、または .Dq default が与えられている場合、パケットは変更されないまま内部ネットワークに ルーティングされるようになります。 .Pp ターゲットアドレスを .Dq MYADDR に設定することもでき、その場合、libaliases はすべてのパケットを 内部ネットワークにリダイレクトします。 .It nat use_sockets yes|no 有効になると、 ネットワークアドレス変換エンジンにソケットを作成させ、 正しい ftp データ入力や IRC 接続を保証できるようになります。 .It nat unregistered_only yes|no 登録されていない送信元アドレスの出力パケットのみを、変更します。 RFC1918 によると、登録されていない送信元アドレスは 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 です。 .El .Pp これらのコマンドはソース配布物の .Pa README.nat ファイル中でも議論されています。 .Pp .It Op !\& Ns Xo .No bg Ar command .Xc 指定した .Ar command を、次の語を置換した後に、バックグラウンドで実行します: .Bl -tag -width PEER_ENDDISC .It Li AUTHNAME これは、ローカルの .Ar authname の値と置き換えられます。後述の .Dq set authname コマンドを参照してください。 .It Li COMPILATIONDATE これは、 .Nm がコンパイルされた日付と置き換えられます。 .It Li DNS0 & DNS1 これは、それぞれプライマリ DNS サーバ、セカンダリ DNS サーバの IP アドレスに置き換えられます。IPCP によりネームサーバが ネゴシエーションされた場合、このマクロの値は変わります。 .It Li ENDDISC これは、ローカルの終点選択値と置き換えられます。 後述の .Dq set enddisc コマンドを参照してください。 .It Li HISADDR これは、相手の IP 番号と置き換えられます。 .It Li INTERFACE これは、使用中のインタフェース名と置き換えられます。 .It Li LABEL これは、最後に使用したラベル名と置き換えられます。 ラベルは、 .Nm のコマンドラインから .Dq load または .Dq dial のコマンドから指定するか、 .Pa ppp.secret ファイルから指定可能です。 .It Li MYADDR これは、ローカルインタフェースに割り当てられた IP 番号と置き換えられます。 .It Li PEER_ENDDISC これは、相手の終点選択番号と置き換えられます。 .It Li PROCESSID これは、現在のプロセス ID と置き換えられます。 .It Li VERSION これは、 .Nm の現在のバージョン番号と置き換えられます。 .It Li USER これは、PAP もしくは CHAP で認証されたユーザ名と置き換えられます。 通常、この変数は -direct モードでのみ割り当てられます。 この値は、utmp ロギングが有効になっているかどうかに関わらず、利用可能です。 .El .Pp これらの置換は .Dq set proctitle コマンドによっても実行されます。 .Pp コマンド実行中に .Nm を停止させたい場合は、 .Dq shell コマンドを使用してください。 .It clear physical|ipcp Op current|overall|peak... .Dq physical もしくは .Dq ipcp 階層で、指定されたスループット値をクリアします。 .Dq modem を指定する場合にはコンテキストが与えられなければなりません (後述の .Dq link コマンドを参照)。 第 2 引数が与えられない場合、すべての値がクリアされます。 .It clone Ar name Ns Xo .Op \&, Ns Ar name Ns .No ... .Xc 指定されたリンクを複製し、引数の .Ar name に関連づけた新しいリンクを作成します。 このコマンドは、リンクが 1 つしかない場合 (この場合にはそのリンクがデフォルトになります) を除いて後述の .Dq link コマンドから使用する必要があります。 リンクは下記の .Dq remove コマンドで削除できます。 .Pp デフォルトのリンク名は .Dq deflink です。 .It close Op lcp|ccp Ns Op !\& 引数が与えられないと、適切なプロトコル層がダウンし、リンクが閉じられます。 .Dq lcp が指定されると LCP 層がダウンしますが、 .Nm をオフラインにはしません。例えば .Dq slirp のようなものを使用すれば、 .Dq term (後述) を使用して相手のマシンと会話できます。 .Dq ccp が指定されると適切な圧縮層が閉じられます。 .Dq !\& が使用されると、圧縮層はクローズ状態のままとなります。 使用されない場合には、STOPPED 状態へ再度入り、 相手が更なる CCP ネゴシエーションを開始するのを待ちます。 なにが起きようとも、ユーザを .Nm から切り離すことはありませんし、 .Nm を終了させることもありません。 後述の .Dq quit を参照してください。 .It delete Ns Xo .Op !\& .Ar dest .Xc このコマンドは指定した .Ar dest IP アドレスの経路を削除します。 .Ar dest に .Sq ALL が指定された場合、 現在のインタフェースの経路表の非直接エントリと .Sq スティッキー経路 がすべて削除されます。 .Ar dest に .Sq default が指定された場合、デフォルト経路が削除されます。 .Pp .Ar delete!\& コマンドが使用された場合 (最後の .Dq !\& に注意)、存在しない経路について .Nm は文句を言わなくなります。 .It dial|call Op Ar label Ns Xo .No ... .Xc このコマンドは、 .Dq load label の次に .Dq open を指定することと同等です。後方互換性のために提供されています。 .It down Op Ar lcp|ccp 適切な階層をダウンさせますが、 綺麗な方法ではなく、下位層が使用不能になったように見えます。 オープン状態にある有限状態機械でこのコマンドを使用することは、 丁寧ではないとされています。 引数が与えられない場合、すべてのリンクが閉じられます (コンテキストが与えられない場合にはすべてのリンクが終了されます)。 .Sq lcp が指定された場合、 .Em LCP 層は終了されますが、デバイスはオフラインに移行せず、 リンクも閉じられません。 .Sq ccp が指定された場合、 関連する圧縮層のみが終了されます。 .It help|? Op Ar command 利用可能なコマンドをリストします。 .Ar command を指定した場合、このコマンドの使用方法を表示します。 .It iface add Ns Xo .Op !\& .Ar addr Ns Op / Ns Ar bits .Op Ar peer .Xc .It iface add Ns Xo .Op !\& .Ar addr .Ar mask .Ar peer .Xc このコマンドは、 .Nm が使用するインタフェースを制御します。 .Ar command は次のいずれかです: .Bl -tag -width 2h .It iface add Ns Xo .Op !\& .Ar addr Ns Op / Ns Ar bits .Op Ar peer .Xc 指定された .Ar addr mask peer の組み合わせをインタフェースに追加します。 .Ar mask を指定する代りに、 .Ar /bits を使用可能です ( .Ar addr との間に空白を入れてはなりません)。 指定したアドレスが既に存在する場合、 .Dq !\& を使用していない限りコマンドは失敗します - この場合、 以前のインタフェースアドレスエントリは新しいもので置き換えられ、 ネットマスクと相手のアドレスの変更を許します。 .Pp .Ar addr のみが指定されると、 .Ar bits はデフォルト値 .Dq 32 になり、 .Ar peer はデフォルト値 .Dq 255.255.255.255 になります。 このアドレス (ブロードキャストアドレス) は、 相手のアドレスとして複数存在することを .Nm が唯一許すものです。 .It iface clear .Nm が OPENED 状態または .Fl auto モードの場合にこのコマンドを使用すると、 IPCP ネゴシエートされたアドレス以外の全アドレスが インタフェースから削除されます。 .Nm が OPENED 状態でも .Fl auto モードでもない場合、全インタフェースアドレスが削除されます。 .Pp .It iface delete Ns Xo .Op !\& Ns .No |rm Ns Op !\& .Ar addr .Xc このコマンドは、指定した .Ar addr をインタフェースから削除します。 .Dq !\& が指定されると、現在そのアドレスがインタフェースに割り当てられていなくても、 エラーは報告されません (削除も行われません)。 .It iface show インタフェースの現在の状態と現在のアドレスを表示します。 .Dq ifconfig INTERFACE を実行することと、ほとんど同じです。 .It ident Op Ar text Ns No ... .Ar text を使用して、相手に対してリンクを自己証明 (identify) します。 .Ar text が空の場合、リンクの自己証明は無効化されます。 前述の .Ic bg コマンドに使用できる語はすべて使用可能です。 .Nm が相手に対して自己証明する場合についての詳細は、 .Ic sendident コマンドを参照してください。 .It iface help Op Ar sub-command このコマンドを .Ar sub-command 無しで起動すると、利用可能な .Dq iface サブコマンドと、おのおのの短い書式を表示します。 .Ar sub-command 付きで起動すると、指定した sub-command の書式のみを表示します。 .El .It Op data Ns Xo .No link .Ar name Ns Op , Ns Ar name Ns .No ... Ar command Op Ar args .Xc コマンドが影響を与えるリンクを特定したい場合に、このコマンドを 任意の他のコマンドのプレフィックスとして使うことができます。 これはマルチリンクモードで .Dq clone コマンドを使って複数のリンクを作成した後でのみ適用されます。 .Pp .Ar name は存在するリンク名を指定します。 .Ar name がコンマ区切りのリストの場合には、 .Ar command はそれぞれのリンクに対して実行されます。 .Ar name が .Dq * の場合には、 .Ar command はすべてのリンクに対して実行されます。 .It load Op Ar label Ns Xo .No ... .Xc .Pa ppp.conf ファイルから指定された .Dq label (複数指定可) をロードします。 .Dq label が指定されない場合、 .Dq default ラベルが仮定されます。 .Pp .Ar label セクションが .Dq set mode , .Dq open , .Dq dial のいずれのコマンドも使用しない場合、 .Nm はすぐに接続を確立しようとはしません。 .It open Op lcp|ccp|ipcp これは .Dq close の反対のコマンドです。 閉じられているリンクのうち、2 番目以降の .Ar demand-dial リンク以外、全リンクがすぐに立ち上がります - 2 番目以降の .Ar demand-dial リンクは、どのような .Dq set autoload コマンドが使用されたかに依存して立ち上ります。 .Pp LCP 層がすでにオープンされているときに .Dq lcp 引数を指定すると、LCP は再度ネゴシエートされます。 したがって、種々の LCP オプションを変更したあとで .Dq open lcp コマンドを用いることで、変更を有効にすることができます。 LCP が再度ネゴシエートされた後、 同意したあらゆる認証が実行されます。 .Pp .Dq ccp 引数が用いられると、関連する圧縮層がオープンされます。 すでにオープンされている場合には、再度ネゴシエートされます。 .Pp .Dq ipcp 引数が用いられると、リンクが通常通り起動されます。すでに IPCP が オープンされている場合には、IPCP は再度ネゴシエートされ、 ネットワークインタフェースが再設定されます。 .Pp このようにして PPP の状態機械を再オープンするのは、 おそらく良い手段ではありません。 接続相手が正しく振る舞わない可能性があるためです。 しかしながら、強制的に CCP もしくは VJ 辞書をリセットする手段としては 便利です。 .It passwd Ar pass すべての .Nm コマンドセットにアクセスするために要求されるパスワードを指定します。 このパスワードは診断ポート ( .Dq set server コマンド参照) に接続するときに必要です。 .Ar pass は .Dq set server コマンドラインで指定します。 .Ar command ログが有効でも、値 .Ar pass は記録されず、文字列 .Sq ******** が記録されます。 .It quit|bye Op all .Dq quit が制御接続もしくはコマンドファイルから実行されると、 ppp はすべての接続を閉じた後に終了します。その他の場合、 つまりユーザが診断ソケットから接続している場合には、 単にその接続が失われます。 .Pp .Ar all 引数が与えられた場合、 .Nm はコマンドがどこから発行されたかに関わらず、 すべての存在する接続を閉じて終了します。 .It remove|rm このコマンドは与えられたリンクを消去します。 これはマルチリンクモードでのみ有用です。リンクは消去する前に .Dv CLOSED 状態になっていなければなりません。 .It rename|mv Ar name このコマンドは与えられたリンクの名前を .Ar name に変更します。 .Ar name がすでに他のリンクで使用されている場合には、失敗します。 .Pp デフォルトリンクの名前は .Sq deflink です。これを .Sq modem , .Sq cuaa0 , .Sq USR のいずれかに変更すると、ログファイルの可読性が向上するかも知れません。 .It resolv Ar command このコマンドは .Nm が行なう .Xr resolv.conf 5 ファイルの操作を制御します。 .Nm の起動時に、以後の参照に備え、このファイルの内容をメモリに読み込み 保持します。 .Ar command は次のいずれかです。 .Bl -tag -width readonly .It Em readonly .Pa /etc/resolv.conf を読み込み専用とします。 .Dq dns が有効にされている場合、 .Nm は、接続相手との間でネームサーバのネゴシエーションを試みます。 ネゴシエーションの結果は、マクロ .Dv DNS0 , .Dv DNS1 を通じて利用可能となります。 このコマンドは、 .Dq resolv writable コマンドの反対です。 .It Em reload .Pa /etc/resolv.conf をメモリに再ロードします。 例えば、DHCP クライアントが .Pa /etc/resolv.conf を上書きする場合などに、このコマンドが必要になります。 .It Em restore .Pa /etc/resolv.conf を、起動時に読み込んだ元のバージョンか、もしくは .Dq resolv reload コマンドで最後に読み込んだ状態のものに戻します。 このコマンドは、 .Pa /etc/ppp/ppp.linkdown ファイルの中でうまく使えることがあります。 .It Em rewrite .Pa /etc/resolv.conf ファイルを書き換えます。 このコマンドは、 .Dq resolv readonly コマンドが既に使用されていても動作します。 他のコマンドが完了するまで .Pa /etc/resolv.conf の更新を遅らせたい場合に、 .Pa /etc/ppp/ppp.linkup の中でうまく使えることがあります。 .It Em writable .Dq dns が有効になっており、DNS の ネゴシエーションが成功した場合に、 .Nm が .Pa /etc/resolv.conf を更新できるようにします。 これは .Dq resolv readonly コマンドの反対です。 .El .It save このオプションは (まだ) 実装されていません。 .It sendident このコマンドは、 .Nm に対し、相手に対して自己証明するように指示します。 リンクは、LCP 状態以上であることが必要です。( .Ic ident コマンドによって) 自己証明の設定がなされていない場合、 .Ic sendident は失敗します。 .Pp 自己証明の設定がなされている場合、 設定拒否を送信または受信するときか、 ネゴシエーションが失敗したときか、 LCP が OPENED 状態になるときのいずれかのときに、 .Nm は自動的に自己証明します。 .Pp 受信した自己証明パケットは、LCP ログに記録し (詳細は .Ic set log を参照してください)、これに対する応答は行いません。 .It set Ns Xo .Op up .Ar var value .Xc このオプションは次に示す変数の設定のために使用します: .Bl -tag -width 2h .It set accmap Ar hex-value ACCMap は非同期制御文字マップ (Asyncronous Control Character Map) を 意味します。 これはいつも相手とネゴシエートされ、デフォルト値は 16 進数で 00000000 です。 このプロトコルが必要なのは、 (XON/XOFF などの) 特定の文字を終点間で受渡すことに依存するハードウェアを 使用する場合です。 .Pp XON/XOFF については .Dq set accmap 000a0000 を使用します。 .It set Op auth Ns Xo .No key Ar value .Xc クライアントモードでの PAP または CHAP のネゴシエーションで使用される 認証キー (もしくはパスワード) を、指定した値に設定します。 ダイヤルまたはログインスクリプトの .Sq \eP シーケンスで使用するパスワードもまた指定します。 これにより実際のパスワードは記録されません。 .Ar command または .Ar chat のログが有効な場合、セキュリティの観点から、 .Ar value は .Sq ******** として記録されます。 .Pp .Ar value の最初の文字がエクスクラメーションマーク .Pq Dq !\& の場合、 .Nm は残りの文字列を、 .Dq authname と .Dq authkey の値を確定するために実行すべきプログラムとして扱います。 .Pp 実行するプログラムを得るために .Ar value をパーズする際には、 .Dq !\& が二重 ( .Dq !!\& ) である場合、単一のリテラル .Dq !\& として扱います、そうでない場合、 .Dq !\& を無視します。また、前述の .Dq !bg コマンドと同様に特殊な名前を置換します。 プログラムを実行すると、 .Nm はこのプログラムに対して次の 3 行の入力を与えます。 各行の末尾には改行文字が置かれます。 .Bl -bullet .It CHAP チャレンジで送られたホスト名。 .It CHAP チャレンジで送られたチャレンジ文字列。 .It ローカルに定義された .Dq authname 。 .El .Pp そして、出力として次の 2 行を待ちます。 .Bl -bullet .It CHAP 応答と共に送るための .Dq authname 。 .It .Dq authkey 。これは、チャレンジと要求 ID で暗号化したもの であり、この結果は CHAP 応答パケットに含めて送られます。 .El .Pp .Nm をこのように設定するとき、 ホストチャレンジは ASCII の数値もしくは文字であることを 想定しています。 指定されたチャレンジに対する適切な秘密情報を計算するために、 通常は、暗号化デバイスまたは Secure ID カードが必要です。 .It set authname Ar id クライアントモードでの PAP または CHAP のネゴシエーションで使用される 認証 ID を設定します。 .Pp CHAP を enable にして .Fl direct モードで利用すると、 .Ar id は初期認証チャレンジで用いられ、通常はローカルマシン名に設定されます。 .It set autoload Xo .Ar min-percent max-percent period .Xc これらの設定はマルチリンクモードでのみ適用され、 デフォルト値はそれぞれ 0, 0, 5 です。 1 つ以上の .Ar demand-dial ( .Fl auto としても知られる) モードのリンクが存在する場合、 .Nm が最初に tun デバイスからデータを読むときには最初のリンクのみが 有効になっています。 次の .Ar demand-dial リンクが開かれるのは、現在のバンドルの .Ar period 秒間のスループットがバンドルの総バンド幅の最低 .Ar max-percent パーセントであるときに限られます。 現在のバンドルの .Ar period 秒間のスループットがバンドルの総バンド幅の .Ar min-percent パーセント以下に減少したとき、最後のアクティブな リンクでない場合、 .Ar demand-dial リンクはダウンします。 .Pp バンドルのスループットは、 内向きおよび外向きのトラフィックの最大値として計測されます。 .Pp デフォルト値では .Ar demand-dial リンクは 1 つだけオープンされます。 .Pp デバイスによっては物理バンド幅を判定できないものがありますので、 .Dq set autoload が正しく動作するためには、(後述の) .Dq set bandwidth コマンドを使用する必要がある場合があります。 .It set bandwidth Ar value 本コマンドは、接続のバンド幅を、秒あたりのビット数で設定します。 .Ar value は 0 より大きいことが必要です。 現在、前述の .Dq set autoload コマンドのみが使用します。 .It set callback Ar option Ns No ... 引数が与えられない場合、コールバックは disable になります。 そうでない場合には、 .Nm は与えられた .Ar option でコールバックを要求します (もしくは .Ar direct モードでは受け付けます)。 クライアントモードでは、 .Ar option の否定応答が返されると、 .Nm は他に選択肢がなくなるまで別の .Ar option 要求を出します ( .Ar option のひとつとして .Dq none を指定していた場合を除きます)。 サーバモードでは、 .Nm は与えられるプロトコルをなんでも受け付けますが、 クライアントがいずれかひとつを要求する .Em 必要があります 。コールバックをオプションにしたいのであれば、オプションとして .Ar none を指定する必要があります。 .Pp .Ar option は下記の通りです (優先度順): .Pp .Bl -tag -width Ds .It auth コールバック応答側は、認証に基づいてコールバック番号を 決定することが求められます。 .Nm がコールバック応答側である場合、番号は .Pa /etc/ppp/ppp.secret 中の接続先エントリの 5 番目のフィールドで指定されます。 .It cbcp Microsoft コールバック制御プロトコルが用いられます。後述の .Dq set cbcp を参照してください。 .Pp クライアントモードで .Ar cbcp をネゴシエートしたい場合でありかつ、 CBCP ネゴシエーション時にサーバがコールバック無しを要求することを許したい場合、 コールバックオプションとして .Ar cbcp と .Ar none の両方を指定する必要があります。 .It E.164 *| Ns Xo .Ar number Ns Op , Ns Ar number Ns .No ... .Xc コールバック要求側が .Ar number を指定します。 .Nm がコールバック応答側である場合、 .Ar number は許可する番号をコンマで区切って並べたリスト、もしくは 任意の番号を許可するという意味の .Dq \&* とします。 .Nm がコールバック要求側である場合、1 つの数字だけを指定します。 .Pp .Dq \&* を用いる場合、このオプションはとても危険なものとなることに 注意してください。 というのは、悪意あるコールバック要求者が、最初の認証なしに 電話すべき番号として任意の (国際通話番号も可能です) 番号を 伝えることができるからです。 .It none 接続相手がコールバックをまったく望まない場合、 .Nm はそのことを受け入れ、接続を終了するのではなく コールバックせずに処理を続けます。 コールバックをオプションにしたいのであれば、 (1 個以上の他のコールバックオプションに加えて) これも指定する必要があります。 .El .Pp .It set cbcp Oo .No *| Ns Ar number Ns Oo .No , Ns Ar number Ns ...\& Oc .Op Ar delay Op Ar retry .Oc 引数が与えられない場合、CBCP (Microsofts CallBack Control Protocol) は disable です。言い換えれば .Dq set callback コマンドで CBCP を設定すると .Nm が CBCP フェーズでコールバック要求を行わなくなります。 そうでない場合、 .Nm は与えられた電話番号 .Ar number を使おうとします。 .Pp サーバモード .Pq Fl direct では、 .Dq \&* を使わない限り .Nm はクライアントがこれらの番号の 1 つを使うことを主張します。 .Dq \&* を使った場合には、クライアントが番号を指定するものと想定します。 .Pp クライアントモードでは .Nm は与えられた番号 (そのうち接続相手と合意可能なもの) を使用しようとします。 .Dq \&* が指定された場合には、 .Nm 接続相手が番号を指定するものと想定します。 .It set cd Oo .No off| Ns Ar seconds Ns Op !\& .Oc 通常、オープンしたデバイスのタイプにより、 .Nm はキャリアの存在をチェックします。 .Bl -tag -width XXX -offset XXX .It 端末デバイス ログインスクリプト完了後、1 秒間キャリアがチェックされます。 このパラメータが設定されていない場合、 デバイスがキャリアをサポートしていない (ほとんどの .Dq laplink ヌルモデムケーブルの場合がそうです) と .Nm は仮定し、この事実をログに取って、キャリアのチェックを止めます。 .Pp 仮想端末 (pty) は TIOCMGET ioctl をサポートしていないため、 デバイスが仮想端末であることを検知した場合、 端末デバイスはすべてのキャリア検出をオフにします。 .It ISDN (i4b) デバイス 6 秒間、1 秒ごとに 1 回キャリアの検出を行ないます。 6 秒後にキャリアが設定されない場合、接続の試みは失敗したと見なされ、 デバイスはクローズされます。 i4b デバイスの場合、キャリアが常に要求されます。 .It PPPoE (netgraph) デバイス 5 秒間、1 秒ごとに 1 回キャリアの検出を行ないます。 5 秒後にキャリアが設定されない場合、接続の試みは失敗したと見なされ、 デバイスはクローズされます。 PPPoE デバイスの場合、キャリアが常に要求されます。 .El .Pp 他のすべてのデバイスタイプはキャリアをサポートしていません。 デバイスをオープンするときにキャリアを設定すると警告が出ます。 .Pp モデムによっては、接続が確立してからキャリア信号線がアサートされるまで 1 秒以上かかるものがあります。この遅れを増やせない場合、 .Nm はそのデバイスがキャリアをアサートできないと見なすので、 .Nm はリンクのドロップを検出できないことになります。 .Pp .Dq set cd コマンドはデフォルトのキャリアの動作を上書きします。 .Ar seconds は、ダイヤルスクリプトが完了してからキャリアが利用可能か判断する前に、 .Nm が待つべき秒数の上限を指定します。 .Pp .Dq off が指定されると、 .Nm はデバイスのキャリアを確認しません。そうでない場合、 キャリアが検出されるか .Ar seconds の秒数が経過するまで、 .Nm はログインスクリプトへは進みません。このとき、 .Ar seconds の秒数が経過した時点で、 .Nm はデバイスがキャリアを設定できないと想定します。 .Pp 引数を与えない場合、キャリア設定はデフォルトの値に戻ります。 .Pp .Ar seconds の直後にエクスクラメーションマーク .Pq Dq !\& がある場合、 .Nm はキャリアを .Em 要求 します。 .Ar seconds 秒後にキャリアが検知されないと、リンクは切断されます。 .It set choked Op Ar timeout これは .Nm がすべての未送出パケットを破棄する前に 送出キュー詰まりを保持する秒数を設定します。 .Ar timeout が 0 以下もしくは .Ar timeout が指定されない場合、デフォルト値の .Em 120 秒 に設定されます。 .Pp 送出キュー詰まりは .Nm がローカルネットワークから特定の数の送出パケットを読み込んだが、 リンク失敗 (接続相手がビジーなど) のためにデータを送れない場合に 発生します。 .Nm はパケットを無限には読み込みません。代りに .Em 30 パケット (マルチリンクモードでは .Em 30 No + .Em nlinks No * .Em 2 パケット) まで読み込み、 .Ar timeout 秒経過するか、1 つ以上のパケットが送られるまで ネットワークインタフェースの読み込みを停止します。 .Pp .Ar timeout 秒が経過すると、すべての未送出パケットは破棄されます。 .It set ctsrts|crtscts on|off ハードウェアフロー制御をセットします。 デフォルトではハードウェアフロー制御は .Ar on です。 .It set deflate Ar out-winsize Op Ar in-winsize DEFLATE アルゴリズムの、 デフォルトの出力ウィンドウサイズと入力ウィンドウサイズを設定します。 .Ar out-winsize および .Ar in-winsize は、 .Em 8 から .Em 15 までの値をとる必要があります。 .Ar in-winsize が指定されると、 .Nm はこのウィンドウサイズの使用を強要し、相手が他の値を示しても受け入れません。 .It set dns Op Ar primary Op Ar secondary .Dq accept dns コマンドで使用される、DNS 上書きを設定します。 詳細については前述の .Dq accept コマンドの記述を参照してください。本コマンドは .Dq enable dns を使用して要求される IP 番号には影響を与えません。 .It set device|line Xo .Ar value Ns No ... .Xc .Nm が使用するデバイスを、指定された .Dq value に設定します。 .Pp すべての ISDN デバイスとシリアルデバイスの名前は .Pa /dev/ から始まることが仮定されています。 ISDN デバイスは通常 .Pa i4brbchX という名前であり、シリアルデバイスは通常 .Pa cuaXX という名前です。 .Pp .Dq value が .Pa /dev/ から始まらない場合、エクスクラメーションマーク .Pq Dq !\& から始めるか、 .No PPPoE: Ns Ar iface Ns Xo .Op \&: Ns Ar provider Ns .Xc の形式 ( .Xr netgraph 4 が有効なシステム上) であるか、 .Sm off .Ar host : port /tcp|udp .Sm on の形式である必要があります。 .Pp エクスクラメーションマークで始まる場合、 デバイス名の残りはプログラム名として扱われ、 そのデバイスがオープンされるときにそのプログラムが実行されます。 標準入出力およびエラーは .Nm にフィードバックされ、それらが通常デバイスであるかのように読み書きされます。 .Pp .No PPPoE: Ns Ar iface Ns Xo .Op \&: Ns Ar provider Ns .Xc 指定が与えられる場合、 .Nm は、指定された .Ar iface インタフェースを使用して .Em PPP オーバイーサネット接続を作成しようとします。 この際 .Xr netgraph 4 を使用します。 .Xr netgraph 4 が使用不能の場合、 .Nm は .Xr kldload 2 を使用してロードしようとします。 これが失敗する場合には、 .Ox で利用できる .Xr pppoe 8 のような外部プログラムを使用する必要があります。 与えられた .Ar provider は、PPPoE Discovery Initiation (PADI) パケット中で サービス名として渡されます。 provider が与えられないと、空の値が使用されます。 .Pp PPPoE 接続が確立されるとき、 .Nm は、アクセスコンセントレータの名前を環境変数 .Va ACNAME に設定します。 .Pp さらなる詳細は .Xr netgraph 4 と .Xr ng_pppoe 4 を参照してください。 .Pp .Ar host Ns No : Ns Ar port Ns Oo .No /tcp|udp .Oc 指定が与えられる場合、 .Nm は、指定された .Ar host の指定された .Ar port と接続しようとします。 .Dq /tcp または .Dq /udp のサフィックスがない場合、デフォルトは .Dq /tcp となります。 詳細は上述の .Em PPP オーバ TCP と PPP オーバ UDP の節を参照してください。 .Pp 複数の .Dq value を指定した場合、 .Nm は成功するか全デバイスについて実行し終るまで、順番にオープンを試みます。 .It set dial Ar chat-script 相手へダイヤルする際に使用されるチャットスクリプトを指定します。 後述の .Dq set login コマンドも参照してください。 チャットスクリプトのフォーマットの詳細については、 .Xr chat 8 と設定ファイルの例を参照してください。 次の特殊な .Sq value をチャットスクリプトに指定可能です: .Bl -tag -width 2n .It \ec .Sq 送信 文字列の最後の文字として使用した場合、 改行を追加してはならないことを意味します。 .It \ed チャットスクリプトがこのシーケンスに出会うと、2 秒待ちます。 .It \ep チャットスクリプトがこのシーケンスに出会うと、1/4 秒待ちます。 .It \en 改行文字と置き換えられます。 .It \er 復改文字と置き換えられます。 .It \es 空白文字と置き換えられます。 .It \et タブ文字と置き換えられます。 .It \eT 現在の電話番号と置き換えられます (後述の .Dq set phone 参照)。 .It \eP 現在の .Ar authkey 値と置き換えられます (前述の .Dq set authkey 参照)。 .It \eU 現在の .Ar authname 値と置き換えられます (前述の .Dq set authname 参照)。 .El .Pp 2 つのパーザがこれらのエスケープシーケンスを検査することに注意してください。 .Sq チャットのパーザ にエスケープ文字を見せるには、 .Sq コマンドパーザ からエスケープする必要があります。 つまり、2 つのエスケープを使用する必要があります。例えば次のようにします: .Bd -literal -offset indent set dial "... ATDT\\\\T CONNECT" .Ed .Pp チャットスクリプトから外部コマンドを実行することもできます。 そうするためには、 受信待ち文字列または送信文字列の最初の文字をエクスクラメーションマーク .Pq Dq !\& にします。 リテラルのエクスクラメーションマークが必要な場合には、二重 .Dq !!\& にすれば、単一のリテラル .Dq !\& として扱われます。 コマンドが実行されると、標準入力と標準出力がオープンデバイス ( .Dq set device 参照) に向けられ、標準エラー出力が .Nm に読まれて受信待ち文字列もしくは送信文字列に置き換えられます。 .Nm が対話モードで実行されている場合、ファイル記述子 3 は .Pa /dev/tty に接続されます。 .Pp 例えば (読み易さのために折り返しています); .Bd -literal -offset indent set login "TIMEOUT 5 \\"\\" \\"\\" login:--login: ppp \e word: ppp \\"!sh \\\\-c \\\\\\"echo \\\\-n label: >&2\\\\\\"\\" \e \\"!/bin/echo in\\" HELLO" .Ed .Pp は次のチャットシーケンスになります (ダイヤル前の .Sq set log local chat コマンドによる出力): .Bd -literal -offset indent Dial attempt 1 of 1 dial OK! Chat: Expecting: Chat: Sending: Chat: Expecting: login:--login: Chat: Wait for (5): login: Chat: Sending: ppp Chat: Expecting: word: Chat: Wait for (5): word: Chat: Sending: ppp Chat: Expecting: !sh \\-c "echo \\-n label: >&2" Chat: Exec: sh -c "echo -n label: >&2" Chat: Wait for (5): !sh \\-c "echo \\-n label: >&2" --> label: Chat: Exec: /bin/echo in Chat: Sending: Chat: Expecting: HELLO Chat: Wait for (5): HELLO login OK! .Ed .Pp 複数レベルのネストについて、 エスケープ文字の使用方法に (再度) 注意してください。 ここでは、4 つのパーザが動作してます。 1 番目は、オリジナルの行をパーズし、3 つの引数として読みます。 2 番目は、第 3 引数を 11 個の引数として読みます。 ここで、 .Dq \&- 記号がエスケープされていることが重要です。 そうでなければパーザは、 受信待ち-送信-受信待ちのシーケンスとして見てしまいます。 .Dq !\& 文字を見付けると、実行パーザは最初のコマンドを 3 つの引数として読み、 .Xr sh 1 自身が .Fl c 以降の引数を展開します。 我々は出力をモデムに送り返したいので、 1 番目の例では出力をファイル記述子 2 (stderr) にリダイレクトして .Nm 自身に送信および記録させ、 2 番目の例では単に stdout に出力して直接モデムに出力させます。 .Pp もちろん全体を、組み込みのものではなく外部の .Dq chat コマンドに実行させることが可能です。 良い代替方法については .Xr chat 8 を参照してください。 .Pp 実行される外部コマンドは、 .Dq !bg コマンドと同様に、特殊語の展開対象となります。 .It set enddisc Op label|IP|MAC|magic|psn value このコマンドは、ローカル終点の選択値を設定します。 LCP ネゴシエーションの前に設定された場合であり、 .Dq disable enddisc コマンドを使用していない場合、 .Nm は LCP 終点選択値オプションを使用して、相手に情報を送ります。 次の選択値を設定可能です。 .Bl -tag -width indent .It Li label 現在のラベルが使用されます。 .It Li IP 当方のローカル IP 番号を使用します。 LCP は IPCP より前にネゴシエートされますので、 IPCP 層が後からこの値を変更することが可能です。 その場合、手動でリセットしない限り、終点の選択値は古い値のままとなります。 .It Li MAC 前述の .Ar IP オプションに似ていますが、 ローカル IP 番号に関係する MAC アドレスが使用される点が異なります。 ローカル IP 番号がどのイーサネットインタフェースにも存在しない場合、 本コマンドは失敗します。 .Pp ローカル IP 番号のデフォルトは、 マシンホスト名がなんであれ、その名前になりますので、通常 .Dq set enddisc mac を .Dq set ifaddr コマンドよりも先に実行します。 .It Li magic 20 桁の乱数が使用されます。 マジックナンバを使用するときには注意が必要です。 .Nm の再開や別の .Nm を使ったリンク作成においては、別のマジックナンバを使用するため、 同じバンドルに属すとは相手に認識されないのです。 このため、 .Fl direct 接続では使えません。 .It Li psn Ar value 指定された .Ar value が使用されます。 .Ar value は、絶対的な公衆スイッチネットワーク番号の先頭に 国コードを付けたものであるべきです。 .El .Pp 引数が与えられない場合、終点の選択値はリセットされます。 .It set escape Ar value... このオプションは前述の .Dq set accmap オプションに似ています。 リンクを経由する時に .Sq エスケープ される文字を指定するために使用します。 .It set filter dial|alive|in|out Ar rule-no Xo .No permit|deny|clear| Ns Ar rule-no .Op !\& .Oo Op host .Ar src_addr Ns Op / Ns Ar width .Op Ar dst_addr Ns Op / Ns Ar width .Oc [ tcp|udp|ospf|ipip|igmp|icmp Op src lt|eq|gt Ar port .Op dst lt|eq|gt Ar port .Op estab .Op syn .Op finrst .Op timeout Ar secs ] .Xc .Nm は 4 つのフィルタセットをサポートします。 .Em alive フィルタは接続を活性状態に保つパケットを指定します - アイドルタイマをリセットします。 .Em dial フィルタは、 .Fl auto モード時に .Nm にダイヤルさせるパケットを指定します。 .Em in フィルタは、マシンに入力可能なパケットを指定します。 .Em out フィルタは、マシンから出力可能なパケットを指定します。 .Pp フィルタリングが行われるのは、 出力パケットでは NAT エンジンによる IP 変更前であり、 入力パケットでは NAT エンジンによる IP 変更後です。 デフォルトでは、すべての空のフィルタセットは全パケットの通過を許可します。 ルールは .Ar rule-no に従って順番に処理されます (ルール番号を .Ar action に指定してスキップする場合を除きます)。 各セットに対し 40 までのルールを指定可能です。 指定されるセットにおけるどのルールにもマッチしないパケットは破棄されます。 .Em in と .Em out のフィルタでは、パケットをドロップすることを意味します。 .Em alive フィルタでは、アイドルタイマをリセットしないことを意味します (これは .Ar in Ns No / Ns Ar out フィルタが .Dq timeout 付きである場合でもです)。 .Em dial フィルタではダイヤルさせることにはならないことを意味します。 ダイヤルを引き起こさないパケットは、 キューされるのではなく、捨てられることに注意してください。 上述の .Sx パケットのフィルタリング の節を参照してください。 .It set hangup Ar chat-script デバイスを閉じる前にこれをリセットする時に使用する、 チャットスクリプトを指定します。 通常は不要であるべきですが、 閉じる時に自己を正しくリセットできないデバイスに対して使用できます。 .It set help|? Op Ar command 利用可能な set コマンドのまとめを表示するか、 .Ar command が指定されると、コマンドの使用方法を表示します。 .It set ifaddr Oo Ar myaddr Ns .Op / Ns Ar \&nn .Oo Ar hisaddr Ns Op / Ns Ar \&nn .Oo Ar netmask .Op Ar triggeraddr .Oc Oc .Oc このコマンドは、IPCP ネゴシエーションの間使用される IP アドレスを指定します。 アドレスのフォーマットは次の通りです。 .Pp .Dl a.b.c.d/nn .Pp ここで .Dq a.b.c.d は希望する IP アドレスであり、 .Ar nn はこのうち何ビットが有効であるかを示します。 .No / Ns Ar nn が省略された場合、デフォルトの .Dq /32 になります。 ただし IP アドレスが 0.0.0.0 である場合には、マスクのデフォルトは .Dq /0 です。 .Pp 相手に動的な IP 番号を割り当てたい場合、 .Ar hisaddr に IP 番号の範囲として .Bd -ragged -offset indent .Ar \&IP Ns Oo \&- Ns Ar \&IP Ns Xo .Oc Ns Oo , Ns Ar \&IP Ns .Op \&- Ns Ar \&IP Ns .Oc Ns ... .Xc .Ed .Pp のフォーマットを指定できます。例えば: .Pp .Dl set ifaddr 10.0.0.1 10.0.1.2-10.0.1.10,10.0.1.20 .Pp は .Dq 10.0.0.1 のみをローカル IP 番号としてネゴシエートしますが、 指定された 10 個の IP 番号から 相手に割り当てを行います。 相手がこれらの番号のうちの 1 つを要求し、この番号が未使用な場合には、 .Nm は相手の要求を認めます。 相手がリンクを再確立して前回割り当てていた IP 番号を使用したい場合に有用です (既存の TCP と UDP の接続を保存します)。 .Pp 相手が要求した IP 番号が範囲外もしくは使用中の場合、 .Nm は範囲内の未使用 IP 番号をランダムに指示します。 .Pp .Ar triggeraddr が指定された場合、この値が .Ar myaddr の代りに IPCP ネゴシエートで使用されます。 ただし、 .Ar myaddr の範囲のアドレスのみ受け入れられます。 これが有用なのは、相手が .Dq 0.0.0.0 を要求しない限り IP アドレスを割り当てようとしない .Dv PPP 実装とネゴシエートするときです。 .Pp .Fl auto モードでは設定ファイルの .Dq set ifaddr 行を読んだ直後に .Nm がインタフェースを構成することに注意してください。 他のモードではこれらの値は IPCP ネゴシエーションで使用され、 IPCP 層がアップするまでこれらのインタフェースは構成されません。 .Pp (PAP か CHAP が .Dq enable である場合) クライアントが自己証明をした後では、 .Ar HISADDR 引数は .Pa ppp.secret ファイルの第 3 引数で上書きされうることに注意してください。 .Sx 内向き接続の認証 の節を参照してください。 .Pp どの場合でも、インタフェースが既に構成されている場合には、 .Nm はインタフェースの IP 番号を保存して、 既にバインドされているソケットが正しいままであるようにします。 .It set ifqueue Ar packets どのリンクへもデータが送信できない状態のとき、 .Nm がトンネルインタフェースから読み込むパケット数の最大値を 指定します。 .Nm が利用できるリンクの束よりもトンネルインタフェースがはるかに 高速となりそうな場合に、送出データのフロー制御のために このキューの制限は必要になります。 .Ar packets にリンクの数よりも小さな値を設定した場合、 その設定に関わらず .Nm はリンクの数までは読み込みます。これにより、遅延の問題が回避されます。 .Pp .Ar packets のデフォルトの値は .Dq 30 です。 .It set ccpretry|ccpretries Oo Ar timeout .Op Ar reqtries Op Ar trmtries .Oc .It set chapretry|chapretries Oo Ar timeout .Op Ar reqtries .Oc .It set ipcpretry|ipcpretries Oo Ar timeout .Op Ar reqtries Op Ar trmtries .Oc .It set lcpretry|lcpretries Oo Ar timeout .Op Ar reqtries Op Ar trmtries .Oc .It set papretry|papretries Oo Ar timeout .Op Ar reqtries .Oc これらのコマンドは .Nm が有限状態機械 (Finite State Machine; FSM) に要求パケットを送る前に 待つ秒数を指定します。 .Ar timeout のデフォルトは、全 FSM において 3 秒です (ほとんどの場合十分です)。 .Pp .Ar reqtries を指定すると、 相手から応答を受信しなくても諦めるまでに設定要求を作成する回数を、 .Nm に指示します。 デフォルトの試行回数は、CCP, LCP, IPCP の場合 5 回であり、 PAP と CHAP の場合 3 回です。 .Pp .Ar trmtries を指定すると、 相手の応答を待つことを諦めるまでに終了要求を作成する回数を、 .Nm に指示します。 デフォルトの試行回数は 3 回です。 認証プロトコルは終了されませんので、 PAP や CHAP に対して指定することは不正です。 .Pp 合意できない相手とのネゴシエーションを避けるために、 どのようなネゴシエーションセッションであっても諦めたり層をクローズする前には、 .Nm は最大で .Ar reqtries の設定値の 3 倍までのみ送信します。 .It set log Xo .Op local .Op +|- Ns .Ar value Ns No ... .Xc このコマンドにより現在のログレベルを修正できます。 詳細はログ機能の節を参照してください。 .It set login chat-script この .Ar chat-script はダイヤルスクリプトを補います。 もし両方が指定された場合、ダイヤルスクリプトの後で、 ログインスクリプトが実行されます。 ダイヤルスクリプト中で使用可能なエスケープシーケンスはここでも使用可能です。 .It set logout Ar chat-script このコマンドは、 ハングアップスクリプトが呼ばれる前にログアウトのために使用される、 チャットスクリプトを指定します。 通常では必要ないでしょう。 .It set lqrperiod Ar frequency このコマンドは、 .Em LQR または .Em ECHO LQR のパケットが送信される頻度 .Ar frequency を秒で指定します。デフォルトは 30 秒です。 相手に LQR 要求を送りたい場合には、 .Dq enable lqr コマンドもまた使用する必要があります。 .It set mode Ar interactive|auto|ddial|background 指定したリンクにおけるモード .Sq mode を変更できます。通常マルチリンクモードでのみ有用ですが、 単一リンクモードでも使用可能です。 .Pp .Sq direct または .Sq dedicated のリンクを変更することはできません。 .Pp 注: コマンド .Dq set mode auto を発行し、ネットワークアドレス変換が enable にされていた場合、後で .Dq enable iface-alias を行うと便利です。 .Nm が必要なアドレス変換を行うようにすることにより、 相手が当方に新しい (動的な) IP アドレスを割り当てたとしても、 リンクがアップすると接続のトリガとなるプロセスが接続できるようにします。 .It set mppe Op 40|56|128|* Op stateless|stateful|* 本オプションは、 MPPE のネゴシエーション時に使用する暗号パラメータを選択します。 .Dq disable mppe コマンドで、MPPE は完全に無効化可能です。 引数を指定しないと、 .Nm は、128 ビット鍵の状態有りリンクをネゴシエートしようとしますが、 相手が要求するすべてに合意します (暗号化無しも含みます)。 .Pp 引数を指定すると、MPPE の使用に .Nm は .Em 固執 し、相手が拒否するとリンクを閉じます。 .Pp 第 1 引数は、ネゴシエート中に .Nm が固執すべきビット数を指定し、第 2 引数は、 状態有りモードまたは状態無しモードのいずれに .Nm が固執すべきかを指定します。 状態無しモードでは、各パケットに応じて変更される暗号化鍵に対応し、 暗号化辞書が再インストールされます。 状態有りモードでは、 暗号化辞書は 256 パケット毎もしくはデータ喪失後に再インストールされ、 鍵は 256 パケット毎に変更されます。 状態無しモードは、効率が悪いものの、 信頼性の無いトランスポート層では良いです。 .It set mrru Op Ar value このオプションを設定すると、 マルチリンクプロトコルまたは MP としても知られる、 マルチリンク PPP ネゴシエーションを有効にします。 MRRU (Maximum Reconstructed Receive Unit) の値にはデフォルトはありません。 引数を指定しないと、マルチリンクモードは無効にされます。 .It set mru Xo .Op max Ns Op imum .Op Ar value .Xc デフォルトの MRU (最大受信単位; Maximum Receive Unit) は 1500 です。 この値を増加させた場合、相手は MTU を増加させても *かまいません*。 理論的には、デフォルトの MRU より減らすことは意味がありません。 なぜなら、 .Em PPP プロトコルでは少なくとも 1500 オクテットのパケットを 受信できなければ *ならない* からです。 .Pp .Dq maximum キーワードが使用された場合、より大きな値のネゴシエートを .Nm は拒否します。 最大 MRU は、最大でも 2048 です。 最大値を 1500 未満にすることは .Em PPP RFC 違反ですが、必要な場合もあります。 例えば、 .Em PPPoE では、ハードウェアの制約により最大が 1492 になります。 .Pp 引数を指定しないと、1500 が仮定されます。 .Dq maximum 指定時には、値の指定が必要です。 引数が指定されないと、1500 が仮定されます。 .It set mtu Xo .Op max Ns Op imum .Op Ar value .Xc デフォルトの MTU は 1500 です。 ネゴシエーション時に、(296 バイト未満でなく、最大値を越えなければ) 相手が望むいかなる MRU も受け付け可能です。 MTU が設定されると、 .Nm は .Ar value よりも小さい MRU の値を受け付けなくなります。 ネゴシエーションが完了すると、 相手がより大きな MRU を要求していたとしても、 インタフェースに対して書き込みを行う時には MTU が使用されます。 当方のパケットサイズを制限するのに有用です (よりよくバンド幅を共有できるようになりますが、 ヘッダデータが増えるというコストがかかります)。 .Pp .Dq maximum キーワードが使用された場合、より大きな値のネゴシエートを .Nm は拒否します。 最大 MTU は、最大でも 2048 です。 .Pp .Ar value を指定しないと、1500 または相手が要求した値が使用されます。 .Dq maximum 指定時には、値の指定が必要です。 .It set nbns Op Ar x.x.x.x Op Ar y.y.y.y このオプションは、相手の要求によって返される Microsoft NetBIOS ネームサーバの値を設定します。 値を指定しないと、 .Nm はそのような要求を拒否するようになります。 .It set openmode active|passive Op Ar delay デフォルトでは、 .Ar openmode は常に、1 秒の .Ar delay をもって .Ar active となります。 この場合、 .Nm は回線が設定されてから 1 秒が経過したなら いつでも LCP/IPCP/CCP のネゴシエーションを開始します。 相手がネゴシエーションを開始するのを待ちたい場合は、値 .Dq passive を使用します。 直ちにもしくは 1 秒以上待ってからネゴシエーションを開始したい場合、 .Ar delay を秒単位で指定します。 .It set parity odd|even|none|mark 回線のパリティを設定できます。デフォルト値は .Ar none です。 .It set phone Ar telno Ns Xo .Oo \&| Ns Ar backupnumber .Oc Ns ... Ns Oo : Ns Ar nextnumber .Oc Ns ... .Xc ダイヤルおよびログインのチャットスクリプトで使用される \\\\T 文字列が 置き換えられる電話番号を指定できます。 複数の電話番号をパイプ .Pq Dq \&| もしくはコロン .Pq Dq \&: で区切って指定可能です。 .Pp パイプの後の番号がダイヤルされるのは、 直前の番号へのダイヤルもしくはログインのスクリプトが失敗した場合のみです。 回線の切断の理由にかかわらず、 コロンで区切られた番号は順番に試行されます。 .Pp 複数の番号を指定した場合、接続が確立するまで .Nm はこのルールに基づいてダイヤルします。 再試行の最大値は、後述の .Dq set redial で指定します。 .Fl background モードでは各番号は最大 1 回試行されます。 .It set Op proc Ns Xo .No title Op Ar value .Xc .Xr ps 1 が表示する現在のプロセスタイトルを、 .Ar value に従って変更します。 .Ar value が指定されないと、元のプロセスタイトルが回復されます。 シェルコマンドが行うすべての語置換 (前述の .Dq bg コマンドを参照してください) は、ここでも行われます。 .Pp プロセスタイトル中に USER が必要な場合、 .Dq set proctitle コマンドは .Pa ppp.linkup 中に登場する必要があることに注意してください。 .Pa ppp.conf が実行されているときには、分からないからです。 .It set radius Op Ar config-file このコマンドは RADIUS サポートを (組み込まれていれば) 有効にします。 .Ar config-file は、 .Xr radius.conf 5 に記述されている radius クライアント設定ファイルを参照します。 PAP または CHAP が .Dq enable にされている場合、 .Nm は .Em \&N Ns No etwork .Em \&A Ns No ccess .Em \&S Ns No erver として振舞い、設定されている RADIUS サーバを使用して認証し、 .Pa ppp.secret ファイルやパスワードデータベースによる認証は行いません。 .Pp PAP と CHAP のいずれも有効になっていない場合、 .Dq set radius は効果がありません。 .Pp .Nm は、RADIUS 応答中の、次の属性を使用します: .Bl -tag -width XXX -offset XXX .It RAD_FRAMED_IP_ADDRESS 相手の IP アドレスは指定された値に設定されました。 .It RAD_FRAMED_IP_NETMASK tun インタフェースのネットマスクは指定された値に設定されました。 .It RAD_FRAMED_MTU 指定された MTU が LCP ネゴシエーションで合意された相手の MRU より 小さい場合であり、 *かつ* 設定された MTU のいずれよりも小さい場合 ( .Dq set mru コマンド参照)、 tun インタフェースの MTU は指定した値に設定されます。 .It RAD_FRAMED_COMPRESSION 受信した圧縮タイプが .Dq 1 の場合、 .Dq disable vj 設定コマンドが指定されていたとしても、IPCP ネゴシエーションにおいて .Nm は VJ 圧縮を要求します。 .It RAD_FRAMED_ROUTE 受信した文字列は、 .Ar dest Ns Op / Ns Ar bits .Ar gw .Op Ar metrics という書式であると期待します。 指定した metrics は無視されます。 .Dv MYADDR と .Dv HISADDR は、 .Ar dest と .Ar gw の正当な値として理解されます。 .Dq default を .Ar dest に使用可能であり、デフォルト経路を指定します。 .Dq 0.0.0.0 は、 .Ar dest に対する .Dq default と同じであると解釈され、 .Ar gw に対する .Dv HISADDR と同じであると解釈されます。 .Pp 例えば、戻り値 .Dq 1.2.3.4/24 0.0.0.0 1 2 -1 3 400 は 1.2.3.0/24 ネットワークへは .Dv HISADDR を介するという経路表エントリになり、 戻り値 .Dq 0.0.0.0 0.0.0.0 または .Dq default HISADDR は .Dv HISADDR 行きのデフォルト経路になります。 .Pp すべての RADIUS の経路は、 すべてのスティッキーな経路が適用された後で適用されます。 これにより、RADIUS の経路が、設定済みの経路に優先します。 これは、 .Dv MYADDR または .Dv HISADDR というキーワードを含まない RADIUS の経路にもあてはまります。 .Pp .El RADIUS サーバから受信した値は、 .Dq show bundle を使用して見られます。 .It set reconnect Ar timeout ntries (CD の喪失もしくは LQR の失敗により) 予想外の回線切断となった場合、 指定した .Ar timeout の後に接続が再確立されます。 回線は最大 .Ar ntries 回、再接続されます。 .Ar ntries のデフォルトは 0 です。 .Ar timeout に .Ar random を指定すると、1 から 30 秒の間の任意時間の停止となります。 .It set recvpipe Op Ar value ルーティングテーブルの RECVPIPE 値を設定します。 最適な値は、MTU 値を 2 倍した値を丁度越える値です。 .Ar value が指定されないまたは 0 の場合、デフォルトの、カーネルが制御する値を使用します。 .It set redial Ar secs Ns Xo .Oo + Ns Ar inc Ns .Op - Ns Ar max Ns .Oc Ns Op . Ns Ar next .Op Ar attempts .Xc .Nm に .Ar attempts 回のリダイヤルを指示できます。 1 より大きな数を指定した場合 (前述の .Ar set phone 参照)、 各番号にダイヤルする前に、 .Ar next だけ停止します。 最初の番号に戻ってダイヤル開始する前に .Ar secs だけ停止します。リテラル値 .Dq Li random を .Ar secs および .Ar next のところで使用でき、1 から 30 秒の間の任意時間の停止となります。 .Pp .Ar inc が指定されると、 .Nm が新規番号を試すたびに、この値が .Ar secs に加えられます。 .Ar secs が増加されるのは、最大 .Ar max 回だけです。 .Ar max のデフォルト値は 10 です。 .Ar attempts が経過した後でも .Ar secs の遅延は効果があるので、 すぐに手動でダイヤルしても何も起ってないように見えるかもしれません。 すぐにダイヤルする必要がある場合、 .Dq !\& を .Dq open キーワードの直後に付けます。 更なる詳細については、前述の .Dq open の記述を参照してください。 .It set sendpipe Op Ar value ルーティングテーブルの SENDPIPE 値を設定します。 最適な値は、MTU 値を 2 倍した値を丁度越える値です。 .Ar value が指定されないまたは 0 の場合、デフォルトの、カーネルが制御する値を使用します。 .It "set server|socket" Ar TcpPort Ns No \&| Ns Xo .Ar LocalName Ns No |none|open|closed .Op password Op Ar mask .Xc このコマンドは .Nm に指定したソケットもしくは .Sq 診断ポート にてコマンド接続の入力を listen するように指示します。 .Pp 語 .Ar none は .Nm に既に存在するソケットを閉じさせ、ソケット設定を消させます。 語 .Dq open は .Nm にポートを再度オープンさせます。 語 .Dq closed は .Nm にオープンしているポートを閉じさせます。 .Pp ローカルドメインソケットを指定したい場合、 .Ar LocalName に絶対ファイル名を指定します。そうしないと、TCP ポートの名前もしくは番号 であると解釈されます。 ローカルドメインソケットに使用される 8 進 umask を指定可能です。 umask の詳細については .Xr umask 2 を参照してください。TCP ポート名がどのように変換されるかについては .Xr services 5 を参照してください。 .Pp このソケットにクライアントが接続するときに使用されねばならないパスワードも 指定可能です ( 前述の .Dq passwd 変数を使用します)。 パスワードが空文字列として指定される場合、 クライアントが接続するときにパスワードを必要とされません。 .Pp ローカルドメインソケットが指定される場合、ソケット名中の最初の .Dq %d シーケンスは現在のインタフェースユニット番号で置換されます。 複数接続のために同一のプロファイルを使用したい場合に便利です。 .Pp 同様の方法で TCP ソケットの前に .Dq + 文字を付けることができます。 この場合、現在のインタフェースユニット番号が、ポート番号に加算されます。 .Pp .Nm をサーバソケットと共に使用する場合、通信機構として .Xr pppctl 8 コマンドを使用することが好ましいです。 現在 .Xr telnet 1 も使用可能ですが、将来リンク暗号化が実装されるかもしれませんので、 .Xr telnet 1 は避けてください。 .Pp 注: .Dv SIGUSR1 と .Dv SIGUSR2 は、診断ソケットと相互に作用します。 .It set speed Ar value シリアルデバイスの速度を指定します。 速度指定が .Dq sync の場合、 .Nm はデバイスを同期デバイスとして扱います。 .Pp デバイスタイプによっては、 同期または非同期のいずれかであることが分るものがあります。 これらのデバイスでは、不正な設定を上書きして、 この結果に対する警告を記録します。 .It set stopped Op Ar LCPseconds Op Ar CCPseconds このオプションが指定されると、 指定した FSM (有限状態機械; Finite State Machine) が停止状態になってから .Dq seconds で指定した秒数だけ停止したのち、 .Nm はタイムアウトします。 このオプションは、 相手が終了要求を送り我々が終了確認応答を送ったにもかかわらず 実際には接続を閉じない場合に、有用かもしれません。また、 .Dq set openmode passive を使用した場合に相手が指定時間内に Configure Request を送らないことを タイムアウト検出する場合には、便利かもしれません。 .Dq set log +lcp +ccp を使用すると、 .Nm は適切な状態遷移を記録します。 .Pp デフォルト値は 0 であり、 停止状態による .Nm のタイムアウトは発生しません。 .Pp この値は openmode の遅延 (上述の .Dq set openmode 参照) より小さくなってはなりません。 .It set timeout Ar idleseconds Op Ar mintimeout このコマンドはアイドルタイマの値を指定します。 更なる詳細については .Sx アイドルタイマの設定 というタイトルの節を参照してください。 .Pp .Ar mintimeout が指定された場合、 最短でも指定された秒数だけリンクがアップしていないと、 .Nm はアイドルアウトしません。 .It set urgent Xo .Op tcp|udp|none .Oo Op +|- Ns .Ar port .Oc No ... .Xc このコマンドは、データ転送時に .Nm が優先するポートを制御します。 デフォルトの優先 TCP ポートは、ポート 21 (ftp control), 22 (ssh), 23 (telnet), 513 (login), 514 (shell), 543 (klogin), 544 (kshell) です。 優先 UDP ポートは、デフォルトではありません。 詳細は .Xr services 5 を参照してください。 .Pp .Dq tcp も .Dq udp も指定しないと、 .Dq tcp が仮定されます。 .Pp .Ar port を指定しないと、優先ポートリストがクリアされます ( .Dq tcp または .Dq udp を指定すると、そのリストのみがクリアされます)。 最初の .Ar port 引数にプラス .Pq Dq \&+ またはマイナス .Pq Dq \&- のプレフィックスを付けた場合、現在のリストが修正されますが、 そうでない場合には、再割り当てされます。 プラスのプレフィックス付きまたはプレフィックス無しの .Ar port はリストに追加され、マイナスのプレフィックス付きの .Ar port はリストから削除されます。 .Pp .Dq none が指定された場合、優先ポートリスト全体が無効になり、 .Dv IPTOS_LOWDELAY パケットも特別扱いされなくなります。 .It set vj slotcomp on|off このコマンドは .Nm に VJ スロット圧縮をネゴシエートするか否かを指示します。 デフォルトではスロット圧縮は .Ar on です。 .It set vj slots Ar nslots このコマンドは最初の .Ar slots 番号を指定します。 .Nm は VJ 圧縮が enable されている時には、 これを使用して相手とネゴシエートします (前述の .Sq enable コマンドを参照してください)。 デフォルト値は 16 です。 .Ar nslots は .Ar 4 以上 .Ar 16 以下の値です。 .El .Pp .It shell|! Op Ar command .Ar command が指定されない場合、 .Dv SHELL 環境変数で指定されるシェルが起動されます。 そうでなければ指定された .Ar command が実行されます。 語の置換は、前述の .Dq !bg コマンドと同様の方法で行われます。 .Pp 文字 ! を使用する場合、コマンドとの間に空白が必要です。 このコマンドはフォアグラウンドで実行されることに注意してください - .Nm はプロセスが終了するまでは実行を続けません。 バックグラウンドでコマンド処理を行いたい場合には、 .Dv bg コマンドを使用してください。 .It show Ar var このコマンドを使用して、次の内容を確認できます: .Bl -tag -width 2n .It show bundle 現在のバンドル設定を表示します。 .It show ccp 現在の CCP 圧縮統計を表示します。 .It show compress 現在の VJ 圧縮統計を表示します。 .It show escape 現在のエスケープ文字を表示します。 .It show filter Op Ar name 指定したフィルタの現在のルールをリストします。 .Ar name を指定しないと、全フィルタが表示されます。 .It show hdlc 現在の HDLC 統計を表示します。 .It show help|? 利用可能な show コマンドのまとめを表示します。 .It show iface 現在のインタフェース情報 ( .Dq iface show と同じです) を表示します。 .It show ipcp 現在の IPCP 統計を表示します。 .It show layers 現在使用中のプロトコル層を表示します。 .It show lcp 現在の LCP 統計を表示します。 .It show Op data Ns Xo .No link .Xc 高レベルリンク情報を表示します。 .It show links 利用可能な論理リンクのリストを表示します。 .It show log 現在のログ値を表示します。 .It show mem 現在のメモリ統計を表示します。 .It show physical 現在の下位レベルリンク情報を表示します。 .It show mp マルチリンク情報を表示します。 .It show proto 現在のプロトコルの総計を表示します。 .It show route 現在の経路表を表示します。 .It show stopped 現在の stopped タイムアウト値を表示します。 .It show timer アクティブアラームタイマを表示します。 .It show version .Nm の現在のバージョン番号を表示します。 .El .Pp .It term 端末モードに移行します。 キーボードからタイプした文字はデバイスに送られます。 デバイスから読んだ文字はスクリーンに表示されます。 .Nm の相手が認識された時には、 .Nm は自動的にパケットモードを有効にし、コマンドモードに戻ります。 .El .Sh 更に詳細について .Bl -bullet .It 設定ファイルの例を読んでください。良い情報源です。 .It 何が利用できるかについては、 .Dq help , .Dq nat \&? , .Dq enable \&? , .Dq set \&? , .Dq show \&? コマンドを使って、オンライン情報を取得してください。 .It 次の URL に有用な情報があります: .Bl -bullet -compact .It -http://www.FreeBSD.org/FAQ/userppp.html +http://www.FreeBSD.org/doc/faq/ppp.html .It -http://www.FreeBSD.org/handbook/userppp.html +http://www.FreeBSD.org/doc/handbook/userppp.html .El .Pp .El .Sh 関連ファイル .Nm は、4 つのファイル .Pa ppp.conf , .Pa ppp.linkup , .Pa ppp.linkdown , .Pa ppp.secret を参照します。 これらのファイルは .Pa /etc/ppp に置かれます。 .Bl -tag -width 2n .It Pa /etc/ppp/ppp.conf システムのデフォルト設定ファイル。 .It Pa /etc/ppp/ppp.secret 各システム用の認証設定ファイル。 .It Pa /etc/ppp/ppp.linkup .Nm がネットワークレベルの接続を確立した時に実行されるファイル。 .It Pa /etc/ppp/ppp.linkdown .Nm がネットワークレベルの接続を閉じる時にチェックするファイル。 .It Pa /var/log/ppp.log ログとデバッグ情報のファイル。このファイル名は .Pa /etc/syslog.conf にて指定されます。詳細は .Xr syslog.conf 5 を参照してください。 .It Pa /var/spool/lock/LCK..* tty ポートをロックするためのファイル。詳細は .Xr uucplock 3 を参照してください。 .It Pa /var/run/tunN.pid tunN デバイスに接続されている .Nm プログラムのプロセス ID (pid)。 ここで .Sq N はデバイスの番号です。 .It Pa /var/run/ttyXX.if このポートで使われている tun インタフェース。 このファイルも .Fl background , .Fl auto , .Fl ddial のいずれかのモードの時のみ作成されます。 .It Pa /etc/services サービス名でポート番号が指定されている場合に、ポート番号を取得します。 .It Pa /var/run/ppp-authname-class-value マルチリンクモードでは、 相手の認証名称 .Pq Sq authname と相手の終点選択クラス .Pq Sq class と相手の終点選択値 .Pq Sq value を使用して、ローカルドメインソケットが生成されます。 終点選択値はバイナリ値であってもかまわないため、 実際のファイル名を判定するために 16 進数に変換されます。 .Pp このソケットは、別の .Nm のインスタンスとリンクを受け渡しを行うために使用します。 .El .Sh 関連項目 .Xr at 1 , .Xr ftp 1 , .Xr gzip 1 , .Xr hostname 1 , .Xr isdnd 8 , .Xr login 1 , .Xr tcpdump 1 , .Xr telnet 1 , .Xr kldload 2 , .Xr libalias 3 , .Xr libradius 3 , .Xr syslog 3 , .Xr uucplock 3 , .Xr netgraph 4 , .Xr ng_pppoe 4 , .Xr crontab 5 , .Xr group 5 , .Xr passwd 5 , .Xr radius.conf 5 , .Xr resolv.conf 5 , .Xr syslog.conf 5 , .Xr adduser 8 , .Xr chat 8 , .Xr getty 8 , .Xr inetd 8 , .Xr init 8 , .Xr named 8 , .Xr ping 8 , .Xr pppctl 8 , .Xr pppd 8 , .Xr pppoe 8 , .Xr route 8 , .Xr sshd 8 , .Xr syslogd 8 , .Xr traceroute 8 , .Xr vipw 8 .Sh 歴史 元のプログラムは .An Toshiharu OHNO Aq tony-o@iij.ad.jp が作成し、 .Fx 2.0.5 に .An Atsushi Murai Aq amurai@spec.co.jp が提出しました。 .Pp 1997 年中に .An Brian Somers Aq brian@Awfulhak.org が本格的な修正をし、 11 月に .Ox に移植されました (2.2-RELEASE の直後です)。 .Pp 1998 年初頭にマルチリンク ppp サポートが追加されたときに、 ほとんどのコードを .An Brian Somers が書き直しました。 diff --git a/ja_JP.eucJP/man/man8/route.8 b/ja_JP.eucJP/man/man8/route.8 index 9f9450c236..d0b44b9dc5 100644 --- a/ja_JP.eucJP/man/man8/route.8 +++ b/ja_JP.eucJP/man/man8/route.8 @@ -1,394 +1,396 @@ .\" Copyright (c) 1983, 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)route.8 8.3 (Berkeley) 3/19/94 -.\" %FreeBSD: src/sbin/route/route.8,v 1.17.2.7 2001/10/02 10:04:01 ru Exp % +.\" %FreeBSD: src/sbin/route/route.8,v 1.17.2.8 2002/07/24 12:55:09 ru Exp % .\" .\" $FreeBSD$ .\" .Dd June 8, 2001 .Dt ROUTE 8 .Os .Sh 名称 .Nm route .Nd マニュアルでルーティングテーブルを操作する .Sh 書式 .Nm .Op Fl dnqtv .Ar command .Oo .Op Ar modifiers .Ar args .Oc .Sh 解説 .Nm はネットワークルーティングテーブルを マニュアルで操作するユーティリティです。 通常は、 .Xr routed 8 のようなシステムルーティングテーブル管理デーモンが 保守をしているので、マニュアルでの操作は必要ありません。 .Pp .Nm ユーティリティは指定できるオプションは少数ですが、 強力なコマンド言語をサポートしています。ユーザは .Xr route 4 において解説されているプログラム可能なインタフェースを通して、 任意の要求を指定することができます。 .Pp 以下のオプションを使用可能です: .Bl -tag -width indnent .It Fl n レポートの出力において、ホスト名とネットワーク名のシンボル名での表示を 抑止します。 (シンボル名と数字によるアドレスの変換処理には時間がかかり、 またネットワークが正常に動作している必要があります。 そのため、特にネットワークの動作の修正中には、 変換処理を行なわない方が好都合かもしれません。) .It Fl v (冗長モード) 詳細な情報を出力します。 .It Fl q -全ての出力を行ないません。 +.Cm add , delete , +.Cm flush +コマンドからの全ての出力を抑制します。 .El .Pp .Nm ユーティリティでは以下の 6 つのコマンドを提供しています。 .Pp .Bl -tag -width Fl -compact .It Cm add ルートを追加します。 .It Cm flush 全てのルートを削除します。 .It Cm delete 指定されたルートを削除します。 .It Cm change ルートの属性 (ゲートウェイなど) を変更します。 .It Cm get ある宛先に対するルートを検索し、表示します。 .It Cm monitor ルーティング情報ベースの変更、ルーティング検索の失敗、 ネットワーク分割の疑いなどの情報を継続的に報告します。 .El .Pp monitor コマンドは以下の書式です。 .Pp .Bd -ragged -offset indent -compact .Nm .Op Fl n .Cm monitor .Ed .Pp flush コマンドは以下の書式です。 .Pp .Bd -ragged -offset indent -compact .Nm .Op Fl n .Cm flush .Op Ar family .Ed .Pp .Cm flush コマンドが指定されると、 .Nm は全てのゲートウェイのエントリにおけるルーティングテーブルを削除します。 アドレスファミリが .Fl osi , .Fl xns , .Fl atalk , .Fl inet6 , .Fl inet のいずれかの修飾子によって指定されている場合、 そのアドレスファミリの宛先を持つルートだけが削除されます。 .Pp その他のコマンドは以下の書式です。 .Pp .Bd -ragged -offset indent -compact .Nm .Op Fl n .Ar command .Op Fl net No \&| Fl host .Ar destination gateway .Op Ar netmask .Ed .Pp ここで .Ar destination は宛先のホストもしくはネットワークです。 .Ar gateway はパケットがルートされるべき次の中継点です。 ある特定のホストへのルートは、 .Ar destination で指定されたインターネットアドレスを解釈することによって、 ネットワークへのルートと区別されます。 オプションの修飾子 .Fl net , .Fl host が指定されると、 .Ar destination をそれぞれネットワークもしくはホストとして強制的に解釈します。 これらの修飾子がないなら、 .Ar destination に INADDR_ANY .Pq Li 0.0.0.0 の .Dq ローカルアドレス部 が含まれるか .Ar destination がネットワークのシンボル名である場合はネットワークへのルート、 その他の場合はホストへのルートと想定します。 .Ar destination は、 .Ar net Ns / Ns Ar bits の書式でも指定可能です。 .Pp 例えば、 .Li 128.32 は .Fl host Li 128.0.0.32 として解釈されます。 .Li 128.32.130 は .Fl host Li 128.32.0.130 として、 .Fl net Li 128.32 は .Li 128.32.0.0 として、 .Fl net Li 128.32.130 は .Li 128.32.130.0 として解釈されます。 .Li 192.168.64/20 は .Fl net Li 192.168.64 Fl netmask Li 255.255.240.0 として解釈されます。 .Pp .Ar destination に対する .Ar default 指定は、 .Fl net Li 0.0.0.0 と同じ意味であり、デフォルト経路です。 .Pp 宛先がゲートウェイとして動作する中継点なしで、 あるインタフェースから直接到達可能な場合、 .Fl interface 修飾子を指定しなければなりません。 この場合、指定されたゲートウェイは共通なネットワーク上の ローカルホストのアドレスとなり、 そのインタフェースが転送に使用されることを示します。 また、インタフェースが point to point 接続の場合、 インタフェースをその名前で指定できます。 この場合、ローカルやリモートのアドレスが変更されても そのルートは有効のまま残ります。 .Pp オプションの修飾子 .Fl xns , .Fl osi , .Fl atalk , .Fl link はそれに続いて指定されるアドレスが、それぞれ .Tn XNS , .Tn OSI , .Tn AppleTalk アドレスファミリである、もしくはリンクレベルのアドレスであることを指定します。 これらの場合、名前はシンボル名ではなく、 数字によって指定をおこなわなければなりません。 .Pp オプションの修飾子 .Fl netmask はネットマスクオプションつきの .Tn OSI .Tn ESIS プロトコルによるリダイレクトの効果を実現するためのものです。 つまり、ネットワークインタフェースの暗黙のネットマスクとは異なる ネットマスクをもつサブネットを手動で追加します。 (この方法によらない場合は、OSPF や ISIS ルーティングプロトコルによって 通信します。) この修飾子に続いて、アドレスパラメータ (これはネットワークマスクとして解釈されます) を指定します。 AF_INET の場合に生成される暗黙のネットワークマスクは、 このオプションを .Ar destination パラメータに続いて指定することによって、上書きすることができます。 .Pp .Dv AF_INET6 では、 .Fl mask 修飾子の代りに .Fl prefixlen 修飾子が使用可能です。IPv6 では非連続なマスクが許されないためです。 例えば .Fl prefixlen Li 32 はネットワークマスク .Li ffff:ffff:0000:0000:0000:0000:0000:0000 の使用を指定します。 prefixlen のデフォルト値は 64 であり、 集約可能 (aggregatable) アドレスと共に動作可能となっています。 ただし、 .Cm default 指定時には 0 が仮定されます。 この修飾子は .Dv AF_INET6 アドレスファミリのみで動作可能なことに注意してください。 .Pp ルートにはいくつかのフラグがあり、 そのルートを使う宛先にデータを送信する時のプロトコルの動作に 影響をおよぼします。 これらのフラグは以下の修飾子によってセット (もしくはクリア) できます。 .Bd -literal -cloning RTF_CLONING - 使用中のルートを新たにひとつ生成する。 -xresolve RTF_XRESOLVE - (外部からの検索に対して) 使用中である旨のメッ セージを発行する。 -iface ~RTF_GATEWAY - 宛先が直接到達可能。 -static RTF_STATIC - 手動でルートを追加する。 -nostatic ~RTF_STATIC - カーネルかデーモンによってルートが追加された ように振舞う。 -reject RTF_REJECT - マッチした場合に ICMP unreachable を出力する。 -blackhole RTF_BLACKHOLE - (更新中に) 何も報告せずにパケットを捨てる。 -proto1 RTF_PROTO1 - プロトコルに特有のフラグ #1 をセットする。 -proto2 RTF_PROTO2 - プロトコルに特有のフラグ #2 をセットする。 -llinfo RTF_LLINFO - プロトコルアドレスからリンクアドレスへの変換の 正当性をチェックする。 .Ed .Pp オプションの修飾子 .Fl rtt , .Fl rttvar , .Fl sendpipe , .Fl recvpipe , .Fl mtu , .Fl hopcount , .Fl expire , .Fl ssthresh によって TCP や TP4 のトランスポートレベルのプロトコルによる ルーティングのエントリ中でメインテナンスされる値の初期値を指定します。 これらは各々の修飾子の前に .Fl lock メタ修飾子を指定することによって、個別にその値をロックすることができます。 また .Fl lockrest メタ修飾子をつけることによって、 その後に続く全ての値をロックすることもできます。 .Pp .Cm change もしくは .Cm add コマンドにおいて、 .Ar destination もしくは .Ar gateway がルートを特定するのに不十分であった場合 (たとえば .Tn ISO のケースにおいて、複数のインタフェースが同じアドレスを持っているような場合)、 .Fl ifp や .Fl ifa 修飾子を使うことによって、 インタフェースやインタフェースアドレスを特定することができます。 .Pp オプションの .Fl proxy 修飾子を指定すると、 .Dv RTF_LLINFO 経路表エントリが、 .Dq 公表された (代理のみの) .Tn ARP エントリとなり、 .Xr arp 8 はそのように報告します。 .Pp .Ar destination や .Ar gateway で指定された全てのシンボル名は、まずホスト名として .Xr gethostbyname 3 を使用して検索されます。検索に失敗した場合は、その名前をネットワーク名と見なし .Xr getnetbyname 3 によって検索されます。 .Pp .Nm はルーティングソケットと新しいメッセージタイプである .Dv RTM_ADD , RTM_DELETE , RTM_GET , RTM_CHANGE を使います。 ルーティングテーブルの変更はスーパユーザのみがおこなうことができます。 .Sh 診断 .Bl -diag .It "add [host \&| network ] %s: gateway %s flags %x" 指定されたルートがテーブルに追加されました。 出力された値は .Xr ioctl 2 の呼出しの中で使われたルーティングテーブルのエントリからのものです。 指定されたゲートウェイアドレスがそのゲートウェイのプライマリアドレス ( .Xr gethostbyname 3 によって返される最初のもの) でなかった場合、 ゲートウェイアドレスがシンボル名に加えて、数字でも表示されます。 .It "delete [ host \&| network ] %s: gateway %s flags %x" 指定されたルートがテーブルから削除されました。 .It "%s %s done" .Cm flush コマンドが指定された場合、削除された各ルーティングテーブルエントリが この形式のメッセージで報告されます。 .It "Network is unreachable" 指定されたゲートウェイが直接到達可能なネットワーク上にないために、 ルートの追加に失敗しました。 hop 数が 1 であるゲートウェイを指定しなければなりません。 .It "not in table" テーブルにないエントリを削除しようとしました。 .It "routing table overflow" ルートの追加を試みましたが、システムの資源が少なく、 新しいエントリを作成するためのメモリを割り当てられませんでした。 .It "gateway uses the same route" .Cm change 操作の結果変更された経路は、そのゲートウェイが使用する経路と同一です。 次ホップのゲートウェイが別の経路から到達可能であるべきです。 .El .Pp .Ex -std .Sh 関連項目 .\".Xr esis 4 , .Xr netintro 4 , .Xr route 4 , .Xr arp 8 , .Xr IPXrouted 8 , .Xr routed 8 .\".Xr XNSrouted 8 .Sh 歴史 .Nm コマンドは .Bx 4.2 から登場しました。 .Sh バグ 最初の段落は多少 .Xr routed 8 の能力を大げさに書いています。 diff --git a/ja_JP.eucJP/man/man8/setkey.8 b/ja_JP.eucJP/man/man8/setkey.8 index 70eca8c6eb..3e9eb22b92 100644 --- a/ja_JP.eucJP/man/man8/setkey.8 +++ b/ja_JP.eucJP/man/man8/setkey.8 @@ -1,633 +1,631 @@ .\" $KAME: setkey.8,v 1.49 2001/05/18 05:49:51 sakane Exp $ -.\" %FreeBSD: src/usr.sbin/setkey/setkey.8,v 1.4.2.12 2001/08/16 15:56:32 ru Exp % +.\" %FreeBSD: src/usr.sbin/setkey/setkey.8,v 1.4.2.13 2002/08/02 07:36:33 blackend Exp % .\" .\" Copyright (C) 1995, 1996, 1997, 1998, and 1999 WIDE Project. .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. Neither the name of the project nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: doc/ja_JP.eucJP/man/man8/setkey.8,v 1.11 2001/08/10 02:12:55 horikawa Exp $ +.\" $FreeBSD$ .\" .Dd November 20, 2000 .Dt SETKEY 8 .Os .\" .Sh 名称 .Nm setkey .Nd 手動で IPsec の SA/SP データベースを操作する .\" .Sh 書式 .Nm .Op Fl dv .Fl c .Nm .Op Fl dv .Fl f Ar filename .Nm .Op Fl adPlv .Fl D .Nm .Op Fl dPv .Fl F .Nm .Op Fl h .Fl x .\" .Sh 解説 .Nm -は、カーネル内のセキュリティアソシエーションデータベース (SAD) エントリと +ユーティリティは、 +カーネル内のセキュリティアソシエーションデータベース (SAD) エントリと セキュリティポリシデータベース (SPD) エントリを、 追加・更新・内容列挙・削除します。 .Pp .Nm -は、一連の操作を標準入力から受け取るか ( +ユーティリティは、一連の操作を標準入力から受け取るか ( .Fl c 付で起動された場合) .Ar filename という名前のファイルから受け取ります ( .Fl f Ar filename 付で起動された場合)。 .Bl -tag -width Ds .It Fl D SAD エントリをダンプします。 .Fl P 付の場合、SPD エントリをダンプします。 .It Fl F SAD エントリを捨てます。 .Fl P 付の場合、SPD を捨てます。 .It Fl a -.Nm -は通常、 -.Fl D -に対し、死んだ SAD エントリを表示しません。 +通常、死んだ SAD エントリは表示されません。 .Fl a 付の場合、死んだ SAD エントリも表示します。 死んだ SAD エントリとは、期限切れではあるものの、 SPD エントリから参照されているために残っているものを指します。 .It Fl d コマンドパーザ用のデバッグメッセージ表示を有効にし、 カーネルとは対話をしません。 これは通常は使用しません。 .It Fl x 無限ループし、 .Dv PF_KEY ソケットへ送られる全メッセージをダンプします。 .Fl xx は、各タイムスタンプのフォーマットをやめます。 .It Fl h .Fl x モードにおいて、16 進数ダンプを追加します。 .It Fl l .Fl D において、短い出力で無限ループします。 .It Fl v 冗長になります。 プログラムは、 .Dv PF_KEY ソケット上で交換したメッセージをダンプします。 これには他プロセスからカーネルに送られたメッセージを含みます。 .El .Pp 操作は、次の文法です。 ハッシュマーク ('#') で始まる行は コメント行として扱われることに注意してください。 .Bl -tag -width Ds .It Xo .Li add .Ar src Ar dst Ar protocol Ar spi .Op Ar extensions .Ar algorithm... .Li ; .Xc 単一の SAD エントリを追加します。 .\" .It Xo .Li get .Ar src Ar dst Ar protocol Ar spi .Li ; .Xc 単一の SAD エントリを表示します。 .\" .It Xo .Li delete .Ar src Ar dst Ar protocol Ar spi .Li ; .Xc 単一の SAD エントリを削除します。 .\" .It Xo .Li deleteall .Ar src Ar dst Ar protocol .Li ; .Xc 指定に適合するすべての SAD エントリを削除します。 .\" .It Xo .Li flush .Op Ar protocol .Li ; .Xc オプションに適合する全 SAD エントリをクリアします。 .\" .It Xo .Li dump .Op Ar protocol .Li ; .Xc オプションに適合する全 SAD エントリをダンプします。 .\" .It Xo .Li spdadd .Ar src_range Ar dst_range Ar upperspec Ar policy .Li ; .Xc 単一の SPD エントリを追加します。 .\" .It Xo .Li spddelete .Ar src_range Ar dst_range Ar upperspec Fl P Ar direction .Li ; .Xc 単一の SPD エントリを削除します。 .\" .It Xo .Li spdflush .Li ; .Xc 全 SPD エントリをクリアします。 .\" .It Xo .Li spddump .Li ; .Xc 全 SPD エントリをダンプします。 .El .\" .Pp メタ引数は下記の通りです: .Pp .Bl -tag -compact -width Ds .It Ar src .It Ar dst セキュアコミュニケーションの始点/終点を IPv4/v6 アドレスで指定します。 .Nm -は引数 +ユーティリティは引数 .Ar src と .Ar dst について、ホスト名からアドレスへの問い合わせを行いません。 これらは数値形式で指定する必要があります。 .\" .Pp .It Ar protocol .Ar protocol は次のいずれか 1 つです: .Bl -tag -width Fl -compact .It Li esp rfc2405 を基にした暗号ペイロード .It Li esp-old rfc1827 を基にした暗号ペイロード .It Li ah rfc2402 を基にした認証ヘッダ .It Li ah-old rfc1826 を基にした認証ヘッダ .It Li ipcomp IPCOMP .El .\" .Pp .It Ar spi SAD および SPD 用の、セキュリティパラメータインデックス (SPI)。 範囲 0 から 255 の SPI 値は使用できません。 10 進数または 16 進数 .Li ( 0x 付) で指定する必要があります。 .\" .Pp .It Ar extensions 次に示す引数を受け付けます: .Bl -tag -width Fl -compact .\" .It Fl m Ar mode 使用するセキュリティプロトコルモードを指定します。 .Ar mode は次のいずれか 1 つです: .Li transport , tunnel , .Li any 。 デフォルト値は .Li any です。 .\" .It Fl r Ar size 繰り返し攻撃を防ぐためのウィンドウサイズをバイト数で指定します。 .Ar size は 32 ビットワードの 10 進数で指定する必要があります。 .Ar size が 0 または指定されなかった場合、繰り返しのチェックは行われません。 .\" .It Fl u Ar id SAD 中のポリシエントリの識別子を指定します。 .Ar policy を参照してください。 .\" .It Fl f Ar pad_option ESP パディングの内容を指定します。 .Ar pad_option は次のいずれか 1 つです: .Bl -tag -width random-pad -compact .It Li zero-pad パディングはすべて 0。 .It Li random-pad 一連の乱数値を設定。 .It Li seq-pad 1 から開始して増加する一連の数を設定。 .El .\" .It Fl f Li nocyclic-seq 周期的な順序番号を許可しません。 .\" .It Fl lh Ar time .It Fl ls Ar time SA のハード有効期間/ソフト有効期間を指定します。 .El .\" .Pp .It Ar algorithm .Bl -tag -width Fl -compact .It Fl E Ar ealgo Ar key 暗号化アルゴリズムを指定します。 .It Fl A Ar aalgo Ar key 認証アルゴリズムを指定します。 .Fl A が .Ar protocol Li esp と共に使用されると、暗号ペイロードの ペイロード認証アルゴリズムとして扱われます。 .It Fl C Ar calgo Op Fl R 圧縮アルゴリズムを指定します。 .Fl R が .Li ipcomp 行と共に指定されないと、カーネルは良く知られた (well-known) IPComp CPI (圧縮パラメータインデックス) をパケット上の IPComp CPI フィールドで使用し、 .Ar spi フィールドは無視されます。 この場合、 .Ar spi フィールドはカーネル内部でのみ使用されます。 .\"Therefore, compression protocol number will appear on IPComp CPI field. .Fl R が使用されると、 .Ar spi フィールド上の値が、出力パケットの IPComp CPI フィールドに現れます。 この場合、 .Ar spi フィールドは .Li 0x10000 未満であることが必要です。 .El .Pp .Ar protocol Li esp は .Fl E と .Fl A を受け付けます。 .Ar protocol Li esp-old は .Fl E のみを受け付けます。 .Ar protocol Li ah と .Li ah-old は .Fl A のみを受け付けます。 .Ar protocol Li ipcomp は .Fl C のみを受け付けます。 .Pp .Ar key は、ダブルクォートで括られた文字列か、 一続きの 16 進数で指定する必要があります。 .Pp .Ar ealgo , .Ar aalgo , .Ar calgo が取り得る値は別の節で規定します。 .\" .Pp .It Ar src_range .It Ar dst_range セキュアコミュニケーションの選択であり、 IPv4/v6 アドレスまたは IPv4/v6 アドレス範囲で指定します。 TCP/UDP ポート指定を付加することも可能です。 次の形式を受け付けます: .Bd -literal -offset .Ar address .Ar address/prefixlen .Ar address[port] .Ar address/prefixlen[port] .Ed .Pp .Ar prefixlen と .Ar port は 10 進数で指定する必要があります。 .Ar port の周りの角括弧は、実際に必要です。 マニュアルページのメタ文字ではありません。 .Pp .Nm -は引数 +ユーティリティは引数 .Ar src と .Ar dst について、ホスト名からアドレスへの問い合わせを行いません。 これらは数値形式で指定する必要があります。 .\" .Pp .It Ar upperspec 使用する上位層プロトコル。 .Ar upperspec として、 .Pa /etc/protocols 中の 1 語を使用可能です。 または、 .Li icmp6 , .Li ip4 , .Li any を指定可能です。 .Li any は .Dq 任意のプロトコル を意味します。 また、プロトコル番号を使用可能です。 .Pp 注: .Ar upperspec は、現時点では転送に対して機能しません。 転送ノードにおいて、追加の再構成 (現時点では未実装) が必要となるからです。 .Pa /etc/protocols には多数のプロトコルが登録されていますが、 TCP, UDP, ICMP 以外は IPSec と共に使用するには不適切かもしれません。 そのようなプロトコルの使用には、注意してください。 .\" 下記は編集ミスと思われるので KAME に連絡する .\" horikawa@jp.FreeBSD.org 2001/07/08 .\" .Li icmp .\" .Li tcp .\" .Li udp .\" すべてのプロトコル。 .\" .Pp .It Ar policy .Ar policy は次のいずれか 1 つです: .Bd -literal -offset .Xo .Fl P .Ar direction .Li discard .Xc .Xo .Fl P .Ar direction .Li none .Xc .Xo .Fl P .Ar direction .Li ipsec .Ar protocol/mode/src-dst/level .Xc .Ed .Pp ポリシの方向を .Ar direction で指定する必要があります。 .Li out または .Li in が使用されます。 .Li discard は、インデックスに適合するパケットが捨てられることを意味します。 .Li none は、パケットに対して IPsec 操作が実施されないことを意味します。 .Li ipsec は、パケットに対して IPsec 操作が実施されることを意味します。 .Li ah , .Li esp , .Li ipcomp のいずれかを、 .Ar protocol として設定します。 .Ar mode は .Li transport または .Li tunnel のいずれかです。 .Ar mode が .Li tunnel の場合、 SA の末端アドレスを、 .Ar src および .Ar dst で、両アドレス間に .Sq - を付けて指定する必要があります。 これは、使用する SA を指定するために用いられます。 .Ar mode が .Li transport の場合、 .Ar src と .Ar dst は両方省略可能です。 .Ar level は次のいずれかです: .Li default , use , require , .Li unique 。 すべてのレベルにおいて SA が利用可能でない場合、 SA 取得要求をカーネルは鍵交換デーモンに送ります。 .Li default は、カーネルがパケットを処理するとき、 指定したプロトコルについて、 システム全体のデフォルトを問い合わせることを意味します。 これは例えば sysctl 変数 .Li esp_trans_deflev を指します。 .Li use は、カーネルが SA を使用可能であれば使用し、 使用不能の場合には通常操作を続けることを意味します。 .Li require は、ポリシに適合するパケットをカーネルが送る時には いつも SA が必要であることを意味します。 .Li unique は require と同じです。 更に、ポリシが一意な外向き SA に結合することを許します。 .Li unique の後にコロン .Sq \: で区切った後に 10 進数でポリシ識別子を指定可能であり、次のようにします: .Li unique:number 。 .Li number は 1 から 32767 の範囲にあることが必要です。 これは、 .Ar extensions Fl u に対応します。 .Pp .Dq Li discard と .Dq Li none は .Xr ipsec_set_policy 3 に記述されている構文には存在しないことに注意してください。 両者の構文にはちょっとした違いがあります。 詳細は .Xr ipsec_set_policy 3 を参照してください。 .Pp .El .Pp .\" .Sh アルゴリズム 次の一覧は、サポートされているアルゴリズムを示しています。 .Sy protocol と .Sy algorithm は、ほぼ直交しています。 次に示すのは、 .Ar protocol パラメータの .Fl A Ar aalgo で .Ar aalgo として使用可能な認証アルゴリズムの一覧です: .Pp .Bd -literal -offset indent アルゴリズム 鍵長 (ビット) コメント hmac-md5 128 ah: rfc2403 128 ah-old: rfc2085 hmac-sha1 160 ah: rfc2404 160 ah-old: 128bit ICV (文書無し) keyed-md5 128 ah: 96bit ICV (文書無し) 128 ah-old: rfc1828 keyed-sha1 160 ah: 96bit ICV (文書無し) 160 ah-old: 128bit ICV (文書無し) null 0 〜 2048 デバッグ用 hmac-sha2-256 256 ah: 96bit ICV (文書無し) 256 ah-old: 128bit ICV (文書無し) hmac-sha2-384 384 ah: 96bit ICV (文書無し) 384 ah-old: 128bit ICV (文書無し) hmac-sha2-512 512 ah: 96bit ICV (文書無し) 512 ah-old: 128bit ICV (文書無し) .Ed .Pp 次に示すのは、 .Ar protocol パラメータの .Fl E Ar ealgo で .Ar ealgo として使用可能な暗号化アルゴリズムの一覧です: .Pp .Bd -literal -offset indent アルゴリズム 鍵長 (ビット) コメント des-cbc 64 esp-old: rfc1829, esp: rfc2405 3des-cbc 192 rfc2451 simple 0 〜 2048 rfc2410 blowfish-cbc 40 〜 448 rfc2451 cast128-cbc 40 〜 128 rfc2451 des-deriv 64 ipsec-ciph-des-derived-01 (期限切れ) 3des-deriv 192 文書無し rijndael-cbc 128/192/256 draft-ietf-ipsec-ciph-aes-cbc-00 .Ed .Pp 次に示すのは、 .Ar protocol パラメータの .Fl C Ar calgo で .Ar calgo として使用可能な圧縮アルゴリズムの一覧です: .Pp .Bd -literal -offset indent アルゴリズム コメント deflate rfc2394 lzs rfc2395 .Ed .\" .Sh 使用例 .Bd -literal -offset add 3ffe:501:4819::1 3ffe:501:481d::1 esp 123457 -E des-cbc "ESP SA!!" ; add 3ffe:501:4819::1 3ffe:501:481d::1 ah 123456 -A hmac-sha1 "AH SA configuration!" ; add 10.0.11.41 10.0.11.33 esp 0x10001 -E des-cbc "ESP with" -A hmac-md5 "authentication!!" ; get 3ffe:501:4819::1 3ffe:501:481d::1 ah 123456 ; flush ; dump esp ; spdadd 10.0.11.41/32[21] 10.0.11.33/32[any] any -P out ipsec esp/tunnel/192.168.0.1-192.168.1.2/require ; .Ed .\" .Sh 戻り値 本コマンドは成功時に 0 を、エラー時に 0 以外を返します。 .\" .Sh 関連項目 .Xr ipsec_set_policy 3 , .Xr racoon 8 , .Xr sysctl 8 .\" .Sh 歴史 .Nm -コマンドは WIDE Hydrangea IPv6 プロトコルスタックキットで +ユーティリティは WIDE Hydrangea IPv6 プロトコルスタックキットで はじめて登場しました。 本コマンドは 1998 年 6 月に、完全に再デザインされました。 .\" .\" .Sh BUGS