<code>來自:程序員書庫(ID:OpenSourceTop) 編譯
書單來自:https://medium.com/@sarahelson81/top-6-books-for-unix-and-shell-scripting-beginners-d3e4de7af7a6
/<code>
你可以通過許多種不同的方式去學習新的編程語言,有些人關注博客,有些人看在線教程,而有些人則喜歡安安靜靜坐下來讀一本好書,就我個人而言,我還是比較信賴傳統的學習方式,Unix自1960年誕生以來,就一直在不斷髮展,特別是對於移動開發和服務器環境管理,學習Unix非常重要,因為它為高級編程奠定了基礎。
本文,我將會列出一些需要閱讀的書籍,如果你希望Unix和shell腳本編寫的熟練程度,不妨從這幾本書裡選擇
1、《UNIX環境高級編程(第3版)》
這本書是市場上最好的書之一,W.Richard Stevens在30年前就寫下了這本書,開發人員一致認為本書是永恆的經典,新的第3版支持當今領先的系統平臺,反映了最新技術進展和最佳實踐,並且符合最新的Single UNIX Specification第4版(SUSv4)。
如果你想學習Unix,這是最好的入門書籍,對於已經瞭解了Unix並希望進一步提升學習的程序員,也大力推薦這本書,總之本書所有層次UNIX/Linux程序員
2、《Linux/UNIX系統編程手冊》
這本書的作者Michael Kerrisk是Unix的維護者,他從1987年開始研究Unix,從1990年開始關注Linux。但是,要理解本書,你需要清楚地瞭解Unix的基本概念。涵蓋了逾500個系統調用及庫函數,並給出逾200個程序示例,另含88張表格和115幅示意圖。
總體而言,本書佈局合理,論述清晰,說理透徹,尤其是作者對示例代碼的構思巧妙,獨具匠心,仔細研讀定會受益良多。
3、《Linux程序設計》
Richard Stones和Neil Mathew寫的這本書,有幾個版本可供選擇,目前是第四版,對於想要成為一名Unix編程專家的初學者來說,這是最好的入門書籍之一,這本書從shell一直講到x-window編程,從簡單的TCP/IP網絡協議到最大限度利用Linux中的開發工具,使你很容易就學會在不同版本的Linux版本上編寫出運行良好的程序。
4、《How Linux Works》
這本書由布萊恩·沃德(Brian Ward)撰寫,程序員通常都把時間花在理解技術上(如.Net或Java)背後的工作流程/原理,卻很少有人把時間花在Linux上,通過閱讀這本書,開發人員就能詳細瞭解每個細節是如何運作的:
- 網絡是如何運作的
- 系統重新啟動的過程
- ......
5、《Linux Kernel Development》
本書由Robert Love編寫,主要關注Linux內核級編程新手所犯的錯誤。理解內核是Linux開發人員的基本要求之一。不管你是專家還是初學者,這本書都會在很多方面幫助你,它詳細講解了內核的接口、設計和實現,通過實際例子來解釋內核編程,章節包括使用虛擬內存的內存分配,內核數據結構、處理內核Bug等。
6、《Advanced Unix Programming》
Mark J. Rochkind編寫了這本書的第二版,為開發人員提供了一種更現代的學習方法。這本書既可用作工作指南,也可用作參考書。書中介紹了Linux的歷史,還包括套接字、線程等細節。早些時候,Stevens的書被認為是最適合學習Linux的開發人員的書,但是就可讀性而言,這本書稍微好一些。
7、《UNIX編程環境》
是Brian W.Kernighan和Rob Pike兩位UNIX大師的合力之作,書中引用了大量編程實例,由淺入深地講解了如何使用unix及其各種工具,以及如何用c語言在unix環境下寫出高質量的程序。對於想深入掌握unix和c語言的程序設計人員是一本很好的參考書。
8、《UNIX操作系統設計》
這本書很老,但是不可錯過,是Linux之父Linux Torvalds曾捧讀的經典著作。它向讀者展示了UNIX最開始的設計和實現,UNIX內核體系結構,緊密耦合的多處理機UNIX系統和鬆散耦合的分佈式UNIX系統等,為從事UNIX系統研究與實用程序開發人員提供了一本極有價值的參考資料。
9、《萊昂氏UNIX源代碼分析》
本書由上、下兩篇組成。上篇為UNIX版本6的源代碼,下篇是萊昂先生對UNIX操作系統版本6源代碼的詳細分析。本書語言簡潔、透徹,曾作為未公開出版物廣泛流傳了二十多年,是一部傑出經典之作。
以上提到的名單僅代表我的個人觀點,市面上還有許多書,都值得稱讚,程序員也都非常喜歡,要成為一名更好的程序員,Linux是一定要學的,因為它教會您很多關於網絡、系統編程、操作系統以及進程間通信的知識。所以,趕緊深入研究shell腳本和內核編程吧
閱讀更多 Java面試 的文章