老婆自从怀孕之后,辞职在家待了好几年了,如今时常感受与社会脱节。因此想找个工做。mysql
作了多年程序员,有点人脉也都基本是在IT圈子里,只能帮忙找找IT类的工做。linux
而我以为入门Linux运维实际上是比较简单的,可是没人教的话又比较难。因此萌生了写这个系列教程的想法。程序员
写这个系列,我感受很有点自不量力,由于我接触Linux的时间也并不久。
可是列出这个大纲,是有点本身的考虑的。sql
主要是从实际工做上来出发,实操的多,讲道理的少。docker
不少人一开始接触Linux的人其实都是一脸懵逼的,最多会点windows上的CMD命令行的通用命令:cd。shell
而在接触了Linux后,也大多没有系统的学过,都是经过搜索引擎、博客,三言两爪的,不成体系。编程
对小白来讲,一上来就让人家装虚拟机、装Linux,真是搞的人欲仙欲死。windows
从入门到放弃,不是说笑的。centos
我在2010年的时候接触到Linux这个单词的时候,直接被一堆Linux书单劝退了。安全
直到工做须要,前两年又常常跟Linux打交道,才慢慢熟悉了点。
本系列所说的不少命令,不会将其功能一一列出,只会列举一些经常使用项。想要对命令进行阶级学习,自行使用man、help命令查看帮助吧。这两个命令怎么用,回头再说。
废话就很少说了,列了个大纲V0.1以下。
回顾了下,貌似少了些经常使用的如解压缩、文件传输、用户权限这些东西。嗯,放到V0.2版本吧。
Linux其实就是另外一种有别于windows的操做系统。
可是这个操做系统基本不使用界面操做,通常用命令行干活。
嗯,电影里的黑客用的那个操做界面就是。笑。
我对Linux的解释是否是很简单?若是想看到详细的、专业的、系统性描述的小伙伴们此时就能够离开了。
由于后续的行文也都是如此,由于这个系列文章是为我老婆写的,是为那些对Linux只听过名字甚至没听过名字的小伙伴们而写的。
Linux是从Unix发展过来的,它有不少儿子(发行版),经常使用发行版有Ubuntu(AWS——亚马逊的云——默认使用此版本)、redhat、centos、Fedora(实际不经常使用,可是国产操做系统通常基于此版本),其余诸如Debian、FreeBSD等等发行版再也不一一列举,Linux的发行版本细究起来能多到让你绝望。
企业经常使用的Linux版本通常为redhat、centos,本系列以centos7为演示系统。
目前世界上大部分服务器系统都是基于Linux的。
什么是服务器系统?
例如你使用的各类App和网站,例如爱奇艺、优酷、腾讯视频,它们的先后台服务全都是部署运行在这个系统上。
那么,这么牛逼的Linux又是谁【创造】的?
Linus Torvalds,开源世界里创世神同样的人物。顺便说一句,Git也是这哥们开发的。
以为Minx(Mini UNIX)很差用,本身开发了个Linux。捣鼓了几个月的时间,Linus的Unix出现了:Linux。
能说什么呢?牛啤。
另一件有趣的事,随着Linux开源社区愈来愈庞大,你们提交代码各类冲突,Linus以为原先这个代码管理太很差用了,捣鼓了几周时间,本身开发了个Git。
以Git为核心技术的GitHub代码托管网站目前已是世界上最大的开源网站。前些日子,已是75亿美圆被微软收购了。
题外话说多了,如今对Linux与Linus有点了解了吗?
前面说了,诸如如爱奇艺、优酷、腾讯视频这些你常常看电视电影的App和网站,它们的先后台服务全都是部署运行在这个系统上。
咱们开发通常是在windows或mac上,可是打包以后的服务基本都是运行在Linux上的。
那为何你们都爱用它?
免费、免费、免费。重要的事说三遍。
而后就是开源、稳定、安全、个性化。
那会不会有程序只能运行在windows上,不兼容Linux?
嗯,因此产生了跨平台的语言和工具。例如JAVA与JDK。
运维是作什么的?
通常是负责服务器的管理、监控、维护。
例如监控日志,查看后台服务的log。接接客户电话,为何这个系统又用不了了?
在运维的低级状态基本都是人肉运维,没事的时候点一点,看看系统有没有崩坏。处理一些业务问题,看看数据对不对,功能是否是出问题了。
那高级状态是什么样的?
就是故障处理高手咯。
实际上在低级运维和高级运维中间的过渡中应该还有个中级运维,就是能够能监测服务状态(例如ping服务、Telnet端口),能够对CPU、内存、硬盘、网络服务器状态监控和一些浅显的分析。
而故障高手呢?能够针对CPU超负荷、内存溢出、硬盘损坏、网络中断等各类状况进行诊断,并予以恢复。
那么低级运维应该会什么?要掌握哪些技能?
我以为就几点吧,一是会使用xhell这样的终端工具,而后掌握一些经常使用的Linux命令,能够简单的进行文件操做、查找,磁盘、内存的资源查看就够了。
入门了以后,学一点shell编程,懂一点Liunx上的程序运行机制,能简单地解决一些生产故障。
再而后能够学学中间件的安装与优化,例如jdk、oracle、mysql,最好再懂一点SQL。
懂得一些系统的资源监控工具,如vmstat、pref、pidstat;懂得虚拟化的一些工具,如docker、Kubernetes;懂一点监控手段,如prometheus、grafana。
最后是懂得各类为生产系统作故障排除、性能优化、性能测试。
不光是用工具看看指标参数,而是具体懂得其中含义,能够利用工具来提高系统性能,解决疑难问题。
我想,这即是一个高阶运维应该干的事了吧。
那么,终极拷问来了,说了这么多,学了Linux运维有啥用啊?
挣钱啊。笑。
这是一个入门算比较容易的工种,低级阶段的工做也不算繁重。
可是能在这个岗位上作得精通却至关不容易,仍是比较有上升空间的。
到高阶段作运维管理、系统专家,或是转运维开发、测试开发。都是不错的出路。
本文说的东西都是一家之言,若有谬误,欢迎你们指正。
若是感兴趣的话,能够关注个人公众号,后续个人一系列教程应该是首先发在公众号。