notebooks
  • notebooks
  • _planning
    • 2022 OKR
    • basketball
    • swimming
  • communication
    • Dubbo
    • Kafka
    • Messaging
    • RPC
    • Thrift
  • computation
    • map-reduce
  • cs-basic-knowledge
    • computer-architecture
    • data-structure-and-algorithms
    • networks
    • os
  • devops
    • Docker
    • Linux
    • Prometheus
    • operations
    • security
    • trouble-shooting
  • distributed-knowledge
    • Zookeeper_CMD
    • distributed-system
  • game-engine
    • Unity
  • others
    • appium使用
  • protocols
    • http(s)协议
    • 官方链接
    • sip
  • storage
    • Elasticsearch
    • GuavaCache
    • MySQL
    • MySQL_CMD
    • NoSQL
    • Redis
    • Redis_CMD
  • system-design
    • system-design
  • tools
    • Git
    • IDEA
    • Mac
    • VScode
    • Vim
  • _working
    • doc-template
      • backend-design-review
      • correction-of-error
      • service-review
    • process
      • domain-backup
      • oncall
  • blogs
    • history
      • 8088/8086微处理器
      • 8088/8086指令系统
      • CSS-DOM
      • CSS定位
      • CSS工作原理
      • CSS控制背景
      • CSS浮动布局
      • CSS盒模型
      • Chrome开发者工具使用方法
      • DOM
      • Django Model模型层学习
      • Django-REST-framework Serializers学习
      • Django-REST-framework Views和ViewSets学习
      • Django View视图层学习
      • Gvim下Emmet安装及使用教程
      • HTTP协议简介
      • HashMap原理初探
      • JavaScript简史
      • JavaScript语法
      • Java内存模型和GC机制
      • Java基础——Lambda学习
      • Java基础——方法引用
      • Java基础——枚举类型
      • Java类加载机制
      • KMP算法
      • Kafka学习
      • Linux下用命令行编译Java程序
      • MathJax简介和基本用法
      • Python实现常见数据结构
      • Python装饰器总结
      • TCP协议的三次握手和四次挥手
      • Thrift学习
      • asyncio学习
      • markdown的常用语法
      • 修改hosts文件实现翻墙
      • 充实文档的内容
      • 关系数据库
      • 关系数据库标准语言SQL(一)
      • 关系数据库标准语言SQL(二)
      • 关系数据理论
      • 关系查询处理和查询优化
      • 内联元素和块级元素
      • 剑指offer算法题练习
      • 动态创建标记
      • 图形化用户界面
      • 在Eclipse中使用Maven构建Java Web项目
      • 增加微博秀遇到的一些问题
      • 处理机调度
      • 如何用github和hexo搭建个人博客
      • 存储管理
      • 存储系统的层次结构
      • 学习模仿lionhit网站首页的过程总结
      • 实用的GitHub小技巧
      • 并发控制
      • 循环与分支程序设计
      • 指令系统的设计
      • 指令级并行及其开发——硬件方法
      • 搭建自己的VPN服务器
      • 操作系统用户界面
      • 数据库安全性
      • 数据库完整性
      • 数据库恢复技术
      • 数据库绪论
      • 数据库编程
      • 数据库设计
      • 数据抽象
      • 文件系统
      • 文法和语言
      • 最佳实践
      • 案例研究:JavaScript图片库
      • 案例研究:图片库改进版
      • 汇编语言程序格式
      • 汇编语言程序设计基础知识
      • 流水线技术
      • 深度优先搜索和广度优先搜索
      • 牛客网——网易2017秋招编程题集合
      • 用JavaScript实现动画效果
      • 第一篇博客
      • 经典排序算法总结(Java实现)
      • 经典查找算法总结(Java实现)
      • 综合示例
      • 编译原理引论
      • 背包、队列和栈
      • 虚拟机安装Linux系统及常用软件
      • 计算机操作系统绪论
      • 计算机系统结构的基础知识
      • 设备管理
      • 设计模式之代理模式
      • 设计模式之单例模式
      • 设计模式之工厂模式
      • 设计模式之策略模式
      • 设计模式之观察者模式
      • 词法分析
      • 进程管理
      • 闭包
      • 阻止Google自动跳转到香港服务器的方法
      • 项目部署过程
  • programming-language
    • C#
      • C#
    • C&C++
      • C
    • C&C++
      • C++
    • Java
      • GoogleGuice
    • Java
      • JVM
    • Java
      • Java
    • Java
      • Maven
    • Java
      • Mybatis
    • Java
      • Spring知识
    • Java
      • SpringBoot
    • Java
      • Tomcat
    • Python
      • Python
    • Shell
      • Shell
  • wheels
    • dcc
      • 产品调研
      • 方案设计
    • red-envelope
      • 方案设计
    • short-url
      • 短链接服务
    • sso
      • 方案设计
Powered by GitBook
On this page
  • 常用命令
  • 常用命令组合
  1. devops

Linux

PreviousDockerNextPrometheus

Last updated 2 years ago

常用命令

wc: 统计文本中行数、字数、字符数

-l 统计行数 -c 统计字符数 wc \<filename\> cat info.log \| grep "a" \| wc -l

scp: 远程文件拷贝

1.将本地文件复制到远程主机文件夹 scp local_file remote_username@remote_ip:remote_folder 2.将远程主机文件复制到本地文件夹 scp remote_username@remote_ip:remote_filepath local_folder

tcpdump: 网络抓包工具

// TODO tcpdump -i eth0 -w dump.pcap 监听 eth0 端口,获取抓包文件。用Wireshark打开抓包文件进行分析。

top: 实时显示进程和系统状态

top命令截图

第一行:概况

  • HH:mm:ss:当前的系统时间。

  • up xxx days, HH:mm:从本次开机到现在经过的时间。

  • x user:当前有几个用户登录到该机器。

  • load average:系统1分钟、5分钟、15分钟内的平均负载值。

第二行:进程计数(Tasks)

  • total:进程总数。

  • running:正在运行的进程数,对应状态TASK_RUNNING。

  • sleeping:睡眠的进程数,对应状态TASK_INTERRUPTIBLE和TASK_UNINTERRUPTIBLE。

  • stopped:停止的进程数,对应状态TASK_STOPPED。

第三行:CPU使用率(%Cpu(s))

  • us:进程在用户空间(user)消耗的CPU时间占比,不包含调整过优先级的进程。

  • sy:进程在内核空间(system)消耗的CPU时间占比。

  • ni:调整过用户态优先级的(niced)进程的CPU时间占比。

  • id:空闲的(idle)CPU时间占比。

  • wa:等待(wait)I/O完成的CPU时间占比。

  • hi:处理硬中断(hardware interrupt)的CPU时间占比。

  • si:处理软中断(software interrupt)的CPU时间占比。

  • st:当Linux系统是在虚拟机中运行时,等待CPU资源的时间(steal time)占比。

第四、五行:物理内存和交换空间(Mem/Swap)

  • total:内存总量。

  • free:空闲内存量。

  • used:使用中的内存量。

  • buff/cache:缓存和page cache占用的内存量。

以下所有行:进程详细信息

  • PID:进程ID。

  • USER:进程所有者的用户名。

  • PR:从系统内核角度看的进程调度优先级。

  • NI:进程的nice值,即从用户空间角度看的进程优先级。值越低,优先级越高。

  • VIRT:进程申请使用的虚拟内存量。

  • RES:进程使用的驻留内存(即未被swap out的内存)量。

  • SHR:进程使用的共享内存量。

  • S:进程状态。R=running,S=interruptible sleeping,D=uninterruptible sleeping,T=stopped,Z=zombie。

  • %CPU:进程在一个更新周期内占用的CPU时间比例。

  • %MEM:进程占用的物理内存比例。

  • TIME+:进程创建后至今占用的CPU时间长度。

  • COMMAND:运行进程使用的命令。

top 命令可以接一些参数使用

  • -c 显示完整命令

  • -p {pid} 显示指定的进程信息

FAQ 1.某一进程的 CPU 占用率超过 100%? 每个进程的 CPU 占用率是进程在每个 CPU 核心上的占用率累加起来,即如果任务占用 200% 的CPU,则它将占用两个内核。

2.如何计算机器的 CPU 利用率 和 Mem 使用率? CPU 利用率% = 100 - id(第 3 行)

实际已用内存 = used - ( buffers + cache ) 实际可用内存 = free + buffers + cache 内存使用率 = (used - ( buffers + cache )) / total 当 swap 的 used 值大于 0 时基本可以认为系统遇到瓶颈了,需要加内存。

内存可以使用 free -h 命令查看。

ps

// TODO

ps -ef | grep {关键字}

vmstat

// TODO

lsof: 列出当前系统打开文件

查看端口占用情况
lsof -i:{port}
通过某个进程号显示该进行打开的文件
lsof -p {pid}

netstat

// TODO

常用命令组合

find /home/work/data -type f | grep -v "d246c|6e922" | xargs rm

查找 /home/work/data 目录下所有文件(非目录),当其 filepath 不包含 d246c 或 6e922 字符串时,进行删除操作。

find / -type l | xargs ls -l | grep "-> liblua-5.1.so"

查找根目录下所有指向 liblua-5.1.so 的软链接。

zombie:僵尸进程数,对应状态TASK_ZOMBIE。

Linux进程状态转换