最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Linux中最全常用命令速查表(建議收藏備用)

 更新時間:2026年06月03日 09:09:24   作者:小范好好學習  
本文整理了Linux中的常用命令,涵蓋Linux日常操作、C語言編譯與Vim編輯器使用,內容包括系統(tǒng)目錄結構、終端命令格式、目錄操作、文件操作等內容,適合系統(tǒng)初學者和進階者

一、Linux 系統(tǒng)目錄結構

Linux 采用樹狀目錄結構,根目錄為 /,所有文件和目錄都從根目錄出發(fā):

/
├── bin -> usr/bin       # 存放二進制命令(ls、cp、mv等常用命令)
├── boot                 # 內核及引導系統(tǒng)程序所在目錄
├── dev                  # 所有設備文件的目錄(磁盤、光驅等)
├── etc                  # 配置文件默認路徑、服務啟動命令存放目錄
├── home                 # 用戶家目錄(root用戶的家目錄為/root)
├── lib -> usr/lib       # 32位庫文件存放目錄
├── lib64 -> usr/lib64   # 64位庫文件存放目錄
├── media                # 媒體文件存放目錄
├── mnt                  # 臨時掛載設備目錄
├── opt                  # 自定義軟件安裝存放目錄
├── proc                 # 進程及內核信息存放目錄(虛擬文件系統(tǒng))
├── root                 # root用戶家目錄
├── run                  # 系統(tǒng)運行時產生臨時文件的存放目錄
├── sbin -> usr/sbin     # 系統(tǒng)管理命令存放目錄(僅管理員使用)
├── srv                  # 服務啟動后需要訪問的數(shù)據(jù)目錄
├── sys                  # 系統(tǒng)使用目錄
├── tmp                  # 臨時文件目錄
├── usr                  # 系統(tǒng)命令和幫助文件目錄
└── var                  # 存放內容易變文件的目錄(日志、郵件等)

重要目錄說明:

目錄說明
/bin二進制執(zhí)行文件,主要用于具體應用
/sbin系統(tǒng)管理員專用的二進制代碼,主要用于系統(tǒng)管理
/usr/bin用戶命令,后期安裝的軟件
/usr/sbin超級用戶管理程序

二、終端命令格式

2.1 基本語法

command [-options] [parameter]
組成部分說明
command命令名,對應功能的英文單詞或縮寫
[-options]選項,用于控制命令行為,可省略
[parameter]傳給命令的參數(shù),可以是零個、一個或多個

2.2 查閱命令幫助

command --help     # 顯示命令的幫助信息(簡潔版)
man command        # 查閱命令的完整使用手冊(manual)

man 手冊操作鍵:

操作鍵功能
空格鍵向下翻頁
b向上翻頁
q退出
/關鍵詞搜索關鍵詞

2.3 實用快捷鍵

