歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux打印文件和發送郵件

Linux打印文件和發送郵件

日期:2017/2/28 13:58:05   编辑: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

Copyright © Linux教程網 All Rights Reserved