全文共2609字,預計學習時長7分鐘
圖源:unsplash
熟悉終端是一種提高效率的好辦法。別再用滑鼠在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
希望本文介紹的這些命令,可以讓開發人員的生活變得簡單一些。
留言點讚關注
我們一起分享AI學習與發展的乾貨
如轉載,請後臺留言,遵守轉載規範
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺「網易號」用戶上傳並發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.