Linux day13 (三剑客习题)

1. 找出/proc/meminfo文件中以s开头的行,至少用三种方式忽略大小写

egrep -i '^s' /proc/meminfo 
awk '/^[sS]/' /proc/meminfo 
sed -nr '/^[sS]/p' /proc/meminfo

2. 显示当前系统上的root,centos或者user的信息

egrep '^(root|user|centos)' /etc/passwd

3. 找出/etc/init.d/function文件下包含小括号的行

grep -E '(\(.*\))' /etc/init.d/functions

4. 输入指定目录的基名

pwd | awk -F/ '{print $NF}'

5. 找出网卡信息中包含的数字

ip a |egrep -o '[0-9]+'

6. 找出/etc/passwd下每种解析器的用户个数

awk -F: '{print $NF}' /etc/passwd | sort | uniq -c
awk -F: '{num[$NF]++}END{for (i in num){printf "%-15s : %s\n",i,num[i]}}' /etc/passwd

#!/bin/bash

declare -A arrary

while read line
do
    res=`echo $line |awk -F: '{print $NF}'`
    let arrary[$res]++
done < 1.txt

for i in ${!arrary[*]}
do
    echo $i:${arrary[$i]}
done

7. 过去网卡中的ip,用三种方法实现

ip a | egrep -o '([0-9]{1,3}\.){3}[0-9]{1,3}'

8. 搜索/etc目录下,所有的.html或.php文件中main函数出现的次数

find ./ -name "*.html" -o -name "*.php" -exec grep -R "main" {} \;

9. 过滤php.ini中注释的行和空行

grep -vE '^$|^#' /etc/php.ini

grep -E "^[^#]" /etc/php.ini

10. 找出文件中至少有一个空格的行

egrep '\ +' /etc/passwd

11. 过滤文件中以#开头的行,后面至少有一个空格

egrep '^#\ +' /etc/fstab 
grep -E '^#\ +' /etc/fstab

12.查询出/etc目录中包含多少个root

egrep -ro 'root' /etc/| wc -L

13. 查询出所有的qq邮箱

egrep -r '[0-9a-zA-Z_-\.]+\@qq\.com' /etc/mail.rc

egrep '[1-9]{1,10}@qq.com$' /etc/mail.rc

14. 查询系统日志中所有的error

egrep -i 'error' /var/log/messages

15. 删除某文件中以s开头的行的最后一个词

grep -E '^s' 9.txt | sed -r 's/[0-9a-zA-Z]+$//g'
egrep '^s' /etc/passwd |sed -r 's/[0-9a-zA-Z]+$//g'

16. 删除一个文件中的所有数学

sed -r 's/[0-9]+//g' 9.txt

17. 显示奇数行

sed -n '1~2p' 9.txt       2~2p  #偶数行

awk '{if (NR%2){print $0}}' /etc/passwd
awk -F: 'NR%2' /etc/passwd

18. 删除passwd文件中以bin开头的行到nobody开头的行

sed -r '/^bin/,/^nobody/d' /etc/passwd

19. 从指定行开始 每隔两行显示一次

awk -F: '{if(NR>3){num=(NR-3)%2; if(num){print $0}}}' /etc/passwd

20. 每隔五行打印一个空格

awk -F: '{print $0;num=NR%5;if(!num){print ""}}' /etc/passwd

21. 不显示指定字符的行

grep -v

22.将文件中1到5行中aaa替换成AAA

sed -r '1,5s/aaa/AAA/g' /etc/passwd

23. 显示用户id为奇数的行

awk -F: '{if($3%2){print $0}}' /etc/passwd

24. 显示系统普通用户,并打印系统用户名和id

awk -F: '{if($3>=1000){print $1,$3}}' /etc/passwd
awk -F: '$3>1000{print $1,$3}' /etc/passwd

25. 统计nignx日志中访问量(ip维度计算)

grep -Ec '([0-9]{1,3}\.){3}[0-9]{1,3}' /var/log/nginx/access.log
egrep '([0-9]{1,3}\.){3}[0-9]{1,3}' /var/log/nginx/access.log |wc -l

26. 实施打印nginx的访问ip

tail -f /var/log/nginx/access.log | grep -oE '([0-9]{1,3}\.){3}[0-9]{1,3}'
tail -f /var/log/nginx/access.log |awk '{print $1}' #普通格式

27. 统计php.ini中每个词的个数

grep -Eow '[0-9a-zA-Z]+' /etc/php.ini | awk '{words[$1]++}END{for (i in words){print i,words[i]}}'
egrep -ow '[0-9a-zA-Z]+' /etc/php.ini |sort |uniq -c
————————————————
版权声明:本文为CSDN博主「FikL-09-19」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/mm970919/article/details/118306877

28. 统计1分钟内访问nginx次数超过10次的ip

#!/bin/bash
NGINX_LOG=/var/log/nginx/access.log
TIME=`date +%s`
DATE=`echo $TIME - 3600 | bc`
declare -A IP
while read line
do
    timestamp=`echo $line | grep -oE '[0-9]{4}.*T[0-9]{2}:[0-9]{2}:[0-9]{2}'`
    timestamp=`date -d "$timestamp" +%s`
    if (( $TIME >= $timestamp && $DATE <= $timestamp ));then
        ip=`echo $line| grep -oE '([0-9]{1,3}\.){3}[0-9]{1,3}'`
        number=`echo ${IP["$ip"]} | wc -L`
        [ $number -eq 0 ] && IP["$ip"]=0
        num=${IP["$ip"]}
        IP["$ip"]=`echo "$num + 1" | bc`
    fi
done < $NGINX_LOG
for i in ${!IP[*]}
do
    if (( ${IP[$i]} >= 10 ));then
        echo $i
    fi
done

29. 找出nginx访问的峰值,按每个小时计算

#!/bin/bash

NGINX_LOG=/var/log/nginx/access.log

declare -A IP

while read line
do
    timestamp=`echo $line | grep -oE '[0-9]{4}.*T[0-9]{2}:[0-9]{2}:[0-9]{2}'`
    timestamp=`date -d "$timestamp" +%Y%m%d%H`

    number=`echo ${IP["$timestamp"]} | wc -L`
    [ $number -eq 0 ] && IP["$timestamp"]=0
    num=${IP["$timestamp"]}
    IP["$timestamp"]=`echo "$num + 1" | bc`
done < $NGINX_LOG

for i in ${!IP[*]}
do
    if (( ${IP[$i]} >= 10 ));then
        echo "$i ${IP[$i]}"
    fi
done

30. 统计访问nginx前十的ip

grep -oE '([0-9]{1,3}\.){3}[0-9]{1,3}' /var/log/nginx/access.log | sort | uniq -c | sort -r | head
posted @ 2021-12-23 20:11  杰尼龟无所畏惧  阅读(113)  评论(0)    收藏  举报