侧边栏壁纸
Linux入门自学网博主等级

每日学一条Linux命令,终成Linux大神

  • 累计撰写 725 篇文章
  • 累计创建 143 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Linux lpstat命令教程:如何查看和管理打印状态(附实例教程和注意事项)

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这个打印机不存在。

0

评论区