天天看點

linux系統學習之Linux列印檔案和發送郵件

檔案列印

如果你希望列印文本檔案,最好預先處理一下,包括調整邊距、設定行高、設定标題等,這樣列印出來的檔案更加美觀,易于閱讀。當然,不處理也可以列印,但是可能會比較醜陋。

大部分的Linux自帶了 nroff 和 troff 兩個強大的文本格式化工具,不過比較老舊,使用的人很少,有興趣的讀者可以可以自行學習,本教程不再進行深入講解。

pr指令

pr 指令用來将文本檔案轉換成适合列印的格式,它可以把較大的檔案分割成多個頁面進行列印,并為每個頁面添加标題。

pr 指令的文法如下:

pr option(s) filename(s)
           

pr 指令僅僅改變檔案在螢幕上的顯示樣式和列印輸出樣式,并不會更改檔案本身。下表是 pr 指令的幾個選項:

選項 說明
-k 分成幾列列印,預設為1。
-d 兩倍行距(并不是所有版本的 pr 都有效)。
-h "header" 設定每個頁面的标題。
-t 不列印标題和上下邊距。
-l PAGE_LENGTH 每頁顯示多少行。預設是每個頁面一共66行,文本占56行。
-o MARGIN 每行縮進的空格數。
-w PAGE_WIDTH 多列輸出時,設定頁面寬度,預設是72個字元。

例如,food 檔案包含了很多食品的名字,使用 pr 指令分成兩列列印,并設定每頁的标題為“Restaurants”。

首先檢視檔案内容:

$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指令

lp 和 lpr 指令将檔案傳送到列印機進行列印。使用 pr 指令将檔案格式化後就可以使用這兩個指令來列印。

列印機一般由系統管理者來設定,下面的例子使用預設的列印機列印food檔案:

$lp food
request id is laserp-525  (1 file)
           

指令成功執行會傳回一個表示列印任務的ID,通過這個ID可以取消列印或者檢視列印狀态。

如果你希望列印多份檔案,可以使用 lp 的 -nNum 選項,或者 lpr 指令的 -Num 選項。Num 是一個數字,可以随意設定。

如果系統連接配接了多台列印機,可以使用 lp 指令的 -dprinter 選項,或者 lpr 指令的 -Pprinter 選項來選擇列印機。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
           

lpstat -o 指令按照列印順序輸出隊列中的檔案。

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 和 lprm 分别用來終止 lp 和 lpr 的列印請求。使用這兩個指令,需要指定ID(由 lp 或 lpq 傳回)或列印機名稱。

例如,通過ID取消列印請求:

$cancel laserp-575
request "laserp-575" cancelled
           

如果希望取消正在列印的檔案,那麼可以不指定ID,僅僅指定列印機名稱即可:

$cancel laserp
request "laserp-573" cancelled
           

lprm 指令用來取消目前使用者的正在等待列印的檔案,使用任務号作為參數可以取消指定檔案,使用橫線(-)作為參數可以取消所有檔案。

例如,取消575号列印任務:

$lprm 575
dfA575diamond dequeued
cfA575diamond dequeued
           

lprm 會傳回被取消的檔案名。

發送郵件

可以使用mail指令發送和接收郵件,文法如下:

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

每個選項的含義如下:

選項 描述
-s 郵件标題。
-c 要發送的使用者,多個使用者以逗号(,)分隔。
-b 需要密件發送(密送)的使用者,多個使用者以逗号(,)分隔。

例如,向[email protected]發送郵件:

$mail -s "Test Message" [email protected]
Hello everyone, 
this is Linux tutorial and url is http://see.xidian.edu.cn/cpp/linux/.
Cc:
           

第一行是輸入的指令,-s表示郵件的主題,後面的[email protected]則是郵件的接收人,輸入完這行指令後回車,會進入郵件正文的編寫,你可以 輸入任何文字,比如上面的兩行。輸入完郵件正文,需要按CTRL+D結束輸入,此時會提示你輸入Cc位址,即郵件抄送位址,沒有直接回車就完成了郵件的發 送。

也可以通過重定向操作符 < 來發送檔案:

$mail -s "Report 05/06/07" [email protected] < demo.txt
           

通過上面的指令,就可以把demol.txt檔案的内容作為郵件的内容發送給[email protected]了。

接收郵件不需要任何參數:

$mail
no email
           

版權聲明:本文為CSDN部落客「weixin_34161032」的原創文章,遵循CC 4.0 BY-SA版權協定,轉載請附上原文出處連結及本聲明。

原文連結:https://blog.csdn.net/weixin_34161032/article/details/91891896