Linux再學(xué)習(xí)(一)-學(xué)習(xí)路線規(guī)劃

      網(wǎng)友投稿 585 2025-04-04

      1 拋棄舊文化,迎接Linux命令新文化

      Linux第一步,從Windows思維,切換到Linux的“命令行+文件”模式

      在Linux中,做什么都有相應(yīng)命令。一般就在bin或者sbin目錄下,數(shù)量繁多。如果你事先不知道該用哪個(gè)命令,很難通過枚舉的方式找到。因此,在這樣沒有統(tǒng)一入口的情況下,就需要你對(duì)最基本的命令有所掌握。

      一旦找到某個(gè)命令行,替代輸入框的是各種各樣的啟動(dòng)參數(shù)。

      這些參數(shù)怎么填,

      一般可以通過 -h 查看help,就能找到相應(yīng)的配置項(xiàng)

      還可以通過man命令,查看文檔

      無論是什么命令行工具,最終的配置一般會(huì)落到一個(gè)文件上,只要找到了那個(gè)文件,文件中會(huì)有注釋,也可以挨個(gè)兒看下去,基本就知道如何配置了。

      攻克了第一個(gè)困難了。這個(gè)時(shí)候,你能看到一些很美麗的風(fēng)景,例如一些很有技巧的命令sed和awk、很神奇的正則表達(dá)式、靈活的管道和grep、強(qiáng)大的bash。你可以自動(dòng)化地做一些事情了,例如處理一些數(shù)據(jù),會(huì)比你使用Excel要又快又準(zhǔn),關(guān)鍵是不用框框點(diǎn)點(diǎn),在后臺(tái)就能完成一系列操作。在處理數(shù)據(jù)的同時(shí),你還可以干別的事情,半夜處理數(shù)據(jù),第二天早上發(fā)個(gè)郵件報(bào)告,這都是Excel很難做到的事情。

      2 通過系統(tǒng)調(diào)用或者glibc,掌握程序設(shè)計(jì)

      命令行工具也是程序,只不過是別人寫的程序。從用別人寫的程序,到自己能夠?qū)懗绦颍ㄟ^程序來操作Linux,這是第二個(gè)要攻克的困難。

      用代碼操作Linux,可以直接使用Linux系統(tǒng)調(diào)用,也可以使用glibc的庫。

      Linux的系統(tǒng)調(diào)用非常多,而且每個(gè)函數(shù)都非常復(fù)雜,傳入的參數(shù)、返回值、調(diào)用的方式等等都有很多講究。

      這里面需要掌握很多Linux操作系統(tǒng)的原理,否則無法理解為什么應(yīng)該這樣調(diào)用。

      剛開始學(xué)Linux程序設(shè)計(jì)的時(shí)候,你會(huì)發(fā)現(xiàn)它比命令行復(fù)雜得多。

      因?yàn)槟愕慕巧俅巫兓?/p>

      如果說使用命令行的人是吃饅頭的,那寫代碼操作命令行的人就是做饅頭的。看著簡簡單單的一個(gè)饅頭,可能要經(jīng)過N個(gè)工序才能蒸出來。同樣,你會(huì)發(fā)現(xiàn),你平時(shí)用的一個(gè)簡單的命令行,卻需要N個(gè)系統(tǒng)調(diào)用組合才能完成。其中每個(gè)系統(tǒng)調(diào)用都要進(jìn)行深入地學(xué)習(xí)、讀文檔、做實(shí)驗(yàn)。

      經(jīng)過一段時(shí)間的學(xué)習(xí),你攻克了這些東西。這時(shí)候,你已經(jīng)很接近操作系統(tǒng)的原理了,你能看到另一番風(fēng)景了。

      大學(xué)里學(xué)的那些理論,你再回去看,現(xiàn)在就會(huì)開始有感覺了。

      進(jìn)程樹,調(diào)用了fork

      進(jìn)程同步機(jī)制,調(diào)用信號(hào)量

      網(wǎng)絡(luò)應(yīng)用層和傳輸層的分界線,調(diào)用socket

      都明白了!

      3 再三研究Linux內(nèi)核

      當(dāng)你已經(jīng)會(huì)使用代碼操作Linux時(shí),你肯定很希望揭開這層面紗,看看系統(tǒng)調(diào)用背后到底做了什么。

      進(jìn)一步了解內(nèi)核的原理,有助于你更好地使用命令行和進(jìn)行程序設(shè)計(jì),能讓你的面試及開發(fā)水平更上一層樓,但是不建議直接看源碼,因?yàn)長inux代碼量太大,很容易迷失。

      最好的辦法是,先了解一下Linux內(nèi)核機(jī)制,知道基本的原理和流程。

      不過,Linux內(nèi)核機(jī)制也非常復(fù)雜,而且其中相互關(guān)聯(lián)。

      比如說,進(jìn)程運(yùn)行要分配內(nèi)存,內(nèi)存映射涉及文件的關(guān)聯(lián),文件的讀寫需要經(jīng)過塊設(shè)備,從文件中加載代碼才能運(yùn)行起來進(jìn)程。這些知識(shí)點(diǎn)要反復(fù)對(duì)照,才能理清。

      但是一旦攻克!你會(huì)發(fā)現(xiàn)Linux這個(gè)復(fù)雜的系統(tǒng)開始透明起來。

      無論你是運(yùn)維,還是開發(fā),你都能大概知道后發(fā)生的事情,并在出現(xiàn)異常的情況時(shí),比較準(zhǔn)確地定位到問題所在。

      Linux內(nèi)核機(jī)制是我們重點(diǎn)學(xué)習(xí)部分,基于最新4.x的內(nèi)核。

      輔助學(xué)習(xí),推薦《深入理解LINUX內(nèi)核》。

      這本書言簡意賅地講述了主要的內(nèi)核機(jī)制。看完這本書,你會(huì)對(duì)Linux內(nèi)核有總體的了解。不過這本書的內(nèi)核版本有點(diǎn)老,不過對(duì)于了解原理來講,沒有任何問題。

      Linux再學(xué)習(xí)(一)-學(xué)習(xí)路線規(guī)劃

      4 閱讀Linux內(nèi)核代碼,聚焦核心邏輯場景

      在看內(nèi)核原理的書的時(shí)候經(jīng)常遇到這種問題,有的地方實(shí)在是難以理解,或者不同的書說的不一樣,這時(shí)候該怎么辦呢?其實(shí)很好辦,Linux是開源的呀,我們可以看代碼呀,代碼是精準(zhǔn)的。哪里有問題,找到那段代碼看一看,很多問題就有方法了。

      另外,當(dāng)你在工作中需要重點(diǎn)研究某方面技術(shù)的時(shí)候,如果涉及內(nèi)核,這個(gè)時(shí)候僅僅了解原理已經(jīng)不夠了,你需要看這部分的代碼。

      但是開源軟件代碼紛繁復(fù)雜,一開始看肯定暈,找不著北。這里有一個(gè)訣竅,就是一開始閱讀代碼不要糾結(jié)一城一池的得失,不要每一行都一定要搞清楚它是干嘛的,而要聚焦于核心邏輯和使用場景。

      一旦爬上這個(gè)坡,對(duì)于操作系統(tǒng)的原理,你應(yīng)該就掌握得比較清楚了。就像蒸饅頭的人已經(jīng)將面粉加工流程爛熟于心。這個(gè)時(shí)候,你就可以有針對(duì)性地去做課題,把所學(xué)和你現(xiàn)在做的東西結(jié)合起來重點(diǎn)突破。

      研究虛擬化的,就重點(diǎn)看KVM

      研究網(wǎng)絡(luò)的,就重點(diǎn)看內(nèi)核協(xié)議棧

      推薦《LINUX內(nèi)核源代碼情景分析》

      這本書最大的優(yōu)點(diǎn)是結(jié)合場景進(jìn)行分析,看得見、摸得著,非常直觀,唯一的缺點(diǎn)還是內(nèi)核版本比較老。

      5 實(shí)驗(yàn)定制化Linux組件

      從只看內(nèi)核代碼,到上手修改內(nèi)核代碼,這又是一個(gè)很大的坎。

      因?yàn)長inux有源代碼,很多地方可以參考現(xiàn)有的實(shí)現(xiàn),定制化自己的模塊。

      例如,你可以自己實(shí)現(xiàn)一個(gè)設(shè)備驅(qū)動(dòng)程序,實(shí)現(xiàn)一個(gè)自己的系統(tǒng)調(diào)用,或者實(shí)現(xiàn)一個(gè)自己的文件系統(tǒng)等等。

      6 面向?qū)崙?zhàn)開發(fā)

      如果你是運(yùn)維,僅僅熟悉上面基本的操作是不夠的,生產(chǎn)環(huán)境會(huì)有大量的不可控因素,尤其是集群規(guī)模大的更是如此,大量的運(yùn)維經(jīng)驗(yàn)是實(shí)戰(zhàn)來的,不能光靠讀書。如果你是開發(fā),對(duì)內(nèi)核進(jìn)行少量修改容易,但是一旦面臨真實(shí)的場景,需要考慮各種因素,并發(fā)與并行,鎖與保護(hù),擴(kuò)展性和兼容性,都需要真實(shí)項(xiàng)目才能練出來。

      7 總結(jié)

      參考

      Linux 命令行

      趣談Linux操作系統(tǒng)

      Linux

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:在表格里打不了字怎么辦
      下一篇:怎么打印照片 呢
      相關(guān)文章
      免费在线观看亚洲| 亚洲熟女一区二区三区| 国产成人亚洲精品播放器下载 | 久久精品国产亚洲麻豆| 337p日本欧洲亚洲大胆人人| 亚洲精华液一二三产区| 亚洲欧洲免费无码| 亚洲人成网站看在线播放| 亚洲午夜国产精品| 亚洲婷婷第一狠人综合精品| 久久精品国产亚洲AV高清热 | 亚洲成AV人网址| 亚洲成?v人片天堂网无码| 亚洲6080yy久久无码产自国产| 亚洲6080yy久久无码产自国产 | 日韩色日韩视频亚洲网站| 亚洲国产精品成人网址天堂| 亚洲国产精品自产在线播放| 精品国产亚洲男女在线线电影 | 国产成人精品日本亚洲专一区 | 亚洲色偷偷偷鲁综合| 国产成人亚洲精品青草天美 | 亚洲乱妇熟女爽到高潮的片| 亚洲AV成人无码网站| 亚洲精品网站在线观看不卡无广告 | 亚洲M码 欧洲S码SSS222| 亚洲日本va午夜中文字幕久久| 精品亚洲视频在线观看| 国产亚洲精品va在线| 色播亚洲视频在线观看| 亚洲一区二区免费视频| 亚洲一区二区无码偷拍| 亚洲av无码专区国产不乱码| 亚洲精品视频免费| 亚洲精品无码不卡在线播放HE| 亚洲男人第一av网站| 亚洲欧洲精品视频在线观看| 亚洲色欲色欱wwW在线| 亚洲AV成人潮喷综合网| 亚洲区小说区激情区图片区| 亚洲综合在线视频|