基本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 

转载于:https://www.cnblogs.com/sening/p/10372921.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值