linux lprm命令

Linux lprm命令用于从打印队列中删除打印作业,是CUPS打印系统的一部分。

提示: lprm命令通常与lpr、lpq命令一起使用,分别用于提交、查看和删除打印作业。

语法格式

lprm [选项] [作业号] [打印机名]

常用选项

选项 说明
-E 强制加密连接到服务器
-P 打印机 指定打印机名称
-U 用户名 指定用户名
- 删除所有属于当前用户的作业
作业号 要删除的作业号(从lpq获取)
--help 显示帮助信息

使用示例

示例1:查看打印队列

# 首先查看当前打印队列中的作业
lpq

# 输出示例:
# Rank   Owner   Job     File(s)                         Total Size
# active alice   123     document.pdf                    102400 bytes
# 1st    bob     124     report.txt                      20480 bytes

示例2:删除特定打印作业

# 删除作业号123的打印作业
lprm 123

# 删除指定打印机的特定作业
lprm -P HP_LaserJet 124

示例3:删除所有当前用户的打印作业

# 删除当前用户的所有打印作业
lprm -

# 删除指定用户的所有作业(需要相应权限)
lprm -U alice -

示例4:删除所有打印作业

# 删除所有打印作业(需要管理员权限)
lprm -a

# 或者
lprm all

示例5:实际工作流程

# 1. 提交打印作业
lpr document.txt

# 2. 查看打印队列
lpq

# 3. 发现错误,删除作业
# 假设lpq显示作业号为456
lprm 456

# 4. 修改文档后重新提交
lpr corrected_document.txt

示例6:脚本中自动处理

#!/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 "所有打印作业已清理"

示例7:处理多个打印机

# 列出所有打印机
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 -删除所有作业时要谨慎
  • 不同Linux发行版的打印系统可能有差异
  • 使用lpq命令查看作业号后再删除
  • 正在打印的作业可能无法立即删除
  • 某些打印系统可能需要CUPS服务正在运行

故障排除

问题:无法删除作业

可能原因: 权限不足或作业已完成

解决: 使用管理员权限或检查作业状态

sudo lprm 作业号
问题:lprm命令不存在

可能原因: 打印系统未安装

解决: 安装CUPS或lprng

sudo apt-get install cups-client  # Ubuntu/Debian
sudo yum install cups-client      # CentOS/RHEL

系统V与BSD打印系统比较

功能 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 - 允许向打印机发送作业