老婆自從懷孕之後,辭職在家待了好幾年了,如今時常感受與社會脫節。因此想找個工做。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運維有啥用啊?
掙錢啊。笑。
這是一個入門算比較容易的工種,低級階段的工做也不算繁重。
可是能在這個崗位上作得精通卻至關不容易,仍是比較有上升空間的。
到高階段作運維管理、系統專家,或是轉運維開發、測試開發。都是不錯的出路。
本文說的東西都是一家之言,若有謬誤,歡迎你們指正。
若是感興趣的話,能夠關注個人公衆號,後續個人一系列教程應該是首先發在公衆號。