linux学习文档
‘壹’ 如何学习linux
1、学习linux要学的内容很多,很多东西必须了解其机制,所以并不单单的如windows那样傻瓜式的学习,因为windows本身就是针对不懂电脑的人群。。
2、精通这种词很难定义,反正要学的东西很多。
3、在windows下安装虚拟机对于新手学习linux较方便,在linux安装windows虚拟机(我的经验是卡,我用的是vmware 而且不是一般的卡) ,起初条件差,自己装了双系统,后来就买两台电脑,一台LINUX一台WINDOWS。
下面就是详细的说一下。。
一.为什么要学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.软件工程/编译原理
‘贰’ 如何学习linux
学习Linux步骤:
1、先了解了解基础吧,找一本薄一点的,浅一点的书,了解一下什么是linux。有个基本了解即可。不建议马上看《鸟哥的Linux私房菜》,这本书很不错,如果你了解linux基础之后再看,对你可以说是不受益匪浅都不行。没基础看《鸟哥的Linux私房菜》比较痛苦,内容很多。
2、了解之后,在自己电脑上弄个虚拟机,装上linux系统(redhat或ubuntu都行)。专攻《鸟哥的Linux私房菜》。当你把这本书攻下来时,才知道原来命令行并不可怕,自己打着打着就很长啦。
学linux最主要靠实践,不实践,只看书对你没好处的哦。自己在虚拟机上慢慢玩吧,玩多了就知道咋回事啦。不懂的多找资料弄懂,弄懂之后再实践,这才会有收获。
‘叁’ Linux学什么
Linux作为Windows的有力竞争对手,近年来的发展速度令人瞠目结舌,特别是在服务器、桌面、行业定制等领域取得了引人注目的成果.那么,作为初学者,学习Linux的第一步是什么呢?Linux在学什么呢?下一位编辑分享整理的注意事项.
首先,你应该为自己创造一个学习Linux的环境上安装Linux或unix.如何选择版本:北美使用redhat,欧洲使用SuSE,桌面mandrake多,debian是技术最先进的Linux开发者中使用debian的最多,其次是redhat,从世界Linux各应用领域的市场份额来看,redhat确实是最多的.
对于初学Linux的人来说,我建议使用redhat.原因如下.
1)现在很多书都以redhat为例,为了与书协调2)周围的人使用redhat,交流方便3)redhat应用范围广,具有典型性和代表性4)使用方便,我们不必把时间浪费在安装系统上
从现在开始,不要以windows的工作方式考虑问题,应该挖掘Linux身体的天才unix气质.
前期工作准备好后,我们真的要打开Linux世界的大门.首先,你需要做的几件事:至少掌握50个以上的常用命令;理解shell管道“|”,文件重定向“>;“添加”>;”等;熟悉X-windows桌面环境操作;掌握tgz.rpm.biz等软件包的常用安装方法;学习添加外部设备,安装设备驱动程序(例如modem);熟悉Grub/Lilo导航器和简单的修复操作;熟悉系统固有目录的名称和公共设备;学习添加外部设备,安装设备驱动程序(例如modem);熟悉grub/Lilo导航器和简单的修复操作;熟悉系统固有目录的名称和公共设备;学习使用mount命令访问其他文件;了解编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑弊慧、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑老弊、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、侍卜族编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编辑、编
建议:购买不需要太厚的Linux教材,可以大致满足要求.
明确几个概念:Linux的普通操作不能与真正的系统管理相比,后者需要很多知识
1.英语:即使你不学Linux,我也强烈建议你学好英语[u.s.english].实质上,计算机语言是英语和文字,所谓多语言只是外部包装.无障碍地阅读大量的英语技术文件,在搜索引擎中找到的英语网站和网页上熟练的搜索,最好有能力用英语直接交流,摆脱这个障碍,学习和理解速度快,有机会打开和别人的差距.
2.shell[sed/awk]:shell是命令说明器,是核心与用户界面的交流通道,shell写的小脚本与win相似.bat但shell比.bat强大得多,shell不仅是说明命令,也是编程语言,有时数百行的c用shell几十行可以代替完成工作.因为shell的工作方式建立在系统中的许多应用程序上.这也是CS的重要思想.另外,shell可以实现工作自动化,这个概念也很重要,awk用于处理文本,一直很常用.
3.Perl/PHP:美丽的脚本,CGI优先,优于ASP,应用面广.
4.CC:C、C是Linux/unix的核心语言,系统代码是c写的.
5.ASM:需要系统的基础和核心、硬件、设备驱动程序、嵌入式开发.//走核心路线,cc、asm是最重要的.
6.Java、Python、Tcl、XML在熟悉Linux的基础上至少需要掌握一种unix.我第一次推进Solaris,其次是FreeBSD,例如运营级系统一般是Solarisoracle/DB2等学习apache、ssh、sendmail/Qmail、proftp/vsftp、Samba、Squid、MySQL/PostgreSQL/Oracle、Bind等各种应用服务器架构和电子商务应用熟悉TCP/IP协议族,学习如apachephept技术/PhphephtcreSQL/PhtgreSQL/OreSQL/Bacle、Bind等各种应用服务器架构和电子商务器架构
在此基础上掌握路由/交换设备是好的系统管理者.根据Linux的各种解决方案可以参考相关的书籍和文献,必要时可以在google和各大Linux站点内的搜索引擎中找到最新的文档,避免错误和漏洞的技术大全和技术内幕是这方面的好书.
我个人理解的Linux核心所需的基础:在此之前,希望先学习应用层的东西,这样才能理解.
1.c:如果学过潭浩强的大学教科书(数学模型好像什么也做不了),建议再看一遍这本圣经(如果想学习缓冲区溢出,c的功力可能不够,<;c陷阱和缺陷>;c专家编程>;,<;CC层深入探索>;不管怎样,经典书看起来很多都没有坏处.
2.asm(AT&;t语法、保护模式):保护模式下比较复杂,基本上每本核心书都有介绍80x86Intel语法的基础,有兴趣可以看到Intel的官方网站.
3.数据结构(离散数学):计算机专业的核心课程.
4.操作系统的原理:理解这个再读Linux吧.
5.微机原理/构成原理(数字回路):底层直接与硬件交往.
6.了解Linux/unix:了解unix的API
7.软件工程/编译原理
以上是小编整理的Linux学什么相关知识内容,希望对大家有所帮助.