查看进程
静态查看进程process
ps -aux 命令(可以用grep过滤某个想要查询的进程)
[root@linux-server ~]# ps aux | less
参数解释:
ps :process nsapashot
a 只能查看系统里面运行的所有终端进程
u 显示进程拥有者
x 显示系统内所有进程
f 显示进程之间的父子关系
ps -ef 命令(可以用grep过滤某个想要查询的进程)
[root@linux-server ~]# ps -ef
参数解释:
-e 显示所有进程
-l 长格式显示
-f 完整格式
[root@linux-server ~]# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
============================================================================
USER: #运行进程的用户
PID: #进程ID
%CPU: #CPU占用率
%MEM: #内存占用率
VSZ 进程占用的虚拟内存大小
RSS 占用的物理内存大小
STAT: #进程状态 ---了解
? 表示没有占用终端
R 运行
S 可中断睡眠 Sleep
D 不可中断睡眠
T 停止的进程
Z 僵尸进程(主进程已经停止,子进程还在运行)
X 死掉的进程
START: #进程的启动时间
TIME: #进程占用CPU的总时间
COMMAND:#进程文件,进程名
[root@x2 ~]# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 10:00 ? 00:00:02 /usr/lib/systemd/systemd --swi
root 2 0 0 10:00 ? 00:00:00 [kthreadd]
root 4 2 0 10:00 ? 00:00:00 [kworker/0:0H]
root 5 2 0 10:00 ? 00:00:00 [kworker/u256:0]
root 6 2 0 10:00 ? 00:00:00 [ksoftirqd/0]
root 7 2 1 10:00 ? 00:00:11 [migration/0]
各个字段含义
UID 用户ID
PID 进程ID
PPID 父进程ID
C CPU占用率
STIME 开始时间
TTY 开始此进程的TTY----终端设备
TIME 此进程运行的总时间
CMD 命令名
进程状态--了解
Sl 以线程的方式运行
Ss s进程的领导者,父进程
R+ +表示是前台的进程组
S< <优先级较高的进程
SN N优先级较低的进程
动态查看进程top和htop
top动态显示信息(每三秒刷新)
10:35:29 表示当前时间
up 35min 表示系统运行时间,时:分
2 user 当前登录用户数
load average :0.25,0.35,0.25 分别代表一分钟,五分钟,十五分钟系统平均负载
152 total 表示当前进程总数
3 running 表示3个进程正在运行
149 sleeping 表示149个进程在休眠状态
0 stopped 表示挺停止的进程数
0 zombie 表示僵尸进程数
0.2 us 用户空间占用CPU百分比
1.0 sy 内核空间占用CPU百分比
0.0 ni 用户进程空间内改变过优先级的进程占用CPU百分比
98.8 id 空闲CPU百分比
0.0 wa 等待输入输出的CPU时间百分比
0.0 hi 硬中断(Hardware IRQ)占用CPU的百分比
0.0 si 软中断(Software Interrupts)占用CPU的百分比
0.0 st 用于有虚拟cpu的情况,用来指示被虚拟机偷掉的cpu时间
4154156 total 物理内存总量
3400068 free 使用的物理内存总量
485192used 空闲内存总量
268896 buff/cache 用作内核缓存的内存量
2097148 totall 交换区总量
2097148 free 使用的交换区总量
0 used 空闲交换区总量
3457156 avail Mem 缓冲的交换区总量
#通常工作中必须监控的东西 load average(平均负载)等待cpu处理的队列长度 也是个数。
1分钟 第一个数字
5分钟 第二个数字
15分钟 第三个数字
======================
计算cpu负载:load average的三个值: 0.10, 0.16, 0.12,分别除cpu的个数,得出的值,如果值大于1那么那时候的负载高。
id: cpu空闲率
wa: cpu等待,等待输入/输出的进程占用的 CPU 百分比。如果使用率过高,表示硬盘该换了
NI: nice值
nice 值越高:表示优先级越低,例如+19,该进程容易将CPU 使用量让给其他进程。
nice 值越低:表示优先级越高,例如-20,该进程更不倾向于让出CPU。
指令:
renice <优先级> -p <PID> # 一般不调整
top操作
[root@linux-server ~]# top
h|? 帮助
> 往下翻页
< 往上翻页
M 按内存排序
P 按cpu排序
q 退出
z 彩色显示
W 保存
=============================
PR 优先级
VIRT 进程使用的虚拟内存总量,单位kb。
RES 进程使用的、未被换出的物理内存大小,单位kb。
SHR 共享内存大小,单位kb
htop
需要安装htop
yum -y install htop
执行命令 htop
查看端口
[root@linux-server ~]# yum install lsof #安装软件包
[root@linux-server ~]# lsof -i:80 #端口号,这能查看带端口的进程
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
httpd 64249 root 4u IPv6 1373628 0t0 TCP *:http (LISTEN)
#注意:端口号只有整数,范围是从0 到65535
参数解释:
FD:文件描述符,应用程序通过文件描述符识别该文件。
DEVICE:指定磁盘的名称
SIZE:文件的大小
#查网络进程和正在监听的端口
[root@linux-server ~]# netstat -lntp
参数详解:
-a 显示全部的进程
-u 显示udp
-n 以数字的新式显示协议名称
-t tcp
-p:显示进程的名称和pid
-l :只显示正在被监听的端口
参数解释:
recv-Q:网络接收队列
send-Q:网路发送队列
Foreign Address:与本机端口通信的外部请求
[root@linux-server ~]# w #看已经登陆到终端的进程信息,远程登陆会有ip 地址
部分参数解释:
USER –登录用户名.
TTY –登录用户使用的终端名.
FROM –登录用户来源的主机名或IP地址.
LOGIN@ –用户登录时间.
WHAT –用户当前的进程及选项/参数。
进程控制
按pid杀死进程
kill(正常杀死某个进程),pkill(杀死所有包含该名称的进程)
例如 kill 123842 正常杀死pid123842进程
kill -9 123842 强制杀死pid123842进程
pkill java 杀死所有java进程
语法: kill 信号 PID #信号也是进程间通信的一种方式
kill -l #查看所有信号
-1 HUP 重新加载进程或者重新加载配置文件,PID不变
-9 KILL 强制杀死
-15 TERM 正常杀死(这个信号可以默认不写)
-18 CONT 激活进程
-19 STOP 挂起进程
进程状态解释--了解:
+:表示运行在前台的进程
S+:休眠状态
T+:暂停,挂起状态
s:父进程
jobs作业控制
作业控制指的是控制正在运行的进程的行为。比如,用户可以挂起一个进程或者放到后台去运行,等一会儿再继续执行该进程。
[root@linux-server~]# sleep 7000 & #&:让命令或者程序后台运行
[1] 5441
[root@linux-server ~]# sleep 8000 #ctrl+z 把程序放到后台(这方法会让程序在后台暂停)
^Z
[2]+ Stopped sleep 8000
[root@linux-server ~]# jobs #查看后台的工作号
[1]- Running sleep 7000 &
[2]+ Stopped sleep 8000
[root@linux-server ~]# bg %2 #让暂停的程序在后台运行,%是用来修饰job number,2就是job number。(程序的工作号)
[2]+ sleep 8000 &
[root@linux-server ~]# jobs
[1]- Running sleep 7000 &
[2]+ Running sleep 8000 &
[root@linux-server ~]# fg %1 #将后台的程序调到前台
sleep 7000
[root@linux-server ~]# jobs
[2]+ Running sleep 8000 &
[root@linux-server ~]# kill -9 %2 #通过kill杀死进程
[root@linux-server ~]# jobs
[2]+ Killed sleep 8000
[root@linux-server ~]# jobs #在次查看没有了
常用命令
查看CPU负载
[root@linux-server ~]# uptime
17:35:01 up 16:02, 3 users, load average: 0.00, 0.02, 0.05
查看内存使用情况
[root@linux-server ~]# free -m # m :单位M
total used free shared buff/cache available
Mem: 1984 154 1508 8 321 1632
Swap: 2047 0 2047
linux启动过程
1. 加电
2. 加载bios设置
3. 加载grub,
4. 加载内核系统到内存当中
5. 加载配置文件
6. 加载内核模块
7. 完成相应的初始化工作和启动相应的服务
8. 启动系统进程
9. 出现登录界面
10. 开机启动完成
查看系统版本和内核
[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_64