境搭建與高頻命令實(shí)戰(zhàn):從入門到排錯(cuò)的完整指南)
上手 Linux 這么多年我一直覺得最勸退新人的不是那些復(fù)雜的服務(wù)配置而是剛打開終端時(shí)面對(duì)一片黑底白字的那種茫然感?!癓inux 系統(tǒng)環(huán)境與基本命令”這八個(gè)字看著像教材目錄實(shí)際卻是所有后續(xù)運(yùn)維、開發(fā)、容器化工作的地基。這篇文章我想換個(gè)角度不按教科書順序念一遍命令手冊(cè)而是從“我當(dāng)年是怎么一步步把環(huán)境跑起來、把命令用順”的真實(shí)路徑出發(fā)把環(huán)境搭建、核心概念、高頻操作、踩坑實(shí)錄揉在一起講給正在入門或者剛被分配到服務(wù)器不知所措的朋友一份能直接照著做的清單。1. 環(huán)境搭建前的思路與選型1.1 為什么一切要從“環(huán)境”開始很多新手第一次接觸 Linux 是在云服務(wù)器上買完實(shí)例拿到一串公網(wǎng) IP 和 root 密碼ssh 登錄進(jìn)去就蒙了沒有桌面沒有瀏覽器只有一個(gè)閃爍的光標(biāo)。這其實(shí)是好事因?yàn)?Linux 的“環(huán)境”本來就不是指漂亮的圖形界面而是內(nèi)核、Shell、核心工具集、軟件包管理這套組合拳。理解這點(diǎn)很重要——你在圖形界面里點(diǎn)鼠標(biāo)能完成的任何事在這套環(huán)境里都能通過命令完成而且能腳本化、批量化、自動(dòng)化。我建議新手不用一上來就折騰雙系統(tǒng)或者物理機(jī)安裝先在虛擬機(jī)里跑一個(gè)桌面版發(fā)行版比如 Ubuntu 的桌面 LTS 版本。理由很簡(jiǎn)單虛擬機(jī)隨時(shí)可以快照、回滾裝壞了不心疼桌面版自帶瀏覽器和文件管理器遇到純命令行搞不定的情況還能有個(gè)圖形界面兜底。等你在虛擬機(jī)里把常用命令練熟了再考慮純命令行服務(wù)器版或者 WSL 這類方案梯度會(huì)舒服很多。選虛擬機(jī)軟件的時(shí)候我見過不少人糾結(jié) VirtualBox 還是 VMware。就個(gè)人經(jīng)驗(yàn)來說VirtualBox 免費(fèi)且跨平臺(tái)對(duì)學(xué)習(xí)完全夠用唯一需要注意的是安裝增強(qiáng)功能時(shí)內(nèi)核頭文件要對(duì)得上如果機(jī)器配置不高可以給虛擬機(jī)分配 2 核 CPU 和 4G 內(nèi)存硬盤動(dòng)態(tài)分配 20G 起步跑桌面版 Ubuntu 會(huì)比較流暢。安裝鏡像選擇 LTS 長(zhǎng)期支持版本比如 22.04 或 24.04因?yàn)橘Y料多、軟件源穩(wěn)定遇到問題搜到的解決方案基本都適用。1.2 終端與 Shell你的第一層“翻譯官”環(huán)境裝好之后你會(huì)遇到一個(gè)名字叫 Shell 的東西。你可以把 Shell 理解成你與內(nèi)核之間的翻譯官你輸入人類習(xí)慣的命令它翻譯成內(nèi)核能執(zhí)行的系統(tǒng)調(diào)用再把結(jié)果反饋給你。Linux 下最常見的 Shell 是 Bash絕大多數(shù)發(fā)行版默認(rèn)就是它。別急著去搞 zsh、fish 那些更炫的替代品先把 Bash 用順后面再換你會(huì)有更深的體會(huì)。打開終端之后你看到的提示符形如userhost:~$這個(gè)格式本身就包含信息當(dāng)前用戶是誰、主機(jī)名是什么、當(dāng)前在哪個(gè)目錄~表示家目錄、當(dāng)前是普通用戶還是 root普通用戶以$結(jié)尾root 以#結(jié)尾。我在實(shí)際帶人入門時(shí)第一個(gè)任務(wù)不是讓他們背命令而是讓他們?cè)诮K端里敲三件事whoami看看自己是誰pwd看看自己在哪ls看看當(dāng)前目錄里有什么。這三個(gè)命令能把“我在哪、我是誰、這里有什么”三個(gè)基本問題全部回答后續(xù)所有操作都建立在它們之上。有些人會(huì)問圖形界面里不是能看到文件在哪嗎為什么非要用命令行我的看法是圖形界面是“點(diǎn)對(duì)點(diǎn)”操作適合單次簡(jiǎn)單任務(wù)命令行是“批對(duì)批”操作一次可以處理幾百個(gè)文件、幾十臺(tái)服務(wù)器。而且命令行天然自帶歷史記錄、管道、重定向、腳本復(fù)用能力這些是圖形界面給不了的。與其說命令行是舊時(shí)代的遺物不如說它是效率最高的交互方式之一。2. 核心概念解析與命令實(shí)操要點(diǎn)2.1 文件系統(tǒng)長(zhǎng)什么樣從根目錄說起Windows 用戶剛接觸 Linux 文件系統(tǒng)時(shí)最不習(xí)慣的是“沒有盤符”。在 Linux 里一切從/根目錄開始所有的磁盤、分區(qū)、U盤、網(wǎng)絡(luò)存儲(chǔ)都被“掛載”到某個(gè)目錄下。這種設(shè)計(jì)的好處是統(tǒng)一不管數(shù)據(jù)在物理上存在哪里邏輯上你都是通過目錄路徑去訪問路徑與硬件解耦。你可以把整個(gè) Linux 文件系統(tǒng)想成一顆倒掛的樹/是樹根/home、/etc、/var、/tmp這些是樹干上長(zhǎng)出來的主要枝干。這幾個(gè)目錄是新手前期最常打交道的簡(jiǎn)單記一下/home普通用戶的家目錄都在這里一般叫/home/用戶名對(duì)應(yīng) Windows 的“用戶”文件夾。/etc系統(tǒng)配置文件的集中地軟件的全局配置基本都躺這改錯(cuò)了輕則服務(wù)起不來重則系統(tǒng)進(jìn)不去。/var經(jīng)常變化的文件尤其是日志/var/log里存著系統(tǒng)的“病歷本”排錯(cuò)時(shí)頭號(hào)去處。/tmp臨時(shí)文件目錄重啟一般會(huì)清空別把重要東西放這里。我見過不少新手在/根目錄下直接用ls發(fā)現(xiàn)一堆英文目錄名就開始發(fā)怵。其實(shí)不用怕日常操作 90% 都在自己的家目錄里轉(zhuǎn)系統(tǒng)目錄更多是“知道在哪、路過看兩眼”的關(guān)系。真正要養(yǎng)成的習(xí)慣是想清楚自己在哪個(gè)目錄再執(zhí)行操作而不是到了哪算哪。cd是切換目錄命令cd ..返回上一級(jí)cd ~直接回當(dāng)前用戶家目錄cd -跳回上一次所在的目錄這個(gè)-參數(shù)非常實(shí)用在兩個(gè)目錄之間來回操作時(shí)能省不少事。2.2 權(quán)限模型r、w、x 是怎么一回事Linux 是典型的多用戶系統(tǒng)權(quán)限搞不明白后面寸步難行。用ls -l看文件你會(huì)看到一串類似drwxr-xr-x的字符串這十個(gè)字符包含了權(quán)限的全部核心信息第一個(gè)字符表示文件類型-是普通文件d是目錄l是軟鏈接后面九個(gè)字符分成三組分別代表文件屬主user、屬組group、其他人other的權(quán)限。r是讀w是寫x是執(zhí)行目錄的x權(quán)限其實(shí)表示“能否進(jìn)入這個(gè)目錄”。數(shù)字表示法是另一個(gè)必須掌握的知識(shí)點(diǎn)r4、w2、x1把三組權(quán)限的數(shù)字加起來就得到chmod后常用的三位數(shù)。比如chmod 755 文件翻譯過來就是屬主擁有讀、寫、執(zhí)行4217屬組和其他人擁有讀和執(zhí)行415。我第一次理解這個(gè)對(duì)應(yīng)關(guān)系時(shí)感覺像突然拿到了密碼本以前看別人寫chmod 777只覺得是個(gè)數(shù)字后來才知道這是把文件權(quán)限完全敞開給所有人非常危險(xiǎn)千萬別順手就敲。權(quán)限命令里還有一個(gè)高頻的是sudo。很多教程告訴你“sudo 提權(quán)”但很少有人解釋為什么明明已經(jīng)登錄了還要加 sudo。原因在于 Linux 默認(rèn)以最小權(quán)限運(yùn)行普通用戶無法修改系統(tǒng)級(jí)文件或安裝全局軟件sudo按visudo配置的策略允許指定用戶以 root 身份執(zhí)行單條命令。我建議新人從第一天就習(xí)慣“權(quán)限最小化”原則能不加 sudo 就不加 sudo只有確實(shí)需要時(shí)才使用避免因?yàn)闄?quán)限過大誤刪系統(tǒng)文件。2.3 移動(dòng)、復(fù)制、刪除、查找高頻四件套文件操作是每天使用頻次最高的命令組。cp復(fù)制、mv移動(dòng)或重命名、rm刪除這三個(gè)命令的語法很相似源路徑寫在前面目標(biāo)路徑寫在后面。具體來說cp 源文件 目標(biāo)文件會(huì)創(chuàng)建一個(gè)副本mv 舊文件名 新文件名則是在同一個(gè)目錄內(nèi)完成重命名rm 文件名如果落在目錄上則需要加-r參數(shù)遞歸刪除如rm -r 目錄名。說一個(gè)最血淚的教訓(xùn)rm -rf /這個(gè)命令在網(wǎng)上的段子里被列為“刪庫跑路”經(jīng)典臺(tái)詞實(shí)際上它執(zhí)行了遞歸強(qiáng)制刪除根目錄下的一切內(nèi)容幾乎等于把整臺(tái) Linux 連根拔起。我身邊真實(shí)發(fā)生過一次事故某同事原本是想清理一個(gè)臨時(shí)目錄結(jié)果變量為空命令變成了rm -rf /好在有定期備份才沒有釀成災(zāi)難。從那以后我個(gè)人的習(xí)慣是凡是涉及rm -rf的操作先ls確認(rèn)路徑再敲命令刪除重要數(shù)據(jù)前先mv到/tmp緩沖區(qū)觀察幾天實(shí)在要?jiǎng)h就用rm -i開啟交互確認(rèn)。養(yǎng)成這些習(xí)慣比事后想辦法做數(shù)據(jù)恢復(fù)要靠譜得多。查找方面find和grep是兩個(gè)方向。find按文件名、類型、時(shí)間等屬性在文件系統(tǒng)里定位文件比如find /home -name *.log找家目錄下所有日志文件grep則是按內(nèi)容篩選比如grep error /var/log/syslog把日志里包含 error 的行打出來。新手容易犯的錯(cuò)是直接在/根目錄跑大范圍的 find整個(gè)系統(tǒng)掃一遍慢得讓人懷疑人生正確姿勢(shì)是先劃定范圍比如在你自己的項(xiàng)目目錄、日志目錄里查效率完全不一樣。2.4 重定向、管道與歷史命令組合技才是精髓單個(gè)命令背得再熟不會(huì)組合也發(fā)揮不出威力。Shell 的核心魅力在于可以用、、|把命令串起來形成流水線。把命令輸出覆蓋寫入指定文件追加寫入|則是把前一個(gè)命令的輸出作為后一個(gè)命令的輸入。一個(gè)經(jīng)典組合查看一個(gè)超大日志文件里某個(gè)關(guān)鍵詞出現(xiàn)的次數(shù)可以用grep 關(guān)鍵詞 日志文件 | wc -l文字解釋就是“篩選出關(guān)鍵詞所在的行再統(tǒng)計(jì)行數(shù)”。這個(gè)過程不需要打開文件不需要寫 Python 腳本一行命令搞定效率極高。另一個(gè)容易被忽略的組合技是history歷史命令。終端里按上下箭頭可以翻之前的命令但這只是臨時(shí)回憶執(zhí)行history可以看到曾經(jīng)輸入過的全部命令記錄再配合!編號(hào)直接重新執(zhí)行某條歷史命令。我常在排查的時(shí)候用這個(gè)功能先把當(dāng)前操作完整跑一遍記錄下關(guān)鍵輸出再用history | grep 關(guān)鍵字快速回溯之前到底執(zhí)行了什么命令、順序是什么。對(duì)新手而言養(yǎng)成“有意識(shí)保留操作痕跡”的習(xí)慣比單單記住某一兩條命令重要得多。3. 完整實(shí)操記錄從登錄到環(huán)境配置3.1 首次登錄后的初始化三件事拿到一臺(tái)新的 Linux 機(jī)器我習(xí)慣先做三件事看 IP、測(cè)網(wǎng)絡(luò)、確認(rèn)發(fā)行版。用ip addr查看網(wǎng)絡(luò)接口和 IP 地址老系統(tǒng)用ifconfig新系統(tǒng)可能沒裝然后ping 8.8.8.8測(cè)一下外網(wǎng)連通性再用cat /etc/os-release確認(rèn)發(fā)行版版本號(hào)換軟件源的時(shí)候用得上。網(wǎng)絡(luò)連通了接著就要考慮軟件源問題。國內(nèi)服務(wù)器常見的痛點(diǎn)是官方源慢得像龜爬需要換成國內(nèi)鏡像站具體做法是在/etc/apt/sources.list里替換地址。這里有個(gè)細(xì)節(jié)提醒不同發(fā)行版的源格式不一樣Ubuntu/Debian 用 apt 源CentOS/RHEL 用 yum/dnf 源千萬別混用。你可以把軟件源理解成手機(jī)應(yīng)用商店不同發(fā)行版有不同的“商店”地址寫錯(cuò)了商店就打不開。初始化時(shí)我還會(huì)順手創(chuàng)建一個(gè)普通用戶比如useradd 新用戶名加passwd 新用戶名設(shè)置密碼然后用usermod -aG sudo 新用戶名把它加入 sudo 組。絕大多數(shù)云服務(wù)器的默認(rèn)登錄用戶是 root 或類似的管理員日常操作很容易“下手過重”。切到普通用戶后用sudo做提權(quán)一方面減少誤操作另一方面權(quán)限會(huì)被系統(tǒng)記錄在日志中出了問題知道是誰、在什么時(shí)間、執(zhí)行了什么。3.2 安裝軟件的正確姿勢(shì)包管理器的邏輯Linux 安裝軟件和 Windows 下一個(gè) exe 雙擊安裝有很大差別。各發(fā)行版都有自己的包管理器比如 Ubuntu 的apt、CentOS 的yum/dnf、Fedora 的dnf、Arch 的pacman。理解包管理器的核心邏輯就相當(dāng)于理解了“軟件依賴”一個(gè)軟件運(yùn)行可能需要依賴其他庫包管理器會(huì)幫你自動(dòng)下載、自動(dòng)處理沖突、自動(dòng)卸載時(shí)清理。拿 Ubuntu 舉例安裝前先apt update更新軟件源緩存然后apt install 包名安裝apt search 關(guān)鍵詞搜索軟件apt remove 包名卸載。新手最常犯的錯(cuò)是安裝軟件時(shí)直接apt install 軟件名若提示找不到包原因通常是源里沒有或源沒更新可以先用apt search確認(rèn)準(zhǔn)確名稱。另外不要隨便去官網(wǎng)下載 .deb/.rpm 安裝包手動(dòng)安裝除非有明確的版本需求或包管理器確實(shí)沒有因?yàn)槭謩?dòng)裝包很容易陷入“依賴地獄”最后想卸載都難。3.3 文本處理三劍客cat、vim、nanoLinux 下讀文件、改文件是躲不掉的日常。讀文件最簡(jiǎn)單的是cat 文件名適合小文件文件特別長(zhǎng)時(shí)用less 文件名分頁查看按空格翻頁、按q退出。這兩個(gè)命令足夠應(yīng)付大多數(shù)查看需求。改文件是另一場(chǎng)修煉我強(qiáng)烈建議新人用至少一周時(shí)間把 vi/vim 的基本操作練到條件反射級(jí)別vim 文件名打開文件按i進(jìn)入插入模式編輯按Esc退出插入模式輸入:wq保存退出輸入:q!不保存強(qiáng)制退出。這套流程看似簡(jiǎn)單卻讓無數(shù)新手在第一次打開 vim 后不知道怎么退出而抓狂。如果你實(shí)在被 vim 的模態(tài)切換搞得頭大初期也可以用 nano 兜底nano 文件名直接就是類似記事本的界面底部有一排快捷鍵提示CtrlO保存、CtrlX退出零學(xué)習(xí)成本。我的建議是 nano 用來應(yīng)急vim 還是要慢慢積累起來因?yàn)榉?wù)器上 vim 是標(biāo)配nano 在精簡(jiǎn)系統(tǒng)里不一定預(yù)裝而且 vim 在遠(yuǎn)程編輯場(chǎng)景下的效率優(yōu)勢(shì)是 nano 沒法比的。3.4 從“敲命令”到“看日志”的排錯(cuò)入門新手階段最怕的是系統(tǒng)報(bào)錯(cuò)看到英文大段輸出就麻爪。實(shí)際上80% 排錯(cuò)問題的入口都在日志里。Ubuntu 類的系統(tǒng)日志一般在/var/log下syslog或journalctl都能查到系統(tǒng)消息。關(guān)鍵命令有兩個(gè)tail -f /var/log/syslog會(huì)持續(xù)滾動(dòng)輸出最新日志當(dāng)服務(wù)宕機(jī)或者程序報(bào)錯(cuò)時(shí)用這個(gè)命令實(shí)時(shí)觀察是最高效的journalctl -u 服務(wù)名專門查看某個(gè) systemd 服務(wù)的運(yùn)行日志。舉個(gè)真實(shí)例子某公司部署了一個(gè) Java 應(yīng)用啟動(dòng)總是失敗翻遍代碼沒發(fā)現(xiàn)問題。后來用tail -f /var/log/syslog一看日志里明確寫著端口被占用ss -tlnp | grep 端口號(hào)查下來果然是上一次沒關(guān)干凈的進(jìn)程還占著端口kill 進(jìn)程號(hào)之后應(yīng)用一次啟動(dòng)成功。整個(gè)過程沒有花哨技巧本質(zhì)就是“讓日志說話”。所以我教新人排錯(cuò)時(shí)永遠(yuǎn)第一個(gè)問你查日志了嗎直接看系統(tǒng)記錄里的錯(cuò)誤信息很多時(shí)候比猜要快得多。4. 常見問題與排查技巧實(shí)錄4.1 命令找不到PATH 環(huán)境變量是怎么回事剛用 Linux 時(shí)大概率會(huì)遇到command not found的報(bào)錯(cuò)。這個(gè)報(bào)錯(cuò)有兩種常見含義一是你敲的命令真的不存在二是命令存在但 Shell 沒找到它。前者好辦確認(rèn)拼寫、搜索正確包名即可后者背后的核心概念是PATH環(huán)境變量。你用echo $PATH就能看到一串用冒號(hào)分隔的目錄路徑Shell 會(huì)在這些目錄里逐個(gè)查找你輸入的命令對(duì)應(yīng)的可執(zhí)行文件。如果自己裝的軟件命令找不到很可能是安裝目錄沒加入 PATH。解決辦法臨時(shí)用export PATH$PATH:/你安裝的目錄永久生效就寫到~/.bashrc里。另一個(gè)跟 PATH 相關(guān)的坑是別名alias比如ls在很多系統(tǒng)里其實(shí)是ls --colorauto的別名執(zhí)行which ls可以看到真實(shí)路徑。我之前遇到過某人明明安裝了新版軟件運(yùn)行命令卻還是舊版就是因?yàn)?PATH 里舊版目錄排在前面查了半天才發(fā)現(xiàn)。4.2 Permission denied權(quán)限不足的正確姿勢(shì)這是新手第二大高頻報(bào)錯(cuò)。出現(xiàn)Permission denied時(shí)先想清楚是誰沒權(quán)限是當(dāng)前用戶對(duì)這個(gè)文件沒有讀權(quán)限還是沒有執(zhí)行權(quán)限抑或是父目錄沒有進(jìn)入權(quán)限用ls -l查看文件屬主和權(quán)限位然后對(duì)癥下藥。如果是自己的文件權(quán)限不對(duì)用chmod調(diào)整如果涉及系統(tǒng)文件加上sudo前綴如果某目錄要給別人共享讀權(quán)限chmod or即可。特別想提醒的是不要一出問題就sudo chmod 777 -R整個(gè)目錄。很多人圖省事把權(quán)限全部放開短期看解決了問題長(zhǎng)期看就是自殺式配置。曾有運(yùn)維同事圖省事把網(wǎng)站目錄整個(gè)設(shè)成 777結(jié)果網(wǎng)站被人上傳了惡意腳本服務(wù)器變成了礦機(jī)。權(quán)限最小化這條原則在入門時(shí)就刻進(jìn)腦子遠(yuǎn)比日后吃虧后悔劃算。4.3 端口被占用從報(bào)錯(cuò)到定位的完整鏈路啟動(dòng)服務(wù)時(shí)報(bào)錯(cuò)占了端口這種問題我?guī)缀趺恐芏寄芘鲆?。排查鏈路很固定先ss -tlnp老系統(tǒng)用netstat -tlnp查看當(dāng)前監(jiān)聽的端口和對(duì)應(yīng)進(jìn)程 PID找到占用的 PID 后用ps -ef | grep PID或者ps aux | grep 進(jìn)程名確認(rèn)是什么程序再?zèng)Q定是kill PID干掉它還是換個(gè)端口。這套流程熟練后兩分鐘內(nèi)解決新人容易卡在“不知道用什么命令看端口”。4.4 重啟服務(wù)怎么操作systemctl 必會(huì)指令現(xiàn)代發(fā)行版基本都用 systemd 管理服務(wù)所以systemctl系列命令是運(yùn)維場(chǎng)景里的高頻操作。systemctl start 服務(wù)名啟動(dòng)服務(wù)systemctl stop 服務(wù)名停止systemctl restart 服務(wù)名重啟systemctl status 服務(wù)名查看運(yùn)行狀態(tài)和最近日志。就算你目前只是在自己電腦上學(xué)習(xí)以后登服務(wù)器、裝軟件包、配環(huán)境也一定會(huì)碰到這三個(gè)操作組合。我見過有人用kill直接殺服務(wù)進(jìn)程來“停止服務(wù)”這是最不推薦的做法因?yàn)?systemd 會(huì)認(rèn)為服務(wù)異常退出可能自動(dòng)拉起進(jìn)程或者留下半個(gè)殘存的運(yùn)行狀態(tài)。正確的停止方式是走 systemctl讓服務(wù)走完收尾流程。4.5 新手高頻錯(cuò)誤速查表下面這張表是我這幾年帶新手時(shí)總結(jié)的高頻問題幾乎涵蓋了入門階段會(huì)踩的 90% 的坑現(xiàn)象常見原因解決方向敲命令提示 command not found拼寫錯(cuò)誤、未安裝、PATH 不含該目錄確認(rèn)命令拼寫用apt search安裝檢查 PATHPermission denied文件權(quán)限不足或需提權(quán)l(xiāng)s -l查權(quán)限按需 chmod必要時(shí)加 sudo用 rm 刪文件后后悔未確認(rèn)路徑直接刪除刪除前先 ls用 mv 到 /tmp 緩沖開啟 -i 確認(rèn)服務(wù)啟動(dòng)失敗端口被占用、配置錯(cuò)誤、依賴缺失用 systemctl status、tail 日志、ss 查端口cd 到剛創(chuàng)建的目錄失敗目錄名拼錯(cuò)或權(quán)限不夠ls 確認(rèn)目錄名檢查父目錄權(quán)限vim 打開文件后退出不了不熟悉模態(tài)切換按 Esc 輸入:q!退出平時(shí)多練 vim 基本操作當(dāng)前目錄文件 ls 可見但腳本讀取失敗腳本路徑寫錯(cuò)或權(quán)限問題用絕對(duì)路徑檢查腳本執(zhí)行權(quán)限4.6 關(guān)機(jī)和重啟別小看這兩個(gè)命令reboot重啟、shutdown -h now立即關(guān)機(jī)、shutdown -r 5五分鐘后重啟這幾個(gè)命令看起來簡(jiǎn)單卻有不小講究。新人在圖形界面虛擬機(jī)里直接點(diǎn)關(guān)閉按鈕通常沒問題但在遠(yuǎn)程服務(wù)器上如果亂執(zhí)行關(guān)機(jī)斷線后可能就得跑機(jī)房或者找管理員了。更要注意的是不要?jiǎng)硬粍?dòng)就按住電源鍵強(qiáng)制關(guān)機(jī)那相當(dāng)于突然掐斷系統(tǒng)攢的緩存數(shù)據(jù)。先執(zhí)行優(yōu)雅關(guān)機(jī)等系統(tǒng)完成落盤和停止服務(wù)再斷電才能真正保護(hù)數(shù)據(jù)和磁盤。我在操作服務(wù)器時(shí)有一個(gè)習(xí)慣執(zhí)行關(guān)機(jī)、重啟、刪除這類不可逆或高風(fēng)險(xiǎn)命令之前先在終端里用echo把即將執(zhí)行的命令打印出來看一眼確認(rèn)無誤后再真正執(zhí)行。這個(gè)習(xí)慣看起來有點(diǎn)“土”但確實(shí)幫我避免過好多次因?yàn)轳R虎導(dǎo)致的低級(jí)事故。最后說點(diǎn)我的真實(shí)體會(huì)如果非要給新人一句忠告我會(huì)說學(xué) Linux 命令別靠背要靠用。我也是從連cd都不理解的新手過來的前兩周簡(jiǎn)直是拿著字典查參數(shù)天天踩坑有一天清理系統(tǒng)誤刪了同事共享的配置被訓(xùn)了一頓之后才開始老老實(shí)實(shí)看權(quán)限、看日志、想清楚再動(dòng)手。另外一個(gè)小技巧值得嘗試把每天在終端里輸入的“新命令”記到一個(gè)筆記文件里周末花半小時(shí)復(fù)盤一遍想明白每條命令解決什么問題、為什么這樣寫。堅(jiān)持一個(gè)月你會(huì)發(fā)現(xiàn)那些曾經(jīng)陌生的命令已經(jīng)長(zhǎng)在手上。環(huán)境熟悉了后面再學(xué) Shell 腳本、容器、自動(dòng)化運(yùn)維都會(huì)順暢很多。這臺(tái)黑底白字的終端最終會(huì)讓你越用越順手。