Linux下一些常用Shell命令

in 互联网技术 with 0 comment  访问: 2,916 次

mpstat用于报告多路CPU主机的每颗CPU活动情况,以及整个主机的CPU情况.

下边的命令可以隔2秒报告一次处理器的活动情况,执行3次:

[root@nock bin]# mpstat 2 3
Linux 3.10.0-123.el7.x86_64 (nock)  2019年09月10日     _x86_64_    (8 CPU)

13时18分56秒  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
13时18分58秒  all    0.38    0.00    0.19    0.00    0.00    0.06    0.00    0.00    0.00   99.37
13时19分00秒  all    0.44    0.00    0.25    0.00    0.00    0.00    0.00    0.00    0.00   99.31
13时19分02秒  all    5.97    0.00    6.03    0.00    0.00    0.00    0.00    0.00    0.00   88.00
平均时间:  all    2.26    0.00    2.15    0.00    0.00    0.02    0.00    0.00    0.00   95.57

如下命令每隔1秒显示一次多路CPU主机的处理器活动情况,执行3次:

[root@nock bin]# mpstat -P ALL 1 3

在当前目录下列出所有的扩展名:

find . -type f | awk -F'.' '{print $NF}' | sort| uniq -c | sort -g

批量替换php中的关键字 :

for I in `find . -name "*.php"`; do sed -i "s/old name/new name/g" $I; done 

快速的将当前目录中所有的.php扩展名修改为.html

for i in *.php; do mv $i ${i%.php}.html; done

用备份的superblock来挂载文件系统 :

mount -o sb=98340 /dev/sda1 /mnt/data1/

删除B目录中与A目录同名的文件:

for file in A/*; do rm B/`basename $file`; done

找出10个大文件:

du -sh * | sort -rh | head 

寻找非html的文件:

find . -type f ! -name "*html"

用脚本获取eth0上的IPv4地址:

ip addr show eth0 |grep 'inet\b' |awk '{print $2}' |sed -r -e 's/\/.*?//g'

以html的形式获取服务器的硬件配置报告 :

lshw -html >hardware.html

统计服务器上已经建立的TCP的链接:

netstat -an | awk '$1 ~ /[Tt][Cc][Pp]/ && $NF ~ /ESTABLISHED/{i++}END{print "Connected:\t", i}'

限制传输速率:

cat /dev/urandom | pv -L 3m | dd bs=1M count=100 iflag=fullblock > /dev/null

上一条命令的快捷方式:

alias foo="!!"

备份制定后缀的文件并且打包到根目录下:

tar --exclude=".??*" -zcvf ./home_backup_2008.tar.gz my_home

替换:将hh文件下的内容192替换成193 :

for I in "hh"; do sed -i "s/192/193/g" $I; done

Linux 限制传输速率:

cat /dev/urandom | pv -L 3m | dd bs=1M count=100 iflag=fullblock > /dev/null

格式化另一个日期:

date --date=yesterday +%Y%m%d

合并多个文件到一个文件中:

cat file1 . . . fileN > NEWFile

递归删除所有的htm:

find . -type f -name '*.htm' -delete

列出并删除一岁的文件:

find <目录路径> -mtime +365 -and -not -type d -delete

查找日志中的所有问题 :

grep -2 -iIr "err\|warn\|fail\|crit" /var/log/*

寻找最大的10个文件夹 :

find . -type d -print0 | xargs -0 du -s | sort -n | tail -10 | cut -f2 | xargs -I{} du -sh {} | sort -rn

检查端口是否开放:

nmap -p 80 hostname

显示命令的输出值到file.txt文件中 :

command | sed '/file.txt/q'

保存man页面为pdf文件 :

man -t awk | ps2pdf - awk.pdf

列出所有zip压缩包里边的文件并解压 :

find . -name "[i].tgz" -or -name "[/i].zip" | while read file; do echo "$file:"; unzip $file; done

显示所有目录内容:

while read f;do echo "$f";done < <(find .)

Linux 查找指定的某个目录:

find / -name 目录名 -type d

在/var/log/secure 里针对某个IP扫描了多少次:

cat /var/log/secure |grep 192.168.83.40 | wc -l

对其中的secure获取其中的ip地址和数量:

grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' /var/log/secure | sort | uniq -c
WeZan