前言
在windows中,我们通常使用GUI图形画面的任务管理器
来管理进程。
任务管理器提供了一个较为友好的图形界面,然而他也存在一定问题。
首先,任务管理器就要吃掉一部分性能。
而且,当你在任务管理器页面,点击按名称排序时,那可能会出现灾难性的卡顿,这对一台旧电脑来说压力太大了。
其次,任务管理器不提供根据名称查找等功能。
算了,反正总而言之,在一些情况下,使用任务管理器并不能达到我们的预期,因此我们尝试使用命令行去管理进程。
powershell
查找进程
# 显示所有进程
get-process
# 根据名称查找
get-process -name nginx
# 根据id查找(id唯一)
get-process -id 1428
# 显示非系统进程
Get-Process | Where-Object { $_.SessionId -ne 0 }
命令行方式是没有任务管理器直观的,因为他和我们直接看到的有些许区别。
比如百分浏览器,大家都知道他是套壳chrome,他的exe文件甚至也叫chrome.exe
。
在任务管理器中,他依然是百分。
而使用命令行查询,显示的是chrome
他是根据exe文件的名称来显示的
假如我修改其名称为chrome111.exe
,在命令行中他也会变。
既然这样,命令行的好处也就出来了,也就是说,只要我们知道某个程序的exe文件名称,就能查找到他的进程。
更重要的是,命令行的性能远超任务管理器,默认就是按名称升序。不过你无法按内存占用排序了,因为同名的没有被合并,直接排序就没有意义了。比如浏览器中,多个标签页就是多个进程,而在我们使用习惯中,只关心浏览器整体占用了多大内存,而不是单个标签页。
结束进程
stop-process -name nginx
stop-process -id 1428