LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 12576|回复: 19

Linux下的打印工作命令[转帖]

[复制链接]
发表于 2002-8-22 01:05:46 | 显示全部楼层 |阅读模式
在Linux下采用假脱机(spooling)打印方法,当用户需要打印一个文件时,该文件并不直接送到打印机,而是送到spool目录下,然后由一个负责打印的后台进程把这些数据送入打印机。

Linux对每台打印机都定义了一个打印缓冲区,打印机守护程序经常扫描打印缓冲区以查看有无要打印的新文件。如果存在,就按先进先出的顺序打印缓冲区中的文件。

Linux系统除了可以在本地打印机上打印外,还可以通过网络打印机远程打印。

用于打印的命令

Linux系统提供了一组有关打印的命令。一般情况下,打印命令使用默认打印机;如果用户定义了PRINTER环境变量,打印命令就使用这个变量定义的打印机;另外,用户还可以在命令行上指定要使用的打印机。

lpr命令

lpr命令是脱机打印命令,该命令将打印作业放到打印缓冲队列中。为Linux系统指定的每台打印机都有自己的打印缓冲目录,每个目录中的minfree文件指定保存打印文件的磁盘块的数量。

lpr同lpd守护进程通讯,lpd扫描/etc/printcap文件,查询打印机对应的缓存目录,然后由lpd控制打印,将需要打印的数据送到实际打印机上。如果没有指定文件,lpr就使用标准输入。

lpr命令的格式为:

lpr [-P printer] [#num] [其他选项] [name…]

命令中各选项的含义如下:

-P 指定打印机。如果不用此选项,则使用缺省打印机或环境变量PRINTER指定的打印机。

-m 打印完毕后发送email。

-#num 打印num份。

lpq命令

lpq是缓冲队列检查命令,它通过lpd在缓冲区中检查打印文件,报告指定作业的状态或指定用户的所有作业。不带任何参数的lpq命令显示现在队列中的任何作业。lpq命令的显示结果中一个重要的信息就是作业标识号(作业ID),它标识一个特定的作业。如果用户想取消一个挂起的作业,就必须在命令中指定这个标识号。

lpq命令的格式为:

lpq [-l] [-P printer] [job #] [user…]

命令中各选项的含义如下:

-P 指定一个打印机,否则使用缺省打印机或环境变量PRINTER指定的打印机。

-l 打印组成作业的所有文件的信息。

对提交的每一个作业,lpq报告用户名、在队列中的级别、组成作业的文件、作业标识以及总的大小等信息。

lprm命令

lprm命令用于从缓冲队列中删除打印作业,用户可以使用该命令从缓冲队列中删除属于自己的一个或多个打印作业。

lprm命令的格式为:

lprm [-P printer] [-] [job #] [user…]

命令中各选项的含义如下:

-P 指定一个打印机,否则使用缺省打印机或环境变量PRINTER指定的打印机。

- 删除用户所有的打印作业。

user 删除队列中属于用户user的作业(只有超级用户可以这样做)。

job # 通过指定作业号#删除某个打印作业,作业号可以通过lpq命令得到,如:

$ lpq –l

lst:ken [job #013ucbarpa]

(standard input) 100 bytes

$ lprm 13

打印缓冲区目录

对打印而言,有一个非常重要的目录,就是打印缓冲区目录,要打印的数据在被打印之前都集中到这里。通常一台打印机对应一个打印缓冲区目录,这样比较容易管理打印机。例如,系统使用/var/spool/lpd作为主打印缓冲区,每个单独的打印机都在主打印缓冲区下有一个与这台打印机同名的目录。因此,名为ps_nff的打印机把/var/spool/lpd/ps_nff作为它的打印缓冲区目录。
发表于 2002-12-12 10:44:11 | 显示全部楼层

请北南南北兄弟帮忙!

我怎么设网络打印机呀?
本机:linux redhat8.0
另一台装有HP-6L的机子:win98
发表于 2002-12-12 14:29:47 | 显示全部楼层
先把win98的打印机共享出来。
然后在RH8下用printtool
选SMB网络打印机,其选项还是比较容易理解的。
发表于 2002-12-12 19:51:44 | 显示全部楼层

楼上的兄弟!

呵呵,你能不能详细地指点一下呀?在非常谢谢!
发表于 2002-12-12 20:57:26 | 显示全部楼层
redhat8用的是cups吗?我的cups可以用web管理
http://127.0.0.1:631/
添加windows共享的打印机的Device URI我写
smb://print-server/CanonBJC
print-server是共享的机器的名字。CannonBJC是它的打印机的共享名。
 楼主| 发表于 2002-12-14 20:03:38 | 显示全部楼层
我在samba下,windows共享linux机器的打印机,总不能打印出中文。乱码一堆。。。搞了两天两夜,到现在也没有搞好。哪个弟兄成功了,能不能给咱上一课。。。拜托了。。。

linux下打印极为正常,kwrite和openoffice,也正常。这两天我应该试一下abiword,呵,可喜的是,我两台打印机,现在都能工作了。。昨天都搞好了,原来一台都工作不了,问题就出在打印机的墨水上。我用的是灌的墨水。现在又买了原装墨水,一套180元。。太黑了。。不如新买一台打印机呢。。。。
发表于 2002-12-15 19:55:54 | 显示全部楼层

to abby

hi abby:  you say:
redhat8用的是cups吗?我的cups可以用web管理
http://127.0.0.1:631/
添加windows共享的打印机的Device URI我写
smb://print-server/CanonBJC
print-server是共享的机器的名字。CannonBJC是它的打印机的共享名。


请教:http://127.0.0.1:631/ 我怎么进不了呀,我可以进入到http://127.0.0.1:901/进行web设置,但打印机这项就没法添加打印机,怎么回事?
 楼主| 发表于 2002-12-16 10:47:17 | 显示全部楼层
其实没有必要这样做,直接用设置smb把windows打印机加上去就行了。用smb打印机。如果在windows下的打印机比较好共享。就是在windows下设置好共享手,在linux下直接添加smb打印机。不要和web设置,那个web是设置linux共享打印机的。
发表于 2002-12-17 09:00:38 | 显示全部楼层

to 北南南北兄弟!

兄弟,你能不能把你的smb设置的方法,写一个贴子呀,我真的很急需呀!
 楼主| 发表于 2002-12-18 01:35:12 | 显示全部楼层
http://www.linuxsir.cn/forum.php?mod=viewthread&tid=17805
我前几天就写好了,哈。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表