主頁 >  其他 > ??學習linux 兩年多沉淀下來的linux 命令大全?建議收藏?

??學習linux 兩年多沉淀下來的linux 命令大全?建議收藏?

2021-09-16 10:04:23 其他

文章目錄

  • linux 系統命令總結大全
    • 關于作者
    • 作者介紹
    • 0.IP 地址相關命令
      • 0.1 ifconfig 命令 ---顯示網路設備資訊
      • 02.ip 命令 ---顯示與操作路由
      • 03.dhclient 命令 --- 動態獲取或釋放IP地址
      • 04.nmtui ---界面修改網卡地址資訊
      • 05.nmcli 命令 --- 設定ip地址
    • 1.檔案目錄命令
      • 1.1 ls 命令 --顯示目錄下的內容
      • 1.2 cd 命令 ---切換目錄命令
      • 1.3 cp 命令---復制檔案或目錄
      • 1.4 mkdir ---創建目錄
      • 1.5 rmdir 命令 --- 洗掉空目錄
      • 1.6 tree 命令 ---查看目錄結構
      • 1.7 mv 命令 --- 移動或改名檔案
      • 1.8 pwd 命令 --- 顯示當前路徑
    • 2.文本編輯命令
      • 2.1 cat 命令 ---顯示檔案內容
      • 2.2 vi/vim 命令 ---修改組態檔
      • 2.3 touch 命令 --創建檔案、修改訪問時間
      • 2.4 echo 命令 ---輸出命令
      • 2.5 rm 命令 ---洗掉命令
      • 2.6 tail 命令 ---查看檔案尾部內容
      • 2.7 head命令 ---顯示檔案開頭內容
      • 2.9 sort 命令 --排序命令
      • 2.10 uniq 命名 ---去重
      • 2.11 wc 命令 ---用于統計文本、字符(數字、符號、空格、行)
      • 2.12 more 顯示文本檔案內容
      • 2.13 less命令 --- 分頁顯示內容
      • 2.14 stat 命令 -- 查看資料詳細屬性資訊
      • 2.15 ln 命令 ---創建連接檔案
      • 2.16 dd 命令 --- 模擬創建出指定大小的檔案
      • 2.17 chattr 命令 --- 改變檔案屬性
    • 3 .修改主機名
      • 3.1 hostname 命令 ---查看修改主機名稱
      • 3.2 hostnamectl --- 直接修改主機名稱(centos7)
    • 4.linux 用戶及權限管理
      • 4.1 useradd 命令 --- 創建用戶
      • 4.2userdel 命令 ---洗掉用戶
      • 4.3 usermod命令 ---修改用戶及組的屬性
      • 4.4 groupadd 命令 ---創建用戶組
      • 4.5 groupmod 命令 ---修改組名
      • 4.6 chown 命令 --修改檔案/目錄屬主、陣列
      • 4.7 chmod 命令 ---改變檔案或目錄權限
      • 4.8 passwd 命令 ---修改用戶密碼
      • 4.9 id /whoami 命令 ---檢查用戶身份
      • 4.10 su 命令 ---切換用戶命令
      • 4.11 w 命令 ---查看負載資訊/查看系統用戶登錄資訊
    • 5.軟體包管理
      • 5.1 rpm 命令 ---RPM 軟體包管理器
      • 5.2 yum 命令 --- 軟體安裝、卸載
      • 5.3 wget 命令 ---檔案下載
      • 5.4 which命令 --- 顯示命令檔案所在路徑位置
      • 5.5 whereis 命令 ---查看命令所在路徑以及命令相關手冊檔案所在路徑
      • 5.6 alias/unalias 命令 ---設定命令別名
    • 6.磁盤管理
      • 6.1 df 命令 --- 顯示磁盤空間使用情況
      • 6.2 fdisk 命令 ---磁盤磁區
      • 6.3 lsblk 命令 ---查看系統的磁盤
      • 6.4 free 命令 --- 顯示系統記憶體情況
      • 6.5 du 命令 ---查看空間
    • 7.設備管理
      • 7.1 mount 命令 ---檔案系統掛載
      • 7.2 umout 命令 ---卸載掛載
      • 7.3 lsusb 命令 --- 顯示usb 設備串列
    • 8. 網路通訊
      • 8.1 ssh命令 --- 安全連接客戶端
      • 8.2 netstat 命令 --- 顯示網路狀態
      • 8.3 ping 命令 ---測驗主機間網路連通性
      • 8.5 nslookup 命令 ---決議IP地址
      • 8.6 route 命令 --- 顯示并設定路由
    • 9.tar、zip命令 ---壓縮/解壓縮
    • 10. 檔案傳輸
      • 10.1 curl 命令 ---檔案傳輸工具
      • 10.2 scp --- 遠程拷貝檔案
    • 11 關機/重啟相關命令
      • 11.1 shutdown 命令
      • 11.2 init 命令
      • 11.3 reboot 命令
      • 11.4 poeroff 命令
      • 11.5 halt 命令 ---直接關機
      • 11.5 exit 命令--- 注銷
    • 12 作業系統正則符號
      • 12.1 系統特殊符號(路徑、重定向、邏輯、引號)
      • 12.2 通配符號(* 、{})
      • 12.3 系統正則符號()
    • 13 shell 常用命令
      • 13.1 find 命令 ---查找和搜索檔案
      • 13.2 grep 命令 ---文本過濾
      • 13.3 sed 命令 ---流編輯器,實作對文本的增刪改查
      • 13.4 awk 命令 --- 指定分隔符,提取行
    • 14 系統資源/行程先關命令
      • 14.1 ps 命令 --- 查看系統行程資訊
      • 14.2 kill命令 --- 洗掉指定行程
      • 14.3 systemctl命令 ---管理服務程式的運行狀態
      • 14.4 uptime 命令 --- 查看系統負載
      • 14.5 vmstat 命令 ---監控CPU
      • 14.6 top命令 ---實時監控系統CPU
      • 14.7 iostat命令 ---磁盤I/O性能評估
      • 14.8 netstat/ss --- 顯示網路埠狀態
      • 16.9 firewall-cmd 命令 --- 防火墻相關命令
    • 15.其它命令
    • 常用快捷方式
  • 總結

linux 系統命令總結大全

關于作者

  • 作者介紹


    📣 博客主頁作者主頁
    📣 簡介

    云計算領域優質創作者🏆、學長的it故事 公眾號創作者👱、在校期間參與眾多計算機先關的校賽、省賽、國賽,斬獲系列獎項,2019年考取華為資深工程師、紅帽工程師等系列認證,

    📣 關注我簡歷模板、學習資料、檔案下載、技術支持


前言

? 今天呢,下了很大的決心,準備將linux命令做一個真正的總結、因為之前看了很多linux 命令先關的文章,都不全,所以,博主將這兩年沉淀下來的技術,通過自己的理解,將基礎命令、常用的都整理出來,對初學者或者linux 愛好者都有一定的作用,偶爾可以翻翻,查下基礎命令,

? 后續呢,博主將分享dockerk8skvm負載均衡高可用等高級技術,

0.IP 地址相關命令

0.1 ifconfig 命令 —顯示網路設備資訊

  • 案例演示

    # 啟動/關閉指定網卡
    [root@web_server01~]# ifconfig eth1 down
    [root@web_server01~]# ifconfig eth1 up
    
    # 臨時設定ip 地址
    [root@web_server01~]# ifconfig eth0 192.168.1.100 
    [root@web_server01~]# ifconfig eth0 192.168.1.100 netmask 255.255.255.0
    [root@web_server01~]# ifconfig eth0 192.168.1.100 netmask 255.255.255.0 broadcast 192.168.1.254
    
    # 洗掉臨時IP 地址
    [root@web_server01~]# ifconfig eth0 del 192.168.1.100 netmask 255.255.255.0
    
    
    

02.ip 命令 —顯示與操作路由

  • 案例演示

    # 用ip命令顯示網路設備的運行狀態:
    [root@web_server01~]# ip link list
    
    #顯示核心路由
    [root@web_server01~]# ip route list
    [root@web_server01~]# ip route show
    
    # 查看eht0 網卡資訊(--> ip a)
    [root@web_server01~]# ip address show eth0
    
    
    

03.dhclient 命令 — 動態獲取或釋放IP地址

  • 案例演示

    # 在指定網路介面上發出DHCP請求:
    [root@web_server01~]# dhclient eth0
    
    # 從指定的服務器獲取ip地址
    [root@web_server01~]# dhclient -s 10.0.0.7
    
    # 釋放IP地址:
    [root@web_server01~]# dhclient -r
    
    # 停止運行dhclient:
    [root@web_server01~]# dhclient -x
    
    

04.nmtui —界面修改網卡地址資訊

  • 案例演示

    [root@web_server01~]# nmtui
    

05.nmcli 命令 — 設定ip地址

  • 案例演示

    #顯示所有連接的串列:
    [root@web_server01~]# nmcli con show
    
    # 查看介面資訊:
    [root@web_server01~]#nmcli device show 
    
    # 定義一個名字為default的新連接,它將使用DHCP通過eth0設備的以太網自動連接 :
    [root@web_server01~]# nmcli con add con-name "default" type ethernet ifname  eth0  
    
    #關閉自動連接:
    [root@web_server01~]# nmcli connection modify "static" connection.autoconnect  no  
    
    # 添加DNS:
    [root@web_server01~]# nmcli connection modify team0 ipv4.dns 8.8.8.8 
    

1.檔案目錄命令

1.1 ls 命令 --顯示目錄下的內容

  • 案例演示

    list=ls      查看檔案或目錄是否存在
    
    #檔案或目錄路徑資訊
    [root@web_server01~]# ls
    
    # 顯示目錄資訊
    [root@web_server01~]# ll -d rivers/
    drwxr-xr-x 2 root root 6 Sep 11 22:59 rivers/
    
    #查看資料的屬性資訊(-->ll 命令)
    [root@web_server01~]# ls -l apache-tomcat-9.0.52.tar.gz 
    -rw-r--r-- 1 root root 11524133 Jul 31 12:22 apache-tomcat-9.0.52.tar.gz
    
    # 查看目錄中隱藏檔案
    [root@web_server01~]# ls -a      
    
    #將目錄中的資訊按照時間進行排序顯示
    [root@web_server01~]# ls -lt
         
    #按照時間資訊,進行反向排序
    [root@web_server01~]# ls -ltr    
    
    #顯示的資料資訊大小,以人類可讀方式顯示
    [root@web_server01~]# ls -lh
    total 11M
    -rw-------. 1 root root 1.7K Aug 23 15:38 anaconda-ks.cfg
    -rw-r--r--  1 root root  11M Jul 31 12:22 apache-tomcat-9.0.52.tar.gz
    drwxr-xr-x  2 root root    6 Sep 11 22:59 rivers
    
    

1.2 cd 命令 —切換目錄命令

  • 案例演示

    # change directory==cd   切換目錄命令
        cd /xxx   絕對
    	cd xxx    相對
    	cd ..     上一級
    	cd ../../ 上多級
    	cd -      回傳上一次所在路徑
    	cd/cd ~   回傳到用戶家目錄
    	
    [root@web_server01~]# cd /usr/local/
    [root@web_server01/usr/local]# cd ..
    [root@web_server01/usr]# cd ../../
    [root@web_server01/]# cd --
    [root@web_server01~]# 
    [root@web_server01~]# cd hbs/
    
    	
    

1.3 cp 命令—復制檔案或目錄

  • 案例演示

    # 常用方式
    cp                  復制檔案或目錄資料到其他目錄中
    cp -r               遞回復制目錄資料
    \cp                 強行覆寫資料
    	
    
    #復制目錄:將rivers目錄移動到/opt目錄
    [root@web_server01~]# cp -R rivers/ /opt/
    
    #將檔案test1改名為test2: -f 沒有提示, 或者 \cp 
    [root@linuxcool ~]# cp -f test1 test2
    
    #復制多個檔案:(將1.txt、2.txt、3.txt 復制到/opt/rivers)
    [root@web_server01~]# touch {1..3}.txt  # 創建3個文本
    [root@web_server01~]# cp 1.txt 2.txt 3.txt /opt/rivers/
    
    #互動式地將目錄 /opt/rivers/ 中的所有.txt檔案復制到目錄 /root 中:
    [root@web_server01~]# cp /opt/rivers/*.txt /root/
    cp: overwrite ‘/root/1.txt’? y
    cp: overwrite ‘/root/2.txt’? y
    cp: overwrite ‘/root/3.txt’? y
    
    這里沒有加引數 f ,就會有提示
    
    

