首页 > 运维 > linux运维 > 正文

Linux命令行中如何查看进程信息

P粉602998670
发布: 2025-09-11 09:05:01
原创
787人浏览过
<blockquote>ps、top、htop、pgrep、pidof等命令用于查看Linux进程信息:ps提供静态快照,top和htop实现动态监控,pgrep和pidof按名称查找进程ID;其中ps的STAT列显示进程状态,如R(运行)、S(睡眠)、Z(僵尸)等;top默认按CPU使用率排序,可结合P、M、N键切换排序方式,并用k键终止高耗进程;pgrep结合kill可精准结束指定进程,如pgrep firefox获取PID后执行kill或kill -9强制终止。</blockquote> <p><img src="https://img.php.cn/upload/article/000/969/633/175755270789835.jpeg" alt="linux命令行中如何查看进程信息"></p> <p>查看Linux命令行中的进程信息,主要依靠<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">ps</pre>
登录后复制
</div>、<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">top</pre>
登录后复制
</div>、<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">htop</pre>
登录后复制
</div>、<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">pgrep</pre>
登录后复制
</div>、<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">pidof</pre>
登录后复制
</div>等命令。它们各有侧重,可以从不同角度展示系统进程的运行状态。</p> <p>ps命令:静态快照 top命令:动态实时视图 pgrep命令:根据名称查找进程ID pidof命令:查找指定程序运行的进程ID</p> <p>ps命令是最基础的,它能提供进程的静态快照。但如果你想实时监控进程动态,top命令就更合适了。而当你只想找到某个特定进程的ID时,pgrep或者pidof会更便捷。</p> <p>解决方案</p> <p><strong>1. 使用 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">ps</pre>
登录后复制
</div> 命令:</strong></p> <p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">ps</pre>
登录后复制
</div> 命令提供了进程的静态快照。常用的选项包括:</p> <ul> <li><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">ps aux</pre>
登录后复制
</div>: 显示所有用户的进程,包括没有控制终端的进程。<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">a</pre>
登录后复制
</div> 显示所有用户,<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">u</pre>
登录后复制
</div> 显示用户名和启动时间,<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">x</pre>
登录后复制
</div> 显示没有控制终端的进程。</li> <li><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">ps -ef</pre>
登录后复制
</div>: 显示所有进程的详细信息,包括父进程ID (PPID)。<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">e</pre>
登录后复制
</div> 显示所有进程,<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">f</pre>
登录后复制
</div> 显示完整格式。</li> <li><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">ps -u <用户名></pre>
登录后复制
</div>: 显示特定用户的进程。例如,<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">ps -u john</pre>
登录后复制
</div>。</li> </ul> <p>例如,<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">ps aux | grep firefox</pre>
登录后复制
</div> 可以查找包含 "firefox" 关键字的进程。</p> <p><strong>2. 使用 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">top</pre>
登录后复制
</div> 命令:</strong></p> <p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">top</pre>
登录后复制
</div> 命令提供了一个动态、实时的系统进程视图。它可以按 CPU 使用率、内存使用率等排序进程。</p> <ul> <li>运行 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">top</pre>
登录后复制
</div> 命令后,你可以使用不同的按键进行排序:<ul> <li><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">P</pre>
登录后复制
</div>: 按 CPU 使用率排序。</li> <li><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">M</pre>
登录后复制
</div>: 按内存使用率排序。</li> <li><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">N</pre>
登录后复制
</div>: 按 PID 排序。</li> </ul> </li> <li><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">top -u <用户名></pre>
登录后复制
</div>: 监控特定用户的进程。</li> </ul> <p><strong>3. 使用 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">htop</pre>
登录后复制
</div> 命令:</strong></p> <p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">htop</pre>
登录后复制
</div> 是 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">top</pre>
登录后复制
</div> 的一个增强版本,提供了更友好的界面和更多的功能,例如彩色显示、鼠标操作等。如果你的系统没有预装 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">htop</pre>
登录后复制
</div>,可以使用包管理器安装,如 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">sudo apt install htop</pre>
登录后复制
</div> (Debian/Ubuntu) 或 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">sudo yum install htop</pre>
登录后复制
</div> (CentOS/RHEL)。</p> <p><strong>4. 使用 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">pgrep</pre>
登录后复制
</div> 命令:</strong></p> <p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">pgrep</pre>
登录后复制
</div> 命令允许你根据进程名或其他属性查找进程 ID。</p> <ul> <li><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">pgrep <进程名></pre>
登录后复制
</div>: 例如,<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">pgrep firefox</pre>
登录后复制
</div> 会返回所有名为 "firefox" 的进程的 PID。</li> <li><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">pgrep -u <用户名> <进程名></pre>
登录后复制
</div>: 查找特定用户的进程 ID。</li> </ul> <p><strong>5. 使用 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">pidof</pre>
登录后复制
</div> 命令:</strong></p> <p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">pidof</pre>
登录后复制
</div> 命令用于查找指定程序运行的进程 ID。</p> <ul><li><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">pidof <程序名></pre>
登录后复制
</div>: 例如,<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">pidof firefox</pre>
登录后复制
</div>。注意,<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">pidof</pre>
登录后复制
</div> 可能不如 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">pgrep</pre>
登录后复制
</div> 灵活,因为它只能根据程序名查找。</li></ul> <p><strong>6. 使用 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">pstree</pre>
登录后复制
</div> 命令:</strong></p> <p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">pstree</pre>
登录后复制
</div> 命令以树状图的形式显示进程之间的父子关系。</p> <div class="aritcle_card"> <a class="aritcle_card_img" href="/xiazai/code/10908"> <img src="https://img.php.cn/upload/webcode/000/000/010/176425380615859.jpg" alt="ASP.NET 4.0电子商城"> </a> <div class="aritcle_card_info"> <a href="/xiazai/code/10908">ASP.NET 4.0电子商城</a> <p>在现实生活中的购物过程,购物者需要先到商场,找到指定的产品柜台下,查看产品实体以及标价信息,如果产品合适,就将该产品放到购物车中,到收款处付款结算。电子商务网站通过虚拟网页的形式在计算机上摸拟了整个过程,首先电子商务设计人员将产品信息分类显示在网页上,用户查看网页上的产品信息,当用户看到了中意的产品后,可以将该产品添加到购物车,最后使用网上支付工具进行结算,而货物将由公司通过快递等方式发送给购物者</p> <div class=""> <img src="/static/images/card_xiazai.png" alt="ASP.NET 4.0电子商城"> <span>0</span> </div> </div> <a href="/xiazai/code/10908" class="aritcle_card_btn"> <span>查看详情</span> <img src="/static/images/cardxiayige-3.png" alt="ASP.NET 4.0电子商城"> </a> </div> <ul> <li><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">pstree</pre>
登录后复制
</div>: 显示所有进程的树状图。</li> <li><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">pstree -p</pre>
登录后复制
</div>: 显示进程 ID。</li> <li><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">pstree <用户名></pre>
登录后复制
</div>: 显示特定用户的进程树。</li> </ul> <p>如何理解ps命令输出结果中的STAT列?</p> <p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">ps</pre>
登录后复制
</div> 命令输出的 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">STAT</pre>
登录后复制
</div> 列表示进程的状态。它由多个字符组成,每个字符代表进程的不同状态属性。</p> <ul> <li> <strong>第一个字符</strong> 表示进程的主要状态:<ul> <li><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">R</pre>
登录后复制
</div> (Running): 正在运行或准备运行。</li> <li><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">S</pre>
登录后复制
</div> (Sleeping): 睡眠状态,等待事件发生。</li> <li><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">D</pre>
登录后复制
</div> (Disk sleep): 不可中断的睡眠状态,通常在等待 I/O 操作完成。</li> <li><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">T</pre>
登录后复制
</div> (Stopped): 停止状态,通常是被信号暂停。</li> <li><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">Z</pre>
登录后复制
</div> (Zombie): 僵尸进程,进程已结束,但父进程尚未回收其资源。</li> <li><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;"><</pre>
登录后复制
</div> (High-priority): 高优先级进程。</li> <li><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">N</pre>
登录后复制
</div> (Low-priority): 低优先级进程。</li> <li><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">L</pre>
登录后复制
</div> (Locked memory): 进程的内存被锁定,不会被交换到磁盘。</li> </ul> </li> <li> <strong>其他字符</strong> 表示进程的附加状态:<ul> <li><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">S</pre>
登录后复制
</div> (<a style="color:#f60; text-decoration:underline;" title="session" href="https://www.php.cn/zt/17098.html" target="_blank">session</a> leader): 会话领导者。</li> <li><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">L</pre>
登录后复制
</div> (multi-threaded): 多线程进程。</li> <li><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">+</pre>
登录后复制
</div> (foreground process group): 前台进程组。</li> <li><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">W</pre>
登录后复制
</div> (paging): 进程正在进行内存交换。</li> </ul> </li> </ul> <p>例如,<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">Ss</pre>
登录后复制
</div> 表示该进程是睡眠状态,并且是会话领导者。<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">R+</pre>
登录后复制
</div> 表示该进程正在运行,并且是前台进程组。</p> <p>如何使用top命令监控CPU使用率高的进程?</p> <p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">top</pre>
登录后复制
</div> 命令可以实时监控 CPU 使用率高的进程。运行 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">top</pre>
登录后复制
</div> 命令后,默认会按照 CPU 使用率排序。</p> <ol> <li> <strong>运行 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">top</pre>
登录后复制
</div> 命令:</strong> 在终端输入 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">top</pre>
登录后复制
</div> 并按回车键。</li> <li> <strong>观察 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">%CPU</pre>
登录后复制
</div> 列:</strong> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">top</pre>
登录后复制
</div> 命令会显示一个进程列表,其中 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">%CPU</pre>
登录后复制
</div> 列表示每个进程占用的 CPU 百分比。</li> <li> <strong>查找 CPU 使用率高的进程:</strong> 列表顶部通常是 CPU 使用率最高的进程。</li> <li> <strong>使用 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">k</pre>
登录后复制
</div> 命令杀死进程(谨慎操作):</strong> 如果你想结束某个 CPU 使用率过高的进程,可以按下 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">k</pre>
登录后复制
</div> 键,然后输入要结束的进程的 PID(进程 ID),再按回车键。<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">top</pre>
登录后复制
</div> 命令会提示你输入要发送的信号,默认是 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">SIGTERM</pre>
登录后复制
</div> (15),可以尝试使用该信号。如果进程没有正常结束,可以尝试使用 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">SIGKILL</pre>
登录后复制
</div> (9) 信号,但请注意,<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">SIGKILL</pre>
登录后复制
</div> 会强制结束进程,可能导致<a style="color:#f60; text-decoration:underline;" title="数据丢失" href="https://www.php.cn/zt/38926.html" target="_blank">数据丢失</a>。</li> </ol> <p>在 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">top</pre>
登录后复制
</div> 命令中,你还可以使用以下按键:</p> <ul> <li><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">P</pre>
登录后复制
</div>: 按 CPU 使用率排序(默认)。</li> <li><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">M</pre>
登录后复制
</div>: 按内存使用率排序。</li> <li><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">N</pre>
登录后复制
</div>: 按 PID 排序。</li> <li><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">h</pre>
登录后复制
</div>: 显示帮助信息。</li> <li><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">q</pre>
登录后复制
</div>: 退出 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">top</pre>
登录后复制
</div> 命令。</li> </ul> <p>如何使用pgrep和kill命令杀死指定进程?</p> <p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">pgrep</pre>
登录后复制
</div> 命令用于查找进程 ID,<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">kill</pre>
登录后复制
</div> 命令用于向进程发送信号,通常用于结束进程。</p> <ol> <li> <p><strong>使用 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">pgrep</pre>
登录后复制
</div> 查找进程 ID:</strong></p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:bash;toolbar:false;'>pgrep <进程名></pre>
登录后复制
</div><p>例如,要查找所有名为 "firefox" 的进程的 PID,可以运行 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">pgrep firefox</pre>
登录后复制
</div>。</p> </li> <li> <p><strong>使用 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">kill</pre>
登录后复制
</div> 命令结束进程:</strong></p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:bash;toolbar:false;'>kill <进程ID></pre>
登录后复制
</div><p>例如,如果 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">pgrep firefox</pre>
登录后复制
</div> 返回的 PID 是 1234,那么可以使用 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">kill 1234</pre>
登录后复制
</div> 来结束该进程。</p> <ul><li><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">kill -9 <进程ID></pre>
登录后复制
</div>: 使用 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">SIGKILL</pre>
登录后复制
</div> 信号强制结束进程。请谨慎使用该信号,因为它会立即结束进程,可能导致数据丢失。</li></ul> </li> </ol> <p><strong>示例:</strong></p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:bash;toolbar:false;'># 查找 firefox 进程的 PID pids=$(pgrep firefox) # 检查是否找到了进程 if [ -n "$pids" ]; then # 循环结束所有找到的进程 for pid in $pids; do echo "正在结束进程 $pid" kill $pid done else echo "没有找到 firefox 进程" fi</pre>
登录后复制
</div><p>这个脚本首先使用 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">pgrep</pre>
登录后复制
</div> 查找所有 "firefox" 进程的 PID,然后使用一个循环来结束所有找到的进程。如果 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">pgrep</pre>
登录后复制
</div> 没有找到任何进程,脚本会输出一条消息。</p>

以上就是Linux命令行中如何查看进程信息的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号