电脑技术学习

FreeBSD中Telnet最大连接用户数的定制

dn001
目录
3;Unix;基础
3.1;概要
3.2;权限
3.3;目录结构
3.4;挂上和卸载文件系统
3.5;进程
3.6;后台,信号和杀死进程
3.7;shell;
3.8;文本编辑器
3.9;设备和设备节点
3.10;更多信息

=============================================================
第3;章,UNIX;基础知识
=============================================================
(翻译中出现的任何问题或错误,请广大读者及时反馈给我:freebsdhandbook@163.com);
3.1;概要
这一章将介绍UNIX;的基础知识和FreeBSD;的功能。如果你还是个FreeBSD;的新手,你
在寻求帮助之前,应当先阅读这一章。
读完这章,你会了解到:;
1.;UNIX;的文件访问权限是如何工作的。
2.;进程,后台,和信号是什么。
3.;什么是shell,如何改变你的默认登陆环境。
4.;如何使用基本的文本编辑器。
5.;如何阅读联机手册了解更多信息。
3.2;权限
FreeBSD,仍然保持着BSD;UNIX;的传统,它的基本原理仍然是以几个关键的UNIX;概念
为基础的。首先,最显著的就是:FreeBSD;是一个多用户的操作系统。这个系统能够允许许
多毫不相关的任务同时工作。对于每一个用户来讲,系统都能非常可靠地分享和管理着来自
不同硬件设备、内存、CPU;时钟的处理请求。
因为系统支持多用户,所以系统管理的每一件事情都必须要设置谁有读,写,和执行的
权限。这个权限用八进制的形式来表示,把它分成三部分:文件拥有者,文件拥有者所在组
和其他成员。这种表示方法如下所示:;
权限值
No;read,;no;write,;no;execute;0;
No;read,;no;write,;execute;1;
No;read,;write,;no;execute;2;
第1;页
目录列表
---;
--x;
-w-;FreeBSD;使用手册
No;read,;write,;execute;3;
Read,;no;write,;no;execute;4;
Read,;no;write,;execute;5;
Read,;write,;no;execute;6;
Read,;write,;execute;7;
在一个长目录中,用ls;–l;命令列一个清单,就显示了文件所有者、文件所有者所在
组和其它成员的权限信息。这里就是它的表示方法:;
-rw-;r-;-;r-;-;
从左到右,第一个字符是一个特殊的字符,它告诉你这是一个规则文件,一个目录,一
个特殊字符,一个块设备,一个套接字,还是其它的伪设备文件。下面的三个字符“rw-”;
指明了文件所有者的权限。下面的三个字符“r--”指明了文件所有者所在组的权限。最后
面的三个字符“r--”,给出了其他用户的权限。一个破折号表示这个权限被关闭了。在这
样一个设置下,意味着只有文件所有者才能读、写文件,组能够读文件,其它用户只能读文
件。按照上表的指示,这个文件的权限应该是644,每个数字都代表着这个文件权限的三个
部分。FreeBSD;是如何来控制设备的权限的呢?事实上,FreeBSD;把绝大多数的硬件设备看
作是一个文件,就象其它文件能够被打开,阅读,写数据一样。这些特殊的设备文件保存在
/dev目录下。
目录也可以当作文件来看待。它们有读、写和执行的权限。这里的可执行跟其它文件的
可执行有一些差别。例如,当一个目录被标记为可执行时,意味着这个目录可以被查找到,;
并且可以在这个目录下列目录。如果你想了解如何设置权限的话,你可以参考chmod;命令的
有关说明。
3.3;目录结构
FreeBSD;使用的文件系统决定了许多基础的系统操作,文件系统的层次结构是非常重要
的。在所有的目录中,root(/)是最重要的。系统启动时,这个目录是最先被挂上的,而
且它包含了基本的系统信息。root;目录也包含了你能够挂上的其它文件系统的装载点。装
载点是其它文件系统能够被连接到root;文件系统的目录。这些目录通常被指定在
第2;页
-wx;
r—;
r-x;
rw-;
rwx;FreeBSD;使用手册
/etc/fstab下。/etc/fstab是一个几种文件的表,装载点能够被系统参考。在/etc/fstab;
中的绝大多数文件系统,能够在启动时被自动挂上,除非它们包含noauto;选项。你可以参
考fstab;的指南,了解更多有关/etc/fstab文件格式和它所包含选项的信息。
现在,主要的目录结构就是这些:;
描述目录
文件系统的根目录/;
单用户和多用户环境下,用户使用的工具。/bin/;
操作系统启动过程中使用的程序和配置文件。/boot/;
/boot/defaults/;默认的启动配置文件;看看loader.conf。
设备节点;看看intro。/dev/;
系统配置文件和脚本。/etc/;
默认的系统配置文件;看看rc.;/etc/defaults/;
象sendmail;这样的用于邮件传输代理的配置文件。/etc/mail/;
/etc/namedb/;Named;配置文件;看看named。
通过via;每天,每周,每月运行的脚本;看看periodic;的联机手册。/etc/periodic/;
/etc/ppp/;Ppp;配置文件;看看ppp;联机手册。
系统管理员使用的用作一个临时加载点的空目录。/mnt/;
处理文件系统;看看procfs,mount;procfs;联机手册。/proc/;
/root/;Root;帐户的主目录。
单用户和多用户使用的系统程序和管理工具。/sbin/;
在独立环境下使用的程序。/stand/;
临时文件。/tmp/;
主要是用户的工具和应用程序。/usr/;
通常是工具,程序工具和应用程序。/usr/bin/;
标准C;include;文件。/usr/include/;
文档库/usr/lib/;
各种工具的数据文件。/usr/libdata/;
系统守护程序和系统工具(被其他程序执行的)。/usr/libexec/;
第3;页/usr/local/;
/usr/obj/;
/usr/ports;FreeBSD;ports;collection;。
/usr/sbin/;
/usr/share/;
/usr/src/;
/usr/X11R6/;X11R6;发行的可执行程序,库等。
/var/;
/var/log/;
/var/mail/;
/var/spool/;
/var/tmp/;
/var/yp;NIS;地图。
3.4;挂上和卸载文件系统
文件系统可以形象化为一棵树,root;就是根:象这样/,/dev,/usr;等。根目录下的其
他目录也可能有分支,这些分支也会有它们自己的分支,象这样/usr/local;等等。之所以
要采用这种分离的文件系统有很多原因。/var;包含log,spool;和不同的临时文件。当然,;
这个目录也可能会被塞满。塞满根文件系统不是一个好主意,所以从/分离出一个/var;比较
好。
在其他的文件系统上,采用这种目录树结构的另一个原因是他们可能会在另外一个物理
磁盘上,或在另外一个虚拟磁盘上,象NFS;文件系统或CDROM;驱动器。
3.4.1;fstab;文件
在系统启动的过程中,在/etc/fstab;中列出的文件系统会被自动地挂上。/etc/fstab;
文件包含了一个以下面的格式排列的列表:;
device;/mount-point;fstype;options;dumpfreq;passno;
FreeBSD;使用手册
本地执行的,库等。也是默认的放置ports;框架的地方。Ports;的文档
放在/usr/local/share/doc/;port中。
通过建构/usr/src;目录树产生的特定结构的目标树。
系统守护程序和系统工具(由用户执行的)。
独立结构的文件。
本地源代码文件。
多种日志,临时文件,和spool;文件。
多种系统日志文件。
用户邮箱文件。
多种打印机和邮件系统spooling;目录。
系统重新启动之间保存的临时文件。
第4;页FreeBSD;使用手册
Device;是一个设备名,就象上一章磁盘命名规则所提到的。
mount-point;是一个目录,在它上面挂上文件系统。
Fstype;是要挂上的文件系统类型。FreeBSD;的默认文件系统是ufs。
Options;选项既可以是rw;可读写文件系统,也可以是ro;只读文件系统,可根据其它选项的
要求来定义。在系统按顺序启动过程中,一个普通的选项是noauto,它通常不会被挂上。
其他的选项可参看mount;的联机手册。
3.4.2;mount;命令
mount;命令通常是用来挂上文件系统的。它的最基本的操作格式:;
#;mount;device;mountpoint;
它有很多的选择参数,但绝大多数是这样的:;
mount;options;
-a;
挂上/etc/fstab;中的所有文件系统,也可以用-t;来修改。
-d;
除了挂文件系统外,可以做所有事情。
-f;
强迫挂上文件系统。
-r;
挂上只读文件系统。
-t;fstype;
以给定的文件格式挂上给定的文件系统。如果加上-a;参数,就只能挂上给定类型的文
件系统。“ufs”是默认的文件类型。
-u;
在文件系统上升级mount;选项。
-v;
更加详细。
-w;
修改文件系统为读,写。
第5;页FreeBSD;使用手册
-O;选项提供了一个用逗号分割的选项列表,包括下面这些:;
nodev;
不要解释文件系统上的特殊设备。有用的安全选项。
noexec;
不允许在这个文件系统上执行程序。有用的安全选项
nosuid;
不要在文件系统上解释setuid;或setgid;标记。有用的安全选项。
3.4.3;umount;命令
在umount;命令后可能会加载的参数可能是一个挂载点,一个设备名,或是-a,-A;选项。
所有加-f;参数的形式将会被强迫卸载,-v;参数就会太冗长。-a,-A;选项用来卸载所有挂上
的文件系统。
3.5;进程
FreeBSD;是一个多任务的操作系统。这意味着可以同时有多个程序一起运行。你运行的
每个程序叫做一个进程。你运行的每个程序都至少要启动一个进程,系统中时刻都有很多
进程在运行,以维持系统的功能。
每一个进程都有一个叫做进程ID;或PID;的号码,每个进程也会有一个主人(或叫属主);
和它所在的组。主人和组的信息用来决定进程能够打开什么文件和设备,使用文件的权限。
绝大多数进程都有一个父进程。父进程是启动其他进程的进程,你运行的任何命令也是进
程。每个进程将使用你的shell;作为它的父进程。除这个进程之外的一个特殊的进程叫做
init。Init;总是第一个进程,所以它的PID;总是1。当FreeBSD;启动时,init;会被内核自
动启动。
有两个命令可以用来查看系统的进程,ps;和top。ps;命令用来显示当前运行的进程的
列表,还可以显示它的PID,它们使用多少内存,它们启动的命令行等等。Top;命令显示了
所有运行的进程,每隔几秒就刷新一次,以至你可以动态地观察你电脑的工作状况。默认
情况下,ps;只显示正在运行的你自己的命令。例如:;
%;ps;
第6;页FreeBSD;使用手册
PID;TT;STAT;TIME;COMMAND;
298;p0;Ss;0:01.10;tcsh;
7078;p0;S;2:40.88;xemacs;mdoc.xsl;(xemacs-21.1.14);
37393;p0;I;0:03.11;xemacs;freebsd.dsl;(xemacs-21.1.14);
48630;p0;S;2:50.89;
/usr/local/lib/netscape-linux/navigator-linux-4.77.bi;
48730;p0;IW;0:00.00;(dns;helper);(navigator-linux-);
72210;p0;R+;0:00.00;ps;
390;p1;Is;0:01.14;tcsh;
7059;p2;Is+;1:36.18;/usr/local/bin/mutt;-y;
6688;p3;IWs;0:00.00;tcsh;
10735;p4;IWs;0:00.00;tcsh;
20256;p5;IWs;0:00.00;tcsh;
262;v0;IWs;0:00.00;-tcsh;(tcsh);
270;v0;IW+;0:00.00;/bin/sh;/usr/X11R6/bin/startx;--;-bpp;16;
280;v0;IW+;0:00.00;xinit;/home/nik/.xinitrc;--;-bpp;16;
284;v0;IW;0:00.00;/bin/sh;/home/nik/.xinitrc;
285;v0;S;0:38.45;/usr/X11R6/bin/sawfish;
正如你在这个例子中看到的,ps;的输出形式是根据数字的排列顺序来组织的。PID;是
先前讨论的进程ID。PID;从1;开始,最高到65536。当你完成以后,再从头开始。TT;显示
了正在运行的tty,也可以安全地略过。
Ps;支持许多不同的选项来改变显示的信息。最有用的设置是auxww。一个有关所有运
行的进程的显示信息,不仅仅是你自己的。U;用来显示进程的使用者和内存的使用者。X;用
第7;页FreeBSD;使用手册
来显示后台运行的进程信息,ww;用来显示所有的命令行,一旦它比较长而超出屏幕时,就
会截取其中一段。
Top;的输出也比较熟悉。可以看看下面的例子;;
%;top;
last;pid:;72257;;load;averages:;0.13,;0.09,;0.03;up;0+13:38:33;
22:39:10;
47;processes:;1;running,;46;sleeping;
CPU;states:;12.6%;user,;0.0%;nice,;7.8%;system,;0.0%;interrupt,;79.7%;idle;
Mem:;36M;Active,;5256K;Inact,;13M;Wired,;6312K;Cache,;15M;Buf,;408K;Free;
Swap:;256M;Total,;38M;Used,;217M;Free,;15%;Inuse;
PID;USERNAME;PRI;NICE;SIZE;RES;STATE;TIME;WCPU;CPU;COMMAND;
72257;nik;28;0;1960K;1044K;RUN;0:00;14.86%;1.42%;top;
7078;nik;2;0;15280K;10960K;select;2:54;0.88%;0.88%;
xemacs-21.1.14;
281;nik;2;0;18636K;7112K;select;5:36;0.73%;0.73%;XF86_SVGA;
296;nik;2;0;3240K;1644K;select;0:12;0.05%;0.05%;xterm;
48630;nik;2;0;29816K;9148K;select;3:18;0.00%;0.00%;
navigator-linu;
175;root;2;0;924K;252K;select;1:41;0.00%;0.00%;syslogd;
7059;nik;2;0;7260K;4644K;poll;1:38;0.00%;0.00%;mutt;
...;
第8;页FreeBSD;使用手册
整个输出被分为两节。头上(最初5;行)显示运行着的进程的PID,系统的平均负载(反
映系统的繁忙程度),系统的正常运行时间(从上次重起以来的时间),和当前时间。其
它的图显示了当前运行了多少个进程,有多少内存和交换空间已经被占用,系统在不同CPU;
状态之间切换需要花费多长时间。
下面有一连串的竖直排列的ps;命令的输出信息。你可以看到PID,用户名,CPU;时钟
的花费数量,正在运行的命令。Top;也默认地显示了进程所花费掉的内存空间的数量。这可
以被分成两列,一列针对所有的内存数量,一列针对常驻内存数量。整个内存数量就是应
用程序需要多少内存,常驻内存是在此刻使用的内存数量。在这个例子中,你可以看到
Netscape;使用了30M;内存,当前只使用了9MB。Top;每隔两秒自动刷新一次;这可以通过加
上s;选项来修改。
3.6;守护程序,信号和杀死进程
当你使用一个编辑器的时候,你可以要求它加载一些文件。因为它们提供了这样的功
能,而且它们是与一个终端连在一起的。但,有一些程序却不能让用户输入信息,它们是
不与终端连在一起的。例如,一个web;服务器花费所有的时间来回应用户的请求,它通常
不需要你有任何的输入。从一个站点到另一个站点传送email;是另外一个这种类型的应用
例子。我们叫这些程序为daemons(守护程序)。Daemon;具有希腊神话的特征;今天的许
多web;服务器和mail;服务器都使用这些。有时你可能需要与一个守护程序进行通讯。这些
通讯就叫做signal。你可以通过给它发送signal(或是运行进程)来与守护程序通讯。如
果你发送的signal;有很多(有一些有特殊的用处),其它的与应用程序集成在一起,应用
程序的文档会告诉你如何解释signal。你可以发一个signal;给你的一个进程。如果你设法
发送一个signal;给其他人的进程,它就会被忽略。Root;用户除外,它可以发送signal;给
每一个进程。
如果一个应用程序写入错误,就会设法访问内存,FreeBSD;会给进程发送Segmentation;
Violation;signal;(SIGSEGV)。如果一个应用程序使用alarm;系统来发出警告,那一段时
间以后,它也会发送警告信号。
两个信号可能会中断一个进程,SIGTERM;和SIGKILL。SIGTERM;是一个比较友好的杀死
进程的方法;这个进程也会捕获信号,以便让你关机,关闭可能打开的一些日志文件。在
第9;页FreeBSD;使用手册
关机之前,通常需要完成当前正在做的工作。有时,如果它是处在一个不能打断的任务中,;
一个进程可以忽略SIGTERM。
SIGKILL;无法被进程忽略。它会发出这样的信号“I;do;not;care;what;you;are;doing,;
stop;right;now”。如果你发送SIGKILL;给一个进程,FreeBSD;将会停止那个进程。
你可能要用到的其他signal;是SIGHUP,;SIGUSR1;和SIGUSR2。这些是普通用途的
signal。当他们被发送时,不同的应用程序将做不同的事情。
建议你改变一下你的web;服务器的配置文件----你最好告诉web;服务器重新读一下它
的配置文件。你需要重起httpd,但这将会在你的web;服务器上增加一些消耗,而这可能是
你不太欢迎的。绝大多数守护程序通过重新读取它们的配置文件来对SIGHUP;信号作出回应。
不同的后台程序将有不同的行为。所以,要带着问题来阅读守护程序的联机手册。
可以使用kill;命令来发送signal,例如:;
发送一个signal;给处理器
这个例子显示了如何发送一个信号给inetd。Inetd;的配置文件是/etc/inetd.conf。当它
接收到SIGHUP;时,inetd;将重新读取这个配置文件。
寻找你要发送信号的进程ID。可以使用ps,grep;命令。Grep;命令被用来搜索输出,;1.;
寻找你要指定的字符。这个可以有一个普通用户来执行,而inetd;需要是root;用户,所以
ps;必须带上ax;选项
%;ps;-ax;|;grep;inetd;
198;??;IWs;0:00.00;inetd;-wW;
这儿,inetd;的PID;是198。有时,grep;inetd;命令也需要出现在这个输出中。这是
因为ps;必须要找到当前运行的进程的列表。
使用kill;来发送信号。因为inetd;只有root;用户才能运行,你必须使用su;来变2.;
成一个root;用户。
%;su;
Password:;
第10;页FreeBSD;使用手册
#;/bin/kill;-s;HUP;198;
就象普通的unix;命令一样,如果它成功执行,kill;将不会输出任何信息。如果你想发
送一个signal;给一个进程,你会看到“kill:;PID:;Operation;not;permitted”。如果你
打错了PID,你有可能把信号发错给了某个进程,这样会很糟糕,也有可能把信号发给了一
个当前不在使用的PID,你将可能看到“kill:;PID:;No;such;process”这样的信息。
为什么使用/bin/kill:许多shell;提供了内建命令kill;shell;将直接发送信号,比
运行/bin/kill;要好。这点非常有用,但不同的shell;需要用不同的语法来指定信号的名字。
重要点:在系统中随意地杀死进程是个坏主意。特别地,init;进程ID;是1,非常特殊。
运行/bin/kill;-s;KILL;1;是一个快速关闭你系统的方法。在你键入kill;之前,请你仔细
检查你执行的kill;的参数。
3.7;Shell;
在FreeBSD;中,许多工作是通过一个叫命令解释器{俗称“外壳(shell)”}的命令行
接口来完成的。shell;的主要工作是接收输入的命令然后执行它们。许多shell;也能够用来
帮助完成每天的工作,如:文件管理,文件查找,命令行编辑,宏命令,以及其它环境设置。
FreeBSD;有许多种shell,如:sh,Bourne;Shell;和csh,C-shell。许多其它的shell,如
tcsh,bash;拥有更强大的功能,你可以在FreeBSD;的软件包中找到。
你使用哪个shell?那还正是个问题。如果你是一个C;程序员,你可能觉得象tcsh;这
种C;类型的shell,用起来比较舒服。如果你使用Linux;或你是一个UNIX;的新手,你可能
会试一试bash。这里要指出的是每一种shell;都有它自己的特点,你可以根据你的喜好自
由地选择。Shell;的一个基本特征是文件名的自动补充功能。通常在你输入一个命令或文件
名时,你先输入几个字母,然后按TAB;键,命令或文件名会自动补上剩下的字母。例如:我
有两个文件:foobar;和foo.bar。我要删除foo.bar。所以我就输入:rm;foo[TAB].[TAB]。
Shell;就会打出rm;foo[BEEP].Bar。[BEEP]是铃声。它能够告诉我,因为匹配的问题shell;
不能自动补充文件名。因为foobar;和foo.bar;同时以fo;开始,但它无法完成foo。一旦我
输入.,然后键入TAB,shell;就能补充完文件名。
第11;页FreeBSD;使用手册
Shell;的另外一个功能就是环境变量。环境变量是存储在shell;环境空间中的可变钥匙
对。这个空间能够被shell;的任何程序调用,而且包含了许多程序配置。这儿是一个普通环
境变量的列表:;
详细说明变量
现在登陆的使用者名称。USER;
以冒号分隔的目录列表以便寻找执行文件的路径。PATH;
DISPLAY;X11;显示连接的网络名称,如果有的话。
目前用的shell;。SHELL;
使用者终端的名称。用来决定终端机的能力。TERM;
完成几个终端功能的终端退出代码的数据库记录。TERMCAP;
操作系统的种类,如FreeBSD。OSTYPE;
MACHTYPE;现在系统所用的CPU。
使用者喜欢的编辑器。EDITOR;
使用者喜欢的文字呼叫器。PAGER;
以冒号分隔的目录以便寻找联机手册。MANPATH;
在各shell;之间,设置一个环境变量稍微有点不同。例如,象tcsh;和csh;的C;风格shell,;
你可以使用setenv;来设置或查看环境变量。而在象sh;和bash;的Bourne;shell;下,你可以
使用set;和export;来查看和设置环境变量。例如,在csh;或tcsh;下,设置或修改环境编辑
器,可以把编辑器设置成/usr/local/bin/emacs:;
%setenv;EDITOR;/usr/local/bin/emacs;
在Bourne;shell;下:;
%export;EDITOR=“/usr/local/bin/emacs”;
你也可以在命令列用$放在变量的前面来取得环境变量。echo;$TERM;就会显示出$TERM;
的设置值,因为shell;取得了$TERM;并把它传给echo;显示出来。
第12;页FreeBSD;使用手册
Shell;里有很多特殊字符代表着一些资料,我们叫做meta-characters。最常用的就是*;
这个字符,它代表文件名的任何字符。这些meta-characters;会被用在文件名称的全域样式
上。举例来说,键入echo;*是和ls;有同样的效果,因为shell;将所有符合*的文件传到命
令列给echo;显示出来。
为了防止这些特殊的字符被shell;转译,我们可以在前面放一个反斜线()让它们跳出
来。echo;$TERM;会显示出你所设置的终端机。而echo;$TERM;就会直接显示出$TERM;这几
个字母。
3.7.1;改变你的shell;
改变你的shell;的最简单的方法是用chsh;命令。运行chsh;就可以把你带入系统设置的
编辑器中。如果编辑器没有设置的话,你就可以用vi;来代替。直接在此改变“shell:”。
你可以给chsh;加上-s;的参数;这样,就不需要你输入一个编辑器来设置shell;了。例如,;
如果你想把你的shell;设置成bash,你只要这样做:;
%;chsh;-s;/usr/local/bin/bash;
运行不带参数的chsh,编辑shell;将同样能达到目的。
注意:你使用的shell;出现在/etc/shell文件中。如果你在安装软件的时候,已经安
装了一个shell,那么这个就已经做好了。如果你是手工安装shell,那你就必须做。例如,;
如果你手工安装bash,只要把它放在/usr/local/bin中,你只要这样做:;
#echo;“/usr/local/bin/bash”>>/etc/shells;
然后再执行chsh。
3.8;文本编辑器
在FreeBSD;中,许多配置信息都是通过编辑一个文本文件来完成的。所以,熟悉一个
文本编辑器是非常必要的。FreeBSD;带有许多的编辑器,可以在ports;collection;中找到。
第13;页FreeBSD;使用手册
最容易和最简单的编辑器就是ee;了,它非常容易掌握。要启动ee,你只需要在命令行键入
ee;文件名。例如,要编辑文件/etc/rc.conf,只要键入ee;/etc/rc.conf。一进入ee,许
多编辑功能就都列在屏幕的顶部。^字符是键盘的ctl;键,所以^e;键盘的ctl;键加上e;键。
要离开ee,只要键入escape;键,然后选择离开。编辑器会提示你保存刚才的修改。FreeBSD;
也带有很多功能强大的编辑器,象vi,emacs;和vim;等。这些编辑器都有很强大的功能,;
你需要认真地学习。
3.9;设备和设备节点
一个设备大都是一个系统中与硬件相关的活动所使用的,包括磁盘,打印机,图形卡和
键盘。当FreeBSD;启动时,显示的大都是检测到的设备。你可以查看/var/run/dmesg.boot;
文件来看看启动信息。
例如,acd0;是第一个IDE;CDROM;驱动器,而kbd0;则是键盘。在unix;系统中的绝大多
数设备必须呼叫设备的节点才能来访问一个特殊文件,这些都放在/dev;目录下。
3.9.1;创建设备节点
当你在系统中添加了一个新的设备或编译支持额外的设备时,需要重建一个设备驱动。
3.9.1.1;MAKEDEV;脚本
在系统中没有DEVFS,设备节点可以使用MAKEDEV;脚本来创建:;
#;cd;/dev;
#;sh;MAKEDEV;ad1;
这个例子中将创建第二个IDE;驱动器的设备节点。
3.9.1.2;devfs;(设备文件系统);
设备文件系统或devfs,提供了访问内核设备的命名方式。Devfs;获得了这个特殊的文
件系统,代替了创建和修改设备节点。devfs;将在FreeBSD;5.0;中作为默认使用项。
3.10;更多信息
3.10.1;联机手册
第14;页FreeBSD;使用手册
绝大多数FreeBSD;的参考文档是以手册的形式出现的。系统的每个程序都有一个简短
的联机手册。这些手册能够用man;命令来阅读。例如:;
%;man;command;
command;是你希望了解的命令的名字。例如,要知道ls;的用法:;
%;man;ls;
联机手册被分成好几节:;
1.;用户命令
2.;系统呼叫和错误编号
3.;在C;库中的功能
4.;设备驱动器
5.;文件格式
6.;游戏和其他娱乐方式
7.;其它一些凌乱的信息
8.;系统维护和操作命令
9.;内核开发
在一些示例中,同一个主题可能会出现在手册的很多地方。例如,chmod;用户命令和
chmod;系统呼叫。在这个例子中,你可以告诉man;命令,你要指定哪一节:;
%;man;1;chmod;
这将显示用户命令chmod;的参考文档。参考一个联机手册的特殊的章节通常被附带在
文章的后面,所以第一个chmod;引用了chmod;用户命令和第二个chmod;引用了系统呼叫。
如果你知道命令的名字,就比较好,你只需要知道如何使用。但如果你无法想起命令
的名字是什么?你可能要使用man;加上-k;选项在命令描述中搜索关键字:;
%;man;-k;mail;
第15;页FreeBSD;使用手册
这个命令将出现在一个带有关键字mail;的命令列表中。这与使用apropos;命令具有相
同的功能。所以,你可以在/usr/bin;中寻找所有的奇特的命令,只要这样做:;
%;cd;/usr/bin;
%;man;-f;*;

%;cd;/usr/bin;
%;whatis;*;
可以达到同样的目的。
3.10.2;GNU;Info;文件
FreeBSD;包括许多自由软件基金会提供的应用程序和工具。除了联机手册之外,这些程
序都提供叫做info;文件的超文本文件,它可以用info;命令来阅读,或者如果你有emacs,;
可以使用emacs;的info;模式来阅读。
使用info;命令:;
%;info;
要看看概要介绍,可以键入h。要看看快速命令参考,可以键入?。
第16;页

标签: