微分享 - 超实用开发日常排查问题Linux运维命令

目录

  • CPU
    • CPU基本信息
    • CPU使用情况
    • ps 命令可用于确定哪个进程占用了 CPU
  • 内存
    • free
  • 网络
    • 查看端口
    • curl 常用命令
  • 文件
  • df 、du 区别
  • 磁盘使用情况
    • 文件大小
    • 文件下载
    • 压缩&解压缩
    • 查找文件
    • 查找文件内容
  • 进程
    • CPU 使用来升序排序
    • 内存 使用升序排序
  • 其他常用
    • 操作系统进本信息
    • 赋予文件执行权限,很常用的

CPU

CPU基本信息

cat /proc/cpuinfo

processor	: 0
vendor_id	: GenuineIntel
cpu family	: 6
model		: 63
model name	: DO-Regular
stepping	: 2
microcode	: 0x1
cpu MHz		: 2294.608
cache size	: 4096 KB
physical id	: 0
siblings	: 1
core id		: 0
cpu cores	: 1
apicid		: 0
......
bogomips	: 4589.21
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management:

CPU使用情况

CPU显示当前服务和进程 CPU使用情况。
top

top - 02:57:12 up 111 days,  4:17,  1 user,  load average: 0.00, 0.01, 0.05
Tasks:  90 total,   1 running,  89 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us, 11.8 sy,  0.0 ni, 88.2 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :   498568 total,    16884 free,   200448 used,   281236 buff/cache
KiB Swap:        0 total,        0 free,        0 used.   251668 avail MemPID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND1 root      20   0  193708   5496   2804 S  0.0  1.1   3:15.15 systemd2 root      20   0       0      0      0 S  0.0  0.0   0:00.96 kthreadd4 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kworker/0:0H

每2秒刷新一次,共刷新三次。
vmstat 2 3

ocs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st2  0      0  14816      0 282000    0    0     2     2    2    1  0  0 100  0  00  0      0  12736      0 282000    0    0     0     0   85  130  1  1 98  0  00  0      0  14704      0 282004    0    0     0    10   68  131  0  0 100  0  0

详细参数说明

%Cpu(s): 38.7 us, 3.5 sy, 0.0 ni, 42.0 id, 15.5 wa, 0.0 hi, 0.3 si, 0.0 st- 38.7 us, (用户空间CPU占用率)- 3.5 sy (内核空间CPU占用率)- 0.0 ni (用户进程空间改变过优先级的进程CPU的占用率)- 42.0 id(空闲CPU占有率)- 15.5 wa (等待输入输出的CPU时间百分比)- 0.0%hi (硬件中断请求)- 0.3%si (软件中断请求)- 0.0%st (分配给运行在其它虚拟机上的任务的实际 CPU时间)

ps 命令可用于确定哪个进程占用了 CPU

ps aux | sort -nrk 3,3 | head -n 5

root      7436  0.1  0.0      0     0 ?        S    02:47   0:00 [kworker/0:1]
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
rpc        522  0.0  0.1  69256   540 ?        Ss   5月01   0:18 /sbin/rpcbind -w
root         9  0.0  0.0      0     0 ?        R    5月01   5:47 [rcu_sched]
root         8  0.0  0.0      0     0 ?        S    5月01   0:00 [rcu_bh]

也可以通过进程名来快速查找Linux中cpu的利用率。通过“ps -C 进程名 -o %cpu”

ps -C 进程名称 -o %cpu

内存

top也可以查看当前的内存使用情况

free

free

              total        used        free      shared  buff/cache   available
Mem:         985100      203192      251916        2012      529992      641244
Swap:             0           0           0
  • total:总计物理内存的大小
  • used:已使用多大
  • free:可用有多少
  • Shared:多个进程共享的内存总额
  • Buffers/cached:磁盘缓存的大小。

网络

查看端口

显示连接数
netstat -anp |grep :22

tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      995/sshd
tcp        0      0 192.168.0.38:22         117.158.210.253:40734   ESTABLISHED 3584/sshd: root [pr
tcp        0     36 192.168.0.38:22         117.158.210.253:47253   ESTABLISHED 3755/sshd: root [prnetstat -anp |grep :22 |wc -l
3

通过端口找进程ID
netstat -anp | grep 58049

tcp        0     52 192.168.1.100:22        192.168.1.93:58049      ESTABLISHED 1350/sshd: root@pts 

查看连接某个端口最多的IP地址

netstat -ntu | grep :58049 | awk '{print $5}' | cut -d: -f1 | awk '{++ip[$1]} END {for(i in ip) print ip[i],"t",i}' | sort -nr
1   192.168.1.93

-a或–all #显示所有的网络连接信息
-n或–numeric #直接使用ip地址
-p或–programs:显示正在使用Socket的程序识别码和程序名称
-t或–tcp:显示TCP传输协议的连线状况
-u或–udp:显示UDP传输协议的连线状况

curl 常用命令

保存网页

curl -o linux.html http://www.linux.com

curl 就是发出 GET和POST 请求

curl http://www.yahoo.com/login.cgi?user=nickname&password=12345
curl -d "user=nickname&password=12345" http://www.yahoo.com/login.cgi

-X :指定HTTP请求方法,如GET、POST、PUT等
-o :将响应内容保存到指定文件
-L :跟随重定向

文件

df 、du 区别

  • df:列出文件系统的整体磁盘使用量;
  • du:评估文件系统的磁盘使用量(常用于评估目录所占容量)

磁盘使用情况

df -h

文件系统        容量  已用  可用 已用% 挂载点
devtmpfs        464M     0  464M    0% /dev
tmpfs           482M     0  482M    0% /dev/shm
tmpfs           482M  472K  481M    1% /run
tmpfs           482M     0  482M    0% /sys/fs/cgroup
/dev/vda1        30G  7.0G   21G   26% /
tmpfs           482M  4.0K  481M    1% /tmp
tmpfs            97M     0   97M    0% /run/user/0

文件大小

使用ll或是ls,文件从大到小排序。
ll -Slh

总用量 74M
-rwxr-xr-x 1 root root  64M 88 23:02 go1.21.0.linux-amd64.tar.gz
-rw-r--r-- 1 root root  11M 821 21:05 kubectl
-rwxr-xr-x 1 root root 4.1K 821 17:31 jdk-8u202-linux-x64.tar.gz
drwxr-xr-x 4 root root 4.0K 821 18:02 go
-rwxr-xr-x 1 root root 4.0K 821 17:33 jdk-8u202-linux-x64.rpm

使用du,查询当前目录下每个文件或者目录的大小,排序并显示前3个
du -h --max-depth=1 | sort -nr | head -n 3

179M	.
76M	./.cache
29M	./go

跟ll一样的效果
du -sh *|sort -nr

64M	go1.21.0.linux-amd64.tar.gz
29M	go
11M	kubectl
8.0K	jdk-8u202-linux-x64.tar.gz
4.0K	jdk-8u202-linux-x64.rpm## 多个c显示总量
du -sch *|sort -nr
103M	总用量
64M	go1.21.0.linux-amd64.tar.gz
29M	go
11M	kubectl
8.0K	jdk-8u202-linux-x64.tar.gz
4.0K	jdk-8u202-linux-x64.rpm

文件下载

单个文件下载

wget http://ftp.gnu.org/gnu/wget/wget-1.5.3.tar.gz
## 必须使用 -O(大写字母 O)选项
curl -O http://ftp.gnu.org/gnu/wget/wget-1.5.3.tar.gz
curl -lO http://ftp.gnu.org/gnu/wget/wget-1.5.3.tar.gz

下载文件并指定保存名称

## 在下载时使用 -O (大写字母 O) 选项来提供输出文件名
wget -O wget.zip http://ftp.gnu.org/gnu/wget/wget-1.5.3.tar.gz
## 必须使用 -o(小写 O)选项:
curl -o wget.zip http://ftp.gnu.org/gnu/wget/wget-1.5.3.tar.gz

下载文件夹下的文件

wget -r ftp://server-address.com/directory

压缩&解压缩

使用tar

# 压缩文件 file1 和目录 dir2 到 test.tar.gz
tar -zcvf test.tar.gz file1 dir2
# 解压 test.tar.gz(将 c 换成 x 即可)
tar -zxvf test.tar.gz
# 列出压缩文件的内容
tar -ztvf test.tar.gz

说明

-z : 使用 gzip 来压缩和解压文件
-v : --verbose 详细的列出处理的文件
-f : --file=ARCHIVE 使用档案文件或设备,这个选项通常是必选的
-c : --create 创建一个新的归档(压缩包)
-x : 从压缩包中解出文件

使用zip

# 压缩文件
zip -r test.zip file
# 解压文件
unzip test.zip

查找文件

Linux find命令的基本语法如下:find [path] [expression]
其中:
path:要查找的目录路径。
expression:查找表达式,指定要查找的文件类型、名称、大小等条件。

在服务器的根目录查找包含“wljslmz”的文件或者目录

find / -name "*wljslmz*"

查找文件类型

find /path/to/search -type f -name "*.txt"
- /path/to/search是您要查找的目录路径。
- -type f表示要查找的是文件类型。
- -name "*.txt"表示要查找以.txt结尾的文件。

查找文件大小

## 说明
## 范围:+表示大于        -表示小于        等于不需要符号
## 大小:M(必须大写)        k(必须小写)        c(表示字符)
find /root -type f -size +10M
或则
find /root -size +10M/root/.cache/go-build/e9/e9c8b0d0213fb337584f9259e5d50fe315cb216187314aff9380e73386a6ab1d-d
/root/go1.21.0.linux-amd64.tar.gz
/root/kubectl

-mtime选项指定查找最近7天内修改过的文件

find /usr -type f -mtime -7

查找起始点以下n层的目录,不超过n层
find 路径 -maxdepth n(层数)

find / -maxdepth 2 -name "*t*"
/lost+found
/opt
/opt/containerd

查找文件内容

在文件 /etc/password 文件中搜索 nobody

grep nobody /etc/password
或者
cat /etc/password | grep nobody
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
$

在当前目录中,查找后缀有 file 字样的文件中包含 test 字符串的文件,并打印出该字符串的行

grep test *file 

命令参数之【-i:字符忽略大小写】

grep -i 'OLDBOY' /oldboy/oldboy.txt
01 oldboy

进程

常用的就是ps -aux | grep xxx

CPU 使用来升序排序

ps -aux --sort -pcpu | less

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root      1688  1.3  1.0 123904 10908 ?        S<sl 14:55   0:01 /usr/local/aegis/aegis_client/aegis_11_63/AliYunDunMonitor
root      1580  0.6  0.4  43524  4768 ?        S<sl 14:54   0:01 /usr/local/aegis/aegis_update/AliYunDunUpdate
root      1678  0.4  0.7 101080  8008 ?        S<sl 14:55   0:00 /usr/local/aegis/aegis_client/aegis_11_63/AliYunDun

内存 使用升序排序

ps -aux --sort -pmem | less

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root      1619  0.1  1.8 725560 18676 ?        Sl   14:54   0:01 CmsGoAgent-Worker start
root       850  0.0  1.7 574288 17468 ?        Ssl  14:53   0:00 /usr/bin/python2 -Es /usr/sbin/tuned -l -P
root      1124  0.0  1.4 814652 14356 ?        Ssl  14:53   0:00 /usr/local/share/aliyun-assist/2.2.3.421/aliyun-service
polkitd    530  0.0  1.0 612240 11088 ?        Ssl  14:53   0:00 /usr/lib/polkit-1/polkitd --no-debug

其他常用

操作系统进本信息

查看操作系统信息,包括操作系统是多少位的

uname -a
Linux centos-s-1vcpu-512mb-10gb-sfo3-01 3.10.0-1160.45.1.el7.x86_64 #1 SMP Wed Oct 13 17:20:51 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

赋予文件执行权限,很常用的

chmod +x 文件名

参考

  • linux系列之常用运维命令整理笔录
  • Linux如何查看cpu的使用率
  • Linux命令之解压缩:tar、zip、rar 命令
  • 如何使用 Linux find 命令查找文件?
  • 10个重要的Linux ps命令实战

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/52449.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

报名开启 | HarmonyOS第一课“营”在暑期系列直播

<HarmonyOS第一课>2023年再次启航&#xff01; 特邀HarmonyOS布道师云集华为开发者联盟直播间 聚焦HarmonyOS 4版本新特性 邀您一同学习赢好礼&#xff01; 你准备好了吗&#xff1f; ↓↓↓预约报名↓↓↓ 点击关注了解更多资讯&#xff0c;报名学习

用pytorch实现Resnet

ResNet&#xff08;Residual Network&#xff09;是一种深度卷积神经网络架构&#xff0c;由Kaiming He等人于2015年提出。它在计算机视觉领域引起了革命性的变革&#xff0c;使得训练更深的神经网络成为可能&#xff0c;超越了传统网络架构的限制。 ResNet的主要创新在于…

动态规划入门:斐波那契数列模型以及多状态(C++)

斐波那契数列模型以及多状态 动态规划简述斐波那契数列模型1.第 N 个泰波那契数&#xff08;简单&#xff09;2.三步问题&#xff08;简单&#xff09;3.使⽤最⼩花费爬楼梯&#xff08;简单&#xff09;4.解码方法&#xff08;中等&#xff09; 简单多状态1.打家劫舍&#xff…

智能电话机器人是如何自主学习的

电话机器人主要通过语音识别和针对语意的理解识别客户所说的内容&#xff0c;针对性的回答问题&#xff0c;为企业高效筛选意向客户。除了电话机器人语音识别之外&#xff0c;电话机器人能够自主学习&#xff0c;不断完善产品知识及话术等&#xff0c;是它智能的另一种体现。那…

Redis 重写 AOF 日志期间,主进程可以正常处理命令吗?

重写 AOF 日志的过程是怎样的&#xff1f; Redis 的重写 AOF 过程是由后台子进程 bgrewriteaof 来完成的&#xff0c;这么做有以下两个好处。 子进程进行 AOF 重写期间&#xff0c;主进程可以继续处理命令请求&#xff0c;从而避免阻塞主进程子进程带有主进程的数据副本。这里…

leetcode359周赛

2828. 判别首字母缩略词 核心思想:枚举。只需要枚举首字母和s是否一一对应即可。 2829. k-avoiding 数组的最小总和 核心思想&#xff1a;自己的方法就是哈希表&#xff0c;枚举i的时候&#xff0c;将k-i统计起来&#xff0c;如果出现了那么就跳过。灵神的方法是数学法&#…

OpenCV项目开发实战--基于Python/C++实现鼠标注释图像和轨迹栏来控制图像大小

鼠标指针是图形用户界面 (GUI) 中的关键组件。没有它,您就无法真正考虑与 GUI 进行交互。那么,让我们深入了解 OpenCV 中鼠标和轨迹栏的内置函数。我们将演示如何使用鼠标来注释图像,以及如何使用轨迹栏来控制图像的大小 我们将使用下图来演示 OpenCV 中鼠标指针和轨迹栏功能…

stm32之16.外设定时器——TIM3

----------- 源码 void tim3_init(void) {NVIC_InitTypeDef NVIC_InitStructure;TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;//使能TIM3的硬件时钟RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);//配置TIM3的定时时间TIM_TimeBaseStructure.TIM_Period 10000-1…

Linuxfirewalld防火墙

Linuxfirewalld防火墙 根据所在的网络场所区分&#xff0c;预设区域 public&#xff1a;仅允许访问本机的ssh、dhcp、ping服务 trusted&#xff1a;允许任何访问 block&#xff1a;拒绝任何来访请求 drop&#xff1a;丢弃任何来访的数据包&#xff0c;不给任何回应 查看虚…

短视频seo源码矩阵系统开源---代码php分享

前言&#xff1a;短视频seo源码 短视频seo矩阵系统源码私有化部署 短视频seo源码 短视频seo矩阵系统源码私有化怎么部署&#xff1f; 首先我们来给大家普及一下什么是短视频seo矩阵系统&#xff1f;视频矩阵分为多平台矩阵与一个平台多账号矩阵&#xff0c;加上seo排名优化&…

R语言快速生成三线表(1)

R语言的优势在于批量处理&#xff0c;常使用到循环和函数&#xff0c;三线表是科研文章中必备的内容。利用函数实现自动判断数据类型和计算。使用R包&#xff08;table1&#xff09;。 # 创建连续性变量 continuous_var1 <- c(1.2, 2.5, 3.7, 4.8, 5.9) continuous_var2 &l…

uniapp踩坑合集

1、onPullDownRefresh下拉刷新不生效 pages.json对应的style中enablePullDownRefresh设置为true&#xff0c;开启下拉刷新 {"path" : "pages/list/list","style" :{"navigationBarTitleText": "页面标题名称","enable…

Mybatis的动态SQL分页及特殊字符的使用

目录 一、分页 ( 1 ) 应用场景 ( 2 ) 使用 二、特殊字符 2.1 介绍 2.2 使用 给我们带来的收获 一、分页 分页技术的出现是为了解决大数据量展示、页面加载速度、页面长度控制和用户体验等问题。通过将数据分成多个页面&#xff0c;用户可以根据需求选择查看不同页的数据…

云原生周刊:Kubernetes v1.28 正式发布 | 2023.8.21

开源项目推荐 kurt 一个 Kubernetes 插件&#xff0c;可提供 Kubernetes 集群中重启内容的上下文信息。 Kubean Kubean 是一个基于 kubespray 的 Kubernetes 集群生命周期管理工具。 k8sgpt k8sgpt 是一款用简单的英语扫描 Kubernetes 集群、诊断和分流问题的工具。 它将…

小研究 - Android 字节码动态分析分布式框架(一)

安卓平台是个多进程同时运行的系统&#xff0c;它还缺少合适的动态分析接口。因此&#xff0c;在安卓平台上进行全面的动态分析具有高难度和挑战性。已有的研究大多是针对一些安全问题的分析方法或者框架&#xff0c;无法为实现更加灵活、通用的动态分析工具的开发提供支持。此…

Oracle 查询(当天,月,年)的数据

Trunc 在oracle中&#xff0c;可利用 trunc函数 查询当天数据&#xff0c;该函数可用于截取时间或者数值&#xff0c;将该函数与 select 语句配合使用可查询时间段数据 查询当天数据 --sysdate是获取系统当前时间函数 --TRUNC函数用于截取时间或者数值&#xff0c;返回指定的…

【Go 基础篇】Go语言匿名函数详解:灵活的函数表达式与闭包

介绍 在Go语言中&#xff0c;函数是一等公民&#xff0c;这意味着函数可以像其他类型的值一样被操作、传递和赋值。匿名函数是一种特殊的函数&#xff0c;它没有固定的函数名&#xff0c;可以在代码中被直接定义和使用。匿名函数在Go语言中具有重要的地位&#xff0c;它们常用…

Leetcode.73矩阵置零

给定一个 m x n 的矩阵&#xff0c;如果一个元素为 0 &#xff0c;则将其所在行和列的所有元素都设为 0 。请使用 原地 算法 class Solution {public void setZeroes(int[][] matrix) {int m matrix.length, n matrix[0].length;boolean[] row new boolean[m];boolean[] col…

机器学习基础之《分类算法(5)—朴素贝叶斯算法原理》

一、朴素贝叶斯算法 1、什么是朴素贝叶斯分类方法 之前用KNN算法&#xff0c;分类完直接有个结果&#xff0c;但是朴素贝叶斯分完之后会出现一些概率值&#xff0c;比如&#xff1a; 这六个类别&#xff0c;它都有一定的可能性 再比如&#xff0c;对文章进行分类&#xff1a;…

算法leetcode|73. 矩阵置零(rust重拳出击)

文章目录 73. 矩阵置零&#xff1a;样例 1&#xff1a;样例 2&#xff1a;提示&#xff1a;进阶&#xff1a; 分析&#xff1a;题解&#xff1a;rust&#xff1a;go&#xff1a;c&#xff1a;python&#xff1a;java&#xff1a; 73. 矩阵置零&#xff1a; 给定一个 m x n 的矩…