查看进程
- -e 显示所有进程
- -f 全格式输出
- -h 不显示标题
- -l 长格式输出
- -w 宽格式输出
- -A 显示所有进程,同-e
- -r 只显示正在运行的进程
- -T 只显示当前终端中运行的进程
- -x 显示没有终端控制的进程
- k spec 按照-k中设置的格式对输出结果进行排序。spec的格式为:[+|-]key1[,[+|-]]key2[,...]]
1 全格式显示系统中所有的进程信息
ps -ef 全格式显示系统中所有的进程信息
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 Aug14 ? 00:17:46 /usr/lib/systemd/systemd --system --deserialize 22
root 2 0 0 Aug14 ? 00:00:00 [kthreadd]
字段 | 说明 | 字段 | 说明 |
UID | 运行进程的用户 | STIME | 进程启动的时间 |
PID | 进程的ID | TTY | 终端号 |
PPID | 父进程ID | TIME | 进程使用CPU的时间 |
C | CPU调度情况 | CMD | 启动进程的命令 |
2 查看当前终端运行的进程
ps -Tl 是L的小写
3 对输出结果进行排序
ps -Af uid,-pid
4 查看进程的资源使用情况
ps -aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 2 0.0 0.0 0 0 ? S Aug14 0:00 [kthreadd]
字段 | 说明 | 字段 | 说明 |
USER | 运行进程的用户 | RSS | 进程占用的物理内存大小 |
PID | 进程的ID | STAT | 进程的状态 |
%CPU | 进程的cpu使用率 | STATRT | 进程的启动时间 |
%MEN | 进程的内存使用率 | TIME | 进程使用CPU时间 |
VSZ | 进程占用虚拟内存的大小 | COMMAND | 启动进程的命令 |
启动进程
1 前台启动
前台进程的特点就是它会一直占据着终端窗口,除非前台进程运行完毕,否则用户无法在该终端窗口再执行其他的命令。所以前台启动进程的方式一般比较适合运行较短的、需要与用户交互的程序。
2 后台启动
所谓后台进程,就是进程运行后不管是否已经完成,都会立刻返回到Shell提示符下,不会占用终端窗口。要以后台方式启动一个进程,只要在需要运行的命令后面加上“&”字符即可。
cp -R /tmp /root &
ps -ef | grep 上面返回的进程id
jobs 查看系统当前所有正在运行的后台进程
正常情况下,用户退出Linux系统是会把所有由改用户执行的所有进程全部结束,包括正在执行的后台程序。
nohub cp -R /tmp /root/ &
终止进程
1 终止前台进程。
ctrl + c
2 终止后台进程
要用kill, 关于kill 没啥多BB的。
更改进程的优先级
在linux系统中,每个进程在执行时都会被赋予一个优先等级,等级越高,进程获得的CPU时间就会越多。所以级别越高的进程,运行的时间就会越短,防止则需要较长的运行时间。进程的优先等级范围为-20~19,其中-20表示最高等级,而19则是最低的。等级-1 ~ -20 只有root用户可以设置,进程运行的默认级别为0。可以使用nice和renice命令,更改进程的优先级别。
vi test & 默认的优先等级为0
nice vi test & nice命令启动默认优先等级10
nice -19 vi test & 优先等级19
nice --19 vi test & 优先等级-19
nice --40 vi test & 超出范围,优先等级-20
-20 ~ -1 的优先级只能root用户设置,而且,对于普通的用户来说,只能将优先级调低,不能调高。
进程的挂起与恢复
ctrl + z 可以把在前台运行的进程转到后台并挂起(停止运行),
jobs 可以看到刚才转到后台的进程,而且进程的状态应该是停止的。
bg 6 jobs返回后台进程的编号,把这个任务标号给bg,bg把指定的后台的任务,放在后台执行。
fg 6 放到前台来执行。