Linux 學習路線 by 魚皮。 原創不易,請勿抄襲,違者必究!
大家好,我是魚皮,又花 1 周肝出了 Linux 學習資料全家桶,包括學習路線、命令手冊、視訊、書籍、文件、實戰教程、社群、工具、大廠面試題等,完整分享給大家!
在閱讀本文章之前,建議先觀看視訊,是一個比較特殊的入門教程。我透過實際上線一個計畫的方式,帶大家快速學習企業中常用的 Linux 命令,幾分鐘應該就對 Linux 有個不錯的了解啦~
視訊地址: https://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 容器
遠端連線
⭐ 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
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 設計思想,而不是直接去深入學習內核,雖說學會了的確大有裨益,但價效比不高。
資源
編程導航 Linux 入門教程:
https://www.code-nav.cn/course/1804008796575358977
👇 關註公眾號可以免費閱讀教程,立刻開學
尾聲
以上就是魚皮熬了幾天大夜、結合個人經驗、並且參考了大量網上的視訊、文章和評論總結而成的學習路線,真的是非常不容易,如果大家覺得滿意請務必點個 贊 + 在看 支持下。
我是魚皮,持續分享編程幹貨的程式設計師,歡迎關註,下期再見~
往期推薦