我们首先应该知道电脑的基本情况。电脑,就是一堆金属,半导体和塑料制品的总合,如果通上电源,就可以启动,但是你什么都不能做,因为电脑只是一堆硬件,如果你不是拿来卖废铁,它即笨重又刺眼(如果你的电脑是一堆白色外壳的话)。可是为什么电脑那么的吸引我们?因为有了操作系统和应用软件。
操作系统是一种特殊的软件,用来让计算机硬件和软件协同工作,并且处理我们敲打键盘和移动鼠标这些动作。常见的操作系统有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:驱动没有找到,如果你的显卡非常的新潮,那么多半是这个错误了,编译你的驱动吧…
_________________
第五章 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,因为没有图片,所以非常