Linux常用的20個命令(下)

無論你是后端程序員還是前端程序員,都避免不了和Linux打交道。上篇介紹了Linux常用的20個命令其中的10個,本文繼續(xù)介紹剩下的10個命令。

11.man 命令

manual的縮寫,即使用手冊的意思,是Linux下最核心的命令之一,用來列出一份完整的說明

語法格式 : man [參數]

常用參數

參數 說明
-a 在所有的man幫助手冊中搜索
-f 顯示給定關鍵字的簡短描述信息
-p 指定內容時使用分頁程序
-M 指定man手冊搜索的路徑
-w 顯示文件所在位置

快捷鍵:

參數 說明
q 退出
Enter 按行下翻
Space 按頁下翻
b 上翻一頁
/字符串 在手冊頁中查找字符串

參考實例

  • 查看printf函數的使用信息:
[root@wayne:~]# man printf
  • 查看cp命令的幫助信息:
[root@wayne:~]# man cp
  • 查看/etc/passwd文件的信息:
[root@wayne:~]# man /etc/passwd
  • 查看passwd命令所在位置:
[root@wayne:~]# man -w passwd /usr/share/man/man1/passwd.1.gz

12.grep 命令

用來查找文件里符合條件的字符串或正則表達式,并將其打印出來

語法格式 : grep [參數]

常用參數

參數 說明
-i 忽略大小寫進行匹配
-c 只輸出匹配行的數量
-l 只列出符合匹配的文件名,不列出具體的匹配行
-n 列出所有的匹配行,顯示行號
-r 遞歸查找子目錄中的文件
-v 只打印不匹配的行

參考實例

  • 在文件 test.txt 中查找字符串 "World",并打印匹配的行:
[root@wayne:~]# grep World test.txt
  • 在當前目錄中,查找后綴為 .txt 的文件中,包含World字符串的文件,并打印出該字符串的行
[root@wayne:~]# grep World *.txt
  • 在文件夾 dir 中遞歸查找所有文件中匹配正則表達式 "pattern" 的行,并打印匹配行所在的文件名和行號
[root@wayne:~]# grep -r -n pattern dir/
  • 以遞歸的方式查找目錄 /usr/local 及其子目錄下所有文件中包含字符串"test"的文件
[root@wayne:~]# grep -r test /usr/local

13.find 命令

用來在指定目錄下查找文件

語法格式 : find [參數] [路徑] [查找和搜索范圍]

常用參數

參數 說明
-name 按名稱查找
-size 按大小查找
-user 按屬性查找
-type 按類型查找
-iname 忽略大小寫

參考實例

  • 使用-name參數查看/etc目錄下面所有的.conf結尾的配置文件:
[root@wayne:~]# find /etc -name "*.conf
  • 使用-size參數查看/etc目錄下面大于1M的文件:
[root@wayne:~]# find /etc -size +1M
  • 在/home目錄下查找以.txt結尾的文件名:
[root@wayne:~]# find /home -name "*.txt"
  • 找出/home下不是以.txt結尾的文件:
[root@wayne:~]# find /home ! -name "*.txt"
  • 在/var/log目錄下忽略大小寫查找以.log結尾的文件名:
[root@wayne:~]# find /var/log -iname "*.log"
  • 將當前目錄及其子目錄下所有最近 20 天內更新過的文件列出:
[root@wayne:~]# find . -ctime  20
  • 搜索當前目錄中訪問時間超過10分鐘的所有文件:
[root@wayne:~]# find . -type f -amin +10

14.chmod 命令

用來改變文件或目錄的權限

語法格式 : chmod [參數] [文件]

常用參數

參數 說明
-c 若該文件權限確實已經更改,才顯示其更改動作
-f 若該文件權限無法被更改也不顯示錯誤訊息
-v 顯示權限變更的詳細資料
-R 對目前目錄下的所有文件與子目錄進行相同的權限變更(即以遞回的方式逐個變更)

參考實例

  • 將file.txt 設為所有人都可讀?。?/li>
