查看系统状态
Linux操作系统引导过程
开机自检(BIOS) ——> MBR引导 ——>GRUB菜单 ——> 加载内核(kernel) ——> init进程初始化

服务器 ——> 主进程 ——> 与操作系统交互,获取到计算机的资源(CPU、内存、磁盘、I/O、网络)
init 系统第一个运行的进程 后面的数字代表的是控制操作系统的(运行级别)
init0关机 init6 重启
系统服务控制
systemctl 控制类型 服务名称
控制类型
start:启动
stop:停止
restart:重新启动
systemctl enable firewalld 开启防火墙
reload:重新加载
status:查看服务状态
查看静态的进程统计信息( ps命令 )
格式:(ps aux)(ps -elf)

#将以简单列表的形式显示出进程信息ps -auX
上述输出信息中,第一行为列表标题,其中各字段的含义描述如下,
USER:启动该进程的用户账号的名称。
PID:该进程在系统中的数字ID号,在当前系统中是唯一的。
%CPU:CPU 占用的百分比。
%MEM:内存占用的百分比。
VSZ:该进程使用的虚拟内存量(KB)。
RSS:该进程占用的物理内存量(KB)。
TTY:表明该进程在哪个终端上运行。不是从终端启动的进程则显示为?
-
pts(伪终端):表示通过远程登录(如 SSH、Telnet)或图形界面中的终端模拟器(如 Linux 桌面的终端软件)打开的会话,本质是 “伪终端”,用于远程或图形化环境下的交互。
-
tty1-tty6(物理终端):
- 通常
tty1对应图形界面(如果系统启动了桌面环境,默认在 tty1 显示)。 tty2到tty6是纯字符界面(命令行模式),可通过Ctrl+Alt+F2到Ctrl+Alt+F6切换进入,适合无图形环境的操作。
- 通常
-
系统自身执行的进程:在
ps aux中,若 TTY 列显示为?,表示该进程不由任何终端控制,属于系统自身后台运行的进程(如服务进程、守护进程等),无需用户交互,独立于终端会话运行。
ps -elf
#将以长格式显示系统中的进程信息
-e:显示系统内的所有进程信息。
-1:使用长格式显示进程信息。
-f:使用完整的格式显示进程信息。

以树形结构列出进程信息( pstree命令 )
常用命令选项(pstree -aup)
-a :显示完整信息
-u :列出对应用户名
-p :列出对应PID号
安装pstreee
sudo yum install psmisc
进程的状态 Stat
3个常规状态:
R 正在运行
S 休眠(可被唤醒)
T 停止状态
%CPU 上次更新到现在的 CPU 时间占用百分比
%MEM 进程使用的物理内存百分比
TIME+ 进程使用的 CPU 时间总计,单位 1/100 秒
COMMAND 命令名/命令行
异常:
僵尸进程:
孤儿进程:主进程退出,子进程还在(占用资源) 可手动kill
出现的原因大都是因为系统资源压力过大导致的,常规情况下,系统是可以自行处理以上的异常状态。
查看动态的进程排名信息( top命令 )
按P键根据CPU占用情况进行排序
按M键根据内存占用情况进行排序
按N键根据启动时间,PID从小到大进行排序
按T键根据时间进行排序(Time+)
按p键进程 IP,查看某个进程状态
按h键可以获得top程序的在线帮助信息
按q键可以正常退出top程序
按空格键可以强制更新进程状态显示
数字键 1:显示每个内核的 CPU 使用率u/
U:指定显示的用户
k:top中k +pid杀死进程(当某个进程cpu占用特别高时用)

load average: 4.74 1.33, 0.49
cpu过去1min 5min 15min的平均使用率
按1 显示出每一个cpu的使用情况

