在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作為它的列印緩衝區目錄。
[火星人
]
Linux下的列印工作命令已經有340次圍觀
http://coctec.com/docs/linux/show-post-120692.html