`

Linux打印文件和发送邮件

阅读更多
通过前面的介绍,相信你对 Linux 的命令和特性有了一个基本的认识,本节将介绍如果打印文件以及发送邮件。
文件打印

如果你希望打印文本文件,最好预先处理一下,包括调整边距、设置行高、设置标题等,这样打印出来的文件更加美观,易于阅读。当然,不处理也可以打印,但是可能会比较丑陋。

大部分的Linux自带了 nroff 和 troff 两个强大的文本格式化工具,不过比较老旧,使用的人很少,有兴趣的读者可以可以自行学习,本教程不再进行深入讲解。
pr命令

pr 命令用来将文本文件转换成适合打印的格式,它可以把较大的文件分割成多个页面进行打印,并为每个页面添加标题。

pr 命令的语法如下:
pr option(s) filename(s)
pr 命令仅仅改变文件在屏幕上的显示样式和打印输出样式,并不会更改文件本身。下表是 pr 命令的几个选项:
选项 说明
-k 分成几列打印,默认为1。
-d 两倍行距(并不是所有版本的 pr 都有效)。
-h "header" 设置每个页面的标题。
-t 不打印标题和上下边距。
-l PAGE_LENGTH 每页显示多少行。默认是每个页面一共66行,文本占56行。
-o MARGIN 每行缩进的空格数。
-w PAGE_WIDTH 多列输出时,设置页面宽度,默认是72个字符。
例如,food 文件包含了很多食品的名字,使用 pr 命令分成两列打印,并设置每页的标题为“Restaurants”。

首先查看文件内容:
$cat food
Sweet Tooth
Bangkok Wok
Mandalay
Afghani Cuisine
Isle of Java
Big Apple Deli
Sushi and Sashimi
Tio Pepe's Peppers
........
$
然后使用 pr 命令打印:
$pr -2 -h "Restaurants" food
Nov  7  9:58 1997  Restaurants   Page 1

Sweet Tooth              Isle of Java
Bangkok Wok              Big Apple Deli
Mandalay                 Sushi and Sashimi
Afghani Cuisine          Tio Pepe's Peppers
........
$
lp和lpr命令

lp 和 lpr 命令将文件传送到打印机进行打印。使用 pr 命令将文件格式化后就可以使用这两个命令来打印。

打印机一般由系统管理员来设置,下面的例子使用默认的打印机打印food文件:
$lp food
request id is laserp-525  (1 file)
$
命令成功执行会返回一个表示打印任务的ID,通过这个ID可以取消打印或者查看打印状态。

如果你希望打印多份文件,可以使用 lp 的 -nNum 选项,或者 lpr 命令的 -Num 选项。Num 是一个数字,可以随意设置。

如果系统连接了多台打印机,可以使用 lp 命令的 -dprinter 选项,或者 lpr 命令的 -Pprinter 选项来选择打印机。printer 为打印机名称。
lpstat 和 lpq 命令

lpstat 命令可以查看打印机的缓存队列(有多少个文件等待打印),包括任务ID、所有者、文件大小、请求时间和请求状态。

提示:等待打印的文件会被放到打印机的的缓存队列中。

例如,使用 lpstat -o 命令查看打印机中所有等待打印的文件,包括你自己的:
$lpstat -o
laserp-573  john  128865  Nov 7  11:27  on laserp
laserp-574  grace  82744  Nov 7  11:28
laserp-575  john   23347  Nov 7  11:35
$
lpstat -o 命令按照打印顺序输出队列中的文件。

lpq 命令显示的信息与 lpstat -o 稍有差异:
$lpq
laserp is ready and printing
Rank   Owner      Job  Files                  Total Size
active john       573  report.ps              128865 bytes
1st    grace      574  ch03.ps ch04.ps        82744 bytes
2nd    john       575  standard input         23347 bytes
$
第一行为打印机的状态。如果打印机无法使用或者纸被用完,将会输出其他信息。
cancel 和 lprm 命令

cancel 和 lprm 分别用来终止 lp 和 lpr 的打印请求。使用这两个命令,需要指定ID(由 lp 或 lpq 返回)或打印机名称。

例如,通过ID取消打印请求:
$cancel laserp-575
request "laserp-575" cancelled
$
如果希望取消正在打印的文件,那么可以不指定ID,仅仅指定打印机名称即可:
$cancel laserp
request "laserp-573" cancelled
$

lprm 命令用来取消当前用户的正在等待打印的文件,使用任务号作为参数可以取消指定文件,使用横线(-)作为参数可以取消所有文件。

例如,取消575号打印任务:
$lprm 575
dfA575diamond dequeued
cfA575diamond dequeued
$
lprm 会返回被取消的文件名。
发送邮件

可以使用mail命令发送和接收邮件,语法如下:
$mail [-s subject] [-c cc-addr] [-b bcc-addr] to-addr
每个选项的含义如下:
选项 描述
-s 邮件标题。
-c 要发送的用户,多个用户以逗号(,)分隔。
-b 需要密件发送(密送)的用户,多个用户以逗号(,)分隔。

例如,向admin@yahoo.com发送邮件:
$mail -s "Test Message" admin@yahoo.com
Hello everyone,
this is Linux tutorial and url is http://see.xidian.edu.cn/cpp/linux/.
Cc:
第一行是输入的命令,-s表示邮件的主题,后面的admin@yahoo.com则是邮件的接收人,输入完这行命令后回车,会进入邮件正文的编写,你可以输入任何文字,比如上面的两行。输入完邮件正文,需要按CTRL+D结束输入,此时会提示你输入Cc地址,即邮件抄送地址,没有直接回车就完成了邮件的发送。

也可以通过重定向操作符 < 来发送文件:
$mail -s "Report 05/06/07" admin@yahoo.com < demo.txt
通过上面的命令,就可以把demol.txt文件的内容作为邮件的内容发送给admin@yahoo.com了。

接收邮件不需要任何参数:
$mail
no email
分享到:
评论

相关推荐

    Linux系统日志文件的打印与存储

    本文将深入探讨Linux系统日志文件的打印与存储。 一、日志文件的位置与类型 在Linux系统中,日志文件通常存储在/var/log目录下,这里包含了多种类型的日志文件: 1. /var/log/messages:主要记录系统级信息和警告...

    linux下 用C实现的邮件发送

    ### Linux 下用 C 实现邮件发送 #### 概述 本文档将介绍如何在 Linux 平台上使用 C 语言编写程序来实现邮件发送的功能。该程序利用了 Linux 的网络编程接口,通过 SMTP(简单邮件传输协议)与邮件服务器进行交互,...

    linuxC的邮件系统代码

    1. **文件I/O**:邮件系统需要读取和写入邮件,这涉及到对标准输入/输出和磁盘文件的操作。C语言提供了stdio库,如fopen(), fread(), fwrite()和fclose()函数,用于进行文件操作。 2. **网络编程**:邮件系统必须能...

    Linux中常见的日志文件和命令.rar

    6. `/var/log/maillog` 或 `/var/log/mail.*`:涉及邮件服务器的日志,包括邮件发送、接收和错误信息。 7. `/var/log/dmesg`:记录了系统启动时内核打印的信息,可以查看硬件设备的初始化状态。 8. `/var/log/...

    使用邮件发送图片.zip

    Base64是一种用于在电子邮件和其他纯文本环境中传输二进制数据的方法。由于邮件标准要求内容只能包含ASCII字符,所以图片等二进制文件需要被编码成可打印的字符。在C程序中,`Encb64`库很可能提供了将图片数据转换为...

    阿铭AMing_linux_pdf_chm_40课视频_这个2积分失效发邮件索回.zip

    【标题】"阿铭AMing_linux_pdf_chm_40课视频_这个2积分失效发邮件索回.zip" 涵盖的是一个关于Linux学习资源的压缩包,由阿铭(A Ming)创建,包含了40个课程的视频教程以及相关的PDF和CHM格式的学习材料。用户如果遇到...

    实验6shell linux系统

    Shell 编程的应用非常广泛,可以用于实现各种自动化任务,例如批量处理文件、自动备份数据、自动发送邮件等。 Shell 编程也可以用于实现一些复杂的系统管理任务,例如系统监控、网络管理、安全管理等。 在本实验中...

    linux指令大全 linux指令大全

    * lp 命令:打印文件,参数包括文件名和打印机名称。 * lpq 命令:显示打印队列,参数包括打印机名称。 * lprm 命令:删除打印任务,参数包括打印任务ID。 磁片工具 * mformat 命令:格式化磁盘,参数包括磁盘名称...

    C++ 解析eml格式邮件

    为了实践这个概念,你可以尝试使用提供的“测试eml”文件作为示例,创建一个简单的C++程序来读取并打印邮件的关键信息。在实际项目中,你可能还需要考虑错误处理、性能优化以及与其他系统的集成等问题。 总之,C++...

    中文版Linux桌面操作系统初级教程8电子邮件.pdf

    点击图标后,程序会加载并显示主界面,让用户能够轻松访问其电子邮件和其他功能。 配置帐号:在Kontact中设置电子邮件帐户是关键步骤。这通常涉及到输入您的邮箱地址、密码以及服务器信息,如SMTP(发送)和IMAP/...

    Linux文件操作系统命令 系统管理命令大全

    6. `mail`:发送和接收电子邮件。 7. `netstat`:查看网络连接、路由和接口信息。 8. `ping`:测试网络连通性。 以上命令是Linux系统管理和日常操作中的核心工具,熟练掌握它们能极大提升Linux环境下的工作效率。

    Linux操作系统基础教程

    - **文件系统结构**:Linux采用了树状结构的文件系统,根目录“/”位于最顶层,其他所有文件和目录都是从这里衍生出来的。 - 根目录 `/`:所有文件和目录的起点。 - 主目录 `~/`:用户的主目录。 - 配置文件 `/...

    第1次实验报告(了解Linux proc文件系统;).doc

    Linux proc文件系统是Linux操作系统中一个特殊的虚拟文件系统,它为用户提供了一个查看和交互内核状态的接口。proc文件系统不占用磁盘空间,而是直接反映了内核的实时信息。在Linux环境中,以文件管理设备有诸多好处...

    redhat linux关键命令

    根据给定的文件标题“Redhat Linux关键命令”及其描述、标签和部分内容,本文将深入解析其中提及的多个Linux命令,这些命令对于Redhat Linux系统的管理和操作至关重要。 ### 1. cat - 显示文件内容 `cat`命令用于...

    基于Linux 图像与BASE64编码互转.zip

    在IT领域,Linux操作系统是开发和服务器管理的重要平台。在这个环境中,处理图像和数据编码转换是常见的任务之一。本主题聚焦于如何在Linux系统中实现图像与BASE64编码之间的互转,这对于在网络上传输图像数据或者...

    linux 所有命令的集合

    `mail` 命令用于发送和接收电子邮件,尽管现代系统更倾向于使用专门的邮件客户端。 #### mailto -- 简单多媒体邮件发送程序 `mailto` 命令可能是指一个简单的脚本或程序,用于发送带有附件的电子邮件。 #### make_...

    LINUX系统管理白皮书

    涵盖的主题包括文件系统、目录、引导和关机、打印、网络兼容性、网络应用、网络登录、安全、用户账号、数据备份等等。此外,还针对TCP/IP网络、电子邮件、硬件问题以及网络的管理与配置,进行了专门讨论。 目录...

    RED HAT LINUX 6大全

    14.4 共享文件和打印服务 249 14.5 优化Samba性能 250 14.6 测试配置 251 14.7 运行Samba服务器 252 14.8 共享访问 252 14.8.1 在Linux客户上使用smbclient 252 14.8.2 在Linux客户上加载共享 253 14.8.3 在Windows...

    linux常用命令集(PDF版)

    55. lp* - 打印相关命令,如 lpq 打印队列状态, lpr 打印文件, lprm 取消打印任务。 由于文档内容可能存在OCR扫描错误,一些命令和描述可能不完全准确,但以上列出的命令确实是Linux系统中经常使用的命令,它们...

Global site tag (gtag.js) - Google Analytics