zoukankan      html  css  js  c++  java
  • 简单Shell命令及脚本汇总

    一、统计Nginx日志中访问量最多的IP

    cat access.log |awk '{print $1}'|sort|uniq -c|sort  -r

    (1)先看下Nginx日志内容格式

    我这个是默认日志格式,可以看到访问IP在第一列

    [root@localhost logs]# head -n 1 access.log 
    192.168.5.2 - - [04/Nov/2021:09:02:11 +0800] "GET / HTTP/1.1" 200 612 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36"

    (2)统计结果

    [root@localhost logs]# cat access.log |awk '{print $1}'|sort|uniq -c|sort -r
      81700 192.168.5.2
          3 127.0.0.1

    awk 默认以空格分隔,所以直接打印第一列。接着进行sort排序,再使用uniq检查重复出现的行,加上-c统计重复出现的行的次数,在列旁边显示。最后因为是要从大到小排序,所以使用sort -r进行倒序

    二、修改文本指定行内容

    sed –i ‘23s/test/tset/g’ test.txt

    -i 使修改生效,23指第23行,s指替换字符,搜索test字符串并修改为tset

    三、修改文本指定行指定列内容

    sed –n ‘25p’ /web.log | cut –d “ ” –f3
    head –n25 /web.log | tail –n1 | cut –d “ ” –f3
    awk –F “ ” ‘NR==23{print $3}’ /web.log

    sed -》25p打印第25行

    cut -d指定分隔符,-指定列

    awk -F指定分隔符,NR指行数,另外NF指列数

    四、删除文件开始三行

    sed –i ‘1,3d’ /tmp/*.tmp

    五、打印100以内质数

    质数:除了1和本身外,没有其他数字可以除尽,例如2,3,5,7,11,13。注意1是非质数

    #!/bin/bash
    #for循环读取2到100
    for((i=2;i<100;i++)) do k=1  #k做标记,k=1表示质数,k=0表示非质数 for((j=2;j<$i;j++))  #将i从2开始除起,一直到i的前一位 do if [ $(($i%$j)) -eq 0 ]  #i除以j能除尽,说明这个说可能不是质数 then k=0  #k置为0,表示非质数 break  #只要有一次能除尽,我们就能判断这个不是质数,可以直接跳出本次for循环 fi done if [ $k -eq 1 ]  #k为1,说明$i%j没有一次是可以除尽的,可以判断出这个i是质数 then echo $i  #打印质数 fi done

    其中:if  [ $(($i%%j)) -eq 0 ]的(())用来进行计算,而$(())用来取计算后的结果值

    六、复制当前目录下指定大小的文件到指定目录

    find ./* -size +10M |xargs -i cp -rf {} ./bp/

    -i 表示 find 传递给xargs的结果 由{}来代替

    七、批量修改文件后缀

    #!/bin/bash
    fileinfo=`find ./ -name "*.xtx"`
    for i in $fileinfo
    do
        mv $i  ${i%xtx}txt
    done

    mv $i ${i%xtx}txt  其实就是对字符串进行取模,删掉原来的后缀,格式是${var%string},得到的值就是var值去掉string内容的值,后面跟txt就是自动拼接txt后缀。

    八、将1到10数字相加

    #!/bin/bash
    b=0
    for((i=1;i<=10;i++))
    do
        b=$((b+i))
    done
    echo $b

    九、echo 命令获取字符串变量的一部分

    echo ${variable:x:y}
  • 相关阅读:
    第一周C语言作业
    C语言I博客园作业08
    C语言I博客作业07
    C语言I博客作业06
    C语言I博客作业05
    C语言I博客作业04
    C语言II博客作业04
    C语言II博客作业03
    C语言II博客作业02
    C语言II博客作业01
  • 原文地址:https://www.cnblogs.com/biaopei/p/15549577.html
Copyright © 2011-2022 走看看