首頁 > 軟體

Linux列印檔案和傳送郵件

2020-06-16 17:53:24

通過前面的介紹,相信你對 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 需要密件傳送(密送)的使用者,多個使用者以逗號(,)分隔。


例如,向admin@yahoo.com傳送郵件:
$mail -s "Test Message" admin@yahoo.com
Hello everyone,
this is Linux tutorial and url is http://see.xidian.edu.cn/cpp/linux/.
Cc:
第一行是輸入的命令,-s表示郵件的主題,後面的admin@yahoo.com則是郵件的接收人,輸入完這行命令後回車,會進入郵件正文的編寫,你可以輸入任何文字,比如上面的兩行。輸入完郵件正文,需要按CTRL+D結束輸入,此時會提示你輸入Cc地址,即郵件抄送地址,沒有直接回車就完成了郵件的傳送。

也可以通過重定向操作符 < 來傳送檔案:
$mail -s "Report 05/06/07" admin@yahoo.com < demo.txt
通過上面的命令,就可以把demol.txt檔案的內容作為郵件的內容傳送給admin@yahoo.com了。

接收郵件不需要任何引數:
$mail
no email

本文永久更新連結地址http://www.linuxidc.com/Linux/2015-09/122931.htm


IT145.com E-mail:sddin#qq.com