「vgremove(8)」-

移除VG
命令语法格式
vgremove position_args [ option_args ]

vgremove VG|Tag|Select …

[ -f|–force ]
[ -S|–select String ]
[ –noudevsync ]
[ –reportformat basic|json ]
[ COMMON_OPTIONS ]

命令描述
命令vgremove删除一个或多个VG。 如果VG中存在LV,则会使用提示来确认LV移除。
如果VG中的一个或多个PV丢失,请考虑使用vgreduce –removemissing以使VG元数据再次保持一致。
重复强制选项(-ff)强制删除VG中的LV而不进行确认。
命令支持的选项及含义
-f|–force … 覆盖各种检查,确认和保护。 使用时要格外小心。
–noudevsync 禁用udev同步。 该进程不会等待来自udev的通知。 无论后台有任何可能的udev处理,它都将继续。 仅在udev未运行或具有忽略LVM创建的设备的规则时才使用此选项。
–reportformat basic|json 覆盖报告的当前输出格式,该格式由lvm.conf中的report/output_format设置全局定义。 basic是包含列和行的原始格式。 如果每个命令有多个报告,则每个报告都以报告名称为前缀进行标识。 json以JSON格式生成报告输出。 有关更多信息,请参阅lvmreport(7)。
-S|–select String 根据指定的条件选择要处理和报告的对象。 标准语法由–select help和lvmreport(7)描述。 对于报告命令,将为符合条件的每个对象显示一行。 有关可选对象字段,请参阅–options帮助。 可以使用附加的“selected”字段(-o选中)显示行,如果行与选择匹配则显示1,否则显示0。 对于处理LVM实体的非报告命令,该选择用于选择要处理的项目。
用于lvm的公共选项
-y|–yes 不要以交互方式提示确认,但总是假设答案是肯定的。 使用时要格外小心。 (对于自动no,请参阅-qq。)
-v|–verbose … 设置详细级别。 重复1到4次以增加发送到标准输出和标准错误的消息的详细信息。
-t|–test 在测试模式下运行。 命令不会更新元数据。 这是通过禁用所有元数据写入,但仍然将成功返回到调用函数来实现的。 如果工具依赖于读回它认为已更改但尚未更改的元数据,则可能会在多阶段操作中导致异常错误消息。
-q|–quiet … 抑制输[……]

READ MORE

「vgs(8)」-

显示VG的信息
命令语法格式
vgs [ option_args ] [ position_args ]
vgs [ –all ] [ –options String ] [ –select String ] [ –sort String ] [ –aligned ] [ –binary ] [ –configreport log|vg|lv|pv|pvseg|seg ] [ –foreign ] [ –ignorelockingfailure ] [ –ignoreskippedcluster ] [ –logonly ] [ –nameprefixes ] [ –noheadings ] [ –nolocking ] [ –nosuffix ] [ –readonly ] [ –reportformat basic|json ] [ –rows ] [ –separator String ] [ –shared ] [ –trustcache ] [ –unbuffered ] [ –units unit] [ –unquoted ] [ COMMON_OPTIONS ] [ VG|Tag … ]
命令描述
命令vgs生成关于VG输出信息,这些信息被格式化显示。
命令支持的选项及含义
–aligned 与–separator一起使用,以对齐输出列
–separator String 用于分隔每列的字符串。使用grep处理输出时很有用。
-a|–all 显示所有的VG。等同于不指定任何VG。
–binary 使用二进制值“0”或“1”代替具有两个有效值的列的描述性文字值(不计算“unknown”值,其表示无法确定该值)。
–configreport log|vg|lv|pv|pvseg|seg 参考lvmreport(7)手册。
–foreign 报告/显示否则将被跳过的外部VG。 有关外部VG的更多信息,请参阅lvmsystemid(7)。
–ignorelockingfailure 锁定失败后,允许命令继续执行只读元数据操作。
–ignoreskippedcluster 如果在没有集群锁定的情况下运行该命令,并且跳过了集群VG,则用于避免使用非零状态代码退出。
–logonly 抑制命令报告,并仅显示日志报告。
–nameprefixes 在输出中添加“LVM2_”前缀和字段名称。 用于–noheadings以生成可用于设置环境变量的field=value的列表(例如,在udev规则中)。
–unquoted 与–nameprefixes一起使用时,不[……]

READ MORE

「vgscan(8)」-

搜索所有VG
命令语法格式
vgscan [ option_args ]

vgscan

[ –cache ]
[ –ignorelockingfailure ]
[ –mknodes ]
[ –notifydbus ]
[ –reportformat basic|json ]
[ COMMON_OPTIONS ]

命令描述
命令vgscan扫描系统中所有受支持的LVM块设备以获取VG。
命令支持的选项及含义
–cache 扫描所有设备并将元数据发送到lvmetad守护进程。
–ignorelockingfailure 锁定失败后,允许命令继续”以只读元数据操作“执行。
–mknodes 还检查活动LV所需的/dev中的LVM特殊文件,并创建任何丢失的文件,并删除未使用的文件。
–notifydbus 向D-Bus发送通知。 如果未构建支持D-Bus通知的LVM,或者如果禁用了notify_dbus配置设置,则该命令将退出并显示错误。
–reportformat basic|json 覆盖报告的当前输出格式,该格式由lvm.conf中的report/output_format设置全局定义。 basic是包含列和行的原始格式。 如果每个命令有多个报告,则每个报告都以报告名称为前缀进行标识。 json以JSON格式生成报告输出。 有关更多信息,请参阅lvmreport(7)。
用于lvm的公共选项
-y|–yes 不要以交互方式提示确认,但总是假设答案是肯定的。 使用时要格外小心。 (对于自动no,请参阅-qq。)
-v|–verbose … 设置详细级别。 重复1到4次以增加发送到标准输出和标准错误的消息的详细信息。
-t|–test 在测试模式下运行。 命令不会更新元数据。 这是通过禁用所有元数据写入,但仍然将成功返回到调用函数来实现的。 如果工具依赖于读回它认为已更改但尚未更改的元数据,则可能会在多阶段操作中导致异常错误消息。
-q|–quiet … 抑制输出和日志消息。 覆盖–debug和–verbose。 重复一次也可以通过回答“no”来抑制任何提示。
-h|–help 显示帮助信息。
-d|–debug … 设置调试级别。 重复1到6次以增加发送到日志文件和/或syslog(如果已配置)的消息的详细信息。
–version 显示版本信息并退出。
–profile String 选项–commandprofile或–metadataprofile的别名,具体取决于命令。[……]

