本篇內(nèi)容介紹了“為什么學(xué)習(xí)Linux”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
創(chuàng)新互聯(lián)自2013年創(chuàng)立以來,先為靖宇等服務(wù)建站,靖宇等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為靖宇企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
作為從事 IT 工作的同學(xué),對(duì) Linux 系統(tǒng)一定不陌生。如今我們?cè)诟鞣N領(lǐng)域都能看得到它的身影,比如,手機(jī)、服務(wù)器、嵌入式、電信設(shè)備、大型計(jì)算機(jī),以及各種電子類產(chǎn)品都離不開 Linux,它已經(jīng)滲透到互聯(lián)網(wǎng)世界的方方面面了。
包括那些火熱的技術(shù),比如云計(jì)算、虛擬化、容器、大數(shù)據(jù)、人工智能,幾乎都是基于 Linux 技術(shù)的,那些平臺(tái)系統(tǒng),電商、團(tuán)購、社交、新聞、快遞,都是部署在服務(wù)器端,也幾乎都是基于 Linux 技術(shù)的。
在編程的世界中,Linux 就是主流,不會(huì) Linux 你就可能會(huì)格格不入。如果你想進(jìn)大公司,想學(xué)新技術(shù),Linux 一定是一道繞不過去的砍,只有進(jìn)入了 Linux 系統(tǒng)這扇大門,你才可能成為合格的軟件工程師。
企業(yè)服務(wù)器環(huán)境絕大部分都是 Linux 系統(tǒng),所以不管你是從事前端、后端、運(yùn)維、測(cè)試中的哪一類工作,Linux 都是你必須掌握的基礎(chǔ)知識(shí),只是不同類型工作需要學(xué)習(xí) Linux 的方向不同而已。
下邊的一些建議都是本人從事 Linux 開發(fā)多年的一些經(jīng)驗(yàn)總結(jié),相信會(huì)對(duì) Linux 初學(xué)者有所幫助,當(dāng)然如果有不準(zhǔn)確的地方,還請(qǐng)指正。
一定要自己搭建Linux環(huán)境。Linux 系統(tǒng)學(xué)習(xí)是很重實(shí)踐的,僅學(xué)習(xí)理論知識(shí)是不能真正掌握 Linux 的。我推薦在個(gè)人電腦上安裝虛擬機(jī),虛擬機(jī)的方式非常靈活,既可以提供 Linux 環(huán)境,也不會(huì)影響宿主機(jī)的正常使用。對(duì)于虛擬機(jī)軟件的選擇,可以考慮使用 VMware
或 VirtualBox
。虛擬機(jī)的快照功能一定要用好,尤其是對(duì)新手來說,它可以將你不小心搞壞的環(huán)境恢復(fù)到初始化狀態(tài),就像是重新安裝了操作系統(tǒng)一樣,從此媽媽再也不用擔(dān)心我 rm -rf /*
了。
Linux發(fā)行版的選擇。由于 Linux 的強(qiáng)大,目前存在太多的發(fā)行版本了,有些同學(xué)在選擇上可能會(huì)有些糾結(jié)。這里我推薦選擇使用 CentOS 就行,由于免費(fèi)且穩(wěn)定,國內(nèi)企業(yè)服務(wù)器使用最多的就是 CentOS 了,使用上和 RedHat 幾乎沒有什么區(qū)別。當(dāng)然你可以選擇 Ubuntu 系統(tǒng),國內(nèi)服務(wù)器使用份額僅次于 CentOS。其實(shí)所有發(fā)行版都是基于 Linux 內(nèi)核的,只是擴(kuò)展了相關(guān)的系統(tǒng)組件和軟件庫,本質(zhì)上都是 Linux 系統(tǒng),學(xué)會(huì)了 CentOS 后就很容易上手其它版本的系統(tǒng)了,所以無需太關(guān)注和糾結(jié)這個(gè)問題。
一定要使用命令行。大部分初學(xué)者經(jīng)常喜歡安裝圖形桌面,因?yàn)槲覀冎岸剂?xí)慣了 win 或 mac 的圖形操作。但我強(qiáng)烈建議,安裝系統(tǒng)時(shí)不要安裝桌面,平時(shí)的操作和學(xué)習(xí)都堅(jiān)持使用命令行。學(xué)習(xí)前期可能會(huì)比較痛苦,但熬過了陣痛期,熟練使用之后,就能享受到命令行帶來的強(qiáng)大功能。命令行不僅功能強(qiáng)大,而且可以極大的提高效率,因?yàn)槊钚芯鸵馕吨軌蜃詣?dòng)化,自動(dòng)化能為你釋放很多重復(fù)性的工作,讓你有充足的時(shí)間去學(xué)習(xí)更有價(jià)值的知識(shí)。另外,圖形界面在 linux 系統(tǒng)上作為一個(gè)獨(dú)立軟件存在,會(huì)額外消耗服務(wù)器的資源,企業(yè)的服務(wù)器一定是不會(huì)安裝圖形的,所以需要你一定要在 Linux 世界中忘掉 windows 的思維方式。
Linux 是開源的。開源意味著你能夠查看 Linux 源碼,可以從代碼層面理解系統(tǒng)實(shí)現(xiàn)的原理,這些可以讓你達(dá)到一通百通、醍醐灌頂?shù)男Ч?,而不是?jiǎn)單的使用它。
養(yǎng)成安全嚴(yán)謹(jǐn)?shù)牧己昧?xí)慣。對(duì)于初學(xué)者來說,雖然大部分時(shí)間是在虛擬機(jī)上操作,有快照的加持,可以毫無顧忌的進(jìn)行各種實(shí)驗(yàn)性的操作。但我還是強(qiáng)烈建議初學(xué)者一定要養(yǎng)成良好的操作習(xí)慣:1.經(jīng)常備份重要的數(shù)據(jù);2.少用 root 用戶進(jìn)行各種操作;3.敲命令不是越快越好;4.服務(wù)器密碼盡可能的復(fù)雜些,不要使用 123456
這類弱密碼,服務(wù)器很可能被侵入當(dāng)肉雞;5.服務(wù)器密碼不要簡(jiǎn)單記錄在文檔上或 U 盤之類的移動(dòng)設(shè)備上;6.對(duì)生產(chǎn)環(huán)境一定要有敬畏心。
高效的學(xué)習(xí)方法往往能夠幫助你事半功倍,下邊是我分享的一些自己的學(xué)習(xí)心得和方法,希望對(duì)大家有幫助。
一定要多實(shí)踐。Linux 是一門實(shí)操性非常強(qiáng)的學(xué)科,初學(xué)者需要多敲命令,多實(shí)踐和練習(xí)。與學(xué)習(xí)其它東西是一樣的,大多時(shí)候我們不需要非得先將理論知識(shí)學(xué)的通透后才來實(shí)踐動(dòng)手,而是從實(shí)踐中發(fā)現(xiàn)問題后再深度學(xué)習(xí),這樣效果可能會(huì)更好。
有效的學(xué)習(xí)方式。說到學(xué)習(xí)方式,每個(gè)人學(xué)習(xí)的方式可能不太一樣。我推薦 視頻+ 看書的方式,視頻教程可以讓你快速上手,快速了解相關(guān)的概念,而看書可以更加全面的學(xué)習(xí)具體的細(xì)節(jié),會(huì)讓你有更多的思考,看書可以作為視頻的補(bǔ)充和擴(kuò)展。
思考,總結(jié)與歸納。不管以什么形式來學(xué)習(xí),我們都需要對(duì)學(xué)習(xí)中的每個(gè)問題和概念認(rèn)真思考,需要從 what、how、why 三個(gè)角度進(jìn)行學(xué)習(xí),作為學(xué)習(xí)的問題模板。學(xué)習(xí)任何新技術(shù),我們都需要知道這個(gè)技術(shù)知識(shí)點(diǎn)的應(yīng)用場(chǎng)景,以及能夠解決什么問題,是否有類似的解決方案,此技術(shù)點(diǎn)有什么優(yōu)勢(shì)。
輸出是一種高效學(xué)習(xí)方法。在學(xué)習(xí)過程中,必不可少的一個(gè)環(huán)節(jié)就是歸納和總結(jié),總結(jié)就要輸出,可以是文檔形式的筆記或者其它。我比較推薦寫博客,有條件的話一定要寫,因?yàn)閷懖┛涂梢詭椭愀行У?、更系統(tǒng)的總結(jié)和學(xué)習(xí)。寫博客是一種 教 的形式,如果能夠?qū)⒆约簩W(xué)到的知識(shí)在博客上清晰的講清楚,教會(huì)別人,那才說明你是真正的掌握了它。如果博客寫的不錯(cuò)的話也能為自己夠積累影響力,對(duì)自己將來的求職也會(huì)有幫助。另外如果別人從你博客學(xué)習(xí)到了東西而且覺著不錯(cuò)的話,會(huì)給你點(diǎn)贊、留言、贊賞,這都是對(duì)你寫博客和學(xué)習(xí)的正反饋,同時(shí)也能夠刺激你保持學(xué)習(xí)的興奮和激情,呵呵。
制定明確的學(xué)習(xí)目標(biāo)。做任何事,有了目標(biāo)才能夠走的更遠(yuǎn),少走彎路。我們學(xué)習(xí) Linux 也一樣,需要根據(jù)自己的實(shí)際情況,制定適合自己的學(xué)習(xí)目標(biāo)。個(gè)人建議目標(biāo)不要太大,時(shí)間周期也不要太長,要切合實(shí)際,比如制定三個(gè)月的學(xué)習(xí)目標(biāo)。有了目標(biāo)后,就要確定詳細(xì)的學(xué)習(xí)計(jì)劃,細(xì)化到每周需要完成的任務(wù)列表。注意,你需要為計(jì)劃任務(wù)指定結(jié)果檢驗(yàn)的方式,比如寫一篇博客文章或是筆記,計(jì)劃真實(shí)落地才是最困難的,因?yàn)?em>執(zhí)行力是一種稀缺資源。
堅(jiān)持與激情,獲得正反饋。學(xué)習(xí)是一件逆人性的事情,大部分人在遇到諸多問題后就很容易會(huì)放棄。1.合理的學(xué)習(xí)計(jì)劃和結(jié)果輸出,能夠讓你繼續(xù)保持學(xué)習(xí)的激情;2.寫博客、討論交流等方式也可以獲得正向的反饋,從而激勵(lì)著你繼續(xù)向前;3.堅(jiān)持學(xué)習(xí)也能夠幫你養(yǎng)成良好的習(xí)慣,無形中提高自己的執(zhí)行力,個(gè)人認(rèn)為這些收獲可能遠(yuǎn)比具體的技術(shù)知識(shí)更加重要。
如何解決問題。在學(xué)習(xí) Linux 技術(shù)的時(shí)候,初學(xué)者肯定會(huì)遇到各種 奇怪 的問題,面對(duì)這些問題時(shí),我們要學(xué)會(huì)分析錯(cuò)誤信息,嘗試以目前學(xué)習(xí)到的技術(shù)來思考找答案,如果解決不了,可以使用搜索引擎,對(duì)于初學(xué)者遇到的問題,百度一般都能夠解決。如果實(shí)在解決不了,可以請(qǐng)教身邊的高手,不過提問問題時(shí),一定要描述清楚問題,帶著謙虛請(qǐng)教的態(tài)度。
Linux 系統(tǒng)涉及的技術(shù)知識(shí)點(diǎn)非常廣泛,學(xué)習(xí)者可以根據(jù)自己的實(shí)際情況,選擇相應(yīng)的主題方向進(jìn)行學(xué)習(xí),不可盲目的跟隨他人的學(xué)習(xí)路線,有可能適得其反,學(xué)習(xí)效果事倍功半,得不償失,所以選擇適合自己的學(xué)習(xí)路線非常重要。
因?yàn)槊總€(gè)人將來從事的工作和方向不同,需要重點(diǎn)學(xué)習(xí)的內(nèi)容也不一樣,而且本文目標(biāo)也只是分享給 Linux 初學(xué)者一些實(shí)用的經(jīng)驗(yàn)心得,所以后邊內(nèi)容中只簡(jiǎn)單羅列了最通用和實(shí)用的一些技術(shù),這些是學(xué)習(xí) Linux 技術(shù)的所有同學(xué)都應(yīng)該知道的技術(shù)知識(shí)點(diǎn)。
學(xué)習(xí) vim。在 Linux 系統(tǒng)下,基本沒有什么可以與之競(jìng)爭(zhēng)的編輯器(不接受反駁),你只需要花費(fèi) 1-2
天的時(shí)間來熟悉 vim 的基本使用操作即可,無需研究那些高大上的各種插件使用技巧。要知道 vim 的學(xué)習(xí)是有難度的,不過一旦熟練使用后,就會(huì)得心應(yīng)手,能極大提高編輯效率。這里推薦陳皓的《簡(jiǎn)明 vim 練級(jí)攻略》。
簡(jiǎn)單的文件管理。這些都是一些非?;A(chǔ)的操作與文件的管理命令,如:ls
、less
、head
、tail
、du
、df
、ln
等,當(dāng)然 find
是查找文件的非常有用的命令,功能非常強(qiáng)大。
基礎(chǔ)的網(wǎng)絡(luò)管理。常用的網(wǎng)絡(luò)管理命令,一定要學(xué)會(huì)使用,這對(duì)平時(shí)工作或?qū)W習(xí)時(shí)的網(wǎng)絡(luò)診斷和網(wǎng)絡(luò)配置非常有用。比如 ip
或 ifconfig
等網(wǎng)絡(luò)命令,還有網(wǎng)絡(luò)診斷工具 netstat
、ping
、traceroute
等。
學(xué)些 shell 腳本編程。我們知道 Linux 特點(diǎn)之一就是命令行,上邊我們說過,命令行就意味著可以自動(dòng)化,自動(dòng)化后就能夠規(guī)?;?。shell 腳本就是我們實(shí)現(xiàn)自動(dòng)化的最有效的方式,因?yàn)?shell 程序是最擅長與 Linux 內(nèi)核打交道的。我們可以利用 shell 腳本幫我們做很多重復(fù)性的工作,來釋放我們工程師的雙手去創(chuàng)造更大的價(jià)值。
熟悉作業(yè)管理。我們需要經(jīng)常在命令行終端上管理應(yīng)用程序,啟動(dòng)或關(guān)閉程序。你需要知道這些概念,如:進(jìn)程、進(jìn)程組、會(huì)話、終端,學(xué)會(huì)使用 jobs
、fg
、bg
、kill
、Ctrl-C
、Ctrl-Z
,以及信號(hào)的相關(guān)操作,需要知道 kill -9
到底是在干什么。
學(xué)習(xí)使用軟件包的管理。國內(nèi)最常用的 Linux 發(fā)行版是 ubuntu
、centos
,需要學(xué)會(huì)使用 apt-get
、yum
命令來查找和安裝相關(guān)的軟件包,當(dāng)然也要學(xué)會(huì)試著從源碼編譯方式安裝軟件。
學(xué)習(xí)簡(jiǎn)單的數(shù)據(jù)處理。我們?cè)诠ぷ骱蛯W(xué)習(xí)中也會(huì)經(jīng)常需要處理文本信息,Linux 在這方面提供了很多的工具,組合起來能夠非常方便的實(shí)現(xiàn)強(qiáng)大的功能。常見的命令 sort
、uniq
、cut
、split
,還有 Linux 經(jīng)典的三劍客 sed
、awk
、grep
,這三個(gè)工具都是上古神器,功能非常強(qiáng)大,awk 還有專門的書籍來講解它,可見功能之強(qiáng)大與復(fù)雜,我們初學(xué)者只需要熟練掌握一些常用的功能即可。
學(xué)會(huì)看文檔。雖然不是具體的技術(shù)知識(shí),但它卻非常重要,初學(xué)者在學(xué)習(xí)命令時(shí)總是希望能記住所有的參數(shù)和選項(xiàng),其實(shí)這些參數(shù)我們不需要記憶(大腦是用來思考的而不是存儲(chǔ)的),我們可以通過 Linux 手冊(cè)來查看,通常使用 man ifconfig
就能夠查看該命令的官方文檔說明,既準(zhǔn)確又清晰。當(dāng)然在遇到問題時(shí),也可以查看手冊(cè)來確認(rèn)命令的使用方法是否正確。
Linux 系統(tǒng)涉及的技術(shù)知識(shí)點(diǎn)非常復(fù)雜,上述所分享的僅是一些必學(xué)基礎(chǔ)知識(shí),如果能夠認(rèn)真學(xué)習(xí)并夠掌握好,基本上算是入門 Linux(存活的級(jí)別)。如果你是運(yùn)維方向,至少需要更深入的學(xué)習(xí):用戶管理、磁盤管理、系統(tǒng)日常管理、常見服務(wù)的搭建、高可用集群、系統(tǒng)監(jiān)控等運(yùn)維知識(shí);如果你是后端開發(fā)方向,至少需要更深入學(xué)些 Linux 操作系統(tǒng)、進(jìn)程與線程、進(jìn)程間通信、信號(hào)、網(wǎng)絡(luò)編程、系統(tǒng)調(diào)用、Linux 內(nèi)核等知識(shí);如果你是嵌入式方向,你至少需要深入研究 Linux 內(nèi)核源碼、設(shè)備驅(qū)動(dòng)程序了。
“為什么學(xué)習(xí)Linux”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!