本文彙總了 Linux 和 Docker 在日常使用中的高頻命令,並對每個命令的組成部分進行詳細解釋,方便理解與查閲。


一、Linux 常用命令

1. 目錄結構與導航

命令

功能與分解説明

示例

pwd


Print Working Directory:打印當前工作目錄的絕對路徑。

pwd

ls -la

List:列出目錄內容。

-l:使用長格式顯示詳細信息(權限、所有者、大小、修改時間)。

-a:顯示所有文件,包括以點.開頭的隱藏文件

ls -la

ll

通常是 ls -l 的命令別名,功能同上。

ll

cd [目錄路徑]

Change Directory:切換工作目錄。

[目錄路徑] 是目標目錄的路徑,可以是絕對路徑(如 /usr/local)或相對路徑(如 ../parent_dir)。

cd /usr/local

常用目錄路徑:

  • /: 根目錄
  • /root: root 用户家目錄
  • /usr/local: 用户自定義軟件安裝目錄

2. 文件與目錄管理

命令

功能與分解説明

示例

mkdir -p [目錄名]

Make DIRectory:創建目錄。

-pParents,遞歸創建路徑中所有不存在的父目錄。

mkdir -pv /a/b/c

rm -rf [文件/目錄]

Remove:刪除文件或目錄。

-r-RRecursive,遞歸刪除目錄及其內容。

-fForce,強制刪除,不提示任何確認信息。

⚠️ 警告:此組合極其危險!rm -rf / 會刪除整個系統,嚴禁執行!

rm -rf temp_dir/

cp [源] [目標]

CoPy:複製文件或目錄。

[源]:源文件或目錄路徑。

[目標]:目標路徑。

-rRecursive,遞歸複製目錄(當源是目錄時必需)。

cp file1.txt /backup/cp -r dir1 /backup/

mv [源] [目標]

MoVe:移動或重命名文件/目錄。

[源]:源文件或目錄路徑。

[目標]:目標路徑(重命名是移動的特例,在同一目錄下操作)。

mv old.txt new.txt

touch [文件名]

創建新的空文件,或更新已有文件的訪問和修改時間戳。

[文件名]:要創建的文件名。

touch app.log

3. 文件查看與編輯

命令

功能與分解説明

示例

cat [文件名]

Catenate:連接文件並打印到標準輸出設備。常用於查看整個文件內容(適合小文件)。

[文件名]:要查看的文件名。

cat config.conf

tail -f [文件名]

Tail:顯示文件的末尾部分。

-fFollow,實時跟蹤文件更新,常用於動態查看日誌。

[文件名]:要跟蹤的文件名。

tail -f app.log

vi/vim [文件名]

使用 Vim 文本編輯器編輯文件。

[文件名]:要編輯的文件名。

vim server.conf

Vim 基礎操作流程:

  1. 輸入 vim filename 打開文件(正常模式)。
  2. i 鍵進入 插入模式 開始編輯文本。
  3. Esc 鍵退出插入模式,返回正常模式
  4. 在正常模式下輸入 :wq 保存並退出,或 :q! 不保存強制退出。

4. 文件壓縮與解壓

主要針對 .tar.gz 格式。

命令

功能與分解説明

示例

tar zcvf [壓縮包名] [目標]

Tape Archive:打包和解包文件。

z:通過 gzip 過濾器進行壓縮/解壓。

cCreate,創建新的歸檔文件。

vVerbose,詳細顯示處理過程。

f:指定File,後面緊跟歸檔文件名。

[壓縮包名]:生成的壓縮包文件名。

[目標]:要打包的文件或目錄。

tar zcvf backup.tar.gz /home/docs

tar zxvf [壓縮包名]

解壓。

z:同上。

x: Extract,從歸檔中解壓文件。

vf:同上。

[壓縮包名]:要解壓的壓縮包文件名。

tar zxvf backup.tar.gz

tar zxvf [壓縮包名] -C [目標路徑]

解壓到指定目錄。

-CChange to directory,解壓前切換到指定目錄。

tar zxvf backup.tar.gz -C /opt/

5. 系統監控與權限

命令

功能與分解説明

示例

chmod 777 [文件/目錄]

Change Mode:修改文件或目錄的權限。

777:用八進制數設置權限,三個數字分別代表:

- 第一個7所有者(User)權限 = 4(讀) + 2(寫) + 1(執行) = 讀+寫+執行

- 第二個7所屬組(Group)權限 = 4+2+1 = 讀+寫+執行

- 第三個7其他用户(Other)權限 = 4+2+1 = 讀+寫+執行

-RRecursive,遞歸修改目錄內所有文件權限。

⚠️ 注意:777權限意味着所有用户都可讀寫執行,存在安全風險,生產環境慎用!

chmod 755 script.shchmod 777 test_file

chmod -R 755 myapp/

權限數字含義:

  • 4 = 讀 (r)
  • 2 = 寫 (w)
  • 1 = 執行 (x)
  • 0 = 無權限
  • 組合示例:7=4+2+1(讀寫執行), 6=4+2(讀寫), 5=4+1(讀執行)

命令

功能與分解説明

示例

chmod 755 [文件/目錄]

Change Mode:修改文件或目錄的權限。

755:用八進制數設置權限(7:用户讀+寫+執行,5:組讀+執行,5:其他讀+執行)。

-RRecursive,遞歸修改目錄內所有文件權限。

chmod 755 start.shchmod -R 755 myapp/

netstat -tunlp | grep [端口]

Network Statistics:顯示網絡狀態。

-tTCP 協議。

-uUDP 協議。

-n:以數字形式顯示地址和端口號。

-l:顯示Listening 狀態的套接字。

-p:顯示佔用該端口的Process 名稱。

| grep [端口]:用管道符將結果傳遞給 grep 進行過濾,只顯示包含指定端口號的行。

netstat -tunlp | grep 8080

ps -ef | grep [進程名]

Process Status:報告當前進程快照。

-e:顯示All 進程(系統V風格為 -e,BSD風格為 -A)。

-fFull format,顯示完整格式信息。

| grep [進程名]:過濾出包含指定進程名的行。

ps -ef | grep java

kill -9 [PID]

向進程發送信號以終止它。

-9:發送 SIGKILL 信號(編號為9),此信號強制進程立即終止,不可被捕獲或忽略。

[PID]:要終止的進程的 Process ID

kill -9 1234

top

Table Of Processes:動態實時查看系統資源使用情況(CPU、內存、進程等)。

top

free -m

顯示系統內存使用情況。

-m:以 Mebibytes (MB) 為單位顯示。

free -m


二、Docker 常用命令

1. 鏡像管理

鏡像是創建容器的模板。

命令

功能與分解説明

示例

docker search [名稱]

從 Docker Hub 等鏡像倉庫搜索鏡像。

[名稱]:要搜索的鏡像名稱關鍵字。

docker search nginx

docker pull [名稱]:[tag]

下載鏡像到本地。

[名稱]:鏡像名稱。

:[tag]:鏡像標籤(版本),默認為 :latest

docker pull nginx:1.25

docker images

列出本地主機上的所有鏡像。

docker images

docker load -i [文件]

從本地 tar 歸檔文件加載鏡像。

-i:指定從 Input 文件(而非標準輸入)讀取。

docker load -i my_image.tar

2. 容器生命週期管理

容器是鏡像的運行實例。

命令

功能與分解説明

示例

docker run [選項] [鏡像]

創建並啓動一個新容器。這是最核心的命令。

(見下方示例)

docker ps

查看正在運行的容器。

docker ps

docker ps -a

查看所有容器(包括已停止的)。

-aAll。

docker ps -a

docker stop/start/restart [容器]

停止/啓動/重啓一個容器。

[容器]:可以是容器名或容器ID。

docker stop my_nginx

docker rm [容器]

刪除一個已停止的容器。

-fForce,強制刪除運行中的容器。

docker rm my_nginxdocker rm -f my_nginx

核心 run 命令選項詳解:

docker run -d --name=mynginx -p 80:80 -v /home/nginx/conf:/etc/nginx/conf.d nginx
  • -dDetached,後台運行容器。
  • --name:為容器指定一個名稱,便於後續管理。
  • -pPort mapping,端口映射,格式為 宿主機端口:容器端口
  • -vVolume mapping,目錄/數據卷掛載,格式為 宿主機目錄:容器內目錄

3. 容器交互與診斷

命令

功能與分解説明

示例

docker exec -it [容器] bash/sh

在正在運行的容器中執行命令。

-i:保持標準輸入(Stdin)打開。

-t:分配一個偽TTY終端。

-it 通常一起使用,提供交互式 Shell。

bash/sh:要在容器內執行的 Shell 程序。

docker exec -it mynginx bash

docker logs [容器]

獲取容器的日誌。

-fFollow,實時跟蹤日誌輸出。

docker logs mynginxdocker logs -f mynginx

docker inspect [容器]

獲取容器/鏡像的底層詳細信息(JSON格式)。

docker inspect mynginx

4. 多容器編排(Docker Compose)

用於定義和運行多容器應用。

命令

功能與分解説明

示例

docker compose up -d

根據 docker-compose.yml 文件創建並啓動所有服務。

-d:在後台運行。

docker compose up -d

docker compose down

停止並刪除所有由 up 創建的容器、網絡、卷等資源。

docker compose down

docker compose stop

停止所有服務,但不刪除資源。

docker compose stop

您觀察得非常仔細!您説得對,在詳細的命令解釋部分,確實沒有包含 chmod 777 的具體解釋和 Dockerfile 的説明。我來為您補充這兩部分內容:


2. Dockerfile - 鏡像構建

概念/命令

功能與分解説明

示例

Dockerfile

用於定義和構建Docker鏡像的文本文件,包含一系列指令。

每條指令都會在鏡像上創建一個新的層。

見下方示例文件

Dockerfile 示例:

# 基礎鏡像
FROM ubuntu:20.04

# 維護者信息
LABEL maintainer="your-email@example.com"

# 設置工作目錄
WORKDIR /app

# 複製文件到鏡像中
COPY . .

# 安裝依賴
RUN apt-get update && apt-get install -y python3

# 暴露端口
EXPOSE 8080

# 設置環境變量
ENV NAME World

# 容器啓動時執行的命令
CMD ["python3", "app.py"]

構建鏡像命令:

docker build -t my-app:1.0 .
  • -t:為鏡像指定標籤名稱
  • .:使用當前目錄下的Dockerfile