Linux系統的每個命令都有不同的功能,當他們組合在一起時會產生更不一樣的效果。下面由學習啦小編為大家整理了Linux系統組合命令的常見使用方式,希望對大家有幫助!
Linux系統常用的組合命令說明
Linux組合命令使用
1,殺死某個執行某個程序的進程
ps -ef | grep MultiThreadPrint.bin | awk '{ print $2; }' | xargs kill -9
2,找出文本文件的記錄中主鍵不重復的條數
awk -F'|' '{print $1}' | sort | uniq | wc -l
3,壓縮文件時排除某些目錄
tar -czvf test.tar.gz test--exclude=test/data --exclude=test/dir
4,定時全庫導出Oracle的腳本,一度在oracle下創建定時任務,不能搞定環境變量的問題,後來在root用戶下創建定時任務,再
su - oracle -c “export outfile=`date +%Y%m%d_%H%M`;exp system/manager@testdb full=y file=wostore.db${outfile}.dmp;gzip *.dmp;",搞定問題
5,HP-UX下計算Oracle鏈接數
netstat -na | grep .1521 | wc -l
6,給網卡增加綁定的IP
ifconfig bond0:0 10.95.98.45 netmask 255.255.255.128 up
7,服務器抓包
tcpdump -i bond0 -s 0 port 9999 -w test.cap
8,查詢cpu占用率最高的Java線程
a,設置環境變量允許產生core文件,ulimited -c 2048000000
b,在日志文件中打印堆棧信息,kill -3 pid
c,查詢cpu占用率最高的線程ps h -eo user,pid,ppid,tid,time,%cpu,cmd --sort=%cpu
d,將線程號轉成16進制,在日志文件的堆棧信息中找到對應的線程的堆棧信息。
8,查找CPU占用率最高的線程
ps -eLf | sort -k 9,9
9,從文件夾中找含有指定字符串的文件
find ./ -name *.log | xargs grep "ERROR"
10,查找文件大於10M的文件,並顯示其文件大小
find ./ -size +10240k -exec ls -l {} /;
11,從文件某行截取到末尾
awk 'n==1{print} $0~/-------------/{n=1}' yourfile
grep -A 100 "\------" yourfile | grep -v "\-----"
sed -n '/-------------/,$ p' yourfile
Linux系統裡常用的組合命令
任務
命令組合
1
刪除0字節文件
find . -type f -size 0 -exec rm -rf {} \;
find . type f -size 0 -delete
2
查看進程,按內存從大到小排列
ps -e -o "%C : %p : %z : %a"|sort -k5 -nr
3
按cpu利用率從大到小排列
ps -e -o "%C : %p : %z : %a"|sort -nr
4
打印說cache裡的URL
grep -r -a jpg /data/cache/* | strings | grep "http:" | awk -F'http:' '{print "http:"$2;}'
5
查看http的並發請求數及其TCP連接狀態
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
6
sed在這個文裡Root的一行,匹配Root一行,將no替換成yes。
sed -i '/Root/s/no/yes/' /etc/ssh/sshd_config
7
如何殺掉mysql進程
ps aux |grep mysql |grep -v grep |awk '{print $2}' |xargs kill -9
killall -TERM mysqld
kill -9 `cat /usr/local/apache2/logs/httpd.pid`
8
顯示運行3級別開啟的服務(從中了解到cut的用途,截取數據)
ls /etc/rc3.d/S* |cut -c 15-
9
如何在編寫SHELL顯示多個信息,用EOF
cat << EOF
+--------------------------------------------------------------+
| === Welcome to Tunoff services === |
+--------------------------------------------------------------+
EOF
10
for的用法(如給mysql建軟鏈接)
cd /usr/local/mysql/bin
for i in *
do ln /usr/local/mysql/bin/$i /usr/bin/$i
done
11
取IP地址
ifconfig eth0 |grep "inet addr:" |awk '{print $2}'|cut -c 6-
ifconfig | grep 'inet addr:'| grep -v '127.0.0.1' |cut -d: -f2 | awk '{ print $1}'
12
內存的大小
free -m |grep "Mem" | awk '{print $2}'
13
查看80端口的連接,並排序
netstat -an -t | grep ":80" | grep ESTABLISHED | awk '{printf "%s %s\n",$5,$6}' | sort
14
查看Apache的並發請求數及其TCP連接狀態
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
15
統計一下服務器下面所有的jpg的文件的大小
find / -name *.jpg -exec wc -c {} \;|awk '{print $1}'|awk '{a+=$1}END{print a}'
16
CPU的數量
cat /proc/cpuinfo |grep -c processor
17
CPU負載
cat /proc/loadavg
18
CPU負載
mpstat 1 1
19
內存空間
free
20
磁盤空間
df -h
21
如發現某個分區空間接近用盡,可以進入該分區的掛載點,用以下命令找出占用空間最多的文件或目錄
du -cks * | sort -rn | head -n 10
22
磁盤I/O負載
iostat -x 1 2
23
網絡負載
sar -n DEV
24
網絡錯誤
netstat -i
cat /proc/net/dev
25
網絡連接數目
netstat -an | grep -E “^(tcp)” | cut -c 68- | sort | uniq -c | sort -n
26
進程總數
ps aux | wc -l
27
查看進程樹
ps aufx
28
可運行進程數目
vmwtat 1 5
29
檢查DNS Server工作是否正常,這裡以61.139.2.69為例
dig www.baidu.com @61.139.2.69
30
檢查當前登錄的用戶個數
who | wc -l
31
日志查看、搜索
cat /var/log/rflogview/*errors
grep -i error /var/log/messages
grep -i fail /var/log/messages
tail -f -n 2000 /var/log/messages
32
內核日志
dmesg
33
時間
date
34
已經打開的句柄數
lsof | wc -l
35
網絡抓包,直接輸出摘要信息到文件。
tcpdump -c 10000 -i eth0 -n dst port 80 > /root/pkts
36
然後檢查IP的重復數 並從小到大排序 注意 "-t\ +0" 中間是兩個空格,less命令的用法。
less pkts | awk {'printf $3"\n"'} | cut -d. -f 1-4 | sort | uniq -c | awk {'printf $1" "$2"\n"'} | sort -n -t\ +0
37
kudzu查看網卡型號
kudzu --probe --class=network