Linux进程与相关命令

95 阅读2分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

作为一个写Java的,无论是自己面试还是面试别人,可能都会碰到一个简单的问题,就是什么是进程什么是线程,区别是什么?很多时候只需要回答到进程是操作系统的最小执行单位即可,毕竟是做应用层开发的。今天就来简单介绍一下进程在linux系统的含义和一些简单的操作命令。

现代操作系统都是多进程的,当系统启动时,首先会运行一个叫init的程序,然后这个程序会依次运行其他init脚本(一般位于/etc下面),慢慢的启动所有的系统服务,许多服务都是以守护进程的形式运行,即这个程序不提供任何用户接口,用户无法直接操作它。操组系统内核会维护每一个进程的运行信息,给每一个进程分配一个数字ID,这是我们经常提到的PID,init程序的PID永远是1。那么有哪些命令可以操作各种进程呢?

查看进程

ps命令,一般很少直接输入ps,因为这会列出所有我们想要的和不想要的进程,一般我们会搭配grep来精确寻找:

ps aux | grep java

aux会列出线程非常详细的运行信息。

top命令,用来查看cpu的使用排行榜,由高到低。

控制进程

&符号,有时候我们执行完一个命令后不想等待,想直接做别的事情,可以在命令结束时加这样一个符号,比如:

xlogo &
[1] 28236

控制台会直接返回一个该程序的进程id。如果不想让这个程序在后台执行,想让它回到前台怎么办呢?

➜  ~ jobs
[1]+ Running        xlogo &

➜  ~ fg %1
xlogo

首先用jobs查看所有的后台任务,然后用fg命令跟上任务的序号,序号前加一个%即可。

停止进程

kill命令,用法就是kill PID

kill 28236