假如 当前操作系统有4个CPU核心
当load average的值,小于cpu核心数量的时候,表示CPU使用率很空闲的 (小于4)
当load average的值,等于cpu核心数量的时候,表示CPU是满负载的(等于4)
当load average的值,大于cpu核心数量的2倍时,表示CPU是高负载的(等于8左右)
当load average的值,大于cpu核心数量的3倍及以上时,准备好系统会崩
安装一个stress的CPU压力测试工具(压测)
这个工具可以模拟CPU的任务,来给系统的cpu施加压力,测试性能
streee -c 4
htop
F1:查看帮助文档(快捷键说明)。
F2:进入设置界面,可自定义显示内容、颜色主题等。
F3:搜索进程(输入进程名或 PID)。
F4:过滤进程(只显示包含指定关键词的进程)。
F5:切换进程的显示模式(树形结构 / 列表结构)。
F6:选择排序字段(如按 CPU 使用率、内存占用等排序)。
F9:发送信号给进程(常用 9 表示强制杀死进程)。F10:退出 htop。
空格:标记 / 取消标记进程(可批量操作)。
u:筛选特定用户的进程。
k:直接输入 PID 杀死进程(类似 F9,但需手动输入 PID)

根据特定条件查询进程PID信息( pgrep命令 )
常用命令选项:
-l :显示进程名 ( 例如:pgrep -l "log" )
-U :指定特定用户 ( 例如:pgrep -l -U student )
-t :指定终端 ( 例如:pgrep -l -t tty1 )
-u :列出对应用户名 ( 例如:pgrep -u root sshd )
( 例如:pgrep -u root,teacher )
tail:默认显示文件的最后 10 行内容。
-f:(follow 的缩写)持续监听文件的变化,当文件有新内容追加时,会实时输出到终端,保持持续跟踪状态。
-
基础用法:跟踪文件的实时更新
tail -f /var/log/syslog # 实时监控系统日志 -
指定显示的行数:结合
-n选项,先显示最后 N 行,再持续跟踪tail -n 20 -f /var/log/nginx/access.log # 先显示最后20行,再实时跟踪Nginx访问日志 - tail -f /var/log/syslog &
& ——> and 加上&后表示转为后台应用
>>重定向追加
>重定向覆盖
jobs 用于显示当前当前 shell 会话中正在后台运行或暂停的作业(jobs)信息。
-l:选项可以同时显示该进程对应的PID号

(1)挂起当前的进程当Linux操作系统中的命令正在前台执行时(运行尚未结束),按Ctrl+Z组合键可以将当前进程挂起(调入后台并停止执行),这种操作在需要暂停当前进程并进行其他操作时特别有用。例如,打包usr并且调入后台,可以按 Ctrl +Z组合键将该下载任务调入后台并暂停执行
将后台的进程恢复运行
tar zcvf usr.tar.gz /usr


