Red Hat Linux 7.1完全使用手册

Author: 徐锋 Date: 2001年 60期

    Linux是一套免费使用和自由传播的类Unix操作系统,以其高效性和灵活性著称。它能够在PC计算机上实现全部Unix特性,具有多任务、多用户的能力,主要用于基于Intel x86系列CPU的计算机上。
      而在众多的Linux版本中又以Red Hat公司的Red Hat Linux最为著名,用户最为广泛。本文拟以它的最新版本Red Hat Linux 7.1为例,详细讲述它的使用方法。
  #1    一、Red Hat Linux 7.1新特性简介
      (1)该版本采用最新的Linux 2.4.2版稳定内核,支持更多硬件设备,采用最新的图形系统Xfree86 4.0.3,提供强大的硬件支持;同时引入全图形安装界面,使得安装更为简单。
      (2)该版本显著改进了对多处理器计算机的支持,单处理器计算机最高可支持4GB的用户登陆进程。消除PCI总线限制,进一步扩展了虚拟内存的性能,支持64GB的物理内存。支持更多的用户和用户组,促使调度程序可处理更多的进程。增加和改进了对硬件设备的支持,以及改进了多线程的网络栈性能。
      (3)该版本对移动存储设备提供了出色的支持,包括可“热插拔”USB设备、ZIP驱动器和各种光盘刻录机。另外,还增强了对PCMCIA 设备的支持,这对使用PCMCIA 设备的笔记本电脑的用户来说是非常重要的。
      (4)加入了最新系统配置工具,方便用户管理以及系统调用,例如apacheconf、bindconf 和printconf等,这些工具能方便用户通过GUI图形用户界面来配置Apache、Bind和打印机。
      (5)新版本在安全方面也做了许多修补工作。安全缺省设置可保证端口关闭,新的防火墙屏蔽可由用户随意打开或关闭。
  #1    二、安装指南
      (一)安装硬件需求
      (^60090102a^)
      在Red Hat的官方网站上有一份详细的硬件兼容性列表,你可以通过它获得更详细的信息:http://hardware.redhat.com/hcl/genpage2.cgi?pagename=7.1
      (二)安装Red Hat Linux
      1.从CD-ROM安装
      安装Red Hat Linux7.1,常用的方法就是使用光盘安装。其安装光盘共有两张,第一张可直接从光盘启动,包含大部分的软件包和一些安装工具,第二张光盘则包含许多附加的软件包。
      将第一张光盘放入光驱,使计算机从CD-ROM启动之后即开始自动安装Red Hat Linux。由于其安装过程相对简单,在此不再一一详述。不过有几个地方需要注意:
      (1)选择合适的安装方式
      图形模式:默认方式。整个安装过程的图形界面类似于Windows。不过可能有些显卡无法显示或显示不正常,如果是这样,可以选用文本方式安装。
      文本模式:在提示符状态下输入“text”,回车。即进入文本模式的安装界面,建议有一定经验的用户选用这种方式。
      专家模式:输入“expert”,回车。如果你十分熟悉Linux,或有一些特殊的硬件安装程序无法正确配置,则可考虑使用这种安装方式。
      救援模式:这不是在首次安装时使用的,它仅用于原有的Linux系统无法正常启动的情况下,用来拯救你的系统。
      驱动盘模式:如果你有特殊的硬件驱动盘,需要在安装时提供给Linux系统使用,则输入“linux dd”,回车,安装程序会提示你插入驱动软盘。
      (2)选择合适的安装类型
      安装过程中,Red Hat Linux提供了Workstation、Server、Laptop、Custom、Upgrade Existing五种安装类型,根据具体情况选择。
      Workstation:工作站。安装程序会自动利用空闲空间完成分区工作。但如果你的机器上安装过NT,则不选用这种方式。
      Server System:服务器系统。选用这种方式安装,将会清除整个硬盘的分区信息。如果你是拿空硬盘来构建服务器,建议选用。
      Laptop:为笔记本电脑准备的安装方式。
      Custom System:定制安装。这是最灵活、最安全的安装方式。
      Upgrade Existing System:升级现有系统。若你已安装了旧版本的Red Hat Linux,这是最佳的选择。
      (3)硬盘分区
      Linux最少需要两个分区,一个Linux native(文件)分区,一个Linux swap(交换)分区。其中Linux native分区是存放Linux系统的分区,在分区时应该将“Mount Point”设置为“/”。而Linux swap分区则用做交换空间(内存的补充),建议与内存的大小相等,但最好也不超过128MB。
      (4)LILO的设置
      通常LILO可以安装在:第一硬盘的主引导区(MBR)或Linux分区的引导扇。如果你想使用LILO来做双启动的话,你需要选择第一种,如果是想用Linux启动软盘或其他系统引导器引导Linux,请选择第二种方式,即安装在Linux分区的引导扇。
      (5)选择系统安全等级
      这是Red Hat Linux 7. 1提供的新选项,它提供了三种选择:
      High:如果你选择High级,那么所有来自外界的网络访问都将被禁止。
      Medium:默认的级别,选择该级别,则对于外界的网络访问仅限于该系统提供的网络服务。
      No firewall:最低安全保障,任何外界的网络访问都将被允许。
      (6)软件包的选择
      以下是一张软件包的说明列表:
      (^60090102b^)
      2.其他安装方式
      你还可以通过FTP服务器、NFS服务器、SMB共享卷、硬盘进行安装。如果采用这些安装方式,请首先制作Linux启动盘:
      首先,在安装光盘上找到Linux启动盘映像文件,即/images目录下的boot.img(启动盘)文件;然后从/images、/install或/dosutils目录中找到制作映像盘的工具rawrite.exe;再将映像文件和rawrite.exe拷入同一目录,最后在DOS命令行下执行rawrite命令。
      C:\linst>RAWRITE
      Enter disk image source file name:在这里输入映像文件名
      Enter target diskette drive:在这里输入目标盘符,如A:
      (1)从FTP站点安装
      使用该方式必须与FTP服务器(该FTP服务器还须支持长文件名)高速相连,不能够以拔号连接来安装。
      (2)从NFS服务器安装
      如果在你的局域网中有一台NFS服务器,你可将安装盘复制到NFS服务器上,然后用Linux启动盘启动,访问NFS服务器进行安装。同样,这也需要NFS服务器能够支持长文件名。
      (3)从SMB共享卷安装
      将安装盘放到一个支持共享卷的Windows 9x/NT/2000服务器上,然后通过访问共享卷中的安装盘实现安装。
      (4)从硬盘安装
      这种方式适合于从网上下载了安装文件的用户。首先将Red Hat Linux安装文件拷贝到硬盘同一个分区的Red Hat目录下;然后将要安装的软件包拷贝到另一个子目录RPMS中,接着就可使用Linux的启动盘启动进行系统安装。
  #1    三、Red Hat Linux使用基础
      (一)登录和退出系统
      1. 启动系统
      通常LILO是安装在主引导区(MBR)上的,计算机启动后,主引导区上的程序被执行,将出现一个登录界面:左边是一个小红帽图像,右边列出了可以启动的操作系统,你可以使用键盘箭头进行切换。(安装好后默认值为Linux)
      如果你默认的选择是Windows操作系统,那你可以在启动Linux后,用vi修改/etc目录下的lilo.conf文件,在其中加上“default=windows”命令行,然后再执行“/sbin/lilo”命令即可重新生成新的LILO。
      2. 用户登录
      Linux是一个真正意义上的多用户操作系统,用户要使用该系统,必须首先登录。用户登录系统时,为了使系统能够识别该用户,必须输入用户名和密码,经系统验证无误后才可以登录系统使用。Linux下有两种用户:
      root用户:超级权限者,系统的拥有者。在Linux系统中有且只有一个root用户,它可以在系统中做任何操作。在系统安装时所设定的密码就是root用户的密码。
      普通用户:Linux系统可以创建许多普通用户,并为其指定相应的权限,使其有限地使用Linux系统。
      用户登录时,首先输入用户的登录名,系统根据该登录名来识别用户;然后,输入用户的口令,该口令是用户自己选择的一个字符串,对其他用户完全保密,是登录系统时识别用户的唯一根据,因此每一个用户都应该保护好自己的口令!
      系统在建立之初,仅有root用户,其他的用户则是由root用户创建。由于root用户的权限太大了,所以如果root用户出现误操作将可能造成很大的损失。建议系统管理员为自已新建一个用户,只有需要做系统维护、管理任务时才以root用户登录。
      登录成功,我们将获得Shell(Shell是用来与用户交互的程序,它就象DOS中的Command.com,不过在Linux下可以有多种Shell供选择,如bash、csh、ksh等)提示符,如果以root用户登录的话,那么获得的提示符是“#”,否则将是“$”。
      提示:如果在安装时设置为启动即进入图形界面,则系统启动后,用户登录界面将是图形化的,而且当你输入正确的用户名与密码后,就会直接进入X Window。这个设置是可以修改的,在/etc目录下有一个inittab文件,其中有一行配置:
      id:3:initdefault:
      其中,数字3代表一启动即进入字符终端,如果改为5则代表一启动即进入X Window。
      3. 修改口令
      为了更好地保护用户帐号的安全,Linux允许用户在登录之后随时使用passwd命令修改自己的口令。修改口令需要输入原来的口令,如果口令错误,将中止程序,无法修改口令;输入新的口令,提示重复一遍新的口令,如果两次输入的口令相吻合,则口令修改成功。而如果是root用户修改口令,则不需要输入旧密码。也就是说,它可以修改任何用户的口令。
      4. 退出登录
      不论你是root用户还是普通用户,只需简单地执行exit命令就可以退出登录。
      5. 关闭机器
      在Linux系统中,普通用户是无权关闭系统的。只有root用户才能够关闭它。可以通过以下几种方法实现:
      按下Ctrl+Alt+Del组合键,这样系统将重新启动。
      执行reboot命令,这样系统也将重新启动。
      执行shutdown -h now命令,这样系统将关闭计算机。
      执行halt命令,也可以关闭计算机。
      (二)文件与目录操作
      与其他操作系统一样,在Linux系统下用户的数据和程序也是以文件的形式保存的。所以在使用Linux的过程中,要经常对文件与目录进行操作。
      1. 文件名与文件类型
      文件名是一个文件的标识。Linux系统中文件名的规则与Windows系统中的基本上相同。它同样是由字母、数字、下划线、圆点组成,最大的长度是255个字符。
      与Windows系统一样,Linux系统中也有文件和目录。而在Linux系统中有一种特殊的文件,那就是设备文件。在Linux系统中,每一个I/O设置都映射为一个文件,可以象普通文件一样处理,这就使得文件与设备的操作尽可能统一。从用户的角度来说,对I/O设备的使用和一般文件的使用几乎一样,这样就可以让用户不必了解I/O设备的细节。
      2. 目录结构
      与Windows一样,在Linux中也是通过目录来组织文件的。但不同的是,在Linux下只有一个根目录。如果有多个分区的话,就需要将其他分区mount到根目录。
      大家回忆一下当时为Linux分区时,有一个选项要填,那就是“Mount Point”,我们将其中一个写成了“/”,也就是根目录(这点与Windows相反,一个是“\”,一个是“/”)。其他的则可能是/home、/usr。安装完系统后,你会发现/home、/usr就是根目录下面的home、usr目录。这样,整个分区就用于该目录了。
      另外,需要说明的是,在Linux下“当前目录”、“路径”等概念与Windows下是一样的。
      3. 显示文件内容
      使用过DOS命令的人都应该知道,我们可以使用type命令来查看一个文件的内容。在Linux下有五个相关的命令,功能各有千秋。
      (1)cat命令
      cat命令使用的方法很简单:“cat 文件名”。不过比type命令更强大的是,它可同时查看多个文件,如:“cat 文件名一 文件名二”。
      (2)more命令
      如果文本文件比较长,一屏无法显示完全。我们可以使用more来代替cat命令即可。其效果与type 文件名/p类似。使用more命令将一次显示一屏文本,显示满后,停下来,并提示出已显示全部内容的百分比,按空格键就可以继续显示下一屏。
      (3)less命令
      less命令的功能几乎和more命令一样,也是按页显示文件,不同之处在于less命令在显示文件时允许用户既可以向前又可以向后翻阅文件。
      向前翻:按b键;向后翻:按p键;指定位置:输入百分比;退出:q。
      (4)head命令
      通过head命令可以仅查看某文件的前几行,如果未指定行数,则使用默认值10,即10行。其格式为:head 行数 文件名
      4. 编辑文件
      在Red Hat Linux中有许多文字编辑工具,这里向你推荐vi。vi是Unix系统中使用最广泛的文件编辑器。
      启动vi的方法很简单:直接输入“vi”或直接输入“vi 文件名”命令。
      启动vi时,处于命令状态,不能够输入字符,只能输入命令:
      a:“新增文本”(即Append)命令,执行后将进入输入模式,在当前光标之后新增文本。
      I:“插入文本”(即Insert)命令,执行后将进入输入模式,在当前光标位置处新增文本。
      Dd:“删除一行”命令。
      X:“删除当前字符”命令。
      P:“粘贴”命令,如果你在执行该命令之前,使用了dd或x命令,那么将会把删除的内容粘贴到当前光标位置。
      :q:“退出vi”命令,不过如果在执行这个命令之前修改过内容,则无法退出。
      :q!:“不存盘退出”命令,即是放弃所有的修改,强行退出。
      :w:“存盘”命令。
      :wq:“存盘退出”命令。
      :n(其中n为数字):跳转到文件的第n行,如果超过了总行数,那么将会停到最后一行。
      /pattern(其中pattern是你要查找的内容):如“/default”,就是在文件中查找default字符串。
      当我们使用“a”或“I”命令进行输入模式后,如果要回到命令模式,只需按一下ESC键即可。
      5. 文件查找命令
      Linux下提供了一个强大的文件查找命令find。它的语法格式为:find 起始目录 寻找条件起始目录很容易理解,就是从哪里开始找。下面我们讲一些常用的“寻找条件”:
      -name 字符串:字符串中可以用通配符“*”、“?”,用以寻找文件名与字符串匹配的文件。
      -user 用户名:查找文件属主是指定用户的文件。
      -group 组名:查找文件属主所在的组是指定组的文件。
      -atime 天数:查找在指定天数前被访问的文件。
      -ctime 天数:查找在指定天数前创建的文件。
      -mtime 天数:查找在指定天数前修改过的文件。
      -amin n:查找在n分钟前被访问的文件。
      -cmin n:查找在n分钟前创建的文件。
      -mmin n:查找在n分钟前修改过的文件。
      而且它支持多个条件进行组合(and、or、not):其中用-a表示and(与),用-o表示or(或),用!表示not(非)。如,在全盘查找一个名为a.txt的文件:$ find / -name a.txt;在home目录下查找属于用户xf的所有扩展名为htm的文件:$ find / -name *.htm -a -user xf。
      6. 文件内容查询命令
      在Linux下,还提供了一个强大的文件内容查询命令grep,它可以在一大堆文件中找到特定的字符串,并打印出它所在的行,以及所在的文件。下面,我们通过几个实例来说明grep命令的使用方法:
      列出文件file1中所有的“software develop”字符串:$ grep ′software develop′ file1
      列出在当前目录中所有包含“software develop”字符串的文件:$ grep ′software develop′ *
      列出在当前目录、所有子目录中所有包含“software develop”字符串的文件:$ grep -s ′software develop′ *
      7. 文件的复制、删除与移动
      大家早已熟知在DOS下可以使用copy、del、move命令来实现文件的复制、删除与移动。下面我们说说如何在Linux系统中完成以上操作。
      (1)cp命令:文件/目录复制命令
      它的语法格式为:cp [选项]源文件或目录 目标文件或目录
      常用的选项有:
      a:该选项常在复制目录时使用,它保留链接、文件属性,并递归地复制目录。
      F:如果目标文件或目录已存在,就覆盖它,并且不做提示。
      I:与f选项正好相反,它在覆盖时,会让用户确认。
      P:使用该选项,复制文件时将保留修改时间和访问权限。
      R:若给出的源是一个目录,那么cp将递归复制该目录下所有的子目录和文件,不过这要求目标也是一个目录。
      另外,需要注意的是,如果源是文件名,目标是目录名,那么使用cp命令可以指定多个源文件名。如:$ cp a.txt b.txt /home/user1,该命令将把a.txt和b.txt文件复制到/home/usr1目录中。
      (2)rm命令:文件/目录删除命令
      它的语法格式为:rm [选项]文件 …
      常用的选项有:
      f:在删除过程中不给任何指示,直接删除。
      R:指示rm将参数中列出的全部目录和子目录都递归删除。
      I:交互式的删除,每个文件在删除时都给出提示。
      (3)mv命令:文件/目录移动命令
      它的语法格式为:mv [选项]源文件或目录 目标文件或目录
      常用的选项有:
      f:当操作要覆盖已有的目标文件时不给任何指示。
      I:交互式的操作,当操作要覆盖已有的目标文件时会询问用户是否覆盖。
      Mv命令的执行效果随参数类型的不同而不同。
      (^60090102c^)
      8. 目录操作
      (1)创建新目录:mkdir
      它的使用与DOS下的md相同:mkdir 目录名
      (2)删除空目录:rmdir
      它的使用与DOS下的rd相同:rmdir 目录名
      (3)改变目录:cd
      它的使用与DOS下的cd命令基本相同,唯一不同的是,不管目录名是什么,cd与目录名之间必须有空格,也就是:“cd/”、“cd..”、“cd.”都是非法的,而应该输入:“cd /”、“cd ..”、“cd .”,如果直接输入命令“cd”,而不加任何参数,将回到这个用户的主目录。
      (4)显示当前目录:pwd
      它的使用与DOS下的cd\相同:pwd
      (5)列目录命令:ls
      相当于DOS下的dir,它的语法为:ls [选项][目录或文件]
      常用的选项有:
      a:显示指定目录下所有的子目录与文件,包括隐藏文件。
      C:按文件的修改时间排序。
      L:采用长格式来显示文件的详细信息,每个文件一行信息,其内容为:文件类型与权限、链接数、文件属主、文件属组、文件大小、最近修改时间、文件名
      9. 文件与目录的权限操作
      在Linux系统中,每一个文件和目录都有相应的访问许可权限,我们可以用它来确定谁可以通过何种方式对文件和目录进行访问和操作。文件或目录的访问权限分为可读、可写和可执行三种,分别以R、W、X表示,其含义为:
      (^60090102d^)
      在文件创建时,文件所有者可以对该文件的权限进行设置。
      对于一个文件,可以将其用户分成三种,并对其分别赋予不同的权限:文件所有者、与文件所有者同组用户、其他用户。
      每一个文件或目录的访问权限都有三组,每组用三位表示,如:d-c  rwx  r-x  r--
      第一部分:这里的d代表目录,“-”代表普通文件,“c”代表字符设备文件。第二部分:文件所有者的权限字,这里为“rwx”表示可读、可写、可执行(目录的可执行是指可以进入目录)。
      第三部分:与文件所有者同组的用户的权限字,这里为“r-x”表示可读、不可写、可执行。
      第四部分:其他用户的权限字,这里为“r - -”,不可写,也不可读。
      (1)文件/目录权限设置命令:chmod
      这是Linux系统管理员最常用到的命令之一,它用于改变文件或目录的访问权限。该命令有两种用法:
      ①用包含字母和操作符表达式的文字设定法。其语法格式为:chmod [who] [opt] [mode] 文件/目录名
      其中who表示对象,是以下字母中的一个或组合: u表示文件所有者;g表示同组用户;o表示其他用户;a表示所有用户。
      Opt则是代表操作,可以为: +表示添加某个权限;- 表示取消某个权限;=表示赋予给定的权限,并取消原有的权限。Mode则代表权限: r表示可读;w表示可写;x表示可执行。
      例如:为同组用户增加对文件a.txt的读写权限:chmod g+rw a.txt
      ②用数字设定法。其语法格式为:chmod [mode] 文件名
      这里关键是mode的取值,我们将“rwx”看成二进制数,如果有则为1表示,没有则为0表示,那么“rwx  r-x  r--”则可以表示成为:111 101 100,再将其每三位转换成为一个十进制数,就是754。
      例如,我们想让a.txt这个文件的权限为:
      (^60090102e^)
      那么,我们先根据上表得到权限串为:rw-rw-r--,转换成二进制数就是110 110 100,再每三位转换成为一个十进制数,就得到664,因此我们执行命令:chmod 664 a.txt
      (2)改变文件的属主命令:chown
      语法格式为:chown [选项] 用户名 文件/目录名
      其中最常用的选项是“r”,加上这个参数,可以将整个目录里的所有子目录和文件的属主都改变成指定用户。
      (3)改变文件属组命令:chgrp
      语法格式为:chgrp 组名 文件名
      (三)磁盘管理
      系统软件和应用软件,都要以文件的形式存储在计算机的磁盘空间中,作为系统管理员应随时监视磁盘空间的使用情况。我们可以使用下面两个命令来实现。
      1. Df命令
      [HJ*4]
      df,就是disk free,顾名思义就是检查磁盘上还剩下多少空间等信息。下面是一个使用实例:
      # df
      FileSystem  1k-blocks  Used    Available  Use%  Mounted on
      /dev/hda5   4134900    1749728 2175124    45%   /
      /dev/hda6   6048320    5741092 0          100%  /home
      其中,FileSystem表示硬盘分区;1k-blocks表示按K计算的分区大小;Used表示已经使用的分区大小(按K计算);Available表示还要使用的分区大小;Use%表示已使用的空间所占百分比;Mounted on表示挂接点。如果对以K为计算单位表示硬盘空间不习惯,那么你可以使用df -m,即会得到以M为计算单位的显示结果。
      2. Du命令
      du,就是disk usage,就是看一下磁盘使用了多少。下面是一个使用实例:
      # pwd
      /var/log
      # du
      4    ./uucp
      776 .
      这里使用du命令列出了/var/log目录所占用的磁盘空间。它统计出了该目录有一个子目录:uucp,占用了4K,而/var/log目录下的文件则共有776K。
      该命令还有一些常用的选项,用来完成更多的功能:
      -a将列出当前目录下所有的文件、子目录、子目录下的文件、子目录下的子目录…的磁盘占用情况。
      -b以字节为单位表示占用的磁盘空间。
      -c在最后显示出一个统计值。
      (四)用户管理
      用户管理,主要的工作就是建立一个合法的用户帐户、设置和管理用户的密码、修改用户帐户的属性以及在必要时删除已经废弃的用户帐号。
      1. 增加一个新用户
      在Linux系统中,只有root用户才能够创建一个新用户,下面的命令将新建一个登录名为user1的用户:
      # useradd user1
      但是,这个用户还不能够登录,因为还没为它设置初始密码,而没有密码的用户是不能够登录Linux系统的。在默认情况下,将会在/home目录下新建一个与用户名相同的用户主目录。如果需要另外指定用户主目录的话,可以使用如下命令:
      # useradd -d /home/xf user1
      同时,该用户登录时将获得一个Shell程序:/bin/bash,而假如你不想让该用户登录,也就可以指定该用户的Shell程序为:/bin/false,这样该用户即使登录,也不能够执行Linux下的命令:
      # useradd -s /bin/false user1
      在Linux中,新增一个用户的同时会创建一个新组,这个组与该用户同名,而这个用户就是该组的成员。如果你想让新的用户归属于一个已经存在的组,则可以使用如下命令:
      # useradd -g user user1
      这样该用户就属于user组的一员了。而如果只是想让其再属于一个组,那么应该使用:
      # useradd -G user user1
      完成了这一操作后,你还应该使用passwd命令为其设置一个初始密码。
      2. 删除一个用户
      删除用户,只需使用一个简单的命令“userdel 用户名”即可。不过最好将它留在系统上的文件也删除掉,你可以使用“userdel -r 用户名”来实现这一目的。
      3. 修改用户属性
      在前面我们看到了在新建一个用户的时候如何指定它的用户主目录,如何指定它的Shell,如何设置它所属的组等。在Linux中提供了一个命令来实现:
      usermod -g组名 -G 组名 -d 用户主目录 -s 用户Shell
      4. 增加一个组
      还记得Linux的文件可以为同组的人、非同组的人设置不同的访问权限吗?我们可以根据自己的需要创建用户组:
      groupadd 组名
      5. 删除一个组
      同样地,我们有时会需要删除一个组,命令是:
      groupdel 组名
      6. 修改组成员
      如果我们需要将一个用户加入一个组,只需编辑/etc/group文件,将用户名写到组名的后面。例如将newuser用户加入到softdevelop组,只需找到softdevelop这一行:
      softdevelop:x:506:user1,user2
      然后在后面加上newuser,形成:
      softdevelop:x:506:user1,user2,newuser
      另外,在Red Hat Linux中还提供一个图形化的用户管理工具:userconf,通过它可以更直接地进行用户管理。
      (五)进程管理
      Linux是一个多用户多任务的操作系统。多用户是指多个用户可以在同一时间使用计算机系统;多任务是指Linux可以同时执行几个任务,它可以在还未执行完一个任务时又执行另一个任务。
      所有在Linux系统上运行的内容都可以称之为一个进程。每个用户任务、每个系统管理守护进程,都可以称之为进程。Linux用分时管理方法使所有的任务共同分享系统资源。下面我们就看一下如何控制这些进程。
      1. 启动进程
      在Linux系统中有两种启动进程的方法:
      (1)直接输入命令启动一个进程
      在普通情况下,进程将在前台执行,这时我们无法再执行新的命令;如果我们在命令之后加上一个“&”,则该进程将会放在后台执行,我们仍然可以执行新的命令。
      (2)通过命令启动
      通过at、cron、crontab命令可以像Windows中的计划任务一样定时启动某个进程,大家可以使用“man 命令名”来查询具体的使用方法。
      2. 查看进程
      在Linux系统中,我们可以使用“ps”命令来查看正在运行的进程。例如:列出属于当前用户的进程:
      # ps
      PID TTY TIME CMD
      16767 pts/1 0:00 ps
      18029 pts/1 0:00 bash
      其中PID代表进程ID,TTY代表该进程是由哪个控制台启动的,CMD则是命令。如果你想列出更详细的信息,则可使用命令:“ps -auxw”。
      3. 终止进程
      一个进程在任务完成之后,将会自动完成。如果要中止该进程,有两种方法:
      对于在前台运行的程序,直接通过组合键Ctrl+C就可以中止进程;而对于在后台运行的程序,则需要通过前面介绍的“ps”命令找到它的进程号,然后使用“kill 进程号”来终止该进程。
  #1    四、网络应用
      (一)常用网络命令
      Red Hat Linux 7.1系统提供了与网络相关的工具,掌握好这些工具是十分必要的:
      1.设置工具
      (1)Netcong
      Netcong是Red Hat Linux提供的Linuxconf的一部分,主要用于设置与网络相关的参数。它可以在console下运行(文本菜单),也可以在X Window中运行(图形界面)。它的使用比较简单,在此就不再多说。
      (2)ifconfig
      ifconfig是Linux系统中最常用的一个用来显示和设置网络设备的工具。其中“if”是“interface”的缩写。它可以用来设置网卡的状态,或是显示当前的设置。下面我们简单说明常用的命令组合。
      将第一块网卡的IP地址设置为192.168.0.1:
      ifconfig eth0 192.168.0.1   (格式:ifconfig 网络设备名 IP地址)
      暂时关闭或启用网卡:
      关闭第一块网卡:ifconfig eth0 down
      启用第一块网卡:ifconfig eth0 up
      将第一块网卡的子网掩码设置为255.255.255.0:
      ifconfig eth0 netmask 255.255.255.0(格式:ifconfig 网络设备名 netmask 子网掩码)
      我们也可以同时设置IP地址和子网掩码:
      ifconfig eth0 192.168.0.1 netmask 255.255.255.0
      将第一块网卡的广播地址设置为192.168.0.255:
      ifconfig eth0 -broadcast 192.168.0.255
      将第一块网卡设置为不接收多播数据包:
      ifconifg eth0 allmulti
      如果要让其接收,则使用命令:
      ifconfig eth0 -allmulti
      查看第一块网卡的状态:
      ifconfig eth0
      2.诊断工具
      (1)ping
      ping是一个最常用的检测是否能够与远端机器建立网络通讯连接的命令。
      同样地,在此不罗列ping命令的所有可选参数,而是通过实例来说明一些常用的组合,若需更详细地了解,可以通过www.linuxaid.com.cn网站在线培训的命令查询工具获得。
      检测与某机器的连接是否正常:ping 192.168.0.1或ping www.linuxaid.com.cn。也就是说,我们可以用IP地址或域名来指定机器。
      指定ping回应次数为4:在Linux下,如果你不指定回应次数,ping命令将一直不断地向远方机器发送ICMP信息。我们可以通过-c参数来限定:ping -c 4 192.168.0.1
      (2)traceroute
      如果你ping不通远端服务器,想知道是在什么地方出的问题;或者你想知道你的信息到远端服务器都经过了哪些路由器,可以使用traceroute命令。顾名思义:trace是跟踪,route是路由,也就是跟踪路由。
      使用这个命令很简单:traceroute 远程主机IP地址或域名
      这个命令的输出类似:
      1  路由器(网关)的IP地址   访问所需时间1  访问所需时间2  访问所需时间3
      2  路由器(网关)的IP地址   访问所需时间1  访问所需时间2  访问所需时间3
      …
      其中,最前面的数字代表“经过第几站”;路由器(网关)的IP地址就是该站点的IP地址;访问所需时间1、2、3是指访问到这个路由器(网关)需要的时间。
      (3)netstat
      在Linux系统中,提供了一个功能十分强大的查看网络状态的工具:netstat。它可以让你得知整个Linux系统的网络情况。
      ①统计出各网络设备传送、接收数据包的情况:netstat -I
      这个命令将输出一张表,其中包括:
      Iface:网络接口名
      MTU:最大传输单元
      RX-OK:共成功接收多少个包
      RX-ERR:接收的包中共有多少个错误包
      RX-DRP:接收时共丢失多少个包
      RX-OVR:共接收多少个碰撞包
      TX-OK:共成功发送多少个包
      TX-ERR:发送的包中共有多少个错误包
      TX-DRP:发关时共丢失多少个包
      TX-OVR:共接收多少个碰撞包
      ②显示网络的统计信息:netstat -s
      使用这个命令,将会以摘要的形式统计出IP、ICMP、TCP、UDP、TCPEXT形式的通信信息。
      ③显示TCP传输协议的网络连接情况:netstat -t
      这个命令的输出也是一张表,其中包括:
      Local Address:本地地址,格式是IP地址:端口号
      Foreign Address:远程地址,格式也是IP地址:端口号
      State:连接状态,包括LISTEN、ESTABLISHED、TIME_WAIT等。
      ④只显示使用UDP的网络连接情况:netstat -t
      ⑤显示路由表:netstat -r
      这个命令与route命令的输出相同。
      (二)网络服务访问限制
      在Red Hat Linux 7.1中加强了对网络中不安全因素的防范,如果你安装时安全等级不是在最低一级的话,那么本机之外的所有访问都可能被拒绝。这是因为在Red Hat Linux 7.1中做了一些默认的ipchains设置,这是Linux内置的防火墙机制,它可以使用一些规则来允许或禁止某种访问。
      它的规则存放在/etc/sysconfig/ipchains文件中,如果你想让它暂时不生效,那你可以运行/etc/rc.d/init.d/ipchains stop,那么所有的规则都被取消,所有的网络访问都将被允许。
      你可以运行/etc/rc.d/init.d/ipchains status来获知现在对网络访问的限制。关于这方面的知识,本文限于篇幅无法详细介绍。
      (三)通过MODEM拔号上网
      在Linux下,我们也可以通过MODEM拔号上网。MODEM是串行设备,外置的需要连到一个串口上,内置的自带一个串口。在Red Hat Linux 7.1中,串口设备的命令与DOS的关系如下:
      COM1        /dev/ttyS0
      COM2        /dev/ttyS1
      ……
      通常情况下,我们是无需设置MODEM的,只需要对MODEM对应的端口进行操作就可以了。1. 在字符界面下
      (1)拔号上网
      可以使用拔号工具dip进行手动拔号上网。下面就是一个实际的例子(其中汉字部分是笔者加上去的注解,黑体字部分是输入的内容)。
      $ dip -t    执行Dip进行手动拔号
      DIP:Dialup IP Protocol Driver version 3.3.7o-url(8 Feb 96)
      written by Fred N.van Kempen,MicroWait Corporation.
      DIP> port ttyS1    输入MODEM的端口号
      DIP> speed 38400    输入MODEM的传输速度
      DIP> term    进入终端状态
      [Entering TERMINAL mode. Use CTRL-] to get back]
      atdt163    输入ISP电话号码
      CONNECT 38400/ARQ
      #######################
      PPP
      SLIP
      Telnet
      END
      #######################
      我们选择PPP协议
      Packet mode enabled for IP address:202.101.103.23    PPP动态分配的IP
      [Back to LOCAL mode.]
      DIP> get $remote 202.101.103.23
      DIP> get $local 127.0.0.0
      DIP> get $mtu 1006
      DIP> default
      DIP> mode ppp
      至此,Linux已经与Internet连接上了。
      (2)终止拔号
      要终止拔号是十分简单的:$ dip -k 
      2. 在X Window下
      对于习惯了使用图形界面的Windows用户而言,这些晦涩的命令行操作,可能会让你感觉太难用,别急,现在我们就介绍一种图形化的拔号上网软件kppp。使用它拔号上网很简单:
      运行Kppp:先点击“K”按钮,选择Internet,然后选择“Kppp”;单击Kppp面板上的“Setup”按钮,然后单击“New…”按钮,进行“Accounts”的设置;选择“Device”进行相应的设置(选择MODEM设备,设置速率);设置完成后,按“OK”按钮退出,返回“Kppp”主画面;填入“Login ID”和“Password”,再按“Connect”按钮,就可以开始拔号了,拔号成功了,会在任务条上出现一个MODEM似的小图标,就像Windows中的网络连接示意图标一样。开始冲浪吧!
  #1    五、架设服务器
      1.WEB服务器
      在Linux系统中最适合于做服务器的当数Apache,Red Hat Linux 7.1中集成了Apache 1.3.19版,你只要在安装时选中WEB服务器,那么系统将自动完成Apache服务器的安装,在默认情况,WWW服务就已经启动了。
      如果你在安装时没有选择WEB服务器包,那也没有关系,只需执行以下命令即可:
      将Red Hat Linux 7.1安装光盘的第一张放入光驱,然后执行如下命令:# mount /mnt/cdrom
      转到apache安装文件所在目录:# cd /mnt/cdrom/RedHat/RPMS
      使用RPM完成安装:# rpm -ivh apache-1.3.19-5.i386.rpm
      现在,你就已经拥有一个基于Linux的WEB服务器了,它的配置文件位于/etc/httpd/conf目录下,你可根据需要进行相应的修改,修改完后执行:/etc/rc.d/init.d/httpd restart即可。而WEB服务的主目录则在/var/www/html目录下,你可将你的WEB页传到这里进行更新。
      如果每一个用户都想要拥有一个自己的主页:
      首先在自己的用户主目录下建一个public_html目录:
      # cd 
      # mkdir public_html
      然后将自己的用户主目录的权限改为可读:# chmod 755 用户主目录
      这样你就可以使用“localhost/~用户名/”命令访问到每个用户的主页了。
      2.FTP服务器
      在Red Hat Linux 7.1中集成了Wu-FTP 2.6.1作为FTP服务器,安装系统时你只要选择了FTP,那么你的Linux服务器就是一台FTP服务器了,如果当时没有安装的话,也没有关系,跟安装Apache一样:
      将Red Hat Linux 7.1安装光盘的第一张放入光驱,然后执行如下命令: # mount /mnt/cdrom
      转到wu-ftp安装文件所在目录:# cd /mnt/cdrom/RedHat/RPMS
      使用RPM完成安装:# rpm -ivh wu-ftp-2.6.1-16.i386.rpm
      由于FTP服务是由xinetd超级服务器创建的,所以关于FTP服务器的配置在/etc/xinetd.d目录下的wu-ftpd文件中:
      service ftp
      {
        sZocket_type=stream
        wait=no
        user=root
        server=/usr/sbin/in.ftpd
        server_args=-l -a
        log_on_success+=DURATION USERID
        log_on_failure+=USERID
        nice=10
        disable=no
      }
      3.文件服务器
      我们还可以使用Red Hat Linux 7.1内置的Samba为局域网内的Windows主机做文件服务器。如果在安装系统时选择了SMB服务器软件包的话,那么安装完以后,Samba服务就已经准备好了。不过为了方便配置,建议安装swat,它提供了一个WEB界面的配置工具。其安装包是第二张光盘的/RedHat/RPMS/samba-swat-2.0.7-36.i386.rpm。安装完以后,它会在xinetd.d目录中新建一个swat文件,其内容为:
      service swat
      {
        port=901
        socket_type=stream
        wait=no
        only_from=127.0.0.1
        server=/usr/sbin/swat
        log_on_failure+=USERID
        disable=yes
      }
      我们看到disable的值是yes,也就是说,现在swat还没有启用,因此,我们需要将其改为disable=no,然后重启xinted。另外,由于这里有一句:only_from=127.0.0.1,这说明只能在本机使用swat,如果你想在Windows中用IE来配置的话,请将这句注释掉或删掉。
      下面,我们以设置一个大家都可以访问的homes目录为例,说明SWAT的设置方法:
      打开IE浏览器,在地址栏上输入Linux的主机名或IP以及“:901”,例如:http://192.168.0.1:901;如果连接正常,将出一个登录提示窗,要求输入用户名与密码,在此以root为用户名,并输入root用户的密码,再单击确定;如果输入无误,将出现Samba的配置界面——Swat的首页,我们可以看到在Swat界面中,最上面有7个图标,单击GLOBALS(全局设置)图标,将出现GLOBALS设置页面,其中我们对以下几项进行设置:
      BaseOption→Workgroup:在此输入工作组名(如NetBIOS中的工作组名)。
      BaseOption→Netbios name:主机名。
      SecurityOption→Security:选择安全等级,在此选择“SHARE”。
      SecurityOption→hosts allow:允许的主机,通常写入你的网络号,如192.168.0.0。
      SecurityOption→hosts deny:如果你不让某台机器使用,则写入它的IP地址。
      修改完后,点击“Commit Changes”按钮,保存设置。然后,单击SHARES(共享设置)图标,进行共享设置:
      第一步,在“Create Share”按钮的右边文本框中输入要设置的共享名;
      第二步,单击“Create Share”按钮;
      第三步,确认“BaseOptions→Path的值为你想共享的目录,例如/home/smb/test(注意这必须是已经存在的目录);
      第四步,将“SecurityOptions→writeable”的值设置为Yes,使该目录共享为可写;
      第五步,将“SecurityOptions→guest ok”的值设置为Yes,使该目录无需密码访问;
      第六步,在“SecurityOptions→hosts allow、hosts deny”中设置相应的主机IP;
      第七步,将“BrowseOptions→browseable”设置为Yes,使其便于使用。
      最后,点击“Commit Changes”按钮,保存设置。
      现在,我们就可以在Windows 9x上通过网络邻居访问到这台Samba服务器,并且具有一个可读、可写的共享目录。
      在平时使用时,系统管理员可以点击“STATUS”(状态)图标,切换到状态页面对其进行监测,在这个页面上,你可以:启动(Start smbd按钮)、停止Samba(Stop Smbd按钮)服务,以及重启服务(Restart smbd按钮);另外,你可以看到当前与Samba服务器建立的连接(Active Connections),并且可以按下“X”按钮,中止它的访问;同时你还可以检测到正在访问的文件夹(Active Shares),正打开的文件(Open Files)。
      Samba服务还可以对用户进行认证,与Window NT域进行集成等强大的功能,在此限于篇幅就不详细介绍。
      4.代理服务器
      如果你的Linux系统能够访问Internet,而局域网中的机器都无法访问Internet,那么我们可以在这台Linux服务器上构建一个代理服务器,使局域网中所有的机器都能够使用WEB浏览器访问Internet。
      (1)安装Squid
      在Red Hat Linux 7.1安装光盘中一个叫squid的软件,它是一个功能强大的HTTP代理服务器,如果在安装时没有选择的话(用rpm -q squid查询),则将第二张光盘mount上来,然后执行:
      $ rpm -ivh /RedHat/RPMS/squid-2.3.STABLE4-10.i386.rpm
      就可以完成安装了。然后根据自己的需要,修改/etc/squid/squid.conf文件。
      [HJ*5](2)设置代理端口号
      代理端口的默认值是3128,你可以根据自己的需要进行修改。它的设置语句是:
      http_port  3128
      (3)添加访问控制组
      为了更好地管理,我们应该将用户分成一个个访问控制组。比如你公司的内部网有两个网段192.168.200.0和192.168.201.0,那么我们可以在/etc/squid/squid.conf文件中添加:
      acl all src 0.0.0.0/0.0.0.0     所有的网络
      acl company1 src 192.168.200.0/255.255.255.0    部门一
      acl company2 src 192.168.201.0/255.255.255.0    部门二
      (4)设置每个访问控制组的权限
      假设,我们只需要为网段192.168.201提供代理服务,那么我们就在配置文件中添加:
      http_access allow company2
      http_access deny company1
      http_access deny all
      (5)重新启动squid,使配置生效
      /etc/rc.d/init.d/squid restart
      (6)在客户端做相应的设置
      然后在局域网机器上的WEB浏览器上做相应的设置。下面就是在IE中的设置实例:
      打开IE,在菜单栏上选择“工具→Internet选项→连接→局域网设置”,在出现的对话框中,选择“使用代理服务器”选项,并填上代理服务器的IP地址及代理端口号即可。