Linux中國

每個 Linux 用戶都應該知道的 31 條命令

哪些是最基本Linux命令

經常有讀者問我這個問題,我一直試圖避免回答這個問題。

為什麼呢?我不知道 Linux 命令嗎?不是的。這不是原因。而是因為很難對它們進行分類。對我來說必不可少的東西對你來說可能並不重要。

但我想這適用於所有的東西,我們網站上的每一個這樣的推薦應用程序列表也都是這樣。

這就是為什麼我最終放棄了,並創建了這個基本但重要的 Linux 命令列表,它應該對作為 Linux 用戶的你有所幫助。這更多的是針對 Ubuntu 這樣的桌面用戶,但如果你把 Ubuntu 作為伺服器使用,它們也應該對你有所幫助。

Linux 的基本命令

我在這裡列出的每個命令都有多個選項和多種用途。如果我嘗試給出每個命令的最常見的例子,它將很容易變成一本超過一萬字的口袋書。

我不會詳述這些命令中的任何一個。我將列出每個命令的目的及其基本語法。你可以從這些命令的鏈接教程中閱讀更多關於使用這些命令的信息。

在你開始閱讀列表之前推薦閱讀:

還有一件事。我在這裡更多地使用了文件夾這個術語,而不是目錄

在 Linux 中文件夾被稱為目錄,有些人可能不喜歡這樣。然而,我相信對於初學者來說,這更容易掌握。

1、ls 命令:列出一個文件夾的內容

這是一個新的 Linux 用戶最先學會的幾個命令之一。這個命令可以讓你看到當前文件夾里有哪些文件和文件夾。

ls

你可以使用長列表選項 ls -l 來查看細節,如文件大小、許可權、修改時間等。如果你想,你可以對這些選項進行排序和控制。

ls -l

ls 命令

推薦閱讀:

ls 命令示例

2、cd 命令:改變目錄

默認情況下,你從你的主目錄下開始。你經常需要改變目錄並移動到另一個目錄。

例如,你下載了一個 deb 文件或腳本。現在你想運行它。你可以通過提供完整的路徑從你現在的工作目錄運行它,但是切換到下載的位置會讓事情更簡單。

cd 命令代表「 改變目錄 change directory 」,你可以改變你的位置,移動到另一個目錄。

cd 命令示例

在這一點上,我強烈建議閱讀關於 Linux 中路徑的概念,這樣在 Linux 命令行中瀏覽目錄時,事情就容易理解了。

推薦閱讀:

cd 命令示例

3、cat 命令:讀取一個文本文件

如果你想在 Linux 中快速查看一個文本文件的內容,cat 是你需要使用的命令。它在屏幕上顯示內容。

cat filename

cat 命令示例

你也可以使用 cat 命令來創建新的文件或給現有文件添加更多的文本。

推薦閱讀:

cat 命令的例子

4、less 命令:讀取一個大的文本文件

cat 命令對於查看小的文本文件已經足夠了。但是,如果你有一個有數百行的巨大文本文件,我不建議使用 cat。它將用所有的文本淹沒你的屏幕,而你將很難處理它。

這就是 less 命令有用的地方。當你用 less 打開一個文件時,它會分頁打開文件。你可以向上/向下滾動,尋找文本等等。

用 less 命令閱讀大文件

一旦你讀完了文件,你可以按 Q 鍵退出 less 視圖。你會注意到,屏幕上什麼都沒有顯示。你的屏幕是乾淨的。

推薦閱讀:

less 命令示例

5、touch 命令:創建新文件

在 Linux 終端中,有多種創建新文件的方法。你在上面看到的 cat 命令也可以創建新文件。

然而,我更喜歡用 touch 命令來實現這一目的。

touch new_file_name

touch command ubuntu

如果你對現有的文件使用它,它們的時間戳會被修改。

推薦閱讀:

touch 命令示例

6、mkdir 命令:創建新的文件夾

雖然沒有創建新文件的特定命令,但有一個專門的命令用於創建新的文件夾(或目錄,我們在 Linux 中稱之為「目錄」)。

mkdir new_dir

mkdir 命令示例

推薦閱讀:

mkdir 命令示例

7、cp 命令:複製文件和文件夾

在命令行中複製文件和文件夾也是你會遇到的常見任務之一。cp 命令是「 複製 Copy 」的簡稱,用於這一目的。

想像一下,你必須修改一個配置文件。一個聰明的做法是用另一個名字複製該文件。這樣一來,你就有了一個文件的備份。

cp existing_file.txt existing_file.back

你也可以使用同樣的 cp 命令來複制目錄。為此,你必須指定遞歸選項 -r

cp -r dir another_location

cp 命令示例

推薦閱讀:

cp 命令示例

8、mv 命令:剪貼或重命名文件和文件夾

mv 命令是 「 移動 Move 」 的意思。當你把一個文件複製到另一個地方時,它仍然保留在原來的地方。

mv 命令將文件和文件夾移動到另一個位置。你可以把它看作是一個剪切-粘貼的操作。

mv file.txt /another/location

你也可以使用 mv 命令來重命名文件。

mv file.txt new_file.txt

同樣的 mv 命令也可以移動或重命名文件夾,不需要任何特殊的選項。

mv 命令示例

推薦閱讀:

mv 命令示例

9、rm 命令:刪除文件和文件夾

要在 Linux 終端中刪除文件,你可以使用 rm(「 刪除 Remove 」的縮寫)命令。

rm filename

在命令行中刪除文件後,沒有撤銷選項。這就是為什麼你在刪除文件時要非常小心。如果你害怕刪除錯誤的文件,可以使用選項 -i 的互動式模式,它給你一個額外的提示來確認操作。

rm -i filename

使用遞歸選項 -r,你也可以使用相同的 rm 命令來刪除文件夾。

rm 命令示例

推薦閱讀:

rm 命令示例

10、nano 命令:編輯文件

遲早有一天,你會被要求對一個文件的內容進行修改。想像一下,你必須改變 SSH、Grub 或其他一些應用程序的配置文件。

有一些 基於命令行的 文本編輯器可以達到這個目的。Ubuntu 預裝了 Nano 編輯器,它比 Vim、Emacs 等更容易使用。

如果你好奇它們有什麼不同,請閱讀我們的 Nano vs. Vim 對比 文章。

更容易使用並不意味著和基於 GUI 的文本編輯器一樣舒適。你將不得不使用鍵盤快捷鍵來移動、修改、保存和退出文件。

要用 nano 打開一個新的、未命名的文件,請使用:

nano

要在 nano 中編輯一個現有的文件,請使用:

nano filename

在這兩種情況下,你都應該看到一個類似這樣的界面。

nano 命令示例

要保存(或放棄修改)並退出編輯器界面,請使用 Ctrl+x 鍵。

請參考我之前創建的 nano 初學者指南 來適應它。

11、clear 命令:清除終端屏幕

Nano 感覺很複雜,對嗎?讓我來分享一個簡單的命令。

clear 命令可以清除終端。就是這樣。

clear

你為什麼需要這樣做呢?嗯,如果你的終端屏幕充斥著隨機的東西,而你想做一些新的事情。清理終端就像清理黑板或在你的筆記本上打開一個新頁。

12、ps 命令:檢查和管理進程

ps 命令是用來管理你系統上運行的進程的。每個進程都有一個相關的 ID,稱為 PID,它可以用於各種目的,例如 終止一個進程

~$ ps
    pid tty time cmd
  15358 ?        00:00:00 bash
  15404 ? 00:00:00 ps

這裡,

  • PID:進程 ID
  • TTY:與進程相關的控制終端(現在已經不那麼重要了)
  • TIME:總的 CPU 使用時間
  • CMD:運行該進程的命令名稱

但一個系統不可能只運行兩到三個進程,不是嗎?要查看所有用戶運行的所有進程,請使用:

ps aux

這將給出一個龐大的進程列表和關於它們的更多細節。如果你運行這個命令,現在將是使用 clear 命令的絕佳時機。

進程列表

推薦閱讀:

ps 命令示例

13、top 命令:系統監控

ps 命令給你提供了所有正在運行的進程,而 top 命令給你提供了進程和系統資源消耗的實時視圖。

top

把它看作是 Linux 中任務管理器的終端版本。通過 top 命令,你會看到很多有趣的細節。

我主要使用 top 命令來檢查哪個進程佔用了太多的 CPU 或內存。如果你有興趣做實驗,還有 更好的 top 替代品

top 命令

停止運行的 top 命令,請使用 Ctrl+C 鍵盤快捷鍵。

推薦閱讀:

有效使用 top 命令作為任務管理器

14、lsblk 命令: 列出磁碟和分區

lsblk 命令列出了你系統中所有的塊設備。用非常簡單(技術上不完全準確)的術語來說,它顯示的是磁碟和分區。

~# lsblk
NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
loop0     7:0    0 79.9M  1 loop /snap/lxd/22923
loop1     7:1    0  103M  1 loop /snap/lxd/23541
loop2     7:2    0 63.2M  1 loop /snap/core20/1623
loop3     7:3    0   48M  1 loop /snap/snapd/17336
loop4     7:4    0   48M  1 loop /snap/snapd/17029
loop6     7:6    0 63.2M  1 loop /snap/core20/1634
vda     252:0    0   25G  0 disk 
├─vda1  252:1    0 24.9G  0 part /
├─vda14 252:14   0    4M  0 part 
└─vda15 252:15   0  106M  0 part /boot/efi
vdb     252:16   0  466K  1 disk 
~#

15、fdisk 命令:列出並管理磁碟和分區

另一個類似但更好的命令是 fdisk 命令。它可以讓你操作磁碟的分區。這意味著你可以用這個命令創建新的分區,刪除和調整現有分區的大小。

你還可以用它來列出系統中所有的塊設備,包括 迴環設備

sudo fdisk -l

如果你有許多分區、磁碟和迴環設備(由 Snap 應用程序創建),輸出結果可能是巨大的。我在這裡展示的是輸出的相關部分:

Disk /dev/vda: 25 GiB, 26843545600 bytes, 52428800 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 0B7C796D-51CD-4DD4-962A-7D94B31690E2

Device      Start      End  Sectors  Size Type
/dev/vda1  227328 52428766 52201439 24.9G Linux filesystem
/dev/vda14   2048    10239     8192    4M BIOS boot
/dev/vda15  10240   227327   217088  106M EFI System

16、find 命令:搜索文件

即使作為一個桌面用戶,你也會遇到在 Linux 命令行中搜索文件的情況。

find 命令是一個用於此目的的廣泛而通用的命令。它有 50 多個選項,而你可能永遠不會需要所有的選項。

下面是一個 find 命令的例子,它將給你提供當前目錄中所有以 .txt 擴展名結尾的文件。

find . -type f -name "*.txt"

其他常見的例子包括按大小、修改時間等查找文件。你可以 將 find 與 execxargs 結合起來,對 find 命令的結果採取行動。例如,你可以尋找所有的 .txt 文件並選擇刪除它們。

推薦閱讀:

find 命令示例

17、grep 命令:在文件內容中搜索

find 命令根據文件的名稱和類型來搜索文件。如果你想根據文件的內容進行搜索,你可以使用 grep命令。

因此,與其尋找所有以 .txt 結尾的文件,不如用 grep 尋找所有包含文本 foss 的文件。

grep -ri search_term

grep 命令示例

想學習更多嗎?這裡有一些更多的 grep 命令示例。方便的 grep 速查表 應該可以幫助你。

18、kill 命令:終止進程

暴力不是答案......它是解決方案。

開個玩笑!

如果你有一個行為不端的進程,佔用了太多的系統資源,你可以 找到它,然後終止 它,使用 kill 命令 就行。

sudo kill -9 process_ID_or_Name

正如你在上面的命令中看到的,你需要知道進程 ID(PID)或進程名稱來終止它。你可以使用 pstop 命令來獲得 PID或確切的進程名稱。

ps aux | grep -i 「name of your desired program」

你注意到 grep 命令的使用了嗎?你已經在利用這個列表中提到的命令了。

find kill process

我不知道你怎麼想的,但是當我尋找流氓進程來終止時,我覺得自己就像 《颶風營救》中的連姆·尼森

Taken meme find you kill you

19、history 命令:回頭看看你過去運行了哪些命令

比如,你在幾天前使用了一個特定的 Linux 命令。現在你需要再次運行它,但你不能正確地想起它。

你可以按上下方向鍵。

這對許多 Linux 用戶來說是一個熟悉的場景:這就是 history 命令的作用。

在 Ubuntu 中,你的 Shell 會保存你所運行的命令的歷史。在終端輸入 history,你會看到你過去運行的命令的歷史。

history 命令

你可以選擇從歷史記錄中運行一個條目,使用其編號,像這樣。

!number

但即使是歷史記錄也可能是巨大的,所以(再次)使用 grep 命令來過濾你的搜索詞。

~$ history | grep aux
 1915  ps aux
 1952  ps aux | grep -i spotify
 1955  ps -aux | grep -i calculator
 1957  ps -aux | grep -i calculator
 1959  ps -aux | grep -i calculator
 1970  history | grep aux

還有一種方法可以進入命令歷史並進行搜索。按 Ctrl+R,然後輸入搜索詞。

推薦閱讀:

history 命令示例

20、chmod 命令:改變文件許可權

我強烈建議在這個階段閱讀有關 Linux 文件許可權。這將有助於你更好地理解,而不是盲目地運行 chmod 命令

chmod(「 改變模式 change mode 」)命令是用來改變文件的許可權的。

這個命令最常見的用途是當你想讓一個文件可執行時。有一個Shell腳本?像這樣讓它可執行:

chmod u+x file-executable

還有更多的使用情況,使 chmod成為 Ubuntu 用戶必須知道的命令。

有趣的事實chmod 777 命令為所有用戶提供了所有的許可權。這代表了我們的座右銘是 「讓每個人都能獲得知識」。

21、lshw 命令:獲取硬體細節

在 Linux 中,有大量的命令行 工具可以用來獲取硬體細節 和其他系統信息。

可能預裝在 Ubuntu 上的是 lshw(「 列出硬體 list hardware 」的縮寫)。

現在,默認情況下,它顯示了大量關於所有硬體組件的詳細信息,相信我,這不是很容易理解。

lshw

你可能會感到在這裡使用 grep 的誘惑,但沒有必要這樣做。lshw 的輸出被分成幾類,你可以用它來顯示一類硬體的細節。

想知道你的網路適配器的製造商?使用這個:

lshw -C network

lshw 命令示例

22、sudo 命令:以 root 許可權運行命令

你一定注意到,我在之前討論的一些命令中使用了 sudo 作為前綴。

默認情況下,在 Ubuntu 中,sudo 的配置方式是,它允許你(默認的管理用戶)以 root 許可權運行任何命令。

你被要求輸入一個密碼,而且是你的用戶賬戶密碼。當你輸入密碼時,屏幕上沒有任何顯示。新用戶對此感到困惑,但這是 UNIX/Linux 的預期行為。你輸入密碼並按回車鍵。

使用 sudo 的例子

推薦閱讀:

Ubuntu 中的 root 用戶

23、apt 命令: 安裝、刪除和管理 .deb 包

在 Ubuntu 中,apt 命令被用來管理軟體包。你必須和 sudo 一起使用它,因為這些是管理任務。

要安裝一個軟體包,請使用:

sudo apt install package_name

要刪除一個安裝軟體,請使用:

sudo apt remove package_name

要一次性用所有可升級的軟體包更新你的 Ubuntu 系統:

sudo apt update && sudo apt upgrade

apt update 和 upgrade 的區別 是:update 會刷新軟體包的緩存,而 upgrade 則是實際安裝更新。

apt 命令還有很多內容。你可以閱讀 這個詳細的 apt 命令指南

24、add-apt-repository 命令:添加和刪除 PPA

好吧,這個命令已經不像十年前那麼流行了。你仍然會在這裡和那裡遇到 add-apt-repository 命令。它是用來管理你系統中的 PPA(非官方的、用戶生成的軟體庫)。

在跟隨網路上的教程時,你可能會遇到由三行組成的安裝說明:

sudo add-apt-repository ppa:dr-akulavich/lighttable
sudo apt update
sudo apt install lighttable-installer

第一個命令是添加 PPA(外部資源庫)。你已經熟悉了下面兩條,它們用於更新軟體包緩存和安裝你剛剛添加的 PPA 倉庫提供的軟體。

要刪除一個 PPA,你應該首先刪除你從它那裡安裝的軟體,然後像這樣刪除它:

sudo add-apt-repository -r ppa:dr-akulavich/lighttable

我有一篇 關於 PPA 的完整指南,可以了解關於這個主題的更多細節。

25、snap 命令:安裝、刪除和管理 Snap 包

到目前為止,你知道 apt 軟體包和它們的管理。然而,Ubuntu 也使用並積極推薦使用其 Snap 打包格式。

學習一些基本的 snap 命令將幫助你有效地管理這些軟體包。

要找到一個軟體包,請使用:

snap find search_term

要安裝一個軟體包,請使用:

sudo snap install package_name

要列出已安裝的 Snap 應用程序:

snap list

要刪除一個已安裝的 Snap 應用程序,請使用:

sudo snap remove package_name

26、ip 命令:檢查 IP 地址和其他信息

ip 命令可以讓你 檢查你的 IP 地址。你還可以查看和操作路由、網路設備等。

ip a

ip 地址檢查

27、ping 命令:檢查遠程系統是否可達

ping 是另一個你應該知道的 Linux 網路命令。要檢查一個遠程系統是否可用,把它的 IP 地址給 ping 命令:

ping ip_address

你也可以用它來檢查一個網站是否關閉,儘管現在它不是很準確。

ping command ubuntu

使用 Ctrl+C 來停止運行的 ping 命令。

推薦閱讀:

ping 命令示例

28、ssh 命令:連接到遠程系統

我對把 ssh 添加到必須知道的 Linux 命令列表中持懷疑態度。許多桌面用戶可能不需要它。SSH 被用於從你的終端連接到其他 Linux系統。

ssh user@address_of_remote_system

當然,你需要知道遠程系統的用戶和密碼。

如果你有雲伺服器或家庭設置,其中有其他 Linux 系統,你可以用它從你的主系統連接到它們。

29、scp 命令:在遠程系統之間複製文件

既然我在列表中包括了 ssh,那麼包括一些 通過 SSH 連接在遠程系統之間傳輸文件的命令 才是公平的。

scp 命令的工作原理與你之前看到的 cp 命令差不多。

下面是一個例子,它把文件從遠程系統上的用戶的主目錄複製到你本地登錄系統的當前目錄。

scp user@remote_address:/home/username/filename .

推薦閱讀:

scp 命令示例

30、exit 命令:關閉終端

Linux 的基本命令列表就要結束了。那麼讓我們來談談退出終端的問題。這很簡單。只要輸入

exit

如果你正在使用另一個用戶或 Shell,你就會從那裡註銷。

你也可以使用 Ctrl+D 鍵來退出終端。

31、shutdown 命令:關閉或重啟系統

好了。如果你還沒有退出終端,讓我分享一個最後的命令。

從命令行中 關閉你的系統 怎麼樣?

使用 shutdown 命令 來達到這個目的:

shutdown

上述命令 安排在一分鐘內關機。你可以用以下方法讓它立即關閉:

shutdown -now

你也可以使用同樣的關機命令來 重啟你的 Ubuntu 系統

shutdown -r now

更多:man 命令:詳細了解命令

還有一個,這也是最後一個,我保證。所有的 Linux 系統都有一個命令的手冊。它被稱為手冊頁,你可以通過以下方式訪問已安裝命令的手冊頁:

man command_name

了解手冊頁 對於新用戶來說,可能會讓人不知所措,但它卻很方便。它為你提供了一個命令的通用語法和所有選項的描述。

當你對使用一個命令沒有把握時,可以先查看它的手冊頁,然後再在網上搜索它。

總是有更多……

這只是大約 30 個命令。而且這還不到 Linux 命令的20%。我還沒有涉及很多網路命令。我甚至沒有涉及用戶管理命令。

我在寫這篇文章時,考慮到了普通的 Ubuntu 桌面用戶。這些是你更可能使用的命令。從長遠來看,掌握一些這方面的知識會很有幫助。

除此以外,學習是沒有止境的。即使是最老練的 Linux 用戶也會不斷發現和學習新東西。

考慮到你對學習 Linux 命令感興趣,讓我推薦一些 好的 Linux書籍 和資源。

  • Linux 如何工作:解釋了 Linux 如何工作,而不是命令。
  • William Shotts 的《Linux 命令行》:可以合法地免費下載 PDF 格式的文件。
  • Daniel J Barrett 的《Linux口袋指南》:將 Linux 命令分為不同的類別,並通過小例子進行簡單的解釋。
  • 快速學習 Linux:完全專註於 Linux 命令,有適當的例子和練習。

除此之外,你還可以從 Linux JourneyLinux Handbook 等網站學習。

我知道你已經讀了很久了,但這還不到冰山一角。總有更多的東西需要學習,但也不是說如果你不知道所有的 Linux 命令,你就必須感到痛苦。

沒有人知道所有的東西。

現在,輪到你了。你覺得這份 Linux 命令列表有幫助嗎?

如果你要在其中增加一些命令,會是什麼?評論區是你的

via: https://itsfoss.com/essential-ubuntu-commands/

作者:Abhishek Prakash 選題:lkxed 譯者:wxy 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國

    Linux中國

    DevOps 將去向何方?

    微軟、谷歌、亞馬遜、IBM 和甲骨文如今都在關注云上的 DevOps。這些大公司正在給企業提供 IT 自動化的服務。然而,DevOps 仍然在持續的演進中。DevSecOps、AIOps 和 NoOps 正在成為下一個流行詞。