Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
ADDR2LINE(1)
ADDR2LINE(1)
FreeBSD General Commands Manual
ADDR2LINE(1)
addr2line
—
将程序地址转换为源文件名和行号
addr2line
[-a
| --addresses
] [-b
target | --target
=target] [-e
pathname | --exe
=pathname] [-f
| --functions
] [-i
| --inlines
] [-j
sectionname | --section
=sectionname] [-p
| --pretty-print
] [-s
| --basename
] [-C
| --demangle
] [-H
| --help
] [-V
| --version
] [hexaddress...]
addr2line
实用程序将命令行参数 hexaddress 指定的程序地址转换为其相应的源文件名和行号。如果没有给 addr2line
, 参数,它将从标准输入中读取这些地址。
由参数 hexaddress 指定的程序地址使用 strtoull(3) 接受的约定进行编码。
默认情况下, addr2line
将使用可执行文件 “a.out 。” -e
选项可用于指定不同的 ELF 对象。
addr2line
实用程序可识别以下选项:
行号信息之前显示地址。
此选项可被 addr2line
识别但被忽略。 支持它是为了与 GNU binutils 兼容。
使用参数 pathname 指定的 ELF 对象来转换地址。 如果未指定此选项, addr2line
将使用文件 “a.out 。”
除文件和行号信息外,还显示函数名称。
如果指定的地址属于内联函数,则还显示其调用者的行号信息,递归直到第一个非内联调用者。
-j
sectionname | --section
=sectionname
由参数 hexaddress 指定的值将被视为在名为 sectionname 的部分中的偏移量。
以人类可读的方式在一行中显示行号信息。
-s
| --basename
仅显示每个文件名的基本名称。
-C
| --demangle
去除 C++ 名称。
打印帮助信息。
打印版本标识符并退出。
如果未指定 -f
选项, addr2line
将在单独的行上为每个指定的地址打印文件名和行号。
如果指定 -f
选项, addr2line
将打印一行,其中包含对应于程序地址 hexaddress 的函数名称,然后是包含文件名和行号的行。
如果指定 -p
选项, addr2line
将以人类可读的方式在一行上打印行号信息和函数名称。如果还指定 -i
选项, addr2line
将打印以 “(inlined by) 为前缀的调用函数信息。”
addr2line
实用程序使用 “FILENAME:LINENUMBER 格式打印文件名和行号。”
如果无法确定文件或函数名, addr2line
将在其位置打印一个问号。如果无法确定行号, addr2line
将在其位置打印一个零。
要将默认可执行文件 a.out 中的地址 080483c4 映射到源文件名和行号,请使用:
% addr2line 080483c4
要在可执行的 helloworld 中映射地址 080483c4,请使用:
% addr2line -e helloworld 080483c4
要让 addr2line
充当从其标准输入中读取地址的过滤器,请使用:
% addr2line
除了源文件和行号之外,要打印与地址对应的函数名称,请使用:
% addr2line -f 080483c4
The addr2line
utility exits 0 on success, and >0 if an error occurs.
nm(1), elfdump(1), elfcopy(1), strtoull(3)
addr2line
实用程序由 Kai Wang 编写 <kaiwang27@users.sourceforge.net 。>
November 30, 2015
FreeBSD 13.1-RELEASE
MAIL(1)
MAIL(1)
FreeBSD General Commands Manual
MAIL(1)
mail
, Mail
, mailx
—
发送和接收邮件
mail
[-dEiInv
] [-s
subject] [-c
cc-addr] [-b
bcc-addr] [-F
] to-addr ... [-
sendmail-option ...] mail
[-dEHiInNv
] [-F
] -f
[name] mail
[-dEHiInNv
] [-F
] [-u
user] mail
[-d
] -e
[-f
name]
mail
实用程序是一个智能邮件处理系统,它的命令语法让人想起 ed(1) ,其中的行被消息替换。
可以使用以下选项:
详细模式。 交付的详细信息显示在用户的终端上。
调试模式。 有关详细信息,请参阅 debug 邮件选项。
测试(默认情况下,系统)邮箱中是否存在邮件。 如果有邮件则返回退出状态 0;否则,返回退出状态 1。
只写一个标题摘要,然后退出。
不要发送正文为空的消息。 这对于来自 cron(8) 脚本的管道错误很有用。
忽略 tty 中断信号。 这在嘈杂的电话线上使用 mail
时特别有用。
即使输入不是终端,也强制 mail
以交互模式运行。 特别是,发送邮件时的 ‘~
’ 特殊字符仅在交互模式下有效。
启动时禁止读取系统范围的 mail.rc 文件。
在阅读邮件或编辑邮件文件夹时禁止初始显示邮件标题。
-s
subject
在命令行上指定 subject 。 (只有 -s
标志之后的第一个参数用作主题;小心引用包含空格的主题。)
-c
cc-addr
将抄送副本发送到用户的 cc-addr 列表。 cc-addr 参数应该是一个以逗号分隔的名称列表。
-b
bcc-addr
向用户的密件 bcc-addr 列表发送密件抄送。 bcc-addr 参数应该是一个以逗号分隔的名称列表。
-f
[mbox]
读入您的 mbox (或指定文件)的内容进行处理;当您 quit
时, mail
会将未删除的消息写回此文件。
将消息记录在以第一个收件人命名的文件中。 该名称是在邮件标题的 “To:
” 行中首先找到的地址的登录名部分。 覆盖 record 变量(如果已设置)。
-u
user
相当于:
mail -f /var/mail/user
在启动时, mail
将按顺序执行系统命令文件 /usr/share/misc/mail.rc 、 /usr/local/etc/mail.rc 和 /etc/mail.rc 中的命令,除非系统明确告知不要这样做使用 -n
选项。 接下来,执行用户个人命令文件 ~/.mailrc 中的命令。 然后, mail
实用程序检查其命令行选项以确定是否要发送新消息,或者是否要读取现有邮箱。
要将消息发送给一个或多个人,可以使用参数调用 mail
,这些参数是邮件将被发送到的人的姓名。 然后,您需要输入您的消息,然后在一行的开头输入 ⟨control-D
⟩ 。 回复或发送邮件 下面的部分描述了可帮助您撰写信件的一些 mail
功能。
在正常使用中, mail
不提供任何参数,并在邮局检查您的邮件,然后打印出找到的每条邮件的一行标题。 当前消息最初是第一条消息(编号为 1),可以使用 print
命令(可以缩写为 p
)打印。 您可以像在 ed(1) 中的行之间移动一样在消息之间移动,使用命令 +
和 -
前后移动以及简单的数字。
检查消息后,您可以 delete
(d
) 消息或 reply
(r
) 消息。 删除会导致 mail
程序忘记该消息。 这不是不可逆转的;消息可以通过给出它的编号来 undeleted
(u
) ,或者可以通过给出 exit
(x
) 命令中止 mail
会话。 但是,已删除的消息通常会消失,再也看不到了。
可以给诸如 print
和 delete
之类的命令一个消息编号列表作为参数,以一次应用于多个消息。 因此, “delete 1 2
” 删除消息 1 和 2,而 “delete 1-5
” 删除消息 1 到 5。 特殊名称 ‘*
’ 表示所有消息, ‘$
’ 表示最后一条消息;因此,可以在 “top *
” 中使用打印消息前几行的命令 top
来打印所有消息的前几行。
您可以使用 reply
命令设置对消息的响应,将其发回给发件人。 然后,您输入的文本(直到文件结尾)定义了消息的内容。 在撰写邮件时, mail
会特别处理以字符 ‘~
’ 开头的行。 例如,键入 ~m
(单独一行)会将当前消息的副本放入响应中,将其右移一个制表位(参见下面的 indentprefix 变量)。 其他转义将设置主题字段,添加和删除消息的收件人,并允许您转义到编辑器以修改消息或转义到 shell 以运行某些命令。 (这些选项在下面的摘要中给出。)
您可以使用 quit
(q
) 命令结束 mail
会话。 已检查的消息将转到您的 mbox 文件,除非它们已被删除,在这种情况下它们将被丢弃。 未经审查的邮件会返回邮局。(参见上面的 -f
选项)。
也可以创建个人分发列表,例如,您可以将邮件发送给 “cohorts
” 并发送给一组人。 可以通过放置类似的行来定义此类列表
alias cohorts bill ozalp jkf mark kridle@ucbcory
在您的主目录中的文件 .mailrc 中。 此类别名的当前列表可以在 mail
中使用 alias
命令显示。 可以通过编辑 /etc/mail/aliases 创建系统范围的分发列表,参见 aliases(5) 和 sendmail(8) ;这些以不同的语法保存。 在您发送的邮件中,个人别名将在发送给其他人的邮件中扩展,以便他们能够 reply
收件人。 发送邮件时系统范围的别名不会扩展,但任何返回到机器的回复都会扩展系统范围的别名,因为所有邮件都通过 sendmail(8) 。
mail
实用程序有许多选项可以在 .mailrc 文件中设置以改变其行为;因此 “set askcc
” 启用 askcc 功能。 (这些选项总结如下。)
(改编自邮件 Mail Reference Manual 。)
每个命令都单独在一行上键入,并且可以在命令词之后使用参数。 该命令不需要全部输入 — 使用与输入前缀匹配的第一个命令。 对于以消息列表为参数的命令,如果没有给出消息列表,则使用满足命令要求的下一条消息转发。 如果当前消息的前面没有消息,则向后搜索,如果根本没有好的消息,则 mail
类型 “No applicable messages
” 并中止命令。
打印出前面的消息。 如果给定一个数字参数 n, 则转到前 n N 条消息并打印它。
忽略该行的其余部分作为注释。
打印命令的简短摘要。
执行后面的 shell(参见 sh(1) 和 csh(1)) 命令。
(P
) 与 print
类似,但也打印出忽略的标题字段。 另请参阅 print
, ignore
和 retain
。
(R
) 回复发起人。 不回复原始邮件的其他收件人。
(T
) Print
与打印命令相同。
(a
) 不带参数,打印出所有当前定义的别名。 使用一个参数,打印出该别名。 使用多个参数,创建新别名或更改旧别名。
(alt
) 如果您在多台机器上拥有帐户, alternates
命令很有用。 它可用于通知 mail
列出的地址确实是您。 当您 reply
邮件时, mail
不会将邮件副本发送到 alternates
列表中列出的任何地址。 如果给定的 alternates
命令没有参数,则显示当前的替代名称集。
(c
)- 将用户的工作目录更改为指定的,如果给定的话。 如果没有给出目录,则更改为用户的登录目录。
(co
) copy
命令的作用与 save
相同,只是它不会在您 quit
时将用于删除的消息标记为删除。
(d
) 将消息列表作为参数并将它们全部标记为已删除。 已删除的消息不会保存在 mbox 中,它们也不能用于大多数其他命令。
(也 dt
) 删除当前消息并打印下一条消息。 如果没有下一条消息, mail
会显示 “at EOF
” 。
(e
) 获取消息列表并将文本编辑器依次指向每个消息。 从编辑器返回时,该消息被读回。
(ex
或 x
) 在不修改用户的系统邮箱、他的 mbox 文件或他在 -f
中的编辑文件的情况下立即返回到 shell。
(fi
) 同 folder
。
列出文件夹目录中的文件夹名称。
(fo
) folder
命令切换到一个新的邮件文件或文件夹。 没有参数,它会告诉您当前正在阅读哪个文件。 如果你给它一个参数,它会写出你在当前文件中所做的更改(例如删除)并读入新文件。 一些特殊的约定被认可为名称。 ‘#
’ 表示上一个文件, ‘%
’ 表示您的系统邮箱, “%
user” 表示用户的系统邮箱, ‘&
’ 表示您的 mbox 文件, “+
folder” 表示您的文件夹目录下的文件。
(f
) 获取消息列表并打印它们的消息标题。
(h
) 列出当前的报头范围,这是一个 18 个消息组。 如果给出 ‘+
’ 参数,则打印下一个 18 个消息组,如果给出 ‘-
’ 参数,则打印前一个 18 个消息组。
?
的同义词
(ho
, 也 preserve
) 获取消息列表并将其中的每条消息标记为保存在用户的系统邮箱中,而不是保存在 mbox 中。 不覆盖 delete
命令。
将命名的标题字段列表添加到 ignored list. 列表中。 当您打印消息时,忽略列表中的标题字段不会打印在您的终端上。 此命令对于抑制某些机器生成的标头字段非常方便。 Type
和 Print
命令可用于打印整个消息,包括忽略的字段。 如果 ignore
不带参数执行,它会列出当前被忽略的字段集。
合并在阅读邮件时收到的任何新邮件。 新消息被添加到消息列表的末尾,并且当前消息被重置为第一条新邮件消息。 这不会重新编号现有的消息列表,也不会导致保存到目前为止所做的任何更改。
(m
) 将登录名和通讯组名作为参数,并将邮件发送给这些人。
指示在您退出时将消息列表发送到主目录中的 mbox 。 如果您 not 设置 hold
选项,这是消息的默认操作。
(mo
) 获取消息列表并调用该列表上的寻呼机。
(n
, 如 +
或 CR) 按顺序转到下一条消息并键入它。 使用参数列表,键入下一个匹配的消息。
(pre
) hold
的同义词。
(p
) 获取消息列表并在用户终端上键入每条消息。
(q
) 终止会话,将所有未删除、未保存的消息保存在用户登录目录中的 mbox 文件中,保留其系统邮箱中标记为 hold
或 preserve
或从未引用的所有消息,并从其系统邮箱中删除所有其他消息。 如果会话期间有新邮件到达,则会给出消息 “You have new mail
” 。 如果在编辑带有 -f
标志的邮箱文件时给出,则重写编辑文件。 除非重写编辑文件失败,否则会返回到 shell,在这种情况下,用户可以使用 exit
命令退出。
(r
) 获取消息列表并将邮件发送给指定消息的发件人和所有收件人。 不得删除默认消息。
reply
的同义词。
将命名的标题字段列表添加到 retained list 中。 当您打印消息时,仅保留列表中的标题字段显示在您的终端上。 所有其他标头字段都被抑制。 type
和 print
命令可用于完整地打印消息。 如果在没有参数的情况下执行 retain
,它会列出当前保留的字段集。
(s
) 获取消息列表和文件名,并将每条消息依次附加到文件末尾。 引号中的文件名,后跟行数和字符数会在用户终端上回显。
(se
) 不带参数,打印所有变量值。 否则,设置选项。 参数的形式为 option=
value ( ‘=
’ 前后没有空格)或 option 。 引号可以放在赋值语句的任何部分来引用空格或制表符,即 “set indentprefix="->"
”
Saveignore
是 save
ignore
print
和 type
的内容。 通过 save
保存消息或自动保存到 mbox 时,会过滤掉如此标记的标题字段。
Saveretain
是 save
retain
是 print
和 type
的内容。 如此标记的标题字段是唯一在通过 save
保存或自动保存到 mbox 时与消息一起保存的字段。 Saveretain
覆盖 saveignore
。
(sh
) 调用 shell 的交互式版本。
获取消息列表并打印出每条消息的字符大小。
source
命令从文件中读取命令。
获取消息列表并打印每行的前几行。 打印的行数由变量 toplines 控制,默认为 5。
(t
) print
的同义词。
获取由 alias
命令定义的名称列表并丢弃记住的用户组。 组名不再具有任何意义。
(u
) 获取消息列表并将每条消息标记为 not 删除。
(U
) 获取消息列表并将每条消息标记为 not 读。
获取选项名称列表并丢弃它们的记忆值; set
的逆。
(v
) 获取消息列表并在每条消息上调用显示编辑器。
(w
) 与 save
类似,不同之处在于 只 保存消息体( (不包括 标题)。对于通过消息系统发送和接收源程序文本等任务非常有用。
(x
) exit
的同义词。
mail
实用程序以窗口形式显示邮件标题,如 headers
命令中所述。 您可以使用 z
命令将 mail
的注意力转移到下一个窗口。 此外,您可以使用 z-
移动到上一个窗口。
以下是波浪号转义的摘要,用于编写消息以执行特殊功能。 波浪号转义仅在行首被识别。 “tilde escape” 这个名字有点用词不当,因为实际的 escape 字符可以通过选项转义来设置。
将 sign= 选项中的签名字符串插入到消息中。
将 Sign= 选项中的签名字符串插入到消息中。
~b
name ...
将给定姓名添加到抄送收件人列表中,但不要使姓名在抄送:行中可见( “blind” 抄送)。
~c
name ...
将给定名称添加到抄送收件人列表中。
将主目录中的 dead.letter 文件读入消息中。
对到目前为止收集的消息调用文本编辑器。 编辑会话完成后,您可以继续将文本附加到消息中。
~f
messages
将命名消息读入正在发送的消息中。 如果未指定消息,则读入当前消息。 当前被忽略的消息头(通过 ignore
或 retain
命令)不包括在内。
~F
messages
与 ~f
相同,除了包含所有消息头。
通过依次键入每个字段并允许用户将文本附加到末尾或使用当前终端擦除和终止字符来修改字段来编辑消息标题字段。
~i
string
将命名选项的值插入到消息的文本中。
~m
messages
将命名的消息读入正在发送的消息中,按制表符缩进或按 indentprefix 的值缩进。 如果未指定消息,则阅读当前消息。 当前被忽略的消息头(通过 ignore
或 retain
命令)不包括在内。
~M
messages
与 ~m
相同,但包含所有消息头。
打印出到目前为止收集的消息,以消息头字段开头。
如果设置了 save ,则中止正在发送的消息,将消息复制到主目录中的 dead.letter 。
~r
filename, ~r
!
command
~<
filename, ~<
!
command
将命名文件读入消息中。 如果参数以 ‘!
’ 开头,则字符串的其余部分被视为任意系统命令并被执行,标准输出插入到消息中。
~R
string
使用 string 作为回复字段。
~s
string
使命名字符串成为当前主题字段。
~t
name ...
将给定名称添加到直接收件人列表中。
对目前收集的消息调用替代编辑器(由 VISUAL
环境变量定义)。 通常,替代编辑器将是屏幕编辑器。 退出编辑器后,您可以继续将文本附加到消息的末尾。
~w
filename
将消息写入指定文件。
与 ~q
一样退出,但消息未保存在 dead.letter 中。
~!
command
执行指示的 shell 命令,然后返回消息。
~|
command, ~^
command
将消息作为过滤器通过命令传递。 如果命令没有输出或异常终止,则保留消息的原始文本。 命令 fmt(1) 通常用作重新调整消息的 command 。
~:
mail-command, ~_
mail-command
执行给定的 mail
命令。 但是,并非所有命令都是允许的。
在输入时模拟文件结尾。
打印可用命令转义的摘要。
~~
string
在以单个 ‘~
’ 开头的消息中插入文本字符串。 如果您更改了转义字符,那么您应该将该字符加倍以发送它。
选项可以使用 set
命令设置,也可以使用 unset
或 set
no
name 命令禁用。 选项可以是二元的,在这种情况下,只看它们是否设置很重要;或字符串,在这种情况下,实际值是有意义的。 如果未设置选项, mail
将查找同名的环境变量。 可用选项包括:
append
导致保存在 mbox 中的消息附加到末尾而不是前置。 这应该始终设置(最好在系统范围的 mail.rc 文件之一中)。 默认为 noappend 。
ask, asksub
使 mail
提示您输入您发送的每封邮件的主题。 如果您只用换行符响应,则不会发送主题字段。 默认为 asksub 。
askbcc
导致在每封邮件末尾提示您提供其他密件抄送收件人。 用换行符响应表示您对当前列表感到满意。 默认为 noaskbcc 。
askcc
导致在每封邮件的末尾提示您提供其他抄送收件人。 用换行符响应表示您对当前列表感到满意。 默认为 noaskcc 。
autoinc
使新邮件在到达时自动合并。设置此项类似于在每个提示符处发出 inc
命令,不同之处在于当前消息不会在新邮件到达时重置。 默认为 noautoinc 。
autoprint
使 delete
命令的行为类似于 dp
; 因此,删除一条消息后,将自动键入下一条消息。 默认为 noautoprint 。
crt
带值的选项 crt 用作阈值,以确定在使用 PAGER
读取消息之前必须等待多长时间。 如果 crt 未设置值,则系统中存储的终端屏幕高度用于计算阈值(请参阅 stty(1)) 。 默认为 nocrt 。
debug
设置二进制选项 debug 与在命令行中指定 -d
相同,会导致 mail
输出对调试 mail
有用的各种信息。 如果在这种模式下调用 mail
发送邮件,所有的准备工作都会进行并上报,但邮件不会真正发送出去。 默认是 nodebug 。
dot
二进制选项 dot 使 mail
将一行中的句点单独解释为您正在发送的消息的终止符。 默认为 nodot 。
escape
如果已定义,则此选项的第一个字符给出用于代替 ‘~
’ 的字符以表示转义。
flipr
反转 reply
和 Reply
命令的意义。 默认为 noflipr 。
folder
用于存储消息文件夹的目录名称。 如果此名称以 ‘/
’ 开头, mail
将其视为绝对路径名;否则,将找到相对于您的主目录的文件夹目录。
header
如果已定义,则在阅读邮件或编辑邮件文件夹时最初显示邮件标题。 默认为 header 。 可以通过在命令行上提供 -N
标志来禁用此选项。
hold
默认情况下,此选项用于将邮件保存在系统邮箱中。 默认为 nohold 。
ignore
导致来自终端的中断信号被忽略并作为 @
回显。 默认为 noignore 。
ignoreeof
与 dot 相关的一个选项是 ignoreeof ,它使 mail
拒绝接受 ⟨control-D
⟩ 作为消息的结尾。 Ignoreeof 也适用于 mail
命令模式。 默认为 noignoreeof 。
indentprefix
~m
波浪号转义用于缩进消息的字符串,代替正常的制表符 (^I
) 。 如果它包含空格或制表符,请务必引用该值。
metoo
通常,当扩展包含发件人的组时,会从扩展中删除发件人。 设置此选项会使发件人包含在组中。 默认为 nometoo 。
quiet
首次调用时禁止打印版本。默认为 noquiet 。
record
如果已定义,则给出用于记录所有外发邮件的文件的路径名。 如果未定义,则不保存外发邮件。 默认为 norecord 。
Replyall
反转 reply
和 Reply
命令的意义。 默认为 noReplyall 。
save
如果设置了此选项,并且您使用两个 RUBOUT 擦除或删除)中止消息, mail
会将部分字母复制到您主目录中的文件 dead.letter 中。 默认为 save 。
searchheaders
如果设置了这个选项,那么 “/
x:y” 形式的消息列表说明符将扩展到所有在标题字段 x 中包含子字符串 y 的消息。 字符串搜索不区分大小写。 如果省略 x ,它将默认为 “Subject
” 标题字段。 “/to:
y” 形式是一种特殊情况,它将扩展到所有在 “To 、
” “Cc
” 或 “Bcc
” 标头字段中包含子字符串 y 的消息。 “to
” 的检查区分大小写,因此 “/To:
y” 可用于将 y 的搜索限制为 “To:
” 字段。 默认为 nosearchheaders 。
toplines
如果已定义,则给出要使用 top
命令打印的消息的行数;通常会打印前五行。 冗长的 设置选项
verbose
设置选项 verbose 与在命令行上使用 -v
标志相同。 当 mail
以详细模式运行时,消息的实际传递会显示在用户终端上。 默认为 noverbose 。
在发生中断或传递错误时保存部分消息的文件的路径名。 默认为 ~/dead.letter 。
在 edit
命令和 ~e
转义中使用的文本编辑器的路径名。 如果未定义,则使用默认编辑器。
用户主目录的路径名。
在 folders
命令中使用的目录列表器的路径名。 默认为 /bin/ls 。
用户邮箱的位置。 默认为 /var/mail 。
包含初始 mail
命令的文件的路径名。默认为 ~/.mailrc 。
邮箱文件的名称。 它可以是文件夹的名称。 默认是用户主目录中的 mbox 。
在 more
命令或设置 crt 变量时使用的程序的路径名。 如果未定义此选项,则使用默认分页器 less(1) 。
如果设置,将用于初始化传出消息的回复字段。
要在 !
中使用的 shell 的路径名 命令和 ~!
转义。 如果未定义此选项,则使用默认 shell。
用于创建临时文件的目录的路径名。
在 visual
命令和 ~v
转义中使用的文本编辑器的路径名。
执行邮件的用户的登录名。
/var/mail/*
邮局。
~/mbox
用户的旧邮件。
~/.mailrc
给出初始 mail
命令的文件。 这可以通过设置 MAILRC
环境变量来覆盖。
/tmp/R*
临时文件。
/usr/share/misc/mail.*help
帮助文件。
/usr/share/misc/mail.rc
/usr/local/etc/mail.rc
/etc/mail.rc
系统范围的初始化文件。 每个文件都将按顺序获取(如果存在)
fmt(1), newaliases(1), vacation(1), aliases(5), sendmail(8)
mail
命令出现在版本 Version 1 AT&T UNIX 中。 该手册页源自最初由 The Mail Reference Manual Kurt Shoens 编写的邮件参考手册。
这里没有记录一些标志。 大多数对一般用户没有用。
通常, mail
只是一个指向 Mail
和 mailx
的链接,这可能会造成混淆。
alternates
列表的名称是不正确的英文(应该是 “alternatives”), 但为了兼容性而保留。
August 8, 2018
FreeBSD 13.1-RELEASE
AT(1)
AT(1)
FreeBSD General Commands Manual
AT(1)
at
, batch
, atq
, atrm
—
排队、检查或删除作业以供以后执行
at
[-q
queue] [-f
file] [-mldbv
] time at
[-q
queue] [-f
file] [-mldbv
] -t
[[CC]YY]MMDDhhmm[.SS] at
-c
job [job ...] at
-l
[job ...] at
-l
-q
queue at
-r
job [job ...]
atq
[-q
queue] [-v
]
atrm
job [job ...]
batch
[-q
queue] [-f
file] [-mv
] [time]
at
和 batch
实用程序使用 sh(1) 从标准输入或指定文件中读取命令,这些命令将在以后执行。
at
在指定时间执行命令;
atq
列出用户的待处理作业,除非用户是超级用户;在这种情况下,每个人的工作都会被列出;
atrm
删除工作;
batch
在系统负载水平允许时执行命令;换句话说,当负载平均下降到低于活动 CPU 数量的 1.5 倍时,或者在调用 atrun
时指定的值。
at
实用程序允许一些中等复杂的 time 规范。 它接受 HHMM 或 HH:MM 形式的时间以在一天中的特定时间运行作业。 (如果该时间已经过去,则假定为第二天。) 作为替代方案,可以指定以下关键字: midnight, noon 或 teatime (4pm) 并且时间可以以 AM 或 PM 为后缀以在早上或晚上运行。 作业运行的日期也可以通过以 month-name day 的形式给出日期和可选的 year 来指定,或者以 DD.MM.YYYY, DD.MM.YY, MM/DD/YYYY, MM/DD/YY, MMDDYYYY 或 MMDDYY 。 日期的指定必须遵循时间的指定。 时间也可以指定为: [now] + count time-units ,其中时间单位可以是 minutes, hours, days, weeks, months 或 years ,并且可以通过在 time 后面加上 today 来告诉 at
今天运行作业并通过在 tomorrow 后缀时间来运行明天的工作。
例如,要在三天之后的下午4点运行一个作业,使用 at
4pm + 3 days ,要在7月31日上午10点运行一个作业,使用 at
10am Jul 31 ,要在明天凌晨1点运行一个作业,使用 at
1am tomorrow 。
at
实用程序还支持 POSIX 时间格式(请参阅 -t
选项)。
对于 at
和 batch
,从标准输入或使用 -f
选项指定的文件读取命令并执行。 工作目录、环境(变量 TERM
, TERMCAP
, DISPLAY
和 _ 除外)和 umask 从调用时起保留。 从 su(1) shell 调用的 at
或 batch
命令将保留当前用户 ID。 如果有的话,用户将收到来自他的命令的标准错误和标准输出。 邮件将使用命令 sendmail(8) 发送。 如果从 su(1) shell 执行 at
,登录 shell 的所有者将收到邮件。
超级用户在任何情况下都可以使用这些命令。 对于其他用户,使用 at
的权限由文件 /var/at/at.allow 和 /var/at/at.deny 确定。
如果文件 /var/at/at.allow 存在,则只允许其中提到的用户名使用 at
。 在这两个文件中,仅当用户名在其行之前没有空格或其他字符并且在名称之后紧跟换行符时,即使在文件末尾,用户才被认为是列出的。 其他行被忽略,可用于注释。
如果 /var/at/at.allow 不存在,则检查 /var/at/at.deny ,然后允许其中未提及的每个用户名使用 at
。
如果两者都不存在,则只允许超级用户使用 at
。 这是默认配置。
请注意, at
是通过 cron(8) 守护进程通过每五分钟调用一次 atrun(8) 来实现的。 这意味着 at
的粒度可能并非对每个部署都是最佳的。 如果需要更精细的粒度,可以编辑 /etc/cron.d/at 文件,并将由系统 crontab 读取, SHELL
和 PATH
环境变量从该文件继承。
使用指定的队列。 队列名称由单个字母组成;有效的队列名称范围从 a 到 z 和 A 到 Z 。 c 队列是 at
的默认队列, E 队列是 batch
的默认队列。 具有更高字母的队列运行得更好。 如果将作业提交到以大写字母指定的队列,则将其视为当时已提交到批处理。 如果给 atq
一个特定的队列,它将只显示该队列中待处理的作业。
即使没有输出,也可以在作业完成后向用户发送邮件。
从 file 而不是标准输入中读取作业。
不带参数,列出调用用户的所有作业。 如果给出了一个或多个工作编号,请仅列出这些工作。
是 atrm
的别名(此选项已弃用;请改用 -r
)。
是 batch
的别名。
对于 atq
, 显示队列中已完成但尚未删除的作业;否则显示作业将执行的时间。
将命令行上列出的作业分类到标准输出。
删除指定的作业。
使用 POSIX 时间格式指定作业时间。 参数应采用 [[CC]YY]MMDDhhmm[.SS] 形式,其中每对字母代表以下内容:
CC
年份的前两位数字(世纪)。
YY
年份的后两位数。
MM
一年中的月份,从 1 到 12。
DD
一个月中的第几天,从 1 到 31。
hh
一天中的小时,从 0 到 23。
mm
小时的分钟,从 0 到 59。
SS
分钟的秒数,从 0 到 60。
如果未指定 CC 和 YY 字母对,则默认值为当前年份。 如果未指定 SS 字母对,则该值默认为 0。
/var/at/jobs
包含作业文件的目录
/var/at/spool
包含输出假脱机文件的目录
/var/run/utx.active
登录记录
/var/at/at.allow
允许权限控制
/var/at/at.deny
拒绝权限控制
/var/at/jobs/.lockfile
创造工作锁定文件
nice(1), sh(1), umask(2), atrun(8), cron(8), sendmail(8)
如果文件 /var/run/utx.active 不可用或损坏,或者如果在调用 at
时用户未登录,则邮件将发送到在环境变量 LOGNAME
中找到的用户 ID。 如果未定义或为空,则假定为当前用户 ID。
当前实现的 at
和 batch
实用程序不适用于用户竞争资源时。 如果是这种情况,另一个批处理系统(例如 nqs )可能更合适。
指定超过 2038 年的日期可能不适用于某些系统。
August 11, 2018
FreeBSD 13.1-RELEASE
AT(1)
AT(1)
FreeBSD General Commands Manual
AT(1)
at
, batch
, atq
, atrm
—
排队、检查或删除作业以供以后执行
at
[-q
queue] [-f
file] [-mldbv
] time at
[-q
queue] [-f
file] [-mldbv
] -t
[[CC]YY]MMDDhhmm[.SS] at
-c
job [job ...] at
-l
[job ...] at
-l
-q
queue at
-r
job [job ...]
atq
[-q
queue] [-v
]
atrm
job [job ...]
batch
[-q
queue] [-f
file] [-mv
] [time]
at
和 batch
实用程序使用 sh(1) 从标准输入或指定文件中读取命令,这些命令将在以后执行。
at
在指定时间执行命令;
atq
列出用户的待处理作业,除非用户是超级用户;在这种情况下,每个人的工作都会被列出;
atrm
删除工作;
batch
在系统负载水平允许时执行命令;换句话说,当负载平均下降到低于活动 CPU 数量的 1.5 倍时,或者在调用 atrun
时指定的值。
at
实用程序允许一些中等复杂的 time 规范。 它接受 HHMM 或 HH:MM 形式的时间以在一天中的特定时间运行作业。 (如果该时间已经过去,则假定为第二天。) 作为替代方案,可以指定以下关键字: midnight, noon 或 teatime (4pm) 并且时间可以以 AM 或 PM 为后缀以在早上或晚上运行。 作业运行的日期也可以通过以 month-name day 的形式给出日期和可选的 year 来指定,或者以 DD.MM.YYYY, DD.MM.YY, MM/DD/YYYY, MM/DD/YY, MMDDYYYY 或 MMDDYY 。 日期的指定必须遵循时间的指定。 时间也可以指定为: [now] + count time-units ,其中时间单位可以是 minutes, hours, days, weeks, months 或 years ,并且可以通过在 time 后面加上 today 来告诉 at
今天运行作业并通过在 tomorrow 后缀时间来运行明天的工作。
例如,要在三天之后的下午4点运行一个作业,使用 at
4pm + 3 days ,要在7月31日上午10点运行一个作业,使用 at
10am Jul 31 ,要在明天凌晨1点运行一个作业,使用 at
1am tomorrow 。
at
实用程序还支持 POSIX 时间格式(请参阅 -t
选项)。
对于 at
和 batch
,从标准输入或使用 -f
选项指定的文件读取命令并执行。 工作目录、环境(变量 TERM
, TERMCAP
, DISPLAY
和 _ 除外)和 umask 从调用时起保留。 从 su(1) shell 调用的 at
或 batch
命令将保留当前用户 ID。 如果有的话,用户将收到来自他的命令的标准错误和标准输出。 邮件将使用命令 sendmail(8) 发送。 如果从 su(1) shell 执行 at
,登录 shell 的所有者将收到邮件。
超级用户在任何情况下都可以使用这些命令。 对于其他用户,使用 at
的权限由文件 /var/at/at.allow 和 /var/at/at.deny 确定。
如果文件 /var/at/at.allow 存在,则只允许其中提到的用户名使用 at
。 在这两个文件中,仅当用户名在其行之前没有空格或其他字符并且在名称之后紧跟换行符时,即使在文件末尾,用户才被认为是列出的。 其他行被忽略,可用于注释。
如果 /var/at/at.allow 不存在,则检查 /var/at/at.deny ,然后允许其中未提及的每个用户名使用 at
。
如果两者都不存在,则只允许超级用户使用 at
。 这是默认配置。
请注意, at
是通过 cron(8) 守护进程通过每五分钟调用一次 atrun(8) 来实现的。 这意味着 at
的粒度可能并非对每个部署都是最佳的。 如果需要更精细的粒度,可以编辑 /etc/cron.d/at 文件,并将由系统 crontab 读取, SHELL
和 PATH
环境变量从该文件继承。
使用指定的队列。 队列名称由单个字母组成;有效的队列名称范围从 a 到 z 和 A 到 Z 。 c 队列是 at
的默认队列, E 队列是 batch
的默认队列。 具有更高字母的队列运行得更好。 如果将作业提交到以大写字母指定的队列,则将其视为当时已提交到批处理。 如果给 atq
一个特定的队列,它将只显示该队列中待处理的作业。
即使没有输出,也可以在作业完成后向用户发送邮件。
从 file 而不是标准输入中读取作业。
不带参数,列出调用用户的所有作业。 如果给出了一个或多个工作编号,请仅列出这些工作。
是 atrm
的别名(此选项已弃用;请改用 -r
)。
是 batch
的别名。
对于 atq
, 显示队列中已完成但尚未删除的作业;否则显示作业将执行的时间。
将命令行上列出的作业分类到标准输出。
删除指定的作业。
使用 POSIX 时间格式指定作业时间。 参数应采用 [[CC]YY]MMDDhhmm[.SS] 形式,其中每对字母代表以下内容:
CC
年份的前两位数字(世纪)。
YY
年份的后两位数。
MM
一年中的月份,从 1 到 12。
DD
一个月中的第几天,从 1 到 31。
hh
一天中的小时,从 0 到 23。
mm
小时的分钟,从 0 到 59。
SS
分钟的秒数,从 0 到 60。
如果未指定 CC 和 YY 字母对,则默认值为当前年份。 如果未指定 SS 字母对,则该值默认为 0。
/var/at/jobs
包含作业文件的目录
/var/at/spool
包含输出假脱机文件的目录
/var/run/utx.active
登录记录
/var/at/at.allow
允许权限控制
/var/at/at.deny
拒绝权限控制
/var/at/jobs/.lockfile
创造工作锁定文件
nice(1), sh(1), umask(2), atrun(8), cron(8), sendmail(8)
如果文件 /var/run/utx.active 不可用或损坏,或者如果在调用 at
时用户未登录,则邮件将发送到在环境变量 LOGNAME
中找到的用户 ID。 如果未定义或为空,则假定为当前用户 ID。
当前实现的 at
和 batch
实用程序不适用于用户竞争资源时。 如果是这种情况,另一个批处理系统(例如 nqs )可能更合适。
指定超过 2038 年的日期可能不适用于某些系统。
August 11, 2018
FreeBSD 13.1-RELEASE
BUILTIN(1)
BUILTIN(1)
FreeBSD General Commands Manual
BUILTIN(1)
内置
, !
, %
, .
, :
, @
, [
, {
, }
, alias
, alloc
, bg
, bind
, bindkey
, break
, breaksw
, builtins
, case
, cd
, chdir
, command
, complete
, continue
, default
, dirs
, do
, done
, echo
, echotc
, elif
, else
, end
, endif
, endsw
, esac
, eval
, exec
, exit
, export
, false
, fc
, fg
, filetest
, fi
, for
, foreach
, getopts
, glob
, goto
, hash
, hashstat
, history
, hup
, if
, jobid
, jobs
, kill
, limit
, local
, log
, login
, logout
, ls-F
, nice
, nohup
, notify
, onintr
, popd
, printenv
, printf
, pushd
, pwd
, read
, readonly
, rehash
, repeat
, return
, sched
, set
, setenv
, settc
, setty
, setvar
, shift
, source
, stop
, suspend
, switch
, telltc
, test
, then
, time
, times
, trap
, true
, type
, ulimit
, umask
, unalias
, uncomplete
, unhash
, unlimit
, unset
, unsetenv
, until
, wait
, where
, which
, while
—
shell 内置命令
请参阅相应 shell 手册页中的内置命令描述。
Shell 内置命令是可以在运行的 shell 进程中执行的命令。请注意,在 csh(1) 内置命令的情况下,如果该命令作为管道中除最后一个以外的任何组件出现,则该命令将在子 shell 中执行。
如果指定给 shell 的命令包含斜杠 ‘/
’, 则 shell 将不会执行内置命令,即使指定命令的最后一个组件与内置命令的名称匹配。因此,虽然指定 “echo
” 会导致在支持 echo
内置命令的 shell 下执行内置命令,但指定 “/bin/echo
” 或 “./echo
” 不会。
虽然某些内置命令可能存在于多个 shell 中,但在支持它们的每个 shell 下它们的操作可能不同。下表列出了 shell 内置命令、支持它们的标准 shell 以及它们是否作为独立实用程序存在。
此处仅列出 csh(1) 和 sh(1) shell 的内置命令。有关其内置命令的操作的详细信息,请参阅 shell 的手册页。请注意,至少 sh(1) 手册页将其中一些命令称为 “内置命令” ,其中一些称为 “保留字 。” 其他 shell 的用户可能需要查阅 info(1) 页面或其他文档来源。
在 External 下标记为 “No**
” 的命令确实存在于外部,但使用同名的内置命令作为脚本实现。
Command
External
csh(1)
sh(1)
No
No
Yes
No
Yes
No
No
No
Yes
No
Yes
Yes
No
Yes
No
Yes
No
Yes
No
No
Yes
No
No
Yes
No**
Yes
Yes
No
Yes
No
No**
Yes
Yes
No
No
Yes
No
Yes
No
No
Yes
Yes
No
Yes
No
No
No
Yes
No
Yes
No
No
Yes
Yes
No**
Yes
Yes
No
Yes
Yes
No**
No
Yes
No
Yes
No
No
Yes
Yes
No
Yes
No
No
Yes
No
No
No
Yes
No
No
Yes
Yes
Yes
Yes
No
Yes
No
No
No
Yes
No
Yes
Yes
No
Yes
No
No
Yes
No
No
Yes
No
No
No
Yes
No
Yes
Yes
No
Yes
Yes
No
Yes
Yes
No
No
Yes
Yes
No
Yes
No**
No
Yes
No**
Yes
Yes
No
Yes
No
No
No
Yes
No
No
Yes
No
Yes
No
No**
No
Yes
No
Yes
No
No
Yes
No
No**
No
Yes
No
Yes
No
No
Yes
No
No
Yes
No
No
Yes
Yes
No
No
Yes
No**
Yes
Yes
Yes
Yes
Yes
No
Yes
No
No
No
Yes
No
Yes
No
Yes
Yes
No
No
Yes
No
No
Yes
No
Yes
Yes
No
Yes
Yes
No
No
Yes
No
No
Yes
No
No
Yes
No
Yes
Yes
No
Yes
No
Yes
No
Yes
No
Yes
No
Yes
No**
No
Yes
No
No
Yes
No
Yes
No
No
Yes
No
No
No
Yes
No
Yes
No
No
Yes
Yes
No
Yes
No
No
Yes
No
No
Yes
No
No
No
Yes
No
Yes
Yes
No
Yes
No
No
Yes
No
No
Yes
No
No
Yes
No
No
Yes
No
Yes
No
Yes
No
No
Yes
Yes
Yes
No
No
No
Yes
No
No
Yes
Yes
No
Yes
No**
No
Yes
No**
No
Yes
No**
Yes
Yes
No**
Yes
Yes
No
Yes
No
No
Yes
No
No
Yes
No
No
Yes
Yes
No
Yes
No
No
No
Yes
No**
Yes
Yes
No
Yes
No
Yes
Yes
No
No
Yes
Yes
csh(1), echo(1), false(1), info(1), kill(1), login(1), nice(1), nohup(1), printenv(1), printf(1), pwd(1), sh(1), test(1), time(1), true(1), which(1)
内置
手册页首次出现在 FreeBSD 3.4 中。
December 21, 2010
FreeBSD 13.1-RELEASE
AR(1)
AR(1)
FreeBSD General Commands Manual
AR(1)
ar
, ranlib
—
管理档案
ar
-d
[-T
] [-f
] [-j
] [-v
] [-z
] archive file ... ar
-m
[-T
] [-a
position-after] [-b
position-before] [-f
] [-i
position-before] [-j
] [-s
| -S
] [-z
] archive file ... ar
-p
[-T
] [-f
] [-v
] archive [file ...] ar
-q
[-T
] [-c
] [-D
] [-f
] [-s
| -S
] [-U
] [-v
] [-z
] archive file ... ar
-r
[-T
] [-a
position-after] [-b
position-before] [-c
] [-D
] [-f
] [-i
position-before] [-j
] [-s
| -S
] [-u
] [-U
] [-v
] [-z
] archive file ... ar
-s
[-j
] [-z
] archive ar
-t
[-f
] [-T
] [-v
] archive [file ...] ar
-x
[-C
] [-T
] [-f
] [-o
] [-u
] [-v
] archive [file ...] ar
-M
ranlib
[-D
] [-U
] archive ...
ar
实用程序创建并维护组合成档案的文件组。 创建存档后,可以向其中添加新文件,并且可以提取、删除或替换现有文件。
文件在存档中由它们的最后一个文件名组件命名,因此如果包含 “/” 的路径引用的文件被存档,它将由路径的最后一个组件命名。 同样,当将命令行中列出的路径与存档中存储的文件名匹配时,只会比较路径的最后一个组成部分。
ar
- 的正常使用是用于创建和维护适合与链接编辑器 ld(1) 一起使用的库,尽管它不限于此目的。 ar
实用程序可以创建和管理用于加速链接编辑操作的存档符号表(请参阅 ar(5) )。 如果存档中存在符号表,它将通过存档的后续操作保持最新。
ranlib
实用程序用于将存档符号表添加到现有存档。
ar
实用程序支持以下选项:
当与选项 -m
一起使用时,此选项指定由参数 file ... 指定的归档成员移动到由参数 member-after 命名的归档成员之后。 当与选项 -r
一起使用时,此选项指定由参数 file ... 指定的文件添加到由参数 member-after 命名的存档成员之后。
当与选项 -m
一起使用时,此选项指定由参数 file ... 指定的存档成员移动到由参数 member-before 命名的存档成员之前。 当与选项 -r
一起使用时,此选项指定由参数 file ...- 指定的文件添加到由参数 member-before 命名的存档成员之前。
使用 -r
和 -q
选项创建新存档时抑制打印的信息性消息。
防止提取的文件替换文件系统中的同名文件。
从参数 archive 指定的存档中删除参数 file ... 命名的成员。 存档的符号表(如果存在)将更新以反映存档的新内容。
当与 -r
或 -q
选项结合使用时,与 -s
选项不带其他选项一起使用时,或者当作为 ranlib
调用时,插入 0 而不是真正的 mtime、uid 和 gid 值和 0644 而不是来自命名成员的文件模式通过参数 file ... 这确保了当成员内容相同时,生成的存档上的校验和是可重现的。 默认情况下启用此选项。 如果在命令行上指定了多个 -D
和 -U
选项,则最后一个优先。
与选项 -T
同义。
与选项 -b
同义。
此选项被接受但被忽略。
接受此选项是为了与 GNU ar(1) 兼容,但会被忽略。
在存档中移动由参数 file ... 指定的存档成员。 如果位置已由 -a
, -b
或 -i
选项之一指定,则成员将移动到指定位置之前或之后。 如果未指定位置,则将指定的成员移动到存档的末尾。 如果档案有符号表,则更新它以反映档案的新内容。
提取成员时保留成员的原始修改时间。
将由参数 file ... 命名的指定存档成员的内容写入标准输出。 如果未指定任何成员,则归档中所有文件的内容将按照它们在归档中出现的顺序写入。
将参数 file ... 指定的文件附加到参数 archive 指定的存档,而不检查文件是否已存在于存档中。 存档符号表将根据需要更新。 如果参数 archive 指定的文件不存在,将创建一个新的档案。
在参数 archive 指定的存档中替换(添加)参数 file ... 指定的文件,必要时创建存档。 替换现有成员不会更改存档中成员的顺序。 如果在参数文件中命名的 file ... 不存在,则存档中与该名称匹配的现有成员不会更改。 除非指定了定位选项 -a
, -b
或 -i
之一,否则新文件将添加到存档的末尾。 存档符号表(如果存在)将更新以反映存档的新状态。
将存档符号表(请参阅 ar(5) )添加到由参数 archive 指定的存档中。单独使用 -s
选项调用 ar
等效于调用 ranlib
。
不要生成存档符号表。
列出由参数 file ... 指定的文件,按它们在存档中出现的顺序排列,每行一个。 如果未指定文件,则列出存档中的所有文件。
命名存档成员时,仅使用存档成员名称或命令行文件名参数的前 15 个字符。
有条件地更新存档或提取成员。 当与 -r
选项一起使用时,如果由参数 file ... 命名的文件比它们的归档版本更新,它们将在归档中被替换。 当与 -x
选项一起使用时,参数 file ... 指定的成员仅在它们比文件系统中的相应文件更新时才会被提取。
与 -r
或 -q
选项结合使用时,插入真正的 mtime、uid 和 gid 以及来自参数文件命名的成员的文件模式值 file ... 。如果在命令上指定了多个 -D
和 -U
选项行,最后一个优先。
提供详细的输出。 当与 -d
, -m
, -q
或 -x
选项一起使用时, ar
给出正在执行的归档修改的逐个文件描述,它由三个空格分隔的字段组成:选项字母、破折号 “-” 和文件名。当与 -r
选项一起使用时, ar
显示如上的描述,但如果将文件添加到存档中,则首字母为 “a” ,如果文件替换存档中已有的文件,则为 “r” 。 当与 -p
选项一起使用时,包含在 “<” 和 “>” 字符中的文件名将写入标准输出,前面有一个换行符,后跟两个换行符。 命名文件的内容跟在文件名后面。 当与 -t
选项一起使用时, ar
显示八个空格分隔的字段:由 strmode(3) 显示的文件权限、由斜杠 ( “/”) 分隔的十进制用户和组 ID、以字节为单位的文件大小、文件修改 strftime(3) 格式 “%b %e %H:%M %Y” 的时间,以及文件名。
打印版本字符串并退出。
将参数 file ... 指定的存档成员提取到当前目录中。 如果未指定任何成员,则提取档案的所有成员。如果与提取的成员对应的文件不存在,则将创建该文件。 如果提取的成员对应的文件确实存在,则其所有者和组将不会更改,而其内容将被覆盖,并且其权限将设置为存档中输入的权限。 除非指定了 -o
选项,否则文件的访问和修改时间将与提取时间相同。
此选项被接受但被忽略。
如果指定了 -M
选项, ar
实用程序将从其标准输入读取并执行命令。 如果标准输入是终端, ar
实用程序将在读取一行之前显示提示 “AR >
” ,即使遇到错误也会继续操作。 如果标准输入不是终端, ar
实用程序将不会显示提示,并会在遇到错误时终止执行。
每个输入行包含一个命令。 输入行中的单词由空格字符分隔。 该行的第一个单词是命令,其余单词是命令的参数。 在任何一种情况下都可以指定命令字。 参数可以用逗号或空格分隔。
允许空行并被忽略。 长行以 “+
” 字符结束。
“*
” 和 “;
” 字符开始评论。 注释一直延伸到行尾。
执行 MRI 图书管理员脚本时, ar
实用程序在存档的临时副本上工作。 使用 save
命令对副本进行永久更改。
ar
实用程序可以理解的命令是:
将由参数 archive 命名的档案内容添加到当前档案中。 如果使用参数 member 命名特定成员,则将这些成员添加到当前存档中。 如果未指定任何成员,则将归档的全部内容添加到当前归档。
将参数 member 命名的文件添加到当前存档。
丢弃当前存档的所有内容。
创建一个由参数 archive 命名的新档案,并使其成为当前档案。 如果命名存档已存在,则在发出 save
命令时将覆盖它。
从当前存档中删除由参数 member 命名的模块。
列出存档中的每个命名模块。 输出的格式取决于使用 verbose
命令设置的详细程度设置。 输出被发送到标准输出,或由参数 outputfile 指定的文件。
从 ar
实用程序成功退出。 对当前存档的任何未保存的更改都将被丢弃。
从当前存档中提取由参数 member 命名的成员。
以详细样式显示当前存档的内容。
打开由参数 archive 命名的档案并将其设为当前档案。
将当前存档中的命名成员替换为参数 member 指定的文件。 文件必须存在于当前目录中,并且命名模块必须已经存在于当前存档中。
提交对当前存档的所有更改。
切换 directory
命令的详细程度。
要创建一个包含三个文件 ex1.o, ex2.o 和 ex3.o 的新存档 ex.a ,请使用:
ar -rc ex.a ex1.o ex2.o ex3.o
要将存档符号表添加到现有存档 ex.a, 请使用:
ar -s ex.a
要从档案 ex.a 中删除文件 ex1.o , 请使用:
ar -d ex.a ex1.o
要详细列出档案 ex.a 的内容, 请使用:
ar -tv ex.a
要使用 MRI 图书管理员命令创建包含文件 ex1.o 和 ex2.o 的新存档 ex.a ,请使用以下脚本:
create ex.a * specify the output archive addmod ex1.o ex2.o * add modules save * save pending changes end * exit the utility
The ar
utility exits 0 on success, and >0 if an error occurs.
ld(1), archive(3), elf(3), strftime(3), strmode(3), ar(5)
ar
实用程序支持 -a
, -b
, -c
, -i
, -m
, -p
, -q
, -r
, -s
, -t
, -u
, -v
, -C
和 -T
选项符合 IEEE Std 1003.2 (“POSIX.2”) 。
June 16, 2016
FreeBSD 13.1-RELEASE
APROPOS(1)
APROPOS(1)
FreeBSD General Commands Manual
APROPOS(1)
apropos
, whatis
—
搜索手册页数据库
apropos
[-afk
] [-C
file] [-M
path] [-m
path] [-O
outkey] [-S
arch] [-s
section] expression ...
apropos
和 whatis
实用程序查询由 makewhatis(8) 生成的手册页数据库,评估每个数据库中每个文件的 expression 。 默认情况下,它们显示所有匹配手册的名称、章节编号和描述行。
默认情况下, apropos
在 man(1) 规定的默认路径中搜索 makewhatis(8) 数据库,并使用不区分大小写的扩展正则表达式匹配手动名称和描述 (the Nm
和 Nd
宏键) 。 多个术语意味着成对 -o
。
whatis
是 apropos
-f
的同义词。
选项如下:
不是只显示标题行,而是显示完整的手册页,就像 man(1) -a
一样。 如果标准输出是终端设备且未指定 -c
,则使用 more(1) 对其进行分页。 在 -a
模式下, mandoc(1) 手册中描述的选项 -IKOTW
也可用。
以 man.conf(5) 格式指定替代配置 file 。
仅在手册页名称中搜索 expression 中的所有单词。 搜索不区分大小写,仅匹配整个单词。 在此模式下,宏键、比较运算符和逻辑运算符不可用。
支持完整的 expression 语法。 这是 apropos
的默认值。
使用冒号分隔的路径而不是搜索 makewhatis(8) 数据库的默认路径列表。 无效路径或没有手动数据库的路径将被忽略。
将冒号分隔的路径添加到搜索 makewhatis(8) 数据库的路径列表中。 无效路径或没有手动数据库的路径将被忽略。
显示与键 outkey 关联的值,而不是手动描述。
将搜索限制在指定 machine(1) 架构的页面。 arch 不区分大小写。 默认情况下,会显示所有架构的页面。
将搜索限制在手册的指定部分。 默认情况下,显示所有部分的页面。 请参阅 man(1) 以获取部分列表。
选项 -chlw
也受支持,并记录在 man(1) 中。 选项 -fkl
是互斥的并且相互覆盖。
expression 由逻辑运算符 -a
(and) 和 -o
(or) 连接的搜索词组成。 -a
运算符优先于 -o
并且两者都是从左到右计算的。
( expr )
如果子表达式 expr 为真,则为真。
expr1 -a
expr2
如果 expr1 和 expr2 都为真(逻辑 ‘and’ ),则为真。
expr1 [-o
] expr2
如果 expr1 和/或 expr2 评估为真(逻辑 ‘or’ ),则为真。
term
如果 term 是正则表达式,则不区分大小写。 对子字符串项没有影响。
结果首先根据节号按数字升序排序,然后按页面名称按 ascii(7) 字母升序排序,不区分大小写。
每个输出行的格式为
name[, name...](sec) - description
其中 “name” 是手册的名称, “sec” 是手册部分, “description” 是手册的简短描述。 如果为手册指定了架构,则显示为
name(sec/arch) - description
生成的手册可以以
$ man -s sec name
如果在输出中指定了体系结构,请使用
$ man -s sec -S arch name
查询评估由 makewhatis(8) 索引的 mdoc(7) 宏子集。 除了下面列出的宏键之外,特殊键 any
可用于匹配任何可用的宏键。
名称和描述:
手册名称
单行手册描述
机器架构(不区分大小写)
手册节号
节和交叉引用:
节标题(不包括标准节)
小节标题
对另一个手册页的交叉引用
书目参考
命令行实用程序的语义标记:
命令行选项(标志)
命令修饰符
命令参数
内部或交互式命令
环境变量
文件系统路径
函数库的语义标记:
函数库名称
包含文件
函数返回类型
函数名称
函数参数类型和名称
变量类型
变量名称
定义变量或预处理器常量
错误常量
环境变量
各种语义标记:
作者姓名
超链接
“mailto”超链接
内核配置声明
数学符号
商品名
物理标记:
斜体或下划线
粗体字体
打字机字体
文本生成:
参考标准文档
AT&T UNIX 版本参考
BSD 版本参考
BSD/OS 版本参考
NetBSD 版本参考
FreeBSD 版本参考
OpenBSD 版本参考
DragonFly 版本参考
一般来说,宏键应该产生完整的结果,而不期望用户考虑实际的宏使用。 例如,结果包括:
函数参数出现在 Fn
行中
函数名用 Fo
宏标记
include 文件名用 Fd
宏标记
显示为函数返回类型的类型
SYNOPSIS 中函数参数中出现的类型
使用环境变量 MANPAGER
的任何非空值代替标准分页程序, more(1); 有关详细信息,请参见 man(1) 。 仅在指定 -a
或 -l
时使用。
用于搜索手册页的以冒号分隔的目录列表;有关详细信息,请参见 man(1) 。 被 -M
覆盖,如果指定了 -l
,则忽略。
指定未定义 MANPAGER
如果 PAGER 和 MANPAGER 均未定义,则使用 more(1) -s
。 仅在指定 -a
或 -l
时使用。
mandoc.db
makewhatis(8) 关键字数据库的名称
/etc/man.conf
默认 man(1) 配置文件
The apropos
utility exits 0 on success, and >0 if an error occurs.
搜索 “.cf” 作为手册名称和描述的子字符串:
$ apropos =.cf
还包括 “.cnf” 和 “.conf” 的匹配项:
$ apropos =.cf =.cnf =.conf
使用区分大小写的正则表达式在名称和描述中搜索:
$ apropos '~set.?[ug]id'
在提及 “optind” 和 “optarg” 变量的库部分中搜索手册:
$ apropos -s 3 Va=optind -a Va=optarg
执行与使用参数 “ssh” 调用 whatis
完全相同的操作:
$ apropos -- -i 'Nm~[[:<:]]ssh[[:>:]]'
以下两个调用是等效的:
$ apropos -S
arch -s
section expression
$ apropos \(
expression \)
-a arch~^(
arch|any)$
-a sec~^
section$
man(1), re_format(7), makewhatis(8)
apropos
实用程序符合 man(1) -k
的 IEEE Std 1003.1-2008 (“POSIX.1”) 规范。
所有选项、 whatis
命令、对逻辑运算符、宏键、子字符串匹配、结果排序、环境变量 MANPAGER
和 MANPATH
、数据库格式和配置文件的支持都是该规范的扩展。
whatis
的部分功能已经由 1BSD 中的前 manwhere
实用程序提供。 apropos
和 whatis
实用程序首先出现在 2BSD 中。 它们是针对 OpenBSD 5.6 从头开始重写的。
-M
选项和 MANPATH
变量最早出现在 4.3BSD; -m
在 4.3BSD-Reno 中; -C
在 4.4BSD-Lite1 中;和 -S
和 -s
在 OpenBSD 4.5 中用于 apropos
,在 OpenBSD 5.6 中用于 whatis
。 选项 -acfhIKklOTWw
出现在 OpenBSD 5.7 中。
November 22, 2018
FreeBSD 13.1-RELEASE
queue
file
At 主要由 Thomas Koenig <> 编写。 时间解析例程由 David Parsons <> 编写, Joe Halpin <> 进行了小幅改进。
queue
file
At 主要由 Thomas Koenig <> 编写。 时间解析例程由 David Parsons <> 编写, Joe Halpin <> 进行了小幅改进。
本手册页由 Sheldon Hearn 编写 < >
member-after
member-before
member-before
从标准输入读取和执行 MRI 图书馆员命令。 ar
实用程序可以理解的命令在 部分中进行了描述。
archive | archive (member [, member]...)
member [, member]...
archive
module [, member]...
archive (member [, member]...) [outputfile]
member [, member]...
archive
member [, member]...
ar
命令首次出现在 AT&T UNIX 版本 1 中。在 FreeBSD 8.0 中, Kai Wang <> 使用 Streaming Archive Library (libarchive, -larchive) 和 ELF Access Library (libelf, -lelf) 重新实现了 ar
和 ranlib
。
file
path
path
outkey
arch
section
如果满足 term ,则为真。 这有语法 [[key[,key...]](=
|~
)]val, 其中 key 是要查询的 mdoc(7) 宏, val 是它的值。 有关可用键的列表,请参阅 。运算符 =
计算子字符串,而 ~
计算区分大小写的扩展正则表达式。
term
Bill Joy 于 1977 年写了 manwhere
,最初的 BSD apropos
和 whatis
写于 1979 年 2 月。当前版本由 Kristaps Dzonsons <> 和 Ingo Schwarze <> 编写。