从命令行打印

如何将命令行输出直接打印到打印机。

我正在使用ubuntu服务器12.04,我必须将文件复制到共享目录,然后从桌面ubuntu发行版下载它们以打印它们。

任何帮助表示赞赏

主要有两个默认命令:

lprlp

man lpr给出输出:

lpr提交要打印的文件。 在命令行上命名的文件将发送到指定的打印机(如果未指定目标,则发送到默认目标)。 如果命令行中未列出任何文件,则lpr将从标准输入中读取打印文件。

man lp给出输出:

lp提交文件以进行打印或更改待处理作业。 使用文件名“ – ”强制从标准输入打印。

所以很容易使用命令:

 lp /path-to-file-to-print 

要么

 lpr /path-to-file-to-print 

你可以使用lp

例如:

 man firefox | lp -d printername 

这会将手册页从firefox打印到指定的打印机

如果你安装了它们,另外一对值得了解的选择

  • ENSCRIPT

  • a2ps的

这些对于提供带标题和可选行号的带编号页面非常有用。 您也可以使用它来打印小册子样式(例如,每张纸的两面都有两页)

我使用这些支持Postscript的打印机,但我相信Ubuntu的打印系统可以为任何支持的打印机光栅化PS。

要在使用中打印.txt文件:

 command | lpr -P printername -p ( periority from 1 to 100 ) 

示例:

 ls -l | lpr -P printername -p 1 

您可能想要了解如何首先访问打印机 – lpstat将为您提供该信息。 如果比较两个系统的输出,您可以判断是否已在这两个系统上配置了相关的打印机。 lpstat -p -d列出所有打印机的状态,并告诉lpstat -p -d打印机已设置为默认打印机。

您可以简单地将输出传递给lplpr命令。 您可能希望插入一个用于漂亮打印或分页的filter。 在debian手册“突出显示和格式化纯文本数据”中有一个很好的工具摘要,但我通常只是在通过a2ps发送所有内容之前使用sed突出显示提示和其他内容

您可以使用lp命令。

要将命令的输出打印到默认打印机(使用lpstat -d查看默认打印机是什么):

 echo "test" | lp 

要打印到特定的打印机(使用lpstat -p | awk '{print $2}'列出可用的打印机名称):

 echo "test" | lp -d printername 

要打印文件,而不是命令输出:

 lp /path/to/file 

问题是如何从服务器上的命令行打印,听起来你还没有在该系统上定义任何打印机。 我没有系统可以检查,所以以下是近似值,但它们应该给你一般的想法:

  1. 确保CUPS系统已安装并正在运行。 它提供了可以处理打印作业的守护进程。
  2. 一旦启动,您需要设置一个或多个网络打印机进行打印。 安装打印机的常用方法是使用Printer Admin实用程序,但显然您没有设置为从服务器运行任何GUI程序 – 只需通过ssh进行命令行访问。 由于您已在同一网络上安装了Ubuntu桌面系统,因此我尝试将目录/etc/cups从桌面盒复制到服务器。 它应包含您需要的所有打印机定义和驱动程序。 检查文件是否有任何必要的调整(如果你的设置提到两个系统之间不同的用户ID或密码),重启cupsd ,如果你很幸运,你将能够使用lpr打印。

PS。 在紧要关头,您可以安装足够的X实用程序,通过远程X连接到桌面Ubuntu框运行Print Admin GUI实用程序(使用ssh -X登录),并定义所需的打印机。 但希望这不是必要的。