Linux常用指令(三)

前期回顾

目录

一、Find(查找命令)

二、File(显示文件类型)

三、tar(压缩命令)

四、df(显示磁盘状态)

五、du(查看空间)

六、free(显示系统内存)

七、top(监视系统情况)

八、vmstat(显示虚拟内存信息)

九、iostat(统计系统总体性能)

十、sort命令(文本文件排序)


一、Find(查找命令)

Find指令作用

find 是一个用于在文件系统中查找某些文件的命令。它可以根据各种不同的 条件来搜索文件,比如文件名、文件类型、文件大小、修改时间等等。

Find指令的应用场景

经典应用场合有:查找指定名称的文件、查找最近一段时间内被修改过的文件、 查找特定类型的文件、在多个目录中递归查找文件、删除不需要的文件

Find常用参数

参数作用
-name <pattern>根据文件名模式匹配查找文件
-type <type>根据文件类型查找文件,如 f 表示普通文件,d 表示目录等
-size <size>根据文件大小查找文件,可以使用 +- 表示大于或小于指定大小
-mtime <time>根据文件修改时间查找文件,可以使用 +- 表示多少天前的时间
-user <username>根据文件所有者查找文件
-group <groupname>根据文件所属组查找文件
-perm <mode>根据文件权限查找文件
-exec <command>对查找到的文件执行指定的命令
-print打印查找到的文件路径

应用实例练习 (下面练习中的文件名字和目录名字可以自己写)

1.在当前目录中使用名称查找文件

find . -name rumenz.txt

2. 在主目录下查找文件

find /home -name rumenz.txt

3. 使用名称和忽略大小写查找文件

find /home -iname rumenz.txt

4. 使用名称查找目录

find / -type d -name rumenz

5. 使用名称查找 PHP 文件

find . -type f -name rumenz.php

6. 查找目录中的所有 tar文件

find . -type f -name “*.tar”

7. 查找具有 777 权限的文件

find . -type f -perm 0777 -print

9.查找没有 777 权限的文件

find / -type f ! -perm 777

10.查找具有 644 权限的 SGID 文件

find / -perm 2644

18.查找和删除单个文件

find . -type f -name “rumenz.txt” -exec rm -f {} \;

19.查找和删除多个文件

find . -type f -name “*.txt” -exec rm -f {} \;

​OR

​find . -type f -name “*.mp3” -exec rm -f {} \;

20.查找所有空文件

find /tmp -type f -empty

21.查找所有空目录

find /tmp -type d -empty

22.归档所有隐藏文件

find /tmp -type f -name “.*”


31.查找最近 50-100 天修改过的文件

find / -mtime +50 –mtime -100

33.查找过去 1 小时内更改过的文件

find / -cmin -60

35查找过去 1 小时内访问过的文件

find / -amin -60

37找到 50MB 的文件

find / -size 50M

38查找 50MB – 100MB 之间的大小

find / -size +50M -size -100M

39查找并删除大于 100MB的 文件

find / -type f -size +100M -exec rm -f {} ;


二、File(显示文件类型)

命令功能:

用于显示文件类型的实用工具。它可以根据文件的内容和特征来确定文件的类型,并将其分类为文本文件、二进制文件、压缩文件、可执行文件等。

应用场景:

  1. 文件识别和分类:通过查看文件的类型,你可以快速了解文件的性质。例如,你可以使用 File 命令来确认一个文件是否是纯文本文件,以便在处理和编辑时采取适当的措施。

  2. 安全性检查:File 命令可以帮助你识别潜在的安全风险。例如,你可以使用 File 命令来检查未知来源的文件是否是可执行文件,以避免运行恶意代码。

  3. 文件转换和处理:根据文件类型,你可以选择适当的工具和方法来处理文件。例如,如果你知道一个文件是压缩文件,你可以使用相应的解压工具进行解压操作。

  4. 文件系统维护:通过 File 命令,你可以快速扫描整个文件系统,并查找特定类型的文件。这对于清理垃圾文件、查找特定格式的文件或者统计文件类型分布等任务非常有用。

练习案例

展示所有文件

Md5sum,校验文件是否改变

chown 改变文件的用户或用户组

chmod  改变文件权限


三、tar(压缩命令)

命令功能:

  1. 创建归档文件:你可以使用 tar 命令将多个文件或目录打包成一个归档文件。这对于备份文件、传输文件或者将文件组织成一个单独的实体非常有用。

  2. 提取归档文件:使用 tar 命令可以从归档文件中提取出原始的文件和目录。这对于还原备份文件、恢复丢失的文件或者获取特定文件非常有用。

  3. 压缩归档文件:tar 命令可以结合其他压缩工具(如 gzip 或 bzip2)一起使用,将归档文件进行压缩,以减少存储空间和传输时间。

  4. 列出归档文件内容:你可以使用 tar 命令来查看归档文件中包含的文件和目录列表,以便了解其内容和组织结构。

应用场景:

  1. 文件备份和还原:你可以使用 tar 命令将重要文件打包成归档文件进行备份,并在需要时还原到原始位置。

  2. 文件传输和共享:通过将文件打包成归档文件,你可以更方便地将文件发送给其他人或在不同系统之间共享文件。

  3. 压缩存储和传输:结合压缩工具,tar 命令可以将归档文件进行压缩,以减少存储空间和传输时间。

  4. 软件发布和安装:开发人员可以使用 tar 命令将软件程序的文件和目录打包成归档文件,并将其分发给用户进行安装。

常用参数:

参数功能
-c创建归档文件
-x提取归档文件
-f指定归档文件名
-v显示详细信息
-z使用 gzip 进行压缩/解压缩
-j使用 bzip2 进行压缩/解压缩
-t列出归档文件内容
-r向归档文件中追加文件
-u更新归档文件中的文件
-p保留原始权限和属性
-C指定提取文件的目标目录
-s替换归档文件中的文件名
-A合并归档文件
--exclude排除指定文件或目录
--wildcards使用通配符匹配文件名
--strip-components去除路径层级

练习案例:

压缩tar包 、使用-c参数 、多个文件压缩:

Touch f{1,2,3}

tar -cvf t.tar f1 f2

目录压缩:

Mkdir d{1,2,3}

tar -cvf dir.tar d1/

匹配压缩:

Touch f{1.log,2.log,3.log}

tar -cvf tlog.tar *.log

查看压缩包内容

使用-t参数

tar -tvf tlog.tar

压缩tar.gz包

使用-z参数

压缩为gizp

tar -zcvf t.tar.gz f1.log f2.log

查看

Tar -tvf t.tar.gz

向压缩包添加/更新文件

使用-r参数

Touch newfile.log

tar -rf tlog.tar newfile.log

查看

Tar -tf tlog.tar

tar解压

 直接解压到当前目录

使用-x参数

tar -xvf tlog.tar

 解压到指定目录

使用-C参数

tar -xvf tlog.tar -C d1

只将 /tar 内的 部分文件解压出来

tar -xvf  tlog.tar f1.log

问题:一句话说明tar的作用是什么?参数t,f,z,x分别是能做什么?

下面是对 tar 命令中常用参数的解释:

  • -t:查看 tar 文件的内容列表,显示归档文件中包含的文件和目录名。
  • -f:指定归档文件的名称。例如,tar -cf archive.tar file1 file2 将创建一个名为 archive.tar 的归档文件,并将 file1file2 添加到其中。
  • -z:使用 gzip 压缩算法对归档文件进行压缩。例如,tar -czf archive.tar.gz directory 将使用 gzip 压缩算法创建一个名为 archive.tar.gz 的归档文件,并将 directory 添加到其中。
  • -x:从归档文件中提取文件和目录。例如,tar -xf archive.tar 将从 archive.tar 中提取出所有的文件和目录。

四、df(显示磁盘状态)

命令功能:

显示文件系统的磁盘空间使用情况。它可以列出文件系统的总容量、已用空间、可用空间以及挂载点等信息。

应用场景:

  1. 查看磁盘空间使用情况:通过运行 df 命令,你可以查看系统中各个文件系统的磁盘空间使用情况,包括已用空间、可用空间和总容量。这对于监控磁盘空间的使用情况以及判断是否需要进行清理或扩容操作非常有用。

  2. 确定挂载点:df 命令可以显示文件系统的挂载点,即文件系统在目录树中的位置。这对于了解系统中各个文件系统的挂载情况以及确定文件系统的存储位置非常有帮助。

  3. 检查文件系统类型:df 命令还可以显示文件系统的类型,例如 ext4、NTFS 等。这对于了解文件系统的特性以及进行适当的文件系统维护和管理非常有用。

练习案例:

实例1:显示磁盘使用情况

什么是文件系统?什么是挂载?

  1. 文件系统是操作系统用于组织和管理文件的一种机制。它定义了文件和目录的存储方式、访问权限以及元数据(如文件大小、创建时间等)的记录方式。文件系统提供了对文件的读取、写入、删除和修改等操作。
  2. 挂载(Mounting)是指将一个文件系统连接到文件系统树中的特定位置,使得该文件系统中的文件和目录可以在操作系统中被访问和操作。在 Linux 和类 Unix 系统中,文件系统通过挂载的方式来与操作系统进行交互。

实例2:以inode模式来显示磁盘使用情况

命令:df -i

问题:各个文件系统还能新建多少个文件?

inode(索引节点)是文件系统中用于存储文件和目录元数据的数据结构,每个文件和目录都对应一个 inode。

在输出中,关注列名为 "IFree" 的值,它表示文件系统中剩余的可用 inode 数量。根据输出,我们可以看到以下信息:

  • /dev/sda5 文件系统的剩余 inode 数量为 2,401,733。
  • /dev/loop0/dev/loop11 是通过 loop 设备挂载的 snap 文件系统,它们的剩余 inode 数量均为 0。

五、du(查看空间)

命令功能:

Linux du命令也是查看使用空间的,但是与df命令不同的是Linux du命令是对文件和目录磁盘使用的空间的查看,还是和df命令有一些区别的.

应用场景:

  1. 查看目录或文件占用的磁盘空间大小:可以使用 du 命令来查看指定目录或文件所占用的磁盘空间大小
  2. 查找磁盘空间占用较大的文件或目录:可以使用 du 命令来查找磁盘空间占用较大的文件或目录
  3. 监控磁盘空间使用情况:可以结合 watch 命令来实时监控磁盘空间的使用情况

练习案例:

实例1:显示目录或者文件所占空间 

实例2:显示指定文件所占空间


六、free(显示系统内存)

命令功能:

free命令用于显示系统内存的使用情况,包括物理内存和交换空间。它提供了系统内存的总量、已使用量、空闲量以及缓冲区和缓存区的使用情况。

应用场景:

  1. 监控系统内存:使用free命令可以实时监控系统内存的使用情况,了解系统是否存在内存不足的问题。
  2. 调优和故障排查:通过观察系统内存的使用情况,可以判断是否需要进行内存调优,如增加物理内存或调整交换空间的配置。
  3. 检测内存泄漏:如果系统内存使用量持续增加而未释放,可能存在内存泄漏问题。可以使用free命令检测内存使用情况,判断是否有内存泄漏的迹象。
  4. 监控程序内存占用:使用free命令结合其他命令,如ps命令,可以监控各个进程的内存占用情况,找出占用内存较多的程序。
  5. 规划资源分配:通过查看系统内存的使用情况,可以帮助管理员合理规划资源分配,确保系统运行的稳定性和性能。

常用参数:

参数描述
-b 或 --bytes以字节为单位显示内存使用情况
-k 或 --kilo以KB为单位显示内存使用情况
-m 或 --mega以MB为单位显示内存使用情况
-h 或 --human-readable以易读的方式显示内存使用情况(自动选择最合适的单位)
-t 或 --total显示总内存使用情况
-s <秒数> 或 --sleep <秒数>指定free命令的执行间隔时间
-V 或 --version显示free命令的版本信息

练习案例:

实例 1:显示内存使用情况

下面是对这些数值的解释:

total:总计物理内存的大小。

used:已使用多大。

free:可用有多少。

Shared:多个进程共享的内存总额。

Buffers/cached:磁盘缓存的大小。

第三行(-/+ buffers/cached): used:已使用多大。 free:可用有多少。

第四行是交换分区 SWAP 的,也就是我们通常所说的虚拟内存。


七、top(监视系统情况)

命令功能:

        top命令用于实时监视系统的运行情况,包括CPU使用情况、内存占用、进程状态等。它提供了一种交互式的界面,可以动态地显示系统资源的使用情况,并按照不同的指标进行排序。top命令是一个非常强大和灵活的工具,可以帮助用户了解系统的负载情况和性能瓶颈。

应用场景:

  1. 监控系统资源:通过执行top命令,可以实时监视系统的CPU使用情况、内存占用、交换空间使用情况等,从而了解系统的整体负载情况。
  2. 查找高耗资源进程:top命令默认按CPU使用率排序,可以方便地找出当前消耗CPU资源较多的进程,有助于发现造成系统负荷过高的原因。
  3. 观察内存使用情况:top命令可以展示系统中各个进程的内存占用情况,帮助用户了解系统的内存使用状况和内存泄漏情况。
  4. 跟踪进程状态:通过top命令,可以实时跟踪进程的状态,包括进程ID、CPU使用率、内存占用等信息,有助于了解各个进程的运行情况。
  5. 性能分析和优化:通过观察top命令的输出,可以找出系统性能瓶颈,如CPU利用率过高、内存不足等,帮助进行性能调优和资源优化。

常用参数:

参数描述
-d <秒数> 或 --delay=<秒数>指定top命令的刷新间隔时间
-n <次数> 或 --iterations=<次数>指定top命令的执行次数
-u <用户名> 或 --user=<用户名>显示指定用户的进程信息
-p <PID列表> 或 --pid=<PID列表>显示指定进程ID的进程信息
-H 或 --threads显示各个进程的线程信息
-i 或 --idle只显示空闲CPU的信息
-s <字段名称> 或 --sort=<字段名称>按照指定的字段进行排序,如cpu、mem等
-o <字段列表> 或 --cols=<字段列表>指定要显示的字段列表
-b 或 --batch以批处理模式运行top命令,直接输出结果而不需要交互式界面
-v 或 --version显示top命令的版本信息

练习案例:

实例 1:显示进程信息

解析:

第一行,任务队列信息,同 uptime 命令的执行结果,具体参数说明情况如下:

  • 14:06:23 — 当前系统时间
  • up 70 days, 16:44 — 系统已经运行了 70 天 16 小时 44 分钟(在这期间系统没 有重启过的吆!) 2 users — 当前有 2 个用户登录系统
  • load average: 1.15, 1.42, 1.44 — load average 后面的三个数分别是 1 分钟、5 分钟、15 分钟的负载情况。
  • load average 数据是每隔 5 秒钟检查一次活跃的进程数,然后按特定算法计算出的 数值。如果这个数除以逻辑 CPU 的数量,结果高于 5 的时候就表明系统在超负荷运转了。

第二行,Tasks — 任务(进程),具体信息说明如下:

系统现在共有 206 个进程,其中处于运行中的有 1 个,205 个在休眠(sleep), stoped 状态的有 0 个,zombie 状态(僵尸)的有 0 个。

第三行,cpu 状态信息,具体属性说明如下:

5.9%us — 用户空间占用 CPU 的百分比。

3.4% sy — 内核空间占用 CPU 的百分比。

0.0% ni — 改变过优先级的进程占用 CPU 的百分比

90.4% id — 空闲 CPU 百分比

0.0% wa — IO 等待占用 CPU 的百分比

0.0% hi — 硬中断(Hardware IRQ)占用 CPU 的百分比

0.2% si — 软中断(Software Interrupts)占用 CPU 的百分比

第四行,内存状态,具体信息如下:

32949016k total — 物理内存总量(32GB)

14411180k used — 使用中的内存总量(14GB)

18537836k free — 空闲内存总量(18GB)

169884k buffers — 缓存的内存量 (169M)

第五行,swap 交换分区信息,具体信息说明如下:

32764556k total — 交换区总量(32GB)

0k used — 使用的交换区总量(0K)

32764556k free — 空闲交换区总量(32GB)

3612636k cached — 缓冲的交换区总量(3.6GB)

第六行,空行。

第七行以下:各进程(任务)的状态监控,项目列信息说明如下:

PID — 进程

id USER — 进程所有者

PR — 进程优先级

NI — nice 值。负值表示高优先级,正值表示低优先级

VIRT — 进程使用的虚拟内存总量,单位 kb。

VIRT=SWAP+RES RES — 进程使用的、未被换出的物理内存大小,单位 kb。RES=CODE+DATA SHR — 共享内存大小,单位 kb S — 进程状态。

D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸 进程

%CPU — 上次更新到现在的 CPU 时间占用百分比

%MEM — 进程使用的物理内存百分比

TIME+ — 进程使用的 CPU 时间总计,单位 1/100 秒

COMMAND — 进程名称(命令名/命令行)


八、vmstat(显示虚拟内存信息)

命令功能:

        vmstat命令用于报告虚拟内存统计信息,包括系统的整体状态、进程、内存、IO等方面的数据。它提供了对系统性能和资源利用情况的实时监视,并可以帮助用户分析系统瓶颈和性能问题。

应用场景:

  1. 监控系统的整体性能:通过执行vmstat命令,可以实时查看系统的CPU利用率、内存使用情况、磁盘IO、上下文切换次数等,从而了解系统的整体性能状态。
  2. 诊断性能问题:vmstat命令可以提供大量的系统性能指标,如CPU等待时间、内存交换情况、IO延迟等,可以帮助用户找出系统性能瓶颈和性能问题的根本原因。
  3. 监测进程资源利用情况:vmstat命令可以显示每个进程的CPU利用率、内存使用情况、上下文切换次数等信息,有助于了解各个进程的资源占用情况。
  4. 分析内存使用情况:vmstat命令提供了内存和交换空间的详细统计信息,包括空闲内存、缺页次数、交换区使用情况等,可以帮助用户分析系统的内存使用情况和内存性能问题。
  5. 监测磁盘IO活动:通过vmstat命令的磁盘IO统计信息,可以了解磁盘读写速度、IO请求队列长度等,从而监测磁盘IO的性能和负载情况。

常用参数:

参数说明
-a显示所有的虚拟内存统计信息,包括进程、内存、IO等方面的数据。
-s只显示虚拟内存和交换空间的汇总统计信息。
-n设置输出的次数和时间间隔。例如,vmstat -n 5 10表示每隔5秒输出一次统计信息,共输出10次。
-t在输出中添加时间戳,显示每次输出的时间。
-m以MB为单位显示统计信息。
-d仅显示磁盘IO相关的统计信息。
-p指定需要监测的进程号,只输出该进程的统计信息。
-V显示版本号和版权信息。
-h显示帮助信息。

练习案例:

实例 1:显示虚拟内存使用情况,5 秒内 6 次采样

字段说明:

Procs(进程):

r: 运行队列中进程数量

b: 等待 IO 的进程数量

Memory(内存)

swpd: 使用虚拟内存大小

free: 可用内存大小

buff: 用作缓冲的内存大小

cache: 用作缓存的内存大小

Swap: si: 每秒从交换区写到内存的大小

so: 每秒写入交换区的内存大小

IO:(现在的 Linux 版本块的大小为 1024bytes)

bi: 每秒读取的块数 bo: 每秒写入的块数 系统:

in: 每秒中断数,包括时钟中断。 cs: 每秒上下文切换数。

CPU(以百分比表示)

us: 用户进程执行时间(user time)

sy: 系统进程执行时间(system time)

id: 空闲时间(包括 IO 等待时间),中央处理器的空闲时间 。以百分比表示。

wa: 等待 IO 时间

备注:

 如果 r 经常大于 4 ,且 id 经常少于 40,表示 cpu 的负荷很重。如果 pi,po 长期不等于 0,表示内存不足。如果 disk 经常不等于 0, 且在 b 中的队列 大于 3, 表示 io 性能不好。Linux 在具有高稳定性、可靠性的同时,具有很好的可伸 缩性和扩展性,能够针对不同的应用和硬件环境调整,优化出满足当前应用需要的最佳性 能。因此企业在维护 Linux 系统、进行系统调优时,了解系统性能分析工具是至关重要 的。

实例 2:查看系统已经 fork 了多少次

实例 3:查看内存使用的详细信息

实例 4:查看磁盘的读/写

说明: 这些信息主要来自于/proc/diskstats. merged:表示一次来自于合并的写/读请求,一般系统会把多个连接/邻近的读/写请求合 并到一起来操作


九、iostat(统计系统总体性能)

命令功能:

        iostat命令用于报告CPU、磁盘和系统总体性能统计信息,包括磁盘IO、CPU使用率、内存使用率、网络接口等方面的数据。它可以实时监测磁盘IO活动和系统性能指标,并帮助用户找出系统的瓶颈和性能问题。

应用场景:

  1. 监测磁盘IO活动:通过执行iostat命令,可以查看磁盘的读写速度、IO请求队列长度、IO延迟等磁盘IO相关的统计信息,从而监测磁盘IO的性能和负载情况。
  2. 检查CPU利用率: iostat命令可以提供每个CPU核心的利用率,以及整个系统的CPU利用率,有助于了解系统的CPU负载情况。
  3. 分析内存使用情况:iostat命令提供了内存和交换空间的详细统计信息,包括空闲内存、缺页次数、交换区使用情况等,可以帮助用户分析系统的内存使用情况和内存性能问题。
  4. 监测网络接口:通过iostat命令的网络统计信息,可以了解网络接口的传输速度、数据包和错误信息等,有助于监测网络性能和负载情况。
  5. 分析系统性能指标:iostat命令可以提供大量的系统性能指标,包括CPU等待时间、磁盘IO延迟、上下文切换次数等,可以帮助用户找出系统性能瓶颈和性能问题的根本原因。

命令格式

iostat[参数][时间][次数]

常用参数:

参数说明
-c显示CPU利用率统计信息。
-d显示磁盘IO统计信息。
-k以KB为单位显示统计信息。
-m以MB为单位显示统计信息。
-p指定需要监测的设备号,只输出该设备的统计信息。
-t在输出中添加时间戳,显示每次输出的时间。
-x显示扩展的统计信息,包括磁盘IOPS、传输速率、IO等方面的数据。
-y以柱状图形式显示统计信息。
-V显示版本号和版权信息。
-h显示帮助信息。

练习案例:

实例 1:显示所有设备负载情况

说明:

cpu属性值说明:

%user:CPU处在用户模式下的时间百分比。

%nice:用户进程优先级调整消耗的cpu比例。

%system:CPU处在系统模式下的时间百分比。

%iowait:CPU等待输入输出完成时间的百分比。

%idle:CPU空闲时间百分比。

备注:如果%iowait的值过高,表示硬盘存在I/O瓶颈,%idle值高,表示CPU较空闲,如果%idle值高但系统响应慢时,有可能是CPU等待分配内存,此时应加大内存容量。%idle值如果持续低于10,那么系统的CPU处理能力相对较低,表明系统中最需要解决的资源是CPU。

disk属性值说明:

rrqm/s:  每秒进行 merge 的读操作数目。即 rmerge/s

wrqm/s:  每秒进行 merge 的写操作数目。即 wmerge/s

r/s:  每秒完成的读 I/O 设备次数。即 rio/s

w/s:  每秒完成的写 I/O 设备次数。即 wio/s

rsec/s:  每秒读扇区数。即 rsect/s

wsec/s:  每秒写扇区数。即 wsect/s

rkB/s:  每秒读K字节数。是 rsect/s 的一半,因为每扇区大小为512字节。

wkB/s:  每秒写K字节数。是 wsect/s 的一半。

avgrq-sz:  平均每次设备I/O操作的数据大小 (扇区)。

avgqu-sz:  平均I/O队列长度。

await:  平均每次设备I/O操作的等待时间 (毫秒)。

svctm: 平均每次设备I/O操作的服务时间 (毫秒)。

%util:  一秒中有百分之多少的时间用于 I/O 操作,即被io消耗的cpu百分比

备注:如果 %util 接近 100%,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘可能存在瓶颈。如果 svctm 比较接近 await,说明 I/O 几乎没有等待时间;如果 await 远大于 svctm,说明I/O 队列太长,io响应太慢,则需要进行必要优化。如果avgqu-sz比较大,也表示有当量io在等待。

实例2:显示指定磁盘信息

实例 3:显示 tty 和 Cpu 信息

问题:如果做某数据库压力测试,发现 iostat 显示 idle70%以上,iowait10%,请问是不是有 问题?两个数据各自调整后呢?比如 idle0.4%,iowait10%

  1. 进行数据库压力测试时,iostat 的输出数据可以帮助我们了解磁盘的负载情 况。其中,%idle 表示 CPU 空闲时间占总时间的比例,而 %iowait 则表示 CPU 等待 I/O 完成的时间占总时间的比例。
  2. 如果在进行数据库压力测试时,%idle 高达 70% 以上,说明 CPU 空闲时间非 常充足,这可能是由于数据库操作的主要瓶颈不在 CPU 上,而是在磁盘 I/O 上。而 %iowait 为 10%,说明 CPU 在等待 I/O 完成的时间占总时间的比例相 对较高,这也表明磁盘 I/O 是一个比较瓶颈的问题。
  3. 如果将 %idle 调整为 0.4%,说明 CPU 大部分时间都在忙碌工作,而 %iowait 保持在 10%,则表明磁盘 I/O 仍然是一个比较瓶颈的问题。这时候,我们可以 考虑采取一些优化措施,例如增加磁盘数量、使用 RAID 等方式来提高磁盘 I/O 性能。
  4. 需要注意的是,iostat 只能提供瞬时的系统状况数据,如果想要更全面、深入 地了解系统的性能状况,需要结合其他工具和指标进行综合分析。


十、sort命令(文本文件排序)

命令功能:

sort命令用于对文本文件进行排序,默认按照字典顺序(ASCII码顺序)对文本行进行排序。它可以根据指定的字段、列或者特定规则进行排序,并且可以实现升序或者降序排列。

应用场景:

  1. 排序文件:最常见的用途是对文本文件进行排序。例如,对一个包含学生成绩的文件按照成绩从高到低进行排序,可以使用sort命令。
  2. 提取重复行:通过sort命令结合uniq命令,可以提取出文件中的重复行,或者统计每个行出现的次数。
  3. 按字段排序:sort命令支持按照指定字段进行排序。例如,对一个包含学生信息的CSV文件,可以按照学生姓名或者学生年龄字段进行排序。
  4. 特定规则排序:sort命令支持使用不同的排序规则,如忽略大小写、按照数字顺序等。这对于需要特定排序方式的场景很有用。
  5. 批量处理数据:sort命令可以通过重定向来处理大量的文本数据。可以将多个文件排序后合并,或者将排序结果存储到一个新文件中。

常用参数:

参数说明
-b忽略每行前面开始处的空格字符。
-d按照字典顺序进行排序,忽略非字母数字字符。
-f忽略大小写,按照字典顺序进行排序。
-g按照通用数值进行排序,支持指数表示法(如1K、1M)和小数。
-n按照数值进行排序,支持整数和小数。
-k指定排序的字段,可以按照字段位置或者列范围进行排序。例如,-k 2表示按照第二个字段排序。
-r反向排序,即降序排列。
-t指定字段分隔符,默认使用制表符。
--ignore-case忽略大小写进行排序,与-f参数功能相同。
--numeric-sort按照数值进行排序,与-n参数功能相同。

练习案例:

说明./etc/passwd 是 Linux 中的重要文件,保持了用户相关信息,看看自己所用账户信息在 哪一行?包含哪些内容?

在 Linux 系统中,/etc/passwd 是一个重要的文件,它存储了系统上所有用户账户的相关 信息。

问题:cat 到底能做什么?

它主要用于以下几个方面:

  • 查看文件内容:cat 最常见的用途是将文件的内容输出到终端(标准输 出)。通过简单地执行 cat filename 命令,你可以查看文件的内容。
  • 创建文件:结合重定向操作符 >,cat 可以创建新文件并将内容写入其 中。通过执行 cat > filename 命令,你可以输入文本内容,并将其保 存到指定的文件中。
  • 合并文件:cat 可以将多个文件的内容合并为一个文件。通过执行 cat file1 file2 > mergedfile 命令,你可以将 file1 和 file2 的内容合并 到名为 mergedfile 的文件中。
  • 追加文件内容:通过结合重定向操作符 >>,cat 可以将一个文件的内容 追加到另一个文件的末尾。通过执行 cat file2 >> file1 命令,你可 以将 file2 的内容追加到 file1 的末尾。
  • 显示行号:通过使用 -n 选项,cat 可以显示文件的内容,并在每一行前 面添加行号。通过执行 cat -n filename 命令,你可以查看带有行号的 文件内容

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Alphamilk

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值