每個 Linux 用戶都應(yīng)該知道的31條命令
哪些是最基本的 Linux 的命令?
經(jīng)常有讀者問我這個問題,我一直試圖避免回答這個問題。
為什么呢?我不知道 Linux 命令嗎?不是的。這不是原因。而是因?yàn)楹茈y對它們進(jìn)行分類。對我來說必不可少的東西對你來說可能并不重要。
但我想這適用于所有的東西,我們網(wǎng)站上的每一個這樣的推薦應(yīng)用程序列表也都是這樣。
這就是為什么我最終放棄了,并創(chuàng)建了這個基本但重要的 Linux 命令列表,它應(yīng)該對作為 Linux 用戶的你有所幫助。這更多的是針對 Ubuntu 這樣的桌面用戶,但如果你把 Ubuntu 作為服務(wù)器使用,它們也應(yīng)該對你有所幫助。
Linux 的基本命令
我在這里列出的每個命令都有多個選項(xiàng)和多種用途。如果我嘗試給出每個命令的最常見的例子,它將很容易變成一本超過一萬字的口袋書。
我不會詳述這些命令中的任何一個。我將列出每個命令的目的及其基本語法。你可以從這些命令的鏈接教程中閱讀更多關(guān)于使用這些命令的信息。
在你開始閱讀列表之前推薦閱讀:
還有一件事。我在這里更多地使用了文件夾這個術(shù)語,而不是目錄。
??在 Linux 中文件夾被稱為目錄??,有些人可能不喜歡這樣。然而,我相信對于初學(xué)者來說,這更容易掌握。
1、ls 命令:列出一個文件夾的內(nèi)容
這是一個新的 Linux 用戶最先學(xué)會的幾個命令之一。這個命令可以讓你看到當(dāng)前文件夾里有哪些文件和文件夾。
你可以使用長列表選項(xiàng) ??ls -l?
? 來查看細(xì)節(jié),如文件大小、權(quán)限、修改時間等。如果你想,你可以對這些選項(xiàng)進(jìn)行排序和控制。
ls 命令
推薦閱讀:
2、cd 命令:改變目錄
默認(rèn)情況下,你從你的主目錄下開始。你經(jīng)常需要改變目錄并移動到另一個目錄。
例如,你下載了一個 deb 文件或腳本。現(xiàn)在你想運(yùn)行它。你可以通過提供完整的路徑從你現(xiàn)在的工作目錄運(yùn)行它,但是切換到下載的位置會讓事情更簡單。
??cd?
? 命令代表“改變目錄change directory”,你可以改變你的位置,移動到另一個目錄。
cd 命令示例
在這一點(diǎn)上,我強(qiáng)烈建議閱讀關(guān)于 Linux 中路徑的概念,這樣在 Linux 命令行中瀏覽目錄時,事情就容易理解了。
推薦閱讀:
3、cat 命令:讀取一個文本文件
如果你想在 Linux 中快速查看一個文本文件的內(nèi)容,??cat?
? 是你需要使用的命令。它在屏幕上顯示內(nèi)容。
cat 命令示例
你也可以使用 ??cat?
? 命令來創(chuàng)建新的文件或給現(xiàn)有文件添加更多的文本。
推薦閱讀:
4、less 命令:讀取一個大的文本文件
??cat?
? 命令對于查看小的文本文件已經(jīng)足夠了。但是,如果你有一個有數(shù)百行的巨大文本文件,我不建議使用 ??cat?
?。它將用所有的文本淹沒你的屏幕,而你將很難處理它。
這就是 ??less?
? 命令有用的地方。當(dāng)你用 ??less?
? 打開一個文件時,它會分頁打開文件。你可以向上/向下滾動,尋找文本等等。
用 less 命令閱讀大文件
一旦你讀完了文件,你可以按 ??Q?
? 鍵退出 ??less?
? 視圖。你會注意到,屏幕上什么都沒有顯示。你的屏幕是干凈的。
推薦閱讀:
5、touch 命令:創(chuàng)建新文件
在 Linux 終端中,有多種創(chuàng)建新文件的方法。你在上面看到的 ??cat?
? 命令也可以創(chuàng)建新文件。
然而,我更喜歡用 ??touch?
? 命令來實(shí)現(xiàn)這一目的。
touch command ubuntu
如果你對現(xiàn)有的文件使用它,它們的時間戳?xí)恍薷摹?/p>
推薦閱讀:
6、mkdir 命令:創(chuàng)建新的文件夾
雖然沒有創(chuàng)建新文件的特定命令,但有一個專門的命令用于創(chuàng)建新的文件夾(或目錄,我們在 Linux 中稱之為“目錄”)。
mkdir 命令示例
推薦閱讀:
7、cp 命令:復(fù)制文件和文件夾
在命令行中復(fù)制文件和文件夾也是你會遇到的常見任務(wù)之一。??cp?
? 命令是“復(fù)制Copy”的簡稱,用于這一目的。
想象一下,你必須修改一個配置文件。一個聰明的做法是用另一個名字復(fù)制該文件。這樣一來,你就有了一個文件的備份。
你也可以使用同樣的 ??cp?
? 命令來復(fù)制目錄。為此,你必須指定遞歸選項(xiàng) ??-r?
?。
cp 命令示例
推薦閱讀:
8、mv 命令:剪貼或重命名文件和文件夾
??mv?
? 命令是 “移動Move” 的意思。當(dāng)你把一個文件復(fù)制到另一個地方時,它仍然保留在原來的地方。
??mv?
? 命令將文件和文件夾移動到另一個位置。你可以把它看作是一個剪切-粘貼的操作。
你也可以使用 ??mv?
? 命令來重命名文件。
同樣的 ??mv?
? 命令也可以移動或重命名文件夾,不需要任何特殊的選項(xiàng)。
mv 命令示例
推薦閱讀:
9、rm 命令:刪除文件和文件夾
要在 Linux 終端中刪除文件,你可以使用 ??rm?
?(“刪除Remove”的縮寫)命令。
在命令行中刪除文件后,沒有撤銷選項(xiàng)。這就是為什么你在刪除文件時要非常小心。如果你害怕刪除錯誤的文件,可以使用選項(xiàng) ??-i?
? 的交互式模式,它給你一個額外的提示來確認(rèn)操作。
使用遞歸選項(xiàng) ??-r?
?,你也可以使用相同的 ??rm?
? 命令來刪除文件夾。
rm 命令示例
推薦閱讀:
10、nano 命令:編輯文件
遲早有一天,你會被要求對一個文件的內(nèi)容進(jìn)行修改。想象一下,你必須改變 SSH、Grub 或其他一些應(yīng)用程序的配置文件。
有一些 ??基于命令行的?? 文本編輯器可以達(dá)到這個目的。Ubuntu 預(yù)裝了 Nano 編輯器,它比 Vim、Emacs 等更容易使用。
如果你好奇它們有什么不同,請閱讀我們的 ??Nano vs. Vim 對比?? 文章。
更容易使用并不意味著和基于 GUI 的文本編輯器一樣舒適。你將不得不使用鍵盤快捷鍵來移動、修改、保存和退出文件。
要用 ??nano?
? 打開一個新的、未命名的文件,請使用:
要在 nano 中編輯一個現(xiàn)有的文件,請使用:
在這兩種情況下,你都應(yīng)該看到一個類似這樣的界面。
nano 命令示例
要保存(或放棄修改)并退出編輯器界面,請使用 ??Ctrl+x?
? 鍵。
請參考我之前創(chuàng)建的 ??nano 初學(xué)者指南?? 來適應(yīng)它。
11、clear 命令:清除終端屏幕
Nano 感覺很復(fù)雜,對嗎?讓我來分享一個簡單的命令。
??clear?
? 命令可以清除終端。就是這樣。
你為什么需要這樣做呢?嗯,如果你的終端屏幕充斥著隨機(jī)的東西,而你想做一些新的事情。清理終端就像清理黑板或在你的筆記本上打開一個新頁。
12、ps 命令:檢查和管理進(jìn)程
??ps?
? 命令是用來管理你系統(tǒng)上運(yùn)行的進(jìn)程的。每個進(jìn)程都有一個相關(guān)的 ID,稱為 PID,它可以用于各種目的,例如 ??終止一個進(jìn)程??。
這里,
- ?
?PID?
?:進(jìn)程 ID - ?
?TTY?
?:與進(jìn)程相關(guān)的控制終端(現(xiàn)在已經(jīng)不那么重要了) - ?
?TIME?
?:總的 CPU 使用時間 - ?
?CMD?
?:運(yùn)行該進(jìn)程的命令名稱
但一個系統(tǒng)不可能只運(yùn)行兩到三個進(jìn)程,不是嗎?要查看所有用戶運(yùn)行的所有進(jìn)程,請使用:
這將給出一個龐大的進(jìn)程列表和關(guān)于它們的更多細(xì)節(jié)。如果你運(yùn)行這個命令,現(xiàn)在將是使用 ??clear?
? 命令的絕佳時機(jī)。
進(jìn)程列表
推薦閱讀:
13、top 命令:系統(tǒng)監(jiān)控
??ps?
? 命令給你提供了所有正在運(yùn)行的進(jìn)程,而 ??top?
? 命令給你提供了進(jìn)程和系統(tǒng)資源消耗的實(shí)時視圖。
把它看作是 Linux 中任務(wù)管理器的終端版本。通過 ??top?
? 命令,你會看到很多有趣的細(xì)節(jié)。
我主要使用 ??top?
? 命令來檢查哪個進(jìn)程占用了太多的 CPU 或內(nèi)存。如果你有興趣做實(shí)驗(yàn),還有 ??更好的 top 替代品??。
top 命令
要 ??停止運(yùn)行的 top 命令???,請使用 ??Ctrl+C?
? 鍵盤快捷鍵。
推薦閱讀:
14、lsblk 命令: 列出磁盤和分區(qū)
??lsblk?
? 命令列出了你系統(tǒng)中所有的塊設(shè)備。用非常簡單(技術(shù)上不完全準(zhǔn)確)的術(shù)語來說,它顯示的是磁盤和分區(qū)。
15、fdisk 命令:列出并管理磁盤和分區(qū)
另一個類似但更好的命令是 ??fdisk?
? 命令。它可以讓你操作磁盤的分區(qū)。這意味著你可以用這個命令創(chuàng)建新的分區(qū),刪除和調(diào)整現(xiàn)有分區(qū)的大小。
你還可以用它來列出系統(tǒng)中所有的塊設(shè)備,包括 ??回環(huán)設(shè)備??。
如果你有許多分區(qū)、磁盤和回環(huán)設(shè)備(由 Snap 應(yīng)用程序創(chuàng)建),輸出結(jié)果可能是巨大的。我在這里展示的是輸出的相關(guān)部分:
16、find 命令:搜索文件
即使作為一個桌面用戶,你也會遇到在 Linux 命令行中搜索文件的情況。
??find?
? 命令是一個用于此目的的廣泛而通用的命令。它有 50 多個選項(xiàng),而你可能永遠(yuǎn)不會需要所有的選項(xiàng)。
下面是一個 ??find?
? 命令的例子,它將給你提供當(dāng)前目錄中所有以 ??.txt?
? 擴(kuò)展名結(jié)尾的文件。
其他常見的例子包括按大小、修改時間等查找文件。你可以 ??將 find 與 exec?? 或 ??xargs?? 結(jié)合起來,對 ??find?
? 命令的結(jié)果采取行動。例如,你可以尋找所有的 ??.txt?
? 文件并選擇刪除它們。
推薦閱讀:
17、grep 命令:在文件內(nèi)容中搜索
??find?
? 命令根據(jù)文件的名稱和類型來搜索文件。如果你想根據(jù)文件的內(nèi)容進(jìn)行搜索,你可以使用 ??grep?
?命令。
因此,與其尋找所有以 ??.txt?
? 結(jié)尾的文件,不如用 ??grep?
? 尋找所有包含文本 ??foss?
? 的文件。
grep 命令示例
想學(xué)習(xí)更多嗎?這里有一些更多的 ??grep 命令示例??。方便的 ??grep 速查表?? 應(yīng)該可以幫助你。
18、kill 命令:終止進(jìn)程
暴力不是答案......它是解決方案。
開個玩笑!
如果你有一個行為不端的進(jìn)程,占用了太多的系統(tǒng)資源,你可以 ??找到它,然后終止?? 它,??使用 kill 命令?? 就行。
正如你在上面的命令中看到的,你需要知道進(jìn)程 ID(PID)或進(jìn)程名稱來終止它。你可以使用 ??ps?
? 或 ??top?
? 命令來獲得 PID或確切的進(jìn)程名稱。
你注意到 ??grep?
? 命令的使用了嗎?你已經(jīng)在利用這個列表中提到的命令了。
find kill process
我不知道你怎么想的,但是當(dāng)我尋找流氓進(jìn)程來終止時,我覺得自己就像 ??《颶風(fēng)營救》中的連姆·尼森??。
Taken meme find you kill you
19、history 命令:回頭看看你過去運(yùn)行了哪些命令
比如,你在幾天前使用了一個特定的 Linux 命令。現(xiàn)在你需要再次運(yùn)行它,但你不能正確地想起它。
你可以按上下方向鍵。
這對許多 Linux 用戶來說是一個熟悉的場景:這就是 ??history?
? 命令的作用。
在 Ubuntu 中,你的 Shell 會保存你所運(yùn)行的命令的歷史。在終端輸入 ??history?
?,你會看到你過去運(yùn)行的命令的歷史。
history 命令
你可以選擇從歷史記錄中運(yùn)行一個條目,使用其編號,像這樣。
但即使是歷史記錄也可能是巨大的,所以(再次)使用 ??grep?
? 命令來過濾你的搜索詞。
還有一種方法可以進(jìn)入命令歷史并進(jìn)行搜索。按 ??Ctrl+R?
?,然后輸入搜索詞。
推薦閱讀:
20、chmod 命令:改變文件權(quán)限
我強(qiáng)烈建議在這個階段閱讀有關(guān) ??Linux 文件權(quán)限??。這將有助于你更好地理解,而不是盲目地運(yùn)行 ??chmod 命令??。
??chmod?
?(“改變模式change mode”)命令是用來改變文件的權(quán)限的。
這個命令最常見的用途是當(dāng)你想讓一個文件可執(zhí)行時。有一個Shell腳本?像這樣讓它可執(zhí)行:
還有更多的使用情況,使 ??chmod?
?成為 Ubuntu 用戶必須知道的命令。
有趣的事實(shí):??chmod 777?
? 命令為所有用戶提供了所有的權(quán)限。這代表了我們的座右銘是 “讓每個人都能獲得知識”。
21、lshw 命令:獲取硬件細(xì)節(jié)
在 Linux 中,有大量的命令行 ??工具可以用來獲取硬件細(xì)節(jié)?? 和其他系統(tǒng)信息。
可能預(yù)裝在 Ubuntu 上的是 ??lshw?
?(“列出硬件list hardware”的縮寫)。
現(xiàn)在,默認(rèn)情況下,它顯示了大量關(guān)于所有硬件組件的詳細(xì)信息,相信我,這不是很容易理解。
你可能會感到在這里使用 ??grep?
? 的誘惑,但沒有必要這樣做。??lshw?
? 的輸出被分成幾類,你可以用它來顯示一類硬件的細(xì)節(jié)。
??想知道你的網(wǎng)絡(luò)適配器的制造商???使用這個:
lshw 命令示例
22、sudo 命令:以 root 權(quán)限運(yùn)行命令
你一定注意到,我在之前討論的一些命令中使用了 ??sudo?
? 作為前綴。
默認(rèn)情況下,在 Ubuntu 中,??sudo?
? 的配置方式是,它允許你(默認(rèn)的管理用戶)以 root 權(quán)限運(yùn)行任何命令。
你被要求輸入一個密碼,而且是你的用戶賬戶密碼。當(dāng)你輸入密碼時,屏幕上沒有任何顯示。新用戶對此感到困惑,但這是 UNIX/Linux 的預(yù)期行為。你輸入密碼并按回車鍵。
使用 sudo 的例子
推薦閱讀:
23、apt 命令: 安裝、刪除和管理 .deb 包
在 Ubuntu 中,??apt?
? 命令被用來管理軟件包。你必須和 ??sudo?
? 一起使用它,因?yàn)檫@些是管理任務(wù)。
要安裝一個軟件包,請使用:
要刪除一個安裝軟件,請使用:
要一次性用所有可升級的軟件包更新你的 Ubuntu 系統(tǒng):
??apt update 和 upgrade 的區(qū)別?? 是:??update?
? 會刷新軟件包的緩存,而 ??upgrade?
? 則是實(shí)際安裝更新。
??apt?
? 命令還有很多內(nèi)容。你可以閱讀 ??這個詳細(xì)的 apt 命令指南??。
24、add-apt-repository 命令:添加和刪除 PPA
好吧,這個命令已經(jīng)不像十年前那么流行了。你仍然會在這里和那里遇到 ??add-apt-repository 命令??。它是用來管理你系統(tǒng)中的 PPA(非官方的、用戶生成的軟件庫)。
在跟隨網(wǎng)絡(luò)上的教程時,你可能會遇到由三行組成的安裝說明:
第一個命令是添加 PPA(外部資源庫)。你已經(jīng)熟悉了下面兩條,它們用于更新軟件包緩存和安裝你剛剛添加的 PPA 倉庫提供的軟件。
要刪除一個 PPA,你應(yīng)該首先刪除你從它那里安裝的軟件,然后像這樣刪除它:
我有一篇 ??關(guān)于 PPA 的完整指南??,可以了解關(guān)于這個主題的更多細(xì)節(jié)。
25、snap 命令:安裝、刪除和管理 Snap 包
到目前為止,你知道 apt 軟件包和它們的管理。然而,Ubuntu 也使用并積極推薦使用其 Snap 打包格式。
學(xué)習(xí)一些基本的 ??snap?
? 命令將幫助你有效地管理這些軟件包。
要找到一個軟件包,請使用:
要安裝一個軟件包,請使用:
要列出已安裝的 Snap 應(yīng)用程序:
要刪除一個已安裝的 Snap 應(yīng)用程序,請使用:
26、ip 命令:檢查 IP 地址和其他信息
??ip?
? 命令可以讓你 ??檢查你的 IP 地址??。你還可以查看和操作路由、網(wǎng)絡(luò)設(shè)備等。
ip 地址檢查
27、ping 命令:檢查遠(yuǎn)程系統(tǒng)是否可達(dá)
??ping?
? 是另一個你應(yīng)該知道的 ??Linux 網(wǎng)絡(luò)命令??。要檢查一個遠(yuǎn)程系統(tǒng)是否可用,把它的 IP 地址給 ??ping?
? 命令:
你也可以用它來檢查一個網(wǎng)站是否關(guān)閉,盡管現(xiàn)在它不是很準(zhǔn)確。
ping command ubuntu
使用 ??Ctrl+C?
? 來停止運(yùn)行的 ??ping?
? 命令。
推薦閱讀:
28、ssh 命令:連接到遠(yuǎn)程系統(tǒng)
我對把 ??ssh?
? 添加到必須知道的 Linux 命令列表中持懷疑態(tài)度。許多桌面用戶可能不需要它。SSH 被用于從你的終端連接到其他 Linux系統(tǒng)。
當(dāng)然,你需要知道遠(yuǎn)程系統(tǒng)的用戶和密碼。
如果你有云服務(wù)器或家庭設(shè)置,其中有其他 Linux 系統(tǒng),你可以用它從你的主系統(tǒng)連接到它們。
29、scp 命令:在遠(yuǎn)程系統(tǒng)之間復(fù)制文件
既然我在列表中包括了 ??ssh?
?,那么包括一些 ??通過 SSH 連接在遠(yuǎn)程系統(tǒng)之間傳輸文件的命令?? 才是公平的。
??scp?
? 命令的工作原理與你之前看到的 ??cp?
? 命令差不多。
下面是一個例子,它把文件從遠(yuǎn)程系統(tǒng)上的用戶的主目錄復(fù)制到你本地登錄系統(tǒng)的當(dāng)前目錄。
推薦閱讀:
30、exit 命令:關(guān)閉終端
Linux 的基本命令列表就要結(jié)束了。那么讓我們來談?wù)勍顺鼋K端的問題。這很簡單。只要輸入
如果你正在使用另一個用戶或 Shell,你就會從那里注銷。
你也可以使用 ??Ctrl+D?
? 鍵來退出終端。
31、shutdown 命令:關(guān)閉或重啟系統(tǒng)
好了。如果你還沒有退出終端,讓我分享一個最后的命令。
從命令行中 ??關(guān)閉你的系統(tǒng)?? 怎么樣?
??使用 shutdown 命令?? 來達(dá)到這個目的:
上述命令 ??安排在一分鐘內(nèi)關(guān)機(jī)??。你可以用以下方法讓它立即關(guān)閉:
你也可以使用同樣的關(guān)機(jī)命令來 ??重啟你的 Ubuntu 系統(tǒng)??。
更多:man 命令:詳細(xì)了解命令
還有一個,這也是最后一個,我保證。所有的 Linux 系統(tǒng)都有一個命令的手冊。它被稱為手冊頁,你可以通過以下方式訪問已安裝命令的手冊頁:
??了解手冊頁?? 對于新用戶來說,可能會讓人不知所措,但它卻很方便。它為你提供了一個命令的通用語法和所有選項(xiàng)的描述。
當(dāng)你對使用一個命令沒有把握時,可以先查看它的手冊頁,然后再在網(wǎng)上搜索它。
總是有更多……
這只是大約 30 個命令。而且這還不到 Linux 命令的20%。我還沒有涉及很多網(wǎng)絡(luò)命令。我甚至沒有涉及用戶管理命令。
我在寫這篇文章時,考慮到了普通的 Ubuntu 桌面用戶。這些是你更可能使用的命令。從長遠(yuǎn)來看,掌握一些這方面的知識會很有幫助。
除此以外,學(xué)習(xí)是沒有止境的。即使是最老練的 Linux 用戶也會不斷發(fā)現(xiàn)和學(xué)習(xí)新東西。
考慮到你對學(xué)習(xí) Linux 命令感興趣,讓我推薦一些 ??好的 Linux書籍?? 和資源。
- ??Linux 如何工作??:解釋了 Linux 如何工作,而不是命令。
- William Shotts 的《??Linux 命令行??》:可以合法地免費(fèi)下載 PDF 格式的文件。
- Daniel J Barrett 的《??Linux口袋指南??》:將 Linux 命令分為不同的類別,并通過小例子進(jìn)行簡單的解釋。
- ??快速學(xué)習(xí) Linux??:完全專注于 Linux 命令,有適當(dāng)?shù)睦雍途毩?xí)。
除此之外,你還可以從 ??Linux Journey?? 和 ??Linux Handbook?? 等網(wǎng)站學(xué)習(xí)。
我知道你已經(jīng)讀了很久了,但這還不到冰山一角。總有更多的東西需要學(xué)習(xí),但也不是說如果你不知道所有的 Linux 命令,你就必須感到痛苦。
沒有人知道所有的東西。
現(xiàn)在,輪到你了。你覺得這份 Linux 命令列表有幫助嗎?
如果你要在其中增加一些命令,會是什么?