在Linux操作系统中,打印文件是一项常见且重要的任务,无论是日常办公还是服务器管理,都可能需要将文档输出到打印机,Linux提供了多种打印命令和工具,以满足不同场景下的需求,本文将详细介绍Linux中常用的打印文件命令,包括它们的基本用法、选项参数以及适用场景,帮助用户高效完成打印任务。

最基础也是最常用的打印命令是lp
和lpr
,这两个命令是CUPS(Common UNIX Printing System,通用UNIX打印系统)的核心工具,几乎所有现代Linux发行版都默认支持。lp
命令的全称是“line printer”,其语法为lp [选项] 文件名
,而lpr
命令的语法为lpr [选项] 文件名
,两者功能相似,但选项略有不同。lp -d printer_name file
表示将文件发送到指定的打印机,而lpr -P printer_name file
中的-P
选项用于指定打印机名称(注意大小写),如果不指定打印机,系统会使用默认打印机。lp
和lpr
都支持多份打印,如lp -n 3 file
表示打印3份,而lpr -# 3 file
中的选项实现相同功能,对于双面打印,lp -o sides=two-sided-long-edge file
可以设置长边翻转,lpr -o duplex=long-edge file
则通过duplex
参数实现,这些基本选项覆盖了大多数日常打印需求。
除了直接打印文件内容,Linux还允许用户将文件发送为特定格式或进行预处理。enscript
命令可以将文本文件转换为PostScript格式并打印,适合处理纯文本文件,其常用选项包括-p
指定输出文件名,-G
添加页眉,-f
设置字体等。enscript -G -f Courier10 file
会以Courier字体、带页眉的方式将文件转换为PostScript并打印,对于PDF文件,直接使用lp
或lpr
可能无法正确渲染,此时可以借助cups-pdf
虚拟打印机将PDF转换为PostScript后再打印,或者使用evince
、okular
等文档查看器的打印功能,对于图片文件,lp
命令支持通过-o media
选项指定纸张类型,如-o media=a4
,而lpr
则可以通过-o
选项传递任意CUPS支持的参数,如-o resolution=600dpi
设置打印分辨率。
在批量打印或需要更灵活控制时,可以结合Linux的管道和重定向功能。cat file.txt | lp
可以将文件内容通过管道传递给lp
命令进行打印,而lp file1.txt file2.txt
则可以一次性打印多个文件,对于需要先处理再打印的场景,可以使用awk
、sed
等工具对文本进行过滤或格式化,再通过管道输出到打印命令。grep "keyword" file.txt | lp
可以只打印包含特定关键词的行。lpstat
命令是打印状态查看工具,lpstat -p
列出所有打印机,lpstat -o
显示打印作业队列,lpstat -t
则显示系统打印状态摘要,这些命令对于排查打印问题非常有用。
在服务器或无图形界面的环境中,命令行打印是主要方式,但Linux也支持通过图形界面工具进行打印,如系统设置中的打印管理器、GNOME的“打印机”应用或KDE的“打印系统”工具,这些工具通常提供更直观的配置选项,如添加打印机、设置默认纸张、管理打印队列等,底层仍依赖CUPS和命令行工具,对于高级用户,还可以编写Shell脚本实现自动化打印,例如结合find
命令批量处理目录中的文件并打印,或使用lpq
查看打印队列后通过lprm
取消特定作业。

为了更清晰地展示常用打印命令及其选项,以下表格总结了核心命令的功能和典型用法:
命令 | 功能描述 | 常用选项及示例 |
---|---|---|
lp | 基本打印命令 | -d 指定打印机:lp -d HP_LaserJet file ;-n 设置份数:lp -n 2 file |
lpr | 基本打印命令(BSD风格) | -P 指定打印机:lpr -P Brother_DCP file ;设置份数:lpr -# 3 file |
lpstat | 查看打印状态 | -p 列出打印机:lpstat -p ;-o 显示队列:lpstat -o ;-t 显示摘要:lpstat -t |
lprm | 取消打印作业 | 取消当前用户作业:lprm - ;取消指定作业ID:lprm 123 |
enscript | 文本转PostScript打印 | -G 添加页眉:enscript -G file ;-f 设置字体:enscript -f Times12 file |
在实际使用中,可能会遇到一些常见问题,打印作业卡在队列中,可以通过lpq
查看作业状态,若显示“held”,则可能是权限或配置问题,需检查/etc/cups/printers.conf
或使用lp -i job_id -H resume
恢复作业,又如,打印乱码通常是因为文件格式与打印机不兼容,对于PostScript打印机,需确保文件为PS或PDF格式;对于非PostScript打印机,可尝试通过cupsfilter
工具转换文件格式,确保打印机已正确连接并被CUPS识别,可通过lpinfo -v
查看系统支持的打印机设备,或访问http://localhost:631
(CUPS Web管理界面)进行配置。
Linux打印命令的强大之处在于其灵活性和可扩展性,通过组合不同的工具和选项,用户可以实现从简单文本到复杂文档的打印,同时支持批量处理和自动化任务,无论是日常办公还是服务器运维,掌握这些命令都能显著提升工作效率,随着CUPS的不断更新,Linux打印系统也在持续优化,支持更多网络打印机、高级功能(如装订、 stapling)和云打印服务,为用户提供了更丰富的打印体验。
相关问答FAQs
-
问:如何查看Linux系统中的默认打印机设置?
答:使用lpstat -d
命令可以查看当前设置的默认打印机,执行lpstat -d
后,若输出system default destination: HP_LaserJet
,则表示默认打印机为HP_LaserJet
,如需修改默认打印机,可通过lpoptions -d printer_name
命令设置,例如lpoptions -d Brother_DCP
将Brother_DCP
设为默认打印机。 -
问:Linux打印时如何指定纸张大小和打印方向?
答:可通过lp
或lpr
的-o
选项传递CUPS支持的参数,指定A4纸张:lp -o media=a4 file
;指定Letter纸张:lpr -o media=letter file
,打印方向可通过sides
参数控制,如长边翻转(双面打印):lp -o sides=two-sided-long-edge file
;短边翻转:lp -o sides=two-sided-short-edge file
,部分打印机还支持orientation
参数,如lp -o orientation=landscape file
设置为横向打印。