怒肝 Linux 學習路線,這回不難

Linux 學習路線 by 魚皮。

原創不易,請勿抄襲,違者必究!

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

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

視頻地址://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 容器
  • 遠程連接

    • ⭐ SSH
    • 連接工具
      • ⭐ XShell
      • ⭐ MobaXterm
      • SecureCRT
      • Putty

Linux 常用命令

此處只列舉命令名稱,命令的具體用法可直接在手冊中(//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】可以獲取原圖)。
真的是非常不容易,如果大家覺得滿意請務必點個 支持下。