top 命令
top命令提供了实时的对系统处理器的状态监视.它将显示系统中CPU最“敏感”的任务列表.
[root@localhost ~]# top
top - 12:26:40 up 4:26, 6 users, load average: 0.09, 0.18, 0.18
Tasks: 332 total, 1 running, 331 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.2 us, 0.9 sy, 0.0 ni, 98.8 id, 0.0 wa, 0.0 hi, 0.1 si, 0.0 st
KiB Mem : 1865308 total, 101652 free, 1379312 used, 384344 buff/cache
KiB Swap: 2097148 total, 1994748 free, 102400 used. 246176 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
59299 root 20 0 161296 6040 4300 S 1.0 0.3 0:03.15 sshd
118 root 20 0 0 0 0 S 0.3 0.0 0:08.74 kauditd
717 root 16 -4 55508 352 224 S 0.3 0.0 0:15.42 auditd
3398 root 20 0 402664 5428 1468 S 0.3 0.3 0:48.83 vmtoolsd
11860 kgwei 20 0 402664 5164 1216 S 0.3 0.3 0:48.10 vmtoolsd
59429 root 20 0 162720 3036 1576 S 0.3 0.2 0:01.03 top
1 root 20 0 193824 4272 2336 S 0.0 0.2 0:04.18 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.09 kthreadd
3 root 20 0 0 0 0 S 0.0 0.0 0:01.44 ksoftirqd/0
5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H
7 root rt 0 0 0 0 S 0.0 0.0 0:00.66 migration/0
8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh
9 root 20 0 0 0 0 S 0.0 0.0 0:17.01 rcu_sched
10 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 lru-add-drain
11 root rt 0 0 0 0 S 0.0 0.0 0:00.08 watchdog/0
12 root rt 0 0 0 0 S 0.0 0.0 0:00.07 watchdog/1
13 root rt 0 0 0 0 S 0.0 0.0 0:00.70 migration/1
14 root 20 0 0 0 0 S 0.0 0.0 0:00.41 ksoftirqd/1
16 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/1:0H
前五行是当前系统情况整体的统计信息区
1、top 命令的第一行:
依次对应:系统当前时间 up 系统到目前为止 i 运行的时间, 当前登陆系统的用户数量, load average 后
面的三个数字分别表示距离现在一分钟,五分钟,十五分钟的负载情况。
2、top 命令的第二行:
依次对应:tasks 表示任务(进程),332 total 则表示现在有 332 个进程,其中处于运行中
的有 1 个,331 个在休眠(挂起),stopped 状态即停止的进程数为 0,zombie 状态即僵尸
的进程数为 0 个。
3、top 命令的第三行,cpu 状态:
只看空闲就可以了:cpu 空闲率为 98.8%
依次对应
us:user 用户空间占用 cpu 的百分比
sy:system 内核空间占用 cpu 的百分比
ni:niced 改变过优先级的进程占用 cpu 的百分比
空闲 cpu 百分比
wa:IO wait IO 等待占用 cpu 的百分比
hi:Hardware IRQ 硬中断 占用 cpu 的百分比
si:software 软中断 占用 cpu 的百分比
st:被 hypervisor 偷去的时间
4、top 命令的第四行,内存状态:
总内存:1865308kb 101652/1024/1024=0.09694290161132812g 已经使用 1379312kb 缓存区内存 384344kb
缓冲区是从主内存中特地预留出的内存,用来存放特定的一些信息,例如从磁盘中取得的文件表,程序正
在读取的内容等等
5、top 命令第七行,各进程的监控: PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
依次对应:
PID — 进程 id
USER — 进程所有者
PR — 进程优先级
NI — nice 值。负值表示高优先级,正值表示低优先级
VIRT — 进程使用的虚拟内存总量,单位 kb。VIRT=SWAP+RES
RES — 进程使用的、未被换出的物理内存大小,单位 kb。RES=CODE+DATA
SHR — 共享内存大小,单位 kb
S — 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
%CPU — 上次更新到现在的 CPU 时间占用百分比
%MEM — 进程使用的物理内存百分比
TIME+ — 进程使用的 CPU 时间总计,单位 1/100 秒
COMMAND — 进程名称(命令名/命令行)
内存、cup 管理 uptime 命令
12:43:52 up 4:44, 4 users, load average: 0.01, 0.08, 0.12
1.服务器工作时间
2.在线用户
3.平均负载 一分钟,五分钟,十五分钟的负载情况
看当前登录的账户 who; 查看最新操作电脑的用户 last
who 命令: 显示当前正在系统中的所有用户名字,使用终端设备号,注册时间。
whoami : 显示出当前终端上使用的用户。
last: 作用是显示近期用户或终端的登录情况
进程管理查看、杀死
1、查看进程
pstree 查看进程树
pstree -ap 显示所有信息
pstree | grep httpd
pstree -ap | grep httpd
ps -au
ps -au |grep httpd
ps -aux
ps 中 aux 的含义:
显示现行终端机下的所有程序,包括其他用户的程序(a)
以用户为主的格式来显示程序状况。 (x)
显示所有程序,不以终端机来区分(u)
2、关闭进程
pkill httpd pkill 进程的名字
kill 2245 kill 进程号
kill -9 1234 kill -9 进程号 强制杀死
kill:执行 kill 命令,系统会发送一个 SIGTERM 信号给对应的程序。当程序接收到该 signal 信号后,将会发
生以下事情:
程序立刻停止
当程序释放相应资源后再停止
程序可能仍然继续运行
大部分程序接收到 SIGTERM 信号后,会先释放自己的资源,然后再停止。但是也有程序可能接收信号后,
做一些其他的事情,如果程序正在等待 IO,可能就不会立马做出响应,也就是说,SIGTERM 多半是会被阻塞的。
kill -9: kill -9 命令,系统给对应程序发送的信号是 SIGKILL,即 exit。exit 信号不会被系统阻塞,所以 kill -9
能顺利杀掉进程。
五、查看端口
netstat -tunlp 用于显示 tcp,udp 的端口和进程等相关情况。
netstat 查看端口占用语法格式:
netstat -tunlp | grep 端口号
netstat -tunpl |grep httpd
-t 或--tcp 显示 TCP 传输协议的连线状况
-u 或--udp 显示 UDP 传输协议的连线状况
-n 或--numeric 直接使用 IP 地址,而不通过域名服务器
-p 或--programs 显示正在使用 Socket 的程序识别码和程序名称。
-l 或--listening 显示监控中的服务器的 Socket。
关闭防火墙:
Firewalld 关闭:systemctl stop firewalld
SELinux 关闭:setenforce 0
六、查看硬盘信息
df 命令作用是列出文件系统的整体磁盘空间使用情况。可以用来查看磁盘已被使用多少空间和还剩余多少
空间。
df -h 以人们易读的方式显示,总共多少 g 用了多少 g
df /home 查看该文件夹所在磁盘的使用情况
Linux systemctl 管理服务、防火墙 firewalld 以及 SELinux 配置
systemctl 就是 service 和 chkconfig 这两个命令的整合,在 CentOS 7 就开始被使用了,systemctl
是系统服务管理器命令,它实际上将 service 和 chkconfig 这两个命令组合到一起。
Syetemclt 管理服务常用命令
1、启动服务:systemctl start httpd
2、关闭服务:systemctl stop httpd
3、重启服务:systemctl restart httpd
3、查看一个服务的状态:systemctl status httpd
5、查看当前已经运行的服务:systemctl list-units -t service
6、列出所有服务: systemctl list-units -at service 注意顺序
8. 设置开机自启动: systemctl enable httpd
9. 停止开机自启动: systemctl disable httpd
10、列出所有自启动服务:
systemctl list-unit-files|grep enabled
systemctl list-unit-files|grep disabled
systemctl list-unit-files|grep disabled | grep httpd
Firewalld 防火墙的设置
从 CentOS7(RHEL7)开始,官方的标准防火墙设置软件从 iptables 变更为 firewalld,相信不少习惯使用
iptables 的人会感到十分不习惯,但实际上 firewalld 更为简单易用。
firewalld 的基本使用:
启动: systemctl start firewalld
关闭: systemctl stop firewalld
查看状态: systemctl status firewalld
开机禁用 : systemctl disable firewalld
开机启用 : systemctl enable firewalld
配置 firewall-cmd :
显示状态: firewall-cmd --state
查看所有打开的端口: firewall-cmd --zone=public --list-ports
更新防火墙规则: firewall-cmd --reload
那怎么开启一个端口呢:
firewall-cmd --zone=public --add-port=80/tcp --permanent (–permanent 永久生效,没有此参数重启后失效)
重新载入:
firewall-cmd --reload 修改 firewall-cmd 配置后必须重启
查看:
firewall-cmd --zone= public --query-port=80/tcp
删除:
firewall-cmd --zone= public --remove-port=80/tcp --permanent
SELinux 防火墙的设置
安全增强型 Linux(Security-Enhanced Linux)简称 SELinux,它是一个 Linux 内核模块,也是 Linux 的一个安全子系统。
SELinux 的结构及配置非常复杂,而且有大量概念性的东西,要学精难度较大。很多 Linux 系统管理员嫌麻烦都把 SELinux 关
闭了。阿里云安装的 centos 默认已经关闭了。西部数码云服务器默认也是关闭的
查看 SELinux 状态:
1、/usr/sbin/sestatus -v 如果 SELinux status 参数为 enabled 即为开启状态
SELinux status: enabled
2、getenforce 也可以用这个命令检查
关闭 SELinux:
1、临时关闭(不用重启机器):
setenforce 0 ##设置 SELinux 成为 permissive 模式
setenforce 1 设置 SELinux 成为 enforcing 模式
2、修改配置文件需要 重启机器:
修改 /etc/selinux/config 文件
将 SELINUX=enforcing 改为 SELINUX=disabled