Linux 命令大全


參考文章:  每天一個linux命令目錄

目錄

一、文件瀏覽命令

二、文件目錄操作命令

三、文件查找命令

四、文件權限設置

五、系統性能監控命令

六、網絡查看命令

七、linux 其他命令

 

一、文件瀏覽命令

  格式: 命令 [option] file

  • cat  由第一行開始顯示文件內容  
  • tac  從最后一行開始顯示,tac 是 cat 的倒寫
  • nl   顯示行號                                           -b a :空行也列出行號(類似 cat -n); -b t :非空行才列出行號(默認值); 
  • more 一頁一頁的顯示文件內容           [空格鍵]下一頁,[Backspace]上一頁。    +n 從笫n行開始顯示    -n 定義屏幕大小為n行  -c 清屏顯示
  • less 與 more 類似,但他可以往前翻頁    [空格鍵] 滾動一行, [回車鍵] 滾動一頁,[pagedown]: 下一頁,[pageup]:上一頁
  • head 看頭幾行,                                    -n 設定行數
  • tail   看尾部幾行                                     -f 循環讀取    tail -100f catalina.out
  • od   以二進制的方式讀取文件內容 

 

二、文件目錄操作命令

1. mkdir    -m:mode 設定權限  -p:parents 創建父級目錄             mkdir -m 777 -p dir1/dir2  

2. rm    -r 遞歸   -f force 強行刪除,忽略不存在的文件,系統不再提示    rm -rf dir  

3. mv   -b :覆蓋前先備份   -f :force 強制覆蓋   -i :詢問是否覆蓋       mv 1.txt 2.txt  可用於重命名

4. ls命令   列出目錄中所有子目錄和文件

-a, –all 列出目錄下的所有文件,包括以.開頭的隱含文件
-l 列出目錄或文件的詳細信息,包括文件的權限、所有者、文件大小等
-R, –recursive 遞歸查詢   -r, –reverse 依相反次序排列     -t 以文件修改時間排序
-F 顯示文件類型(File type),在列出的文件名后添加符號:/ 表明是一個目錄;@ 表明是到其它文件的符號鏈接;* 表明是一個可執行文件。 

ls -l s* 列出當前目錄中所有以“s”開頭的目錄的詳細內容
ls -F /opt/soft |grep /$ 只列出文件下的子目錄
ls -ltr s* 列出目錄下以s 開頭的檔案,愈新的排愈后面
ls | sed "s:^:`pwd`/:"   列出文件的絕對路徑

5. tar   為linux的文件和目錄創建檔案

  tar [主選項+輔選項] 文件或目錄

  主選項:【每條命令只能有一個主選項】

-c: --create  新建一個壓縮文檔,即打包     -x: --extract,--get  解壓文件
-t: --list  查看壓縮文檔里的所有內容    -r:--append   向壓縮文檔里追加文件    -u:--update   更新原壓縮包中的文件

  輔助選項:

-z 支持gzip解壓文件  -j 支持bzip2解壓文件  -Z 支持compress解壓文件
-v 顯示操作過程        -f 指定壓縮文件  -t 顯示壓縮文件的內容

-d 記錄文件的差別    -W 確認壓縮文件的正確性  -l 文件系統邊界設置
-k 保留原有文件不覆蓋  -m 保留文件不被覆蓋

      

tar -cvf log.tar 1.log 2.log   僅打包,不壓縮!
tar -tf log.tar   不解壓的情況下查看

6. gzip

-a 使用ASCII文字模式 -d 解壓文件 -l 列出壓縮文件的詳細信息  -r 遞歸處理   -v 顯示指令執行過程
-num 用指定的數字num調整壓縮的速度,-1或--fast表示最快壓縮方法(低壓縮比),-9或--best表示最慢壓縮方法(高壓縮比)。系統缺省值為6。

gzip *  / gzip -dv *   壓縮和解壓縮文件或目錄,若當前目錄下有10個文件則生成10個.gz的壓縮包,gzip沒有打包功能!

 

三、文件查找命令

1. find命令 在目錄結構中搜索文件

格式:find pathname -options [-print -exec -ok ...]

命令選項:
-name 按照文件名查找文件   -perm 按照文件權限來查找文件
-user 按照文件屬主來查找文件  -group 按照文件所屬的組來查找文件
-mtime (modify time)指文件內容被修改的時間 +n:大於n, -n:小於n
-atime (access time)文件被讀取或者執行的時間 -ctime (change time)文件狀態改變時間,如通過chmod修改文件屬性
-type 查找某一類型的文件,f:普通文件,d:目錄,p:管道文件,l:符號鏈接文件,c:字符設備文件,b:塊設備文件
-size n:[c] 查找文件長度為n塊的文件,帶有c時表示文件長度以字節計 -depth:在查找文件時,首先查找當前目錄中的文件,然后再在其子目錄中查找

find -atime -2 查找2天內修改過的文件
find . -type f -name "*.log"  根據關鍵字和類型查找
find /opt/soft/ -perm 777  按照目錄或文件的權限來查找文件
find . -size +1000c -print 查找當前目錄大於1K的文件

2. which命令   查看可執行文件的位置

  which指令會在PATH變量指定的路徑中,搜索某個系統命令的位置,並且返回第一個搜索結果。   which pwd

3. whereis命令  定位文件在文件系統中的位置

-b 查找二進制文件 -m 幫助文件   -s 源代碼文件    whereis -b svn

4. locate命令   配合數據庫查看文件位置

  locate和find功能類似,但locate是透過updatedb程序將硬盤中的所有檔案和目錄資料先建立一個索引數據庫,在執行loacte時直接找該索引,查詢速度會較快

locate pwd  查找和pwd相關的所有文件
locate /etc/sh  搜索etc目錄下所有以sh開頭的文件

 

四、文件權限設置命令

1. chmod命令

  權限分為只讀r、只寫w 和 可執行x,用戶分為 文件所有者u、同組用戶g、其他用戶o 和 所有的用戶及群組a

1)文字設定法: chmod [who] [+ | - | =] [mode] 文件名

2)數字設定法: chmod [mode] 文件名

  • 數字屬性的mode為3個數字,按順序表示(u)(g)(o)對應的權限。r=4,w=2,x=1 ,- 為0 表示刪除權限
  • rwx屬性為4+2+1=7 ; rw-屬性則4+2=6;r-x屬性則4+1=5。
  • chmod ug+w,o-x test.log ;   chmod -R 777 dir

2. chgrp命令  (change group)    改變文件或目錄所屬的用戶組

-c 當發生改變時輸出調試信息 -f 不顯示錯誤信息 -R 遞歸處理 -v 運行時顯示詳細的處理信息
--dereference 作用於符號鏈接的指向,而不是符號鏈接本身 --no-dereference 作用於符號鏈接本身
用戶組的所有信息都存放在/etc/group文件中 cat /etc/group

chgrp -v group1 1.log
chgrp --reference=1.log 2.log 改變文件2.log的群組屬性,使得文件2.log的群組屬性和參考文件1.log的群組屬性相同

3. chown命令(change owner)  改變文件或目錄的所有者和所屬的用戶組

  chown -R root /usr/tony  

 

五、系統性能監控命令

1. top命令   能夠實時顯示系統中各個進程的資源占用狀況,常用於服務端性能分析。

  -u  指定用戶名; -p  指定進程;  -n  循環顯示的次數

   

  顯示結果中的S 表示進程狀態。D=不可中斷的睡眠狀態 R=運行 S=睡眠 T=跟蹤/停止 Z=僵屍進程

2. free命令   顯示系統使用和空閑的內存情況

  -k  以KB為單位顯示內存使用情況;  -m  以MB為單位;-g   以GB為單位; -s<間隔秒數>  持續觀察內存使用狀況。

  free -m -s 10

  

3. vmstat命令 顯示關於內核線程、虛擬內存、磁盤、陷阱和 CPU 活動的統計信息。

-a:顯示活躍和非活躍內存
-f:顯示從系統啟動至今的fork數量 。
-m:顯示slabinfo
-n:只在開始時顯示一次各字段名稱。
-s:顯示內存相關統計信息及多種系統活動數量。
-d:顯示磁盤相關統計信息。

Procs(進程)       r: 運行隊列中進程數量  b: 等待IO的進程數量
Memory(內存)  swpd: 使用虛擬內存大小  free: 可用內存大小  buff: 用作緩沖的內存大小  cache: 用作緩存的內存大小
Swap                    si: 每秒從交換區寫到內存的大小  so: 每秒寫入交換區的內存大小
IO                         bi: 每秒讀取的塊數  bo: 每秒寫入的塊數
系統                      in: 每秒中斷數,包括時鍾中斷  cs: 每秒上下文切換數。
CPU                      us: 用戶進程執行時間(user time)  sy: 系統進程執行時間  id: 中央處理器的空閑時間(包括IO等待時間)  wa: 等待IO時間   (以百分比表示)

4. iostat命令   統計系統的磁盤操作活動

   查看CPU、網卡、tty設備、磁盤、CD-ROM 等等設備的活動情況, 負載信息。但不能指定進程。

  格式:iostat[參數][時間][次數]

-C 顯示CPU使用情況 -d 顯示磁盤使用情況
-k 以 KB 為單位顯示 -m 以 M 為單位顯示
-N 顯示磁盤陣列(LVM) 信息 -n 顯示NFS 使用情況
-p[磁盤] 顯示磁盤和分區的情況 -t 顯示終端和CPU的信息
-x 顯示詳細信息 -V 顯示版本信息

  (1) iostat -2 -3   每隔2秒刷新顯示,且顯示3次

%user:CPU處在用戶模式下的時間百分比  %nice:CPU處在帶NICE值的用戶模式下的時間百分比   %system:系統模式
%iowait:CPU等待輸入輸出完成時間的百分比   %steal:管理程序維護另一個虛擬處理器時,虛擬CPU的無意識等待時間百分比   %idle:CPU空閑時間百分比
備注:如果%iowait的值過高,表示硬盤存在I/O瓶頸,%idle值高,表示CPU較空閑,如果%idle值高但系統響應慢時,有可能是CPU等待分配內存,此時應加大內存容量。%idle值如果持續低於10,那么系統的CPU處理能力相對較低,表明系統中最需要解決的資源是CPU。

      

  (2) iostat -d -x -k 1 1  查看設備使用率(%util)、響應時間(await)

  每秒用於 I/O 操作的時間比,如果 %util 接近 100%,說明產生的I/O請求太多,I/O系統已經滿負荷,該磁盤可能存在瓶頸。

  

5. lsof命令   列出當前系統打開的文件

-c <進程名> 列出指定進程所打開的文件;   -p <進程號> 列出指定進程號所打開的文件
-u username 顯示所屬user進程打開的文件; -g gid 顯示歸屬gid的進程情況
+d <目錄> 顯示目錄下被進程打開的文件    +D<目錄> 同上,但是會搜索目錄下的所有目錄,時間相對較長
-a 表示兩個參數都必須滿足時才顯示結果   -i 用以顯示符合條件的進程情況

lsof -d <FD> 0表示標准輸入,1表示標准輸出,2表示標准錯誤,所以大多數應用程序所打開的文件的 FD 都是從 3 開始
lsof -c mysql -c apache 列出一個或多個程序進程所打開的文件信息
lsof -i 列出所有的網絡連接 lsof -i tcp/udp/:3306/udp:55/tcp:80
lsof -i @peida.linux:20,21,22,25,53,80 -r 3 每隔3秒打印peida.linux上端口為:20,21,22,25,53,80相關的所有文件信息

6. ps  (Process Status) 列出系統當前運行的進程。       

-a 顯示同一終端下的所有程序 -aux 顯示所有包含其他使用者的行程 -f 顯示程序間的關系 -u 指定用戶

ps -ef|grep tomcat    ps 與grep常用組合用法,查找特定進程
ps -aux --sort -pcpu | less      根據 CPU 使用率按降序排序
ps -aux --sort -pmem | less    根據內存使用率按降序排序

 

六、網絡查看命令

1. ifconfig命令   獲取或修改網絡接口配置信息

格式:ifconfig [網絡設備] [參數]

ifconfig  顯示網絡設備信息
ifconfig eth0 up/down   啟動/關閉指定網卡
ifconfig eth0 add/del 33ffe:3240:800:1005::2/64   為網卡eth0配置/刪除IPv6地址
ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE   修改MAC地址
ifconfig eth0 192.168.120.56 netmask 255.255.255.0 broadcast 192.168.120.255   配置IP地址,添加子掩碼和廣播地址
ifconfig eth0 mtu 1500   設置最大傳輸單元
ifconfig eth0 arp/-arp     啟用/關閉ARP協議

2. ip命令   ip命令用來顯示或操縱Linux主機的路由、網絡設備、策略路由和隧道。[替換ifconfig]

3. netstat命令   顯示網絡連接狀態及其相關信息

-a 顯示所有socket,包括正在監聽的。 -c 每隔1秒就重新顯示一遍,直到用戶中斷它。
-i 顯示所有網絡接口的信息 -n 以網絡IP地址代替名稱,顯示出網絡連接情形。
-t 顯示TCP協議的連接情況 -u 顯示UDP協議的連接情況。
-p 顯示建立相關連接的程序名和PID。 -b 顯示在創建每個連接或偵聽端口時涉及的可執行程序。 -o顯示與每個連接相關的所屬進程 ID。
-e 顯示以太網統計。此選項可以與 -s 選項結合使用。 -s 顯示每個協議的統計。
-f 顯示外部地址的完全限定域名(FQDN)。 -r顯示核心路由表,格式同“route -e”

