本文为总结性内容方便快速查找适用命令。关于详细内容请见# Linux进阶Day01程序与进程、进程前后台调度、进程查杀、日志管理、systemd服务管理一、进程与程序的关系程序是用户使用计算机语言编写的、可以实现特定目标或解决特定问题的代码集合。进程是正在执行的一个程序或命令每个进程都是一个运行的实体并占用一定的系统资源。简单理解程序是人写的代码进程是正在运行的程序。当程序被执行时程序的代码会被加载入内存操作系统给这个进程分配一个 ID称为PIDProcess ID进程编号。打开多个程序实例如多个浏览器窗口会产生多个进程但它们使用的是同一个程序文件。PID Process ID 进程编号二、top动态查看系统负载与进程信息基本语法toptop 命令属于动态命令默认每 3 秒刷新一次动态显示系统整体负载和各个进程的资源占用情况。第一行系统负载信息top - 10:12:28 up 13:05, 3 users, load average: 0.00, 0.01, 0.05内容说明10:12:28系统当前时间up 13:05系统已运行时间13小时5分钟3 users当前登录用户数load average: 0.00, 0.01, 0.05系统在1分钟、5分钟、15分钟的平均负载。核心判断标准如果负载值超过 CPU 总核心数说明系统处于高负载状态第二行进程总数统计Tasks: 230 total, 1 running, 229 sleeping, 0 stopped, 0 zombie内容说明total进程总数running正在运行的进程数sleeping睡眠进程数stopped停止的进程数zombie僵尸进程数。如果不是 0需要手工检查并清理僵尸进程第三行CPU 使用情况Cpu(s): 0.1%us, 0.1%sy, 0.0%ni, 99.7%id, 0.1%wa, 0.0%hi, 0.1%si, 0.0%st字段说明%us用户态 CPU 占用User space%sy内核态 CPU 占用System space%ni改变过优先级的进程占用的 CPU 百分比%id空闲 CPU 百分比idle%waI/O 等待占用的 CPU 百分比磁盘 I/O、网络 I/O 等待%hi硬中断占用的 CPU 百分比%si软中断占用的 CPU 百分比%st虚拟化中虚拟 CPU 等待实际 CPU 的时间百分比Steal Time判断 CPU 压力的方法%id持续过低 20%→ CPU 繁忙%wa持续过高 → 磁盘或网络 I/O 存在瓶颈%us%sy持续 80% → CPU 资源紧张问题多核 CPU 如何查看每一核的负载在 top 界面按快捷键1可展开显示每个 CPU 核心的单独负载。第四行物理内存使用情况Mem: 1863252 total, 829960 used, 68352 free, 96490 buff/cache字段说明total物理内存总量KBused已使用的物理内存free空闲物理内存buff/cache用于缓冲和缓存的内存真正剩余内存 free buff/cache因为 buff/cache 在需要时可被回收真正使用内存 used - buff/cache第五行交换分区Swap信息Swap: 2097148 total, 3336 used, 2093812 free, 622420 avail Mem字段说明total交换分区总大小used已使用的交换分区free空闲交换分区avail Mem可用内存推荐关注此值无需计算 buff/cacheSwap 分区说明当物理内存不足时系统自动从硬盘划出一块区域充当内存使用。Swap 使用率过高说明物理内存严重不足需要扩容或优化应用。进程列表字段说明字段说明PID进程 IDUSER进程所属用户PR优先级数值越小优先级越高NINICE 优先级取值范围 -20 到 19默认 0VIRT虚拟内存大小KBRES物理内存大小KBSHR共享内存大小KB。进程实际内存 RES - SHRS进程状态S睡眠R运行Z僵尸%CPUCPU 占用百分比%MEM内存占用百分比TIME累计占用 CPU 时间COMMAND进程名top 交互快捷键快捷键作用P大写按 CPU 使用率从高到低排序M大写按内存使用率从高到低排序1展开/合并多核 CPU 的负载显示q 或 Ctrl C退出 topCPU 负载压测命令# 利用 /dev/urandom 生成随机数据并用 md5sum 计算消耗 CPU 资源cat/dev/urandom|md5sum三、free查看内存使用情况基本语法free[选项]选项说明-m以 MB 为单位显示内存大小-h以人类可读格式显示GB/MB/KB1GB 1024MB 1MB 1024KB示例available 列是系统真正可用的内存用户无需手动计算 buffer/cache直接查看此列即可。四、df查看磁盘剩余空间本命令既能查看磁盘剩余空间又能查看挂载情况和文件系统基本语法df[选项]选项说明-h以人类可读格式显示GB/MB-T显示文件系统类型如 xfs、ext4df Disk Free即磁盘剩余空间示例字段说明Filesystem文件系统名称/磁盘分区Size总大小Used已使用大小Avail剩余可用大小Use%使用百分比Mounted on挂载路径相当于 Windows 的盘符关注点Use%超过 85%-90% 时需要清理磁盘或扩容。五、ps静态查看系统进程信息top 是动态查看每 3 秒刷新ps 是静态查看仅查询执行瞬间的快照。基本语法ps[选项]选项说明-e或-A列出全部进程-f显示完整字段full-l长格式输出aux以 BSD 格式显示所有进程无-前缀示例 1ps -efSystem V 风格字段说明UID进程所属用户 IDPID进程 IDPPID父进程 ID。如果父进程已终止子进程找不到父进程则成为僵尸进程CCPU 占用率百分比形式STIME进程启动时间TTY终端设备。?表示非终端发起的后台进程TIME进程实际使用的 CPU 时间CMD进程名或路径示例 2ps auxBSD 风格字段说明USER进程所属用户PID进程 ID%CPUCPU 占用百分比%MEM内存占用百分比VSZ虚拟内存大小KBRSS固定物理内存大小KBTTY终端tty1-tty6 为本地终端pts/0 为远程连接STAT进程状态R运行S睡眠T停止Z僵尸START启动时间TIME累计 CPU 时间COMMAND实际执行指令实际工作场景过滤指定进程# 基本过滤ps-ef|grepcrond# 去掉 grep 自身的匹配行ps-ef|grepcrond|grep-vgrep# 只显示需要的进程信息root710210Mar23 ? 00:00:04 /usr/sbin/crond-ngrep -v用于去除包含指定关键词的那一行。六、netstat / ss查询网络端口与连接信息netstat 基本语法netstat[选项]|grep进程名选项说明-t只列出 TCP 协议的连接-u只列出 UDP 协议的连接-n将地址和端口以数字形式显示不解析域名-l只过滤出状态为 LISTEN监听中的连接-p显示发起连接的进程 PID 和进程名称-s统计各类连接信息常用组合-ntulp tcp 数字 监听 进程只需记住常用一个组合即可示例# 查询 httpd 服务的端口信息netstat-ntulp|grephttpd# 查询 22 号端口SSH的连接情况netstat-napt|grep:22# 查看网络连接统计netstat-sss 基本语法ss-naltp|grep进程名参数说明-n数字显示-a显示所有 socket-l只显示监听中的端口-t只显示 TCP-p显示进程信息示例# 查询 sshd 服务的端口信息ss-naltp|grepsshdnetstat 与 ss 的区别① netstat 信息简洁ss 信息更丰富② ss 执行效率比 netstat 高ss 直接读取内核数据netstat 遍历 /proc 文件系统七、kill / killall终止进程kill根据 PID 终止进程kill[信号]PID原理kill 命令向进程发送信号系统内核根据信号类型对进程进行相应操作。信号说明-15默认正常终止进程SIGTERM给进程清理资源的机会-9强制杀死进程SIGKILL立即结束不进行清理kill -9是互联网中最常用的强制杀进程方式但应优先使用kill -15给进程正常退出的机会。示例# 查找 crond 进程的 PIDps-ef|grepcrond|grep-vgrep# 输出root 7102 1 0 Mar23 ? 00:00:04 /usr/sbin/crond -n# 正常终止进程kill7102# 强制杀死进程kill-97102killall根据进程名批量终止killall[信号]进程名示例# 杀死所有 crond 进程killallcrond# 强制杀死所有 httpd 进程killall-9httpd八、查看硬件资源信息查看 CPU 信息cat/proc/cpuinfo包含 CPU 型号、物理核心数、逻辑核心数、频率等。查看内存信息cat/proc/meminfo包含物理内存总量、空闲内存、缓存、交换分区等详细信息。九、命令速查表命令用途常用选项示例top动态查看系统负载和进程P(按CPU排序)M(按内存排序)topfree查看内存使用-m(MB)-h(人类可读)free -hdf查看磁盘剩余-h(人类可读)-T(显示文件系统类型)df -hTps静态查看进程快照-efauxps -ef | grep nginxnetstat查看网络连接/端口-tnlpnetstat -tnlp | grep :80ss查看网络连接/端口更快-naltpss -naltp | grep sshdkill按 PID 终止进程-15(正常)-9(强制)kill -9 1234killall按进程名终止进程-9(强制)killall httpd十、总结top动态监控适合实时查看系统负载和找出高 CPU/内存的进程free快速查看内存剩余关注available列df快速查看磁盘空间关注Use%列ps静态快照适合结合grep精确查找某个进程的 PID/PPIDnetstat/ss查看端口监听和网络连接状态ss效率更高kill/killall终止异常进程优先使用kill -15无效时再使用kill -9