Unix / Linux 基本实用程序 - 打印、电子邮件

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


打印文件

在 Unix 系统上打印文件之前,您可能需要重新格式化它以调整页边距、突出显示某些单词等。 大多数文件也可以在不重新格式化的情况下打印,但原始打印输出可能没有那么吸引人。

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

pr 命令

pr 命令在终端屏幕或打印机上对文件进行次要格式化。 例如,如果文件中有一长串姓名,您可以在屏幕上将其格式化为两列或更多列。

以下是 pr 命令的语法 −

pr option(s) filename(s)

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

序号 选项 & 描述
1

-k

产生 k 列输出

2

-d

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

3

-h "header"

将下一个项目作为报表标题

4

-t

消除页眉和上/下边距的打印

5

-l PAGE_LENGTH

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

6

-o MARGIN

用 MARGIN(零)空格偏移每一行

7

-w PAGE_WIDTH

仅针对多文本列输出将页面宽度设置为 PAGE_WIDTH (72) 个字符

在使用 pr 之前,这里是一个名为 food.zip 的示例文件的内容。

$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
........
$

lp 和 lpr 命令

命令 lplpr 将文件打印到纸上而不是屏幕显示。 一旦您准备好使用 pr 命令进行格式化,您就可以使用这些命令中的任何一个在连接到您计算机的打印机上打印您的文件。

您的系统管理员可能已经在您的站点设置了默认打印机。 要在默认打印机上打印名为 food 的文件,请使用 lplpr 命令,如下例所示 −

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

lp 命令显示一个 ID,您可以使用它来取消打印作业或检查其状态。

  • 如果您使用lp 命令,您可以使用-nNum 选项来打印Num 份数。 除了命令 lpr 之外,您还可以使用 -Num

  • 如果有多台打印机连接到共享网络,那么您可以使用 -dprinter 选项和 lp 命令选择一台打印机,出于同样的目的,您可以使用 -Pprinter 选项以及 lpr 命令。 这里的打印机是打印机名称。

lpstat 和 lpq 命令

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
$

此处第一行显示打印机状态。 如果打印机被禁用或纸张用完,您可能会在第一行看到不同的消息。

cancel 和 lprm 命令

cancel 命令终止来自 lp 命令 的打印请求。 lprm 命令终止所有 lpr 请求。 您可以指定请求的 ID(由 lp 或 lpq 显示)或打印机的名称。

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

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

$cancel laserp
request "laserp-573" cancelled
$

lprm 命令将取消属于您的活动作业。 否则,您可以提供作业编号作为参数,或使用破折号 (-) 删除所有作业 −

$lprm 575
dfA575diamond dequeued
cfA575diamond dequeued
$

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


发送邮件

您使用 Unix 邮件命令发送和接收邮件。 这是发送电子邮件的语法 −

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

这里是与邮件命令相关的重要选项 −s

序号 选项 & 描述
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