(2)使用 bg(BackGround,后台)命令,可以将后台中暂停执行(如按 Ctr+Z组合键挂起)的任务恢复运行,继续在后台执行操作;
(3)使用 fg 命令(ForeGround,前台),可以将后台任务重新恢复到前台运行。除非后台中的任务只有一个,否则 bg 和 fg 命令都需要指定后台进程的任务编号作为参数。例如,执行如下的“fg 1”命令可以将之前挂起至后台的 wget 进程重新调入前台执行
终止指定PID号的进程( kill命令 )
kill [信号] <PID>
常用命令选项:( -9 :强制终止 )
-(15:正常退出) 默认 优雅退出
例子
# 查看进程 PID(比如查找 nginx 进程)
ps -ef | grep nginx # 假设输出 PID 为 1234
# 发送默认 TERM 信号终止 PID 为 1234 的进程
kill 1234
# 强制终止 PID 为 1234 的进程(无法被进程忽略)
kill -9 1234
特点:
只能通过 PID 操作,无法直接用进程名。
一次只能终止一个进程(除非指定多个 PID,如 kill 1234 5678)。
终止指定名称的所有进程( pkill命令 )
常用命令选项:( -9 :强制终止 )
根据特定条件终止相应进程( pkill命令 )
pkill 是 kill 的扩展,支持通过 进程名、用户名、终端号 等多种条件匹配进程,自动查找对应 PID 并终止,无需手动获取 PID。
常用命令选项:
-u :根据进程所属的用户名终止相应进程
-t :根据进程所属的终端终止相应进程
-9 :强制终止
例子
# 终止所有名为 nginx 的进程(默认发送 TERM 信号)
pkill nginx
# 强制终止所有由用户 "test" 启动的进程
pkill -9 -u test
# 终止命令行中包含 "python script.py" 的进程(用 -f 匹配完整命令)
pkill -f "python script.py"
特点:
无需手动查 PID,直接通过名称等条件批量终止进程。
匹配规则较灵活,支持部分名称(如 pkill ngi 可能匹配 nginx)。
killall
killall 与 pkill 功能相近,也是通过进程名终止进程,但 默认要求完整匹配进程名(而非部分匹配),且支持更多针对进程名的精细控制。
killall [选项] <进程名>
常用项:
-e:强制精确匹配进程名(默认已启用,与 pkill 的模糊匹配不同)。
-u <用户>:只终止指定用户的进程(同 pkill)。
-i:交互式操作,终止前询问确认。
同样支持信号(如 -9 强制终止)。
例子
# 精确终止所有名为 "nginx" 的进程(必须完整匹配,"ngi" 无法匹配)
killall nginx
# 交互式强制终止名为 "python" 的进程(每个进程都会询问)
killall -i -9 python
# 终止 5 分钟内启动的名为 "chrome" 的进程(-o 表示 "older than",-y 表示 "younger than")
killall -y 5m chrome
nginx 服务
nginx-master(11)----
|
|__ __ _ nginx-worker(11231)
|__ __ _ nginx-worker(13231)
|__ __ _ nginx-worker(12231)
killall -9 nginx-worker
只杀子进程nginx-worker,主进程nginx-master存活
特点:
默认精确匹配进程名,避免误杀相似名称的进程(如 pkill ssh 可能杀 ssh-agent,killall ssh 只杀 ssh 进程)。
支持按进程启动时间筛选(-o/-y 选项),这是 pkill 不具备的。
常用应用场景一:
例如:pgrep -l "cp" ( 假设输出结果:1313 cp )
pkill cp
总结:kill对应的是PID,pkill对应的是command。
常用应用场景二:
按照终端号踢出用户
(1)查询登陆到主机的用户信息( w命令 )
(2)踢出指定终端号的用户( pkill -9 -t tty2 )
常用应用场景三:
按照用户名踢出用户
(1)查询登陆到主机的用户信息( w命令 )
(2)踢出指定用户名的用户( pkill -9 -u user1 )
设置周期性计划任务( crontab 命令 )
编辑计划任务 :crontab -e [-u 用户名]
查看计划任务 :crontab -l [-u 用户名]
删除计划任务 :crontab -r [-u 用户名]
crontab任务配置的格式
( 例如 )*****
4(分) 3(时) 2(日) 1(月) *(周) run_command
* :表示该范围内的任意时间
, :表示间隔的多个不连续的时间点
- :表示一个连续的时间范围
/ :指定间隔的时间频率

比如我要每隔1分钟,往/opt/1.txt中写入一个"hello"内容

>>重定向追加
>重定向覆盖
重定向符号影响的对象是标准输出的位置



mpstat主要用于显示各 CPU 的使用率、空闲率、IO 等待等详细统计信息,适用于分析 CPU 负载不均衡等问题。
基本功能:
查看单个或所有 CPU 核心的实时性能数据(如用户态、系统态、空闲时间占比)。
支持周期性输出统计信息,便于持续监控。
可显示 CPU 的中断、上下文切换等细节指标。
安装mpstat
sudo yum install sysstat
mpstat -P ALL #査看所有 CPU 运行状态
mpstat -P ALL 1 100# 一秒钟刷新一次 连续刷新 100 次

为武汉地区的开发者提供学习、交流和合作的平台。社区聚集了众多技术爱好者和专业人士,涵盖了多个领域,包括人工智能、大数据、云计算、区块链等。社区定期举办技术分享、培训和活动,为开发者提供更多的学习和交流机会。
更多推荐


所有评论(0)