在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),它標識一個特定的作業。如果用戶想取消一個掛起的作業,就必須在命令中指定這個標識號。