sutie 发表于 2004-10-28 22:05:39

Linux爱好者入门教程,To:新手

转悠的时候在chinaunix上面看到的转过来

作者也是转的,也不知道谁写的 :neutral::neutral:

最近在学习linux在网上发现一篇好文,转给大家,希望对大家有所帮助!以后再有的话会陆续更新,希望大家补充和探讨!!

我们首先应该知道电脑的基本情况。电脑,就是一堆金属,半导体和塑料制品的总合,如果通上电源,就可以启动,但是你什么都不能做,因为电脑只是一堆硬件,如果你不是拿来卖废铁,它即笨重又刺眼(如果你的电脑是一堆白色外壳的话)。可是为什么电脑那么的吸引我们?因为有了操作系统和应用软件。
操作系统是一种特殊的软件,用来让计算机硬件和软件协同工作,并且处理我们敲打键盘和移动鼠标这些动作。常见的操作系统有Windows,它有很多版本;MAC OS,苹果电脑上就用它;UNIX,很多大型机都使用稳定的UNIX;Linux,就是我们今天的主角,一种功能强大,运行稳定,性能优异的公开源代码的操作系统。
应用软件,则实实在在的为我们提供帮助,我们用网络软件IE上网,用聊天软件QQ聊天,用下载软件FlashGet下载我们需要的资源。正是因为有了各种各样的软件,我们的电脑才变的丰富多彩。
但是请注意,我们刚才说的这些软件全部只能在Windows操作系统下工作。可是Windows操作系统价格不扉,尤其是对于我们正在高举邓小平建设有中国特色社会主义伟大旗帜,紧密团结在以江泽民总书记为核心的党中央周围,解放思想,实事求是,以江泽民总书记三个代表重要思想为指导,建设新中国的大学生来说,上千元的价格让我们望而却步。于是出现了盗版。刚刚颁布的新的版权法规定,不仅销售盗版电脑软件违法,购买使用盗版软件同样是一种违法行为。我们怎么能置国家法律于不顾,挺而走险去购买盗版软件呢?
但是,没有Windows的世界同样精彩。如果说电脑是一块陆地,Windows就是上空的乌云,只有剥开乌云我们才能见到美丽的太阳。我们剥开这块乌云的工具就是Linux。

那么到底什么是Linux呢?
在很久很久以前,70年代吧,那时候Windows还没有出现,UNIX是应用最广泛的操作系统。但是UNIX同样有着高昂的价格。于是有一个牛人(我记不得他的名字的具体拼写,只好用牛人代替,毕竟,把别人的名字写错比用牛人这个名字更糟糕吧),这个牛人想要建立一个开放的系统,这个系统很庞大,庞大到非常庞大的地步。包含了操作系统(可以不止一个,事实上现在也不止一个,只是我们只讨论Linux罢了),软件,各种文档,各种媒介的资料以及很多其他的东西。所有这些东西大都使用一个协议,就是我们常常说的GPL或则LGPL(这个协议简单的说就是:公开所有源代码,任何人可以免费获得,也可以添加删除和修改,甚至可以拿去卖钱,只要你保证你修改过以后得到的软件和你销售的软件也使用GPL协议就可以)。牛人给这个庞大的开放系统一个响亮的名字(响亮吗):GNU-GUN is Not Unix。
Linux就是GNU系统里面发展的最好的一个操作系统。但是Linux只是一个核心,一个高尚的操作系统核心,一个纯粹的操作系统核心。这个纯粹的高尚的操作系统核心最早是由另一个牛人Linus开发出来的,当时这个芬兰人不比咱大多少,说不定比俺还小呢,但是牛啊,真牛啊。Linux核心加上很多优秀的GNU系统中的应用软件,就是我们现在所提起的Linux。

那么什么是Redhat Linux,什么是Mandrake Linux呢?
在很近很近以前,90年代吧,Linux已经渐渐有了舍我齐谁的锋芒。由于Linux属于GNU系统,这个系统采用的GPL协议,保证了代码的公开,于是有N那么多公司蜂拥而至,在Linux内核源代码的基础上进行一些必要的修改加工,再开发一些配套的软件,最后选择一些优秀的软件,把它们合在一起发布,形成自己公司的发布版Linux。美国的Redhat公司发行了Redhat Linux,法国的Mandrake公司发行Mandrake Linux,德国的SUSE公司发行SUSE Linux,咱们中国的N多公司也疯似的发布自己所谓的中文Linux,但是到现在为止,国产Linux还难蹬大雅之堂。Linux公司多如牛毛,Linux发行版也多如牛虱,在这里我们不能不提到Debian GNU/Linux。

Debian GNU/Linux是一套非常特殊的Linux发行版,它不同于其他Linux发行版都是由商业公司开发并发行,Debian GNU/Linux是由另一个牛人发起的,这个牛人的名字以Ian开头,那位牛太太的名字开头三个字母是Deb,于是在爱情的力量下,他发起了Debian GNU/Linux组织,致力于开发一套非商业性的Linux发行版。爱情真伟大,他做到了。现在全世界有800多个工程师在致力于为Debian GNU/Linux奉献自己的业余时间。而且这个数字在不断的增长。Debian GNU/Linux是Linux发行版中比较优秀的一款,我以后会详悉的介绍。以后再提起Debian GNU/Linux,我用Debian代替。

关于内核版本和发行版版本不得不说的故事
既然Linux只是一个内核,Linux发行版是Linux内核以及各种应用软件的集合,那么Linux出现了两种版本号。一种是内核版本,一种是发行版本号。Linux内核版本号的格式是x.y.zz-www,不同的数字代表不同的开发版本,有稳定的,也有测试中的。Linux发行版本号由各个发行公司或者组织制定,Redhat Linux有6.0, 6.2, 7.0, 7.2, 7.3等等,通常,内核版本序号是偶数表示是稳定的版本,奇数序号是不稳定的测试版本。其实Windows也是一样,只不过我们不常听说,比如Windows2000的内部版本号是2195,发行版本就是2000。不知道会不会有哪一个Linux发行版本使用2003的版本号,呵呵。

一些约定和一些网址
往后,我们用Linux指Linux发行版,用Kernel指Linux内核。用Debian指Debian GNU/Linux,用Redhat指Redhat Linux。
下面是一些常用的Linux官方网站:
http://www.kernel.org
http://linux.com
http://www.linux.org
http://www.linuxhelp.org
下面的是国内的优秀的Linux论坛:
http://www.linuxforum.net
http://www.linuxfans.org
http://www.linuxaid.com.cn
下面这个搜索引擎Google是我们大力推荐的最好的搜索引擎,我自从用过以后就没有使用过其他的。
http://www.google.com
下面是几个很好的自由软件基地,不过有被中国电信封IP的危险,郁闷啊。
http://freshmeat.net
http://sourceforge.net
http://www.cosoft.org.cn

下一章我们要讲述一些Linux的基本知识,其实也使一些基本的电脑常识。

第一章 Linux基础知识

硬盘
硬盘是可以存储大量信息资源的媒介。我们平时看到的硬盘是方方正正的一块挺沉的铁匣子,但是其实硬盘是圆的,加上一些控制电路以后,为了便于携带而设计成为方形外壳。但是硬盘真是圆的,不骗你,要不怎么叫做盘呢?第二,你需要知道的是硬盘可以进行分区。可以把硬盘分区成为很多个分区,看来分区即是一个名次也是一个动词。什么叫做名次的分区呢?现在的硬盘越来越大,存放的资源越来越多。为了更合理的管理使用硬盘资源,更有效的提高查询速度和访问质量,我们可以把硬盘划分为很多分区,分别存放一些信息。当你需要读取某一个资料的时候,系统会自动使用最近的磁头去读取,加快读取速度。硬盘分区是从硬件的基础上对资源进行合理管理的手段。
分区已经了解了,但是我们不能只有分区啊,我们得用一个方法来控制分区。Windows操作系统使用了盘符这个概念,用单一的字母来表示硬盘上的不同分区,比如,C盘,D盘等等。在Windows2000以前,C盘对应了第一个分区,D盘对应第二个分区,依此类推。到了Winows2000,这个对应关系可以自己调整了。
在Linux里边,我们没有盘符这个概念,我们用目录的形式进行管理。
为了保证文章的完整性,简单说说目录吧,其实大家都很清楚的。如果我们把数以万计的水果扔在一个箩筐里面是不是很难找?但是如果我们把苹果放在叫做苹果的箩筐里面,把梨放在叫做梨的箩筐里面……这样是不是大大简化了我们寻找指定水果的速度?这些水果如果是我们的文件,那么我们用的箩筐就叫目录。新的问题出现了,即使把桃子扔在叫做桃子的箩筐中,我们仍然很难从好几千个桃子里面找出来自四川成都龙泉驿的桃子啊。聪明的你一定想到在桃子的箩筐中再放入很多叫做四川啊,河北啊,广州啊这些名字的箩筐,把不同产地的桃子放进去。对!就这样!我们在一个文件目录下面可以再建立新的文件目录,把文件进行非常细致的管理。到这里你明白了什么叫做目录,还明白了目录是可以嵌套的,这就可以了。目录技术是从软件的基础上对资源进行管理的方法。
回到Linux对于硬盘的管理里面来:在Linux里边,我们没有盘符这个概念,我们用目录的形式进行管理。把每一个分区和某一个目录对应,以后对这个目录的操作就是对这个分区的操作,这样就实现了硬件管理手段和软件目录管理手段的统一。这个把分区和目录对应的过程叫做挂载-mount。这种对应关系可以由用户随时中断和改变。

SWAP交换分区
分区的知识大家已经熟习了,这里需要提一下交换分区。我们如果没有足够的内存,也许就不能运行某些大型的软件,解决的办法是在硬盘上划出一个区域来当作临时的内存,好像内存变大了。Windows操作系统把这个区域叫做虚拟内存,Linux把它叫做交换分区swap。虽然随着硬件价格的下降内存已经不大会限制我们了,但是交换分区这个概念却保留下来,而且有继续保留下去的原因,当然涉及到内核的问题,我们不多讨论,我们要说明的是,安装Linux时候建立交换分区时,如果你的内存只有64M或则128M,那么交换分区最好设置成为它的3倍,如果你的分区足够大,有256M或则512M,那么设置成为相同大小就可以了。但是请注意,最好大小为2的N次幂的数字。

分区格式
今天说了好多的与硬盘有关的问题,现在还要补充一个,就是分区格式。硬盘只是一个用电磁的方式纪录信息的媒介,我们可以通过不同的格式来管理。不同的操作系统选择了不同的格式,同一种操作系统也可能支持多种格式。微软的操作系统选择了fat16格式作为DOS的分区格式,往后windows95和windows98支持fat32格式,windowsNT使用NTFS4格式,windows2000以及XP支持NTFS5,也支持fat32,但是她们都不支持Linux上常见的分区格式。Linux是一个开放的操作系统,它最初使用ext2格式,后来使用ext3格式,但是它同时支持非常多的分区格式,包括很多大型机上UNIX使用的XFS格式,也包括微软的那些fat以及NTFS格式。
在给硬盘分区时就需要指定使用的分区格式。

掌握Linux的目录结构

既然目录是用来方便文件管理的工具,那么Linux下面不同的目录到底保存了哪一类的文件呢?

目录名称 意义

/bin 该目录中存放Linux的常用命令,在有的版本中是一些和根目录下相同的目录。
/boot 该目录下存放的都是系统启动时要用到的程序,当用lilo引导Linux时,会用到这里的一些信息
/dev 该目录包含了Linux系统中使用的所有外部设备,它实际上是访问这些外部设备的端口,你可以访问这些外部设备,与访问一个文件或一个目录没有区别。例如在系统中键入“cd /dev/cdrom”,就可以看到光驱中的文件;键入“cd /dev/mouse”即可看鼠标的相关文件。
/cdrom 该目录在刚安装系统时是空的,你可以将光驱文件系统挂在这个目录下, 例如“mount /dev/cdrom /cdrom”
/etc 该目录存放了系统管理时要用到的各种配置文件和子目录,例如网络配置文件、文件系统、X系统配置文件、设备配置信息、设置用户信息等。
/sbin 该目录用来存放系统管理员的系统管理程序。
/home 如果建立一个名为“xx”的用户,那么在/home目录下就有一个对应的“/home/xx”路径,用来存放该用户的主目录。
/lib 该目录用来存放系统动态连接共享库,几乎所有的应用程序都会用到该目录下的共享库
/lost+found 该目录在大多数情况下都是空的。但当突然停电、或者非正常关机后,有些文件就临时存放在这里。
/mnt 该目录在一般情况下也是空的,你可以临时将别的文件系统挂在该目录下。
/proc 可以在该目录下获取系统信息,这些信息是在内存中由系统自己产生的
/root 如果你是以超级用户的身份登录的,这个就是超级用户的主目录
/tmp 用来存放不同程序执行时产生的临时文件
/usr 用户的很多应用程序和文件都存放在该目录下

Linux支持的硬件
总的来说,Linux对于硬件的支持有三句话概括:越新的硬件越难支持,越小的厂家的产品越难支持,越来越多的硬件被支持!
所以推荐大家使用著名厂家的成熟产品。

下一章我们要介绍Linux的安装。我们选择的Linux发行版是Redhat Linux 7.3,在安装之前请大家一定熟习我们介绍的硬盘分区的知识。

第二章 Linux安装

下面我们介绍Linux的安装。各种Linux发行版本的安装各有不同,但是却大同小异。总的来说,除了国产的Linux以外,其他我们熟习的Linux都支持网络在线安装和硬盘安装。但是我们国内的用户使用宽带的现在并不多,硬盘安装方式又有一些麻烦,所以我们还是介绍光盘安装的方式。
Redhat Linux是国内市场上较为常见的Linux发行版本,甚至Redhat一度成为国人脑海中Linux的代名词。所以我选择Redhat作为第一次安装Linux时候的教材。其实MandrakeLinux安装界面比Redhat好看多了,不果似乎很难买到啊。往后的章节我还会详悉介绍的是Debian Linux的安装,不过那是后话了。

现在让我们假设你的硬盘是20G的,Windows98系统已经把这20G全部用完,具体如下:
C:前5G D:接下来5G
E:接下来5G F:最后5G
我们计划把Redhat安装在原来的F:盘上,那么现在请备份你的F:盘上的资料。

然后确定你的系统是由光盘引导的,如果不是,在电脑开机的时候按del键,进入主板BIOS设置,修改相关选项让你的电脑从光盘引导。然后把Redhat的第一章安装光盘放入光驱,开机。这时候你应该能够看到一些启动提示。相信大家都有大学英语的基本功,阅读这些东西是不成问题的。现在,你可以直接按回车键,启动图形界面的安装程序;也可以输入text然后回车,这样启动字符界面的安装。一般来说,图形界面占用更多的内存,安装程序会比字符界面下慢一些,但是图形界面更友好,考虑到这是我们第一次安装Linux,我们直接回车,进入图形界面的安装程序。

安装的第一步是要你确认它的版权信息。当然同意啦!Linux和Windows都有这一步,但是你所同意的版权协议却非常不同,具体的我们以后再说,总之你记住,Linux给你自由的世界,也许这个世界现在还有一些荒漠和戈壁;Windows却给你无限美好和宜人的牢笼。

现在请正确的选择你的键盘类型,一般pc104就可以了。好像在RedhatLinux下面还不支持win键。选择鼠标稍微麻烦一点,如果你的鼠标只有两个按钮并且没有滚轮,你一定要把那个“模拟三键鼠标”的选项选中,因为在Linux下面,鼠标的第三键非常有用。

Redhat会讯问你是安装Workstation还是Server还是Custom类型的系统,或者选择update升级原有的Redhat。我们选择Custom!

现在配置硬盘参数,也就是分区,我们不要选择自动分区,那样不安全,非常不安全,特别不安全。选择手动分区吧,我会教你的。在继续之前请确保你熟习了我在上一章里面介绍的硬盘分区的基本知识,如果忘记了,快回去看看吧。注意:硬盘分区会清除掉你硬盘上相应分区以前保存的信息!

我相信你已经把F:盘上要备份的资料全部备份了。现在让我们来看看你的每一个Windows的盘符对应什么硬件设备。
一般来说,C盘对应/dev/hda1
D盘对应/dev/hda5
E盘对应/dev/hda6
F盘对应/dev/hda7
现在选中F盘对应的/dev/hda7,删除它。然后在空闲的硬盘空间(应该有5G,因为我们删除了一个5G的F盘)上建立一个新的分区,选择分区类型为SWAP,也就是交换分区。它的大小应该按照上一章的方法选择3倍于实际内存的大小或者适当的数字。但是请注意,最好大小为2的N次幂的数字。
添加完成这个交换分区的设定,现在我们再添加一个分区,这个分区类型选择为ext3,然后有一个mount point之类的选项,也就是我们说的挂装点,设置成“/”。把它的大小设置成为剩下的所有空间的大小。这样把整个硬盘空间都利用起来。
检查一下是不是还有什么没有作对?如果发现有问题,现在修改还来得及,因为我们所做的修改还没有保存到硬盘里面去。如果一切无误,选择下一步,现在硬盘的内容将按照我们设定的方式变化。
是不是有点激动?哈哈,说不定会搞砸呢?我以前第一次安装Redhat用了7个小时才搞懂什么叫做挂装点。整个硬盘从头到脚被分区无数次,安装完成以后什么资料都没有,哈哈,说不定你刚才的某一步做错了会和我一样而可怜呢。不过如果不是切肤之痛,怎会记忆犹新?搞Linux就是需要大胆的尝试,就象邓小平同志说的,实践是检验真理的唯一标准嘛!

看完这段文字,你的硬盘应该格式化完了,应该到了选择安装什么软件了。如果选择全部安装的话(在最下面有这个选项)你会得到一个巨大无比,巨慢无比的系统,大概2G吧。因为完全安装会安装所有的服务器程序个无关紧要的所有的东西。除非你知道自己在干什么,千万不要这么作。看看吧,如果你有打印机,就把打印支持选上。一般默认的选项足够了,但是我还是建议大家安装Software Development和Kernel Development两个选项,这样方便以后安装新的软件。窗口管理器有很多,一个KDE,一个Gnome,还有一些比较小巧的比如WindowMaker(这是我的最爱)。KDE的外观类似Windows,适合初学者上手,但是Gnome更漂亮,速度也更快。我很少使用KDE,也没有什么KDE的汉化经验,所以我就教大家使用Gnome吧。以后我还会教大家使用WindowMaker的。

继续下去似乎到了软件安装的过程,一般20到30分种吧,就可以安装完所有的软件。

这段时见不要休息,继续看我下面的内容!!!呵呵

好像这时候Redhat会要求选择启动的方式是使用Grub还是Lilo,也许你现在很郁闷,都不懂,那么我就告诉你,选择grub吧,因为……虽然我更熟习lilo,以后好讲给你听但是grub对于初学者来说不容易出错,安装grub的位置选择MBR就可以。只有这样才能保证你既能启动Linux,又能启动Windows。

我知道大家都很累了,所以我很快的说完下面的步骤:它会问你时区的问题,中国人当然选择亚洲的上海,没有北京的选项。如果你住在大西南,选择重庆也不错。下一步关键,如果你想得到正确的时间,看清楚,它会问你是不是把本机时间和GMT时间对应,千万不要选啊!GMT实践是格林威治时间的意思。继续下去到了配置显卡的地方,如果你的显卡是ATI的显卡或者常见的3dfx Banshee/Voodoo3+或者Matrox g200/g400或者SiS的话,那么恭喜你,你的显卡能够被轻易的识别出来。如果Redhat没有识别出你的显卡,也不要着急,跳过这一步,我们安装完成以后再来配置。
其实我的显卡是ATI的显卡,Redhat能够自动识别,但是我还是喜欢跳过去,安装完成以后再来搞它。
它还会问你启动时候是用图形界面启动还是字符界面启动,保险起见,选择字符界面!
下一步声卡也是一样的,如果你的声卡识别出来了,那么没什么好说的,没有的话,就跳过去,有办法的。
如果你的电脑有网卡,比如宽带或者ADSL,那么你还应该配置网络,但是网络的情况太多了,1000个人也许就有1000种情况,后面再说,跳过!

咦,我好像忘了介绍设置root密码的问题。什么是root啊?root就是超级用户,一定要细致的设定这个密码,因为一旦忘掉了,似乎只有重新安装整个Linux。其他的选项,我没有说到的,选择默认值就可以了。

好了,大功告成。

电脑重新启动,选择Linux,经过一段时间的等待以后…………………

这部分非常枯燥,我都不想写了,因为我知道在这里的大伙儿都不需要这一章的内容,但是我还是必需写,因为这是Linux的基本功,是入门者必需掌握的东西,也是保证我的入门教程完整性的必需章节。我讲述的方法不是万全按照命令的分类讲解的,而是按照一个新人使用时候最希望作的事情的顺序讲的。高手是不用看的,但是一个新人完整的看了以后可以熟练的使用下面一些命令:ls,cd,mkdir,rm,pwd,mv,cp,man,nano,vi,cat,more。我想基本的操作是够了。
关于Linux的命令的详悉高级讲解我会在大家关心的XWindow配置和声卡配置完成以后讲解。
在高级命令讲解里面会介绍包括通道在内的一些高级用法。

第三章 Linux 基本使用命令(基本篇)-(高级篇在后面会有,这一章从实用的角度出发介绍基本的操作)

现在请输入你的用户名和密码,当然,我们输入root,这样获得一切管理权限!

你一定非常希望立刻看到那些非常漂亮的图形界面,但是也许我要让你失望了。我建议在没有使用图形界面以前,首先熟练的掌握基本的Linux命令,这样才是一个真正的Linuxer。从哪里开始呢?

1. ls 列出文件和目录的命令

你一定很想知道你的电脑里面有哪些东西,现在执行命令ls,啊,怎么什么都没有?当然啦,这是你第一次登录到这个系统,你的默认位置是你的个人目录,而不是系统根目录。你还没有在这个目录里面存放任何的个人文件,当然什么都没有啦。如果你是用root用户登录的话,你的个人目录就是/root目录;如果你是用普通用户登录,比如叫做kris,那么kris的个人目录是/kris。前面的/是什么意思呢?就是“根”的意思,就是最前面的那个目录,在根目录下面建立有很多的子目录,我们在第一章已经讨论过了。

ls命令有很多的选项,常用的是:

-A 选项用来列出所有的文件,包括那些隐藏的文件。为什么我们要隐藏文件呢?道理和你为什么要把情书藏起来不让爸妈发现是一样的。就是为了保密啊。现在执行ls -A看看?是不是有一个隐藏文件“.bashrc”被显示出来啦?聪明的你一定奇怪的发现这个文件名前面有一个点,对!记住,只要文件名前面第一个字符是一个“.”,这个文件就是隐藏文件。一个目录名前面的第一个字符如果是“.”这个目录就是隐藏目录。
-l 这个选项用来显示一个列表,包含了这个目录下面所有的文件的绝大部分属性的列表。你可以每个文件的大小,所有者,你的权限还有修改日期等等。
-R R的意思就是recursive递归,明显这个选项让系统显示出这个目录下面的所有文件以外,还要显示出所有子目录下面的文件。也就是把我们那一大堆水果全部抖出来。
--color 这个选项特别有用,我估计大家的显示器都是彩显吧,什么?你的显示器还是黑白的?天哪!既然是彩显,那么我们可以让ls命令用不同的眼色代表不同的文件类型。比如可执行文件用绿色,普通文件是白色,目录是蓝色。也许你会问,目录也是文件吗?对的,在Linux里面一切都是文件,所有的硬件设备都用一个文件来代替,比如你的软驱,就是用/dev/fd0来代替的。目录也是一个文件。
--help 这个选项几乎是每一个Linux命令都有的,用来显示出该命令的帮助信息。

2. cd 和 mkdir 以及 rm 改变当然所在目录,建立新目录以及删除目录命令

趁热打铁的,刚才说了目录,我们每一次登录都有一个默认目录就是我们的个人用户目录。我们怎么才能到其他的目录去呢?cd就是用来改变当前所在的目录的。前面我们说过,“/”代表根目录,那么执行cd /就可以进入根目录。不试一下吗?
让我们看看根目录下面有哪些文件和子目录吧,执行ls,我们发现,根目录下面有一个目录名子特别变态,叫做usr,进去看看,cd usr,看看这里面有什么?你会发现一个更psycho(变态)的目录叫做src,进入src目录看看?没什么好玩的。那么我们现在回到刚才的usr目录,怎么做?是不是cd usr?执行试一下,好像不行,系统报告出错 cd: usr: No such file or directory。这是怎么搞的?问题在于我们现在所在的目录是/usr/src下,我们执行cd usr的意思是进入/usr/src/usr目录而不是/usr目录。正确的方法是cd /usr。
就好比你在中华美食的箩筐里面看到一个四川的箩筐,里面有一个成都的小箩筐,现在你进入以后发现成都的小箩筐里面有一种叫做“麻辣烫”的很辣的食品。你大饱口福以后想要吃一些甜点,于是准备去福州。你能站在成都的箩筐里面去福州吗?当然不行,福州并不在成都的箩筐里面啊,你应该进入“/中华美食/福州”而不是“/中华美食/四川/成都/福州”对不对?
好的,一个问题出现了,难道我每一次进入一个目录,都要用/usr/src...这么复杂的方式来表示吗?不一定。我们用“..”的方式来表示上一层目录。如果你现在在/usr/src目录下,进入/usr目录有两种办法:cd /usr和cd ..他们是一样的。

怎样才能知道我现在在哪个目录?用命令pwd,这个命令没有什么好说的,执行一次就知道了。

现在我想在我自己的个人目录里面建立一个目录叫做LoveLetter。我应该首先回到我自己的目录,这里有一个简单的方法,就是直接运行cd不带任何参数,这样就可以回到自己的目录,当然也可以cd /root或者cd /home/kris,看你是用什么用户登录的。
进入我自己的目录以后,建立新目录的命令是
mkdir 新目录名
我执行 mkdir LoveLetter 就可以建立一个新的叫做LoveLetter的目录。进入这个目录看看?什么都没有。不着急,慢慢来。我都不着急你急什么?
突然我想起这台电脑我的爸妈也要使用,他们看到我的情书目录怎么办?你忘了刚才我说的可以用加一个点“.”在前面的方法来隐藏目录和文件的?我们可以改变这个目录的名字,但是这个命令我准备等会儿讲,现在我们用一个很无聊的办法来完成这个要求。这个办法就是删掉刚才建立的oveLetter目录在新建一个.LoveLetter目录,之所以说这个办法很无聊,是因为我们现在是在做实验,如果来真的,你原意删掉你的情书吗?是不是另有新欢啦?哈哈。

删除目录的命令其实也可以删除文件,就是rm。
rm 待删除的文件名/目录名
我记得Redhat会提示你是不是真的要删除。按y就是确定,按n就是取消。如果Redhat没有提示你,那么等会请根据我说的方法修改一下系统让它提示咱们。免得以后心痛。删除一个文件很简单。麻烦的是删除一个目录,如果一个目录里面已经有文件,rm是不让直接删除的,你必需先把目录里面的所有文件删除,再删除目录。但是有一个参数可以改变一下,就是 -rf ,这个参数有一定的危险性,因为即使系统本来要提醒一下是不是真的删除目录,加上这个参数也不会有提示了。执行rm 目录 -rf会在一眨眼的时间里面让你的资料下课!
那么我现在就删除LoveLetter目录了:rm LoveLetter -rf
建立一个新的目录mkdir .LoveLetter
现在ls看看,是不是看不到LoveLetter目录了?但是ls -A还是能看到的。所以这种隐藏方式只能偏偏自己,真正让你的文件安全的方式还是以后再讲吧。

3. mv 改变文件名和目录名的命令
cp 复制文件和目录命令
man 命令使用方法参考工具

mv 老文件名 新文件名
mv 老目录名 新目录名
就可以改变文件或者目录的名字。
我现在想要把刚才的这个目录.LoveLetter改名回去,因为这种无聊的隐藏方式很变态,我们有更高级的方法来做这样一件事情:就是不要告诉爸妈你的密码!!!
mv .LoveLetter LoveLetter

cp命令用来把一个文件复制成为一个新的文件,

cp 老文件名 新文件名

这个老文件明和新文件名如果在同一个目录下面,那么当然需要名字不一样,很简单的道理,如果文件名一样何必建立两个文件?如果新老文件在不同的目录,我们就可以让它们有相同的名子。下面的例子说明了这一点:

cp LoveLetter LoveLetter_yesterday 新的文件LoveLetter_yesterday和旧的LoveLetter在同一个目录,所以名子不一样。
cp LoveLetter /home/LoveLetter 新的文件在/home目录下面,但是旧的文件LoveLetter在某一个用户的个人目录下面,当然两者名子可以相同。

cp命令也可以复制整个目录,但是现在我们暂时不讲这么复杂。其实cp还有rm以及ls这些命令不仅是整个Linux的基本命令,更包含了非常多的功能。如果大家有兴趣,可以使用man

man 命令名字

比如man ls,这样就可以看到所有ls命令和参数的详悉解释,尤其是一部分常用的命令的man帮助已经由志愿者翻译了,大家看起来更容易。

一点幽默

好了,说了好多东西了,我想休息一下,给大家说一个有趣的事情,我们说了好多命令和目录的名子,你们是不是觉得有点奇怪。说实在话,我第一次看到usr这个目录时也不知道是什么意思,后来才发现以下对应关系:
usr -> user
ls -> list
mkdir -> make dir
rm -> remove
src -> source
mv -> move
cp -> copy

是不是很有趣,在UNIX世界,包括Linux世界,人们的想象力就是这么无敌!简写居然能简写成这样子。大家一般的想法是取一个单词的前三个或者前四个字母作为简写,可是UNIX的牛人就是喜欢把move简写成为mv,真不知道他们怎么想的。大家一起捉摸吧


4. nano 和 vi编辑文件的命令 和 cat 以及 more显示文本文件

nano是一个小巧自由,并且友好的编辑器,我认为nano更适合初学Linux的朋友使用。我们现在只学习怎样编辑一个文件以及怎样保存。

nano 文件名

如果你写的文件名已经存在,那么就打开并且编辑,否则就建立一个新的文件。编辑的方法还用说吗?呵呵,当你想要退出的时候,按ctrl+x,nano会问你是不是保存编辑的文件。按Y就是保存,按N就不保存。

nano最大好处在于用户可以不用记忆太多的操作键,大部分常用的功能的操作方法都在屏幕下放列出了。新手需要注意的是“^X”就是按住ctrl键不放再按X的意思。

下面简单的介绍vi。vi是一个非常强大的编辑软件。它太庞大了,足够写一本书专门来讲解。我们这里从使用的角度出发,讲一下vi的用法。
vi有两种模式,一种是命令模式,一种是编辑模式。进入vi以后,默认处于命令模式。

现在我们执行vi LoveLetter。进入以后,按一下键盘上的Insert功能键或者i键可以进入编辑状态,可以插入字符,再按一下Insert变成复盖模式,这两种模式的区别很容易体现,大家尝试一下就可以了。上下左右四个方向键可以移动光标。基本的编辑命令和Windows里面没有区别。是不是很容易呢?当你把需要的内容输入完成以后,我们要保存,这时候按一下ESC键从编辑模式回到命令模式,首先输入一个冒号“:”,也就是按住SHIFT键不放再按分号“;”这样首先输入一个“:”,然后,输入w,回车,就可以保存我们编辑的内容到LoveLetter文件。现在我们按一下Insert就可以继续编辑。再按ESC,输入“:”,再按w又可以保存。可是现在我们不需要保存,我们想要不保存就退出,怎么做呢?当我们输入w的时候是write的意思,保存,那么我们输入q就是quit退出的意思。好,输入q,回车,vi提示我们刚才进行的修改还没有保存,所以记住!一旦需要放弃我们的修改,不能直接用q命令退出,而需要用“q!”命令。输入q!,好了,退出了。
我们想看看我们刚才编辑的LoveLetter是不是真的保存好了,再vi LoveLetter,ok,看到了吧?现在我们想要直接退出,就可以只输入“:q”就可以了,不用输入那个“!”因为我们没有修改文件内容。如果我们修改一下这篇文章,我们在退出的时候可以输入“ESC : wq”就可以了。不需要把w和q分成两次输入。

vi的最最基本用法说到这里差不多了,要是你还想多了解一些vi的知识,在进入vi以后直接按F1就可以了,有详悉的帮助和教学。

其实刚才我们想要看一下编辑的LoveLetter是不是保存好了,不用再vi进去的,只需要用命令

cat LoveLetter

就可以了。cat就是用来显示文本文件内容的命令。如果我们的文本文件很长,一个屏幕显示不完,cat是不会自动分页的。我们可以换用命令

more LoveLetter

more命令显示文本文件时,如果内容过多,会自动的在每一页结束时暂停下来,等到用户按一下空格键再继续。

5. 最重要的命令:halt reboot 关机和重新启动命令

在Linux里面,不能够直接用电源按钮关机,也不能直接用reset按钮重新启动,这对系统,尤其是硬盘有比较大的影响。关机命令是halt,重启动命令是reboot。其实还有shutdown命令完成类似功能,需要的话,请用今天学会的man命令学习使用。


好不容易写完这一章,希望新人能够好好的看完,这对你们有帮助。下面将要介绍XWindow的配置。这是所有人都关心的话题。

第四章 X的配置

虽然文章写得不好,但是我还是希望我的文章为公社的朋友提供帮助,和以前一样的,这个系列教程的文章我只在公社发表,希望大家捧场。

我的文章耽误了很久了,很抱歉。前段时间因为我一直忙着找工作,又生病一场,所以文章的事情一推再推,现在终于可以奉献给大家了。

这一章我主要介绍X系统用的主要配置文件XF86Config-4,我采用了对照的方法介绍,一边贴出我的XF86Config-4文件,一边介绍具体的内容。这篇文章对于大家没有什么立杆见影的帮助,不果可以让你对于X的只是有一个基本的了解。

XF86Config-4文件是X系统的主要配置文件。在Redhat 8以前版本中都叫做XF86Config-4这个名字,Redhat 8已经不再叫做这个名字。

编辑这个文件需要小心谨慎一点,因为一点错误,你的X将不能启动。不果没关系啦,改回来就是了学习Linux最好的办法当然还是求助于男人(man),大家有什么问题尽管看看man的帮助就是了。如果你要删除文件中的内容,最好不要直接的删除,而应该在前面加上#符号把它变成注释。

在Redhat 8以前的版本中,X的配置工具是Xconfigurator,在Debian中X的配种方法是:
dpkg-reconfigure xserver-xfree86
当然你都得用root的身份来运行。

在/usr/share/doc/xfree86-common/FAQ.gz文件中你可以看到具体的技巧。


第一段是Files段,这个部分用来配置X系统说能够使用的字体,每一行都代表一个目录,保存了具体的字体和字体的配置信息。
代码:

Section "Files"
FontPath "/usr/X11R6/lib/X11/fonts/xp"
FontPath "/usr/X11R6/lib/X11/fonts/XChinese"
FontPath "unix/:7100" # 这是本地字体服务器
# 如果本地字体服务器出了问题,我们可以使用下面的配置
FontPath "/usr/lib/X11/fonts/misc"
FontPath "/usr/lib/X11/fonts/cyrillic"
FontPath "/usr/lib/X11/fonts/100dpi/:unscaled"
FontPath "/usr/lib/X11/fonts/75dpi/:unscaled"
FontPath "/usr/lib/X11/fonts/Type1"
FontPath "/usr/lib/X11/fonts/Speedo"
FontPath "/usr/lib/X11/fonts/100dpi" #这两个字体是每一个X
FontPath "/usr/lib/X11/fonts/75dpi" #系统都必需安装的英文字体
EndSection


下面的是模块段,用来配置X系统加载的模块。
代码:

Section "Module"
Load "xtt" #gtk1使用的字体引擎,效果好,速度稍慢
Load "GLcore" #如果你是用的是Nvidia的显卡,似乎一定要注消掉这一行
Load "bitmap"
Load "dbe"
Load "ddc"
Load "dri"
Load "extmod"
# Load "freetype" #如果你使用了xtt模块,那么freetype模块就需要注消掉
Load "glx"
Load "int10"
Load "record"
Load "speedo"
Load "type1"
Load "vbe"
EndSection


下面的段是用来配置你的键盘的,属于“输入设备”
代码:

Section "InputDevice"
Identifier "Generic Keyboard" #这是你的键盘的名字,随便你啦
Driver "keyboard" #键盘的驱动…哇,键盘也有驱动
Option "CoreKeyboard" #如果你有多个键盘,那么你需要在这里指定哪一个键盘是主要的键盘
Option "XkbRules" "xfree86"
Option "XkbModel" "pc104" #键盘的分布格式,一般来说
Option "XkbLayout" "us" #美国104键盘是大家通用的。
EndSection


这里配置你的鼠标,当然你可以配置两个鼠标,如果你有的话
代码:

Section "InputDevice"
Identifier "Configured Mouse" #鼠标的名字
Driver "mouse" #鼠标的驱动
Option "CorePointer"
Option "Device" "/dev/input/mice"
#注意,这里很重要,这是鼠标的设备文件
#我的鼠标是光电鼠标,用的USB接口,对应的鼠标文件是/dev/input/mice
#如果你的鼠标是普通的滚轮鼠标,用的是PS2接口,那么你应该使用
#/dev/mouse或者/dev/psaux或者/dev/ttys0这个设备
Option "Protocol" "ImPS/2"
#这是鼠标的类型,如果不是是滚轮鼠标,那么使用PS/2
Option "Emulate3Buttons" "true"
#在Linux系统中,鼠标的第三个键非常有用,
#如果你的鼠标没有第三个键,那么我们应该允许使用双键同时点击来模拟
Option "ZAxisMapping" "4 5"
EndSection


下面的设备是显卡,这是最头痛的设备了,如果你的显卡太新潮,很有可能不能支持哦。Nvidia的GForce2显卡就必需自己编译显卡的驱动程序才能使用
代码:

Section "Device"
Identifier "Generic Video Card"
Driver "ati" #如果你是Nivida的显卡,这里应该是"nvidia"
EndSection

这个设备是显示器。
代码:

Section "Monitor"
Identifier "Generic Monitor" #显示器的名字
HorizSync 30-60 #显示器的频率,一半来说你的显示器
VertRefresh 50-75 #应该可以达到我的这个水平
#因为我的显示器是15"的老显示器了
#大家的电脑都比我的好吧?
Option "DPMS"
EndSection


下面是综合以上你的配置的设备的各种显示效果
代码:

Section "Screen"
Identifier "Default Screen" #效果的名字
Device "Generic Video Card" #你可以指定你的显卡的名字
Monitor "Generic Monitor" #指定你的显示器的名字
DefaultDepth 24 #默认的颜色深度
SubSection "Display"
Depth 1
Modes "1024x768"
EndSubSection
SubSection "Display"
Depth 4
Modes "1024x768"
EndSubSection
SubSection "Display"
Depth 8
Modes "1024x768"
EndSubSection
SubSection "Display"
Depth 16
Modes "1024x768" #在这里你可以指定扫描频率例如
#"1024x768 @ 85"就是用85mhz的频率
EndSubSection
SubSection "Display"
Depth 24
Modes "1024x768"
EndSubSection
EndSection



最终你必需定义下面的段用来告诉X服务器你使用的配置
代码:

Section "ServerLayout"
Identifier "Default Layout" #刚才我们给我们的配置取的名字
Screen "Default Screen" #给我们的效果取的名字
InputDevice "Generic Keyboard" #我们的键盘的名字
InputDevice "Configured Mouse" #我们的鼠标的名字
#这些名字一定要在前面的配置中已经定义
EndSection

Section "DRI"
Mode 0666
EndSection



一般来说我们X启动时候会遇到的问题是:
1:no screen found
这有可能是你没有正确的定义所需要的效果,也有可能是你的其他部分定义出错倒置你的效果不能实现
2:xtt和freetype的冲突,注消一个就可以了
3:驱动没有找到,如果你的显卡非常的新潮,那么多半是这个错误了,编译你的驱动吧…

sutie 发表于 2004-10-28 22:07:30

第五章 Linux命令和技巧

1. mount umount 命令

在Linux里面想要使用你的软盘和光盘可不是像在Windows里面那么的危险。
想想看如果你在Windows里面安装一个光盘里面的软件或者玩游戏的时候,你的女朋友,甭管是第几个女朋友,因为对你每天打游戏而不做晚饭,乃至于别人做了晚饭你居然没时间吃,而气急败坏的按了一下光盘的Eject按钮……哈哈,害怕了?放心,在Linux里面这种事情绝对不用你操心。

要使用光盘,首先把光盘安放好以后,执行以下命令:

mount -t iso9660 /dev/cdrom /mnt/cdom 把光驱挂装到/mnt/cdrom目录

-t参数是指定光盘的文件系统类型,一般来说,光盘都是用的iso9660标准的格式。接下来的/dev/cdrom是你的光驱对应的设备文件,我们前面说过每一个硬件设备都对应了一个标准的设备文件。最后一个/mnt/cdrom目录是你的一个本地硬盘上的目录,在使用以前如果发现没有这个目录,可以建立一个。当然也不一定非要使用这个目录,你甚至可以很变态的使用mount /dev/cdrom /root命令把你的光驱挂装到你的的/root目录,这样一来你的/root的内容将不再是原来的内容,直到你取消挂载。

下面的命令取消挂载:

umount /mnt/cdrom 或 umount /dev/cdrom

这两个命令都可以把刚才挂装上去的光盘取消挂载,只有这样你的光盘才能取出。不行的话,你再执行一次挂装命令,然后按一下光驱上的Eject按钮,看看有没有什么反应啊?没有,对不对?这就是Linux的一个优点,虽然操作起来有点麻烦的感觉,但是想想看,非常安全和稍微的复杂,你选哪一个?

使用软盘的方法也很类似:

mount /dev/fd0 /mnt/floppy

/dev/fd0是你的软盘对应的设备文件,后面的自然是你的挂装目录。但是如果这个时候你想要尝试能不能在没有取消软盘的挂装就推出软盘,你就是一个非常BT的人了。有没有搞错?软盘的退出是机械的操作,你硬要按出来,我有什么办法?那么取消软盘挂载的方法也是很类似的:

umount /dev/fd0 或 umount /mnt/floppy

其实挂装时候第一个参数-t,可以省略,因为系统会自动的判断应该用什么样的格式来识别。不过知道了我们用的软盘或者光盘的格式,对于挂装一个ISO文件有帮助。

mount -t iso9660 -o loop /home/kris/somewhat.iso /mnt/cdrom

