Unix和Linux基本工具(打印文件和发送邮件)

上一章Unix和Linux教程请查看:Unix和Linux环境和环境变量
在本章中我们将详细讨论作为Unix基本实用工具的打印和电子邮件,到目前为止我们已经基本了解Unix操作系统及其基本命令的性质,在本章中我们将学习一些可以在日常生活中常用的重要Unix实用程序。
一、打印文件在我们在Unix系统上打印文件之前,你可能希望重新格式化它,以调整页边距、突出显示某些单词等等。大多数文件也可以不经过重新格式化就打印出来,但是原始的打印输出可能没有那么吸引人。其中Unix的许多版本都包含两个强大的文本格式化器:nroff和troff。
1、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 用空白(零)来偏移每一行
7 -w PAGE_WIDTH 仅为多个文本列输出将页宽设置为PAGE_WIDTH(72)字符
在使用pr之前下面是一个名为chars的示例文件的内容。
$cat chars c++ java shell linux ubuntu redhat earth mars italino espanol $

让我们使用pr命令生成格式化的两列报告
$ pr -2 -h "title" chars 2019-11-23 16:26title第 1 页c++ javaearth mars shell linuxitalino espanol ubuntu redhat

2、lp和lpr命令命令lp或lpr将文件打印到纸上,而不是在屏幕上显示。一旦你准备好使用pr命令进行格式化,你就可以使用这些命令中的任何一个来在连接到你的计算机的打印机上打印你的文件。
你的系统管理员可能在你的站点上设置了默认打印机,要在默认打印机上打印名为chars的文件,请使用lp或lpr命令如下面的示例所示
$lp chars request id is laserp-671 file) $

lp命令显示一个ID,你可以使用它来取消打印作业或检查其状态。
  • 如果使用lp命令,可以使用-nNum选项打印副本的数量,除了lpr命令外,你还可以使用-Num进行相同的操作。
  • 如果有多个打印机连接到共享网络,那么你可以使用-dprinter选项和lp命令来选择打印机,出于同样的目的也可以使用-Pprinter选项和lpr命令来选择打印机,其中这里打印机printer是打印机名。
3、lpstat和lpq命令lpstat命令显示打印机队列中的内容:请求id、所有者、文件大小、何时发送作业进行打印以及请求的状态。
如果希望查看除你自己的请求之外的所有输出请求请使用lpstat –o,请求按它们将被打印的顺序显示:
$lpstat -o laserp-573A128865Nov 711:27on laserp laserp-574B82744Nov 701:28 laserp-575C23347Nov 702:35 $

lpq给出的信息与lpstat -o略有不同:
$lpq laserp is ready and printing RankOwnerJobFilesTotal Size active A573css128865 bytes 1stB574f82744 bytes 2ndC575standard input23347 bytes $

在这里第一行显示打印机状态。如果打印机被禁用或用光了纸张,你可能会在第一行看到不同的消息。
4、cancel和lprm命令cancel命令终止lp命令的打印请求,而lprm命令终止所有lpr请求,你可以指定请求的ID(由lp或lpq显示)或打印机的名称。
$cancel laserp-671 request "laserp-671" cancelled $

要取消当前正在打印的任何请求(无论其ID是什么),只需输入cancel和打印机名称:
$cancel laserp request "laserp-562" cancelled $

如果活动作业属于你那么lprm命令将取消它,否则你可以将作业编号作为参数,或者使用破折号(-)删除所有作业:
$lprm 673 dfA673diamond dequeued cfA673diamond dequeued $

lprm命令告诉你从打印机队列中删除的实际文件名。
二、发送邮件使用Unix邮件命令发送和接收邮件,以下是发送电子邮件的语法:
$mail [-s subject] [-c cc-addr] [-b bcc-addr] to-addr

以下是与邮件命令相关的重要选项:
编号 选项 & 描述
1 -s 在命令行中指定subject。
2 -c 向用户列表发送复写件,列表应该是一个独立的名称列表。
3 -b 发送盲复写到名单,列表应该是一个独立的名称列表。
下面是向admin@163.com发送测试消息的示例。
$mail -s "My Message" admin@163.com

接着需要键入消息,然后在行首键入“control-D”,要停止只需按如下方式输入点(.):
Hi,a test . Cc:

可以使用重定向< 操作符发送完整的文件如下所示:
$mail -s "just test" admin@163.com < sample.txt

【Unix和Linux基本工具(打印文件和发送邮件)】要在Unix系统中检查收到的电子邮件,只需按如下方式输入电子邮件:
$mail no email

    推荐阅读