【Linux | Shell命令】bash shell 进程、磁盘、文件处理命令

news2025/1/8 5:26:41

目录

  • 🎄一、概述
  • 🎄二、进程相关命令
    • ✨2.1 ps 命令 —— 查看进程
    • ✨2.2 top 命令 —— 实时监测进程
    • ✨2.3 kill、pkill 命令 —— 结束进程
  • 🎄三、磁盘相关命令
    • ✨3.1 mount、umount 命令 —— 挂载、卸载命令
    • ✨3.2 df 命令 —— 查看磁盘空间
    • ✨3.3 du 命令 —— 查看特定目录磁盘空间
  • 🎄四、处理数据文件相关命令
    • ✨4.1 sort 命令 —— 数据排序
    • ✨4.2 grep 命令 —— 数据搜索
  • 🎄五、总结


在这里插入图片描述

🎄一、概述

上篇文章 bash shell 基础命令 中,介绍了一些与目录、文件相关的 shell 命令,本文继续介绍其他与进程、磁盘、排序、归档相关的命令,读者可以在自己的Linux系统下,实操这些命令,进而收悉并掌握这些命令。本文是一篇学习笔记,很多内容是参考了《Linux命令行与shell脚本编程大全-第四版》。
在这里插入图片描述

在这里插入图片描述

🎄二、进程相关命令

在 Linux 系统中,最难缠的一项任务是跟踪运行在系统中的程序,尤其是图形化桌面集成了大量的程序来生成一个完整的桌面环境。系统中始终运行着大量的程序。

✨2.1 ps 命令 —— 查看进程

当程序在系统中运行时,它被称为进程( process)。要想监测这些进程,必须熟悉 ps 命令的用法。 ps 命令堪比工具中的瑞士军刀,能够输出系统中运行的所有程序的大量信息。
默认的情况下,ps并不会输出太多信息

wkd@ubuntu:~$ ps
  PID TTY          TIME CMD
111693 pts/10   00:00:00 bash
111707 pts/10   00:00:00 ps
wkd@ubuntu:~$ 

也没什么特别之处。 ps 命令默认只显示运行在当前终端中属于当前用户的那些进程。
Linux 系统中使用的 GNU ps 命令支持以下 3 种类型的命令行选项:

  • Unix 风格选项,选项前加单连字符;
  • BSD 风格选项,选项前不加连字符;
  • GNU 长选项,选项前加双连字符。

1.Unix 风格选项
如果需要查看系统中运行的所有进程,可以使用-ef 选项组合,使用ps -ef,读者可以自己在Linux系统试一下。

  • -e 选项指定显示系统中运行的所有进程;
  • -f 选项则扩充输出内容以显示一些有用的信息列。
wkd@ubuntu:~$ ps -ef
UID         PID   PPID  C STIME TTY          TIME CMD
root          1      0  0 Jun14 ?        00:00:01 /sbin/init
root          2      0  0 Jun14 ?        00:00:00 [kthreadd]
root          3      2  0 Jun14 ?        00:02:04 [ksoftirqd/0]
root          5      2  0 Jun14 ?        00:00:00 [kworker/0:0H]
root          7      2  0 Jun14 ?        00:27:41 [rcu_sched]

输出信息每列的解释:

  • UID:启动该进程的用户。
  • PID:进程 ID。
  • PPID:父进程的 PID(如果该进程是由另一个进程启动的)。
  • C:进程生命期中的 CPU 利用率。
  • STIME:进程启动时的系统时间。
  • TTY:进程是从哪个终端设备启动的。
  • TIME:运行进程的累计 CPU 时间。
  • CMD:启动的程序名称。

如果还想获得更多的信息,可以使用-l 选项,产生长格式输出。

wkd@ubuntu:~$ ps -l
F S   UID    PID   PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
4 S  1001 111693 111692  0  80   0 -  6807 wait   pts/10   00:00:00 bash
0 R  1001 111769 111693  0  80   0 -  3557 -      pts/10   00:00:00 ps
wkd@ubuntu:~$

-l 选项多的几列输出解释:

  • F:内核分配给进程的系统标志。
  • S:进程的状态( O 代表正在运行; S 代表在休眠; R 代表可运行,正等待运行; Z 代表
    僵化,已终止但找不到其父进程; T 代表停止)。
  • PRI:进程的优先级(数字越大,优先级越低)。
  • NI:谦让度( nice),用于决定优先级。
  • ADDR:进程的内存地址。
  • SZ:进程被换出时所需交换空间的大致大小。
  • WCHAN:进程休眠的内核函数地址。

2.BSD 风格选项
在使用 BSD 风格的选项时, ps 命令会自动改变输出以模仿 BSD 格式。下面是使用 l 选项的输出。

wkd@ubuntu:~$ ps l
F   UID    PID   PPID PRI  NI    VSZ   RSS WCHAN  STAT TTY        TIME COMMAND
4  1001 111693 111692  20   0  27228  5784 wait   S    pts/10     0:00 bash
0  1001 111796 111693  20   0  14228  2276 -      R+   pts/10     0:00 ps l
wkd@ubuntu:~$ 

输出列解释:

  • VSZ:进程占用的虚拟内存大小(以 KB 为单位)。
  • RSS:进程在未被交换出时占用的物理内存大小。
  • STAT:代表当前进程状态的多字符状态码。
    状态的第一个字符表明进程是在休眠、运行还是等待。
    第二个字符进一步说明了进程的状态:
    <:该进程以高优先级运行。
    N:该进程以低优先级运行。
    L:该进程有锁定在内存中的页面。
    s:该进程是控制进程。
    l:该进程拥有多线程。
    +:该进程在前台运行。

3.GNU 长选项

选项解释
–deselect显示除命令行中列出的进程之外的其他进程
–Group grplist显示组 ID 在 grplist 列表中的进程
–User userlist显示用户 ID 在 userlist 列表中的进程
–group grplist显示有效组 ID 在 grplist 列表中的进程
–user userlist显示有效用户 ID 在 userlist 列表中的进程
–pid pidlist显示 pid 在 pidlist 列表中的进程
–ppid pidlist显示父 pid 在 pidlist 列表中的进程
–sid sidlist显示会话 ID 在 sidlist 列表中的进程
–tty ttylist显示终端设备 ID 在 ttylist 列表中的进程
–format format仅显示由 format 指定的列
–context显示额外的安全信息
–cols n将屏幕宽度设置为 n 列
–columns n将屏幕宽度设置为 n 列
–cumulative包含已停止的子进程的信息
–forest用层级结构显示出进程和父进程之间的关系
–headers在每页输出中都显示列名
–no-headers不显示列名
–lines n将屏幕高度设置为 n 行
–rows n将屏幕高度设置为 n 行
–sort order指定用于排序输出的列
–width n将屏幕宽度设置为 n 列
–help显示帮助信息
–info显示调试信息
–version显示 ps 命令的版本号

✨2.2 top 命令 —— 实时监测进程

top 命令也可以显示进程信息,但采用的是实时方式。直接在命令行输入top,不带任何参数,显示结果如下图:
在这里插入图片描述
输出的第一部分显示的是系统概况:

  • 第一行显示了当前时间、系统的运行时长、登录的用户数以及系统的平均负载。平均负载最近 1 分钟、 5 分钟和15 分钟的平均负载,由于进程短期的突发性活动,最近 1 分钟的高负载值也很常见,如果近 15 分钟内的平均负载都很高,就说明系统可能有问题了。
  • 第二行显示了进程( top 称其为 task)概况:多少进程处于运行、休眠、停止以及僵化状态(僵化状态指进程已结束,但其父进程没有响应)
  • 第三行显示了 CPU 概况。 top 会根据进程的属主(用户或是系统)和进程的状态(运行、
    空闲或等待)将 CPU 利用率分成几类输出。
  • 后面两行详细说明了系统内存的状态。前一行显示了系统的物理内存状态:总共有多少内存、当前用了多少,以及还有多少空闲。后一行显示了系统交换空间(如果分配了的话)的状态
  • 最后一部分显示了当前处于运行状态的进程的详细列表,有些列跟 ps 命令的输出类似。
    PID:进程的 PID。
    USER:进程属主的用户名。
    PR:进程的优先级。
    NI:进程的谦让度。
    VIRT:进程占用的虚拟内存总量。
    RES:进程占用的物理内存总量。
    SHR:进程和其他进程共享的内存总量。
    S:进程的状态(D:可中断的休眠, R:运行, S:休眠, T:被跟踪或停止,Z:僵化)。
    %CPU:进程使用的 CPU 时间比例。
    %MEM:进程使用的可用物理内存比例。
    TIME+:自进程启动到目前为止所占用的 CPU 时间总量。
    COMMAND:进程所对应的命令行名称,也就是启动的程序名。

✨2.3 kill、pkill 命令 —— 结束进程

kill 命令可以通过 PID 向进程发送信号。在默认情况下, kill 命令会向命令行中列出的所有 PID 发送 TERM 信号。
可以使用 kill pid号 来结束指定的pid号对应的进程;
如果有些进程接收kill命令发送的 TERM 信号后,仍不结束,可以使用 -s 选项发送其他信号,如:kill -s HUP pid号

pkill 命令可以使用程序名代替 PID 来终止进程,

在这里插入图片描述

🎄三、磁盘相关命令

✨3.1 mount、umount 命令 —— 挂载、卸载命令

用于挂载存储设备的命令叫作 mount。在默认情况下, mount 命令会输出当前系统已挂载的设备列表。
在这里插入图片描述
-t 选项可以指定某个类型,输入 mount -t ext4 ,只显示 ext4 类型
在这里插入图片描述
下面是手动挂载设备的基本命令:

mount -t type  设备文件  挂载的目录

例如,手动将 U 盘/dev/sdb1 挂载到/media/disk,可以使用命令:mount -t vfat /dev/sdb1 /media/disk

移除可移动设备时,不能直接将设备拔下,应该先卸载。卸载设备的命令是 umount,umount 命令的格式如下:

umount [挂载的目录 | 设备文件 ]

umount 命令支持通过设备文件或者挂载点来指定要卸载的设备。如果有任何程序正在使用设备上的文件,则系统将不允许卸载该设备。

✨3.2 df 命令 —— 查看磁盘空间

有时需要知道在某台设备上还有多少磁盘空间。 df 命令可以方便地查看所有已挂载磁盘的使用情况,可以使用-t 选项来过滤类型

在这里插入图片描述

使用 -h 选项会以人类易读( humanreadable)的形式显示磁盘空间:
在这里插入图片描述

✨3.3 du 命令 —— 查看特定目录磁盘空间

du 命令可以显示某个特定目录(默认情况下是当前目录)的磁盘使用情况。
在默认情况下, du 命令会显示当前目录下所有的文件、目录和子目录的磁盘使用情况,并以磁盘块为单位来表明每个文件或目录占用了多大存储空间。

wkd@ubuntu:~$ du
4       ./Templates
8       ./.cache/logrotate
8       ./.cache/sso
12      ./.cache/update-manager-core
4       ./.cache/software-center/rnrclient
20      ./.cache/software-center/software-center-agent.db.tmp
4       ./.cache/software-center/icons
4       ./.cache/software-center/piston-helper
40      ./.cache/software-center
344     ./.cache/wallpaper
20      ./.cache/webkit/icondatabase
24      ./.cache/webkit
20      ./.cache/ibus/bus
24      ./.cache/ibus
116     ./.cache/compizconfig-1
148     ./.cache/upstart
780     ./.cache
4       ./Downloads
4       ./Pictures
4       ./Music
4       ./Desktop
4       ./Videos
4       ./Documents
4       ./Public
1492    .

每行最左侧的数字是每个文件或目录所占用的磁盘块数。注意,这个列表是从目录层级的最底部开始,然后沿着其中包含的文件和子目录逐级向上的。
下面这些选项能让 du 命令的输出更加清晰易读。

  • -c:显示所有已列出文件的总大小。
  • -h:按人类易读格式输出大小,分别用 K 表示千字节、 M 表示兆字节、 G 表示吉字节。
  • -s:输出每个参数的汇总信息

在这里插入图片描述

🎄四、处理数据文件相关命令

✨4.1 sort 命令 —— 数据排序

sort 命令会依据会话所指定的默认语言的排序规则来对文本文件中的数据行进行排序。
默认情况下,按字符排序;其他选项如表:

选项长 选 项描述
-b–ignore-leading-blanks排序时忽略起始的空白字符
-C–check=quiet不排序,如果数据无序也不要报告
-c–check不排序,但检查输入数据是否有序,无序的话就报告
-d–dictionary-order仅考虑空白字符和字母数字字符,不考虑特殊字符
-f–ignore-case大写字母默认先出现,该选项会忽略大小写
-g–general-numeric-sort使用一般数值进行排序
-i–ignore-nonprinting在排序时忽略不可打印字符
-k–key=POS1[,POS2]排序键从 POS1 位置开始,到 POS2 位置结束(如果指定了 POS2的话)
-M–month-sort用三字符的月份名按月份排序
-m–merge合并两个已排序数据文件
-n–numeric-sort将字符串按数值意义排序
-o–output=file将排序结果写入指定文件
-R–random-sort根据随机哈希排序
-R–random-source=FILE指定-R 选项用到的随机字节文件
-r–reverse逆序排序(升序变成降序)
-S–buffer-size=SIZE指定使用的内存大小
-s–stable 禁止 last-resort比较,实现稳定排序
-T–temporary-directory=DIR指定用于保存临时工作文件的目录
-t–field-separator=SEP指定字段分隔符
-u–unique和-c 选项合用时,检查严格排序;不和-c 选项合用时,相同行仅输出一次①
-z–zero-terminated在行尾使用 NULL 字符代替换行符

✨4.2 grep 命令 —— 数据搜索

grep 命令会在输入或指定文件中逐行搜索匹配指定模式的文本。
grep 命令的格式如下:

grep [options] pattern [file]

一些常用选项options:

  • -n:显示行号
  • -c:只显示含有匹配的模式的行数;
  • -w:全词匹配,例如,grep apple -n ./file时,只有搜到apple,而不会搜到apples
  • -R:在目录中递归搜索

在这里插入图片描述

🎄五、总结

本文主要介绍一些shell常用的命令:ps、top、kill、pkill、mount、umount、df 、du、sort、grep等等
在这里插入图片描述
如果文章有帮助的话,点赞👍、收藏⭐,支持一波,谢谢 😁😁😁

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

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

相关文章

DCompute链下计算外包:只EVM就足够了么?

1. 引言 当前的以太坊L2扩容方案主要有&#xff1a; Optimistic RollupzkRollup&#xff1a;如Polygon zkEVM、Scroll等 这些L2方案仍是基于EVM的。 但游戏、链上订单簿、Web3社交、机器学习、基因组建模等高性能应用是compute-heavy的&#xff0c;对于L2 EVM来说仍是昂贵的…

深入理解 Golang: Goroutine 协程

进程用来分配内存空间&#xff0c;是操作系统分配资源的最小单位&#xff1b;线程用来分配 CPU 时间&#xff0c;多个线程共享内存空间&#xff0c;是操作系统或 CPU 调度的最小单位&#xff1b;协程用来精细利用线程。协程就是将一段程序的运行状态打包&#xff0c;可以在线程…

idea连接MYSQL报错汇总

idea连接MYSQL报错汇总 【The last packet sent successfully to the server was 0 milliseconds ago.The driver has not received any packets from the server.】 原因&#xff1a;mysql57 运行在非默认端口号 解决&#xff1a; 1.测试本地连接mysqsl57 打开C:\ProgramDa…

管理类联考——数学——技巧篇——公式——函数、方程与不等式

集合 A 有 n 个元素&#xff0c;则集合 A 的子集个数为 2 n 2^n 2n个&#xff0c;真子集个数为 2 n − 1 2^n-1 2n−1个&#xff0c;非空子集个数为 2 n − 1 2^n-1 2n−1个&#xff0c;非空真子集个数为 2 n − 2 2^n-2 2n−2个。抛物线 y a x 2 b x c yax^2bxc yax2bxc与轴…

ST STM32H723ZGTx - NUCLEO-H723ZG DMAMUX_RequestGen例程重现/消化/改进

文章目录 ST STM32H723ZGTx - NUCLEO-H723ZG DMAMUX_RequestGen例程重现/消化/改进概述笔记问题的难点为了确定程序流程, 加入ITM将CubeMX升级到最新将CubeMX说明书翻一下CubeMX配置芯片功能实验工程主要代码.sct文件main.c中断实现文件 stm32h7xx_it.c.ioc补充END ST STM32H72…

探索网络通信核心技术,手写TCPIP用户态协议栈,让性能飙升起来!

一、DPDK简介 DPDK&#xff08;Data Plane Development Kit&#xff09;是一个开源的数据平面开发工具包&#xff0c;它提供了一组C语言库和驱动程序&#xff0c;用于快速开发高性能的数据平面应用程序。DPDK使用用户空间的方式来实现网络数据包处理&#xff0c;从而避免了传统…

海气相互作用 - 全球水循环过程及其量级

全球水循环过程及其量级 单位&#xff1a;Sv106m3/s&#xff0c;大气/陆地/海洋(103 km3)径流1.3 Sv≈台湾暖流1.1 Sv≈白令海峡0.9-1.1 Sv 从涡度平衡的角度说明为什么大洋强化发生在西边界而非东边界 有且只有在大洋西边界强化&#xff0c;才可以使得摩擦力产生一个正的涡…

【线程池】Java线程池的内部类Worker详解

目录 一、简介 二、Worker类对象的类图 三、Worker类对象的解释 4.2 Worker继承自AQS有何意义&#xff1f; 四、Worker的主要代码 4.1 运行worker 4.2 worker和ThreadPool的关系 五、Worker源码分析 5.1 Worker实现接口Runnable&#xff0c;执行run方法 5.2 核心方法…

Mysql主从原理

1.为什么要主从&#xff1f; 什么东西都有丢失或损坏的可能&#xff0c;所以备份是一个重要的手段。 2.备份机制&#xff1f; 对于主从库的分工: "主写从读" 中继日志文件我的理解是一个大的临时区&#xff0c;主库推送过来的数据不用同步进行到从库&#xff0c;这…

零基础学会Python编程——数据也分类:常见数据类型

作者简介&#xff1a;一名云计算网络运维人员、每天分享网络与运维的技术与干货。 座右铭&#xff1a;低头赶路&#xff0c;敬事如仪 个人主页&#xff1a;网络豆的主页​​​​​​ 目录 ​编辑 前言 学习目标 一.常见数据类型 1.数字类型 &#xff08;1&#xff09…

Can’t connect to MySQL server on ‘localhost’ (10061)

标题:Can’t connect to MySQL server on ‘localhost’ (10061) 一种情况是&#xff0c;mysql服务没有开启&#xff0c; 解决方式&#xff1a;以管理员身份进入cmd&#xff0c;然后输入net start mysql&#xff0c;注意这里的mysql&#xff0c;指的是你的mysql服务的名称&am…

万字长文,SpringSecurity实现权限系统设计

RBAC权限分析 RBAC 全称为基于角色的权限控制&#xff0c;本段将会从什么是RBAC&#xff0c;模型分类&#xff0c;什么是权限&#xff0c;用户组的使用&#xff0c;实例分析等几个方面阐述RBAC 思维导图 绘制思维导图如下 什么是RBAC RBAC 全称为用户角色权限控制&#xff…

MySQL笔记之一致性视图与MVCC实现

一致性读视图是InnoDB在实现MVCC用到的虚拟结构&#xff0c;用于读提交&#xff08;RC&#xff09;和可重复度&#xff08;RR&#xff09;隔离级别的实现。 一致性视图没有物理结构&#xff0c;主要是在事务执行期间用来定义该事物可以看到什么数据。 一、Read View 事务在正…

怎样高标准地个性化您的电商业务?教你一招搞定

怎样高标准地个性化您的电商业务&#xff1f;教你一招搞定&#xff01; 想要增加销售额和打造一个客户喜爱的品牌&#xff0c;电子商务个性化是您成功的关键。但是&#xff0c;个性化您的在线购物体验的各个方面这个过程简直令人生畏。但是别怕&#xff0c;我将在这里告诉大家利…

计算机 - - - windows电脑搭建FTP局域网文件传输服务器

控制面板&#xff0c;打开程序和功能&#xff0c;启用或关闭Windows功能。 勾选这几个 然后点确定&#xff0c;应用更改成功后重启电脑生效。 打开IIS管理器。 添加ftp站点。 输入ftp站点名称&#xff0c;选择文件存放的物理路径。 ip地址设置为当前电脑的ip地址&#x…

重识Flutter — 探索Slivers的奇妙世界(综合实例)

前言 在前三篇文章中&#xff0c;从为什么要使用Sliver&#xff0c;再根据使用频率逐个解析Slivers系列的组件。相信您已经入门了Sliver的世界。为了更好的将Slivers相关的组件结合起来使用&#xff0c;本文将通过一个综合的案例来帮助你理解。 源代码&#xff1a;https://ww…

【动态规划】LeetCode 583. 两个字符串的删除操作 Java

583. 两个字符串的删除操作 我的代码&#xff0c;错误代码&#xff0c;只考虑到了字母出现的次数&#xff0c;没有考虑到两个字符串中字母出现的顺序 class Solution {public int minDistance(String word1, String word2) {int[] arr1 new int[26];int[] arr2 new int[26];…

Fiddler抓包工具笔记

一、简介 Fiddler代理相当于中介的角色 快捷键ShiftF5去缓存刷新 二、抓包 1. 设置过滤器 没有设置过滤器的话&#xff0c;会抓所有的包&#xff0c;非常乱会混淆 隐藏包含这些内容的URL 2. 快速定位到需要的包 点击&#xff1a;Webforms菜单 界面分析&#xff1a; …

SQlite3 编译

参考博客&#xff1a;https://blog.csdn.net/flowerspring/article/details/121268403 1.下载C源码以及def文件https://www.sqlite.org/download.html 2. 下载完成之后解压 sqlite-amalgamation获取C源码&#xff0c;解压sqlite-dll-win32-xx获取里面的def文件。 3.新建sqlite…

前端vue入门(纯代码)18

不管何时何地&#xff0c;永远保持热爱&#xff0c;永远积极向上&#xff01;&#xff01;&#xff01; 【20.尚硅谷GitHub搜索案例_vue-resource实现】 1.vue-resource vue-resource 是 vue 中一个用于发送请求的插件。 vue 发送请求推荐使用 axios &#xff0c;vue-resourc…