我们都知道现在网上有很多的ISO文件,就是把光盘的所有内容打包成为一个文件,方便网上的传送。我们获得这样的文件以后不一定非要用刻录机把它刻录成为光盘,我们只要用上面的命令就可以把光盘的ISO文件挂载到/mnt/cdrom目录了。第一个参数-t iso9660就是光盘使用的文件系统格式,第二个参数是loopback的意思。

取消挂装:umount /mnt/cdrom

2. 管道命令

管道命令是Linux系统的一个很重要的内容,这里我们只介绍一些简单的。

首先我们已经学过一个命令cat,用来显示一个文件的内容,但是你有没有遇到一个文件很长,一页显示不完的情况?如果你需要把一个很长的文件分页显示,每当你按一个键才显示下一页的话,你可以用more命令:

more LoveLetter
这样,LoveLetter的内容显示在屏幕上,没到一页就自动停下来,等待你的按键,然后才继续显示下面一页。

可是如果我们用ls命令显示一个目录的所有文件的时候遇到一页不能显示完的情况该怎么办?这就需要一个管道符号“|”,就是“\”按钮上面的字符:

ls /dev | more

下面,我们遇到一个新的问题,我们不仅仅想要看看/dev目录下面有哪些文件,我们还希望用一个文件来纪录刚才ls的命令显示的所有结果,难道需要用手工输入?不需要,我们介绍两个管道符号:“>”“>>”,也就是大于符号啦。

ls /dev > filenames.txt

还有一个管道符号是由两个大于号组成的“>>”,它和刚才“>”的区别在于一个大于符号的管道是用来创建一个新的文件filenames.txt,如果已经有了同名的文件就复盖掉以前的内容;而两个大于符号的管道是用来在已经存在的文件后面追加新的内容,如果没有这个文件就创建它。

现在我们vi filenames.txt看看一共有多少行,是不是1000多行啊?我们运行

ls /dev >> filenames.txt

再来vi filenames.txt看看,是不是一共2000多行啦?

其实这两个管道符号很容易记忆,向左边的箭头意思就是把前面命令的内容输入到后面的文件中去,刚才那个“|”管道符号是用来把前面命令的输出结果当作后面一个命令的输入数据。下面我们看一个和刚才“>>”刚刚相反的管道符号“<<”:

cat >> friends << "EOF"
> a
> b
> c
> EOF
运行第一行以后,意思就是把我们接下来的输入内容保存到friends文件里面,当我们输入“EOF”的时候结束。“<<”的意思就是向前面的命令传送一个数据。
中间我象征性的输入了a b c三行,每一行前面的“>”是系统自动产生的提示符号。第四行输入“EOF”系统就保存刚才输入的a b c三行到一个叫做friends的文件里面去。
现在我们cat friends看看是不是刚才的输入成功的保存了。怎么样,同样的命令,使用不同的管道符号,即可以显示文件内容,也可以用来创建文件,这就是管道符号的强大

3. Linux使用技巧(没有整理完成,有待大家的帮助)

Linux中有太多的使用技巧,这里慢慢的总结:
4. 基本命令总结

1) ls

ls --color=never *.txt > report 不显示文字颜色,将所有txt文件记录到report文件中

2) cd
cd ../ 到上一级目录
cd ../.. 到上二级目录
cd ~ 进入用户的个人目录,root用户就是/root目录,kris用户就是/home/kris目录

3) rm
rm -fr 目录名 直接删除一个目录和里面的所有目录,没有任何提示

4) cp
cp 源目录 目标位置 -R 复制原目录里面所有的文件和子目录的内容

5) echo
echo message “我爱你” 在字符界面下面显示一些内容,这里是“我爱你”

6) export
export LC_ALL= 定义一个变量LC_ALL并且设置为空NULL
export LANG=zh_CN.gb2312 定义一个变量LANG的值是zh_CN.gb2312
export http_proxy="http://xxx.xxx.xxx.xxx:port"
定义http代理服务器

7) find
find -iname [目录] 文件名 在指定目录里面(如果不指定目录就是当前目录)查找指定文件名的文件

grep
ps -A | grep some_command

用ps命令加上-A参数显示所有的当前运行的进程,用管道符号“|”加上grep命令检索是否有我们指定的some_command运行

9) lynx
lynx www.google.com

字符界面的网络浏览器,我们这里用来浏览www.google.com,因为没有图片,所以非常快

sutie 发表于 2004-10-28 22:12:13

lilo.conf-lilo的配置文件。
描述
本文件,缺省位置为etc/lilo.conf,由引导装入程序的安装程序
LILO 读取。
其表现可能如下:

boot=/dev/hda
delay=40
compact
vga=normal
root=/dev/hda1
read-only
image=/zImage-2.5.99
label=try
image=/zImage-1.0.9
label=1.0.9
image=/tamu/vmlinuz
label=tamu
root=/dev/hdba
vga=ask
other=/dev/hda3
label=dos
table=/dev/hda

本配置文件指定 LILO 使用在/dev/hda路径上的主引导记录。(关于使
用 LILO 的不同方式以及其与其他操作系统间交互作用,参见 LILO 文档中
的 USER.TEX)

启动时,引导装入程序会等待 4 秒的时间(40 deciseconds)让你按
SHIFT 键。如果未按,则上述提及的第一核心映象(zImage-1.5.99,可能
你5分钟之前才装上的)将被启动。如果按下了SHIFT键则引导装入程序就会
问你要启动哪一个映象。 万一你忘了该选择启动哪个映象, 按(或
[?]如果你有一个美国标准语键盘的话)就会有个菜单给你选择。你在这时
可以选定或者启动这个全新的内核,或者启动一个原来可靠的内核,或一个
在其他根文件系统上的内核 (当你在自己常用的根文件系统上做了什么傻
事),或者启动一个不同的操作系统。在 LILO.CONF 中提及的映象可多达
16 个。

由上可见,一个配置文件以一系列的全局选项开始(如例子中的开始的
6 行),随之是不同映象选项的描述。在映象描述中的选项将会覆盖全局选
项所设定的内容。

全局选项部分

其有许多可能的关键词。下面的描述几乎是照抄于 USER.TEX(仅有少许
缩略)

backup=backup-file

将原引导扇区拷贝到备份文件(其也有可能是一个设备,如/dev/null)
而非/boot/boot.NNNN

boot=boot-device

设定包含引导扇区的设备的名称(如一个硬盘的分区)。如果未指定该
关键字引导扇区将从当前作为根文件系统安装的设备中读取(或者可能
也会写入)。

change-rules

定义引导时对分区类型数的改变('hiding')。详细资料请参看
user.tex 中“分区类型改变规则“一节。

compact

试图将相邻扇区的多次读取请求合并成一次读取请求。这样就大幅度地
减少了读取时间,并使系统描述(MAP)更小。
在从软驱进行读取时尤其要使用 'compact' 选项。

default=name

使用特别指定的映象作为默认的启动映象。如果未设置 'defaul' 选项,
则将使用在该配置文件中最早出现的那个映象作为启动映象。

delay=tsecs

指定引导装入程序在启动第一个映象之前应等待的时间为多少个 10 分
之一秒。这对于在键盘可用后立即从硬盘上启动系统很有用。如果未设
置 'delay' 选项或设为 0,则引导装入程序就不会等待。

disc=device-name

定义特定硬盘的非标准参数。具体细节参见 USER.TEXT 中的硬盘分区结
构一章。其对于定义 'BIOS=' 参数尤其有用。若你的硬盘的 BIOS 数据
是 0x80 ,0x81(十六进制)等等,将无法判断哪一块 Linux 磁盘与哪
一块 BIOS 磁盘相对应(因为这决定于 BIOS 的设置和 BIOS 的类型)。
因此若你采用的是非一般的安装,那你就需要说明 LINUX 磁盘和 BIOS
磁盘间的对应关系。比如:

desk=/dev/sda
bios=0x80
disk=/dev/hda
bios=0x81

就会说明你的 SCSI 盘是第一个 BIOS 盘,而你的(主硬盘)IDE盘是第
二个 BIOS 盘。

disktab=disktab-file

指定磁盘参数表的名称。若未指定“disktab”选项,则磁盘描述(Map)
装入程序会寻找 /etc/disktab 文件。并不提倡disktab选项使用。

fix-table

这个选项使得 LILO 可对分区表上的 3D 地址进行调整。 每个分区表入口
包含有该分区的最前和最后一个扇区的 3D 地址(扇区/磁头/柱面 以及线
性地址。 如果一个分区不是以磁道号定位的, 且某个其他操做系统 (如
PC/MS-DOS 或 OS/2 ) 正在使用同一磁盘,他们就有可能导致 3D 地址的
改变。仅当分区的两个地址类型相一致时 LILO 才能保存其启动扇区。 如
果设定了 'fix-table' 选项,lilo 就可重新调整错误的 3D 地址。

警告:这并不能保证其他的操做系统以后就不会试图重设该地址。也可能
这种变化有其他不可预料的副作用。正确的修改方式是用可以轨道
定位分区的程序来重新对磁盘驱动器分区。并且,对一些磁盘来说
如一些可进行地址转换的大的EIDE磁盘),在某些情况下, 会不
可避免的出现分区表入口相冲突的现象。

force-backup=backup-file

与 'backup' 类似,但若有旧的备份文件存在则会将其覆盖。

ignore-table
ignore-table

告知LILO忽略作废的分区表。

install=boot-file

将指定的文件作为新的引导扇区来安装。若未设置 'install' 选项,则将
boot/boot.b作为默认缺省值使用。

linear

产生线性扇区地址而非“扇区/磁头/柱面”地址。线性地址不依赖于磁盘的
分区结构,且在运行时被翻译。注意如果使了'linear'选项则可能使启动
盘不能被移植,这是因为BIOS中用于决定磁盘分区结构的服务对软盘的作
用不稳定。在对大硬盘使用'linear'选项时,由于3D扇区地址在启动前是
未知的,故 /sbin/lilo 可能会产生对不可访问的磁盘区域的一个参考。

lock

允许自动记录引导命令行,作为以后启动的默认缺省值。这样,在手工取
消之前lilo会锁定一个选项。

map=map-file
map=map-file

定位磁盘描述(MAP)文件。若未指定 'map' 选项,就会使用 /boot/map
文件。

message=message-file

指定一个含有在运行启动提示符前显示的信息的文件。在显示出 'LILO' 后
等待按键的时间里不会有信息显示。在信息中,用FF字符()
清空本地显示器。信息文件的大小限制在65535字节以内。如果信息文件被
改动或取消则必须重建磁盘描述(Map)文件。

nowarn

使关于以后可能危害的警告失效。

optional

使单一映象选项 'optional' (见后)应用于所有映象。

password=password

使单一映象选项 'password=...' (见后)应用于所有映象。

prompt forces

不等待任何的按键事件发生就直接进入启动提示符模式。如设定了 'promp'
选项而没设定 'timeout' 选项,则不能自行启动。

restricted

使单一映象选项'restricted'(见后)应用于所有映象。

serial=parameters

允许使用来自串行口的控制。指定的串行口将会被初始化,引导装入程序就
会从该串行口及PC键盘接受输入。在串行线上发送暂停(break)指令和按
下键盘上的 SHIFT 键的效果是一致的,都会引起引导装入程序的注意。如
果串行线比键盘输入更不安全,如该线与 MODEM 相连时,则所有启动映象
都应设密码加以保护。参数串的格式如下:

[,[[]]]

:表串行口的数目,最小为0。
0对应于COM1并指定为/dev/ttyS0,等等。
所有四个端口均可用(如果可以使用的话)。

:串行口的比特率。
以下比特率可被支持:110,150,300,600,1200,2400,4800
及9600bps。
默认值是2400bps。

:表在串行口上使用的奇偶效验。引导装入程序忽略输入的奇偶效
验位,并除去第八位。以下字符可用来描述奇偶效验:
n表示无相同,e表示偶数的相同,o表示奇数的相同。

:在一个字符中的位的数目。仅支持7或8位。
若奇偶效验是 'none' 则默认是8,
若奇偶效验是'even'或'odd',则默认是7。

若设定了'serial'选项,则'delay'的值就自动上升为20。
例如:serial=0,2400n8就会用缺省值参数来安装COM1。

timeout=tsecs

为键盘输入设定一个超时选项(以10分之一秒为单位)。若在指定的时间
内没有按键则第一个映象就会被自动启动。同样,如过用户停顿过长则密
码输入就会被取消。默认的超时值是无限。

verbose=level

用以打开大量的进程报告。数目越大则给出的冗长输出越多。如果在 LILO
命令行中附加参数 -v,则冗长标准也相应增加。最大的冗长标准是5。

另外,内核配置参数 append,ramdisk,read-only,read-write,root以
及vga都可在全局选项中被设定。如果在相应的核心映象的配置栏中没对其加以
指定,该设定值其就会被用做默认的缺省值。

单一映象部分

一个单一映象或者以一行
image=pathname
开始(以提示含有一个LINUX内核的启动映象的文件或设备),或以一行
other=pathname
开始以提示启动其他独立的系统。

在前一例中,如果一个映象行指定是从一个设备启动,则必须用
range=start-end
提示被描述的扇区范围。

在后一例中,有3个选项可供选择。

laoder=chain-loader

该参数指定了将使用的连锁装入程序。使用默认缺省/boot/chain.b。
如果是从其他设备而非第一硬盘或软盘启动则必须指定连锁装入程序。

table=device

其指定含有分区表的设备。若未指定该参数,引导装入程序就不会把分
区信息传送到已启动的操做系统。(一些操做系统有其他的方式来决定
从哪个分区来启动。如,MS-DOS将其的启动盘分区结构或分区保存到引
导扇区里)。应注意若一个已定位且引用了 'table' 选项的分区表被
修改则必须重新运行/sbin/lilo文件程序。s

unsafe

在创立磁盘描述(Map)时不要访问启动扇区。 这将取消一些正确性检
查,包括分区表检查。如果启动扇区是在一个固定格式化的软盘驱动器
上,则在运行定位装载程序时使用 unsafe 选项就不需插入可读取的磁
盘到驱动器里。

以下选项在这两例中均可运用。

label=name

引导装入程序使用每个映像说明的主文件名(不包含路径)来标识该映像。
通过设定变量'label'可使用不同的名称。

alias=name

通过指定一个别名可对同一个目录使用第二名称。

lock(见前)

optional

删去在磁盘描述表创立时不可用的映像。这对于在指明测试并不总是可用的
内核很有用。
password=password

用密码保护映像。


restricted

若是在命令行被指定各参数则只在启动映像使需要输入密码。

内核选项部分

如果被启动的映像是一个LINUX内核,则可以将命令行参数传送到该内核。

append=string

将指定的各选项增加到传送于内核的参数行。其典型的运用于指定不能完全
自检或彻查对其有危害的硬盘的参数。比如:
append="hd=64,32,202"

literal=string

与 'append' 类似,但会取消所有其他选项(如根驱动器的设定)。由于用
'literal' 选项可在无意之间删掉重要的选项,故该选项不能设在全局选项
中。

ramdisk=size


该选项指定了任选RAM磁盘的大小。0 表示不应创立任何RAM磁盘。若不指定
该参数,则使用在根文件系统中建立的RAM磁盘大小。

read-only

该参数指定根文件系统应该以只读的形式装载。典型的是,该系统的起始程
序稍后将以可读写方式重新装载根文件系统。

read-write

其指定根文件系统应以可读写方式装载。

root=root-device

该参数指定应作为根文件系统装载的设备。如果目前使用的是指定的名称,
则根驱动器就设在根文件系统目前所在的设备上。如果根设备被 -r 参数所
修改,则使用相应的设备。若未指定 'root' 参数,则使用包含核心映象的
根设备设置(该设置是编译内核时在内核的 Makefile 文件中用 ROOT_DEV
变量设定的,并稍后可用 rdev(8)程序修改)

vga=mode


其指定在启动时应选择的 VGA 文本模式。 下列数值可被识别 (忽略大小
写):
normal:选择普通 80x25 文本模式。

extent(或ext):选择 80x50 文本模式。

ask:停止并要求用户的输入(在启动时)

:使用相应的文本模式。在启动时用vga=ask选项或按

都可获得一个可用模式的列表。

若未指定该参数,则使用在核心映像中获得的 VGA 文本环境。(该设置是
编译内核时在内核的 makefile 文件中用 SVGA_MODE 变量设定的,稍后可
用 rdev(8)程序修改)

参见

lilo,rdev(8)。
lilo的发布版本来源于广泛的文件,以上部分只是这些文件的选录。

sutie 发表于 2004-10-28 22:14:42

Samba使用大全
-samba服务器
Samba协议基础
  在NetBIOS出现之后,Microsoft就使用NetBIOS实现了一个网络文件/打印服务系统,这个系统基于NetBIOS设定了一套文件共享协议,Microsoft称之为SMB(Server Message Block)协议。这个协议被Microsoft用于它们Lan Manager和Windows NT服务器系统中,实现不同计算机之间共享打印机、串行口和通讯抽象(如命名管道、邮件插槽等)。
  随着Internet的流行,Microsoft希望将这个协议扩展到Internet上去,成为Inter net上计算机之间相互共享数据的一种标准。因此它将原有的几乎没有多少技术文档的SMB协议进行整理,重新命名为 CIFS(Common Internet File System),并打算将它与NetBIOS相脱离,试图使它成为Internet上的一个标准协议。
因此,为了让Windows和Unix计算机相集成,最好的办法即是在Unix计算机中安装支持SMB/CIFS协议的软件,这样Windows客户就不需要更改设置,就能如同使用Windows NT服务器一样,使用Unix计算机上的资源了。Samba是用来实现SMB的一种软件,它的工作原理是,让NETBIOS(Windows95网络邻居的通讯协议)和SMB(Server Message Block)这两个协议运行于TCP/IP通信协议之上,并且使用Windows的NETBEUI协议让Unix计算机可以在网络邻居上被Windows计算机看到。它的功能有:
1.共享Linux磁盘给Win95/NT
2.共享Win95/NT磁盘给Linux机器
3.共享Linux打印机给win95/NT
4.共享win95/NT打印机给Linux机器。
同时它的文件服务功能比NT系统还高,而且在Windows2000之前就提供了用户磁盘空间限制的功能。
Samba的配置
在我写这篇文章的时候,Samba的版本已经到了2.2.2了,需要的可以通过ftp://samba.org/pub/samba/Binary_Pa...011013.i386.rpm得到最新的rpm安装包。然后执行rpm -Uvh samba-2.2.2-20011013.i386.rpm来安装或者升级它。安装完后,可以看见/etc/samba这么一个目录,里面存放和Samba相关的一些文件,最主要的是smb.conf,现在根据配置文件讲讲它的配置选项:
全局设置:
workgroup = MYGROUP
定义该Samba服务器所在的工作组或者域(如果下面的security=domain的话)。
server string = MY Samba Server
设定机器的描述,当我们通过网络邻居访问的时候可以在备注里面看见这个内容,而且还可以使用samba设定的变量。这里说一下samba定义的变量:
%S = 当前服务名(如果有的话)
%P = 当前服务的根目录(如果有的话)
%u = 当前服务的用户名(如果有的话)
%g = 当前用户说在的主工作组
%U = 当前对话的用户名
%G = 当前对话的用户的主工作组
%H = 当前服务的用户的Home目录
%v = Samba服务的版本号。
%h = 运行Samba服务机器的主机名
%m = 客户机的NETBIOS名称
%L = 服务器的NETBIOS名称
%M = 客户机的主机名
%N = NIS服务器名
%p = NIS服务的Home目录
%R = 说采用的协议等级(值可以是CORE, COREPLUS, LANMAN1, LANMAN2,NT1)
%d = 当前服务进程的ID
%a = 客户机的结构(只能识别几项:Samba,WfWg,WinNT,Win95)
%I = 客户机的IP
%T = 当前日期和时间
hosts allow = 网络或者主机
这里可以设置允许访问的网络和主机IP,比如允许192.168.1.0/24和192.168.2.1/32访问,就用host allow = 192.168.1. 192.168.2.1 127.0.0.1(网络注意后面加”.”号,各个项目间用空格隔开,记得把本机也加进去)
printcap name = printcapFile
到printcapFile(一般是/etc/printcap)这个文件中取得打印机的描述信息
load printers = yes|no
设定是否自动共享打印机而不用设置下面的一节的相关东西
printing = PrintSystemType
定义打印系统的类型,缺省是lprng,可选项有:bsd, sysv, plp, lprng, aix, hpux, qnx。
guest account = pcguest
定义游客帐号,而且需要把这个帐号加入/etc/passwd,不然它就用缺省的nobody
log file = LogFileName
定义记录文件的位置LogFileName(一般是用/var/log/samba/%m.log)
max log size = size
定义记录文件的大小size(单位是KB,如果是0的话就不限大小)
security = security_level
定义Samba的安全级别,按从低到高分为四级:share,user,server,domain。它们对应的验证方式如下:
share:没有安全性的级别,任何用户都可以不要用户名和口令访问服务器上的资源。
user:samba的默认配置,要求用户在访问共享资源之前资源必须先提供用户名和密码进行验证。
server:和user安全级别类似,但用户名和密码是递交到另外一个服务器去验证,比如递交给一台NT服务器。如果递交失败,就退到user安全级。
domain:这个安全级别要求网络上存在一台Windows的主域控制器,samba把用户名和密码递交给它去验证。
后面三种安全级都要求用户在本Linux机器上也要系统帐户。否则是不能访问的。
password server =
当前面的security设定为server或者domain的时候才有必要设定它。
password level = n
这是设定针对一些SMB客户像OS/2之类而设的,这样的系统在发送用户密码的时候,会把密码转换成大写再发送,这样就和samba的密码不一致,这个参数可以设定密码里允许的大写字母个数,这样samba就根据这个数目对接收到的密码进行大小写重组,以重组过的密码尝试验证密码的正确性。n越大,组合的次数就越多,验证时间就越长,安全性也会因此变得越低。例如n=2,用户的密码是abcd,但发送出去其实是ABCD,samba就会把这个ABCD进行大小写重组,组合后的结果可以是: Abcd, aBcd, abCd, abcD, abcd, ABcd, AbCd, AbcD,aBCd,aBcD,abCD。
所以如果没有必要,就把n定为是零。这样的话samba只尝试两次,一个是接收到的密码,另一个尝试的是这个密码都是小写的情况。
username level = n
这个是对于用户名的情况,说明和上面一项类似。
encrypt passwords = yes|no
设置是否对密码进行加密,samba本身有一个密码文件/etc/samba/smbpasswd,如果不对密码进行加密则在验证会话期间客户机和服务器之间传递的是明文密码,samba直接把这个密码和Linux里的/etc/samba/smbpasswd密码文件进行验证。但是在Windows 95 OS/R2以后的版本和Windows NT SP3以后的版本缺省都不传送明文密码,要让这些系统能传送明文密码必须在其注册表里更改,比较麻烦,好的方法就是把这里的这个开关设置为yes。
smb passwd file = smbPasswordFile
设置存放samba用户密码的文件smbPasswordFile(一般是/etc/samba/smbpasswd)。
ssl CA certFile = sslFile
当samba编译的时候支持SSL的时候,需要指定SSL的证书的位置(一般在/usr/share/ssl/certs/ca-bundle.crt)。
unix password sync = yes|no
passwd program = /usr/bin/passwd %u
passwd chat = *New*UNIX*password* %n
*ReType*new*UNIX*password* %n
*passwd:*all*authentication*tokens*updated*successfully*
这三项设置能否从windows的应用程序修改unix系统的用户密码
username map = UsermapFile
指定用户映射文件(一般是/etc/samba/smbusers),当我们在这个文件里面指定一行root = administrator admin的时候,客户机的用户是admin或者administrator连接时会被当作用户root看待。
include = MachineConfFile
指定对不同机器的连接采用不同的配置文件MachineConfFile(一般为了灵活管理使用/etc/samba/smb.conf.%m,由于采用了samba的变量,把配置文件和客户机的NETBIOS名称关联起来,能很容易地控制这些客户机的权限和设置)。
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
这个是网络socket方面的一些参数,能实现最好的文件传输性能。相关的选项还有SO_KEEPALIVE、 SO_REUSEADDR、SO_BROADCAST、IPTOS_LOWDELAY、IPTOS_THROUGHPUT、SO_SNDLOWAT(*)、SO_RCVLOWAT(*),带*号的要指定数值。一般如果在本地网络,就只用IPTOS_LOWDELAY,如果是有一个本地网络的,就用IPTOS_LOWDELAY TCP_NODELAY,如果是广域网络,就试试IPTOS_THROUGHPUT。
interfaces = interface1 interface2
如果有多个网络接口,就必须在这里指定。如interface = 192.168.12.2/24 192.168.13.2/24
remote browse sync = host(subnet)
这里指定浏览列表同步信息从哪里取得, 如果用host(比如192.168.3.25)或者整个子网(192.168.5.255)。
★这里说明一下什么是浏览(Browse):
在SMB协议中,计算机为了访问网络资源,就需要了解网络上存在的资源列表(例如在Windows下使用网络邻居查看可以访问的计算机),这个机制就被称为浏览(Browse)。虽然SMB协议中经常使用广播的方式,但如果每次都使用广播的方式了解当前的网络资源(包括提供服务的计算机和各个计算机上的服务资源),就需要消耗大量的网络资源和浪费较长的查找时间,因此最好在网络中维护一个网络资源的列表,以方便查找网络资源。只有必要的时候,才重新查找资源,例如使用Windows下的查找计算机功能。
  但没有必要每个计算机都维护整个资源列表,维护网络中当前资源列表的任务由网络上的几个特殊计算机完成的,这些计算机被称为Browser,这些Browser通过记录广播数据或查询名字服务器来记录网络上的各种资源。
Browser并不是事先指定的计算机,而是在普通计算机之间通过自动进行的推举产生的。不同的计算机可以按照其提供服务的能力,设置在推举时具备的不同权重。为了保证一个Browser停机时网络浏览仍然正常,网络中常常存在多个Browser,一个为主Browser(Master Browser),其他的为备份Browser。★
remote announce = host(subnet)
指定这些机器向网络宣告自己,而不是有Browser得到。
local master = yes|no
这个参数指定nmbd是否试图成为本地主浏览器,默认值是yes,如果设为no则samba服务器就永远都不会成为本地主浏览器。但即使设置了yes,也不等于samba服务器就会成为本地主浏览器。只是参与本地主浏览器选择。
os level = n
n的值是个整数,决定了nmbd是否有机会成为本地广播区域的工作组里的本地主浏览器,默认值是零,零则意味着nmbd失去浏览选择。如果要nmbd更有机会成为本地主浏览器的话,可以设为65。
domain master = yes|no
这个参数让nmbd成为一个域浏览器,取得各本地主浏览器的浏览列表,并将整个域的浏览列表递交给各本地主浏览器。
preferred master = yes|no
这个参数指定nmbd是否是工作组里的首要的主浏览器,如果指定为yes,nmbd在启动的时候就强制一个浏览选择。
★Domain master和local master
工作组和域这两个概念在进行浏览时具备同样的用处,都是用于区分并维护同一组浏览数据的多个计算机。事实上他们的不同在于认证方式上,工作组中每台计算机都基本上是独立的,独立对客户访问进行认证,而域中将存在一个(或几个)域控制器,保存对整个域中都有效的认证信息,包括用户的认证信息以及域内成员计算机的认证信息。浏览数据的时候,并不需要认证信息,Microsoft将工作组扩展为域,只是为了形成一种分级的目录结构,将原有的浏览和目录服务相结合,以扩大Mircrosoft网络服务范围的一种策略。
工作组和域都可以跨越多个子网,因此网络中就存在两种Browser,一种为Domain Master Browser ,用于维护整个工作组或域内的浏览数据,另一种为Local Master Browser,用于维护本子网内的浏览数据,它和Domain Master Browser通信以获得所有的可浏览数据。划分这两种Browser 主要是由于浏览数据依赖于本地网广播来获得资源列表,不同子网之间只能通过浏览器之间的交流能力,才能互相交换资源列表。
但是,为了浏览多个子网的资源,必须使用NBNS名字服务器的解析方式,没有NBNS的帮助,计算机将不能获得子网外计算机的NetBIOS名字。Local Master Browser也需要查询NetBIOS名字服务器以获得Domain Master Browser的名字,以相互交换网络资源信息。
由于域控制器在域内的特殊性,因此域控制器倾向于被用做Browser,主域控制器应该被用作Domain Master Browser,他们在推举时设置的权重较大。★
preserve case = yes|no
short preserve case = yes|no
指定拷贝DOS文件的时候保持大小写,缺省是no
default case = lower|upper
所有的DOS文件的缺省是大写还是小写
case sensitive = yes|no
大小写敏感,一般是no,不然会出现一些问题。
共享设置:
★共享资源:
每个SMB服务器能对外提供文件或打印服务,每个共享资源需要被给予一个共享名,这个名字将显示在这个服务器的资源列表中。如果一个资源的名字的最后一个字母为$,则这个共享名就为隐藏共享,不能直接表现在浏览列表中,而只能通过直接访问这个名字来进行访问。在SMB协议中,为了获得服务器提供的资源列表,必须使用一个隐藏的资源名字IPC$来访问服务器,否则客户无法获得系统资源的列表。★
共享设置中有个比较奇怪的段:
,在smb.conf文件中一般没有对这个目录的设定特定内容比如路径等。当客户机发出服务请求时,就在smb.conf文件的其它部分查找友特定内容的服务。如果没有发现这些服务,并且提供了homes段时,那么就搜索密码文件得到用户的Home目录。通过Homes段,Samba可以得到用户的Home目录并使之共享。下面是这个段的最基本的几个设置。

comment=Home Directory
browseable=no
writable=yes
比较正常的共享的配置如下例:

comment = grind’s file
path = /home/grind
allow hosts = host(subnet)
deny hosts = host(subnet)
writable = yes|no
user = user(@group)
valid users = user(@group)
invalid users = user(@group)
read list = user(@group)
write list = user(@group)
admin list = user(@group)
public = yes|no
hide dot files = yes|no
create mode = 0755
directory mode = 0755
sync always = yes|no
short preserve case = yes|no
preserve case = yes|no
case sensitive = yes|no
mangle case = yes|no
default case = upper|lower
force user = grind
wide links = yes|no
max connections = 100
delete readonly = yes|no
其中[]里面的MyShare指定共享名,一般就是网络邻居里面可以看见的文件夹的名字。
comment指的是对改共享的备注。
path指定共享的路径,其中可以配合samba变量使用。比如你可以指定path=/data/%m,这样如果一台机器的NETBIOS名字是grind,它访问MyShare这个共享的时候就是进入/data/grind目录,而对于NETBIOS名是glass的机器,则进入/data/glass目录。
allow hosts和deny hosts和前面的全局设置的方法一样这里不再提及。
writeable指定了这个目录缺省是否可写,也可以用readonly = no来设置可写。
user设置所有可能使用该共享资源的用户,也可以用@group代表group这个组的所有成员,不同的项目之间用空格或者逗号隔开。
valid users指定能够使用该共享资源的用户和组。
invalid users指定不能够使用该共享资源的用户和组。
read list 指定只能读取该共享资源的用户和组。
write list指定能读取和写该共享资源的用户和组。
admin list指定能管理该共享资源(包括读写和权限赋予等)的用户和组。
public指明该共享资源是否能给游客帐号访问,这个开关有时候也叫guest ok,所以有的配置文件中出现guest ok = yes其实和public = yes是一样的。
hide dot files指明是不是像unix那样隐藏以“.”号开头的文件。
create mode指明新建立的文件的属性,一般是0755。
directory mode指明新建立的目录的属性,一般是0755。
sync always指明对该共享资源进行写操作后是否进行同步操作。
short preserve case指明不管文件名大小写。
preserve case指明保持大小写。
case sensitive指明是否对大小写敏感,一般选no,不然可能引起错误。
mangle case指明混合大小写。
default case指明缺省的文件名是全部大写还是小写。
force user强制把建立文件的属主是谁。如果我有一个目录,让guest可以写,那么guest就可以删除,如果我用force user= grind强制建立文件的属主是grind,同时限制create mask = 0755,这样guest就不能删除了。
wide links指明是否允许共享外符号连接,比如共享资源里面有个连接指向非共享资源里面的文件或者目录,如果设置wide links = no将使该连接不可用。
max connections = n设定同时连接数是n。
delete readonly指明能否删除共享资源里面已经被定义为只读的文件。
有两类特殊的共享,分别是光驱和打印机
光驱的共享设置:

comment = grind’s cdrom
path = /mnt/cdrom
public = yes
browseable = yes
root preexec = /bin/mount -t iso9660 /dev/cd0 /mnt/cdrom
root postexec = /bin/umount /mnt/cdrom
这里root preexec指明了连接时用root的身份运行mount命令,而root postexec则指明了断开时用root身份运行umount,有效实现了对光驱的共享。
打印机共享的设置:

path = /var/spool/samba
writeable = no
guest ok = yes
printable = yes
printer driver = HP LaserJet 5L
这里printable指明该打印机可以打印, guest ok说明游客也能打印,path指明打印的文件队列暂时放到/var/spool/samba目录下。printer driver的作用是指明该打印机的类型,这样我们在安装网络打印机的时候可以直接自动安装驱动而不必选择。
添加用户:
samba添加用户比较方便,一般是用smbadduser,用法是smbadduser unixid:netid,举个例子:如果你的本机有个叫grind的用户,你用smbadduser grind:grind,这样从网上邻居访问的时候用户名就用grind,而如果你用了smbadduser grind:glass的话,网上邻居访问的时候提供的用户名就是glass而不是grind了。
关于samba服务端的设置基本就是这些,我想一般应用中所要使用的上面几乎都覆盖到了,所以有些不重要的就省略了,如果要更加详细的信息可以用man smb.conf参考。/dev/null
3.mf_wrapper是一个magic filter文件,是相关的一些过滤规则。内容是:
MF_RULE_DIR='/usr/share/printconf/mf_rules'
MF_RULES=$MF_RULE_DIR/mf[[:digit:]][[:digit:]]-*
TMP_FILE=`mktemp /tmp/printconf.XXXXXX`' 'exit 1
cat ./mf.cfg $MF_RULES | m4 > $TMP_FILE
if [ -n "$DEBUG" ]; then
case "$DEBUG" in
2)
DEBUGSTRING="--debug --debug"
;;
3)
DEBUGSTRING="--debug --debug --debug"
;; 4)
DEBUGSTRING="--debug --debug --debug --debug"
;;
5)
DEBUGSTRING="--debug --debug --debug --debug --debug"
;;
*)
DEBUGSTRING="--debug"
;;
esac
else
DEBUGSTRING=""
fi
# Run magic filter
/usr/bin/magicfilter-t $TMP_FILE $DEBUGSTRING $*
接下来的操作和ftp的时候命令一样,用get下载文件而用put上传文件,命令可以用help查看。
还有一种方法是用文件系统的方式(这种方式要确定你的内核支持smbfs,如果没有支持的话,编译内核的时候必须选中File systems--->Network File Systems---> SMB file system support (to mount Windows shares etc.) ):
smbmount //IP或者NETBIOS名称/共享资源名 /本地挂接点 [-o option]
常用的的option有username=,password=,guest(指定为用guest访问,不用提供密码,前面的即使用username=guest参数的话也会要求输入密码),ro(有时候为了系统安全要指定为只读模式),rw,同时多个option的话用逗号隔开。
或者可以用mount -t smbfs [-o option] //IP或者NETBIOS名称/共享资源名 /本地挂接点来实现同样的功能。
例子如下:
smbmount //glass/littlep /test -o guest或者mount -t smbfs -o guest //glass/littlep /test,然后就能通过访问/test来使用网络上的资源了。
如果不需要使用的时候,可以简单地使用smbumount /test或者umount /test来解除这个挂接。
关于samba的功能(共享Linux磁盘给Win95/NT、共享Linux打印机给win95/NT、共享win95/NT打印机给Linux机器。、共享Win95/NT磁盘给Linux机器),前面两个属于samba服务器的内容而后两个属于samba客户段的内容,在我的两篇文章中都有介绍了他们的实现方法,但是samba实在是一个强大的工具,无法十分详细地介绍它地全部功能,而且限于笔者的知识有限,有不到之处请各位指出,还望各位多多交流。

sutie 发表于 2004-10-28 22:18:23

没办法,偶也是今天才看到 :oops::oops:

sutie 发表于 2004-10-28 22:19:24

##################
# GRUB的优点 #
##################
GRUB 是引导装入器(boot loader) -- 它负责装入内核并引导 Linux 系统。GRUB 还可以引导其它操作系统,如 FreeBSD、NetBSD、OpenBSD、GNU HURD 和 DOS,以及 Windows 95、98、NT 和 2000。尽管引导操作系统看上去是件平凡且琐碎的任务,但它实际上很重要。如果引导装入器不能很好地完成工作或者不具有弹性,那么就可能锁住系统,而无法引导计算机。另外,好的引导装入器可以给您灵活性,让您可以在计算机上安装多个操作系统,而不必处理不必要的麻烦。
GRUB 是一个很棒的boot loader。它有许多功能,可以使引导过程变得非常可靠。例如,它可以直接从 FAT、minix、FFS、ext2 或 ReiserFS 分区读取 Linux 内核。这就意味着无论怎样它总能找到内核。另外,GRUB 有一个特殊的交互式控制台方式,可以让您手工装入内核并选择引导分区。这个功能是无价的:假设 GRUB 菜单配置不正确,但仍可以引导系统。哦,对了 -- GRUB 还有一个彩色引导菜单。

更令人惊讶的是,这是一个自由软件!!!



##################
# GRUB菜单 #
##################
先来看一个例子,这是位于/boot/grub/目录下的menu.lst文件。
此文件将在开机是产生一个菜单,包含有Debian linux,Windows2000,RedHat linux和 Mandrake linux,共四个选择项。我一共分了8个区,一个fat16(0x6),一个ntfs(0x7),三个ext2fs分区(0x83),一个swap分区(0x82)。ntfs用来装win2000,三个ext2fs装了三个linux,c盘fat16分区没有装任何东西。
#例子由此开始

######################
# #
# 一个GRUB configure 的例子 #
# #
######################

timeout 10
default 2


# --> Debian linux <--

title Debian linux
root (hd0,2)
kernel /boot/vmlinuz-2.2.18 root=/dev/hda3 ro
initrd /boot/initrd-2.2.18.gz


# --> Debian END <--

# --> Windows 菜单选项 <--

title Windows2000
root (hd0,0)
chainloader +1

# --> Winddows 结束 <--

# --> RedHat linux 菜单选项 <--

