批量修改后缀名(例如把当前目录下的.cpp文件修改为.c文件)
ls *.cpp | awk -F'.' '{print $1}' | xargs -I {} mv {}.cpp {}.c
把指定的文件移动到指定的目录(例如把当前目录下的.java文件移动到/dir)
ls *.java | xargs -I {} mv {} /dir
统计当前处于TIME_WAIT状态下的TCP连接个数(腾讯面试题)
netstat -tan | awk '{print $6}' | grep "TIME_WAIT" | wc -l
netstat -ant |awk '{if(NR>1)++s[$NF]} END {for(k in s) print k,s[k]}'
统计当前目录下某个文件中出现频率最高的十个单词(假定文件名为file)
cat file | sort | uniq -c | sort -rn | head -10
统计当前目录下某个文件中单词个数
cat file | sort | uniq -c
删除文本中的空行
cat file | sed '/^$/d'
grep -v "^$" file
提取本机的IP地址
ifconfig eth0 |awk -F"[ ]+|[:]" 'NR==2 {print $4}'
ifconfig eth0 | awk 'NR==2{print $0}' | awk -F":" '{print $2}' | awk '{print $1}'
统计当前目录下.c文件的个数
ls *.c | wc -l
统计当前目录下.c文件的总行数
ls *.c | xargs wc -l
网络连接状态数目
netstat -ant |sed '1,2d' |awk '{print $6}' |sort |uniq -c |sort -n
如发现某个分区空间接近用尽,可以进入该分区的挂载点,用以下命令找出占用空间最多的文件或目录
du -cks * | sort -rn | head -n 10
查看内存的大小
free -m | grep "Mem" | awk '{print $2}'
查看与对端80端口的连接
netstat -ant | grep ":80" | grep "ESTABLISHED"|awk '{print $4,$5}'
删除0字节文件
find . -type f -size 0 -exec rm -rf {} \;
网络抓包,直接输出摘要信息到文件
tcpdump -c 10000 -i eth0 -n dst port 80 > /root/pkts
查看cpu负载最高的10个进程
ps aux |awk '{if(NR!=1) print $11,$3}' |sort -k2 -rn | head -10
查看系统运行了多长时间
uptime | awk '{print $3}' | awk -F"," '{print $1}'
查询当前目录下的包含XXX字符串的文件
find . | xargs grep "XXX" -l
批量替换当前目录下文件内容(例如把void main替换成int main)
sed -i "s/void\ main/int\ main/" `grep "main" -rl *`
批量删除多级目录下同一格式的文件
find 目录名 -type f -name "*.java" -exec rm -f {} \;