死磕 Linux !
時間:2021-12-07 15:43:18
手機看文章
掃描二維碼
隨時隨地手機看文章
[導讀]大家好,我是小林。在知乎看到一個問題:為什么計算機專業(yè)的學生要學習使用Linux系統(tǒng)?在這里,也同步分享下我的想法。很簡單,也很直接一個原因:很多互聯(lián)網(wǎng)大公司都有大量的服務器運行在基于Linux的操作系統(tǒng)。因此,我們工作不可避免會接觸Linux系統(tǒng)。不過,也要看崗位:后端開發(fā)崗、...
大家好,我是小林。在知乎看到一個問題:為什么計算機專業(yè)的學生要學習使用 Linux 系統(tǒng)?在這里,也同步分享下我的想法。很簡單,也很直接一個原因:很多互聯(lián)網(wǎng)大公司都有大量的服務器運行在基于 Linux 的操作系統(tǒng)。因此,我們工作不可避免會接觸 Linux 系統(tǒng)。不過,也要看崗位:
《深入Linux內(nèi)核架構》,豆瓣評分9.0
- 后端開發(fā)崗、運維崗工作都會涉及 Linux 系統(tǒng);
- 客戶端、前端開發(fā)涉及就比較少;
- 自由開源:Linux 操作系統(tǒng)完全免費且可用作開源軟件,通過開源方式,您可以輕松查看用于創(chuàng)建 Linux 內(nèi)核的可用代碼,還可以修改代碼以修復任何錯誤等。只要你做夠厲害,你完全可以按照自己的方式構建和自定義服務器。這些是在 windows 上無法實現(xiàn)的。
- 穩(wěn)定性:在 windows 上,我們進程看到系統(tǒng)崩潰或者卡死,但是在 Linux 上,這種情況發(fā)生的幾率極小,Linux 系統(tǒng)以其最終的穩(wěn)定性而聞名。
- 成本低:Linux 是免費的,如果你想在其中一臺服務器上安裝 Windows,則需要支付激活費用,這意味著你需要多花一筆錢。
- 操作方便:對于普通人來說,Windows 操作更為快捷,但是對計算機專業(yè)人士來講,Linux 操作比 Windows 快捷的多,幾條命令就可以執(zhí)行很多的操作。
- Linux 命令:Linux 系統(tǒng)都是命令式操作的,就是比如你要創(chuàng)建一個文件、查看一個文件、刪除一個文件等,都是需要輸入命令, 所以要熟練用起 Linux 系統(tǒng),命令的熟悉是必不可少的。
- Linux 腳本:熟悉了基本 Linux 命令后,就可以去學習 Linux 腳本,其實很簡單,就是把各種命令寫在一個腳本文件里,執(zhí)行腳本的時候就會把所有命令執(zhí)行一遍,用于自動部署一些項目。
- Linux 編程(系統(tǒng)編程/網(wǎng)絡編程):如果走 C/C 開發(fā),這一塊就需要學習,因為 Linux 系統(tǒng)是由 C 語言開發(fā)的,所以系統(tǒng)調(diào)用接口,都是 C 式編程開發(fā)的。
Linux 命令學習
我當初學習 Linux 命令的時候,看的是《鳥哥私房菜Linux基礎學習篇》,這本書講的還是很通俗易懂的。對于初學者可以先掌握這些基本 Linux 命令:- 文件/文件夾的查看、創(chuàng)建、刪除、移動、復制、修改權限;
- 文件內(nèi)容的編輯、保存;
- 系統(tǒng)內(nèi)存、硬盤、cpu、網(wǎng)絡流量的查看;
- 軟件的安裝、刪除;
- ….
Linux 腳本學習
Linux 腳本常用使用就是 bash 環(huán)境,腳本編程其實跟 C 語言編程類似,也有變量定義、函數(shù)聲明、控制語句,但是他不會很復雜,學起來還是很快的。這里推薦阮一峰老師寫的 Bash 編程教程。地址:https://wangdoc.com/bash/grammar.htmlLinux 編程(系統(tǒng)編程/網(wǎng)絡編程)學習
Linux 系統(tǒng)編程,可以看《Linux 程序設計》這本書,學 Linux 編程一定要在多敲代碼,并且在 Linux 跑起來。接下來說說我學 Linux 網(wǎng)絡編程的心得。當初在學網(wǎng)絡編程的時候,看見網(wǎng)上的人都說 UNP(Unix 網(wǎng)絡編程)、APUE(Unix 高級環(huán)境編程)這兩本書是網(wǎng)絡編程圣經(jīng)的書,那么好學的小林,那肯定毫無猶豫買了。書到貨后,我瞬間就懵逼了,這兩本書是我買過最厚的書,這尼瑪怎么學?跟著書本的節(jié)奏,學了一段的時間,是懂了些 Linux 網(wǎng)絡和系統(tǒng) API 的用法,摸索來摸索去都是各個 API 的細節(jié),始終不知道高并發(fā)網(wǎng)絡框架是如何實現(xiàn)的。后面我又重新找了一波關于網(wǎng)絡編程的書,找到了這兩本:《TCP/IP 網(wǎng)絡編程》和《Linux高性能服務器編程》。- 《TCP/IP 網(wǎng)絡編程》絕對是新手村級別的書,書里的內(nèi)容不會有過多的術語,作者都用大白話來表達,配圖也很清晰,也有介紹我想知道的網(wǎng)絡框架,雖然是比較基礎的多進程服務端模型、多線程服務端模型、異步 IO 模型。而且最后一章實現(xiàn)了簡單的 HTTP 服務端,讓我知道了從代碼角度是怎么解析 HTTP 報文的,以及狀態(tài)機是如何實現(xiàn)和運轉的。
- 《Linux高性能服務器編程》這本書主要是網(wǎng)絡框架為主,前幾章關于網(wǎng)絡基礎知識對于掌握了計算機網(wǎng)絡知識的同學可以直接跳過的,你看,很多知識是想通的,當我們知道掌握了這塊知識后,在學習新一本書的時候,就可以跳過重疊的內(nèi)容。在這本書我學到了,Reactor、Proactor、信號、定時器、多進程編程、多線程編程、進程池和線程池等。
這兩本書讓我大概知道了如果一個服務端要服務多個客戶端時,不是就簡單寫個 socket 編程就完事,而是還要結合 IO 多路復用 多線程的思想,也就是 Reactor 的設計理念,知道了這些事情后,后面我在看很多開源框架的網(wǎng)絡模型時候,發(fā)現(xiàn)大多數(shù)基于 Reactor 的思想來實現(xiàn)的。
命令學習
- 《鳥哥的Linux私房菜 : 基礎學習篇》,豆瓣評分9.1
系統(tǒng)編程
- 《Linux程序設計》,豆瓣評分8.3
- 《UNIX環(huán)境編程》,豆瓣評分9.4
網(wǎng)絡編程
- 《TCP/IP網(wǎng)絡編程》韓國的,豆瓣評分8.6
- 《Linux高性能服務器編程》,豆瓣評分7.9
- 《Linux多線程服務端編程》,豆瓣評分8.8
- 《UNIX網(wǎng)絡編程》,豆瓣評分9.5
內(nèi)核源碼
《Linux內(nèi)核設計與實現(xiàn)》,豆瓣評分8.6《深入Linux內(nèi)核架構》,豆瓣評分9.0