正在处理您的请求... element block and removes // previous instances of the identical script. var found = false; for (var child = 0; child < head.childNodes.length; child++) { var control = head.childNodes[child]; if (control.tagName.toUpperCase() == "SCRIPT") { if (script.src.length > 0) { if (script.src == control.src) { found = true; break; } } else if (script.innerHTML.length > 0) { if (script.innerHTML == control.innerHTML) { found = true; break; } } } } if (found) { head.removeChild(control); } // Now we append the new script and move on to the next script. // Note that this is a recursive function. It stops when the // index grows larger than the number of scripts. document.getElementsByTagName('head')[0].appendChild(script); if (typeof script.readyState != "undefined") { script.onreadystatechange = function() { if (script.readyState != "complete" && script.readyState != "loaded") { return; } else { Anthem_LoadPageScript(result, index + 1); } } } else { Anthem_LoadPageScript(result, index + 1); } } } catch (e) { Anthem_DebugError("Error adding page script to head. " + e.name + ": " + e.message); } } } function Anthem_EvalClientSideScript(result) { if (result.script) { for (var i = 0; i < result.script.length; ++i) { try { eval(result.script[i]); } catch (e) { alert("Error evaluating client-side script!/n/nScript: " + result.script[i] + "/n/nException: " + e); } } } } function Anthem_DebugRequestText(text) { } function Anthem_DebugResponseText(text) { } function Anthem_DebugError(text) { } //Fix for bug #1429412, "Reponse callback returns previous response after file push". //see http://sourceforge/tracker/index.php?func=detail&aid=1429412&group_id=151897&atid=782464 function Anthem_Clear__EVENTTARGET() { var form = document.getElementById(Anthem_FormID); Anthem_SetHiddenInputValue(form, "__EVENTTARGET", ""); } function Anthem_InvokePageMethod(methodName, args, clientCallBack, clientCallBackArg) { Anthem_Clear__EVENTTARGET(); // fix for bug #1429412 return Anthem_CallBack(null, "Page", null, methodName, args, clientCallBack, clientCallBackArg, true, true); } function Anthem_InvokeMasterPageMethod(methodName, args, clientCallBack, clientCallBackArg) { Anthem_Clear__EVENTTARGET(); // fix for bug #1429412 return Anthem_CallBack(null, "MasterPage", null, methodName, args, clientCallBack, clientCallBackArg, true, true); } function Anthem_InvokeControlMethod(id, methodName, args, clientCallBack, clientCallBackArg) { Anthem_Clear__EVENTTARGET(); // fix for bug #1429412 return Anthem_CallBack(null, "Control", id, methodName, args, clientCallBack, clientCallBackArg, true, true); } function Anthem_PreProcessCallBack( control, e, eventTarget, causesValidation, validationGroup, imageUrlDuringCallBack, textDuringCallBack, enabledDuringCallBack, preCallBackFunction, callBackCancelledFunction, preProcessOut ) { preProcessOut.Enabled = !control.disabled; var preCallBackResult = true; if (preCallBackFunction) { preCallBackResult = preCallBackFunction(control); } if (typeof(preCallBackResult) == "undefined" || preCallBackResult) { var valid = true; if (causesValidation && typeof(Page_ClientValidate) == "function") { valid = Page_ClientValidate(validationGroup); } if (typeof(WebForm_OnSubmit) == "function") { valid = WebForm_OnSubmit(); } if (valid) { var inputType = control.getAttribute("type"); inputType = (inputType == null) ? '' : inputType.toUpperCase(); if (inputType == "IMAGE" && e != null) { var form = document.getElementById(Anthem_FormID); if (e.offsetX) { Anthem_SetHiddenInputValue(form, eventTarget + ".x", e.offsetX); Anthem_SetHiddenInputValue(form, eventTarget + ".y", e.offsetY); } else { Anthem_SetHiddenInputValue(form, eventTarget + ".x", e.clientX - control.offsetLeft + 1); Anthem_SetHiddenInputValue(form, eventTarget + ".y", e.clientY - control.offsetTop + 1); } } if (imageUrlDuringCallBack || textDuringCallBack) { if (control.nodeName.toUpperCase() == "INPUT") { if (inputType == "CHECKBOX" || inputType == "RADIO" || inputType == "TEXT") { preProcessOut.OriginalText = GetLabelText(control.id); SetLabelText(control.id, textDuringCallBack); } else if (inputType == "IMAGE") { if (imageUrlDuringCallBack) { preProcessOut.OriginalText = control.src; control.src = imageUrlDuringCallBack; } else { preProcessOut.ParentElement = control.parentElement ? control.parentElement : control.parentNode; if (preProcessOut.ParentElement) { preProcessOut.OriginalText = preProcessOut.ParentElement.innerHTML; preProcessOut.ParentElement.innerHTML = textDuringCallBack; } } } else if (inputType == "SUBMIT") { preProcessOut.OriginalText = control.value; control.value = textDuringCallBack; } } else if (control.nodeName.toUpperCase() == "SELECT") { preProcessOut.OriginalText = GetLabelText(control.id); SetLabelText(control.id, textDuringCallBack); } else { preProcessOut.OriginalText = control.innerHTML; control.innerHTML = textDuringCallBack; } } control.disabled = (typeof enabledDuringCallBack == "undefined") ? false : !enabledDuringCallBack; return true; } else { return false; } } else { if (callBackCancelledFunction) { callBackCancelledFunction(control); } return false; } } function Anthem_PreProcessCallBackOut() { // Fields this.ParentElement = null; this.OriginalText = ''; this.Enabled = true; } function Anthem_PostProcessCallBack( result, control, eventTarget, clientCallBack, clientCallBackArg, imageUrlDuringCallBack, textDuringCallBack, postCallBackFunction, preProcessOut ) { if (postCallBackFunction) { postCallBackFunction(control); } control.disabled = !preProcessOut.Enabled; var inputType = control.getAttribute("type"); inputType = (inputType == null) ? '' : inputType.toUpperCase(); if (inputType == "IMAGE") { var form = document.getElementById(Anthem_FormID); Anthem_RemoveHiddenInput(form, eventTarget + ".x"); Anthem_RemoveHiddenInput(form, eventTarget + ".y"); } if (imageUrlDuringCallBack || textDuringCallBack) { if (control.nodeName.toUpperCase() == "INPUT") { if (inputType == "CHECKBOX" || inputType == "RADIO" || inputType == "TEXT") { SetLabelText(control.id, preProcessOut.OriginalText); } else if (inputType == "IMAGE") { if (imageUrlDuringCallBack) { control.src = preProcessOut.OriginalText; } else { preProcessOut.ParentElement.innerHTML = preProcessOut.OriginalText; } } else if (inputType == "SUBMIT") { control.value = preProcessOut.OriginalText; } } else if (control.nodeName.toUpperCase() == "SELECT") { SetLabelText(control.id, preProcessOut.OriginalText); } else { control.innerHTML = preProcessOut.OriginalText; } } if (clientCallBack) { clientCallBack(result, clientCallBackArg); } } function Anthem_FireCallBackEvent( control, e, eventTarget, eventArgument, causesValidation, validationGroup, imageUrlDuringCallBack, textDuringCallBack, enabledDuringCallBack, preCallBackFunction, postCallBackFunction, callBackCancelledFunction, includeControlValuesWithCallBack, updatePageAfterCallBack ) { var preProcessOut = new Anthem_PreProcessCallBackOut(); var preProcessResult = Anthem_PreProcessCallBack( control, e, eventTarget, causesValidation, validationGroup, imageUrlDuringCallBack, textDuringCallBack, enabledDuringCallBack, preCallBackFunction, callBackCancelledFunction, preProcessOut ); if (preProcessResult) { Anthem_FireEvent( eventTarget, eventArgument, function(result) { Anthem_PostProcessCallBack( result, control, eventTarget, null, null, imageUrlDuringCallBack, textDuringCallBack, postCallBackFunction, preProcessOut ); }, null, includeControlValuesWithCallBack, updatePageAfterCallBack ); } } function AnthemListControl_OnClick( e, causesValidation, validationGroup, textDuringCallBack, enabledDuringCallBack, preCallBackFunction, postCallBackFunction, callBackCancelledFunction, includeControlValuesWithCallBack, updatePageAfterCallBack ) { var target = e.target || e.srcElement; if (target.nodeName.toUpperCase() == "LABEL" && target.htmlFor != '') return; var eventTarget = target.id.split("_").join("$"); Anthem_FireCallBackEvent( target, e, eventTarget, '', causesValidation, validationGroup, '', textDuringCallBack, enabledDuringCallBack, preCallBackFunction, postCallBackFunction, callBackCancelledFunction, true, true ); } function GetLabelText(id) { var labels = document.getElementsByTagName('label'); for (var i = 0; i < labels.length; i++) { if (labels[i].htmlFor == id) { return labels[i].innerHTML; } } return null; } function SetLabelText(id, text) { var labels = document.getElementsByTagName('label'); for (var i = 0; i < labels.length; i++) { if (labels[i].htmlFor == id) { labels[i].innerHTML = text; return; } } } //]]> </script> <script src="/WebResource.axd?d=1wkz58Z1rsBL-eFHJPld5ERhyO-4qXtUzHp7Q1KwrOE1&t=632963535947587500" type="text/javascript"></script> <script type="text/javascript"> </script>admin管理员组文章数量:1664590
|
Linux新手入门教程(精华版)
1994年,Young和Mark Ewing创建了Red Hat公司,并创造了全球使用最广泛的Red Hat Linux套件,为Linux的普及立下了汗马功劳,笔者也是跟随着Red Hat的带领?w:w呓鳯inux世界的。Red Hat取得了辉煌的成绩,甚至许多Linux发行公司还采用了许多Red Hat Linux的代码,如Mandrake、SOT Best、Connectiva、Abit和Kondara。可以说,Red Hat在某种意义上几乎成了Linux的代名词。 (摘抄自 http://www.linuxeden)
第1章:系统简介
第2章:安装指南 ______________________________________________________________________ 2.1 安装前的准备 1、收集系统资料:为了能够顺利安装和设置Linux系统,你必须将以?w:w柿霞锹荚诎福员赶低嘲沧笆笔褂茫? 硬盘:数量, 容量和类型; 内存:您的计算机所装内存的数量; CD-ROM:接口类型(IDE, SCSI); SCSI卡:卡的型号; 网卡:网卡的型号; 鼠标:鼠标的类型(串口、PS/2、总线型),协议(Microsoft,Logitech, MouseMan, 等等),按键的数量,对串口鼠标还要知道它接在哪个串口; 显示卡:显示卡的型号(或者它用的芯片组), 显示内存的数量;(大多数PCI总线的显卡可以被安装程序自动识别.) 显示器:型号,以及水平和垂直刷新频率的范围。 你可以用Windows的控制面板 -> 设备管理器来获取相应资料,当然还可以查阅相应的随机资料。 2、检查CMOS设置: Anti vrius: Disable 关闭该选项,防止安装时死机,因为安装程序要写主引导扇。 Swap A,B:Disable 以免启动时可能出现问题。 Boot Sque:CDROM,A,C 让计算机从光盘启动。 Memory Hole : Disable 若未关闭,则LINUX只能识别16M内存。 3、了解LINUX的硬盘分区的命名设计与文件系统知识: Linux安装至少要两个分区:Linux native(文件)分区和Linux Swap(交换)分区。主分区用作存放LINUX的文件,交换分区为运行LINUX时提供虚拟内存。 交换分区每个16~32M,最多可以有8个,具体可根据内存的多少来决定。一般来说,建一个16M的交换分区就可以了。 文件分区则根据需要和硬盘大小来决定,一般来说不应少于200M。 由于我们接触最多的是DOS操作系统,所以大多数人都习惯于使用类似于//'C://'的符号来标识硬盘分区,但这在LINUX却不是这样。Linux的命名设计比其他操作系统更灵活,能表达更多的信息。Linux通过字母和数字的组合来标识硬盘分区,如“hda1”,其具体含义是:分区名的前头两个字母表明分区所在设备的类型,例如hd指IDE硬盘,sd(指SCSI硬盘);第三个字母分区在哪个设备,按a,b,c,d的顺序排列,如hda是IDE 1口的主硬盘,则IDE 2口的主硬盘就应该是hdc了;最后的数字在该设备上的分区顺序,前四个分区(主分区或扩展分区)用数字1 到4表示, 逻辑分区从5开始, 例如: hda3表示第一个IDE硬盘上的第三个主分区或扩展分区。 在Linux的文件系统中,不论有几个文件分区,全部集合于一个树形的目录结构中。比如说,你可以将某个分区指定给/(根目录)使用,某个分区指定给/usr目录使用,然而但你进入Linux系统后,你根本感觉不到他们在不同的分区中,你只是感觉都在一棵树上。不过如果你只有一个文件分区,一定要给/(根目录)使用。 4、为硬盘作好安装LINUX的准备: 一般说来,大家电脑上的硬盘跟我一样已经全部用于MS-DOS/WIN操作系统的分区。为了能够安装LINUX,只好为LINUX重新分配硬盘空间。我立马把朋友的硬盘借来,数据统统备份下来,再重装系统。不过有三种可供选择的方法: 1) 将MSDOS下的最后一个逻辑盘上的数据全部移到其它分区中,将该逻辑盘用分区工具删除,将这部分空间给LINUX使用。 2) 重新将硬盘分区,这是最直接和最麻烦的一种方法。具体操作如下: . 备份用户的文件 . 用MS-DOS系统盘启动系统 . 用FDISK删除原有分区,重建新的分区,将分配给LINUX的空间留下来不分配给任何一个分区 . 重新安装原来的用户系统 3) 利用一些分区工具在不删除硬盘原有数据的情况?w:w匦路智H绶智跏Φ取? 2.2 从CDROM安装Red Hat Linux 7.1 我们可以通过光盘、硬盘、网络安装Red Hat Linux 7.1系统,最常见的方法就是使用光盘安装。使用光盘安装无外乎就是三个要求: 1) 你的主板支持光盘启动 2) 你有光驱 3) 你有Red Hat Linux 7.1安装光盘 通常情况下,这是没问题的。笔者也建议您使用光盘安装,这样是这简单的。随着Linux系统下的应用软件逐渐增多,一张光盘已无法容纳,Red Hat Linux 7.1安装光盘有两张,第一张可以直接从光盘启动,包含了大部分的软件包和一些安装工具。第二张光盘则是许多附加的软件包。不过这次与以往不同的是,Red Hat公司专门进行了改进,安装程序可以从多个光盘读取资料。安装的时候,你就会发现中途提示你更换第二张光盘。现在我们就一起开始Red Hat Linux 7.1安装之旅。 第一步:选择安装模式 塞入第一张光盘,让计算机从CDROM启动,将会出现了简洁的欢迎信息。这时可以选择不同的安装模式: 1) 图形模式:直接按回车即可,整个安装过程就象Windows一样,而且可以使用鼠标操作。不过此时的Red Hat好象对显卡很挑剔,有的出现屏幕太大,找不到按钮,有的则根据无法显示图形界面。如果是这样,你可以按下热启动键重选文本模式进行安装。 2) 文本模式:输入text,再按回车。就会进入文本模式的安装界面,有一定经验的人还是使用这种方式比较好。 3) 专家模式:输入expert,再按回车。在这种情况下,安装程序就好象没有脑子一样,所有的东西都要您来决策。除非你十分熟悉Linux,并且有一些特殊的硬件安装程序无法正确配置,否则不要使用这种方式。 4) 救援模式:这不是在首次安装时使用的,它仅是用于原有的Linux系统无法正常启动的情况下使用。这种方式下,你将进入一个微型的Linux系统,并且提供了许多恢复Linux的工具供你使用。 5) 驱动盘模式:如果你有特殊的硬件驱动盘,需要在安装时提供给Linux系统使用,则你就输入“linux dd”,再按回车,安装程序会提供机会让你插入驱动软盘。 建议使用文本模式进行安装。 第二步:选择语言 Red Hat Linux 7.1提供了18种不同的语言,可惜还是没有中文,只能选择“english”。然后继续。 注:Red Hat公司已在近期推出了中文版,大家可以找来试一试。 第三步:选择键盘 在此选择us,继续。 注:笔者试过在Red Hat Linux 7.1下使用罗技公司的Logitech iTouch无线键盘,那么普通的104键盘更不会有问题了。 第四步:选择安装方式 Red Hat Linux 7.1提供了Workstation,Server,Laptop,Custom,Upgrade Existing(分别是工作站,服务器,笔记本电脑,用户自定义,升级老版本)这五种安装方式。我们可以根据自己的实际需要来选择安装方式。 1) Workstation:工作站方式。对于一般用户建议使用此方式。工作站类型安装将会清除掉所有硬盘上原有的所有Linux分区,对于非Linux分区(如Windows 98)会置之不理。这种方式安装十分简单,而且如果你的机器上如果原来有Windows 98的话,安装完后,会自动完成LILO双启动的配置。但是,如果你的机器上原来是NT的话,那就千万不要使用这种方式,否则你的NT可能再也无法启动。 2) Server System:服务器系统方式。警告:采用这种方式安装,将会干掉所有硬盘上所有分区的一切信息。这绝对不是开玩笑!许多初学者已经付出了血与泪的代价。通常在你需要在一台空PC上构建一台网络服务器,才选择它。 3) Laptop:便携机、笔记本方式。笔顾名思义,当你在笔记本电脑上安装时,建议采用该方式。 4) Custom System:定制安装。对于Linux有一定了解的朋友,建议使用该方式,自由地构建Linux。在下第一次安装Linux的时候就勇敢地采用了这种方式。 5) Upgrade Existing System:升级现有系统。假设你的硬上有老版本的Red Hat Linux的话,这是你最佳的选择。 建议使用“定制安装”。 第五步:进行硬盘分区 首先,会让你选择不同的分区工具:Disk Druid和fdisk,建议使用Disk Druid。 在Disk Druid的主界面的最上面是//'Current Disk Partitions//'区,列出各个硬盘分区的信息。每行由五个项目组成:Mount Point -- 指定该分区对应的Linux系统目录;Device -- 硬盘分区的设备名;Requested -- 分区定义时申请的最小空间;Actual -- 当前分配给这个分区的空间;Type --分区类型。 而中间的是//'Drive Summaries//'区,一行对应一个物理硬盘,每行由六个项目组成:Drive -- 硬盘的设备名;Geom [C/H/S] -- 硬盘的物理信息,包括柱面、 磁头和扇区的数量;Total -- 硬盘所有可用空间;Used -- 硬盘已分配空间;Free -- 硬盘未分配空间;Bar Graph -- 硬盘已用空间表示图。 最下面的是Disk Druid的按钮区,由五个按钮组成:Add -- 申请一个新的分区; Edit -- 修改在//'Current Disk Partitions//'区中选中的分区的属性;Delete -- 删除//'Current Disk Partitions//'区中选中的分区;Ok -- 确认分区操作,重写硬盘分区表;Back -- 不保存修改而退出,回到前一个屏幕,重新开始。 我建议为Linux分一个根分区,一个交换分区(建议64M、128M或256M),即: 用Tab选择Add钮,按回车,这时屏幕上将会出现一个题为//'Edit New Partition//'的对话框。首先我们在Mount Point项中,输入这个分区所对应的系统目录:“/”(根目录);接着在Size(Megs)项中,输入分区的大小;在Type这一项中用光标上、下键键选择适当的分区类型,我们选中Linux的文件分区Linux native;最后按OK确认。这样我们就成功地建立起一个为Linux所用的分区了。当然如果你的硬盘空间允许,你完全可以再建立一个或几个分区给Linux使用。接着用同样的方法给Linux增加一个交换分区,不同的仅在于Mount Point项让它空着,在Type项目中选择Linux Swap。 注:如果你在前面选择的是图形界面安装的话,将会提供一个图形化的分区界面,使用起来也是很方便的,而且还可以使用自动分区的办法。让安装程序自已创建分区。 在做这一步时需要谨慎,不要不小心删掉原来的分区,那就惨了。确认没有错后,按OK按钮继续。然后根据提示将新的Linux分区格式化,以便使用。 第六步:LILO配置 LILO,就是Linux Loader,即Linux引导器,它负责启动Linux操作系统。我们可以通过配置它实现双启动。首先,安装程序会让你填写有什么内核参数需要传给LILO,通常是不需要的。接着,会询问你要将LILO安装在什么位置,通常有两种选择:1)第一硬盘的主引区(MBR);2)Linux分区的引导扇。 如果你想使用LILO来做双启动的话,你需要选择第一种,如果是想用Linux启动软盘或其它系统引导器引导Linux的话,那就选择第二种。 第七步:设置主机名 随便为你的机器取一个名字。 第八步:选择系统安全等级 这也是Red Hat Linux 7. 1提供的新选项,它提供了三种选择: 1) High:如果你选择High级,那么所有来自外界的网络访系问都将被禁止; 2) Medium:默认的级别,选择该级别,则对于外界的网络访问仅限于该系统提供的网络服务; 3) No firewall:最低的安全保障,任何外界的网络访问都将被允许。 第九步:常用选项设置 接着,设置鼠标、选择你需要支持的语言种类(注意,这里是提供了中文支持的哟),以及时区(图形界面下应点China,而在文本模式下则应选择PRC)。 第十步:用户设置 1) 首先设置系统管理员(就是root用户)密码,系统管理员是系统的最高权限者,拥有该系统,所以这个密码是十分重要的; 2) 接着安装程序提供了一个增加用户的工具,你可以通过这个工具很轻松地添加系统用户。 3) 最后是关于用户认证的配置: a. Shadow Passwords:默认是选中的,请不要修改。该功能是用来保护密码安全的; b.使用MD5密码加密:默认也是选中的,请不要修改,它也是保护密码安全的; c.使用NIS:当你要通过网络上的NIS服务器进行用户验证时,请填写相关信息; d.使用LDAP:当你要通过网络上的LDAP服务器进行用户验证时,填写相关信息; e.使用Kerberos:当你要使用Kerberos系统进行用户验证时,填写相关信息; 第十一步:选择软件包 这一步是安装过程中最重要的一步,你可以根据提示选择你需要的软件。安装程序将所有的软件分成了许多类: Printer Support:打印机支持 X Window System:X Window系统 GNOME:桌面管理器GNOME KDE:桌面管理器KDE Mail/WWW/News Tools:一些收发Mail、WEB浏览、新闻阅读的常用工具 DOS/Windows Connectivity:提供DOS和Windows的兼容工具 Graphics Manipulation:图形操作软件 Games:游戏软件 Multimedia Support:多媒体支持软件 Laptop Support:笔记本电脑专用的支持软件 Networked Workstation:网络工作站工具,如Telnet、FTP等客户端 Dialup Workstation:拔号上网工具 News Server:新闻服务器 NFS Server:网络文件系统服务器 SMB(Samba)Server:Samba(就是NetBIOS协议)服务器系统 IPX/Netware™ Connectivity:IPX协议支持软件 Anonymous FTP Server:匿名FTP服务器 SQL Server:postgresql 与MySQL数据库服务器 Web Server:WEB服务器(Apache) DNS Name Server:域名服务器 Network Management Workstation:网管工作站,提供一些SNMP支持 Authoring/Publishing:出版方面的软件 Emacs:著名的集成编辑软件 Development:开发工具包 Kernel Development:内核开发包,包括内核源程序 Utilities:一些常见工具,如Linuxconf Everything:所有软件包,如果你的Linux分区足够大(2400M以上),那么你可以选中它,将所有的软件都装上。 注:在选择界面之下,有一个选项,选中时它会列出详细的软件安装列表,你还可以进行一些选择。 选择完要安装的软件包后,系统会自己进行软件包依赖检查,接着就开始了文件的拷贝。这时你可以休息一下了。不过与以前不一样,拷贝到一半时,需要你更换光盘! 第十二步:制作启动盘 安装完成之后,会提示你制作一张Linux启动软盘。虽然不是很有用,但是对于初学者而言还是做一张备用为好。因此在以下情况时,能够用得上: 1) 准备将LILO放在Linux分区中,可以通过软盘引导Linux; 2) 装在MBR上的LILO程序在安装Windows时被覆盖,则可以使用这张软盘引导,再运行“/sbin/lilo”,重新往MBR上写LILO程序; 3) 当系统崩溃时,可以使用Linux启动软盘启动,做一些恢复。 第十三步:拷贝文件 接下来就是历时最长,也是最核心的过程:拷贝文件。Linux安装程序将你所选择的软件包通通拷贝到硬盘分区中。要注意的是,在安装过程中是需要你换第二张光盘的。 第十四步:配置显卡/X Window 接下来,安装程序将自动检测你的显卡、显示器,由于Red Hat Linux 7.1采用了最新的XFree86 4.0,所以对显示卡的支持更好了,大部分显卡都可以被识别,由于无法识别的话,那就只好等安装完以后再配置了。 如果你的显卡、显示器都幸运地被识别,那么安装程序将要求你选择图形界面的分辨率,如果你的显卡很好,那就选择800*600*24位色或1024*768*24位色,象我使用的显卡太老,就只好选择800*600*16位色。你也可以选择多种(启动后,可以使用Ctrl+Alt +和-来切换)。 设置完分辨率后,安装程序将测试X Window,如果你的选择正常的话,那么你可以看到漂亮的X Window,那你也就可以轻松地按OK,表示确定。 按下OK按钮后,安装程序会询问你的Linux系统是否一启动就进入X Window,默认为“是”。不过我是不喜欢,在此选择了“NO”,这样启动Linux后将进入字符状态,需要X Window时再执行startx命令手动启动。 好,到此大功告成,Red Hat Linux 7.1将提示你取出光盘,重新启动电脑,带着小红帽子的企鹅落户你家了。 注:Red Hat Linux 7.1在第一次启动时将会自己运行一个叫Kudzu的程序,用来完成一些硬件添加操作,通常是网卡和声卡。操作十分简单,你只需选择Configure按钮,系统会帮助你完成这些硬件的配置工作。 2.3 其它安装方式简介 如果你没有光驱的话,那么你还可以通过以下几种方式来完成安装: 1) 从FTP站点安装 2) 从NFS服务器安装 3) 从SMB共享卷安装 4) 从硬盘安装 1.制作Linux启动盘 如果采用这些安装方式,那你首先得制作两张Linux启动盘。 1) 在安装光盘上找到LINUX启动盘的映象文件,/images目录下的boot.img(启动盘)和supp.img(扩展盘)这两个文件。 2)从/images、/install或/dosutils目录中找到制作映象盘的工具RAWRITE.EXE。 3)将映象文件和RAWRITE.EXE拷入同一目录,然后在DOS命令行?w:w葱蠷AWRITE: C:linst>RAWRITE Enter disk image source file name:在这里输入映象文件名 Enter target diskette drive:在这里输入目标盘符如A: 2.从FTP站点安装 要使用这种方式安装必须满足以下条件之一: 1) 你的机器与存放着安装盘的FTP服务器以局域网形式相连; 2) 在你的局域网的FTP服务器上有安装盘。 要注意,你的FTP服务器必须支持长文件名,才可能成功安装。你需要使用Linux的启动盘和扩展盘启动,并配置有效的域名服务器或指定FTP服务器的IP地址,进行安装。 3.从NFS服务器安装 如果在你的局域网中有一台NFS服务器的话,你可以将安装盘复制到NFS服务器上,然后用Linux的启动盘启动,访问NFS服务器进行安装M模庖残枰狽FS服务器能够支持长文件名。 4.从SMB共享卷安装 将安装盘放到一个支持共享卷的Windows 9x/NT/2000服务器上,然后使用Linux启动盘与扩展盘启动,通过访问共享卷中的安装盘实现安装。 5.从硬盘安装 这种方式适合于从网上下载了安装盘的用户,首先,你可以将Red Hat Linux包文件拷贝到您的硬盘: 1) 所有的文件都要放在一个硬盘分区上; 2) 将所有的内容放在RedHat目录下; 3) 然后将要安装的包拷贝到另一个子目录RPMS 接着就可以使用Linux的启动盘与扩展盘启动进行系统安装。 第3章:Red Hat Linux 7.1使用基础 __________________________________________________________________________ 3.1 登录和退出系统
用户管理,主要的工作就是建立一个合法的用户帐户、设置和管理用户的密码、修改用户帐户的属性以及在必要时删除已经废弃的用户帐号。 1. 增加一个新用户 在Linux系统中,只有root用户才能够创建一个新用户,如下的命令将新建一个登录名user1的用户。 # useradd user1 但是,这个用户还不能够登录,因为还没给它设置初始密码,而没有密码的用户是不能够登录系统的。在默认情况下,将会在/home目录下新建一个与用户名相同的用户主目录。如果需要另外指定用户主目录的话,那么可以使用如下命令: # useradd -d /home/xf user1 同时,该用户登录时将获得一个Shell程序:/bin/bash,而假如你不想让这个用户登录,也就可以指定该用户的Shell程序为:/bin/false,这样该用户即使登录,也不能够执行Linux下的命令: # useradd -s /bin/false user1 在Linux中,新增一个用户的同时会创建一个?w:w椋飧鲎橛敫糜没飧鲇没Ь褪歉米榈某稍薄H绻阆肴眯碌挠没Ч槭粲谝桓鲆丫嬖诘淖椋蚩梢允褂萌缦旅睿? # useradd -g user user1 这样该用户就属于user组的一员了。而如果只是想让其再属于一个组,那么应该使用: # useradd -G user user1 完成了这一操作后,你还应该使用passwd命令为其设置一个初始密码。 2. 删除一个用户 删除用户,只需使用一个简单的命令“userdel 用户名”即可。不过最好将它留在系统上的文件也删除掉,你可以使用“userdel -r 用户名”来实现这一目的。 3. 修改用户属性 在前面我们看到了在新建一个用户的时候如何指定它的用户主目录,如何指定它的Shell,如何设置它所属的组…等等。在Linux中提供了一个命令来实现: usermod -g组名 -G 组名 -d 用户主目录 -s 用户Shell 还有一种直接的方法,那就是修改/etc/passwd文件,在这个文件中每个用户占用一行,它的内容为: 用户名:密码:用户ID:组ID:用户全名:用户主目录:用户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,通过它可以更直接地进行用户管理。 3.4 进程管理 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. 终止进程 一个进程在任务完成之后,将会自动完成。如果要中途中止该进程的话,有两种方法: 1) 对于在前台运行的程序,直接通过组合键CTRL+C就可以中止进程; 2) 而对于在后台运行的程序,则需要通过前面介绍的ps命令找到它的进程号,然后使用“kill 进程号”来终止该进程。 3.5 磁盘管理 系统软件和应用软件,都要以文件的形式存储在计算机的磁盘空间中,做为系统管理员应随时监视磁盘空间的使用情况。我们可以使用下面两个命令来实现: 1. df命令 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 共显示了6列信息: 1) FileSystem:硬盘分区 2) 1k-blocks:按K计算的分区大小 3) Used:已经使用的分区大小(按K计算) 4) Available:还要用的分区大小 5) Use%:已使用的空间所占百分比 6) Mounted on:挂接点 可以看到/home是另一个分区,现在空间已经用完了!这都时当时没有规划好! 如果对与以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 在最后显示出一个统计值 3.6 软件安装 在Red Hat Linux下,应用软件的安装包通常有两种格式: 1) rpm包,如software-1.2.3-1.i386.rpm。它是Redhat Linux创造的一种包封装格式。 2) tar包,如software-1.2.3-1.tar.gz。它是使用UNIX系统的打包工具tar打包的。 而且,大多数Linux应用软件包的命名也有一定的规律,它遵循: 名称-版本-修正版-类型 例如: sfotware-1.2.3-1.i386.rpm 软件名称:software 版本号:1.2.3 修正版本:1 可用平台:i386,适用于Intel 80x86平台。 类型:rpm,说明是一个rpm包。 根据Linux应用程序软件安装包中的内容不同可以分为:: 1) 是可执行文件,也就是解开包后就可以直接运行的。在Windows中所有的软件包都是这种类型。安装完这个程序后,你就可以使用。不过下载时要注意这个软件是否是你所使用的平台,否则将无法正常安装。 2) 另一种则是源程序,也就解开包后,你还需要使用编译器将其编译成为可执行文件。这在Windows系统中是几乎没有的,因为Windows的思想是不开放源程序的。 通常,用tar打包的,都是源程序;而用rpm打包的则常是可执行程序。 1.搞定使用rpm打包的应用软件 rpm可谓是Redhat公司的一大贡献,它使Linux的软件安装工作变得更加简单容易。 1) 安装: 我只需简单的一句话,就可以说完。执行: rpm -ivh rpm软件包名 更高级的,请见下表: rpm参数 参数说明 -i 安装软件 -t 测试安装,不是真的安装 -p 显示安装进度 -f 不管任何错误 -U 升级安装 -v 检测套件是否正确安装 这些参数可以同时采用。更多的内容可以参考RPM的命令帮助。 2) 卸载: 我同样只需简单的一句话,就可以说完。执行: rpm -e 软件名 不过要注意的是,后面使用的是软件名,而不是软件包名。例如,要安装software-1.2.3-1.i386.rpm这个包时,应执行: rpm -ivh software-1.2.3-1.i386.rpm 而当卸载时,则应执行: rpm -e software。 2. 搞定使用tar打包的应用软件 1) 安装: 整个安装过程可以分为以下几步: Ø 取得应用软件:通过下载、购买光盘的方法获得; Ø 解压缩文件:一般tar包,都会再做一次压缩,如gzip、bz2等,所以你需要先解压。如果是最常见的gz格式,则可以执行:“tar -xvzf 软件包名”,就可以一步完成解压与解包工作。如果不是,则先用解压软件,再执行“tar -xvf 解压后的tar包”进行解包; Ø 阅读附带的INSTALL文件、README文件; Ø 执行“./configure”命令为编译做好准备; Ø 执行“make”命令进行软件编译; Ø 执行“make install”完成安装; Ø 执行“make clean”删除安装时产生的临时文件。 好了,到此大功告成。我们就可以运行应用程序了。但这时,有的读者就会问,我怎么执行呢?这也是一个Linux特色的问题。其实,一般来说,Linux的应用软件的可执行文件会存放在/usr/local/bin目录下!不过这并不是“放四海皆准”的真理,最可靠的还是看这个软件的INSTALL和README文件,一般都会有说明。 2) 卸载: 通常软件的开发者很少考虑到如何卸载自己的软件,而tar又仅是完成打包的工作,所以并没有提供良好的卸载方法。一般都提供 make uninstall 来卸载软件的。 第4章 X Windows __________________________________________________________ 4.1 X Windows简介 要想成为一套优秀的操作系统,除了性能稳定、功能齐全之外,还应该拥有一个友好的操作系统,否则只会呆在研究室里,难以普及。 在UNIX系统下,大多都是采用X Window做为图形界面的。1984年,麻省理工学院与DEC制定了Athena计划,这就是X Window 第一个版本。1988年1月成立了一个非盈利性的X联盟,负责制定X Window的标准。在Linux出现后,Xfree86 Project Inc.基于Linux实现了一个开源的X Window系统:XFree86。 X Window与其他的图形界面系统相比,有几个特点: Ø 良好的网络支持:X Window采用了C/S网络结构,程序间可以通过网络来通信,而且有良好的网络透明性,也就是说用户不需知道程序在使用远端主机资源。 Ø 个性化的窗口界面:X Window并未对窗口界面作统一性的规范,程序员可以根据需求自行设计,其中最有名的就是后面要介绍的GNOME与KDE。 Ø 不内嵌于操作系统:X Window只定义了一个标准,而不属于某个操作系统,因此可在不同的操作系统上运行相同的X Window软件。 整个X Window由三个部分组成: Ø X Server:主要是控制输出及输入设备的程序,并维护相关资源,它接收输入设备的信息,并将其传给X Client,而将X Client传来的信息输出到屏幕上。所以不同的显卡就需要选择不同的X Server,在配置X Window时最主要的就是配置X Server Ø X Client:它才是应用程序的核心部分,它是与硬件无关的,每个应用程序就是一个X Client Ø X protocol:X Client与X Server之间的通信语言就是X protocol 为了使得X Window更加易于使用,各个不同的公司与组织都针对其做了许多集成桌面环境。如AIX上的CDE,SUN的OpenServer,而在Linux下则主要是GNOME与KDE的双雄会。下面我们就一起来了解一下它们。 4.2 GNOME简介 GNOME最初是由墨西哥的程序设计师Miguel De Icazq发起的,它受到了Red Hat公司的大力支持。它现在属于GNU(GNU is Not UNIX)计划的一部分,主要目的是希望能够为用户提供一个完整、易学易用的桌面环境,并为程序设计师提供强大的应用程序开发环境。 1997年8 月,为了克服KDE所遇到的QT许可协议和单一C++依赖的困难,以墨西哥的Miguel de Icaza为首的250程序员就开始了一个新项目,完全从头开始,这就是GNOME。经过14个月的共同努力,终于完成了这个工程。现在GNOME已得到了占Linux 市场份额最大发行商Red Hat 的支持,拥有了大量应用软件,包括文字处理软件Go,电子表格软件Gnumeric,日历程序GNOMEcal,堪与PhotoShop 媲美的图形图像处理软件Gimp 等。 现在GNOME与KDE成为了两大竞争阵营,必将使得Linux更加易于使用。 GNOME中还提供了大量的应用软件,它们都放在GNOME的“开始”(一个小脚丫)à Programs中,包括了许许多多的应用软件,下面就是其中的一些: 1. Applications:应用软件 1) Dia:一个工程图编辑器,适用于绘制电路图; 2) Calendar:一个集日历与日程表于一身的好工具; 3) Address Book:一个通讯录 4) GEdit:一个功能类似于Windows下的记事本的文本编辑器; 5) Gnumeric:Linux下的一个类似于EXCEL的电子表格软件; 6) Time tracking tools:一个用于提醒时间的小工具; 2. Games:游戏软件 1) Gnome Milnes:GNOME下的扫雷; 2) Gnibbles:贪吃蛇游戏; 3) Freecell:Windows下的空当接龙游戏; 3. Graphics:图形处理软件 1) Electric Eyes:一个十分优秀的图形处理软件,可谓GNOME下的AcdSee呀! 2) XPDF:一个在Linux阅读PDF文档的工具; 3) The Gimp:一个十分优秀的绘图软件,与Photoshop很象! 4. Internet:Internet应用软件 1) Dialup Configuration Tool:一个界面十分友好的拔号上网设置工具; 2) gFTP:一个FTP客户端 3) pine:一个E-Mail客户端软件 4) Netscape :大名鼎鼎的浏览器软件,被微软从Windows平台挤下来的 5) RH Network monitor:网络流量显示 5. Multimedia:多媒体软件 1) Audio Mixer:声音控制器 2) CD Player:CD播放器 3) XMMS:与Winamp是一个模子里出来的 4.3 KDE简介 KDE项目在1996年10月发起的,其目的是在X-Window上建立一个完整易用的桌面环境。KDE现在除了拥有KFM(类似于IE4.0)、KPresenter(类似PowerPoint)、KIllustrator(类似CorelDraw或 Illustrator)等重量级软件,还有体贴用户的GUI配置软件可以帮助用户配置Unix/Linux,使其深受使用者欢迎。 但由于KDE是基于由TrollTech公司开发的Qt程序库的,所以也受到了许多批评。虽然Qt本身作为一基于C++的跨平台开发工具是非常优秀,但可惜的是它不是自由软件。Qt的License允许任何人使用Qt编写免费软件及免费拷贝给其他用户使用,但如果利用Qt编写非免费软件则需要购买他们的License。更重要的是任何人都不可以随意修改Qt源代码。如果TrollTech公司更改Qt License、公司倒闭或给人收购等都会令KDE前功尽弃。 在KDE中,也有许许多的应用软件,它们被分组放在“开始”(一个K字)菜单中,说实在的,我感觉KDE的软件应用比GNOME更多,图形界面也更好。 1. Office:办公软件 这就是大名鼎鼎的Koffice套件。 1) Kword:字处理软件 2) Kspread:象Excel的电子表格处理软件 3) Kpresenter:一个类似于PowerPoint的演示软件 4) Kchart:一个电子图表软件 5) Kiiiustrator:一个电子出版软件 2. Develop:开发工具 1) Kdevelop:一个KDE下的集成开发环境 3. Applications:应用软件 1) Advanced Editor:一个增强型的文本编辑软件 2) Emacs:这是一个功能强大的编辑软件,在GNOME中也有,它的原形是字符终端下的Emacs 3) Organizer:一个日程安排软件 4. Internet:Internet软件 1) Kppp:一个十分友好的拔号上网配置工具 2) Kmail:一个十分漂亮的Email 客户端,有点象Outlook! 3) Chat Client:一个IRC客户端 4) KPPPLoad:一个网络流量工具 5) Netscape:大名鼎鼎的WEB浏览器,在GNOME中也有集成 4.4 使用窗口管理器 Red Hat Linux 7.1默认安装后,X Window将使用GNOME做为窗口管理器,除非你在安装时将GNOME去掉,而选择了KDE包。通常我们可以将这两个包都安装上,到使用的时候再选择。 1) 在字符终端?w:w葱幸韵旅睿蛞院骕 Window的窗口管理器都成了KDE: # switchdesk KDE 2) 如果你又不想使用KDE了,则可以使用以下命令转回GNOME: # switchdesk GNOME 4.5 汉化Red Hat Linux 7.1 1.安装 TrueType 字体 要在系统里使用中文TrueType字体,最好先禁用xfs字体服务器, xfs在启动时会自动更?w:w痔迥柯枷碌膄onts.dir文件,这样会影响到我们所作的修改。 以root身份登陆,然后执行setup工具,在Service中关闭xfs。 1)修改XF86Config-4 配置文件 进入/etc/X11目录,用vi编辑XF86Config-4文件,如下进行相应的修改: Section "Files" # FontPath "unix/:7100" ;注释掉这一行,加入下面的几行 FontPath "/usr/X11R6/lib/X11/fonts/misc:unscaled" FontPath "/usr/X11R6/lib/X11/fonts/75dpi:unscaled" FontPath "/usr/X11R6/lib/X11/fonts/100dpi:unscaled" FontPath "/usr/X11R6/lib/X11/fonts/misc" FontPath "/usr/X11R6/lib/X11/fonts/Type1" FontPath "/usr/X11R6/lib/X11/fonts/Speedo" FontPath "/usr/X11R6/lib/X11/fonts/75dpi" FontPath "/usr/X11R6/lib/X11/fonts/100dpi" FontPath "/usr/X11r6/lib/X11/fonts/TrueType" EndSection Section "Module" Load "dbe" # Double-buffering Load "GLcore" # OpenGL support Load "dri" # Direct rendering infrastructure Load "glx" # OpenGL X protocol interface Load "extmod" # Misc. required extensions Load "v4l" # Video4Linux Load "xtt" ;加入这一行 EndSection 2)获取字体文件simsun.ttf 新建一个目录:/usr/X11R6/lib/X11/fonts/TrueType ,然后将Windows所在的分区mount上来,然后将simsum.ttf复制到该目录。 3)生成字体列表 cd /usr/X11R6/lib/X11/fonts/TrueType # ttmkfdir>fonts.dir # vi fonts.dir 修改字体列表文件,使其与下面类似 simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-p-0-ascii-0 simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-p-0-fcd8859-15 simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-p-0-iso8859-1 simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-p-0-gb2312.1980-0 simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-p-0-koi8-r #cp fonts.dir fonts.scale 4)修改 gtk 的字体定义 # vi /etc/gtk/gtkrc.zh_CN 修改后的内容如下: style "gtk-default-zh-cn" { fontset = "-misc-SimSun-medium-r-normal--14-*-*-*-*-*-*-*" } class "GtkWidget" style "gtk-default-zh-cn" 2.安装中文输敕–hinput 3.0.1 1)首先下载以下几个软件包: Chinput-3.0.1-1.i386.rpm pth-1.3.7-3.i386.rpm unicon2-im.tar.gz 2)然后安装: # rpm -ivh pth-1.3.7-3.i386.rpm # rpm -ivh Chinput-3.0.1-1.i386.rpm --nodeps # cp unicon2-im.tar.gz /usr/lib # cd /usr/lib # tar vfxz unicon2-im.tar.gz # rm unicon2-im.tar.gz # ln -s libstdc++-2-libc6.1-1-2.9.0.so libstdc++-libc6.1-2.so.3 3)修改Chinput的一些配置 # cd /usr/lib/ZWinPro # vi Chinput.ad 修改以下几个地方 ... chinput.gblocale=zh_CN.gb2312 chinput.big5locale=zh_CN.gb2312 ... chinput.gbfont=-misc-SimSun-medium-r-normal--14-*-*-*-*-*-gb2312.1980-0 chinput.big5font=-misc-SimSun-medium-r-normal--14-*-*-*-*-*-gb2312.1980-0 ... (注意:在这个文件里不能出现空格,只能用 Tab 代替) 4)修改~/.bashrc文件,新增以下几行: export LC_ALL=zh_CN.GB2312 export LANG=zh_CN.GB2312 export XMODIFIERS=@im=Chinput 3.汉化 GNOME 重启后,执行startx时,你在GNOME中就可以显示中文了。紧接着,你可以通过在Program->设定->Session->Startup Programs里面把chinput加入启动运行程序里面就完成了 GNOME的中文环境和输入法的安装了。 4.汉化 KDE 如果是KDE系统,则打开 Preferences->Personalization->Country & Language,选择中文,再打开 Look & Feel->Fonts,选择相应的字体,并把字符集改成gb2312.1980-0。最后再打开桌面上的 Autostart 目录,新建一个应用程序( Chinput )的连接,以后每次启动后就可以使用中文输入法了. 第5章:网络应用 __________________________________________________________________________ 5.1 常用网络命令 在Red Hat Linux 7.1系统提供了与网络相关的工具,掌握好这些工具是十分必要的: 第一类:设置工具 1conf: netconf是Red Hat Linux提供的Linuxconf的一部分,主要用于设置与网络相关的参数。它可以在consle下运行(文本菜单),也可以在X-Window中运行(图形界面)。在前面,我们介绍过了netconf的一些应用,它的使用比较简单,只要认识上面的英文就可以了,所以在此就不再多说。BTW,如果你设置好了X-Window的话,用用图形界面的netconf,会更漂亮的哟。 2.ifconfig ifconfig是Linux系统中最常用的一个用来显示和设置网络设备的工具。其中“if”是“interface”的缩写。它可以用来设备网卡的状态,或是显示当前的设置。 下面我们简单地说明常用的命令组合: 1) 将第一块网卡的IP地址设置为192.168.0.1: ifconfig eth0 192.168.0.1 (格式:ifconfig 网络设备名 IP地址) 2) 暂时关闭或启用网卡: 关闭第一块网卡:ifconfig eth0 down 启用第一块网卡:ifconfig eth0 up 3) 将第一块网卡的子网掩码设置为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 4) 将第一块网卡的广播地址设置为192.168.0.255: ifconfig eth0 -broadcast 192.168.0.255 5) 将第一块网卡设置为不接收多播数据包: ifconifg eth0 allmulti 如果要让其接收,则使用命令:ifconfig eth0 -allmulti 6) 查看第一块网卡的状态: ifconfig eth0 如果要查看所有的网卡状态,则直接使用不带参数的ifconfig命令即可。 ifconfig输出的状态信息是十分有用的,下面,我们就简单说明一下: 有几个状态比较重要: Ø UP/DOWN:网卡是否启动了,如果是DOWN的话,那肯定无法用的; Ø RX packets中的errors包的数量如果过大说明网卡在接收时有问题; Ø TX packets中的errors包的数量如果过大说明网卡在发送时有问题; 3.route route命令是用来查看和设置Linux系统的路由信息,以实现与其它网络的通讯。要实现两个不同的子网之间的网络通讯,需要一台连接两个网络路由器或者同时位于两个网络的网关来实现。 在Linux系统中,我们通常设置路由是为了解决以下问题:该Linux机器在一个局域网中,局域网中有一个网关,能够让你的机器访问Internet,那么我们就需要将这台机器的IP地址设置为Linux机器的默认路由。 1) 增加一个默认路由: route add 0.0.0.0 gw 网关地址 2) 删除一个默认路由: route del 0.0.0.0 gw 网关地址 3) 显示出当前路由表 route 第二类:诊断工具 1.ping ping是一个最常用的检测是否能够与远端机器建立网络通讯连接。它是通过Internet控制报文协议ICMP来实现的。而现在有些主机对ICMP进行过滤,在这种特殊的情况下,有可能使得一些主机Ping不通,但能够建立网络连接。这是一种特例,在此事先说明。 同样的,在此不罗列ping命令的所有可选参数,而是通过实例来说明一些常用的组合,需要更详细地了解的,可以通过 http://www.linuxaid网站在线?..畈檠ぞ呋竦谩?/a> 1) 检测与某机器的连接是否正常: ping 192.168.0.1 ping www.linuxaid 也就是说,我们可以用IP地址或域名来指定机器。 2) 指定ping回应次数为4: 在Linux下,如果你不指定回应次数,ping命令将一直不断地向远方机器发送ICMP信息。我们可以通过-c参数来限定:ping -c 4 192.168.0.1 3) 通过特定的网卡进行ping: 有时,我们需要检测某块网卡(系统中有多块)能否ping通远方机器。我们需要在执行ping命令时指出: ping -I eth0 192.168.0.1 2.traceroute 如果你ping不通远方的机器,想知道是在什么地方出的问题;或者你想知道你的信息到远方机器都经过了哪些路由器,可以使用traceroute命令。顾名思义:trace是跟踪,route是路由,也就是跟踪路由。 使用这个命令很简单: traceroute 远程主机IP地址或域名 这个命令的输出类似: 1 路由器(网关)的IP地址 访问所需时间1 访问所需时间2 访问所需时间3 2 路由器(网关)的IP地址 访问所需时间1 访问所需时间2 访问所需时间3 ……… 1) 最前面的数字代表“经过第几站”; 2) 路由器(网关)的IP地址就是“该站”的IP地址; 3) 访问所需时间1、2、3是指访问到这个路由器(网关)需要的时间。 3stat 在Linux系统中,提供了一个功能十分强大的查看网络状态的工具:netstat。它可以让您得知整个Linux系统的网络情况。 1)统计出各网络设备传送、接收数据包的情况: 使用命令:netstat -i 这个命令将输出一张表,其中包括: Iface:网络接口名 MTU:最大传输单元 RX-OK:共成功接收多少个包 RX-ERR:接收的包中共有多少个错误包 RX-DRP:接收时共丢失多少个包 RX-OVR:共接收了多少个碰撞包 TX-OK:共成功发送多少个包 TX-ERR:发送的包中共有多少个错误包 TX-DRP:发磅时共丢失多少个包 TX-OVR:共接收了多少个碰撞包 2)显示网络的统计信息 使用命令:netstat -s 使用这个命令,将会以摘要的形式统计出IP、ICMP、TCP、UDP、TCPEXT形式的通信信息。 3)显示出TCP传输协议的网络连接情况: 使用命令:netstat -t 这个命令的输出也是一张表,其中包括: Local Address:本地地址,格式是IP地址:端口号 Foreign Address:远程地址,格式也是IP地址:端口号 State:连接状态,包括LISTEN、ESTABLISHED、TIME_WAIT等。 4)只显示出使用UDP的网络连接情况: 使用命令:netstat -t 输出格式也是一样的。 5)显示路由表: 使用命令:netstat -r 这个命令的输出与route命令的输出相同。 5.2 网络配置文件 在Red Hat Linux 7.1中有一些用于存放网络配置的文件: 1./etc/hosts 在该文件中存放的是一组IP地址与主机名的列表,如果在该列表中指出某台主机的IP地址,那么访问该主机时将无需进行DNS解析。 2./etc/host.conf 该文件用来指定域名解析方法的顺序,如: order hosts,bind 它说明,首先通过/etc/hosts文件解析,如果在该文件中没有相应的主机名与IP地址的对应关系,再通过域名服务器bind进行解析。 3./etc/resolv.conf 在该文件中存放域名服务器的IP地址。 4./etc/protocols Red Hat Linux 7.1系统使用该文件辨别本主机使用的,并通过它完成协议和协议号之间的映射,用户不应修改该文件。 5./etc/services 该用户用于定义现有的网络服务,用户无需修改它,它通常由安装网络服务的程序来维护。该文件包括网络服务名、网络端口号和使用的协议类型,其中网络端口号和使用的协议类型之间有一个斜杠分开,在设置行的最后还可以添加一些服务的别名。 5./etc/xinetd.d目录 在Linux系统中有一个超级服务程序inetd,大部分的网络服务都是由它启动的,如chargen、echo、finger、talk、telnet、wu-ftpd等…,在7.0之间的版本它的设置是在/etc/inetd.conf中配置的,在Red Hat 7.0后,它就改成了一个xinetd.d目录。 在xinetd.d目录中,每一个服务都有一个相应的配置文件,我们以telnet为例,说明一下各个配置行的含义: service telnet { socket_type=stream wait=no user=root server=/usr/sbin/in.telnetd log_on_failure+=USERID disable=yes } 第一行,说明该配置用来设置telnet服务。 第二行,说明Socket连接类型是stream,也就是TCP 第三行,是指不等待到启动完成 第四行,是指以root用户启动服务进程 第五行,是指服务进程是/usr/sbin/in.telnetd 第六行,是用于做一些出错日志 第七行,是指禁止远方telnet,如果需要开放则将该配置改为:disable=no 修改了xinetd的配置,需要重启xinetd才能够生效,有两种方法可以实现: 1) 执行如下命令: /etc/rc.d/init.d/xinetd restart 2) 执行如下命令: killall -HUP xinetd 5.3 网络服务访问限制 在Red Hat Linux 7.1中加强了网络安全的防范,如果你安装时安全等级不是在最低一级的话,那么本机之外的所有访问都可能被拒绝。这是因为在Red Hat 7.1中做了一些默认的ipchains设置,这是Linux内置的防火墙机制,它可以使用一些规则来允许或禁止某种访问。 它的规则存放在/etc/sysconfig/ipchains文件中,如果你想让它暂时不生效,那你可以运行/etc/rc.d/init.d/ipchains stop,那么所有的规则都被取消,所有的网络访问都将被允许。 你可以运行/etc/rc.d/init.d/ipchains status来获知现在对网络访问的限制。关于这方面的知识,本文限于篇幅无法详细介绍,有兴趣的读者可参考《Linux防火墙》一书。 5.4 WEB服务器 在Linux系统中最适合于做服务器的当数Apache,Red Hat Linux 7.1中集成了Apache 1.3.19版,你只要在安装时选中WEB服务器,那么系统将自动完成Apache服务器的安装,在默认情况,WWW服务就已经启动了。 如果你在安装时没有选择WEB服务器包,那也没有关系,你只需执行以下命令即可: 1) 将Red Hat Linux 7.1安装光盘的第一张放入光驱,然后执行如下命令: # mount /mnt/cdrom 2) 转到apache安装文件所在目录: # cd /mnt/cdrom/RedHat/RPMS 3) 使用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页传到这里就可以更新了。 而如果每一个用户都想要拥有一个自己的主页的话,则: 1) 首先在自己的用户主目录下建一个public_html目录: # cd # mkdir public_html 2) 然后将自己的用户主目录的权限改为大家可读 # chmod 755 用户主目录 3) 这样你就可以使用“localhost/~用户名/”访问到每个用户的主页了。 5.5 FTP服务器 在Red Hat Linux 7.1中集成了Wu-FTP 2.6.1做为FTP服务器,在你安装时只要选择了FTP包的话,那么你的Linux服务器就是一台FTP服务器了,如果当时没有安装的话,也没有关系,跟安装apache一样: 1) 将Red Hat Linux 7.1安装光盘的第一张放入光驱,然后执行如下命令: # mount /mnt/cdrom 2)转到wu-ftp安装文件所在目录: # cd /mnt/cdrom/RedHat/RPMS 3)使用RPM完成安装: # rpm -ivh wu-ftp-2.6.1-16.i386.rpm 由于FTP服务是由xinetd超级服务器创建的,所以关于FTP服务器的配置在/etc/xinetd.d目录下的wu-ftpd文件中: service ftp { socket_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 } 下面,我们介绍一些关于FTP服务器的管理方法: 1、 暂时关闭FTP服务 有两种方法可以使FTP服务暂停: 1) 以root用户身份执行: # ftpshut now 这样就会在/etc目录下生成一个shutmsg的文件,这时FTP服务器将无法使用,直到你删掉这个文件。 2) 修改配置文件/etc/xinetd.d/wu-ftpd,将disable=no改为disable=yes,然后重启xinetd。 2、 禁止某用户使用FTP服务 有两种方法可以禁止某用户使用FTP服务器: 1) 在/etc/ftpuser中写入该用户帐号名 2) 在/etc/ftpaccess中写入一行配置: deny-uid 用户名 用这种方法还可以禁止一个组的用户使用 deny-gid 组名 3、 禁止匿名用户(anonymous)登录FTP服务器 有许多种方法可以实现,但我觉得最简单有效的方法就是将anonymous写入配置文件:/etc/ftpuser中,就可了。 5.6 文件服务器 我们还可以使用Red Hat Linux 7.1内置的Samba为局域网内的Windows主机做文件服务器。如果在安装系统时选择了SMB服务器软件包的话,那么安装完以后,Samba服务就已经Ready了。 不过为了方便配置,建议安装一下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的设置方法: 1) 打开IE浏览器,在地址栏上输入Linux的主机名或IP以及“:901”,例如: http://192.168.0.1:901 2) 如果连接正常,将出一个登录提示窗,要求输入用户名与密码,在此以root为用户名,并输入root用户的密码,再单击确定; 3) 如果输入无误,将出现Samba的配置界面:Swat的首页; 我们可以看到在Swat界面中,最上面有7个图标,分别是:HOME(首页)、GLOBALS(全局设置)、SHARES(共享设置)、PRINTERS(打印机)、STATUS(状态)、VIEW(查看)、PASSWORD(密码) 4) 首先,我们单击GLOBALS图标,将出现GLOBALS设置页面,其中我们对以下几项进行设置: Ø BaseOption à Workgroup:在些输入工作组名(如NetBIOS中的工作组名) Ø BaseOption à Netbios name:主机名 Ø SecurityOption à Security:选择安全等级,在些选择“SHARE” Ø SecurityOption à hosts allow:允许的主机,通常写入你的网络号,如192.168.0. Ø SecurityOption à hosts deny:如果你不让某台机器使用,则写入它的IP地址 修改完后,点击“Commit Changes”按钮(在7个图标的下边一些),保存设置。 5) 然后,单击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”按钮,切换到状态页面对其进行监测,在这个页面上,你可以: 1) 启动(Start smbd按钮)、停止Samba(Stop Smbd按钮)服务,以及重启服务(Restart smbd按钮); 2) 另外,你可以看到当前与Samba服务器建立的连接(Active Connections),并且可以按下“X”按钮,中止它的访问; 3) 同时你还可以检测到正在访问的文件夹(Active Shares),正打开的文件(Open Files)。 Samba服务还可以对用户进行认证,与Window NT域进行集成等强大的功能,在些限于篇幅就不详细介绍,有兴趣的读者可以参考《实战Samba》一书。 |
版权声明:本文标题:Linux新手入门教程 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dianzi/1730022474a1219620.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论