1.4 mkdir —創建目錄

  • 案例演示

    make directory=mkdir   創建目錄
    mkdir -p 多級目錄 
    
    #在作業目錄下,建立一個名為 rivers02 的子目錄:
    [root@web_server01~]# mkdir rivers02
    
    # 在目錄root/rivers02/下建立子目錄hbs,并且設定檔案屬主有讀、寫和執行權限,其他人無權訪問
    [root@web_server01~]# mkdir -m 700  /root/rivers02/hbs 
    
    # 同時創建子目錄a1,b1,c1:
    [root@web_server01~/rivers]# mkdir a1 b1 c1
    [root@web_server01~/rivers]# ls
    a1  b1  c1
    [root@web_server01~/rivers]# 
    
    # 創建多級目錄/忽略錯誤提示(遞回創建目錄 -p)
    [root@web_server01~]# mkdir -p /a/b/c
    
    

1.5 rmdir 命令 — 洗掉空目錄

  • 案例演示

    # 洗掉目錄
    [root@web_server01~/rivers]# ls
    a1  b1  c1
    [root@web_server01~/rivers]# rmdir a1 b1 c1
    
    

1.6 tree 命令 —查看目錄結構

  • 案例演示

    [root@web_server01~/rivers02]# mkdir xixi
    [root@web_server01~/rivers02]# mkdir heihei
    
    # 只顯示n層目錄(n為數字):
    [root@web_server01~/rivers02]# tree -L 1
    .
    ├── hbs
    ├── heihei
    └── xixi
    
    
    # 用檔案和目錄的更改時間排序:
    
    [root@web_server01~/rivers02]# tree -t
    .
    ├── heihei        
    ├── xixi
    └── hbs
    
    以相反次序排序:
    [root@web_server01~/rivers02]# tree -r
    .
    ├── xixi
    ├── heihei
    └── hbs
    
    # 在每個檔案或目錄之前,顯示完整的相對路徑:
    
    [root@web_server01~/rivers02]# tree -f
    .
    ├── ./hbs
    ├── ./heihei
    └── ./xixi
    
    # 只顯示目錄:
    [root@web_server01~/rivers02]# tree -d
    .
    ├── hbs
    ├── heihei
    └── xixi
    
    #顯示所有檔案和目錄:
    [root@web_server01~/rivers02]# tree -a
    .
    ├── hbs
    ├── heihei
    └── xixi
    
    

1.7 mv 命令 — 移動或改名檔案

  • 案例演示

    # 常用引數
    -i	若存在同名檔案,則向用戶詢問是否覆寫
    -f	覆寫已有檔案時,不進行任何提示
    -b	當檔案存在時,覆寫前為其創建一個備份
    -u
    當源檔案比目標檔案新,或者目標檔案不存在時,才執行移動此操作
    
    # 將 1.txt 重命名 100.php
    [root@web_server01~]# mv 1.txt 100.php
    
    # 將 2.txt 移動到 /opt
    [root@web_server01~]# mv 2.txt /opt/
    
    # 將目錄hbs移動目錄rivers中(前提是目錄hbs已存在,若不存在則改名):
    [root@web_server01~]# mv hbs/ /root/rivers
    
    # 將./rivers/hbs/目錄下的檔案移動到當前目錄下:
    [root@web_server01~]# mv ./rivers/hbs/* .
    
    

1.8 pwd 命令 — 顯示當前路徑

  • 案例演示

    # 查看當前作業目錄路徑:
    [root@web_server01~/rivers02]# pwd
    /root/rivers02
    

2.文本編輯命令

2.1 cat 命令 —顯示檔案內容

  • 案例演示

    #查看檔案的內容:
    [root@nginx-server~]# cat lan.txt 
    world 
    hello world
    hello
    [root@nginx-server~]# 
    
    
    #查看檔案的內容,并顯示行數編號:
    [root@nginx-server~]# cat -n lan.txt 
         1	world 
         2	hello world
         3	hello
    [root@nginx-server~]# 
    
    #查看檔案的內容,并輸出到另外一個檔案中:
    [root@nginx-server~]# cat -n lan.txt  > ndy.txt
    [root@nginx-server~]# cat ndy.txt 
         1	world 
         2	hello world
         3	hello
    [root@nginx-server~]# 
    # 清空檔案的內容:
    [root@nginx-server~]# cat /dev/null > /root/ndy.txt 
    [root@nginx-server~]# cat ndy.txt 
    
    
    # 持續寫入檔案內容,碰到EOF符后結束并保存:
    [root@nginx-server~]# cat > index.html <<EOF
    > ni daye de
    > EOF
    [root@nginx-server~]#
    

2.2 vi/vim 命令 —修改組態檔

  • 案例演示

    # 命令列模式
    命令模式-->插入模式
    	i   --- 表示從游標所在位置進入編輯狀態    
    	I   --- 表示將游標移動到一行的行首,再進入編輯狀態
    	o   --- 在游標所在行的下面,新起一行進行編輯
    	O   --- 在光變所在行的上面,新起一行進行編輯
    	a   --- 將游標移動到右邊的下一個字符,進行編輯
    	A   --- 將游標移動到一行的行尾,進入到編輯狀態
    	C   --- 將游標到行尾內容進行洗掉,并進入編輯狀態
    	cc  --- 將整行內容進行洗掉并進入編輯狀態
    	
    	大寫字母G   將游標快速切換尾部
    	小寫字母gg  將游標快速切換首部
    	ngg         n表示移動到第幾行
    	$           將游標移動到一行的結尾
    	0/^         將游標移動到一行的行首
    
    # 末行模式
    :wq --- 保存并退出
    :w
    :q
    :wq!--- 強制保存退出
    :q! --- 強制退出
    
    # 快速洗掉命令
    d$:表示洗掉當前游標所在位置到行尾的內容
    d^:表示洗掉當前游標所在位置到第一個行首非空白字符位置的內容
    dd:洗掉當前游標所在行整行
    5dd:洗掉包括當前游標所在行在內的5行
    %d: 表示全部洗掉
    
    # 使用技巧
    將一行內容進行洗掉(剪切)   	deletedelete=dd
    將多行內容進行洗掉(剪切)   	3dd
    將內容進行粘貼                 	p
    粘貼多次內容                   	3p
    復制一行內容                   yy
    復制多行內容                   3yy	
    操作錯誤如何還原     	       小寫字母u  undo
    ------------------------------------------------
    
    ctrl +v         選中想選的,然后shift+d 批量洗掉
    ctrl +v          選中想選的,然后shift+i,輸入# ,然后按2次esc 批量注釋
    ctrl +v          選中想選的,然后d ,批量取消注釋,
    

2.3 touch 命令 --創建檔案、修改訪問時間

  • 案例演示

    # 創建空檔案
    [root@web_server01~]# touch lan.txt
    
    # 批量創建檔案
    [root@web_server01~]# touch {1..2}.txt
    
    # 修改訪問時間
    [root@web_server01~]# stat 1.txt                # 查看訪問時間
      File: ‘1.txt’
      Size: 0         	Blocks: 0          IO Block: 4096   regular empty file
    Device: 803h/2051d	Inode: 134398235   Links: 1
    Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
    Access: 2021-09-12 09:40:34.112793455 +0800
    Modify: 2021-09-12 09:40:34.112793455 +0800
    Change: 2021-09-12 09:40:34.112793455 +0800
     Birth: -
     
     [root@web_server01~]# touch -t 2003141314 1.txt   # 修改訪問時間,20年3月14日13:14分
    [root@web_server01~]# stat 1.txt 
      File: ‘1.txt’
      Size: 0         	Blocks: 0          IO Block: 4096   regular empty file
    Device: 803h/2051d	Inode: 134398235   Links: 1
    Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
    Access: 2020-03-14 13:14:00.000000000 +0800
    Modify: 2020-03-14 13:14:00.000000000 +0800
    Change: 2021-09-12 09:45:31.331419636 +0800
     Birth: -
    # -a  只更改訪問時間;
    # -m  只更改修改時間
    

