`
xpp02
  • 浏览: 1053785 次
社区版块
存档分类
最新评论

浅谈如何学习linux

 
阅读更多

一.为什么要学linux?

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

二.起步

你应该为自己创造一个学习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之类的吧

APUE:
《advanced programming in the unix environment》
《unix环境高级编程》
作者:W.Richard.Stevens共有6本经典书,尊为“圣经”
他的书为全世界黑客所拜读!

UPE:《unix programming environment》
《unix编程环境》比较适合初学者的,深入浅出,
其中有一些比较重要的思想
另外,介绍linux下应用层编程的书也有很多,比如
<GNU/Linux编程指南>,redhat,redflag出的书...........
经典书还有很多很多......
操作系统:设计与实现 //交大的考研参考书目,讲Minix的
unix操作系统设计
4.4BSD操作系统设计与实现
昂莱氏unix源代码分析
ulk:understanding the linux kernel (2nd)深入理解linux内核
linux设备驱动程序 (2nd)
linux内核源代码情景分析
保护方式下的80386及其编程(次书已绝版,只有超星的电子版,如果谁能搞到纸书,清一定告诉我一下,非常感激!!!)

在这里你能明白"黑客"及"haching"一词所代表的真正意义
希望我写的这篇文章能造就更多的黑客,而不是骇客

五.一些资源 www.linuxforum.net //国内最高水平GNU站点www.chinaunix.net //unix、系统管理的不错www.linuxeden.com //下载软件不错www.linuxaid.com.cnwww.linuxsir.org

其实还有很多,包括国外的


一.为什么要学linux?

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

二.起步

你应该为自己创造一个学习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之类的吧

APUE:
《advanced programming in the unix environment》
《unix环境高级编程》
作者:W.Richard.Stevens共有6本经典书,尊为“圣经”
他的书为全世界黑客所拜读!

UPE:《unix programming environment》
《unix编程环境》比较适合初学者的,深入浅出,
其中有一些比较重要的思想
另外,介绍linux下应用层编程的书也有很多,比如
<GNU/Linux编程指南>,redhat,redflag出的书...........
经典书还有很多很多......
操作系统:设计与实现 //交大的考研参考书目,讲Minix的
unix操作系统设计
4.4BSD操作系统设计与实现
昂莱氏unix源代码分析
ulk:understanding the linux kernel (2nd)深入理解linux内核
linux设备驱动程序 (2nd)
linux内核源代码情景分析
保护方式下的80386及其编程(次书已绝版,只有超星的电子版,如果谁能搞到纸书,清一定告诉我一下,非常感激!!!)

在这里你能明白"黑客"及"haching"一词所代表的真正意义
希望我写的这篇文章能造就更多的黑客,而不是骇客

五.一些资源 www.linuxforum.net //国内最高水平GNU站点www.chinaunix.net //unix、系统管理的不错www.linuxeden.com //下载软件不错www.linuxaid.com.cnwww.linuxsir.org

其实还有很多,包括国外的

分享到:
评论

相关推荐

    浅谈学习Linux的必要性以及学习方法.pdf

    《浅谈学习Linux的必要性以及学习方法》 在当今数字化时代,Linux操作系统的重要性日益凸显。Linux以其开源、免费、安全和高效的特点,不仅在服务器领域占据主导地位,还在嵌入式开发、系统管理等领域有着广泛的...

    Linux新手必看:浅谈如何学习linux.rar

    下面将根据标题和描述,以及可能包含在"Linux新手必看:浅谈如何学习Linux.txt"文件中的内容,为你详细介绍如何有效地学习Linux。 1. **理解Linux基础**: 首先,你需要了解Linux的基本概念,包括什么是Linux、它...

    浅谈《Linux》课程的一体化教学.pdf

    【标题】:“浅谈《Linux》课程的一体化教学” 【描述】:本文主要探讨了在高职计算机网络专业中Linux课程的一体化教学方法,强调了理论与实践相结合的重要性。 【标签】:“Linux操作系统”、“系统开发”、...

    浅谈Linux用户管理.pdf

    - 学习Linux用户管理,可以参考专业书籍和在线教程,了解最佳实践和标准操作流程,以确保系统的高效、安全运行。 综上所述,Linux用户管理是保证系统安全、资源公平分配和有效协作的关键环节。掌握用户管理的技巧...

    浅谈Linux系统学习的方向与方法.pdf

    浅谈Linux系统学习的方向与方法.pdf

    浅谈Linux内核TCP_IP协议栈源代码教学.pdf

    "浅谈Linux内核TCP_IP协议栈源代码教学.pdf" Linux操作系统是当今世界上最流行的开源操作系统之一,而TCP/IP协议栈是Linux内核的核心组件之一。因此,学习Linux内核TCP/IP协议栈源代码对学生的能力培养起着至关重要...

    浅谈如何学linux

    ### 如何学习Linux:从入门到精通 #### 一、为何选择学习Linux 学习Linux的主要动力来自于个人的兴趣和爱好。如果你对操作系统没有浓厚的兴趣,可能会觉得学习过程枯燥乏味,难以持续下去。因此,强烈建议只有真正...

    浅谈教育界学习推广Linux的必要性和紧迫性.pdf

    浅谈教育界学习推广Linux的必要性和紧迫性.pdf

    浅谈更新linux-3.2.5(关于linux-3.2.5内核的配置和编译).pdf

    《浅谈更新Linux-3.2.5:内核配置与编译详解》 Linux内核的更新和移植是一项技术性极强的工作,对于开发者来说,理解和掌握这一过程至关重要。本文将聚焦于Linux-3.2.5内核的配置和编译,以帮助读者深入理解如何将...

    浅谈Linux课程在职业院校开设的必要性.pdf

    《浅谈Linux课程在职业院校开设的必要性》 Linux操作系统,作为开源软件的代表,近年来在全球范围内逐渐受到重视,尤其在职业院校中开设Linux课程显得日益重要。随着知识产权保护意识的提升和高昂的版权使用费用,...

    Linux系统学习方向和方法浅谈

    一、桌面系统 二、内核源代码学习。跟unix操作系统一样都是用C语言编写。 三、系统管理 四、应用开发 五、系统集成

    浅谈Linux系统的安装.pdf

    《浅谈Linux系统的安装》这篇文章主要探讨了在个人计算机上安装Linux操作系统的两种常见方法:双系统安装和通过虚拟机安装。以下是对文章内容的详细解释: 1. 双系统安装Linux(以Ubuntu 14.04 LTS为例): - 首先...

    linux文件系统浅谈

    ### Linux文件系统浅谈 #### 文件系统概述 文件系统作为操作系统的重要组成部分,承载着管理和组织存储设备上的数据的责任。在Linux环境下,用户可以通过文件系统进行文件的创建、删除、读写以及目录的操作等一...

    浅谈“Linux操作系统”课教学改革.pdf

    本文将针对如何进行Linux操作系统课程的教学改革进行深入探讨,以期激发学生的学习兴趣,提升学生的实践技能,以及更好地满足当今IT行业对专业人才的需求。 首先,针对学生对Linux系统的陌生感和抵触情绪,教学导入...

    浅谈Linux集群在国内石油企业的应用现状及发展趋势.pdf

    3. **人工智能与机器学习的应用**:利用Linux集群的强大计算能力,石油企业将在地质建模、预测分析等领域引入更多AI技术,提升决策精度。 4. **自动化与智能化运维**:通过自动化工具和AI辅助,Linux集群的管理和...

    浅谈Linux教育的教学改革与实践.pdf

    3. 实践环节薄弱:Linux的学习需要大量的实践操作,但目前很多课程缺乏相应的实验环境和实践机会,学生的动手能力和创新能力得不到有效锻炼。 二、Linux教学改革的建议 1. 设立完整Linux课程体系:应根据Linux的...

    浅谈高职院校Linux人才培养的趋势.pdf

    通过Linux的学习,学生不仅能掌握操作系统的基本原理,还能接触到开源文化,培养自主学习和解决问题的能力。此外,Linux的开放源代码特性让学生有机会探索和改进系统软件,增强他们在就业市场中的竞争力。 总的来说...

    浅谈LINUX系统安装、启动、备份过程.pdf

    学习Linux成为提升个人职业发展的关键,因为它提供了稳定、高效且成本效益高的解决方案。 总结起来,这篇文章介绍了Linux系统在多系统环境下的安装、启动和备份的基本流程,强调了Linux在现代社会信息化建设中的...

    浅谈桌面操作系统Linux与Windows的异同.pdf

    标题中的“浅谈桌面操作系统Linux与Windows的异同”揭示了本文将对比分析两种主流的桌面操作系统——Linux和Windows的特点和区别。这篇文章可能探讨了它们的用户界面、系统架构、软件兼容性、安全性、社区支持以及在...

Global site tag (gtag.js) - Google Analytics