【Linux技术专题】「夯实基本功系列」带你一同学习和实践操作Linux服务器必学的Shell指令(排查问题指令 - 下)

带你一同学习和实践操作Linux服务器必学的Shell指令

  • 前提介绍
  • more和less命令用法
    • more命令
      • 命令格式
        • 命令参数
      • 常用操作命令
      • 案例分析
        • 显示文件中从第3行起的内容
        • 将日志内容设置为每屏显示4行
        • 快速定位和显示文件中包含特定字符串
        • 结合管道和`more`命令来分页显示
    • less指令
      • 命令格式
        • 搜索指令操作
        • 与more的对比
  • 查看CPU使用率的几个命令
    • top命令
    • mpstat命令
    • vmstat命令
    • sar命令
      • CPU使用率
      • 进程队列长度和平均负载状态
        • 输出项
      • 进程创建的平均值和上下文切换的次数

前提介绍

在线上排查问题时,查询日志、查看系统配置和分析操作系统信息是至关重要的。这些操作可以帮助我们深入了解软件和服务的兼容性,并解决潜在的问题。在本次学习中,我们将介绍并深入学习一些我在处理类似问题时常用的指令。通过掌握这些指令,你将能够更加高效地定位和解决线上问题,提高系统的稳定性和性能。让我们一同进入这个学习过程吧!

主要的指令分为一下几大类
在这里插入图片描述

more和less命令用法

more命令

more命令是类似于cat命令的功能,但它将文件的内容分页显示在屏幕上。与cat命令一次性显示整个文件不同,more命令通过一页一页的方式方便用户逐页阅读文件。

基本的more命令操作如下:

  • 按空格键(space)向下翻一页显示内容。
  • b键向上(back)翻一页显示内容。
  • more命令还具有搜索字符串的功能,可以在文件中查找指定的字符串。

more命令从前向后读取文件,因此在启动时就加载整个文件。它会根据终端的大小自动决定每页显示的行数,以适应屏幕空间。

使用more命令可以方便地分页阅读文件内容,尤其适用于查看较大的文件或输出较长的文本内容。

命令格式

more [-dlfpcsu ] [-num ] [+/ pattern] [+ linenum] [file ... ] 
命令参数

more命令的一些常用选项和功能如下:

  • +n 从第n行开始显示文件内容
  • -n 定义屏幕显示的行数为n行
  • +/pattern 在每个文件显示前,在指定的模式(pattern)前进行搜索,然后从该模式的前两行之后开始显示内容
  • -c 清屏并显示文件内容
  • -d 提示用户按空格键继续显示内容,按q键退出,并禁用响铃功能
  • -l 忽略Ctrl+l(换页)字符
  • -p 使用清除窗口而不是滚屏的方式进行分页,类似于-c选项
  • -s 将连续的多个空行显示为一行
  • -u 去除文件内容中的下划线

常用操作命令

more命令的一些常用操作快捷键和功能说明:

  • Enter:向下滚动一行或指定的行数(默认为1行)
  • Ctrl+F:向下滚动一屏
  • 空格键:向下滚动一屏
  • Ctrl+B:返回上一屏
  • =:输出当前行的行号
  • ::显示当前文件名和当前行的行号
  • V:调用vi编辑器进行编辑
  • !命令:调用Shell,并执行指定的命令
  • q:退出more命令

通过使用这些操作快捷键,可以更灵活地浏览和操作more命令中显示的文件内容。例如,可以通过回车键或者空格键逐行或指定行数滚动文件内容,使用Ctrl+F或空格键快速向下滚动一屏,使用Ctrl+B返回到上一屏,并使用其他功能来获取更多的信息。

案例分析

显示文件中从第3行起的内容

使用了两个命令来显示文件的内容。首先是使用cat命令来显示test.log文件的所有日志内容。然后,使用more命令来从第三行开始显示日志内容。

cat test.log                 # 显示所有日志内容
more +3 test.log             # 从第三行开始显示日志内容

通过这些命令,我们可以很方便地查看文件的特定部分,例如从指定行开始显示内容,以满足我们的需求。

将日志内容设置为每屏显示4行

使用more命令将日志文件test.log的每屏显示行数设置为4行。这意味着每次显示文件内容时,最多只会显示4行,方便用户逐页阅读。

more -4 test.log

通过调整-4参数的值,您可以根据需要设置不同的每屏显示行数,以便更好地控制和浏览文件内容。

快速定位和显示文件中包含特定字符串

使用more命令从文件test.log中查找并定位第一个出现"liu"字符串的行,并从该处前两行开始显示输出。

more +/liu test.log

在这个示例中,+/liu参数告诉more命令在每个文件显示前,在文件中搜索"liu"字符串,并从该字符串的前两行后开始显示文件内容,以方便用户查看与该字符串有关的内容。

结合管道和more命令来分页显示

当一个目录下的文件内容太多时,可以结合管道和more命令来分页显示,通过使用管道和more命令,可以处理文件内容太多而无法一次显示的情况。管道将前一个命令的输出作为后一个命令的输入,实现数据的流动和处理。

命令:

cat test.log | more -5

在这个示例中,使用管道|cat命令的输出作为输入传递给more命令。这样可以将文件test.log的内容通过管道传递给more命令,并结合-5参数使其每页显示5行内容。

less指令

less工具是对文件或其他输出进行分页显示的工具,在Linux中被认为是查看文件内容的正统工具,并具有非常强大的功能。less相比于more更加灵活和弹性。在使用more时,我们无法向前翻页,只能向后查看内容。但是,使用less时,可以使用[pageup][pagedown]等按键来往前往后翻页,更方便查看文件内容。此外,在less中还拥有更多的搜索功能,不仅可以向下搜索,还可以向上搜索。

使用less命令可以方便地浏览文件内容,并且具有更多的交互和搜索功能,使得查看文件变得更加便捷和高效。

命令格式

less [参数]  文件 

less命令的一些常用选项和功能如下:

  • -b <缓冲区大小>:设置缓冲区的大小
  • -e:当文件显示结束后,自动离开
  • -f:强制打开特殊文件,例如外围设备代号、目录和二进制文件
  • -g:只标记最后搜索的关键词
  • -i:忽略搜索时的大小写
  • -m:显示类似more命令的百分比
  • -N:显示每行的行号
  • -o <文件名>:将less输出的内容保存到指定文件中
  • -Q:不使用警告音
  • -s:将连续的空行显示为一行
  • -S:当行过长时将超出部分舍弃
  • -x <数字>:将tab键显示为指定数量的空格
搜索指令操作
  • /字符串:向下搜索指定的字符串
  • ?字符串:向上搜索指定的字符串
  • n:重复前一个搜索(与/?有关)
  • N:反向重复前一个搜索(与/?有关)
  • b:向后翻一页
  • d:向后翻半页
  • h:显示帮助界面
  • Q:退出less命令
  • u:向前滚动半页
  • y:向前滚动一行
  • 空格键:滚动一行
  • 回车键:滚动一页
  • [pagedown]:向下翻动一页
  • [pageup]:向上翻动一页
与more的对比

less 与 more 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会加载整个文件。

查看CPU使用率的几个命令

在Linux系统维护中,常用以下几个命令来查看CPU使用率和相关信息:

top命令

这个命令很常用,在第三行有显示CPU当前的使用情况,可以实时显示系统的运行情况,包括CPU使用率、运行队列等。使用命令top,然后按"1"可以查看每个核心的CPU使用率。

[root@li676-235 ~]# top -bn 1 -i -c
top - 14:19:51 up 138 days, 7:15, 1 user, load average: 0.20, 0.33, 0.39
Tasks: 115 total, 1 running, 114 sleeping, 0 stopped, 0 zombie
Cpu(s): 4.5%us, 3.8%sy, 0.0%ni, 91.0%id, 0.6%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 1014660k total, 880512k used, 134148k free, 264904k buffers
Swap: 262140k total, 34788k used, 227352k free, 217144k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 
12760 root 20 0 15084 1944 1632 R 2.0 0.2 0:00.01 top -bn 1 -i -c

如上所示,top命令可以提供总体的系统运行状态和CPU的使用率信息。

  • %us:表示用户空间程序的CPU使用率(没有通过nice调度)。
  • %sy:表示系统空间的CPU使用率,主要是内核程序。
  • %ni:表示用户空间且通过nice调度过的程序的CPU使用率。
  • %id:表示空闲CPU的比例。
  • %wa:表示CPU运行时在等待IO的时间。
  • %hi:表示CPU处理硬中断的数量。
  • %si:表示CPU处理软中断的数量。
  • %st:表示被虚拟机偷走的CPU的比例。

