跳至主要內容

常用命令总结

知识库编程技巧CentOSCentOS大约 2 分钟

1. sed处理

## 多个空格只保留一个
sed '/./,/^$/!d' test
## 删除开头的空白行
sed '/./,$!d' test
## 删除结尾的空白行
sed '{:start/^\n*$/{$d; N; b start}}' test
## 替换单独的单词
echo "The System Administrator manual" | sed 's/\(System\) Administrator/\1 user/'
## 在长数字中插入逗号
echo "1234567" | sed '{:start; s/\(.*[0-9]\)\([0-9]\{3\}\)/\1,\2/; t start}'
## 给文件中的行编号
sed '=' test | sed 'N; s/\n/ /'
## 将example.txt文件中的 "string1" 替换成 "string2"
sed 's/stringa1/stringa2/g' example.txt 
## 从example.txt文件中删除所有空白行
sed '/^$/d' example.txt 
## 从example.txt文件中删除所有注释和空白行
sed '/ *#/d; /^$/d' example.txt 
## 从文件example.txt 中排除第一行
sed -e '1d' result.txt 
## 查看只包含词汇 "string1"的行
sed -n '/stringa1/p' 
## 删除每一行最后的空白字符
sed -e 's/ *$//' example.txt 
## 从文档中只删除词汇 "string1" 并保留剩余全部
sed -e 's/stringa1//g' example.txt 
## 查看从第一行到第5行内容
sed -n '1,5p;5q' example.txt 
## 查看第5行
sed -n '5p;5q' example.txt 
## 用单个零替换多个零
sed -e 's/00*/0/g' example.txt 

2. 文件

## 删除0字节文件
find -type f -size 0 -exec rm -rf {} \;
## sed移除空白行
sed '/^$/d' file

3. 查看进程

## 按内存从大到小排列
PS -e -o "%C : %p : %z : %a"|sort -k5 -nr
## 进程总数
ps aux | wc -l
## 清除僵死进程
ps -eal | awk '{ if ($2 == "Z") {print $4}}' | kill -9
ps -al | gawk '{print $2,$4}' | grep Z

## 打开文件数目
lsof | wc -l
## 杀掉80端口相关的进程
lsof -i :80|grep -v "ID"|awk '{print "kill -9",$2}'|sh

4. 资源消耗

## CPU负载
cat /proc/loadavg
## CPU 利用率
ps -e -o "%C : %p : %z : %a"|sort -nr

## 内存的大小
free -m |grep "Mem" | awk '{print $2}'

## 磁盘空间
df -h
du -cks * | sort -rn | head -n 10

5. 网络

## 取 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}'

## 查看 http 的并发请求数及其 TCP 连接状态
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
netstat -an -t | grep ":80" | grep ESTABLISHED | awk '{printf "%s %s\n",$5,$6}' | sort
## 网络连接数目
netstat -an | grep -E "^(tcp)" | cut -c 68| sort | uniq -c | sort -n
## 查看有多少个活动的 php-cgi 进程
netstat -anp | grep php-cgi | grep ^tcp | wc -l

6. tcpdump 抓包,用来防止80端口被人攻击时可以分析数据

tcpdump -c 10000 -i eth0 -n dst port 80 > /root/pkts

7. 查看系统自启动的服务

chkconfig --list | awk '{if ($5=="3:on") print $1}'