📄 00000003.htm
字号:
<HTML><HEAD> <TITLE>BBS水木清华站∶精华区</TITLE></HEAD><BODY><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER>发信人: ruster (尘埃*星辰*领悟), 信区: Linux <BR>标 题: 第二章 Linux基础(上) <BR>发信站: BBS 水木清华站 (Thu Dec 21 13:26:00 2000) <BR> <BR> <BR>第2章 Linux基础 <BR> <BR> 本章要点: <BR> <BR> 本章介绍Linux的一些基本概念,特别是文件系统和进程管理的基本知识。 <BR> <BR> 本章具体包括以下内容。 <BR> <BR> LINUX文件系统概述 <BR> <BR> 系统内核概述 <BR> <BR> shell脚本的基本格式 <BR> <BR> UNIX的用户权限和用户账号管理 <BR> <BR> 进程管理的基本概念和操作 <BR> <BR> Linux的发行版本 <BR> <BR> 2.1 文件系统 <BR> <BR> 让我们首先来解释Linux的文件系统概念。我无意将你培养成为职业的系统破坏者,只 <BR>是介绍一些基本概念。特别地,直接操作设备的物理扇区来读写ext2文件系统这样的想 <BR>法让我只要想一下就会脖子发凉,如果你是这方面的专家,请告诉我到底怎么做。 <BR> <BR> 2.1.1 UNIX和树状文件系统 <BR> <BR> <BR> 与普通的UNIX系统一样,Linux使用树状的文件系统。每个系统都有一个根目录,从这 <BR>里开始可以遍历整个系统中的所有文件,它没有驱动器和盘符的概念。 <BR> <BR> 你可能会怀疑在没有驱动器符的情况下Linux如何处理多于一个的磁盘分区,可以看一 <BR>下下面的示意图: <BR> <BR> <BR> <BR> 图2.1 文件系统示例 <BR> <BR> 在我们的例子里,在/下有四个目录,其中,/bin直接和/位于同一个分区中,这个包 <BR>含/的分区称为根分区。除此之外,根分区下还存在三个目录:/home,/mnt和/usr。 <BR> <BR> 在系统中要存放大量的常用文件,例如日常的命令,系统文档等等。我们分划了一个 <BR>独立的分区用来存放这些文件,这个分区被“连接”在/usr目录下,因此要访问分区上 <BR>的文件只要访问/usr目录就可以了。 <BR> <BR> 同样,我们为用户的私人文件开设了一个分区,连接在/home下面,每个用户都可以使 <BR>用自己的目录内的文件(比如:/home/emp1)。但是我们发现有一个目录需要容纳特别 <BR>多的文件,以至于将它单独分区可能会好一些,因此我们又设置了一个独立的磁盘用来 <BR>容纳这些数据,这个磁盘分区被连接到/home/httpd。 <BR> <BR> 这台机器上还包含了一个DOS分区,一个光盘驱动器,另外网络中还有一个服务器提供 <BR>了共享的网络目录,我们把它们全都连接到文件系统之中,不过由于每个目录分支点( <BR>术语叫mount point)只能安装一个文件系统,所以我们在/mnt下面开设了三个目录来连 <BR>接它们。 <BR> <BR> 所有的文件都可以通过目录名加文件名来访问,对于系统来说,具体的每个文件到底 <BR>在那个磁盘或者那个服务器上是无关紧要的,只要了解这个文件所在的目录就行了。Li <BR>nux利用/作为根目录的标志以及目录层之间的分割符,其作用相当于DOS的\。不过与DO <BR>S不同的是,Linux的文件名、目录名命名规则要宽泛的多,可以用相当长的文件名和目 <BR>录名,在文件名和目录名中都可以包含不止一个的句点,而且区分大小写。例如 \test <BR>和\TEST是不同的两个文件。而一个位于/mnt/dos目录下的名为file1的文件其绝对路径 <BR>名就是/mnt/dos/file1。 <BR> <BR> 应该指出的是,“文件系统”这个词在Linux文献中有几种含义,第一种用来描述我们 <BR>这里说的从/开始的系统中所有文件和目录的集合;第二种用来描述如同我们例子里面与 <BR>/usr对应的那个分区那样的可以直接连接到某个目录下的完整集合体,即文件系统的一 <BR>个独立部分;第三种含义是文件系统的具体实现方式,即操作系统如何把这种逻辑的目 <BR>录结构映射成磁盘上的数据。具体的含义很容易根据上下文判断出来,大家可以自己注 <BR>意。 <BR> <BR> 用cd命令可以在不同的目录之间切换,Linux承认绝对路径和相对路径,这个内容对于 <BR>任何熟悉dos的用户都应该是极其简单的,例如从/mnt/dos切换当前路径到/home/httpd <BR>的命令可以是cd /home/httpd,也可以是cd ../../home/httpd。但是必须注意的是,在 <BR>cd命令之后的空格不可省略。 <BR> <BR> 尽管理论上Linux应该自动对文件名进行过滤,但是这方面仍然有一些问题,例如,L <BR>inux允许用减号作为一个文件的起始字母,然而-也用于许多命令后的开关,因此会带来 <BR>一些问题,如果你碰到了类似的问题,有时候使用绝对路径名会解决问题。 <BR> <BR> <BR> 2.1.2 文件类型和文件组织 <BR> <BR> <BR> Linux把许多不同的东西看成文件。在一般情况下,我们会碰到下面类型的文件: <BR> <BR> 普通文件 <BR> <BR> 目录 <BR> <BR> 设备文件 <BR> <BR> 链接 <BR> <BR> 普通文件和目录 <BR> <BR> 普通文件和目录的含义与DOS或者windows下的概念是类似的,普通文件就是一些数据 <BR>的集合,而目录则是包含文件的容器。实际上,目录也是一种特殊的文件,只是它包含 <BR>的内容是文件的存放信息。文件可以用rm命令删除,目录用mkdir命令建立,用rmdir删 <BR>除。 <BR> <BR> 设备文件 <BR> <BR> UNIX设备被当成文件来处理,通常UNIX的设备文件被分成字符设备和块设备,字符设 <BR>备通常是类似于终端那样可以用处理文本文件的方式来处理的东西,例如,Linux在启动 <BR>时打开了六个虚拟终端,分别称为tty1到tty6,这些虚拟终端对应的文件是/dev/tty1到 <BR>/dev/tty6。假设你有超级用户权限,就可以直接向这些TTY上写文本,而这些文本则会 <BR>显示在主机的控制台上。块设备则代表了类似磁盘的东西,如磁盘,CD-ROM或者虚拟驱 <BR>动器。一般情况下,每个块设备还要包含一些子设备,例如,第一个IDE硬盘被称为hda <BR>,但是这个硬盘可以包含多个分区,那么,第一个分区称为hda1,以下依次是hda2,hda <BR>3,….等等。 <BR> <BR> 设备文件用mknod命令建立,用rm命令删除。 <BR> <BR> 链接 <BR> <BR> 链接实际是一种文件别名,每个文件至少应该有一个名字,而如果你需要给文件增加 <BR>一个名字以便访问,那么就需要建立一个链接。链接被分为软链接和硬链接。软链接实 <BR>际上只是一段文字,里面包含着它所指向的文件的名字,系统看到软链接后自动跳到对 <BR>应的文件位置处进行处理;相反,硬联接为文件开设一个新的目录项,硬链接与文件原 <BR>有的名字是平权的,在Linux看来它们是等价的。由于这个原因,硬链接不能连接两个不 <BR>同文件系统上的文件。 <BR> <BR> 链接可以用ln命令创建,例如,在/home/user目录下有一个文件dest,现在需要在/ <BR>tmp目录下建立一个链接以便直接在/tmp下访问它,那么可以用这样的命令: <BR> <BR> ln /home/user/dest /tmp/dest <BR> <BR> 这个操作将会建立一个硬链接,但如果/home/user和/tmp在不同分区上时这个命令将 <BR>会失败。 <BR> <BR> ln –s /home/user /tmp/dest <BR> <BR> 这个命令将建立一个软链接。 <BR> <BR> <BR> 如同其它UNIX Like系统一样,Linux的目录组织经常给人晕头转向的感觉,下面是一 <BR>些基本的目录的说明。注意,理论上你可以更改这些目录的位置和名字,但是这样做很 <BR>可能使一些假定文件“就在哪里”的程序混乱。 <BR> <BR> /:所有目录的“祖先”。 <BR> <BR> /lib:大部分应用程序必须使用的动态连结库文件 <BR> <BR> /usr:绝大部分的东西都在那里,比较复杂的应用程序(/usr/bin,/usr/sbin), <BR>应用程序的附加文件(/usr/lib),应用程序的文档(/usr/doc),应用程序的联机手册 <BR>(/usr/man)。 <BR> <BR> /usr/local:这里是一般的附加软件的安装地点,如果你在安装了Linux之后又试图安 <BR>装新的应用程序包,通常会被安装在这里。 <BR> <BR> /var:这里包含的是一些随着系统运行会不断改变的内容,例如各种记账信息,邮件 <BR>和打印队列等等。许多人建议把它单独构成一个分区。 <BR> <BR> /tmp:临时文件,有必要的话将它独立成一个分区。 <BR> <BR> /dev:Linux用这个目录存放设备文件。 <BR> <BR> /proc:这实际上不是一个磁盘目录,而是用来显示系统的运行状态,在其中包含各 <BR>种虚拟“文件”用来显示系统的当前状况,如进程和CPU等等。 <BR> <BR> /mnt:习惯上在这个目录下开设出各种文件系统的连结点,但你可以随便更改它而不 <BR>会带来任何问题。 <BR> <BR> /home:缺省的非超级用户的宿主目录的所在地点。 <BR> <BR> 2.1.3 使用文件系统 <BR> <BR> 通常,对于服务器,我们在安装的同时就为它设计好了文件系统,特别是如何分区, <BR>某个分区应该连结到哪个目录下等等。但是我们也需要对文件系统进行维护,例如为服 <BR>务器增加一个硬盘,或者解决文件系统混乱的灾难性问题等等。另外,诸如CD-ROM,软 <BR>磁盘,或者服务器上的共享目录等等显然是需要经常更换的,在Linux中,用文件系统的 <BR>安装和拆卸来对付这样的问题。 <BR> <BR> 本节不会涉及那些有关处理文件系统灾难或者建立新的分区之类的问题;这种问题可 <BR>以参考系统配置和日常维护的那两章,这里只是介绍一些基本的知识。 <BR> <BR> 一个文件系统可以连结到已有的Linux系统中,也可以把连结上的文件系统从整个目录 <BR>树中脱离,这是用mount和umount命令实现的。 <BR> <BR> mount命令的格式是 <BR> <BR> mount 开关 分区或者设备名 文件系统连结点 <BR> <BR> 开关是一些命令参数,例如,假定我们需要使用某个软盘上的文件,将它插入驱动器 <BR>A,然后执行 <BR> <BR> mount /dev/fd0 /mnt/floppy <BR> <BR> 然后软盘的文件系统就被挂到/mnt/floppy目录下,相当于dos的a:\file1的文件现在 <BR>的名字是/mnt/floppy/file1。注意mount命令要求在挂接之前连结点(在这个例子中是/ <BR>mnt/floppy)必须存在,否则无法执行。 <BR> <BR> 一般总是把文件系统连结到某个空目录。假如/mnt/floppy目录在连结之前就包含某些 <BR>文件,那么执行上述命令的结果将使/mnt/floppy目录的内容变为软磁盘上的内容,而原 <BR>有的内容在卸掉这个文件系统之前将不可访问。 <BR> <BR> /dev/fd0是与驱动器A对应的设备,相应地驱动器B是/dev/fd1。硬盘的情况比较复杂 <BR>,因为Linux是利用设备接口来描述设备的,例如,第一个IDE接口上的主盘是/dev/hda <BR>,从盘是/dev/hdb,第二个IDE接口上的两个盘是/dev/hdc和/dev/hdd。问题是由于硬盘 <BR>使用的是分区,所以必须使用子设备名,例如,把/dev/hda上的第一个分区连结到/mnt <BR>/diskc上的命令是 <BR> <BR> mount /dev/hda1 /mnt/diskc <BR> <BR> 相应地,第二个分区是/dev/hda2,以此类推 <BR> <BR>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -