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

这篇具有很好参考价值的文章主要介绍了【Linux | Shell命令】bash shell 进程、磁盘、文件处理命令。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


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

🎄一、概述

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

【Linux | Shell命令】bash 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,不带任何参数,显示结果如下图:
【Linux | Shell命令】bash shell 进程、磁盘、文件处理命令
输出的第一部分显示的是系统概况:

  • 第一行显示了当前时间、系统的运行时长、登录的用户数以及系统的平均负载。平均负载最近 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 来终止进程,

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

🎄三、磁盘相关命令

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

用于挂载存储设备的命令叫作 mount。在默认情况下, mount 命令会输出当前系统已挂载的设备列表。
【Linux | Shell命令】bash shell 进程、磁盘、文件处理命令
-t 选项可以指定某个类型,输入 mount -t ext4 ,只显示 ext4 类型
【Linux | Shell命令】bash shell 进程、磁盘、文件处理命令
下面是手动挂载设备的基本命令:

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

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

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

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

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

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

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

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

使用 -h 选项会以人类易读( humanreadable)的形式显示磁盘空间:
【Linux | Shell命令】bash shell 进程、磁盘、文件处理命令

✨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:输出每个参数的汇总信息

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

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

✨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:在目录中递归搜索

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

🎄五、总结

本文主要介绍一些shell常用的命令:ps、top、kill、pkill、mount、umount、df 、du、sort、grep等等
【Linux | Shell命令】bash shell 进程、磁盘、文件处理命令
如果文章有帮助的话,点赞👍、收藏⭐,支持一波,谢谢 😁😁😁文章来源地址https://www.toymoban.com/news/detail-515159.html

到了这里,关于【Linux | Shell命令】bash shell 进程、磁盘、文件处理命令的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux和Shell笔记-2基本的bash shell命令

    与windows前面标明盘符不同,Linux采用了将文件存储在单个目录结构中,这个目录被称为 虚拟目录 。 Linux使用正斜线( / )而不是反斜线( ) 在文件路径中划分目录。Linux中反斜线用来标识转义字符,因此不能用在文件路径里,这一点和windows不同。 常用的目录名称以及功能介绍

    2024年02月16日
    浏览(38)
  • BASH shell脚本篇5——文件处理

     这篇文章介绍下BASH shell中的文件处理。之前有介绍过shell的其它命令,请参考: BASH shell脚本篇1——基本命令 BASH shell脚本篇2——条件命令 BASH shell脚本篇3——字符串处理 BASH shell脚本篇4——函数 在Bash Shell脚本中,可以使用多种方法来对文件进行操作,包括读取文件或写

    2024年02月07日
    浏览(30)
  • lv3 嵌入式开发-3 linux shell命令(文件搜索、文件处理、压缩)

    目录 1 查看文件相关命令 1.1 常用命令 1.2 硬链接和软链接 2 文件搜索相关命令 2.1 查找文件命令 2.2 查找文件内容命令 2.3 其他相关命令 3 文件处理相关命令 3.1 cut  3.2 sed 过滤 3.3 awk 匹配 4 解压缩相关命令 4.1 解压缩文件的意义 4.2 解压缩相关命令 cat - concatenate files and pri

    2024年02月10日
    浏览(42)
  • 【Shell 命令集合 磁盘管理 】Linux 取消挂载 umount命令使用教程

    Shell 命令专栏:Linux Shell 命令全解析 umount命令用于卸载(取消挂载)已经挂载的文件系统,使其从文件系统树中移除。它用于断开文件系统与指定挂载点之间的连接,以便安全地卸载文件系统。 在Linux中,文件系统可以通过挂载的方式与特定的目录关联起来。挂载是将一个文

    2024年02月08日
    浏览(37)
  • 【Shell 命令集合 磁盘管理 】Linux 创建目录 mkdir 命令使用指南

    Shell 命令专栏:Linux Shell 命令全解析 mkdir命令是Linux系统中的一个用于创建目录的命令。它的作用是在指定的路径下创建一个新的目录。 使用mkdir命令可以方便地创建一个空的目录,该目录可以用于存储文件或其他目录。通过指定路径参数,可以在当前工作目录或其他指定目

    2024年02月08日
    浏览(45)
  • 【Shell 命令集合 系统管理 】⭐⭐Linux 让进程休眠 sleep命令 使用指南

    Shell 命令专栏:Linux Shell 命令全解析 在Linux中,sleep命令用于在一段指定的时间内暂停当前进程的执行。它的作用是让进程休眠,暂停执行一段时间,然后继续执行后续的指令。 使用sleep命令可以在脚本中设置延迟,以便在执行后续操作之前等待一段时间。这对于需要在特定

    2024年02月07日
    浏览(50)
  • linux shell pgrep命令使用方法(pgrep指令)获取进程号、统计进程数量(学会区分Linux进程进程名)

    按照我之前,在脚本中,获取除脚本自身进程之外与脚本同名进程号的方法: 这种方法有很大问题,莫名奇妙的,它无法正常过滤掉grep的进程(这里面还有点复杂,我一时半会也搞不明白咋回事,据说是grep会开子进程,并非grep那个子进程,而是开了一个与脚本相同的进程,

    2024年02月07日
    浏览(32)
  • Shell脚本中文英文多语言国际化和命令行批处理(bash sh cmd bat)中定义函数的简单写法

    有时候为了方便别人使用,我们会选择去编写各种各样的命令行脚本:给Windows用户编写 .bat cmd批处理脚本,给macOS、Linux用户编写 .sh bash shell脚本。 面向国内用户当然应当首选中文作为脚本的显示语言,如果还要支持海外用户使用,那么能提供国际化多语言( i18n )支持那是

    2024年02月08日
    浏览(44)
  • 【Linux】Linux环境变量的理解 --- 命令行参数、shell子进程、环境变量、本地变量…

    加油布鲁斯,你能行的! 1. 我们平常所用的Linux指令其实也是可执行程序,和我们自己写的二进制程序没什么两样,那么为什么在执行自己的程序的时候需要加上./,而执行这些系统提供的指令(可执行程序),不需要加上./呢? 2. 要执行一个程序或者指令,必须先找到这个

    2024年01月16日
    浏览(41)
  • Java进程ProcessBuilder类的介绍及使用,ProcessBuilder调用外部程序执行shell命令Linux命令

    目录 ProcessBuilder类的介绍及使用 【前言】 【正文】 --构造方法-- --常用方法-- --使用技巧-- --调用本地Shell命令,实例-- 【总结】 【注意】         在做一个项目的时候需要用到运行时动态执行JAVA命令,一开始的思路是运行时生成bat脚本,然后通过Runtime类的exec方法之行

    2024年02月09日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包