1. 进程
1.1什么是进程
***进程:***程序放置在存储媒体中(硬盘、光盘、软盘、磁带等),以实体文件的形态存在;进程:程序被触发后,执行者的权限与属性、程序的程序码与所需数据等都会被载入内存中操作系统会给内存内的单元一个识别码( PID),也就是说,进程是一个正在运行当中的程序。程序并不是进程。
1.2进程状态
表示 | 含义 |
---|---|
S | ##表示进程状态 |
s | ##表示此进程为顶级进程 |
T | ##表示进程是暂时停止的 |
< | ##表示进程的优先级高 |
‘空’ | ##表示进程的优先级普通 |
N | ## 表示进程优先级低 |
| | ## 表示进程在内存中有锁定空间 |
renice -n -5 pid | ## 指定修改进程的优先级为-5(重新设定优先级为-5) |
一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。在Unix System V及SunOS中也被称为轻量进程(lightweight processes),但轻量进程更多指内核线程(kernel thread),而把用户线程(user thread)称为线程。
1.3.进程查看方式
(1)方式一:纯图形化界面操作
①Application>>>System Tools>>>System Monitor
②查看processes
③查看Resource(硬件资源信息)
④查看FileSystem(磁盘使用信息)
(2)方式2:图形+文本:
①(terminal)gnome-system-monitor(可以调出当前的所有进程<以图形界面显示>)
②③④同方式一
(3)方式3:纯文本(查看进程的命令)
选项 | 命令 | 含义 |
---|---|---|
查看进程 | ps | # 查看进程 |
1.单参数 | ps a | # 当前进程相关进程(包含了当前环境本身信息<在shell中输入此命令就只会显示和shell相关的进程>) |
ps -a | # 显示当前终端中的所有进程(不包含当前环境本身信息) | |
ps -A | # 系统所有进程,一般和e配合使用 | |
ps x | # 包含含有终端的所有(必须含有tty(字符输出设备的))进程,和a一块使用 | |
ps l | 较详细的将该PID的信息列出 | |
ps f | #查看进程的从属关系 | |
ps -u | # 进程的所有者 | |
2.组合参数 | ps aux | # 显示系统中所有进程并显示进程用户 |
ps ef | # 显示进程详细信息并显示进程父子关系 | |
ps ax | # 显示当前系统所有进程 | |
pstree | # 显示当前系统进程树 | |
3.显示指定信息(ps -o) | ps -o comm | # 显示进程名称 |
ps -o user | #进程所有者 | |
ps -o group | # 进程所有组 | |
ps -o %cpu | # 进程cpu使用率 | |
ps -o %mem | # 进程内存使用率 | |
ps -o pid | # 进程id | |
ps -o nice | # 进程优先级 | |
ps -o stat | # 进程状态信息(注意:S:进程状态;s:顶级进程;l:内存中有锁定空间;N:优先级低;<:优先级高 | |
+:前台运行) | ||
4.进程排序(ps ax --sort=) | ps ax --sort=+%cpu | # cpu使用率由小到大 |
ps ax --sort=-%cpu | #cpu使用率由大到小 | |
ps ax --sort=+%mem | # 内存使用率由小到大 | |
ps ax --sort=-%mem | #内存使用率由大到小 | |
5.进程优先级 | watch -n 1 ps -a -o comm,stat,gid,nice | # 优先级查看(注意:进程优先级范围 -20 – 19 越小优先级越高) |
nice -n 优先级 proname | #进程运行后改变优先级 | |
renice -n 优先级 pid | # 在打开时同时设置优先级 | |
6.环境中前后台的调用 | jobs | #查看被打入环境后台的进程 |
ctrl+z | # 把占用终端的进程打入后台 | |
bg jobsnum | #把后台进程调回前台 | |
comm & | # 让命令直接在后台运行 |
Result
result1."单参数显示进程(ps)"
result2."组合参数显示进程(ps)"
result3."显示指定信息(ps -o)"
result4."进程排序"
result5."进程优先级"
result6."环境前后台的控制调用"
1.4.进程的信号
信号 | 注释 |
---|---|
-1 | ## 进程不停止的情况下重新加载配置(每次启动会重新配置一个pid,此命令最直观的现象就是pid号没有发生改变,但是其他修改命令已经执行) |
-2 | ## 清除进程在内存中的数据 |
-3 | ##清除鼠标在内存中的数据(鼠标在此进程中会消失,移动鼠标会再次出来,想想你一般全屏看视频的时候,鼠标箭头烦不烦人…) |
-9 | ##强行结束进程(不论你运行还是在暂停,强制退出!) |
-15 | ##正常关闭进程(这是温和一点的关闭进程,如果系统判断如果关闭这个进程可能会造成其他影响,则这个命令会被拒绝) |
-18 | ## 运行停止的进程(恢复暂停的进程) |
-19 | ## 暂停进程(不能被阻塞)(暴力暂停…) |
-20 | ##暂停进程(可以被阻塞)(温和暂停…) |
kill 信号 pid | ##对单个进程执行某一操作 |
killall 信号 进程名称 | ## 对所有这个名称的进程执行信号操作 |
pkill -u student -信号 | ## 对用户的进程执行信号操作 |
man 7 signal 查看信号详细信息
1.5.进程的动态监控
作用 | 命令 | 注释 |
---|---|---|
进程动态监控(top)先执行 | top | ##动态监控 |
1 | ##显示cpu每个核的负载 | |
s | ##调整刷新的频率 | |
c | ## cpu负载排序 | |
m | ## 内存使用量排序 | |
h | ## 查看帮助 | |
u | ##查看指定用户进程 | |
k | ## 对指定进程发起信号(先输入pid 再输入信号) | |
q | ## 退出 |
2.服务的控制管理
ssh —> sshd
client server
命令 | 含义 |
---|---|
systemctl start sshd.service | ##开启sshd服务(一个是否允许他人进入自己系统的服务) |
systemctl stop sshd.service | ## 关闭服务 |
systemctl status sshd.service | ##显示当前服务于状态 |
systemctl restart sshd.service | ##重启服务 |
systemctl enable sshd.service | ##开机自启动服务 |
systemctl disable sshd.service | ## 开机不允许启动服务 |
systemctl list-units | ##列出系统中运行的服务 |
systemctl list-unit-files | ##列出系统中服务开机状态 |
systemctl list-dependencies sshd | ##列出服务依赖关系 |
systemctl mask sshd.service | ##冻结sshd服务 |
systemctl unmask sshd.service | ## 解锁sshd服务 |
systemctl set-default multi-user.target | ## 开机不启动图形 |
systemctl set-default multi-user.graphical.target | ## 开机启动图形 |
注意:级别有0-6,0是关机,6是重启,234是无图形的界面,5是有图形的界面
3.登录审计命令
登录审计:在服务端里面查看使用服务端的客户端的相关信息
1.添加登录信息 | vim /etc/motd | #文件内容就是登录后显示的信息 |
---|---|---|
2.用户的登陆审计(w) | w | |
w -f | ##查看使用来源 | |
w -i | ##显示ip | |
w /var/run/utmp | ||
3. last | last /var/run/utmp | ##查看使用过并退出的用户 |
4. lasbt | lastb /var/run/utmp | ##试图登陆未成功 的用户 |
4.找工作小结
(ps)cpu占有量排名前5的ID 号:
(1)显示所有的进程:ps ax
(2)列出所有的pid; ps -o pid
(3)列出所有的cpu信息;ps -o %cpu
(4)对cpu进行降序排列: ps --sort=-%cpu
(5)排名前五 |head -n 6
(最后的显示信息带有表头如果要前五,需要前六行;不需要表头,则从第二行开始排序);
注意:
所有的命令通过组合,形成组合参数的命令;