zoukankan      html  css  js  c++  java
  • 基本shell命令

    awk和sed以及xargs的使用总结

    ls -la|awk '{print $0}'|xargs -i echo {}|sed -n '1,10p'|tail -n 2
    
    • awk 显示第几列 0显示全部 1 2 3 一次类推
    • xargs 将前面cmd输出到后面的cmd -i 可以指定位置
    • sed -n 显示前面1 到 10列
    • tail -n 显示后面几列
    ps -ef|grep XXXX | grep -v grep | awk {'print $2'} |xargs kill -9
    
    kill -9 `ps -ef|grep YYYY|grep -v grep |awk '{print $2}'`
    
    • 第一个语句杀死所有匹配到XXXX的进程,如果有多个XXXX语句也不会出错
    • 第二个语句杀死匹配到的YYYY进程,如果有多个语句就是报错

    shell结合docker的一些使用

    docker exec -it `docker ps | grep xx | grep -v xx | awk '{print $1}'` bash
    
    docker ps | grep port | awk '{print $1}' | xargs -i docker exec -i {} date
    
    • 查找并过滤容器,然后直接进入容器
    • 查找并过滤容器,不进入容器 只是简单执行某些命令

    正则表达式grep的正则匹配

    ps -ef |grep '^xx'    匹配以xx开始的行 -n打印行号
    
    ps -ef |grep 'xx$'    匹配以xx结束的行
    

    nohup组合使用

    一般情况下,我们使用的nohup都会只下面这样的,没什么问题:

        nohup python run.py conf.yml start >> ./min.log 2>&1 &
    

    但是有这样的需求: nohup得到启动的进程pid,并且得到启动进程退出码

    (sh nohup_run.sh > ./min.log & echo $! > ./pid.log 2>&1 & exitcode=$? echo exitcode > 3.log
    ) > /dev/null 2>&1 &
    
    • $! 得到上一个后台进程的pid,$$ 得到当前进程的pid,$?得到上个命令的退出码

    shell中的一些字符分割

    • ${str#*,} 得到str字符后面的字符
    str='1212,12';echo ${str#*,} ---> 12
    str='1212,12 ggg';echo ${str#*,}|awk '{print $2}' ---> ggg
    

    目录的循环遍历

    for item in `ls $1`; do echo $item; done 
    
  • 相关阅读:
    和Java相关的书籍,想成为架构师的请收藏一下啊
    CF1404C Fixed Point Removal 题解
    Harbour.Space Scholarship Contest 2021-2022 (open for everyone, rated, Div. 1 + Div. 2) E~G 题解
    ABC223G Vertex Deletion 题解
    ARC103D Distance Sums 题解
    ARC103B Robot Arms 题解
    ABC221G Jumping sequence 题解
    ABC221F Diameter set 题解
    ABC211H Count Multiset 题解
    CF1342E Placing Rooks 题解
  • 原文地址:https://www.cnblogs.com/sening/p/10372921.html
Copyright © 2011-2022 走看看