lp
是 Linux 系统中用于提交打印任务的标准命令,属于 CUPS(Common UNIX Printing System)打印系统的一部分,它允许用户从命令行将文本文件、图像或其他格式的文档发送到指定的打印机,并支持设置打印选项如份数、纸张大小、打印质量等,相较于图形界面的打印操作,lp
命令更适合批量打印、脚本自动化或远程服务器环境下的打印需求。

基本语法与常用选项
lp
命令的基本语法为:
lp [选项] [文件名]
若未指定文件名,lp
会从标准输入读取数据(例如通过管道传递内容),以下是常用选项及功能说明:
选项 | 功能描述 |
---|---|
-d 打印机 |
指定目标打印机名称(若未指定,使用默认打印机) |
-n 份数 |
设置打印份数(默认为 1) |
-o 选项 |
自定义打印参数(如纸张大小、双面打印等) |
-H 优先级 |
设置任务优先级(hold 暂停、immediate 立即、priority 级别) |
-t 标题 |
设置打印任务的标题(显示在打印队列中) |
-P 页面范围 |
打印指定页面(如 -P 1-3,5 表示打印第 1、2、3、5 页) |
-U 用户名 |
以指定用户身份提交打印任务(需管理员权限) |
核心使用场景与示例
打印单个文件
最简单的用法是直接打印文件,系统会自动使用默认打印机:
lp document.txt
若需指定打印机,通过 -d
选项指定打印机名称(可通过 lpstat -p
查看可用打印机):

lp -d HP_LaserJet_1020 report.pdf
设置打印份数与页面范围
打印 3 份文件,且仅打印第 2-4 页:
lp -n 3 -P 2-4 manual.docx
自定义打印参数
通过 -o
选项可调整打印细节,常用参数包括:
media=纸张大小
:如A4
、Letter
、Legal
sides=双面模式
:one-sided
(单面)、two-sided-long-edge
(长边双面)、two-sided-short-edge
(短边双面)fit-to-page
:自动缩放内容适应纸张大小landscape
:横向打印(默认为纵向portrait
)
示例:使用 A4 纸横向双面打印,并自动缩放内容:
lp -d Office_Printer -o media=A4 -o sides=two-sided-long-edge -o landscape -o fit-to-page presentation.pdf
从标准输入打印 需通过管道传递(如过滤文本后打印),可不指定文件名:
grep "error" system.log | lp -t "Error Logs"
此命令会将 system.log
中包含 "error" 的行过滤后发送到打印机,任务标题为 "Error Logs"。
管理打印任务
提交打印任务后,可通过 lpq
查看打印队列状态,或通过 cancel
取消任务:
lpq -a # 查看所有打印机的队列 cancel 请求ID # 取消指定任务(请求ID可通过lpq或lpstat -o查看)
进阶技巧与注意事项
- 默认打印机设置:通过
lpoptions -d 打印机名称
可设置默认打印机,后续lp
命令无需每次指定-d
选项。 - 打印格式限制:
lp
默认支持文本文件、PDF、PostScript(.ps)等格式,若需打印图片(如 .jpg、.png),需确保打印机支持直接图片打印,或先转换为 PDF。 - 任务优先级控制:通过
-H priority=级别
(级别范围 1-100,100 为最高)可调整任务执行顺序,lp -H priority=80 urgent.txt
- 远程打印:若打印机通过网络共享(如 CUPS 服务器),可通过
-h 服务器IP
指定远程打印服务器:lp -h 192.168.1.100 -d Network_Printer remote_file.txt
FAQs
Q1:如何查看系统中可用的打印机列表及其状态?
A1:使用 lpstat -p
命令可列出所有打印机及其状态(如 "idle" 空闲、"processing" 打印中、"stopped" 停止),若需查看默认打印机,使用 lpstat -d
。
lpstat -p -d
输出示例:
printer HP_LaserJet_1020 is idle. enabled since Mon 15 Jan 2024 09:30:12 AM CST
printer Office_Printer is processing. enabled since Mon 15 Jan 2024 10:15:22 AM CST
system default destination: HP_LaserJet_1020
Q2:为什么提交打印任务后,打印机没有反应?
A2:可能的原因及解决方法:
- 打印机未启用或暂停:通过
lpstat -p
查看打印机状态,若显示 "disabled",使用cupsenable 打印机名称
启用;若显示 "stopped",使用cupsaccept 打印机名称
接受任务。 - 打印任务被暂停:通过
lpstat -o
查看任务队列,若任务状态为 "held",使用lp -i 请求ID -H resume
恢复任务。 - 格式不支持:检查文件格式是否为打印机兼容格式(如文本、PDF、PostScript),尝试转换为 PDF 后重新打印。
- 纸张或墨盒问题:检查打印机物理状态(如缺纸、墨盒耗尽),可通过打印机控制面板或
lpstat -p -v
查看详细错误信息。