【Linux 技术专题】「夯实基本功系列」带你一同学习和实践操作 Linux 服务器必学的 Shell 指令(排查问题指令 - 下)
前提介绍
在线上排查问题时,查询日志、查看系统配置和分析操作系统信息是至关重要的。这些操作可以帮助我们深入了解软件和服务的兼容性,并解决潜在的问题。在本次学习中,我们将介绍并深入学习一些我在处理类似问题时常用的指令。通过掌握这些指令,你将能够更加高效地定位和解决线上问题,提高系统的稳定性和性能。让我们一同进入这个学习过程吧!
主要的指令分为一下几大类
more 和 less 命令用法
more 命令
more
命令是类似于cat
命令的功能,但它将文件的内容分页显示在屏幕上。与cat
命令一次性显示整个文件不同,more
命令通过一页一页的方式方便用户逐页阅读文件。
基本的more
命令操作如下:
按空格键(
space
)向下翻一页显示内容。按
b
键向上(back
)翻一页显示内容。more
命令还具有搜索字符串的功能,可以在文件中查找指定的字符串。
more
命令从前向后读取文件,因此在启动时就加载整个文件。它会根据终端的大小自动决定每页显示的行数,以适应屏幕空间。
使用more
命令可以方便地分页阅读文件内容,尤其适用于查看较大的文件或输出较长的文本内容。
命令格式
命令参数
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
命令来从第三行开始显示日志内容。
通过这些命令,我们可以很方便地查看文件的特定部分,例如从指定行开始显示内容,以满足我们的需求。
将日志内容设置为每屏显示 4 行
使用more
命令将日志文件test.log
的每屏显示行数设置为 4 行。这意味着每次显示文件内容时,最多只会显示 4 行,方便用户逐页阅读。
通过调整-4
参数的值,您可以根据需要设置不同的每屏显示行数,以便更好地控制和浏览文件内容。
快速定位和显示文件中包含特定字符串
使用more
命令从文件test.log
中查找并定位第一个出现"liu"字符串的行,并从该处前两行开始显示输出。
在这个示例中,+/liu
参数告诉more
命令在每个文件显示前,在文件中搜索"liu"字符串,并从该字符串的前两行后开始显示文件内容,以方便用户查看与该字符串有关的内容。
结合管道和more
命令来分页显示
当一个目录下的文件内容太多时,可以结合管道和more
命令来分页显示,通过使用管道和more
命令,可以处理文件内容太多而无法一次显示的情况。管道将前一个命令的输出作为后一个命令的输入,实现数据的流动和处理。
命令:
在这个示例中,使用管道|
将cat
命令的输出作为输入传递给more
命令。这样可以将文件test.log
的内容通过管道传递给more
命令,并结合-5
参数使其每页显示 5 行内容。
less 指令
less
工具是对文件或其他输出进行分页显示的工具,在 Linux 中被认为是查看文件内容的正统工具,并具有非常强大的功能。less
相比于more
更加灵活和弹性。在使用more
时,我们无法向前翻页,只能向后查看内容。但是,使用less
时,可以使用[pageup]
和[pagedown]
等按键来往前往后翻页,更方便查看文件内容。此外,在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 使用率。
如上所示,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
,例如:
vmstat 命令
可以显示系统的虚拟内存、进程、IO 等信息,其中包括 CPU 使用率和上下文切换。使用命令vmstat
,例如:
sar 命令
可以以历史记录的方式显示 CPU 使用率和其他系统指标。使用命令sar
,例如:
这些命令可以用来监控 CPU 的性能指标,帮助评估系统的运行情况和性能瓶颈。根据需要选择合适的命令来查看 CPU 使用率和相关信息。
CPU 使用率
例如每 1 秒采集一次 CPU 使用率,共采集 5 次。
和 top 一样,可以看到所有 cpu 的使用情况。如果需要查看某颗 cpu 的使用可以用-P 参数。例如指定显示 0 号 cpu 的使用情况。
进程队列长度和平均负载状态
例如每 1 秒采集一次,共采集 5 次。
输出项
runq-sz:运行队列的长度(等待运行的进程数)
plist-sz:进程列表中进程(processes)和线程(threads)的数量
ldavg-1:最后 1 分钟的系统平均负载(System load average)
ldavg-5:过去 5 分钟的系统平均负载
ldavg-15:过去 15 分钟的系统平均负载
进程创建的平均值和上下文切换的次数
例如每 1 秒收集一次,共收集 5 次。
版权声明: 本文为 InfoQ 作者【洛神灬殇】的原创文章。
原文链接:【http://xie.infoq.cn/article/a1b0577fdadbbe087dac60150】。文章转载请联系作者。
评论