通过观察这些指标,可以了解系统的整体负载和CPU的使用情况。例如,高 %us 表示用户程序占用CPU较多,高 %wa 可能表示IO等待较多。这些信息有

mpstat命令

可以显示每个CPU的统计数据,包括用户空间、系统空间和空闲时间的百分比。使用命令mpstat,例如:

mpstat -P ALL

vmstat命令

可以显示系统的虚拟内存、进程、IO等信息,其中包括CPU使用率和上下文切换。使用命令vmstat,例如:

vmstat -n 1
[root@li676-235 ~]# vmstat 1 5
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
 r b swpd free buff cache si so bi bo in cs us sy id wa st
 2 0 34792 68376 147688 356132 16 16 421 385 2 2 5 4 91 1 0
 3 0 34792 97368 147688 326884 0 0 0 0 133 134 15 6 79 0 0
 1 0 34792 62432 147696 360704 0 0 0 88 267 278 63 18 19 0 0
 0 0 34792 97160 147696 326904 0 0 0 0 71 82 12 4 84 0 0
 1 0 34792 56572 147696 364540 0 0 0 4 261 246 61 23 16 0 0

sar命令

可以以历史记录的方式显示CPU使用率和其他系统指标。使用命令sar,例如:

sar -u

这些命令可以用来监控CPU的性能指标,帮助评估系统的运行情况和性能瓶颈。根据需要选择合适的命令来查看CPU使用率和相关信息。

CPU使用率

例如每1秒采集一次CPU使用率,共采集5次。

[root@li676-235 ~]# sar -u 1 5
Linux 3.18.5-x86_64-linode52 (li676-235) 07/20/2015 _x86_64_ (1 CPU)
02:41:25 PM CPU %user %nice %system %iowait %steal %idle
02:41:26 PM all 64.71 0.00 18.63 0.00 0.98 15.69
02:41:27 PM all 29.47 0.00 22.11 14.74 0.00 33.68
02:41:28 PM all 67.33 0.00 31.68 0.99 0.00 0.00
02:41:29 PM all 7.00 0.00 2.00 0.00 0.00 91.00
02:41:30 PM all 69.00 0.00 23.00 0.00 0.00 8.00
Average: all 47.79 0.00 19.48 3.01 0.20 29.52

和top一样,可以看到所有cpu的使用情况。如果需要查看某颗cpu的使用可以用-P参数。例如指定显示0号cpu 的使用情况。

[root@li676-235 ~]# sar -P 0 -u 1 5
Linux 3.18.5-x86_64-linode52 (li676-235) 07/20/2015 _x86_64_ (1 CPU)
02:45:14 PM CPU %user %nice %system %iowait %steal %idle
02:45:15 PM 0 44.00 0.00 52.00 4.00 0.00 0.00
02:45:16 PM 0 9.28 0.00 26.80 62.89 1.03 0.00
02:45:17 PM 0 3.06 0.00 14.29 81.63 1.02 0.00
02:45:18 PM 0 4.12 0.00 22.68 72.16 1.03 0.00
02:45:19 PM 0 4.12 0.00 22.68 72.16 1.03 0.00
Average: 0 13.09 0.00 27.81 58.28 0.82 0.00

进程队列长度和平均负载状态

例如每1秒采集一次,共采集5次。

[root@li676-235 ~]# sar -q 1 5
Linux 3.18.5-x86_64-linode52 (li676-235) 07/20/2015 _x86_64_ (1 CPU)
02:48:47 PM runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15
02:48:48 PM 1 133 0.34 0.43 0.41
02:48:49 PM 2 132 0.34 0.43 0.41
02:48:50 PM 1 133 0.34 0.43 0.41
02:48:51 PM 2 134 0.31 0.42 0.40
02:48:52 PM 1 133 0.31 0.42 0.40
Average: 1 133 0.33 0.43 0.41
输出项
  • runq-sz:运行队列的长度(等待运行的进程数)
  • plist-sz:进程列表中进程(processes)和线程(threads)的数量
  • ldavg-1:最后1分钟的系统平均负载(System load average)
  • ldavg-5:过去5分钟的系统平均负载
  • ldavg-15:过去15分钟的系统平均负载

进程创建的平均值和上下文切换的次数

