自由世界的地圖-Linux學習路線
我們竭力使本文完善,如果有需要修改的地方,請提交補丁,我們會儘快合併。作者們懷著慢慢的善意,寫下這篇文章,並不代表他們自信自己無所不知、對未來的每一項預見都是正確的,我們希望你不迷信本文的任何一個字,包括華麗的分割線。
當然,如果您再學習的路上感覺比較孤單,也可以加入到我們這裡加入我們共同探討,共同進步。提出意見,改良文檔。群:55958311
計算機小白
本段主要講解Ubuntu基本操作和計算機相關的基本知識,看完之後應該滿足日常使用,如上網、聽音樂等。
你好,小白,Ubuntu適用群體
儘管有這樣或者那樣不實的傳聞,說Ubuntu如何簡單,Linux如何高端,開源精神如何偉大,軟體的自由對人類的自由如何重要。但是作為用戶,更應該關心軟體是否豐富,日常使用的主要還是QQ、Office、中文輸入法、LOL等工具,這些在Ubuntu之下都沒有良好的解決方案。所以,目前Ubuntu只適用於研究人員和程序員。
你好,小白,硬體
土豪君,如果你想買一台新的筆記本電腦,建議選擇配置:
- 集成顯卡就可以,因為linux對獨立顯卡的支持還不夠好,即使未來有所改善也用不到,原因是你沒有遊戲可以玩
- 盡量使用SSD,機械硬碟也可以,但是SSD比較快,能夠提高工作效率,這裡就不為三爽840 pro打廣告了。
如果你已經有一台電腦,希望你有
- 主流的配置,再也不要問我你有一台32MB內存的電腦,該怎麼安裝Linux據說Linux很省資源之類的了,手機都2G內存了
你好,小白,CPU位數
CPU根據型號不同,通常分為32位和64位,2005年之後的CPU一般都是支持64位的,64位的CPU可以管理4G以上的內存。如果你的電腦內存不足4G,建議選擇32位版本的操作系統,否則應該使用64位的。
關於PAE
雖然4g以上的Linux系統可以使用PAE內核來實現更高的內存容量兼容,但是性能是關鍵,如果您運行的關鍵程序是32bit的並且必須在32bit平台上運行這種情況下建議選擇,否則可以通過安裝32libs來實現程序的運行。
你好,小白,發行版選擇
Linux是操作系統的內核,搭配不同的軟體包、桌面環境,才可以製作成為現代意義的操作系統。我們推薦最新的Ubuntu桌面版,理由如下
- Ubuntu桌面版提供更新、更全的軟體倉庫,無論是開發還是科研,這樣可以節約大量的時間
- Ubuntu提供軟體商店,並且有很多合作夥伴,你可以用上官方版本的WPS、Steam等
- Ubuntu默認的桌面環境Unity對筆記本很友好,小小的筆記本屏幕可以展示更多的東西
- Ubuntu14.04版本非常穩定
- Ubuntu桌面版用戶量非常大,搞不定的問題可以方便的在Google、Stackoverflow、Ubuntu中文論壇等地方找到答案,注意,百度的答案魚龍混雜,大多數是坑爹的
如果你是伺服器用戶,我們推薦最新的Ubuntu伺服器版,理由如下
- Ubuntu伺服器市場佔有率世界第一,有搞不定的問題可以Google到
- 提供眾多的軟體包,可以節約大量的編譯時間
- 對日益普及的雲服務支持非常好,無論是Hadoop還是Stackoverflow,當然還有Docker
- 非常穩定
你好,小白,操作系統安裝
操作系統的安裝並不簡單,在電腦城價值50到100人民幣之間,如果你只有一台電腦,希望安裝雙系統,就更困難一點。
我們不推薦用戶靠自己摸索如何安裝操作系統,這是一項過時非常快的技術,不值得投入大量的時間。我們推薦的安裝方式有
- 找師兄師姐或者本地的社區提供幫助,如果你長的足夠漂亮,這樣肯定沒有問題,如果不是,請繼續往下看
- 使用wubi安裝,但是這種方式有些過時,不推薦使用
- 使用官方提供的U盤製作工具,製作U盤啟動盤安裝
我們不推薦的安裝方式有
- easyBCD,我們群經常會有很多小白看到百度貼吧的這一神器,然後安裝失敗
- 硬碟安裝,過程非常複雜,買個U盤好嗎
- 虛擬機,由於Ubuntu桌面使用了硬體加速,在虛擬機運行的效果並不好,是的,你的電腦20核、64G內存分給虛擬機一半都沒用,如果你堅持,我們推薦VMware,開源免費的Virtual Box效果更差一些
PS:在另外一種情況下虛擬機是被推薦的,並且推薦Virtual Box。
你好,小白,命令行
截止到這裡我們假設你已經安裝好了操作系統,並順利進入了界面,如果沒有,請認真審視操作系統安裝中建議找別人幫忙那一條。
我們不推薦命令行,除非你對操作系統很熟悉並且知道你在幹嘛。尤其不推薦從百度隨便貼幾行命令,然後執行管理員許可權,多數情況下,你會毀掉操作系統。
你好,小白,網路連接
截止到這裡我們假設你已經安裝好了操作系統,並且順利的進入了桌面。(沒錯,這是前置依賴的聲明)接下來讓我們連上互聯網吧。
- 已經配置好路由器或者無線路由器,並且使用DHCP服務(就是你的手機、windows系統不需要設置什麼東西,連上就能上的那種),插上網線或者點右上角的網路圖標選擇無線熱點,就可以連上互聯網了
- 直接連貓需要DSL撥號上網,你需要點擊右上角網路圖標,點編輯,在彈出的頁面中添加DSL連接,順便補一句,如果你是家庭用戶,並且你周圍沒有Ubuntu用戶,請重新審視Ubuntu適用群體那一段
- 銳捷等各種客戶端再MenTOHust項目中提供了支持。
FAQ(我們經常回答的問題)
- 有線網路環境,請再三確認網線已經插上並且閃呀閃呀的
- 無線網路環境,不要緊張,請再三確認自己已經打開無線網卡(就是你沒有在windows下面把無線網卡關了或者把無線網卡的硬體開關關了)。如果確定已經打開,請連上有線網,繼續往下看到驅動那一節。
你好,小白,下載源
截止到這裡我們假設你已經連上了互聯網。
軟體源是一個放著各種各樣軟體的伺服器,我們需要連上它,從上面下載一個列表,列表裡面記載著它上面有哪些軟體。現在,點擊左側面板的軟體中心的圖標。打開編輯菜單,找到最下面的軟體源菜單,打開,在彈出的頁面中選擇一個國內的源,並且把其它軟體列的勾全部去掉(因為我們在天朝,有些伺服器連不上)。該過程可能需要輸入密碼,原因繼續往下看。
之後,軟體中心就會多出一個Progress的圖標,表示正在下載軟體列表,該過程中如果發現錯誤,可以嘗試在終端(點桌面左上角那個寫輪眼圖標,在彈出的框里搜索,跟Mac的Finder很相似)執行
sudo apt-get update
查看錯誤信息。
FAQ:
- Hashxxx mismatch,通常使因為你的網路提供商緩存了過期的信息,常見於小的提供商如長城寬頻等,沒有好的解決方案。
你好,小白,語言包
截止到這裡我們假設你已經設置了軟體源並且下載了軟體列表。接下來,會彈出提示,讓你安裝語言包。你也可以在設置,語言裡面安裝。
你好,小白,系統更新
在下載軟體列表之後還會提示你安裝更新,實際上,Ubuntu會定期的從你配置的軟體源下載軟體列表,然後跟本地版本對比,看是否需要更新。你可以執行
sudo apt-get upgrade
手動完成
你好,小白,驅動
截止到這裡我們假設你已經安裝完系統更新,如果你可以順利的連上無線網路,並且沒有獨立顯卡,可以跳過本段。
打開軟體中心,找到編輯菜單,軟體源選項,然後打開,在彈出的頁面中找到附加驅動,選擇經過驗證的(後面會標明tested)驅動,安裝。
FAQ:
- 手動下載的硬體提供商提供的驅動,黑屏了怎麼辦?不知道哎
你好,小白,輸入法
截止到這裡我們假設你已經開機並且安裝了語言包。
推薦的輸入法有兩種:
- 系統自帶的,點擊桌面右上角的鍵盤圖標,添加Pinyin輸入法
- 搜狗拼音輸入法,安裝之後,同樣添加sogou pinyin
你好,小白,軟體安裝
截至到這裡我們假設你已經連上了互聯網並下載了軟體列表。推薦的軟體方式有
- 軟體中心,裡面的軟體多數是經過驗證的,還有一個評分可供參考
其它的安裝方式:
- 下載deb包安裝,下載對應版本(32或者64)位的,請注意這種安裝方式可能破壞系統的依賴關係
- sh安裝文件安裝,不推薦
- 壓縮包直接拷貝到指定目錄,不推薦,確實需要請繼續往後看
- 編譯安裝,極度不推薦,確實需要請繼續往後看
參考前提:您是新手
你好,小白,文本編輯器
截止到這裡我們假設你已經安裝了輸入法。我們推薦的文本編輯器有
- gedit(Text Editor),在桌面左上角搜索就可以看到,簡單易用
- sublime3,官方目前不支持中文輸入,如果你是程序員,你肯定喜歡它。另外,它是收費軟體,而且很貴
- vim,在軟體中心搜索vim即可安裝,使用方式參考《a byte of vim》,該書對vim的講解非常詳細,後半部分可能有些過時。還可以參閱vim自帶的手冊,在終端輸入
vimtutor
你好,小白,瀏覽器
我們推薦的瀏覽器有
- chrome,內置flash播放器
- firefox,系統自帶,具有更好的擴展性,界面跟Ubuntu更搭
你好,小白,音樂播放器
我們推薦的音樂播放器有
- Rhythmbox,系統自帶,界面可能不符合windows用戶的習慣
- 豆瓣fm,有很多有有意思的頻道
你好,小白,支付
目前可用的支付方式有
- 支付寶,包括手機客戶端的二維碼支付和桌面版的插件,桌面版插件安裝請繼續往下看到sh文件安裝
你好,小白,解壓縮
ubuntu對常見的格式支持的非常好,雙擊即可打開壓縮文件,如果缺乏對應的庫系統會提示安裝。
你好,小白,磁碟管理
推薦的磁碟管理工具有
- gparted,在軟體中心下載安裝,謹慎使用
你好,小白,Office
推薦的Office工具有
- WPS,下載deb包雙擊安裝即可。
- 自帶的LibreOffice,勉強可用
你好,小白,圖片處理
推薦的圖片編輯工具
- GIMP,從軟體中心下載,具體的使用教程請參考Photoshop教程的視頻,另外官方網站也提供了詳細的說明。
- InkScape 從軟體中心下載,具體使用網上有很多教程,全矢量化處理,非常好用。
你好,小白,3D動畫
推薦的3D製作工具
- Blender,從軟體中心下載
你好,小白,QQ
QQ長期不支持Linux,推薦使用
- webQQ,不好用
不太推薦的有:
FAQ:
- QQ不好用怎麼辦?不知道。
你好,小白,wine
極度不建議。 原因:不穩定
你好,小白,且容老夫來補一刀吧
Ubuntu軟體豐富(僅僅對開發者和研究人員而言)
進階小白
本段包含一些進階的操作,我想普通用戶並不太需要這些。
你好,進階小白,許可權管理
Ubuntu默認的不是管理員許可權,執行安裝軟體等操作時需要輸入你的密碼。
你好,進階小白,新立得軟體包管理
在軟體中心有一個更強大的包管理工具,非常不建議小白使用,尤其是處女座。
你好,進階小白,FTP上傳下載
建議使用軟體:
- FileZilla,從軟體中心下載。
你好,進階小白,文件系統
你好,進階小白,文件許可權
你好,進階小白,command
只需要看一眼常用命令就行了,百度一大把。
你好,進階小白,make
主要分為automake的安裝參考大神文檔 另外最近還有一個cmake火起來了。參考大神文檔
計算機相關書單
本段寫給有志於講編程作為全職工作或者工作中大量使用編程的人。不同語言之間沒有明確的依賴關係,同一種語言書目之間有從易到難的關係。
得益於上個世界對語言的研究,人類發現不需要使用機器碼(010101010001)編程,可以使用類似於自然語言的人造語言編寫程序,然後經由計算機翻譯成機器語言。根據不同的人愛好不同,語言經常被分為強類型、弱類型,解釋型、編譯型,對象導向的、過程導向的、函數導向的等等。這些語言相互影響,相互學習,每幾年會有一個新的標準(比如C++99和C++11差異就非常大)。
我們建議你多學幾種(這個就跟戀愛一樣,只有初戀比較青澀,之後越來越順,一馬平川,雖然女孩子分為很多類型),一方面,在不同的場景你需要不同的女孩子,啊,不,計算機語言(比如操作系統用C寫,網頁交互用JavaScript)。另一方面,特定的計算機語言本身限定了你的表達方式,多了解它們的區別有利於打開思路。
很多編程的教材都類似於五步畫馬法,我們更希望提供適合自學的,沒有各種各樣的坑,不需要豐富的想像力腦補就可以學會的書單。
從上到下依次看,C
C語言經歷了漫長的演化,現在的它已經不是以前的樣子了,但是它仍然適合做你的第一或者第二任女友,啊,不對,計算機語言。所有C語言已經42歲了所以已經不是女神了的思想都是異端邪說。
我們推薦的書:
- 《Head first C》,這本書講了很多C語言的細節以及編譯、運行的細節,很多同主題的書不曾提及。另外,它講的C比較新。
- 《The C Programming Language》,這本書堪稱C聖經,只可惜有部分過時了
- 《C專家編程》,大量整理了C的缺陷和易於混淆的地方,它誕生的比較早,也有點過時了。
- 《數據結構與演算法分析 C語言描述》,有了語法,我們需要數據結構和演算法才能寫出好的程序。
從上到下依次看,Python
Python簡單易用,非常適合帶來你的初吻,啊,不,跟計算機的第一次接觸,但是有兩個非常不一樣的標準,python 2和python 3,鑒於本文寫於2014年中旬,我們推薦python 3。
我們推薦的書:
- 《a byte of python3》,它是一本很簡單的入門書
- 官方入門書,有些寫的比上一本更清晰
- 《learning python》,非常厚,講了兩個版本的python的方方面面。
我們不推薦的書:
- 《Head first python》,感覺寫的有些鬆散,跨度太大,不太適合新手。
從上到下依次看,演算法
在有了基本的語法之後,我們仍然需要一種方式把基本的語法組織在一起解決實際問題,這時候你就需要演算法了。
我們推薦的書:
- 《編程之美》,標題過於誇張,實際上主要講了一些很有意思的演算法
- 《數學之美》,沒有標題的那麼誇張,但是不妨花一個下午看一下。
- 《演算法導論》,非常厚,但是很值得花時間看完,雖然很多計算語言自帶一套標準庫實現了很多演算法,但是對演算法的掌握依然很重要。
我們不推薦的書:
從上到下依次看,設計模式
世界上本沒有這種程序的寫法,寫多了也便有了這麼多種設計模式。
- 《 Head First Design Patterns》,head first系列最好的幾本書之一,講的很清楚,代碼使用Java。
- 《大話設計模式》,大話系列最好的幾本書之一,編程語言使用C#,相對於上一本行文略顯不通暢,但是所有的設計模式都講全了。
- 《設計模式》,代碼使用C++和SmallTalk編寫,微言大義,非常適合買一本放在書架上。
從上到下依次看,C++
本段假設你已經會基本的C語法(但是C和C++是兩種不同的語言),C++的程序員很貴,因為它非常複雜,在看完以下書單之前,我們不推薦你在簡歷上寫「精通C++」。
我們推薦的書:
- 官方手冊,它是目前能找到的最合適的入門書
- 《C++ primer》,這本書講了C++的基礎知識,非常厚,但是條理比較清楚。
- 《Effective C++》,講解了C++的一些用法和注意事項,部分因為C++11的標準庫而過時。
- 《More effective C++》,講了一些更高端的用法,部分因為C++11而過時。
- 《深度探索C++對象模型》,對C++的繼承、多態等實現機制進行了講解,非常有啟發性。
從上到下依次看,Java
Java是一門用途廣泛的語言,當然本次我們只針對java語言來說,沒有針對web跟安卓來講。
我們推薦的書:
- 《Head first Java》,Java入門書,講解的Java5,但是內容沒有過時(Java有比較好的向前兼容性,也為此付出了代價),是head first系列最好的書之一。
- 《Think in Java》,對Java基礎部門進行了詳細的講解,針對Java5但是沒有過時。
- 《深入理解Java虛擬機 JVM高級特性與最佳實踐》,對Java運行的環境(Java虛擬機進行了詳細的講解),精通Java必備。
我們不推薦的書:
從上到下依次看,Golang
Golang是google推出的伺服器編程語言,對多線程支持非常好。
我們推薦的書(其實寫的都不是特別好,只是目前可以找到的書非常少):
- 《Go語言程序設計》,較為細緻的講了Golang的基本語法。
- 《Go web編程》,前半部分是基本語法,後半部分是web開發,部分關於標準庫的內容過時了。
我們不推薦的書:
從上到下依次看,JavaScript
JavaScript是Html5欽定的腳本語言,在後端也有廣泛的用途。
我們推薦的書:
- 《JavaScript語言精粹》,它介紹了作者認為比較好用的JavaScript功能的一個子集合,表述方式可能並不易懂,但是講的很不錯。
- 《JavaScript權威指南》,全面的Javascript語法書,很多地方講的並不清楚,比如面向對象的部分。
我們不推薦的書:
從上到下依次看,git
git是一個強大的分散式版本管理工具,功能強大。
我們推薦的書:
- 《pro git》,對git的命令做了簡單的介紹。
- 《Git版本控制管理》,對git的內部機制,高階用法進行了詳盡的講解。
從上到下依次看,操作系統
每天都有很多新手發問,我想深入學習一下Linux,需要看哪一方面的書,有人會推薦一本厚厚的命令手冊,我更喜歡推薦操作系統的書。
我們推薦的書:
- 《現代操作系統》,作者很牛氣,該書不難但是相當的厚。而且看完之後會讓人感覺腦洞大開
從上到下依次看,網路
我們推薦的書:
從上到下依次看,資料庫
受作者的領域所限,推薦的資料庫類型非常少,歡迎補充。
我們推薦的書:
- 《Mysql必知必會》,很有意思的速查手冊,雖然不是特別全面。
- 《資料庫系統概念》,對資料庫系統講的非常詳細。
- 《MySQL技術內幕 InnoDB存儲引擎》,對該引擎講的非常細緻,包括存儲方式、行級鎖等概念都很清晰。
- 《MongoDB權威指南》,為數不多的MongoDB的入門書。
從上到下依次看,硬體及彙編
我們推薦的書:
- 《深入理解計算機系統》,以程序員的視角講解的計算機系統的方方面面。
- 《計算機組成與設計 硬體/軟體介面》,MIPS構架。
從上到下依次看,編譯原理
編譯原理雖然日常工作用不到,但是看完了可以知道計算機語言怎麼變成機器語言的。
我們推薦的書:
從上到下依次看,項目管理
我們推薦的書:
不屬於以上類別的書
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive