进程是干啥的(* ̄︶ ̄)

进程的基本概念

程序
实现某些功能的软件,以文件的形式存在磁盘中

进程
正在运行的程序

父进程
程序运行时启动的第一个主进程

子进程
父进程引发的相关进程

学习内容:
1、进程的基本概念
2、查看进程,看懂进程的信息
3、结束进程
4、调整进程的优先级
5、进程的前后台切换

查看进程的命令
pstree 查看进程树
-u 显示进程所属的用户
-p 显示PID
-a 显示参数

ps 查看进程

ifconfig | head -2 :查看虚拟机ip地址

查看进程当前状态
主要信息包括:进程的用户、PID、stat状态、command命令等信息
[root@zhendong yum.repos.d]# ps
PID TTY TIME CMD
58973 pts/1 00:00:00 bash
62002 pts/1 00:00:00 ps

TTY:终端号(使用tty命令查看当前终端)
pts/0-b 伪终端,通常是远程登录到Linux服务器的命令界面

选项(加-和不加会有区别)
a 显示其他终端进程
u 以user,PID这种格式显示进程信息
x 显示系统进程,通常是开机启动产生的进程
e 显示进程中的环境信息
f 以_显示进程间的父子关系
l或者-l 以长格式显示进程信息
-o 按照自定义格式显示进程信息

扫描二维码关注公众号,回复: 11811252 查看本文章

常用的组合
ps aux

USER:用户名
PID:进程号
1号进程systemd,是所有其他进程的父进程,(祖先)
%CPU CPU占用率
%MEM 内存占用率
VSZ 虚拟内存
RSS 实际内存
TTY 终端信息
STAT 状态信息
START 开启进程的时间
TIME 运行的时间
COMMAND 进程的命令

stat状态
R running 运行状态,CPU正在处理的进程
S sleeping 睡眠状态,暂时没有运行,后台挂着,通常是系统服务或网络服务
Z zombie 僵尸状态(没有正常退出的进程)
T stopped 暂停状态(挂起状态,不占用CPU)
X 死掉的进程
< 高优先级
N 低优先级
s(小写) 包含子进程

  •   	位于后台的进程组
    

l 多个子进程

ps -l

F 进程的权限
4表示进程是root权限
S 进程的状态
UID 进程所属用户的UID
PID 进程
PPID ParentPID,父进程ID
C CPU使用率
PRI 进程优先级
NI NICE值
ADDR_SZ WCHAN 内存相关
TTY 终端信息
TIME 运行时间
CMD 进程名称

ps -ef | more :添加 | more 添加管道,进行分页,就不会占屏幕

top 动态查看进程状态
第二行
total 进程总数
running 运行状态进程数
sleeping 休眠进程数
stopped 停止进程数
zombie 僵尸进程数

第三行
%CPU
us(user space) 用户空间占用的CPU百分比
sy(system) 系统内核占用的CPU
ni(nice) 修改nice值占用的CPU
id(idle) 空间的CPU
wa(wait) 等待IO完成占用的CPU百分比
hi(hardware interrupt) 硬中断占用的CPU(硬件中断)
si(software interrupt) 软中断占用的CPU(软件中断)
st(stolen) 被偷走的CPU,比如VMware

第四行
total 总内存
free 空闲内存
used 已用内存
buff/cache 缓冲/缓存

第六行
PID 进程号
USER 用户
PR 优先级Priority
NI NICE值
VIRT 虚拟内存
RES 常驻内存
SHR 共享内存
S 状态
%CPU CPU占用率
%MEM 内存占用率
TIME+ 运行时间
COMMAND 进程名

top执行过程中可以使用的按键
q 退出
? 显示所有可用的按键
P 按CPU使用排序
M 按内存使用排序
N 按PID排序
T 按CPU使用时长排序
W 保存当前的设置到/root/.toprc
d 修改刷新的间隔时间(默认3秒)
z 显示彩色的信息
c 显示完整的命令
f 设置显示字段,排序字段
R 切换升序,降序

选项
-d 后面接秒数
-b 以批次的方式执行top
-n 与-b搭配使用,指定执行几次top的输出
-p 观察指定PID的进程
-u 查看用户的进程

结束进程
kill

kill的实质是给进程发信号
常用的信号:
9 强制结束
19 暂停
18 继续
15 正常退出
1 重新加载
2 强制中断

使用kill必须知道进程的PID

查看进程PID
pidof 查找指定名称的PID
例子:pidof vim

ps -C 关键字(精确查找)
例子:ps -C vim
pgrep -l 关键字(模糊查找)
例如:
pgrep -l vi
或者
ps -ef | grep vim

杀死进程
kill -9 PID

查看信号的列表 kill -l
9 SIGKILL 强制结束
19 SIGSTOP 暂停 CTRL+Z
18 SIGCONT 继续
15 SIGTRM 正常退出 CTRL+D
1 SIGHUP 重新加载
2 SIGINT 强制中断 CTRL+C

强制杀死进程
kill -9 PID

暂停进程
kill -19 PID
kill -stop PID

激活进程
kill -18 PID
kill -cont PID

pkill
按照进程的名字控制进程
pkill -9 vim

根据用户控制进程
pkill -9 -u 用户名

根据终端控制进程
pkill -9 -t pts/2

killall 杀死所有和关键字相关的进程
killall -9 关键字

三个快捷键
CTRL+C 强制中断前台进程 kill -2
CTRL+D 正常退出前台进程 kill -15
CTRL+Z 暂停进程,将其挂起 kill -19

进程的操作方式
交互式
执行命令之后需要人为操作,会占用命令终端:
例如:vim,man,passwd

非交互式
执行命令之后不需要人为操作,不会占用命令终端
例如:
ls date pwd cal passwd –stdin

进程的前后台切换
启动进程时,在命令尾部加&,可以让命令在后台运行
例子:ping命令会占用命令提示符

尾部加&,在后台运行,不占用命令提示符
例如:
ping qq.com >> ping.log &
tail -f ping.log

把前台正在运行的进程放到后台
ctrl+z

显示后台挂起的任务
jobs
[root@zhendong 20200717]# jobs
[1]- Running ping 163.com >> ~/ping.log & (wd: /etc/yum.repos.d)
[2]+ Stopped vim haha

1工作号,工作号越大,表示最新开启

  • 当前的进程

后台任务重新放回前台
fg 工作号

进程调度
Linux采用的是CFS算法(完全公平调度)
PRI值越低,程序优先级越高
PRI值不能直接修改,但是可以通过修改NICE值

PRI(new)=PRI(old)+NICE

NICE值取值范围:-20~19

开启程序的时候指定NICE值
nice -n NICE值 进程名

修改已经存在的进程的NICE值
renice NICE值 PID
Find 文件查找命令
grep:查询文件里的关键字(正则)
Find:查找指定目录下的文件

find 路径 选项 动作
find 查询的路径 查询的条件 条件相关的参数 对查询结果的处理

[root@ops14 ~]# find ./ -name heihei -print
./20200713/heihei
./heihei

注意:不指定路径,默认查找当前目录的文件,查找时是递归查找

查询的条件
条件可以是文件名,文件大小,文件类型,文件权限,所属等
默认是查找指定目录下的所有文件

根据文件名查找
-name “文件名”:严格区分大小写
-iname “文件名”:不区分大小写

[root@ops14 ~]# find ./ -name heihei
./20200713/heihei
./heihei
[root@ops14 ~]# find ./ -iname heihei
./20200713/heihei
./heihei
./HEIHEI

根据属主,属组查找
-user 用户名:查找属于指定用户的文件
-group 组名:查找属于指定用户组的文件

-uid UID:查找属于指定UID的文件
-gid GID:查找属于指定GID的文件

-nouser 查找没有属主的文件
-nogroup 查找没有属组的文件

根据文件的类型查找
-type 文件类型
f file 普通文件(-)
d directory 目录
c char dev 字符设备
l(小写L) 符号链接
p pipe 管道
s sockt 套接字

例子:
find ./ -type f
find ./ -type d

根据文件的大小查找
-size 大小[bkMG]
+3G 大于3G
-3G 小于3G
3G 等于3G

例子:
find ./ -size +1k

按时间戳查找
min minute 分钟
time 天数

访问时间(access time)
amin
atime

修改时间(modify time 文件内容被修改)
mmin
mtime

改变时间(change time改权限chmod或者改所有者chown)
cmin
ctime

find / -atime 2 #查询2天前当日被访问的文件
+2 查询2天前访问过的文件
-2 查询2天之内访问过的文件

练习:
1、查找/tmp目录下修改时间为前天的文件
find /tmp -mtime 2
2、查找/tmp目录下修改时间为前天或者更早的文件
find /tmp -mitme +2
3、查找/tmp目录下一周之内修改过文件属性的文件
find /tmp -ctime -7

以文件的UGO权限查找
-perm 权限

例子:
find ./ -perm 644
rw-r—r—

多条件查找
条件1 -and 条件2 逻辑与 -and == -a
条件1 -or 条件2 逻辑或 -or == -o
!条件 逻辑非 -not == !

例子:查找当前目录下不属于root用户,且文件名不是file1的文件
find ./ -not -user root -and -not -name file1
或者
find ./ ! -user root -a ! -name file1

动作(对查询结果的处理)、
-print:默认处理,打印到屏幕
-ls:类似于对查询结果进行ls -l
-delete 删除找到的文件

练习:
1、查找当前目录下,不属于root用户
find ./ -not -user root
2、查找当前目录下,不属于root用户且权限(-perm)是755的文件
find ./ -not -user root -and -perm 755
3、查找/etc/目录下大于1M的普通文件(f)
find /etc -size +1M -and -type f
查找当前目录下文件名是a开头,c结尾的文件(a*c)

猜你喜欢

转载自blog.csdn.net/weixin_51014063/article/details/108739039