SEARCH

linux基礎命令大全 - 掌握Linux核心操作,從入門到精通

歡迎來到linux基礎命令大全!Linux,作為一款強大而穩定的操作系統,無論是伺服器管理、軟體開發,還是日常的個人使用,都扮演著越來越重要的角色。對於初學者而言,掌握Linux命令行(CLI)是邁向精通的第一步。命令行界面雖然初看起來有些高冷,但它卻是高效管理系統、自動化任務以及解決複雜問題的核心工具。

本篇文章旨在為您提供一份詳盡、具體且易於理解的linux基礎命令大全。我們將從最常用的文件與目錄操作開始,逐步深入到文件內容查看、許可權管理、系統信息獲取乃至進程式控制制等核心領域。無論您是Linux新手,還是希望系統性地鞏固基礎知識,這份指南都將是您不可或缺的資源。讓我們一起,通過實踐,徹底掌握這些Linux的「基石」命令吧!


文件與目錄操作:Linux世界的基石

在Linux中,一切皆文件。理解如何創建、查看、移動和刪除文件與目錄,是您使用Linux的第一步。


導航與查看

熟悉當前所處位置以及周圍的文件和目錄,是進行任何操作的前提。


pwd (Print Working Directory)

作用: 顯示當前「工作目錄」的完整路徑。

範例:

pwd

輸出: /home/yourusername/Documents (示例)


ls (List)

作用: 列出指定目錄下的文件和子目錄。這是最常用的命令之一,它能幫助您了解目錄結構。

常用選項:

  • -l (long format): 以長格式顯示文件和目錄的詳細信息,包括許可權、所有者、大小、創建日期等。
  • -a (all): 顯示所有文件和目錄,包括以.開頭的隱藏文件。
  • -h (human readable):-l結合使用,以人類可讀的格式(如KB, MB, GB)顯示文件大小。
  • -F (classify): 在目錄名后添加/,可執行文件后添加*,符號鏈接后添加@等,方便識別文件類型。
  • -R (recursive): 遞歸地列齣子目錄中的內容。

範例:

ls

      列出當前目錄下的非隱藏文件和目錄。

ls -l

      以長格式顯示當前目錄內容。

ls -alh

      顯示所有文件(包括隱藏文件),以長格式和人類可讀的大小顯示。

ls /etc

      列出/etc目錄下的內容。


cd (Change Directory)

作用: 切換當前工作目錄。掌握cd命令是Linux導航的關鍵。

常用用法:

  • cd 目錄名 進入指定目錄。
  • cd .. 返回上一級目錄。
  • cd ~cd (不帶參數): 返回當前用戶的主目錄。
  • cd / 進入根目錄。
  • cd - 返回上次所在的目錄。

範例:

cd Documents

      進入名為Documents的子目錄。

cd ../../

      向上返回兩級目錄。

cd /var/log

      進入/var/log目錄。


創建、刪除與移動

這些命令讓您能夠管理文件和目錄的生命周期。


mkdir (Make Directory)

作用: 創建新的目錄。

常用選項:

  • -p (parents): 遞歸創建目錄,如果父目錄不存在也會一併創建。

範例:

mkdir my_new_folder

      在當前目錄下創建一個名為my_new_folder的目錄。

mkdir -p project/src/main

      創建project目錄,並在其下創建src/main子目錄(如果projectsrc不存在,也會一併創建)。


rmdir (Remove Directory)

作用: 刪除空目錄。請注意,此命令只能刪除空目錄

範例:

rmdir empty_folder

      刪除名為empty_folder的空目錄。

注意: 如果目錄不為空,rmdir會報錯。要刪除非空目錄及其內容,請使用rm -r命令。


touch (Create Empty File / Update Timestamp)

作用: 創建一個空文件,或者更新現有文件的訪問/修改時間戳。

範例:

touch my_file.txt

      如果my_file.txt不存在,則創建一個空的my_file.txt文件;如果存在,則更新其時間戳。


cp (Copy)

作用: 複製文件或目錄。

常用選項:

  • -r-R (recursive): 遞歸複製目錄及其所有內容。
  • -i (interactive): 覆蓋前提示用戶。
  • -v (verbose): 顯示複製過程。

範例:

cp file1.txt file2.txt

      複製file1.txt並將其命名為file2.txt

cp document.pdf ~/backup/

      將document.pdf複製到用戶主目錄下的backup目錄中。

cp -r my_folder /tmp/

      將my_folder目錄及其所有內容複製到/tmp/


mv (Move / Rename)

作用: 移動文件或目錄,也可以用於文件或目錄的重命名。

範例:

mv old_name.txt new_name.txt

      將old_name.txt重命名為new_name.txt

mv report.docx /home/user/reports/

      將report.docx移動到/home/user/reports/目錄。


rm (Remove)

作用: 刪除文件或目錄。這是一個非常強大的命令,請務必謹慎使用,因為刪除的文件通常無法恢復。

常用選項:

  • -r (recursive): 遞歸刪除目錄及其所有內容。
  • -f (force): 強制刪除,不進行任何提示(即使文件是只讀的)。與-r結合使用時尤其危險。
  • -i (interactive): 刪除前進行提示確認。

範例:

rm unwanted_file.txt

      刪除名為unwanted_file.txt的文件。

rm -r useless_folder/

      刪除名為useless_folder的目錄及其所有內容。

rm -rf /path/to/very/important/data/

      !!!極其危險的命令!!! 這將不經提示地強制刪除指定路徑下的所有文件和目錄。


文件內容查看與編輯:探索文件內部

在Linux中,您無需圖形界面即可輕鬆查看和修改文本文件。


查看文件內容


cat (Concatenate and Display)

作用: 連接文件並列印到標準輸出(通常是屏幕)。主要用於查看短小文件的內容。

範例:

cat my_notes.txt

      顯示my_notes.txt文件的全部內容。

cat file1.txt file2.txt > combined.txt

      將file1.txtfile2.txt的內容合併到combined.txt中。


less

作用: 分頁查看文件內容。對於大型文件,lesscat更實用,因為它允許您向上或向下滾動,並且不會一次性載入整個文件。

基本操作:

  • SpacePage Down 向下翻頁。
  • bPage Up 向上翻頁。
  • /關鍵詞 向下搜索關鍵詞。
  • n 繼續下一個搜索結果。
  • N 返回上一個搜索結果。
  • g 跳轉到文件開頭。
  • G 跳轉到文件結尾。
  • q 退出less

範例:

less /var/log/syslog

      分頁查看系統日誌文件。


head

作用: 顯示文件的開頭幾行(默認是前10行)。

常用選項:

  • -n 數字 指定顯示多少行。

範例:

head server_logs.txt

      顯示server_logs.txt的前10行。

head -n 5 important_config.conf

      顯示important_config.conf的前5行。


tail

作用: 顯示文件的末尾幾行(默認是后10行)。在查看實時更新的日誌文件時非常有用。

常用選項:

  • -n 數字 指定顯示多少行。
  • -f (follow): 實時跟蹤文件的新增內容。當文件有新內容寫入時,tail -f會立即顯示出來。

範例:

tail access.log

      顯示access.log的最後10行。

tail -n 20 error.log

      顯示error.log的最後20行。

tail -f /var/log/apache2/access.log

      實時跟蹤Apache訪問日誌,當有新訪問時會立即顯示。按Ctrl+C可退出。


基礎文本編輯


nano (Nano Text Editor)

作用: 一個簡單易用的文本編輯器,非常適合命令行新手。它在屏幕底部會顯示常用的操作快捷鍵。

基本操作:

  • nano 文件名 打開或創建一個文件進行編輯。
  • Ctrl+O 保存文件(Write Out)。
  • Ctrl+X 退出編輯器。
  • Ctrl+K 剪切行。
  • Ctrl+U 粘貼行。

範例:

nano my_config.conf

      使用Nano編輯器打開my_config.conf文件。


許可權管理:保障系統安全

Linux是一個多用戶系統,文件和目錄許可權是其安全機制的核心。理解並能修改許可權至關重要。


理解文件許可權

使用ls -l命令時,您會看到類似-rwxr-xr--的字元串。這代表了文件或目錄的許可權:

  • 第一個字元:文件類型(-表示文件,d表示目錄,l表示符號鏈接等)。
  • 接下來的九個字元:分為三組,每組三個字元。
    1. 所有者(owner)許可權: 第2-4個字元。
    2. 所屬組(group)許可權: 第5-7個字元。
    3. 其他用戶(others)許可權: 第8-10個字元。
  • 每組的三個字元分別代表:
    • r (read): 讀許可權。
    • w (write): 寫許可權。
    • x (execute): 執行許可權(對於目錄意味著可以進入)。
    • - 對應許可權未設置。

許可權也可以用數字(八進位)表示:r=4, w=2, x=1。將每組許可權的數字相加,得到一個三位或四位數字。例如:

  • rwx = 4+2+1 = 7
  • rw- = 4+2+0 = 6
  • r-x = 4+0+1 = 5

所以,-rwxr-xr--對應的數字許可權是754


chmod (Change Mode)

作用: 改變文件或目錄的許可權。

常用用法(數字模式):

  • chmod 755 文件/目錄名 所有者可讀寫執行,組用戶和其他用戶只讀執行。這是常見的目錄許可權設置。
  • chmod 644 文件名 所有者可讀寫,組用戶和其他用戶只讀。這是常見的文本文件許可權設置。

常用用法(符號模式):

  • u 所有者 (user)
  • g 所屬組 (group)
  • o 其他用戶 (others)
  • a 所有用戶 (all)
  • + 添加許可權
  • - 移除許可權
  • = 設置許可權(覆蓋現有許可權)

範例:

chmod 755 script.sh

      將script.sh設置為所有者可讀寫執行,組用戶和其他用戶可讀可執行。

chmod +x my_program

      給my_program添加執行許可權(對所有用戶)。

chmod u=rw,go=r file.txt

      設置file.txt:所有者讀寫,組用戶和其他用戶只讀。


chown (Change Owner)

作用: 改變文件或目錄的所有者和/或所屬組。通常需要sudo許可權才能執行。

範例:

sudo chown newuser file.txt

      將file.txt的所有者改為newuser

sudo chown -R newuser:newgroup my_folder/

      遞歸地將my_folder及其內容的所有者改為newuser,所屬組改為newgroup


sudo (Superuser Do)

作用: 以超級用戶的許可權(root)執行命令。在Linux中,為了系統安全,通常不直接使用root用戶操作,而是通過sudo來臨時提升許可權。

範例:

sudo apt update

      以root許可權更新軟體包列表。

sudo nano /etc/hosts

      以root許可權編輯/etc/hosts文件。

重要提示: 使用sudo時要格外小心,因為您可以執行任何操作,包括損壞系統。


系統信息與進程管理:洞悉系統狀態

了解系統的運行狀況、磁碟使用情況以及管理正在運行的程序(進程)對於系統維護至關重要。


系統信息查看


df (Disk Free)

作用: 顯示文件系統的磁碟空間使用情況。

常用選項:

  • -h (human readable): 以人類可讀的格式(GB, MB等)顯示。

範例:

df -h

      顯示所有掛載的文件系統的磁碟空間使用情況。


du (Disk Usage)

作用: 估算文件或目錄的磁碟空間使用量。

常用選項:

  • -h (human readable): 以人類可讀的格式顯示。
  • -s (summarize): 只顯示總計大小,而不是每個文件/子目錄的詳細列表。

範例:

du -sh my_project/

      顯示my_project/目錄的總大小。

du -h Documents/

      顯示Documents/目錄下所有文件和子目錄的大小。


top

作用: 實時顯示系統中正在運行的進程,以及它們的CPU、內存佔用情況,類似於Windows的任務管理器。

基本操作:

  • q 退出top
  • k 殺死進程(按K后輸入PID,再按回車)。

範例:

top

      啟動top界面。


ps (Process Status)

作用: 顯示當前系統中的進程快照。與top的實時性不同,ps是某個時間點的靜態信息。

常用選項:

  • aux 最常用的組合,顯示所有用戶(a)、包含沒有控制終端的進程(x),並顯示詳細信息(u)。
  • ef 顯示所有進程,並以全格式顯示命令。

範例:

ps aux | grep firefox

      查找所有與Firefox相關的進程(grep用於過濾輸出)。


uname

作用: 顯示系統信息,如內核名稱、主機名、內核版本、操作系統等。

常用選項:

  • -a (all): 顯示所有系統信息。
  • -r 顯示內核版本。
  • -m 顯示硬體架構。

範例:

uname -a

      顯示所有系統信息。


進程管理


kill

作用: 終止一個正在運行的進程。通常通過進程ID(PID)來指定。

常用信號:

  • -9 (SIGKILL): 強制終止進程,不給進程清理資源的機會。慎用。
  • -15 (SIGTERM): 正常終止進程,給進程時間清理資源。默認信號。

範例:

kill 12345

      向PID為12345的進程發送終止信號(SIGTERM)。

kill -9 54321

      強制終止PID為54321的進程。

killall firefox

      終止所有名為firefox的進程。

快捷鍵: 在終端中,可以使用Ctrl+C來中斷當前正在運行的命令或進程。


搜索與幫助:高效定位信息

當您需要查找文件或在文件中查找特定內容時,這些命令會派上用場。


find

作用: 在文件系統中搜索文件和目錄。它功能強大,可以通過各種條件進行搜索。

常用選項:

  • . 在當前目錄及子目錄中搜索。
  • / 在根目錄及所有子目錄中搜索。
  • -name "文件名" 按名稱搜索(支持通配符,如*.txt)。
  • -type d 搜索目錄。
  • -type f 搜索文件。
  • -size +1M 搜索大於1MB的文件。
  • -user 用戶名 搜索屬於指定用戶的文件。

範例:

find . -name "*.log"

      在當前目錄及其子目錄中查找所有以.log結尾的文件。

find /home/user -type f -name "report_*.pdf"

      在/home/user目錄下查找所有以report_開頭且以.pdf結尾的文件。


grep (Global Regular Expression Print)

作用: 在文件中搜索匹配指定模式(通常是文本字元串或正則表達式)的行。

常用選項:

  • -i (ignore case): 忽略大小寫進行搜索。
  • -r (recursive): 遞歸搜索目錄下的所有文件。
  • -n (line number): 顯示匹配行的行號。
  • -l (files with matches): 只顯示包含匹配項的文件名。

範例:

grep "error" /var/log/syslog

      在/var/log/syslog文件中查找所有包含「error」的行。

grep -rni "password" /etc/

      在/etc/目錄下遞歸、不區分大小寫地查找包含「password」的行,並顯示行號。


man (Manual)

作用: 顯示命令的聯機幫助手冊(manual page)。這是學習和理解Linux命令最權威的來源。

基本操作:

  • man 命令名 顯示指定命令的幫助手冊。
  • man頁面中,可以使用Page Up/Page Down或上下箭頭滾動,按/關鍵詞搜索,按q退出。

範例:

man ls

      查看ls命令的幫助手冊。


學習Linux命令的最佳實踐

僅僅了解這些命令還不夠,掌握它們需要持續的練習和正確的學習方法:

  • 多加練習: 理論知識需要通過實踐來鞏固。在虛擬機、Docker容器或雲伺服器上搭建一個Linux環境,放心地進行操作。
  • 利用Tab鍵自動補全: 這是命令行中最實用的功能之一。輸入命令或文件名的前幾個字母,然後按Tab鍵,系統會自動補全或顯示可能的選項。
  • 善用歷史命令: 使用向上/向下箭頭鍵可以瀏覽之前輸入的命令。history命令可以查看您所有輸入過的命令列表。Ctrl+R可以反向搜索歷史命令。
  • 閱讀錯誤信息: 當命令執行失敗時,系統通常會給出錯誤提示。仔細閱讀這些信息,它們往往能指出問題所在。
  • man手冊中學習: man命令是您的最佳伴侶,它提供了最詳細、最準確的命令信息。
  • 從簡單開始,逐步深入: 熟練掌握這些linux基礎命令大全中的命令后,您可以嘗試學習管道(|)、重定向(>, >>, <)、通配符、環境變數以及Shell腳本編程等更高級的主題。


常見問題 (FAQ)


如何記住這麼多Linux命令?

記住所有Linux命令確實具有挑戰性,但您可以通過以下方法提高效率:理解而非死記硬背,掌握命令的邏輯和作用;分類學習,將命令按功能(如文件操作、系統管理)分組;多加實踐,在日常使用中不斷重複使用命令;利用man手冊,不確定時查閱幫助;使用Tab鍵自動補全,減少記憶壓力。


為何我的Linux命令不起作用或顯示「許可權不足」?

這通常是由於許可權問題。您可能正在嘗試修改一個您沒有寫入許可權的文件,或者在沒有足夠許可權的目錄中創建文件。解決方法通常是:使用sudo命令,在命令前加上sudo以超級用戶許可權執行(例如:sudo nano /etc/hosts);檢查文件或目錄的所有者和許可權(使用ls -l),並根據需要使用chmodchown命令進行調整(通常需要sudo許可權來修改這些)。


Linux命令是大小寫敏感的嗎?

是的,Linux命令和文件/目錄名是嚴格區分大小寫的。 例如,cd Documentscd documents是兩個完全不同的命令,如果您有一個名為Documents的文件夾,但輸入了cd documents,系統將提示找不到該目錄。同樣,Ls不是一個有效的命令,必須是ls


Windows和Linux的命令行操作有什麼主要區別?

Windows(CMD/PowerShell)和Linux(Bash/Zsh等)在命令行操作上有顯著區別。語法不同,例如Windows使用dir列出文件,Linux使用ls;Windows使用反斜杠作為路徑分隔符,Linux使用正斜杠/。此外,設計哲學不同,Linux更強調一切皆文件,強大的管道(|)和重定向使得命令組合異常靈活;許可權模型也不同,Linux的許可權系統(rwx、所有者/組/其他)更為精細和安全。學習Linux命令后,您會發現其在自動化和系統管理方面的強大優勢。

通過這份linux基礎命令大全,您已經掌握了進入Linux世界的鑰匙。請記住,學習永無止境,實踐是最好的老師。從現在開始,就打開您的終端,運用這些命令,探索Linux的無限可能吧!祝您學習愉快,在Linux的命令行世界中遨遊!