上一章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:26 title 第 1 页
c++ java earth mars
shell linux italino 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-573 A 128865 Nov 7 11:27 on laserp
laserp-574 B 82744 Nov 7 01:28
laserp-575 C 23347 Nov 7 02:35
$
lpq给出的信息与lpstat -o略有不同:
$lpq
laserp is ready and printing
Rank Owner Job Files Total Size
active A 573 css 128865 bytes
1st B 574 f 82744 bytes
2nd C 575 standard input 23347 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系统中检查收到的电子邮件,只需按如下方式输入电子邮件:
$mail
no email
评论前必须登录!
注册