READ MORE

「macchanger」

MAC Changer,以一种更容易的方式操作MAC地址。
安装MAC Changer
从发行版的源中安装

#!/bin/bash

# Kali GNU/Linux Rolling
apt-get install macchanger

使用源码编译安装 源码下载地址:https://github.com/alobbs/macchanger 编译还是老样子:

#!/bin/bash

# 1. 进入源码目录
# 。。。
cd /path/to/sorce

# 2. 如果没有conifgure文件,先生成configure文件
autoreconf -i

# 3. 构建编译
./configure && make && make install

安装的可执行程序
macchanger 用于修改和查看MAC地址。
参考文献

Homepage: https://github.com/alobbs/macchanger[……]

READ MORE

「macchanger」

macchanger,用于修改和查看MAC地址。
命令行语法格式
macchanger [options] device
命令支持的选项及含义
-m, –mac XX:XX:XX:XX:XX:XX, –mac=XX:XX:XX:XX:XX:XX 将MAC地址设置为XX:XX:XX:XX:XX:XX.
-e, –ending 设置新的MAC,但不要修改MAC地址中的Vendor字节。
-a, –another 设置同种类型的随机Vendor Mac
-A 设置MAC为任何类型的、随机的Vendor MAC,但这个MAC一定是存在的(对比-r)。
-r, –random 设置完全随机的MAC,可以能是并不存在的Vendor(对比-A)。
-l, –list[=keyword] 打印Vendor描述中的包含keyword的已知Vendor。
-b, –bia 当设置完全随机MAC时,伪装成烧录地址。如果不使用,MAC将具有本地管理的位集合。
查看「MAC」地址
-s, –show 默认选项,如果未指定任何选项时,显示当前的MAC地址。
恢复「MAC」地址
-p, –permanent 恢复默认的MAC地址。
帮助类选项
-h, –help 显示帮助信息。
-V, –version 显示版本信息。
使用示例
macchanger -A eth1
相关文档
ifconfig (8)
参考文献

man 1 macchanger, version GNU MAC changer 1.7.0[……]

READ MORE

「mailutils」

mail
参考文献

http://www.gnu.org/software/mailutils/

章节列表
「mail(1)」-[……]

READ MORE

「mail(1)」-

处理邮件消息
命令语法格式
mail.mailutils [OPTION…] [address…]
mail.mailutils [OPTION…] [OPTION…] [file]
mail.mailutils [OPTION…] –file [OPTION…] [file]
mail.mailutils [OPTION…] –file=file [OPTION…]
命令描述
GNU mail,处理邮件消息。
命令行选项
长选项的强制或可选参数,对于任何相应的短选项也是强制性的或可选的。
如果给出了-f或–file,则mail在第一个参数指定的邮箱或用户的mbox上运行(如果没有给出参数)。
-A, –attach=FILE 附件FILE
–content-type=TYPE 为后续–attach选项设置内容类型
–encoding=NAME 为后续的–attach选项设置编码
-a, –append=HEADER: VALUE 将标题附加到正在发送的消息中
-E, –exec=COMMAND 执行命令COMMAND
-e, –exist 如果mail存在,则返回true。
-F, –byname 根据发件人保存邮件
-H, –headers 输出一个标题摘要并退出
-N, –nosum 不显示初始标题摘要
-i, –ignore 忽略中断
-n, –norc 不要读取系统mailrc文件
-p, –print, –read 将所有邮件打印到标准输出
-q, –quit 导致中断会终止程序
-r, –return-address=ADDRESS 发送邮件时,使用ADDRESS作为返回地址
-s, –subject=SUBJ 发送带有给定主题SUBJECT的消息
-t, –to 从邮件头中读取收件人
-u, –user=USER 操作USER的邮箱
全局的调试选项
–debug-level=LEVEL 设置Mailutils的调试的等级
–debug-line-info 显示调试消息的源信息
配置处理
–config-file=FILE 加载此配置文件;隐含–no-config选项
–config-lint 检查配置文件语法并退出
–config-verbose 显示配置文件的解析日志
–no-config 不要加载用户和站点的配置文件
–no-site-config 不要加载站点的配置文件
-[……]

READ MORE

「man-db, the on-line manual database」

Man-DB,该软件包中包含了用于查看和查找Man-pages的程序。本文围绕Man-DB v2.7.5展开介绍。
Man-pages,包含了C语言函数的描述、重要的设备文件以及有重要意义的配置文件。如果要下载话,可以去The Linux Man-pages project。
其实大多数发行版里都已经包含了Man-DB和Man-pages,也不需要单独安装。
在「Man-DB」中包含的命令及作用
手册查找
man 格式化并显示指定的手册页面;
apropos 在数据库中,搜索描述或名字包含给定字符串的命令。
whatis 搜索数据库,显示指定系统命令的简短描述。
lexgrog 解析手册页中的头信息,对给定的手册页面显示一行简短的描述。
手册数据库维护
catman 创建或更新预先格式化的手册页。
mandb 创建或者更新手册页索引缓存。
accessdb 以易读的形式,打印man-db数据库的内容。
manpath 打印$MANPATH或者 man.conf 中设置的手册搜索路径,确定手册页的搜索路径。
参考文献

LFS-7.1.0/6.67. Man-DB-2.7.5
The Man-pages Website: https://www.kernel.org/doc/man-pages/index.html[……]

READ MORE

「accessdb(8)」-

以易读的形式打印man-db数据库的内容
命令行语法及格式
/usr/sbin/accessdb [-d?V] [<index-file>]
命令简述
命令accessdb以可读的形式输出man-db数据库中包含的数据。
如果没有指定[<index-file>],则会打印/var/cache/man/index.<db-type>中的数据,<db-type>的值取决于所使用的数据库。如果指定了[<index-file>]参数,则会覆盖默认值,打印[<index-file>]中的数据。
命令行选项及含义
-d, –debug 打印出调试信息。
–usage 打印简短的命令使用方法
-V, –version 打印版本信息。
-?, –help 打印帮助信息。
参考文献

