Linux nroff命令介绍
nroff命令是用来格式化文本,使其适合在终端或固定宽度的打印机上显示。它是Unix帮助系统的一个重要组成部分,用于格式化man页面的文本。nroff命令是从原始的roff命令发展而来的,与troff命令相关。nroff命令主要用于终端和打印机的输出,而troff命令主要用于排版系统的输出。nroff命令和troff命令使用相同的标记语言,一个源文件通常可以在nroff或troff中无需修改地使用。
Linux nroff命令适用的Linux版本
nroff命令是Unix和类Unix操作系统的标准命令,几乎所有的Linux发行版都支持nroff命令。如果你的Linux系统没有安装nroff命令,你可以使用以下命令来安装:
- 在基于Debian的Linux系统(如Ubuntu)中,使用
sudo apt-get install groff
命令来安装groff包,它包含了nroff命令和其他相关的工具。 - 在基于Red Hat的Linux系统(如CentOS)中,使用
sudo yum install groff
命令来安装groff包,它包含了nroff命令和其他相关的工具。 - 在基于Arch的Linux系统(如Manjaro)中,使用
sudo pacman -S groff
命令来安装groff包,它包含了nroff命令和其他相关的工具。
[linux@bashcommandnotfound.cn ~]$ sudo apt-get install groff # Debian-based Linux
[linux@bashcommandnotfound.cn ~]$ sudo yum install groff # Red Hat-based Linux
[linux@bashcommandnotfound.cn ~]$ sudo pacman -S groff # Arch-based Linux
Linux nroff命令的基本语法
nroff命令的基本语法格式如下:
nroff [选项] [文件...]
其中,选项可以是以下之一:
-e
:在调整后的行中使用等间隔的单词,使用完整的终端分辨率。-h
:在水平间距时使用输出制表符,以加快输出速度并减少输出字符数。制表符设置为每8个标称字符宽度。-i
:在输入文件耗尽后读取标准输入。-q
:调用rd请求的同时输入输出模式。-mname
:在输入文件之前添加宏文件/usr/share/lib/tmac/tmac.name。-nN
:将第一个生成的页面编号为N。-o
:只打印出现在逗号分隔的数字和范围列表中的页面。一个范围N-M表示从N到M的页面;一个初始-N表示从开始到第N页;一个最终N-表示从N到结束。-raN
:将寄存器a(一个字符)设置为N。-sN
:每N页停止。nroff在每N页(默认N=1)之前停止,以便加载或更换纸张,并在收到换行符后继续。-Tname
:为指定名称的设备准备输出。已知的名称有:37(TeleType Corporation Model 37终端,这是默认值),lp | tn300(GE - 任何没有半行功能的打印机或终端),300(DASI-300),3300-12(DASI-300 - 12点阵),300S(DASI-300S),300S-12(DASI-300S - 12点阵),382(DASI-382,花哨的DTC 382),450(DASI-450,Diablo Hyterm),450-12(DASI-450,Diablo Hyterm - 12点阵),832(AJ 832)。
Linux nroff命令的常用选项或参数说明
nroff命令的常用选项或参数有以下几个:
选项 | 说明 |
---|---|
-man | 使用man宏包来格式化man页面。 |
-me | 使用me宏包来格式化文档。 |
-mm | 使用mm宏包来格式化文档。 |
-ms | 使用ms宏包来格式化文档。 |
-mptx | 使用ptx宏包来格式化索引。 |
-z | 不输出格式化的文本,只输出错误信息。 |
Linux nroff命令的实例
以下是一些使用nroff命令的实例:
实例1:查看nroff命令的帮助信息
使用nroff -h
命令可以查看nroff命令的帮助信息,如下所示:
[linux@bashcommandnotfound.cn ~]$ nroff -h
usage: nroff [-ehiqz] [-mname] [-nnum] [-olist] [-r[cn]] [-s] [-Tname] [file ...]
实例2:格式化一个文本文件
假设有一个文本文件test.txt,内容如下:
This is a test file.
.nf
This is a table:
| Name | Age | Gender |
| --- | --- | --- |
| Alice | 20 | F |
| Bob | 21 | M |
| Charlie | 22 | M |
.fi
This is the end of the file.
使用nroff -ms test.txt
命令可以使用ms宏包来格式化这个文本文件,输出如下:
[linux@bashcommandnotfound.cn ~]$ nroff -ms test.txt
This is a test file.
This is a table:
Name Age Gender
Alice 20 F
Bob 21 M
Charlie 22 M
This is the end of the file.
实例3:格式化一个man页面
假设有一个man页面文件test.1,内容如下:
.TH TEST 1 "December 25, 2023" "Linux User's Manual"
.SH NAME
test \- a test program
.SH SYNOPSIS
.B test
.I [options] [arguments]
.SH DESCRIPTION
This is a test program that does nothing useful.
.SH OPTIONS
.TP
.B \-h, \-\-help
Show the help message and exit.
.TP
.B \-v, \-\-version
Show the version information and exit.
.SH AUTHOR
Written by Linux User.
.SH BUGS
No known bugs.
.SH SEE ALSO
.BR nroff (1)
使用nroff -man test.1
命令可以使用man宏包来格式化这个man页面,输出如下:
[linux@bashcommandnotfound.cn ~]$ nroff -man test.1
TEST(1) Linux User's Manual TEST(1)
NAME
test - a test program
SYNOPSIS
test [options] [arguments]
DESCRIPTION
This is a test program that does nothing useful.
OPTIONS
-h, --help
Show the help message and exit.
-v, --version
Show the version information and exit.
AUTHOR
Written by Linux User.
BUGS
No known bugs.
SEE ALSO
nroff(1)
Linux User's Manual December 25, 2023 TEST(1)
Linux nroff命令的注意事项
以下是一些使用nroff命令时需要注意的事项:
- nroff命令的选项和参数之间不能有空格,否则会被视为文件名。
- nroff命令的输入文件必须使用标准的nroff或troff标记语言,否则会出现格式错误。
- nroff命令的输出文件不能直接用于其他程序,如lpr或lp。
- 如果出现“bash: nroff: command not found”报错的解决办法。这个报错通常是因为你的系统没有安装你想要运行的命令,参考上面安装,或者你的 PATH 变量没有包含该命令的位置,请设置好环境变量。
评论区