aboutsummaryrefslogtreecommitdiff
path: root/zh_CN.GB2312/books/handbook/basics/chapter.sgml
diff options
context:
space:
mode:
Diffstat (limited to 'zh_CN.GB2312/books/handbook/basics/chapter.sgml')
-rw-r--r--zh_CN.GB2312/books/handbook/basics/chapter.sgml206
1 files changed, 138 insertions, 68 deletions
diff --git a/zh_CN.GB2312/books/handbook/basics/chapter.sgml b/zh_CN.GB2312/books/handbook/basics/chapter.sgml
index 9dfbbc71cb..db275edf24 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.126
+ Original Revision: 1.137
$FreeBSD$
-->
@@ -22,25 +22,24 @@
<sect1 id="basics-synopsis">
<title>概述</title>
- <indexterm><primary>基础</primary></indexterm>
-
<para>下列章节的命令和功能适用于FreeBSD操作系统。
同时这里许多内容和一些 &unix; 类似操作系统相关。
假如您已经熟悉这些内容可跳过不阅读。
假如您是FreeBSD新手, 那您应该认真详细地从头到尾读一遍这些章节。</para>
- <para>读取这些内容,您将会学到:</para>
+ <para>读取这些内容,您将了解:</para>
<itemizedlist>
<listitem>
- <para>怎样在FreeBSD使用<quote>虚拟控制台</quote>。</para>
+ <para>怎样在FreeBSD使用 <quote>虚拟控制台</quote>。</para>
</listitem>
<listitem>
- <para>&unix;文件权限是怎样工作的。</para>
+ <para>在 &unix; 中文件权限如何运作,
+ 以及理解 &os; 中的文件标志。</para>
</listitem>
<listitem>
- <para>&os;默认文件系统的架构。</para>
+ <para>&os; 默认文件系统的架构。</para>
</listitem>
<listitem>
<para>&os;磁盘架构。</para>
@@ -172,9 +171,9 @@ Password:</screen>
<sect2 id="consoles-virtual">
<title>多个控制台</title>
- <para>在一个控制台运行 &unix; 命令虽说很好, 但FreeBSD具有一次运行
- 多个程序的能力。仅使用一个控制台只会浪费FreeBSD同时运行多任务的能力。
- 而<quote>虚拟控制台</quote>在这方面发挥强大的功能。</para>
+ <para>在一个控制台运行 &unix; 命令虽说很好, 但 FreeBSD 具有一次运行
+ 多个程序的能力。 仅使用一个控制台只会浪费 FreeBSD 同时运行多任务的能力。
+ 而 <quote>虚拟控制台</quote> 在这方面发挥强大的功能。</para>
<para>FreeBSD 能配置出给您不同需求的虚拟控制台,
在键盘上您用一组键就能从各个虚拟控制台之间切换。
@@ -206,11 +205,11 @@ Password:</screen>
<sect2 id="consoles-ttys">
<title><filename>/etc/ttys</filename>文件</title>
- <para>FreeBSD虚拟控制台的默认配置为8个,但并不是硬性设置,
+ <para>FreeBSD 虚拟控制台的默认配置为8个,但并不是硬性设置,
您可以很容易设置虚拟控制台的个数增多或减少。
- 虚拟控制台的的编号和设置在<filename>/etc/ttys</filename> 文件里。</para>
+ 虚拟控制台的的编号和设置在 <filename>/etc/ttys</filename> 文件里。</para>
- <para>您可以使用<filename>/etc/ttys</filename>文件在FreeBSD下配置虚拟控制台。
+ <para>您可以使用 <filename>/etc/ttys</filename> 文件在 FreeBSD 下配置虚拟控制台。
文件里每一未加注释的行都能设置一个终端或虚拟控制台
(当行里含有 <literal>#</literal> 这个字符时不能使用) 。
FreeBSD 默认配置是配置出9个虚拟控制台而只能启动8个,
@@ -251,7 +250,7 @@ console none unknown off secure</programlisting>
<note>
<para>这个 <literal>console</literal> 已经注释掉,
您可编辑这行把 <literal>secure</literal> 改为
- <literal>insecure</literal>。 假如您这么做,
+ <literal>insecure</literal>。 这样,
当用单用户进入 FreeBSD 时, 它仍然要求提供
<username>root</username> 用户的密码。</para>
@@ -283,7 +282,7 @@ console none unknown off secure</programlisting>
<indexterm>
<primary>文件权限</primary>
</indexterm>
- <informaltable frame="none">
+ <informaltable frame="none" pgwide="1">
<tgroup cols="3">
<thead>
<row>
@@ -365,27 +364,27 @@ total 530
<screen>-rw-r--r--</screen>
<para>从左边起的第一个字,告诉我们这个文件是一怎样的文件:
- 普通文件?目录?特殊设备?套接字(socket)?或是pseudo-file device?
- 在这个例子,<literal>-</literal>表示一个普通文件。
- 接下来三个字是<literal>rw-</literal>是文件拥有者的权限。
- 再接下来的三个字是<literal>r--</literal>是文件所属群组的权限。
- 最後三个字是<literal>r--</literal>是其他人的权限。
+ 普通文件?目录?特殊设备?socket?或是设备文件?
+ 在这个例子, <literal>-</literal> 表示一个普通文件。
+ 接下来三个字是 <literal>rw-</literal> 是文件拥有者的权限。
+ 再接下来的三个字是 <literal>r--</literal> 是文件所属群组的权限。
+ 最後三个字是 <literal>r--</literal> 是其他人的权限。
以这一个文件为例,他的权限设定是拥有者可以读写这个文件、群组可以读取、
其他使用者也能读取这个文件。
根据上面的表格, 用数字表示这个文件其三部分的权限应该是
<literal>644</literal>。 </para>
<para>这样很好,但系统怎样对设备进行权限控制的?
- 事实上FreeBSD将大部份设备(的每一个设备)当作一个文件看待,
+ 事实上 FreeBSD 将大部份设备(的每一个设备)当作一个文件看待,
用程序能打开、读取、写入数据就如其他的文件一样。
- 而设备文件放在<filename>/dev</filename> 目录。
+ 而设备文件放在 <filename>/dev</filename> 目录。
</para>
<para>目录也视为一种文件,也有读取、写入、执行的权限。
但目录的执行权限意义并不与普通文件相同,
实际上执行权限是进入权限。
当一个目录是被标示可以执行的时候,那表示它可以被进入,
- 利用<quote>cd</quote> (变化目录位置)可以进入。
+ 利用 <quote>cd</quote> (变化目录位置)可以进入。
这意味着访问这些目录必须是谁才有权力
(当然目录下的文件也受到访问限制)。</para>
@@ -410,7 +409,7 @@ total 530
</authorgroup>
</sect2info>
- <title>权限符号</title>
+ <title>权限的符号化表示</title>
<indexterm><primary>权限</primary><secondary>符号</secondary></indexterm>
<para>权限符号,某些时候就是指符号表达式,
@@ -418,7 +417,7 @@ total 530
权限符号的使用语法是 (谁) (作用) (权限)。
看看下列数值的在那些地方所起什么样的作用:</para>
- <informaltable frame="none">
+ <informaltable frame="none" pgwide="1">
<tgroup cols="3">
<thead>
<row>
@@ -524,6 +523,57 @@ total 530
</para>
-->
</sect2>
+
+ <sect2>
+ <sect2info>
+ <authorgroup>
+ <author>
+ <firstname>Tom</firstname>
+ <surname>Rhodes</surname>
+ <contrib>Contributed by </contrib>
+ </author>
+ </authorgroup>
+ </sect2info>
+
+ <title>&os; 文件标志</title>
+
+ <para>在前面所介绍的文件权限的基础之上, &os;
+ 还支持使用 <quote>文件标志</quote>。
+ 这些标志为文件提供了进一步的安全控制机制,
+ 但这些控制并不适用于目录。</para>
+
+ <para>这些文件标志提供了针对文件的进一步控制,
+ 帮助确保即使是
+ <username>root</username> 用户也无法删除或修改文件。</para>
+
+ <para>文件标志可以通过使用 &man.chflags.1; 工具来修改,
+ 其用户界面很简单。 例如, 要在文件 <filename>file1</filename>
+ 上应用系统禁删标志, 应适用下述命令:</para>
+
+ <screen>&prompt.root; <userinput>chflags sunlink <filename>file1</filename></userinput></screen>
+
+ <para>要禁用系统禁删标志, 只需在前述命令中的
+ <option>sunlink</option> 标志前加 <quote>no</quote>。
+ 例如:</para>
+
+ <screen>&prompt.root; <userinput>chflags nosunlink <filename>file1</filename></userinput></screen>
+
+ <para>要显示文件上的标志, 应使用 &man.ls.1;
+ 的 <option>-lo</option> 参数:</para>
+
+ <screen>&prompt.root; <userinput>ls -lo <filename>file1</filename>
+ </userinput></screen>
+
+ <para>删除应类似于:</para>
+
+ <programlisting>-rw-r--r-- 1 trhodes trhodes sunlnk 0 Mar 1 05:54 file1</programlisting>
+
+ <para>许多标志只可以由
+ <username>root</username> 用户来增加, 而另一些,
+ 则可以由文件的所有者来增加。 建议管理员仔细阅读
+ &man.chflags.1; 和 &man.chflags.2; 联机手册,
+ 以对其加深理解。</para>
+ </sect2>
</sect1>
<sect1 id="dirstructure">
@@ -533,26 +583,25 @@ total 530
<para>目录层次是理解一个系统的重要基础,
最重要的莫过于它的根目录 <quote>/</quote>,
这个目录在启动时就就挂上, 它包含了启动时所需的基本系统。
- 这个根目录同样包含了您想挂上的每一个文件系统。</para>
+ 这个根目录同样包含了想要挂接的每一个文件系统。</para>
- <para>挂接点 (mount point) 是新增的文件系统根目录接入现有文件系统的目录,
- 标准的挂接点包含
- <filename>/usr</filename>、<filename>/var</filename>、
- <filename>/mnt</filename>和 <filename>/cdrom</filename>。
- 这些目录通常被纪录在 <filename>/etc/fstab</filename> 文件。
- <filename>/etc/fstab</filename>
- 文件是一个纪录系统上的多样文件系统和挂接点的表格,
+ <para>挂接点 (mount point) 是新增的文件系统在接入现有系统时的起点位置。
+ 标准的挂接点包括
+ <filename>/usr</filename>、 <filename>/var</filename>、 <filename>/tmp</filename>、
+ <filename>/mnt</filename>, 以及 <filename>/cdrom</filename>。
+ 这些目录通常会在
<filename>/etc/fstab</filename>
- 文件会依据这一个脚本 &man.rc.8; 在开机的时候被自动挂上,
- 除非加上 <option>noauto</option> (非自动) 这个选项。
- 请查阅手册 &man.fstab.5; 以了解
- <filename>/etc/fstab</filename> 所用的格式和他包含的选项。</para>
+ 文件中提及。 <filename>/etc/fstab</filename>
+ 是一张包含系统中各个文件系统及挂接点的表。
+ 在 <filename>/etc/fstab</filename> 中的绝大多数文件系统都会在启动时由
+ &man.rc.8; 脚本自动挂接, 除非特别指定了 <option>noauto</option> 选项。
+ 更多细节请参考 <xref linkend="disks-fstab">。</para>
- <para>您可以由 &man.hier.7;得知 man page 提供了完整的目录架构的介绍。
- 现在,我们介绍一般目录以供参考。</para>
+ <para>您可以通过 &man.hier.7; 来了解完整的文件系统层次说明。
+ 现在, 让我们先来看一看绝大多数的常见的目录以供参考。</para>
<para>
- <informaltable frame="none">
+ <informaltable frame="none" pgwide="1">
<tgroup cols="2">
<thead>
<row>
@@ -633,6 +682,12 @@ total 530
</row>
<row>
+ <entry><filename class="directory">/rescue/</filename></entry>
+ <entry>用于紧急恢复的一组静态联编的程序; 参见
+ &man.rescue.8;。</entry>
+ </row>
+
+ <row>
<entry><filename class="directory">/root/</filename></entry>
<entry><username>root</username>用户的Home(主)目录。</entry>
</row>
@@ -707,7 +762,7 @@ total 530
<row>
<entry><filename class="directory">/usr/ports</filename></entry>
- <entry>存放 FreeBSD 收集到的 ports (可选)。</entry>
+ <entry>存放 FreeBSD 的 Ports Collection (可选)。</entry>
</row>
<row>
@@ -780,7 +835,7 @@ total 530
<filename>readme.txt</filename> 和 <filename>README.TXT</filename>
是两个不相同的文件。 FreeBSD 不凭文件扩展名
(<filename>.txt</filename>) 去识别这个文件是
- 程序、或是文档、或是其他格式的数据。</para>
+ 程序、 文档, 或是其他格式的数据。</para>
<para>各种文件存放在目录里。 一个目录可以含有许许多多的文件,
允许含有其他的目录,同样允许您添加不同层次的目录在里面。
@@ -1370,6 +1425,10 @@ total 530
</listitem>
</varlistentry>
</variablelist>
+
+ <para>Consult the &man.fstab.5; manual page for more information
+ on the format of the <filename>/etc/fstab</filename> file and
+ the options it contains.</para>
</sect2>
<sect2 id="disks-mount">
@@ -1428,9 +1487,10 @@ total 530
<term><option>-r</option></term>
<listitem>
- <para>以只读的方式挂上文件系。
- 使用<option>-o</option> 选项加<option>rdonly</option>是一样的。
- </para>
+ <para>以只读方式挂接文件系统。
+ 这和在指定了 <option>-o</option> 选项配合
+ <option>ro</option> (对于 &os; 5.2 之前的版本来说,
+ 则是 <option>rdonly</option>) 参数的效果是一样的。</para>
</listitem>
</varlistentry>
@@ -1651,32 +1711,33 @@ Swap: 256M Total, 38M Used, 217M Free, 15% Inuse
这个类别的另一个例子就是把email的传送。
</para>
- <para>我们把那些程序叫<firstterm>守护进程</firstterm>。
- 守护神是希腊神话中的一些人物,非正非邪,他们是些守护小幽灵,大体上为人类作出贡献。
- 许多类似web系统或mail系统的系统对于今天仍有用途,
+ <para>我们把那些程序叫 <firstterm>守护进程</firstterm>。
+ 守护神是希腊神话中的一些人物,非正非邪,他们是些守护小精灵, 大体上为人类作出贡献。
+ 许多类似web服务或mail服务的系统对于今天仍有用途,
这就是为什么在那么长的时间里,BSD的吉祥物保持为一双鞋加一把钢叉的守护神模样。
</para>
- <para>守护进程的程序命名通常在最后加一个<quote>d</quote>。
- <application>BIND</application>是伯克莱互联网络守护进程命名(and the actual program that executes is called
+ <para>守护进程的程序命名通常在最后加一个 <quote>d</quote>。
+ <application>BIND</application> 是伯克利互联网域名服务 (而实际执行的程序名称则是
<command>named</command>),
- <application>Apache</application>web系统的程序就叫<command>httpd</command>,
- 在行式打印机上的打印守护进程就是<command>lpd</command>。
+ <application>Apache</application> web系统的程序就叫 <command>httpd</command>,
+ 在行式打印机上的打印守护进程就是 <command>lpd</command>。
这只是一种惯例,不是标准或硬性规定。
例如,为<application>Sendmail</application>而应用的主要mail守护进程就叫<command>sendmail</command>,
却不叫<command>maild</command>,这和您推测的一样。
</para>
- <para>有时您必须和一个守护进程的程序通信,这些通信就叫<firstterm>信号</firstterm>。
- 您能发送一个信号给守护进程(或有关的另一些运行进程)与它进行通信,
- 各个不同的信号各自就是一个数字编号,而您所发送的&mdash;数字编号各自有一个特殊的含义。
- 有些人把信号解悉为'请求',并在'请求'的文档里告诉您怎样把信号理解为请求。
+ <para>有时可能会需要与守护进程进行通讯。 而 <firstterm>信号</firstterm> 则是其中的一种通讯机制。
+ 可以发送信号给守护进程 (或相关的另一些进程) 来与它进行通信,
+ 不同的信号都有自己的数字编号&mdash;其中一些有特殊的含义,
+ 其它的则可以被应用程序自己进行解释, 而一般来说,
+ 应用程序的文档会告诉哪些信号会被如何处理。
您只能给所属于您的进程发信号,假如您给其他人的进程发信号,
进程就会用&man.kill.1; 或 &man.kill.2;权限进行拒绝。
当然,<username>root</username> 用户会例外,它能把各种信号发送给每个进程。
</para>
- <para>在某些案例里,FreeBSD也会向应用软件发送信号。
+ <para>在某些情况下,FreeBSD也会向应用软件发送信号。
假如一个应用软件含有恶意写入并试图去访问内存,那是不可想象的,FreeBSD会向那个进程发送
<firstterm>段式违规</firstterm> 信号 (<literal>SIGSEGV</literal>)。
假如一个应用软件使用&man.alarm.3;系统去进行周期性调用闹钟功能,每当达到时间时,
@@ -1686,7 +1747,8 @@ Swap: 256M Total, 38M Used, 217M Free, 15% Inuse
<para>有两个信号可以停止进程:<literal>SIGTERM</literal> 和 <literal>SIGKILL</literal>。
<literal>SIGTERM</literal>比较友好,进程能<emphasis>捕捉</emphasis>这个信号,
根据您的需要来关闭程序。在关闭程序之前,您可以结束打开的记录文件和完成正在做的任务。
- 在一些案例里,假如进程正在进行作业而且不能中断,那么进程可以忽略这个<literal>SIGTERM</literal>信号。
+ 在某些情况下, 假如进程正在进行作业而且不能中断,那么进程可以忽略这个
+ <literal>SIGTERM</literal>信号。
</para>
<para>对于<literal>SIGKILL</literal>信号,进程是不能忽略的。 这是一个
@@ -1694,8 +1756,9 @@ Swap: 256M Total, 38M Used, 217M Free, 15% Inuse
假如您发送<literal>SIGKILL</literal>信号给进程,
FreeBSD就将进程停止在那里。<footnote>
<para>有点不正确&mdash;少数的东西是不能中断的。
- 例如,假如进程试图从网络上另一个计算机的一个文件读取,
- 而那个的计算机会因为某些原因拿走了这个文件,那这个进程从上术情况来看是<quote>不能中断</quote>。
+ 例如, 假如进程试图读取网络上另一计算机上的文件,
+ 而那个的计算机会因为某些原因拿走了这个文件,
+ 那这个进程从上述情况来看是 <quote>不能中断</quote>。
最终这个进程会超时,典型的两分钟。一出现超时进程将被杀死。
</para>
</footnote>.</para>
@@ -1710,7 +1773,9 @@ Swap: 256M Total, 38M Used, 217M Free, 15% Inuse
您可以停止然后再启动<command>httpd</command>。但这样做web系统会导致一个短暂
的中断周期,那样是不受欢迎的。几乎所有的守护进程在编写时,都会指定对<literal>SIGHUP</literal>
信号进行响应从而重读配置文件。
- 所以最好的方法就是不去杀死并重启<command>httpd</command>,而是发一个<literal>SIGHUP</literal>信号给他。
+ 所以, 最好的方法, 就不是杀死并重启
+ <command>httpd</command>,
+ 而是发一个 <literal>SIGHUP</literal> 信号给它。
因为在这方面没有一个标准,不同的守护进程有不同的用法,所以不了解时应读一下守护进程的文档。
</para>
@@ -1751,7 +1816,7 @@ Swap: 256M Total, 38M Used, 217M Free, 15% Inuse
<prompt>Password:</prompt>
&prompt.root; <userinput>/bin/kill -s HUP 198</userinput></screen>
- <para>和大多数 &unix; 命令一样, &man.kill.1; 完成任务之是没有内容输出的。
+ <para>和大多数 &unix; 命令一样, &man.kill.1; 如果完成了任务, 就不会给出任何消息。
假如您发送信号给一个不属于您的进程,
您会看到 <errorname>kill:
<replaceable>PID</replaceable>: Operation not
@@ -1780,8 +1845,8 @@ Swap: 256M Total, 38M Used, 217M Free, 15% Inuse
<important>
<para>在系统上随意杀死进程是个坏主意,特别是&man.init.8;,它的进程ID是1,它非常特殊。
可以运行 <command>/bin/kill -s KILL 1</command> 命令来让系统迅速关机。
- 当您按下 <keycap>Return</keycap> 键时, <emphasis>始终</emphasis> 必须
- 去详细检查您所运行的 &man.kill.1;。
+ 当您按下 <keycap>Return</keycap> 键之前, <emphasis>一定要</emphasis>
+ 详细检查您运行 &man.kill.1; 时所指定的参数。
</para>
</important>
@@ -1829,7 +1894,7 @@ Swap: 256M Total, 38M Used, 217M Free, 15% Inuse
这个一个常用环境变量列和其含义的列表:</para>
<indexterm><primary>环境变量</primary></indexterm>
- <informaltable frame="none">
+ <informaltable frame="none" pgwide="1">
<tgroup cols="2">
<thead>
<row>
@@ -1972,13 +2037,18 @@ Swap: 256M Total, 38M Used, 217M Free, 15% Inuse
<indexterm><primary>文本编辑器</primary></indexterm>
<indexterm><primary>编辑器</primary></indexterm>
- <para>在FreeBSD里有许多的配置是依靠编辑文本文件来完成的,
- 正因为这样,最好就是去熟悉一种文本编辑器。
- FreeBSD基本系统本身就自带有几种,还有许多已可在ports里得到。</para>
+ <para>FreeBSD 的很多配置都可以通过编辑文本文件来完成。
+ 因此, 最好能熟悉某种文本编辑器。
+ FreeBSD 基本系统中提供了一些, 您也可以从 Ports Collection
+ 安装其它编辑器。</para>
<indexterm>
<primary><command>ee</command></primary>
</indexterm>
+ <indexterm>
+ <primary>editors</primary>
+ <secondary><command>ee</command></secondary>
+ </indexterm>
<para>最容易学的而又简单的编辑器是
<application>ee</application>编辑器, 是个标准的简易编辑器。 要启动
<application>ee</application>,首先就要在命令行输入