當前位置: 妍妍網 > 碼農

怒肝 Linux 學習路線,開發必看

2024-07-08碼農

Linux 學習路線 by 魚皮。 原創不易,請勿抄襲,違者必究!

大家好,我是魚皮,又花 1 周肝出了 Linux 學習資料全家桶,包括學習路線、命令手冊、視訊、書籍、文件、實戰教程、社群、工具、大廠面試題等,完整分享給大家!

在閱讀本文章之前,建議先觀看視訊,是一個比較特殊的入門教程。我透過實際上線一個計畫的方式,帶大家快速學習企業中常用的 Linux 命令,幾分鐘應該就對 Linux 有個不錯的了解啦~

視訊地址: https://www.bilibili.com/video/BV1ev411G7VE/

為什麽學 Linux?

相比於 Windows,Linux 免費、開源、安全、靈活、穩定、便於開發,所以更受企業青睞,甚至 90% 以上 的企業套用都是用 Linux 伺服器部署的。

無論是前端、後端、演算法、測試、運維等電腦相關崗位的同學,都建議學習下 Linux,大有裨益。

學習境界

首先,Linux 入門很簡單,但想學的透徹難上加難!

因此,在學習之前要明確目標。

可以 Linux 的學習分為幾種境界:

  1. 明勁,就是了解 Linux 的基本概念,會敲常用命令來應對工作。對於大多數想從事開發和運維崗位的同學,學到這就足夠找到工作了。

  2. 暗勁,又分為兩種境界,能理解 Linux 尤其是其內核的設計思想,為小圓滿;能將其思想套用到系統的架構設計中,為大圓滿。暗勁境界的高手,沖擊大廠、做架構師、從事底層開發,都不成問題。

  3. 化勁,可謂出神入化,不僅熟知 Linux 的使用、思想和細節,更能推陳出新,自主創造新的系統。

當然,一般情況下,會用就夠了,想進大廠最好也學習一些內核的設計思想。找到工作後,是否要深入學習完全取決於你自己。

大綱

魚皮 - Linux 學習路線

路線

Linux 基礎知識

  • 發展歷史

  • ⭐ 特點和優勢

  • 套用場景

  • ⭐ 常見 Linux 系統版本(推薦 CentOS 7+)

  • ⭐ CentOS

  • ⭐ Ubuntu

  • Debian

  • Fedora

  • 何為開源?

  • Linux 環境

  • 搭建方式

  • ⭐ 虛擬機器

  • ⭐ 雲伺服器

  • 線上工具

  • WSL

  • Docker 容器

  • 遠端連線

  • ⭐ XShell

  • ⭐ MobaXterm

  • SecureCRT

  • Putty

  • ⭐ SSH

  • 連線工具

  • Linux 常用命令

    此處只列舉命令名稱,命令的具體用法可直接在手冊中(https://www.linuxcool.com/)查詢

    系統資訊

  • uname 檢視系統資訊

  • hostname 檢視主機名

  • cat /proc/cpuinfo 檢視 CPU 資訊

  • lsmod 檢視已載入的系統模組

  • top 檢視系統使用情況

  • df 檢視磁盤使用情況

  • fdisk 檢視磁盤分區

  • du 檢視目錄使用情況

  • iostat 檢視 I / O 使用情況

  • free 顯示系統記憶體情況

  • env 檢視環境變量

  • uptime 檢視系統執行時間、使用者數、負載

  • 系統操作

  • shutdown 關機

  • reboot 重新開機

  • mount 掛載裝置

  • umount 解除安裝裝置

  • 使用者相關

  • su 切換使用者

  • sudo 以管理員身份執行

  • who 檢視當前使用者名稱

  • ssh 遠端連線

  • logout 登出

  • useradd 建立使用者

  • userdel 刪除使用者

  • usermod 修改使用者

  • groupadd 建立使用者組

  • groupdel 刪除使用者組

  • groupmod 修改使用者組

  • passwd 修改密碼

  • last 顯示使用者或終端的登入情況

  • 檔相關

  • cd 切換目錄

  • ls 檢視目錄列表

  • tree 打印目錄樹

  • mkdir 建立目錄

  • rm 刪除目錄

  • touch 新建檔

  • cp 復制檔

  • mv 移動檔

  • ln 建立檔連結

  • find 搜尋檔

  • locate 定位檔

  • whereis 檢視可執行檔路徑

  • which 在 PATH 指定的路徑中,搜尋某系統命令的位置

  • chmod 設定目錄許可權

  • cat / more / less 檢視檔

  • tac 倒序檢視檔

  • head / tail 檢視檔開頭 / 結尾

  • paste 合並檔

  • zip / tar / gzip 壓縮檔

  • unzip / tar / gunzip 解壓檔

  • grep / sed / awk 文本處理

  • vim 文本編輯

  • 程式相關

  • crontab 計劃任務

  • nohup 背景執行程式

  • jobs 檢視系統任務

  • ps 檢視行程

  • kill 殺死行程

  • rpm / yum / apt / apt-get / dpkg 軟體包管理

  • service / systemctl 服務管理

  • 網路相關

  • ifconfig 檢視網路內容

  • netstat 檢視網路狀態

  • iptables 檢視 iptables 規則

  • 其他

  • date 顯示系統時間

  • cal 顯示行事曆

  • history 顯示與操作歷史

  • help 幫助

  • alias 別名

  • 使用者管理

  • 使用者

  • 使用者組

  • ACL 許可權管理

  • 使用者切換

  • 管理員

  • 檔管理

  • 檔操作

  • 建立

  • 修改

  • 復制

  • 移動

  • 刪除

  • 檔瀏覽

  • 檔搜尋

  • 檔許可權

  • 軟硬連結

  • 壓縮 / 解壓

  • 文本操作

  • 正規表式

  • grep

  • sed

  • awk

  • VIM 編輯器

  • 基本操作

  • 模式

  • 快捷鍵

  • VIM 客製

  • 外掛程式增強

  • 送張 VIM 鍵盤圖:

    磁盤管理

  • 使用情況查詢

  • 磁盤分區

  • 掛載

  • 驅動管理

  • 驅動載入

  • 驅動更新

  • 網卡

  • 顯卡

  • 行程管理

  • 啟動行程

  • 殺死行程

  • 檢視行程

  • 前台 / 後台任務

  • 行程監控

  • 計劃任務

  • crond 服務

  • crontab 命令

  • 網路管理

  • IP

  • 主機名

  • hosts

  • 網路配置

  • 網路狀態

  • 網路監控

  • 系統管理

  • 系統設定

  • 日期時間

  • 語言

  • 字元集

  • 系統服務

  • 環境變量

  • 日誌

  • 系統關機 / 重新開機

  • 數據備份與恢復

  • 服務管理

  • 服務檢視

  • 啟動服務

  • 禁用服務

  • 刪除服務

  • 開機自啟

  • 軟體管理

  • 軟體包管理器

  • ⭐ rpm

  • ⭐ yum

  • apt

  • apt-get

  • dpkg

  • 軟體安裝

  • 軟體更新

  • 軟體解除安裝

  • 源碼安裝

  • 常用軟體 / 服務搭建

  • HTTP

  • Mail

  • NFS

  • DNS

  • FTP

  • mysql

  • LVS + Keepalived

  • Apache

  • Nginx

  • Redis

  • 日誌服務

  • Shell 指令碼編程

  • 預設變量

  • 運算子

  • 條件

  • 迴圈

  • 執行

  • 函式

  • 系統函式

  • 自訂函式

  • 規範

  • 偵錯方法

  • 管道

  • I/O 重新導向

  • Linux 啟動過程

  • BIOS 啟動引導

  • 引導載入程式

  • 內核載入

  • 系統初始化(init)

  • 執行級別

  • 啟動內核

  • 執行初始化指令碼

  • 使用者登入

  • Linux 內核

  • 內核的組成

  • 目錄結構

  • 版本

  • 模組

  • 編譯

  • 裁剪

  • 具體路線圖參考:

    內核知識體系 by 0Voice

    第三方工具

  • Ansible

  • Webmin

  • 寶塔 Linux

  • 崗位

  • 後端開發(Java / Go / C++)

  • 底層開發(C / C++)

  • 運維開發

  • 大數據

  • 雲端運算

  • 自動化運維

  • 嵌入式開發

  • 網路工程師

  • 學習建議

    多動手實踐,建議自己購買一台雲伺服器,並且在本地搭建 Linux 虛擬機器環境。

    一定要自己從 0 開始手敲命令安裝軟體、部署服務,熟悉整個計畫的上線流程。

    每個命令至少要跟著敲一遍,了解它們的作用,並透過自然地練習,熟悉常用的 Linux 命令。

    記不住沒關系,用文件查就行了。

    先會用,再理解。

    時間不多的話,可以透過面試題來了解一些 Linux 設計思想,而不是直接去深入學習內核,雖說學會了的確大有裨益,但價效比不高。

    資源

  • 編程導航 Linux 入門教程: https://www.code-nav.cn/course/1804008796575358977
    👇 關註公眾號可以免費閱讀教程,立刻開學

  • 尾聲

    以上就是魚皮熬了幾天大夜、結合個人經驗、並且參考了大量網上的視訊、文章和評論總結而成的學習路線,真的是非常不容易,如果大家覺得滿意請務必點個 贊 + 在看 支持下。

    我是魚皮,持續分享編程幹貨的程式設計師,歡迎關註,下期再見~

    👇🏻 點選下方閱讀原文,獲取魚皮往期編程幹貨。


    往期推薦