成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Linux的修煉之道:從小工到專家

企業動態
從那時候開始,我在Linux平臺上度過了很多編程時光,從Linux和Linux社區中學到了很多,我必須得說,通過學習Linux,我變成了一個更好的程序員。

 作者:CoderCat

原文地址:https://www.coderscat.com/how-to-learn-linux

翻譯:碼農翻身,已獲翻譯授權

前言

我依然記得在2004年我剛開始使用Ubuntu 4.04的日子,作為學生,可以在Ubuntu網站上申請免費的安裝盤,幾天以后,一個包含CD的包裹就到了:

 

從那時候開始,我在Linux平臺上度過了很多編程時光,從Linux和Linux社區中學到了很多,我必須得說,通過學習Linux,我變成了一個更好的程序員。

如果你有志于在計算機編程領域長久地發展,一定要學習Linux,但是到底學習什么?怎么學習?

這是一份給初學者從零開始學Linux的指南。

為什么要學習Linux?

也許你聽說過Linux是黑客的一個很酷的工具,或者Linux對開發人員更加友好, 我認為學習Linux有三個原因:

1. Linux統治了服務器市場

大多數服務器都跑Linux, 程序員尤其是Web程序員,你的程序也會跑在Linux上,你需要在Linux上部署代碼,維護服務器。

2. 學習系統級和底層編程

隨著物聯網的來臨,更多的軟件涉及到底層編程,使用C/C++編程是基本要求,這種開發通常需要精通Linux技能。

3. 通過Linux學習計算機的基礎知識

Linux是個開源項目,全世界成千上萬的人在維護它,有很多關于Linux內部知識的資源和優秀書籍,對學習操作系統有極大幫助。

Linux學習指南

對Linux的學習分為幾個層次:

1. 日常使用

2. 在Linux上進行應用開發,操作和維護

3. 系統級開發

4. 內核開發

很明顯,需要一層層地學習,越往下越難。

碼農翻身注:

對于普通程序員來說,做到第二層就差不多了。

對于想成為某個領域專家的程序員,需要達到第三層。

最后一層可能只有少數人,他們可能是自由職業者,黑客,還有不少是大公司的員工。

在開始有趣的旅程之前,先來推薦一本Linus Torvalds的自傳:

 

日常使用

這包括:

  • 如何login , logout
  • 如何聯網
  • 如何打開命令行窗口
  • 如何使用命令行安裝/卸載軟件
  • 如何編輯文本文件
  • 如何創建,移動,刪除文件
  • 如何查看壓縮文件,提取內容。

這個階段最難的部分就是從圖形界面轉向命令行。我的建議是就像學游泳那樣,把自己扔到水里。不入水永遠都學不會游泳。

 

所以,一定要在你的PC上安裝一個Linux。你可以使用多系統,但是不要嘗試虛擬機,因為你很容易就會放棄Linux。

到底使用哪個版本的Linux呢?現在可能有十個常見的版本,選擇最主流的就好,比如Ubuntu, CentOS等。他們直接的主要區別就是GUI和軟件包管理方式。

Linux上的應用開發

Linux上有各種各樣的應用開發,例如Web應用,桌面GUI應用,命令行等等。

你可能需要學習Web開發,C/C++/Python或者其他編程語言。

在Linux上做開發和在Windows上的體驗不同,這里通常沒有一個強大的IDE。大部分時候,你的工具鏈是一系列的小工具,你需要在shell中把他們“連”在一起。

 

你需要學習的是:

  • 在一個編輯器中寫代碼, 常見的編輯器是Vim/Emacs/VSCode
  • 如何編譯你的程序
  • 如何從命令行啟動你的程序
  • 使用調試器來尋找bug

學習一些Shell腳本編程必不可少, 至少你得學到能看懂常見Shell的水平。

現在很多程序員更喜歡Python/Ruby, 但是仍然有很多之前開發的shell腳本需要維護。

你需要建立屬于你自己的Linux開發環境。把配置文件都記錄下來(比如使用Git)。如果你的開發環境搞得很好,編程的效率會有五倍提升。

 

《Linux Bible》 and 《Linux命令行大全》會對命令行和開發環境有個非常好的介紹。

碼農翻身注:在國內,自然是《鳥哥的Linux私房菜》了。

在這一階段花費的學習時間比較長,要保持耐心。

系統級開發

如果你的目標是開發那些“底層”的軟件,比如存儲程序,網絡程序,那必須要進入這一層次。

系統級編程和應用層編程大不相同,主要涉及操作系統和網絡的東西。

你需要學習那些Linux內核對外提供的接口,由于歷史和性能的原因,大部分都是C語言的。

使用GDB來調試程序也是必備的技能,你可以參考《Debuging with GDB》,Valgrind 是另外一個有用的內存檢查工具。

 

《Linux 系統編程》,《Linux系統編程手冊》都是非常好的書。

網絡是系統編程的一個重要編程領域,《Unix網絡編程》是你最好的選擇。

能走到這個階段可是不簡單,只有很少程序員有使用C/C++編程的能力,現代的程序員一般使用更加高級的編程語言例如Python, Ruby ,Java。

技術潮起潮落,但是基礎總是不變,系統編程的核心知識能提升你的技能,擴展你的設計能力。

內核開發

成為內核開發人員,那要求可是相當高,能走到這一步,你將是一位受人景仰的英雄人物。 在這個時候,你應該已經學過操作系統的課程了。

內核包含很多子模塊:內存管理,進程調度,虛擬內存,文件系統,設備管理等。還有很多輔助開發的命令:readelf, nm, ipcs, iostat, objdump, free, chrt, pmap, uptime, top, pidstat, etc.

 

Robot Love寫的《Linux Kernel Development》是講述內核開發最好的入門書, 它會給你提供一個很好的內核概覽。

中文版名稱是《Linux 內核設計與實現》,由陳莉君教授翻譯。

 

還有一些內核開發的好書:

《現代操作系統》

《深入理解LINUX內核》

《深入Linux內核架構》

切記,Linux內核開發的領域太多,初學者不可能同時涉及所有領域。你的學習策略應該是:

1. 獲取Linux內核的概覽。

一個好方法就是讀《Linux 內核設計與實現》,或者去讀一下Linux早期版本的源碼,因為代碼要少很多,這里有很多早期的版本:https://mirrors.edge.kernel.org/pub/linux/kernel/Historic/old-versions/

大約兩周的時間就可以完成。

碼農翻身注:兩周的時間太短了!

MIT開發的教學操作系統xv6也是一個不錯的選擇:https://pdos.csail.mit.edu/6.828/2012/xv6.html

2 專注在特定子模塊

選一個你最感興趣的模塊,試圖理解它的設計和細節,參與內核開發的社區,閱讀相關的文檔,加入Linux的mail list;查看別人的補丁,提交你的補丁。

Linux內核社區有自己的協作風格,你需要學習這些規則。

你的第一個被接受的補丁,將會是你的一個里程碑,當你在一個領域內有了足夠的知識和技能后,切換到別的領域會變的簡單。

成為內核開發的大師需要花費很多年時間,快樂地編程吧!

相關鏈接:

Linux 內核接口: https://en.wikipedia.org/wiki/Linux_kernel_interfaces

Valgrind : http://valgrind.org/

https://www.coderscat.com/to-be-a-programmer

Linux HowTo : https://www.kernel.org/doc/html/v4.16/process/howto.html

Linux 郵件列表 : https://lkml.org/

xv6閱讀資料: https://pdos.csail.mit.edu/6.828/2019/reference.html

【本文為51CTO專欄作者“劉欣”的原創稿件,轉載請通過作者微信公眾號coderising獲取授權】

 

戳這里,看該作者更多好文

 

責任編輯:武曉燕 來源: 51CTO專欄
相關推薦

2018-06-29 14:48:24

數據庫MySQL必讀書籍

2013-11-11 09:26:50

編程思考

2025-01-24 00:00:00

JavaHotSpot虛擬機

2017-03-08 13:12:44

編程學習

2017-07-11 09:35:10

大數據linuxjava

2010-11-17 16:41:49

Bug軟件測試

2009-11-30 17:33:07

微軟

2009-10-26 17:36:13

Oracle管理員DBA

2015-11-12 16:26:46

編程編碼套路code kata

2017-10-10 17:36:14

大數據語言人工智能

2023-11-08 09:10:23

pytestPython

2012-07-05 09:37:04

Java程序員

2009-09-16 17:29:38

Ruby on RaiDave Thomas

2010-07-01 10:24:30

UML小工具

2009-11-27 09:07:38

程序員

2015-07-28 15:45:23

理財

2009-08-06 15:35:54

敏捷中國大會AgileChina

2009-04-15 10:02:21

2022-04-27 19:07:19

技術

2009-08-05 11:54:04

互聯網
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产一二区视频 | 这里只有精品99re | 国产精品视频网 | 欧美日韩一区在线观看 | 一二区成人影院电影网 | 色嗨嗨 | 欧美成人精品一区二区男人看 | 欧美精品a∨在线观看不卡 国产精品久久国产精品 | 欧美中文字幕在线观看 | 日韩国产精品一区二区三区 | 免费h在线 | 国产免费又黄又爽又刺激蜜月al | 国产亚洲精品久久情网 | www.99热.com | 久草视| 九九热九九 | 国产精品美女久久久久久不卡 | 日韩在线视频一区 | 久久av网 | 福利影院在线看 | 在线看免费的a | 免费午夜电影 | 97国产精品 | 99在线观看| 91亚洲欧美| 欧美亚洲高清 | 亚洲精品国产电影 | 毛片免费观看视频 | 日本视频免费观看 | 日韩精品三区 | 草草草影院 | yiren22 亚洲综合 | 国产一区二区三区在线 | 成人精品一区二区三区 | 国产一区二区三区亚洲 | 国产在线一区观看 | 欧美一区二区三区四区视频 | 国产激情视频 | 四季久久免费一区二区三区四区 | 久久新 | 三级视频在线观看电影 |