Shell大杂烩

作者: kunjing | 来源:发表于2019-12-24 20:39 被阅读0次

    AWK

    常用语法:
    awk -F 'separator' '{pattern + action}' filename
    {}表示语句块

    $0整行;$1、$2... 切割数组对应串

    有BEGIN{/初始化语句块/}{/行处理语句块/}END{结束语句块}
    if...else...

    if (expression) {
    statement;
    } else {
    statement2;
    }

    for (v in list){....}

    awk常用函数:
    字符串替换函数:gsub( Ere, Repl, [ In ] )
    如:{gsub(/.{3};31m/,"",$0)

    子串定位:index( String1, String2 )
    返回位置,从 1 开始编号。如果 String2 参数不在 String1 参数中出现,则返回 0(零)
    如:index($0,"[")

    字符串长度:length (String)//字符、blength (String)//字节

    字符串切割:substr( String, M, [ N ] ) M起始位置,N截取长度

    split( String, A, [Ere] ) 将 String 参数指定的参数分割为数组元素 A[1], A[2], . . ., A[n],并返回 n 变量的值。此分隔可以通过 Ere 参数指定的扩展正则表达式进行。

    print打印,printf格式化打印
    如:print "------"map[sql]"--------\n"sql
    printf("%-8d%-40s样例:\n%s\n",map[errorLine],errorLine,example[errorLine])

    执行系统命令:system(Command)

    Shell

    日期

    获取今天时期:date +%Y%m%ddate +%F 或 $(date +%y%m%d)
    获取昨天时期:date -d yesterday +%Y%m%d
    获取前天日期:date -d -2day +%Y%m%d

    命令1 && 命令2

    如果这个命令1执行成功& &那么执行这个命2

    命令1|| 命令2

    如果| |左边的命令(命令1)未执行成功,那么就执行| |右边的命令(命令2)

    (命令1;命令2;. . .)

    如果使用{ }来代替(),那么相应的命令将在子s h e l l而不是当前s h e l l中作为一个整体被执行,只有在{ }中所有命令的输出作为一个整体被重定向时,其中的命令才被放到子s h e l l中执行,否则在当前s h e l l执行。

    例子:
    如果sort命令执行成功了,可以先将输出文件备份,然后再打印
    test.sorted && (cp test.sorted test.sorted_bak ;lp test.sorted)

    ssh ip "command"

    远程执行命令

    进程查看 ps -ef / ps -aux

    ps aux 是用[BSD]的格式来显示进程
    显示的项目有:[USER] , [PID], %CPU , %MEM , VSZ , [RSS] , [TTY], [STAT] , [START] , [TIME], [COMMAND]
    ps -ef是用标准的格式显示java这个进程
    显示的项目有:UID , PID , PPID , C , STIME , TTY , TIME , CMD

    文件大小 ls -sh / du -d 1 -h
    挂载磁盘的容量 df
    image.png
    常用命令链接

    https://www.runoob.com/linux/linux-command-manual.html

    很有用几个shell脚本实例
    https://www.jianshu.com/p/c6bb40134138

    相关文章

      网友评论

        本文标题:Shell大杂烩

        本文链接:https://www.haomeiwen.com/subject/biifoctx.html