man 8 accessdb, version 2.7.6.1

更新日志

06/17/2017 首次创建[……]

READ MORE

「apropos(1)」-

在手册页面名称(NAME)和描述(DESCRIPTION)部分中搜索内容
命令语法格式
apropos [-dalv?V] [-e|-w|-r] [-s list] [-m system[,…]] [-M path] [-L locale] [-C file] keyword …
命令描述
手册页面「名称」指的是手册页面里的NAME部分;「描述」指定是DESCRIPTION部分,每个手册页都有这么一个简短的描述。apropos会搜索出包括指定关键字的名称和描述。
关键字通常是正则表达式,就像使用-r选项,或者可能包含通配符(-w),或者匹配确切的关键字(-e)。使用这些选项,关键字需要转义,或对其使用单引号以防止SHELL解释它们。
标准匹配规则允许匹配手册页名称和描述里的单词边界。
由apropos搜索的数据库是通过mandb命令更新。所以需要使用cron进行周期性更新,或者在安装新的手册页之后手动执行 mandb进行更新。
命令支持的选项及含义
-r, –regex 将每个keyword解释为正则表达式。这是默认行为。每个关键词将与手册页名称和描述分别匹配。它可以匹配任何部分。匹配不限于单词边界。
-w, –wildcard 将每个keyword解释为shell风格的通配符。每个关键词将与手册页名称和描述分别匹配。如果同时使用了–exact选项,只有展开的关键词与整个描述或手册页名称完全匹配时才视为找到。否则关键词也允许匹配描述中的单词边界。
-e, –exact 每个keyword将严格与手册页名称和描述匹配。
-a, –and 默认情况下,只要匹配任意一个keyword,项目就可以显示出来。使用该选项后,只有匹配所有keyword的项目才算匹配。
-l, –long 通常,会将输出截短为终端宽度,使得每一行只显示一个匹配的项。使用该选项后,不按终端宽度截断输出,超出一行的内容会显示在下一行(自动换行)。
-s list, –sections list, –section list 只搜索指定的手册章节。list是由冒号或逗号分隔的章节列表。如果list中的指定的是简单的章节号,如“3”,则显示的描述列表将只包含章节“3”中的页面,“3perl”、“3x”等;如果list中的章节号带扩展,如“3perl”,则显示的描述列表将只包含手册章节中对应部分的页面。
题外话:在实际的man手册中,除了1-9章节外,还有其他的“子章节”,你可以尝试执行apropos -e fork命令,输出你会看到有些fork手册的章节为3am、3pm,它们属于第3章节,但是是第3章节的“子章节”。这些“子章节”存在的主要原因是为了解决手册页重名的问[……]

READ MORE

「catman(1)」-

创建或更新预格式化的手册页
命令语法格式
catman [-d?V] [-M path] [-C file] [section] …
命令描述
catman用于创建最新的预格式化手册页集合(称为Cat页面)。Cat页面通常比原手册页显示得快,但是需要额外的存储空间。若本地管理员决定加入Cat页面支持,他们必须提供合适的目录来保存这些页面。
在我们的系统(Kali GNU/Linux Rolling)中,执行catman命令后会为每个手册页生成对应Cat页面,Cat页面保存在/var/cache/man/cat<n>,其中<n>为章节号(通常为1-9的数字)。每个手册的Cat页面都保存在对应的章节导的Cat<n>目录中,手册页面使用的gzip进行了压缩,解压查看手册的内容,你会发现它是普通文本格式,区别于/usr/share/man中对应的手册页面(使用gzip -d解压查看),/usr/share/man中的手册是nroff源文件。关于这一点可以参考man(1)的-W和-w选项。
catman的可用选项为要预格式化的手册页层次结构和章节。默认的层次结构是那些在man-db配置文件中指定的系统层次结构,默认章节是环境变量$MANSECT中以冒号分隔的内容或编译进man的标准集合(如果未定义$MANSECT)。给 catman 提供一组空格分隔的章节名会覆盖以上两个选项。
catman利用与每个层次结构关联的索引数据库缓存来确定需要格式化哪些文件。
命令支持的选项及含义
-d, –debug 打印调试信息。
-M path, –manpath=path 指定替代的手册页层次结构搜索路径,以冒号分隔。默认情况下,这是man-db配置文件中指定的所有系统层次结构。
-C file, –config-file=file 使用配置文件file代替默认的~/.manpath。
-?, –help 打印帮助消息并退出。
–usage 打印简短的帮助消息并退出。
-V, –version 显示版本信息。
环境变量
MANSECT 如果设置了$MANSECT,它的值(以冒号分隔的章节列表)会用于确定搜索哪些章节及搜索顺序。默认值为“1 n l 8 3 2 3posix 3pm 3perl 3am 5 4 9 6 7”,除非被/etc/manpath.config中的SECTION指令覆盖。
MANPATH 如果设置了 $MANPATH 环境变量,它的值将被解释为要使用的,以冒号分隔的手册页层次结构搜索路径。
相关文件
/etc/manpath.config man-db配置文件。
/usr[……]

READ MORE

「lexgrog(1)」-

解析man手册页的头部信息
命令语法格式
lexgrog [-m|-c] [-dfw?V] [-E encoding] file …
命令描述
lexgrog是传统的 “groff guess” 工具的一个lex实现。它从命令行读取man手册源文件或预格式化的“cat”页文件列表,并显示apropos和whatis所使用的手册名称和描述。预处理过滤器列表在传递给nroff或troff之前,man页面需要它。
如果它的输入是错误的,lexgrog 会打印 “parse failed”;这有助于外部程序检查man页面是否正确。如果lexgrog的输入文件是 “-”,它会从标准输入中读取;如果输入文件是压缩文件,将自动读取解压的版本。
命令支持的选项及含义
-d, –debug 打印调试信息。
-m, –man 将输入当作man页面源文件来解析。如果没有指定–man或–cat,这将是默认值。
-c, –cat 将输入当作预格式化的man页面来解析(“cat页面”)。不能同时指定–man和–cat。
-w, –whatis 显示来自man页面头部的名称和描述(apropos和whatis就使用这些信息)。这是未指定–whatis或–filters时的默认值。
-f, –filters 在用nroff或troff格式化之前,显示对man页面预处理所需的过滤器列表。
-E encoding, –encoding encoding 将页面编码设置为encoding,而非自动检测的编码。
-?, –help 打印帮助消息并退出。
–usage 打印简短的帮助消息并退出。
-V, –version 显示版本信息
状态码
0 程序成功执行。
1 用法错误。
2 命令lexgrog无法解析一个或多个输入文件
使用示例
$ lexgrog man.1 man.1: “man – an interface to the on-line reference manuals”
$ lexgrog -fw man.1 man.1 (t): “man – an interface to the on-line reference manuals”
$ lexgrog -c whatis.cat1 whatis.cat1: “whatis – display manual page descriptions”
$ lexgrog broken.1 broken.1: parse failed
WHATIS解析
mandb(使用与lexgrog相同的代码)解析每个手册页顶部的NAM[……]