title RedHat linux
root (hd0,
chainloader +1 # 在硬盘主引导分区装了lilo,所以也用了chainloader。

# --> RedHat linux 结束 <--

# --> Mandrake linux 菜单选项 <--

title Mandrake linux
root (hd0,5)
kernel /boot/vmlinuz-2.4.3-20mdk root=/dev/hda6 ro
initrd /boot/initrd-2.4.3-20mdk.img

# --> Mandrake linux 结束 <--


#例子到此结束

以符号井"#"开头的行表示被注释掉,没有任何意义。

timeout表示默认等待的时间,这儿是10秒钟。超过10秒,用户还没有作出选择的话,系统将自动选择默认的操作系统。

默认的操作系统就是由default控制的。default后加一个数字n,表明是第n+1个。需要注意的是,GRUB中,计数是从0开始的,第一个硬盘是hd0,第一个软驱是fd0,等等。所以,default 2 表示默认的操作系统在这儿是 Redhat linux。

接下来,正如你所想象的,title表示的是“Debian linux”菜单项。root (hd0,2)表示第一个硬盘,第三个分区。这儿的root 于linux的root分区及其不同,此root非彼root也!

在 Linux 中,当谈到 "root" 文件系统时,通常是指主 Linux 分区。但是,GRUB 有它自己的 root 分区定义。GRUB 的 root 分区是保存 Linux 内核的分区。这可能是您的正式 root 文件系统,也可能不是。我们讨论的是 GRUB,需要指定 GRUB 的 root 分区。进入 root 分区时,GRUB 将把这个分区安装成只读型,这样就可以从该分区中装入 Linux 内核。GRUB 的一个很“酷”的功能是它可以读取本机的 FAT、FFS、minix、ext2 和 ReiserFS 分区。

到目前为止,您可能会感到一点疑惑,因为 GRUB 所使用的硬盘/分区命名约定与 Linux 使用的命名约定不同。在 Linux 中,第一个硬盘的第五个分区称作 "hda5"。而 GRUB 把这个分区称作 "(hd0,4)"。GRUB 对硬盘和分区的编号都是从 0 开始计算。另外,硬盘和分区都用逗号分隔,整个表达式用括号括起。现在,可以发现如果要引导 Linux 硬盘 hda5,应输入 "root (hd0,4)"。

知道了内核在哪儿,还要具体指出哪个文件是内核文件,这就是kernel的工作。
kernel /boot/vmlinuz-2.2.18 root=/dev/hda3 ro说明/boot/vmlinuz-2.2.18 就是要载入的内核。后面的都是传递给内核的参数。root=/dev/hda3就是linux的硬盘分区表示法,ro是以readonly的意思。
initrd用来初始的linux image,并设置相应的参数。

是不是感觉很简单啊!再来看一看windows的定义段吧。
这里,我添加了一项来引导 Windows2000。要完成此操作,GRUB 使用了“链式装入器”(chainloader)。链式装入器从分区 (hd0,0) 的引导记录中装入 win2000 自己的引导装入器,然后引导它。这就是这种技术叫做链式装入的原因 -- 它创建了一个从引导装入器到另一个的链。这种链式装入技术可以用于引导任何版本的 DOS 或 Windows。

我的RedHat linux在硬盘主引导分区装了lilo,所以也用了chainloader。

GRUB的配置文件要简单就这么简单,如果你要更个性化一点,试一试把“color light-gray/blue ”加在default语句的下面,下一次启动GRUB时,看看有什么变化,再试一试“color light-blue/red",惊喜吗? 有趣吧!

######################
# GRUB的交互性 #
######################




GRUB 最好的优点之一就是其强健的设计 -- 在不断使用它时请别忘了这点。如果更新内核或更改它在磁盘上的位置,不必重新安装 GRUB。事实上,如有必要,只要更新 menu.lst 文件即可,一切将保持正常。

只有少数情况下,才需要将 GRUB 引导装入器重新安装到引导记录。首先,如果更改 GRUB root 分区的分区类型(例如,从 ext2 改成 ReiserFS),则需要重新安装。或者,如果更新 /boot/grub 中的 stage1 和 stage2 文件,由于它们来自更新版本的 GRUB,很有可能要重新安装引导装入器。其它情况下,可以不必理睬!

GRUB的最大的特点就是交互性特别强。在开机时,按一下“c”,将进入GRUB 控制台。显示如下:

GRUB version 0.5.96.1 (640K lower / 3072K upper memory)

[ Minimal BASH-like line editing is supported. For the first word, TAB
lists possible command completions. Anywhere else TAB lists the possible
completions of a device/filename. ]

grub>

欢迎使用 GRUB 控制台。现在,再研究命令:
我将通过GRUB 控制台绕过lilo来启动RedHat linux,

grub> root (h

现在,按一次 Tab 键。如果系统中有多个硬盘,GRUB 将显示可能完成的列表,从 "hd0" 开始。如果只有一个硬盘,GRUB 将插入 "hd0,"。如果有多个硬盘,继续进行,在 ("hd2") 中输入名称并在名称后紧跟着输入逗号,但不要按 Enter 键。部分完成的 root 命令看起来如下:

grub> root (hd0,

现在,继续操作,再按一次 Tab 键。GRUB 将显示特定硬盘上所有分区的列表,以及它们的文件系统类型。在我的系统中,按 Tab 键时得到以下列表:

grub> root (hd0, (tab,按tab一下键)
Possible partitions are:
Partition num: 0, Filesystem type is fat, partition type 0x6
Partition num: 2, Filesystem type is ext2fs, partition type 0x83
Partition num: 4, Filesystem type unknown, partition type 0x7
Partition num: 5, Filesystem type is ext2fs, partition type 0x83
Partition num: 6, Filesystem type is fat, partition type 0xb
Partition num: 7, Filesystem type is fat, partition type 0xb
Partition num: 8, Filesystem type is ext2fs, partition type 0x83
Partition num: 9, Filesystem type unknown, partition type 0x82

如您所见,GRUB 的交互式硬盘和分区名称实现功能非常有条理。这些,只需要好好理解 GRUB 新奇的硬盘和分区命名语法,然后就可以继续操作了
grub> root (hd0,
现在已安装了 root 文件系统,到装入内核的时候了

grub> kernel /boot/vmlinuz-2.4.2 root=/dev/hda5 ro


您已经安装了 root 文件系统并装入了内核。现在,可以引导了。只要输入 "boot",Linux 引导过程就将开始。是不是很cool啊,GRUB的menu.lst更像一个linux下的脚本程序。


#####################
# GRUB启动盘 #
#####################
要制作引导盘,需执行一些简单的步骤。首先,在新的软盘上创建 ext2 文件系统。然后,将其安装,并将一些 GRUB 文件复制到该文件系统,最后运行 "grub" 程序,它将负责设置软盘的引导扇区。准备好了吗?

将一张空盘插入 1.44MB 软驱,输入:

# mke2fs /dev/fd0
创建了 ext2 文件系统后,需要安装该文件系统:

# mount /dev/fd0 /mnt/floppy
现在,需要创建一些目录,并将一些关键文件(原先安装 GRUB 时已安装了这些文件)复制到软盘:

# mkdir /mnt/floppy/boot
# mkdir /mnt/floppy/boot/grub
# cp /boot/grub/stage1 /mnt/floppy/boot/grub
# cp /boot/grub/stage2 /mnt/floppy/boot/grub
再有一个步骤,就能得到可用的引导盘。

在linux bash中,从 root 用户运行“grub”,该程序非常有趣并值得注意,因为它实际上是 GRUB 引导装入器的半功能性版本。尽管 Linux 已经启动并正在运行,您仍可以运行 GRUB 并执行某些任务,而且其界面与使用 GRUB 引导盘或将 GRUB 安装到硬盘 MBR 时看到的界面(即GRUB控制台)完全相同。
在 grub> 提示符处,输入:

grub> root (fd0)
grub> setup (fd0)
grub> quit

现在,引导盘完成了。
如果要把GRUB装到硬盘上,也很容易。这个过程几乎与引导盘安装过程一样。首先,需要决定哪个硬盘分区将成为 root GRUB 分区。在这个分区上,创建 /boot/grub 目录,并将 stage1 和 stage2 文件复制到该目录中,可以通过重新引导系统并使用引导盘,或者使用驻留版本的 GRUB 来执行后一步操作。在这两种情况下,启动 GRUB,并用 root 命令指定 root 分区。例如,如果将 stage1 和 stage2 文件复制到 hda5 的 /boot/grub 目录中,应输入 "root (hd0,4)"。接着,决定在哪里安装 GRUB -- 在硬盘的 MBR,或者如果与 GRUB 一起使用另一个“主”引导装入器,则安装在特定分区的引导记录中。如果安装到 MBR,则可以指定整个磁盘而不必指定分区,如下(对于 hda):

grub> setup (hd0)

如果要将 GRUB 安装到 /dev/hda5 的引导记录中,应输入:

grub> setup (hd0,4)

现在,已安装 GRUB。引导系统时,应该立即以 GRUB 的控制台方式结束(如果安装到 MBR)。现在,应创建引导菜单,这样就不必在每次引导系统时都输入那些命令。



小结:在这里只是介绍了 GRUB 的一部分。例如,可以使用 GRUB 来执行网络引导,引导 BSD 文件系统,或更多操作。另外,GRUB 有许多配置和安全性命令也很有用。如需所有 GRUB 功能的完整描述,请阅读 GRUB 出色的 GNU 文档。只要在 bash 提示中输入 "info grub" 就可以阅读该文档。


有用的一些信息:xosl是一个支持鼠标的图形界面boot loader,可以于system command和boot manager相比,
网址是www.xosl.org。

GRUB的下载:ftp://alpha.gnu.org/gnu/grub/

sutie 发表于 2004-10-28 22:21:17

1.什么是ISO文件
ISO文件:就是以iso为扩展名的文件,它是iso9660文件格式,一种光盘(CD)上的文件系统格式。简单地说,就是数据在数据光盘上的组织形式:
它的特点是:
 1)最多只包含8级子目录(可以用RockRidge Extension增大这个限制)
  2)文件名最大32字符
  3)文件大小不超过650M
2.在Linux下如何使用ISO文件
通常,Linux系统的内核(Kernel)是支持iso9660文件格式的,如果不支持你需重新编译内核增加对其的支持。
你只需简单使用以下命令就可以从/path目录中读到它的内容了:
  mount -t iso9660 -o loop xxx.iso /path
3.如果将其刻成光盘
使用Windows下的光盘刻录软件,它能够直接完成这个工作。
4.在Linux系统中如何制作ISO文件:
  在Linux系统中,我们可以通过拷贝命令,将光驱上的内容拷贝到一个ISO文件中,如:
cp /dev/cdrom xxx.iso

sutie 发表于 2004-10-28 22:22:56

使用Linux的8个经典技巧


1、处理特殊的文件名

假设Linux系统中有一个文件名叫“-ee”,如果我们想对它进行操作,例如要删除它,按照一般的删除方法在命令行中输入rm -ee命令,界面会提示我们是“无效选项”(invalid option),原来由于文件名的第一个字符为“-”,Linux把文件名当作选项了,我们可以使用“--”符号来解决这个问题,输入“rm -- -ee”命令便可顺利删除名为“-ee”的文件。如果是其他特殊字符的话可以在特殊字符前加一个“”符号,或者用双引号把整个文件名括起来。

2、直接进行Linux的安装工作

在安装Linux操作系统时,可以利用该系统光盘中的一个名为“loadlin.exe”的软件,将Linux核心直接调入内存,由Linux核心代替当前操作系统来接管计算机,并进入Linux的安装界面。在安装Linux时,我们只要在运行对话框中输入“loadlin E:imagesvmlinuz root=/dev/ram initrd=E:imagesinitrd.img”这个命令就可以直接安装Linux了;其中“E:imagesvmlinuz”为Linux的核心名。

3、消除Xwindows下的死机现象

我们可以用两个常用的方法来消除这种现象:第一,用键盘上的复合键“Ctrl+Alt+Backspace”来关闭当前正在运行的任务;第二,首先按住键盘上的“Ctrl+Alt+F2”复合键,让系统切换到另一个操作台,然后登录到系统,再执行“#ps -ax/grep startx”命令,这将会列出你的Xserver的进程标识,接着在命令行中输入如下命令就能消除Xwindows下的死机现象:#kill -9 PID_Number,最后通过“Alt+F1”复合键返回到原来的平台。

4、快速关闭Linux系统

最新版本的Linux/UNIX系统借鉴了大型机的技术,采用了抗掉电的日志式文件系统,可以自动跟踪保存用户数据,自动同步刷新文件系统,用户完全可以随手关闭电源,从而达到快速关闭系统的目的。

5、巧妙使用“rm”命令

我们可以使用带“-r”参数的“rm”命令来删除一个非空目录,例如我们在命令行中输入“rm -r bbb”这样的命令,表示系统将把bbb目录中包含的所有文件和子目录全部删除掉。

6、巧妙使用“Tab”键

大家知道在Linux字符界面中输入命令时,有时需要输入很多字符,如果经常这样逐个地输入字符,比较麻烦。假设键入的字符足以确定该目录下一个惟一的文件时,我们只需按键盘上的“Tab”键就可以自动补齐该文件名的剩下部分,例如要把目录/ccc下的文件“ddddddd-1.2.3.tar.gz”解包时,当我们在命令行中键入到“tar xvfz /ccc/d”时,如果该文件是该目录下惟一以“d”打头的文件的话就可以直接按下“Tab”键,这时命令会被自动补齐为:tar xvfz /ccc/ddddddd-1.2.3.tar.gz ,从而提高了输入效率。

7、多用鼠标拷贝与粘贴来提高操作速度

Linux系统安装后,每次启动到字符界面时都会自动运行一个叫“gpm”的程序,该程序运行后就可以用鼠标来拷贝与粘贴了。具体做法是按住鼠标左键拖动使要拷贝的地方突出显示,这时突出显示的区域已经被拷贝,再按鼠标右键拷贝的内容就会被粘贴在光标所在位置了。如果我们在Xwindow下运行Linux系统,拷贝与粘贴的操作与在Windows 9x系统下一样。

8、快速启动Linux系统

在DOS下,有一种简单快速启动Linux的方法,那就是load Linux。loadlin.exe是DOS下的可执行程序,它可以在纯DOS环境下迅速启动Linux,而且无需重启计算机,通常我们可以在光盘的“/kernels”目录下找到这个程序。如果不知这个程序被放置于安装盘的何处,可以使用“find -name loadlin*”命令来寻找。找到之后将其复制到DOS分区中,同时还需要复制一份你所使用的Linux内核文件。可以通过Windows直接从光盘复制,也可在Linux环境下使用“mcopy”命令将文件复制到DOS分区;接着再编写一个名为“Linux.bat”的批处理文件,文件内容如下:c:loadlin c:vmlinuz root=/dev/hda1 ro(我们假设loadlin.exe和vmlinuz这两个内核文件都在c盘根目录下,“root”为Linux的根设备,而且Linux处于硬盘第一分区,所以设备名为“/dev/hda1”,“ro”意为readonly)。以后在DOS下要启动Linux时,运行“Linux.bat”就可以了。

sutie 发表于 2004-10-28 22:23:34

Linux下新手装网卡指南
本文出自:http://www.china-pub.com 作者: 杨园

  本文主要面对新新手,不对任何高难度问题进行讨论,包括双网卡,正常编译了driver也不能用的古怪网卡等.本文的主要目的是告诉新新手,Linux下网卡是怎样被驱动的.本文不讨论安装Linux的问题,假设用户已经成功安Linux,就等驱动网卡.
  第一步--不要再问 Linux下能够装XXX卡么? 这样的问题,Linux是个开放的系统,借助于网络上无数的高手,几乎所有的硬件都能找到支持.
  首先需要指出,Linux下对网卡的支持往往是只对芯片的,所以对某些不是很著名的网卡,往往需要知道它的芯片型号以配置Linux.比如我的Accton 网卡,就不存在Linux的driver,但是因为它是NE2000兼容,所以把它当NE2000就可以在Linux下用了.所以当你有一块网卡不能用,在找Linux的driver之前一定搞清楚这个网卡用的什么芯片,跟谁兼容,比如3c509,ne2000,etherexpress等等.这样的型号一般都在网卡上最大的一快芯片上印着,抄下来就是了.
  最普遍使用也许是最好配的网卡也许就是Ne2000兼容卡了,我用它来作例子.注意实际上很多廉价卡都是NE2000兼容的.
  对于NE2000卡,先要作的一件事情,是将网卡设定为Jumpless模式.很多现在的网卡缺省都是PnP模式,这在95下的确能减少很多麻烦,但是Linux不支持,所以Linux下必须是Jumpless模式.一般所有程序将网卡设为Jumpless.当然如果是老卡,本来就不是PnP,不用管这个.注意,这里主要是ISA的NE2000,关于PCI的NE2000,需要另外设置.
  下来就是得弄清楚网卡的IO地址和IRQ.这是两个非常重要的网卡驱动参数.这个最简单就是还用那个网卡的设定程序,设定完Jumpless之后肯定有地方可以软设定IO和IRQ.老一些的卡得跳线,道理一样.另外一个方法是如果网卡能在95或NT下工作,去95下的control panel里看这个卡的properities,查IO和IRQ.
  OK,到现在,你知道了你的卡是NE2000兼容,知道了它是在Jumpless模式下,知道了IO地址和IRQ,就可以安装了.
  Linux系统与95这些系统不同的一点是它是运行在 内核 上的,所谓内核,就是把系统最核心的部分孤立出来编程,将各种驱动程序,内存控制等部分编在一起.于95不同,Linux得内核是公开的,经常更新的,这样不需要更新整个系统,用户只需要把最新的内核原程序download下来编译,就可以得到一个支持更多硬件,更多文件系统,更安全的系统了.所以需要指出,Linux的Driver很少有象95下那样是 安装 的.Linux下的driver大多数都是以C程序形式发布,或者在内核里,或者需要用户自己修改内核代码.总之要让Driver运行,得重新配置编译内核.如何操作Linux内核是学习Linux中非常重要的一节.Linux的新手最好在这里多下点功夫搞清楚.有关核心的问题建议看Linux How To文档中的kernel How to.
  Anyway, Linux已经装好了,那么用的是什么内核呢?一般缺省的Linux内核是从安装盘上来的.那个内核一般包括大多数硬件的驱动程序,比如Ne2000卡.所以未一定要重新编译内核,也许现有的内核就可以驱动.所以下一步就是把网卡插入计算机,看看Linux能否发现它.这可以从Linux的启动画面中看出来,如果你发现如下的一行:
  eth0:NE2000 card found at 0x300 using IRQ 05
那就说明Linux发现了NE2000卡,在IO 300, IRQ 05的地方.
  如果Linux没有发现你的网卡,但是你确认你网卡得型号和参数,比如我的网卡是NE2000兼容,IO 0x300, IRQ 05.那么可以修改Linux启动文件专门搜索这个设备.这个文件在/etc/rc.d/rc.modules里对于NE2000,是这样的:
  #/sbin/modprobe ne io=0x300 # NE2000 at 0x300
将最前面的#号去掉,再启动机器试试.
  另外该文件里还可以发现对其它系列网卡比如3C系列的autoprobe.
  OK,到现在启动屏幕上也没有出现
  eth0:NE2000 card found at 0x300 using IRQ 05
这样的好消息,那么你就得编译内核了.
  编译内核之前一定要搞清楚的是网卡的芯片号.比如我有一块SMC的网卡,但是我是无法在Linux的内核配置菜单里找到SMC这样的字样的,Linux不是win95,有那么长一串厂商牌号等.我在这个SMC的卡上找到了digital 21140-AE的字眼,于是我知道这个卡用的是DEC 21140-AE芯片,于是按照这个寻找,就找到了驱动.
  知道了芯片类型,或者兼容类型(比如ne2000)就可以开始编译内核了.具体的针对不同系统的内核编译推荐先看看有关内核编译的文章,这里不多作介绍.
  进入/usr/src/linux
  运行make menuconfig进入菜单配置内核.找到Network Device Support.选则EtherNet,再选则相应的芯片号.如果是ISA系线的NE2000,就选则other ISA cards,选则NE2000/NE1000 ISA support.如果是PCI的网卡,就选则PCI ethernet adapters.注意,PCI卡未必都能这样驱动,很多都不行,得另外找driver.比如Intel PCI EtherExpress Pro 100等.
  有关其它选项希望能多自己摸索.多看看help和how-to.
  配置完内核后,运行make dep;make;make zlilo就可以了.如果内核选项过多会出现过大的情况而无法安装.那么需要把一些不必要的驱动去掉.
  一般这样之后再启动就可以发现网卡了.驱动了网卡,下一步就是设定TCP/IP这些东西.这就不是这里的内容了.
  我的经验,Linux下NE2000兼容卡都比较好设.3c系列的卡也都有支持.至于其它卡比如我的DEC 21140就麻烦很多.
  另外有些卡即使用某种芯片也未必就能用这个芯片的驱动,这种情况就是有驱动程序也不能用,就需要上网查了.
  有关Intel Etherexpress系列卡的配置.Linux内核中有Etherexpress 16的支持,但没有其它卡的driver.在http://cesdis.gsfc.nasa.gov/linux/drivers/eepro100.html里有关于EtherExpress 100B pro的讨论.在那里可以download到一个c源码的驱动程序,编译进内核就可以了.
  那么,如果以上都试过了,而你的网卡的确还是不能认,那么你需要上网查driver了.在网上查东西是一门看起来简单实际上极体现经验的学问.建议寻找Linux网卡的driver从http://cesdis.gsfc.nasa.gov/linux/drivers/开始.在那里可以发现的针对网卡得驱动有:
DEC DC21*4* Tulip chip based cards
3Com PCI Etherlink PCI and EISA cards
Intel EtherExpress Pro100B, Pro100+ and Pro10+ PCI
3c515 ISA Fast Etherlink card
SMC EtherPower II (EPIC/100 83c170 chip) driver.
RealTek RTL8129/8139 driver.
Lite-On lc82c168 PNIC driver (now merged with the Tulip driver).
Macronix MX98713 and ASIX experimental drivers are now merged with the Tulip driver).
VIA Rhine (VT86C100A and 3043) driver (now released).
Winbond w89c840 driver (beta test). Note: this driver was written without official documentation.
TI ThunderLAN driver (external link -- Caldera/James Banks).
Hewlett Packard 100VG driver updates (external link -- Yaroslav).

Intel EtherExpress Pro/10 PCI driver (remote link).
3c509/3c529/3c579 ISA/MCA/EISA EtherLink III driver update. The driver now detects multiple cards when loaded as a module.
AMD LANCE/PCnet driver update. The driver is now usable as a loadable module.
Cirrus/Crystal/IBM CS8900 series driver (remote link).
PCI NE2000 driver (local page)
PCI NE2000 updates (remote link)

Intel Etherexpress Pro 100,
DEC 21X4* based board,
3Com EtherLink III PCI/EISA (3c590 3c592,3c595,3c597,3c900 3c905)
Intel EtherExpress Pro/10 PCI9 With i82596 Chip)
TI ThunderLan
PCI NE2000
Packet Engines Yellowfin G-NIC
SMC EtherPower II (EPIC/100 83c170 chip)
RealTek RTL8129/8139

  同时还有一个Ecom EtherLink III family 的setup程序,没有用过,也许不错.
  如果这里你还是没有找到相应的网卡驱动,那么就去search了.我推荐的方法是上Internet Newsgroup查.因为你绝对不是第一个在Linux下用这个网卡的人,你的问题绝对有人在网络上问过.而且有人回答过.那么问题就是如何找到他. 最简单的方法是打开netscape 到www.dejanews.com去.这里的关键是关键字的选则,比如我有个卡的芯片是DEC的21140,那么我考虑到21140已经是个长数字,于是输入21140 linux来搜索,这里Linux是必须的,否则看到上千篇关于21140 win95的驱动问题,是不是很烦?结果21140 linux很快就找到了有关文章.

