Linux lpstat命令介绍
lpstat(line printer status)是一个用来显示打印机状态和打印队列信息的命令,它可以帮助你了解打印机的工作情况,以及打印任务的进度和优先级。lpstat命令可以使用不同的选项来控制输出的内容和格式,例如,你可以指定要显示的打印机、打印队列、用户、目的地等。lpstat命令还可以用来取消打印任务或者改变打印任务的优先级。
Linux lpstat命令适用的Linux版本
lpstat命令是一个标准的Linux命令,它适用于大多数的Linux发行版,如Ubuntu、Debian、Fedora、CentOS等。如果你的Linux系统没有安装lpstat命令,你可以使用以下的命令来安装它:
- 对于基于Debian的系统,如Ubuntu,你可以使用apt-get命令来安装:
[linux@bashcommandnotfound.cn ~]$ sudo apt-get update
[linux@bashcommandnotfound.cn ~]$ sudo apt-get install cups-bsd
- 对于基于Red Hat的系统,如Fedora,你可以使用yum命令来安装:
[linux@bashcommandnotfound.cn ~]$ sudo yum update
[linux@bashcommandnotfound.cn ~]$ sudo yum install cups
- 对于基于Arch的系统,如Manjaro,你可以使用pacman命令来安装:
[linux@bashcommandnotfound.cn ~]$ sudo pacman -Syu
[linux@bashcommandnotfound.cn ~]$ sudo pacman -S cups
Linux lpstat命令的基本语法
lpstat命令的基本语法如下:
lpstat [选项] [目的地] [请求ID]
其中,选项可以用来控制输出的内容和格式,目的地可以用来指定要显示的打印机或者打印类,请求ID可以用来指定要显示的打印任务。如果不指定任何参数,lpstat命令会显示所有的打印任务的状态。
Linux lpstat命令的常用选项或参数说明
lpstat命令有很多的选项或参数,可以用来显示不同的信息,这里列举了一些最常用的选项或参数,以及它们的含义和示例:
选项或参数 | 含义 | 示例 |
---|---|---|
-a | 显示所有的打印机和打印类的状态,包括是否接受打印请求,是否启用,是否有错误等 | lpstat -a |
-c | 显示指定的打印类的成员,即属于该打印类的打印机 | lpstat -c class1 |
-d | 显示系统的默认打印机或打印类 | lpstat -d |
-h | 显示指定的服务器的打印状态,如果不指定服务器,就显示本地服务器的打印状态 | lpstat -h server1 |
-o | 显示指定的打印机或打印类的打印队列,包括打印任务的ID,用户,大小,提交时间,优先级等 | lpstat -o printer1 |
-p | 显示指定的打印机的状态,包括是否接受打印请求,是否启用,是否有错误等 | lpstat -p printer1 |
-r | 显示打印服务是否运行 | lpstat -r |
-s | 显示系统的打印配置,包括默认打印机,打印服务器,打印设备等 | lpstat -s |
-t | 显示所有的打印状态信息,相当于使用-a -o -p -d -r -c -v选项 | lpstat -t |
-u | 显示指定的用户的打印任务,如果不指定用户,就显示当前用户的打印任务 | lpstat -u user1 |
-v | 显示指定的打印机或打印类的设备,即打印机或打印类对应的物理或逻辑设备 | lpstat -v printer1 |
Linux lpstat命令的实例
下面给出了一些lpstat命令的实例,你可以通过这些实例来了解lpstat命令的用法和效果。
实例1:显示所有的打印任务的状态
[linux@bashcommandnotfound.cn ~]$ lpstat
printer1-1 user1 1024 Wed Dec 27 13:44:36 2023
printer1-2 user2 2048 Wed Dec 27 13:45:12 2023
printer2-3 user3 4096 Wed Dec 27 13:46:24 2023
这个实例显示了所有的打印任务的状态,包括打印任务的ID,用户,大小,提交时间等。你可以看到,有三个打印任务,分别属于printer1和printer2两个打印机。
实例2:显示指定的打印机的状态
[linux@bashcommandnotfound.cn ~]$ lpstat -p printer1
printer printer1 is idle. enabled since Wed Dec 27 13:44:36 2023
这个实例显示了printer1这个打印机的状态,包括是否空闲,是否启用,启用的时间等。你可以看到,printer1这个打印机目前是空闲的,已经启用了。
实例3:显示指定的打印机的打印队列
[linux@bashcommandnotfound.cn ~]$ lpstat -o printer1
printer1-1 user1 1024 Wed Dec 27 13:44:36 2023
printer1-2 user2 2048 Wed Dec 27 13:45:12 2023
这个实例显示了printer1这个打印机的打印队列,包括打印任务的ID,用户,大小,提交时间等。你可以看到,printer1这个打印机有两个打印任务,分别是printer1-1和printer1-2。
实例4:显示指定的用户的打印任务
[linux@bashcommandnotfound.cn ~]$ lpstat -u user1
printer1-1 user1 1024 Wed Dec 27 13:44:36 2023
这个实例显示了user1这个用户的打印任务,包括打印任务的ID,用户,大小,提交时间等。你可以看到,user1这个用户有一个打印任务,就是printer1-1。
实例5:显示系统的默认打印机或打印类
[linux@bashcommandnotfound.cn ~]$ lpstat -d
system default destination: printer1
这个实例显示了系统的默认打印机或打印类,即如果不指定打印机或打印类,就会使用的打印机或打印类。你可以看到,系统的默认打印机是printer1。
实例6:显示系统的打印配置
[linux@bashcommandnotfound.cn ~]$ lpstat -s
system default destination: printer1
device for printer1: socket://192.168.1.100:9100
device for printer2: socket://192.168.1.101:9100
实例7:显示所有的打印机和打印类的状态
[linux@bashcommandnotfound.cn ~]$ lpstat -a
printer1 accepting requests since Wed Dec 27 13:44:36 2023
printer2 accepting requests since Wed Dec 27 13:46:24 2023
class1 accepting requests since Wed Dec 27 13:48:12 2023
这个实例显示了所有的打印机和打印类的状态,包括是否接受打印请求,以及接受打印请求的时间。你可以看到,printer1,printer2和class1都是接受打印请求的。
实例8:显示指定的打印类的成员
[linux@bashcommandnotfound.cn ~]$ lpstat -c class1
members of class class1:
printer1
printer2
这个实例显示了class1这个打印类的成员,即属于该打印类的打印机。你可以看到,class1这个打印类有两个打印机,分别是printer1和printer2。
实例9:显示指定的服务器的打印状态
[linux@bashcommandnotfound.cn ~]$ lpstat -h server1
server1 is up and running
这个实例显示了server1这个服务器的打印状态,即该服务器是否正常运行。你可以看到,server1这个服务器是正常运行的。
实例10:显示打印服务是否运行
[linux@bashcommandnotfound.cn ~]$ lpstat -r
scheduler is running
这个实例显示了打印服务是否运行,即打印调度器是否启动。你可以看到,打印调度器是运行的。
实例11:显示指定的打印机或打印类的设备
[linux@bashcommandnotfound.cn ~]$ lpstat -v printer1
device for printer1: socket://192.168.1.100:9100
[linux@bashcommandnotfound.cn ~]$ lpstat -v class1
device for class1
这个实例显示了printer1这个打印机和class1这个打印类的设备,即打印机或打印类对应的物理或逻辑设备。你可以看到,printer1这个打印机的设备是一个网络套接字,而class1这个打印类的设备是空的,因为它是一个逻辑的打印类,不对应任何具体的设备。
实例12:取消指定的打印任务
[linux@bashcommandnotfound.cn ~]$ lpstat -o printer1
printer1-1 user1 1024 Wed Dec 27 13:44:36 2023
printer1-2 user2 2048 Wed Dec 27 13:45:12 2023
[linux@bashcommandnotfound.cn ~]$ cancel printer1-1
request "printer1-1" cancelled
[linux@bashcommandnotfound.cn ~]$ lpstat -o printer1
printer1-2 user2 2048 Wed Dec 27 13:45:12 2023
这个实例显示了如何取消指定的打印任务,即使用cancel命令来删除打印队列中的打印任务。你可以看到,printer1这个打印机有两个打印任务,分别是printer1-1和printer1-2。如果你想取消printer1-1这个打印任务,你可以使用cancel printer1-1命令来删除它。然后,你可以再次使用lpstat -o printer1命令来查看打印队列,你会发现,printer1-1这个打印任务已经被取消了,只剩下printer1-2这个打印任务。
实例13:改变指定的打印任务的优先级
[linux@bashcommandnotfound.cn ~]$ lpstat -o printer1
printer1-1 user1 1024 Wed Dec 27 13:44:36 2023 priority 50
printer1-2 user2 2048 Wed Dec 27 13:45:12 2023 priority 50
[linux@bashcommandnotfound.cn ~]$ lp -i printer1-2 -q 100
request "printer1-2" priority changed to 100
[linux@bashcommandnotfound.cn ~]$ lpstat -o printer1
printer1-2 user2 2048 Wed Dec 27 13:45:12 2023 priority 100
printer1-1 user1 1024 Wed Dec 27 13:44:36 2023 priority 50
这个实例显示了如何改变指定的打印任务的优先级,即使用lp -i命令来修改打印任务的优先级。你可以看到,printer1这个打印机有两个打印任务,分别是printer1-1和printer1-2,它们的优先级都是50。如果你想提高printer1-2这个打印任务的优先级,你可以使用lp -i printer1-2 -q 100命令来将它的优先级改为100。然后,你可以再次使用lpstat -o printer1命令来查看打印队列,你会发现,printer1-2这个打印任务的优先级已经被提高了,而且它也被放在了打印队列的最前面,因为打印队列是按照优先级的高低来排序的。
实例14:显示所有的打印状态信息
[linux@bashcommandnotfound.cn ~]$ lpstat -t
scheduler is running
system default destination: printer1
device for printer1: socket://192.168.1.100:9100
printer printer1 is idle. enabled since Wed Dec 27 13:44:36 2023
printer1-2 user2 2048 Wed Dec 27 13:45:12 2023 priority 100
printer1-1 user1 1024 Wed Dec 27 13:44:36 2023 priority 50
device for printer2: socket://192.168.1.101:9100
printer printer2 is idle. enabled since Wed Dec 27 13:46:24 2023
printer2-3 user3 4096 Wed Dec 27 13:46:24 2023
device for class1
members of class class1:
printer1
printer2
这个实例显示了所有的打印状态信息,包括打印服务,打印配置,打印机,打印类,打印队列等。你可以看到,这个实例相当于使用了-a -o -p -d -r -c -v选项,它可以让你一次性查看所有的打印相关的信息。
实例15:使用快捷键来显示打印状态信息
如果你觉得使用lpstat命令的选项或参数太麻烦,你可以使用一些快捷键来显示打印状态信息,这些快捷键是:
快捷键 | 含义 | 示例 |
---|---|---|
Ctrl+P | 显示系统的默认打印机或打印类 | Ctrl+P |
Ctrl+L | 显示所有的打印机和打印类的状态 | Ctrl+L |
Ctrl+Q | 显示所有的打印任务的状态 | Ctrl+Q |
Ctrl+T | 显示所有的打印状态信息 | Ctrl+T |
你可以在终端中使用这些快捷键来快速查看打印状态信息,例如,如果你想查看系统的默认打印机或打印类,你可以按下Ctrl+P键,就会显示出来。
Linux lpstat命令的注意事项
在使用lpstat命令时,你需要注意以下几点:
- 如果你想使用lpstat命令来显示打印状态信息,你需要确保打印服务是运行的,否则你会得到一个错误信息,如:
[linux@bashcommandnotfound.cn ~]$ lpstat
lpstat: Bad file descriptor
这表示打印调度器没有启动,你可以使用以下的命令来启动它:
[linux@bashcommandnotfound.cn ~]$ sudo service cups start
- 如果你想使用lpstat命令来取消或修改打印任务,你需要有足够的权限,否则你会得到一个错误信息,如:
[linux@bashcommandnotfound.cn ~]$ cancel printer1-1
cancel: Unauthorized
这表示你没有权限取消printer1-1这个打印任务,你可以使用以下的命令来提升你的权限:
[linux@bashcommandnotfound.cn ~]$ sudo cancel printer1-1
- 如果你想使用lpstat命令来显示指定的打印机或打印类的信息,你需要确保打印机或打印类是存在的,否则你会得到一个错误信息,如:
[linux@bashcommandnotfound.cn ~]$ lpstat -p printer3
lpstat: No destinations added.
这表示printer3这个打印机不存在。
评论区