READ MORE

「man(1)」-

功能简述
在线参考手册的界面
常用命令
显示项目(程序) ls 对应的手册页:

man ls

找到包含 vim 关键字的全部手册:

man -w -K ‘vim’

从第7节中显示宏包man的手册页。

man man.7

正确执行时,显示包含在手册中所有可用的intro手册页。可以在连续显示过程中退出或跳过任一页。

man -a intro

将别名“alias”所引用的手册页(常为SHELL手册页)格式化为默认的troff或groff格式,并通过管道传送给名为ps的打印机。groff的默认输出通常为PostScript。man –help应该会提示哪个处理器程序与-t选项绑定。

man -t alias | lpr -Pps

此命令会将nroff源手册页./foo.1x.gz解压并格式化为设备无关(dvi)文件。重定向是必须的,因为-T标志会导致输出不经分页程序直接传送到stdout。应该使用xdvi这样的程序查看输出结果,或使用dvips这样的程序进一步处理为PostScript。

man -l -Tdvi ./foo.1x.gz > ./foo.1x.dvi

在手册的简短描述和手册页的名字中搜索做为正则表达式的printf关键字。打印出所有匹配的项。等价于apropos printf。

man -k printf

查找由smail引用的手册页面,然后打印所有已找到手册的间断描述。等价于whatis smail。

man -f smail

语法格式

man [-C file] [-d] [-D] [–warnings[=warnings]] [-R encoding] [-L locale] [-m system[,…]] [-M path] \
[-S list] [-e extension] [-i|-I] [–regex|–wildcard] [–names-only] [-a] [-u] [–no-subpages] \
[-P pager] [-r prompt] [-7] [-E encoding] [–no-hyphenation] \
[–no-justification] [-p string] [-t] [-T[device]] [-H[browser]] [-X[dpi]] [-Z] [[section] page[.section] …] …

man -k [apropos options] regexp …

man[……]

READ MORE

「mandb(8)」-

创建或者更新手册页索引缓存
命令语法格式
mandb [-dqsucpt?V] [-C file] [manpath]
mandb [-dqsut] [-C file] -f filename …
命令描述
mandb用于初始化或手动更新索引数据库缓存(通常由man维护)。缓存中包含与手册页系统当前状态相关的信息;保存在缓存中的这些信息被man-db工具用来提高速度和增强功能。
当创建或更新索引时,mandb会警告错误的ROFF .so请求、无效的手册页名称手册页,因为whatis无法解析它们。
给mandb提供可选的且以冒号分隔的路径会覆盖内部的系统手册页层次结构搜索路径,这些路径是从man-db配置文件中的信息确定的。
数据库缓存
mandb 可以编译支持以下任何一种数据库类型:
Name Type Async Filename ──────────────────────────────────────────────────────────── Berkeley db Binary tree Yes index.bt GNU gdbm v >= 1.6 Hashed Yes index.db GNU gdbm v < 1.6 Hashed No index.db UNIX ndbm Hashed No index.(dir|pag)
那些提供异步更新的数据库速度更快,但代价是可能在异常中止时损坏数据。万一这种事情发生,可能要重新以-c选项运行mandb来重建数据库
命令支持的选项及含义
-d, –debug 打印调试信息。
-q, –quiet 不显示警告。
-s, –no-straycats 不花时间查找或向数据库添加有关stray cats的信息。
-p, –no-purge 不花时间检查删除的手册页并从数据库中清理它们。
-c, –create 默认情况下,mandb会尝试更新任何以前创建的数据库。如果某个数据库不存在,程序会创建它。此选项强制mandb删除以前的数据库并重新生成数据库,并隐含了–no-purge。在数据库损坏或将来引入新数据库存储方案时,这一选项可能用到。
-u, –user-db 只创建用户数据库,即使有创建系统数据库所需的写权限。
-t, –test 对层次结构搜索路径中的手册页执行正确性检查。使用此选项时,mandb不会更改现有的数据库。
-f, –filename 只更新指定文件名对应的记录。此选项不作常规使用;它由man内部使用(以MAN_DB_UPDATES选项编译时),以便查找页面是否过期。它隐含了-p,关闭了-c和-s。
-C[……]

READ MORE

「manpath(1)」-

确定手册页的搜索路径
命令语法格式
manpath [-qgdc?V] [-m system[,…]] [-C file]
命令描述
如果设置了$MANPATH,manpath只会显示$MANPATH内容并显示一条警告。如果未设置,manpath会确定一个合适的手册页层次结构搜索路径并显示这个结果。
manpath会使用man-db的配置文件(/etc/manpath.config)和用户环境变量所得到的信息来确定最终输出的搜索路径(一个以冒号分隔的路径)。
命令行选项及含义
-q, –quiet 不显示警告。
-d, –debug 打印调试信息。
-c, –catpath 生成针对manpath的catpath。一旦确定了manpath,它会将每个路径元素将转换为它的相对catpath。
-g, –global 在man-db配置文件中生成一个名为“global”的且包含所有路径的manpath。
-m system[,…], –systems=system[,…] 如果此系统可以访问其他操作系统的手册页层次结构,可以使用此选项将它们包含在manpath的输出中。要包含NewOS的手册页层次结构,使用-m NewOS选项。
指定的system选项可以是逗号分隔的操作系统名称组合。要包括本地操作系统的手册页层次结构,可以在参数字符串中包含系统名man。此选项会覆盖$SYSTEM环境变量
-C file, –config-file=file 使用用户配置文件file代替默认的~/.manpath。
其他选项
-?, –help 打印帮助消息并退出。
–usage 打印简短的帮助消息并退出。
-V, –version 显示版本信息。
相关的环境变量
MANPATH 如果设置了$MANPATH,manpath显示它的值,而不是在运行时确定它。如果$MANPATH前缀是冒号,则变量的值会追加到从配置文件内容确定的值的之后。如果冒号在变量值的结尾,则确定的列表会追加到变量内容之后。如果变量的值包含双冒号(::),则确定的列表会插入值的中间(两个冒号间)。
SYSTEM 如果设置了$SYSTEM,等价于将值指定为-m选项的参数,二者具有相同的效果。
相关配置文件
/etc/manpath.config man-db的配置文件。man 5 manpath中描述了配置文件的格式。
参考文献