sutie 发表于 2004-10-28 22:25:15

磁盘管理



  在Linux系统中,如何有效地对存储空间加以使用和管理,是一项非常重要的技术。本章讲述如何查看系统中存储空间的使用情况、如何进行文件的转储、以及如何进行软盘的格式化。

  磁盘空间管理

  系统软件和应用软件,都要以文件的形式存储在计算机的磁盘空间中。因此,应该随时监视磁盘空间的使用情况。Linux系统提供了一组有关磁盘空间管理的命令。

  df命令

  功能:检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。

  语法:df [选项]

  说明:df命令可显示所有文件系统对i节点和磁盘块的使用情况。

  该命令各个选项的含义如下:

  -a 显示所有文件系统的磁盘使用情况,包括0块(block)的文件系统,如/proc文件系统。

  -k 以k字节为单位显示。

  -i 显示i节点信息,而不是磁盘块。

  -t 显示各指定类型的文件系统的磁盘空间使用情况。

  -x 列出不是某一指定类型文件系统的磁盘空间使用情况(与t选项相反)。

  -T 显示文件系统类型。

  例1:列出各文件系统的磁盘空间使用情况。

  $ df

  Filesystem 1 K-blocks Used Available Use% Mounted on

  /dev/hda2 1361587 1246406 44823 97% /

  df命令的输出清单的第1列是代表文件系统对应的设备文件的路径名(一般是硬盘上的分区);第2列给出分区包含的数据块(1024字节)的数目;第3,4列分别表示已用的和可用的数据块数目。用户也许会感到奇怪的是,第3,4列块数之和不等于第2列中的块数。这是因为缺省的每个分区都留了少量空间供系统管理员使用。即使遇到普通用户空间已满的情况,管理员仍能登录和留有解决问题所需的工作空间。清单中Use% 列表示普通用户空间使用的百分比,即使这一数字达到100%,分区仍然留有系统管理员使用的空间。最后,Mounted on列表示文件系统的安装点。

  例2:列出各文件系统的i节点使用情况。

  $ df -ia

  Filesystem Inodes IUsed IFree Iused% Mounted on

  /dev/ hda2 352256 75043 277213 21% /

  none 0 0 0 0% /proc

  localhost:(pid221) 0 0 0 0% /net

  例3:列出文件系统的类型。

  $ df -T

  Filesystem Type 1K-blocks Used Available use% Mounted on

  /dev/hda2 ext2 1361587 1246405 44824 97% /

  本例中的文件系统是ext2类型的。

  du命令

  du的英文原义为“disk usage”,含义为显示磁盘空间的使用情况。

  功能:统计目录(或文件)所占磁盘空间的大小。

  语法:du [选项] [Names…]

  说明:该命令逐级进入指定目录的每一个子目录并显示该目录占用文件系统数据块(1024字节)的情况。若没有给出Names,则对当前目录进行统计。

  该命令的各个选项含义如下:

  -s 对每个Names参数只给出占用的数据块总数。

  -a 递归地显示指定目录中各文件及子孙目录中各文件占用的数据块数。若既不指定-s,也不指定-a,则只显示Names中的每一个目录及其中的各子目录所占的磁盘块数。

  -b 以字节为单位列出磁盘空间使用情况(系统缺省以k字节为单位)。

  -k 以1024字节为单位列出磁盘空间使用情况。

  -c 最后再加上一个总计(系统缺省设置)。

  -l 计算所有的文件大小,对硬链接文件,则计算多次。

  -x 跳过在不同文件系统上的目录不予统计。

  下面举例说明du命令的使用:


  例1:查看/mnt目录占用磁盘空间的情况。 $ cd /mnt $ ls -lFR total 10 -rwxrwxrwx 2 root root ll0 Ju1 3l 00:33 aa*

  drwxr-xr-x 2 root root l024 Ju1 20 14:16 dev/

  -rw-r--r-- 1 root root 6229 Aug 2 0l:39 s1ack

  drwxrwxrwx 2 root root 1024 Aug 2 02:09 var/

  1rwxrwxrwx 1 root root l0 Aug 2 0l:51 wei->/home/wei/

  dev:

  tota1 0

  lrwxrwxrwx 1 root root 8 Ju1 20 l4:l6 cdrom->/dev/hdb

  var:

  tata1 37

  -r-xr-xr-x l root root 36064 Aug 2 02:09 rawrite. exe*
 

  例2:列出各目录所占的磁盘空间,但不详细列出每个文件所占的空间。

  $ du

  l ./dev

  38 ./var

  48 .

  输出清单中的第一列是以块为单位计的磁盘空间容量,第二列列出目录中使用这些空间的目录名称。

  注意不带选项的du命令将从当前目录开始沿着目录结构向下工作直到列出所有目录的容量为止。这可能是一个很长的清单,有时只需要一个总数。这时可在du命令中加-s选项来取得总数:

  $ du –s /mnt

  /mnt

  例3:列出所有文件和目录所占的空间(使用a选项),而且以字节为单位(使用b选项)来计算大小。

  $ du -ab

  8 ./dev/cdrom

  l032 ./dev

  36064 ./var/rawrite. exe

  37088 ./var

  6229 ./s1ack

  1l0 ./aa

  l0 ./wei

  45493 .

  磁 盘 操 作

  dd命令

  功能:把指定的输入文件拷贝到指定的输出文件中,并且在拷贝过程中可以进行格式转换。可以用该命令实现DOS下的diskcopy命令的作用。先用dd命令把软盘上的数据写成硬盘的一个寄存文件,再把这个寄存文件写入第二张软盘上,完成diskcopy的功能。需要注意的是,应该将硬盘上的寄存文件用rm命令删除掉。系统默认使用标准输入文件和标准输出文件。

  语法:dd [选项]

  if =输入文件(或设备名称)。

  of =输出文件(或设备名称)。

  ibs = bytes 一次读取bytes字节,即读入缓冲区的字节数。

  skip = blocks 跳过读入缓冲区开头的ibs*blocks块。

  obs = bytes 一次写入bytes字节,即写入缓冲区的字节数。

  bs = bytes 同时设置读/写缓冲区的字节数(等于设置ibs和obs)。

  cbs = byte 一次转换bytes字节。

  count=blocks 只拷贝输入的blocks块。

  conv = ASCII 把EBCDIC码转换为ASCIl码。

  conv = ebcdic 把ASCIl码转换为EBCDIC码。

  conv = ibm 把ASCIl码转换为alternate EBCDIC码。

  conv = block 把变动位转换成固定字符。

  conv = ublock 把固定位转换成变动位。

  conv = ucase 把字母由小写转换为大写。

  conv = lcase 把字母由大写转换为小写。

  conv = notrunc 不截短输出文件。

  conv = swab 交换每一对输入字节。

  conv = noerror 出错时不停止处理。

  conv = sync 把每个输入记录的大小都调到ibs的大小(用NUL填充)。

  例1:要把一张软盘的内容拷贝到另一张软盘上,利用/tmp作为临时存储区。把源盘插入驱动器中,输入下述命令:

  $ dd if =/dev/fd0 of = /tmp/tmpfile

  拷贝完成后,将源盘从驱动器中取出,把目标盘插入,输入命令:

  $ dd if = /tmp/tmpfile of =/dev/fd0

  软盘拷贝完成后,应该将临时文件删除:

  $ rm /tmp/tmpfile

  例2:把net.i这个文件写入软盘中,并设定读/写缓冲区的数目。

  (注意:软盘中的内容会被完全覆盖掉)

  $ dd if = net.i of = /dev/fd0 bs = 16384

  例3:将文件sfile拷贝到文件 dfile中。

  $ dd if=sfile of=dfile

  fdformat 命令

  软盘是用户常用的存储介质之一。软盘在使用之前必须先作格式化操作,然后可以用tar、dd、cpio等命令存储数据,也可以在软盘上建立可安装的文件系统。

  功能:低级格式化软盘

  语法:format [-n] device

  说明:该命令的作用是对软盘进行格式化。

  -n 软盘格式化后不作检验。

  device 指定要进行格式化的设备,通常是下述设备之一:

  /dev/fd0d360

  /dev/fd0h1200

  /dev/fd0D360

  /dev/fd0H360

  /dev/fd0D720

  /dev/fd0H720

  /dev/fd0h360

  /dev/fd0h720

  /dev/fd0H1440

sutie 发表于 2004-10-28 22:28:24

原文特长,我节选了一部分,建议斑竹锁贴,这个已经很长了。

有问题在开一贴吧!!

还有整理者在chinaunix叫wolf2602,对他的工作表示十分的感谢!! :mrgreen::mrgreen:
页: [1]
查看完整版本: Linux爱好者入门教程,To:新手