快捷鍵功能
Tab自動補全文件/目錄/命令(非常常用?。?/td>
↑ / ↓ 方向鍵在歷史命令間切換
Ctrl + C強制中斷當前程序/命令
Ctrl + Z掛起當前任務(任務未結束,可用 fg/bg 恢復)
Ctrl + Shift + =放大終端窗口字體
Ctrl + -縮小終端窗口字體

三、目錄操作命令

3.1 查看目錄內容 ——ls

lslist 的簡寫,列出目錄內容

ls                 # 列出當前目錄內容
ls -a              # 顯示所有文件,包括隱藏文件(以.開頭)
ls -l              # 以列表方式顯示文件詳細信息(可簡寫為 ll)
ls -lh             # 以列表方式顯示,并以人性化方式顯示文件大小
ls -al             # 組合:顯示所有文件+詳細信息
ll                 # 等同于 ls -l(很多發(fā)行版支持)

Linux 文件和目錄特點:

  • 文件或目錄名最長可有 256 個字符
  • . 開頭的文件為隱藏文件,需用 -a 參數(shù)顯示
  • . 代表當前目錄,.. 代表上一級目錄
  • 所有目錄和文件名大小寫敏感

ls 通配符:

通配符含義
*代表任意個數(shù)個字符
?代表任意一個字符(至少1個)
[abc]匹配 a、b、c 中的任意一個
[a-f]匹配 a 到 f 范圍內的任意一個字符

3.2 切換目錄 ——cd

cdchange directory 的簡寫

pwd                # 查看當前工作目錄(print work directory)
cd                 # 切換到當前用戶主目錄(/home/用戶名)
cd ~               # 切換到當前用戶主目錄
cd /               # 切換到根目錄
cd ..              # 切換到上一級目錄
cd -               # 切換到上一次訪問的目錄(在兩個目錄間來回切換)
cd /usr/local      # 切換到指定絕對路徑
cd ./aaa           # 切換到當前目錄下的 aaa 目錄(相對路徑)

路徑說明:

  • 相對路徑:最前面不是 /~,相對于當前目錄
  • 絕對路徑:最前面是 /~,從根目錄/家目錄開始

3.3 創(chuàng)建目錄 ——mkdir

mkdir aaa                    # 在當前目錄下創(chuàng)建 aaa 目錄
mkdir ./bbb                  # 同上(相對路徑寫法)
mkdir /ccc                   # 在根目錄下創(chuàng)建 ccc 目錄(絕對路徑)
mkdir -p temp/nginx          # 遞歸創(chuàng)建多級目錄(-p 選項)
mkdir {dirA,dirB}            # 批量創(chuàng)建多個目錄

?? 新建目錄名稱不能與當前目錄中已有的目錄或文件同名

3.4 查看目錄樹 ——tree

tree               # 以樹狀圖顯示當前目錄結構
tree -d            # 只顯示目錄,不顯示文件
tree /usr/local    # 查看指定目錄的樹狀結構
tree test01/       # 查看 test01 目錄的樹狀結構

3.5 搜索文件/目錄 ——find

find / -name 'b'             # 從根目錄搜索名為 b 的目錄和文件
find / -name 'b*'            # 從根目錄搜索名以 b 開頭的目錄和文件
find . -name 'b'             # 從當前目錄搜索名為 b 的目錄和文件
find -name "*.py"            # 搜索當前目錄下所有 .py 文件(含子目錄)
find -name "*1*"             # 搜索文件名包含 1 的文件
find . -name '*.pyc' -exec rm -rf {} \;   # 遞歸刪除所有 .pyc 文件
find . -name "*" -size 145800c -print      # 打印當前目錄下指定大小的文件
find . -type f -name "*.log"               # 只搜索文件類型(不包括目錄)

3.6 移動與重命名 ——mv

mv 原名稱 新名稱             # 重命名(當前目錄內)
mv tomcat001 tomcat          # 將 tomcat001 重命名為 tomcat

mv /aaa /bbb                 # 將根目錄下的 aaa 移動到 bbb 目錄下
mv bbbb usr/bbb              # 移動并修改名稱為 bbb
mv bbb usr/aaa               # 移動并修改名稱為 aaa

-i 選項:覆蓋文件前提示確認

3.7 復制目錄 ——cp

cp -r /aaa /bbb              # 將 /aaa 目錄復制到 /bbb 下(保持名稱 aaa)
cp -r /aa /bbb/aaa           # 將 /aa 復制到 /bbb 下,名稱改為 aaa
cp -i 源文件 目標文件         # 覆蓋前提示

復制目錄必須加 -r 選項(遞歸復制)

3.8 刪除目錄 ——rm/rmdir

rm -r /bbb                   # 刪除 /bbb 目錄(會逐一詢問)
rm -rf /bbb                  # 強制刪除 /bbb 目錄(包含子目錄,不提示)
rmdir test01                 # 刪除空目錄

rm -rf 操作不可恢復,使用時務必謹慎!

3.9 軟鏈接 ——ln

ln -s /usr/local/app /data   # 創(chuàng)建軟鏈接(類似 Windows 快捷方式)
rm -rf /data                 # 刪除軟鏈接(路徑末尾不加 /)

注意事項:

  • 沒有 -s 建立的是硬鏈接,工作中幾乎不用
  • 源文件路徑建議使用絕對路徑,避免移動鏈接后失效
  • Linux 中,只有文件硬鏈接數(shù) == 0 時文件才會被刪除

四、文件操作命令

4.1 創(chuàng)建文件 ——touch

touch testFile               # 創(chuàng)建新文件(文件不存在則創(chuàng)建)
touch dirA/{A1,A2,A3}        # 在 dirA 目錄中批量創(chuàng)建 A1、A2、A3 三個文件

若文件已存在,則修改文件的末次修改時間(不改變內容)

4.2 刪除文件 ——rm

rm -r a.java                 # 刪除 a.java(每次詢問)
rm -rf a.java                # 強制刪除 a.java(不詢問)
rm -rf ./a*                  # 強制刪除當前目錄下所有以 a 開頭的文件
rm -rf ./*                   # 強制刪除當前目錄下所有文件(極度危險?。?

4.3 文件拆分 ——split

split -b 10k date.file                     # 按大小分割(每份10KB,字母后綴)
split -b 10k date.file -d -a 3             # 使用數(shù)字后綴,長度為3位
split -b 10k date.file -d -a 3 split_file  # 指定輸出文件名前綴
split -l 10 date.file                      # 按行數(shù)分割(每份10行)

split 參數(shù)說明:

參數(shù)說明
-b每個輸出文件的大?。▎挝唬篵yte,可用 k/m)
-l每個輸出文件的行數(shù)
-d使用數(shù)字作為文件后綴
-a指定后綴長度(默認為2)

4.4 跨服務器文件復制 ——scp

# 將本機文件復制到目標服務器
scp /home/user/file.txt user@192.168.1.100:/home/user/

# 將遠程服務器文件復制到本機
scp user@192.168.1.100:/home/user/file.txt /home/user/

# 復制目錄(-r 選項)
scp -r demo user@192.168.1.100:Desktop

# 指定端口(-P 大寫)
scp -P 2222 01.py user@remote:Desktop/01.py

scp 選項說明:

選項含義
-r遞歸復制目錄
-P指定端口號(注意是大寫 P)

五、文件內容查看與編輯

5.1 查看文件內容

cat a.java           # 查看文件全部內容(適合內容較少的文件)
cat -n a.java        # 查看文件內容,并對所有行編號
cat -b a.java        # 查看文件內容,只對非空行編號

more a.java          # 分屏顯示(空格翻頁,Enter翻行,q退出)
less a.java          # 分屏顯示,支持上下翻頁(PageUp/PageDown),q退出

head a.java          # 查看文件前10行
head -n 7 a.java     # 查看文件前7行

tail a.java          # 查看文件后10行
tail -n 7 a.java     # 查看文件后7行
tail -f a.java       # 實時查看文件末尾新增內容(常用于查看日志)

more 操作鍵詳解:

操作鍵功能
空格鍵顯示下一屏
Enter一次滾動一行
b回滾一屏
f前滾一屏
q退出
/word搜索 word 字符串

more 和 less 的區(qū)別:

對比項moreless
翻頁方向只能向后可前后翻頁
加載速度需讀整個文件按需加載,更快
退出后顯示內容殘留在終端退出后清屏
上下鍵不支持支持

5.2 文件內搜索 ——grep

grepGlobal Regular Expression Print 的縮寫,強大的文本搜索工具

grep "start" test*               # 在 test 開頭的文件中查找含 start 的行
grep under 123.txt               # 搜索 under 字符串(大小寫敏感)
grep -n under 123.txt            # 搜索并顯示行號
grep -v under 123.txt            # 顯示不包含 under 的行(取反)
grep -i under 123.txt            # 搜索(忽略大小寫)
grep -ni under 123.txt           # 忽略大小寫,并顯示行號
grep -A 1 -B 1 "https" wget-log  # 顯示匹配行及其前1行(-B)、后1行(-A)
grep "^root" /etc/passwd         # 搜索以 root 開頭的行
grep "bash$" /etc/passwd         # 搜索以 bash 結尾的行

grep 常用選項:

選項含義
-n顯示匹配行及行號
-v顯示不包含匹配文本的所有行(取反)
-i忽略大小寫
-A N顯示匹配行及其后 N 行
-B N顯示匹配行及其前 N 行

5.3 重定向

echo 'Hello World' > /root/test.txt    # 覆蓋寫入(文件不存在則創(chuàng)建)
echo 'Hello World' >> /root/test.txt   # 追加寫入
符號含義
>輸出重定向,覆蓋文件原有內容
>>輸出重定向,追加到文件末尾

六、文本處理三劍客

6.1 awk —— 數(shù)據(jù)統(tǒng)計與處理

awk 功能強大,一次讀取一行文本,按分隔符切片后處理

語法: awk [options] 'cmd' file

  • 切片保存在內建變量中:$1, $2, …$0 表示整行)
  • 默認分隔符為空格,-F 選項可指定分隔符
# 打印第1列和第3列
awk '{print $1,$3}' email.out

# 當?shù)?列為tcp且第2列為1時,打印整行
awk '$1=="tcp" && $2==1 {print $0}' email.out

# 打印表頭(NR==1表示第一行)
awk '($1=="tcp" && $2==1) || NR==1 {print $0}' email.out

# 以逗號為分隔符,打印第2列
awk -F "," '{print $2}' test.txt

# 統(tǒng)計各IP出現(xiàn)次數(shù)
awk '{count[$1]++} END {for(i in count) print i "\t" count[i]}' access.log

# 按逗號切分,將第一列追加到文件
awk -F "," '{print $1 >> "test01.txt"}' data.txt

6.2 sed —— 流編輯器(替換文件內容)

sed 全名 Stream Editor,適合對文本行內容進行批量處理,支持正則表達式

語法: sed [option] 'sed command' filename

sed 常用操作標記:

標記說明
g行內全部替換(不加則只替換首個)
p打印匹配行
d刪除匹配行
w將匹配行寫入文件
s替換操作
# 將以 Str 開頭的替換為 String(^ 表示行首)
sed -i 's/^Str/String/' replace.java

# 將行末的 . 替換為 ;(需轉義 .)
sed -i 's/\.$/\;/' replace.java

# 全文將 Jack 替換為 me(g 表示全部替換)
sed -i 's/Jack/me/g' replace.java

# 刪除空行(^ *$ 匹配只有空格的行)
sed -i '/^ *$/d' replace.java

# 刪除包含 Integer 的行
sed -i '/Integer/d' replace.java

# 多命令同時執(zhí)行(用 ; 分隔)
grep 'input' 123.txt | sed 's/\"http://g; s/,/\n/g'

# 替換后保存到新文件
sed -n 's/\"http://gw test01.txt' 123.txt

6.3 cut —— 數(shù)據(jù)裁剪

從文件每一行中剪切字段并輸出

語法: cut [選項] 文件名

選項功能
-f列號,提取第幾列
-d分隔符(默認是制表符 \t
# 以中文冒號分隔,提取第1列
cut -d ":" -f 1 cut.txt

# 以 : 分隔,提取 $PATH 的第3列
echo $PATH | cut -d ":" -f 3

# 以 : 分隔,提取第3列及之后所有列
echo $PATH | cut -d ":" -f 3-

七、管道與重定向

7.1 管道操作符|

將前一個命令的標準輸出作為后一個命令的輸入

注意事項:

  • 只處理前一個命令的正確輸出,不處理錯誤輸出
  • 右邊命令必須能夠接收標準輸入流
ls -l | more                         # 分屏顯示 ls 結果
ls -l | grep ".py"                   # 在 ls 結果中查找 .py 文件

# 從日志中查詢包含 error 的行
grep 'error' email.log

# 過濾 error 行中包含數(shù)字的部分
grep 'error' email.log | grep -o '\[0-9\]'

# 過濾包含 tomcat 的進程,排除當前 grep 進程
ps -ef | grep tomcat | grep -v grep

# 綜合管道:提取、切分、替換、保存
grep 'input' 123.txt | awk -F ',' '{print $2}' | sed 's/\"http://g' | awk -F ":" '{print $1 >> "test01.txt"}'

7.2 xargs —— 參數(shù)傳遞過濾器

將標準輸入數(shù)據(jù)轉換成命令行參數(shù)

# -n:每行輸出指定數(shù)量
cat test.txt | xargs -n3

# -d:按指定字符分隔文本
echo "nameXnameXnameXname" | xargs -dX

# -I:命令替換(每個參數(shù)執(zhí)行一次命令)
ls *.jpg | xargs -n1 -I {} cp {} /data/images/

# -t:將執(zhí)行的命令也打印出來
ls * | xargs -t -n1 -I {} cp -r {} /root/backup/

# 組合使用:X分隔,每行2個
echo "nameXnameXnameXname" | xargs -dX -n2

八、壓縮與解壓縮

8.1 tar 打包命令

壓縮打包(-c):

tar -cvf start.tar a.java b.java       # 將 a.java、b.java 打包
tar -cvf start.tar ./*                 # 將當前目錄下所有文件打包
tar -zcvf start.tar.gz a.java b.java   # 打包并使用 gzip 壓縮
tar -zcvf start.tar.gz ./*             # 將當前目錄打包壓縮為 .tar.gz
tar -jcvf start.tar.bz2 ./*           # 打包并使用 bzip2 壓縮(.tar.bz2)

解壓縮(-x):

tar -xvf start.tar                     # 解包到當前目錄
tar -xvf start.tar -C /usr/local       # 解包到 /usr/local 目錄
tar -zxvf start.tar.gz                 # 解壓 .tar.gz 到當前目錄
tar -zxvf start.tar.gz -C /usr/local   # 解壓 .tar.gz 到指定目錄
tar -jxvf start.tar.bz2               # 解壓 .tar.bz2 到當前目錄
tar xf node-v12.18.1-linux-x64.tar.xz # 解壓 .tar.xz 文件

tar 選項說明:

選項含義
c創(chuàng)建打包文件
x解開打包文件
v顯示詳細進度
f指定檔案文件名(必須放在選項最后
-z調用 gzip 進行壓縮/解壓縮
-j調用 bzip2 進行壓縮/解壓縮
-C解壓到指定目錄(目錄必須事先存在)

f 選項必須放在選項列表的最后!

8.2 zip/unzip 命令

壓縮(zip):

zip lib.zip tomcat.jar                         # 壓縮單個文件
zip -r lib.zip lib/                            # 壓縮整個目錄
zip -r lib.zip file1.jar file2.jar             # 壓縮多個文件

解壓縮(unzip):

unzip file1.zip                                # 解壓到當前目錄
unzip -d /usr/app/ com.example.zip             # 解壓到指定目錄

九、系統(tǒng)信息與進程管理

9.1 時間與日期

date               # 查看系統(tǒng)當前時間
cal                # 查看本月日歷
cal -y             # 查看本年日歷

9.2 磁盤信息

df -h                       # 查看系統(tǒng)各分區(qū)磁盤使用情況(human-readable)
du -lh                      # 查看當前目錄下各文件夾占用空間
du -sh                      # 查看當前文件夾總占用空間
du -h /usr/local            # 查看指定目錄大小
du --max-depth=1            # 只查看當前目錄下一級的占用情況

9.3 進程管理

ps aux                      # 查看所有進程詳細狀態(tài)
ps -ef | grep java          # 查看名稱含 java 的進程
ps -ef | grep mysql         # 查看 MySQL 相關進程
ps -aux | grep 28990        # 根據(jù) PID 查看進程信息

top                         # 動態(tài)實時查看進程資源占用(q 退出)

kill -9 2630                # 強制終止 PID 為 2630 的進程

ps 選項說明:

選項含義
a顯示終端上的所有進程(包含其他用戶)
u顯示進程的詳細狀態(tài)
x顯示沒有控制終端的進程

9.4 top 命令詳解

top    # 實時查看系統(tǒng)資源占用(按 q 退出)

統(tǒng)計信息區(qū)說明:

top - 15:33:39 up 5:40, 2 users, load average: 1.09, 1.04, 0.98
Tasks: 123 total,   3 running, 120 sleeping,   0 stopped,   0 zombie
%Cpu(s): 42.1 us,  2.0 sy,  0.0 ni, 49.2 id,  0.0 wa,  6.0 hi,  0.7 si
KiB Mem:  3780.9 total,  727.4 free,  668.8 used,  2384.7 buff/cache
KiB Swap: 2048.0 total,  2046.0 free,    2.0 used,   859.6 avail
字段說明
us用戶空間占用 CPU 百分比
sy內核空間占用 CPU 百分比
id空閑 CPU 百分比
wa等待 I/O 的 CPU 時間百分比

進程信息區(qū)字段說明:

字段說明
PID進程 ID
USER進程所有者
PR優(yōu)先級
NInice 值(負值=高優(yōu)先級)
%CPUCPU 占用百分比
%MEM內存占用百分比
S進程狀態(tài)(R=運行,S=睡眠,Z=僵尸)
COMMAND命令名

9.5 后臺運行程序

nohup sh test.sh &                    # 后臺運行,日志輸出到 nohup.out
nohup sh test.sh >> test.out &        # 后臺運行,日志輸出到 test.out

9.6 關機與重啟

shutdown -h now                        # 立即關機
shutdown -h 10:53                      # 在 10:53 關機
shutdown -h +10                        # 10分鐘后自動關機
shutdown -r now                        # 立即重啟
shutdown -r +30 '30 minutes to reboot' # 30分鐘后重啟并通知用戶
shutdown -c                            # 取消之前的關機/重啟計劃
reboot                                 # 強制重啟

十、用戶與權限管理

10.1 文件權限說明

-rw-r--r-- 1 root root 34942 Jan 19 2018 bootstrap.jar

權限位說明:

- r: read(讀?。? w: write(寫入)  x: execute(執(zhí)行)

- : 文件類型(-=普通文件,d=目錄,l=軟鏈接)

  • 前3位:文件所有者的權限(user)
  • 中3位:所屬組其他用戶的權限(group)
  • 后3位:其他用戶的權限(others)

示例:rw-r--r-- 表示

  • 所有者:可讀、可寫、不可執(zhí)行
  • 同組用戶:可讀、不可寫、不可執(zhí)行
  • 其他用戶:可讀、不可寫、不可執(zhí)行

10.2 修改文件權限 ——chmod

# 符號方式
chmod u+x web.xml     # 給所有者(user)添加執(zhí)行權限
chmod g+x web.xml     # 給所屬組(group)添加執(zhí)行權限
chmod o+x web.xml     # 給其他用戶(others)添加執(zhí)行權限
chmod a+x web.xml     # 給所有人添加執(zhí)行權限

# 數(shù)字方式(r=4, w=2, x=1)
chmod 755 web.xml     # rwxr-xr-x(所有者全權限,其他只讀執(zhí)行)
chmod 644 web.xml     # rw-r--r--(所有者讀寫,其他只讀)
chmod 777 web.xml     # rwxrwxrwx(所有人全權限,生產中慎用)
chmod 111 web.xml     # --x--x--x(所有人只有執(zhí)行權限)
chmod -R 755 dir/     # 遞歸修改目錄下所有文件權限

10.3 修改文件所有者 ——chown

chown sum file.txt                    # 將文件所有者改為 sum
chown sum:sum file.txt                # 同時改所有者和所屬組為 sum
chown -R sum /usr/sum/               # 遞歸修改目錄下所有文件的所有者
chown -R sum:sum /usr/sum/           # 遞歸修改所有者和所屬組

10.4 用戶管理

# 添加用戶
useradd -d /usr/sum -m sum           # 創(chuàng)建用戶 sum,家目錄為 /usr/sum

# 設置用戶密碼
passwd sum

# 切換用戶
su - sum                             # 切換到 sum 用戶(并切換到其家目錄)
su sum                               # 切換到 sum 用戶(保持當前目錄)
exit                                 # 退出當前登錄,回到上一個用戶

# 查看用戶信息
id sum                               # 查看用戶 UID 和 GID
who                                  # 查看當前所有登錄用戶
whoami                               # 查看當前登錄用戶賬戶名
cat /etc/passwd                      # 查看所有用戶列表

# 修改用戶信息
usermod 選項 用戶名

# 刪除用戶
userdel sum                          # 刪除用戶
rm -rf /usr/sum                      # 刪除用戶家目錄(需分開執(zhí)行)

# 賦予 root 權限(sudo 權限)
visudo                               # 編輯 sudoers 文件
# 在文件中添加:sum ALL=(ALL) ALL
sudo -s                              # 使用 root 權限執(zhí)行命令

10.5 組管理

groupadd groupname                   # 創(chuàng)建用戶組
groupdel groupname                   # 刪除用戶組
groupmod -n newname oldname          # 將用戶組改名
chgrp -R groupname dir/              # 遞歸修改目錄所屬組
cat /etc/group                       # 查看所有組的信息

十一、網(wǎng)絡與遠程管理

11.1 查看/配置網(wǎng)卡 ——ifconfig

ifconfig                             # 查看所有網(wǎng)卡配置信息
ifconfig | grep inet                 # 只顯示 IP 地址
  • Linux 物理網(wǎng)卡名通常以 ensXX 表示
  • 127.0.0.1 是本地回環(huán)地址,用于測試本機網(wǎng)卡

11.2 網(wǎng)絡連通性檢測 ——ping

ping 192.168.1.100                   # 持續(xù) ping 目標 IP
ping -c 4 www.example.com            # 發(fā)送4個 ping 包后停止
ping 127.0.0.1                       # 檢測本機網(wǎng)卡是否正常

11.3 端口與連接檢測

telnet 49.32.587.164 8093            # 檢查目標服務器指定端口是否可用
lsof -i:8080                         # 查看占用 8080 端口的進程
netstat -tunlp | grep 8080           # 查看指定端口的進程信息
netstat -tunlp                       # 顯示所有 tcp/udp 端口和進程情況
netstat -lt                          # 列出所有處于監(jiān)聽狀態(tài)的 tcp 端口
netstat -an                          # 查看當前系統(tǒng)的 IP 連接(全平臺通用)

查看連接狀態(tài)數(shù)量:

netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

11.4 遠程登錄 ——ssh

ssh user@192.168.1.100               # 使用默認 22 端口登錄
ssh -p 2222 user@192.168.1.100       # 指定端口號登錄
exit                                 # 退出 SSH 會話
參數(shù)說明
user遠程機器上的用戶名
remote遠程機器的 IP 或域名
-p port指定端口號(默認22)

11.5 curl 命令

# GET 請求
curl "http://www.example.com"

# POST 請求(表單格式)
curl -d 'login=admin&password=123' -X POST https://example.com/login

# POST 請求(JSON 格式)
curl -l -H "Content-type: application/json" \
     -X POST \
     -d '{"phone":"13800138000","password":"test"}' \
     http://example.com/api/users

11.6 添加 Hosts

vim /etc/hosts                       # 編輯 hosts 文件
# 添加一行:49.235.32.164 www.example.com
/etc/init.d/network restart          # 保存后重啟網(wǎng)絡生效

11.7 防火墻管理

service iptables status              # 查看防火墻狀態(tài)
service iptables stop                # 臨時關閉防火墻
chkconfig iptables off               # 設置防火墻開機不啟動

十二、軟件包管理

12.1 yum(CentOS/RedHat)

yum install iptables-services        # 安裝軟件包
yum list                             # 列出當前已安裝的所有包
yum search package_name              # 在倉庫中搜索軟件包
yum update package_name              # 更新指定軟件包
yum remove package_name              # 刪除軟件包
yum clean all                        # 清除所有緩存

# 安裝文件傳輸工具(上傳下載)
yum install -y lrzsz
rz                                   # 上傳文件到服務器
sz filename                          # 從服務器下載文件

12.2 apt(Ubuntu/Debian)

sudo apt install 軟件包名             # 安裝軟件
sudo apt remove 軟件名               # 卸載軟件
sudo apt upgrade                     # 更新所有已安裝的包
sudo apt update                      # 更新軟件包列表

十三、其他實用命令

13.1 歷史命令

history                              # 查看歷史使用過的命令
history | grep es                    # 過濾與 es 相關的歷史命令

13.2 查看系統(tǒng)信息

cat /etc/redhat-release              # 查看操作系統(tǒng)版本(RedHat/CentOS)
cat /etc/shells                      # 查看系統(tǒng)支持的 shell 列表
echo $USER                           # 輸出當前用戶名
echo $PATH                           # 輸出系統(tǒng)路徑變量
set                                  # 輸出所有環(huán)境變量
which ls                             # 查看命令所在的位置(如 /bin/ls)
which useradd                        # 查看命令路徑(如 /usr/sbin/useradd)

13.3 定時任務

crontab -e                           # 打開/編輯定時任務文件
# 示例:每天 0 點執(zhí)行腳本
0 0 * * * /data/shell/bin/del-30-days-ago-log.sh

crontab 時間格式:

分 時 日 月 周   命令
*  *  *  *  *   /path/to/script.sh

13.4 Linux 內核參數(shù)優(yōu)化

vim /etc/sysctl.conf                 # 編輯內核參數(shù)配置文件
sysctl -p                            # 重新加載配置(不重啟生效)

十四、系統(tǒng)日志

常用系統(tǒng)日志文件位置(以 RedHat/CentOS 為例):

/var/log/messages      # 系統(tǒng)啟動后的信息和錯誤日志(最常用)
/var/log/secure        # 安全相關的日志信息
/var/log/maillog       # 郵件相關的日志信息
/var/log/cron          # 定時任務相關的日志
/var/log/spooler       # UUCP 和 news 設備相關的日志
/var/log/boot.log      # 守護進程啟動和停止的日志

# 查看操作歷史
cat .bash_history      # 查看當前用戶的命令歷史記錄

十五、Docker 容器常用命令

# 搜索鏡像
docker search mysql

# 查看已下載的鏡像
docker images

# 下載并運行容器
docker run -di --name=mycontainer -p 3306:3306 \
           -e MYSQL_ROOT_PASSWORD=root <鏡像ID>

# 查看運行中的容器
docker ps

# 查看所有容器(包括未運行的)
docker ps -a

# 停止/啟動/重啟容器
docker stop mycontainer
docker start mycontainer
docker restart mycontainer

# 刪除容器
docker rm mycontainer

十六、Vim 編輯器詳細使用指南

16.1 Vim 簡介

vim 是 Linux 系統(tǒng)上最常用的文本編輯器,功能強大。它有三種主要工作模式:

┌─────────────────────────────────────────────────┐
│                  Vim 三種模式                    │
│                                                 │
│   普通模式 ──i/a/o──→ 插入模式                  │
│      ↑                    │                     │
│      └─────── ESC ────────┘                     │
│      │                                          │
│      └──── : ────→ 命令行模式 ──→ 執(zhí)行后回普通   │
└─────────────────────────────────────────────────┘

16.2 打開文件

vim filename.txt         # 打開文件(不存在則創(chuàng)建新文件)
vim +3 filename.txt      # 打開文件并跳轉到第3行
vim +/keyword file.txt   # 打開文件并定位到第一個關鍵詞處
vi filename.txt          # vi 是 vim 的精簡版

16.3 三種模式詳解

模式一:普通模式(Normal Mode)

打開文件后默認進入普通模式,不能直接輸入文字,主要用于移動光標、復制、刪除、搜索等操作。

光標移動:

按鍵功能
h向左移動一個字符
l向右移動一個字符
j向下移動一行
k向上移動一行
w跳到下一個單詞開頭
b跳到上一個單詞開頭
0跳到行首
$跳到行尾
gg跳到文件開頭(第一行)
G跳到文件末尾(最后一行)
nG:n跳到第 n 行
Ctrl+f向下翻頁
Ctrl+b向上翻頁

復制、粘貼、刪除:

按鍵功能
yy復制當前行
nyy復制當前行起的 n 行(如 3yy
p在當前行下方粘貼
P在當前行上方粘貼
dd刪除(剪切)當前行
ndd刪除(剪切)當前行起的 n 行
x刪除光標所在字符
dw刪除一個單詞
D刪除從光標到行尾
u撤銷上一步操作(undo)
Ctrl+r重做(redo)

搜索:

按鍵功能
/keyword向下搜索 keyword
?keyword向上搜索 keyword
n跳到下一個匹配項
N跳到上一個匹配項

模式二:插入模式(Insert Mode)

在普通模式下按以下鍵進入插入模式(開始輸入文字):

按鍵進入位置
i在光標插入
a在光標插入
I行首插入
A行尾插入
o在當前行下方新建一行并插入
O在當前行上方新建一行并插入

ESC 鍵退出插入模式,返回普通模式

模式三:命令行模式(Command-Line Mode)

在普通模式下按 : 進入命令行模式(屏幕底部出現(xiàn) : 提示符):

文件保存與退出:

命令功能
:w保存文件(不退出)
:q退出(文件無修改時有效)
:wq保存并退出
:wq!強制保存并退出
:q!強制退出(放棄所有修改)
:x保存并退出(等同于 :wq
:w filename另存為指定文件名

文本替換:

命令功能
:s/old/new替換當前行第一個匹配
:s/old/new/g替換當前行所有匹配
:%s/old/new/g替換整個文件所有匹配
:1,5s/old/new/g替換第1到第5行所有匹配

行號與跳轉:

命令功能
:set nu顯示行號
:set nonu隱藏行號
:n跳轉到第 n 行(如 :10 跳到第10行)

其他命令:

命令功能
:!command在不退出 vim 的情況下執(zhí)行 shell 命令
:r filename將指定文件內容插入當前光標位置
:e filename在 vim 中打開另一個文件

16.4 Vim 快速參考總結

打開文件:vim file.txt
         ↓
    普通模式(默認)
         ↓ i / a / o
    插入模式(輸入文字)
         ↓ ESC
    返回普通模式
         ↓ :
    命令行模式(保存/退出)
    :wq 保存退出 | :q! 不保存退出

16.5 Vim 常用操作速記

# 快速編輯文件并保存退出
vim file.txt    # 打開
i               # 進入插入模式
# ... 輸入內容 ...
ESC             # 退出插入模式
:wq             # 保存退出

# 只讀查看文件
vim -R file.txt # 只讀模式打開
:q              # 查看后退出

# 快速替換文本
vim file.txt
:%s/Jack/Tom/g  # 全文替換 Jack 為 Tom
:wq             # 保存退出

十七、C 語言代碼編譯

17.1 GCC 編譯器基礎

GCC(GNU Compiler Collection)是 Linux 下最常用的 C/C++ 編譯器。

# 安裝 GCC(CentOS/RedHat)
yum install -y gcc

# 安裝 GCC(Ubuntu/Debian)
sudo apt install gcc

# 查看 GCC 版本
gcc --version

17.2 C 語言編譯基本流程

源代碼(.c)→ 預處理(.i)→ 編譯(.s)→ 匯編(.o)→ 鏈接 → 可執(zhí)行文件

17.3 GCC 常用編譯命令

最簡單的編譯(一步到位)

gcc hello.c -o hello       # 編譯 hello.c,生成可執(zhí)行文件 hello
./hello                    # 運行程序

分步編譯(了解各階段)

# 第一步:預處理(展開宏定義和頭文件,生成 .i 文件)
gcc -E hello.c -o hello.i

# 第二步:編譯(生成匯編代碼 .s 文件)
gcc -S hello.i -o hello.s

# 第三步:匯編(生成目標文件 .o 文件)
gcc -c hello.s -o hello.o

# 第四步:鏈接(生成最終可執(zhí)行文件)
gcc hello.o -o hello

常用編譯選項

# 開啟所有警告(推薦初學者使用,幫助發(fā)現(xiàn)潛在問題)
gcc -Wall hello.c -o hello

# 開啟調試信息(用于 GDB 調試)
gcc -g hello.c -o hello

# 指定 C 語言標準
gcc -std=c99 hello.c -o hello      # 使用 C99 標準
gcc -std=c11 hello.c -o hello      # 使用 C11 標準

# 開啟優(yōu)化
gcc -O1 hello.c -o hello           # 1級優(yōu)化
gcc -O2 hello.c -o hello           # 2級優(yōu)化(常用)
gcc -O3 hello.c -o hello           # 3級優(yōu)化

# 鏈接數(shù)學庫(使用 math.h 時需要)
gcc hello.c -o hello -lm

# 同時指定多個源文件
gcc main.c utils.c -o program

# 指定頭文件搜索路徑
gcc -I /usr/local/include hello.c -o hello

# 指定庫文件搜索路徑
gcc hello.c -L /usr/local/lib -lmylib -o hello

17.4 完整示例

1. 編寫第一個 C 程序:

vim hello.c     # 創(chuàng)建并編輯源文件

在 vim 中輸入以下內容:

#include <stdio.h>
int main() {
    printf("Hello, Linux!\n");
    return 0;
}

2. 編譯并運行:

gcc hello.c -o hello      # 編譯
./hello                   # 運行
# 輸出:Hello, Linux!

17.5 多文件項目編譯

目錄結構示例:

project/
├── main.c
├── add.c
├── add.h
└── Makefile

手動編譯多文件:

# 分別編譯各源文件為目標文件
gcc -c main.c -o main.o
gcc -c add.c -o add.o

# 鏈接所有目標文件
gcc main.o add.o -o project

# 運行
./project

一步編譯多文件:

gcc main.c add.c -o project

17.6 使用 Makefile 管理編譯

Makefile 可以自動化編譯過程,避免每次手動輸入編譯命令

基本 Makefile 示例(Makefile 文件):

# 目標文件名
TARGET = project

# C 編譯器
CC = gcc

# 編譯選項
CFLAGS = -Wall -g

# 源文件列表
SRCS = main.c add.c

# 目標文件列表(.c 替換為 .o)
OBJS = $(SRCS:.c=.o)

# 默認目標:生成可執(zhí)行文件
$(TARGET): $(OBJS)
	$(CC) $(OBJS) -o $(TARGET)

# 編譯每個 .c 文件為 .o 文件
%.o: %.c
	$(CC) $(CFLAGS) -c $< -o $@

# 清理編譯產生的文件
clean:
	rm -f $(OBJS) $(TARGET)

Makefile 使用命令:

make              # 編譯項目
make clean        # 清理編譯產生的中間文件和可執(zhí)行文件
make -j4          # 使用4個并行任務加速編譯

17.7 GDB 調試基礎

GDB(GNU Debugger)是 Linux 下的 C/C++ 調試工具

# 編譯時必須加 -g 選項才能調試
gcc -g hello.c -o hello

# 啟動 GDB 調試
gdb ./hello

GDB 常用命令:

命令簡寫說明
runr運行程序
break 行號b在指定行設置斷點
break 函數(shù)名b在函數(shù)入口設置斷點
nextn執(zhí)行下一行(不進入函數(shù))
steps執(zhí)行下一行(進入函數(shù)內部)
print 變量名p打印變量的值
continuec繼續(xù)運行到下一個斷點
listl顯示源代碼
quitq退出 GDB
backtracebt顯示調用棧
info locals顯示局部變量

GDB 調試示例:

gdb ./hello
(gdb) break main          # 在 main 函數(shù)設置斷點
(gdb) run                 # 開始運行
(gdb) next                # 執(zhí)行下一行
(gdb) print i             # 打印變量 i 的值
(gdb) continue            # 繼續(xù)運行
(gdb) quit                # 退出

17.8 常見編譯錯誤解決

錯誤信息可能原因解決方法
No such file or directory頭文件路徑不對檢查 #include 路徑或加 -I 參數(shù)
undefined reference to 'xxx'鏈接時找不到函數(shù)檢查是否缺少庫,加 -l 參數(shù)
implicit declaration of function未聲明函數(shù)就使用添加對應頭文件或前向聲明
expected ';' before '}'語法錯誤(缺分號)檢查報錯行及其上一行
segmentation fault訪問非法內存(段錯誤)使用 GDB 調試,檢查指針
warning: unused variable聲明了變量但未使用刪除未使用的變量

十八、快速參考速查表

目錄與文件操作

分類命令說明
目錄導航pwd查看當前目錄
cd ~ / cd .. / cd -切換到家目錄/上級/上次目錄
ll / ls -alh查看目錄內容(含隱藏文件/詳細信息)
tree以樹狀圖顯示目錄結構
目錄操作mkdir -p dir/sub遞歸創(chuàng)建目錄
rmdir dir刪除空目錄
rm -rf dir強制刪除目錄(含所有內容)
文件操作touch file創(chuàng)建文件
cp -r src dst遞歸復制
mv src dst移動或重命名
find -name "*.c"按名稱查找文件
ln -s src link創(chuàng)建軟鏈接

文件內容處理

分類命令說明
查看內容cat -n file帶行號查看
more / less分屏查看
head -n 10 / tail -n 10查看前/后N行
tail -f logfile實時查看日志
文本搜索grep -n pattern file顯示匹配行及行號
grep -v pattern file顯示不匹配的行
grep -i pattern file忽略大小寫搜索
文本處理awk '{print $1}' file打印第1列
sed 's/old/new/g' file全文替換
cut -d "," -f 1 file按分隔符提取列
重定向cmd > file覆蓋輸出到文件
cmd >> file追加輸出到文件
管道cmd1 | cmd2將cmd1輸出作為cmd2輸入

壓縮解壓

命令說明
tar -zcvf out.tar.gz dir/gzip 壓縮目錄
tar -zxvf file.tar.gz解壓 .tar.gz
tar -zxvf file.tar.gz -C /dest解壓到指定目錄
zip -r out.zip dir/zip 壓縮目錄
unzip file.zip -d /dest解壓 zip 到指定目錄

系統(tǒng)與進程

命令說明
ps aux查看所有進程
top動態(tài)查看進程(q退出)
kill -9 PID強制終止進程
df -h查看磁盤空間
du -sh dir/查看目錄大小
shutdown -r now立即重啟
shutdown now立即關機
date查看系統(tǒng)時間

用戶與權限

命令說明
chmod 755 file修改文件權限
chown user:group file修改文件所有者和組
su - username切換用戶
sudo command以管理員權限執(zhí)行
useradd username創(chuàng)建用戶
passwd username設置密碼
groupadd groupname創(chuàng)建用戶組

網(wǎng)絡與遠程

命令說明
ifconfig查看網(wǎng)卡信息
ping ip檢測網(wǎng)絡連通性
ssh user@host遠程登錄
scp file user@host:path遠程復制文件
netstat -tunlp查看端口占用
lsof -i:8080查看指定端口
curl url發(fā)送 HTTP 請求

Vim 常用操作

操作命令
打開文件vim file.txt
進入插入模式i(光標前)/ a(光標后)/ o(下行新增)
退出插入模式ESC
保存退出:wq
不保存退出:q!
全文替換:%s/old/new/g
搜索/keyword(向下)/ ?keyword(向上)
復制行yy / nyy(復制n行)
刪除行dd / ndd(刪除n行)
撤銷u

C 語言編譯常用命令

命令說明
gcc hello.c -o hello編譯C程序
gcc -Wall hello.c -o hello編譯并顯示所有警告
gcc -g hello.c -o hello編譯并加入調試信息
gcc -std=c99 hello.c -o hello使用C99標準編譯
./hello運行可執(zhí)行文件
make使用Makefile編譯項目
make clean清理編譯產物
gdb ./hello啟動GDB調試

學習建議:

  1. 多練習常用命令,熟能生巧
  2. 遇到不熟悉的命令,先用 man 命令名命令 --help 查閱文檔
  3. Vim 的使用需要刻意練習,建議每天使用 vim 編輯文件
  4. C 語言編譯建議從單文件開始,逐步過渡到 Makefile 管理多文件項目
  5. 在實驗環(huán)境中大膽嘗試各種命令,積累經(jīng)驗

# 將命令輸出插入當前文件

附錄:常用快捷鍵總結

快捷鍵說明
Tab命令/路徑自動補全
Ctrl+C終止當前運行的程序
Ctrl+Z掛起當前程序
Ctrl+D退出當前終端 / EOF
Ctrl+L清屏(相當于 clear)
Ctrl+A光標移到行首
Ctrl+E光標移到行尾
Ctrl+U刪除光標前所有內容
Ctrl+K刪除光標后所有內容
Ctrl+R搜索歷史命令
上/下方向鍵瀏覽歷史命令

以上就是Linux中最全常用命令速查表(建議收藏備用)的詳細內容,更多關于Linux常用命令的資料請關注腳本之家其它相關文章!

相關文章

  • 詳解Linux下Tomcat開啟查看GC信息

    詳解Linux下Tomcat開啟查看GC信息

    這篇文章主要介紹了詳解Linux下Tomcat開啟查看GC信息,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-06-06
  • Linux系統(tǒng)重置用戶密碼的操作指南

    Linux系統(tǒng)重置用戶密碼的操作指南

    在 Linux 系統(tǒng)運維中,重置用戶密碼(尤其是 root 密碼)是一項核心技能,當您忘記密碼時,可以通過進入單用戶模式或恢復模式來修改密碼,下面我將以重置 root 密碼為例,詳細說明步驟,需要的朋友可以參考下
    2025-09-09
  • Linux使用sha256sum命令生成文件校驗和

    Linux使用sha256sum命令生成文件校驗和

    在現(xiàn)代軟件開發(fā)與系統(tǒng)運維中,數(shù)據(jù)完整性驗證是保障安全與可靠性的基石,Linux?系統(tǒng)提供的?sha256sum?命令,正是用于生成和驗證?SHA-256?校驗和的利器,本文將深入探討該命令的使用方法、工作原理,并提供完整的?Java?代碼示例,需要的朋友可以參考下
    2026-03-03
  • Linux磁盤分區(qū)實現(xiàn)原理及方法解析

    Linux磁盤分區(qū)實現(xiàn)原理及方法解析

    這篇文章主要介紹了Linux磁盤分區(qū)實現(xiàn)原理及方法解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-08-08
  • 安裝Linux的flash的步驟方法

    安裝Linux的flash的步驟方法

    在本篇文章里小編給各位分享的是關于安裝Linux的flash的步驟方法,對此有需要的朋友們可以學習下。
    2020-03-03
  • linux服務器之LVS、Nginx和HAProxy負載均衡器對比總結

    linux服務器之LVS、Nginx和HAProxy負載均衡器對比總結

    這篇文章主要介紹了linux服務器之LVS、Nginx和HAProxy負載均衡器對比,需要的朋友可以參考下
    2014-03-03
  • 跨域請求 Apache 服務器配置的方法

    跨域請求 Apache 服務器配置的方法

    這篇文章主要介紹了跨域請求 Apache 服務器配置的方法,包括修改服務器配置文件的方法和如何編輯httpd.conf。接下來,通過本文給大家重點講解,需要的朋友參考下吧
    2017-01-01
  • Linux中串口檢查狀態(tài)的實用方法分享

    Linux中串口檢查狀態(tài)的實用方法分享

    在?Linux?系統(tǒng)中,串口通信是非常常見的操作,尤其在嵌入式系統(tǒng)、工業(yè)設備以及其他需要串行通信的場景中,本文為大家整理了一些Linux中串口檢查狀態(tài)的實用方法,希望對大家有所幫助
    2025-01-01
  • CentOS7服務器環(huán)境下vsftpd安裝及配置方法

    CentOS7服務器環(huán)境下vsftpd安裝及配置方法

    這篇文章主要介紹了CentOS7服務器環(huán)境下vsftpd安裝及配置方法,結合實例形式分析了CentOS7服務器環(huán)境下進行vsftpd安裝及配置的步驟與相關問題解決方法,需要的朋友可以參考下
    2018-03-03
  • 分別在Linux和Windows下設置JVM內存的簡單方法

    分別在Linux和Windows下設置JVM內存的簡單方法

    下面小編就為大家?guī)硪黄謩e在Linux和Windows下設置JVM內存的簡單方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-01-01

最新評論

浪卡子县| 喀喇| 郧西县| 望江县| 南召县| 清远市| 勐海县| 布尔津县| 台南县| 霸州市| 华阴市| 镇坪县| 永顺县| 新民市| 苗栗县| 德昌县| 莒南县| 吉林省| 铜梁县| 集安市| 雅安市| 枣强县| 普宁市| 尖扎县| 岳池县| 虎林市| 德格县| 平谷区| 凤庆县| 长汀县| 名山县| 大厂| 阳泉市| 湛江市| 朔州市| 鄂伦春自治旗| 霍邱县| 洛宁县| 咸宁市| 湛江市| 邵阳县|