華文網

linux 學習——Shell命令組合(二)之 相得益彰

1、內核日誌 # dmesg 時間 # date

2、批量修改檔案名:

a、find命令找到檔案名副檔名為.output的文件。

b、 sed命令中的-e選項表示流編輯動作有多次,第一次是將找到的檔案名中相對路徑首碼部分去掉,如./aa改為aa。流編輯的第二部分,是將20110311替換為mv & 20110310,其中&表示s命令的被替換部分,這裡即原始檔案名。 表示被替換部分中#的(.*)。# mv 20110311.output 20110310.output # mv 20110311abc.output 20110310abc.output # 最後將上面的輸出作為命令交給bash命令去執行,從而將所有20110311*.output改為20110311*.output

# /> find ./ -name "*.output" -print | sed -e 's/.///g' -e 's/20110311(.*)/mv & 20110310/g' | bash

3、已經打開的控制碼數 # lsof | wc -l

4、網路抓包,直接輸出摘要資訊到檔。 # tcpdump -c 10000 -i eth0 -n dst port 80 > /root/pkts

5、然後檢查IP的重複數 並從小到大排序 注意 “-t +0” 中間是兩個空格,

less命令的用法。

# less pkts | awk {‘printf $3″ ”‘} | cut -d. -f 1-4 | sort | uniq -c | awk {‘printf $1″ “$2″ ”‘} | sort -n -t +0

6、kudzu查看網卡型號# kudzu –probe –class=network

7、獲取當前IP位址,強大的awk,一個命令搞定。

# ifconfig |awk -F"[ ]+|[:]" 'NR==2 {print $4}'

來點大自然的顏色不至於視覺疲勞

8、顯示運行3級別開啟的服務(從中瞭解到cut的用途,截取資料) # ls /etc/rc3.d/S* |cut -c 15-

9、查看進程樹 # ps aufx

10、CPU的數量 # cat /proc/cpuinfo |grep -c processor

11、CPU負載 # cat /proc/loadavgCPU負載 # mpstat 1 1

13、記憶體空間 # free 磁碟空間 # df -h磁片I/O負載 # iostat -x 1 2

15、如發現某個分區空間接近用盡,可以進入該分區的掛載點,用以下命令找出佔用空間最多的檔或目錄 # du -cks * | sort -rn | head -n 10

17、網路負載# sar -n DEV

網路錯誤 # netstat -i # cat /proc/net/dev

19、網路連接數目 # netstat -an | grep -E “^(tcp)” | cut -c 68- | sort | uniq -c | sort -n

20、進程總數 # ps aux | wc -l

21、將查找到的檔打包並copy到指定目錄:

a、通過find找到目前的目錄下(包含所有子目錄)的所有*.txt文件。

b、 tar命令將find找到的結果壓縮成test.tar壓縮包檔。

c、 如果&&左側括弧內的命令正常完成,則可以執行&&右側的shell命令了。

d、 將生成後的test.tar文件copy到/home/.目錄下。

/> (find . -name "*.txt" | xargs tar -cvf test.tar) && cp -f test.tar /home/.