維新手入門:從發(fā)行版選型到故障排查實(shí)操路徑)
眼看著這個(gè)系列已經(jīng)寫到第二篇不少人可能還在糾結(jié)一個(gè)問(wèn)題前篇講的是Linux的“為什么”這一篇到底該講什么后臺(tái)收到的留言里問(wèn)得最多的其實(shí)不是某個(gè)冷門命令而是“我想裝Linux到底該怎么選”“裝完之后第一件事該干嘛”“網(wǎng)上那些命令大全背了也沒(méi)用怎么辦”。說(shuō)白了大部分人缺的不是資料而是一條清晰的上手路徑。這篇“前篇2”就把這些事攤開(kāi)聊從發(fā)行版選型、鏡像校驗(yàn)、虛擬機(jī)安裝到常用的目錄結(jié)構(gòu)、用戶和權(quán)限、實(shí)用腳本最后用幾個(gè)真實(shí)的運(yùn)維故障和面試??碱}把知識(shí)點(diǎn)串起來(lái)。適合兩類人——一類是0到2年的運(yùn)維新手剛接觸Linux但不知道怎么系統(tǒng)往下走另一類是想轉(zhuǎn)崗運(yùn)維、卻被面試題攔住的開(kāi)發(fā)同學(xué)。這篇不會(huì)教你背命令也不會(huì)丟一堆參數(shù)讓你自己啃而是告訴你每一步背后的邏輯以及我實(shí)操中踩過(guò)的坑。1. 內(nèi)容整體設(shè)計(jì)與思路拆解1.1 為什么“前篇”要單獨(dú)寫一篇選型和環(huán)境準(zhǔn)備我最開(kāi)始寫Linux相關(guān)文章的時(shí)候習(xí)慣直接開(kāi)講命令、講內(nèi)核參數(shù)后來(lái)發(fā)現(xiàn)讀者根本跟不上。原因很簡(jiǎn)單很多人卡在第一步——還沒(méi)把系統(tǒng)裝起來(lái)或者裝起來(lái)了但不知道這版系統(tǒng)適不適合自己。后來(lái)帶過(guò)幾個(gè)實(shí)習(xí)生我才意識(shí)到“裝系統(tǒng)”這件事的坑比寫代碼多得多。更別說(shuō)現(xiàn)在各種鏡像站、定制版、國(guó)產(chǎn)系統(tǒng)滿天飛新手光搜“l(fā)inux鏡像”就能被信息淹沒(méi)。所以這一篇的設(shè)計(jì)思路是先把地基打牢。選對(duì)發(fā)行版裝對(duì)系統(tǒng)配好環(huán)境再開(kāi)始談日常運(yùn)維和面試題。這跟蓋房子是一個(gè)道理——前篇講的是“為什么要蓋房子”這篇講的是“用什么磚、怎么下地基”。如果地基歪了后面學(xué)再多命令都是在危房里折騰。我見(jiàn)過(guò)太多人跟著教程裝了個(gè)不合適的系統(tǒng)結(jié)果包管理器不熟、軟件源配不上、內(nèi)核版本和驅(qū)動(dòng)不兼容最后干脆放棄這是非??上У?。1.2 網(wǎng)絡(luò)熱詞背后的真實(shí)需求順手掃了一眼目前和Linux相關(guān)的高頻詞看起來(lái)零零散散其實(shí)能歸成幾條線“l(fā)inux常用命令”“l(fā)inux命令大全”——這是新手最急的需求但也是最容易被誤導(dǎo)的。真正的問(wèn)題不是記不住命令而是不知道命令之間怎么配合?!發(fā)inux鏡像安裝”“虛擬機(jī)安裝linux”“l(fā)inux鏡像”——這說(shuō)明大量用戶是在虛擬機(jī)里體驗(yàn)Linux而不是直接物理機(jī)安裝。那虛擬機(jī)平臺(tái)的選擇、網(wǎng)絡(luò)模式的差異就需要講透。“l(fā)inux運(yùn)維故障案例”“l(fā)inux系統(tǒng)故障案例”——這已經(jīng)不是入門問(wèn)題了說(shuō)明有一批人已經(jīng)上了生產(chǎn)環(huán)境想靠真實(shí)案例提升排障能力。“l(fā)inux面試題”“l(fā)inux提權(quán)”“l(fā)inux進(jìn)程間通信”——對(duì)應(yīng)的是找工作和技能認(rèn)證的訴求。“l(fā)inux國(guó)產(chǎn)”“國(guó)產(chǎn)linux”——說(shuō)明信創(chuàng)背景下很多人必須評(píng)估國(guó)產(chǎn)發(fā)行版這個(gè)我之前在選型上也有些實(shí)際經(jīng)驗(yàn)。這篇的內(nèi)容就把這些線全部穿起來(lái)。不是羅列知識(shí)點(diǎn)而是按一條從選型到裝機(jī)的實(shí)操鏈路來(lái)組織讓每個(gè)讀者都能明確自己正處于哪個(gè)階段、下一站應(yīng)該去哪。2. 發(fā)行版選型別光看熱度要看“你的使用場(chǎng)景”2.1 服務(wù)器運(yùn)維視角下的發(fā)行版取舍談到選發(fā)行版很多人第一反應(yīng)是“大家都在用什么”。這確實(shí)是個(gè)參考指標(biāo)但不能只看這一點(diǎn)。我從運(yùn)維視角給幾個(gè)判斷維度照著套就行包管理方式你熟不熟悉apt、yum、dnf、zypper的差異在入門前半年沒(méi)那么重要但后續(xù)寫自動(dòng)化腳本的時(shí)候就會(huì)直接卡你。我建議新手先固定在Debian系或Red Hat系別今天Ubuntu明天CentOS后天又換openSUSE那是給自己找不自在。軟件倉(cāng)庫(kù)活躍度包是不是夠新、軟件源在國(guó)內(nèi)能不能快速同步這點(diǎn)比你想的重要。有些發(fā)行版默認(rèn)源在國(guó)外裝個(gè)東西能等到懷疑人生。生命周期長(zhǎng)短一個(gè)版本出來(lái)官方維護(hù)多久有些版本半年就停止維護(hù)你剛調(diào)好就開(kāi)始頭疼升級(jí)。內(nèi)核版本如果你要玩Docker、K8s、或者某些新硬件舊內(nèi)核會(huì)讓你痛苦不堪。商用支持與認(rèn)證在企業(yè)里能不能買到官方技術(shù)支持、有沒(méi)有權(quán)威認(rèn)證有時(shí)候比技術(shù)本身更關(guān)鍵。以我自己的經(jīng)驗(yàn)來(lái)看如果只是學(xué)Linux本身VirtualBox里裝Ubuntu LTS長(zhǎng)期支持版是最省心的路徑軟件源切到國(guó)內(nèi)鏡像之后裝什么都能跑。如果想體驗(yàn)RHEL系的穩(wěn)定Rocky Linux或者AlmaLinux是CentOS停更之后不錯(cuò)的替代品。要搞安全測(cè)試、CTFKali就是個(gè)移動(dòng)工具箱但千萬(wàn)別拿它當(dāng)日常桌面用別問(wèn)我是怎么知道的。2.2 鏡像站、哈希校驗(yàn)與系統(tǒng)“原版”的執(zhí)念有句話說(shuō)得好裝系統(tǒng)是個(gè)“信任翻轉(zhuǎn)”的過(guò)程——你把自己機(jī)器完全交給一個(gè)下載來(lái)的文件它里面有什么你根本不知道。所以“l(fā)inux鏡像”這件事絕對(duì)不能馬虎。我的習(xí)慣是無(wú)論從哪個(gè)網(wǎng)站下ISO下載完第一件事就是算SHA256校驗(yàn)值再去官方渠道核驗(yàn)。你在清華源或者阿里云開(kāi)源鏡像站拿東西源站本身就帶校驗(yàn)文件例如SHA256SUMS多花一分鐘就能避免大問(wèn)題。至于“l(fā)inux鏡像原”這種說(shuō)法我的看法是沒(méi)有絕對(duì)的“原版”只有“官方發(fā)布的原版”和“三方再打包的版本”。像Debian官網(wǎng)直接發(fā)布的就叫官方原版而某些二次開(kāi)發(fā)的系統(tǒng)為了適配國(guó)內(nèi)環(huán)境默認(rèn)集成了很多額外驅(qū)動(dòng)方便歸方便但如果你想學(xué)習(xí)純凈的系統(tǒng)管理還是從官方原版開(kāi)始比較好。我自己曾經(jīng)貪圖省事用過(guò)一些整合版不出問(wèn)題還好一旦出問(wèn)題排查起來(lái)要多走不少?gòu)澛贰驗(yàn)槟悴磺宄降赘牧四男┑讓优渲?。另外再說(shuō)一個(gè)細(xì)節(jié)如果你在公司內(nèi)網(wǎng)或者教育網(wǎng)環(huán)境用鏡像站下載之后緩存一份到本地后面給多臺(tái)機(jī)器裝系統(tǒng)就能省大量時(shí)間。很多老運(yùn)維都有自己的本地Yum源或Apt源這是一項(xiàng)比想象中更實(shí)用的技能。2.3 聊聊國(guó)產(chǎn)Linux與“適配”這件事這兩年“l(fā)inux國(guó)產(chǎn)”的搜索量明顯增長(zhǎng)。我不想評(píng)價(jià)誰(shuí)好誰(shuí)壞只想說(shuō)幾個(gè)客觀事實(shí)和我的觀察當(dāng)前國(guó)內(nèi)主流的國(guó)產(chǎn)發(fā)行版大多基于開(kāi)源社區(qū)版本二次開(kāi)發(fā)包管理和基礎(chǔ)命令跟Debian系或Red Hat系一脈相承所以你在通用Linux上積累的知識(shí)遷移成本并不高。真正的門檻往往不在系統(tǒng)本身而在“生態(tài)適配”。打印機(jī)驅(qū)動(dòng)、專業(yè)軟件、銀行U盾、OA客戶端這些才是能不能真正用起來(lái)的關(guān)鍵。如果你所在單位有國(guó)產(chǎn)化要求找廠商拿適配清單比在網(wǎng)上看評(píng)測(cè)靠譜得多。硬件型號(hào)太雜網(wǎng)上一條消息就能把你帶進(jìn)溝里。我也見(jiàn)過(guò)不少朋友把國(guó)產(chǎn)系統(tǒng)的環(huán)境變量、軟件源換成了別家的短時(shí)間能跑出問(wèn)題沒(méi)人管屬于自找麻煩。建議真想用就老老實(shí)實(shí)按官方的源來(lái)別亂折騰。3. 環(huán)境準(zhǔn)備與虛擬機(jī)安裝幾個(gè)必知細(xì)節(jié)3.1 U盤刻錄工具的選擇與踩坑鏡像下載下來(lái)最常見(jiàn)的方式就是寫進(jìn)U盤安裝。Windows下最有名的兩個(gè)工具是Rufus和balenaEtcher。我的建議是新手機(jī)器用Rufus老機(jī)器尤其是有多系統(tǒng)引導(dǎo)需求的用balenaEtcher。原因很簡(jiǎn)單Rufus寫入速度快但有些老主板對(duì)Rufus寫入的UEFI引導(dǎo)兼容性一般balenaEtcher寫入時(shí)會(huì)做校驗(yàn)速度略慢但穩(wěn)。這里必須記錄一個(gè)真實(shí)踩過(guò)的坑有一次給一臺(tái)老筆記本裝Debian用balenaEtcher寫好的U盤開(kāi)機(jī)死活不進(jìn)安裝界面后來(lái)發(fā)現(xiàn)是U盤分區(qū)表格式的問(wèn)題。老筆記本的BIOS只認(rèn)MBR而balenaEtcher默認(rèn)可能寫入GPT分區(qū)表。解決方法是進(jìn)BIOS開(kāi)啟Legacy模式或者換Rufus調(diào)整分區(qū)表類型重寫。這個(gè)細(xì)節(jié)沒(méi)人提醒純靠折騰??啼浲瓿芍箝_(kāi)機(jī)前先進(jìn)BIOS確認(rèn)引導(dǎo)順序和Secure Boot設(shè)置。Ubuntu和Debian對(duì)Secure Boot是有處理方案的但雙系統(tǒng)玩家尤其要小心很多裝到一半報(bào)錯(cuò)都是Secure Boot在搗亂。你并不需要關(guān)閉它但要知道它是可能的原因之一。3.2 虛擬機(jī)平臺(tái)怎么選VirtualBox、VMware Workstation還是KVM說(shuō)到“虛擬機(jī)安裝linux系統(tǒng)”新手常見(jiàn)的困惑就是平臺(tái)選擇。這三者各有各的脾氣VirtualBox完全免費(fèi)功能足夠日常學(xué)習(xí)使用支持快照、克隆、共享文件夾。最大的問(wèn)題是3D性能比較弱跑桌面環(huán)境偶爾卡頓。VMware Workstation Pro性能更好網(wǎng)絡(luò)模式更多對(duì)新手友好但現(xiàn)在是商業(yè)收費(fèi)模式了個(gè)人用戶得掂量一下錢包。KVMLinux內(nèi)核自帶的虛擬化方案性能接近物理機(jī)是服務(wù)器方向必學(xué)的技術(shù)但對(duì)純新手來(lái)說(shuō)要配置virsh、橋接網(wǎng)絡(luò)這些概念門檻確實(shí)偏高。我的建議很簡(jiǎn)單如果你只是想學(xué)Linux命令和系統(tǒng)管理VirtualBox完全夠用還能幫你把快照、克隆這些基礎(chǔ)概念提前練了。如果你想深入學(xué)習(xí)虛擬化、嵌套虛擬化、復(fù)雜網(wǎng)絡(luò)Lab那直接上手VMware或者KVM。內(nèi)存分配有個(gè)常見(jiàn)誤區(qū)很多人給虛擬機(jī)劃2GB內(nèi)存跑桌面版Ubuntu結(jié)果卡成幻燈片還來(lái)問(wèn)是不是系統(tǒng)有問(wèn)題。桌面環(huán)境真的要流暢4GB是及格線。如果宿主機(jī)內(nèi)存緊張就裝Server版少裝圖形界面學(xué)習(xí)效率還能更高。3.3 虛擬機(jī)藍(lán)屏、網(wǎng)絡(luò)模式和快照一次性講清楚Windows里跑虛擬機(jī)偶爾會(huì)遇到藍(lán)屏這個(gè)問(wèn)題在啟用Hyper-V的情況下尤其常見(jiàn)。原因是Windows的虛擬化安全和VirtualBox、VMware的虛擬化層產(chǎn)生了沖突。排查思路是這樣先通過(guò)bcdedit /enum檢查Hypervisor是否正在運(yùn)行如果運(yùn)行著但又想用別的虛擬機(jī)軟件可能需要關(guān)掉基于虛擬化的安全性VBS或者直接用Windows自帶的Hyper-V和WSL2。記住這不是Linux系統(tǒng)本身的問(wèn)題是宿主機(jī)的虛擬化棧沖突。網(wǎng)絡(luò)這塊VirtualBox最常用的是NAT模式虛擬機(jī)通過(guò)宿主機(jī)上網(wǎng)外部訪問(wèn)不到虛擬機(jī)。如果要做SSH、Web服務(wù)測(cè)試就得用橋接模式讓虛擬機(jī)直接和宿主機(jī)在同一個(gè)局域網(wǎng)里分配一個(gè)獨(dú)立IP。還有Host-Only模式只能和宿主機(jī)互相訪問(wèn)適合做隔離環(huán)境實(shí)驗(yàn)。每次搞不清網(wǎng)絡(luò)的時(shí)候先畫個(gè)三層關(guān)系圖物理路由、宿主機(jī)網(wǎng)卡、虛擬機(jī)網(wǎng)卡。快照是個(gè)好東西。系統(tǒng)剛裝好、軟件源配完、基礎(chǔ)環(huán)境搭建完這“三步一快照”是我的鐵律。后面折騰壞了還原只要幾秒鐘比什么“后悔藥”都好使。尤其是裝驅(qū)動(dòng)、升級(jí)內(nèi)核這種高風(fēng)險(xiǎn)操作前一個(gè)快照能救你半條命。4. 上手實(shí)操目錄、用戶、命令與腳本4.1 先搞懂目錄結(jié)構(gòu)再背命令“l(fā)inux常用命令”背了一大堆結(jié)果連/etc是干嘛的都不知道這是我最常看到的問(wèn)題。我建議任何人拿到一個(gè)Linux系統(tǒng)第一件事不是敲命令而是花半小時(shí)把根目錄下的頂層目錄一個(gè)個(gè)看過(guò)去/etc配置文件的老巢幾乎所有軟件的配置都放這里。/var經(jīng)常變化的數(shù)據(jù)比如日志在/var/log郵件在/var/mail。/home普通用戶的家目錄多用戶系統(tǒng)的隔離靠的就是它。/root管理員的家目錄普通用戶無(wú)權(quán)限進(jìn)去。/tmp臨時(shí)文件目錄重啟可能被清理。/usr系統(tǒng)軟件資源的大本營(yíng)類似Windows的Program Files加系統(tǒng)目錄。/proc、/sys虛擬文件系統(tǒng)進(jìn)程和內(nèi)核信息運(yùn)維檢查要用到它。理解了目錄的作用再看命令就順了。比如“Linux刪除文件夾命令”不是只知道rm -rf就完了你得明白在哪個(gè)目錄下刪除、當(dāng)前用戶有沒(méi)有權(quán)限、刪完有沒(méi)有后悔藥。rm -rf /這種段子很多人當(dāng)笑話看真在生產(chǎn)環(huán)境敲出來(lái)的不是沒(méi)有。4.2 用戶管理新建一個(gè)“夠用”的用戶沒(méi)那么簡(jiǎn)單“l(fā)inux新建用戶”也是高頻搜索。一個(gè)基礎(chǔ)的操作是useradd testuser passwd testuser但光這樣建出來(lái)的用戶可能連sudo都用不了。你需要決定這個(gè)用戶是純普通用戶還是需要管理員權(quán)限。如果要加sudo權(quán)限usermod -aG sudo testuser注意-aG這個(gè)寫法-a是追加沒(méi)有它-G會(huì)直接把你替換掉已有附加組搞不好連原有權(quán)限都丟了。我自己就吃過(guò)這個(gè)虧給用戶加組回頭發(fā)現(xiàn)docker權(quán)限沒(méi)了就是因?yàn)橥思?a。除了權(quán)限新建用戶還有一個(gè)很少人提的點(diǎn)默認(rèn)Shell。檢查一下/etc/passwd里新用戶對(duì)應(yīng)的Shell路徑。有些系統(tǒng)默認(rèn)Shell是/bin/sh功能比較弱交互體驗(yàn)也不好。通常我會(huì)順手改成bash或zshusermod -s /bin/bash testuser如果你是在做大批量用戶初始化建議直接寫個(gè)腳本循環(huán)處理別手動(dòng)一個(gè)個(gè)敲。腳本思路不復(fù)雜讀入用戶名列表循環(huán)useradd再統(tǒng)一設(shè)置初始密碼、強(qiáng)制首次登錄修改密碼、追加sudo組。這里面涉及一個(gè)安全原則——初始密碼要“一次性”讓用戶自己改別讓所有人共用你設(shè)定的密碼。4.3 常用命令要組合著用而不是單獨(dú)背命令單看都是簡(jiǎn)單的難在什么時(shí)候組合起來(lái)。舉個(gè)例子你部署一個(gè)服務(wù)想看日志實(shí)時(shí)輸出又要篩選關(guān)鍵詞tail -f /var/log/nginx/access.log | grep 404再比如排查磁盤占用單用df只能看整體配合du才能找到真正占地方的文件df -h du -h --max-depth1 /var 2/dev/null | sort -hr | head -20還有一類高頻需求是“重命名文件”。不涉及復(fù)雜規(guī)則時(shí)mv就夠mv oldname.txt newname.txt要批量改比如把所有.txt改成.logfor f in *.txt; do mv $f ${f%.txt}.log; done這里最關(guān)鍵的是花括號(hào)變量替換${f%.txt}——%表示從尾部去除匹配的部分。寫腳本時(shí)尤其要注意文件名中有空格的情況所以$f外面必須加雙引號(hào)這行代碼誰(shuí)能說(shuō)出為什么加引號(hào)基本就不算新手了。4.4 進(jìn)程管理改名、通信、保活“l(fā)inux 修改進(jìn)程名稱”這個(gè)需求經(jīng)常出現(xiàn)在監(jiān)控腳本或者壓測(cè)工具里。其實(shí)方法要看場(chǎng)景如果是自己寫的Python腳本運(yùn)行前可以用setproctitle庫(kù)改進(jìn)程名。如果是命令啟動(dòng)的參數(shù)直接透?jìng)?Dnamexxx或者--titlexxx很多服務(wù)都支持。想臨時(shí)改一個(gè)外部進(jìn)程的名字直接用bash內(nèi)置的exec -a newname cmd但這只在當(dāng)前Shell內(nèi)有效。進(jìn)程管理更深一層的需求是通信。搜索“l(fā)inux進(jìn)程間通信”的人多半是從面試題過(guò)來(lái)的。常見(jiàn)的機(jī)制有管道、信號(hào)、消息隊(duì)列、共享內(nèi)存、套接字。我說(shuō)句大實(shí)話日常工作里最關(guān)心的往往是信號(hào)的接收和套接字通信而面試最愛(ài)問(wèn)的則是共享內(nèi)存和消息隊(duì)列的原理對(duì)比。建議新手先動(dòng)手寫一個(gè)簡(jiǎn)單的管道通信例子體會(huì)一下“一個(gè)進(jìn)程的輸出是另一個(gè)進(jìn)程的輸入”這句話比死記概念強(qiáng)。5. 故障排查與面試題真實(shí)場(chǎng)景里的Linux5.1 故障案例一df -h顯示空間充足服務(wù)卻報(bào)磁盤滿這類問(wèn)題很多人遇到第一反應(yīng)是查大文件結(jié)果du一看根本沒(méi)占用多少。這時(shí)候要看df -i——inode耗盡了就是說(shuō)文件系統(tǒng)里可以新建文件的編號(hào)用光了。原因通常是某個(gè)目錄下積累了海量小文件典型的元兇是/tmp或者郵件隊(duì)列。排查命令df -i for dir in /tmp /var /home; do echo $dir: $(find $dir -type f 2/dev/null | wc -l); done找到目錄后別急著刪先確認(rèn)哪些文件已經(jīng)沒(méi)用了再說(shuō)。這個(gè)案例的價(jià)值在于系統(tǒng)層面“可用”和“文件層面可用”是兩碼事運(yùn)維不能只看一層指標(biāo)。5.2 故障案例二服務(wù)一直重啟但不報(bào)具體錯(cuò)誤有段時(shí)間我的服務(wù)莫名其妙不斷重啟看systemctl status只看到“active (running)”然后又變成“failed”日志也沒(méi)個(gè)明確信息。折騰半天發(fā)現(xiàn)是服務(wù)依賴的數(shù)據(jù)庫(kù)連接池沒(méi)起來(lái)而數(shù)據(jù)庫(kù)本身又在等一個(gè)配置文件。問(wèn)題鏈條拉長(zhǎng)了之后最有效的工具是systemctl list-dependencies service-name journalctl -u service-name -f這個(gè)案例給新手提了個(gè)醒排障要順著依賴關(guān)系找別盯著單個(gè)進(jìn)程死磕。systemd把依賴關(guān)系暴露得非常清晰不看就是自找麻煩。5.3 故障案例三軟件源失效與“換源”之后的后遺癥不少人為了下載速度快會(huì)把官方源直接改成國(guó)內(nèi)鏡像站。但版本升級(jí)之后忘了同步更換密鑰apt update就天天報(bào)“NO_PUBKEY”或者404。解決思路分兩步sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 你要的KEY # 或者在新版系統(tǒng)里用 sudo apt-get install --reinstall 軟件包名最好的習(xí)慣是每次換源前先備份原始源列表并且用官方提供的方式導(dǎo)入GPG密鑰不要看到網(wǎng)上一行命令就無(wú)腦復(fù)制。這個(gè)習(xí)慣能讓你少掉一半頭發(fā)。我自己的一個(gè)原則是重要機(jī)器只從操作系統(tǒng)官方源安裝軟件三方源優(yōu)先級(jí)永遠(yuǎn)調(diào)到最低。5.4 運(yùn)維面試題考察的不是答案是思維“l(fā)inux面試題”搜得火熱其實(shí)面試官真正想看的不是你背了多少而是遇到問(wèn)題怎么拆解。比如常問(wèn)的“進(jìn)程和線程的區(qū)別”背書(shū)本答案只能拿基礎(chǔ)分如果你能結(jié)合ps -eLf里看到的線程號(hào)來(lái)解釋那說(shuō)服力完全不同。我建議的準(zhǔn)備方法是把高頻題歸成幾類文件與權(quán)限、進(jìn)程與性能、網(wǎng)絡(luò)與端口、Shell腳本、故障排查。每類題都嘗試“用命令行實(shí)測(cè)一遍”比如問(wèn)怎么查看端口占用你就實(shí)際跑一下ss -tlnp并看懂每一列。碰到“如果網(wǎng)站訪問(wèn)慢你怎么排查”這種開(kāi)放題不要直接回答“重啟服務(wù)”要講思路從瀏覽器入口一步步向下定位看DNS解析耗時(shí)、TCP連接時(shí)間、后端響應(yīng)時(shí)間、數(shù)據(jù)庫(kù)慢查詢。能把這個(gè)鏈路講清楚面試基本穩(wěn)了。5.5 一個(gè)長(zhǎng)久有效的學(xué)習(xí)習(xí)慣給自己搭一個(gè)“拆了不心疼”的實(shí)驗(yàn)場(chǎng)最后想分享一個(gè)我一直在用的方法專門留一臺(tái)配置不高的虛擬機(jī)作為“故障演練場(chǎng)”。每次看到一個(gè)新的故障案例不是看看就過(guò)而是在這個(gè)環(huán)境里親手復(fù)現(xiàn)一遍。比如前面說(shuō)的inode耗盡你就在/tmp里寫個(gè)循環(huán)創(chuàng)建幾萬(wàn)個(gè)小文件然后跑一遍排查流程比如服務(wù)啟動(dòng)失敗就故意把環(huán)境變量寫錯(cuò)再用journalctl一層層查。這個(gè)方法的好處是知識(shí)會(huì)從短期記憶變成長(zhǎng)在手上的技能。等真正上了生產(chǎn)環(huán)境遇到類似問(wèn)題你根本不用查資料手比腦子快。這是我從零基礎(chǔ)一路走到現(xiàn)在覺(jué)得最值得分享的經(jīng)驗(yàn)。Linux不是“看”會(huì)的也不是“背”會(huì)的是“拆”會(huì)的——把每一個(gè)故障都親手拆一遍你的成長(zhǎng)速度會(huì)遠(yuǎn)超同齡人。