[root@wayne:~]# chmod a+r file.txt  
  • 將目前目錄下的所有文件與子目錄皆設為任何人可讀取 :
[root@wayne:~]# chmod -R a+r *   
  • 將 file設定為只有該文件擁有者可以執(zhí)行:
[root@wayne:~]# chmod u+x file
  • 用數字更改文件權限:
[root@wayne:~]# chmod abc file

其中a,b,c各為一個數字,分別表示User、Group、及Other的權限(rwx)。

  • r=4,w=2,x=1

  • 若要 rwx 屬性則 4+2+1=7;

  • 若要 rw- 屬性則 4+2=6;

  • 若要 r-x 屬性則 4+1=5。

15.ps 命令

process status的縮寫,用來顯示當前系統(tǒng)的進程狀態(tài)

語法格式 : ps [參數]

常用參數

參數 說明
-A 列出所有的進程
-a 不與terminal有關的所有進程
-x 一般與a參數一起使用,可列出較完整的信息
-w 顯示加寬可以顯示較多的資訊
-u 有效用戶的相關進程
-l 較詳細地將PID的信息列出
-aux 查看系統(tǒng)所有的進程數據

參考實例

  • 顯示所有進程信息:
[root@wayne:~]# ps -A
  • 查看系統(tǒng)所有的進程數據:
[root@wayne:~]# ps -aux
  • 查看root用戶的進程信息:
[root@wayne:~]# ps -u root
  • 按 CPU 資源的使用量對進程進行排序
[root@wayne:~]# ps -aux | sort -nk 3
  • 按內存資源的使用量對進程進行排序
[root@wayne:~]# ps aux | sort -rnk 4 

16.kill 命令

用來刪除執(zhí)行中的程序或工作

語法格式 : kill [參數] [進程號]

常用參數

參數 說明
-l 列出系統(tǒng)支持的信號
-s 指定向進程發(fā)送的信號
-a 處理當前進程時不限制命令名和進程號的對應關系
-p 指定kill命令只打印相關進程的進程號,而不發(fā)送任何信號

參考實例

  • 顯示信號:
[root@wayne:~]# kill -l
  • 殺死一個進程ID為9523的進程:
[root@wayne:~]# kill -9 9523
  • 重新加載進程ID為1935的進程:
[root@wayne:~]# kill -SIGHUP 1953

17.netstat 命令

用來顯示各種網絡相關信息

語法格式 : netstat [參數]

常用參數

參數 說明
-a 顯示所有連線中的Socket
-p 顯示正在使用Socket的程序識別碼和程序名稱
-u 顯示UDP傳輸協(xié)議的連線狀況
-i 顯示網絡界面信息表單
-n 直接使用IP地址,不通過域名服務器

參考實例

  • 顯示詳細的網絡狀況:
[root@wayne:~]# netstat -a
  • 顯示當前用戶UDP連接狀況:
[root@wayne:~]# netstat -nu
  • 顯示網卡列表:
[root@wayne:~]# netstat -i 
  • 顯示組播組的關系:
[root@wayne:~]# netstat -g 
  • 顯示網絡統(tǒng)計信息:
[root@wayne:~]# netstat -s 
  • 顯示監(jiān)聽的套接口:
[root@wayne:~]# netstat -l 

18.ping 命令

用來測試主機之間網絡的連通性

語法格式 : ping [參數] [目標主機]

常用參數

參數 說明
-d 使用Socket的SO_DEBUG功能
-c 指定發(fā)送報文的次數
-i 指定收發(fā)信息的間隔時間
-I 使用指定的網絡接口送出數據包
-l 設置在送出要求信息之前,先行發(fā)出的數據包
-n 只輸出數值
-p 設置填滿數據包的范本樣式
-q 不顯示指令執(zhí)行過程
-R 記錄路由過程
-s 設置數據包的大小
-t 設置存活數值TTL的大小
-v 詳細顯示指令的執(zhí)行過程

參考實例

  • 檢測與百度網站的連通性:
[root@wayne:~]# ping www.baidu.com
  • 連續(xù)ping4次 192.168.1.100:
[root@wayne:~]# ping -c 4 192.168.1.100
  • 連續(xù)ping4次 192.168.1.100,時間間隔為3秒:
[root@wayne:~]# ping -c 4 -i 3 192.168.1.100

19.ifconfig

用來配置和顯示Linux內核中網絡接口的網絡參數

語法格式 : ifconfig [參數]]

常用參數

參數 說明
add <地址> 設置網絡設備IPv6的IP地址
del <地址> 刪除網絡設備IPv6的IP地址
down 關閉指定的網絡設備
up 啟動指定的網絡設備
IP地址 指定網絡設備的IP地址

參考實例

  • 顯示網絡設備信息
[root@wayne:~]# ifconfig        
eth0      Link encap:Ethernet  HWaddr 00:0c:29:c9:94:8e  
          inet addr:192.168.142.174  Bcast:192.168.142.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fec9:948e/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:15571 errors:0 dropped:0 overruns:0 frame:0
          TX packets:937 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:1039722 (1.0 MB)  TX bytes:164525 (164.5 KB)
          Interrupt:19 Base address:0x2000 

eth1      Link encap:Ethernet  HWaddr 00:0c:29:c9:94:a2  
          inet addr:192.168.4.200  Bcast:192.168.4.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fec9:94a2/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:133 errors:0 dropped:0 overruns:0 frame:0
          TX packets:710 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:20861 (20.8 KB)  TX bytes:157963 (157.9 KB)
          Interrupt:18 Base address:0x2080 
  • 啟動關閉指定網卡
[root@wayne:~]# ifconfig eth0 up    // 啟動網卡
[root@wayne:~]# ifconfig eth0 down  // 關閉網卡
  • 配置和刪除網卡的IPv6地址
[root@wayne:~]# ifconfig eth0 add 33ffe:3239:800:1002::2/ 64 //為網卡設置IPv6地址
[root@wayne:~]# ifconfig eth0 del 33ffe:3239:800:1002::2/ 64 //為網卡刪除IPv6地址
  • 修改MAC地址
[root@wayne:~]# ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE //修改MAC地址

配置IP地址

[root@wayne:~]# ifconfig eth1 192.168.4.200 
//給eth1網卡配置IP地址
[root@wayne:~]# ifconfig eth1 192.168.4.200 netmask 255.255.255.0 
// 給eth1網卡配置IP地址,并加上子掩碼
[root@wayne:~]# ifconfig eth1 192.168.4.200 netmask 255.255.255.0 broadcast 192.168.4.255
// 給eth1網卡配置IP地址,加上子掩碼,加上廣播地址
  • 啟用和關閉ARP協(xié)議
[root@wayne:~]# ifconfig eth0 arp  //開啟
[root@wayne:~]# ifconfig eth0 -arp  //關閉
  • 設置最大傳輸單元
[root@wayne:~]# ifconfig eth0 mtu 2500 
//設置能通過的最大數據包大小為 2500 bytes

20.date命令

用來顯示或設定系統(tǒng)的日期與時間

語法格式 : date [選項] [+輸出形式]

常用參數

參數 說明
-s [datestr] 將系統(tǒng)時間設為 datestr 中所設定的時間
-u 顯示目前的格林威治時間

參考實例

  • 顯示當前時間:
[root@wayne:~]# date
Wed Mar  8 12:29:33 CST 2023
  • 按格式輸出時間:
[root@wayne:~]# date +"%Y-%m-%d"
2023-03-08
  • 設定時間:
[root@wayne:~]# date -s 20230308                // 設置日期為20230308,這樣會把具體時間設置成00:00:00
[root@wayne:~]# date -s 12:34:56                // 設置具體時間,不會對日期做更改
[root@wayne:~]# date -s "20230308 12:34:56"     // 設置全部時間

以上,如果覺得對你有幫助,點個贊再走吧,這樣@知微之見也有更新下去的動力!

也歡迎私信我,一起交流!

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容