netstat -l   顯示監聽的套接口
netstat -a | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'    統計機器中網絡連接各個狀態個數
netstat -ap | grep ssh     找出程序運行的端口
netstat -anpt | grep ':8080'    找出運行在指定端口的進程

4. ss命令    (Socket Statistics) 用來獲取socket統計信息  [替換netstat]

  ss可以顯示和netstat類似的內容。但它能夠顯示更多更詳細的有關TCP和連接狀態的信息,而且比netstat更快速更高效。ss比netstat快的主要原因是,netstat是遍歷/proc下面每個PID目錄,ss直接讀/proc/net下面的統計信息。可以使用 time ss 和 time netstat -at 對比兩個命令的效率。

  ss常用參數和netstat類似,如-anp

5. ping命令   用來測試與目標主機的連通性

ping -c 10 -i 0.5 192.168.120.206       -c 指定次數 -i 間隔的秒數
ping -b 192.168.120.1      ping網關,可用route查看網關地址

6. telnet命令  遠程登錄  

  telnet因為采用明文傳送報文,安全性不好,很多Linux服務器都不開放telnet服務,而改用更安全的ssh方式了

  telnet <ip/hostname>

7. ssh命令  遠程登錄

8. rcp命令  (remote file copy) 遠程文件拷貝

  rcp [參數] [源文件] [目標文件]         -r 遞歸 -x 為傳送的所有數據打開DES加密 -p 試圖保留源文件的修改時間和模式

  rcp -r  /home/root/dir  hostname:/home/root/

9. scp命令  (secure copy) 遠程文件拷貝

  scp [參數] [原路徑] [目標路徑]

  scp root@192.168.120.204:/home/root/test.tar.gz /home/root/    從遠處復制文件到本地目錄, scp傳輸是加密的

10. route命令   顯示和操作IP路由表

route -n 顯示當前路由
route add/del default gw 192.168.120.240 添加/刪除默認網關
route add/del -net 224.0.0.0 netmask 240.0.0.0 dev eth0 添加/刪除網關/設置網關
route add/del -net 224.0.0.0 netmask 240.0.0.0 reject 添加/刪除一條屏蔽的路由,目的地址為 224.x.x.x 將被拒絕

11. traceroute命令   檢測發出數據包的主機到目標主機之間所經過的網關

  -q: 設置向每個網關發送的探測包個數(缺省為3)  -m 設置跳數

    以下返回結果每個紀錄就是一跳 ,每跳表示一個網關,我們看到每行有三個時間,其實就是3個數據包對映的網關響應時間。
 [root@localhost ~]# traceroute www.baidu.com
 traceroute to www.baidu.com (61.135.169.125), 30 hops max, 40 byte packets
 1  192.168.74.2 (192.168.74.2)  2.606 ms  2.771 ms  2.950 ms
 2  211.151.56.57 (211.151.56.57)  0.596 ms  0.598 ms  0.591 ms
 3  211.151.227.206 (211.151.227.206)  0.546 ms  0.544 ms  0.538 ms
 4  210.77.139.145 (210.77.139.145)  0.710 ms  0.748 ms  0.801 ms
 5  202.106.42.101 (202.106.42.101)  6.759 ms  6.945 ms  7.107 ms
 6  61.148.154.97 (61.148.154.97)  718.908 ms * bt-228-025.bta.net.cn (202.106.228.25)  5.177 ms
 7  124.65.58.213 (124.65.58.213)  4.343 ms  4.336 ms  4.367 ms
 8  202.106.35.190 (202.106.35.190)  1.795 ms 61.148.156.138 (61.148.156.138)  1.899 ms  1.951 ms
 9  * * *
10  * * *

 

七、linux 其他命令

1. grep 文本搜索

ps -ef|grep -c svn  查找指定進程個數
cat test.txt | grep -nf key.txt    從文件中讀取關鍵詞對test.txt進行搜索, 且顯示行號
grep 'linux' test1.txt test2.txt   從多個文件中查找關鍵詞
cat test.txt |grep ^[^u]   輸出非u開頭的行內容
cat test.txt |grep hat$     輸出以hat結尾的行內容

2. wc 統計指定文件中的字節數、字數、行數

-c 統計字節數。  -m 統計字符數。這個標志不能與 -c 標志一起使用。
-l 統計行數。    -w word統計單詞數。計算由空白、跳格或換行字符分隔的字符串數量。

wc test.txt 顯示:行數 單詞數 字節數 文件名
ls -l | wc -l 統計當前目錄下的文件數

