教老婆學Linux運維(一)初識Linux

零、前言

之一 爲何寫這個系列?爲何是Linux?

老婆自從懷孕之後,辭職在家待了好幾年了,如今時常感受與社會脫節。因此想找個工做。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版本吧。

之二 大綱

1、初始Linux

1.一、什麼是Linux?

Linux其實就是另外一種有別於windows的操做系統。

可是這個操做系統基本不使用界面操做,通常用命令行幹活。

嗯,電影裏的黑客用的那個操做界面就是。笑。

我對Linux的解釋是否是很簡單?若是想看到詳細的、專業的、系統性描述的小夥伴們此時就能夠離開了。

由於後續的行文也都是如此,由於這個系列文章是爲我老婆寫的,是爲那些對Linux只聽過名字甚至沒聽過名字的小夥伴們而寫的。

1.2 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有點了解了嗎?

1.3 爲何用Linux?

前面說了,諸如如愛奇藝、優酷、騰訊視頻這些你常常看電視電影的App和網站,它們的先後臺服務全都是部署運行在這個系統上。

咱們開發通常是在windows或mac上,可是打包以後的服務基本都是運行在Linux上的。

那爲何你們都愛用它?

免費、免費、免費。重要的事說三遍。

而後就是開源、穩定、安全、個性化。

那會不會有程序只能運行在windows上,不兼容Linux?

嗯,因此產生了跨平臺的語言和工具。例如JAVA與JDK。

1.4 什麼是Linux運維?

1.4.1 低級運維

運維是作什麼的?

通常是負責服務器的管理、監控、維護。

例如監控日誌,查看後臺服務的log。接接客戶電話,爲何這個系統又用不了了?

在運維的低級狀態基本都是人肉運維,沒事的時候點一點,看看系統有沒有崩壞。處理一些業務問題,看看數據對不對,功能是否是出問題了。

1.4.2 高級運維

那高級狀態是什麼樣的?

就是故障處理高手咯。

實際上在低級運維和高級運維中間的過渡中應該還有個中級運維,就是能夠能監測服務狀態(例如ping服務、Telnet端口),能夠對CPU、內存、硬盤、網絡服務器狀態監控和一些淺顯的分析。

而故障高手呢?能夠針對CPU超負荷、內存溢出、硬盤損壞、網絡中斷等各類狀況進行診斷,並予以恢復。

1.4 前景規劃 & 學習路線

那麼低級運維應該會什麼?要掌握哪些技能?

我以爲就幾點吧,一是會使用xhell這樣的終端工具,而後掌握一些經常使用的Linux命令,能夠簡單的進行文件操做、查找,磁盤、內存的資源查看就夠了。

入門了以後,學一點shell編程,懂一點Liunx上的程序運行機制,能簡單地解決一些生產故障。

再而後能夠學學中間件的安裝與優化,例如jdk、oracle、mysql,最好再懂一點SQL。

懂得一些系統的資源監控工具,如vmstat、pref、pidstat;懂得虛擬化的一些工具,如docker、Kubernetes;懂一點監控手段,如prometheus、grafana。

最後是懂得各類爲生產系統作故障排除、性能優化、性能測試。

不光是用工具看看指標參數,而是具體懂得其中含義,能夠利用工具來提高系統性能,解決疑難問題。

我想,這即是一個高階運維應該乾的事了吧。

那麼,終極拷問來了,說了這麼多,學了Linux運維有啥用啊?

掙錢啊。笑。

這是一個入門算比較容易的工種,低級階段的工做也不算繁重。

可是能在這個崗位上作得精通卻至關不容易,仍是比較有上升空間的。

到高階段作運維管理、系統專家,或是轉運維開發、測試開發。都是不錯的出路。


本文說的東西都是一家之言,若有謬誤,歡迎你們指正。

若是感興趣的話,能夠關注個人公衆號,後續個人一系列教程應該是首先發在公衆號。

相關文章
相關標籤/搜索