2.4 echo 命令 —輸出命令

  • 案例演示

  • 主要用于列印字符或者回顯

  • 常常和管道符連用

  • “>” 覆寫

  • “>>” 追加

  • 擴展 -e,主要用于寫腳本,以多行的方式寫入

    # 輸出一段字符
    [root@web_server01~]# echo 'i love you'
    i love you
    
    # 輸出變數提取后的值
    [root@web_server01~]# echo $PS1
    [\[\e[31;1m\]\u\[\e[0m\]\[\e[32;1m\]@\h\[\e[0m\]\[\e[36;1m\]\w\[\e[0m\]]\$
    
    # 將字符 重定向到 檔案里
    [root@web_server01~]# echo '人生只若如初見' > hh.txt
    
    # 使用反引號執行命令,并將結果顯示在終端
    [root@web_server01~]# echo `date`
    Sun Sep 12 10:07:59 CST 2021
    [root@web_server01~]# 
    
    # 擴展 -e,主要用于寫腳本
    \033[30m 黑色字 \033[0m
    \033[31m 紅色字 \033[0m
    \033[32m 綠色字 \033[0m
    \033[33m 黃色字 \033[0m
    \033[34m 藍色字 \033[0m
    \033[35m 紫色字 \033[0m
    \033[36m 天藍字 \033[0m
    \033[37m 白色字 \033[0m
    \033[40;37m 黑底白字 \033[0m
    \033[41;37m 紅底白字 \033[0m
    \033[42;37m 綠底白字 \033[0m
    \033[43;37m 黃底白字 \033[0m
    \033[44;37m 藍底白字 \033[0m
    \033[45;37m 紫底白字 \033[0m
    \033[46;37m 天藍底白字 \033[0m
    \033[47;30m 白底黑字 \033[0m
    
    
  • 多行寫入方式 \n

      [root@web_server01~]# echo "rivers01\nrivers02\nrivers03" 
      rivers01\nrivers02\nrivers03
      [root@web_server01~]# echo -e "rivers01\nrivers02\nrivers03" 
      rivers01
      rivers02
      rivers03
      [root@web_server01~]# echo -e "rivers01\nrivers02\nrivers03" > file1.txt 
      [root@web_server01~]# cat file1.txt 
      rivers01
      rivers02
      rivers03
      [root@web_server01~]
    

2.5 rm 命令 —洗掉命令

  • 案例演示

     # 溫馨提示:
      我們在執行rm之前最好先確認一下在哪個目錄,到底要洗掉什么東西,操作時保持高度清醒的頭腦,很多時候翻車都翻在這里,
      
      # 常用引數
      -f	忽略不存在的檔案,不會出現警告資訊
      -i	洗掉前會詢問用戶是否操作
      -r/R	遞回洗掉
      -v	顯示指令的詳細執行程序
      
      # 洗掉前逐一詢問確認:
      [root@web_server01~]# rm -i 1.txt 2.txt 3.txt 
      rm: remove regular empty file ‘1.txt’? y
      rm: remove regular empty file ‘2.txt’? y
      rm: remove regular file ‘3.txt’? y
      [root@web_server01~]# 
      
      #直接洗掉,不會有任何提示
      [root@web_server01~]# rm -f 100.php 
      
      # 遞回洗掉目錄及目錄下所有檔案:
      [root@web_server01~]# ls rivers02/
      1.txt  hbs  heihei  xixi
      [root@web_server01~]# rm -rf rivers02/
      [root@web_server01~]# 
      
      # 洗掉當前目錄下所有檔案:
      [root@web_server01~/rivers]# ls
      1  hbs
      [root@web_server01~/rivers]# rm -rf *
      [root@web_server01~/rivers]# ls
      [root@web_server01~/rivers]# 
      
      #清空系統中所有的檔案(謹慎):如果是用了,準備跑路吧
      [root@web_server01~]# rm -rf /*
    

2.6 tail 命令 —查看檔案尾部內容

  • 案例演示

    #顯示檔案shadow的最后10行:
    [root@web_server01~]# tail /etc/shadow
    
    #顯示檔案anaconda-ks.cfg 的內容,從第20行至檔案末尾:
    
    [root@web_server01~]# tail +20 anaconda-ks.cfg 
     
    #顯示檔案shadow的最后10個字符:
    [root@web_server01~]# tail -c 10 /etc/shadow
    862::::::
    [root@web_server01~]#
    
    #一直變化的檔案總是顯示后10行:(主要用于看日志)
    [root@web_server01~]# tail -f /var/log/yum.log
    
    #顯示幫助資訊:
    [root@web_server01~]# tail --help
    
    

2.7 head命令 —顯示檔案開頭內容

  • 案例演示

    # 顯示前3行檔案內容:
    [root@web_server01~]# head -n 3 /etc/shadow
    
    # 顯示檔案名資訊,并顯示檔案前兩行:
    [root@web_server01~]# head -v -n 2 lan.txt 
    ==> lan.txt <==
    i love you
    1234151
    [root@web_server01~]# 
    
    #顯示檔案前5個字符:
    [root@web_server01~]# head -c 10 lan.txt
    i love you
    

2.9 sort 命令 --排序命令

  • 案例演示

    # sort命令是在Linux里非常有用,它將檔案進行排序,并將排序結果標準輸出,sort命令既可以從特定的檔案,也可以從stdin中獲取輸入,
    
    # -r 以相反的順序來排序
    # -f 忽略大小寫
    #-b	忽略每行前面開始出的空格字符
    # -o <輸出檔案>	將排序后的結果存入制定的檔案
    
    # 忽略大小寫排序
    [root@web_server01~]# sort -f xixi.txt 
    a
    B
    c
    
    # 將排序結果 輸出到 hbs/a.txt里面
    [root@web_server01~]# sort xixi.txt -o hbs/a.txt
    [root@web_server01~]# cat hbs/a.txt 
    a
    B
    c
    
    # 忽略每行前面開始出現的空格字符
    [root@web_server01~]# cat lan.txt 
     i love you
     1234151
    asdfdbsd
     aa
    [root@web_server01~]# sort -b lan.txt 
     1234151
     aa
    asdfdbsd
     i love you
    [root@web_server01~]#
    
    # 以相反的順序取反
    [root@web_server01~]# sort -r xixi.txt 
    c
    B
    a
    
    

2.10 uniq 命名 —去重

  • 案例演示

    # 常用引數
    -c	列印每行在文本中重復出現的次數
    -d	只顯示有重復的紀錄,每個重復紀錄只出現一次
    -u	只顯示沒有重復的紀錄
    
    
    # 列印每行在檔案中出現重復的次數
    [root@web_server01~]# cat hh.txt 
    a
    a
    b
    c
    [root@web_server01~]# uniq -c hh.txt 
          2 a
          1 b
          1 c
    [root@web_server01~]# 
    
    #只顯示有重復的紀錄,且每個紀錄只出現一次
    [root@web_server01~]# uniq -d hh.txt 
    a
    [root@web_server01~]# 
    
    # 只顯示沒有重復的紀錄
    [root@web_server01~]# uniq -u hh.txt 
    b
    c
    [root@web_server01~]#
    
    # 洗掉連續檔案中連續的重復行:
    [root@web_server01~]# uniq  hh.txt 
    a
    b
    c
    
    

2.11 wc 命令 —用于統計文本、字符(數字、符號、空格、行)

  • 案例演示

    # 常用引數
    -w	統計字數,或--words:只顯示字數,一個字被定義為由空白、跳格或換行字符分隔的字串
    -c	統計位元組數,或--bytes或--chars:只顯示Bytes數
    -l	統計行數,或--lines:只顯示列數
    
    [root@web_server01~]# cat lan.txt 
    world 
    hello world
    hello
    [root@web_server01~]# 
    
    # 統計字數
    [root@web_server01~]# wc -w lan.txt 
    4 lan.txt
    
    #統計行數
    [root@web_server01~]# wc -l lan.txt 
    3 lan.txt
    
    # 列印最長行的長度
    [root@web_server01~]# wc -L lan.txt 
    11 lan.txt
    
    

2.12 more 顯示文本檔案內容

  • 案例演示

    # more命令用于將內容較長的文本檔案內容(不能在一屏顯示完)進行分屏顯示,并且支持在顯示時定位關鍵字,而對于內容較少的文本檔案內容則推薦使用cat命令查看,
    
    #顯示檔案anaconda-ks.cfg的內容,每5行顯示一次,而且在顯示之前先清屏:
    [root@web_server01~]#  more -c -5 anaconda-ks.cfg
    #version=DEVEL
    # System authorization information
    auth --enableshadow --passalgo=sha512
    # Use CDROM installation media
    cdrom
    [root@web_server01~]#
    
    #顯示檔案file的內容,每5行顯示一次,而且在顯示之后再清屏:
    [root@web_server01~]# more -p -5 anaconda-ks.cfg
    #version=DEVEL
    # System authorization information
    auth --enableshadow --passalgo=sha512
    # Use CDROM installation media
    cdrom
    --More--(7%)
    
    #從第 20 行開始顯示 anaconda-ks.cfg 之檔案內容 :
    [root@web_server01~]#  more +20 anaconda-ks.cfg 
    
    # 使用技巧
    Space鍵:顯示文本的下一屏內容
    Enter鍵:向下n行,需要定義,默認為1行
    斜線符\:接著輸入一個模式,可以在文本中尋找下一個相匹配的模式
    H鍵:顯示幫助屏
    B鍵:顯示上一屏內容
    Q鍵:退出more命令
    Ctrl+F、空格鍵:向下滾動一屏
    Ctrl+B:回傳上一屏
    =: 輸出當前的行號
    :f:輸出檔案名和當前的行號
    V:呼叫vi編輯器
    !:呼叫Shell,并執行命令
    

2.13 less命令 — 分頁顯示內容

  • 案例演示

    #瀏覽文字檔案的內容,用less命令顯示檔案時,PageUp鍵向上翻頁,PageDown鍵向下翻頁,要退出less程式,應按Q鍵,
    
    less的作用與more十分相似,不同點為less命令允許用戶向前或向后瀏覽檔案,而more命令只能向前瀏覽 ,
    
    #查看檔案 :
    [root@web_server01~]# less anaconda-ks.cfg
    
    #ps查看行程資訊并通過less分頁顯示:
    [root@linuxcool ~]# ps -ef |less 
    

2.14 stat 命令 – 查看資料詳細屬性資訊

  • 案例演示

    # 常用引數
    -L	支持符號鏈接
    -f	顯示檔案系統的資訊
    -t	以簡潔的方式輸出
    --help	顯示命令幫助資訊
    
    # 查看檔案 anaconda-ks.cfg 的三種時間狀態:Access,Modify,Change:
    [root@web_server01~]# stat anaconda-ks.cfg 
      File: ‘anaconda-ks.cfg’
      Size: 1681      	Blocks: 8          IO Block: 4096   regular file
    Device: 803h/2051d	Inode: 134318467   Links: 1
    Access: (0600/-rw-------)  Uid: (    0/    root)   Gid: (    0/    root)
    Access: 2021-09-12 10:26:28.679267897 +0800
    Modify: 2021-08-23 15:38:37.120883350 +0800
    Change: 2021-08-23 15:38:37.120883350 +0800
     Birth: -
    
    
    # 查看檔案系統資訊
    [root@web_server01~]# stat -f anaconda-ks.cfg 
      File: "anaconda-ks.cfg"
        ID: 80300000000 Namelen: 255     Type: xfs
    Block size: 4096       Fundamental block size: 4096
    Blocks: Total: 25757146   Free: 25197394   Available: 25197394
    Inodes: Total: 51539456   Free: 51473814
    
    

2.15 ln 命令 —創建連接檔案

  • 案例演示

    # 常用引數
    ln 源檔案 鏈接檔案 創建硬鏈接
    ln -s       創建軟鏈接
    
    
    # 將解壓的mysql 鏈接到 mysql5.7
    [root@web_server01~]#ln -s mysql-5.7.22-linux-glibc2.12-x86_64/ mysql5.7
    

2.16 dd 命令 — 模擬創建出指定大小的檔案

  • 案例演示

    #  模擬創建出指定大小的檔案
    #從哪取出資料  放到哪          占用1個block多少空間     總共使用多少個block
    [root@web_server01~]# dd if=/dev/zero of=/opt/liuaoni.txt bs=10 count=100
    100+0 records in
    100+0 records out
    1000 bytes (1.0 kB) copied, 0.000335941 s, 3.0 MB/s
    [root@web_server01~]# 
    
    # 查看 liuaoni.txt 檔案大小
    [root@web_server01~]# du -h /opt/liuaoni.txt 
    4.0K	/opt/liuaoni.txt
    

2.17 chattr 命令 — 改變檔案屬性

  • 案例演示

    # 常用引數
    a:讓檔案或目錄僅供附加用途,
    b:不更新檔案或目錄的最后存取時間,
    c:將檔案或目錄壓縮后存放,
    d:將檔案或目錄排除在傾倒操作之外,當dump程式執行時,該檔案或目錄不會被dump備份
    i:不得任意更動檔案或目錄,
    s:保密性洗掉檔案或目錄,
    S:即時更新檔案或目錄,
    u:預防意外洗掉,
    
    
    # 用chattr命令防止系統中某個關鍵檔案被修改:
    
    [root@web_server01~]# touch mm.sh
    [root@web_server01~]# chattr +i mm.sh 
    
    #會顯示如下屬性
    [root@web_server01~]# lsattr mm.sh 
    ----i----------- mm.sh
    
    讓某個檔案只能往里面追加資料,但不能洗掉,適用于各種日志檔案:
    [root@web_server01~]# chattr +a /var/log/messages
    
    
    # 創建一個連root 都無法刪除的檔案
    [root@web_server01~]# chattr -u mm.sh 
    [root@web_server01~]# rm -f mm.sh 
    rm: cannot remove ‘mm.sh’: Operation not permitted
    [root@web_server01~]# ll mm.sh 
    -rw-r--r-- 1 root root 0 Sep 13 17:08 mm.sh
    [root@web_server01~]# chmod 777 mm.sh 
    chmod: changing permissions of ‘mm.sh’: Operation not permitted
    [root@web_server01~]# rm -rf mm.sh 
    rm: cannot remove ‘mm.sh’: Operation not permitted
    
    # 解除 檔案屬性
    [root@web_server01~]# chattr -i mm.sh 
    [root@web_server01~]# 
    [root@web_server01~]# rm -rf mm.sh 
    
    
    # 影藏 chattr 命令
    [root@web_server01~]# mv /usr/bin/cha
    chacl   chage   chattr  
    [root@web_server01~]# mv /usr/bin/chattr /opt/chattr/
    [root@web_server01~]# mv chattr h    -->更改命令,使用別名h隱藏身份
    [root@web_server01~]# /opt/ftl/h +i /home/omd/h.txt   -->利用h 行駛chattr命令
    
    # 查看加密資訊
    lsattr /home/omd/h.txt    -->查看加密資訊
    
    
    #恢復隱藏命令
    mv h /usr/bin/chattr
    chattr -i /home/omd/h.txt
    lsattr /home/omd/h.txt
    
    

3 .修改主機名

3.1 hostname 命令 —查看修改主機名稱

  • 案例演示

    # 查看主機名
    [root@web_server01~]# hostname
    web_server01
    
    # 臨時修改主機名,重啟就恢復了
    [root@web_server01~]# hostname nginx-server
    [root@web_server01~]# bash
    [root@nginx-server~]# 
    

3.2 hostnamectl — 直接修改主機名稱(centos7)

  • 案例演示

    #示當前主機名稱的配置資訊:
    [root@nginx-server~]# hostnamectl status
       Static hostname: web_server01
    Transient hostname: nginx-server
             Icon name: computer-vm
               Chassis: vm
            Machine ID: 6995341f51984532aa0222cddb7a2bd0
               Boot ID: 416ee9b854804fa1aaa1bad439c5bb24
        Virtualization: vmware
      Operating System: CentOS Linux 7 (Core)
           CPE OS Name: cpe:/o:centos:centos:7
                Kernel: Linux 3.10.0-957.el7.x86_64
          Architecture: x86-64
    
    # 使用set-hostname命令來設定或修改主機名稱:
    [root@nginx-server~]# hostnamectl set-hostname web01-server
    

4.linux 用戶及權限管理

4.1 useradd 命令 — 創建用戶

  • 案列演示

    # 創建一個系統登錄用戶 nginx
    [root@nginx-server~]# useradd -M -s /sbin/nologin nginx
    
    # 新建hbs用戶,并加入到root,itboy附屬組
    [root@nginx-server~]# useradd -G root,itboy hbs
    
    #新建 hbs01 用戶,并制定新的家兗,同時制定其登錄的shell
    [root@nginx-server~]# useradd hbs01 -d /tmp/ -s /bin/bash
    
    

4.2userdel 命令 —洗掉用戶

  • 案例演示

    #保留用戶的家目錄
    [root@nginx-server~]# userdel  hbs01
    
    #洗掉用戶及用戶家目錄,用戶login系統無法洗掉
    [root@nginx-server~]# userdel -r hbs01
    
    #強制洗掉用戶及該用戶家目錄,不論是否login系統
    [root@nginx-server~]# userdel -rf hbs01
    

4.3 usermod命令 —修改用戶及組的屬性

  • 案例演示

    #將hbs用戶屬組修改為root,itboy附屬組;
    [root@nginx-server~]#usermod -G root,itboy hbs
    
    #將hbs用戶加入到itboy,root附屬組,-a為添加新組,原組保留;
    [root@nginx-server~]# usermod -a -G itboy,root hbs
    
    #修改hbs用戶,并指定新的家目錄,同時指定其登陸的SHELL;
    [root@nginx-server~]# usermod -d /tmp/ -s /bin/sh hbs  
    
    #將hbs用戶名修改為rivers;
    [root@nginx-server~]# usermod -l hbs rivers
    
    
    #鎖定rivers用戶及解鎖rivers用戶方法;
    [root@nginx-server~]# usermod -L rivers 
    [root@nginx-server~]# usermod -U rivers
    
    

4.4 groupadd 命令 —創建用戶組

  • 案例演示

    # 創建一個itboy 用戶組
    [root@nginx-server~]# groupadd itboy
    
    # 新建一個teacher 組,并指定GID 1000
    [root@nginx-server~]# groupadd -g 1000 teacher
    
    # 新建一個system 組,組名為adminroot
    [root@nginx-server~]# groupadd -r system adminroot
    
    

4.5 groupmod 命令 —修改組名

  • 案例演示

    # groupmod修改組GID號,將原eacher組gid改成gid 999;
    [root@nginx-server~]# groupmod -g 999 teacher
    
    # groupmod修改組名稱,將teacher組名,改成student
    [root@nginx-server~]# groupmod -n student teacher
    

4.6 chown 命令 --修改檔案/目錄屬主、陣列

  • 案例演示

    # 常用引數
    -R	對目前目錄下的所有檔案與子目錄進行相同的擁有者變更
    -c	若該檔案擁有者確實已經更改,才顯示其更改動作
    -f	若該檔案擁有者無法被更改也不要顯示錯誤訊息
    -h	只對于連結(link)進行變更,而非該 link 真正指向的檔案
    -v	顯示擁有者變更的詳細資料
    
    
    # 將rivers/ 目錄屬主陣列 改成hbs
    [root@nginx-server~]# chown hbs.hbs rivers
    
    # 將laoni/ 屬主改成 hbs
    [root@nginx-server~]# chown -R hbs laoni/
    
    # 將laoni/* 所有檔案 屬主改成 hbs
    [root@nginx-server~]# chown -R hbs laoni/*
    

4.7 chmod 命令 —改變檔案或目錄權限

  • 案例演示

    # 常用引數
    -c	若該檔案權限確實已經更改,才顯示其更改動作
    -f	若該檔案權限無法被更改也不顯示錯誤訊息
    -v	顯示權限變更的詳細資料
    -R	對目前目錄下的所有檔案與子目錄進行相同的權限變更(即以遞回的方式逐個變更)
    
    
    #將檔案 file1.txt 設為所有人皆可讀取:
    [root@nginx-server~]# touch file1.txt
    [root@nginx-server~]#chmod a+r file.txt  
    
    #將目前目錄下的所有檔案與子目錄皆設為任何人可讀取 :
    [root@nginx-server~]# chmod -R a+r *   
    
    # 將 file.txt 設定為只有該檔案擁有者可以執行:
    [root@nginx-server~]# chmod u+x file.txt
    
    # 授予 hbs用戶 對 rivers 目錄有用所有rwx權限
    [root@nginx-server~]# chmod -R u+rwx rivers/
    
    # 授予 hbs組對 rivers 目錄有用所有rwx權限
    [root@nginx-server~]# chmod -R g+rwx rivers/
    
    # 授予 用戶、組、其他人對 heihei 有rwx 權限
    [root@nginx-server~]# chmod -R u+rwx,g+rwx,o+rwx rivers/
    
    # 撤銷用戶對rivers 的w 權限
    [root@nginx-server~]# chmod u-w rivers/
    
    
    -------------------
    
    chomod 二進制權限設定
    Linux權限可以將rwx用二進制來表示,其中有權限用1表示,沒有權限用0表示;
    Linux權限用二進制顯示如下:
    rwx=111
    r-x=101
    rw-=110
    r--=100
    
    # 授予 hbs用戶 對 rivers 目錄有用所有rwx權限
    [root@nginx-server~]# chmod -R 755 rivers/
    

4.8 passwd 命令 —修改用戶密碼

  • 案例演示

    # 常用引數
    d	洗掉密碼
    -l	鎖定用戶密碼,無法被用戶自行修改
    -u	解開已鎖定用戶密碼,允許用戶自行修改
    -e	密碼立即過期,下次登陸強制修改密碼
    -k	保留即將過期的用戶在期滿后能仍能使用
    -S	查詢密碼狀態
    
    
    # 互動式修改密碼
    [root@nginx-server~]# passwd rivers
    
    # 免互動式修改密碼
    [root@nginx-server~]# echo 123456|passwd --stdin hbs
    Changing password for user hbs.
    passwd: all authentication tokens updated successfully.
    
    # 鎖定密碼不允許用戶修改
    [root@nginx-server~]# passwd -l rivers
    Locking password for user rivers.
    passwd: Success
    [root@nginx-server~]# 
    
    # 解除鎖定密碼,允許用戶修改
    [root@nginx-server~]# passwd -u rivers 
    
    # 下次登錄強制修改密碼
    [root@nginx-server~]# passwd -e rivers
    Expiring password for user rivers.
    passwd: Success
    [root@nginx-server~]# 
    
    
    

4.9 id /whoami 命令 —檢查用戶身份

  • 案例演示

    # 檢查用戶是否存在
    [root@web_server01~]# id hbs
    uid=1002(hbs) gid=1003(hbs) groups=1003(hbs)
    
    # 確認用戶身份
    [root@web_server01~]# who
    root     pts/0        2021-09-12 09:39 (10.0.0.1)
    root     pts/1        2021-09-12 19:17 (10.0.0.1)
    [root@web_server01~]# whoami
    root
    
    

4.10 su 命令 —切換用戶命令

  • 案例演示

    # 切換用戶身
    [hbs@web_server01/root]$ su hbs
    Password: 
    
    

4.11 w 命令 —查看負載資訊/查看系統用戶登錄資訊

  • 案例演示

    [hbs@web_server01/root]$ w
     19:35:11 up  9:55,  2 users,  load average: 0.00, 0.01, 0.05
    USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
    root     pts/0    10.0.0.1         09:39    3:38m  1.15s  0.55s bash
    root     pts/1    10.0.0.1         19:17    7.00s  0.19s  0.00s w
    [hbs@web_server01/root]$ 
    
    

5.軟體包管理

5.1 rpm 命令 —RPM 軟體包管理器

  • 案例演示

    # rpm 管理軟體程式包的
    # rpm -qa 軟體名稱   	查看軟體大禮包是否安裝成功
    # rpm -ql 軟體名稱   	查看軟體大禮包中都有什么
    # rpm -qf 檔案名稱(絕對路徑)   查看檔案屬于哪個軟體大禮包
    
    
    #直接安裝軟體包:
    [root@nginx-server~]#  rpm -ivh packge.rpm 
    
    # 卸載rpm包:
    [root@nginx-server~]#  rpm -e package.rpm 
    
    #忽略報錯,強制安裝:
    [root@nginx-server~]#  rpm --force -ivh package.rpm
    
    #列出所有安裝過的包:
    [root@nginx-server~]#  rpm -qa
    
    #查詢rpm包中的檔案安裝的位置:
    [root@nginx-server~]#  rpm -ql httpd
    
    #升級軟體包:
    [root@nginx-server~]# rpm -U file.rpm
    

5.2 yum 命令 — 軟體安裝、卸載

  • 案例演示

     yum install -y 名稱 			直接安裝軟體
    	yum groupinstall -y 包組名稱   	直接安裝軟體包組
    	yum repolist        			查看yum源資訊
    	yum list            			查看哪些軟體可以安裝/查看所有系統已安裝的軟體
    	yum grouplist       			查看哪些軟體包組可以安裝/查看所有系統已安裝的軟體包組
    	yum --help                      help引數可以只顯示命令的引數幫助資訊
    	yum provides locate             獲取命令屬于哪個軟體大禮包
    

5.3 wget 命令 —檔案下載

  • 案例演示

    # 常用引數
    -V	–-version 顯示wget的版本后退出
    -h	–-help 列印語法幫助
    -b,	–-background 啟動后轉入后臺執行
    -e	–-execute=COMMAND
    
    
    wget命令用來從指定的URL下載檔案,wget非常穩定,它在帶寬很窄的情況下和不穩定網路中有很強的適應性,如果是由于網路的原因下載失敗,wget會不斷的嘗試,直到整個檔案下載完畢,如果是服務器打斷下載程序,它會再次聯到服務器上從停止的地方繼續下載,這對從那些限定了鏈接時間的服務器上下載大檔案非常有用,
    
    wget支持HTTP,HTTPS和FTP協議,可以使用HTTP代理,所謂的自動下載是指,wget可以在用戶退出系統的之后在后臺執行,這意味這你可以登錄系統,啟動一個wget下載任務,然后退出系統,wget將在后臺執行直到任務完成,相對于其它大部分瀏覽器在下載大量資料時需要用戶一直的參與,這省去了極大的麻煩,
    
    語法格式: wget [引數]
    
    常用引數:
    
    -V	–-version 顯示wget的版本后退出
    -h	–-help 列印語法幫助
    -b,	–-background 啟動后轉入后臺執行
    -e	–-execute=COMMAND
    
    #使用wget下載單個檔案:
    [root@nginx-server~]# wget https://downloads.mysql.com/archives/get/p/23/file/MySQL-5.7.3-m13-1.linux_glibc2.5.x86_64.rpm-bundle.tar
    
    #下載并以不同的檔案名保存:
    [root@nginx-server~]#  wget -O mysql.tar.gz https://downloads.mysql.com/archives/get/p/23/file/MySQL-5.7.3-m13-1.linux_glibc2.5.x86_64.rpm-bundle.tar
    
    #wget限速下載:
    [root@nginx-server~]# wget --limit-rate=300k https://downloads.mysql.com/archives/get/p/23/file/MySQL-5.7.3-m13-1.linux_glibc2.5.x86_64.rpm-bundle.tar
    
    #使用wget后臺下載:
    [root@nginx-server~]# wget -b https://downloads.mysql.com/archives/get/p/23/file/MySQL-5.7.3-m13-1.linux_glibc2.5.x86_64.rpm-bundle.tar
    
    

5.4 which命令 — 顯示命令檔案所在路徑位置

  • 案例演示

    # 查看命令安裝路徑
    [root@web_server01~]# which vim
    /usr/bin/vim
    [root@web_server01~]# 
    
    

5.5 whereis 命令 —查看命令所在路徑以及命令相關手冊檔案所在路徑

  • 案例演示

    # 查看命令所在路徑以及命令相關手冊檔案所在路徑
    [root@web_server01~]# whereis vim
    vim: /usr/bin/vim /usr/share/vim /usr/share/man/man1/vim.1.gz
    [root@web_server01~]# 
    
    

5.6 alias/unalias 命令 —設定命令別名

  • 案例演示

    # 設定別名  alias 別名='命令資訊'
    [root@web_server01~]# alias eth11='cat /etc/sysconfig/network-scripts/ifcfg-eth1'
    [root@web_server01~]# eth11
    TYPE=Ethernet
    PROXY_METHOD=none
    BROWSER_ONLY=no
    BOOTPROTO=none
    IPADDR=172.16.1.7
    PREFIX=24
    DEFROUTE=yes
    IPV4_FAILURE_FATAL=no
    IPV6INIT=yes
    IPV6_AUTOCONF=yes
    IPV6_DEFROUTE=yes
    IPV6_FAILURE_FATAL=no
    IPV6_ADDR_GEN_MODE=stable-privacy
    NAME=eth1
    DEVICE=eth1
    ONBOOT=yes
    AUTOCONNECT_PRIORITY=-999
    [root@web_server01~]# 
    
    # 取消別名
    #unalias 取消系統別名命令
    #unalias 別名 
    # [root@web_server01~]# unalias eth11
    

6.磁盤管理

6.1 df 命令 — 顯示磁盤空間使用情況

  • 案例演示

    # 常用引數
    -a	顯示所有系統檔案
    -h 以容易閱讀的方式顯示
    
    # 以容易閱讀的方式顯示磁盤磁區使用情況:
    [root@nginx-server~]# df -h
    Filesystem      Size  Used Avail Use% Mounted on
    /dev/sda3        99G  2.0G   97G   2% /
    devtmpfs        442M     0  442M   0% /dev
    tmpfs           453M     0  453M   0% /dev/shm
    tmpfs           453M  7.2M  446M   2% /run
    tmpfs           453M     0  453M   0% /sys/fs/cgroup
    /dev/sda1       197M  105M   93M  54% /boot
    tmpfs            91M     0   91M   0% /run/user/0
    
    # 顯示指定檔案所在磁區的磁盤使用情況
    [root@nginx-server~]# df -h /opt/
    Filesystem      Size  Used Avail Use% Mounted on
    /dev/sda3        99G  2.0G   97G   2% /
    [root@nginx-server~]# 
    
    

6.2 fdisk 命令 —磁盤磁區

  • 案例演示

    [root@nginx-server~]# ls /dev/sd*
    /dev/sda  /dev/sda1  /dev/sda2  /dev/sda3  /dev/sdb
    
    # 查看所有磁區情況
    [root@nginx-server~]# fdisk -l
    
    # 選擇磁區磁盤
    [root@nginx-server~]# fdisk /dev/sda2
    
    
  • linux磁盤磁區

6.3 lsblk 命令 —查看系統的磁盤

  • 案例演示

    #列出所有塊設備 
    [root@nginx-server~]# lsblk 
    NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    sda      8:0    0  100G  0 disk 
    ├─sda1   8:1    0  200M  0 part /boot
    ├─sda2   8:2    0  1.5G  0 part [SWAP]
    └─sda3   8:3    0 98.3G  0 part /
    sdb      8:16   0   10G  0 disk 
    sr0     11:0    1  4.3G  0 rom  
    [root@nginx-server~]# 
    
    # 默認選項不會列出所有空設備
    [root@nginx-server~]# lsblk -a
    
  • linux 磁盤磁區實戰

6.4 free 命令 — 顯示系統記憶體情況

  • 案例演示

    # 顯示記憶體使用情況:
    [root@nginx-server~]# free
                  total        used        free      shared  buff/cache   available
    Mem:         926264       96024      685304        7288      144936      671300
    Swap:       1572860           0     1572860
    
    # 用MB顯示記憶體使用情況
    [root@nginx-server~]# free -m
                  total        used        free      shared  buff/cache   available
    Mem:            904          93         669           7         141         655
    Swap:          1535           0        1535
    [root@nginx-server~]# 
    
    # 用KB顯示記憶體使用情況:
    [root@nginx-server~]# free -k
    
    # 以總和的形式顯示記憶體的使用資訊:
    [root@nginx-server~]# free -t
    
    # 周期性查詢記憶體使用情況:
    [root@nginx-server~]# free -s 10
    
    

6.5 du 命令 —查看空間

  • 案例演示

    # 常用引數
    -a	顯示目錄中所有檔案大小
    -k	以KB為單位顯示檔案大小
    -m	以MB為單位顯示檔案大小
    -g	以GB為單位顯示檔案大小
    -h	以易讀方式顯示檔案大小
    -s	僅顯示總計
    
    # 常用命令
    [root@nginx-server~]#  du -sh /tmp/ 查看當前目錄所有檔案及檔案及的大小
    
    #以易讀方式顯示檔案夾內及子檔案夾大小 :
    [root@nginx-server~]#  du -h scf/  
    
    #以易讀方式顯示檔案夾內所有檔案大小 :
    [root@nginx-server~]#  du -ah scf/   
    
    #輸出當前目錄下各個子目錄所使用的空間 :
    [root@nginx-server~]# du -hc --max-depth=1 scf/ 
    
    #顯示指定檔案所占空間 :
    [root@nginx-server~]#  du log2021.log 
    

7.設備管理

7.1 mount 命令 —檔案系統掛載

  • 案例演示

    #常用引數
    -t	指定掛載型別
    -l	顯示已加載的檔案系統串列
    -h	顯示幫助資訊并退出
    -V	顯示程式版本
    -n	加載沒有寫入檔案“/etc/mtab”中的檔案系統
    -r	將檔案系統加載為只讀模式
    -a	加載檔案“/etc/fstab”中描述的所有檔案系統
    
    #查看版本:
    [root@nginx-server~]# mount -V
    
    #啟動所有掛載:
    [root@nginx-server~]# mount -a
    
    #掛載 /dev/cdrom 到 /mnt:
    [root@nginx-server~]# mount /dev/cdrom /mnt
    
    # 掛載nfs格式檔案系統:
    [root@nginx-server~]#mount -t nfs /123 /mnt  
    
    #掛載第一塊盤的第一個磁區到/etc目錄 :
    [root@nginx-server~]#mount -t ext4 -o loop,default /dev/sda1 /etc
    

7.2 umout 命令 —卸載掛載

  • 案例演示

    #mount 存盤設備檔案  掛載點
    umount      對存盤設備進行卸載
    umount 掛載點
    
    # 卸載 /mnt 掛載點
    [root@web_server01~]# umount /mnt/
    

7.3 lsusb 命令 — 顯示usb 設備串列

  • 案例演示

    # 顯示有關CPU架構的資訊:
    [root@nginx-server~]# lscpu
    
    

8. 網路通訊

8.1 ssh命令 — 安全連接客戶端

  • 案例演示

    #登錄遠程服務器:
    [root@linuxcool ~]# ssh 10.0.0.7
    
    #用hbs用戶連接遠程服務器:
    [root@nginx-server~]# ssh -l hbs 10.0.0.7
    
    #查看磁區串列:
    [root@nginx-server~]# ssh root@10.0.0.7 /sbin/fdisk -l
    root@10.0.0.7's password: 
    
    

8.2 netstat 命令 — 顯示網路狀態

  • 案例演示

    # 常用引數
    -a	顯示所有連線中的Socket
    -p	顯示正在使用Socket的程式識別碼和程式名稱
    -u	顯示UDP傳輸協議的連線狀況
    -i
    顯示網路界面資訊表單
    -n	直接使用IP地址,不通過域名服務器
    
    
    [root@nginx-server~]# netstat -lnutp|grep 22
    tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      6837/sshd           
    tcp6       0      0 :::22                   :::*                    LISTEN      6837/sshd           
    
    
    # 同時還可以使用 ss -lant
    [root@nginx-server~]# ss -lant
    State       Recv-Q Send-Q Local Address:Port               Peer Address:Port              
    LISTEN      0      128             *:22                          *:*                  
    LISTEN      0      100     127.0.0.1:25                          *:*                  
    ESTAB       0      148      10.0.0.7:22                   10.0.0.1:58713              
    LISTEN      0      128            :::22                         :::*                  
    LISTEN      0      100           ::1:25                         :::* 
    

8.3 ping 命令 —測驗主機間網路連通性

  • 案例演示

    # 常用引數
    
    #檢測與www.baidu.com網站的連通性:
    [root@nginx-server~]# ping www.baidu.com
    
    #連續ping4次:
    [root@nginx-server~]# ping -c 4 www.baidu.com 
    #設定次數為4,時間間隔為3秒:
    [root@nginx-server~]# ping -c 4 -i 3 www.baidu.com
    
    #利用ping命令獲取指定網站的IP地址:
    [root@nginx-server~]# ping -c 1 baidu.com | grep from | cut -d " " -f 4
    220.181.38.251
    [root@nginx-server~]# 
    
    

8.5 nslookup 命令 —決議IP地址

  • 案例演示

    # 常用引數
    exit	退出命令
    server	指定決議域名的服務器地址
    set type=soa	設定查詢域名授權起始資訊
    set type=a	設定查詢域名A記錄
    set type=mx	設定查詢域名郵件交換記錄
    
    
    # 安裝nslookup工具
    [root@nginx-server~]# yum -y install bind-utils
    
    # 在非互動模式下查詢域名基本資訊
    [root@nginx-server~]# nslookup www.baiud.com
    Server:		8.8.8.8
    Address:	8.8.8.8#53
    
    Non-authoritative answer:
    Name:	www.baiud.com
    Address: 103.51.144.90
    
    
    

8.6 route 命令 — 顯示并設定路由

  • 案例演示

    # 常用引數
    - C	列印linux核心的路由快取
    -n	不執行DNS反向查找,直接顯示數字形式的ip地址
    -net	到一個網路的路由表
    -host	到一個主機的路由表
    Add	增加指定的路由記錄
    Del	洗掉指定的路由記錄
    gw	設定默認網關
    dev	路由記錄所表示的網路介面
    
    
    # 顯示當前路由
    [root@nginx-server~]# route
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    default         gateway         0.0.0.0         UG    100    0        0 eth0
    10.0.0.0        0.0.0.0         255.255.255.0   U     100    0        0 eth0
    172.16.1.0      0.0.0.0         255.255.255.0   U     101    0        0 eth1
    
    root@nginx-server~]# route -n
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    0.0.0.0         10.0.0.2        0.0.0.0         UG    100    0        0 eth0
    10.0.0.0        0.0.0.0         255.255.255.0   U     100    0        0 eth0
    172.16.1.0      0.0.0.0         255.255.255.0   U     101    0        0 eth1
    [root@nginx-server~]# 
    
    # 臨時添加一條路由記錄:
    [root@nginx-server~]# ip route add 192.168.10.100 via 172.16.1.254 dev eth1
    
    # 洗掉路由記錄
    [root@nginx-server~]# ip route del 192.168.10.100 via 172.16.1.254 dev eth1
    
    
    # 永久配置
    在/etc/sysconfig/network-scripts/目錄下創建route-eth*組態檔,其中eth*為對應的網卡編號,即靜態路由的出口網卡,該組態檔中的路由出口資訊,必須與此檔案名編號一致,否者將造成網卡啟動失敗,導致斷網,
    # cat /etc/sysconfig/network-scripts/route-eth1 
        192.168.10.0/24 via 172.16.1.254 dev eht1
    
    
    

9.tar、zip命令 —壓縮/解壓縮

  • 案例演示

    # 常用幾種格式
    .tar.gz (tar)
    .tar.bz2 (tar),需要安裝bzip2安裝包
    .tar.xz (tar)
    .zip (zip) 跨平臺的
    壓縮比:gz<bz<xz (xz壓縮效果最好,推薦使用tar.xz)
    常用壓縮檔案選項
    -zcf 創建一個gz的檔案壓縮包
    -jcf 創建一個bz2的檔案壓縮包
    -Jcf 創建一個xz格式的檔案壓縮包
    -常用解壓檔案選項
    -xf 解壓指定檔案(gz、xz用)
    -xvf 解壓指定檔案并顯示解壓程序(gz、xz用)
    -xjf 解壓bz2檔案的
    查看壓縮的檔案
    -tvf 不解壓查看一個檔案
    -c      創建歸檔
    -z      壓縮成gz格式
    -j      壓縮成bz2格式
    -v      顯示詳細資訊
    -t      不解壓查看壓縮包內容
    -f      指定要壓碩訓解壓縮的檔案
    -x      解壓縮
    -C      將壓縮檔案解壓到指定目錄
    
    #查看bzip2安裝包
    [root@localhost ~]# ls /mnt/Packages/bzip2-1.0.6-13.el7.x86_64.rpm 
    [root@localhost ~]# rpm -ivh /mnt/Packages/bzip2-1.0.6-13.el7.x86_64.rpm 安裝bzip2安裝包
    warning: /mnt/Packages/bzip2-1.0.6-13.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
    Preparing...                          ################################# [100%]
    	package bzip2-1.0.6-13.el7.x86_64 is already installed
    
    
    #將數字、大小寫字母 壓縮為hehe.tar.bz2包
    [root@localhost ~]# tar -jcf hehe.tar.bz2 [[:alnum:]]  
    
    
    #將所有檔案壓縮成 tar.xz格式
    [root@localhost ~]# tar -Jcf big.tar.xz *  
    
    #不解壓查看big.tar.xz 壓縮包
    [root@localhost ~]# tar -tvf big.tar.xz 
    
    # 解壓digit(單個數字)壓縮包
    [root@localhost opt]# tar xf digit.tar.gz 
    [root@localhost opt]# ls
    1  2  3  4  8  alnum.tar.bz2  big.tar.xz  digit.tar.gz  hehe.tar.bz2
    
    
    # 洗掉數字
    [root@localhost opt]# rm -f [[:digit:]] 
    [root@localhost opt]# ls
    alnum.tar.bz2  big.tar.xz  digit.tar.gz  hehe.tar.bz2
    [root@localhost opt]# tar -xvf digit.tar.gz 
    
    # 解壓到家目錄
    [root@localhost opt]# tar -xvf digit.tar.gz -C ~
    
    # zip 命令
    和gz2一樣,也需要單獨安裝zip和unzip(看情況)
     zip xx.zip 壓縮
     unzip xx.zip 解壓縮
    #查看有沒有zip 命令
    [root@localhost opt]# which zip    
    /usr/bin/which: no zip in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)
    [root@localhost opt]# ls /mnt/Packages/zip-3.0-11.el7.x86_64.rpm 
    /mnt/Packages/zip-3.0-11.el7.x86_64.rpm
    [root@localhost opt]# rpm -ivh /mnt/Packages/zip-3.0-11.el7.x86_64.rpm 安裝zip命令
    warning: /mnt/Packages/zip-3.0-11.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
    Preparing...                          ################################# [100%]
    Updating / installing...
       1:zip-3.0-11.el7                   ################################# [100%]
    [root@localhost opt]# 
    
    # 將數字壓縮zip格式
    [root@localhost ~]# zip liuaoni.zip [[:digit:]] 
      adding: 1 (stored 0%)
      adding: 2 (stored 0%)
      adding: 3 (stored 0%)
      adding: 4 (stored 0%)
      adding: 8 (stored 0%)
      
     # 解壓zip檔案
    [root@localhost ~]# unzip liuaoni.zip 
    
    
    

10. 檔案傳輸

10.1 curl 命令 —檔案傳輸工具

  • 案例演示

    # 常用引數
    -u	通過服務端配置的用戶名和密碼授權訪問
    -o  指定下載到目錄
    -i 顯示 http response 的頭資訊
    -v  顯示通訊請求程序
    
    # 將阿里云鏡像源下載到 本地 /etc/yum.repo.d/,名字為CentOS-Base.repo
    [root@localhost ~]#curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-6.repo
    
    # 可以查看頁面代碼
    [root@nginx-server~]# curl www.dy.com
    
    # 顯示 http response 的頭資訊,連同網頁代碼一起
    [root@nginx-server~]#  curl -i www.sina.com
    
    # 顯示一次 http 通信的整個程序,包括埠連接和 http request 頭資訊
    [root@nginx-server~]#  curl -v www.sina.com
    

10.2 scp — 遠程拷貝檔案

  • 案例演示

  • # 常用引數
    - cp是 secure copy的縮寫.
    - scp是linux系統下基于ssh登陸進行安全的遠程檔案拷貝命令,
    - linux的scp命令可以在linux服務器之間復制檔案和目錄,
    - scp命令用于在Linux下進行遠程拷貝檔案的命令,和它類似的命令有cp,不過cp只是在本機進行拷貝不能跨服務器,而且scp傳輸是加密的,可能會稍微影響一下速度,
      當你服務器硬碟變為只讀read only system時,用scp可以幫你把檔案移出來,另外,scp還非常不占資源,不會提高多少系統負荷,在這一點上,rsync就遠遠不及它了,
    - 雖然 rsync比scp會快一點,但當小檔案眾多的情況下,rsync會導致硬碟I/O非常高,而scp基本不影響系統正常使用,
    
    
    #從遠程復制檔案到本地目錄:
    [root@web_server01~]# scp root@192.168.10.10:/opt/soft/rhel-server-7.3-x86_64.tar.gz /opt/soft/
    
    #從遠程復制目錄到本地:
    [root@web_server01~]# scp  -r root@10.10.10.10:/opt/soft/mysql /opt/soft/
    
    #上傳本地檔案到遠程機器指定目錄:
    [root@web_server01~]# scp /opt/soft/rhel-server-7.3-x86_64.tar.gz root@192.168.10.10:/opt/soft/scptest
    
    #上傳本地目錄到遠程機器指定目錄:
    [root@web_server01~]# scp -r /opt/soft/mysql root@192.168.10.10:/opt/soft/scptest
    
    #保留檔案的最后修改時間,最后訪問時間和權限模式:
    [root@web_server01~]# scp -p /root/install.log root@192.168.10.10:/tmp  
    

11 關機/重啟相關命令

11.1 shutdown 命令

  • 案例演示

    [root@nginx-server~]# shutdown -h 5          指定關機時間 (推薦)
    [root@nginx-server~]# shutdown -r 5          重啟主機時間 (推薦)
    [root@nginx-server~]# shutdown -c            取消關機或重啟計劃
    [root@nginx-server~]# shutdown -h now/0      立即關機
    [root@nginx-server~]# shutdown -r now/0      立即重啟	
    

11.2 init 命令

  • 案例演示

    [root@nginx-server~]# init 0   #關機
    [root@nginx-server~]# init 3   #進入3級別字符界面
    [root@nginx-server~]# init 5   #進入5級別圖形界面
    
    [root@nginx-server~]# systemctl get-default 查蘭當前默認啟動級別
    multi-user.target
    [root@nginx-server~]# 
    

11.3 reboot 命令

  • 案例演示

    # 重啟
    [root@nginx-server~]#reboot
    

11.4 poeroff 命令

  • 案例演示

    # 關機
    [root@nginx-server~]# poweroff
    

11.5 halt 命令 —直接關機

  • 案例演示

    # 引數解釋
    w	并不是真正的重啟或關機,只是寫wtmp(/var/log/wtmp)紀錄
    -d	不寫wtmp紀錄(已包含在選項[-n])
    -f	沒有呼叫shutdown而強制關機或重啟
    -i	關機(或重啟)前關掉所有的網路介面
    -p	該選項為預設選項,就是關機時呼叫poweroff
    
    # 使用-p引數關閉作業系統,等同于poweroff 命令,并關閉了作業系統的電源
    [root@web_server01~]# halt -p 
    
    #使用-f引數強制關機,作業系統電源未關閉:
    [root@web_server01~]# halt -f
    

11.5 exit 命令— 注銷

  • 案例演示

    # 注銷,退出登錄
    [root@nginx-server~]# exit
    

12 作業系統正則符號

12.1 系統特殊符號(路徑、重定向、邏輯、引號)

  • 案例演示

    # 常見的系統符號
    1.系統常用符號 # $ ! |  
    2.路徑系統符號 ~ - .. .
    3.重定向符號 >  >>  2> 2>>  < <<
    4.邏輯符號  &&  || 
    5.引號符號  “” , '' , ``
    
    # 井號符號:#
    	表示檔案內容注釋符號
    	表示用戶命令提示符號
    	超級用戶為 #
    	普通用戶為 $
    
    #引號符號系列:
    	美元括號: $()  表示命令執行結果留下,用于其他命令呼叫
    	單號符號:‘’    表示輸入內容,就是輸出內容(所見即所得)
    	雙引號:“”      表示輸入內容,就是輸出內容,但是部分資訊會被決議
    	反引號:``      表示命令執行結果留下,用于其他命令呼叫
    
    # 重定向符號系列 
    	小于符號:單個小于符號<  標準輸入重定向符號
    					
    	兩個小于符號:  <<  標準輸入追加重定向符號
    				
    	大于符號: 單個大于符號  > 標準輸出重定向符號 
        					/2> 錯誤輸出重定向符號
    							
    	兩個大于符號: >> 標準輸出追加重定向符號  
    	            /2>> 錯誤輸出追加重定向符號
    
    # 路徑資訊系列
    		單點符號: .   表示當前目錄
    			
    				
    		雙點符號: ..   表示上級目錄
    			
    				
    		波浪符號 :~  表示用戶家目錄資訊	
    			超級用戶:/root
    			/home/用戶名稱
    # 邏輯符號系列
    		并且符號:&&   表示前面的名稱執行成功,再執行后面的命令
            
    		或者符號:||  表示前面的名稱執行失敗,再執行后面的命令
    						
    

12.2 通配符號(* 、{})

  • 案例演示

    # 通配符號 * {}   根據檔案名稱進行匹配資訊
    
    * 表示匹配所有內容資訊
    
    {} 表示生成序列資訊
    

12.3 系統正則符號()

  • 案例演示

    # 基礎正則符號
     基礎正則符號: 
     	1.尖角符號:^  表示以什么字符開頭的一行資訊
     	2. 美元符號: $ 表示以什么字符結尾的一行資訊
     	3.空行符號 :^$  表示過濾空行資訊
     	4.點號符號:. 表示匹配任意一個且只有一個字符
     	5. *號符號:*  表示前一個字符連續出現了1次或0次以上
     	6. 點* 符號:  .* 表示匹配檔案中所有資訊(包含空行)
     				  ^.* xx 表示從開頭到什么字符為止的內容(貪婪匹配)
     				  ^.* xx$ 表示以什么開頭,并且以什么結尾的資訊進行匹配出來
     				  
     	7.轉義符號: \   \.$ 表示查詢以點 結尾的行資訊
     					\ r 或者\ n  表示陪陪一個換行符號
     					\ t 表示匹配一個制表符號
     	
     	8.括號符號:[]   表示包含括號中的資訊 
     							[abc]  表示匹配包含a或b或c資訊的字符
     							^[abc] 表示匹配包含a或b或c資訊的字符開頭的資訊
     							[a-zA-Z0-9]  找出所有以小寫字母大寫字母和數字資訊的字符
     							[a-Z]找出所有以小寫字母或大寫字母組成字符(只能grep/egrep使用)
     							^[a-z].*[.!]$  表示以小寫字母開頭并且以點或嘆號結尾的資訊過濾出來
     							
     	9.排除符號:[^] 表示排除括號中資訊的
     				[^abc]   表示排除包含a或b或c資訊的字符
     				^[^abc]  表示排除包含a或b或c資訊的字符開頭的行(不包含空行)
     				[a-z0-9_]+\@[a-z0-9_]+\.[a-z]{2,4}  匹配一個郵箱地址
                    [0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}  匹配IP地址
     				
     			
    
    
     # 擴展正則運算式
      	1.加號符號:+ 表示前一個字符連續出現了1次或多次以上
      	2.豎線符號:| 表示匹配多個滿足條件的資訊(或者)
      	3.括號符號:() 表示匹配一個整體資訊
      	4.括號符號:{}  表示定義前面字符出現次數
      	5.問號符號:?   表示定義前面字符出現0次或1次
    

13 shell 常用命令

13.1 find 命令 —查找和搜索檔案

  • 案例演示

    # find命令可以根據給定的路徑和運算式查找的檔案或目錄,find引數選項很多,并且支持正則,功能強大,和管道結合使用可以實作復雜的功能,是系統管理者和普通用戶必須掌握的命令,
    
    # 常用引數
    -name	按名稱查找
    -size	按大小查找
    -user	按屬性查找
    -type	按型別查找
    -iname	忽略大小寫
    
    處理動作:默認為顯示到螢屏上
    -print      顯示
    -ls         類似ls -l的形式顯示每一個檔案的詳細資訊
    -delete     洗掉查找到的檔案
    -fls /path/to/somefile      查找到的所有檔案的長格式資訊保存至指定檔案中
    -ok COMMAND {} \;   對查找到的每個檔案執行COMMAND,每次操作都需要用戶確認
    -exec COMMAND {} \; 對查找到的每個檔案執行COMMAND,操作不需要確認
    
    #找名字是 abc的
    [root@localhost ~]# find / -name abc 
    /root/abc
    /opt/abc
    
    #忽略大小寫的
    [root@localhost ~]# find / -iname abc  
    /root/abc
    /opt/abc
    /opt/ABC
    
    #找沒有user的
    [root@localhost ~]# find / -nouser tom 
    
    #找目錄
    [root@localhost ~]# find -type d 
    .
    ./a
    ./a/b
    ./a/b/e
    
    #小于1m的檔案
    [root@localhost ~]# find -size -1M 小于1m的檔案
    
    ./00:00:00
    ./2021
    
    # 大于1k的檔案
    [root@localhost ~]# find -size +1k  
    .
    ./.bash_history
    ./anaconda-ks.cfg
    
    #一分鐘前改變的
    [root@localhost ~]# find -mmin +1  一分鐘前改變的
    ./.bash_logout
    ./.bash_profile
    ./.bashrc
    
    # 必須是目錄,名字是 5的目錄
    [root@localhost ~]# find -type d  -name 5 
    ./5
    # 必須是檔案,名字是5 的檔案
    [root@localhost ~]# find -type f  -name 5
    [root@localhost ~]# 
    
    #組合命令
    [root@localhost ~]# find -type d  -name 5 -ls 組合命令
    33576693    0 drwxr-xr-x   2 root     root            6 Apr  8 10:25 ./5
    [root@localhost ~]# 
    
    #查找 名字為he.txt的檔案,并且列印出來
    [root@localhost ~]# find -type f -name he.txt -print 
    ./he.txt
    [root@localhost ~]# 
    
    #查找名字是 5的檔案,并洗掉
    [root@localhost ~]# find -type f  -name 5 -delete 
    
    # 將當前檔案 名為 .sh 的檔案移動到 /OPT下
    [root@localhost opt]# find ./ -type f -name *.sh -exec mv {} /opt/ \;  
    
    
    #查找最近30分鐘修改的當前目錄下的.php檔案
    
    [root@web_server01~]# find . -name '*.php' -mmin -30 -ls
    134398238    4 -rw-r--r--   1 root     root           27 Sep 13 09:12 ./index.php
    [root@web_server01~]
    
    #查找最近24小時修改的當前目錄下的.php檔案
    
    [root@web_server01~]# find . -name '*.php' -mmin -0
    
    #查找當前目錄下,最近24-48小時修改過的常規檔案,
    [root@web_server01~]# find . -type f -mtime 1
    
    #查找當前目錄下,最近1天前修改過的常規檔案,
    [root@web_server01~]# find . -type f -mtime +1
    
    

13.2 grep 命令 —文本過濾

  • 實戰演示

    # 常用選項:
    -e的作用是匹配多個運算式;
    -R遞回,-n表示匹配的行號,-o只輸出匹配內容,-E支持擴展正則運算式;
    -c統計匹配次數,-v取反;
    -l顯示匹配的檔案名,-L顯示不匹配的檔案名;
    -A顯示匹配行后的行數、-B顯示匹配行前的行數,
    
    grep -B n       顯示指定資訊前幾行內容
    grep -A n       顯示指定資訊后幾行內容
    grep -C n       顯示指定資訊前后幾行內容
    grep -c         顯示指定資訊在檔案中有多少行出現
    grep -v         進行取反或者排除
    grep -E/egrep   識別擴展正則符號
    grep -o         顯示過濾程序資訊
    grep -n         過濾資訊并顯示資訊行號
    grep -i         過濾資訊忽略大小寫
    
     
     #查看系統記憶體、快取、交換磁區-e的作用是匹配多個運算式
    [root@web_server01~]# cat /proc/meminfo |grep Men -e Cache -e Swap
    grep: Men: No such file or directory
    [root@web_server01~]# cat /proc/meminfo |grep  -e Mem -e Cache -e Swap
    MemTotal:         926264 kB
    MemFree:          205068 kB
    MemAvailable:     645276 kB
    Cached:           554564 kB
    SwapCached:            0 kB
    SwapTotal:       1572860 kB
    SwapFree:        1572860 kB
    
    #查找/etc目錄下的所有檔案中的郵件地址;-R遞回,-n表示匹配的行號,-o只輸出匹配內容,-E支持擴展正則運算式,
    [root@web_server01~]# grep -R -o -n -E   '[a-z0-9_]+\@[a-z0-9_]+\.[a-z]{2,4}' /etc/
    /etc/grub.d/00_tuned:6:jskarvad@redhat.com
    /etc/libreport/events.d/abrt_event.conf:102:password@server.name
    /etc/libreport/plugins/ureport.conf:8:foo@example.com
    Binary file /etc/alternatives/libnssckbi.so.x86_64 matches
    Binary file /etc/alternatives/nmap matches
    /etc/alternatives/jre/THIRD_PARTY_README:429:policy@w3.org
    /etc/alternatives/jre/THIRD_PARTY_README:1112:team@lists.sour
    /etc/alternatives/jre/THIRD_PARTY_README:1146:team@lists.sour
    
    
    #查找/etc/目錄下檔案中包含“HOSTNAME”的次數,-c統計匹配次數,-v取反
    [root@ns ~]# grep -R -c 'HOSTNAME' /etc/ |grep -v "0$"  
    
    #查找包含“HOSTNAME”的檔案名,-l顯示匹配的檔案名,-L顯示不匹配的檔案名
    [root@web_server01~]# grep -R -l 'HOSTNAME' /etc/
    [root@web_server01~]# dmesg | grep -n --color=auto 'eth'  
     
    
    #查找內核日志中eth的行,顯示顏色及行號
    [root@web_server01~]# dmesg | grep -n -A3 -B2 --color=auto 'eth'
    #用 dmesg 列出核心資訊,再以 grep 找出內含 eth 那行,在關鍵字所在行的前兩行與后三行也一起找出出來顯示
    
    #統計系統中能登錄的用戶的個數
    [root@web_server01~]# cat /etc/passwd |grep -c bash$  
    [root@web_server01~]# cd /tmp 
    [root@web_server01~]# touch /tmp/{123,123123,456,1234567}.txt  
    [root@web_server01~]# ls |grep -E '(123)+' 
    [root@web_server01~]# ls |grep '\(123\)\+'
    [root@web_server01~]# ls |egrep  '(123)+'
    
    #統計httpd行程數量
    [root@web_server01~]# ps -ef |grep -c httpd 
    
    #顯示games匹配的“-C”前后4行
    [root@web_server01~]# grep -C 4 'games' --color /etc/passwd 
    
    #查看adm組的資訊
    [root@web_server01~]#grep ^adm /etc/group  
    
     #獲取網卡名稱
    [root@web_server01~]# ip a |grep -E '^[0-9]' |awk -F : '{print $2}' \
    
    #截取ip地址,[^ ]*表示以非空字符作為結束符,[0-9.]*表示數字和點的組合
    [root@ns ~]# ifconfig eth0 |grep -E -o 'inet addr:[^ ]*' |grep  -o '[0-9.]*' 
    
    #截取MAC地址
    [root@web_server01~]# ifconfig eth0 |grep -i hwaddr |awk '{print $5}'  
    
    

13.3 sed 命令 —流編輯器,實作對文本的增刪改查

  • 案例演示

    # sed流編輯器:實作對文本的增刪改查
    1.改(替換):語法sed -i '/s/#/#/g'  檔案名
    
    # 將網卡組態檔的 dhcp 替換成 static 的
     [root@web_server01~]# sed -i 's/dhcp/static/g' /etc/sysconfig/network-scripts/ifcfg-eth1  
    
    # 準備測驗內容
    [root@web_server01~]# vim ip  ##撰寫測驗檔案 
    IP1=dhcp
    IP2=dhcp
    IP=dhcp
    :wq
    
    #將所有的dhcp替換為static
    [root@web_server01~]# sed -i 's/dhcp/static/g' ip   
    
    #將IP1開頭的行替換
    [root@web_server01~]# sed -i '/^IP1/s/static/dhcp/g' ip  
    
     #指定特定行號2行替換
    [root@web_server01~]# sed -i '2s/static/dhcp/g' ip 
    
    #查看并顯示行號
    [root@web_server01~]# cat -n /etc/selinux/config 
    
    #開啟selinux
    [root@web_server01~]# sed -i '7s/disabled/enforcing/g' /etc/selinux/config   
    
    # 關閉selinux 
    
    [root@web_server01~]# sed -i 's/enforcing/disabled/g' /etc/selinux/config
    
    
    
    
    2.刪:sed  '/運算式/d'  檔案
    
    #添加空行
    [root@web_server01~]# vim  ip  
    
    #洗掉空行并顯示在螢屏上
    [root@web_server01~]# sed '/^$/d' ip 
    
    #洗掉包含IP1的行
    [root@web_server01~]# sed -i '/IP1/d' ip   
    
    #洗掉以IP2開頭的行
    [root@web_server01~]# sed -i '/^IP2/d' ip 
    
    #洗掉第二行
    [root@web_server01~]# sed -i '2d' ip  
    
    
    
    
    3.增:sed '  /運算式/a "需要添加的文字"'   檔案
    #每一行后都加上IP3=static
    [root@ns ~]# sed 'a IP3=static' ip  
    
    #只在第3行后加上IP3=static,并顯示不修改
    [root@ns ~]# sed '3a IP3=static' ip  
    
     #只在第3行前加上IP3=static,顯示不修改
    [root@ns ~]# sed '3i IP3=static' ip 
    
    #修改,不顯示
    [root@ns ~]# sed -i '3a IP3=static' ip  
    
    #在以IP3開頭的行后添加
    [root@ns ~]# sed -i '/^IP3/a "test add"' ip 
    
    
    
    4.查:sed  -n  '/運算式/p'   檔案
    #查看第二行
    [root@web_server01~]# sed -n '2p' /etc/hosts  
    
    #查看包含www的決議記錄
    [root@web_server01~]# sed -n '/www/p' /var/named/chroot/var/named/linuxfan.cn.zone 
    
    #查看以.100結尾的行
    [root@web_server01~]# sed -n '/.100$/p' /var/named/chroot/var/named/linuxfan.cn.zone 
    
    #從第二行,每隔兩行顯示
    [root@web_server01~]#sed -n '2~2p' ip 
    
    # sed 取出IP地址
    [root@web_server01~]# ip add show eth0|sed -n '3p'
        inet 10.0.0.7/24 brd 10.0.0.255 scope global noprefixroute eth0
    
    
    [root@web_server01~]# ip a s eth0|sed -n '3p'|sed -nr 's#^.*et (.*)/24.*eth0$#\1#gp'
    10.0.0.7
    
    
    

13.4 awk 命令 — 指定分隔符,提取行

  • 演示案例

    # AWK 介紹
    awk的作用是將檔案格式化(根據你的要求排版,注意區別于磁區的格式化)后顯示資訊,
    
    #語法:
    	awk  [選項]  '模式{  動作(action) }'  檔案1  檔案2  ...
    	最常見的動作:print,printf,BEGIN(開始處理第一行文本之前的操作),END(處理完最后一行文本之后的操作)
    	
    #AWK 變數
    	FS:列分隔符,默認位空白
    	RS:行分隔符,默認位換行符
    	OFS:輸出列分隔符
    	ORS :輸出行分隔符
    
    awk內置變數
    	NR:處理中行數
    	FNR:單個檔案的行數
    	NF:列的個數
    
    	
    #awk的基本原理特征:
    1)每一次取一行
    2)根據指定的分隔符(不指定為空白字符)將該行切割為列,使用$0(整行),$1,$2,$3...(第一列,第二列,...)
    3)可以指定行號,列號,切割符,操作后分隔符
    
    
    # 常用引數
    -F	指定輸入時用到的欄位分隔符
    -v	自定義變數
    -f	從腳本中讀取awk命令
    -m	對val值設定內在限制
    
    
    #列印每一行的第二和第三個欄位:
    [root@web_server01~]# awk '{print $2,$3}' hh.txt 
    hello world
    10.0.0.1 
     
    
    #以截取eth1 的IP 地址:
    [root@web_server01~]# ifconfig eth1|grep netmask|awk '{print $2}'
    172.16.1.7
      
    
    # 截取eht0 的IP 地址
    [root@web_server01~]# ip address show eth0 |awk 'NR==3'
        inet 10.0.0.7/24 brd 10.0.0.255 scope global noprefixroute eth0
    [root@web_server01~]# ip address show eth0 |awk 'NR==3' |awk '{print $2}'
    10.0.0.7/24
    [root@web_server01~]# 
    
    
    
    正則運算式(regexp),格式為:/regular expression/
    [root@web_server01~]# awk -F : '/^h/{print $1}' /etc/passwd
    halt
    hbs
    [root@web_server01~]# 
    
    
    運算式(expression),值為非0或為非空是滿足條件,如$1 ~ /foo/或 $1 == "root"
    
    #列印普通用戶
    [root@web_server01~]# awk -F : '$3>=500{print $1,$3,$7}' /etc/passwd 
    polkitd 999 /sbin/nologin
    nginx 1001 /sbin/nologin
    hbs 1002 /bin/bash
    rivers 1003 /bin/bash
    
    
    #UID在10-100之間的用戶
    [root@web_server01~]# awk -F : '$3+1<=100&&$3+1>=10{print $1,$3,$7}' /etc/passwd
    operator 11 /sbin/nologin
    games 12 /sbin/nologin
    ftp 14 /sbin/nologin
    nobody 99 /sbin/nologin
    dbus 81 /sbin/nologin
    tss 59 /sbin/nologin
    sshd 74 /sbin/nologin
    postfix 89 /sbin/nologin
    ntp 38 /sbin/nologin
    named 25 /sbin/nologin
    [root@web_server01~]# 
    
    
    #檢查未初始化密碼的用戶
    [root@web_server01~]# awk -F : '$2=="!!"{print $1,$2}' /etc/shadow  
    systemd-network !!
    dbus !!
    polkitd !!
    tss !!
    abrt !!
    sshd !!
    postfix !!
    ntp !!
    nginx !!
    rivers !!
    named !!
    
    #列印密碼為空的用戶
    [root@web_server01~]#awk -F : '$2==""{print $1}' /etc/shadow  
    
    

14 系統資源/行程先關命令

14.1 ps 命令 — 查看系統行程資訊

  • 案例演示

    # 常用引數
    ps                  查看系統行程資訊
    ps -ef              查看所有詳細的行程資訊
    
    # 查看httpd 行程
    [root@web_server01~]# ps -ef |grep httpd
    root      11176      1  0 15:03 ?        00:00:01 /usr/sbin/httpd -DFOREGROUND
    apache    11177  11176  0 15:03 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
    apache    11178  11176  0 15:03 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
    apache    11179  11176  0 15:03 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
    apache    11180  11176  0 15:03 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
    apache    11181  11176  0 15:03 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
    root      12336  11691  0 21:26 pts/0    00:00:00 grep --color=auto httpd
    
    

14.2 kill命令 — 洗掉指定行程

  • 案例演示

    kill pid            洗掉指定pid號碼的行程
    kill -9 pid         強制洗掉指定pid號碼的行程
    
    [root@web_server01~]# kill -9 11177
    

14.3 systemctl命令 —管理服務程式的運行狀態

  • 案例演示

    # 常用引數
    systemctl start 	  服務名稱  	--- 啟動服務
    systemctl stop 		  服務名稱  	--- 停止服務
    systemctl restart 	  服務名稱 	    --- 重啟服務
    systemctl status 	  服務名稱  	--- 查看服務詳細的運行狀態
    systemctl disable     服務名稱  	--- 讓服務開機不要運行
    systemctl enable   	  服務名稱  	--- 讓服務開機運行
    systemctl is-active   服務名稱 	    --- 檢查確認服務是否運行
    systemctl is-enabled  服務名稱 	    --- 檢查確認服務是否開機運行
    
    
    # 一個命令關閉 開機自啟動/關閉防火墻
    [root@web_server01~]# systemctl disable firewalld --now
    [root@web_server01~]#
    

14.4 uptime 命令 — 查看系統負載

  • 案例演示

    [root@web_server01~]# uptime
     04:15:24 up 2 days, 13:05,  1 user,  load average: 0.01, 0.02, 0.05
    [root@web_server01~]#
    現在時間、系統已經運行了多長時間、目前有多少登錄用戶、load average:系統在過去的1分鐘、5分鐘和15分鐘內的平均負載,
    load average:這三個值的大小一般不能大于系統CPU的個數,例如,本輸出中系統有8個CPU,如果load average的三個值長期大于8時,說明CPU很繁忙,負載很高,可能會影響系統性能,但是偶爾大于8時,倒不用擔心,一般不會影響系統性能,
    
    [root@web_server01~]# uptime -p   #以漂亮的格式顯示機器正常運行的時間          
    up 2 days, 13 hours, 9 minutes          
    [root@web_server01~]#uptime -s   #系統自開始運行時間 年-月-日 小時-分鐘-秒
    2021-06-08 15:09:34
    [root@web_server01~]# uptime -h   #顯示幫助資訊
    
    
    服務器1: load average: 0.15, 0.08, 0.01 1核
    服務器2: load average: 4**.15,** 6**.08,** 6**.01** 1核
    服務器3: load average: 10**.15,** 10**.08,** 10**.01** 4核
    答案:服務器2
    

14.5 vmstat 命令 —監控CPU

  • 案例演示

    [root@web_server01~]#vmstat 
    procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
     r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
     1  0      0 3059368   2104 230268    0    0     0     0   28   26  0  0 100  0  0
    r串列示運行和等待cpu時間片的行程數,這個值如果長期大于系統CPU的個數,說明CPU不足,需要增加CPU,
    
    b串列示在等待資源的行程數,比如正在等待I/O、或者記憶體交換等,
    
    us列顯示了用戶行程消耗的CPU 時間百分比,us的值比較高時,說明用戶行程消耗的cpu時間多,但是如果長期大于50%,就需要考慮優化程式或演算法,
    
    sy列顯示了內核行程消耗的CPU時間百分比,Sy的值較高時,說明內核消耗的CPU資源很多,
    根據經驗,us+sy的參考值為80%,如果us+sy大于 80%說明可能存在CPU資源不足,
    

14.6 top命令 —實時監控系統CPU

  • 案例演示

    [root@web_server01~]# top
    top - 04:50:43 up 2 days, 13:41,  1 user,  load average: 0.10, 0.06, 0.06
    Tasks: 102 total,   1 running, 101 sleeping,   0 stopped,   0 zombie
    %Cpu(s):  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
    KiB Mem :  3865308 total,  2912528 free,   573852 used,   378928 buff/cache
    KiB Swap:   524284 total,   524284 free,        0 used.  3028580 avail Mem 
    
       PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND            
     38151 root      20   0       0      0      0 S   0.3  0.0   0:01.93 kworker/0:0        
         1 root      20   0  125332   3828   2496 S   0.0  0.1   0:04.48 systemd            
         2 root      20   0       0      0      0 S   0.0  0.0   0:00.33 kthreadd
         
         
     top命令是Linux下常用的性能分析工具,能夠實時顯示系統中各個行程的資源占用狀況,常用于服務端性能分析,
    
    第一行資料相當于uptime命令輸出,11:00:54是當前時間,up 54 days,23:55 是系統已經運行的時間,6 users表示當前有6個用戶在登錄,load average:16.32,18.75,21.04分別表示系統一分鐘平均負載,5分鐘平均負載,15分鐘平均負載,
    
    平均負載
    平均負載表示的平均活躍行程數,包括正在running的行程數,準備running(就緒態)的行程數,和處于不可中斷睡眠狀態的行程數,如果平均負載數剛好等于CPU核數,那證明每個核都能得到很好的利用,如果平均負載數大于核數證明系統處于過載的狀態,通常認為是超過核數的70%認為是嚴重過載,需要關注,還需結合1分鐘平均負載,5分鐘平均負載,15分鐘平均負載看負載的趨勢,如果1分鐘負載比較高,5分鐘和15分鐘的平均負載都比較低,則說明是瞬間升高,需要觀察,如果三個值都很高則需要關注下是否某個行程在瘋狂消耗CPU或者有頻繁的IO操作,也有可能是系統運行的行程太多,頻繁的行程切換導致,比如說上面的演示環境是一臺8核的centos機器,證明系統是長期處于過載狀態在運行,
    
    第二行的Tasks資訊展示的系統運行的整體行程數量和狀態資訊,102 total 表示系統現在一共有102個用戶行程,1 running 1個行程正在處于running狀態,101 sleeping 表示101 個行程正處于sleeping狀態,0 stopped 表示 0 個行程正處于stopped狀態,0 zombie表示 有0個僵尸行程,
    
    第3行的%Cpu(s)表示的是總體CPU使用情況,
    us user 表示用戶態的CPU時間比例
    sy system 表示內核態的CPU時間比例
    ni nice 表示運行低優先級行程的CPU時間比例
    id idle 表示空閑CPU時間比例
    wa iowait 表示處于IO等待的CPU時間比例
    hi hard interrupt 表示處理硬中斷的CPU時間比例
    si soft interrupt 表示處理軟中斷的CPU時間比例
    st steal 表示當前系統運行在虛擬機中的時候,被其他虛擬機占用的CPU時間比例,
    
    第4,5行顯示的是系統記憶體使用情況,單位是KiB,totol 表示總記憶體,free 表示沒使用過的內容,used是已經使用的記憶體,buff表示用于讀寫磁盤快取的記憶體,cache表示用于讀寫檔案快取的記憶體,avail表示可用的應用記憶體,
    
    第6行開始往后表示的是具體的每個行程狀態:
    
    PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND 
    PID 行程ID
    USER 行程所有者的用戶名,例如root
    PR 行程調度優先級
    NI 行程nice值(優先級),越小的值代表越高的優先級
    VIRT 行程使用的虛擬記憶體
    RES 行程使用的物理記憶體(不包括共享記憶體)
    SHR 行程使用的共享記憶體
    CPU 行程使用的CPU占比
    MEM 行程使用的記憶體占比
    TIME 行程啟動后到現在所用的全部CPU時間
    COMMAND 行程的啟動命令(默認只顯示二進制,top -c能夠顯示命令列和啟動引數)
    

14.7 iostat命令 —磁盤I/O性能評估

  • 案例演示

    iostat被用于監視系統輸入輸出設備和CPU的使用情況,它的特點是匯報磁盤活動統計情況,同時也會匯報出CPU使用情況,
    [root@web_server01~]# iostat
    -bash: iostat: command not found
    [root@web_server01~]# yum -y install sysstat
    [root@web_server01~]#iostat -d 1 10              #沒隔1秒,持續10次
    Linux 3.10.0-693.el7.x86_64 (localhost.localdomain)     06/11/2021      _x86_64_        (2 CPU)
    
    Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
    sda               0.08         1.36         0.66     304530     146757
    scd0              0.00         0.00         0.00       1028          0
    dm-0              0.00         0.01         0.00       2228          0
    
    對上面每項的輸出解釋如下:
    kB_read/s表示每秒讀取的資料塊數,
    kB_wrtn/s表示每秒寫入的資料塊數,
    kB_read表示讀取的所有塊數,
    kB_wrtn表示寫入的所有塊數,
    可以通過kB_read/s和kB_wrtn/s的值對磁盤的讀寫性能有一個基本的了解,如果kB_wrtn/s值很大,表示磁盤的寫操作很頻繁,可以考慮優化磁盤或者優化程式,如果kB_read/s值很大,表示磁盤直接讀取操作很多,可以將讀取的資料放入記憶體中進行操作,
    
    

14.8 netstat/ss — 顯示網路埠狀態

  • 案例演示

    # 常用引數
    -a	顯示所有連線中的Socket
    -p	顯示正在使用Socket的程式識別碼和程式名稱
    -u	顯示UDP傳輸協議的連線狀況
    -i
    顯示網路界面資訊表單
    -n	直接使用IP地址,不通過域名服務器
    
    # 查看httpd 服務埠狀態
    [root@web_server01/etc/yum.repos.d]# netstat -lntup|grep httpd
    tcp6       0      0 :::80                   :::*                    LISTEN      11176/httpd         
    
    # 顯示埠 
    [root@web_server01/etc/yum.repos.d]# ss -lant
    State       Recv-Q Send-Q Local Address:Port               Peer Address:Port              
    LISTEN      0      128             *:22                          *:*                  
    LISTEN      0      100     127.0.0.1:25                          *:*                  
    ESTAB       0      0        10.0.0.7:22                   10.0.0.1:53220              
    ESTAB       0      52       10.0.0.7:22                   10.0.0.1:55483              
    LISTEN      0      128            :::80                         :::*                  
    LISTEN      0      128            :::22                         :::*                  
    LISTEN      0      100           ::1:25                         :::*                  
    [root@web_server01/etc/yum.repos.d]# 
    
    

16.9 firewall-cmd 命令 — 防火墻相關命令

  • 案例演示

    # 開啟/關閉防火墻 
    systemctl start|stop firewalld.service
    
    # 查看防火墻轉態
    [root@web_server01~]# firewall-cmd --state
    running
    [root@web_server01~]# 、
    
    # 查看防火墻配置埠
    [root@web_server01~]# firewall-cmd --list-all
    
    # 放行防火8080 埠
    [root@web_server01~]# firewall-cmd --zone=public --add-port=8080/tcp --permanent
    success
    [root@web_server01~]# firewall-cmd --reload
    success
    
    # 查看現有規則
    [root@web_server01~]# firewall-cmd --zone=public --list-ports
    8080/tcp
    
    #添加多個埠
    [root@web_server01~]# firewall-cmd --permanent --zone=public --add-port=8080-8083/tcp
    
    
    #洗掉某個埠
    [root@web_server01~]#-cmd --permanent --zone=public --remove-port=81/tcp
    
    
    # 針對某個 IP開放埠
    [root@web_server01~]#firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="10.0.0.7" port protocol="tcp" port="6379" accept"
    
    # 洗掉某個IP
    [root@web_server01~]#firewall-cmd --permanent --remove-rich-rule="rule family="ipv4" source address="10.0.0.7" accept"
    
    # 針對一個ip段訪問
    [root@web_server01~]#firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.0.0/16" accept"
    
    [root@web_server01~]#firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="9200" accept"
    

15.其它命令

  • 案例演示

     #設定日期
     date                查看時間資訊和修改時間資訊
     date "+%F_%T"
     date -s             設定系統時間 
     date -d             顯示未來或過去的時間資訊
    
    
    # apt 常用命令
    
    #列出所有可更新的軟體清單命令:sudo apt update
    
    #升級軟體包:sudo apt upgrade
    #列出可更新的軟體包及版本資訊:
    apt list --upgradeable
    
    #升級軟體包,升級前先洗掉需要更新軟體包:
    sudo apt full-upgrade
    
    #安裝指定的軟體命令:
    sudo apt install <package_name>
    
    #安裝多個軟體包:
    sudo apt install <package_1> <package_2> <package_3>
    
    #洗掉軟體包命令:
    sudo apt remove <package_name>
    
    #清理不再使用的依賴和庫檔案: 
    sudo apt autoremove
    
    #查找軟體包命令: 
    sudo apt search <keyword>
    
    #列出所有已安裝的包:
    apt list --installed
    
    #列出所有已安裝的包的版本資訊:
    apt list --all-versions
    

常用快捷方式

  • 案例演示

    # 快捷方式:
    01. ctrl+c             	中斷命令執行操作程序
    02. ctrl+l             	清屏操作
    03. ctrl+d             	注銷功能
    04. tab               	補全快捷鍵 補全目錄路徑或檔案名稱資訊/命令   
    05. 方向鍵上下         	調取之前輸入過的歷史命令
    06. ctrl+a              快速將游標移動到行首 a b c d
    07. ctrl+e              快速將游標移動到行尾
    08. ctrl+左右方向鍵    	按照一個英文單詞進行移動游標
    09. esc+.               將上一個命令最后一個資訊進行調取
    10. ctrl+u     			將游標所在位置到行首內容進行洗掉(剪切)
    11. ctrl+k     			將游標所在位置到行尾內容進行洗掉(剪切)
    12. ctrl+y     			粘貼剪切的內容
    13. ctrl+s     			xshell進入到了鎖定狀態 suo鎖
    14. ctrl+q     			解除鎖定狀態           quit推出鎖定狀態
    15. ctrl+r              快速搜索歷史命令						
    

總結

堅持很難,但最后一定會有所識訓,linux 學習的程序是一個很枯燥的事情,對于很多剛入門的人來說,命令太多,引數太多,根本記不住的 困惑,其實作為 過來人,學習方式就是四個字熟能生巧

我們可以找一個好的教材,然后找一份質量好的視頻,看一遍,然后對著教材在學習一遍,形成自己的筆記,建議第一遍紙質的筆記,第二遍可以是電子檔的,每一遍都要重復的去實驗,做到理論+實踐,相信進過1年,你會有質的飛躍,以上的命令總結是平時用的較多,整理的,想起來了的命令,就會慢慢積累,如果你覺得有用,就收藏起來吧!

以夢為馬,不負韶華,流年笑擲,未來可期

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/300477.html

標籤:其他

上一篇:??保姆級!超詳解!遠程連接Linux虛擬機!??

下一篇:Windows 11 將“扼殺”第三方瀏覽器?Firefox 絕地反擊!

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more