man 1 manpath
man 5 manpath

更新日志

06/14/2017 创建文章
05/27/2018 更新文章内容[……]

READ MORE

「whatis(1)」-

用一句话来描述手册页面
命令语法格式
whatis [-dlv?V] [-r|-w] [-s list] [-m system[,…]] [-M path] [-L locale] [-C file] name …
命令描述
每个手册页中都有一个名为NAME的部分。whatis会搜索手册页名字,如果手册页名字与命令参数name匹配,则whatis会输出该手册页的名字和NAME部分中的描述。
name可以包含通配符(-w)或是正则表达式(-r)。使用这些选项时,可能要给name加引号或对特殊字符转义,以阻止SHELL解析它们。
在搜索时,whatis会使用索引数据库,索引数据库由mandb命令更新,索引数据库的位置参见本文的「相关文件」部分。根据你的安装方式,索引数据库的更新可能通过周期任务(cron)进行的,或者在安装新手册页后手动进行更新索引数据库。要使用相对索引数据库来生成旧式的文本whatis数据库,可以调用下面的命令:

# whatis -M manpath -w ‘*’ | sort > manpath/whatis

其中manpath是手册页层次结构,如/usr/man。在很早之前,索引数据库是使用纯文本格式的数据库(称为whatis数据库),后来使用Berkeley DB数据库来代替传统的纯文本whatis数据库。
命令支持的选项及含义
-d, –debug 打印调试信息。
-v, –verbose 打印详细的警告消息。
-r, –regex 将每个name解释为正则表达式。如果name匹配页面名称的任何部分,则将视为一个匹配的页面。该选项会使whatis略微变慢,这是由数据库搜索的原理导致的。
-w, –wildcard 将每个name解释为包含SHELL风格通配符的模式。要匹配,展开的name要与整个页面名称匹配。该选项会使whatis略微变慢,这是由数据库搜索的原理导致的。
-l, –long 不按终端宽度截断输出。通常,如果不使用该选项,会将输出截短为终端宽度,一行只显示一条匹配的记录,超不的部分显示省略号。
-s list, –sections list, –section list 只搜索指定的手册章节。list是由冒号或逗号分隔的章节列表。如果list中的指定的是简单的章节号,如“3”,则最终显示的描述列表将只包含“3”、“3perl”“3x”等章节中的页面;如果list中的章节号带扩展,如“3perl”,则最终显示的描述列表将只包含手册章节中对应部分的页面。
-m system[,…], –systems=system[,…] 如果此系统可以访问其他操作系统的[……]

READ MORE

「signal」

Linux中的信号(signal)。Linux即支持POSIX中的可靠信号(以下“标准信号”)也支持实时信号。
signal含义简述
以下的可用信号来自于/bin/kill -L的输出,系统为Ubuntu 16.04 TLS,实际上与系统版本也没有什么关系。详细的描述请查看以后的章节。

信号值
信号名
信号描述

1
HUP
挂起(Hangup)终端,或者控制进程停止

2
INT
来自键盘的中断

3
QUIT
来自键盘的退出

4
ILL
非法指令

5
TRAP
跟踪/断点捕获

6
ABRT
由abort(3)发出的退出指令

7
BUS
总线错误(内存访问不良)

8
FPE
浮点异常

9
KILL
终止进程

10
USR1
由用户自定义的信号

11
SEGV
内存引用无效

12
USR2
由用户自定义的信号

13
PIPE
管道破裂: 写一个没有读端口的管道

14
ALRM
由alarm(2)发出的计时器信号

15
TERM
终止信号

16
STKFLT
协处理器堆栈错误

17
CHLD
子进程结束信号

18
CONT
进程继续(如果被停止)

19
STOP
停止进程,但不是退出。

20
TSTP
模拟在终端上按下了停止键

21
TTIN
用于后台进程的终端输入

22
TTOU
用于后台进程的终端输出

23
URG
Socket出现紧急情况[……]

READ MORE

「motd – message of the day」

motd,每日消息,motd是message of the day的简写,作用也正如它的名字所描述的那样。
motd是什么?
在虚拟控制台登录成功后,在执行登录shell之前,会由pam_motd(8)来显示/etc/motd中的内容。
在Debian GNU/Linux中,/etc/pam.d/login中配置的动态内容也会被pam_exec展示。
涉及的配置文件
/etc/motd /etc/pam.d/login
相关文档
login(1), issue(5), pam_motd(8)
参考文献

man 5 motd[……]

READ MORE

mysqldump命令中,与「DDL」有关选项

Usage scenarios for mysqldump include setting up an entire new MySQL
instance (including database tables), and replacing data inside an existing instance
with existing databases and tables. The following options let you specify which things
to tear down and set up when restoring a dump, by encoding various DDL statements
within the dump file.

· –add-drop-database

Write a DROP DATABASE statement before each CREATE DATABASE statement. This option
is typically used in conjunction with the –all-databases or –databases option
because no CREATE DATABASE statements are written unless one of those options is
specified.

· –add-drop-table

Write a DROP TABLE statement before each CREATE TABLE statement.

· –add-drop-trigger

Write a DROP TRIGGER statement before each CREATE TRIGGER statement.

· –all-tablespaces, -Y

Adds to a table dump all SQL statements needed to create any tablespaces used by
an NDB table. This information is not otherwise included in the output from
mysqldump. This option is currently relevant only to MySQL[……]

READ MORE

「ncurses」

安装的可执行程序
captoinfo:Converts a termcap description into a terminfo description
clear:Clears the screen, if possible
infocmp:Compares or prints out terminfo descriptions
infotocap:Converts a terminfo description into a termcap description
ncursesw6-config:Provides configuration information for ncurses
reset:Reinitializes a terminal to its default values
tabs:Clears and sets tab stops on a terminal
tic:The terminfo entry-description compiler that translates a terminfo file from source format into the binary format needed for the ncurses library routines [A terminfo file contains information on the capabilities of a certain terminal.]
toe:Lists all available terminal types, giving the primary name and description for each
tput:Makes the values of terminal-dependent capabilities available to the shell; it can also be used to reset or initialize a terminal or report its long name
tset:Can be used to initialize terminals
参考文献
LFS/6.20. Ncurses-6.0[……]

READ MORE

「clear(1)」-

清除终端屏幕
命令语法格式
clear
命令描述
如果可能,命令clear清除屏幕,包括其回滚缓冲区(如果定义了扩展的“E3”功能)。 清除环境变量中的终端类型,然后在terminfo数据库中确定如何清除屏幕。
命令clear忽略可能存在的任何命令行参数。
历史
命令clear出现在1979年2月24日的BSD 2.79中。后来在Unix第8版(1985)中提供。
AT&T调整了一个不同的BSD程序(tset)来创建一个新命令(tput),并使用它来用一个调用tput clear的shell脚本替换clear命令,例如:
/usr/bin/tput ${1:+-T$1} clear 2> /dev/null
exit

1989年,当Keith Bostic修改了BSD的tput命令以使其类似于AT&T的tput时,他为clear命令添加了一个Shell脚本:
exec tput clear

每种情况下,脚本的其余部分是版权声明。
而ncurses的clear命令始于1995年,它通过调整原始的BSD的clear命令(当然还有terminfo)。
随后E3扩展来了:
在1999年6月,xterm提供了清除屏幕的标准控制序列的扩展。而不是仅使用清除屏幕的可见部分:
printf ‘\033[2J’

可以使用下述命令清除回滚缓冲:
printf ‘\033[3J’

这在“XTerm控制序列”中记录为源自xterm的特征。
其他一些终端开发者采用了该功能,例如2006年的PuTTY。
2011年4月,Red Hat开发人员向Linux内核提交了一个补丁,修改了它的控制台驱动程序以执行相同的操作。作为3.0版本的一部分,Linux更改没有提及xterm,尽管红帽错误报告(#683733)中引用了这一变化导致了这一变化。
再次,一些其他终端开发人员采用了该功能。但下一个相关步骤是在2013年对clear程序进行了修改,以纳入此扩展。
2013年,E3扩展在tput中被忽略了“clear”参数。2016年通过重新组织tput,来与clear和tset分享其逻辑以解决这个问题。
可移植性
IEEE Std 1003.1/Open Group Base Specifications Issue 7(POSIX.1-2008)和X/Open Curses Issue 7都没有记录tset或reset文件。
后者记录了tput,可用于通过Shell脚本或别名(如符号链接)替换此实用程序,以将tput作为清除运行。
相关手册
tput(1), terminfo(5)
This[……]

READ MORE

「net-tools」

Net-tools,软件包包含了一些用于控制Linux Kernel的网络子系统的程序。
安装
从发行版的源中安装

#!/bin/bash

# Kali GNU/Linux Rolling
apt-get install net-tools

使用源码编译安装 参考BLFS/Net-tools-CVS_20101030: http://www.linuxfromscratch.org/blfs/view/7.10/basicnet/net-tools.html
安装的可执行程序
arp is used to manipulate the kernel’s ARP cache, usually to add or delete an entry, or to dump the entire cache.
ipmaddr adds, deletes and shows an interface’s multicast addresses.
iptunnel adds, changes, deletes and shows an interface’s tunnels.
miitool checks or sets the status of a network interface’s Media Independent Interface (MII) unit.
nameif names network interfaces based on MAC addresses.
netstat 用于报告网络连接,路由表,接口统计信息。
plipconfig is used to fine tune the PLIP device parameters, to improve its performance.
rarp is used to manipulate the kernel’s RARP table. This program is obsolete. From version 2.3, the Linux kernel no longer contains RARP support. For a replacement RARP daemon, see ftp://ftp.dementia.org/pub/net-tools
route 用于操作IP路由表。
slattach attaches a network interface to a serial line. This allows you to use normal terminal lines for point-to-point links to other comput[……]

READ MORE

「arp(8)」-

操纵系统ARP缓存
命令语法格式
arp [-vn] [-H type] [-i if] [-ae] [hostname]
arp [-v] [-i if] -d hostname [pub]
arp [-v] [-H type] [-i if] -s hostname hw_addr [temp]
arp [-v] [-H type] [-i if] -s hostname hw_addr [netmask nm] pub
arp [-v] [-H type] [-i if] -Ds hostname ifname [netmask nm] pub
arp [-vnD] [-H type] [-i if] -f [filename]
命令描述
该命令进行ARP操纵或显示内核的IPv4网络邻居缓存。它可以向表中添加条目、删除条目、显示当前内容。
“ARP”代表地址解析协议(Address Resolution Protocol),用于查找给定IPv4地址的网络邻居的MAC地址。
命令行模式
arp,打印模式。没有模式说明符的arp命令将打印ARP表的当前内容。通过指定硬件地址类型、接口名称、主机地址,可以限制打印的条目数。
arp -d address,删除模式。通过IP地址address找到条目,然后删除在ARP表中的该条目。如果address为主机名,则在查找ARP表中的条目之前会先将主机名解析为IP地址。执行此操作需要root或netadmin权限。
arp -s address hw_addr,更新模式。用于设置新的ARP表条目。参数hw_addr的格式取决于硬件类别,但对于大多数类别,可以假设可以使用通用的表示。对于以太网类别,这是以16进制表示的6个字节,以冒号分隔。添加代理ARP条目(即设置了publish标志的条目)时,可以指定网络掩码来代理整个子网的ARP。这不是一个好的做法,但是旧内核支持它,因为它很有用。如果未提供temp标志,则条目将永久存储在ARP缓存中。要简单为你自己的网络接口设置条目,可以使用arp -Ds address ifname的形式。在这种情况下,硬件地址取自具有指定名称的接口。
命令行选项
-H type, –hw-type type, -t type 设置或读取ARP缓存时,此可选参数告诉arp命令应检查哪个条目类别。
此参数的默认值为“ether”,即IEEE 802.3 10Mbps以太网的硬件代码为“0x01”。其他值可能包括具体的网络技术,如ARCnet (arcnet) , PROnet (pronet) , AX.25 (ax25) , NET/ROM (netrom)。
-[……]

READ MORE

「ipmaddr(8)」-

添加、删除、显示多播地址
命令语法格式
ipmaddr [<operation>] [<args>]
命令描述
命令ipmaddr用于添加、删除、显示多播地址。
这个程序已经过时了。替换ipmaddr命令的为ip maddress命令。
命令支持的选项及含义
命令ipmaddr可以执行以下操作之一:
add 添加一个多播地址。
del 删除一个多播地址。
show 显示多播列表
相关手册
ip(8)
参考文献

ipmaddr(8) – Linux man page
维基百科中关于「多播Multicast」的介绍

更新日志

07/28/2018 创建文章[……]

READ MORE

「iptunnel(8)」-

创建和管理IP隧道
命令语法格式
iptunnel { add | change | del | show } [ NAME ] [ mode { ipip | gre | sit } ] [ remote ADDR ] [ local ADDR ] [ [i|o]seq ] [ [i|o]key KEY ] [ [i|o]csum ] [ ttl TTL ] [ tos TOS ] [ nopmtudisc ] [ dev PHYS_DEV ]
NAME := STRING ADDR := { IP_ADDRESS | any } TOS := { NUMBER | inherit } TTL := { 1..255 | inherit } KEY := { DOTTED_QUAD | NUMBER }
iptunnel -V | –version
命令描述
命令iptunnel可用于在计算机上添加、更改、删除、显示IP隧道。
命令支持的选项及含义
show 列出已经存在的IP隧道。
{ add | change | del } [ NAME ] 指定由iptunnel在名为NAME的隧道上执行的操作(添加、更改、删除),该隧道名NAME必须是字符串,且必须指定一个操作。
mode PROTOCOL 指定要用于IP隧道的协议PROTOCOL。其中,参数PROTOCOL可以是:

用于TCP/IP的“ipip”;
用于Cisco GRE隧道的“gre”,参考RFC 1701和RFC 1702;
用于IPv6-in-IPv4隧道的“sit”;

remote ADDR 设置隧道的远程地址(即目标)。参数ADDR必须是IP地址或单词“any“。
local ADDR 设置隧道的本地地址(即源)。参数ADDR必须是IP地址或单词”any“。
ttl TTL 指定IP隧道的生存时间值。 TTL必须是介于1和255之间的值,或者是单词”inherit“,这会导致从原始IP标头复制字段。
tos TOS 指定IP隧道的“服务类型”值。参数TOS必须是介于1和255之间的值,或者是单词”inherit“,这会导致从原始IP标头复制字段。
nopmtudisc 在此隧道上禁用”路径MTU发现“(Path MTU Discovery)。 请注意,固定的ttl与此选项不兼容。
dev PHYS_DEV 将隧道绑定到设备PHYS_DEV。
仅用于GRE的选项
iseq 要求所有传入的数据包都是序列化的。仅适用于GRE隧道。
oseq 为所有传出数据包启用序列化(排序)。 仅适用于GRE隧道。
ik[……]

READ MORE

「mii-tool(8)」-

查看、操纵与媒体无关的接口状态
命令语法格式
mii-tool [–verbose] [–version] [–reset] [–restart] [–watch] [–log] [–advertise=media,…] [–force=media] [–phy=addr] interface …
命令描述
此实用程序检查或设置网络接口的“媒体独立接口”(MII)单元的状态。大多数快速以太网适配器使用MII来自动协商链路速度和双工设置。
大多数智能网络设备使用自动协商协议来传达它们支持的媒体技术,然后选择最快的且相互支持的媒体技术。
选项-A(–advertise)可用于告知MII在协商过程中仅公布其所以功能的一个子集。某些无源设备(如单速集线器)无法自动协商。为了处理这样的设备,MII协议还允许通过简单地检测10baseT或100baseT链路节拍来建立链路。选项-F(–force)可用于强制MII在一种模式下运行,而不是自动协商。-A和-F选项是互斥的。
默认短输出中报告了每个接口的协商链接速度和链接状态。
命令支持的选项及含义
-v, –verbose 显示更详细的MII状态信息。如果使用两次该选项,还会显示原始MII寄存器内容。如果使用三次,将强制读取所有MII寄存器,包括非标准寄存器。在PHY通信甚至挂起时,无法保证PHY的任何有效答案。驱动程序为e1000e时,在读取寄存器0x07时将失败。
-R, –reset 将MII重置为默认的配置。
-r, –restart 重新启动自动协商。
-w, –watch 监视接口并报告链接状态的变化。以一秒的间隔轮询MII接口。
-l, –log 与-w一起使用,在系统日志中记录链接状态更改,而不是在标准输出上打印。
-F media, –force=media 禁用自动协商,并强制MII为100baseTx-FD、100baseTx-HD、10baseT-FD、10baseT-HD操作。
-A media,…, –advertise=media,… 启用并重新启动自动协商,并在协商过程中仅公布指定的媒体技术。应使用逗号分隔多种技术。有效媒体为100baseT4、100baseTx-FD、100baseTx-HD、10baseT-FD、10baseT-HD。
-p addr, –phy=addr 用值addr覆盖内核提供的MII地址。
-V, –version 显示程序版本信息。
问题诊断
SIOCGMIIPHY on ‘eth?’ failed: Invalid argument 如果接口未运行(up),内核将拒绝报告[……]

READ MORE

「nameif(8)」-

根据MAC地址来命名网络接口
命令语法格式
nameif [-c configfile] [-s] nameif [-c configfile] [-s] {interface macaddress}
命令描述
命令nameif基于MAC地址重命名网络接口。命令nameif查找具有给定MAC地址的接口,并将其重命名为给定的名称。
如果给出参数,将处理命令行上指定的接口。如果没有给出参数,则读取/etc/mactab文件。配置文件/etc/mactab的每一行都包含一个新的接口名称和一个以太网MAC地址。行允许以“#”开头来表示注释。
命令支持的选项及含义
-s 将错误日志写入到syslog中。
-c 读取由该选项指定的配置文件,而不是默认的/etc/mactab文件。
注意事项
命令nameif应该在接口激活前执行,否则会失败。
目前命令nameif只适用于有线网卡。
使用示例
将MAC地址为d6:c0:89:da:a0:17的网卡重命名为en0,执行如下命令:

# nameif en0 d6:c0:89:da:a0:17

上述命令会将MAC地址为d6:c0:89:da:a0:17的网卡重命名为en0。注意,执行该命令之前需要先将网卡关闭。
相关文件
/etc/mactab
参考文献

man 8 nameif, Version net-tools

更新日志

07/28/2018 创建文章[……]

READ MORE

「netstat(8)」-

打印网络链接、路由表、接口统计、伪装连接、组播成员信息
命令语法格式
netstat [address_family_options] [–tcp|-t] [–udp|-u] [–udplite|-U] [–sctp|-S] [–raw|-w] [–l2cap|-2] [–rfcomm|-f] [–listening|-l] [–all] [–numeric] [–numeric-hosts] [–numeric-ports] [–numeric-users] [–symbolic|-N] [–extend] [–timers|-o] [–program] [–verbose] [–continuous] [–wide|-W]
netstat {–route} [address_family_options] [–extend] [–verbose] [–numeric] [–numeric-hosts] [–numeric-ports] [–numeric-users] [–continuous]
netstat {–interfaces} [–all] [–extend] [–verbose] [–program] [–numeric] [–numeric-hosts] [–numeric-ports] [–numeric-users] [–continuous]
netstat {–groups|-g} [–numeric] [–numeric-hosts] [–numeric-ports] [–numeric-users] [–continuous]
netstat {–masquerade} [–extend|-e] [–numeric] [–numeric-hosts] [–numeric-ports] [–numeric-users] [–continuous]
netstat {–statistics} [–tcp|-t] [–udp|-u] [–udplite|-U] [–sctp|-S] [–raw|-w]
地址族参数
参数address_family_options取值如下:
[-4|–inet] [-6|–inet6] [–protocol={inet,inet6,unix,ipx,ax25,netrom,ddp,bluetooth,…}] [–unix|-x] [–inet|–ip|–tcpip] [–ax25] [–x25] [–rose] [–ash] [–bluetooth] [–ipx] [–netrom][……]

READ MORE

「plipconfig(8)」-

微调并口网络协议(PLIP)设备参数
命令语法格式
plipconfig interface [nibble NN] [trigger NN]
plipconfig [-V] [–version] [-h] [–help]
命令描述
命令plipconfig用于(希望)通过更改PLIP协议使用的默认时序参数来提高PLIP性能。实际的结果取决于并口(PL)硬件、电缆、PLIP链路两端的每台机器的CPU速度。
如果给出单个接口参数,则命令plipconfig仅显示给定接口的状态。否则,它将尝试设置选项。
PLIP,Parallel Line Internet Protocol,并口网络协议,参考维基百科「Parallel Line Internet Protocol」一文。
命令支持的选项及含义
nibble NN 设置缓慢减少等待值,以微秒为单位。 默认值为3000。
trigger NN 设置触发器等待值,以微秒为单位。 默认值为500。
在某些情况下,可以通过降低默认值来提高PLIP速度。过低的值可能导致CPU的过度使用,中断响应时间不佳导致串行端口丢失字符或丢弃PLIP数据包。更改plip的MTU也会影响PLIP速度。
注意事项
如果没有响应,最可能的原因是irq错误,需要使用ifconfig进行设置。少数情况是:在使用非常长的电缆时,默认参数太快的了。作为并行端口,你不应该未指定或设计用于驱动长电缆。
相关手册
ifconfig(8)
参考文献

man 8 plipconfig, Version net-tools 2.10-alpha
串并口的区别
串口与并口的区别

更新日志

07/28/2018 创建文章[……]

READ MORE

「rarp(8)」-

操纵系统RARP表
命令语法格式
rarp [-V] [–version] [-h] [–help] rarp -a rarp [-v] -d hostname … rarp [-v] [-t type] -s hostname hw_addr
命令描述
命令rarp以各种方式操纵内核的RARP表。主要选项是清除地址映射条目,并手动设置一个。出于调试目的,命令rarp还允许完全转储打印RARP表。
这个程序已经过时了。从Linux内核2.3版开始不再包含RARP支持。有关替换RARP守护程序的信息,请参阅:ftp://ftp.dementia.org/pub/net-tools
有关RAEP协议的信息可以参考维基百科的「Reverse Address Resolution Protocol」一文。
命令支持的选项及含义
-V 显示使用的RARP的版本。
-v 显示详细的输出,告诉用户发生了什么。
-t type 在设置或读取RARP表时,此可选参数告诉rarp命令应该检查哪类条目。
此参数的默认值为ether(即对于IEEE 802.3 10Mbps以太网的硬件代码为“0x01”)。其他值可能包括AX.25(ax25)等网络技术和NET/ROM(netrom)。
-a, –list 列出RARP表的条目。
-d hostname, –delete hostname 通过指定的主机名hostname来删除RARP条目。
-s hostname hw_addr, –set hostname hw_addr 为硬件地址设置为hw_addr的主机hostname创建RARP地址映射条目。
硬件地址hw_addr的格式取决于硬件类别,但对于大多数类,可以假设可以使用常用的表示格式。对于以太网类别,这是以十六进制表示的6个字节,以冒号分隔。
注意事项
某些系统(特别是较旧的Sun)假设回复RARP查询的主机也可以提供其他远程启动服务。 因此,除非你希望遇网络管理员的骂你,否则永远不要平白无故地添加rarp条目。
相关文件
/proc/net/rarp
相关手册
arp(8), route(8), ifconfig(8), netstat(8)
参考文献

man 8 rarp, Version net-tools

更新日志

07/28/2018 创建文章[……]

READ MORE