怒肝 Linux 學習路線,這回不難
Linux 學習路線 by 魚皮。
原創不易,請勿抄襲,違者必究!
大家好,我是魚皮,又花 1 周肝出了 Linux 學習資料全家桶,包括學習路線、命令手冊、影片、書籍、文檔、實戰教程、社區、工具、大廠面試題等,完整分享給大家!
在閱讀本文章之前,建議先觀看影片,是一個比較特殊的入門教程。我通過實際上線一個項目的方式,帶大家快速學習企業中常用的 Linux 命令,幾分鐘應該就對 Linux 有個不錯的了解啦~
影片地址://www.bilibili.com/video/BV1ev411G7VE/
為什麼學 Linux?
相比於 Windows,Linux 免費、開源、安全、靈活、穩定、便於開發,所以更受企業青睞,甚至 90% 以上 的企業應用都是用 Linux 伺服器部署的。
無論是前端、後端、演算法、測試、運維等電腦相關崗位的同學,都建議學習下 Linux,大有裨益。
學習境界
首先,Linux 入門很簡單,但想學的透徹難上加難!
因此,在學習之前要明確目標。
可以 Linux 的學習分為幾種境界:
- 明勁,就是了解 Linux 的基本概念,會敲常用命令來應對工作。對於大多數想從事開發和運維崗位的同學,學到這就足夠找到工作了。
- 暗勁,又分為兩種境界,能理解 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 內核
- 內核的組成
- 目錄結構
- 版本
- 模組
- 編譯
- 裁剪
具體路線圖參考:
第三方工具
-
Ansible
-
Webmin
-
寶塔 Linux
崗位
-
後端開發(Java / Go / C++)
-
底層開發(C / C++)
-
運維開發
-
大數據
-
雲計算
-
自動化運維
-
嵌入式開發
-
網路工程師
學習建議
多動手實踐,建議自己購買一台雲伺服器,並且在本地搭建 Linux 虛擬機環境。
一定要自己從 0 開始手敲命令安裝軟體、部署服務,熟悉整個項目的上線流程。
每個命令至少要跟著敲一遍,了解它們的作用,並通過自然地練習,熟悉常用的 Linux 命令。
記不住沒關係,用文檔查就行了。
先會用,再理解。
時間不多的話,可以通過面試題來了解一些 Linux 設計思想,而不是直接去深入學習內核,雖說學會了的確大有裨益,但性價比不高。
資源
-
影片
2021 韓順平 一周學會Linux://www.bilibili.com/video/BV1Sv411r7vd(基於 CentOS 7.6 版本較新,影片長度剛剛好,也比較完整)
- 【千鋒】Linux 雲計算基礎影片教程 650 集入門://www.bilibili.com/video/BV1pz4y1D73n(很全面,適合時間足夠、想認真學的同學)
- 【狂神說Java】Linux 教程 – 阿里雲真實環境學習://www.bilibili.com/video/BV187411y7hF(算是個小的入門教程吧,時間足夠的話還是推薦看更完整的)
- 細說Linux – 從入門到精通://study.163.com/course/courseMain.htm?courseId=983014(感覺有點啰嗦,作為備用吧)
- 玩轉Vim 從放棄到愛不釋手://www.imooc.com/learn/1129(好評很多)
- 阿里雲 Linux 運維學習路線://edu.aliyun.com/roadmap/linux
-
書籍
- 《鳥哥的 Linux 私房菜 —— 基礎篇》://cn.linux.vbird.org/linux_basic/linux_basic.php(經典)
- 《深入理解 LINUX 內核》://book.douban.com/subject/1767120/
- 《深入Linux內核架構》://book.douban.com/subject/4843567/
- 《Linux內核完全剖析》://book.douban.com/subject/3229243/
- 《Linux內核設計與實現(原書第3版)》://book.douban.com/subject/6097773/
-
文檔
-
Linux 教程(菜鳥教程)://www.runoob.com/linux/linux-tutorial.html
-
Linux 教程(W3CSchool)://www.w3cschool.cn/linux/
-
Linux 工具快速教程://linuxtools-rst.readthedocs.io(基礎、工具進階、工具參考)
-
-
合集
- Linux內核學習資料://github.com/0voice/linux_kernel_wiki
- GitHub Linux 專區://github.com/topics/linux(很多好項目)
- GitHub Linux 合集://github.com/inputsh/awesome-linux(Linux 系列技術)
- StackOverflow://stackoverflow.com/questions/tagged/linux(解決問題必備)
- 掘金 Linux 專區://juejin.cn/tag/Linux(技術文章)
-
實戰
藍橋雲課 Linux 基礎入門://www.lanqiao.cn/courses/1(強烈推薦)
- 騰訊雲動手實驗室://cloud.tencent.com/developer/labs
- 阿里雲體驗實驗室://developer.aliyun.com/adc/labs/
- 阿里雲知行實驗室://start.aliyun.com/
- 華為雲沙箱實驗室://lab.huaweicloud.com/
-
社區(中國倒的差不多了)
- Linux 中國://linux.cn/
- 開源中國://www.oschina.net/(綜合的開源社區)
- 紅帽官網://www.redhat.com/zh
-
工具
- DistroTest 在線作業系統測試://distrotest.net
Linux 命令搜索://wangchujiang.com/linux-command
- Linux 命令大全手冊://man.linuxde.net/
- Linux 命令大全手冊://www.linuxcool.com/
- Linux 命令示例://linux-commands-examples.com/
- 寶塔 Linux 面板://www.bt.cn/
- 在線 Shell 腳本檢查://www.shellcheck.net
-
面試題
- 牛客網 Linux 專項練習://www.nowcoder.com/intelligentTest
- 牛客網 Linux 面試題://www.nowcoder.com/search?query=linux面試題&type=question
- Linux 常見面試題整理://zhuanlan.zhihu.com/p/376749877
- Linux 常見面試題整理://github.com/0voice/linux_kernel_wiki#-面試題
尾聲
以上就是魚皮熬了幾天大夜、結合個人經驗、並且參考了大量網上的影片、文章和評論總結而成的學習路線(在公眾號【程式設計師魚皮】後台回復【Linux】可以獲取原圖)。
真的是非常不容易,如果大家覺得滿意請務必點個 贊 支援下。