共计 3136 个字符,预计需要花费 8 分钟才能阅读完成。
今天马哥教育要跟大家分享的文章是关于从入门到深入 Linux 运维 应该 学什么? Linux 入门 新手和正在 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 内核需要的基础:
在此之前, 希望先把应用层的东西学一下, 那样会比较好理解。
1.C
如果学过潭浩强的大学教科书(除了编几个数学模型好像什么也做不了的那种),建议再看一下《The C Programming Language》Second Edition 这本圣经。
/* 如果想学缓冲区溢出,这点 C 的功力可能是不够的 */
还有,反正经典书看多了是没有坏处的。
2.asm (AT&T 语法,保护模式)
保护模式下的比较复杂,基本上每本讲内核的书都会有介绍。
有 80×86 Intel 语法的基础就行,有兴趣可以看看 Intel 的官方网站。
3. 数据结构(离散数学)
计算机专业的核心课程,重要性我就不说了。
4. 操作系统原理
看懂这个再去读 Linux 吧。
5. 微机原理 / 组成原理(数字电路)
底层直接和硬件打交道,所以这个也要学。
6. 了解 Linux/Unix
至少你要会操作吧,了解 unix 的 API。
7. 软件工程 / 编译原理
这方面的经典书去百度上搜到很多,APUE 这种书不适合初学者,还是先看看 UPE 之类的吧。
APUE
《advanced programming in the unix environment》
《unix 环境高级编程》
作者:W.Richard.Stevens 共有 6 本经典书,尊为“圣经”,他的书为全世界黑客所拜读!
UPE:
《unix programming environment》
《unix 编程环境》比较适合初学者的,深入浅出,其中有一些比较重要的思想。
另外, 介绍 Linux 下应用层编程的书也有很多,比如 redhat、redflag 出的书 ………..
经典书还有很多很多:
· 操作系统:设计与实现 // 交大的考研参考书目,讲 Minix 的
· unix 操作系统设计
· BSD 操作系统设计与实现
· 昂莱氏 unix 源代码分析
· understanding the Linux kernel (2nd)深入理解 Linux 内核
· Linux 设备驱动程序 (2nd)
· Linux 内核源代码情景分析
· 保护方式下的 80386 及其编程
以上就是马哥教育今天为大家分享的关于从入门到深入 Linux 运维应该学什么的文章,希望本篇文章能够对正准备学习 Linux 运维的小伙伴们有所帮助。想要了解更多 Linux 相关学习知识记得关注马哥教育官网,最后祝愿小伙伴们顺利学成,成为一名优秀的 Linux 运维工程师!
声明:文章来源于网络,侵删!