Linux實用命令整理


說明

點擊標題可進入詳細講解的章節

0. 基本命令

linux 基本命令整理

1. 壓縮 解壓

tar -zcvf a.tar.gz a   #把a壓縮成a.tar.gz tar -zxvf a.tar.gz     #把a.tar.gz解壓成a
zip -r a.zip a
unzip a.zip

2. vim小結

2.1 vim替換

:m,ns/word_1/word_2/gc  #把word_1用word_2替換,g表示替換所有的, c表示替換每一個時需要確認

2.2 vim統計某一個字符串的個數

:m,ns/word_1/&/gn       #統計從m行到n行之間word_1的個數, n表示只是統計個數不替換
:1,$s/word_1/&/gn       #搜索整個文檔中word_1的個數,和下面等價
:%s/word_1/&/gn

2.3 vim中刪除某一字符串

:m,ng/word_1/d         #從第m行到第n行刪除所有的word_1

3. 文件搜索

3.1 locate——通過文件名查找

locate /bin/zip   

3.2 find——通過文件的各種屬性在既定的目錄下查找

find /usr  -type f -name "*.png" -size +1M           #查找的目錄范圍是/usr,名字以.png結尾,大小大於1M(+1M,1M,-1M)
find /usr  -type f -name "*.png" -size +1M  | wc -l  #統計符合條件的行數 find /usr  -type f -name "*.png" -size +1M  -delete  #刪除符合條件的

3.3 找出目錄dirs下含有字符串“hello”的所有文件的名字(個數)

find .|xargs grep "IBM"      #xargs是一條Unix和類Unix操作系統的常用命令。它的作用是將參數列表轉換成小塊分段傳遞給其他命令,以避免參數列表過長的問題。
find .|xargs grep "IBM" -l   #只打印出文件名

4. 排序 sort

cat file_name | sort -k2 -r            #按第二列(從一開始技術)排序,-r表示reverse,從大到小輸出 cat file_name | sort -k1 -n            #按第一列排序, -n按數字排序,默認為按字符串排序 cat file_name | sort -k1 -nr | wc -l   #統計滿足條件的個數

5. 系統開銷

5.1 df——磁盤占用情況

df     #列出各文件系統的磁盤空間占用情況(已用 未用)共五列:Size  Used Avail Use% Mounted on
df -h  #以更易讀的方式顯示 (按K\M\G適當轉換)
df -sh dirname #

5.2 du——文件大小

du                 #列出本目錄下,目錄的大小(默認的計數單位是k)
du -h filename     #以更易讀的方式顯示所查文件的大小
du -sh dirname #查看目錄dirname的總大小
du -h --max-depth=1 #本目錄下各文件、目錄大小

5.3 w——CPU負載度量(簡單的說是進程隊列的長度,最近一段時間1min,5min,15min的load度量)

w

6. 進程狀態

ps(Process Status)用來列出系統中當前運行的那些進程。ps命令列出的是當前那些進程的快照,如果想要動態的顯示進程信息,就可以使用top命令。

ps -ef

ps -ef 和 ps aux區別:參考:http://doc.okbase.net/%E8%B6%B3%E8%87%B3%E8%BF%B9%E7%95%99/archive/118297.html

7. awk命令

cat file_name | awk '{print $1}'                           #輸出第一列(默認以空格切分)
cat file_name | awk  -F ':'  '{print $1"\t"$3}'            #-F指定切割符號,輸出第3列
cat file_name | awk -F ':' 'BEGIN {print "name,id"} {print $1","$3} END {print "end_name,end_id"}'  #BEGIN指定開頭輸出,END指出結尾輸出
cat file_name | awk -F ':' '/keyWord/{print $1}'           # 輸出一行中含有關鍵字keyWord的制定列
cat file_name | awk -F ':' '{print "filename:" FILENAME ",linenumber:" NR ",columns:" NF}'          #內置變量FILENAME文件名,NR已讀記錄數,NF列數
cat file_name | awk '{count++} END {print "Count:" count}' #編程,最后輸出總行數

8. sed命令

sed是stream editor(流式編輯器)的縮寫,它可以對文本流、指定文件集或標准輸入進行文本編輯。功能非常強大。

sed -n '2p' del2                #查看第2行
sed '1,2s/hello/NO/g' del2      #地1到2行的hello全部替換成NO(參數g表示替換全部)
sed '2,3d' del2                 #刪除第2到3行
sed '2,3a mmm' del   #第2和3行后(a)插入mmm

9. 編碼轉換

iconv -f gbk -t utf-8 -c  text.txt -o text.out #-f:from -t:to -c從輸出中忽略無效的輸出 -o輸出文件名字

10. 文件屬性

chmod 屬性 文件名        #更改文件屬性r:4 w:2 x:1
chown 用戶名 文件名
chgrp 組名 文件名
chown 用戶名:組名 文件名 #同時修改文件所屬的用戶和組
chown -R 用戶名 目錄名 #遞歸把目錄里面(包括目錄自己)中的文件全部修改所屬用戶名

11. 管道 |  重定向 >

ls   -l   |grep   "^-"   |   wc   -l  #grep 正則匹配以'-'開頭的, wc -l:統計滿足條件的總的行數
ls   -l   |grep   "^-"  >file_name1   #把滿足結果的定位到file_name1,注:先清空再定位 ls   -l   |grep   "^-"  >>file_name2  #把滿足結果的輸出到file_name2的后面,注:不清空,在原來基礎上繼續存儲

12. curl 文件傳輸下載、POST請求、GET請求

curl http://www.cnblogs.com/kaituorensheng/                                                    #下載網頁,默認只下載HTML文檔; -l只顯示頭部; -i 顯示全部
curl http://e.hiphotos.baidu.com/image/pic/item/50da81cb39dbb6fd1e165c260a24ab18972b3764.jpg   #下載圖片
curl "www.hotmail.com/when/junk.cgi?birthyear=1905&press=OK"                                   #獲取表單,參數birthyear=1905,press=OK"

請求

curl  -X POST http://ip:port/test -d "id=1234&type=3"

發送帶參數的GET請求 (帶參數,要把鏈接引起來)

curl  "http://test.abc.com/api/test/create_test?flow_id=1&obj_id=3"

 

13. 軟鏈接

ln -s src_name  ln_name   #建立軟鏈接,這里的src_name可以是文件名也可以是目錄名
rm ln_name                #刪除軟鏈接

14. xargs

批量殺死多個進程,例如批量殺死所有的python進程

ps -ef | grep python | awk '{print $2}' | xargs sudo kill -9

批量解壓,例如批量解壓后綴為tar.gz的文件

ls | grep tar.gz | xargs -n1 tar zxvf

注:這里-n1意思是每次只傳入一個參數。對比

$echo 1 2 3 4 | xargs -n1 echo 
1
2
3
4

$echo 1 2 3 4 | xargs -n2 echo 
1 2
3 4

$echo 1 2 3 4 | xargs -n3 echo 
1 2 3
4

15. tail -f

可以得到新追加到文件中的信息,常用來跟蹤日志文件

tail -f RnLog

16. lsof

用途:查找出占用了某個端口的程序和其對應的PID

sudo lsof -i:8087

17. 通過關鍵字找文件

grep -r "12.34.56.78" /var/log

18. grep 或

 cat deldel | grep -E 'LoadRefData|afads'

 

 

 拓展:http://www.cnblogs.com/perfy/archive/2012/07/24/2606101.html


免責聲明!

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



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