每個 Linux 用戶都應該知道的 31 條命令
經常有讀者問我這個問題,我一直試圖避免回答這個問題。
為什麼呢?我不知道 Linux 命令嗎?不是的。這不是原因。而是因為很難對它們進行分類。對我來說必不可少的東西對你來說可能並不重要。
但我想這適用於所有的東西,我們網站上的每一個這樣的推薦應用程序列表也都是這樣。
這就是為什麼我最終放棄了,並創建了這個基本但重要的 Linux 命令列表,它應該對作為 Linux 用戶的你有所幫助。這更多的是針對 Ubuntu 這樣的桌面用戶,但如果你把 Ubuntu 作為伺服器使用,它們也應該對你有所幫助。
Linux 的基本命令
我在這裡列出的每個命令都有多個選項和多種用途。如果我嘗試給出每個命令的最常見的例子,它將很容易變成一本超過一萬字的口袋書。
我不會詳述這些命令中的任何一個。我將列出每個命令的目的及其基本語法。你可以從這些命令的鏈接教程中閱讀更多關於使用這些命令的信息。
在你開始閱讀列表之前推薦閱讀:
還有一件事。我在這裡更多地使用了文件夾這個術語,而不是目錄。
在 Linux 中文件夾被稱為目錄,有些人可能不喜歡這樣。然而,我相信對於初學者來說,這更容易掌握。
1、ls 命令:列出一個文件夾的內容
這是一個新的 Linux 用戶最先學會的幾個命令之一。這個命令可以讓你看到當前文件夾里有哪些文件和文件夾。
ls
你可以使用長列表選項 ls -l
來查看細節,如文件大小、許可權、修改時間等。如果你想,你可以對這些選項進行排序和控制。
ls -l
推薦閱讀:
2、cd 命令:改變目錄
默認情況下,你從你的主目錄下開始。你經常需要改變目錄並移動到另一個目錄。
例如,你下載了一個 deb 文件或腳本。現在你想運行它。你可以通過提供完整的路徑從你現在的工作目錄運行它,但是切換到下載的位置會讓事情更簡單。
cd
命令代表「 改變目錄 」,你可以改變你的位置,移動到另一個目錄。
在這一點上,我強烈建議閱讀關於 Linux 中路徑的概念,這樣在 Linux 命令行中瀏覽目錄時,事情就容易理解了。
推薦閱讀:
3、cat 命令:讀取一個文本文件
如果你想在 Linux 中快速查看一個文本文件的內容,cat
是你需要使用的命令。它在屏幕上顯示內容。
cat filename
你也可以使用 cat
命令來創建新的文件或給現有文件添加更多的文本。
推薦閱讀:
4、less 命令:讀取一個大的文本文件
cat
命令對於查看小的文本文件已經足夠了。但是,如果你有一個有數百行的巨大文本文件,我不建議使用 cat
。它將用所有的文本淹沒你的屏幕,而你將很難處理它。
這就是 less
命令有用的地方。當你用 less
打開一個文件時,它會分頁打開文件。你可以向上/向下滾動,尋找文本等等。
一旦你讀完了文件,你可以按 Q
鍵退出 less
視圖。你會注意到,屏幕上什麼都沒有顯示。你的屏幕是乾淨的。
推薦閱讀:
5、touch 命令:創建新文件
在 Linux 終端中,有多種創建新文件的方法。你在上面看到的 cat
命令也可以創建新文件。
然而,我更喜歡用 touch
命令來實現這一目的。
touch new_file_name
如果你對現有的文件使用它,它們的時間戳會被修改。
推薦閱讀:
6、mkdir 命令:創建新的文件夾
雖然沒有創建新文件的特定命令,但有一個專門的命令用於創建新的文件夾(或目錄,我們在 Linux 中稱之為「目錄」)。
mkdir new_dir
推薦閱讀:
7、cp 命令:複製文件和文件夾
在命令行中複製文件和文件夾也是你會遇到的常見任務之一。cp
命令是「 複製 」的簡稱,用於這一目的。
想像一下,你必須修改一個配置文件。一個聰明的做法是用另一個名字複製該文件。這樣一來,你就有了一個文件的備份。
cp existing_file.txt existing_file.back
你也可以使用同樣的 cp
命令來複制目錄。為此,你必須指定遞歸選項 -r
。
cp -r dir another_location
推薦閱讀:
8、mv 命令:剪貼或重命名文件和文件夾
mv
命令是 「 移動 」 的意思。當你把一個文件複製到另一個地方時,它仍然保留在原來的地方。
mv
命令將文件和文件夾移動到另一個位置。你可以把它看作是一個剪切-粘貼的操作。
mv file.txt /another/location
你也可以使用 mv
命令來重命名文件。
mv file.txt new_file.txt
同樣的 mv
命令也可以移動或重命名文件夾,不需要任何特殊的選項。
推薦閱讀:
9、rm 命令:刪除文件和文件夾
要在 Linux 終端中刪除文件,你可以使用 rm
(「 刪除 」的縮寫)命令。
rm filename
在命令行中刪除文件後,沒有撤銷選項。這就是為什麼你在刪除文件時要非常小心。如果你害怕刪除錯誤的文件,可以使用選項 -i
的互動式模式,它給你一個額外的提示來確認操作。
rm -i filename
使用遞歸選項 -r
,你也可以使用相同的 rm
命令來刪除文件夾。
推薦閱讀:
10、nano 命令:編輯文件
遲早有一天,你會被要求對一個文件的內容進行修改。想像一下,你必須改變 SSH、Grub 或其他一些應用程序的配置文件。
有一些 基於命令行的 文本編輯器可以達到這個目的。Ubuntu 預裝了 Nano 編輯器,它比 Vim、Emacs 等更容易使用。
如果你好奇它們有什麼不同,請閱讀我們的 Nano vs. Vim 對比 文章。
更容易使用並不意味著和基於 GUI 的文本編輯器一樣舒適。你將不得不使用鍵盤快捷鍵來移動、修改、保存和退出文件。
要用 nano
打開一個新的、未命名的文件,請使用:
nano
要在 nano 中編輯一個現有的文件,請使用:
nano filename
在這兩種情況下,你都應該看到一個類似這樣的界面。
要保存(或放棄修改)並退出編輯器界面,請使用 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
:進程 IDTTY
:與進程相關的控制終端(現在已經不那麼重要了)TIME
:總的 CPU 使用時間CMD
:運行該進程的命令名稱
但一個系統不可能只運行兩到三個進程,不是嗎?要查看所有用戶運行的所有進程,請使用:
ps aux
這將給出一個龐大的進程列表和關於它們的更多細節。如果你運行這個命令,現在將是使用 clear
命令的絕佳時機。
推薦閱讀:
13、top 命令:系統監控
ps
命令給你提供了所有正在運行的進程,而 top
命令給你提供了進程和系統資源消耗的實時視圖。
top
把它看作是 Linux 中任務管理器的終端版本。通過 top
命令,你會看到很多有趣的細節。
我主要使用 top
命令來檢查哪個進程佔用了太多的 CPU 或內存。如果你有興趣做實驗,還有 更好的 top 替代品。
要 停止運行的 top 命令,請使用 Ctrl+C
鍵盤快捷鍵。
推薦閱讀:
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 與 exec 或 xargs 結合起來,對 find
命令的結果採取行動。例如,你可以尋找所有的 .txt
文件並選擇刪除它們。
推薦閱讀:
17、grep 命令:在文件內容中搜索
find
命令根據文件的名稱和類型來搜索文件。如果你想根據文件的內容進行搜索,你可以使用 grep
命令。
因此,與其尋找所有以 .txt
結尾的文件,不如用 grep
尋找所有包含文本 foss
的文件。
grep -ri search_term
想學習更多嗎?這裡有一些更多的 grep 命令示例。方便的 grep 速查表 應該可以幫助你。
18、kill 命令:終止進程
暴力不是答案......它是解決方案。
開個玩笑!
如果你有一個行為不端的進程,佔用了太多的系統資源,你可以 找到它,然後終止 它,使用 kill 命令 就行。
sudo kill -9 process_ID_or_Name
正如你在上面的命令中看到的,你需要知道進程 ID(PID)或進程名稱來終止它。你可以使用 ps
或 top
命令來獲得 PID或確切的進程名稱。
ps aux | grep -i 「name of your desired program」
你注意到 grep
命令的使用了嗎?你已經在利用這個列表中提到的命令了。
我不知道你怎麼想的,但是當我尋找流氓進程來終止時,我覺得自己就像 《颶風營救》中的連姆·尼森。
19、history 命令:回頭看看你過去運行了哪些命令
比如,你在幾天前使用了一個特定的 Linux 命令。現在你需要再次運行它,但你不能正確地想起它。
你可以按上下方向鍵。
這對許多 Linux 用戶來說是一個熟悉的場景:這就是 history
命令的作用。
在 Ubuntu 中,你的 Shell 會保存你所運行的命令的歷史。在終端輸入 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
,然後輸入搜索詞。
推薦閱讀:
20、chmod 命令:改變文件許可權
我強烈建議在這個階段閱讀有關 Linux 文件許可權。這將有助於你更好地理解,而不是盲目地運行 chmod 命令。
chmod
(「 改變模式 」)命令是用來改變文件的許可權的。
這個命令最常見的用途是當你想讓一個文件可執行時。有一個Shell腳本?像這樣讓它可執行:
chmod u+x file-executable
還有更多的使用情況,使 chmod
成為 Ubuntu 用戶必須知道的命令。
有趣的事實:chmod 777
命令為所有用戶提供了所有的許可權。這代表了我們的座右銘是 「讓每個人都能獲得知識」。
21、lshw 命令:獲取硬體細節
在 Linux 中,有大量的命令行 工具可以用來獲取硬體細節 和其他系統信息。
可能預裝在 Ubuntu 上的是 lshw
(「 列出硬體 」的縮寫)。
現在,默認情況下,它顯示了大量關於所有硬體組件的詳細信息,相信我,這不是很容易理解。
lshw
你可能會感到在這裡使用 grep
的誘惑,但沒有必要這樣做。lshw
的輸出被分成幾類,你可以用它來顯示一類硬體的細節。
想知道你的網路適配器的製造商?使用這個:
lshw -C network
22、sudo 命令:以 root 許可權運行命令
你一定注意到,我在之前討論的一些命令中使用了 sudo
作為前綴。
默認情況下,在 Ubuntu 中,sudo
的配置方式是,它允許你(默認的管理用戶)以 root 許可權運行任何命令。
你被要求輸入一個密碼,而且是你的用戶賬戶密碼。當你輸入密碼時,屏幕上沒有任何顯示。新用戶對此感到困惑,但這是 UNIX/Linux 的預期行為。你輸入密碼並按回車鍵。
推薦閱讀:
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
27、ping 命令:檢查遠程系統是否可達
ping
是另一個你應該知道的 Linux 網路命令。要檢查一個遠程系統是否可用,把它的 IP 地址給 ping
命令:
ping ip_address
你也可以用它來檢查一個網站是否關閉,儘管現在它不是很準確。
使用 Ctrl+C
來停止運行的 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 .
推薦閱讀:
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 Journey 和 Linux Handbook 等網站學習。
我知道你已經讀了很久了,但這還不到冰山一角。總有更多的東西需要學習,但也不是說如果你不知道所有的 Linux 命令,你就必須感到痛苦。
沒有人知道所有的東西。
現在,輪到你了。你覺得這份 Linux 命令列表有幫助嗎?
如果你要在其中增加一些命令,會是什麼?評論區是你的。
via: https://itsfoss.com/essential-ubuntu-commands/
作者:Abhishek Prakash 選題:lkxed 譯者:wxy 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive