当前位置: 首页 > Linux

linuxpgrep和pkill命令用例

时间:2023-04-06 11:06:49 Linux

Linux深受开发人员和爱好者的喜爱。您可以做很多在Windows和OSX等操作系统上通常不能做的事情。Linux是程序员、开发人员和任何想要正确理解操作系统的人的最佳操作系统。现在Linux有很多功能和能力。今天您将了解Linux的pgrep和pkill命令,以及如何使用它们来让您的Linux体验更加流畅。顾名思义,pgrep命令用于根据进程名搜索进程,pkill命令根据进程名终止或杀死进程。前提条件ALinux操作系统pgrep命令语法:pgrep[options]pattern大多数Linux用户都知道grep命令,它用于查找特定的单词或字符。pgrep的工作原理几乎相同。在搜索系统上运行的进程(基于名称)时使用pgrep命令。(1)打印特定用户拥有的进程ID(-u)pgrep列出符合指定条件的进程ID。示例:列出apache用户拥有的所有httpd进程。[root@linuxtechi~]#pgrep-uapachehttpd12741275127812821283128412861291[root@linuxtechi~]#(2)列出多个用户拥有的所有进程假设我们要列出root和apache用户拥有的所有进程,执行如下命令[root@linuxtechi~]#pgrep-uapache,这里是root,用户之间用逗号(,)隔开。(3)统计匹配进程数(-c)使用-c选项统计用户关联的进程数。假设我们要统计apache和root用户拥有的进程数,运行如下命令[root@linuxtechi~]#pgrep-uapache-c8[root@linuxtechi~]#pgrep-uroot-c95[root@linuxtechi~]#(4)列出进程id和进程名(-l&-a)在pgrep命令中使用-l和-a选项列出与用户关联的进程id和进程名。-l选项将仅列出进程名称,而-a将列出进程名称的完整路径。[root@linuxtechi~]#pgrep-uapache-l4353httpd4354httpd4355httpd4356httpd4357httpd4358httpd4359httpd4360httpd[root@linuxtechi~]#[root@linuxtechi~]#pgrep-uapache-a4353/usr/sbin/httpd-DFOREGROUND4354/usr/sbin/httpd-DFOREGROUND4355/usr/sbin/httpd-DFOREGROUND4356/usr/sbin/httpd-DFOREGROUND4357/usr/sbin/httpd-DFOREGROUND4358/usr/sbin/httpd-DFOREGROUND4359/usr/sbin/httpd-DFOREGROUND4359/usr/sbin/httpd-DFOREGROUND4359/usr/sbin/httpd/usr/sbin/httpd-DFOREGROUND[root@linuxtechi~]#(5)使用自定义分隔符列出与用户关联的进程ID(-d)使用pgrep中的“-d”选项使用自定义分隔符列出用户的进程ID,假设我们列出与apache用户关联的进程ID,用逗号(,)或空格分隔。进程ID,以逗号或空格分隔。[root@linuxtechi~]#pgrep-uapache-d,4353,4354,4355,4356,4357,4358,4359,4360[root@linuxtechi~]#pgrep-uapache-d""43534354435543564357435843594360[root@linuxtechi~]#(6)列出最新的进程名及其ID(-n)假设我们要列出root用户拥有的最新进程名及其id,执行以下命令语法:pgrep-u-n-l[root@linuxtechi~]#pgrep-uroot-n-l11255kworker/0:2[root@linuxtechi~]#(7)列出最早的进程名称和itsid(-o)假设我们要列出root用户拥有的最旧的进程名称和它的id,执行以下命令语法:pgrep-u-o-l[root@linuxtechi~]#pgrep-uroot-o-l1systemd[root@linuxtechi~]#(8)搜索相关进程及其名称假设我们要列出与postgresprocess[root@linuxtechi~]相关??的所有进程ID#pgreppostgres-l1233postgres1234postgres4465postgres4469postgres[root@linuxtechi~]#pkill命令pkill命令用于通过命令行杀死进程。与kill命令不同,pkill不需要输入要终止的进程的ID。语法:pkill[options](9)根据进程名kill进程(pkill{process_name})比如你想killpostgres进程如下[root@linuxtechi~]#pkillpostgres[root@linuxtechi~]#如果postgres进程正在运行,会立即终止。(10)通过发送不同的信号(–signal)来终止进程默认情况下,pkill命令在执行期间使用“SIGTERM”信号。我们可以在pkill命令中使用“-signal”选项来更改这个默认信号,例如,默认情况下,pkill命令在执行期间使用SIGTERM信号。我们可以使用pkill命令中的-signal选项更改此默认信号。[root@linuxtechi~]#pkill--signalSIGKILLpostgres[root@linuxtechi~]#(11)Killprocessbasedonfullcommand(-f)我们可以指示pkill命令根据完整命令而不是进程来终止进程使用-f选项的名称。这是什么意思?假设您的系统上正在运行两个ping命令。我们可以使用-f选项指示pkill命令根据完整命令而不是进程名称来终止进程。这是什么意思?假设您的系统上运行着两个ping命令。pinggoogle.compinglinuxtechi.com现在,如果要求只是使用pkill终止“pinggoogle.com”命令。您可以按以下方式使用pkill:pkill[root@linuxtechi~]#pkill-f"pinggoogle.com"[root@linuxtechi~]#如果不使用-f选项,两个命令都将终止。[root@linuxtechi~]#pkillping我的开源项目course-tencent-cloud(酷瓜云课堂-gitee仓库)course-tencent-cloud(酷瓜云课堂-github仓库)