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的樣本檔案的內容。

$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命令一起使用。此處printer是印表機名稱。

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命令傳送和接收郵件。以下是傳送電子郵件的語法:

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

以下是與mail命令相關的重要的選項-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系統上檢查收到的電子郵件,只需鍵入email,如下所示:

$mail
no email
廣告