目录
1.进程
进程是程序的副本,是被载入内存的一个指令集合,运行起来的代码就是进程
进程的五大性能
—— 内存 :free 、top (查看内存的命令)
—— cpu :top 、ps 和 aux 为单个进程
—— 磁盘大小:大小为 lsblk 、剩余为 df
—— 读写性能:读写为 iostat (dd 为写入) 、vmstat 输出
—— 网络:dmstat 、iftop 需要安装依赖包(yum install epel-release.noarch -y)
进程具有的特征
动态性、并发性、独立性、结构性
进程与线程的区别
—— 线程是程序执行的最小单位,而进程是操作系统分配资源的最小单位
—— 一个进程由一个或多个线程组成,线程是一个进程中代码的不同执行路线
—— 进程之间相互独立,但同一进程下的各个线程之间共享程序的内存空间(包括代码段、数据集、堆等)及一些进程级的资源(如打开文件和信号),某进程内的线程在其它进程不可见
—— 调度和切换:线程上下文切换比进程上下文切换要快得多
2.kill
kill
命令用于向进程发送信号,以控制进程的行为。以下是kill
命令的基本用法和一些常用的信号:
kill [options] <PID>
其中,<PID>
是要终止的进程的进程ID。
常用的kill
命令选项和信号包括:
-l
:列出所有可用的信号。-s <SIGNAL>
:指定要发送的信号。例如,-s TERM
表示发送终止信号(SIGTERM)。-<SIGNAL>
:使用缩写形式发送信号。例如,-TERM
表示发送终止信号。-<SIGNAL> <PID>
:向指定的进程ID发送信号。
以下是一些常用的信号:
SIGTERM
(默认):终止信号,通常用于正常终止进程。SIGKILL
:强制终止信号,立即终止进程,不能被捕获或忽略。SIGINT
:终端中断信号,通常由Ctrl+C发送。SIGHUP
:终端挂起信号,通常用于重新加载配置文件或重启进程。SIGSTOP
:停止信号,暂停进程的执行。
以下是一些示例:
-
终止进程:
kill <PID>
替换
<PID>
为要终止的进程的进程ID。 -
使用信号终止进程:
kill -TERM <PID>
这将向进程发送终止信号(SIGTERM)。
-
强制终止进程:
kill -KILL <PID>
这将向进程发送强制终止信号(SIGKILL),立即终止进程。
-
重新加载配置文件:
kill -HUP <PID>
这将向进程发送终端挂起信号(SIGHUP),通常用于重新加载配置文件。
3.ps
ps
命令用于显示当前运行进程的快照。它提供了一种查看系统中正在运行的进程的方法,并可以获取有关进程的信息,如进程ID(PID)、父进程ID(PPID)、CPU利用率、内存使用情况等。以下是ps
命令的基本用法和常见选项:
ps [options]
常用的ps
命令选项包括:
aux
:显示所有用户的所有进程。ef
:显示进程间的关系树,以树状结构展示进程之间的父子关系。-e
:显示所有进程,包括没有终端的进程。-f
:显示完整的进程信息,包括进程的命令行参数。-l
:使用长格式显示进程信息,包括进程状态、CPU使用情况等。-u <USER>
:显示指定用户的进程。-p <PID>
:显示指定进程ID的进程信息。
以下是一些示例:
-
显示当前用户的所有进程:
ps aux
-
显示所有进程的完整信息:
ps -ef
-
显示指定用户的进程:
ps -u username
替换
username
为要显示其进程的用户名。 -
显示指定进程ID的进程信息:
ps -p PID
替换
PID
为要显示的进程ID。
ps
命令还有更多选项和功能,例如根据进程状态过滤、按CPU使用率排序等。你可以使用ps
命令的帮助选项来获取更详细的用法和参数信息:
man ps
4.top
top
命令用于实时监视系统的进程活动和系统性能。它提供了一个交互式的界面,显示当前正在运行的进程列表以及各个进程的资源使用情况,如CPU利用率、内存使用情况、进程ID(PID)、进程状态等。以下是top
命令的基本用法和一些常见操作:
top
运行top
命令后,你将看到一个动态更新的进程列表,其中包含各个进程的相关信息。默认情况下,进程按CPU使用率降序排列。
一些常用的操作和快捷键包括:
q
:退出top
命令。k
:向进程发送信号以终止进程。f
:显示或隐藏列字段。r
:修改进程的优先级。s
:更改刷新频率。1
:显示每个CPU核心的详细信息。u
:显示特定用户的进程。H
:以线程的方式显示进程。i
:忽略空闲和僵尸进程。o
:按指定的列字段排序。
在top
命令的界面中,你可以通过键盘输入来执行不同的操作。在界面的底部,会显示一些可用的命令选项和快捷键。你可以按下对应的键来执行相应的操作。
top
命令还提供了一些命令行选项,可以在运行命令时指定。例如,top -u username
可以只显示特定用户的进程。
请注意,top
命令默认情况下会持续更新进程列表和系统性能信息,如果你想停止更新并退出top
命令,可以按下q
键。
这只是top
命令的一些基本用法和操作,它还有更多功能和选项,你可以查阅top
命令的帮助文档来获取更详细的信息:
man top
5.pidof
pidof
命令用于查找给定进程名对应的进程ID(PID)。它可以通过进程名来查找正在运行的进程的PID,从而方便地进行进程管理和操作。以下是pidof
命令的基本用法:
pidof [options] <process_name>
其中,<process_name>
是要查找的进程名。
常用的pidof
命令选项包括:
-s
:以单行输出的方式显示PID,多个PID之间用空格分隔。-c
:以逗号分隔的方式显示PID。-o <oldest>
:显示最早启动的进程的PID。-x
:仅匹配完全匹配进程名的进程,而不是匹配包含进程名的进程。
以下是一些示例:
-
查找名为
nginx
的进程的PID:pidof nginx
-
以单行输出的方式显示名为
httpd
的进程的PID:pidof -s httpd
-
显示最早启动的名为
sshd
的进程的PID:pidof -o sshd
6.pgrep
pgrep
命令用于根据进程名或其他相关条件查找并显示匹配的进程ID(PID)。它提供了更多的选项和灵活性,可以更精确地查找进程。以下是pgrep
命令的基本用法:
pgrep [options] <pattern>
其中,<pattern>
是要匹配的进程名或其他条件。
常用的pgrep
命令选项包括:
-l
:显示进程ID和进程名。-a
:显示完整的进程命令行。-f
:匹配进程的完整命令行,而不仅仅是进程名。-u <username>
:指定用户名,只查找该用户的进程。-g <pgrp>
:指定进程组ID,只查找该进程组的进程。-t <term>
:指定终端名,只查找该终端的进程。-P <ppid>
:指定父进程ID,只查找该父进程的子进程。
以下是一些示例:
-
查找名为
nginx
的进程的PID:pgrep nginx
-
显示名为
httpd
的进程的PID和进程名:pgrep -l httpd
-
显示包含字符串
ssh
的进程的PID和完整命令行:pgrep -lf ssh
-
查找用户名为
john
的进程的PID:pgrep -u john
请注意,pgrep
命令可以根据不同的选项和条件来查找进程,并返回匹配的进程ID。如果未找到匹配的进程,它将不会返回任何结果。
pgrep
命令还有其他选项和用法,你可以查阅其帮助文档来获取更详细的信息:
man pgrep
7.pstree
pstree
命令用于以树状结构显示进程之间的关系。它可以帮助你更清晰地了解系统中运行的进程以及它们之间的父子关系。以下是pstree
命令的基本用法:
pstree [options]
常用的pstree
命令选项包括:
-p
:显示进程的PID。-n
:按照进程ID的数值顺序排序。-u
:显示进程的所有者。-a
:显示进程的命令行参数。-h
:高亮显示当前进程。
以下是一些示例:
-
显示整个系统的进程树:
pstree
-
显示进程树,并显示进程的PID和命令行参数:
pstree -p -a
-
显示进程树,并按照进程ID的数值顺序排序:
pstree -n
8.lsof
根据文件找到对应的进程信息,也可以根据进程信息找到进程打开的文件
格式:lsof 选项
选项 作用
-c 字符串 只列出以字符串开头的进程打开的文件
+d 目录名 列出某个目录中所有被进程调用的文件
-u 用户名 只列出某个用户的进程打开的文件
-p pid 列出某个 PID 进程打开的文件
误删文件如何找回
前提条件:有人在使用误删的文件
losf |grep delete 找回删除文件 echo “ ” > bigfile
vmstat 监控系统资源 虚拟资源
动态了解当前系统资源的使用情况
格式:vmstat -a 刷新时间 刷新次数
内存查看
free
pmap 进程 PID 号
iostat 命令
可以提供丰富的 IO 性能状态数据
iostat 作用
-c 只显示 CPU 行
-d 磁盘绝对位置 显示磁盘使用状态
-k 以千字节为为单位显示输出
-t 在输出中包括时间戳
-x 在输出中包括扩展的磁盘指标
iotop 命令
是一个用来监视磁盘 I/O 使用状况的 top 类工具,它可以显示磁盘 I/O 使用情况最高的进程和线程,以及它们的 I/O 速率,对于 HEL/CentOS 的系统,可以使用 YUM Command 来安装 iotop
—— 安装包命令:sudo yum install iotop