如何学习linux操作系统
1.1 初学者入门首选-redhat系列
在学习redhat系列linux之前,首先要了解以下redhat linux各个发行版本之间的关系。
1.Red Hat Linux
Red Hat Linux是redhat最早发行的个人版本的linux, 其1.0版本于1994年11月3日发行。虽然其历史不及其它linux发行版本悠久,但比起很多的Linux发行套件,Red Hat 的历史悠久得多。自从Red Hat 9.0版本发布后,RedHat 公司就不再开发桌面版的 Linux发行套件,Red Hat Linux停止了开发,而将全部力量集中在服务器版的开发上,也就是 Red Hat Enterprise Linux 版。2004年4月30日,Red Hat公司正式停止对Red Hat 9.0版本的支持,标志著Red Hat Linux的正式完结。原本的桌面版Red Hat Linux发行套件则与来自开源社区的 Fedora进行合并,成为 Fedora Core 发行版本。
目前Red Hat分为两个系列:由Red Hat公司提供收费技术支持和更新的Red Hat Enterprise Linux,以及由社区开发的免费的Fedora Core。
2.Fedora Core
Fedora Core(缩写为FC)被红帽公司定位为新技术的实验场地,许多新的技术都会在 FC 中检验,如果稳定的话红帽公司则会考虑加入 Red Hat Enterprise Linux 中。
Fedora Core 1发布于2003年年末,而FC的定位便是桌面用户。FC提供了最新的软件包,同时,它的版本更新周期也非常短,仅6个月。由于版本更新频繁,性能和稳定性得不到保证,因此,一般在服务器上不推荐采用Fedora Core。
其实可以这么认为,Fedora就是Red Hat发行Red Hat企业版linux的一个实验版本,以用户做测试,为Red Hat企业版发布奠定基础。
3.Red Hat Enterprise Linux
Red Hat Enterprise Linux(缩写为RHEL,Red Hat的企业版)。Red Hat现在主要做服务器版的linux开发,在版本上注重了性能和稳定性以及对硬件的支持。 由于企业版操作系统的开发周期较长,注重性能、稳定性和服务端软件支持,因此版本更新相对较缓慢。
RedHat Enterprise Linux又分为4个版本 Advanced Server(AS)、ES Workstation(WS)、Desktop,它们的差别不太大,只是功能方面的差别。
1.4 linux作为服务器是发展趋势
在上面的章节中主要介绍了几种最常见的linux发行版本,其实linux的发行版本还有很多很多,比较常见的还有Debian GNU/Linux, Mandriva, Gentoo,Slackware, Knoppix,MEPIS, Xandros,国产的红旗redflag,中标linux等等,这里不再一 一介绍,其实纵观linux的各个发行版,linux发行版本无非是朝着这两个方面而来,一是服务器市场,而是桌面市场。
以Ubuntu Linux为代表的linux发行版走的是桌面市场路线,虽然它们给用户带来很多惊喜,更新也很快,但是由于桌面市场有着windows这样强劲的对手,linux桌面发展举步维艰。
以redhat系列版本为代表的linux发行版现在主要面向企业级linux的服务器市场,重点开发linux的企业版本,suse linux同样主要力量也集中在开发企业级linux上面,其它的例如国产redhat flag,中标linux等都重点投入在了linux服务器市场。linux两大发布厂商现在都走了linux服务器市场的路线,可见linux作为企业级服务器有着巨大的发展前途,据权威部门统计,linux在服务器市场的占有率每年都在持续上升。
其实很多linux的应用都是针对linux服务器的,本书的讲述也是主要针对linux在服务器下的各种应用展开的。
二、 养成良好的linux操作习惯
当你进入linux的学习之后,请不要用windows的工作方式来思考问题,因为它们之间确实有很大的不同,比如它们之间的内存管理机制,进程运行机制等都有很大不同,这些异同点将在下面章节陆续讲述,因此,抛开windows那种思维,用全新的理念尝试去挖掘linux身上特有的潜质,对初学者至关重要。
2.1 一定要习惯命令行方式
Linux是一个命令行组成的操作系统,精髓在命令行,无论图形界面发展到什么水平,命令行方式的操作永远是不会变的,Linux命令有许多强大的功能:从简单的磁盘操作、文件存取、到进行复杂的多媒体图象和流媒体文件的制作都离不开命令行。虽然linux也有桌面系统,但是X-window也只是运行在命令行模式下的一个应用程序。
因此,可以这么说,命令是学习linux系统的基础,学习linux,很大程度上就是学习命令,很多linux高手其实都是玩儿命令很熟的人。
也许对于刚刚从windows系统进入linux学习的初学者来说,立刻进入枯燥的命令学习,实在太难,但是你一旦学会就爱不释手。因为它的功能实在太强大了。您未来的学习之路也将会以指数增加的方式增长。
2.2 理论结合实践
有很多初学者都会遇到这么一个问题,说到系统的每个命令,都很熟悉,但是在系统出现故障的时候,面对出现问题的linux系统无从下手了。不知道在什么时候用什么命令去检查系统,这是很多linux新手最无奈的事情了。说到底,就是学习的理论没有很好的与系统实际操作相结合。
很多linux知识,例如每个命令的参数含义,在书本上说的很清楚,看起来也很容易理解,但是一旦组合起来使用,却并不是那么容易,没有多次的动手练习,其中的技巧是无法掌握的。
人类大脑不像计算机的硬盘一样,除非硬盘坏掉或者硬盘被格式化,否则储存的资料将永远而且时刻的记忆在硬盘中。而在人类记忆的曲线中,必须要不断的重复练习才会将一件事情记得比较熟。同样的,学习 Linux 也一样,如果无法经常学习的话,学了后面的,忘记了前面的;还有些linux初学者也学了很多linux知识,但是由于长期不用,导致学过的东西在很短的时间内又忘记了,久而久之,失去了学习的信心。
可见,增加自己Linux 的实战技能,只有勤于动手,勇于实践,这也是学好linux的根本。
2.3 学会使用linux联机帮助
各个Linux的发行版本的技术支持时间都较短,这对于Linux初学者来说往往是不够的, 其实当安装了一个完整的Linux系统后其中已经包含了一个强大的帮助,只是可能你还没有发现和使用它们的技巧。例如,对于一个linux tar命令的使用,你不是很熟悉,那么只要你在命令行输入man tar, 就会得到tar的详细说明和用法;
主流的linux发行版都自带了非常详细的帮助文档,包括使用说明和FAQ,从系统的安装到系统的维护,再到系统安全,针对不同层次人群的详尽文档。仔细阅读文档后60%的问题都可在这里得到解决。
2.4 学会独立思考问题,独立解决问题
遇到问题,首先想到的应该是如何自己去解决这个问题,解决方式很多,看书查资料,网络搜索引擎,技术论坛等等,通过这几种方式,90%的问题都能得到解决,通过这种方式一方面锻炼了自己独立解决问题的能力。另一方面技术上也能得到快速提高。
如果通过如上方式实在解决不了的话,可以向人询问,得到答案后要考虑为何这么做,然后做笔记记录解决过程。最忌讳的方式是只要遇到问题,就去问人,虽然这样可能会很快解决问题,但是长久下去遇到问题就会依赖别人,技术上也不会进步。
2.5 学习专业英语
如果你想深入学习Linux,一定要尝试去看英文文档。因为,技术性的东西写的最好的,最全面的文档都是英语写的,最先发布的高新技术也都是用英语写的。即便是非英语国家的人发布技术文档,也都首先翻译成英语在国际学术杂志和网络上发表。安装一个新的软件时先看README,再看INSTALL,然后看FAQ,最后才动手安装,这样遇到问题就知道为什么。因此,学习一点专业的英语是很有必要的。
2.6 Linux学习基本步骤
到这里,我们总结一下linux的学习路线图,给各位初学者作为参考。
初级阶段:
1. 命令是必须要学的,linux常用的命令大概在80个左右,这些常用命令一定要熟练掌握。
2. 掌握linux软件包的常用安装方法,例如源码安装,rpm方式安装等等。
3. 学习安装设备驱动程序(比如网卡、显卡驱动)
4. 熟悉Grub/Lilo引导程序及简单的修复操作。
5. 熟悉Linux文件系统和目录结构以及linux基本运行原理。
6. 掌握vi,gcc,gdb等常用编辑器,编译器,调试器。
7. 理解shell别名、管道、I/O重定向、输入和输出以及shell简单脚本编程。
8. 学习Linux环境下的网络基本组建。
高级阶段:
1:尝试阅读linux内核源码:
这需要具有一定的C、C++语言基础,因为C、C++是linux/unix的核心语言,系统代码都是C写的。
2:尝试编译安装和调试自己的linux内核:
在阅读源码了解了linux底层的运行原理后,完全可以编译一个适合自己的linux系统来。
3:深入学习shell, perl,cgi等脚本语言:
这些脚本语言在linux下非常强大,它们能完成你想做的任何事情,熟练掌握这些语言,可以让你在linux系统下游刃有余,如鱼得水。
4:构建企业级linux高可用集群系统:
linux下有很多开源免费的集群软件,利用这些免费的集群软件完全可以构建出与商业unix系统想媲美的集群系统来。
三、用虚拟机软件学习linux
3.1 什么是虚拟机软件
虚拟机软件可以在一台电脑上模拟出来若干台PC电脑,每台PC可以运行单独的操作系统而互不干扰,可以实现一台电脑“同时”运行几个操作系统,还可以将这几个操作系统连成一个网络。
图1:安装了3台虚拟机的windows系统
比如图1中,是在一台电脑上安装了Windows 2000 Server,再在Win2000 server上安装虚拟机软件VMWare,利用VMWare模拟出来3台PC,在这3台PC上分别运行RedHat Linux、Win2000和Solaris 9 for x86操作系统。这4个操作系统同时在一台电脑上运行,互不干扰,并且同在一个局域网内。
听了上面的基本介绍,你可能知道虚拟机软件到底是做什么用的了。那么好,我们继续做更深入的介绍。
目前PC上的虚拟机软件最常用的有下述两个:
VMWare 网址为:http://www.vmware.com
Virtual PC 网址为:http://www.connectix.com
3.2 使用虚拟机软件的好处
1、如果要在一台电脑上安装linux和windows系统,不用虚拟机的话,有两个办法:一是装多个硬盘,每个硬盘装一个操作系统。这个方法比较昂贵。二是在一个硬盘上装双系统。这个方法不够安全,因为系统盘的MBR是操作系统的必争之地,windows更是霸道,每次重新安装系统都要重写系统的MBR,这样的话搞不好会几个操作系统同归于尽。而使用虚拟机软件既省钱又安全,因此,对于新手来说,利用虚拟机学习linux简直是再好不过了。
2、在虚拟机上安装linux系统,你不用担心会格式化掉自己的硬盘,你甚至可以随意的对虚拟系统进行任何的设置和更改操作,你可以格式化虚拟系统硬盘,重新分区虚拟系统硬盘等等, 因为虚拟机是你真实系统上运行的软件,对虚拟机系统的任何操作都是对软件的操作。
3、利用虚拟机模拟出来的linux系统和真实的linux系统是一摸一样的,现在各个公司专门的linux服务器是不会让新手随意去动的,而供测试的linux服务器一般又很紧缺,在自己电脑上安装虚拟linux系统,可以随意的学习测试,而不受任何环境影响。
3.3 虚拟机的运行环境和硬件需求
1:运行环境
VMWare可运行在Windows(WinNT以上)和Linux操作系统上。
Virtaul PC可运行在Windows(Win98以上)和MacOS上。
注:运行虚拟机软件的操作系统叫Host OS,在虚拟机里运行的操作系统叫Guest OS。
2:硬件需求
虚拟机是将两台以上电脑任务集成到一台电脑上来,因此对硬件要求比较高,主要是内存,硬盘和cpu;内存要足够大,因为每个虚拟机都会占用一定的内存资源,内存的总大小等于各个虚拟系统的总和。可喜的是,现在内存已经很便宜了,内存就不是问题了。同样,硬盘空间也是每个虚拟机都要占用的,cpu现在都到了多核阶段,也不是问题。
3.4 虚拟机的安装与使用
1.VMware虚拟机概述
上面章节讲到,虚拟机软件有VMWare和Virtual PC,它们各有优缺点,其中VMWare在全球占领了80%的市场份额,因此我们也主要讲述VMWare的安装与使用。
VMware是提供一套虚拟机解决方案的软件,主要产品分为如下3个:
(1)VMware-ESX-Server: 这个版本并不需要操作系统的支持。它本身就是一个操作系统,用来管理硬件资源。所有的系统都安装在它的上面。带有远程web管理和客户端管理功能。
(2)VMware-GSX-Server: 这个版本就要安装在一个操作系统下了,这个操作系统叫做HOST OS。 这个HOST OS可以是Windows 2000 Server以上的Windows系统或者是Linux(官方支持列表中只有RH,SUSE,Mandrake很少的几种),和VMware-ESX-Server一样带有远程web管理和客户端管理功能。
(3)VMware-WorkStation: 这个版本和VMware-GSX-Server版本的机构是一样的。也是要安装在一个操作系统下,对操作系统的要求也是Windows 2000以上或者Linux。和Vmware的区别就是没有web远程管理和客户端管理。
Vmware GSX Server不支持虚拟机双CPU,而且已经停止开发新版本, Vmware Server 是Vmware 公司决定将GSX Server免费后,重修代码后发布的, 目前有版本更新。因此我们选择免费的GSX Server作为讲述的版本。
2.虚拟机软件的安装
我们在windows下安装windows版本的VMware server,然后在VMware server上安装linux操作系统。虚拟机软件的安装很简单,只需按照windows常规方法安装即可完成,这里不在讲述。
3.创建一个虚拟机系统
虚拟机软件安装完毕,双击桌面上的 VMware Server 图标以启动应用程序:
(1) 按CTRL-N创建一个新虚拟机,弹出新建虚拟机向导,如图2所示界面,点击下一步:
图2
(2)选择虚拟机配置,如图3所示,这里选择“Custom”,点击下一步:
图3
(3) 选择客户机操作系统,如图4所示,这里选择“Linux”,版本选择“Red Hat Enterprise Linux 4”,点击下一步:
图4
(4) 给虚拟机命名,如图5所示,虚拟机名称设为Red Hat Enterprise Linux 4,虚拟机路径设为“C:\Virtual Machines\Red Hat Enterprise Linux 4”,点击下一步:
图5
(5) 设置访问权限,如图6所示,去掉“Make this virtual machine private”。 这样可以保证系统安装完毕,虚拟机linux系统可以和windows系统互通。点击下一步:
图6
(6) 启动/关闭选项,如图7所示,虚拟机帐户,选择“User that powers on the virtual machine”,点击下一步:
图7
(7) 虚拟机处理器配置,如图8所示,这里选择一个处理器。 如果你有多个处理器可以选择多个,点击下一步:
图8
(8) 设置虚拟机内存大小,如图9所示,可以通过滑竿选择给虚拟机系统分配的内存大小,一般选择是windows系统内存的一半。这里选择800M。点击下一步:
图9
(9) 选择虚拟机网络连接类型,如图10所示,这里选择“Use bridged networking”网桥方式,点击下一步:
图10
(10) 选择 I/O 适配器类型,如图11所示,这里选择“LSI Logic”,点击下一步:
图11
(11) 选择虚拟磁盘,如图12所示,选择“Create a new virtual disk”,点击下一步:
图12
(12) 选择磁盘类型,如图13所示,选择“SCSI (Recommended)”,点击下一步:
图13
(13) 指定虚拟机磁盘容量,如图14所示,磁盘容量,可根据自己的需求选择大小,安装Linux,一般5G即可满足需求,这里输入“25GB”,选择“Split disk into 2 GB files”,点击下一步:
图14
(14) 指定磁盘文件路径,如图15所示,可以点击“Browse”指定磁盘文件的路径,这里的路径为“F:\Red Hat Enterprise Linux 4\Red Hat Enterprise Linux 4.vmdk”,然后点击完成,即可完成虚拟机的创建。
图15
(15) 虚拟机创建完毕后,出现虚拟机控制台界面,如图16所示,这样我们就创建了一个 linux虚拟机系统,接下来就需要在虚拟机下安装linux系统了。
图16
(16) 点击图16虚拟机控制台中的“Edit virtual machine settings”选项,即可到“virtual machine settings”界面,如图17所示:
在这个界面中,我们可以添加虚拟机各种资源、编辑虚拟机的各种属性,例如修改虚拟机内存大小、编辑网卡连接方式、添加一个虚拟磁盘、指定光盘的引导方式等。还可以删除虚拟机中的各种资源。
图17
(17) 点击图18中“add”按钮,出现图18所示界面:在这个界面中,可以给虚拟机添加各种硬件资源,例如,硬盘、光驱、软驱、网卡、声卡等设备。
图18
到此为止,虚拟机的安装和基本配置已经介绍完毕,接下来开始讲述在虚拟机上安装linux的方法。
4.虚拟机上linux安装方式
在虚拟机上安装linux系统,常用的方法有两种:光驱安装和iso镜像文件安装。
(1) 光驱安装方式
在 VMware Server控制台上,双击右面板上的 CD-ROM 设备,然后选择Use physical drive,location选择host,下面下拉框选择Auto detect即可。如图19所示,最后,Linux系统光盘放入光驱,单击“Start this virtual machine”即可进入Linux安装界面。
(2) iso文件安装方式
在 VMware Server 控制台上,双击右面板上的 CD-ROM 设备,然后选择Use ISO image,然后指定iso文件路径,如图20所示,最后,单击Start this virtual machine即可进入Linux安装界面。
图19
图20
Linux系统的安装,我们将在在后面文章中讲述,这里不在多说。
四、linux学习资源
4.1 网络资源,搜索引擎,论坛
Linux的开源特性决定了linux知识的开放性和充足性。当今,linux非常流行,linux学习资源也非常之多,书店到处可见linux方面的书籍,选择一本适合自己的慢慢去学习,再好不过。
除了书本的知识,网络里也有无限的linux学习资源,各大linux技术门户,linux社区论坛,都是学习linux的好地方;在这里,有一批无私奉献的linux狂热爱好者,他们把自己的学习经验和学习总结无偿的发布出来;他们每天在linux论坛的各个角落热情的回答广大网友提出的问题;他们不求回报,因为他们热爱技术,热爱linux。
遇到学习问题,或者要查找某些linux资料,搜索引擎绝对是第一选择,例如google.cn和baidu.com,99%的技术资料都能在这里搜到。查找linux资料,不要错过这两个优秀的搜索引擎。
4.2 有本书在身边
网络中有很多linux学习资源,丰富的学习资源,虽然给我们学习提供了很好的便捷性,但是也造成了我们学习的盲目性,学习资源的丰富性,引出的另一个问题是资源的混杂,刚入门的新手感觉无从下手,可能今天看了一点内存管理的资料,明天学习了一点磁盘管理的资料,并且总是感觉自己理解了也学会了,但是就是无法灵活的掌握,究其原因,就是没有系统的学习linux。
因此,选择一本好书在自己身边是必须的,一本好书应该是由浅入深,有点及线,有线及面的介绍知识,选择一本好书,同时结合网络资源进行循序渐进的学习,此时,你的学习就不会再有空洞感,进步也会飞快。你会感觉学习linux是一件很快乐的事情。
五、linux的应用领域
很多新手都有一个很疑惑的问题:“我学习linux系统,能在上面干什么呢,或者说linux系统具体能做什么”,有这样的疑问,也很正常,但是随着对linux了解的加深,这些疑问就会慢慢消除,下面具体讲述下linux操作系统的应用领域(也就是linux到底是干啥的)。
1:服务器领域
现在的服务器市场以linux、unix、windows三分天下, linux可谓后起之秀,从产生发展到现在,在服务器应用领域节节攀升,并且每年增长势头迅猛。
Linux作为企业级服务器应用广泛,利用Linux系统可以使企业构架WWW服务器、代理服务器、邮件服务器、DNS服务器、透明网关、路由器等等,不但给企业降低了运营成本,同时获得了linux系统带来的高稳定性和高可靠性。
随着linux在服务器领域的广泛应用,这几年来,linux已经悄悄进入政府、教育、银行、石油等行业,同时各大unix厂商也推出在unix平台支持linux操作系统,例如IBM AIX。这一切表明,linux在服务器市场前景光明,相信在不久的将来,linux会渗透到社会各个领域。
2.嵌入式Linux系统
由于 Linux系统开放源码,功能强大、可靠、灵活而且具有伸缩性,再加上它广泛支持大量的微处理器体系结构、硬件设备、图形支持和通信协议,因此,在嵌入式应用的领域里,从因特网设备到专用的控制系统,Linux 操作系统的前景都很光明的。
例如,诺基亚和摩托罗拉公司都推出了linux平台的手机。
1、先找一本基础的书,我当初用的是鸟哥的linux私房菜,基础篇和服务欺篇,当然了,我介绍我朋友用的也是他哦。貌似网上有电子版的。
2、先大体上浏览一下书。不要很详细的看,看不下去,会烦的。
3、安装一个linux的系统。在虚拟机上就可以了。
4、把你的基础篇的书,从头到尾的敲上一遍,看看会出什么现象,多做试验哦。
5、要做笔记的,把你敲试验的新得体会总结一下,这样就成你的知识了。
6、要多出错误,多排除错误,这是通往高手的必经之路哦。
7、多与别人交流
(在不懂的时候就多敲吧,不懂没有关系,看到现象就可以了,看的多了就懂了)
当然最重要是爱好和兴趣!如果你这种必要学,或者根本不喜欢,请不要浪费时间,你学也学不好!
二.起步
你应该为自己创造一个学习Linux的环境--在电脑上装一个Linux或unix
问题1:版本的选择
北美用redhat,欧洲用SuSE,桌面mandrake较多,而debian是技术最先进的Linux
开发人员中用debian的最多,其次是redhat,从全球Linux各应用领域市场份额来看
无疑redhat是最多的,此外还有很多出名的发行版本,不再列举。
对于初学Linux的人来说,我建议是使用redhat,原因如下:
1)现在很多书都是以redhat为例讲的,为了与书本协调一致
2)周围的人都用redhat,交流比较方便
3)redhat应用范围广,有典型性和代表性
4)它易于使用和安装,我们没有必要把时间浪费在“装系统”上
而应集中精力学习最有用的东西。
//注:现在觉得RH很死板,AS,ES等用在服务器上或许不错,
Personal desktop用mandrake,debian,suse都不错,笔者现在用Mandrake,因为她长得漂亮
如果你并不打算深入学习Linux,而是有诸如适应北京市政府办公平台迁移到
Linux上这种需要,那么中软,红旗等中文Linux是不错的选择
我强烈建议:自己亲自动手把Linux装到你的硬盘上,
你必须学会独立安装Linux系统的技能,对于现在的版本来说,其实跟装WinXP一样简单
从此现在开始,请不要以windows的工作方式来考虑问题,
应该尝试挖掘Linux身上的“天才unix”的气质。
三.进阶
掌握至少50个以上的常用命令
理解shell管道"|",文件流重定向">"及追加">>"等
熟悉Gnome/KDE等X-windows桌面环境操作
掌握.tgz.rpm.biz等软件包的常用安装方法
学习添加外设,安装设备驱动程序(比如modem)
熟悉Grub/Lilo引导器及简单的修复操作
熟悉系统固有目录的名称及公用
学会用mount命令访问其他文件系统
了解vi,gcc,gdb等常用编辑器,编译器,调试器
学习Linux环境下的简单组网
建议:买一本不需要太厚的Linux教材,大致可以满足要求
//现在的书越来越多了,还带很多图,我当时可没这么多书:)
四.高级应用
澄清一些概念:
Linux的普通操作与真正的系统管理不能相提并论,后者需要很多知识
我个人认为比较重要几种Linux语言
1.英语
即使你不学Linux,我也强烈建议你学好英文[U.S.english]
因为实质上计算机语言就是英文和字符,所谓的多国语言只是外部包装
你必须能无障碍的阅读大量的英文技术文档
在搜索引擎找到的英文网站和网页中熟练的检索
最好能有用英文直接交流的能力,
摆脱了这个障碍,你的学习和理解速度就能快很多,你就有机会拉开和别人的差距
2.shell[sed/awk]
shell是命令解释器,是内核与用户界面交流通道,shell写的小脚本有点类似于win下的.bat
但shell比.bat强大的多,shell不只是解释命令,更是一种编程语言,有时候几百行的c用shell
几十行就能代替完成工作,因为shell的工作方式建立在系统已有的众多应用程序之上
这也是CS中的一个重要思想。
此外,shell可以实现工作自动化,这个概念也比较重要
sed,awk用来处理文本,历来很常用
3.Perl/PHP
漂亮的脚本, CGI的首选,比ASP好,应用面很广
4.C\C++
C、C++是Linux/unix的核心语言,系统代码都是C写的
5.ASM
系统底层及内核,硬件,设备驱动程序,嵌入式开发都需要
//走核心路线的话,才c\c++,asm最重要
6.Java,Python,Tcl,XML
*系统管理篇
在熟悉Linux的基础上还需要掌握至少一种unix
我首推Solaris,其次是FreeBSD
比如运营级系统一般是Solaris+Oracle/DB2之类的
学习apache,ssh,sendmail/Qmail,proftp/vsftp,Samba,Squid,MySQL/PostgreSQL/Oracle,Bind
等各种应用服务器的构架及电子商务的应用
熟悉TCP/IP协议族,学习诸如apache+php+proftp+mysql+quota的实现以及大型局域网,分布式集群
等各种企业级应用解决方案
熟悉多用户管理,数据库管理,文件系统,逻辑存储管理,日志分析,备份与灾难数据修复
系统补丁,内核升级,以及在此基础上的防火墙构架等以保障系统安全在内的各种系统管理技能
我觉得,如果在此基础上再掌握路由/交换设备便是一个不错的系统管理员
各种基于Linux的解决方案可参考相关书籍和文献,必要时用google或各大Linux站点站内
搜索引擎寻找最新文档,以避免错误和漏洞
有几本技术大全和技术内幕我认为都是这方面不错的书
*深入学习Linux
我个人理解的读Linux内核需要的基础:
在此之前,希望先把应用层的东西学一下,那样会比较好理解
1.C
如果学过潭浩强的大学教科书(除了编几个数学模型好像什么也做不了的那种),
建议再看一下
《The C Programming Language》Second Edition这本圣经
/*如果想学缓冲区溢出,这点C的功力可能是不够的*/
还有,<C陷阱与缺陷>,<C专家编程>,<C\C++深层探索>
反正经典书看多了是没有坏处的
2.asm (AT&T语法,保护模式)
保护模式下的比较复杂,基本上每本讲内核的书都会有介绍
有80x86 Intel语法的基础就行,
有兴趣可以看看Intel的官方****
3.数据结构(离散数学)
计算机专业的核心课程,重要性我就不说了
4.操作系统原理
看懂这个再去读Linux吧
5.微机原理/组成原理(数字电路)
底层直接和硬件打交道,所以这个也要
6.了解Linux/unix
我想至少你要会操作吧,了解unix的API
7.软件工程/编译原理
这方面的经典书去www.china-pub.com可以搜到很多
我觉得APUE这种书不适合初学者,还是先看看UPE之类的吧,这样你就能学好Linux操作系统的知识了。
可以按照以下思路学习Linux操作系统:
第一阶段:linux基础入门
Linux基础入门主要包括: Linux硬件基础、Linux发展历史、Linux系统安装、xshell连接、xshell优化、SSH远程连接故障问题排查、L inux基础优化、Linux目录结构知识、Linux文件属性、Linux通配符、正则表达式、Linux系统权限等
第二阶段:linux系统管理进阶
linux系统管理进阶包括:Linux定时任务、Linux用户管理、Linux磁盘与文件系统、Linux三剑客之sed命令等。
第三阶段:Linux Shell基础
Linux Shell基础包括:Shell编程基础、Linux三剑客之awk命令等。
第四阶段:Linux网络基础
第五阶段:Linux网络服务
Linux网络服务包括:集群实战架构开始及环境准备、rsync数据同步服务、Linux全网备份项目、nfs网络存储服务精讲、inotify/sersync实时数据同步/nfs存储实时备份项目等。
第六阶段:Linux重要网络服务
Linux重要网络服务包括:http协议/www服务基础、nginx web介绍及基础实践、nginx web、lnmp环境部署/数据库异机迁移/共享数据异机迁移到NFS系统、nginx负载均衡、keepalived高可用等。
第七阶段:Ansible自动化运维与Zabbix监控
Ansible自动化运维与Zabbix监控包括: SSH服务秘钥认证、ansible批量自动化管理集群、 zabbix监控等。
第九阶段:大规模集群高可用服务(Lvs、Keepalived)
第十阶段:Java Tomcat服务及防火墙Iptables
第十一阶段:MySQL DBA高级应用实践
MySQL DBA高级应用实践包括:MySQL数据库入门基础命令、MySQL数据库进阶备份恢复、MySQL数据库深入事务引擎、MySQL数据库优化SQL语句优化、MySQL数据库集群主从复制/读写分离、MySQL数据库高可用/mha/keepalved等。
第十二阶段:高性能数据库Redis和Memcached课程
第十三阶段:Linux大规模集群架构构建(200台)
第十四阶段:Linux Shell编程企业案例实战
第十五阶段:企业级代码发布上线方案(SVN和Git)
第十六阶段企业级Kvm虚拟化与OpenStack云计算
第十七阶段公有云阿里云8大组件构建集群实战
第十八阶段:Docker技术企业应用实践
第十九阶段:Python自动化入门及进阶
第二十阶段:职业规划与高薪就业指导
Linux学习周期因人而异,如果您有比较好的学习规划,每天坚持学习4至5个小时,坚持3至6个月,应该可以熟练掌握Linux基本操作,但是,如果只有计划,没有实施,那就另当别论了,如果想更深入、更节省时间的学习Linux操作系统,建议报班学习,效果会更加明显!
学linux开发难吗?是 Linux初学者经常会问的问题,其实Linux和Windows一样都属于操作系统,对于大部分人来说,对Windows操作系统十分熟悉,而对Linux操作系统没有使用过,所以觉得很难,其实,只要熟练掌握其操作命令和一些系统规则,就可以像使用Windows一样可以轻松使用Linux操作系统!
想要学好Linux,需要具备以下能力:
1. 基本功要扎实
学习任何一种语言,必备的基本功是必须要有的,一方面可以提高效率,另一方面可以拓宽思路。
对于Linux基本知识的学习,对一些初学者来说是枯燥乏味的,可以通过理解再背诵的方式先进行代码及语法的学习,然后进行实践操作,必须手动输入命令行,不要借助工具,这样可以更快速有效的掌握Linux。
2. 学以致用
Linux学习的目的是应用,Linux基本知识是一些零散的技术,当没有应用在项目上时,我们无法理解他的真实价值,所以打好基本功之后,最紧迫的是多做几个完整的项目,刚开始可以是功能简单的项目,之后可以选择稍微复杂的项目,勤于动手,敢于实践,一定能学好Linux。
3. 学会使用Linux联机帮助
任何一种教材都不会完全讲述Linux知识,一般讲的都是比较常用的或者是比较有代表性的知识,但是,我们在项目应用中往往有些功能的实现是需要一些生僻知识和技能的,那么,如何查找我们所需的知识呢,推荐查阅Linux帮助文档,主流的Linux都自带详细的帮助文档,很方便解决问题!
4. 在网上找资源
在Linux的学习和应用中,难免会遇到一些没有思路、不知道如何解决的问题,这时就要借助网络力量,可以通过搜索引擎搜索查找,也可以咨询资深技术人员,最终实现问题的解决,这是Linux知识积累的一个重要的途径!
5. 查阅英文技术文档
如果想深入学习Linux,查阅英文技术文档是十分必要的,往往最新的技术都是采用英文文档的方式发布的,而且更全面,因此,对于Linux人员来说,多看一些Linux技术文档,对于掌握前沿技术和加深知识是十分有必要的!
linux运维操作系统学习路线
第1阶段
零基础入门
第2阶段
Linux系统管理&shell编程
第3阶段
百万级访问量集群实战
第4阶段
千万级访问量核心集群实战
第5阶段
一切核心技术的底层支持:云计算集群
第6阶段
大数据运维
第7阶段
Python自动化和指
如何学习linux
忠告初学者学习Linux系统的8点建议
1.主流Linux发行版都自带非常详细的文档(包括手册页和FAQ),从系统安装到系统安全,针对不同层次的人的详尽文档,仔细阅读文档后40%问题都可在此解决,其余的60%就看看类似于Linux就该这么学这种技术书就能解决了。 2.查阅经典工具书和Howto,特别是Howto是全球数以万计的Linux、Unix从业人员的经验总结...
linux该如何学习呢?
第一至第十章教程内容 从Linux历史、发行版本到硬件RAID与YUM软件包管理,再到任务计划、实战与工具使用,构建全面的Linux学习体系。每章节包含详细讲解与实际操作,确保知识的深度与广度。书籍推荐 《鸟哥的 Linux 私房菜 —— 基础篇》、《深入理解 LINUX 内核》、《深入Linux内核架构》、《Linux内核完全...
【够全面够清晰】Linux超强学习路线图
首先,我们从基础知识开始,了解Linux相关操作,包括首次登陆、命令行模式下的执行、使用nano编辑文本、正确的关机方式等。接着,深入学习文件目录操作,包括用户与用户组概念、文件权限操作、目录配置、文件和目录管理、Linux磁盘与文件系统管理等。在掌握基础知识后,我们将学习Shell命令,包括初始BASH和shell、...
频教程学习Linux入门级视频教程系统linux视
首先,建议能够首先使用视频教程来学习Linux,这样可以看到操作系统是如何安装和配置,而且有很多视频教程可以免费看。同时,孩子也可以使用一些在线课程来提高Linux技能,例如LinuxFoundation上的“Introduction to Linux”课程,以及MIT上的“Linux课程”、Udemy、edX等网站上的免费课程。此外,通过参加线下的Linux...
新手如何有效学习linux?
1)网络基础与linux系统的管理 2)优化及高可用技能 3)虚拟化与云平台技术 4)开发运维 毕业后可从事的工作有:1)Linux运维工程师 2)数据库工程师 3)云计算运维工程师 4)自动化运维工程师 5)云计算架构工程师等 互联网行业目前还是最热门的行业之一,学习IT技能之后足够优秀是有机会进入腾讯、...
为什么要学习Linux
先说说我的想法:当初我学习 Linux 就是一个好奇,同时对开源有一种向往,然后就自己网上看教程,装系统,泡论坛看帖子,照猫画虎改文件,敲命令,记得当时的 Ubuntu 下的 3D 桌面挺火的,整天就倒腾这些东西,后来觉得没意思了就买了本《鸟哥的 Linux 私房菜》才开始学习终端命令,学习 Vim,Apache...
Linux运维培训需要多久能学会,在哪儿学呢?
至于学习地点,千锋教育提供线下和在线两种学习方式供学员选择。我们在多个城市设有教学中心,提供实体课堂培训。另外,我们也提供在线直播课程,方便学员随时随地进行学习。不论您身处何地,都可以通过千锋教育的课程学习Linux运维技能。如果您对学习Linux运维感兴趣,我推荐您选择千锋教育进行培训。请访问千锋...
学LINUX有什么用啊?拜托各位大神
随着Linux应用的扩展许多朋友开始接触Linux,根据学习Windwos的经验往往有一些茫然的感觉:不知从何处开始学起。这里介绍学习Linux的一些建议。 一、从基础开始: 常常有些朋友在Linux论坛问一些问题,不过,其中大多数的问题都是很基础的。例如:为什么我使用一个命令的时候,系统告诉我找不到该目录,我要...
想请教一下linux 学习的话 都有哪些方向 新手,,,学习不知从何入手...
程序开发 服务器运维 把基础学好 你自己就能找到方向了 百度文库里面很全 (基础的东西)你可以看下 弄虚拟机配合学习 如何你舍得投入的话可以到空间商买个 真实服务器 做些东西 这样学的更深入 学任何东西都要有耐心 只要坚持就能学好 ...
为什么你应该学习 Linux
必做题是,在 Windows Azure 云平台上,搭建一个 Web 应用,用户上传图片,把图片旋转后显示给用户,并保存到云存储上。选做题是,把用户上传的原图和旋转后的图片拼成一张图片。(我没有听题,可能不准确,见谅)首先澄清一点,上图中不是所有的人都在 Coding 组,大部分人的任务本来就不是编程序...
徒万先妮: 1、开始上手避免工具控,比如为了学习vim,就一直在练习vim的命令,我建议是根据问题来,可以自己要在linux下写个小程序,然后在编码过程中,有针对性的去寻找命令的用法,这样做可以让自己对命令牢记深刻,然后编译程序,调试程序...
绥阳县15070957561: 如何学习linux操作系统? - ?
徒万先妮: 把我学习linux的方法告诉你吧!很快提升,也是一个很有趣的方法,曾经让我一个不懂linux的朋友快速的学会了哦!1、先找一本基础的书,我当初用的是鸟哥的linux私房菜,基础篇和服务欺篇,当然了,我介绍我朋友用的也是他哦.貌似网上有电子版的.2、先大体上浏览一下书.不要很详细的看,看不下去,会烦的.3、安装一个linux的系统.在虚拟机上就可以了.4、把你的基础篇的书,从头到尾的敲上一遍,看看会出什么现象,多做试验哦.5、要做笔记的,把你敲试验的新得体会总结一下,这样就成你的知识了.6、要多出错误,多排除错误,这是通往高手的必经之路哦.7、多与别人交流 (在不懂的时候就多敲吧,不懂没有关系,看到现象就可以了,看的多了就懂了)
绥阳县15070957561: Linux操作系统入门到精通? - ?
徒万先妮: Linux中常用命令是必须掌握的,它们与系统状态、目录、文件、网络等相关.本节讲解常用的Linux命令,为今后学习更复杂的命令打下良好基础.系统工作命令1. 查看系统信息uname -a 显示当前系统相关信息uname -r 显示系统内核版本...
绥阳县15070957561: 怎么学好Linux??
徒万先妮: 学Linux当然从装系统开始了..先学会装Linux系统. 然后就是学习命令行的操作,这个可以找到一本PDF书,《鸟哥的Linux私房菜》 这本PDF花1星期左右就可以看完学完了. 这本书看完的话,linux系统也就算入门了. 接下来就看你是要linux系统做什么了.如果是想学主机维护方向的,就可以继续看鸟哥的 服务器搭建,还有其他什么系统维护调优的书. 如果是用Linux系统来做嵌入式开发(目前最热门,安卓系统就是linux系统的一个应用), 就要学一下怎么用vim编辑器,来编写程序,用gcc来编译,用./来运行程序..等等. 还要学会怎么搭建交叉编译环境,把程序加载到目标板运行.. 还有什么不懂的可以继续追问..
绥阳县15070957561: 如何学习linux系统? - ?
徒万先妮: 1、在virtual box或vmware上安装linux学习. 2、Linux一般是用C/C++语言的.一般的桌面版也非常好的支持perl、python、tk/tcl、asm、java、fortran、lisp、prolog等几乎所有编程语言.(Basic除外).红旗linux自带了gcc、g++,perl,python,tk/tcl,...
绥阳县15070957561: 怎样学习Linux??
徒万先妮: 1,把电脑装成 Ubuntu 9.10 的操作系统; 2,买个 Linux 系统的手机,比如:MOTOROLA E680I,MOTOROLA A768,现在的二手都很便宜; 3,把一切在 温到死 做的事情搬到 Linux 下面; 4,把所有遇到的问题在网上搜索解决方案,或者购买相关书籍学习.
绥阳县15070957561: linux怎么学啊? - ?
徒万先妮: 与linux有关的的书籍,首推《鸟哥私房菜》了.你在自己电脑上装个虚拟机吧,在虚拟机里安装linux操作系统.既可以实际操作linux,又不影响你日常的使用windows系统.linux学习分为系统管理,网络服务,网关防火墙这三大类,系统管理是最基础的,如果你仅仅只是想会用就可以,学系统管理就可以,如果想要应用,后面两个也是必须的了.建议,刚开始学linux,在字符界面下用命令操作,不要养成linux的桌面操作习惯.毕竟linux的特色就是字符操作.刚开始可能更多的是记命令了,跟对应的windows操作结合起来会更容易记住的.比如windows上新建一个文件夹,在linux的命令操作就是mkdir file.
绥阳县15070957561: 怎么才能学好LINUX??
徒万先妮: 学习Linux的心得 学习Linux分好几种层次,我个人觉得可以用中学里学的课文《疱丁解牛》来对比.说白了也就是对事物的认识一般都是由表及里的过程,学习Linux也是一样的.以前总觉的学理的人只要会数理化就行了,很多老师们由于自身的...
绥阳县15070957561: linux怎么学? - ?
徒万先妮: 先学习操作系统基本原理. 然后学习linux系统管理,同时安装个发行版,这段时间要卸掉windows,坚持使用linux. 再自己编译出个可用内核. 再研究linux源代码. 这些都弄完了,楼主就是大神了~