当前位置: 首页 > 科技观察

从Linux终端打印文件

时间:2023-03-13 22:41:28 科技观察

使用lpr命令在终端打印文件。在Linux上打印很容易,但有时感觉工作量很大,比如启动应用程序、打开文件、在菜单中找到打印选项、单击确定按钮等等。当您是最终用户时,您通常希望使用简单的触发器来执行复杂的操作。打印很复杂,但没有什么比lpr命令更简单了。使用lpr命令打印使用lpr命令打印终端中的文件:$lprmyfile.odt如果失败,您需要设置默认打印机或手动指定打印机。设置默认打印机根据我在1984年印刷的旧版Berkeley4.2手册中找到的内容,lpr命令页面并将文件发送到打印机池,打印机池将数据传输到称为行式打印机的东西。显示LPR命令信息的页面现在,原来的lpr命令已经不够用了,因为现代计算机可以访问多台打印机,而这些打印机远比点阵行式打印机复杂。现在有一个称为通用Unix打印系统(CUPS)的子系统,它跟踪您的计算机可以访问的所有打印机,计算机应使用哪个驱动程序与每台打印机通信,它默认使用哪个打印机,等等。CUPS捆绑包提供的lpr.cups或lpr-cups命令通常链接到lpr,允许您首先使用CUPS配置从终端打印。要使用lpr打印文件,您应该首先设置默认打印机。可以在系统打印机设置中设置:设置默认打印机对话框,也可以使用lpadmin命令设置:$sudolpadmin-dHP_LaserJet_P2015_Series$lpstat-vdeviceforHP_LaserJet_P2015_Series:ipp://10.0.1.222:631/printers/HP_LaserJet_P2015_Seriesissetusingenvironmentvariables您不能在没有管理员帐户的系统上设置默认打印机,因为更改打印机默认设置是一项特权任务。在lpr使用CUPS找到目标打印机之前,它会向系统查询PRINTER环境变量。在此示例中,HP_LaserJet_P2015_Series是打印机的名称。将PRINTER设置为此值:$PRINTER=HP_LaserJet_P2015_Series$exportPRINTER一旦设置了PRINTER变量,您就可以打印:$lprmyfile.pdf获取连接的打印机列表您可以使用lpstat命令查看所有连接到系统接受打印作业打印机:$lpstat-aHP_LaserJet_P2015_Series自2021年8月1日星期日下午10:11:02开始接受请求NZSTr1060自2021年8月18日星期三下午04:43:57开始接受请求NZST打印到任何打印机将打印机添加到系统后,现在你现在知道如何识别它们,你可以打印到它们中的任何一个,无论你是否设置了默认打印机:$lpr-PHP_LaserJet_P2015_Seriesmyfile.txt如何定义打印机CUPS有一个友好的前端页面,可通过Firefox等网络浏览器访问。尽管它使用Web浏览器作为用户界面,但它实际上是在本地计算机(称为localhost的位置)的端口631上提供服务的。CUPS管理连接到计算机的打印机并将它们的配置存储在/etc/cups/priters.conf中。printers.conf文件包含详细说明计算机可以访问的打印设备的定义。不要直接编辑它,但如果你想这样做,你必须先停止cupsd守护进程。一个典型的文件定义如下:InfoRicoh1060LocationDownstairsMakeModelRicohAficio1060-CUPS+Gutenprintv5.2.6DeviceURIlpd://192.168.4.8StateIdleStateTime1316011347Type12308Filterapplication-vnd.cupsraw0-Filterapplication/vnd.cups-raster100rastertogutenprint.5.2AcceptingYesSharedNoJobSheetsnonenoneQuotaPeriod0PageLimit0KLimit0OpPolicydefaultErrorPolicystop-printer在这个例子中,打印机的名字是r1060,即“理光Aficio1060"。MakeModel属性是从lpinfo命令中提取的,它列出了系统上所有可用的打印机驱动程序。假设您知道要打印到RicohAficio1060,那么您将发出以下命令:$lpinfo-m|grep1060gutenprint.5.2://brother-hl-1060/expertBrotherHL-1060-CUPS+Gutenprintv5.2.11gutenprint.5.2://ricoh-afc_1060/expertRicohAficio1060-CUPS+Gutenprintv5.2.11它会列出相关驱动安装。MakeModel属性是结果的后半部分。在这种情况下,RicohAficio1060-CUPS+Gutenprintv5.2.11。DeviceURI属性标识打印机在网络上的位置(或物理位置,例如USB端口)。在本例中,它是lpd://192.168.4.8,因为我使用lpd协议将数据发送到网络打印机。在我的其他系统上,我有一台通过USB连接的HPLaserJect打印机,因此DeviceURI是hp:/usb/HP_LaserJet_P2015_Series?serial=00CNCJM26429。在终端中打印将作业发送到打印机是一个简单的过程,只要您了解连接到系统的设备以及如何识别它们。打印到终端快速、高效且易于编写脚本或作为批处理作业执行。尝试一下!