✏️
blog
  • README
  • 2023 11
    • expect使用
  • 2023 10
    • 通过Appium给iOS应用自动化执行脚本
  • 2023 06
    • 三种ThreadLocal详解
    • 常见限流算法总结
    • 分布式ID生成算法
  • 2023 05
    • 线上机器CLOSE_WAIT连接数异常排查
    • 多数据源引发transactional事务回滚失效
  • 2023 04
    • MySQL中BufferPool
  • 2022 12
    • Linux IO
    • Netty总结
  • 2022 04
    • Thrift
  • 2022 03
    • JVM命令总结
    • 频繁FullGC定位思路
    • Redis总结
    • Spring常见问题总结
    • Kafka总结
  • 2022 02
    • Dubbo柔性服务天池大赛总结
  • 2021 12
    • 泛型中的extends和super
    • 手写一个Spring Boot Starter
  • 2021 11
    • 常用消息队列总结
  • 2021 10
    • swagger2快速使用
    • SpringBoot接口cors跨域访问
  • 2021 08
    • 常用shell命令总结
  • 2021 05
    • 线程cpu飙升排查
    • zookeeper install
  • 2021 04
    • Java虚拟机
    • [Spring Boot](2021-04/2021-04-04-Spring Boot.md)
    • [Spring MVC](2021-04/2021-04-04-Spring MVC.md)
    • 分布式ID
    • 消息队列
    • [Spring AOP](2021-04/2021-04-05-Spring AOP.md)
    • 布隆过滤器
    • Scala内核Spark阻塞排查
  • 2020 12
    • 使用Python优雅实现tail命令
  • 2020 11
    • Spark基础架构
    • 一文搞定Git
    • Spark线上问题引发的思考
  • 2020 04
    • 使用GitBook
  • 2019 05
    • SELinux、Netfilter、iptables、firewall和ufw五者关系
    • 安装npm和nodejs
    • 访问不到云服务器中的项目
  • 2019 04
    • 二叉树中节点与度数
    • 实现会话跟踪的技术有哪些
    • 计算机操作系统-死锁
    • Semaphore Count Down Latch Cyclic Barrier
    • Java内存模型
    • 双重检查锁定
    • synchronized实现底层
    • Lock接口
    • HTTP与HTTPS的区别
    • Java中线程池
    • Java中的阻塞队列
    • 排序算法
  • 2019 03
    • MySQL中索引
    • MySQL存储引擎
    • MySQL锁机制
    • n的阶乘结果后面0的个数
由 GitBook 提供支持
在本页
  • grep
  • awk
  • sed
  • cut
  • find
  • df
  • du

这有帮助吗?

  1. 2021 08

常用shell命令总结

上一页2021 08下一页2021 05

最后更新于3年前

这有帮助吗?

由于工作中经常用一些shell命令来解析日志和运维相关的工作,记录常用命令用于备忘

grep

参考文档:

  • 查找某关键词前后几行

    #包含之后10行
    grep -A 10 "demo" simple.log
    #包含之前10行
    grep -B 10 "demo" simple.log
    #包含前后10行
    grep -C 10 "demo" simple.log
  • 递归查找目录下所有文件关键词

grep -rn '关键词' .
  • 正则匹配某个关键词

# [I 2021-07-22 20:25:22.237 XX log:181] 302 GET /download/user/passer/test.txt?_xsrf=13sja -> https://demo.com/passer/1DF9E2B3S6E4X8A2S0T8L5.txt 
grep "download" simple.log | grep -Eo "[^/]+?xsrf=|[^/]+com"

 test.txt?_xsrf=
 demo.com

awk

kill包括python关键字的进程

ps x | grep "python" | grep -v "grep" | awk '{print $1}' | xargs kill -9

sed

匹配出日志中下载的文件名和对应用户名字

# [I 2021-07-22 20:25:22.237 XX log:181] 302 GET /download/user/passer/test.txt?_xsrf=13sja -> https://demo.com/passer/1DF9E2B3S6E4X8A2S0T8L5.txt 
grep "download" simple.log | sed -r "s/.*\/([^/]+)\?_xsrf=.*com\/([^/]+)\/.*/\1,\2/"

替换文件中某个字符串

sed -i 's/ARCHIVE.*=.*/test.zip/g' simple.log

在文件中的某一行插入

sed -i '2i/sed demo' simple.log

cut

以t字符切割,取切割后第四列

cat simple.log | cut -dt -f4

find

查找指定目录的文件

find . -name "*.md"
# 一块,512字节
find . -type d -size 1
# 64字节
find . -type d -size 64c
# 64KB    MB, GB e.g. M G
find . -type d -size 64k
find . -type f -size 0 -exec ls -l {} \;

df

查看磁盘占用情况

df -h

du

查看当前目录各个子目录占用磁盘情况

du -sh *

Linux命令:grep命令 | egrep命令
查找指定目录指定大小的目录