戰(zhàn)指南)
Linux終端入門之新建目錄與文件先問一句你第一次打開Linux終端的時(shí)候是不是對著黑乎乎的窗口發(fā)了好一陣呆光標(biāo)在那兒一閃一閃好像等著你輸入什么神秘的咒語。實(shí)際上它確實(shí)在等你輸入——等你輸入的第一批命令多半逃不開兩條新建目錄、新建文件。終端里新建目錄和文件這個技能看似基礎(chǔ)到不能再基礎(chǔ)但它其實(shí)是整個Linux操作體系的敲門磚。你不會mkdir和touch后面所有的Linux常用命令、Shell腳本、系統(tǒng)配置都會像沒打地基的樓一樣蓋不上去。會了之后你會發(fā)現(xiàn)原來裝系統(tǒng)、部署服務(wù)、寫腳本那些看起來很唬人的操作底層邏輯都繞不開“先建個目錄放東西”、“先建個文件寫配置”這兩步。凡是打算認(rèn)真把Linux當(dāng)工具用的人——不管是后端開發(fā)、運(yùn)維、嵌入式還是剛把Linux裝進(jìn)虛擬機(jī)里打算折騰一下的新手——都值得把這塊徹底吃透。這篇東西我不打算寫成那種翻來覆去念手冊的教程而是想以過來人的角度把我在終端里建目錄、建文件過程中踩過的坑、想明白的道理一次性捋給你。1. 為什么非要在終端里新建目錄和文件很多人會有疑惑文件資源管理器里右鍵新建文件夾它不香嗎為什么非得在一個黑色窗口里敲命令這個問題問得很好答案也很直接因?yàn)槟氵t早會遇到?jīng)]有圖形界面的場景而且你在終端里新建目錄和文件從來不只是“為了建一個文件夾”而是為了把后續(xù)操作嵌套進(jìn)去。1.1 終端操作的真實(shí)場景最常見的場景是什么遠(yuǎn)程登錄一臺服務(wù)器不管是騰訊云、阿里云的輕量服務(wù)器還是公司機(jī)房里的老舊機(jī)器你手頭只有一個SSH終端沒有桌面。這時(shí)候你需要在/home下新建一個項(xiàng)目目錄在里面再建幾個子目錄放配置文件寫啟動腳本——全程都是命令行操作。還有另一種場景你想在服務(wù)器上部署一個應(yīng)用官方文檔給你的第一步往往是“mkdir -p /opt/myapp cd /opt/myapp”你連這都看不懂后面就別提了。在這類場景里終端操作不是可選項(xiàng)是唯一選項(xiàng)。而且熟練之后你會發(fā)現(xiàn)終端里“新建目錄新建文件”的效率其實(shí)是高于鼠標(biāo)的。比如你要一次性創(chuàng)建目錄樹project/{src,docs,scripts}鼠標(biāo)要點(diǎn)好多下終端里一條命令就搞定了。這不是炫技是真的省時(shí)間。1.2 先認(rèn)清“當(dāng)前目錄”這個概念新手在終端里最常犯的糊涂是搞不清楚命令到底在哪里生效。你在終端里輸入mkdir test系統(tǒng)會在哪個地方創(chuàng)建這個test目錄答案是在你的當(dāng)前工作目錄。這個目錄就是終端提示符里通常會顯示的那個路徑。你可以這樣理解每開一個終端窗口你就相當(dāng)于站在這臺電腦文件系統(tǒng)中的某個位置上。你輸入的命令默認(rèn)都是“站在當(dāng)前位置操作當(dāng)前腳下的東西”。想確認(rèn)自己站在哪兒輸入pwdprint working directory打印工作目錄。想看腳下有什么輸入ls。這個理解非常關(guān)鍵因?yàn)楹芏嗳说谝淮卧诮K端里建完目錄跑到圖形界面的“文件管理器”里死活找不到建出來的目錄原因就是兩邊的“位置”不是同一個。比如你在某個終端里位于/tmp/abc但你的文件管理器打開的是~/Downloads當(dāng)然找不到。每個終端窗口的當(dāng)前目錄就像你手里的一個定位光點(diǎn)——建目錄這種命令全看光點(diǎn)指在哪兒。1.3 少用rm多學(xué)ls既然說到終端命令必須先立一個規(guī)矩在終端里操作文件和目錄一定要對危險(xiǎn)命令有敬畏心。尤其是rm -rf這個組合那可是真的有“一鍵送走全部數(shù)據(jù)”的本事。我見過不止一個新人在練習(xí)新建目錄和文件的階段突然上頭想試試刪目錄結(jié)果把整個虛擬機(jī)的系統(tǒng)目錄給刪了直接起不來。所以我的建議是練習(xí)階段你可以大膽地mkdir、touch但rm這個命令至少在頭一個星期里碰都別碰。真想清理從安全一點(diǎn)的rmdir刪空目錄開始等理解了絕對路徑、相對路徑、通配符的含義之后再碰rm。這個習(xí)慣可以幫你避開很多悔不當(dāng)初的意外。2. mkdir新建目錄的核心命令詳解mkdir 是 “make directory” 的縮寫直譯就是“造一個目錄”。這是你在Linux終端里學(xué)到的第一個命令級技能用法本身不難但里面有幾個參數(shù)和邏輯值得拆開說透。2.1 mkdir基本用法一次建一個目錄最基本的用法是mkdir [目錄名]。比如當(dāng)前目錄下沒有l(wèi)earn這個目錄你輸入mkdir learn按下回車當(dāng)前目錄下就多了一個名為learn的空目錄。想確認(rèn)建沒建成功輸入ls或者ls -l看一眼就行。這里有個新手常見的問題目錄名能不能是中文答案是可以但我不推薦。終端環(huán)境、腳本編碼、命令補(bǔ)全遇到中文目錄名很容易出現(xiàn)亂七八糟的問題。別給自己找事目錄名用英文小寫字母加短杠是最穩(wěn)的。比如my-project、linux_test這種。另外一個常見問題是目錄名能不能以點(diǎn)開頭比如.git、.config這種目錄以點(diǎn)開頭的是隱藏目錄平時(shí)用ls看不到要加ls -a才看得到。Linux里大量配置文件都是用點(diǎn)開頭命名的你以后多半會用到?,F(xiàn)在記住這個知識點(diǎn)后面能省不少排查時(shí)間。2.2 -p參數(shù)遞歸創(chuàng)建多級目錄mkdir最核心的參數(shù)是-p全稱是--parents意思是“父級目錄一并創(chuàng)建”。舉個例子你想一次性創(chuàng)建a/b/c這么一條三層目錄結(jié)構(gòu)如果你先mkdir a再mkdir a/b再mkdir a/b/c也不是不行但效率太低而且一旦遺漏某一級后面的命令就報(bào)錯。這時(shí)候直接用mkdir -p a/b/c就夠了系統(tǒng)會自動把中間缺失的a、b目錄都補(bǔ)上。就算a目錄早就存在命令也不會報(bào)錯直接跳過已存在的部分。這個-p參數(shù)在后面的實(shí)踐里幾乎天天遇到。比如部署一個Java項(xiàng)目你要經(jīng)常建這樣的目錄結(jié)構(gòu)mkdir -p /opt/myapp/{bin,conf,logs,data}這一條命令直接建出了4個目錄?;ɡㄌ杮}是終端自帶的擴(kuò)展語法叫花括號展開它會自動把{bin,conf,logs,data}展開成四個名字等價(jià)于四條mkdir命令。這個技巧在日常操作中效率極高后面我會再多舉幾個例子。2.3 -m參數(shù)創(chuàng)建時(shí)直接指定權(quán)限mkdir還有一個參數(shù)-m用于創(chuàng)建目錄的同時(shí)設(shè)置權(quán)限位。比如你要創(chuàng)建一個只對當(dāng)前用戶開放的私有目錄可以這樣mkdir -m 700 private這個命令創(chuàng)建出的private目錄權(quán)限是700也就是只有文件所有者能讀寫執(zhí)行同組用戶和其他用戶一概沒權(quán)限。新手可能對權(quán)限數(shù)字還很陌生我用最簡單的方式解釋一下Linux的權(quán)限用三位數(shù)字表示比如755、700、644第一位是“用戶自己”第二位是“同組人”第三位是“其他人”。數(shù)字從0到7代表讀4、寫2、執(zhí)行1的加總。關(guān)于這個我多說一句新手如果不是很清楚自己在做什么盡量少用-m用系統(tǒng)默認(rèn)權(quán)限即可。默認(rèn)權(quán)限已經(jīng)考慮了安全和易用的平衡等你理解了umask再自己控制不遲。2.4 易錯點(diǎn)文件名帶空格、特殊字符的處理這個坑我?guī)缀踉诿總€人身上都見過。如果你在終端里輸入mkdir my folder注意my和folder之間加了一個空格系統(tǒng)不會幫你創(chuàng)建名為“my folder”的目錄而是會創(chuàng)建兩個各自獨(dú)立的目錄一個叫my另一個叫folder。為什么會這樣因?yàn)榻K端默認(rèn)用空格把參數(shù)切開的。一條命令中每個被空格分隔的內(nèi)容都被當(dāng)作一個獨(dú)立的參數(shù)處理。想創(chuàng)建名字里帶空格的目錄需要給整個名字加引號或者用反斜杠轉(zhuǎn)義像這樣mkdir my folder mkdir my\ folder我其實(shí)不建議你創(chuàng)建帶空格的目錄名因?yàn)楹竺孢M(jìn)入、操作、引用它的時(shí)候每個地方都要小心翼翼地處理。但你必須知道這個原理否則以后讀到別人腳本里帶引號的文件路徑會一頭霧水。目錄名里也不要帶像/、:這種特殊字符。/在Linux里是絕對路徑的分隔符你建目錄時(shí)用了它就相當(dāng)于往下一層繼續(xù)建了。想建a/b目錄至少要mkdir -p a/b才行直接mkdir a/b會報(bào)“No such file or directory”因?yàn)閍不存在系統(tǒng)不知道你要在哪里建b。3. 新建文件的幾種典型方法touch命令與重定向新建目錄用mkdir那新建文件呢最常用的命令是touch。不過touch這個命令的“本來面目”其實(shí)不是建文件而是更新文件的時(shí)間戳。你剛接觸它可以優(yōu)先掌握它“順手建文件”的用法但背后的機(jī)制最好也了解一下因?yàn)楹竺鎸W(xué)著學(xué)著你會發(fā)現(xiàn)它另一面特別有用。3.1 touch命令創(chuàng)建空文件的基礎(chǔ)用法touch的用法特別簡單touch hello.txt這條命令會在當(dāng)前目錄下創(chuàng)建一個名為hello.txt的空文件。如果hello.txt已經(jīng)存在這行命令不會報(bào)錯也不會清空文件內(nèi)容只會把它的“最后修改時(shí)間”更新為當(dāng)前時(shí)間。這個特性在實(shí)戰(zhàn)中挺有講究。比如你想驗(yàn)證一個日志輪轉(zhuǎn)機(jī)制是否生效可以用touch把某個日志文件的修改時(shí)間改到日志輪轉(zhuǎn)策略會認(rèn)為它該被處理的狀態(tài)來測試系統(tǒng)行為。又比如你想建一堆占位文件來檢測磁盤空間滿時(shí)的系統(tǒng)表現(xiàn)touch也是利器。所以別只把它當(dāng)“創(chuàng)建空文件工具”它的時(shí)間戳能力是獨(dú)一份的。創(chuàng)建一個文件之后你可以用ls -l看它的詳細(xì)信息。你會發(fā)現(xiàn)它的初始大小是0。這個細(xì)節(jié)很重要Linux的文件創(chuàng)建和內(nèi)容寫入是兩回事。touch只是把“文件目錄項(xiàng)”建好了內(nèi)容還是空的。后續(xù)你得用echo、cat、vi/vim這些方式往里面寫入內(nèi)容。3.2 重定向符號用echo和cat直接寫入內(nèi)容如果你不只是想建個空文件還想順便往里面寫點(diǎn)字推薦從小技巧開始記用重定向。比如echo hello linux hello.txt的含意是“把左邊命令的輸出覆蓋寫入右邊的文件”。如果hello.txt不存在系統(tǒng)會自動創(chuàng)建它。如果已經(jīng)存在會直接把內(nèi)容覆蓋掉。覆蓋操作是不可逆的原內(nèi)容會瞬間消失。如果你還想保留原有內(nèi)容在后面追加新內(nèi)容用echo another line hello.txt這個追加操作在日常操作里太常用了比如往配置文件末尾補(bǔ)一行內(nèi)容或者把某條命令的運(yùn)行結(jié)果存進(jìn)日志文件ls -l file_list.txt注意不管是用還是如果目標(biāo)文件的老目錄不存在系統(tǒng)都會報(bào)錯。所以新建文件前通常要先用mkdir把目錄結(jié)構(gòu)安排好或者確保當(dāng)前目錄正確。這個先后順序也是后面綜合實(shí)戰(zhàn)的核心思路。3.3 vi/vim想編輯文件內(nèi)容時(shí)的正確選擇touch建空文件echo寫簡單內(nèi)容但如果要寫稍微復(fù)雜一點(diǎn)的文本——比如一段配置、幾行代碼、一份說明文檔——再用echo就太難受了。終端的編輯器常見的vi/vim或者nano才是正選。新手可以先從nano開始因?yàn)樗牟僮髂J礁现庇X。nano file.txt進(jìn)入編輯器直接打字寫完按住CtrlX按提示輸入Y確認(rèn)保存再按回車退出完事。vim雖然功能更強(qiáng)大但它的模式切換普通模式、插入模式、命令行模式對新手的理解成本略高。不過我得說vim你在Linux這條路上遲早要掌握很多服務(wù)器上根本沒有nano但幾乎都有vim。我的建議是先用nano把前面的命令熟悉起來等你對i進(jìn)入插入模式、Esc退出、:進(jìn)入命令模式、w保存、q退出這些基礎(chǔ)操作形成肌肉記憶后再過渡到vim。這個過程不用急熟能生巧。3.4 適合新手的三個文件練習(xí)學(xué)完touch、echo、重定向、nano之后我建議你立刻做一組小練習(xí)把這幾個操作串起來第一步在終端里mkdir -p /tmp/training/{docs,scripts}建立訓(xùn)練目錄。第二步cd /tmp/training/docs進(jìn)入文檔目錄用touch readme.txt創(chuàng)建一個空文檔再用echo study log readme.txt寫入一行內(nèi)容。第三步cd ../scripts進(jìn)入腳本目錄用nano建一個簡單的hello.sh。內(nèi)容可以只寫一行echo hello from shell。第四步回到/tmp/training執(zhí)行兩個查看命令ls -R看整體目錄樹以及cat docs/readme.txt確認(rèn)文件內(nèi)容已經(jīng)寫入了。這套練習(xí)做完你基本就把“在終端里建目錄、在目錄里建文件、往文件里寫內(nèi)容、查看結(jié)果”這條鏈路完整走了一遍它也是之后所有終端操作的基礎(chǔ)框架。4. 綜合實(shí)戰(zhàn)從零搭起一個項(xiàng)目的目錄結(jié)構(gòu)只學(xué)會單個命令還不夠你得學(xué)會組合使用才會真切體會到“終端操作真方便”。這一節(jié)我會帶你把前面學(xué)的命令串起來模擬一次真實(shí)的項(xiàng)目初始化。核心場景是你收到一個任務(wù)要在服務(wù)器上搭建一個新服務(wù)的目錄骨架并創(chuàng)建幾個基本的說明文件和配置文件。4.1 一次性搭出項(xiàng)目目錄樹假設(shè)產(chǎn)品叫order-service你希望它的目錄結(jié)構(gòu)是這樣的/opt/order-service/ ├── bin/ # 放可執(zhí)行腳本 ├── conf/ # 放配置文件 ├── logs/ # 放運(yùn)行日志 └── data/ # 放業(yè)務(wù)數(shù)據(jù)最簡單的方式就是把之前說過的那條mkdir -p命令派上用場sudo mkdir -p /opt/order-service/{bin,conf,logs,data}這里用sudo是因?yàn)?opt目錄默認(rèn)歸root所有普通賬號沒有寫入權(quán)限。新手請記住這個判斷流程當(dāng)系統(tǒng)報(bào)Permission denied時(shí)第一反應(yīng)檢查你對目標(biāo)目錄有沒有操作權(quán)限而不是只看命令本身對不對。創(chuàng)建之后用tree命令查看目錄樹最直觀。如果你的系統(tǒng)沒有tree可以用find /opt/order-service -type d代替或者退一步用ls -R /opt/order-service。4.2 填充關(guān)鍵文件配置、腳本與說明文檔目錄建好之后開始往里面填充文件。這一步正好把touch、echo、cat、nano全部用上。先在conf里放一個最基礎(chǔ)的配置文件。假設(shè)你是給一個Java服務(wù)準(zhǔn)備配置可以用nano創(chuàng)建nano /opt/order-service/conf/app.yml寫入類似下面的內(nèi)容server: port: 8080 mode: dev log: level: info保存退出。接著給bin目錄放一個啟動腳本雛形。用nano創(chuàng)建/opt/order-service/bin/start.sh#!/bin/bash echo order-service starting... cd /opt/order-service # 實(shí)際項(xiàng)目里這里會放真正的啟動命令比如 java -jar xxx.jar然后給它執(zhí)行權(quán)限chmod x /opt/order-service/bin/start.sh這一步是因?yàn)長inux下的腳本文件默認(rèn)沒有執(zhí)行位創(chuàng)建完通常要用chmod改變文件權(quán)限不然運(yùn)行的時(shí)候會報(bào)Permission denied。最后在根目錄放一個README.md說明文件。這里演示用一行命令生成初始內(nèi)容echo # order-service /opt/order-service/README.md然后需要追加說明的時(shí)候再配合補(bǔ)充。比如echo created for deployment practice /opt/order-service/README.md到這一步你已經(jīng)完成了比單純“新建目錄和文件”稍微進(jìn)階一步的完整實(shí)踐用mkdir預(yù)規(guī)劃結(jié)構(gòu)、用nano寫內(nèi)容、用chmod調(diào)權(quán)限、用echo進(jìn)行快速初始化和追加寫入。4.3 快速驗(yàn)證成果并留下“操作日志”一個我特別想強(qiáng)調(diào)的習(xí)慣是在每一步操作過程中及時(shí)驗(yàn)證。封裝的目錄建好之后多敲幾下ls -l、cat去檢查因?yàn)椤按_認(rèn)一步再走下一步”是終端操作里避免連鎖錯誤的黃金準(zhǔn)則。你可以用一組命令快速驗(yàn)證這次全部操作ls -lR /opt/order-service結(jié)果會清晰顯示目錄層級和每個文件的權(quán)限、大小。如果你愿意還可以把驗(yàn)證結(jié)果存下來留作記錄ls -lR /opt/order-service structure_snapshot.txt這又會用一次重定向。你看這些命令就是這么反復(fù)串來串去的越串你越會覺得順手。5. 常見問題與排查技巧實(shí)錄建目錄和文件看著不難但實(shí)際操作中遇到的報(bào)錯和困惑那是五花八門。我把這些年見到的高頻問題整理成了一只參考速查表你們遇到類似情況可以直接對著排查。5.1 Permission denied沒有操作權(quán)限怎么辦這個報(bào)錯的信息往往是mkdir: cannot create directory ‘xxx’: Permission denied。原因很簡單你對當(dāng)前所在的目錄沒有寫權(quán)限。最常見的場景是你在/根目錄或者/etc、/usr這類系統(tǒng)目錄下想直接建目錄而這些地方普通用戶是不能改動的。解決方法有三個第一回到自己有權(quán)限的目錄比如自己的家目錄~或/tmp直接創(chuàng)建第二在命令前面加sudo提權(quán)但你需要知道sudo密碼并且明白自己在做什么第三用cd切換到一個你確定有寫權(quán)限的目錄再繼續(xù)。這里要說個貼心提醒日常練習(xí)就老老實(shí)實(shí)在自己的家目錄下搞別一上來就sudo到處建目錄萬一在系統(tǒng)目錄里建了亂七八糟的結(jié)構(gòu)后面清理起來極麻煩還可能破壞系統(tǒng)默認(rèn)配置。5.2 No such file or directory父目錄不存在報(bào)錯信息形如mkdir: cannot create directory ‘a(chǎn)/b’: No such file or directory問題根源在于父目錄a不存在。你把命令改成mkdir -p a/b即可解決這也是大家一直強(qiáng)調(diào)-p參數(shù)的實(shí)戰(zhàn)價(jià)值。新建文件也同理如果你想vim /opt/project/conf/app.yml但conf目錄還不存在vim會報(bào)錯而不是自動創(chuàng)建目錄。你得先mkdir -p /opt/project/conf再進(jìn)去建文件。5.3 文件名或目錄名帶空格的處理前面提過比較安全的策略是根本不建帶空格的目錄名。但如果你拿到一個已經(jīng)存在的帶空格目錄比如My Documents想進(jìn)入或新建文件怎么辦兩種辦法整個路徑加引號cd My Documents或者用反斜杠轉(zhuǎn)義空格cd My\ Documents。還有一個排查方向值得注意你明明輸入的是mkdir my folder結(jié)果ls一看出現(xiàn)了兩個目錄my和folder別覺得奇怪按連接終端的原理去理解就行。以后寫腳本的時(shí)候凡是涉及路徑變量都記得加引號包起來防止路徑里的空格拆散參數(shù)。5.4 Tab鍵補(bǔ)全避免手滑和路徑錯誤的最佳習(xí)慣這是一條操作經(jīng)驗(yàn)算不上問題但我必須放在這里重點(diǎn)說在終端里時(shí)刻養(yǎng)成按Tab鍵補(bǔ)全的習(xí)慣。輸入目錄名的前半段按一下Tab系統(tǒng)會自動補(bǔ)全。如果有多個匹配再按兩下Tab會列出候選列表。這不僅能防手滑還能避免因?yàn)榍缅e一個字母導(dǎo)致的各種奇怪報(bào)錯。我觀察過很多新手操作慢的最大原因之一就是全程手打完整路徑又費(fèi)力又容易出錯。真正干活順手的人輸入命令時(shí)都是靠Tab一路點(diǎn)過去的又快又準(zhǔn)。這個習(xí)慣從入門第一天就該養(yǎng)成。說到這里我把這節(jié)內(nèi)容集中成一張速查表方便各位對照參考操作目的常用命令關(guān)鍵注意點(diǎn)查看當(dāng)前位置pwd判斷當(dāng)前在哪個目錄查看目錄內(nèi)容ls/ls -l/ls -a-a能看到隱藏目錄新建單級目錄mkdir dirname目標(biāo)位置必須有寫權(quán)限新建多級目錄mkdir -p a/b/c-p自動補(bǔ)父級目錄新建帶權(quán)限目錄mkdir -m 700 private數(shù)字權(quán)限按讀4寫2執(zhí)行1相加新建空文件touch file.txt文件已存在時(shí)更新時(shí)間戳寫入/覆蓋內(nèi)容echo xx file.txt覆蓋原內(nèi)容不可逆追加內(nèi)容echo xx file.txt保留原內(nèi)容追加編輯文件nano file.txt/vim file.txtnano適合新手vim更通用查看文件內(nèi)容cat file.txt適合短小文本文件遞歸查看整棵樹ls -R dirname目錄層級多時(shí)比較直觀修改文件權(quán)限chmod x file.sh腳本文件通常要加執(zhí)行權(quán)限6. 把這些命令練成本能之后你能走得更遠(yuǎn)很多人以為學(xué)會mkdir和touch就結(jié)束了其實(shí)恰恰相反這兩個基礎(chǔ)操作是你進(jìn)入Linux終端世界的第一道門??邕^這道門之后你會發(fā)現(xiàn)前面學(xué)到的很多東西會繼續(xù)復(fù)用。比如你想寫一個自動化部署腳本第一步一定是判斷目錄是否存在、不存在就mkdir -p創(chuàng)建你要搭建一套日志收集機(jī)制第一步就是touch一個文件作為日志載體你想往系統(tǒng)里添加一個服務(wù)第一步就是建一個專門的應(yīng)用目錄??梢哉f后面所有進(jìn)階操作都會反復(fù)踏足“先建目錄、再建文件、再寫內(nèi)容”這個老三步。順著這個方向我建議你接下來可以逐步接觸這些相關(guān)技能一是相對路徑和絕對路徑的頻繁切換。你會經(jīng)常需要判斷當(dāng)前位置要理解..表示上一級目錄、.表示當(dāng)前目錄以及cd -可以快速回到上一次所在目錄。這套路徑思維是終端高效操作的地基。二是文件和目錄的復(fù)制、移動與刪除。等對文件安全有了足夠認(rèn)識之后學(xué)cp、mv、rm的時(shí)候要格外沉穩(wěn)每一步都確認(rèn)清楚路徑再執(zhí)行。三是查看命令幫助。遇到不認(rèn)識的命令或參數(shù)最高效的求助方式是man 命令名或命令名 --help。這比到處搜索更直接而且能幫你建立自己的知識索引。四是終端復(fù)用工具。等你開始頻繁操作多臺服務(wù)器或者同時(shí)處理多個任務(wù)時(shí)像tmux這樣的終端復(fù)用器會成為效率神器。它能讓你在一個終端窗口里開多個面板一個建目錄一個編輯文件一個看日志互不干擾整個操作流會痛快很多。五是shell腳本的初步編寫。當(dāng)你覺得在終端里手動輸入mkdir、touch、echo越來越熟練時(shí)就可以試著把它們寫進(jìn)一個.sh腳本里用變量、循環(huán)、判斷把它們組織成有邏輯的工作流。到那時(shí)候你已經(jīng)不是“在終端里敲命令”而是“讓終端為你干活”了。我個人在實(shí)際操作中最大的體會是終端操作能力不是背出來的而是在反復(fù)的“敲錯、報(bào)錯、排查、修正”循環(huán)里練出來的。新建目錄和文件作為最初級的操作恰恰是試錯成本最低的練習(xí)場——你隨便建建錯了大不了刪掉重來不存在什么不可恢復(fù)的風(fēng)險(xiǎn)當(dāng)然前提是別碰rm-rf。所以看到這里你在自己的Linux虛擬機(jī)或者云服務(wù)器上找個目錄把上面那些練習(xí)一個一個敲一遍。手敲過一遍的和只是看過的完全不是一個掌握深度。最后再分享一個小技巧當(dāng)你以后在一個陌生的服務(wù)器上不知道目錄結(jié)構(gòu)怎么放的時(shí)候先停手想一想——如果我自己設(shè)計(jì)目錄怎么分層然后大膽地用mkdir -p搭出一個結(jié)構(gòu)來。等你拆解過的項(xiàng)目多了慢慢就會形成“看到需求就能搭出合理目錄結(jié)構(gòu)”的直覺。這個直覺就是從你現(xiàn)在敲下第一句mkdir開始積累的。