例如每1秒收集一次,共收集5次。

[root@li676-235 ~]# sar -w 1 5 
Linux 3.18.5-x86_64-linode52 (li676-235) 07/20/2023 _x86_64_ (1 CPU)
02:54:03 PM proc/s cswch/s
02:54:04 PM 1.01 156.57
02:54:05 PM 1.00 132.00
02:54:06 PM 2.00 201.00
02:54:07 PM 2.02 126.26
02:54:08 PM 2.00 114.00
Average: 1.61 145.98

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

DataFunSummit:2023年云原生大数据峰会:核心内容与学习收获(附大会核心PPT下载)

随着数字化转型的深入推进&#xff0c;大数据技术已经成为企业获取竞争优势的关键因素之一。本次峰会汇聚了业界顶尖的大数据专家、企业领袖和技术精英&#xff0c;共同探讨云原生大数据领域的最新技术和趋势。本文将深入分析峰会的核心内容&#xff0c;并探讨参会者从中能学到…

大数据之谷歌文件系统论文 GFS The Google File System

原文地址 谷歌文件系统论文 摘要 我们设计并实现了Google文件系统&#xff0c;这是一个面向大规模分布式数据密集型应用的可扩展分布式文件系统。 它在廉价的通用硬件上运行&#xff0c;提供了容错性&#xff0c;并向大量客户端提供高聚合性能。 尽管与先前的分布式文件系统…

vue知识-07

ref # 放在组件上&#xff1a; this.$refs.名字 ---组件对象.组件对象.属性 # 在vue项目中使用: // 写在组件上 <HelloWorld ref"my_hello_world"></HelloWorld>handleClick() {console.log(this.$refs)this.$refs.my_hello_world.name # 获取子组件中…

CSS3十大滤镜效果详解

滤镜效果 类似于美颜相机、美图秀秀这样的美颜工具&#xff0c;能够让我们轻松地应用多种特效&#xff0c;例如转换为黑白照片、复古风格化、调整亮度等。在之前仅凭CSS几乎很难做到这些效果。 但在CSS3的语法中&#xff0c;所有的这些视觉特效都是通过“filter”属性来快速实…

基于Java+SSM的技术的社区人口管理系统详细设计和实现【附源码】

基于JavaSSM的技术的社区人口管理系统详细设计和实现 &#x1f345; 作者主页 央顺技术团队 &#x1f345; 欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; &#x1f345; 文末获取源码联系方式 &#x1f4dd; &#x1f345; 查看下方微信号获取联系方式 承接各种定制系统 …

备份和容灾讲解

备份和容灾 &#xff08;1&#xff09;容灾&#xff08;容许灾难的发生&#xff09;是一种架构方案&#xff0c;包括了很多方案&#xff0c;如下 本地高可用 双活&#xff08;特指存储&#xff0c;可以理解为两端同时对外提供服务&#xff09;&#xff1a;通过一个双写模块把…

【代码随想录06】454. 四数相加 II 383. 赎金信 15. 三数之和 18. 四数之和

目录 454. 四数相加 II题目描述做题思路参考代码 383. 赎金信题目描述做题思路参考代码 15. 三数之和题目描述参考代码 18. 四数之和题目描述参考代码 454. 四数相加 II 题目描述 给你四个整数数组 nums1、nums2、nums3 和 nums4 &#xff0c;数组长度都是 n &#xff0c;请你…

burp靶场——XXE注入

XML 外部实体 (XXE) 注入 1. 什么是xxe漏洞&#xff1a; https://portswigger.net/web-security/xxe#what-is-xml-external-entity-injection XML 外部实体注入&#xff08;也称为 XXE&#xff09;是一种 Web 安全漏洞&#xff0c;允许攻击者干扰应用程序对 XML 数据的处理。…

Go语言认识

Go语言认识 1. Go语言的设计背景2. Go语言的历程3. Go语言对比分析4. Go语言未来的发展规划5. 要不要选择Go 关注 go博客 直接了解第一手资料。 go文档 了解go的全貌。 1. Go语言的设计背景 Go语言&#xff08;也称为Golang&#xff09;是由Google开发的一种编程语言。它的设计…

59.说一下 spring 的事务隔离?

spring 的事务隔离有什么作用? 用来解决并发事务所产生一些问题,并发会产生什么问题? 1.脏读2.不可重复度3.幻影读事务隔离的概念 通过设置隔离级别可解决在并发过程中产生的那些问题分别举例说明 1.脏读 上述图表示:一个事务,读取了另一个事务中没有提交的数据,会在…

LabVIEW高效振动时效处理系统

概述&#xff1a;介绍了一个利用LabVIEW开发的振动时效处理系统&#xff0c;有效降低加工工件的内部残余应力&#xff0c;提升其质量和寿命。 项目背景 工业加工中的工件常存在残余应力问题&#xff0c;这直接影响工件的质量和寿命。虽然热时效和自然时效法被广泛应用于降低残余…

数据结构学习 jz45 把数组排成最小的数

关键词&#xff1a;贪心 排序 快速排序 题目&#xff1a;破解闯关密码 思路&#xff1a; 快排自己制定快排规则 开辟一个vector存string&#xff0c;自己制定排序规则&#xff0c;然后用快排比较string大小。 排序规则&#xff1a; sort(strs.begin(),strs.end(),[](string…

供应链管理是什么?专业就业前景如何?

什么是供应链管理 供应链&#xff08;Supply Chain&#xff09;&#xff0c;也被称为价值链或需求链&#xff08;Demand Chain&#xff09;&#xff0c;包括顾客、供应商、过程、产品以及对产品和服务有影响的各种资源。供应链强调的是公司之间的过程与关系。 《中华人民共和国…

置位复位寄存器的某一位(多工位多工站渗透线控制应用)

这里的置位复位特定寄存器位功能块可以应用在渗透线控制应用上,我们可以根据小车当前所在位置,对相关工作槽里的标志位进行置位复位等操作(某个槽有产品,某个槽没有产品等)。 下面我们看下对应的控制要求 1、置位复位特定的位 2、置位复位寄存器中的某一位 3、置位bit8 4…

vue中使用mpegts.js播放flv的直播视频流

第一步&#xff1a;引入mpegts.js npm install --save mpegts.js 第二步&#xff1a;在vue文件中引入mpegts.js的依赖 第三步&#xff1a;编写展示视频的盒子 我这里是使用循环遍历的方式创建video标签&#xff0c;这样方便后面随机展示视频使用 <template><div>&l…

k8s存储卷-动态PV

pv和PVC&#xff0c;存储卷&#xff1a; 存储卷&#xff1a; EmptyDir&#xff1a;容器内部&#xff0c;随着pod销毁&#xff0c;emptyDir也会消失&#xff0c;不能做数据持久化 HostPath&#xff1a;持久化存储数据&#xff0c;可以和节点上目录做挂载&#xff0c;pod被销毁…

屏蔽/非屏蔽线、屏蔽/非屏蔽端口介绍

一、双绞线 双绞线&#xff08;twisted pair&#xff0c;TP&#xff09;是一种综合布线工程中最常用的传输介质&#xff0c;是由两根具有绝缘保护层的铜导线组成的。把两根绝缘的铜导线按一定密度互相绞在一起&#xff0c;每一根导线在传输中辐射出来的电波会被另一根线上发出的…

vivado 使用约束、添加和创建约束文件

使用约束 Vivado IDE支持Xilinx设计约束&#xff08;XDC&#xff09;和Synopsys设计约束&#xff08;SDC&#xff09;文件格式。SDC格式用于定时约束&#xff0c;而XDC格式用于两者时间和物理约束。约束可以包括位置、时间和I/O限制。您可以在设计流程的各个步骤中创建约束&am…

1 python计算机基础

计算机基础和环境搭建 1 计算机基础和环境搭建1.计算机基础1.1 基本概念1.2 编程语言1.3 编译器/解释器 2.学习编程的本质3.Python的介绍3.1 语言的分类3.2 Python3.3 Python的解释器种类&#xff08;了解&#xff09;3.4 CPython解释器的版本 4.环境搭建4.1 安装Python解释器4…

详解SpringCloud微服务技术栈:Nacos配置管理

&#x1f468;‍&#x1f393;作者简介&#xff1a;一位大四、研0学生&#xff0c;正在努力准备大四暑假的实习 &#x1f30c;上期文章&#xff1a;详解SpringCloud微服务技术栈&#xff1a;Nacos服务搭建及服务分级存储模型 &#x1f4da;订阅专栏&#xff1a;微服务技术全家桶…