Linux进程管理
程序:
一组指令以及参数集合,按照相应的逻辑控制计算机完成特性人物
1、动态
2、有生命周期
3、运行状态
4、操作系统运行的基本单位
5、并发性、交互性
进程:
运行的程序,动态。操作系统上的基本单位,生命周期,状态
操作系统以进程为单位分配系统资源
每一个进程运行时独立的
具有独立的地址空间,运行状态
多个程序同时运行,每一个程序就是一个进程
父进程和子进程
父进程—>子进程—>子进程
父进程的权限,资源
运行自己的程序。(exec())
------------exit()
唤醒父进程 没有父进程后,子进程变为僵死进程
线程:
一个进程中可有多个线程,线程无法独立运行
进程的生命周期:等待–就绪–运行–阻塞–休眠–死亡
进程的管理工具
pstree 进程树 查看进程之间的关系
-p显示pid
-u显示用户
ps:
查看进程
-ef:显示进程
-a:打印当前终端下的进程
-u:用户的进程
-ax:显示详细信息
[root@node5 test]# ps -aux |grep ssh
pstree
kill:
killall pkill
-9 强制终止
-w等待进程死亡
-l列出已知信号
-u 指定用户
-0只查看状态,不操作
pgrep
查看进程的信息
[root@localhost ~]# pgrep -l ssh
7361 sshd
8141 sshd
8145 sshd
htop
查看进程,图形界面操作,安装之前需要安装epel rpm包
vmstat
[root@localhost ~]# vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
2 0 0 343936 2128 492648 0 0 16 17 32 59 0 0 100 0 0
参数含义:
选项作用:
-V显示vmstat版本信息
[root@localhost ~]# vmstat -V
vmstat from procps-ng 3.3.10
-n只在开始时显示一次各字段名称
-d显示各个磁盘相关统计信息
-p显示指定磁盘分区统计信息
-t输出信息的时候也将时间一并输出
程序优先级:0 - 139
有效的时时优先级:0 - 99
非有效时时优先级:100 - 139
相对优先级nice
nice值 -20~19 数字越小,优先级越高
PR/NI体现优先级
PR=静态优先级-100
NI是nice值
修改nice值方法:
1、top “r” --enter;输入PID–>enter;输入nice值–>enter
2、renice[-20~19] PPID
3、htop F7(-) F8(+)
进程的状态
sleeping
作业
[root@localhost ~]# egrep== egrep -E
[root@localhost ~]# ping www.baidu.com > /dev/null 2>&1 &(&:放在后台运行)
[1] 8300
[root@localhost ~]# ps -ef |grep -E "ping|sleep"
root 8300 8156 0 18:07 pts/0 00:00:00 ping www.baidu.com
root 8302 8156 0 18:07 pts/0 00:00:00 grep --color=auto -E ping|sleep
[root@localhost ~]# jobs
[1]+ Running ping www.baidu.com > /dev/null 2>&1 &
[root@localhost ~]# ping 192.168.59.45 > /dev/null 2>&1 &
[2] 8303
[root@localhost ~]# jobs
[1]- Running ping www.baidu.com > /dev/null 2>&1 &
[2]+ Running ping 192.168.59.45 > /dev/null 2>&1 &
[root@localhost ~]# fg %1
ping www.baidu.com > /dev/null 2>&1
[root@localhost ~]# kill %2
[root@localhost ~]# jobs
[2]+ Terminated ping 192.168.59.45 > /dev/null 2>&1
进程在前后台的运行
在前台一次只能运行一个作业
在后台可以运行多个作业
jobs查看后台作业;与终端、不同终端上的作业要在对应终端上查看。
fg %job编号 把作业从后台调到前台运行
bg %job编号 把后台作业运行起来
Ctrl z 挂起
kill %job编号 先停止,后杀死
ping 192.168.59.45 &
mem:内存信息文件
防火墙
1、Linux系统结构,在x86平台的CPU,是如何执行内核程序和用户程序的
ring0-----ring3:从里到外越来越低级
ring0:与硬件、设备或总线控制相关的程序–内核程序
ring1、ring2:驱动程序或者与虚拟化相关的程序
ring3:用户态的程序
2、/proc
3、/sys
与驱动有关的
4、防火墙的基础
网络防火墙、主机防火墙
硬件防火墙、软件防火墙
网络安全的知名企业:深信服、思科、天融信
硬件防火墙:思科AIR-CT5508-300-K9、华为USG6670
5、四表,五链
四表:
filter:INPUT、OUTPUT、FORWARD
nat:PREROUTING、POSTROUTING
raw:PREROUTING、OUTPUT
mangle:INPUT、OUTPUT、FORWARD、PREROUTING、POSTROUTING
四表在同一个链中执行优先级次序:raw–>mangle–>nat–>filter
五链:INPUT、OUTPUT、FORWARD、PREROUTING、POSTROUTING
6、防火墙配置
查看所有规则:
[root@localhost ~]# iptables -L
查看指定表的规则:(-t)
[root@localhost ~]# iptables -t mangle -L
删:
[root@localhost ~]# iptables -F
[root@localhost ~]# iptables -t filter -D INPUT 2
(删除第二行)
[root@localhost ~]# iptables -t filter -D INPUT -p tcp --sport 22 -j ACCEPT
(删除端口22:ssh)
查:
[root@localhost ~]# iptables -nvL --line-number
-n:转化成数字
-v:显示详细信息
-L:查看
–line-number:显示链下规则的序号
查看已连接端口:
[root@localhost ~]# netstat -lunpt
增:
target:
ACCEPT:容许,接收
DROP:丢弃
REJECT:拒绝
[root@localhost ~]# iptables -t filter -I INPUT -s 192.168.59.45 -j DROP
[root@localhost ~]# iptables -t filter -I INPUT -s 192.168.59.45 -j REJECT
[root@localhost ~]# iptables -t filter -I INPUT -d 192.168.59.45 -j ACCEPT
-d:目的地址
-s:源地址
-I:指定链,添加到第一条
[root@localhost ~]# iptables -t filter -I OUTPUT -d 192.168.59.44 -j DROP
[root@localhost ~]# iptables -t filter -A INPUT -s 192.168.59.44 -j REJECT
-A:追加到最后一条
[root@localhost ~]# iptables -t filter -I INPUT 2 -s 192.168.59.44 -j ACCEPT
-I INPUT/OUTPUT/… 行号:添加到指定行号
禁ping:
[root@localhost ~]# iptables -t filter -A INPUT -s 192.168.59.44 -p ICMP -j REJECT
[root@localhost ~]# iptables -t filter -I INPUT -s 192.168.59.44 -p tcp --dport 80 -j REJECT
-p:匹配协议:
–dport num:目标端口
–sprot num:源端口
[root@localhost ~]# iptables -t filter -I INPUT -p tcp --dport 22 -j ACCEPT
[root@localhost ~]# iptables -t filter -A INPUT -j REJECT
同时增加多个:
[root@localhost ~]# iptables -t filter -I INPUT -p ICMP -s 192.168.59.44,192.168.59.55 -j ACCEPT
[root@localhost ~]# iptables -vnL
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT icmp -- * * 192.168.59.55 0.0.0.0/0
0 0 ACCEPT icmp -- * * 192.168.59.44 0.0.0.0/0
719 44256 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
0 0 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Chain OUTPUT (policy ACCEPT 5 packets, 396 bytes)
pkts bytes target prot opt in out source destination
添加一个网段:
[root@localhost ~]# iptables -t filter -I INPUT -p ICMP -s 192.168.59.0/24 -j ACCEPT
改:
[root@localhost ~]# iptables -t filter -R INPUT 2 -p tcp --dport 80 -s 192.168.59.55 -j ACCEPT
-P 修改指定表的指定链的默认策略
[root@localhost ~]# iptables -t filter -P FORWARD ACCEPT
保存:
*centos7找不到iptables解决方法:
首先不管防火墙有没有关 都使用`systemctl stop firewalld` 关闭防火墙
然后使用 `yum install iptables-services` 安装或更新服务
再使用`systemctl enable iptables` 启动iptables
最后 `systemctl start iptables` 打开iptables
再使用`service iptables save`进行保存
!:排除
[root@localhost ~]# iptables -t filter -I INPUT -p ICMP ! -s 192.168.59.145 -j ACCEPT
(在192.168.59网段中,除了192.168.59.145都接收)
扩展匹配条件:
tcp扩展模块
常用的扩展匹配条件如下:
-p tcp -m tcp --sport
用于匹配tcp协议报文的源端口,可以使用冒号指定一个连续的端口范围
-p tcp -m tcp --dport
用于匹配tcp协议报文的目标端口,可以使用冒号指定一个连续的端口范围
setenforce 0:关闭微型防火墙
setenforce 1:开启防火墙
getenforce:查看微型防火墙