Unix 简明教程

Unix / Linux Basic Utilities - Printing, Email

在本章中,我们将详细讨论 Unix 基本实用工具中的打印和电子邮件。到目前为止,我们已尝试了解 Unix 操作系统及其基本命令的本质。在本章中,我们将学习一些可在日常生活中使用的重要 Unix 实用工具。

Printing Files

在 Unix 系统上打印文件之前,你可能希望重新整理格式以调整页边距、突出显示一些单词等。大多数文件也可以在不重新整理格式的情况下打印,但打印的原始文件可能并不可取。

许多版本的 Unix 包含两个功能强大的文本格式化程序, nrofftroff

The pr Command

pr 命令在终端屏幕或打印机上对文件进行微调格式。例如,如果你有一个文件中的长名字列表,你可以将其格式化到屏幕分别成两列或更多列。

以下是 pr 命令的语法 −

pr option(s) filename(s)

pr 仅在屏幕或打印副本上更改文件的格式;它不会修改原始文件。下表列出了一些 pr 选项 −

Sr.No.

Option & Description

1

-k 生成 k 输出列

2

-d 输出双倍空格(并非对所有 pr 版本)

3

-h "header" 将下一项作为报告页眉

4

-t 消除了打印页眉和页眉/页脚

5

-l PAGE_LENGTH 将页面长度设置为 PAGE_LENGTH(66)行。文本默认行数为 56

6

-o MARGIN 使用 MARGIN(0)空格偏移每行

7

-w PAGE_WIDTH 将页面宽度设置为 PAGE_WIDTH(72)字符,仅适用于多文本列输出

在使用 pr 之前,以下为一个名为 food 的示例文件的内容。

$cat food
Sweet Tooth
Bangkok Wok
Mandalay
Afghani Cuisine
Isle of Java
Big Apple Deli
Sushi and Sashimi
Tio Pepe's Peppers
........
$

让我们使用 pr 命令创建一个带 Restaurants − 头部的两列报告

$pr -2 -h "Restaurants" food
Nov  7  9:58 1997  Restaurants   Page 1

Sweet Tooth              Isle of Java
Bangkok Wok              Big Apple Deli
Mandalay                 Sushi and Sashimi
Afghani Cuisine          Tio Pepe's Peppers
........
$

The lp and lpr Commands

命令 lplpr 会将文件打印在纸上,而不是屏幕上显示。一旦使用 pr 命令对格式进行设置,便可以使用以下任何命令将文件打印到连接到计算机的打印机上。

你的系统管理员很可能已在你的站点设置了默认的打印机。若要在默认打印机上打印名为 food 的文件,请像以下示例那样使用 lplpr 命令 −

$lp food
request id is laserp-525  (1 file)
$

lp 命令会显示一个 ID,可用于取消打印作业或查看作业状态。

  1. 如果你使用 lp 命令,则可以使用 -n*Num* 选项打印 Num 份。在 lpr 命令中,可使用 - Num 作相同操作。

  2. 如果与共享网络连接有多台打印机,则可以使用 lp 命令以及 -d*printer* 选项选择一台打印机,对于相同目的,你可以在 lpr 命令中使用 -P*printer* 选项。此处 printer 是打印机名称。

The lpstat and lpq Commands

lpstat 命令显示打印机队列中的内容:请求 ID、所有者、文件大小、发送打印作业的时间,以及请求的状态。

如果你想查看除自己以外的所有输出请求,请使用 lpstat -o 。请求按打印顺序显示 −

$lpstat -o
laserp-573  john  128865  Nov 7  11:27  on laserp
laserp-574  grace  82744  Nov 7  11:28
laserp-575  john   23347  Nov 7  11:35
$

lpq 提供的信息与 lpstat -o 略有不同 −

$lpq
laserp is ready and printing
Rank   Owner      Job  Files                  Total Size
active john       573  report.ps              128865 bytes
1st    grace      574  ch03.ps ch04.ps        82744 bytes
2nd    john       575  standard input         23347 bytes
$

此处第一行显示打印机状态。如果打印机已禁用或缺纸,你可能在此第一行看到不同的消息。

The cancel and lprm Commands

命令 cancel 可从 lp command 终结打印请求。 lprm 命令可终结所有 lpr requests 。你可以指定请求 ID(由 lp 或 lpq 显示)或打印机名称。

$cancel laserp-575
request "laserp-575" cancelled
$

要取消当前正在打印的任何请求,无论其 ID 如何,只需输入 cancel 和打印机名称 −

$cancel laserp
request "laserp-573" cancelled
$

lprm 命令会在活动作业属于你的情况下将其取消。否则,你可以将作业号作为参数给出,或使用 dash (-) 删除你的所有作业 −

$lprm 575
dfA575diamond dequeued
cfA575diamond dequeued
$

lprm 命令会告诉你实际从打印机队列中删除的文件名。

Sending Email

你使用终端邮件命令来发送和接收邮件。以下是发送电子邮件的语法 −

$mail [-s subject] [-c cc-addr] [-b bcc-addr] to-addr

以下是与邮件命令相关的部分重要选项 −s

Sr.No.

Option & Description

1

-s 在命令行中指定主题。

2

-c 将副本发送给用户列表。列表应该是由名称组成的、以逗号分隔的列表。

3

-b 将密件抄送给列表。列表必须为逗号分隔的名称列表。

以下是一个将测试消息发送给 admin@yahoo.com 的示例。

$mail -s "Test Message" admin@yahoo.com

然后,您需要在行首键入您的消息,后跟 "control-D" 。要停止,只需键入点 (.) ,如下所示 −

Hi,

This is a test
.
Cc:

您可以使用 redirect < operator 发送完整文件,如下所示 −

$mail -s "Report 05/06/07" admin@yahoo.com < demo.txt

要检查 Unix 系统中的传入电子邮件,只需键入电子邮件,如下所示 −

$mail
no email