动态进程top 、htop
top 动态时时的显示机器的负载状态
top #动态显示信息,三秒刷新一次
在工作中必须监控的东西 load average(平均负载)等待cpu处理的队列长度 也是个数。
1分钟 第一个数字
5分钟 第二个数字
15分钟 第三个数字
======================
计算cpu负载:load average的三个值: 0.10, 0.16, 0.12,分别除cpu的个数,得出的值,如果值大于1那么那时候的负载高。
top操作
[root@linux-server ~]# top
h|? 帮助
> 往下翻页
< 往上翻页
M 按内存排序
P 按cpu排序
q 退出
z 彩色显示
W 保存
=============================
PR 优先级进程状态了解
Sl 以线程的方式运行
Ss s进程的领导者,父进程
R+ +表示是前台的进程组
S< <优先级较高的进程
SN N优先级较低的进程ni :nice值
id: cpu空闲率
wa:cpu等待,等待输入/输出的进程占用的 CPU 百分比。如果使用率过高,表示硬盘该换了
进程优先级 nice
nice 值越高:表示优先级越低,例如+19,该进程容易将CPU 使用量让给其他进程。
nice 值越低:表示优先级越高,例如-20,该进程更不倾向于让出CPU。
进程控制
kill,pkill
语法: kill 信号 PID #信号也是进程间通信的一种方式
[root@linux-server ~]# kill -l #查看所有信号
-1 HUP 重新加载进程或者重新加载配置文件,PID不变
-9 KILL 强制杀死
-15 TERM 正常杀死(这个信号可以默认不写)
-18 CONT 激活进程
-19 STOP 挂起进程
常识
1.查看当前CPU负载
[root@linux-server ~]# uptime
17:35:01 up 16:02, 3 users, load average: 0.00, 0.02, 0.052.查看内存使用
[root@linux-server ~]# free -m
total used free shared buff/cache available
Mem: 1984 154 1508 8 321 1632
Swap: 2047 0 2047-m:单位M
3.linux启动过程
1加电,2加载bios设置,3加载grub,4加载内核系统到内存当中,
5加载配置文件,6加载内核模块,7完成相应的初始化工作和启动相应的服务,
8启动系统进程,9出现登录界面,10开机启动完成4.查看系统的版本和内核
[root@linux-server ~]# cat /etc/redhat-release #查看版本
CentOS Linux release 7.4.1708 (Core)
[root@linux-server ~]# uname -a #看查正在运行的内核版本
Linux linux-server 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
[root@linux-server ~]# uname -r #查看内核版本
3.10.0-693.el7.x86_645.修改主机名
[root@linux-server ~]# hostnamectl set-hostname xxxx #主机名,修改完之后断开与终端连接,然后在重新连接即可。
查看主机名
[root@linux-server ~]# hostname6.跳板机(堡垒机)的作用
1 身份验证
2 屏幕录制,防止员工对服务器做有害的操作
3 批量操作 一次性操作2-200台机器7.安装过操作系统吗?怎么安装?
1.小批量设备,使用U盘安装
(调整bios参数从U盘启动)
2.大批量设备搭建PXE装机系统,从网络批量安装
(调整网络启动项,从网络启动)
重定向
date 显示当前系统时间
1> 正确输出重定向 覆盖
1>> 正确的输出 追加2> 错误的输出 覆盖
2>> 错误的输出 追加
1> 2> 正确输出写入到xx 错误的输出写入到XX&> 混合输出 无论正确错误都写入到X
脚本中使用重定向
实战一(没有使用重定向)
[root@qfedu.com ~]# vim ping1.sh
#!/bin/bash
ping -c1 10.18.40.100
if [ $? -eq 0 ];then
echo "10.18.40.100 is up."
else
echo "10.18.40.100 is down!"
fi
[root@qfedu.com ~]# chmod +x ping1.sh
[root@qfedu.com ~]# ./ping1.sh #执行文件(执行脚本)
PING 10.18.40.100 (10.18.40.100) 56(84) bytes of data.--- 10.18.40.100 ping statistics ---
1 packets transmitted, 0 received, 100% packet loss, time 0ms10.18.40.100 is down!
实战二(使用重定向)
[root@qfedu.com ~]# vim ping1.sh
#!/bin/bash
ping -c1 10.18.40.100 &>/dev/null
if [ $? -eq 0 ];then
echo "10.18.40.100 is up." >>up.txt
else
echo "10.18.40.100 is down!" >>down.txt
fi
[root@qfedu.com ~]# ./ping1.sh
学习补充:
ping -c5000 -i0.001 39.103.214.192 -c次数 -i时间
------------------------------------------------------------
sort -t":" -k3 -n /etc/passwd -r (倒序)[root@xxxxxxxx ~]# sort -t":" -k3 -n /etc/passwd #以: 分隔,将第三列按字数升序
[root@xxxxxxxx ~]# sort -t":" -k3 -n /etc/passwd -r #以: 分隔,将第三列按字数降序
[root@xxxxxxxx~]# sort -t":" -k3 -n /etc/passwd |head #以: 分隔,将第三列按字数升序看前十行
[root@xxxxxxxx ~]# sort -t":" -k3 -n /etc/passwd |tail #以: 分隔,将第三列按字数升序看后十行
参数详解:
sort 排序,默认升序
-t 指定分隔符
-k 指定列
-n 按数值
-r 降序
head 默认输出前十行
tail 默认输出后十行
作业练习:
1 混合输出用什么命令? 正确输出写入到up.txt 错误的信息写入到erro.txt.
2 将你的/etc/passwd 文件 的GID 按照倒叙排列。
3 将当前日期 写入到 /tmp/1.txt 文件中
4 写入 hello world 追加到 /tmp/1.txt 中
5 1> 2> 都是什么意思?
6 ping 5千次机器 快速完成
7 说说查看进程的命令及他们的区别
8 top命令聊一聊吧
9 说说杀死进程都有什么命令?
10 写一个脚本,要求判断127.0.0.1通不通, 过程不要看到。 通的ip写到/tmp/1.txt中
11 服务器突然无法ssh登录,但能ping通,你认为那些有可能原因造成?请简述服务器重启登录后的分析排查过程
12 服务器遭到入侵,作为安全管理人员,你该如何处理