2018-01-05 09:14:12
隨著Linux應(yīng)用的擴(kuò)展許多朋友開始接觸Linux,根據(jù)學(xué)習(xí)Windwos的經(jīng)驗(yàn)往往有一些茫然的感覺:不知從何處開始學(xué)起。作為一個(gè) Linux系統(tǒng)管理員,我看了許多有關(guān)Linux的文檔和書籍,并為學(xué)習(xí)Linux付出了許多艱苦的努力。當(dāng)真正獲得了一份正式的Linux系統(tǒng)管理工作后,我更加深刻地理解了Linux的靈魂:服務(wù)與多用戶。Linux系統(tǒng)知識(shí)是非常廣博的,但是只要掌握了重點(diǎn)知識(shí),管理它并沒有想象中的那么可怕。在下面我會(huì)將作為系統(tǒng)管理員的一些工作心得和總結(jié)出來的經(jīng)驗(yàn)系統(tǒng)地介紹給大家。
一、 學(xué)習(xí)的目的
通過Linux的學(xué)習(xí)掌握UNIX的目的想必不用多說了,在這個(gè)網(wǎng)絡(luò)人才身價(jià)倍增的年代,想靠技術(shù)吃飯又不想掌握網(wǎng)絡(luò)和編程技術(shù)是不明智的。當(dāng)一人先進(jìn)次聽說Linux并躍躍欲試的時(shí)候,總會(huì)提出幾個(gè)?,它是什么(What)? 為什么要用它(Why)? 怎樣學(xué)習(xí)它(How)?做為開放源碼運(yùn)動(dòng)的主要組成部分,Linux的應(yīng)用越來越廣泛,從我們平時(shí)的娛樂、學(xué)習(xí),到商業(yè)、政府辦公,再到大規(guī)模計(jì)算的應(yīng)用。為了滿足人們的需求,各種各樣的、基于Linux的應(yīng)用軟件層出不窮。只要具備了LinuX的基本功,并具有了自學(xué)的能力之后,都可以通過長期的學(xué)習(xí)將專項(xiàng)內(nèi)容予以掌握。
二、 從命令開始從基礎(chǔ)開始
常常有些朋友一接觸Linux 就是希望構(gòu)架網(wǎng)站,根本沒有想到要先了解一下Linux 的基礎(chǔ)。這是相當(dāng)困難的。雖然Linux桌面應(yīng)用發(fā)展很快,但是命令在Linux中依然有很強(qiáng)的生命力。Linux是一個(gè)命令行組成的操作系統(tǒng),精髓在命令行,無論圖形界面發(fā)展到什么水平這個(gè)原理是不會(huì)變的,Linux命令有許多強(qiáng)大的功能:從簡(jiǎn)單的磁盤操作、文件存取、到進(jìn)行復(fù)雜的多媒體圖象和流媒體文件的制作。這里筆者把它們中比較重要的和使用頻率多的命令,按照它們?cè)谙到y(tǒng)中的作用分成幾個(gè)部分介紹給大家,通過這些基礎(chǔ)命令的學(xué)習(xí)我們可以進(jìn)一步理解 Linux系統(tǒng):
安裝和登錄命令:login、 shutdown、 halt、 reboot 、mount、umount 、chsh
文件處理命令:file、 mkdir、 grep、dd、 find、 mv 、ls 、diff、 cat、 ln
系統(tǒng)管理相關(guān)命令: df、 top、 free、 quota 、at、 lp、 adduser、 groupadd kill、 crontab、 tar、 unzip、 gunzip 、last
網(wǎng)絡(luò)操作命令:ifconfig、 ip 、ping 、 netstat 、telnet、 ftp、 route、 rlogin rcp 、finger 、mail 、nslookup
系統(tǒng)安全相關(guān)命令: passwd 、su、 umask 、chgrp、 chmod、chown、chattr、sudo、 pswho
三、 選擇一本好的Linux書籍和視頻
在各個(gè)Linux論壇中,我們看到多的問題往往是某個(gè)新手,在安裝或使用linux的過程中遇到一個(gè)具體的問題就開始提問,很多都是重復(fù)性的問題,甚至有不少人連基本的問題描述都不是很清楚。這說明很多初學(xué)linux的人還沒有掌握基本功。怎樣才能快速提高掌握linux的基本功呢? 有效的方法莫過于學(xué)習(xí)權(quán)威的linux工具書,工具書對(duì)于學(xué)習(xí)者而言是相當(dāng)重要的。一本錯(cuò)誤觀念的工具書卻會(huì)讓新手整個(gè)誤入歧途。
《馬哥帶你學(xué)Linux從入門到精通》視頻在全網(wǎng)得到了幾百萬用戶的認(rèn)可,是很多新人入行和提升推薦的一個(gè)視頻課程。另外,目前國內(nèi)關(guān)于 linux的書籍有很多不過精品的不多,筆者強(qiáng)烈建議閱讀《鳥哥的Linux私房菜 基礎(chǔ)篇》,現(xiàn)在出到了第三版。新手好能夠買一本紙版書來仔細(xì)研讀,并認(rèn)真做好學(xué)習(xí)筆記。當(dāng)然,如果習(xí)慣看電子書,也可以從這里 下載 PDF電子書。
四 、養(yǎng)成在命令行下工作的習(xí)慣
一定要養(yǎng)成在命令行下工作的習(xí)慣,要知道X-window只是運(yùn)行在命令行模式下的一個(gè)應(yīng)用程序。在命令行下學(xué)習(xí)雖然一開始進(jìn)度較慢,但是熟悉后,您未來的學(xué)習(xí)之路將是以指數(shù)增加的方式增長的。從網(wǎng)管員來說,命令行實(shí)際上就是規(guī)則,它總是有效的,同時(shí)也是靈活的。即使是通過一條緩慢的調(diào)制解調(diào)器線路,它也能操縱幾千公里以外地遠(yuǎn)程系統(tǒng)。
五、用Unix思維思考Linux
由于Linux是參照Unix的思想來設(shè)計(jì)的,理解和掌握它就必須以Unix的思維來進(jìn)行,而不能以Windows思維。不可否認(rèn),windows 在市場(chǎng)上的成功很大一部分在于技術(shù)思想的獨(dú)到之處??墒沁@個(gè)創(chuàng)新是在面對(duì)個(gè)人用戶的前提下進(jìn)行的,而面對(duì)著企業(yè)級(jí)的服務(wù)應(yīng)用,它還是有些力不從心。多年來在計(jì)算機(jī)操作系統(tǒng)領(lǐng)域一直是二者獨(dú)大:unix在服務(wù)器領(lǐng)域,Windows在個(gè)人用戶領(lǐng)域。由此可見,用戶需求決定了所采用的操作系統(tǒng)。不管什么原因,如果要學(xué)習(xí)Linux,那么首先要將思維從Windows的“這個(gè)小河” 中拖出來,放入U(xiǎn)nix的海洋。
六 、學(xué)習(xí)shell和Python
對(duì)于Shell(中文名稱殼),習(xí)慣Windows的讀者肯定是非常陌生的,因?yàn)閃indows只有一個(gè)“Shell”(如果可以說是Shell的話),那就是Windows自己。用一句話容易理解的解釋就是,shell是用戶輸入命令與系統(tǒng)解釋命令之間的中介。直觀的說法,一種Shell有一套自己的命令。舉一個(gè)容易理解的例子,Linux的標(biāo)準(zhǔn)Shel是Bash Shel;Solaris的shell是B shell;Linux的Shell是以命令行的方式表現(xiàn)出來的。讀者可能會(huì)不理解,Windows從命令行“進(jìn)化”到了圖形界面,那么Linux現(xiàn)在還使用命令行豈不是一種倒退?
當(dāng)初我剛剛接觸Linux時(shí)就曾有過這種想法。可是后來發(fā)現(xiàn),如果使用圖形界面,那么分配給應(yīng)用軟件的資源就少了,在價(jià)格昂貴的服務(wù)器上,能夠以較低的硬件配置實(shí)現(xiàn)同樣的功能是非常重要的。
下面舉例說明,一臺(tái)服務(wù)器有1GB內(nèi)存,假設(shè)其中512MB用于處理圖形界面,若要安裝一個(gè)需要784MB內(nèi)存的數(shù)據(jù)庫軟件,惟一的辦法就是擴(kuò)大內(nèi)存。但是如果使用命令行,系統(tǒng)可能只需要64MB內(nèi)存,其它的內(nèi)存就可以供數(shù)據(jù)庫軟件使用了。使用命令行,不僅是內(nèi)存,而且CPU及硬盤等資源的占用都要節(jié)省很多。所以,作為服務(wù)器使用命令行是優(yōu)點(diǎn)而不是缺點(diǎn)。既然Shell有這么多優(yōu)點(diǎn),就必須要學(xué)習(xí)它。
七、關(guān)注行業(yè)趨勢(shì)更新技能
Linux運(yùn)維的招聘要求感覺與往年同樣薪資的招聘要求高了許多,又得會(huì)各種開源工具.還得懂K8S和docker。但凡15K以上的工資,都必須要會(huì)python,而且是要有一定的pythonweb開發(fā)能力.2016年這個(gè)時(shí)候一般的運(yùn)維都是要求: shell/python/php,三選一,會(huì)點(diǎn)就行,但是2017年不一樣了,python要具有一定的web開發(fā)能力才可以。如果不要求會(huì)python的,也勢(shì)必要求shell很精通。
這里給出一點(diǎn)小的技能提升的建議: 大致需要學(xué)習(xí)下這四個(gè)部分:
自動(dòng)化運(yùn)維(Ansible,Puppet,Saltstack等)
Devops(Docker,K8s,Jenkins,Jira等),
云服務(wù)技術(shù)(虛擬化、OpenStack、AWS及阿里云各種產(chǎn)品服務(wù)架構(gòu)等)
python