“傻瓜式”Linux学习之路
【IT168 开源技术】无疑,Windows 的普及已经非常广泛,通常的企业办公、家庭使用几乎到处都有它的身影,而Linux似乎只是属于专业的开发人员或者应用于服务器领域,或者是狂热的电脑爱好者所钟爱的。
笔者虽然是计算机科班出身,也学习过Linux相关课程。但是,对于习惯了Windows的图形界面,对Linux的命令行总是不“感冒”,加之所学均为理论,更是兴趣索然,一直都停留在门外汉的层次上。
近日,由于工作需要,不得不拧着头皮,开始啃这块枯燥的“骨头”。行家说,有味的不是“肉”,就在于“骨头”。体验过之后,才知道原来体验Linux比吃北京的名吃“羊蝎子”还要有味。
一个月后,项目一期上线,要实现里程碑式的阶段节点。开发任务繁重,项目工期紧张,我被指定为这个据说有两千多万的项目来实现生产环境的搭建,要在两台SuSE Linux主机下部署WebSphere集群和HA。
接到了这个工作任务,我心里那叫一个没底。首先,以前就没碰过Linux系统,装也没装过,用也没用过,更没听过SuSE。再加上WebSphere也没用过,而HA也不知道是什么东西。一个月的时间完成部署,我还真有点担心,不过,我还是具有承担工作压力的潜质,在有过几次从一无所知到实现的项目经历后,我踌躇满志地要尽快完成我的工作任务。
在随后的过程中,我不断得到技术经理的肯定,并在完成生产环境的搭建之后,又参与了压力测试、DB2调优等环节,学到了很多宝贵的知识。现在写下这个系列,旨在给那些Linux新手一些勇气和信心,其实,一切都没有想象的那么困难,只要你用心、努力,一定可以有所收获的。下面,就请读者跟我一起来体验一下“傻瓜式”的Linux学习之路。
Linux系统安装
这里需要提醒大家避免一个逆反心理,不要觉得Linux界面体验太差,可用软件太少,如今的Linux世界已经今非昔比,已经有广泛的组织在支持Linux的不断优化。
首先,我们先简单介绍几个不同版本的Linux,如:SuSE Linux、Red Flag Linux等,这几种当属常规的且普遍的了。我们来简单了解一下各种Linux系统。
Red Hat Linux来自于作为全球领先的开放源码和Linux供应商——红帽公司,同时,它还提供服务于企业级平台的高级服务器版本。目前已经在推广Red Hat Enterprise Linux 5。
Red Flag Linux是北京中科红旗软件技术有限公司(红旗软件)的发行产品,红旗软件产品涵盖了高端Linux服务器操作系统、集群系统、桌面版操作系统、嵌入式系统以及技术支持服务和培训等领域。
SuSE Linux是由 Novell (http://www.novell.com) 赞助的 openSUSE 项目的Linux发行版,目前已经发布了SUSE Linux 10.2。
本文以SuSE为例,讲述一下如何傻瓜式地让对Linux不熟悉的朋友也玩上一把。
下面我们来谈谈傻瓜式的系统安装方法。虽然网上可以搜索出一大堆来,但是,针对SuSE的还真不多。下面,简单说说我的安装方法。
- 安装环境:两台普通的PC,已经安装了Windows XP系统。基本上,普通用户通常都是在一台已经安装了Windows系统的PC下继续安装Linux(当然,如果是全新安装,则更是简单,省却了下面的步骤)。
- 磁盘空间整理:将磁盘空间整理一下,可以使用分区工具,或者Windows的系统磁盘管理工具,将硬盘的最后一个分区删除,记住,是最后一个,这样会比较方便。因为我在安装过程中第一次使用最后一个分区,安装中出现了些小问题。
- 设置BIOS需要设置为光驱启动,这个是必然的啦,不多说。
- 获取安装介质:我是从公司同事那里得到的一套SuSE 9(5 CD),读者可以从http://www.opensuse.org.cn下载最新的版本。
- 开始安装:把安装介质的第一张CD插入光驱。然后按照提示一步步操作即可,下面是安装过程中需要注意的几个问题,没有提到的地方,你可以选择默认设置,进行下一步操作即可。
1. 安装过程中有个选项你可以选择删除“已有Linux分区”或者“删除全部分区”,建议选前者,因为后者会把Windows的分区也删掉的!
2. 接下来是分区设置,使用默认值就可以。如果你想改的话,可以改一下根分区的大小,把它的建议值乘2即可。
3. 最后阶段是需要设置root用户的密码,你可以设置随便的密码,不用管它的安全提示,因为我们就是装装体验一下嘛。
4. 还有一点就是建立一个普通用户,你可以选择不建立也可以,这样,更省事。OK,你将会看到安装成功的提示!
如果你苦于手头没有安装介质,这里推荐一个连接:http://yingyingfr.com/bbs/showthread.php?t=19439,超好的哦,几乎所有你需要的系统都可以从这里得到,而且,速度还是很快的,记得下RHEL 3 Update4时,4张盘只用了半小时!
配置网络
不管你安装Linux的目的是什么,搭建生产环境、做测试服务器,或者开发服务器……都避免不了要配置网络。至少intranet还是少不了的,孤立的一个节点,在实际的工作中几乎是没有意义的。更何况我们习惯了在网络下的生活和工作,如果少了Internet,简直难以想象啦!
这里假设你的主机已经在一个LAN内(通常这也是大多数人的工作环境),那么,你只需要按普通Windows的方式,配置IP地址即可。然后,就可以ping通LAN内的其他主机了。具体在SuSE下的配置也很简单,步骤如下。
你会很容易地打开YAST(SuSE下的一个系统管理面板,在其中你可以管理很多系统的服务和资源,类似Windows下的控制面板),左侧向导处找到网络设备,然后看到网卡,点配置,然后,像在Windows下一样,输入IP、掩码、网关,基本上OK了。为了能够通过主机名访问,你可能还需要(保险起见,开了这个也没什么影响)开启DNS服务。我基本上就是设置为开机自动启动。然后在/etc/hosts文件中加上另外一台主机的IP HOST 对应,因为我的环境是建立集群的,需要根据主机名进行查找。需要提醒一点,初次配置网络,我是自己随便试出来的,我对别人的建议也是,计算机这东西,鼓捣不坏(你可别拿锤子砸啊……),大不了重装系统。所以说,放心大胆做测试,一定要敢动手。
配置完了,SuSE下是直接生效的了。可能其他版本的Linux,比如RHEL AS 3需要你重新启动网络服务。你可以在终端下使用命令:service network restart来重新启动服务。
当然,配置网络参数还有很多其他的方式,比如使用命令行,或者修改系统文件等等,这些是需要有一定经验的老手才可以轻松搞定,鉴于本文的“傻瓜式”学习,不在这里讲述这些高级的配置方式,有兴趣的读者可以查阅相关的资料。因为通过上述方式,你可以访问网络内的其它主机或者连接到Internet了,那么,空闲的时间里,你可以随便测试如何使用其他方式配置网络,这不会引起灾难性的后果,因为我们有最实用的“傻瓜式”配置方法。
安装软件
进入Linux的世界,不使用点命令是不现实的,看着高手们在终端里劈劈啪啪地敲着命令,那感觉是很爽而又崇拜。其实,如果不是高级用户,那么以下的一些命令足够你应付普通的需求了。
首先,你要会cd(change directory),即切换目录。如cd /mnt 是进入到/mnt目录下,不同版本的Linux回到上一层目录的命令格式稍有不同,不过大同小异,如果 使用“..”不成,就“cd ..”,记得SuSE下使用前者就OK,而RHEL AS 就不可以。
其次,你要会的是ls(list),即列出目录下的文件结构,可以搭配参数使用,如ls –l 是按列表形式的,这样看着更清晰,在SuSE下,你直接ll也可以,有些版本的Linux是不能这样使用的。
学会了上面两个命令,等于你在Windows下用鼠标一样,可以浏览各个磁盘文件了(当然Linux的图形界面也已经很不错了,但是还是推荐要学习一下命令)。如果是剪切文件呢?那么你需要使用mv命令。比如:mv /source/file.d /dest/flie 不但实现了文件的移动,还实现了重命名的功能,很方面的吧?
下面,我们来说说如何安装软件。
这里说一种最“傻瓜”的方法(这也是这个系列文章的宗旨所在)——使用光盘介质直接安装。
你需要打开终端执行以下命令(当然,你要先把盘插入光驱):
然后进入该目录下:cd /mnt/cdrommkdir /mnt/cdrom——在/mnt目录下建立一个cdrom目录
mount /dev/cdrom /mnt/cdrom——将光驱挂载到文件系统
使用命令ls l 或者直接用ll就可以看到其中的列表形式的文件啦。通常可执行文件都是以不同颜色显示的,你可以使用命令./install(install就是可执行文件的名字)进行安装。瞧,是不是出现了和Windows类似的图形界面了呢!
接下来我们来讲一下如何使用iso文件进行软件的安装,这个稍微麻烦一点了,不过还是一样很简单的。
对于SuSE,你可以在Windows下将文件拷贝到某个磁盘目录下,如D:/isoforSuSE,然后重启进入Linux。SuSE有个优点就是可以在系统下看到一个/windows的目录,不知道其他版本如何。我们可以利用Windows来将iso文件拷贝到磁盘,从而避免插入大容量的USB设备Linux不能识别的问题。
同样我们需要先建立一个目录,用来挂载iso,比如mkdir /mnt/cdrom,这样,就在/mnt下建立了一个目录cdrom。然后,使用下面这个命令:
瞧,是不是看到了文件了?同样执行./install即可安装啦。是不是很方便啊?在Windows下使用iso文件还要用个虚拟光驱的软件呢,在Linux下一条命令就OK。mount –o loop /windows/D/ isoforSuSE /文件名 /mnt/cdrom——挂载ISO文件
![]()
cd /mnt/cdrom
![]()
到此为止,你已经可以顺利使用Linux系统了,如果工作中不需要太多底层的设置操作,那么你利用上述方式安装好了应用软件,就可以开始自己的工作了。当然,工作中你可能还会遇到越来越多的新的问题,需要使用新的命令,我们将在下面进一步讲述。
文件拷贝
无论在什么操作系统下,我们都不可避免地要整理磁盘文件,那么需要的肯定是文件拷贝的知识了。很多情况下,我们要从LAN内的其他主机得到我们的文件资源,那么这些拷贝文件的命令一定要知道,下面我们来看看工作中可能遇到的各种情况下,该如何得到我们想要的资源。
- 如果是在Linux下本机拷贝,那么,你使用如下命令:
cp [选项] source dest其中source是你的源文件,而dest是你的目标文件。如果是类似下面的,则可以把/source下的所有文件都拷贝到/mnt/myfile下面。
cp /source/. /mnt/myfile
- 如果是把在Windows下的文件系统里的文件拷贝到Linux,那么在SuSE下更是有便捷的方式。因为SuSE默认有对其他文件系统的识别,有个/windows目录,直接使用上面的cp命令即可。而对于其他版本的Linux,你可能需要进行如下的尝试:
fdisk –l ——用来查看分区信息
这样,在Linux下打开/mnt/windows目录就可以看到Windows分区下的内容了,可以使用umont命令来取消挂载操作:umont /mnt/windows即可。
mkdir /mnt/windows——创建一个目录来挂载windows分区 mount –t auto /dev/hda1 /mnt/windows——hda1是通过fdisk查看到的Windows分区
- 通常,我们很可能在做实验时,在两台Linux主机之间拷贝文件,那么你可以使用下面的远程拷贝命令:
scp –r 本机文件路径(可多个) root@远程IP:远程路径
通过上面的命令,你可以把本机的多个文件拷贝到远程主机的相应路径下,这个命令非常有用,需要你记住。 - 另外一种常用的拷贝文件的方式就是使用SSH。当然,你还可以在另一台Windows主机下telnet进到Linux下,然后使用ftp命令。稍后我们会介绍一下SSH。
附:CP选项含义如下:
![]()
- a 该选项通常在拷贝目录时使用。
![]()
- d 拷贝时保留链接。
![]()
- f 删除已经存在的目标文件而不提示。
![]()
- i 和f选项相反,在覆盖目标文件之前将给出提示要求用户确认。
回答y时目标文件将被覆盖,是交互式拷贝。![]()
- p 此时cp除复制源文件的内容外,还将把其修改时间和访问权限也复制到新文件中。
![]()
- r 若给出的源文件是一目录文件,此时cp将递归复制该目录下所有的子目录和文件。
此时目标文件必须为一个目录名。![]()
- l 不作拷贝,只是链接文件。
使用SSH
SSH(Secure Shell)其实是一种协议,通过使用SSH,你可以把所有传输的数据进行加密,能够防止DNS欺骗和IP欺骗。使用SSH,还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。SSH有很多功能,它既可以代替Telnet,又可以为FTP、Pop,甚至为PPP提供一个安全的"通道"。
这里我们介绍一个客户端工具,我安装的是SSHSecureShellClient-3.2.9,不知道版本是新还是旧了点,从别人那里拷来用的,你可以去网上下载一个。
这是个非常好用的系统互访和文件传输的工具,安装非常简单。我基本上是在Windows上安装,然后通过它来控制Linux主机上集群的启动关闭,或者来实现配置文件的更改替换等等。基本上,启动客户端以后,输入用户口令即可进入,像使用Linux的终端一样,你还可以将Linux下的文件拷贝到本机进行Windows下的查看编辑,这样,就避免了直接在Linux主机上使用VI的麻烦。启动SSH客户端工具,你可以看到下面的窗口。

顺便提一句,安装了这个工具,你可以使用它来体验Unix-Center提供的服务器了。当然,你先需要去这个站点(http://www.unix-center.net/)注册一个帐号,即可通过该帐号作为用户名和密码登录他们的系统,体验一下命令行操作了。你能进行的操作(比如你没有创建目录的权限)还不是特别多,但是至少你可以使用它来练习VI命令了。
我在上述站点注册了一个用户名,如果你是在教育网,那么在Host Name处填入:fedora-edu.unix-center.net;如果是在公众网,则填fedora.unix-center.net;在User Name处填写你注册的用户名,然后,回车或者点“Connect”按钮,提示你输入密码,正确输入密码后,你就进入到了他们提供的体验中心了,如下所示:

使用VI
基本上,Linux老人儿对新手的教导都是:“VI一定好好好学学,用熟练点”。这充分体现了VI在Linux下的重要性。因为,我们经常会遇到修改一些配置文件的情况,通常需要你在远程进行操作。使用Linux的编辑软件是不现实的,生产环境下也是要把Xwindow干掉的。在这种特定的要求下,熟练使用VI确实是必要的。
下面,我们来简单介绍一下这个命令的使用。基本上,你需要知道如何浏览、编辑、保存即可。比如,我们在建立集群环境时,常常可能需要修改/etc/hosts文件,那么可以这样:
即可进入VI模式。浏览文件内容的话,你可以使用键盘上的箭头方向来移动,还可以使用四个键来移动,即:HJKL,分别是左下上右。vi /ect/hosts
下面来看看如何编辑文件内容。可以使用多个命令来进入编辑模式,如:按a(append)和i(insert)。具体的编辑命令如下:
基本上,使用上面的命令就可以浏览编辑文件内容了,最后看看保存退出命令。x:删除光标后的内容。
dd:删除光标所在的行。
r:替换光标所在位置的字符
/:查找
:q :是结束编辑的命令,如果不想保存,可以使用“:q!”强制退出。
:wq:存盘后退出。或者使用<shift>+zz,效果一样。
另外一个比较好用的就是可以在一个文件里编辑,然后存成自己需要的文件,使用:q!退出,而不保存原文件,这就相当于新建了一个文件的效果,具体命令是:
VI的基本命令就介绍这些,在Linux下也有很好的文本编辑工具,如Gedit等,类似于Windows下的记事本(笔者之所以总与Windows对比,就是为了让初学者对Linux的畏惧心理降到最低,)。如果你对VI不是很熟悉,可以使用文本编辑工具。如果是远程的话,可以借助SSH。当然,建议最好还是练熟了这些命令,会很有帮助的,也会提高工作效率。:n m w filename——将第n—m行的内容以指定的文件名保存
系统管理
这里所要讲的就是些对Linux系统的基本操作和管理,所讲内容均为在最“菜”的情况下你要知道的内容,如果想深入了解,可以查阅相关内容深入学习一下。
首先说说系统的引导。在安装过程中,会提示GRUB引导系统的列表,对于大多数情况下仍旧在Windows下工作的朋友来讲,这里最好更改一下默认值,将其设置为DOS。这样,就会避免在忽略了选择的时候直接进入Linux。
下面我们来进行最基本的注销、关机等操作。当然,你也可以在图形界面下进行注销、关机等操作。这里,我们说说使用终端下的命令来如何进行操作。系统在启动后会提示输入用户名和密码,正确输入即可登录成功。如果系统还有其他用户,可以执行login命令,重新登录系统。相应地,注销系统的命令是logout。
重启命令:reboot。这个也是最常用的,因为经常我们实验过程中需要重新启动系统,如果是单机的环境,直接reboot就好,否则你可能需要配合使用一些参数选项(n、w、d、f、i)。
关机命令:shutdown可以关闭系统中正在运行的所有程序,该命令可以有多种选项来配合使用,如:
学会了基本的系统开关命令后,我们来看看如何监视系统。当然,仍旧只给出简单的几种命令,详细的还需要大家多多自学啦。shutdown now 立即关机(其中的now你可以修改为其他任何的时刻,将实现定时关机);shutdown +5 “ System will shutdown in 5 minutes ,pls save your work asap”
(顺便让大家学两个英文的简写:pls即please,asap即as soon as possible)shutdown –r 与reboot类似,重新启动系统
shutdown –h 关机,在SuSE下,执行halt –h也可以
last:查看最近登录的用户。
top:监视系统资源的使用情况,包括内存、交换分区、CPU等。默认按CPU的使用率来排序,可以按M、T实现按内存和时间的排序。
kill:杀进程,需要提供进程ID,如果获取进程ID,可以使用top,还可以使用ps命令。ps将列出系统中所有的进程信息,也可以配合参数选项使用,如:ps -ef|grep java将列出所有Java进程的详细信息。
“无能为力”
新手在学习Linux时,肯定会遇到无助甚至是绝望的时候,我曾经因为一个问题而搞了一个通宵,后来仅仅发现是没有修改/etc/hosts文件,而不能通过主机名进行查找。这样浅显的错误相信有些Linux系统经验的SA都可以很快解决,但是对很多初学者就成了一个“坎儿”。尤其是我们在遇到关于系统内核相关的问题的时候,可能真的就是“无能为力”了。
很多时候,我们真的也有不爽的感觉,想说 “Linux,爱你真的不容易”!
在经历半个月的夜以继日的封闭开发后,生产环境的集群已经建立完毕,并且一直运行稳定,后来我又参与了压力测试、数据库调优,学习到了不少知识。春节后的一个电话,让我郁闷够戗,是项目经理打来的,说生产环境需要重新建立,因为换了操作系统,后来我才知道换操作系统的原因,也真的感慨,Linux不是那么好玩的。
项目的整个解决方案涉及了方方面面,包括入侵检测、HA,等等,前期我们已经在两台生产服务器(操作系统SuSE Linux)上构建了WebSphere集群,而HA的实现是借助IBM 的Edge Component实现的,比较烦琐的HA配置工作是在IBM的工程师一同协作下完成的。由于项目很大,所有的组件自己开发是不现实也不符合成本预算的,当然会购买其他公司的产品构件,这其中就包括入侵检测的构件,然而最终结论是,该入侵检测的构件不支持SuSE,只能在RHEL AS 3上整合。于是,架构组做出了更换操作系统的决定,我也由开始了另一版本的Linux试验——Red Hat Enterprise Linux Advanced Server 3(RHEL AS 3)。因为有了在SuSE上安装WebSphere集群的经历,两台PC的安装和集群建立都很顺利,第一天下午到的项目组,装了两个操作系统,RHEL AS 3我也是第一次装,不过有了装SuSE的“傻瓜式”方法,完全可以搞定。第二天安装部署了WebSphere集群,也很顺利,其中也有细微的差别,比如,命令ll是不支持的,只能使用ls –l来查看文件的列表形式,这些都很容易就可以跳过。
但是,在测试HA的时候,我遇到了麻烦,后来咨询IBM的工程师,得知Edge Component的部署要求是RHEL AS 3 Update 2以上,建议的版本是RHEL AS 3 Update 4。我咨询工程师说,如果没有update会怎么样,他们说这个没有测试过,但肯定是不稳定的。于是,在征得架构组的意见之后,重新下载了RHEL AS 3 Update 4(注意:RHEL AS 3 是不能直接进行升级到Update 4的,只能重新安装)。第三天上午,重新安装了两台PC的操作系统,重新开始部署WebSphere集群。下午,老大打来电话,问进展如何,我答曰:正在测试。临挂电话前,我忽然想到,应该问下入侵检测那边是不是支持RHEL AS 3 Update 4,就和老大提了下。结果,不到半小时,我得到老大的消息,说我的工作可以结束了——入侵检测的构件果真不支持RHEL AS 3 Update 4,只在RHEL AS 3上进行过测试,我想到的原因可能是因为内核版本的不一致导致的吧。
虽然这次的“徒劳”与方案的完善程度有关,没有考虑到各个构件之间的兼容性。但是, 也充分反映出了一个不容忽视的问题——在Linux领域,辅助软件的支持还是不够健壮的。常常一种软件产品只能支持特定版本的内核,内核一旦发生变化,导致的就是产品的不稳定甚至无效。试想一下,谁也不会拿自己的项目来给别人的产品做测试,那么,妥协的方式就是更换别家厂商的产品或者自行开发,而由此导致的成本问题也无疑让很多项目经理头疼。从软件生产厂商的角度来讲,开发一个适应各个内核版本的通用性的软件产品几乎是不现实的。随着每一次内核的升级,产品也要跟着做出相应的变更,简直是难以想象的。相比之下,同样的软件产品可能会对各个版本的Windows支持度都还差强人意,这说明什么问题呢?Windows的普及程度和市场占有率自然是软件厂商的一个需要考虑的重要因素,一个成熟的产品当然要对Windows有良好的支持,才会有更好的市场。这里我们不评价Linux和Windows孰优孰劣,我们只希望,在广大开爱好者和Linux生产商的努力下,Linux能够越来越稳定,各种Linux下的软件产品的兼容性越来越强,因为受益的将是更广大的Linux爱好者和用户。
结束语
笔者从对Linux只有一个感性了解到能够在一个月内在其上实现集群和HA,通过对自己一个月封闭开发的Linux下的经历体验,向大家讲述了“傻瓜式”的Linux学习、使用方式,希望通过笔者的这段经历,能够让对Linux初学者信心十足地开始Linux之路。