你是如何學習 Linux 程式設計的?

時間 2021-05-06 03:53:01

1樓:甜不辣

有能力還是看英文原版的資料,有些知識技術從「開創者」—「學習者」中間不知道過了多少手,畢竟吃飯要趁熱。不像有些國內有些人懂了些皮毛就開始推廣賣書辦培訓班。

2樓:江小白

如果繼續網路程式設計,建議看《TCP/IP進行網際互連》的第三卷,裡面有很多關於應用協議telnet、ftp等協議的程式設計。 建議學習路徑: 首先先學學編輯器,vim, emacs什麼的都行。

然後學make file檔案,只要知道一點就行,這樣就可以準備程式設計序了。 然後看看《C程式語言》K&R,這樣呢,基本上就可以進行一般的程式設計了,順便找本資料結構的書來看。 如果想學習UNIX/LINUX的程式設計,《APUE》絕對經典的教材,加深一下功底,學習《UNP》的第二卷。

這樣基本上系統方面的就可以掌握了。 然後再看Douglus E. Comer的《用TCP/IP進行網際互連》第一卷,學習一下網路的知識,再看《UNP》的第一卷,不僅學習網路程式設計,而且對系統程式設計的一些常用的技巧就很熟悉了,如果繼續網路程式設計,建議看《TCP/IP進行網際互連》的第三卷,裡面有很多關於應用協議telnet、ftp等協議的程式設計。

如果想寫裝置驅動程式,首先您的系統程式設計的介面比如檔案、IPC等必須要熟知了,再學習《LDD》2。 對於幾本經典教材的評價: 《The C Programing Language》K&R 經典的C語言程式設計教材,作者是C語言的發明者,教材內容深入淺出。

雖然有點老,但是必備的一本手冊,現在有時候我還常翻翻。篇幅比較小,但是每看一遍,就有一遍的收穫。另外也可用譚浩強的《C語言程式設計》代替。

《Advanced Programing in Unix Envirement》 W.Richard Stevens:也是非常經典的書(廢話,Stevens的書哪有不經典的!

),雖然初學者就可以看,但是事實上它是《Unix Network Programing》的一本輔助資料。

3樓:張子豪

40個超有趣的Linux命令列彩蛋和遊戲,附一鍵安裝指令碼,在樹莓派和ubuntu雲主機上親測成功,有些還可以在Windows的DOS命令列中執行。

張子豪:40個超有趣的Linux命令列彩蛋和遊戲

4樓:劇小白

我是瞎學。

開始下定決心學linux後,先裝了個ubuntu和windows雙系統,這樣就可以cover學習和娛樂的場景了。

之後在linux環境下,看鳥哥的linux私房菜,只看了第一本,學了些基本操作。

然後從圖書館借了本linux c程式設計直通車,學習linux下的程式設計。

之後就工作了,開始學linux裝置驅動程式。然後在某發科手機上程式設計學習最基本的嵌入式linux操作。

5樓:fasc chen

我知道我的方法比較LOW,但還是忍不住想分享

C++:用VC Linux Development外掛程式或Visual GDB開發和遠端除錯

C#:VS/VS Code + .Net Core發布Linux版本,有時候懶直接用mono

6樓:車卡門

這是我畫的一幅圖,大家可以按此路線循序漸進地學習。

不過需要說明的是,第五項驅動開發和第六項嵌入式系統開發是並列的,也就是說,學習完核心之後,你可以選擇從事不同的領域,當然嵌入式開發有時會包含驅動開發。

還有就是嵌入式開發包括硬體,軟體和系統開發,假如只做硬體的話,你沒有必要按照上述路線進行,系統級開發的話,前面的是必備。

熟悉 Linux 系統,基本命令

安裝 Linux 系統,學會基本操作,熟悉檔案系統,shell 指令碼以及常用命令。

了解程式開發過程

搭建開發環境,了解 Linux 上程式開發過程。

學會使用文字編輯工具 Vim,編譯工具 gcc, as, 連線工具 ld, 除錯工具 gdb, make 工具,會寫 makefile。

用 C 語言實現並編譯自己的測試程式。

嘗試系統程式設計

試著在 Linux 上用 C 語言進行系統程式設計,

其中需要呼叫 Linux 系統庫函式 (API)。

例如,實現乙個需要進行網路通訊、操作檔案的多執行緒/程序程式。

以此深入了解 Linux 系統執行機制。

學習核心

上面學的差不多了,感興趣的同學可以接著學習 Linux 核心。

Linux 核心模組如下圖

這一部分內容比較深,能把它學透的基本就是大牛了,寫個 OS 就不在話下了。

驅動開發

從這裡開始,就不是必須的了。

有興趣的朋友可以深入學習。

但是學習驅動開發無疑要把前面的都要學好。

嵌入式系統開發

學好 Linux 是嵌入式系統開發的基礎。

嵌入式開發包括很多方向,有硬體、軟體,以及系統級別。

硬體要學微控制器,ARM、MIPS,DSP 等各種 MCU,Verilog, RTL, 具體就不多說了,跟 Linux 關係不太大。

軟體的話,需要了解交叉編譯,以及嵌入式環境下 C 語言的特殊用法,例如 volatile、 位操作、暫存器操作、大小端、程式跳轉等。

系統級,要了解 Linux 核心裁剪、移植、編譯、除錯,還有 Bootloader 、裝置驅動等。

這裡就不推薦相關的學習書籍了,其實我覺得看什麼書本身不是問題,很多書的內容都差不多的,只要按照路線或者體系進行學習,就不會有太大偏差。

7樓:simon

unix環境高階程式設計,unix網路程式設計

兩本很經典的書,偏向應用方面

當然基本的c語言能力也要提高

覺得 c和指標 c專家程式設計對你應該大有裨益

8樓:

做點東西出來呀~~比如寫個 HTTPServer,IM,實現個 shell 和 ls,chmod 這些命令,做個檔案系統啥的~~

9樓:捏捏一下

看BLP和LPI。

看完後自己寫乙個簡陋的shell。

題主問的如何學習linux程式設計…又不是學習Linux。

回答《鳥哥私房菜》的是怎麼想的……

打算學習用C語言進行linux網路程式設計,求推薦學習路徑?

紫堇花語 1。譚浩強的c語言,看看基礎語法,2。c語言指標熟練,大部分常用庫函式知道怎麼用3。然後deepin系統的命令列 4。gcc學會,折騰點簡單的socket 5。看看tcp ip,然後makefile,6。這時候沒有gdb就很難受了 7。高階,看 那些人家林林總總的原始碼和書 陶百百 假設你...

如何系統學習Linux?

程式設計師Egon老濕 看這個專欄吧,你想要的成體系的知識都有,最適合小白https www. 關於linux Linux這個詞很範,有很多方向選擇 Linux核心,Linux運維,Linux伺服器開發,Linux作業系統,這些都是各有各的學習體系與路線 比如Linux核心學習 程序管理,記憶體管理...

有哪些 Linux 程式設計的入門書籍?

鳥 Linux私房菜 如果你linux完全零基礎的話看 鳥哥私房菜基礎學習篇 第三版要看簡體中文的,我剛開始時不知道竟然弄了本繁體的看的好痛苦。樓上那些推薦其他看起來很高階的書的應該有一點點基礎的人看才合適。抱歉請忽略我的答案題主問的是linux程式設計而不是使用 皮卡丘 先熟悉linux環境,鳥哥...