• linux相关


    shell程序必须以#!/bin/sh开始(必须放在文件的第一行):
    符号#!用来告诉系统它后面的参数是用来执行该文件的程序,在这个例子中我们使用/bin/sh来执行程序。当编辑好脚本时,如果要执行该脚本,还必须使其可执行,要使脚本可执行:chmod +x filename,然后可以通过输入:./filename来执行脚本

    注释:
    #开头的行就是注释,会被解释器忽略
    Shell中没有多行注释,只能每一行加一个#号
    1、定义字符串
    字符串定义可以用单引号,也可以用双引号,也可以不用引号
    a='besttest' b="besttest" c=besttest
    2、拼接字符串
    把一个字符串跟到另一个字符串后面即可,例如:
    name="besttest"
    say="hello, "$name""
    say1="hello, ${name}"
    echo $say $say1
    3、获取字符串长度
    #来获取字符串的长度
    str='besttest'
    echo ${#str}
    4、获取字符串的某个元素
    s='besttest is a good school'
    echo ${s:1:4}

    定义数组
    在Shell中,用括号来表示数组,数组元素用空格符号分隔开,不像其他语言中用逗号分隔,shell中只支持一维数组,数组的下标可以不连续,可以放任何类型的元素
    例如:array=(value1 value2 … )
    数组的取值方式:${array_name[index]}
    使用@或*可以获取数组中的所有元素,例如echo ${list[*]}echo ${list[@]}
    获取数组长度的方法与获取字符串长度的方法相同,使用#,例如:echo ${#list[*]}

    条件判断:
    -eq(equal) : 测试两个整数是否相等;比如 $A -eq $B
    -ne(inequality) : 测试两个整数是否不等;不等,为真;相等,为假;
    -gt(greter than) : 测试一个数是否大于另一个数;大于,为真;否则,为假;
    -lt(less than) : 测试一个数是否小于另一个数;小于,为真;否则,为假;
    -ge(greter equal): 大于或等于
    -le(less equal)小于或等于

     

    备份日志的脚本:

    src_path = '/opt/lampp/logs/access_log'  # 源日志文件路径

    tar_path = '/tmp/logs'  # 目标日志文件路径

    time = `date + %Y%m%d%H%M%S`  # 获取时间命令(命令用``这个符号,不能用'',用''代表的是一个字符串)

    cp -rf ${src_path} ${tar_path}access_log_${time}  # 将源文件拷贝到目标路径下

    > ${src_path}  # 将之前的文件重定向为空就可以了

    将上面五行命令复制到bak_log.sh里,然后

    crontab -e

    59 23 * * * sh /tmp/bak_log.sh(命令写实际命令)

    定时运行

     

    写个shell脚本对文件进行批量改名,把当前文件夹下文件名含有aaa的都改成大写的AAA,比如21-aaa.doc就要改成21-AAA.doc

    find . -name "*aaa*" -exec rename aaa AAA {} ;      find . -name "*aaa*" | xargs rename aaa AAA;

    然后还有一个任务,将每个文件的执行权限去掉,这样写:

    for filename in *
    do
    chmod ugo-x $filename
    done

     

    写shell脚本,重启tomcat并打印出日志

    pid = `ps -ef | grep mysql | grep -v grep | awk '{print $2}'` # 获取到tomcat的pid

    kill -9 $pid # 杀掉进程

    echo 'tomcat stop' # 打印出tomcat stop

    sh /usr/local/tomcat_dang/bin/startup.sh

    tail -f /usr/local/tomcat_dang/logs/catalina.out # 打印出日志

    把上面5行命令写到一个文件里,如r_tomcat.sh,加权限chmod +x r_tomcat.sh,启动r_tomcat.sh

     

    写shell脚本,停止tomcat,脚本里加了判断

    pid=`ps -ef | grep mysql | grep -v grep | awk '{print $2}'`  # =两边不能有空格

    if [ $pid ]   #[]里边有空格

    then

    kill -9 $pid

    echo 'tomcat stop....'  # 输出指定的字符串

    else

    echo 'tomcat is not running...' 

    fi

     

    service命令

    service在linux中主要用于操作系统程序,例如service iptables stop,service network restart,service httpd start,service可执行的文件保存在/etc/init.d,如下图:

     

    wc(Word Count):统计指定文件中的行数、字节数、字数,并将统计结果显示输出

    cat 1209.txt|sort|uniq 先排序再去重(必须是相邻的,加上sort之后就是相邻的)

    cat 1209.txt|sort|uniq -c 每个字节出现的次数

    cat 1209.txt|sort|uniq|wc 统计字数,第一列是有11行,第二列是有11个字(一个字被定义为由空白跳格换行字符分隔的字符串),第三列是有22个字节数

    cat 1209.txt|sort|uniq|wc -l 只显示行数,wc -L是打印最长行的长度

     

    有个文件source.txt,其中每行有一个字符串,请写出统计字符串"hello"出现次数的shell命令?

    grep -o 'hello' 3.log | wc -l     -o指示grep显示所有匹配的地方,并且每一个匹配单独一行输出

     

    统计当前路径下,所有以.log为后缀的文件个数?
    find . -name "*.log"|wc -l


    rename命令用字符串替换的方式批量改变文件名,mv只是针对单个文件
    rename 原字符串 目标字符串 文件(指定要改变文件名的文件列表)
    linux命令之rename命令实例,将main1.c重命名为main.c
      rename main1.c main.c main1.c
    rename支持通配符
      ? 可替代单个字符
      * 可替代多个字符
    如果使用rename foo foo0 foo?,会把foo1到foo9的文件重命名为foo01到foo09,重命名的文件只是有4个字符长度名称的文件,文件名中的foo被替换为foo0
    如果使用rename foo foo0 foo*,foo001到foo278的所有文件都被重命名为foo0001到foo0278,所有以foo开头的文件都被重命名

    rename支持正则表达式
      字母的替换
      rename "s/AA/aa/" *      # 把文件名中的AA替换成aa
      修改文件的后缀
      rename "s//.html//.php/" *      # 把.html 后缀的改成 .php后缀
      批量添加文件后缀
      rename "s/$//.txt/" *       # 把所有的文件名都以txt结尾
      批量删除文件名
      rename "s//.txt//" *        # 把所有以.txt结尾的文件名的.txt删掉

     

    java -jar jar包---直接运行

    java bsh.Console---界面UI方式

    java bsh.Interpreter---命令行方式

    java bsh.Interpreter filename[args]---运行脚本文件

  • 相关阅读:
    三、Pandas入门
    二、NumPy入门
    jQuery模拟angular的数据绑定
    ajax里的getJSON的用法
    SQL中关于传递参数为Null的示例
    原生ajax示例
    页面自增加示例
    angular1数据绑定例子
    angular2 工程目录结构介绍
    angular js环境配置
  • 原文地址:https://www.cnblogs.com/laosun0204/p/10051538.html
Copyright © 2020-2023  润新知