文章目录

  • 前言
  • 一、Linux基础命令和工具
    • grep命令搜索字符
    • find命令查找文件
    • ls命令显示文件
    • wc命令计算字数
    • ulimit用户资源
    • curl http
    • scp远程拷贝
    • dos2unix和unix2dos
  • 二、 CPU性能监控
    • 平均负载和CPU使用率
      • 平均负载基础
      • 使用uptime命令分析平均负载
    • 平均负载与 CPU 使用率
    • CPU使用率监测命令
      • ps命令查找进程信息
      • top命令查询进程的cpu、内存信息
    • CPU上下文切换
      • 什么是CPU上下文切换
      • 有哪些上下文切换

前言

对于linux一些常用命令的学习,让在实际开发中,能快速查找问题,免得总是在百度搜查命令


一、Linux基础命令和工具

grep命令搜索字符

grep 命令用于在文件中执行关键词搜索,并显示匹配的效果。部分常用选项如下:

下面进行演示:
(1)在指定文件查找,查找server关键字

grep server /usr/lcoal/nginx/conf/nginx.conf


(2)递归搜索目录下所有文件, 搜索 /usr/local/nginx/目录下所有文件,打印出包含server的行。

grep server -r /usr/local/nginx/


(3)反向查找,查找文件中,不包含 server 的行。

grep -v server /usr/local/nginx/conf/nginx.conf


(4)找出文件中包含server的行,并打印出行号

grep -n server /usr/local/nginx/conf/nginx.conf


(5)找出文件中包含server的行,打印出行号,并显示前后3行

 grep -C 3 -n server /usr/local/nginx/conf/nginx.conf


(6)找出文件中包含server的行,打印出行号,并显示前后3行,并忽略大小写

grep -C 3 -i -n server /usr/local/nginx/conf/nginx.conf

find命令查找文件

通过文件名查找文件的所在位置,文件名查找支持模糊匹配
find [指定查找目录] [查找规则] [查找完后执行的action]

(1)find . -name FILE_NAME
(2)find . -iname FILE_NAME 忽略文件名称大小写
(3)find /etc -maxdepth 1 -name passwd ##查找/etc/下名称中带有passwd的文件,查找一层

(4)find /mnt -size 20K ##查找/mnt文件大小近似20k的文件
(5)find /mnt -size +20K ##查找/mnt文件大小大于20k的文件
(6)find /mnt -size -20K ##查找/mnt文件大小小于20k的文件
(7)find /etc -maxdepth 2 -mindepth 2 -name .conf ##查找/etc/下名称中带有.conf的文件,且只查
找第二层
(8)find /etc -type d ##按type查找/etc中目录

(9)find /etc -type f ##按type查找/etc中文件

(10)find /mnt -cmin 10 ##查找/mnt中十分钟左右修改的
(11)find /mnt -cmin +10 ##查找/mnt中十分钟以上修改的
(12)find /mnt -cmin -10 ##查找/mnt中十分钟以内修改的
(13)find /mnt -ctime 10 ##查找/mnt中十天左右修改的
(14)find /mnt -ctime +10 ##查找/mnt中十天以上修改的
(15)find /mnt -ctime -10 ##查找/mnt中十天以内修改的

ls命令显示文件

-t 可以查看最新修改的时间
-l 每行显示一个条目
-h可以结合显示文件的GB,MB等
-R递归显示
-n显示组id和gid
(1)ls -lt 按最新修改的时间排序,新修改的在前面显示。
(2)ls -ltR 按最新修改的时间排序,新修改的在前面显示,并显示子目录的文件信息
(3)ls -lh 以单位显示文件大小

wc命令计算字数

wc命令用于计算字数。 利用wc指令我们可以计算文件的Byte数、字数、或是列数,若不指定文件名
称、或是所给予的文件名为"-",则wc指令会从标准输入设备读取数据。

语法:wc [-clw][–help][–version][文件…]
参数:
-c或–bytes或–chars 只显示Bytes数。
-l或–lines 只显示行数。
-w或–words 只显示字数。
–help 在线帮助。
–version 显示版本信息。

wc dracut.conf # dracut.conf文件的统计信息
7 43 317 dracut.conf # dracut.conf文件的行数为7、单词数43、字节数317

ulimit用户资源

Linux系统对每个登录的用户都限制其最大进程数和打开的最大文件句柄数。为了提高性能,可以根据硬
件资源的具体情况设置各个用户的最大进程数和打开的最大文件句柄数。

用ulimit -a来显示当前的各种系统对用户使用资源的限制:

设置用户的最大进程数:
ulimit -u 1024

设置用户可以打开的最大文件句柄数:
ulimit -n 65530

curl http

由于当前的线上服务较多地使用了RESTful风格的API,所以集成测试就需要进行HTTP调用,查看返回的
结果是否符合预期,curl命令当然是首选的测试方法。
语法:
语法:# curl [option] [url]

使用方式:
curl -i “http://www.sina.com” # 打印请求响应头信息
curl -I “http://www.sina.com” # 仅返回http头
curl -v “http://www.sina.com” # 打印更多的调试信息
curl -verbose “http://www.sina.com” # 打印更多的调试信息
curl -d ‘abc=def’ “http://www.sina.com” # 使用post方法提交http请求
curl -sw ‘%{http_code}’ “http://www.sina.com” # 打印http响应码

(1)基本用法

 curl http://www.linux.com

执行后,www.linux.com 的html就会显示在屏幕上了
Ps:由于安装linux的时候很多时候是没有安装桌面的,也意味着没有浏览器,因此这个方法也经常用于测试一台服务器是否可以到达一个网站

(2)保存访问的网页
使用linux的重定向功能保存

curl http://www.baidu.com >> baidu.html


使用curl的内置option:-o(小写)保存网页

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

执行完成后会显示如下界面,显示100%则表示保存成功

(3)使用curl的内置option:-O(大写)保存网页中的文件要注意这里后面的url要具体到某个文件,不然抓不下来

curl -O http://www.linux.com/hello.sh

scp远程拷贝

dos2unix和unix2dos

用于转换Windows和UNIX的换行符,通常在Windows系统h开发的脚本和配置,UNIX系统下都需要转换。
使用方式:

dos2unix test.txt
unix2dos test.txt

二、 CPU性能监控

平均负载和CPU使用率

平均负载基础

平均负载是指单位时间内,系统处于可运行状态不可中断状态平均进程数,也就是平均活跃进程
数,它和 CPU 使用率并没有直接关系。
(1)可运行状态的进程,是指正在使用 CPU 或者正在等待 CPU 的进程,也就是我们常用 ps 命令看到
的,处于 R 状态(Running 或 Runnable)的进程。
(2)不可中断状态的进程则是正处于内核态关键流程中的进程,并且这些流程是不可打断的,比如最常
见的是等待硬件设备的 I/O 响应,也就是我们在 ps 命令中看到的 D 状态(UninterruptibleSleep,也称为 Disk Sleep)的进程。
平均负载其实就是平均活跃进程数。平均活跃进程数,直观上的理解就是单位时间内的活跃进程数

使用uptime命令分析平均负载

查看机器的启动时间、登录用户、平均负载等情况,通常用于在线上应急或者技术攻关中,确定操作系
统的重启时间。

uptime


从上面的输出可以看到如下信息:
当前时间: 19:15:44
系统已经运行的时间:3天21小时16分钟。
前在线用户:1个用户,是总连接数量,不是不同用户数量(开一个终端连接就算一个用户)。
系统平均负载:3.02 , 3.04, 3.17为最近1分钟、5分钟、15分钟的系统负载情况。

对于这些平均负载的数字有什么用呢?
比如当前平均负载为 2 时,意味着什么呢?
在只有 2 个 CPU 的系统上,意味着所有的 CPU 都刚好被完全占用。
在 4 个 CPU 的系统上,意味着 CPU 有 50% 的空闲。
而在只有 1 个 CPU 的系统中,则意味着有一半的进程竞争不到 CPU。

查看cpu信息:

cat /proc/cpuinfo

直接获取cpu核数:

grep 'model name' /proc/cpuinfo | wc -l

负载说明(现针对单核情况,不是单核时则乘以核数):
load<1:没有等待
load==1:系统已无额外的资源跑更多的进程了
load>1:进程都堵着等待资源
注意:
load < 0.7时:系统很闲,要考虑多部署一些服务
0.7 < load < 1时:系统状态不错
load == 1时:系统马上要处理不多来了,赶紧找一下原因
load > 5时:系统已经非常繁忙了

不同load值说明的问题:
1分钟 load >5,5分钟 load < 3,15分钟 load <1
短期内繁忙,中长期空闲,初步判断是一个抖动或者是拥塞前兆

1分钟 load >5,5分钟 load >3,15分钟 load <1
短期内繁忙,中期内紧张,很可能是一个拥塞的开始

1分钟 load >5,5分钟 load >5,15分钟 load >5
短中长期都繁忙,系统正在拥塞

1分钟 load <1,5分钟Load>3,15分钟 load >5
短期内空闲,中长期繁忙,不用紧张,系统拥塞正在好转

平均负载与 CPU 使用率

平均负载是指单位时间内,处于可运行状态和不可中断状态的进程数。所以,它不仅包括了正在使用
CPU 的进程,还包括等待 CPU 和等待 I/O 的进程。

CPU 使用率,是单位时间内 CPU 繁忙情况的统计,跟平均负载并不一定完全对应。比如:
(1)CPU 密集型进程,使用大量 CPU 会导致平均负载升高,此时这两者是一致的;
(2)I/O 密集型进程等待 I/O 也会导致平均负载升高,但 CPU 使用率不一定很高;
(3)大量等待 CPU 的进程调度也会导致平均负载升高,此时的 CPU 使用率也会比较高。

CPU使用率监测命令

系统自带:ps、top
第三方安装:mpstat 、pidstat

ps命令查找进程信息

ps用一于显示系统内的所有进程。

查找指定进程格式:

ps -ef | grep 进程关键字

显示指定用户信息:

ps -u root //显示root进程用户信息

显示所有进程信息,连同命令行:

ps -ef //显示所有命令,连带命令行

查看当前登录产生的进程:

ps -l
top命令查询进程的cpu、内存信息

top命令用于查看活动进程的CPU和内存信息,能够实时显示系统中各个进程的资源占用情况,可以按照
CPU、内存的使用情况和执行时间对进程进行排序。

top


各个字段的含义:
PID:进程的 ID。
USER:该进程所属的用户。
PR:优先级,数值越小优先级越高。
NI:优先级,数值越小、优先级越高。
VIRT:该进程使用的虚拟内存的大小,单位为 KB。
RES:该进程使用的物理内存的大小,单位为 KB。
SHR:共享内存大小,单位为 KB。
S:进程状态。
%CPU:该进程占用 CPU 的百分比。
%MEM:该进程占用内存的百分比。
TIME+:该进程共占用的 CPU 时间。
COMMAND:进程的命令名。

CPU上下文切换

什么是CPU上下文切换

所谓的上下文切换,就是把上一个任务的寄存器和计数器保存起来,然后加载新任务的寄存器和计数
器,最后跳转到新任务的位置开始执行新任务。
根据任务的不同,CPU 的上下文切换就可以分为几个不同的场景,也就是进程上下文切换、线程上下文
切换以及中断上下文切换

有哪些上下文切换
  1. 系统调用上下文切换
    linux 进程既可以在用户空间运行,又可以在内核空间中运行。当它在用户空间运行时,被称为进程的用户态;当它进入进入内核空间的时候,被称为进程的内核态从用户态到内核态的转变过程,需要通过系统调用来完成CPU 寄存器里原来的指令位置是在用户态。但是为了执行内核态代码,需要先把用户态的位置保存起来,然后寄存器更新为内核态指令的新位置。最后跳转到内核态运行内核任务。
    当系统调用结束后,CPU 寄存器需要恢复原来保存的用户态位置,然后再切换到用户空间,继续运行进程。一次系统调用发生了两次 CPU 上下文切换! 系统调用过程中对用户态的资源没有任何影响,也不会切换进程,所以也称为特权模式切换.应用层(用户态)send, 真正发送数据 内核态 recv

  2. 进程上下文切换
    进程是由内核来管理和调度的,所以进程的切换只发生在内核态。进程的上下文不仅包括了虚拟内存、
    栈、全局变量等用户空间的资源,还包括了内核堆栈、寄存器等内核空间的状态。
    进程的上下文切换在保存当前进程的内核状态和 CPU 寄存器之前,需要先把该进程的虚拟内存、栈等保存下来;而加载了下一进程的内核态后再刷新进程的虚拟内存映射关系和用户栈,刷新虚拟内存映射就涉及到 TLB 快表 (虚拟地址缓存),因此会影响内存的访问速度。

  3. 线程上下文切换

  4. 中断上下文切换

Linux系统运行时参数命令相关推荐

  1. Linux系统运行时参数命令--网络IO性能监控

    目录 5 网络IO性能监控 5.1 性能指标 5.2 网络信息 5.2.1 套接字信息 5.2.2 协议栈统计信息-netstat命令 5.2.3 网络吞吐-sar命令 5.2.4 连通性和延时 5. ...

  2. Linux系统运行时参数命令--Linux基础命令和工具

    目录 1 Linux基础命令和工具 1.1 grep搜索字符 1.2 find查找文件 1.3 ls显示文件 1.4 wc命令 1.5 ulimit用户资源 1.6 scp远程拷贝 1.7 dos2u ...

  3. linux系统运行级别wq命令,Linux系统运行级别和关机重启命令介绍

    Linux系统运行级别介绍 Linux系统有七种运行级别(Run Level),各个运行级别下,系统有不同的状态,各个级别的意义描述如下. 0:关键级别 1:单用户运行级别,运行rc.sysinit和 ...

  4. linux 系统运行状况 shell命令 watch 监控进程是否存在

       1.  Linux的实时监测命令(watch):     watch 是一个非常实用的命令,可以帮你实时监测一个命令的运行结果,省得一遍又一遍的手动运行.该命令最为常用的两个选项是-d和-n,其 ...

  5. linux系统常用性能参数命令

    CPU cpu.idle:CPU或CPU处于空闲状态且系统没有未完成的磁盘I/O请求的时间百分比. cpu.busy:与cpu.idle相对,他的值等于100减去cpu.idle. cpu.guest ...

  6. 在Intel处理器上,修改mitigations参数使Linux系统运行得更快

    您可能听说过影响了许多现代处理器,包括英特尔,AMD,System Z,Power和ARM的某些处理器.幸运的是,内核开发人员已经发布了安全补丁来解决Meltdown/Spectre问题,在最新的内核 ...

  7. linux系统cpu文件,Linux_学堂:当前Linux系统运行的各种参数, 1、CPU   在文件“/proc/ - phpStudy...

    学堂:当前Linux系统运行的各种参数 1.CPU 在文件"/proc/stat"里面就包含了CPU的信息.每一个CPU的每一tick用在什么地方都在这个文件里面记着.后面的数字含 ...

  8. Linux深入浅出--3.vi和vim的使用及关机重启命令及用户管理、添加查询切换用户、用户组的操作及Linux系统运行级别及找回root密码

    目录 一.vi和vim 1.vi和vim的基本介绍 2.vi和vim常用的三种模式 vim使用简单入门 3.三种模式转换结构图 4.vi和vim的快捷键使用 二.关机&重启命令 三.用户管理 ...

  9. linux 杀掉php,Linux_在Linux系统中使用xkill命令杀掉未响应的进程,我们如何在Linux中杀掉一个资 - phpStudy...

    在Linux系统中使用xkill命令杀掉未响应的进程 我们如何在Linux中杀掉一个资源/进程?很明显我们会找出资源的pid然后用kill命令. 说的更明白一点,我们可以找到某个资源(比如termin ...

最新文章

  1. mysql优化的重要参数 key_buffer_size table_cache
  2. 中华图标网--http://sinoLogo.cn
  3. python append 浮点数 精度_Python打牢基础,从12个语法开始!
  4. 数据填充规则之PKCS7
  5. 如何评价一个产品经理工作做的好坏?
  6. ip在线代理网页联合早报_一次免费代理ip的爬取实战
  7. Qt:Qt实现飞秋拦截助手—Mac地址扫描器
  8. 读书笔记—《销售铁军》随记8
  9. 机器人图形变变变_幼儿园中班公开课数学教案《图形变变变》含反思
  10. 第二阶段团队冲刺第三天
  11. 【好玩的代码雨(附源代码
  12. k8s之常用操作命令
  13. 社会化媒体营销方案简介
  14. 重生之我是赏金猎人-SRC漏洞挖掘(十三)-攻防对抗/梦中绝杀X脖代理商
  15. Ubuntu18.04 同一个程序显示两个图标,收藏夹图标不合并问题解决
  16. 成都敏之澳电商:拼多多商家怎么看店铺是否降权导?
  17. 管廊复杂网格参数化算法及其大数据在线渲染
  18. 华为U-SYS系统力助运营商实施转型
  19. 什么是iBeacon
  20. 深入浅出TCP协议,为什么需要TCP协议?

热门文章

  1. 浅谈项目结项后的移交问题
  2. 打印1~200之间的素数(质数)c语言
  3. (15)腾讯云微搭:云开发为底层支撑的低代码应用/表单开发平台
  4. LeetCode的提交外挂
  5. 11 MFC 制作记事本
  6. Android 集成 X5 WebView
  7. 成都正规python培训班
  8. 多做一点,就吃亏了吗?
  9. wincc里vbs脚本
  10. 产品分析丨豆瓣APP