学习Linux的心得

学习Linux的心得,第1张

LINUX跟DOS差不多就是大概了解一下LINUX的结构之后记命令就行了???================================不可误人子弟,,,记得以前也在知道里回答过类似的问题,=======================================================================我个人在这里说一下在学习linux的这几年的一点心得,不敢说有什么成功的经验,但是有很多失败的教训。第一点:我学习linux是在大二的时候。那时候装的发行版本是redhat。可是刚刚开始的时候声卡的驱动装不上,其它比如说显卡,网卡都弄好。但是由于没有声音所以就没坚持用下去。几年后再次弄那个声卡的时候还是弄不上,可是这次的决心比较大,所以查了n多的资料;请教了很多人。终于被我弄好了。---------总结:无论是学习linux还是其它,决心是要摆在很重要的位置的。第二点:前两年的时候,对linux以及gnu的很多开源的东西产生了浓厚的兴趣;所以就开始深入的研究linux。甚至使用linux不久就开始阅读内核代码。可是到今天我还没真正意义上理解内核的结构,以及很多模块的功能,及实现原理。----------总结:不要在错误的时间做错误的事情。具体的讲有那么几层意思:a》不要动不动就去读kernel代码;b》不要太高估自己的能力;c》千万要在有一定知识积累的时候才能去研究更深层次的东西;d》要带的问题去学习,而不是空洞地进行技术研究;研究技术本身是学院派的作风。第三点:linux上面的开源的软件,和linux所包含的开放的精神,文化和内涵;它们是比linux内核更有价值的。--------总结:选择了linux其实也是选择了一种文化,选择了一种信仰;既然把这个选择上升到那么高的层次,那么任何的比较(与其它系统)都是不明智的;至少是不会有很大价值的。第四点:回到问题本身,如何去学习它?我个人认为应该遵循以下的顺序:接触(安装一个发行版本)=》认识(至少了解它能做什么)=》熟悉(用它来完成一些日常的工作)=》理解(在长时间的使用过程中了解为什么linux是这样解决问题的)=》创造(在前面几步的基础上做一些改进,创新)。当然在这样一个过程中有很多的“功课”要做, *** 作系统方面的知识当然是很重要的;但是不是很急迫,所以可以在后来有基础了再去了解;至于象保护模式也是一样。我个人做了这样一个学习的等级划分:1。重要,紧急:熟悉目录结构,熟悉基本 *** 作命令(注意是基本),文本编辑器的使用(使用vi或者emacs但是不建议都学,因为本人当初就是想都精通,后来惹了不必要的麻烦;现在专心用vi)。2。重要,不紧急:正则表达式,grep,sed,awk,perl,gcc,gdb(其实这些东西的学习是需要很长的过程,但是它的使用又是贯穿整个系统;之所以重要是因为它们很好地体现了linux的精神;之所以不紧急并不是真的不紧急,是因为它们本身就是一个很伟大很复杂的软件需要慢慢消化吸收而不是囫囵吞枣)。3。不重要,紧急:一个绚丽的桌面,一些幽雅的桌面小插件(linux的强大事实上并不在其桌面环境,虽然gnome和kde都非常的幽雅;之所以不重要是相对于其它更重要的东西而言的,而之所以紧急是因为这些东西会在很短的时间内catch住你的心,你的兴趣;而兴趣是支撑你接下去学习过程的最最重要的东西---这一点请相信)。4。不重要,不紧急:将windows上常用的东西移到linux上,比如要在wine上玩wow或者cs(原因是显而易见的,开航母去钓鱼肯定没有划着小船来的有情调)最后我个人的建议是:了解 *** 作系统的组成,工作原理要从了解它上面运行的应用软件开始。了解它上面的应用软件则要通过日复一日地使用它。我不觉得哪一本书能达到你期望的那种效果;但是如果在你坚持使用linux的过程中总是不断地去总结和接受新的东西,那么不要过很久你会发现linux是你的一个很好的助手。

一.为什么要学linux?

当然最重要是爱好和兴趣!如果你这种必要学,或者根本不喜欢,请不要浪费时间,你学也学不好!

二.起步

你应该为自己创造一个学习linux的环境--在电脑上装一个linux或unix

如何选择版本:北美用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的普通 *** 作与真正的系统管理不能相提并论,后者需要很多知识

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


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/6234004.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-18
下一篇 2023-03-18

发表评论

登录后才能评论

评论列表(0条)

保存