良許Linux | Linux學習方法及學習資料匯總


很多人想學習Linux,卻不知道怎么着手,甚至不知道Linux有哪些方向,非常迷茫。基於此,我特地寫了篇文章介紹Linux方向性問題,沒想到一不小心成了爆款:

到什么程度才叫精通 Linux?​圖標

看完這個回答,相信很多人至少知道了目前 Linux 從業者所從事的幾個方向,對於方向選擇有個大概的認知。

自我介紹一下。我是良許,本科及碩士所學專業卻是機械,畢業后從零開始自學轉行 IT,1 年后被世界 500 強外企所錄用,目前是 Linux 工程師

本文將根據我的從業經驗及與同行大佬的交流,介紹一些Linux學習方法,並且在文末贈送一些Linux書籍的電子版及及視頻教程等資源,希望對大家有幫助!

書籍篇

對於Linux書籍的推薦,我特地寫了幾個回答來介紹,這里就不重復貼回答了:

有沒有學習Linux比較好的入門書籍?

求推薦學習linux命令的書籍?

有沒有比《鳥哥的Linux私房菜》更好的書?

嵌入式Linux有哪些好書推薦?

資源篇

不管學習什么技術,資源都是必不可少的。想當年,我自學轉行,靠的就是大量的優質資源。優質資源會助你一臂之力,讓你快速入門。

當年我自學使用的優質資源,我也全部共享出來,在我的公眾號「良許Linux」后台回復「簡書」即可免費獲取。

當然,我也整理了另外一些不錯的資源,寫在這個回答里了,大家可以看看:

有哪些好的Linux學習資源?​圖標

如何入門並深入學習Linux

1. Linux學習路徑

Linux應用開發自學之路這篇文章介紹了我從零開始自學轉行Linux的完整過程,被很多大號轉載,並且影響了很多人,大家可以參考。

自學簡單編程可行嗎?這篇文章更詳細介紹了我是如何自學轉行的,包括心路歷程,轉行過程,轉行中需要注意的地方,以及更高效轉行成功的方法。

Linux 思維導圖整理(建議收藏)這是一個技術大佬整理的Linux思維導圖,包括:Linux學習路徑,Linux基礎入門,Linux內核學習路線,Linux命令參考,Linux命令速查等等。這份導圖雖然不是100%全面,但如果能夠將里面全部內容掌握下來,你也是個高手了。

image

2. Linux環境搭建

2.1 虛擬機安裝與配置

既然要學習Linux那肯定需要一個Linux環境。那么環境搭建有兩個選擇:1. 安裝虛擬機;2. 直接在實體機上安裝。對於這兩個選擇,我更傾向於第1個,因為前期學習一些命令及基礎知識,直接在虛擬機上進行就可以了。

手把手教你安裝Linux虛擬機

手把手教你配置Linux虛擬機

虛擬機常用的有兩種:Vmware,VirtualBox。Vmware功能更強大,但是是收費的。而VirtualBox雖然功能不及Vmware,但對於新手完全夠用了。這兩篇文章所使用的是Wmare,手把手教你安裝並配置虛擬機,圖文並茂,一路跟下來就可以安裝並配置好虛擬機,完成最基本的搭建。

image

2.2 主機與虛擬機文件共享

虛擬機安裝好之后,還有一項很重要的工作要做,那就是實現虛擬機與主機的互通,也就是互相共享文件。實現文件共享有很多方式,一般而言有以下幾種:

特別地,對於Vmware有一套自己的專屬文件共享方式,VirtualBox應該也有,但我沒去研究過。對於Windows與Linux之間的文件共享,我們一般會用到一款很強大的共享工具——WinSCP,當然還有很多類似工具,比如Xftp,FileZilla。這些工具其實都是基於FTP協議,使用起來也大同小異,都非常方便。

image

2.3 終端工具

作為一名Linux工程師,不管是運維還是開發,我們很多時間會是在命令行下工作。我一般是把虛擬機打開着,然后使用終端工具遠程到虛擬機進行操作。這里推薦一款很強大的終端工具——MobaXterm,它的功能十分強大,界面也非常友好,我用上一次就愛不釋手。

當然還有很多好用的終端工具,比如XShell、secureCRT、Putty、telnet等,選擇一個自己最喜歡的工具即可。

2.4 編程工具

如果你是一名Linux開發人員,那你的工作肯定少不了編程。我一般的作法是,在Window上使用代碼編輯工具編好代碼,然后在Linux下編譯。我經常使用兩個工具:Notepad++Sourceinsight

使用notepad++遠程編輯虛擬機文檔

代碼閱讀神器——Sourceinsight

當然我們也可以直接在Linux下寫代碼,在Linux下編譯。Linux下寫代碼也有很多軟件,常用的比如最性感的編輯器——Sublime Text。

image

3. Linux基礎知識

Linux環境搭建完畢之后,我們就可以正式進入到Linux的學習中來。

3.1 Linux系統架構

學習Linux,我們肯定要知道Linux的系統架構是怎樣的。一般而言,Linux是由以下幾部分構成:

  • 內核
  • bootloader
  • 文件系統
  • Shell
  • 應用程序

內核是Linux系統的核心,它往下直接與硬件打交道,向上連接應用程序。它是由Linux社區來共同維護,其中Linus是核心人物。內核主要是由C語言及少量匯編語言編寫而成,是最著名的一個開源項目之一。內核的源碼在這里,但對於初學者,就別指望能把它看懂。

初學者只要了解一些內核的基本架構即可,后期可以再進一步深入學習。網絡上有一張非常經典的內核架構圖,可以借助來理解內核。

image

Bootloader就是一個單片機程序,用來引導系統啟動。這個程序比較簡單,有些高手甚至自己手寫了bootloader程序。

Linux文件系統有ext3、ext4等,而windows 有 fat32 、ntfs等。做底層開發的工程師需要深入了解,在此不贅述。

3.2 Shell

Shell是系統的用戶界面,提供了用戶與內核進行交互操作的一種接口(命令解釋器)。它的基本作用如下圖示:

image

對於Shell的使用,有非常多坑,初學者一定要規避。在此,我也找了兩篇Shell面試題,以幫助大家學習進步:

必會的 24 道 Shell 腳本面試題

10 個實戰與面試【常用 Shell 腳本】編寫

3.3 Vim

Vim是Linux里非常重要的一個編輯器,但是,它比較難,對於初學者非常不友好,號稱上古神器。Vim有很多命令,所以我們首先要學習Vim的基本命令

如果你覺得Vim不好學,那么我介紹一款提高Vim水平的游戲。這款游戲靈感來自PacMan,讓你使用Vim的命令去控制主角躲避怪物。把這款游戲玩熟練了,你的Vim水平也上了很大一個台階。

當然如果是官方標配版的Vim,那其實還是非常不好用的。好在Vim社區有很多大神,他們開發了很多實用的插件,讓Vim用起來不再那么難用,比如以下三款非常實用的插件:

Vim的三款實用插件

3.4 其它

除了以上3點,Linux系統還有很多基礎知識,這些知識很多很細,沒辦法一篇文章講完,需要在實踐中慢慢學習。

比如Linux系統的目錄結構,它是一個樹狀結構,跟Windows系統有本質的區別。

image

還有,Linux有很多快捷鍵,掌握了這些快捷鍵會為我們提高不少效率。

虛擬終端快捷鍵

4. Linux命令

眾所周知,Linux有非常多命令,但是,剛開始學Linux千萬別貪多,別想着一口吃成大胖子。對於普通人而言,先學會一些最基本的命令,再去拓展其它更高階的命令。

Linux命令基本格式及目錄處理命令

超好用的Unix/Linux 命令技巧 大神為你詳細解讀

給Linux小白看的命令行極簡教程

Linux的10個最危險的命令

常用的命令可能就二三十個,當你把這二三十個命令都用得非常熟之后,你才算剛入門。當然,你別小看這些基礎命令,很多基礎命令有着自己的高級用法,當你把高級用法都玩透了,你就開始慢慢脫離小白了。

5分鍾 more 命令從入門到精通

Linux下 ls 命令的高級用法8例

Linux 下你所不知道的 7 個 SSH 命令用法

image

5. Linux神器

在 Linux 下工作,有一些工具可能大大提高你的工作效率。有些工具大家可能耳熟能詳,但還有更多神器可能連聽都沒聽說過。

比如我們程序員經常需要繪制一些流程圖,我們可以使用一些諸如EA之類的繪圖工具,但這類工具很多都很龐大,而且比較難學。在Linux下其實我們可以使用dot工具簡單高效繪圖!

程序員輕松繪圖神器

image

再如,我們如果和同事協作開發,想要把自己的操作過程錄制下來,發給同事然后同事繼續你的工作。或者,別人使用你的電腦,你想把他的操作記錄下來,以免后期爭議。這時,Script命令就派上用場了。

Linux終端里的記錄器

當然還有很多非常實用的神器,限於篇幅就不一一列舉了。

如何高效回退到特定層級目錄?

Linux任務的前后台管理

Linux下如何高效切換目錄?

6. Linux趣應用

工作都是乏味的,我們要在工作中找到一些樂趣。作為一個免費的操作系統,大量的愛好者為 Linux 寫了很多很有趣的應用,不僅可以幫助我們提高工作效率,而且還可以給我們枯燥的生活帶來樂趣。

Linux 終端給人的感覺就是黑漆漆一片,里面只能顯示一些字符,而從來沒見過顯示圖片的,但是,實際上,Linux 終端除了顯示字符外,當然也可以顯示圖片(然后就可以用來看女神照片)。那是怎么實現的呢?這篇文章有答案:

什么?Linux 終端也可以用來看女神照片?

image

人這一輩子,真的是非常不容易:讀書時,被老師、同學嘲笑,工作時,被老板、同事嘲笑,就連出去擼個串兒,還可能被朋友嘲笑……這些也就算了,畢竟大家還都是同類,都是活生生的人。但是,你如果被 Linux 終端給嘲笑了,你的內心會是什么感受?

說出來也許你不信,我被 Linux 終端嘲笑了…….

[alvin@VM_0_16_centos ~]$ sldkf

  Why are you doing this to me?!

-bash: sldkf: command not found
[alvin@VM_0_16_centos ~]$ iehf

  You are not as bad as people say, you are much, much worse.

-bash: iehf: command not found
[alvin@VM_0_16_centos ~]$ sdfas

  How many times do I have to flush before you go away?

-bash: sdfas: command not found

Git 是用來做啥的?想必碼農朋友都知道,Git 是版本控制軟件,是軟件開發過程中團隊協作不可或缺的軟件。但是,作為版本控制軟件的 Git ,能跟聊天工具扯上關系嗎?這二者似乎毫無關系,但腦洞大開的外國朋友活生生將 Git 改造成了一個聊天工具!

Git 居然可以用來跟女神聊天?

image

等等類似於此類的應用,這些應用雖然不是學習過程中的必需品,但卻可以給我們的學習生活帶來很多樂趣!

7. Git

作為程序員,肯定不是離開Git。Git是版本控制軟件,是軟件開發過程中團隊協作不可或缺的軟件。但可悲的是,在學校里很少會有Git相關課程,所以很多大學生都不知道有Git這個東西。

對於Git的入門,建議看 Pro Git 這本書,它是一本免費開源書,在它的官網上就可以直接在線閱讀。

https://git-scm.com/book/zh/v2

image

Git雖然命令也很多,但基本的常用的也沒幾個。在使用Git的過程中,我們也要注意一些 Git 提交規范

如何高效的使用 Git

學會這兩件事,讓你成為 Git 老司機

你可能不太會用的 10 個 Git 命令

使用Git,就不得不提到GitHub。GitHub是一個面向開源及私有軟件項目的托管平台,因為只支持git 作為唯一的版本庫格式進行托管,故名GitHub。由於開發人員多為男性,故又名GayHub……

很多小伙伴知道使用Git,卻不知道如何在GitHub上與其他小伙伴一起協作,為此我特地寫了一篇文章來介紹GitHub的協作方法

如何在GitHub上大顯身手?

除此之外,還有你必須收藏的 GitHub 技巧

image

后記

Linux博大精深,絕非一篇文章就能講透的。本文根據自己的一些經驗,介紹了一些方向性的東西。大家如果按着這些方向去學習,也一定會成為大神!

電子書+源碼+精選Linux資料獲取方法

在公眾號「良許Linux」后台回復「簡書」即可免費獲取。


❤️ 看完三件事: 如果你覺得這篇內容對你挺有啟發,我想邀請你幫我三個忙:

  1. 點贊,讓更多的人也能看到這篇內容(收藏不點贊,都是耍流氓 -_-
  2. 關注我和專欄,讓我們成為長期關系
  3. 關注公眾號「良許Linux」,第一時間閱讀最新的Linux文章,公眾號后台回復 1024 送你 最新的編程技術資料。

image


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM