C
cal [OPTION] # 日曆, 不加選項預設顯示本月日曆
e.g., cal 2024 # 顯示2024年的日曆
cat [OPTION] file_name # 檢視檔案
e.g., cat -n /home/lsl/test.txt | more # 檢視檔案內容並 顯示行號 分頁進行展示(敲擊空格至下一頁)
cd [OPTION] # 切換到指定目錄
chgrp new_group file_name # 把檔案所在組改為指定組
chgrp -R group_mini project # 遞迴修改project資料夾下的檔案組為group_mini
chown [OPTION]... [new_owner:new_group] file_name... # 將檔案所有者修改為指定使用者
e.g.:
- chown lsl # 將檔案test.txt所有者修改為lsl
- chown u=rwx,g=rx,o=x /home/lsl/test.txt
等價於 chown 751 /home/lsl/test.txt
# 對檔案test.txt, 授權 檔案所有者 讀寫執行, 檔案所在組成員 讀執行, 其他組使用者 執行 的許可權
cp [OPTION] source dest # 複製
e.g.:
- \cp -r /home/lsl/dir1 /home/lsl/dir2 # 遞迴複製 dir1目錄內容到dir2目錄下, 遇到衝突時進行強制覆蓋, 無需確認
curl [OPTION] url # 傳送HTTP請求
opt desc:
- X 指定請求方式
- v 顯示響應結果
- u 攜帶使用者名稱/密碼
- H 攜帶請求訊息頭資訊
D
date [OPTION] # 顯示當前時間
e.g., date "+%Y-%m-%d %H:%M:%S" # 按指定格式顯示當前時間
docker volume ls # 檢視宿主機所有卷情況, 匿名掛載的volume name
docker images
docker login -u username -p password
docker rm -f $(docker ps -aq) # 強制刪除 所有 執行過/正在執行 的的docker容器
docker network [OPTIONS]# 檢視docker存在容器間網路資訊
docekr network ls
docekr network inspect NETWORK_I
docker history DOCKER_CONTAINER_NAME:TAG / DOCKER_CONTAINER_ID 檢視映象歷史變更記錄
docker run -f dockerfile訪問路徑 -t DOCKER_CONTAINER_NAME:TAG / DOCKER_CONTAINER_ID # 透過映象生成容器, 不使用 -f 指定 則 預設從當前資料夾下尋找名稱為Dockerfile的檔案作為dockerfile
E
echo [OPTION] content # 輸出變數/常量內容到控制檯
F
find search_scope [OPTION] # 從指定目錄向下遞迴遍歷其各個子目錄, 將滿足條件的檔案或目錄 顯示在終端
e.g., find /home -user lsl -size +5M -name '*_lsl.txt' # 檢視home目錄下 屬於lsl的 小於超過5M 的 名稱滿足 *_lsl 的檔案
G
grep [OPTION] # 查詢的原始檔內容
e.g., cat /home/lsl/test.txt | grep -ni aa # 查詢檔案test.txt中aa字串, 顯示行號, 並且忽略大小寫
groupadd groupname # 新增組
groupdel groupname # 刪除組
gpasswd [OPTION] username groupname # 操作使用者與組間關係
gzip [OPTION]... [FILE]... # 壓縮單個檔案, 將檔案壓縮為*.gz檔案存放在原檔案所在目錄, 壓縮成功後會把原始檔刪除
gzip /home/lsl/test.txt # 壓縮, 生成test.txt.gz
gunzip [OPTION]... [FILE]... # 解壓檔案, 解壓後刪除原檔案
H
head [OPTION] file_name 查問檔案內容(預設顯示頭10行)
e.g., head -n 5 test.txt # 檢視檔案頭5行內容
help [OPTION] # 幫助指令
I
id username # 檢視使用者資訊
K
kill [OPTION] process_id # 終止程序, -9 代表強制停止
L
less file_name # 顯示終端, 不是一次性讀取檔案, 而是根據需要載入內容
shortcut key:
- space/pagedown 向下翻一頁
- pageup 向下翻一行
- /string 向下搜尋string(n:向下; N:向上)
- ?string 向上搜尋string(n:向下; N:向上)
- q 離開less
locate file_name # 在整個系統中定位檔案路徑, 需要事先建立 系統中所有檔名稱及路徑的locate資料庫
e.g.:
- updatedb
locate file1_lsl.txt # 查詢檔名為file1_lsl.txt的檔案
ls [OPTION] directory/file
e.g.:
- ls -la # 以列表形式 顯示當前目錄下 所有檔案和目錄
- ls -l
[root@localhost /]# ls -l
總用量 20
lrwxrwxrwx. 1 root root 7 7月 25 08:43 bin -> usr/bin
dr-xr-xr-x. 5 root root 4096 8月 3 20:09 boot
drwxr-xr-x. 20 root root 3240 8月 7 07:48 dev
drwxr-xr-x. 77 root root 8192 8月 7 07:48 etc
drwxr-xr-x. 3 root root 17 7月 25 08:49 home
lrwxrwxrwx. 1 root root 7 7月 25 08:43 lib -> usr/lib
lrwxrwxrwx. 1 root root 9 7月 25 08:43 lib64 -> usr/lib64
drwxr-xr-x. 2 root root 6 4月 11 2018 media
drwxr-xr-x. 3 root root 18 8月 2 13:03 mnt
drwxr-xr-x. 3 root root 24 8月 4 00:57 opt
dr-xr-xr-x. 126 root root 0 8月 7 07:48 proc
dr-xr-x---. 3 root root 169 8月 5 10:27 root
drwxr-xr-x. 26 root root 780 8月 7 07:48 run
lrwxrwxrwx. 1 root root 8 7月 25 08:43 sbin -> usr/sbin
drwxr-xr-x. 2 root root 6 4月 11 2018 srv
dr-xr-xr-x. 13 root root 0 8月 7 07:48 sys
[root@localhost /]# :<<'END'
> 輸出解析:
> 以 dr-xr-xr-x. 5 root root 4096 8月 3 20:09 boot 為例:
> d => 檔案型別 -普通檔案; d目錄; l軟連線; c字元裝置(滑鼠、鍵盤、...); b塊檔案(硬碟...)
> r-x => 檔案所有者許可權
> r-x => 檔案所在組使用者許可權
> r-x => 其他組使用者許可權
> 5 => 檔案: 表示硬連結數, 為1; 目錄: 表示該目錄下子目錄數量 \
> root => 檔案所有者名稱
> root => 檔案所在組名稱
> 4096 => 檔案: 表示檔案大小(單位: 位元組); 目錄: 4096
> 8月 3 20:09 => 檔案最後修改時間
> boot => 檔名稱
> END
M
man [OPTION] # 幫助指令
mkdir [OPTION] directory
e.g., mkdir -p /home/lsl/tmp20240806 # 遞迴建立多級目錄
mv old_file_name new_file_name # 不存在=>重新命名 / 存在=>移動檔案
e.g.:
- mv test.txt /home/lsl/tmp20240806 # 移動檔案test.txt至/home/lsl/tmp20240806
- mv dir3 dir4 # dir4不存在, 則將檔案dir3重新命名為dir4; dir4存在, 則將檔案dir3移動至dir4下
more file_name # 基於VI編輯器的文字過濾器, 以全螢幕的方式按頁顯示文字檔案的內容
shortcut key:
- space 向下翻一頁
- enter 向下翻一行
- q 立刻離開more, 不再顯示該檔案內容
- ctrl + f 向下滾動一屏
- ctrl + b 返回上一屏
- = 輸出當前行的行號
- :f 輸出檔名和當前行的行號
N
netstat [OPTION] # 檢視系統網路服務情況
e.g., netstat -anp | grep sshd # 按照一定三個月西班牙排列輸出 程序呼叫, 以檢視網路服務sshd的狀態
P
pwd # 顯示當前目錄路徑
ps [OPTION] # 檢視系統執行程序
e.g., ps -aux # 顯示當前執行程序資訊
[root@localhost /]# ps -aux # 顯示當前執行程序資訊
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 128040 6688 ? Ss 07:48 0:01 /usr/lib/systemd/systemd --swi
root 2 0.0 0.0 0 0 ? S 07:48 0:00 [kthreadd]
root 4 0.0 0.0 0 0 ? S< 07:48 0:00 [kworker/0:0H]
root 5 0.0 0.0 0 0 ? S 07:48 0:00 [kworker/u256:0]xxxxxxxxxx [root@localhost /]# ps -aux # 顯示當前執行程序資訊USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMANDroot 1 0.0 0.0 128040 6688 ? Ss 07:48 0:01 /usr/lib/systemd/systemd --swiroot 2 0.0 0.0 0 0 ? S 07:48 0:00 [kthreadd]root 4 0.0 0.0 0 0 ? S< 07:48 0:00 [kworker/0:0H]root 5 0.0 0.0 0 0 ? S 07:48 0:00 [kworker/u256:0]USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMANDroot 1 0.0 0.0 128040 6688 ? Ss 07:48 0:01 /usr/lib/systemd/systemd --swiroot 2 0.0 0.0 0 0 ? S 07:48 0:00 [kthreadd]root 4 0.0 0.0 0 0 ? S< 07:48 0:00 [kworker/0:0H]
...
[root@localhost /]# :<<'END'
> 輸出解析
> USER: 使用者名稱;
> PID: 程序ID;
> %CPU: 程序佔用CPU情況(單位: KB);
> %MEM: 程序佔用記憶體情況;
> VSZ: 程序佔用虛擬記憶體情況;
> RSS: 程序佔用實體記憶體情況;
> TTY: 程序佔用終端情況, ?表示隱藏;
> STAT: 程序狀態: S休眠; R執行; N程序擁有比普通優先順序更低的優先順序; D短暫等待; Z僵死程序; T被跟蹤或者被停止;
> START: 程序啟動時間;
> TIME: 程序佔用CPU中時間;
> COMMAND: 啟動程序的命令和引數, 過長會被截斷顯示;
> 補充:
> TT: 終端名稱, 縮寫;
> PPID: 父程序ID
> C: CPU使用的資源百分比;
> PRI: 程序的執行優先權, 越小優先順序越高;
> SZ: 使用掉的記憶體
> END
R
reboot # 現在重啟計算機
rm [OPTION] directory # 刪除檔案或目錄
e.g., rmdir -rf /home/lsl/tmp20240806 # 強制刪除非空目錄, 無需確認
rmdir [OPTION] directory # 刪除空目錄(非空時會報錯)
rpm [OPTION] # 網際網路下載包的打包及安裝工具
e.g.:
- rpm -e firefox # 解除安裝火狐
- rpm -qa | grep docker # 查詢所安裝的docker軟體包
[root@localhost /]# rpm -qa | grep docker # 查詢所安裝的docker軟體包
docker-ce-26.1.4-1.el7.x86_64
docker-buildx-plugin-0.14.1-1.el7.x86_64
docker-ce-rootless-extras-26.1.4-1.el7.x86_64
docker-compose-plugin-2.27.1-1.el7.x86_64
docker-ce-cli-26.1.4-1.el7.x86_64
[root@localhost /]# # 輸出解析: 軟體包名稱-軟體包版本號.使用作業系統
- rpm -ivh firefox-45.4.0-1.el7.centos.x86_64.rpm # 介面顯示提示(verbose)和進度條(hash), 安裝(install)firefox
S
su username # 切換使用者, exit回溯
shutdown [OPTION] # 關機
e.g.:
- shutdown now # 立刻進行關機
- shutdown -h 1 # 一小時後關機
- shutdown -r now # 現在重新啟動計算機
sync # 把記憶體資料同步到磁碟
systemctl [OPTION] service_name # 操作服務: OPTION: start restart reload status enable
e.g., systemctl restart firewalld # 重啟防火牆
T
tail [OPTION] file_name
e.g., tail -n 12 -f test.txt # 持續輸出test.txt中的最末尾12行內容至終端
tar [OPTION...] [FILE]... # 打包或解壓檔案
opt desc:
- c 建立一個新的tar檔案(歸檔檔案)
- v 顯示詳細資訊
- f 指定壓縮後檔名
- z 打包同時壓縮
- x 解壓.tar.zg檔案
- C 指定解壓或打包的工作目錄 # 預設為當前目錄
touch filename_list # 建立一個或多個空檔案
e.g., touch lsl_test01.txt lsl_test02.txt
U
useradd [OPTION] username # 新增使用者
ex. useradd -g groupname -d user_home_directory username # 指定使用者的 組、家目錄
userdel [OPTION] username # 刪除使用者
Y
yum [OPTION] # shell前端軟體包管理器, 基於rpm; 使用前提: 可連線外網
e.g.:
- yum install docker-ce-26.1.4-1.el7 # 安裝
- yum remove firefox.x86_64 # yum包解除安裝
- yum list installed | grep docker # 查詢yum伺服器上的 已安裝至本地的 軟體包
[root@localhost /]# yum list installed | grep docker # 查詢yum伺服器上的 已安裝至本地的 軟體包
containerd.io.x86_64 1.6.33-3.1.el7 @docker-ce-stable
docker-buildx-plugin.x86_64 0.14.1-1.el7 @docker-ce-stable
docker-ce.x86_64 3:26.1.4-1.el7 @docker-ce-stable
docker-ce-cli.x86_64 1:26.1.4-1.el7 @docker-ce-stable
docker-ce-rootless-extras.x86_64
26.1.4-1.el7 @docker-ce-stable
docker-compose-plugin.x86_64 2.27.1-1.el7 @docker-ce-stable
#
> target_file # 將前一個檢視指令中的結果 覆蓋寫入 到目標檔案(檔案不存在則新建)
e.g., cat aa.txt > bb.txt
>> target_file # 將前一個檢視指令中的結果 追加寫入 到目標檔案(檔案不存在則新建)
Keyboard Shortcuts Related:
- ctrl + 滑鼠左擊 = 改變游標位置
- ctrl + 箭頭 = 快速跳過空格和一個單詞
- ctrl +b = 快速跳轉