- 移动开发
- 开发工具
【免费下载链接】ZeroTermux
lpadmin 是 CUPS(Common Unix Printing System,通用 Unix 打印系统)套件中用于配置打印机与打印类的核心管理命令,同时负责设置打印服务器的默认打印机。在 ZeroTermux(Android 平台上的 Termux 增强发行版)中,你可以在终端模拟器内直接执行该命令,管理基于 CUPS 的本地或网络打印服务。阅读本文后,你将掌握 lpadmin 的完整语法、全部选项的含义与组合用法,并能在 ZeroTermux 终端中独立完成打印机的添加、类管理、默认打印机设置与访问控制配置。
说明:本文档对应仓库中的内置命令手册 lpadmin.md,属于 ZeroTermux 内置命令库(app/src/main/assets/cmd/ 目录下数百个命令手册之一)的技术详解。
一、命令概述与适用场景
lpadmin用于配置 CUPS 套件中的打印机和类(class),也被用来设置打印服务器默认打印机。与面向用户的打印提交命令(如lp、lpr)不同,lpadmin 是管理员级配置工具,其操作对象是打印队列、打印类以及 PPD(PostScript Printer Description,PostScript 打印机描述)等底层资源。
在 ZeroTermux 场景下,lpadmin 的典型用途包括:
- 在安装并启动 CUPS 服务(如
service cups start或cupsd)后,添加本地或网络打印机队列; - 将多台打印机归入同一打印类,实现负载均衡或自动故障切换;
- 为打印机绑定 PPD 描述文件,以获得正确的驱动与打印属性;
- 设置打印服务器默认打印机,使
lp等命令无需指定目标即可打印; - 通过用户级访问控制,限定哪些用户可以提交打印任务。
二、命令语法
lpadmin 的命令形式简洁统一:
lpadmin(选项)(参数)所有配置动作都由选项驱动,最后通过「打印机」参数指定操作目标。例如:
lpadmin -p 打印机名 -E -P /path/to/ppd即表示:为名为「打印机名」的打印机配置指定的 PPD 描述文件,并允许它接受打印任务(-E)。
三、选项详解
lpadmin 提供了一套完整的选项,用于覆盖打印机配置的各个维度。下表完整罗列并逐项说明:
| 选项 | 作用说明 |
|---|---|
-c | 将打印机加入类(class)。配合打印机参数使用,可把一台或多台打印机归入一个打印类,实现任务分发与冗余 |
-i | 为打印机设置 "System V" 风格的接口脚本(interface script)。这类脚本在打印任务提交时被调用,用于预处理数据或调用外部程序 |
-m | 从 model 目录设置一个标准的 "System V" 接口脚本或 "PPD" 文件。即从 CUPS 内置的驱动/模型库中按名称加载标准配置 |
-o | 为 "PPD" 或服务器设置选项。可用于设置打印机特性参数(如-o media=a4、-o duplex=on),也可设置 CUPS 服务器级选项 |
-r | 从类中删除打印机。与-c相反,将指定打印机从某个打印类中移除 |
-u | 设置打印机用户级的访问控制。可定义允许或拒绝访问该打印机的用户清单 |
-D | 为打印机提供一个文字描述(description)。该描述会显示在打印管理界面中,便于识别 |
-E | 允许打印机接受打印任务。启用打印队列,使其可以接收并处理任务(注意:与 CUPS 中-E在部分子命令中表示加密协议的含义不同,此处专指启用队列) |
-L | 为打印机位置提供一个文字描述(location)。例如物理位置 "机房 3 层 A 区",便于运维定位 |
-P | 为打印机指定一个 PPD 描述文件。通过显式路径加载该打印机的 PostScript 打印机描述文件 |
-p | 指定要配置的打印机名称。这是大多数配置操作的前提,必须先指定目标打印机 |
-d | 设置默认打印机。将某台打印机设为 CUPS 服务器的默认输出设备 |
3.1 选项的组合逻辑
从源码结构和使用惯例看,lpadmin 的配置动作通常遵循「定位目标 + 施加配置」的组合模式:
- 定位目标:先用
-p 打印机名指定要配置的打印机; - 施加配置:再叠加一个或多个配置选项(
-P、-m、-i、-o、-D、-L、-u等); - 生效控制:用
-E启用队列,或用-c/-r调整打印机在类中的归属。
例如,为一个位于 "办公区" 的新打印机配置 PPD 并启用:
lpadmin -p office_printer -E -P /etc/cups/ppd/office_printer.ppd -L "办公区" -D "共享办公打印机"该命令同时完成了 PPD 绑定、位置与描述信息的写入以及队列启用,是实际运维中最常见的组合用法。
四、参数说明
lpadmin 的参数为打印机名称:指定要配置的打印机的名称。
该名称是配置操作的直接目标,必须与 CUPS 队列名一致。若在未用-p显式指定打印机的情况下使用-d等选项,则应结合参数位置给出目标名称。实际使用时建议始终让参数与-p保持一致,避免歧义。
五、实战示例
基于上述选项,整理出几个可直接在 ZeroTermux 终端中执行的典型配置流程:
5.1 添加并启用一台打印机
lpadmin -p office_printer -E -P /etc/cups/ppd/office_printer.ppd将office_printer与指定的 PPD 描述文件绑定,并启用其接受打印任务。
5.2 将打印机加入打印类
lpadmin -p office_printer -c sales_class lpadmin -p design_printer -c sales_class将两台打印机归入sales_class类。之后向该类提交任务时,CUPS 会自动在成员打印机之间进行调度。
5.3 从打印类中移除打印机
lpadmin -p design_printer -r sales_class将design_printer从sales_class类中删除。
5.4 设置默认打印机
lpadmin -d office_printer将office_printer设为 CUPS 服务器默认打印机,此后lp命令不指定目标时即输出到该打印机。
5.5 从标准 model 库加载驱动
lpadmin -p office_printer -m everywhere-m从 CUPS 的 model 目录加载标准接口脚本或 PPD 文件,everywhere是 CUPS 用于 IPP Everywhere / AirPrint 驱动自动发现的常用取值。
5.6 配置打印选项与访问控制
lpadmin -p office_printer -o media=a4 -u allow:user1,user2-o设置 PPD/服务器选项(此处将默认纸张设为 A4),-u限定仅user1、user2可以访问该打印机。
六、在 ZeroTermux 中的使用方式与仓库佐证
6.1 内置命令手册的加载机制
lpadmin 手册位于 ZeroTermux 的资产目录 app/src/main/assets/cmd/lpadmin.md。应用通过命令对话框的showCmdDetail方法加载并渲染这些手册:先用AssetManager.open("cmd/" + 命令名)读取 Markdown 原文,再交由 Markdown 解析器(Parser.builder())与 HTML 渲染器(HtmlRenderer.builder())处理后,在 WebView 中以 HTML 形式呈现给用户。对应实现可参见 CommandDialog.java。
这一机制意味着:你在 ZeroTermux 的终端帮助对话框中看到的 lpadmin 说明,正是本文所述的这份文档经过 Markdown 渲染后的结果。命令列表本身由 CommandDialog.java 通过assetManager.list("cmd")动态枚举,并支持输入关键字实时过滤,方便快速定位 lpadmin 等命令的手册。
6.2 执行前提
lpadmin 依赖 CUPS 运行环境,实际执行需满足以下前提:
- ZeroTermux 内已安装 CUPS 相关软件包(如
cups、cups-client)并通过pkg install完成安装; - CUPS 服务已启动(
cupsd或service cups start),lpadmin需要与 CUPS 调度器通信完成配置; - 配置类操作通常需要相应权限,普通 Termux 用户账户下一般可管理用户级打印队列,系统级配置视环境而定。
七、注意事项
-E在 lpadmin 中表示允许打印机接受打印任务(启用队列),与某些 CUPS 客户端命令中-E表示加密连接的语义不同,使用时需区分上下文;-m与-P都用于指定驱动描述:-m从 CUPS 内置 model 目录按名称加载,-P则直接指定 PPD 文件的显式路径,二者按需二选一;- 修改打印机配置后,可通过
lpstat -p查看打印机队列状态、lpstat -d查看默认打印机,验证 lpadmin 配置是否生效; - 若需删除打印机(文档未覆盖的操作),CUPS 提供
lpadmin -x 打印机名的删除接口,具体以当前 CUPS 版本支持为准。
通过本文的语法、选项表与实战示例,配合 ZeroTermux 内置手册的即时查阅能力,你可以在 Android 终端环境中完整掌握 lpadmin 的打印机与打印类配置技能。
- 移动开发
- 开发工具
【免费下载链接】ZeroTermux
相关推荐
ZeroTermux 命令行手册解读:cupsenable 命令详解与 CUPS 打印机启停实战
ZeroTermux 命令行手册解读:cupsenable 命令详解与 CUPS 打印机启停实战 导读 cupsenable 是 CUPS(Common UNI
移动开发开发工具ZeroTermux 内置命令手册解析:accept 命令与 CUPS 打印任务接收控制实战指南
ZeroTermux 内置命令手册解析:accept 命令与 CUPS 打印任务接收控制实战指南 导读 accept 是 CUPS(Common UNIX Pr
移动开发开发工具使用 Next.js Script Component 懒加载广告:script-component-ad 实战解析
使用 Next.js Script Component 懒加载广告:script component ad 实战解析 本文围绕当前仓库中 solutions/s
移动开发开发工具
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考