到现在为止你肯定对 UNIX 系统已经有了一些大概的理解和一些命令的基本使用方式。本教程将介绍一些非常基本的但重要的 UNIX 实用工具。
在 UNIX 系统中,您打印一个文件之前,您可能想要重新格式化它调整它的边距,高亮显示一些单词等等。大多数文件也可以打印而不用重新格式化,但未经处理的打印可能不那么好看。
UNIX 系统的许多版本中都包含了两个强大的文本格式化命令,nroff 和 troff。他们不包含在本教程中,但是你可以在在网上查到很多关于讲解这两个命令的使用方式的资料。
pr 命令可以对终端显示屏上或者打印机上显示的文件进行小幅度的格式化。例如,如果在你的文件中有一长串名字,你可以将它格式化成两列或者多列在屏幕上显示。
如下是 pr 命令的语法示例:
pr option(s) filename(s)
pr 命令仅仅只是格式化显示在屏幕上或者打印的副本文件,它不会修改源文件。如下的列表显示一些 pr
命令中可选的参数:
操作 | 描述 |
---|---|
-k | 产生 k 列的输出 |
-d | 将输出用两个空格隔开(并不是所有的 pr 版本适用)。 |
-h "header" | 将下一个项目作为头部信息。 |
-t | 去掉打印中的头部和上/下边距。 |
-l PAGE_LENGTH | 设置一页存放的数据行数为 PAGE_LENGTH(66)。默认的文本行数为 56 行。 |
-o MARGIN | 设置每行之间的间隔为 MARGIN(0) 个空格。 |
-w PAGE_WIDTH | 设置页一行的字符个数为 PAGE_WIDTG(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 命令将输出变成两列,同时头部显示 Restaruants:
$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 将文件打印到纸上,而不是在屏幕上显示。一旦你准备使用 pr 命令格式化文本,您可以使用这些命令在任何与你电脑连接的打印机上打印你的文件。
您的系统管理员可能已经建立了一个站点作为默认打印机。为了在默认的打印机上打印一个文件命名 food 的文件,你可以使用 lp 或 lpr 命令,如下示例:
$lp food
request id is laserp-525 (1 file)
$
lp 命令显示了打印机的 ID,您可以使用它来取消打印作业或检查它的状态。
lpstat 命令显示在打印机队列中的作业:请求的 ID,所有者,文件大小,当打印任务被发送给打印机的时候,请求的状态同样也发送了给打印机。
如果你想看到所有输出请求而不仅仅是你自己的,你可以使用 pstat -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
$
lpg 显示的信息与 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 命令终止 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
如下是 mail 命令中重要的参数:
参数 | 描述 |
---|---|
-s | 在命令行中指定邮件的主题。 |
-c | 给列表中的用户发送副本。用户列表是由逗号分开的用户名列表。 |
-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 系统中你可以简单的输入如下的命令:
no email