diff options
author | Xin LI <delphij@FreeBSD.org> | 2005-04-06 11:02:21 +0000 |
---|---|---|
committer | Xin LI <delphij@FreeBSD.org> | 2005-04-06 11:02:21 +0000 |
commit | ce44acb48164b2564296f0b2de46c9128f5fd860 (patch) | |
tree | 0779fc6f852674f75c6b1b71d14b9790994803e3 /zh_CN.GB2312/books/handbook/basics | |
parent | dba7a0058e8d1dc7f0d3c7f3ea32f5eb2b7a2541 (diff) |
Notes
Diffstat (limited to 'zh_CN.GB2312/books/handbook/basics')
-rw-r--r-- | zh_CN.GB2312/books/handbook/basics/chapter.sgml | 206 |
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>。 - 您能发送一个信号给守护进程(或有关的另一些运行进程)与它进行通信, - 各个不同的信号各自就是一个数字编号,而您所发送的—数字编号各自有一个特殊的含义。 - 有些人把信号解悉为'请求',并在'请求'的文档里告诉您怎样把信号理解为请求。 + <para>有时可能会需要与守护进程进行通讯。 而 <firstterm>信号</firstterm> 则是其中的一种通讯机制。 + 可以发送信号给守护进程 (或相关的另一些进程) 来与它进行通信, + 不同的信号都有自己的数字编号—其中一些有特殊的含义, + 其它的则可以被应用程序自己进行解释, 而一般来说, + 应用程序的文档会告诉哪些信号会被如何处理。 您只能给所属于您的进程发信号,假如您给其他人的进程发信号, 进程就会用&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>有点不正确—少数的东西是不能中断的。 - 例如,假如进程试图从网络上另一个计算机的一个文件读取, - 而那个的计算机会因为某些原因拿走了这个文件,那这个进程从上术情况来看是<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>,首先就要在命令行输入 |