怒肝 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】可以獲取原圖)。
真的是非常不容易,如果大家覺得滿意請務必點個 贊 支持下。