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:表明该进程在哪个终端上运行。不是从终端启动的进程则显示为?

  1. pts(伪终端):表示通过远程登录(如 SSH、Telnet)或图形界面中的终端模拟器(如 Linux 桌面的终端软件)打开的会话,本质是 “伪终端”,用于远程或图形化环境下的交互。

  2. tty1-tty6(物理终端)

    • 通常 tty1 对应图形界面(如果系统启动了桌面环境,默认在 tty1 显示)。
    • tty2 到 tty6 是纯字符界面(命令行模式),可通过 Ctrl+Alt+F2 到 Ctrl+Alt+F6 切换进入,适合无图形环境的操作。
  3. 系统自身执行的进程:在 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 的缩写)持续监听文件的变化,当文件有新内容追加时,会实时输出到终端,保持持续跟踪状态。

  1. 基础用法:跟踪文件的实时更新

    tail -f /var/log/syslog  # 实时监控系统日志
    
  2. 指定显示的行数:结合 -n 选项,先显示最后 N 行,再持续跟踪

    tail -n 20 -f /var/log/nginx/access.log  # 先显示最后20行,再实时跟踪Nginx访问日志
    
  3. 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-agentkillall 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 次

Logo

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

更多推荐