Linux lprm命令用于从打印队列中删除打印作业,是CUPS打印系统的一部分。
lprm [选项] [作业号] [打印机名]
| 选项 | 说明 |
|---|---|
-E |
强制加密连接到服务器 |
-P 打印机 |
指定打印机名称 |
-U 用户名 |
指定用户名 |
- |
删除所有属于当前用户的作业 |
作业号 |
要删除的作业号(从lpq获取) |
--help |
显示帮助信息 |
# 首先查看当前打印队列中的作业
lpq
# 输出示例:
# Rank Owner Job File(s) Total Size
# active alice 123 document.pdf 102400 bytes
# 1st bob 124 report.txt 20480 bytes
# 删除作业号123的打印作业
lprm 123
# 删除指定打印机的特定作业
lprm -P HP_LaserJet 124
# 删除当前用户的所有打印作业
lprm -
# 删除指定用户的所有作业(需要相应权限)
lprm -U alice -
# 删除所有打印作业(需要管理员权限)
lprm -a
# 或者
lprm all
# 1. 提交打印作业
lpr document.txt
# 2. 查看打印队列
lpq
# 3. 发现错误,删除作业
# 假设lpq显示作业号为456
lprm 456
# 4. 修改文档后重新提交
lpr corrected_document.txt
#!/bin/bash
# 自动清理旧的打印作业
# 获取当前用户的所有作业号
job_ids=$(lpq | awk '/^[0-9]/ {print $3}')
# 删除所有找到的作业
for job_id in $job_ids; do
echo "删除作业: $job_id"
lprm $job_id
done
echo "所有打印作业已清理"
# 列出所有打印机
lpstat -p -d
# 删除特定打印机的所有作业
lprm -P printer1 -
lprm -P printer2 -
# 批量删除多个打印机的作业
for printer in $(lpstat -p | awk '{print $2}'); do
echo "清理打印机: $printer"
lprm -P $printer -
done
| 命令 | 功能 | 示例 |
|---|---|---|
lpr |
提交打印作业 | lpr document.pdf |
lpq |
查看打印队列 | lpq |
lprm |
删除打印作业 | lprm 123 |
lpstat |
显示打印机状态 | lpstat -t |
cancel |
取消打印作业(System V风格) | cancel 123 |
lp |
提交打印作业(System V风格) | lp document.txt |
lprm -删除所有作业时要谨慎lpq命令查看作业号后再删除可能原因: 权限不足或作业已完成
解决: 使用管理员权限或检查作业状态
sudo lprm 作业号
可能原因: 打印系统未安装
解决: 安装CUPS或lprng
sudo apt-get install cups-client # Ubuntu/Debian
sudo yum install cups-client # CentOS/RHEL
| 功能 | BSD风格(lpr/lpq/lprm) | System V风格(lp/lpstat/cancel) |
|---|---|---|
| 提交打印 | lpr file.txt |
lp file.txt |
| 查看队列 | lpq |
lpstat -o |
| 删除作业 | lprm 作业号 |
cancel 作业号 |
| 默认系统 | 传统BSD系统 | System V Unix |
| 现代使用 | Linux常见 | 商业Unix常见 |
# Ubuntu/Debian系统
sudo apt-get update
sudo apt-get install cups cups-client lpr
# CentOS/RHEL系统
sudo yum install cups cups-client
# 启动CUPS服务
sudo systemctl start cups
sudo systemctl enable cups
# 验证安装
which lprm
lpstat -t
lpr - 提交打印作业lpq - 查看打印队列状态lpstat - 显示打印机状态信息cancel - 取消打印作业(System V风格)lp - 提交打印作业(System V风格)cupsaccept - 允许向打印机发送作业