将显示您系统上正在运行的进程列表。 如果没有选项,ps 将列出属于当前用户并具有控制终端的进程。
示例选项包括
-aux --- 列出所有正在运行的进程(所有用户,带有一些信息)。
-a --- 列出所有用户的所有进程。
-u --- 列出更多信息,包括用户名、%cpu 使用率和 %mem 使用率等等。
-x --- 列出没有控制终端的进程。
-l --- 显示不同的信息,包括 UID 和 nice 值。
--forest --- 这使您可以更容易地查看进程层次结构,它会告诉您系统上各种进程是如何相互关联的(尽管您也应该尝试使用 pstree)。
例如,要列出所有带有附加信息的正在运行的进程,只需键入
ps -aux |
以树形结构显示进程(类似于 tree 对目录的操作)。
使用 -p 选项来显示进程 ID。
示例
pstree -p |
这将列出所有进程及其 ID。
当您知道进程名称的一部分时,此命令可用于查找特定进程的进程 ID。
使用 -l 选项来同时列出进程的名称,使用 -u 选项来通过特定用户进行搜索。
通常 pgrep 只会返回 pid 号码;这样您可以将其与其他命令一起使用。
示例
kill $(pgrep mozilla) |
这将终止任何名称以 mozilla 开头的进程。 请注意,这与使用 pkill(见下文)相同。
如果您不熟悉此命令的 $(�) 部分,请参阅第 6.4 节。
要列出进程 ID 和名称,请键入
pgrep -l process_name |
显示“top”(如 CPU 使用率)进程,提供比 ps 更详细的信息。
top 还提供更新的显示,它具有许多选项,使其可以完全自定义,请参阅手册或 info 页面了解详细信息。
要在系统上终止进程,您需要它们的 pid 或 id。 使用 ps 或 pstree 查找进程 id (pid),或使用 jobs 查找 id。
![]() | killall 和 pkill - 按名称终止进程 |
---|---|
pkill 和 killall 比 kill 更容易使用。pkill 允许您键入进程名称的一部分来终止它,而 killall 需要完整的进程名称。 请参阅下文了解更多信息。 |
示例
kill pid |
简单地终止一个进程(允许它有时间保存文件并退出)
kill %id |
与上面相同,只是它使用 id 而不是 pid,使用 id 终止时需要使用 %(百分号)。
kill -kill pid |
强制终止一个进程(不允许保存或更新文件);仅在必要时使用,因为程序拥有的所有数据都将丢失。
还有许多其他 kill 选项,例如 kill -HUP (挂断)... 请参阅手册/info 页面了解更多信息。
通过进程名称终止进程,使用名称而不是进程 ID (pid)。 使用 -v 让 killall 报告终止是否成功,使用 -i 进入交互模式(在尝试终止之前会提示您)。
![]() | pkill - 有点像带有正则表达式的 killall |
---|---|
pkill 是另一个允许终止进程的命令,但它使用正则表达式。 请参阅下文了解更多信息。 |
例如
killall -iv mozilla |
这将终止任何名为“mozilla”的内容,并在每次终止之前提示您并报告终止是否成功。 遗憾的是,您需要获得完全正确的名称才能使 killall 工作,您需要使用“mozilla-bin”来终止 mozilla 浏览器。 如果你想要一些你不需要知道确切名称的东西,试试 pkill (见下文)。
pkill 用于根据扩展的正则表达式终止进程。 使用 -u 选项使用用户名和进程名称进行终止(例如,仅终止特定用户的进程)。 pkill 还可以向进程发送特定信号。
对于正常使用,只需键入
pkill process_name |
请注意,“process_name”不必完全匹配……
或者要仅终止用户“fred”和“anon”的“process_name”,请键入
pkill -u fred anon process_name |
skill 用于向命令/用户名/tty 发送特定信号。
skill 有许多选项可用于确保正确的解释(否则它只是猜测它是什么),只需键入 skill -option(s)
-L --- 列出可以发送的各种信号
-u --- 指定用户名;这显然后面跟着用户名或以空格分隔的用户名列表。
-p --- 进程 ID(后跟进程 ID)
-c --- 命令名称(这与 killall 相同)
-t --- (tty 号码)
-v --- 详细模式
-i --- 交互模式。
skill 可用于使用用户名、命令名称或进程 ID 停止、继续或终止进程(或向它们发送您喜欢的任何信号)。
有用的例子
skill -STOP abusive_user_name |
上面的命令将停止该用户的所有进程,这将导致他的屏幕冻结,直到您键入
skill -CONT abusive_user_name |
这将告诉所有进程可以像以前一样继续。 请注意,这仅在您是 root 用户时才有效。 另请注意,您可以在命令中列出多个用户名,以便将其应用于多个用户。
中断键,将终止(中断,停止)在您的终端上运行的某些内容。
打印当前正在运行的作业,如您在 shell 中执行的进程。
将进程放入后台。 要在后台启动程序(因此它不会接管终端),请在命令末尾使用“&”(and 符号)。 您通常使用 CTRL-Z 来暂停当前正在使用的内容。 您只需使用 bg 即可在后台恢复上次暂停的作业……
命令语法
bg job_number |
或
bg job_name |
将进程调到前台,以便您可以与之交互。 该进程将使用您当前的终端。 请注意,只需使用 fg 即可将上次暂停的作业编号调到前台……
您可以按名称或按编号将作业调到前台(使用 jobs 查找编号)。
命令语法
fg job_number |
或
fg job_name |
设置进程的优先级。 nice -20 是最高优先级(只有管理用户才能分配负优先级), nice 20 是最低优先级。 您必须是 root 用户才能赋予进程更高的优先级,但您可以始终降低您自己的进程的优先级……
示例
nice -20 make |
将执行 make 并且它将以最高优先级运行。
更改现有命令的优先级。 您可以使用选项 -u 来更改特定用户名的所有进程的优先级,使用 -g 来更改特定组的所有进程的优先级。 默认是通过进程 ID 号码进行更改。
示例
renice +20 2222 |
这将把进程 2222 的优先级更改为 +20(最低优先级)。
snice 的工作方式与 skill 非常相似,只是它更改进程的优先级。 它的功能类似于 renice。
要使用选项(以确保正确的解释),您只需键入 snice -option(s):
-u --- 指定用户名;这显然后面跟着用户名或以空格分隔的用户名列表。
-p --- 进程 ID(后跟进程 ID)
-c --- 命令名称(这与 killall 相同)
-t --- tty 号码
-v --- 详细模式
-i --- 交互模式。
示例
snice -10 -u root |
这将提高所有 root 进程的优先级。