Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
Linux发行版:
Red Hat,CentOS,Ubuntu,Debian GNU/Linux,Fedora,Gentoo,MandrivaLinux,PCLinuxOS,openSUSE,ArchLinux,Puppylinux等
下面干货来了,从事Linux运维行业,必须要了解和掌握Linux运维的各项技能,这是一个非常庞大的技术领域,需要每一位运维从业人员必须掌握的职业技能。
第一阶段:初级入门(从基础命令开始入手)
Linux是一个命令行组成的操作系统,精髓在命令行,无论图形界面发展到什么水平这个原理是不会变的,Linux命令有许多强大的功能:从简单的磁盘操作、文件存取到复杂的服务器管理运行。Linux入门是很简单的,问题是你是否有耐心、爱折腾。这里笔者把它们中比较重要的和使用频率最多的命令,按照它们在系统中的作用分成几个部分介绍给大家,通过这些基础命令的学习我们可以进一步理解Linux系统:
1、安装和登录命令:login、 shutdown、 halt、 reboot 、mount、umount 、chsh
2、文件处理命令:file、 mkdir、 grep、dd、 find、 mv 、ls 、diff、 cat、 ln
3、系统管理相关命令: df、 top、 free、 quota 、at、 lp、 adduser、 groupadd kill、 crontab、 tar、 unzip、 gunzip 、last
4、网络操作命令:ifconfig、 ip 、ping 、 netstat 、telnet、 ftp、 route、 rlogin rcp 、finger 、mail 、nslookup
5、系统安全相关命令: passwd 、su、 umask 、chgrp、 chmod、chown、chattr、sudo、 pswho
学习使用强大好用的shell脚本
Linux中的shell是一个很好用的工具。Shell终端解释器被形容是人与计算机之间的“翻译官”,它作为用户与Linux系统内部通讯的媒介,除了允许了各种变量与参数外还提供了诸如循环、分支等高级语言才有的控制结构特性,如何来正确的使用这些功能,准确下达命令就显得尤为重要。通过shell我们可以编写脚本文件,从而实现工作的自动化,来减轻我们在Linux系统上面所做的重复劳动,这样使我们在部署服务器时,能够减少时间,高效的工作。同样通过shell可以减少服务器资源的浪费,把可使用的资源最大化的给应用软件,实现资源最优的分配。
学习平台推荐:
腾讯课堂 ke.qq.com
百度传课 chuanke.baidu.com
慕课网 www.imooc.com
第二阶段:中级进阶
中级进阶需要在充分了解linux原理和基础知识之后,对上层的应用和服务进行深入学习,其中说到服务肯定涉及到网络的相关知识,是需要花时间学习的。
1、TCP/IP网络基础
2、Linux企业常用服务(如dns、http、ftp、mail、nfs等)
3、Linux企业级安全原理和防范技巧(系统性能/安全、安全威胁模型和保护方法)
4、 加密/解密原理及数据安全、系统服务访问控制及服务安全基础
5、iptables安全策略构建
6、shell脚本进阶(主要是结合一些应用,写一些案例)
7、MySQL应用原理及管理入门(能管理和搭建个人博客站点)
学到这里,掌握的基本技能,已经够用了,已经能做一些基础的运维工作和简单维护了。
第三阶段:高级提升
1、http服务代理缓存加速(其中主要学习varnish、nginx缓存系统,要对CDN的知识有所了解。)
2、企业级负载集群(其中主要学习nginx、haproxy、lvs要对主要知识熟练掌握,对负载均衡算法有清晰认识,)
3、企业级高可用集群 (其中需要对keepalived,heartbeat等进行深入讲解)
4、运维监控zabbix详解(主要是zabbix、cacti、nagios等监控系统,现在用的比较多的是zabbix)
5、运维自动化学习(需要学一些开源运维自动化工具的使用如ansible、puppet、cobbler等运维自动化工具)
能掌握到这里,基本能处理搞定很多工作了,可以去面试高级运维工程师。
第四阶段:资深方向进阶
需要学习的是Linux平台的C/C++开发,同时还有Bash脚本编程,如果你对Java兴趣很深还有Java。 同样,建议你抛弃掉图形界面的IDE,从VIM开始。然后是GCC,Make,Eclipse(Java,C++)。
虽然将C++列在了Eclipse中,但我并不推荐用IDE开发C++,因为这不是Linux的文化, 容易让你忽略一些你应该注意的问题。 IDE让你变懒。如果你对程序调试,测试工作很感兴趣,GDB也得学的很好, 如果不是GDB也是必修课。这是开发的第一步,注意我并没有提过一句Linux系统API的内容, 这个阶段也不要关心这个。你要做的就是积累经验,在Linux平台的开发经验。
1、 大数据方向(需要对hadoop、storm等常见开源大数据系统需要深入了解)
2、 云计算方向(主要是openstack这套东西,当然像一些kvm等虚拟化技术,也是需要掌握的,现在docker也比较流行)
3、 运维开发(主要是python运维开发)
4、 自动化运维(在之前自动化基础上做深入)
5、 运维架构师(主要需要广度,差不多5年左右以上经验)
很多同学接触Linux不多,对Linux平台的开发更是一无所知。 而现在的趋势越来越表明,作为一个优秀的软件开发人员,或计算机IT行业从业人员, 掌握Linux是一种很重要的谋生资源与手段。
关于书籍:
1、《Linux就该这么学》从基础到精通的整个过程,值得学习。
2、《Linux程序设计》- 靠它来入门,然后装一个linux系统,学习shell(bash)和linux C,把基础打牢;
3、《深入理解Linux内核》和《Linux内核设计与实现》:非常好的Linux深入学习书,详细介绍Linux的内核设计和原理;
4、《Linux设备驱动设计》:必买必看,实用性强;
5、《Advanced Programing in Unix Envirement》等
关于网站:
1、linux.cn/ Linux中国 开源社区
2、linux.chinaunix.net/ Linux时代
3、www.linuxdiyf.com/ 中国领先的Linux技术网站 红联Linux
4、www.oschina.net/ 开源中国社区
5、www.linuxidc.com/ Linux公社 Linux系统门户网站
6、www.linuxdown.net/ Linux下载站 提供Linux系统下载 等