Linux下的打印工作
在Linux下采用假脫機(spooling)打印方法,當用戶需要打印一個文件時,該文件並不直接送到打印機,而是送到spool目錄下,然後由一個負責打印的後台進程把這些數據送入打印機。
Linux對每台打印機都定義了一個打印緩沖區,打印機守護程序經常掃描打印緩沖區以查看有無要打印的新文件。如果存在,就按先進先出的順序打印緩沖區中的文件。
Linux系統除了可以在本地打印機上打印外,還可以通過網絡打印機遠程打印。
用於打印的命令
Linux系統提供了一組有關打印的命令。一般情況下,打印命令使用默認打印機;如果用戶定義了PRINTER環境變量,打印命令就使用這個變量定義的打印機;另外,用戶還可以在命令行上指定要使用的打印機。
lpr命令
lpr命令是脫機打印命令,該命令將打印作業放到打印緩沖隊列中。為Linux系統指定的每台打印機都有自己的打印緩沖目錄,每個目錄中的minfree文件指定保存打印文件的磁盤塊的數量。
lpr同lpd守護進程通訊,lpd掃描/etc/printcap文件,查詢打印機對應的緩存目錄,然後由lpd控制打印,將需要打印的數據送到實際打印機上。如果沒有指定文件,lpr就使用標准輸入。
lpr命令的格式為:
lpr [-P printer] [#num] [其他選項] [name…]
命令中各選項的含義如下:
-P 指定打印機。如果不用此選項,則使用缺省打印機或環境變量PRINTER指定的打印機。
-m 打印完畢後發送email。
-#num 打印num份。
lpq命令
lpq是緩沖隊列檢查命令,它通過lpd在緩沖區中檢查打印文件,報告指定作業的狀態或指定用戶的所有作業。不帶任何參數的lpq命令顯示現在隊列中的任何作業。lpq命令的顯示結果中一個重要的信息就是作業標識號(作業ID),它標識一個特定的作業。如果用戶想取消一個掛起的作業,就必須在命令中指定這個標識號。
lpq命令的格式為:
lpq [-l] [-P printer] [job #] [user…]
命令中各選項的含義如下:
-P 指定一個打印機,否則使用缺省打印機或環境變量PRINTER指定的打印機。
-l 打印組成作業的所有文件的信息。
對提交的每一個作業,lpq報告用戶名、在隊列中的級別、組成作業的文件、作業標識以及總的大小等信息。
lprm命令
lprm命令用於從緩沖隊列中刪除打印作業,用戶可以使用該命令從緩沖隊列中刪除屬於自己的一個或多個打印作業。
lprm命令的格式為:
lprm [-P printer] [-] [job #] [user…]
命令中各選項的含義如下:
-P 指定一個打印機,否則使用缺省打印機或環境變量PRINTER指定的打印機。
- 刪除用戶所有的打印作業。
user 刪除隊列中屬於用戶user的作業(只有超級用戶可以這樣做)。
job # 通過指定作業號#刪除某個打印作業,作業號可以通過lpq命令得到,如:
$ lpq –l
lst:ken [job #013UCbarpa]
(standard input) 100 bytes
$ lprm 13
打印緩沖區目錄
對打印而言,有一個非常重要的目錄,就是打印緩沖區目錄,要打印的數據在被打印之前都集中到這裡。通常一台打印機對應一個打印緩沖區目錄,這樣比較容易管理打印機。例如,系統使用/var/spool/lpd作為主打印緩沖區,每個單獨的打印機都在主打印緩沖區下有一個與這台打印機同名的目錄。因此,名為ps_nff的打印機把/var/spool/lpd/ps_nff作為它的打印緩沖區目錄。
思 考 題
1. 如何查看你的系統中打印機的狀態?
2. 現需要將文件text進行打印,應如何操作?
3. 假設已將文件text提交打印,又不需要打印該文件了,想將它從打印隊列中刪除,應如何操作?
感謝TurboLinux公司提供本教程