Linux基礎命令:作為開發人員,你還不知道嘛?
本文轉載自公眾號“讀芯術”(ID:AI_Discovery)
熟悉終端是一種提高效率的好辦法。別再用鼠標在GUI中點來點去了,你可以使用效率更高的命令行來完成相同的工作。如果想讓命令行用得順手,那么有些命令是必須了解的。這些命令很基本,且很重要。要為命令行的使用打下堅實的基礎,就必須掌握這些命令。
本文適用于想更好地使用Linux命令行的讀者。沒有豐富的命令行經驗也是完全可以讀懂本文的,已經習慣使用Linux命令行的讀者也不必擔心從本文中學不到東西。那么我們開始吧!
1. tail -f
cat命令可以用來查看文件內容。但是在查看時會有更多的選項。cat命令輸出整個文件,這有時是沒必要的。如果只想輸出第一行或最后某行,則可以使用tail或head命令來實現。默認情況下,head命令輸出前10行,tail命令輸出后10行。
tail命令通常用于查看日志文件,這是因為tail命令有一個-f選項,代表“follow”,可以用來查看文件。此選項將在文件內容增多時輸出追加的數據,就可以立即顯示附加到文件中的日志項。
2. scp
scp表示安全復制(secure copy),可以在互聯網的主機間復制文件。使用scp的一種方法是將文件從個人計算機復制到遠程服務器,反之亦然。scp與安全外殼協議(SSH)相互協作。
這個命令非常簡單,工作原理與cp命令類似。唯一的區別是,可以用scp將文件復制到其他主機,而普通的cp命令不可能做到這一點。
- scp [target] [destination]
scp看起來就像熟悉的cp命令。要將文件從服務器復制到個人計算機,必須執行以下操作:
- scp derk@127.0.0.1:/target/file.txt ~/destination
本例中,用戶為“derk”,主機為127.0.0.1。主機地址后跟冒號。冒號后指定需要復制的文件的路徑。第二個參數是destination,在本例中是個人計算機的一個文件夾。該命令的結果是將file.txt從服務器復制到本地計算機的~/destination文件夾。
例如,這很適用于從服務器下載數據庫備份。如果想從個人計算機上傳文件到遠程主機,則需要切換參數。
- scp ~/target/file.txt derk@127.0.0.1:/destination
這個命令將file.txt從個人計算機復制到遠程主機上的destination文件夾。
3. cd -
cd是Linux命令行中使用最頻繁的命令之一。然而,許多開發人員還不知道cd命令附帶的一個很好的選項——連字符。
- cd -
在cd命令后添加連字符可以返回到先前選擇的目錄。下面是實際操作的示例:

4. diff
如果曾經使用過版本控制,那么很可能使用過diff命令。例如,在使用Git時,這個命令可以查看對某個文件所做的更改。
diff命令代表差異(difference),可以逐行比較文件。假設有兩個文件都包含大陸的列表,這些文件之間唯一的區別是大陸的排列順序。

對這兩個文件使用diff命令,將得到以下輸出。同時一定要添加-c選項,它可以輸出上下文模式中的差異,從而使輸出更具有可讀性。

5. locate
locate命令是在計算機上搜索文件的一個非常強大的工具。與find命令相比,locate命令要快得多。之所以這么快,是因為它不讀取文件系統來搜索文件或目錄名,而是引用一個數據庫來查找用戶正在查找的內容,并基于搜索生成相應輸出。
locate命令的語法非常簡單:
- locate [filename]
這個命令的輸出將列出包含指定術語的所有文件,在下面的示例中,搜索的術語是“xml”。

還可以使用正則表達式來搜索完全匹配。用-r選項指定正則表達式。
- locate -r /filename$
6. lsof
lsof命令可以列出所有打開的文件。它的語法很簡單,只需鍵入lsof即可。這個命令無其它選項,列出所有處于活動進程中的打開文件。
這個命令適用于多種情況,其中一種情況是查看哪些進程正在某個端口上運行。為此,必須指定-i選項。下例中,我們要查看哪些進程正在端口22上運行,即SSH的端口。
- lsof -i TCP:22
也可以列出一系列端口。下例列出了端口范圍為20-30中運行的所有進程。
- lsof -i TCP:20-30
最后,lsof命令的輸出可用于終止特定用戶的所有進程——在本例中為derk。
- kill -9 `lsof -t -u derk`
7. history
history命令存儲了從當前終端會話運行的所有其他命令的列表。下圖是history命令輸出的示例:

可以將history命令與grep結合起來,使搜索更加精準。
- history | grep npm
不僅可以使用history命令查看所有已運行的命令。還可以使用history命令再次快速執行其中一個先前執行過的命令。
每當執行history命令時,在每行前面都會顯示一個數字。用感嘆號后跟行號可以再次執行相同的命令。
- !488
回顧之前的例子,上面的命令將再次執行ls -al命令。
8. wget
Wget可以從Web下載文件。下文展示了wget命令的語法,只需要指定要下載的資源即可。在本例中,我們將下載一個隨機圖像。
- wget https://picsum.photos/200
wget采用最簡單的形式,沒有任何選項,它把URL中指定的資源下載到當前目錄中。默認情況下會發現wget命令輸出下載相關的大量細節,例如下載速度和進度條。要關閉輸出,可以使用-q選項。如果想用不同的名稱保存下載的文件,可以使用-0選項,后跟文件的名稱。
- wget -O my-image.jpg https://picsum.photos/200
希望本文介紹的這些命令,可以讓開發人員的生活變得簡單一些。