<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          死磕 Linux !

          共 2764字,需瀏覽 6分鐘

           ·

          2021-11-27 14:20

          大家好,我是小林。

          在知乎看到一個(gè)問(wèn)題:為什么計(jì)算機(jī)專(zhuān)業(yè)的學(xué)生要學(xué)習(xí)使用 Linux 系統(tǒng)?

          在這里,也同步分享下我的想法。

          很簡(jiǎn)單,也很直接一個(gè)原因:很多互聯(lián)網(wǎng)大公司都有大量的服務(wù)器運(yùn)行在基于 Linux 的操作系統(tǒng)。因此,我們工作不可避免會(huì)接觸 Linux 系統(tǒng)。

          不過(guò),也要看崗位:

          • 后端開(kāi)發(fā)崗、運(yùn)維崗工作都會(huì)涉及 Linux 系統(tǒng);

          • 客戶(hù)端、前端開(kāi)發(fā)涉及就比較少;

          之所以服務(wù)器選擇用 Linux 操作系統(tǒng),原因有很多:

          1. 自由開(kāi)源:Linux 操作系統(tǒng)完全免費(fèi)且可用作開(kāi)源軟件,通過(guò)開(kāi)源方式,您可以輕松查看用于創(chuàng)建 Linux 內(nèi)核的可用代碼,還可以修改代碼以修復(fù)任何錯(cuò)誤等。只要你做夠厲害,你完全可以按照自己的方式構(gòu)建和自定義服務(wù)器。這些是在 windows 上無(wú)法實(shí)現(xiàn)的。

          2. 穩(wěn)定性:在 windows 上,我們進(jìn)程看到系統(tǒng)崩潰或者卡死,但是在 Linux 上,這種情況發(fā)生的幾率極小,Linux 系統(tǒng)以其最終的穩(wěn)定性而聞名。

          3. 成本低:Linux 是免費(fèi)的,如果你想在其中一臺(tái)服務(wù)器上安裝 Windows,則需要支付激活費(fèi)用,這意味著你需要多花一筆錢(qián)。

          4. 操作方便:對(duì)于普通人來(lái)說(shuō),Windows 操作更為快捷,但是對(duì)計(jì)算機(jī)專(zhuān)業(yè)人士來(lái)講,Linux 操作比 Windows 快捷的多,幾條命令就可以執(zhí)行很多的操作。

          接下來(lái),跟大家聊下 Linux 怎么學(xué)習(xí)?

          Linux 學(xué)習(xí)主要有三個(gè)方向:

          • Linux 命令:Linux 系統(tǒng)都是命令式操作的,就是比如你要?jiǎng)?chuàng)建一個(gè)文件、查看一個(gè)文件、刪除一個(gè)文件等,都是需要輸入命令, 所以要熟練用起 Linux 系統(tǒng),命令的熟悉是必不可少的。

          • Linux 腳本:熟悉了基本 Linux 命令后,就可以去學(xué)習(xí) Linux 腳本,其實(shí)很簡(jiǎn)單,就是把各種命令寫(xiě)在一個(gè)腳本文件里,執(zhí)行腳本的時(shí)候就會(huì)把所有命令執(zhí)行一遍,用于自動(dòng)部署一些項(xiàng)目。

          • Linux 編程(系統(tǒng)編程/網(wǎng)絡(luò)編程):如果走 C/C++ 開(kāi)發(fā),這一塊就需要學(xué)習(xí),因?yàn)?Linux 系統(tǒng)是由 C 語(yǔ)言開(kāi)發(fā)的,所以系統(tǒng)調(diào)用接口,都是 C 式編程開(kāi)發(fā)的。

          我們可以在自己的 Windows 電腦裝一個(gè)虛擬機(jī),然后裝一個(gè) centos 或 ubuntu 發(fā)行版本的 Linux,網(wǎng)上的安裝資源很多的,自己搜一搜跟著搭建就行。有條件可以買(mǎi)一個(gè)云服務(wù)器,使用起來(lái)會(huì)更方便一些,因?yàn)橛泄W(wǎng) ip 地址,任何時(shí)候都可以遠(yuǎn)程登錄使用。

          Linux 命令學(xué)習(xí)

          我當(dāng)初學(xué)習(xí) Linux 命令的時(shí)候,看的是《鳥(niǎo)哥私房菜Linux基礎(chǔ)學(xué)習(xí)篇》,這本書(shū)講的還是很通俗易懂的。

          對(duì)于初學(xué)者可以先掌握這些基本 Linux 命令:

          • 文件/文件夾的查看、創(chuàng)建、刪除、移動(dòng)、復(fù)制、修改權(quán)限;

          • 文件內(nèi)容的編輯、保存;

          • 系統(tǒng)內(nèi)存、硬盤(pán)、cpu、網(wǎng)絡(luò)流量的查看;

          • 軟件的安裝、刪除;

          • ….

          Linux 腳本學(xué)習(xí)

          Linux 腳本常用使用就是 bash 環(huán)境,腳本編程其實(shí)跟 C 語(yǔ)言編程類(lèi)似,也有變量定義、函數(shù)聲明、控制語(yǔ)句,但是他不會(huì)很復(fù)雜,學(xué)起來(lái)還是很快的。

          這里推薦阮一峰老師寫(xiě)的 Bash 編程教程。

          地址:https://wangdoc.com/bash/grammar.html

          Linux 編程(系統(tǒng)編程/網(wǎng)絡(luò)編程)學(xué)習(xí)

          Linux 系統(tǒng)編程,可以看《Linux 程序設(shè)計(jì)》這本書(shū),學(xué) Linux 編程一定要在多敲代碼,并且在 Linux 跑起來(lái)。

          接下來(lái)說(shuō)說(shuō)我學(xué) Linux 網(wǎng)絡(luò)編程的心得。

          當(dāng)初在學(xué)網(wǎng)絡(luò)編程的時(shí)候,看見(jiàn)網(wǎng)上的人都說(shuō) UNP(Unix 網(wǎng)絡(luò)編程)、APUE(Unix 高級(jí)環(huán)境編程)這兩本書(shū)是網(wǎng)絡(luò)編程圣經(jīng)的書(shū),那么好學(xué)的小林,那肯定毫無(wú)猶豫買(mǎi)了。

          書(shū)到貨后,我瞬間就懵逼了,這兩本書(shū)是我買(mǎi)過(guò)最厚的書(shū),這尼瑪怎么學(xué)?

          跟著書(shū)本的節(jié)奏,學(xué)了一段的時(shí)間,是懂了些 Linux 網(wǎng)絡(luò)和系統(tǒng) API 的用法,摸索來(lái)摸索去都是各個(gè) API 的細(xì)節(jié),始終不知道高并發(fā)網(wǎng)絡(luò)框架是如何實(shí)現(xiàn)的。

          后面我又重新找了一波關(guān)于網(wǎng)絡(luò)編程的書(shū),找到了這兩本:《TCP/IP 網(wǎng)絡(luò)編程》和《Linux高性能服務(wù)器編程》。

          • 《TCP/IP 網(wǎng)絡(luò)編程》絕對(duì)是新手村級(jí)別的書(shū),書(shū)里的內(nèi)容不會(huì)有過(guò)多的術(shù)語(yǔ),作者都用大白話(huà)來(lái)表達(dá),配圖也很清晰,也有介紹我想知道的網(wǎng)絡(luò)框架,雖然是比較基礎(chǔ)的多進(jìn)程服務(wù)端模型、多線(xiàn)程服務(wù)端模型、異步 IO 模型。而且最后一章實(shí)現(xiàn)了簡(jiǎn)單的 HTTP 服務(wù)端,讓我知道了從代碼角度是怎么解析 HTTP 報(bào)文的,以及狀態(tài)機(jī)是如何實(shí)現(xiàn)和運(yùn)轉(zhuǎn)的。

          • 《Linux高性能服務(wù)器編程》這本書(shū)主要是網(wǎng)絡(luò)框架為主,前幾章關(guān)于網(wǎng)絡(luò)基礎(chǔ)知識(shí)對(duì)于掌握了計(jì)算機(jī)網(wǎng)絡(luò)知識(shí)的同學(xué)可以直接跳過(guò)的,你看,很多知識(shí)是想通的,當(dāng)我們知道掌握了這塊知識(shí)后,在學(xué)習(xí)新一本書(shū)的時(shí)候,就可以跳過(guò)重疊的內(nèi)容。在這本書(shū)我學(xué)到了,Reactor、Proactor、信號(hào)、定時(shí)器、多進(jìn)程編程、多線(xiàn)程編程、進(jìn)程池和線(xiàn)程池等。
            這兩本書(shū)讓我大概知道了如果一個(gè)服務(wù)端要服務(wù)多個(gè)客戶(hù)端時(shí),不是就簡(jiǎn)單寫(xiě)個(gè) socket 編程就完事,而是還要結(jié)合 IO 多路復(fù)用 + 多線(xiàn)程的思想,也就是 Reactor 的設(shè)計(jì)理念,知道了這些事情后,后面我在看很多開(kāi)源框架的網(wǎng)絡(luò)模型時(shí)候,發(fā)現(xiàn)大多數(shù)基于 Reactor 的思想來(lái)實(shí)現(xiàn)的。

          有了網(wǎng)絡(luò)編程總體的視角后,在需要深入理解 socket api 中各種屬性設(shè)置(超時(shí)、非阻塞 IO、阻塞 IO 等)和異常處理就要回歸 APUE 這本書(shū)。

          到這里我才知道 UNP 和 APUE 為什么會(huì)被稱(chēng)為網(wǎng)絡(luò)編程圣經(jīng)級(jí)別的書(shū),原因是書(shū)里各種細(xì)節(jié)和異常都寫(xiě)的很全,也很細(xì)致,可以應(yīng)對(duì)工作中很多問(wèn)題。

          但是事實(shí)證明,它并不是個(gè)入門(mén)級(jí)的書(shū),所以 UNP 和 APUE 的用途比較像字典,在需要的時(shí)候去查閱就好。


          最后,列一下,我自己看過(guò)和在豆瓣高分的 Linux 的書(shū)籍,給大家供個(gè)參考。

          命令學(xué)習(xí)
          • 《鳥(niǎo)哥的Linux私房菜 : 基礎(chǔ)學(xué)習(xí)篇》,豆瓣評(píng)分9.1

          系統(tǒng)編程
          • 《Linux程序設(shè)計(jì)》,豆瓣評(píng)分8.3

          • 《UNIX環(huán)境編程》,豆瓣評(píng)分9.4

          網(wǎng)絡(luò)編程
          • 《TCP/IP網(wǎng)絡(luò)編程》韓國(guó)的,豆瓣評(píng)分8.6

          • 《Linux高性能服務(wù)器編程》,豆瓣評(píng)分7.9

          • 《Linux多線(xiàn)程服務(wù)端編程》,豆瓣評(píng)分8.8

          • 《UNIX網(wǎng)絡(luò)編程》,豆瓣評(píng)分9.5

          內(nèi)核源碼

          《Linux內(nèi)核設(shè)計(jì)與實(shí)現(xiàn)》,豆瓣評(píng)分8.6
          《深入Linux內(nèi)核架構(gòu)》,豆瓣評(píng)分9.0


          推薦閱讀:

          2022屆互聯(lián)網(wǎng)校招薪資開(kāi)獎(jiǎng),拼多多最高年薪 75 萬(wàn)!

          為什么計(jì)算機(jī)科班也需要自學(xué)?

          這一年半,過(guò)的不容易!

          瀏覽 121
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  超碰在线看不卡了 | 国产中文字幕二区 | langse精品 | 欧美v精品 | 国产三级片视频网站 |