更多的 bash shell 命令

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

本章内容:

  • 进程管理
  • 获取磁盘统计信息
  • 挂载新磁盘
  • 数据排序
  • 数据归档

一、监测进程

1.1 探查进程

当程序在系统中运行时,它被称为进程(process),想要监测这些进程,就必须要熟悉 ps 命令。

  • ps 命令默认只显示运行在当前终端中属于当前用户的那些进程。

  • ps 常用命令选项

选项 描述
-A 显示所有进程。
-w 采用宽输出格式,不限宽度显示。
-au 显示较详细的资讯。
-aux 显示所有包含其他使用者的进程。
-ef -e:指定显示系统中运行的所有进程 ;-f:扩充输出内容以显示一些有用的信息列。
  • 应用示例
# 1.输出系统中运行的所有进程的信息列。
[root@VM-8-11-centos ~]# ps -ef
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0  2022 ?        00:11:58 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root         2     0  0  2022 ?        00:00:06 [kthreadd]
root         4     2  0  2022 ?        00:00:00 [kworker/0:0H]
...
  • UID:启动进程的用户。
  • PID:进程ID。
  • PPID:父进程的PID(如果该进程是由另一个进程启动的)。
  • C:进程生命期中的CPU利用率。
  • STIME:进程启动时的系统时间。
  • TTY:进程是从哪个终端设备启动的。
  • TIME:运行进程的累计CPU时间。
  • CMD:启动的程序名称。

1.2 实时监测进程

ps 命令虽然在收集系统中运行进程的信息时非常有用,但它只能显示某个特定时间点的信息。如果想观察那些被频繁换入和换出内存的进程,ps 命令就不太方便了。这正是 top 命令的用武之地,它与 ps 命令相似,top 命令也可以显示进程信息,但采用的是实时方式。

  • top 常用命令选项
选项 描述
-H 显示线程信息。
  • 应用示例
# 1.监测实时进程。
[root@VM-8-11-centos ~]# top
top - 14:20:26 up 156 days,  3:15,  1 user,  load average: 0.20, 0.19, 0.19
Tasks: 175 total,   1 running, 174 sleeping,   0 stopped,   0 zombie
%Cpu(s):  2.5 us,  1.5 sy,  0.0 ni, 95.6 id,  0.3 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  3880172 total,   168136 free,  3074520 used,   637516 buff/cache
KiB Swap:        0 total,        0 free,        0 used.   514776 avail Mem 

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

1.3 结束进程

用户对 top 命令输出有很大的控制权,利用好该工具能找出占用系统大量资源的罪魁祸首,当然,找到之后,下一步就是结束这些进程。在 Linux 中有两个命令可以向运行中的进程发出进程信号:killpkill

  • 使用说明
  • kill 常用命令选项
选项 描述
-l <信息编号> 若不加<信息编号>选项,则 -l 参数会列出全部的信息名称。
-1 (HUP) 重新加载进程。
-9 (KILL) 杀死一个进程。
-15 (TERM) 正常停止一个进程。
  • 应用示例
# 1.强彻底杀死进程。
[root@VM-8-11-centos ~]# kill -9 2526
  • kill 命令杀死指定进程 PID,需要配合 ps 使用,而 pkill 直接对进程对名字进行操作(允许使用通配符),更加方便。
  • 应用示例
# 1.该命令将杀掉所有名称以`http`起始的进程。
[root@VM-8-11-centos ~]# pkill http*
  • 注意事项:以 root 身份使用 pkill 命令时要格外小心,避免使用通配符意外地将系统的重要进程终止,导致文件系统损坏

二、监测磁盘空间

2.1 挂载存储设备

Linux 文件系统会将所有的磁盘都并入单个虚拟目录。在使用新的存储设备之前,需要将其放在虚拟目录中。这项工作称为挂载(mounting)。

  • mount 常用命令选项
选项 描述
-o 给文件系统添加特定的选项。
-o ro 以只读模式挂载。
-o rw 以可读写模式挂载。
-o loop 使用 loop 模式用来将一个档案当成硬盘分割挂上系统。
-o user、-o nouser 使用者可以执行 mount / umount 的动作。
-o check=none 挂载文件系统时不执行完整性校验。
  • 应用示例
# 1.将 /tmp/image.iso 这个光碟的 image 档使用 loop 模式挂在 /mnt/cdrom 之下。
[root@VM-8-11-centos ~]# mount -o loop /tmp/image.iso /mnt/cdrom

移除可移动设备时,不能直接将设备拔下,应该先卸载

  • umount 常用命令选项
选项 描述
-v 执行时显示详细的信息。
  • 应用示例1
# 1.通过设备名卸载。
[root@VM-8-11-centos ~]# umount -v /dev/sda1
  • 应用示例2
# 1.通过挂载点卸载。
[root@VM-8-11-centos ~]# umount -v /mnt/mymount/
  • 注意事项:如果有任何程序正在使用设备上的文件,则系统将不允许卸载该设备。

2.2 使用 df 命令

有时需要知道在某台设备上还有多少磁盘空间df 命令可以方便地查看所有已挂载磁盘的使用情况。

  • df 常用命令选项
选项 描述
-h 以人类易读的形式显示磁盘(通常用M来替代兆字节,用G来替代吉字节)。
  • 应用示例
# 1.设备磁盘使用情况。
[root@VM-8-11-centos ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        1.9G     0  1.9G   0% /dev
tmpfs           1.9G   24K  1.9G   1% /dev/shm
tmpfs           1.9G  1.8M  1.9G   1% /run
...
  • 注意事项df 命令输出值反映的是 Linux 系统认为的当前值。正在运行的进程有可能创建或删除了某个文件,但尚未释放该文件,则这个值是不会被计算进闲置空间的。

2.3 使用 du 命令

df 命令,很容易发现哪个磁盘存储空间不足。接下来,就是如何应对这种情况,du 命令可以显示某个特定目录(默认情况下是当前目录)的磁盘使用情况,有助于你快速判断系统中是否存在磁盘占用“大户”。

  • du 常用命令选项
选项 描述
-c 显示所有已列出文件的总大小。
-h 按人类易读格式输出大小,分别用 K 表示千字节、M 表示兆字节、G 表示吉字节。
-s 输出每个参数的汇总信息。
  • 应用示例
[root@VM-8-11-centos tmp]# pwd
/tmp
# 1.当前目录磁盘使用情况。
[root@VM-8-11-centos tmp]# du -sh
32K	.

三、处理数据文件

3.1 数据排序

处理大量数据时需要对数据进行排序,此时就会用到一个常用命令 sort

  • sort 命令会根据锁指定的默认语言的排序规则来对文本文件中的数据进行排序。

  • sort 常用命令选项

选项 描述
[-k field1[ field2 ]] 按照指定的列进行排序
-n 将字符串按数值意义排序
-r 逆序排序(升序变降序)
-t 指定字段分隔符
  • 应用示例
# 1.sort -nr:哪些文件占用磁盘空间最多。
[root@VM-8-11-centos resources]# du -sh * | sort -nr
92K	io
24K	META-INF
4.0K	registry.conf
4.0K	README-zh.md
4.0K	README.md
4.0K	logback.xml
4.0K	file.conf.example
4.0K	file.conf

3.2 数据搜索

经常需要在大文件中查找位于文件中间部分某处的数据行,可以使用 grep 命令来帮助查找

  • grep 命令会在输入或指定文件中逐行搜索匹配指定模式的文本。
  • grep 常用命令选项
选项 描述
-v 反向搜索。
-n 显示匹配指定模式的那些行的行号。
-c 统计多少行。
-e 指定多个匹配模式。
  • 应用示例
# 1.当前文本内容。
[root@VM-8-11-centos tmp]# cat test.txt 
111
222
333
hello
444
555

# 2.匹配存在的字符串有多少行。
[root@VM-8-11-centos tmp]# grep -c "hello" test.txt 
1

# 3.匹配不存在的字符串。
[root@VM-8-11-centos tmp]# grep -c "hello111" test.txt 
0

3.3 数据压缩

Linux 包含多种文件压缩工具

工具名 文件拓展名 描述
bzip2 .bz2 采用 Burrows-Wheeler 块排序文本压缩算法和霍夫曼编码。
compress .Z 最初的 Unix 文件压缩工具。
gzip .gz GNU 压缩工具,用 Lempel-Zivwelch 编码。
xz .xz 日渐流行的通用压缩工具。
zip .zip Windows 中 PKZIP 工具的 Unix 实现。
  • 应用示例
# 1.当前文本文件。
[root@VM-8-11-centos test]# ll
total 4
-rw-r--r-- 1 root root  0 May  7 16:47 myTest1.txt
-rw-r--r-- 1 root root  0 May  7 16:47 myTest.txt

# 2.使用 gzip 命令压缩指定文件(可以指定多个文件名或是用通配符来一次性压缩多个文件)。
[root@VM-8-11-centos test]# gzip my*
[root@VM-8-11-centos test]# ls -l my*
-rw-r--r-- 1 root root 32 May  7 16:47 myTest1.txt.gz
-rw-r--r-- 1 root root 31 May  7 16:47 myTest.txt.gz

3.4 数据归档

目前,Unix 和 Linux 中最流行的归档工具是 tar 命令。

  • tar 常用命令选项
选项 描述
-c 创建新的 tar 归档文件。
-x 从 tar 归档文件中提取文件。
-f 将结果输出到文件(或设备)。
-v 在处理文件时显示文件名。
-z 将输出传给 gzip 命令进行压缩。
  • 应用示例1
# 1.当前目录的文本文件。
[root@VM-8-11-centos tmp]# ll
total 0
-rw-r--r-- 1 root root 0 May  7 17:02 1.txt
-rw-r--r-- 1 root root 0 May  7 17:06 2.txt

# 2.创建归档文件。
[root@VM-8-11-centos tmp]# tar -cvf test.tar *.txt
1.txt
2.txt

# 3.归档结果。
[root@VM-8-11-centos tmp]# ll
total 12
-rw-r--r-- 1 root root     0 May  7 17:02 1.txt
-rw-r--r-- 1 root root     0 May  7 17:06 2.txt
-rw-r--r-- 1 root root 10240 May  7 17:07 test.tar
  • 应用示例2
[root@VM-8-11-centos tmp]# ll
total 12
-rw-r--r-- 1 root root     0 May  7 17:02 1.txt
-rw-r--r-- 1 root root     0 May  7 17:06 2.txt
-rw-r--r-- 1 root root 10240 May  7 17:07 test.tar

# 1.当前目录下只保留一个tar包。
[root@VM-8-11-centos tmp]# rm -rf *.txt
[root@VM-8-11-centos tmp]# ll
total 12
-rw-r--r-- 1 root root 10240 May  7 17:07 test.tar

# 2.提取tar包内容。
[root@VM-8-11-centos tmp]# tar -xvf test.tar 
1.txt
2.txt

# 3.提取后结果。
[root@VM-8-11-centos tmp]# ll
total 12
-rw-r--r-- 1 root root     0 May  7 17:02 1.txt
-rw-r--r-- 1 root root     0 May  7 17:06 2.txt
-rw-r--r-- 1 root root 10240 May  7 17:07 test.tar
  • 提示:在下载开源软件时经常会看到文件名以 .tgz 结尾,这是经 gzip 压缩过的 tar 文件,可以用 tar -zxvf filename.tgz 来提取其中的内容。

四、结束语


“-------怕什么真理无穷,进一寸有一寸的欢喜。”

微信公众号搜索:饺子泡牛奶文章来源地址https://www.toymoban.com/news/detail-443578.html

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

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

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

相关文章

  • 【 Linux命令行与Shell脚本编程】第四章 进程管理 ,磁盘统计信息,挂载新磁盘,数据排序,数据归档

    第四章 更多命令 进程管理 磁盘统计信息 挂载新磁盘 数据排序 数据归档 4.1,监测程序 4.1.1,ps 探查进程 4.1.2,top 实时监测进程 4.1.3,kill pkill 结束进程 1,kill 命令 2,pkill 命令 4.2,检测磁盘空间 4.2.1,mount umount挂载存储设备 1. mount 命令 其他选项 2,umount 命令 4.2.2, df 命令 4.2.3, du 命令

    2023年04月24日
    浏览(36)
  • 【Linux | Shell】bash shell 基础命令

    很多 Linux 发行版的默认 shell 是 GNU bash shell。本文将介绍 bash shell 的基本特性,比如 bash 手册、命令行补全以及如何显示文件内容等。 GNU bash shell 是一个程序,提供了对 Linux 系统的交互式访问。它是作为普通程序运行的,通常是在用户登录终端时启动。系统启动的 shell 程序

    2024年02月11日
    浏览(46)
  • bash shell基础命令(一)

    shell提供了对Linux系统的交互式访问,通常在用户登录终端时启动。系统启动的shell程序取决于用户账户的配置。 /etc/passwd/文件包含了所有用户的基本信息配置, 例如上述root账户信息配置包含7个数据字段,字段之间用冒号分隔。每个字段的含义后续会展开介绍,其中最后一个

    2024年01月17日
    浏览(94)
  • bash shell基础命令(二)

    ps 命令可以用来检测系统进程。 默认的ps命令只显示运行在当前终端中属于当前用户的进程。如上当前在运行的进程有bash和ps。 PID:进程ID TTY:运行终端 TIME:占用CPU时间 CMD:进程名 ps命令支持3种命令行选项: Unix风格选项,选项前加单连接字符- BSD风格选项,选项前不加连

    2024年01月19日
    浏览(47)
  • BASH shell脚本篇2——条件命令

    这篇文章介绍下BASH shell中的条件相关的命令,包括:if, case, while, until, for, break, continue。之前有介绍过shell的其它基本命令,请参考:BASH shell脚本篇1——基本命令 1. If语句 if 语句用于在顺序执行语句的流程中执行条件任务。 If 语句通常用于在Bash脚本中做出决定。它们根据

    2024年02月07日
    浏览(36)
  • Linux和Shell笔记-2基本的bash shell命令

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

    2024年02月16日
    浏览(39)
  • 10.1.5 查询指令是否为 Bash shell 的内置命令: type

    通过 type 这个指令我们可以知道每个指令是否为 bash 的内置指令。 此外,由于利用 type 搜寻后面的名称时,如果后面接的名称并不能以可执行文件的状态被找到, 那么该名称是不会被显示出来的。也就是说, type 主要在找出“可执行文件”而不是一般文件文件名。 10.1.6 指令

    2024年02月15日
    浏览(42)
  • SHELL 基础 入门(三) Bash 快捷键 命令执行顺序,详解通配符

    目录 Bash 常用快捷键  输入输出重定向  用法  输出重定向  命令执行顺序  ;  分号 ||  通配符  传统通配符  ? \\\'  *  \\\'  [  ]   [ - ]   [ ^ ] 常用字符  强调 : {  }   生成序列  Ctrl + A    把光标移动到命令行开头 Ctrl + E    把光标移动到命令行尾  Ctrl + D    退出当前

    2024年02月11日
    浏览(52)
  • Linux--验证命令行上运行的程序的父进程是bash

    1.输入以下代码: 2.编译得到可执行程序​​​ 3.运行得到ppid 4.输入指令  ps axj | head -1 ps axj | grep ppid  查找   

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

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

    2024年02月07日
    浏览(32)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包