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“标头”

将下一项作为报告标题

4

-t

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

5

-l PAGE_LENGTH

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

6

-o 边距

用 MARGIN(零)空格偏移每行

7

-w 页面宽度

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

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

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

让我们使用pr命令制作一个标题为“餐馆”的两列报告-

$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命令,则可以使用 -n Num选项来打印 Num 份数。与命令lpr一起,您可以使用 -Num实现相同的效果。

  • 如果有多个打印机连接到共享网络,那么您可以使用 -d打印机选项和 lp 命令来选择打印机,出于同样的目的,您可以使用 -P打印机选项和 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 laserp
request "laserp-573" cancelled
$

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

$lprm 575
dfA575diamond dequeued
cfA575diamond dequeued
$

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

发送电子邮件

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

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

您可以使用重定向 < 运算符发送完整的文件,如下所示 -

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

要在 Unix 系统上检查传入的电子邮件,您只需输入电子邮件,如下所示 -

$mail
no email