diff options
-rw-r--r-- | zh_CN.GB2312/books/handbook/advanced-networking/chapter.sgml | 53 | ||||
-rw-r--r-- | zh_CN.GB2312/books/handbook/basics/chapter.sgml | 4 | ||||
-rw-r--r-- | zh_CN.GB2312/books/handbook/config/chapter.sgml | 60 | ||||
-rw-r--r-- | zh_CN.GB2312/books/handbook/desktop/chapter.sgml | 6 | ||||
-rw-r--r-- | zh_CN.GB2312/books/handbook/disks/chapter.sgml | 89 | ||||
-rw-r--r-- | zh_CN.GB2312/books/handbook/install/chapter.sgml | 2 | ||||
-rw-r--r-- | zh_CN.GB2312/books/handbook/introduction/chapter.sgml | 29 | ||||
-rw-r--r-- | zh_CN.GB2312/books/handbook/kernelconfig/chapter.sgml | 4 | ||||
-rw-r--r-- | zh_CN.GB2312/books/handbook/linuxemu/chapter.sgml | 6 | ||||
-rw-r--r-- | zh_CN.GB2312/books/handbook/mac/chapter.sgml | 36 | ||||
-rw-r--r-- | zh_CN.GB2312/books/handbook/mirrors/chapter.sgml | 11 | ||||
-rw-r--r-- | zh_CN.GB2312/books/handbook/printing/chapter.sgml | 917 |
12 files changed, 628 insertions, 589 deletions
diff --git a/zh_CN.GB2312/books/handbook/advanced-networking/chapter.sgml b/zh_CN.GB2312/books/handbook/advanced-networking/chapter.sgml index d4639c21b8..bb0f1a8a39 100644 --- a/zh_CN.GB2312/books/handbook/advanced-networking/chapter.sgml +++ b/zh_CN.GB2312/books/handbook/advanced-networking/chapter.sgml @@ -12,9 +12,9 @@ <sect1 id="advanced-networking-synopsis"> <title>概述</title> - <para>本章将介绍许多与高级网络有关的话题。</para> + <para>本章将就一系列与网络有关的高级话题进行讨论。</para> - <para>读完这一章,您将了解:</para> + <para>读完这章,您将了解:</para> <itemizedlist> <listitem> @@ -22,19 +22,19 @@ </listitem> <listitem> - <para>如何安装 IEEE 802.11 和 &bluetooth;(蓝牙)设备。</para> + <para>如何配置 IEEE 802.11 和 蓝牙(&bluetooth;) 设备。</para> </listitem> <listitem> - <para>怎样用 FreeBSD 做"桥接(bridge)"。</para> + <para>如何用 FreeBSD 做网桥。</para> </listitem> <listitem> - <para>如何为无盘机设置网络启动。</para> + <para>如何为无盘机上配置网络启动。</para> </listitem> <listitem> - <para>如何设置网络地址转换(NAT)。</para> + <para>如何配置网络地址转换 (NAT)。</para> </listitem> <listitem> @@ -42,7 +42,7 @@ </listitem> <listitem> - <para>如何在 FreeBSD 主机上设置 IPv6。</para> + <para>如何在运行 FreeBSD 的计算机上配置 IPv6。</para> </listitem> <listitem> @@ -50,7 +50,7 @@ </listitem> </itemizedlist> - <para>在读这章之前,您应该:</para> + <para>在读这章之前, 您应:</para> <itemizedlist> <listitem> @@ -58,7 +58,7 @@ </listitem> <listitem> - <para>知道相关的基本网络术语。</para> + <para>熟悉基本的网络术语。</para> </listitem> <listitem> @@ -102,19 +102,18 @@ <indexterm><primary>路由</primary></indexterm> <indexterm><primary>网关</primary></indexterm> <indexterm><primary>子网</primary></indexterm> - <para>为了让一台主机在网能找到另一台主机, - 就必须要有一种机制来描述如何从一台主机连至另一台上。 这一过程就是 + <para>要让网络上的两台计算机能够相互通讯, + 就必须有一种能够描述如何从一台计算机到另一台计算机的机制, 这一机制称作 <firstterm>路由选择(routing)</firstterm>。 - <quote>路由</quote> 是一对预先定义的地址: + <quote>路由项</quote> 是一对预先定义的地址: <quote>目的地(destination)</quote> 和 <quote>网关(gateway)</quote>。 - 这对地址说明了, 想要到达 <emphasis>目的地(destination)</emphasis>, - 就需要通过 <emphasis>网关(gateway)</emphasis> 进行通信。 - 目的地址有三种类型: 单个主机, - 子网(subnets) 和 <quote>默认(default)</quote>。 - 如果没有应用其它路由, 就会使用 <quote>默认路由</quote>。 - 关于默认路由将在后面进行更多的讨论。 网关也有三种类型: - 单个主机, 接口 (也叫<quote>连接(links)</quote>) - 和以太网硬件地址(MAC addresses)。 + 这个地址对所表达的意义是, 通过 <emphasis>网关</emphasis> + 能够完成与 <emphasis>目的地</emphasis> 的通信。 + 有三种类型的目的地址: 单个主机、 子网、 以及 <quote>默认</quote>。 + 如果没有可用的其它路由, 就会使用 <quote>默认路由</quote>, + 有关默认路由的内容, 将在稍后的章节中进行讨论。 网关也有三种类型: + 单个主机, 网络接口 (也叫 <quote>链路 (links)</quote>) + 和以太网硬件地址 (MAC 地址)。 </para> <sect2> @@ -139,16 +138,16 @@ host2.example.com link#1 UC 0 0 224 link#1 UC 0 0</screen> <indexterm><primary>默认路由</primary></indexterm> - <para>头两行指定默认路由 (我们会在 <link - linkend="network-routing-default">下一节</link> 说明) - 和 <hostid>本机(localhost)</hostid> 路由。</para> + <para>头两行给出了当前配置中的默认路由 (将在 <link + linkend="network-routing-default">下一节</link> 中进行介绍) + 和 <hostid>localhost (本机)</hostid> 路由。</para> <indexterm><primary>回环设备</primary></indexterm> - <para>这张路由表里指定用于 <literal>localhost</literal> 的接口 + <para>这里的路由表中给出的用于 <literal>localhost</literal> 的接口 (<literal>Netif</literal> 列) 是 <devicename>lo0</devicename>, 也就是大家熟知的 <quote>回环设备</quote>。 - 它使得所有以此为 <quote>目的地</quote> 的通信留在本机, - 而不是通过 LAN 发出, 因为它会在开始的地方就结束并返回。</para> + 它表示所有以此为 <quote>目的地</quote> 的通信都留在本机, + 而不通过 LAN 发出, 因为这些流量最终会回到起点。</para> <indexterm> <primary>以太网</primary> <secondary>MAC 地址</secondary> @@ -3328,7 +3327,7 @@ round-trip min/avg/max/stddev = 2.530/2.643/2.774/0.103 ms</screen> <title>IPv6</title> <para>IPv6 (也被称作 IPng <quote>下一代 IP</quote>) - 是中所周知的 IP 协议 (也被叫做 + 是众所周知的 IP 协议 (也叫 <acronym>IPv4</acronym>) 的新版本。 和其他现代的 *BSD 系统一样, FreeBSD 包含了 KAME 的 IPv6 参考实现。 因此, 您的 FreeBSD 系统包含了尝试 IPv6 所需要的所有工具。 diff --git a/zh_CN.GB2312/books/handbook/basics/chapter.sgml b/zh_CN.GB2312/books/handbook/basics/chapter.sgml index fa4dd9e668..c8f6a323f3 100644 --- a/zh_CN.GB2312/books/handbook/basics/chapter.sgml +++ b/zh_CN.GB2312/books/handbook/basics/chapter.sgml @@ -2,7 +2,7 @@ The FreeBSD Documentation Project The FreeBSD Simplified Chinese Project - Original Revision: 1.143 + Original Revision: 1.144 $FreeBSD$ --> @@ -558,7 +558,7 @@ total 530 <screen>&prompt.root; <userinput>chflags nosunlink <filename>file1</filename></userinput></screen> - <para>要显示文件上的标志, 应使用 &man.ls.1; + <para>要显示文件上的标志, 应使用命令 &man.ls.1; 的 <option>-lo</option> 参数:</para> <screen>&prompt.root; <userinput>ls -lo <filename>file1</filename> diff --git a/zh_CN.GB2312/books/handbook/config/chapter.sgml b/zh_CN.GB2312/books/handbook/config/chapter.sgml index 2f2f275c3d..330e1e634a 100644 --- a/zh_CN.GB2312/books/handbook/config/chapter.sgml +++ b/zh_CN.GB2312/books/handbook/config/chapter.sgml @@ -494,9 +494,9 @@ HOME=/var/log <calloutlist> <callout arearefs="co-comments"> <para>像大多数 &os; 配置文件一样,<literal>#</literal> 字符是注释。 - 作为什么和为什么要执行,可以加一个注释来描述以便将来提醒您。 - 注释不能跟命令一样在同一行上否则他们会被看成命令的一部分。 - 注释应该另起一行。空行将会被忽略。</para> + 这样, 就可以编写注释来说明要执行什么操作, 以及这样做的原因。 + 需要注意的是, 注释应该另起一行, 而不能跟命令放在同一行上, + 否则它们会被看成命令的一部分。 这个文件中的空行会被忽略。</para> </callout> <callout arearefs="co-env"> @@ -564,8 +564,8 @@ HOME=/var/log <screen>&prompt.user; <userinput>crontab crontab-file</userinput></screen> - <para>In this example, <filename>crontab-file</filename> is the filename - of a <filename>crontab</filename> that was previously created.</para> + <para>在前面的例子中, <filename>crontab-file</filename> 是一个事先写好的 + <filename>crontab</filename>。</para> <para>还有一个选项用来列出安装的 <filename>crontab</filename> 文件: 只要传递 <option>-l</option> 选项给 <command>crontab</command> @@ -682,19 +682,19 @@ sshd is running as pid 433.</screen> <itemizedlist> <listitem> - <para><literal>PROVIDE</literal>: Specifies the services this file provides.</para> + <para><literal>PROVIDE</literal>: 指定此文件所提供的服务的名字。</para> </listitem> <listitem> - <para><literal>REQUIRE</literal>: Lists services which are required for this - service. This file will run <emphasis>after</emphasis> - the specified services.</para> + <para><literal>REQUIRE</literal>: 列出此服务启动之前所需要的其他服务。 + 此脚本提供的服务会在指定的那些服务 <emphasis>之后</emphasis> + 启动。</para> </listitem> <listitem> - <para><literal>BEFORE</literal>: Lists services which depend on this service. - This file will run <emphasis>before</emphasis> - the specified services.</para> + <para><literal>BEFORE</literal>: 列出依赖此服务的其他服务。 + 此脚本提供的服务将在指定的那些服务 <emphasis>之前</emphasis> + 启动。</para> </listitem> </itemizedlist> @@ -724,7 +724,7 @@ sshd is running as pid 433.</screen> <secondary>配置</secondary> </indexterm> - <para>现在我们不可想象一个计算机没有网络连接的情况。 + <para>现在我们不可想象一台计算机没有网络连接的情况。 添加和配置一块网卡是任何 &os; 系统管理员的一项基本任务。 </para> @@ -843,27 +843,27 @@ tun0: flags=8010<POINTOPOINT,MULTICAST> mtu 1500</screen> <itemizedlist> <listitem> - <para><devicename>dc0</devicename>: The first Ethernet - interface</para> + <para><devicename>dc0</devicename>: 第一个以太网接口 + </para> </listitem> <listitem> - <para><devicename>dc1</devicename>: The second Ethernet - interface</para> + <para><devicename>dc1</devicename>: 第二个以太网接口 + </para> </listitem> <listitem> - <para><devicename>lp0</devicename>: The parallel port - interface</para> + <para><devicename>lp0</devicename>: 并行端口网络接口 + </para> </listitem> <listitem> - <para><devicename>lo0</devicename>: The loopback device</para> + <para><devicename>lo0</devicename>: 回环设备</para> </listitem> <listitem> - <para><devicename>tun0</devicename>: The tunnel device used by - <application>ppp</application></para> + <para><devicename>tun0</devicename>: + <application>ppp</application>使用的隧道设备</para> </listitem> </itemizedlist> @@ -1021,7 +1021,7 @@ round-trip min/avg/max/stddev = 0.700/0.729/0.766/0.025 ms</screen> <para>调试硬件和软件配置一直是一件头痛的事情, 从最简单的开始可以减轻一些痛苦。 例如网线是否插好了?是否配置好了网络服务?防火墙配置正确吗? - 是否使用了被 & os; 支持的网卡? + 是否使用了被 &os; 支持的网卡? 在发送错误报告之前您应该查看一下硬件说明, 升级 &os; 到最新的 STABLE 版本, 看一下邮件列表或者在 Internet 上搜索一下。</para> @@ -1441,11 +1441,10 @@ kern.maxfiles: 2088 -> 5000</screen> (布尔型用 <literal>1</literal> 来表示'yes',用 <literal>0</literal> 来表示'no')。</para> - <para>If you want to set automatically some variables each time - the machine boots, add them to the - <filename>/etc/sysctl.conf</filename> file. For more information - see the &man.sysctl.conf.5; manual page and the - <xref linkend="configtuning-sysctlconf">.</para> + <para>如果你想在每次机器启动时自动设置某些变量, + 可将它们加入到文件 <filename>/etc/sysctl.conf</filename> + 之中。更多信息,请参阅手册页 &man.sysctl.conf.5; 及 + <xref linkend="configtuning-sysctlconf">。</para> <sect2 id="sysctl-readonly"> <sect2info> @@ -1536,7 +1535,8 @@ device_probe_and_attach: cbb0 attach returned 12</screen> </indexterm> <para><varname>vfs.hirunningspace</varname> sysctl - 变量决定了在任何场合多少写 I/O 被排进队列以给系统的磁盘控制器。 + 变量决定了在任何给定情况下, + 有多少写 I/O 被排进队列以给系统的磁盘控制器。 默认值一般是足够的,但是对有很多磁盘的机器来说您可能需要把它设置成 4M 或 5M。注意这个设置成很高的值(超过缓存器的写极限)会导致坏的性能。 不要盲目的把它设置太高!高的数值会导致同时发生的读操作的迟延。</para> @@ -1668,7 +1668,7 @@ device_probe_and_attach: cbb0 attach returned 12</screen> 如果崩溃时找不到文件的数据块,&man.fsck.8; 可以找到并且依靠把文件大小设置为 0 来修复文件系统。 另外,这么做既清楚又简单。缺点是元数据(meta-data)更新很慢。例如 - <command>rm -r</command> 命令,从而改变目录下的所有文件, + <command>rm -r</command> 命令,依次触及目录下的所有文件, 但是每个目录的改变(删除一个文件)都要同步写入磁盘。 这包含它自己更新目录,inode 表和可能对文件分散的块的更新。 同样问题出现大的文件操作上(比如 <command>tar -x</command>)。</para> diff --git a/zh_CN.GB2312/books/handbook/desktop/chapter.sgml b/zh_CN.GB2312/books/handbook/desktop/chapter.sgml index b47eef0abf..67ec228ba4 100644 --- a/zh_CN.GB2312/books/handbook/desktop/chapter.sgml +++ b/zh_CN.GB2312/books/handbook/desktop/chapter.sgml @@ -313,7 +313,8 @@ <para>有些 FTP 站点没有所有版本的 package, 您也可以通过 Ports Collection 来安装:</para> - <screen>&prompt.root; <userinput>cd /usr/ports/www/opera</userinput> &prompt.root; <userinput>make install clean</userinput></screen> + <screen>&prompt.root; <userinput>cd /usr/ports/www/opera</userinput> +&prompt.root; <userinput>make install clean</userinput></screen> <para>要安装 Linux 版本的 <application>Opera</application>,将上面例子中的 @@ -699,7 +700,8 @@ <para>如果您无法获取预编译的包, 则可以使用 Ports collection:</para> - <screen>&prompt.root; <userinput>cd /usr/ports/print/gv</userinput> &prompt.root; <userinput>make install clean</userinput></screen> + <screen>&prompt.root; <userinput>cd /usr/ports/print/gv</userinput> +&prompt.root; <userinput>make install clean</userinput></screen> </sect2> <sect2> diff --git a/zh_CN.GB2312/books/handbook/disks/chapter.sgml b/zh_CN.GB2312/books/handbook/disks/chapter.sgml index 5a5fcfe458..1b3ec359bb 100644 --- a/zh_CN.GB2312/books/handbook/disks/chapter.sgml +++ b/zh_CN.GB2312/books/handbook/disks/chapter.sgml @@ -2,7 +2,7 @@ The FreeBSD Documentation Project The FreeBSD Simplified Chinese Project - Original Revision: 1.254 + Original Revision: 1.256 $FreeBSD$ --> @@ -355,13 +355,14 @@ <title>连接磁盘驱动器配置 (CCD) </title> <para>选择一个大容量存储比较好的解决方案,最重要的因素是产品的速度、 - 性能和成本。通常这三者不可能都满足;要获得比较快和可靠的大容量存储 - 设备,就比较昂贵。但如果将成本降下来,那它的速度或可靠性就会打折扣。 + 性能和成本。 通常这三者不可能都满足;要获得比较快和可靠的大容量存储设备, + 就比较昂贵。但如果将成本降下来,那它的速度或可靠性就会打折扣。 </para> - <para>在设计下面描述的系统时,价格被选为最重要的因素,接下来是速度 - 和性能。这人系统的数据传输速度及大的取决于网络。性能也非常重要, - CCD 驱动器上的所有数据都被备份到了 CD-R 盘,可以很容易的对数据进行恢复。 + <para>在设计下面描述的系统时, 价格被选为最重要的因素, + 接下来是速度和性能。 这个系统的数据传输速度基本上受限于网络。 + 性能也非常重要, + CCD 驱动器上的所有数据都被备份到了 CD-R 盘, 可以很容易地对数据进行恢复。 </para> <para>在选择一个大容量的存储解决方案时,第一步是要设计您自己的需求。 @@ -463,8 +464,8 @@ disklabel -e ad3</programlisting> <programlisting>cd /dev sh MAKEDEV ccd0</programlisting> - <note><para>在 FreeBSD 5.0 中,&man.devfs.5; 将自动管理在 <filename>/dev</filename>, - 里的设备结点,所以没有必要使用 <command>MAKEDEV</command> 命令。</para></note> + <note><para>在 FreeBSD 5.0 中, &man.devfs.5; 会自动管理在 <filename>/dev</filename> + 中的设备节点, 所以没有必要使用 <command>MAKEDEV</command> 命令。</para></note> <para>现在已给每个磁盘都加上了标签,下面需要建立 &man.ccd.4;。要这样做, 需要使用 &man.ccdconfig.8; 工具,同时要提供类似下面的选项:</para> @@ -714,8 +715,8 @@ device umass</programlisting> <programlisting>device cd</programlisting> - <para>因为刻录机被看作一个 SCSI 设备drive, 驱动程序 - &man.atapicam.4; 不应该在内核配置文件中使用。</para> + <para>由于刻录机被视为 SCSI 设备, 因此, 不应该在内核配置文件中使用 + &man.atapicam.4; 驱动程序。</para> </note> <para>从 &os; 5.X 开始, 对 USB 2.0 控制器提供了内建的支持; @@ -851,10 +852,10 @@ umass0: detached</screen> <primary>CD burner</primary> <secondary>ATAPI/CAM driver</secondary> </indexterm> - <para>如果您运行的是 &os; 5.X、&os; 4.8-RELEASE 或更高版本, - 它将可能使用 <command><link linkend="cdrecord">cdrecord</link></command> - 和其它工作在一个 ATAPI 硬件 <link linkend="atapicam">ATAPI/CAM module</link> - 为 SCSI 设备。</para> + <para>如果您运行的是 &os; 5.X、 &os; 4.8-RELEASE 或更高版本的话, + 也可以通过配合 <link linkend="atapicam">ATAPI/CAM 模块</link>, + 直接在 ATAPI 设备上使用 <command><link linkend="cdrecord">cdrecord</link></command> + 以及其他类似的为 SCSI 设备撰写的工具。</para> </note> <para>如果您想使用一个图形界面的 CD 刻录软件, @@ -975,9 +976,9 @@ umass0: detached</screen> 来刻录您的 CD 。 <command>cdrecord</command> 不是基本系统的一部分;必须 从 <filename role="package">sysutils/cdrtools</filename> 或适当的 package 安装它。基本系统的变化可能会引起这个程序的错误。可能是由 - <quote>coaster</quote> 引起的。当升级系统时,同时需要升级 port ,或者 - 如果已升级到 <link linkend="stable">tracking -STABLE</link> ,那么使用 - 新版本时也要升级 port。</para> + <quote>coaster</quote> 引起的。当升级系统时,同时需要升级 port, + 或者如果您 <link linkend="stable">使用 -STABLE</link>, + 那么在升级到新版本时也要升级 port。</para> <para><command>cdrecord</command> 有许多选项,基本用法与 <command>burncd</command> 相似。刻录一个 ISO 9660 映像文件只需这样做:</para> @@ -1318,7 +1319,9 @@ cd0: Attempt to query device size failed: NOT READY, Medium not present - tray c DVD-RAM 可以被看作一种可移动硬盘。 然而,这种介质和大部分 DVD-ROM 驱动器以及 DVD-Video 播放器不兼容; - 只有少数 DVD 刻录机支持 DVD-RAM。</para> + 只有少数 DVD 刻录机支持 DVD-RAM。 + 请参阅 <xref linkend="creating-dvd-ram"> + 以了解关于如何使用 DVD-RAM 的进一步详情。</para> </listitem> <listitem> @@ -1610,6 +1613,54 @@ cd0: Attempt to query device size failed: NOT READY, Medium not present - tray c 媒体的问题被做成问题报告。没有这些输出,对你的帮助将会十分困难。</para> </note> </sect2> + + <sect2 id="creating-dvd-ram"> + <title>使用 DVD-RAM</title> + <indexterm> + <primary>DVD</primary> + <secondary>DVD-RAM</secondary> + </indexterm> + + <sect3> + <title>配置</title> + + <para>DVD-RAM 刻录机通常使用 SCSI 或 ATAPI + 两种接口之一。 对于 ATAPI 设备, 还应启用 DMA 访问方式, + 这一工作可以通过在 + <filename>/boot/loader.conf</filename> 文件中增加下述配置来完成:</para> + + <programlisting>hw.ata.atapi_dma="1"</programlisting> + </sect3> + + <sect3> + <title>初始化介质</title> + + <para>如本章前面的介绍所言, + DVD-RAM 可以视为一移动硬盘。 与任何其它型号的移动硬盘类似, + 首次使用它之前, 应首先 <quote>初始化</quote> DVD-RAM。 + 在这个例子中, 我们将在全部空间上使用标准的 UFS2 文件系统。</para> + + <para>将 DVD-RAM 插入驱动器后, 以 <username>root</username> + 的身份执行:</para> + + <screen>&prompt.root; <userinput>dd if=/dev/zero of=<replaceable>/dev/acd0</replaceable> count=2</userinput> +&prompt.root; <userinput>disklabel -Bw <replaceable>acd0</replaceable></userinput> +&prompt.root; <userinput>newfs <replaceable>/dev/acd0</replaceable></userinput></screen> + + <para>应根据您的设置来修改所用的 DVD 设备, + <devicename>acd0</devicename>。</para> + </sect3> + + <sect3> + <title>使用介质</title> + + <para>一旦在您的 DVD-RAM 上完成了前面的操作, + 就可以像普通的硬盘一样挂接它了:</para> + + <screen>&prompt.root; <userinput>mount <replaceable>/dev/acd0</replaceable> <replaceable>/mnt</replaceable></userinput></screen> + + <para>然后就可以正常地对其进行读写了。</para> + </sect2> </sect1> <sect1 id="floppies"> @@ -3732,7 +3783,7 @@ geli_da2_flags="-p -k /root/da2.key"</screen> <para>当然, 这些默认值是可以通过 <filename>/etc/rc.conf</filename> 中的 <literal>geli_swap_flags</literal> 选项来修改的。 下面的配置表示让 rc.d 脚本 <filename>encswap</filename> 创建一个 &man.geli.8; 交换区, - 在其上使用密钥长度为 128-位 的 Blowfish 加密算法, 4096 kilobyte + 在其上使用密钥长度为 128-位 的 Blowfish 加密算法, 4 kilobytes 的扇区尺寸, 并采用 <quote>最后一次关闭时卸下</quote> 的策略:</para> <programlisting>geli_swap_flags="-a blowfish -l 128 -s 4096 -d"</programlisting> diff --git a/zh_CN.GB2312/books/handbook/install/chapter.sgml b/zh_CN.GB2312/books/handbook/install/chapter.sgml index e20d55178b..b7d6c04b43 100644 --- a/zh_CN.GB2312/books/handbook/install/chapter.sgml +++ b/zh_CN.GB2312/books/handbook/install/chapter.sgml @@ -498,7 +498,7 @@ pqb0.0.1.4.0 PQB0 PCI EIDE</screen> 应该是 <ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/&rel.current;-RELEASE/floppies/"></ulink>。</para> <para>软盘映像文件的扩展名是 <filename>.flp</filename>。 - 在 <filename>floppies/</filename> 目录中包括了许多不同的影响文件, + 在 <filename>floppies/</filename> 目录中包括了许多不同的映像文件, 随您安装的 FreeBSD 版本, 某些时候也随硬件的不同, 您需要使用的映像文件可能会有所不同。 如果您正在安装的是 FreeBSD 4.X 则通常只需要两张软盘的映像, diff --git a/zh_CN.GB2312/books/handbook/introduction/chapter.sgml b/zh_CN.GB2312/books/handbook/introduction/chapter.sgml index 2725ad9a3d..97fd367a5d 100644 --- a/zh_CN.GB2312/books/handbook/introduction/chapter.sgml +++ b/zh_CN.GB2312/books/handbook/introduction/chapter.sgml @@ -2,7 +2,7 @@ The FreeBSD Documentation Project The FreeBSD Simplified Chinese Project - Original Revision: 1.111 + Original Revision: 1.114 $FreeBSD$ --> @@ -183,11 +183,11 @@ <secondary>FORTRAN</secondary> </indexterm> <listitem> - <para><emphasis>C</emphasis>, - <emphasis>C++</emphasis>,<emphasis>Fortran</emphasis>,和 - <emphasis>Perl</emphasis> 开发工具的完整扩充。 - 许多附加的用于高级研究和开发的程序语言也可以在 - ports 和 packages collection 中找到。</para> + <para>内建了完整的 <emphasis>C</emphasis>、 + <emphasis>C++</emphasis>、 <emphasis>Fortran</emphasis> + 开发工具。 许多附加的用于高级研究和开发的程序语言, + 也可以在通过 ports 和 packages + 套件获得。</para> </listitem> <indexterm><primary>源代码</primary></indexterm> @@ -548,10 +548,10 @@ 3.5.1,加入了对 Kerberos 安全性方面的修补。 这是 3.X 分支最后一个发行版本。</para> - <para>随后在 March 13, 2000 出现了一个新的分支, 也就是 4.X-STABLE。 + <para>随后在 2000 年 3 月 13 日出现了一个新的分支, 也就是 4.X-STABLE。 这之后发布了许多的发行版本: 4.0-RELEASE 于 2000 年 3月发布, - 而最后的 &rel2.current;-RELEASE 则在 - &rel2.current.date; 发布。</para> + 而最后的 4.11-RELEASE 则是在 + 2005 年 1 月发布的。</para> <para>期待已久的 5.0-RELEASE 于 2003 年 1 月 19 日正式发布。 这是将近三年的开发的巅峰之作, 同时也标志了 FreeBSD @@ -562,11 +562,16 @@ 2004 年 2 月正式发布。</para> <para>RELENG_5 于 2004 年 8 月正式创建, 其后是 5.3-RELEASE, - 它是 5-STABLE 分支的标志性发行版。 最新的 &rel.current;-RELEASE - 是在 &rel.current.date; 发布的, RELENG_5 分支还将有后续的发行版。</para> + 它是 5-STABLE 分支的标志性发行版。 最新的 &rel2.current;-RELEASE + 是在 &rel2.current.date; 发布的, RELENG_5 分支还将有后续的发行版。</para> + + <para>其后在 2005 年 7 月建立了 RELENG_6 分支。 6.X 分支上的第一个版本, + 即 6.0-RELEASE, 则是在 2005 年 11 月发布的。 + 最新的 &rel.current;-RELEASE 发布于 &rel.current.date;。 + 我们还将继续从 RELENG_6 发布新的版本。</para> <para>目前, 中长期的开发项目继续在 - 6.X-CURRENT (trunk) 分支中进行, 而 6.X 的 + 7.X-CURRENT (主干, trunk) 分支中进行, 而 6.X 的 CDROM (当然, 也包括网络) 快照版本可以在 <ulink url="ftp://current.FreeBSD.org/pub/FreeBSD/snapshots/"> 快照服务器</ulink> 找到。</para> diff --git a/zh_CN.GB2312/books/handbook/kernelconfig/chapter.sgml b/zh_CN.GB2312/books/handbook/kernelconfig/chapter.sgml index 0007366821..73ae29100e 100644 --- a/zh_CN.GB2312/books/handbook/kernelconfig/chapter.sgml +++ b/zh_CN.GB2312/books/handbook/kernelconfig/chapter.sgml @@ -1171,8 +1171,8 @@ device pty # Pseudo-ttys (telnet etc)</programlisting> <programlisting>device md # Memory <quote>disks</quote></programlisting> - <para>Memory disk pseudo-devices. With &os; 4.X use the - line <literal>pseudo-device md</literal>.</para> + <para>内存盘伪设备。 对于 &os; 4.X 则应使用 + <literal>pseudo-device md</literal>。</para> <programlisting>device gif # IPv6 and IPv4 tunneling</programlisting> diff --git a/zh_CN.GB2312/books/handbook/linuxemu/chapter.sgml b/zh_CN.GB2312/books/handbook/linuxemu/chapter.sgml index 848e0c7829..309523d1fd 100644 --- a/zh_CN.GB2312/books/handbook/linuxemu/chapter.sgml +++ b/zh_CN.GB2312/books/handbook/linuxemu/chapter.sgml @@ -1,7 +1,7 @@ <!-- The FreeBSD Documentation Project - Original Revision: 1.129 + Original Revision: 1.130 $FreeBSD$ --> @@ -120,8 +120,8 @@ Id Refs Address Size Name 1 2 0xc0100000 16bdb8 kernel 7 1 0xc24db000 d000 linux.ko</screen> <indexterm> - <primary>内核选项</primary> - <secondary>LINUX</secondary> + <primary>kernel options (内核选项)</primary> + <secondary>COMPAT_LINUX</secondary> </indexterm> <para>如果您不想或者无法将Linux KLD加载,您就需要在内核中静态链接进Linux二进制兼容模式。您必须在 diff --git a/zh_CN.GB2312/books/handbook/mac/chapter.sgml b/zh_CN.GB2312/books/handbook/mac/chapter.sgml index 251c19c16c..e017158df9 100644 --- a/zh_CN.GB2312/books/handbook/mac/chapter.sgml +++ b/zh_CN.GB2312/books/handbook/mac/chapter.sgml @@ -2,7 +2,7 @@ The FreeBSD Documentation Project The FreeBSD Simplified Chinese Project - Original Revision: 1.49 + Original Revision: 1.53 $FreeBSD$ --> @@ -100,7 +100,7 @@ <para>此外还需要注意的是, 本章中所包含的例子仅仅是例子。 我们并不建议在一个生产用系统上进行这些特别的设置。 - 实施各种安全策略模块需要谨慎的考虑, + 实施各种安全策略模块需要谨慎的考虑与测试, 因为那些并不完全理解所有机制如何工作的人, 可能会发现需要对整个系统中很多的文件或目录进行重新配置。</para> </warning> @@ -757,9 +757,15 @@ test: biba/high</screen> <para>&man.mac.bsdextended.4; 模块能够强制文件系统防火墙策略。 这一模块的策略提供了标准文件系统权限模型的一种扩展, 使得管理员能够建立一种类似防火墙的规则集, - 以文件系统层次结构中的保护文件、 实用程序,以及目录。</para> - - <para>这类策略可以通过工具 &man.ugidfw.8; 工具来创建, + 以文件系统层次结构中的保护文件、 实用程序,以及目录。 + 在尝试访问文件系统对象时, 会遍历规则表, + 直至找到匹配的规则, 或到达表尾。 这一行为可以通过使用 + &man.sysctl.8; 参数, + security.mac.bsdextended.firstmatch_enabled 来进行设置。 + 与 &os; 中的其他防火墙设置类似, 也可以建一个文件来配置访问控制策略, + 并通过 &man.rc.conf.5; 变量的配置在系统引导时加载它。</para> + + <para>规则表可以通过工具 &man.ugidfw.8; 工具来创建, 其语法类似 &man.ipfw.8;。 此外还可以通过使用 &man.libugidfw.3; 库来开发其他的工具。</para> @@ -1033,7 +1039,7 @@ test: biba/high</screen> :passwordtime=91d:\ :umask=022:\ :ignoretime@:\ - :label=partition/13,mls/5,biba/low:</programlisting> + :label=partition/13,mls/5,biba/10:</programlisting> <para>需要在 &man.login.conf.5; 上执行 &man.cap.mkdb.1; 之后, @@ -1102,11 +1108,12 @@ test: biba/high</screen> </listitem> </itemizedlist> - <para>当启用了这个规则时, 用户将只被允许看到他们自己的进程, - 而无法使用某些工具。 例如, 在前面提到的 + <para>当启用了这个规则时, 用户将只能看到他们自己的, + 以及其他与他们同处一个 partition 的进程, + 而不能使用能够越过 partition 的工具。 例如, <literal>insecure</literal> class 中的用户, - 将无法使用 <command>top</command> 命令, - 以及其他必需生成进程的命令。</para> + 就无法使用 <command>top</command> 命令, + 以及其他需要产生新进程的工具。</para> <para>要设置或删除 partition 标签中的工具, 需要使用 <command>setpmac</command>:</para> @@ -1366,7 +1373,8 @@ test: biba/high</screen> test: biba/low</screen> <para>观察: 较低完整性级别的 subject 不能向较高完整性级别的 subject 写; - 较高完整性级别的 subject 也不能观察或读取较低完整性级别的对象。</para> + 较高完整性级别的 subject 也不能观察或读取较低完整性级别的对象。 + 设置最低级别的 label 能够使 subject 无法访问它。</para> </sect1> <sect1 id="mac-lomac"> @@ -1750,7 +1758,7 @@ cat: test4: Permission denied</screen> <para>可以很快地完成这个工作。</para> <para>接下来建立另一个 class, web, 它是 default 的一个副本, - 但将标签设置为 <literal>biba/low</literal>。</para> + 但将标签设置为 <literal>biba/10</literal>。</para> <para>建立一个用于在 <application>cvs</application> 中的主 web 库的数据上工作的用户。 这个用户必须被放到我们新建立的那个登录 @@ -1796,8 +1804,8 @@ exit;</programlisting> <programlisting>command="setpmac biba/low /usr/local/sbin/httpd"</programlisting> <para><application>Apache</application> 配置必须进行修改, - 以便在 <literal>biba/low</literal> 策略下工作。 - 因为这时软件必须配置为在设置了 <literal>biba/low</literal> + 以便在 <literal>biba/10</literal> 策略下工作。 + 因为这时软件必须配置为在设置了 <literal>biba/10</literal> 的目录中记录日志, 否则将返回 <errorname>access denied</errorname> 错误。</para> diff --git a/zh_CN.GB2312/books/handbook/mirrors/chapter.sgml b/zh_CN.GB2312/books/handbook/mirrors/chapter.sgml index 2454880fa5..3369b40fac 100644 --- a/zh_CN.GB2312/books/handbook/mirrors/chapter.sgml +++ b/zh_CN.GB2312/books/handbook/mirrors/chapter.sgml @@ -2,7 +2,7 @@ The FreeBSD Documentation Project The FreeBSD Chinese Documentation Project - Original Revision: 1.411 + Original Revision: 1.412 $FreeBSD$ --> @@ -2422,6 +2422,15 @@ doc/zh_*</screen> </varlistentry> <varlistentry> + <term>RELENG_6_1</term> + + <listitem> + <para>FreeBSD-6.1 的发行版分支, 只用于安全公告, + 以及其他重要更新。</para> + </listitem> + </varlistentry> + + <varlistentry> <term>RELENG_6_0</term> <listitem> diff --git a/zh_CN.GB2312/books/handbook/printing/chapter.sgml b/zh_CN.GB2312/books/handbook/printing/chapter.sgml index 12c67ac397..5a4a9f641c 100644 --- a/zh_CN.GB2312/books/handbook/printing/chapter.sgml +++ b/zh_CN.GB2312/books/handbook/printing/chapter.sgml @@ -38,7 +38,7 @@ 您可以使运行的应用程序产生高质量的打印输出。</para> <para>FreeBSD 也可以被设置成一个网络上的打印服务器。 它可以从包括 - FreeBSD、 &windows; 及 &macos; 在内的多种其他主机上接收打印任务。 + FreeBSD、 &windows; 及 &macos; 在内的多种其他计算机上接收打印任务。 FreeBSD 将保证任务在某时被打印, 并且可以把哪台机器, 哪位用户打印的最多记录在统计表中, 生成 <quote>横幅</quote> 页, 显示哪份打印输出的是哪位用户的等等。</para> @@ -46,7 +46,7 @@ <itemizedlist> <listitem> - <para>怎样配置FreeBSD打印池。</para> + <para>怎样配置FreeBSD后台打印。</para> </listitem> <listitem> @@ -84,7 +84,7 @@ <itemizedlist> <listitem> <para>知道怎样配置并安装新内核 - (<xref linkend="kernelconfig">)。 </para> + (<xref linkend="kernelconfig">)。</para> </listitem> </itemizedlist> </sect1> @@ -93,23 +93,22 @@ <title>介绍</title> <para>为了在 FreeBSD 中使用打印机, - 您需要将伯克利行式打印机打印池系统即 - <application>LPD</application> - 打印池系统设置好。 - 它是FreeBSD的标准打印控制系统。 这章介绍<application>LPD</application> - 打印池系统, 经常简称<application>LPD</application>, - 并且将指导您贯穿它的配置。</para> + 需要首先配置好伯克利行式打印机后台打印系统即 + <application>LPD</application>。 + 它是 FreeBSD 的标准打印控制系统。 这章介绍 <application>LPD</application> + 后台打印系统, 在接下来将简称为 <application>LPD</application>, + 并且将指导您完成其配置。</para> <para>如果您已经熟悉了 - <application>LPD</application>或者其他打印池系统, 您可以跳到<link - linkend="printing-intro-setup">设置打印池系统</link>这部分。</para> + <application>LPD</application> 或者其他后台打印系统, 则可以跳到 <link + linkend="printing-intro-setup">设置后台打印系统</link> 这部分。</para> - <para><application>LPD</application>完全控制一台主机的打印机。 + <para><application>LPD</application> 完全控制一台计算机上的打印机。 它负责许多的事情:</para> <itemizedlist> <listitem> - <para>它控制本地和连接在网络上其他主机上的打印机的访问。</para> + <para>它控制本地和连接在网络上其他计算机上打印机的访问。</para> </listitem> <indexterm><primary>print jobs</primary></indexterm> @@ -119,7 +118,7 @@ </listitem> <listitem> - <para>它为每个打印机维护一个<emphasis>队列</emphasis>来防止多个用户在同一时刻访问一台打印机。</para> + <para>它为每个打印机维护一个 <emphasis>队列</emphasis> 来防止多个用户在同一时刻访问一台打印机。</para> </listitem> <listitem> @@ -132,8 +131,8 @@ </listitem> <listitem> - <para>它能通过网络将任务发送到另外一台主机的 - <application>LPD</application>打印池中。</para> + <para>它能通过网络将任务发送到另外一台计算机的 + <application>LPD</application>后台打印队列中。</para> </listitem> <listitem> @@ -151,15 +150,15 @@ 系统在众多种类的打印机硬件上完成上面全部的或者一些子集的功能。</para> <sect2 id="printing-intro-why"> - <title>为什么要用打印池</title> + <title>为什么要用后台打印</title> <para>如果您是系统唯一的用户, 您可能会奇怪为什么要在您不需要访问控制, - 报头页或者打印机使用统计时为打印池费心。 - 它可以设置成允许直接访问打印机, 但您还是应该使用打印池, 因为:</para> + 报头页或者打印机使用统计时为后台打印费心。 + 它可以设置成允许直接访问打印机, 但您还是应该使用后台打印, 因为:</para> <itemizedlist> <listitem> - <para><application>LPD</application>在后台打印任务; 您不用被迫等待数据被完全拷贝到打印机的时间。</para> + <para><application>LPD</application>在后台打印任务; 您不用被迫等待数据被完全副本到打印机的时间。</para> </listitem> <indexterm><primary>&tex;</primary></indexterm> @@ -170,8 +169,8 @@ </listitem> <listitem> - <para>许多提供打印功能的免费和商业程序想要和您系统上的打印池通讯。 - 通过设置打印池系统, 您将更轻松的支持其他以后要添加的或者现有的软件。</para> + <para>许多提供打印功能的免费和商业程序想要和您计算机上的的后台打印系统通讯。 + 通过设置后台打印系统, 您将更轻松的支持其他以后要添加的或者现有的软件。</para> </listitem> </itemizedlist> </sect2> @@ -180,11 +179,10 @@ <sect1 id="printing-intro-setup"> <title>基本设置</title> - <para>要想在<application>LPD</application>打印池 - 系统上使用打印机, 您需要 - 设置打印机硬件和 + <para>要想在 <application>LPD</application>后台打印系统上使用打印机, + 您需要设置打印机硬件和 <application>LPD</application>软件。 这个 - 文档描述了这两级设置: </para> + 文档描述了这两级设置:</para> <itemizedlist> <listitem> @@ -192,7 +190,7 @@ 设置</link>来了解怎样连接一个打印机, 告诉 <application>LPD</application>怎样与 它通讯, 并且打印纯文本到 - 打印机。 </para> + 打印机。</para> </listitem> <listitem> @@ -200,7 +198,7 @@ 来了解怎样打印多种 特殊格式的文件, 怎样打印报头页, 怎样通过网络 打印, 怎样控制打印机的访问权限, 并且学会为打印 - 作业记帐统计。 </para> + 作业记帐统计。</para> </listitem> </itemizedlist> @@ -209,34 +207,34 @@ <para>这部分讲解怎样配置打印机硬件和 <application>LPD</application>使之与打印机配合。 - 讲解的基础知识有: </para> + 讲解的基础知识有:</para> <itemizedlist> <listitem> <para><link linkend="printing-hardware">硬件 设置</link>部分将讲解怎样把一台打印机连接到 - 您计算机的一个端口上。 </para> + 您计算机的一个端口上。</para> </listitem> <listitem> <para><link linkend="printing-software">软件 设置</link>部分将讲解怎样配置 - <application>LPD</application>打印池的配置 - 文件 (<filename>/etc/printcap</filename>)。 </para> + <application>LPD</application>后台打印的配置 + 文件 (<filename>/etc/printcap</filename>)。</para> </listitem> </itemizedlist> <para>如果您正在设置一台通过网络协议 - 接收数据来打印而不是通过串行或者并口的打印机, + 接收数据来打印而不是通过串口或者并口的打印机, 参见 <link linkend="printing-advanced-network-net-if">使用网络数据流界面的打印机</link>。</para> <para>尽管这部分叫<quote>简单打印机 设置</quote>, 但还是相当复杂的。 使打印机 - 配合和<application>LPD</application> - 打印池在计算机上正常运转是最难的 + 配合 <application>LPD</application> + 后台打印系统在计算机上正常运转是最难的 部分。 一旦您的打印机可以正常工作后,那些高级选项, 比如报文页和记帐, - 是相当简单的。 </para> + 是相当简单的。</para> <sect3 id="printing-hardware"> <title>硬件设置</title> @@ -244,18 +242,18 @@ <para>这部分讲述了打印机连接到计算机的多种 途径。 主要讨论了多种接口和 连接线, 还有允许 FreeBSD 与打印机通讯所需的 - 内核配置。 </para> + 内核配置。</para> <para>如果您已经连接好了您的打印机而且已经 用它在另外一个操作系统下成功的打印, 您 或许可以跳到这个部分<link - linkend="printing-software">软件设置</link>。 </para> + linkend="printing-software">软件设置</link>。</para> <sect4 id="printing-ports"> <title>端口和连接电缆</title> <para>现在所出售的在 PC 上使用的打印机通常至少有 - 以下三种接口中的一个: </para> + 以下三种接口中的一个:</para> <itemizedlist> <indexterm> @@ -263,14 +261,14 @@ <secondary>serial</secondary> </indexterm> <listitem> - <para><emphasis>串行</emphasis>接口, 也叫 RS-232 或者 COM 口, + <para><emphasis>串口</emphasis>, 也叫 RS-232 或者 COM 口, 使用您计算机上的串口来发送数据到打印机。 - 串行接口在计算机上已经非常普遍, + 串口在计算机上已经非常普遍, 而且电缆也非常容易买到且容易制作。 - 串行接口有时需要特殊的电缆, + 串口有时需要特殊的电缆, 而且可能需要您去配置稍微有点儿复杂的通讯选项。 大多数 PC 的串口的最高传输速度只有 115200 bps, - 这使得打印很大的图像需要的时间很长。 </para> + 这使得打印很大的图像需要的时间很长。</para> </listitem> <indexterm> @@ -303,7 +301,7 @@ USB 用来打印比串口和并口更有优势, 但 &unix; 系统不能很好的支持它。 避免这个问题的方法就是购买一台 像大多数打印机一样的既有 USB 接口又有并口的 - 打印机。 </para> + 打印机。</para> </listitem> </itemizedlist> @@ -321,7 +319,7 @@ 这通常用在喷墨打印机上, 且可以用来报告剩余墨水多少和其他状态信息。 第二种方法使用在支持 - &postscript; 的打印机上。 </para> + &postscript; 的打印机上。</para> <para>&postscript; 任务事实上由程序发送给打印机; 但它并不进行打印而是直接将结果返回给计算机。 @@ -341,7 +339,7 @@ <para>用并口连接打印机需要用 Centronics 电缆把打印机与计算机连接起来。 具体说明指导在打印机, 计算机的说明书上应该有, - 或者干脆两个上面都有。 </para> + 或者干脆两个上面都有。</para> <para>记住您用的计算机上的哪个并口。 第一个并口在 FreeBSD 上叫 <filename>/dev/ppc0</filename>; @@ -357,11 +355,11 @@ <para>用串口连接打印机需要用 合适的串口电缆把打印机与计算机连接起来。 具体 说明指导应该在打印机, 计算机的说明书上有, 或者 - 同样干脆两个上面都有。 </para> + 同样干脆两个上面都有。</para> <para>如果您不确定什么样儿的电缆才是 <quote> 合适的串口 电缆 </quote> , 您可以尝试以下几种不同的 - 电缆: </para> + 电缆:</para> <itemizedlist> <listitem> @@ -369,7 +367,7 @@ 每一根引脚都直接连接到另一端 相应的引脚 上。 这种电缆也叫做 - <quote>DTE-to-DCE</quote> 电缆。 </para> + <quote>DTE-to-DCE</quote> 电缆。</para> </listitem> <indexterm><primary>null-modem cable</primary></indexterm> @@ -378,14 +376,14 @@ 是与另一端相应引脚直接连接的, 而有一些则是交叉连接的 (比如, 发送数据引脚连接到 接收数据引脚 ), 还有一些引脚直接在电缆连接头儿内 短接。 这种电缆也叫做 - <quote>DTE-to-DTE</quote> 电缆。 </para> + <quote>DTE-to-DTE</quote> 电缆。</para> </listitem> <listitem> - <para>一些特殊的打印机需要的<emphasis>串行打印机</emphasis> 电缆, + <para>一些特殊的打印机需要的<emphasis>串口打印机</emphasis> 电缆, 是一种和非调制解调器电缆类似的电缆, 只是一些信号还是送到了另一端, 而 - 不是直接在连接头儿内短路。 </para> + 不是直接在连接头儿内短路。</para> </listitem> </itemizedlist> @@ -409,17 +407,17 @@ <title>软件设置</title> <para>这部分描述了要使用FreeBSD系统中的 - <application>LPD</application> 打印池进行打印所需的软件设置。 + <application>LPD</application> 后台打印系统进行打印所需的软件设置。 </para> - <para>包括这几个步骤: </para> + <para>包括这几个步骤:</para> <procedure> <step> <para>在需要的时候配置内核来允许您连接 打印机的端口; <link linkend="printing-kernel">配置内核</link> 部分会告诉您 - 需要做什么。 </para> + 需要做什么。</para> </step> <step> @@ -427,21 +425,21 @@ 并口的通讯模式; <link linkend="printing-parallel-port-mode">设置 并口通讯模式</link> 部分会告诉您具体的 - 细节。 </para> + 细节。</para> </step> <step> <para>测试操作系统是否能够发送数据到打印机。 <link linkend="printing-testing">检测打印机 联机状况</link> 部分会告诉您要怎样 - 做。 </para> + 做。</para> </step> <step> <para>为 <application>LPD</application> 设置与打印机匹配的参数则 通过修改 <filename>/etc/printcap</filename> 这个文件来完成。 这章后面 - 的部分将讲解如何来完成设置。 </para> + 的部分将讲解如何来完成设置。</para> </step> </procedure> @@ -452,45 +450,45 @@ 编译。 打印机所用的串口、 并口就属于那些特殊设备。 因此, 可能需要 添加对串口或并口的支持, - 如果内核并没有配置它们的话。 </para> + 如果内核并没有配置它们的话。</para> <para>要想知道您现在使用的内核是否支持串口, - 输入: </para> + 输入:</para> <screen>&prompt.root; <userinput>grep sio<replaceable>N</replaceable> /var/run/dmesg.boot</userinput></screen> <para>其中 <replaceable>N</replaceable> 是串口的 编号, 从0开始。 如果您看到 - 类似下面的输出: </para> + 类似下面的输出:</para> <screen>sio2 at port 0x3e8-0x3ef irq 5 on isa sio2: type 16550A</screen> - <para>则说明您现在使用的内核支持串口。 </para> + <para>则说明您现在使用的内核支持串口。</para> <para>要想知道您现在使用的内核是否支持并口, - 输入: </para> + 输入:</para> <screen>&prompt.root; <userinput>grep ppc<replaceable>N</replaceable> /var/run/dmesg.boot</userinput></screen> <para>其中 <replaceable>N</replaceable> 是并口的 编号, 同样从0开始。 如果得到类似 - 下面的输出: </para> + 下面的输出:</para> <screen>ppc0: <Parallel port> at port 0x378-0x37f irq 7 on isa0 ppc0: SMC-like chipset (ECP/EPP/PS2/NIBBLE) in COMPATIBLE mode ppc0: FIFO with 16/16/8 bytes threshold</screen> - <para>那么您现在使用的内核支持并口。 </para> + <para>那么您现在使用的内核支持并口。</para> <para>您可能必须为了使操作系统支持您打印机需要的串口或 并口而 - 重新配置内核。 </para> + 重新配置内核。</para> <para>要增加对串口的支持, 参见 内核配置这部分。 要增加对并口的支持, 除了参见 上面提到的那部分之外, <emphasis>还要</emphasis> 参见下面的 - 部分。 </para> + 部分。</para> </sect4> </sect3> @@ -502,32 +500,32 @@ ppc0: FIFO with 16/16/8 bytes threshold</screen> 这种在需要的时候自动添加设备节点 的文件系统。 如果您正在使用的 FreeBSD 开启了 <literal>devfs</literal> 文件系统, 那么您可以安全的跳过 - 这部分。 </para></note> + 这部分。</para></note> <para>尽管内核可能已经支持通过串口或者并口 通讯, 但您还是需要一个软件接口 来使您系统上的程序通过它发送和接收 数据。 这也是 - <filename>/dev</filename> 目录中那些设备节点的作用。 </para> + <filename>/dev</filename> 目录中那些设备节点的作用。</para> <para><emphasis>要在 <filename>/dev</filename> 中为端口添加 - 一个设备节点: </emphasis></para> + 一个设备节点:</emphasis></para> <procedure> <step> <para>使用 &man.su.1; 命令切换到 <username>root</username> 帐号。 - 在出现提示的时候输入 <username>root</username> 帐号的密码。 </para> + 在出现提示的时候输入 <username>root</username> 帐号的密码。</para> </step> <step> <para>将当前目录改变到 <filename>/dev</filename> - 目录: </para> + 目录:</para> <screen>&prompt.root; <userinput>cd /dev</userinput></screen> </step> <step> - <para>输入: </para> + <para>输入:</para> <screen>&prompt.root; <userinput>./MAKEDEV <replaceable>port</replaceable></userinput></screen> @@ -536,15 +534,15 @@ ppc0: FIFO with 16/16/8 bytes threshold</screen> <literal>lpt0</literal> , 连接在第二个并口上时, 替换成 <literal>lpt1</literal> , 依此类推; 当打印机连接在第一个串口上时, 替换成 <literal>ttyd0</literal> , 连接在第二个串口上时, 替换成 - <literal>ttyd1</literal> , 依此类推。 </para> + <literal>ttyd1</literal> , 依此类推。</para> </step> <step> - <para>输入: </para> + <para>输入:</para> <screen>&prompt.root; <userinput>ls -l <replaceable>port</replaceable></userinput></screen> - <para>来检查设备节点是否正常建立。 </para> + <para>来检查设备节点是否正常建立。</para> </step> </procedure> @@ -554,24 +552,20 @@ ppc0: FIFO with 16/16/8 bytes threshold</screen> <para>在使用并口时, 您可以选择 让 FreeBSD 用中断方式还是轮询方式来 - 与打印机通讯。 在 - FreeBSD 4.X and 5.X 上, 通用的打印机驱动 (&man.lpt.4;) - 使用 &man.ppbus.4; 系统, 它由 - &man.ppc.4; 驱动来控制端口芯片。 </para> + 与打印机通讯。 在 FreeBSD 4.X and 5.X 上, + 通用的打印机驱动 (&man.lpt.4;) 使用 &man.ppbus.4; 系统, + 它利用 &man.ppc.4; 驱动来控制端口芯片。</para> <itemizedlist> <listitem> - <para><emphasis>中断</emphasis> 方式是 - GENERIC 核心的默认方式。 在这种方式下, - 操作系统占用一条中断请求线来检测什么时候 - 打印机做好接收数据的准备。 </para> + <para><emphasis>中断</emphasis> 方式是 GENERIC 核心的默认方式。 + 在这种方式下, 操作系统占用一条中断请求线来检测打印机是否已经做好接收数据的准备。</para> </listitem> <listitem> - <para><emphasis>轮询</emphasis> 方式是 - 操作系统反复不断的询问打印机是否做好 - 接收数据的准备。 当它返回准备好时, 核心开始发送 - 下面要发送的数据。 </para> + <para><emphasis>轮询</emphasis> + 方式是操作系统反复不断的询问打印机是否做好接收数据的准备。 + 当它返回就绪时, 核心开始发送下面要发送的数据。</para> </listitem> </itemizedlist> @@ -581,14 +575,14 @@ ppc0: FIFO with 16/16/8 bytes threshold</screen> 是由于一些定时问题 (还没正确的理解) 造成的。 这些打印机需要使用轮询方式。 您应该使用 任何一种方式, 只要它能正常工作就行。 一些打印机虽然在两种模式下都可以 - 工作, 但在中断模式下会慢的要命。 </para> + 工作, 但在中断模式下会慢的要命。</para> <para>您可以用以下两种方法设定通讯模式: 通过 配置内核或者使用 &man.lptcontrol.8; - 这个程序。 </para> + 这个程序。</para> <para><emphasis>要通过配置内核的方法设置 - 通讯模式: </emphasis></para> + 通讯模式:</emphasis></para> <procedure> <step> @@ -596,26 +590,26 @@ ppc0: FIFO with 16/16/8 bytes threshold</screen> 一个叫 <literal>ppc0</literal> 的记录。 如果您想要设置的是 第二个并口, 那么用 <literal>ppc1</literal> 代替。 使用第三个并口的时候用 <literal>ppc2</literal> 代替, - 依此类推。 </para> + 依此类推。</para> <itemizedlist> <listitem> <para>如果您想要使用中断方式, 在 FreeBSD 4.X 下的方法是指定一个 - <literal>irq</literal> : </para> + <literal>irq</literal>:</para> <programlisting>device ppc0 at isa? irq <replaceable>N</replaceable></programlisting> <para>其中 <replaceable>N</replaceable> 是计算机并口 - 的中断编号。 </para> + 的中断编号。</para> - <para>在 FreeBSD 5.X 下, 修改下面这一行: </para> + <para>在 FreeBSD 5.X 下, 修改下面这一行:</para> <programlisting>hint.ppc.0.irq="<replaceable>N</replaceable>"</programlisting> <para>它在 <filename>/boot/device.hints</filename> 这个文件中, 其中 <replaceable>N</replaceable> 用正确的中断 编号代替。 同时, 核心配置文件也必须 - 包括 &man.ppc.4; 的驱动: </para> + 包括 &man.ppc.4; 的驱动:</para> <screen>device ppc</screen> @@ -623,84 +617,81 @@ ppc0: FIFO with 16/16/8 bytes threshold</screen> <listitem> <para>如果您想要使用轮询方式, 则不用指定 - <literal>irq</literal> : </para> + <literal>irq</literal>:</para> - <para>在 FreeBSD 4.X 下, 在内核配置文件中使用下面 - 这行: </para> + <para>在 FreeBSD 4.X 下, + 在内核配置文件中使用下面这行:</para> <programlisting>device ppc0 at isa?</programlisting> <para>在 FreeBSD 5.X 下, 只需要把 - <filename>/boot/device.hints</filename> 这个文件中的下面这行 - 删除掉: </para> + <filename>/boot/device.hints</filename> + 这个文件中的下面这行删除掉:</para> <programlisting>hint.ppc.0.irq="<replaceable>N</replaceable>"</programlisting> <para>在 FreeBSD 5.X 下, 有时上面的方法并不能使并口工作在轮询方式。 大多数 - 情况是由于 &man.acpi.4; 驱动造成的, 它 - 可以自动侦测到设备并将其挂载到系统上, 但也因此, - 它控制着打印机端口的访问模式. 您 - 得检查 &man.acpi.4; 的配置来 - 解决这个问题。 </para> + 情况是由于 &man.acpi.4; 驱动造成的, + 它可以自动侦测到设备并将其挂载到系统上, 但也因此, + 它控制着打印机端口的访问模式. 您需要检查 &man.acpi.4; + 的配置来解决这个问题。</para> </listitem> </itemizedlist> </step> <step> - <para>保存文件。 然后配置, 建立, 并安装刚配置的 - 内核, 最后重新启动。 参见 <link - linkend="kernelconfig">内核配置</link> 这章来获得 - 更多细节。 </para> + <para>保存文件。 然后配置, 建立, 并安装刚配置的内核, + 最后重新启动。 参见 <link + linkend="kernelconfig">内核配置</link> 这章来获得更多细节。</para> </step> </procedure> <para><emphasis>使用</emphasis> - &man.lptcontrol.8; <emphasis>设置通讯模式</emphasis> : </para> + &man.lptcontrol.8; <emphasis>设置通讯模式</emphasis>:</para> <procedure> <step> - <para>输入: </para> + <para>输入:</para> <screen>&prompt.root; <userinput>lptcontrol -i -d /dev/lpt<replaceable>N</replaceable></userinput></screen> <para>将 - <literal>lpt<replaceable>N</replaceable></literal> 设置成中断方式。 </para> + <literal>lpt<replaceable>N</replaceable></literal> 设置成中断方式。</para> </step> <step> - <para>输入: </para> + <para>输入:</para> <screen>&prompt.root; <userinput>lptcontrol -p -d /dev/lpt<replaceable>N</replaceable></userinput></screen> <para>将 - <literal>lpt<replaceable>N</replaceable></literal> 设置成轮询方式。 </para> + <literal>lpt<replaceable>N</replaceable></literal> 设置成轮询方式。</para> </step> </procedure> <para>您可以把这些命令加入到 <filename>/etc/rc.local</filename> 这个文件中, 这样每次启动系统 时都会设置成您想要的方式。 参见 &man.lptcontrol.8; 来获得 - 更多信息。 </para> + 更多信息。</para> </sect4> <sect4 id="printing-testing"> <title>检测打印机的通讯</title> - <para>在设置打印池系统之前, 您 - 应该确保您的计算机可以把数据 - 发送到打印机上。 分别独立调试打印机的通讯和打印池系统 - 会更简单。 </para> + <para>在设置后台打印系统之前, + 您应该确保您的计算机可以把数据 + 发送到打印机上。 分别独立调试打印机的通讯和后台打印系统会更简单。</para> <para>我们为了测试打印机,将发送一些文本给它。 一个叫 &man.lptest.1; 的程序能胜任这项工作, 它可以让打印机立即打印出程序发给它的 字符: 它在每行打出 - 可以打印的 96 个 ASCII 字符。 </para> + 可以打印的 96 个 ASCII 字符。</para> <indexterm><primary>PostScript</primary></indexterm> <para>当我们使用的是一台 &postscript; ( 或者以其他语言为基础的 ) 打印机, 那么 需要更仔细的检测。 一段小小的 &postscript; - 程序足以完成检测的任务, 比如下面这段程序: </para> + 程序足以完成检测的任务, 比如下面这段程序:</para> <programlisting>%!PS 100 100 moveto 300 300 lineto stroke @@ -710,17 +701,15 @@ showpage</programlisting> <para>可以把上面这段 &postscript; 代码写进一个文件里, 并且像下面部分的例子里那样 - 使用。 </para> + 使用。</para> <indexterm><primary>PCL</primary></indexterm> <note> - <para>上面的小程序是基于 - &postscript; 写成的, 而不是惠普 - 的 PCL 。 尽管 PCL 拥有强大的功能, 比如 - 您可以在打印纯文本的同时夹带着特殊的命令。 - &postscript; 不能直接打印纯文本, 所以 - 这类打印机语言是我们要特殊照顾的 - 对象。 </para> + <para>上面的小程序是针对 &postscript; 而不是惠普的 PCL 写的。 + 由于 PCL 拥有许多其他打印机没有的强大功能, + 比如它支持在打印纯文本的同时夹带特殊的命令, 而 + &postscript; 则不能直接打印纯文本, + 所以需要对这类打印机语言进行特殊的处理。</para> </note> <sect5 id="printing-checking-parallel"> @@ -730,112 +719,106 @@ showpage</programlisting> <primary>printers</primary> <secondary>parallel</secondary> </indexterm> - <para>这部分内容将指导您怎样检测FreeBSD是否 - 可以与一台已经连接在并口上的打印机 - 通讯。 </para> + <para>这部分内容将指导您怎样检测 FreeBSD + 是否可以与一台已经连接在并口上的打印机通讯。</para> - <para><emphasis>要测试并口上的 - 打印机: </emphasis></para> + <para><emphasis>要测试并口上的打印机:</emphasis></para> <procedure> <step> - <para>用 &man.su.1; 命令转换到 <username>root</username> 用户。 </para> + <para>用 &man.su.1; 命令转换到 <username>root</username> 用户。</para> </step> <step> - <para>发送数据到打印机。 </para> + <para>发送数据到打印机。</para> <itemizedlist> <listitem> <para>如果打印机可以直接打印纯文本, 可以用 - &man.lptest.1; 。 输入: </para> + &man.lptest.1;。 输入:</para> <screen>&prompt.root; <userinput>lptest > /dev/lpt<replaceable>N</replaceable></userinput></screen> - <para>其中 <replaceable>N</replaceable> 是并口的 - 编号, 从0开始。 </para> + <para>其中 <replaceable>N</replaceable> + 是并口的编号, 从0开始。</para> </listitem> <listitem> - <para>如果打印机支持 &postscript; 或者 - 其他打印机语言, 可以发送一段小程序到 - 打印机。 输入: </para> + <para>如果打印机支持 &postscript; 或其他打印机语言, + 可以发送一段小程序到打印机。 输入:</para> <screen>&prompt.root; <userinput>cat > /dev/lpt<replaceable>N</replaceable></userinput></screen> - <para>然后, 一行一行的 <emphasis>输入</emphasis> 输入 - 这段程序。 因为在按下 <literal>换行</literal> 或者 - <literal>回车</literal> 之后, 这一行就不能再修改了。 - 当您输入完 - 这段程序之后, 按 - <literal>CONTROL+D</literal>, 或者其他 - 表示文件结束的键。 </para> + <para>然后, 一行一行地 <emphasis>输入</emphasis> + 输入这段程序。 因为在按下 <literal>换行</literal> 或者 + <literal>回车</literal> 之后, 这一行就不能再修改了。 + 当您输入完这段程序之后, 按 + <literal>CONTROL+D</literal>, + 或者其他表示文件结束的键。</para> - <para>另外一种办法, 您可以把这段程序写在一个文件 - 里并输入: </para> + <para>另外一种办法, + 您可以把这段程序写在一个文件里, 并输入:</para> <screen>&prompt.root; <userinput>cat <replaceable>file</replaceable> > /dev/lpt<replaceable>N</replaceable></userinput></screen> - <para>其中 <replaceable>file</replaceable> 是 - 包含这您要发给打印机程序的 - 文件名。 </para> + <para>其中 <replaceable>file</replaceable> + 是包含这您要发给打印机程序的文件名。</para> </listitem> </itemizedlist> </step> </procedure> <para>之后, 您应该看到打印出了一些东西。 如果打印出的东西 - 看起来并不正确, 请不要着急; 我们将在后面指导您怎样 - 解决这类问题。 </para> + 看起来并不正确, 请不要着急; + 我们将在后面指导您如何解决这类问题。</para> </sect5> <sect5 id="printing-checking-serial"> - <title>检测串行打印机</title> + <title>检测串口打印机</title> <indexterm> <primary>printers</primary> <secondary>serial</secondary> </indexterm> - <para>这部分将告诉您如何检测FreeBSD是否可以与 - 连接在串口上的打印机通讯。 </para> + <para>这部分将告诉您如何检测 FreeBSD + 是否可以与连接在串口上的打印机通讯。</para> - <para><emphasis>要测试一个连接在串口上 - 的打印机: </emphasis></para> + <para><emphasis>要测试连接在串口上的打印机:</emphasis></para> <procedure> <step> - <para>通过 &man.su.1; 命令转换成 <username>root</username> 用户。 </para> + <para>通过 &man.su.1; 命令转为 <username>root</username> 用户。</para> </step> <step> - <para>修改 <filename>/etc/remote</filename> 这个文件。 增加 - 下面这些内容: </para> + <para>修改 <filename>/etc/remote</filename> 这个文件。 + 增加下面这些内容:</para> <programlisting>printer:dv=/dev/<replaceable>port</replaceable>:br#<replaceable>bps-rate</replaceable>:pa=<replaceable>parity</replaceable></programlisting> <indexterm><primary>bits-per-second</primary></indexterm> <indexterm><primary>serial port</primary></indexterm> <indexterm><primary>parity</primary></indexterm> - <para>其中 <replaceable>port</replaceable> 是 - 串口的设备节点 (<literal>ttyd0</literal>, - <literal>ttyd1</literal>, 等等。 ), - <replaceable>bps-rate</replaceable> 是 - 与打印机通讯时使用的波特, - <replaceable>parity</replaceable> 是通讯时打印机要求 - 的校验方法 (either <literal>even</literal>, - <literal>odd</literal>, <literal>none</literal>, or - <literal>zero</literal>)。 </para> + <para>其中 <replaceable>port</replaceable> + 是串口的设备节点 (<literal>ttyd0</literal>、 + <literal>ttyd1</literal>, 等等), + <replaceable>bps-rate</replaceable> + 是与打印机通讯时使用的速率, 而 + <replaceable>parity</replaceable> + 是通讯时打印机要求的校验方法 (应该是 <literal>even</literal>、 + <literal>odd</literal>、 <literal>none</literal>, 或 + <literal>zero</literal> 之一)。</para> <para>这儿有一个串口打印机的例子, 它连接在第三个串口上, 速度为 19200 波特, - 不进行校验: </para> + 不进行校验:</para> <programlisting>printer:dv=/dev/ttyd2:br#19200:pa=none</programlisting> </step> <step> <para>用 &man.tip.1; 连接打印机。 - 输入: </para> + 输入:</para> <screen>&prompt.root; <userinput>tip printer</userinput></screen> @@ -843,16 +826,16 @@ showpage</programlisting> <filename>/etc/remote</filename> 这个文件, 并且试试用 <filename>/dev/cuaa<replaceable>N</replaceable></filename> 代替 - <filename>/dev/ttyd<replaceable>N</replaceable></filename>。 </para> + <filename>/dev/ttyd<replaceable>N</replaceable></filename>。</para> </step> <step> - <para>发送数据到打印机。 </para> + <para>发送数据到打印机。</para> <itemizedlist> <listitem> <para>如果打印机可以直接打印纯文本, 则用 - &man.lptest.1; 。 输入: </para> + &man.lptest.1;。 输入:</para> <screen>&prompt.user; <userinput>$lptest</userinput></screen> </listitem> @@ -866,43 +849,42 @@ showpage</programlisting> 意义。 您同样也需要按一个特殊的 文件结束键, 让打印机知道它已经 接收了整个程序。 对于 &postscript; - 打印机, 按 <literal>CONTROL+D</literal>。 </para> + 打印机, 按 <literal>CONTROL+D</literal>。</para> <para>或者, 您同样也可以把程序存储在一个文件里 - 并输入: </para> + 并输入:</para> <screen>&prompt.user; <userinput>><replaceable>file</replaceable></userinput></screen> <para>其中 <replaceable>file</replaceable> 是 包含要发送程序的文件名。 在 &man.tip.1; 发送这个文件之后, 按代表 - 文件结束的键。 </para> + 文件结束的键。</para> </listitem> </itemizedlist> </step> </procedure> - <para>您应该看到打印出了一些东西。 如果它们看起来 - 并不正确也不要着急; 我们将在以后的部分中解决它。 </para> + <para>您应该看到打印出了一些东西。 + 如果它们看起来并不正确也不要着急; + 我们将在稍后的章节中介绍如何解决这类问题。</para> </sect5> </sect4> </sect3> <sect3 id="printing-printcap"> - <title>开启打印池: 文件 <filename>/etc/printcap</filename> + <title>启用后台打印: 文件 <filename>/etc/printcap</filename> </title> - <para>目前, 您的打印机应该已经连好了线, 系统内核 - 也为与打印机联机而重新配置好 ( 如果需要的话 ), 而且您也 - 已经可以发送一些简单的数据到打印机。 现在, 我们要 - 配置 <application>LPD</application> 来使其控制您的 - 打印机。 </para> + <para>目前, 您的打印机应该已经连好了线, + 系统内核也为与打印机联机而重新配置好 (如果需要的话), + 而且您也已经可以发送一些简单的数据到打印机。 现在, + 我们要配置 <application>LPD</application> 来使其控制您的打印机。</para> <para>配置 <application>LPD</application> 要修改 - <filename>/etc/printcap</filename> 这个文件。 - <application>LPD</application> 打印池系统 - 在每次打印池被使用的时候都会读取这个文件, 所以对这个文件 - 的修改会立即生效。 </para> + <filename>/etc/printcap</filename> 这个文件。 由于 + <application>LPD</application> 后台打印系统在每次使用后台打印的时候, + 都会读取这个文件, 因此对这个文件的修改会立即生效。</para> <indexterm> <primary>printers</primary> @@ -910,95 +892,89 @@ showpage</programlisting> </indexterm> <para>&man.printcap.5; 这个文件的格式很简单。 您可以用您最喜欢的文本编辑器来修改 - <filename>/etc/printcap</filename> 这个文件。 这种格式和其他的 - 像 + <filename>/etc/printcap</filename> 这个文件。 + 这种格式和其他的像 <filename>/usr/share/misc/termcap</filename> 和 - <filename>/etc/remote</filename> 这类文件是一样的。 要得到完整的 - 关于这种格式的信息, 参见 &man.cgetent.3; 。 </para> + <filename>/etc/remote</filename> 这类文件是一样的。 + 要得到关于这种格式的详尽信息, + 请参阅联机手册 &man.cgetent.3;。</para> - <para>简单的打印池配置包括下面的几 - 步: </para> + <para>简单的后台打印配置包括下面的几步:</para> <procedure> <step> - <para>为打印机起一个名字 ( 和一些方便的别名 ) - , 然后把它们写进文件 - <filename>/etc/printcap</filename> ; 参见 - <link linkend="printing-naming">Naming the Printer</link> - 这章来得到更多的关于起名的帮助。 </para> + <para>给打印机起一个名字 (记忆和使用的别名), 然后把它们写进文件 + <filename>/etc/printcap</filename>; 参见 + <link linkend="printing-naming">如何为打印机命名</link> + 这章来得到更多的关于起名的帮助。</para> </step> <indexterm><primary>header pages</primary></indexterm> <step> - <para>关掉报头页 ( 它默认是打开的 ), 通过 - 增加 <literal>sh</literal> 项目; 参见 - <link linkend="printing-no-header-pages">Suppressing Header - Pages</link> 部分来得到更多信息。 </para> + <para>通过增加 <literal>sh</literal> 项关掉报头页 + (它默认是启用的); 参见 + <link linkend="printing-no-header-pages">如何禁用报头页</link> + 部分来得到更多信息。</para> </step> <step> - <para>建立一个打印池缓冲的目录, 并且通过 - <literal>sd</literal> 项目指定它的位置; 参见 <link - linkend="printing-spooldir">Making the Spooling - Directory</link> 部分来得到更多信息。 </para> + <para>建立一个后台打印队列的目录, 并且通过 + <literal>sd</literal> 项目指定它的位置; 您可参见 <link + linkend="printing-spooldir">创建后台打印队列目录</link> + 一节了解更多信息。</para> </step> <step> - <para>在 <filename>/dev</filename> 下设置打印机设备 - 节点, 并且在写在 <filename>/etc/printcap</filename> - 文件中 <literal>lp</literal> 项目里; 参见 <link - linkend="printing-device">识别打印机 - 设备</link> 这部分得到更多信息。 还有, 如果打印机连接在 - 串口上, 设置通讯参数要写在 - <literal>ms#</literal> 项目中。 这些参数在 <link - linkend="printing-commparam">配置打印池 - 通讯参数</link> 这部分已经讨论过。 </para> + <para>在 <filename>/dev</filename> 下设置打印机设备节点, + 并且在写在 <filename>/etc/printcap</filename> + 文件中 <literal>lp</literal> 项目里; 参见 <link + linkend="printing-device">识别打印机设备</link> + 这部分可以得到更多信息。 此外, 如果打印机连接在串口上, + 通讯参数的设置需要写在 + <literal>ms#</literal> 项中。 这些参数在 <link + linkend="printing-commparam">配置后台打印通讯参数</link> + 这在前面已经讨论过。</para> </step> <step> - <para>安装纯文本过滤器; 参见 <link - linkend="printing-textfilter">安装文本 - 过滤器</link> 这章来得到细节。 </para> + <para>安装纯文本过滤器; 详情请参见 <link + linkend="printing-textfilter">安装文本过滤器</link> 小节。</para> </step> <step> <para>用 &man.lpr.1; 命令来测试设置。 想得到更多信息可以参见 - <link linkend="printing-trying">测试</link> and + <link linkend="printing-trying">测试</link> 和 <link - linkend="printing-troubleshooting">疑难问题解答</link> - 部分。 </para> + linkend="printing-troubleshooting">故障排除</link> + 部分。</para> </step> </procedure> <note> - <para>基于打印机语言的打印机, 比如 &postscript; 打印机, - 不能直接打印纯文本。 简单的设置方法在上面 - 提到并且下面的部分也要讨论, 假如您正在 - 安装这样一台只能打印它明白的文件的 - 打印机。 </para> + <para>使用打印机语言的打印机, 如 &postscript; 打印机, + 通常是不能直接打印纯文本的。 前面提到, + 并且将在后面继续进行介绍的简单的设置方法, + 均假定您正在安装这种只能打印它能识别的文件格式的打印机。</para> </note> - <para>用户总是希望他们能在任何一个安装在他们系统的打印机上打印 - 纯文本。 使用 - <application>LPD</application> 接口的程序也通常这样 - 希望。 - 如果您正在安装这样一台打印机, 并且想要它能打印 - 基于它支持的打印机语言的任务 <emphasis> 并且 </emphasis> - 还可以打印纯文本的任务, 那么强烈建议您在上面提到 - 的简单设置的步骤上增加一步: 安装一个 - 自动纯文本到 &postscript; ( 或者其他打印机语言 ) 的 - 转化程序。 参见 <link - linkend="printing-advanced-if-conversion"> 在 - &postscript; 打印机上打印纯文本 </link> 将得到 - 更多有关信息。 </para> + <para>用户通常会希望直接在系统提供的打印机上打印纯文本。 采用 + <application>LPD</application> 接口的程序也通常是这样设计的。 + 如果您正在安装这样一台打印机, + 并且希望它不仅能打印使用它支持的打印机语言的任务 + <emphasis>而且</emphasis> 还能打印纯文本的任务的话, + 那么强烈建议您在上面提到的简单设置的步骤上增加一步: + 安装从自动纯文本到 &postscript; (或者其他打印机语言) + 的转换程序。 更多的细节, 请参见 <link + linkend="printing-advanced-if-conversion">在 + &postscript; 打印机上打印纯文本</link>。</para> <sect4 id="printing-naming"> - <title>命名打印机</title> + <title>打印机的命名</title> <para>第一步 (简单) 就是给打印机起一个名字。 您是按功能起名字还是干脆起个古怪的名字都没有关系, - 因为您可以给打印机设置许多的别名。 </para> + 因为您可以给打印机设置许多的别名。</para> <para>在 <filename>/etc/printcap</filename> 里至少有一个打印机必须指定, 别名是 @@ -1013,7 +989,7 @@ showpage</programlisting> <para>一旦您选好了名字或者一些别名, 把它们放进文件 <filename>/etc/printcap</filename> 里。 打印机的名字应该从最左边的一列写起。 用竖杠来隔开每个别名, - 并且在最后一个别名后面加上一个冒号。 </para> + 并且在最后一个别名后面加上一个冒号。</para> <para>在下面的例子中, 我们从一个基本的 <filename>/etc/printcap</filename> 开始, 它只定义了两台打印机 @@ -1036,7 +1012,7 @@ bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:</programlisting> 被命名为 <literal>bamboo</literal>, 并且设置了 <literal>ps</literal>, <literal>PS</literal>, <literal>S</literal>, <literal>panasonic</literal>, 和 - <literal>Panasonic KX-P4455 PostScript v51.4</literal> 这几个别名。 </para> + <literal>Panasonic KX-P4455 PostScript v51.4</literal> 这几个别名。</para> </sect4> <sect4 id="printing-no-header-pages"> @@ -1046,14 +1022,14 @@ bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:</programlisting> <secondary>header pages</secondary> </indexterm> - <para><application>LPD</application> 打印池系统默认 + <para><application>LPD</application> 后台打印系统默认 会为每个任务打印 <emphasis>报头页</emphasis>。 报头页 - 包含了发送这个任务的用户, 发送这个任务 - 的主机, 任务的名字, 并用 - 大字母打出。 但不幸的是, 所有这些额外的文本会妨碍 - 在简单设置打印机时的除错, 所以我们将先 - 不打印报头页。 </para> + 包含了发送这个任务的用户, + 发送这个任务的计算机, 任务的名字, + 并用大字母打出。 但不幸的是, 所有这些额外的文本, + 都会给在对打印机进行最初的配置时排除故障带来困难, + 所以我们将先不打印报头页。</para> <para>要暂停打印报头页, 为打印机的记录增加 <literal>sh</literal> 标记, 在 @@ -1072,50 +1048,48 @@ bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ <para>注意我们的正确格式: 第一行从最左边一列开始, 而后的每一行用 TAB 缩进一次。 - 一行写不下需要换行时, 在换行前打一个反斜杠。 </para> + 一行写不下需要换行时, 在换行前打一个反斜杠。</para> </sect4> <sect4 id="printing-spooldir"> - <title>建立打印池目录</title> + <title>建立后台打印队列目录</title> <indexterm><primary>printer spool</primary></indexterm> <indexterm><primary>print jobs</primary></indexterm> <para>下一步设置就是要建立一个 - <emphasis>打印池目录</emphasis>, 一个在任务被打印完 - 之前存放任务的目录, 也有很多其他 - 的打印池系统所用到的文件存在里面。 </para> + <emphasis>后台打印队列目录</emphasis>, + 也就是在打印任务最终完成之前用于存放这些任务的目录, + 这个目录中也会存放后台打印系统用到的其他一些文件。</para> - <para>由于打印池目录的变量本质, 通常 + <para>由于后台打印队列目录的变量本质, 通常 把这些目录安排在 <filename>/var/spool</filename> 下。 您也没有必要去 - 备份打印池目录里的内容。 - 重新建立它们只要简单的使用 &man.mkdir.1; 命令。 </para> + 备份后台打印队列目录里的内容。 + 重新建立它们只要简单的使用 &man.mkdir.1; 命令。</para> <para>通常, 我们习惯将目录名起成和 打印机一样的名字, 像下面 - 这样: </para> + 这样:</para> <screen>&prompt.root; <userinput>mkdir /var/spool/<replaceable>printer-name</replaceable></userinput></screen> <para>然而, 如果您有很多网络打印机, - 您可能想要把这些打印池目录放在一个单独的 - 您专门为使用 - <application>LPD</application> 打印而准备的目录里。 我们 - 将用我们的两台打印机作为例子 + 您可能想要把这些后台打印的队列目录目录放在一个单独的专为使用 + <application>LPD</application> 打印而准备的目录里。 + 我们将用我们的两台打印机 <literal>rattan</literal> 和 - <literal>bamboo</literal>:</para> + <literal>bamboo</literal> 作为例子:</para> <screen>&prompt.root; <userinput>mkdir /var/spool/lpd</userinput> &prompt.root; <userinput>mkdir /var/spool/lpd/rattan</userinput> &prompt.root; <userinput>mkdir /var/spool/lpd/bamboo</userinput></screen> <note> - <para>如果您在关心用户任务的保密 - 性, 您可能想保护相应的打印池目录, 使它们 - 不能被公开访问。 打印池 - 目录应该被daemon用户拥有, 用户daemon和daemon组拥有读写和 - 搜索的权限, 并且其他用户没有。 - 我们将用我们的两台打印机作为例子:</para> + <para>如果担心用户任务的保密性, + 可能会希望保护相应的后台打印队列目录, 使之不能被其他用户访问。 + 后台打印的队列目录的属主应该是 daemon 用户, + 而 daemon 用户和 daemon 组拥有读写和搜索的权限, + 但其他用户没有。 接下来用我们的两台打印机作为例子:</para> <screen>&prompt.root; <userinput>chown daemon:daemon /var/spool/lpd/rattan</userinput> &prompt.root; <userinput>chown daemon:daemon /var/spool/lpd/bamboo</userinput> @@ -1124,10 +1098,7 @@ bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ </note> <para>最后, 您需要通过<filename>/etc/printcap</filename> 文件告诉 <application>LPD</application> - 这些 - 目录。 您可以用 <literal>sd</literal> 标记来指定 - 打印池目录的 - 路径:</para> + 这些目录。 您可以用 <literal>sd</literal> 标记来指定后台打印队列目录的路径:</para> <programlisting># # /etc/printcap for host rose - added spooling directories @@ -1142,8 +1113,8 @@ bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ TAB 键缩进一次, 写不开需要换行在最后加上反斜杠。</para> <para>如果您没用 - <literal>sd</literal> 标记指定打印池目录, 打印池系统会将 - <filename>/var/spool/lpd</filename> 目录作为默认目录。 </para> + <literal>sd</literal> 标记指定后台打印队列目录, 后台打印系统会将 + <filename>/var/spool/lpd</filename> 目录作为默认目录。</para> </sect4> <sect4 id="printing-device"> @@ -1155,13 +1126,13 @@ bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ <filename>/dev</filename> 目录中的哪个节点来让 FreeBSD 与打印机 通讯。 现在, 我们来告诉 <application>LPD</application> 这个 - 信息。 当打印池系统有任务需要打印, 它 + 信息。 当后台打印系统有任务需要打印, 它 将为过滤程序(负责传送数据到打印机)打开 - 指定的设备。 </para> + 指定的设备。</para> <para>用 <literal>lp</literal> 标记在 <filename>/etc/printcap</filename> 里列出 <filename>/dev</filename> 下的设备节点 - 。</para> + 。</para> <para>在我们的例子中, 假设打印机 <literal>rattan</literal> 在第一个并口上, 打印机 @@ -1182,19 +1153,19 @@ bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ <para>如果您没在您的 <filename>/etc/printcap</filename> 文件中 用 <literal>lp</literal> 标记指定设备节点, <application>LPD</application> 将默认使用 <filename>/dev/lp</filename> - 。 + 。 <filename>/dev/lp</filename> 目前在 - FreeBSD 中不存在。 </para> + FreeBSD 中不存在。</para> <para>如果您正在安装的打印机是连接在 并口上的, 请跳到 <link linkend="printing-textfilter">安装文本 过滤器</link> 这章。 如果不是的话, 还是最好按下面介绍的 - 步骤做。 </para> + 步骤做。</para> </sect4> <sect4 id="printing-commparam"> - <title>配置打印池通讯参数</title> + <title>配置后台打印通讯参数</title> <indexterm> <primary>printers</primary> <secondary>serial</secondary> @@ -1203,7 +1174,7 @@ bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ <para>对于连在串口上的打印机, <application>LPD</application> 可以为发送数据到打印机的过滤程序设置好波特率, 校验, 和其他串口通讯参数 - 。 这是有利的, + 。 这是有利的, 因为:</para> <itemizedlist> @@ -1211,13 +1182,13 @@ bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ <para>它可以让您只需简单的修改 <filename>/etc/printcap</filename> 就能尝试不同的通讯 参数; 您并不需要去重新编译过滤器 - 程序。 </para> + 程序。</para> </listitem> <listitem> - <para>它使得打印池系统可以在 + <para>它使得后台打印系统可以在 多台有不同串口通讯设置的打印机上使用 - 相同的过滤器程序。 </para> + 相同的过滤器程序。</para> </listitem> </itemizedlist> @@ -1243,8 +1214,8 @@ bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ <listitem> <para>设置已打开的中端设备的选项 - 。 &man.stty.1; 将详细 - 讲述可用的选项。 </para> + 。 &man.stty.1; 将详细 + 讲述可用的选项。</para> </listitem> </varlistentry> </variablelist> @@ -1259,14 +1230,14 @@ bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ <literal>cs8</literal>, <literal>cstopb</literal>, <literal>crtscts</literal>, 和 <literal>ixon</literal> 这些模式, 它们在 &man.stty.1; - 手册中有详细说明。 </para> + 手册中有详细说明。</para> <para>我们举个例子来添加我们连在第6个串口上的 打印机。 我们将设波特为38400。 至于模式, 我们将用 <literal>-parenb</literal> 设置成不校验, 用 <literal>cs8</literal> 设置成8位字符, 用 <literal>clocal</literal> 设置成不要调制解调器控制, - 用 <literal>crtscts</literal> 设置成硬件流量控制: </para> + 用 <literal>crtscts</literal> 设置成硬件流量控制:</para> <programlisting>bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ :sh:sd=/var/spool/lpd/bamboo:\ @@ -1289,12 +1260,12 @@ bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ 为打印机运行文本过滤器时, 它设置过滤器的 标准输入为要发给打印机的任务, 而标准输出为 用 <literal>lp</literal> 标记指定的打印机 - 。 过滤器先从标准输入读取 + 。 过滤器先从标准输入读取 任务, 为打印机进行一些转换 , 并将结果写到标准输出, 这些结果 将被打印。 想得到更多关于文本过滤器的信息, 见 <link linkend="printing-advanced-filters">过滤器</link> - 这节。 </para> + 这节。</para> <para>对于简单的打印机设置, 文本过滤器可以仅仅是一段 执行 <command>/bin/cat</command> 的 shell 脚本来 @@ -1306,12 +1277,12 @@ bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ 您想用的过滤程序。 <command>lpf</command> 过滤器在 <link linkend="printing-advanced-lpf">lpf: 一个文本 - 过滤器</link> 这节将有详细描述。 </para> + 过滤器</link> 这节将有详细描述。</para> <para>首先, 我们来写一段叫做 <filename>/usr/local/libexec/if-simple</filename> 的简单 shell 脚本作为文本过滤器。 用您熟悉的文本编辑器将下面的内容放进 - 这个文件: </para> + 这个文件:</para> <programlisting>#!/bin/sh # @@ -1323,7 +1294,7 @@ bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ /bin/cat && exit 0 exit 2</programlisting> - <para>使这个文件可以被执行: </para> + <para>使这个文件可以被执行:</para> <screen>&prompt.root; <userinput>chmod 555 /usr/local/libexec/if-simple</userinput></screen> @@ -1331,7 +1302,7 @@ exit 2</programlisting> <literal>if</literal> 标记在 <filename>/etc/printcap</filename> 里告诉 LPD 使用这个脚本。 我们将仍然为 一直作为例子的这两台打印机在 - <filename>/etc/printcap</filename> 里增加这个标记: </para> + <filename>/etc/printcap</filename> 里增加这个标记:</para> <programlisting># # /etc/printcap for host rose - added text filter @@ -1358,12 +1329,12 @@ bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ <para>&man.lpd.8; 在 <filename>/etc/rc</filename> 中被运行, 它是否被运行由 <literal>lpd_enable</literal> 这个变量控制。 这个 变量默认是 <literal>NO</literal>。 如果您还没有修改 - , 那么增加这行: </para> + , 那么增加这行:</para> <programlisting>lpd_enable="YES"</programlisting> <para>到 <filename>/etc/rc.conf</filename> 文件当中, 然后既可以重启您的 - 机器, 也可以直接运行 &man.lpd.8;。 </para> + 机器, 也可以直接运行 &man.lpd.8;。</para> <screen>&prompt.root; <userinput>lpd</userinput></screen> </sect4> @@ -1378,23 +1349,23 @@ bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ 问题。 要测试设置, 尝试打印一些东西。 要 用 <application>LPD</application> 系统打印, 您可以 使用 &man.lpr.1; 命令, - 它可以提交一个任务来打印。 </para> + 它可以提交一个任务来打印。</para> <para>您可以联合使用 &man.lpr.1; 和 the &man.lptest.1; 程序, 在 <link linkend="printing-testing">检查打印机 - 通讯</link> 这节介绍怎样生成一些测试文本。 </para> + 通讯</link> 这节介绍怎样生成一些测试文本。</para> <para><emphasis>要测试简单 <application>LPD</application> - 设置: </emphasis></para> + 设置:</emphasis></para> - <para>输入: </para> + <para>输入:</para> <screen>&prompt.root; <userinput>lptest 20 5 | lpr -P<replaceable>printer-name</replaceable></userinput></screen> <para>其中 <replaceable>printer-name</replaceable> 是 在 <filename>/etc/printcap</filename> 中指定的打印机的一个名字 ( 或者一个别名) - 。 要测试默认 + 。 要测试默认 打印机, 输入 &man.lpr.1; 不带任何 <option>-P</option> 选项。 同样, 如果您正在测试一台使用 &postscript; 的打印机, 发送一个 &postscript; 程序到打印机而不是 @@ -1404,7 +1375,7 @@ bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ <para>对于一台 &postscript; 打印机, 您应该得到那段程序的 结果。 而如果您使用的 &man.lptest.1;, 则您得到的 - 结果应该看起来像下面这样: </para> + 结果应该看起来像下面这样:</para> <programlisting>!"#$%&'()*+,-./01234 "#$%&'()*+,-./012345 @@ -1416,11 +1387,11 @@ $%&'()*+,-./01234567 程序 (为基于特定语言的打印机 ) 或者运行 &man.lptest.1; 并使用不同的参数。 比如, <command>lptest 80 60</command> 将生成 60 行 每行 80 - 个字符。 </para> + 个字符。</para> <para>如果打印机不能工作, 参考 <link linkend="printing-troubleshooting">故障排除</link> - 这节。 </para> + 这节。</para> </sect4> </sect3> </sect2> @@ -1431,7 +1402,7 @@ $%&'()*+,-./01234567 <para>这部分将描述用来打印特别格式文件, 页眉, 通过网络打印, 以及对打印机使用限制和 - 记帐。 </para> + 记帐。</para> <sect2 id="printing-advanced-filter-intro"> <title>过滤器</title> @@ -1458,16 +1429,16 @@ $%&'()*+,-./01234567 但坏消息是大多数时候 <emphasis>您</emphasis> 必须自己提供过滤器。 好消息 是很多过滤器通常都已经有了; 当没有的时候, 它们 - 通常也是很好写的。 </para> + 通常也是很好写的。</para> <para>FreeBSD 也提供了一个过滤器, <filename>/usr/libexec/lpr/lpf</filename>, 可以让大多数可以打印纯文本的 打印机工作。 ( 它处理文件里的退格和 跳格, 并且进行记帐, 但这基本就是它所有能做的了。 ) 这里还有几个过滤器和过滤器组件在 FreeBSD - Ports Collection 里。 </para> + Ports Collection 里。</para> - <para>这是在这节里您将找到的内容: </para> + <para>这是在这节里您将找到的内容:</para> <itemizedlist> <listitem> @@ -1478,7 +1449,7 @@ $%&'()*+,-./01234567 <quote> 表面上看不到 </quote> 的事情。 这个知识 能够帮您预期 并调试您在为每个打印机安装越来越多的过滤器 - 时可能遇到的问题。 </para> + 时可能遇到的问题。</para> </listitem> <listitem> @@ -1490,7 +1461,7 @@ $%&'()*+,-./01234567 linkend="printing-advanced-if-conversion">让 &postscript; 打印机适应纯文本任务 </link> 这节将告诉您 要解决这个问题应该做些什么。 如果您使用一台 - &postscript; 打印机, 那么您应该阅读这个小节。 </para> + &postscript; 打印机, 那么您应该阅读这个小节。</para> </listitem> <listitem> @@ -1501,7 +1472,7 @@ $%&'()*+,-./01234567 非 &postscript; 打印机上</link> 这节将告诉您怎样进一步修改 打印机的文本过滤器, 使得一台 <emphasis>非 &postscript;</emphasis> 打印机接受 并打印 &postscript; 数据。 如果 - 您没有 &postscript; 打印机, 那么您应该阅读这个小节。 </para> + 您没有 &postscript; 打印机, 那么您应该阅读这个小节。</para> </listitem> <listitem> @@ -1514,7 +1485,7 @@ $%&'()*+,-./01234567 输入 <command>lpr -t</command> 来打印带有不同宏定义库的文本, 或者用 <command>lpr -d</command> 来打印 &tex; DVI 数据, 用 <command>lpr -v</command> 来打印光栅图像数据, 等等。 我推荐您 - 阅读这节。 </para> + 阅读这节。</para> </listitem> <listitem> @@ -1523,7 +1494,7 @@ $%&'()*+,-./01234567 <application>LPD</application>: 的功能-输出过滤器。 除非您要打印页眉 (见 <link linkend="printing-advanced-header-pages">页眉</link> 这节 ), - 您或许可以完全跳过这节。 </para> + 您或许可以完全跳过这节。</para> </listitem> <listitem> @@ -1534,7 +1505,7 @@ $%&'()*+,-./01234567 您需要一个快速的方法来让打印机统计打印纯文本的工作量 , 或者您有一台遇到退格字符就冒烟的打印机 , 您应该考虑 - <command>lpf</command> 。 </para> + <command>lpf</command>。</para> </listitem> </itemizedlist> @@ -1549,7 +1520,7 @@ $%&'()*+,-./01234567 <para>前面说过, 过滤器是一个被 <application>LPD</application> 启动, 用来处理与打印机通讯过程中设备依赖的部分 - 的可执行程序。 </para> + 的可执行程序。</para> <para>当 <application>LPD</application> 想要打印 一个任务中的文件, 它启动一个过滤器 @@ -1557,7 +1528,7 @@ $%&'()*+,-./01234567 标准输出设置成打印机, 并且把错误信息定向到 错误日志文件 (在 <literal>lf</literal> 标识里指定, 默认在 <filename>/etc/printcap</filename>, 或者 - <filename>/dev/console</filename> 文件里 )。 </para> + <filename>/dev/console</filename> 文件里 )。</para> <indexterm> <primary><command>troff</command></primary> @@ -1573,10 +1544,10 @@ $%&'()*+,-./01234567 如果用户想要打印纯文本, 它将会启动 <literal>if</literal> ***过滤器 ( 这是通常的情况: 参见 <link linkend="printing-advanced-of">输出过滤器</link> 来得到 - 细节 ) 。 </para> + 细节 )。</para> <para>在 - <filename>/etc/printcap</filename> 文件中, 您可以指定三种过滤器: </para> + <filename>/etc/printcap</filename> 文件中, 您可以指定三种过滤器:</para> <itemizedlist> <listitem> @@ -1648,8 +1619,7 @@ $%&'()*+,-./01234567 <term><replaceable>login</replaceable></term> <listitem> - <para>这里是正在打印文件的 - 用户名 </para> + <para>这里是正在打印文件的用户名 </para> </listitem> </varlistentry> @@ -1657,8 +1627,7 @@ $%&'()*+,-./01234567 <term><replaceable>host</replaceable></term> <listitem> - <para>这里是提交打印任务的 - 主机名 </para> + <para>这里是提交打印任务的主机名 </para> </listitem> </varlistentry> @@ -1679,16 +1648,14 @@ $%&'()*+,-./01234567 <secondary>filters</secondary> </indexterm> <listitem> - <para><emphasis> 转换过滤器 </emphasis> 将一个特定 - 的文件格式转换成另一种打印机能够理解并且将内容打印出来的格式. - 例如 , ditroff 格式的排版数据就是无法直接打印的, - 但您可以安装一个转换过滤器来将 ditroff 文件转换成 - 一种打印机可以理解并打印的 - 形式. 参考 <link - linkend="printing-advanced-convfilters"> 转换 - 过滤器 </link> 这一节来了解更多细节. 如果您需要对打印进行 - 记帐, 那么转换过滤器也必须完成记帐工作. - 转换过虑器的启动命令为: + <para><emphasis> 转换过滤器 </emphasis> 的功能是, + 将特定格式的文件转换成打印机能够识别并打印的格式。 + 例如, ditroff 格式的排版数据就是无法直接打印的, + 但您可以安装一个转换过滤器来将 ditroff + 文件转换成一种打印机可以识别和打印的形式。 请参见 <link + linkend="printing-advanced-convfilters">转换过滤器</link> + 这一节来了解更多细节。 如果您需要对打印进行记帐, + 那么转换过滤器也必须完成记帐工作。 转换过虑器的启动命令为: <cmdsynopsis> <command>filter-name</command> @@ -1724,8 +1691,8 @@ $%&'()*+,-./01234567 </listitem> </itemizedlist> - <para>过滤器也应该在 <emphasis> 退出</emphasis> 时给出下面的 - 几种退出状态:</para> + <para>过滤器也应该在 <emphasis> 退出</emphasis> + 时给出下面的几种退出状态:</para> <variablelist> <varlistentry> @@ -1740,10 +1707,10 @@ $%&'()*+,-./01234567 <term>exit 1</term> <listitem> - <para>过滤器打印失败了, 但想要 - <application>LPD</application> 来 - 试着再打印一次. 如果过滤器返回了这个状态, <application>LPD</application> - 将重新启动一个过滤器。</para> + <para>过滤器打印失败了, 但希望 + <application>LPD</application> 试着再打印一次。 + 如果过滤器返回了这个状态, <application>LPD</application> + 将重新启动过滤器。</para> </listitem> </varlistentry> @@ -1751,52 +1718,52 @@ $%&'()*+,-./01234567 <term>exit 2</term> <listitem> - <para>过滤器打印失败并且不想要 - <application>LPD</application> 重试. - <application>LPD</application> 将放弃这个文件。</para> + <para>过滤器打印失败并且不希望 + <application>LPD</application> 重试。 这种情况下 + <application>LPD</application> 会放弃这个文件。</para> </listitem> </varlistentry> </variablelist> - <para>文本过滤器随 FreeBSD 一起发布, - 文件名为 <filename>/usr/libexec/lpr/lpf</filename>, 它利用 - 页宽和页长参数来决定何时发送送纸指令 - 和为打印记帐的方法. 它使用登陆名, 主机名, + <para>文本过滤器随 FreeBSD 一起发布, + 文件名为 <filename>/usr/libexec/lpr/lpf</filename>, + 它利用页宽和页长参数来决定何时发送送纸指令, + 并提供位打印记帐的方法。 它使用登录名、 主机名, 和记帐文件参数来生成记帐记录。</para> - <para>如果您想购买过滤器, 要注意它是否是 LPD-兼容的. - 如果是, 则它们必须支持上面提到的那些参数. - 如果您打算编写普通的过滤器程序, 则同样需要让它们 - 支持上面那些参数和退出状态码。</para> + <para>如果您想购买过滤器, 要注意它是否是与 LPD 兼容。 + 如果兼容的话, 则它们必须支持前面提到的那些参数。 + 如果您打算编写普通的过滤器程序, + 则同样需要使之支持前面那些参数和退出状态码。</para> </sect3> <sect3 id="printing-advanced-if-conversion"> - <title>在 &postscript; 打印机上打印纯文本任务 </title> + <title>在 &postscript; 打印机上打印纯文本任务</title> <indexterm><primary>print jobs</primary></indexterm> - <para>如果您是您的计算机和 &postscript; (或者 - 其他语言的) 打印机的唯一用户, - 而且您不打算发送纯文本到打印机且不打算使用程序里那些会发送纯文本到打印机的功能的话, - 那么您完全不需要再关心这节的内容。</para> + <para>如果您是您的计算机和 &postscript; (或其他语言的) + 打印机的唯一用户, 而且您不打算发送纯文本到打印机, + 并因此不打算从应用程序程序直接将纯文本发到打印机的话, + 就完全不需要再关心这节的内容了。</para> - <para>但是, 如果 &postscript; 和纯文本的任务都需要发送到打印机, - 那么就需要对打印机进行设置了。 要完成工作, + <para>但是, 如果打印机同时需要接收 &postscript; 和纯文本的任务, + 就需要对打印机进行设置了。 要完成这项工作, 我们需要一个文本过滤器来检测到达的任务是纯文本的还是 &postscript; 格式的。 所有 &postscript; 的任务必须以 - <literal>%!</literal> ( 对于其他打印机语言, 参见打印机的文档) + <literal>%!</literal> (其他打印机语言请参见打印机的文档) 开头。 如果任务的头两个字符是这两个, 就代表这是 &postscript; 格式的, 并且可以直接略过任务剩余的部分。 如果任务开头的两个字符不是这两个, 那么过滤器将把文本转换成 &postscript; 并打印结果。</para> - <para>我们怎样去做?</para> + <para>我们怎样去做?</para> <indexterm> <primary>printers</primary> <secondary>serial</secondary> </indexterm> - <para>如果你有一台串行打印机, 一个好办法就是安装 - <command>lprps</command>. <command>lprps</command> + <para>如果你有一台串口打印机, 一个好办法就是安装 + <command>lprps</command>。 <command>lprps</command> 是一个可以与打印机进行双向通信 &postscript; 打印机过滤器。 它用打印机传来的详细信息来更新打印机的状态文件, 所以用户和管理员可以准确的看到打印机处在什么样的状态 (比如 @@ -1822,7 +1789,7 @@ $%&'()*+,-./01234567 <para>同时还需要指定 <literal>rw</literal> 标签来告诉 <application>LPD</application> 使用读-写模式打开打印机。</para> - <para>如果您有一台并行的 &postscript; 打印机 (因此不能与打印机进行 + <para>如果您有一台并口的 &postscript; 打印机 (因此不能与打印机进行 <command>lprps</command> 需要的双向通信), 可以使用下面这段 shell 脚本来充当文本过滤器:</para> @@ -1866,7 +1833,7 @@ fi</programlisting> </indexterm> <indexterm> <primary>Ghostscript</primary></indexterm> - <para>&postscript; 高质量排版和打印的 <emphasis>de facto</emphasis> + <para>&postscript; 是高质量排版和打印 <emphasis>事实上的</emphasis> 标准。 而 &postscript; 也是一个 <emphasis> 昂贵 </emphasis> 的标准。 幸好, Aladdin 开发了一个和 &postscript; 类似的叫做 @@ -2079,7 +2046,7 @@ exit 2</programlisting> <filename>/usr/local/libexec</filename> 是保存它们的地方, 因为它们通常是通过 <application>LPD</application> 运行的; - 普通用户没有并不需要直接运行它们。</para> + 普通用户应该并不需要直接运行它们。</para> <para>要启用一个转换过滤器, 只需要在 <filename>/etc/printcap</filename> @@ -2251,7 +2218,7 @@ exit 2</programlisting> 因为它们属于不同的用户。</para> <para>所以过滤器将在当前工作目录下建立符号连接, - 即打印池目录 (用变量 + 即后台打印队列目录 (用变量 <literal>sd</literal> 在 <filename>/etc/printcap</filename> 中指定)。 这是一个非常好的让过滤器完成它工作的地方, @@ -2339,7 +2306,7 @@ exit 0</programlisting> 然后自动运行正确的转换过滤器。 像 <command>file</command> 这样的工具可以给我们一定的帮助。 当然, 要区分开 - <emphasis>有些</emphasis> 文件的类型还是有困难的 — 而且, 当然, + <emphasis>有些</emphasis> 文件的类型还是有困难的 — 但是, 当然, 您可以仅为它们提供转换过滤器。</para> <indexterm><primary>apsfilter</primary></indexterm> @@ -2349,7 +2316,7 @@ exit 0</programlisting> <tertiary>apsfilter</tertiary> </indexterm> <para>FreeBSD Ports Collection 包含了一个可以自动进行转换的文本过滤器, - 名字叫做 <command>apsfilter</command> 。 + 名字叫做 <command>apsfilter</command>。 它可以检测出纯文本, &postscript;, 和 DVI 格式的文件, 并且运行相应的转换过滤器, 然后打印。</para> </sect4> @@ -2358,7 +2325,7 @@ exit 0</programlisting> <sect3 id="printing-advanced-of"> <title>输出过滤器</title> - <para><application>LPD</application> 打印池系统还支持一种我们还没有讨论过的过滤器: + <para><application>LPD</application> 后台打印系统还支持一种我们还没有讨论过的过滤器: 输出过滤器。 输出过滤器只是用来打印纯文本的, 类似于文本过滤器, 但简化了许多地方。 如果您正在使用输出过滤器而不是文本过滤器, @@ -2397,14 +2364,14 @@ exit 0</programlisting> 如果想要输出过滤器完成让任务中的每个文件都重新开始一页打印是 <emphasis>不可能</emphasis> 的。 请使用文本过滤器 (也叫输入过滤器); 详见 <link - linkend="printing-textfilter">安装文本过滤器</link> 。 + linkend="printing-textfilter">安装文本过滤器</link>。 此外, 实际上, 输出过滤器 <emphasis>更复杂</emphasis> , 它要检查发给它的字节流中是否有特殊的标志字符, 并且给自己发送信号来代替 <application>LPD</application> 的。</para> <para>可是, 如果打算要报头页或者需要发送控制字符或者其他的初始化字符串来完成打印报头页, - 那么输出过滤器则是 <emphasis>必需的</emphasis> 。 + 那么输出过滤器则是 <emphasis>必需的</emphasis>。 (但是它也是 <emphasis>无用的</emphasis> 如果打算对打印的用户计费, 因为 <application>LPD</application> 不会给输出过滤器任何用户或者主机的信息。)</para> @@ -2472,7 +2439,7 @@ exit 0</programlisting> <title>报头页</title> <para>如果您有 <emphasis>很多</emphasis> 用户, 他们正在使用各式各样的打印机, - 那么您允许要考虑一下把 <emphasis>报头页</emphasis> 当作一个必要的麻烦了。</para> + 那么您或许要考虑一下把 <emphasis>报头页</emphasis> 当作无可避免之灾祸了。</para> <indexterm> <primary>banner pages</primary> @@ -2625,7 +2592,7 @@ teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\ <para>同样是默认的, <application>LPD</application> 也是先打印报头页, 然后才是任务。 要想反过来, 在 <filename>/etc/printcap</filename> - 中指定 <literal>hl</literal> (最后报头) 。</para> + 中指定 <literal>hl</literal> (最后报头)。</para> </sect3> <sect3 id="printing-advanced-header-pages-accounting"> @@ -2671,7 +2638,7 @@ teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\ <para>安装一个替代 <application>LPD</application> 的软件, 比如 <application>LPRng</application>。 参考 - <link linkend="printing-lpd-alternatives">替换标准的打印池软件</link> + <link linkend="printing-lpd-alternatives">替换标准的后台打印软件</link> 来得到更多关于可以替代 <application>LPD</application> 的软件的信息。 </para> </listitem> @@ -2715,7 +2682,7 @@ teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\ <para>让我们来深入深入的研究一下这个方法。 下面的脚本输入三个参数 - (用户登陆名, 主机名, 和任务名) + (用户登录名, 主机名, 和任务名) 然后生成一个简单的 &postscript; 报头页:</para> <programlisting>#!/bin/sh @@ -2881,7 +2848,7 @@ done <itemizedlist> <listitem> <para>访问一台连接在远程主机上的打印机。 - 在一台主机上安装一台常规的串行或并行打印机。 + 在一台主机上安装一台常规的串口或并口打印机。 然后, 设置 <application>LPD</application> 来通过网络访问其他主机上的打印机。 具体见 <link @@ -2919,7 +2886,7 @@ done <sect3 id="printing-advanced-network-rm"> <title>安装在远程主机上的打印机</title> - <para><application>LPD</application> 打印池系统内建了对给其他也运行着 + <para><application>LPD</application> 后台打印系统内建了对给其他也运行着 <application>LPD</application> (或者是与 <application>LPD</application> 兼容的) 的主机发送任务的功能。 这个功能使您可以在一台主机上安装打印机, @@ -2927,13 +2894,12 @@ done <application>LPD</application> 协议的打印机上。</para> <para>要开启这种远程打印的功能, 首先在一台主机上安装打印机, 就是 - <emphasis>打印主机</emphasis>, 可以使用在 + <emphasis>打印服务器</emphasis>, 可以使用在 <link linkend="printing-simple">简单打印机设置</link> 这节中简单设置的方法。 高级的设置可以参考 <link linkend="printing-advanced">高级打印机设置</link> 这节中你需要的部分。 一定要测试一下打印机, 看看它是不是所有您开启的 - <application>LPD</application> 的功能都正常工作。 - 同样确定 + <application>LPD</application> 的功能都正常工作。 此外还需要确认 <emphasis>本地主机</emphasis> 允许使用 <emphasis>远程主机</emphasis> 上的 <application>LPD</application> 服务 (参见 <link @@ -2946,7 +2912,7 @@ done <indexterm><primary>network printing</primary></indexterm> <para>如果您正在使用一台带网络接口并与 <application>LPD</application> 兼容的打印机, 那么我们那下面讨论中的 - <emphasis>打印主机</emphasis> + <emphasis>打印服务器</emphasis> 就是打印机本身, 而 <emphasis>打印机名</emphasis> 就是您为打印机配置的名字。 参考随打印机和/或者打印机-网络接口供给的文档。</para> @@ -2965,7 +2931,7 @@ done <orderedlist> <listitem> <para>可以随意给这个记录起名字。 简单起见, - 您可以给打印主机使用相同的名字或者别名。</para> + 您可以给打印服务器使用相同的名字或者别名。</para> </listitem> <listitem> @@ -2974,19 +2940,20 @@ done </listitem> <listitem> - <para>建立一个打印池目录并且用 - <literal>sd</literal> 变量指明它的位置。 <application>LPD</application> - 将把任务存储在这里在它们被送到打印主机之前。</para> + <para>建立一个后台打印队列目录, 并用 + <literal>sd</literal> 变量指明其位置。 <application>LPD</application> + 将把任务提交给打印服务器之前, + 会把这些任务保存在这里。</para> </listitem> <listitem> <para>在 - <literal>rm</literal> 变量中放入打印主机的名字。</para> + <literal>rm</literal> 变量中放入打印服务器的名字。</para> </listitem> <listitem> <para>在 - <literal>rp</literal> 中放入打印主机上打印机的名字。</para> + <literal>rp</literal> 中放入打印服务器上打印机的名字。</para> </listitem> </orderedlist> @@ -3030,7 +2997,7 @@ bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ :lp=:rm=rose:rp=bamboo:sd=/var/spool/lpd/bamboo:</programlisting> <para>然后, 我们只需要在主机 - <hostid>orchid</hostid> 上建立一个打印池目录:</para> + <hostid>orchid</hostid> 上建立一个后台打印队列目录:</para> <screen>&prompt.root; <userinput>mkdir -p /var/spool/lpd/rattan /var/spool/lpd/bamboo</userinput> &prompt.root; <userinput>chmod 770 /var/spool/lpd/rattan /var/spool/lpd/bamboo</userinput> @@ -3043,10 +3010,10 @@ bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ <screen>&prompt.user; <userinput>lpr -P bamboo -d sushi-review.dvi</userinput></screen> <application>LPD</application> 系统在主机 <hostid>orchid</hostid> - 上会复制这个任务到打印池目录 + 上会复制这个任务到后台打印队列目录 <filename>/var/spool/lpd/bamboo</filename> 并且记下这是一个 DVI 任务。 当主机 <hostid>rose</hostid> 上的打印机 - <literal>bamboo</literal> 的打印池目录有空间的时, 这两个 + <literal>bamboo</literal> 的后台打印队列目录有空间的时, 这两个 <application>LPDs</application> 系统将会传输这个文件到主机 <hostid>rose</hostid> 上。 文件将排在主机 <hostid>rose</hostid> 的队列中知道最终被打印出来。 它将被从 DVI 转换成 @@ -3058,7 +3025,7 @@ bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ <title>带有网络数据流接口的打印机</title> <para>通常, 当您为打印机购买了一块网卡, - 可以得到两个版本: 一个是模拟打印池 (贵一些的版本), + 可以得到两个版本: 一个是模拟后台打印 (贵一些的版本), 或者一个只发送数据给打印机就像在使用串口或者并口一样 (便宜一些的版本)。 这节讲述如何使用这个便宜一些的版本。 要得到贵一些版本的更多信息, @@ -3071,12 +3038,12 @@ bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ 为制表符延迟, 转换换行, 等等。 但是没有一种方法指定一个连接到一台正在监听 TCP/IP 的或者其他网络接口的打印机。</para> - <para>要发送数据到网络打印机, 需要开发一个通讯程序, + <para>要发送数据到网络打印机, 就需要开发一个通讯程序, 它可以被文本或者转换过滤器调用。 下面是一些例子: 脚本 <command>netprint</command> 将标准输入的所有数据发送到一个连在网络上的打印机。 我们将打印机的名字作为第一个参数, 端口号跟在后面作为第二个参数, 传给 - <command>netprint</command> 。 + <command>netprint</command>。 注意它只支持单向通讯 (FreeBSD 到打印机); 很多网络打印机支持双向通讯, 并且这是您可能利用到的 (得到打印机状态, 进行打印记帐, 等等的时候。)。</para> @@ -3108,7 +3075,7 @@ exit 0;</programlisting> <para>然后我们就可以在多种过滤器里使用这个脚本了。 加入我们有一台 Diablo 750-N 行式打印机联在网络上。 打印机在 5100 端口上接收要打印的数据。 打印机的主机名是 - scrivener 。 这里是为这个打印机写的文本过滤器:</para> + scrivener。 这里是为这个打印机写的文本过滤器:</para> <programlisting>#!/bin/sh # @@ -3120,7 +3087,7 @@ exec /usr/libexec/lpr/lpf "$@" | /usr/local/libexec/netprint scrivener 5100</pro </sect2> <sect2 id="printing-advanced-restricting"> - <title>限制使用打印机</title> + <title>限制打印机的使用</title> <indexterm> <primary>printers</primary> @@ -3129,38 +3096,36 @@ exec /usr/libexec/lpr/lpf "$@" | /usr/local/libexec/netprint scrivener 5100</pro <para>这节将讲述关于限制打印机使用的问题。 <application>LPD</application> 系统让您可以控制谁可以访问打印机, 无论本地或是远程的, - 是否他们可以打印机多份拷贝, 任务可以有多大, - 和打印机能有多大的队列。</para> + 是否他们可以打印机多份副本, 任务可以有多大, + 以及打印队列的尺寸等。</para> <sect3 id="printing-advanced-restricting-copies"> - <title>限制多份拷贝</title> + <title>限制多份副本</title> - <para><application>LPD</application> 系统使用户要打印文件的多份拷贝变得容易。 + <para><application>LPD</application> 系统能够简化用户在打印多份副本时的工作。 用户可以用 <command>lpr -#5</command> - (举例) 来提交打印任务, 则会将任务中每个文件都打印五份拷贝。 + (举例) 来提交打印任务, 则会将任务中每个文件都打印五份副本。 这是不是一件很棒的事情呢。</para> - <para>如果您感觉多份拷贝会对打印机造成不必要的磨损和损耗, + <para>如果您感觉多份副本会对打印机造成不必要的磨损和损耗, 您可以屏蔽掉 &man.lpr.1; 的 <option>-#</option> 选项, - 通过增加 <literal>sc</literal> 变量在 - <filename>/etc/printcap</filename> 文件里。 当用户用 + 这可以通过在 <filename>/etc/printcap</filename> + 文件中增加 <literal>sc</literal> 变量来完成。 当用户用 <option>-#</option> 选项提交任务时, 他们将看到:</para> <screen>lpr: multiple copies are not allowed</screen> - - <para>注意当为一台远程打印机设置的时候 (参见 - <link linkend="printing-advanced-network-rm">安装在远程主机上的打印机</link>) - 这一节, 您同时还需要增加 - <literal>sc</literal> 变量在远程主机的 - <filename>/etc/printcap</filename> 文件中, - 否则用户将还是可以在其他主机上提交多份拷贝的任务。</para> + <para>注意当为一台远程打印机进行设置时 (参见 + <link linkend="printing-advanced-network-rm">安装在远程主机上的打印机</link> 这一节) + 您还需要同时在远程主机的 <filename>/etc/printcap</filename> 文件中 + 增加<literal>sc</literal> 变量, + 否则用户还是可以从其他主机上提交使用多份副本的任务。</para> <para>下面是一个例子。 这个是 <filename>/etc/printcap</filename> 文件在主机 <hostid>rose</hostid> 上。 打印机 <literal>rattan</literal> - 非常轻闲, 所以我们将允许多份拷贝, 但是激光打印机 - <literal>bamboo</literal> 则有些忙, 所以我们禁止多份拷贝, + 非常轻闲, 所以我们将允许多份副本, 但是激光打印机 + <literal>bamboo</literal> 则有些忙, 所以我们禁止多份副本, 通过增加 <literal>sc</literal> 变量:</para> @@ -3216,21 +3181,20 @@ bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ <para>您可以控制谁可以打印到哪台打印机通过 &unix; 的组机制和文件 <filename>/etc/printcap</filename> 中的 <literal>rg</literal> 变量。 - 只要把可以访问打印机的用户放进适当的组中, - 然后在 + 只要把可以访问打印机的用户放进适当的组中, 然后在 <literal>rg</literal> 变量中写上组的名字。</para> <para>非这组的用户 (包括 <username>root</username>) - 将会得到这样的问候: + 将会得到这样的提示: <errorname>lpr: Not a member of the restricted group</errorname> 如果他们试图打印到被限制的打印机。</para> - <para>像使用 <literal>sc</literal> (禁止多份拷贝) - 变量一样, 您需要指定 <literal>rg</literal> 在远程 - 同样对打印机有访问限制的主机上, 如果您感觉 - 合适的话 (参考 <link + <para>像使用 <literal>sc</literal> (禁止多份副本) + 变量一样, 您需要指定 <literal>rg</literal> + 在远程同样对打印机有访问限制的主机上, + 如果您感觉合适的话 (参考 <link linkend="printing-advanced-network-rm">安装在远程主机上的打印机</link> 这一节)。</para> <para>比如, 我们将让任何人都可以访问打印机 @@ -3272,21 +3236,21 @@ bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ <indexterm><primary>print jobs</primary></indexterm> <para>如果您有很多用户访问打印机, 可能需要对用户可以提交的文件尺寸设置一个上限。 - 毕竟, 文件系统中打印池目录的空间是有限的, + 毕竟, 文件系统中后台打印队列目录的空间是有限的, 您需要保证这里有空间来存放其他用户的任务。</para> - + <indexterm> <primary>print jobs</primary> <secondary>controlling</secondary> </indexterm> - <para><application>LPD</application> 允许限制任务中文件的最大字节数, - 通过使用 - <literal>mx</literal> 变量。 单位为 - <literal>BUFSIZ</literal> 块, 每块 1024 字节。 - 如果在这个变量中放入 0 值, - 将没有文件大小的限制; 然而, 就算没有指定 - <literal>mx</literal> 变量, - 那么默认值 1000 块将被使用。</para> + <para><application>LPD</application> 允许通过使用 + <literal>mx</literal> 变量来限制任务中文件的最大字节数, + 方法是指定单位为块的 + <literal>BUFSIZ</literal> 数, 每块表示 1024 字节。 + 如果在这个变量的值是 0, 则表示不进行限制; + 不过, 如果不指定 + <literal>mx</literal> 变量的话, + 则会使用默认值 1000 块。</para> <note> <para>这个限制是对于任务中 <emphasis>文件</emphasis> 的, @@ -3325,14 +3289,14 @@ bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ :df=/usr/local/libexec/psdf:</programlisting> <para>同样, 限制只对本地用户起作用。 - 如果远程设置了限制, 远程用户将不会受到这些限制。 + 如果设置了允许远程用户使用您的打印机, 远程用户将不会受到这些限制。 您也需要指定 <literal>mx</literal> 变量在远程主机的 <filename>/etc/printcap</filename> 文件中。 参见 <link linkend="printing-advanced-network-rm">安装在远程主机上的打印机</link> 这一节来得到更多有关远程打印的信息。</para> - <para>这里还有一种限制远程任务大小的方法; + <para>除此之外, 还有另一种限制远程任务大小的方法; 参见 <link linkend="printing-advanced-restricting-remote">限制远程打印机任务</link>。</para> </sect3> @@ -3340,7 +3304,7 @@ bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ <sect3 id="printing-advanced-restricting-remote"> <title>限制远程打印机任务</title> - <para><application>LPD</application> 打印池系统提供了多种方法来限制从远程主机提交的任务: </para> + <para><application>LPD</application> 后台打印系统提供了多种方法来限制从远程主机提交的任务:</para> <variablelist> <varlistentry> @@ -3381,9 +3345,9 @@ madrigal.fishbaum.de</programlisting> <term>大小限制</term> <listitem> - <para>您可以控制打印池目录需要保留多少空间。 + <para>您可以控制后台打印队列目录需要保留多少空间。 建立一个叫做 - <filename>minfree</filename> 的文件在打印池目录下为本地打印机。 + <filename>minfree</filename> 的文件在后台打印队列目录下为本地打印机。 在这个文件中插入一个数字来代表多少磁盘块数 (512 字节) 的剩余空间来接收远程任务。</para> @@ -3395,7 +3359,7 @@ madrigal.fishbaum.de</programlisting> <para>比如, 让我们增加一个 <filename>minfree</filename> 文件为打印机 <literal>bamboo</literal>。 我们检查 - <filename>/etc/printcap</filename> 文件来找到这个打印机的打印池目录; + <filename>/etc/printcap</filename> 文件来找到这个打印机的后台打印队列目录; 这里是打印机 <literal>bamboo</literal> 的记录:</para> @@ -3405,7 +3369,7 @@ madrigal.fishbaum.de</programlisting> :if=/usr/local/libexec/psif:\ :df=/usr/local/libexec/psdf:</programlisting> - <para>打印池目录在 <literal>sd</literal> + <para>后台打印队列目录在 <literal>sd</literal> 变量中给出。 我们设置 3 兆字节 (6144 磁盘块) 为文件系统上必须存在的总共剩余空间, 让 <application>LPD</application> 可以接受远程任务:</para> @@ -3424,7 +3388,7 @@ madrigal.fishbaum.de</programlisting> <filename>/etc/printcap</filename> 文件中。 当 <literal>rs</literal> 出现在一个本地打印机的记录中时, <application>LPD</application> 将接收来自远程主机 - <emphasis> 并 </emphasis> 在本地有同样登陆名的用户提交的任务。 + <emphasis> 并 </emphasis> 在本地有同样登录名的用户提交的任务。 否则, <application>LPD</application> 会拒绝这个任务。</para> <para>这个功能在一个 (比如) 有许多部门共享一个网络的环境中特别有用, @@ -3456,7 +3420,7 @@ madrigal.fishbaum.de</programlisting> 您怎样启动打印记帐呢?</para> <para>好了, 坏消息是 <application>LPD</application> - 打印池系统在这个部分没有提供很多帮助。 + 后台打印系统在这个部分没有提供很多帮助。 记帐是一个对使用的打印机的种类, 打印的格式, 和 <emphasis>您的</emphasis> 在对打印机的使用计费的需求依赖性很高的。</para> @@ -3492,7 +3456,7 @@ madrigal.fishbaum.de</programlisting> </listitem> </itemizedlist> - <para><application>LPD</application> 打印池系统对两种方法都支持且很简单: + <para><application>LPD</application> 后台打印系统对两种方法都支持且很简单: 所以您需要提供过滤器 (大多数时候), 还要提供记帐代码。 但这好的方面是: 您可以有非常灵活的记帐方法。 @@ -3519,7 +3483,7 @@ madrigal.fishbaum.de</programlisting> 这个文件的名字来自于 <literal>af</literal> 变量在 <filename>/etc/printcap</filename> 文件里, 并且如果没有指定绝对路径, - 则默认是相对于打印池目录的。</para> + 则默认是相对于后台打印队列目录的。</para> <para><application>LPD</application> 启动 <command>lpf</command> 带着页宽和页长的参数 @@ -3541,12 +3505,12 @@ madrigal.fishbaum.de</programlisting> 如果它们同时要在同一个文件写入内容的时候。 一个最简单的保证每个打印机都使用一个独立的记帐文件的方法就是将 <literal>af=acct</literal> 写在 <filename>/etc/printcap</filename> 文件中。 - 然后, 每个打印机的记帐文件都会在这台打印机的打印池目录中, + 然后, 每个打印机的记帐文件都会在这台打印机的后台打印队列目录中, 文件的名字叫做 <filename>acct</filename>。</para> <para>当您准备对用户的打印进行收费时, 运行 - &man.pac.8; 程序。 只要转换到要收集信息的这台打印机的打印池目录, - 然后输入 <literal>pac</literal> 。 + &man.pac.8; 程序。 只要转换到要收集信息的这台打印机的后台打印队列目录, + 然后输入 <literal>pac</literal>。 您将会得到一个美元计费的摘要像下面这样:</para> <screen> Login pages/feet runs price @@ -3560,7 +3524,7 @@ rose:root 26.00 12 $ 0.52 total 337.00 154 $ 6.74</screen> - <para>这些时 &man.pac.8; 需要的参数:</para> + <para>这些是 &man.pac.8; 需要的参数:</para> <variablelist> <varlistentry> @@ -3804,7 +3768,7 @@ total 337.00 154 $ 6.74</screen> -l</command> 命令的输出。</para> <para> &man.lpr.1; 命令同样可以接受多种控制格式的选项, - 应用文件转换, 生成多份拷贝, 等等。 + 应用文件转换, 生成多份副本, 等等。 要得到更多信息, 参考 <link linkend="printing-lpr-options">打印选项</link> 这节。</para> </sect2> @@ -3815,12 +3779,12 @@ total 337.00 154 $ 6.74</screen> <indexterm><primary>print jobs</primary></indexterm> <para>当使用 &man.lpr.1; 进行打印时, 您希望打印的所有数据被放在一起打包成了一个 <quote>打印任务</quote>, 它被发送到 - <application>LPD</application> 打印池系统。 + <application>LPD</application> 后台打印系统。 每台打印机都有一个任务队列, 并且您的任务在队列中等待其他用户的其他任务打印。 打印机按照先来先印的规则打印这些任务。</para> - <para>要显示默认打印机的队列, 输入 &man.lpq.1; 。 + <para>要显示默认打印机的队列, 输入 &man.lpq.1;。 要指定打印机, 使用 <option>-P</option> 选项。 例如, 命令 @@ -3956,7 +3920,7 @@ cfA013rose dequeued <para> &man.lpr.1; 支持许多控制文本格式的参数, 转换图形和其他格式文件, - 生成多份拷贝, 处理任务, 等等。 + 生成多份副本, 处理任务, 等等。 这一节将描述这些选项。</para> <sect3 id="printing-lpr-options-format"> @@ -4097,9 +4061,9 @@ cfA013rose dequeued &man.ls.1; 的手册并且将内容传给 &man.troff.1; 命令, 它将格式化这些内容并且生成 GNU troff 输出给 &man.lpr.1; , 它提交任务到 - <application>LPD</application> 打印池。 + <application>LPD</application> 后台打印。 因为使用了 <option>-t</option> - 选项为 &man.lpr.1; , 打印池将会转换 GNU + 选项为 &man.lpr.1; , 后台打印将会转换 GNU troff 输出到默认打印机可以理解的格式当任务被打印时。</para> </sect3> @@ -4115,14 +4079,14 @@ cfA013rose dequeued <listitem> <para>生成 <replaceable>copies</replaceable> 个副本给任务中的每个文件, - 替代每个文件一份拷贝。 + 替代每个文件一份副本。 管理员可以禁止这个选项来减少打印机的浪费和鼓励复印机的使用。 参考 <link - linkend="printing-advanced-restricting-copies">限制多份拷贝</link> 。</para> + linkend="printing-advanced-restricting-copies">限制多份副本</link>。</para> - <para>这个例子打印三份拷贝的文件 - <filename>parser.c</filename> 跟着三份拷贝的文件 + <para>这个例子打印三份副本的文件 + <filename>parser.c</filename> 跟着三份副本的文件 <filename>parser.h</filename> 到默认打印机:</para> <screen>&prompt.user; <userinput>lpr -#3 parser.c parser.h</userinput></screen> @@ -4145,15 +4109,15 @@ cfA013rose dequeued <term>-s</term> <listitem> - <para>不要复制文件到打印池目录, + <para>不要复制文件到后台打印队列目录, 要使用符号连接。</para> <para>如果您正在打印一个很大的任务, 您可能需要这个选项。 - 它节省打印池目录的空间 - (您的任务可能使打印池目录所在的文件系统剩余空间超出)。 + 它节省后台打印队列目录的空间 + (您的任务可能使后台打印队列目录所在的文件系统剩余空间超出)。 它同样也节省了时间, 因为 <application>LPD</application> - 将不会拷贝任务的每个字节到打印池目录。</para> + 将不会副本任务的每个字节到后台打印队列目录。</para> <para>这也有一个缺点: 因为 <application>LPD</application> 将直接指向源文件, @@ -4162,8 +4126,8 @@ cfA013rose dequeued <note> <para>如果您打印到一台远程打印机, <application>LPD</application> - 将最终将文件从本地主机拷贝到远程主机上, - 所以选项 <option>-s</option> 只能节省本地打印池目录的空间, + 将最终将文件从本地主机副本到远程主机上, + 所以选项 <option>-s</option> 只能节省本地后台打印队列目录的空间, 而不是远程的。 虽然如此, 但它还是很有用。</para> </note> @@ -4174,7 +4138,7 @@ cfA013rose dequeued <term>-r</term> <listitem> - <para>移除任务中的文件在它们被复制到打印池目录之后, + <para>移除任务中的文件在它们被复制到后台打印队列目录之后, 或者在用 <option>-s</option> 选项打印它们之后。 谨慎使用这个选项!</para> @@ -4263,7 +4227,7 @@ cfA013rose dequeued <username>root</username>) 可以提交任务到打印机。 一个 <emphasis>启用</emphasis> 的队列允许任务被提交。 一个打印机可以被 <emphasis>启动</emphasis> 但它的队列被禁止, - 在这种情况下打印机将打印队列中的任务知道队列为空。</para> + 在这种情况下打印机将打印队列中的任务, 直到队列为空。</para> <para>通常, 您必须有 <username>root</username> 权限来使用 &man.lpc.8; 命令。 普通用户可以使用 &man.lpc.8; @@ -4291,11 +4255,11 @@ cfA013rose dequeued <replaceable>printer-name</replaceable></command></term> <listitem> - <para>从打印机的打印池目录移除旧的文件。 + <para>从打印机的后台打印队列目录移除旧的文件。 有时, 组成任务的文件没有被 <application>LPD</application> 正确的删除, 特别是在打印中出现错误或者管理活动比较多的时候。 - 这个命令查找不属于打印池目录的文件并删除它们。</para> + 这个命令查找不属于后台打印队列目录的文件并删除它们。</para> </listitem> </varlistentry> @@ -4424,14 +4388,14 @@ cfA013rose dequeued </sect1> <sect1 id="printing-lpd-alternatives"> - <title>替换标准打印池</title> + <title>替换标准后台打印</title> <para>如果您已经通读过了这个手册, - 那么到现在您应该已经了解了关于 FreeBSD 包含的打印池系统 + 那么到现在您应该已经了解了关于 FreeBSD 包含的后台打印系统 <application>LPD</application> 的一切。 您可能发现了它很多的缺点, 它们很自然的让您提出这样的问题: - <quote>这里还有什么打印池系统吗 (并且可以工作在 + <quote>这里还有什么后台打印系统吗 (并且可以工作在 FreeBSD 上) ?</quote></para> <variablelist> @@ -4493,7 +4457,8 @@ cfA013rose dequeued 事实上, 您可能需要按一下打印机上的 打印剩余 或者 送纸 按钮来让结果出现。</para> - <para>如果这是问题所在, 打印机可能在等待在打印之前任务是否还有更多的数据。 + <para>如果这是问题所在, 打印机可能在等待, + 看看在打印之前, 您的任务是否还有更多的数据。 要修正这个问题, 您可以让文本过滤器发送一个送纸字符 (或者其他需要的) 到打印机。 这通常足够让打印机立即打印出内部缓存内剩余的文本。 @@ -4518,7 +4483,7 @@ exit 2</programlisting> </varlistentry> <varlistentry> - <term>它的输出产生了 <quote>楼梯效果。</quote></term> + <term>它的输出产生了 <quote>楼梯效果</quote>。</term> <listitem> <para>您可能在纸上得到下面这些:</para> |