一、进程控制
kill:
语法格式: kill +信号 pid
[root@bogon ~]# kill -l //列出所有支持的信号 编号 信号名
-1 HUP 重新加载进程或者重新加载配置文件
[root@bogon~]# kill -HUP pid
-9 KILL 强制杀死
-15 TERM 正常杀死(这个信号可以默认不写) kill pid
-18 CONT 激活进程
-19 STOP 挂起进程
[root@bogon ~]# kill -STOP pid
1、修改完配置文件必须要重新加载配置文件或者是重新启动服务,目的是为了让修改后的配 置文件生效
2、重新加载配置文件pid保持不变,重启服务,pid会发生改变
3、pid的作用是用来唯一标识一个进程,如果说这个进程关闭又重启,我们系统不会保留这个 原有的pid,会生成一个新的pid给我们的服务使用
-v:取反 systemctl :启动 第一个为主进程
启动进程
kill -9 +pid //干掉某个进程
pkill -9 进程名字 //干掉与之相关的所有进程
[root@bogon ~]# pkill -9 -t 指定终端 名称
不加-9只杀死在终端上运行的进程,加-9连终端本身一起干掉
pkill -u 用户名称 //用户的进程
[root@bogon ~]# pkill -u root(不要试)干掉root进程
killall:
备注:
如果没有killall的命令:就先安装
[root@bogon-server-11 /]# yum -y install psmisc
1
killall -9 名字(杀死与之相关的所有)
发现被入侵之后怎么办?
1、技术不太好,可以考虑先关机,然后找到上游防火墙,只允许自己的IP地址SSH,除此之外全部封禁;如果无法访问上游防火墙,则可以使用服务器本身的防火墙策略,当防火墙规则生效之后kill掉对方。
2、如果支持诸如串行控制台之类的带外连接登陆服务器,可以将network服务停掉,然后添加防火墙规则 。
3、修复之后,你永远不知道对方做过什么,最安全的方法是备份所有数据,重装系统。
二、重定向
1、文件描述符(FD):进程使用文件描述符来管理打开的文件
0:标准输入
1:标准正确输出
2:标准错误输出
2、 应用场景:
1、shell脚本
2、把来自命令的输出写入到文件
获取当前pid(echo打印)
3、 如何查看一个进程打开的文件描述符
查看当前终端
4、 例:ls / 把根目录下所有的文件名/目录名记录到/opt/a.txt(a.txt是个新文件)
FD:1重定向的符号
>:覆盖
>>:追加
&:即能承接标准正确输出,又能承接标准错误输出(混合输出)
(承接正确输出)
(2承接标准错误输出)
(正确、错误都承接输出)
(命令返回结果不想看用空设备)
5、制定脚本:
vim useradd.sh
6、主机存活检测(ping)
ping www.baidu.com
ping 10.9.12.250
-c: ping的次数
$? 上一条命令的返回值
-eq 等于
7、 获取这个网络中,哪些IP可用,哪些IP不可用
ip,ping成功不可用;ip,ping不成功可以
标准输入
8、 利用多重定向创建多行文件
cat >> file200.txt <<eof ( <<:输出)
111
222
eof(开头,结尾一样)
三、管道
作用:实现进程间通信的手段之一
好处:Linux的程序小,功能单一,效率高,但是无法完成很复杂的任务,就需要借助于管道 将多个进程组合起来
1、sort排序(默认从小到大) - -sort:ps aux 、 ps axo
-r:从大到小
-k:指定按照那一列排序
-n:按照数值排序
2、uniq去重
-c:统计
3、wc统计
wc -l :统计行数
案例:统计当前系统中一个有多少个用户
案例:统计系统中有多少个进程
4、awk切片
NR:行 print:列
free -m:获取当前服务器内存的使用量
F: 指定字段分隔符,默认以空格或者是tab分隔
$7 第七个字段
$NF表示最后一个字段
$(NF-1)表示倒数第二个字段
NR
NR==2 第二行
NR==9 第九行
例子:
例子: