zoukankan      html  css  js  c++  java
  • shell脚本 回顾 小练习

    1.把/OPT目录下(包含子目录)下所有后缀为“.sh”的文件后缀变更为“.shell”
    2.将A、B、C目录下的文件A1、A2、A3文件改名为A4、A5、A6
    3.如何在vi模式下将文件中的aa字符串批量改成bb

    1.

    #!/bin/bash
    dir=/hanzhao
    files=`find /hanzhao/ -name '*.sh'`
    for file in $files
    do
    # echo $file
     filename=${file%.*}
    # echo $filename
     mv $file ${filename}.shell
    done
    

    2.

    #!/bin/bash
        file=`ls /[ABC]/A[123]`
        for i in $file        
            do
            num=${i##*A}
            let num1=num+3 
           # echo $num1
           # num2=${i%A*} 
           # echo $num2 
            mv $i ${i%A*}A$num1
        done
    

    3.

    直接用vi打开文件,之后再读模式下 直接输入 :%s#aa#bb#g
    

     4备份每天的日志

    #!/bin/bash
    cp /opt/lampp/logs/access_log /opt/bak_access_log-`date +%Y%m%d%H%M`
    >/opt/lampp/logs/access_log

     5.启动停止 lampp

    #!/bin/bash
    start=0
    pidnum=`ps aux|grep "/opt/lampp/*"|wc -l`
    echo ${pidnum}
    if [ ${pidnum} -gt 1 ]
    then 
    echo 'lampp is start'
    read -p 'Do you wish to stop lampp? y or n:  ' yn
    case $yn in
    [Yy]* )start=1;;
    [Nn]* )exit;;
     * )echo 'Please answer Y or N'
    exit;;
    esac
    else
    echo 'lampp is stop,doing start'
    read -p 'Do you wish to start lampp? y or n:  ' yn
    case $yn in
    [Yy]* )start=0;;
    [Nn]* )exit;;
     * )echo 'Please answer Y or N'
    exit;;
    esac
    fi
    
    if [ ${start} -eq 1 ]
    then ps aux|grep "/opt/lampp/*"|grep -v "grep"|awk '{print $2}'|xargs kill -9
    echo 'lampp is stop'
    else 
    /opt/lampp/lampp start
    echo 'lampp is start'
    fi
    
     
    

     5.根据进程号查询启动路径

    #!/bin/bash
    pid=`ps -ef|grep "httpd"|grep -v "grep"|awk '{print $2}'`
    echo ${pid}
    for every_pid in ${pid}
    do 
    exe_path=`ls -l /proc/${every_pid}|grep "exe ->"|awk '{print $NF}'`
    echo "exe_path:"${exe_path}
    done
    

     6.杀死 进程

    ps -ef |grep "httpd"|grep -v "grep"|awk '{print$2}'|xrags kill -9
    

     7.条件查询文件

    awk -F","  '{if($1==1||$2>34&&....)print}'  a.txt
    

     8.awk 求平均值:

    awk '{NR>1}BEGIN{sum=0;num=o}{if($1==2){sum+=$2;num+=1}}END{print(sum/num)}' hanzhao
    
  • 相关阅读:
    微信小程序、支付宝小程序、H5根据字符串生成相同的二维码
    大文件排序优化实践
    Nginx(五):http反向代理的实现
    Nginx(四):http服务器静态文件查找的实现
    关于大数据技术的一点思考
    Nginx(三):http模块的处理流程解析之正向代理
    基于Prometheus网关的监控完整实现参考
    谈谈mysql和oracle的使用感受 -- 差异
    Nginx(二): worker 进程处理流程框架解析
    退避算法实现之:客户端优雅回调
  • 原文地址:https://www.cnblogs.com/hanzhao1987/p/6099922.html
Copyright © 2011-2022 走看看