侧边栏壁纸
Linux入门自学网博主等级

每日学一条Linux命令,终成Linux大神

  • 累计撰写 725 篇文章
  • 累计创建 143 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Linux nroff命令教程:如何用nroff格式化文本和man页面(附实例详解和注意事项)

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 变量没有包含该命令的位置,请设置好环境变量。
0

评论区