3. watch  周期性執行命令/定時執行命令

-n或--interval 指定間隔的時間(缺省2秒)   -d或--differences  會高亮顯示變化的區域

watch -n 5 -d 'cat /proc/loadavg'    每10秒輸出系統的平均負載

4. ln 文件鏈接

  為某一個文件在另外一個位置建立一個同步的鏈接,可以將其視為檔案的別名,而鏈接又可分為兩種 : 硬鏈接(hard link)與軟鏈接(symbolic link)。硬鏈接會在你選定的位置上生成一個和源文件大小相同的文件,無論是軟鏈接還是硬鏈接,文件都保持同步變化。

軟鏈接:
1.軟鏈接,以路徑的形式存在。類似於Windows操作系統中的快捷方式
2.軟鏈接可以 跨文件系統 ,硬鏈接不可以
3.軟鏈接可以對一個不存在的文件名進行鏈接
4.軟鏈接可以對目錄進行鏈接

硬鏈接:
1.硬鏈接,以文件副本的形式存在。但不占用實際空間。
2.不允許給目錄創建硬鏈接
3.硬鏈接只有在同一個文件系統中才能創建

 ln [參數][源文件或目錄][目標文件或目錄]

-b 刪除,覆蓋以前建立的鏈接 -i 交互模式,文件存在則提示用戶是否覆蓋
-d 允許超級用戶制作目錄的硬鏈接 -f 強制執行
-s 軟鏈接(符號鏈接) -n 把符號鏈接視為一般目錄 -v 顯示詳細的處理過程

ln -s test.log link1 給文件創建軟鏈接
ln test.log ln1 給文件創建硬鏈接
ln test.log /opt/soft 創建test.log的硬連接/opt/soft/test.log
1)源文件被刪除后,並沒有影響硬鏈接文件;軟鏈接文件在centos系統下不斷的閃爍,提示源文件已經不存在
2)重建源文件后,軟鏈接不在閃爍提示,說明已經鏈接成功,找到了鏈接文件系統;重建后,硬鏈接文件並沒有受到源文件影響,硬鏈接文件的內容還是保留了刪除前源文件的內容,說明硬鏈接已經失效

5. make 編譯命令

  make是一個解釋makefile中指令的命令工具,make可自動完成編譯工作,而不用gcc命令單獨編譯每個源文件,並且可以只對程序員在上次編譯后修改過的部分進行編譯,提高了開發效率。Makefile文件描述了整個工程的編譯、連接等規則。

  Linux應用軟件的安裝包通常有三種:
a. tar包,如software.tar.gz。它是使用UNIX系統的打包工具tar打包的。

  1)“tar –xvf 解壓后的tar包”進行解包;
  2) 閱讀附帶的INSTALL文件、README文件;
  3) 執行“./configure”命令為編譯做好准備;
  4) 執行“make”命令進行軟件編譯;
  5) 執行“make install”完成安裝;
  6) 執行“make clean”刪除安裝時產生的臨時文件。

b. rpm包,如software.rpm。它是Redhat Linux提供的一種包封裝格式。

rpm參數 : -i    安裝軟件     -t     測試安裝,不是真的安裝    -p   顯示安裝進度    
           -U   升級安裝    -v    檢測套件是否正確安裝        -f    忽略任何錯誤

       安裝:rpm –ivh software.rpm  卸載: rpm –e software //軟件名

c. dpkg包,如software.deb。它是Debain Linux提供的一種包封裝格式。

   安裝:dpkg –i software-1.2.3-1.deb  卸載: dpkg –e software

RedHat 系列 
  1) 常見的安裝包格式 rpm包,安裝rpm包的命令是“rpm -參數” 
  2)包管理工具 yum 
  3) 支持tar包

Debian系列 
  1) 常見的安裝包格式 deb包,安裝deb包的命令是“dpkg -參數” 
  2) 包管理工具 apt-get 
  3) 支持tar包

apt-get update 更新軟件包,在修改/etc/apt/sources.list或者/etc/apt/preferences之后運行該命令
apt-get upgrade 更新已安裝的軟件包
apt-get dist-upgrade 升級系統
apt-get install packagename 安裝軟件包
apt-get remove packagename 卸載軟件包(保留配置文件)
apt-get –purge remove packagename 卸載軟件包(刪除配置文件)
apt-get clean 刪除包緩存中的所有deb //APT的底層包是dpkg, 而dpkg安裝軟件包時, 會將*.deb放在緩存中/var/cache/apt/archives/
apt-get autoclean  刪除包緩存中的已經過期的deb

6. awk 命令

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM