第八部分:系统管理,了解机器
·内核版本信息
60.uname:查看内核信息
uname -a # 查看内核详细信息
·磁盘信息(du/df/lsblk)
·内存信息
61.free:查看内存信息
·进程信息
62.ps:查看进程静态信息
进程:正在运行中的程序,指令被CPU运算,数据存储在内存中。
ps # 查看当前用户在前台运行的进程
ps -aux
字段 |
全称 / 含义说明 |
主要作用 |
USER |
启动进程的用户账号 |
区分进程所属用户,排查权限、用户侧进程资源占用问题 |
PID |
Process ID(进程唯一标识符) |
精准定位进程,用于 kill、查看进程详情等操作,是进程操作的核心标识 |
%CPU |
进程一段时间内占用 CPU 资源的百分比 |
排查 CPU 高负载,识别 CPU 密集型进程,分析程序性能或异常(如持续高占) |
%MEM |
进程使用物理内存占系统总物理内存的百分比 |
分析内存占用,识别内存泄漏、内存密集型程序,优化系统内存分配 |
VSZ |
Virtual Set Size(虚拟内存大小,单位 KB ,含虚拟地址空间及未实际分配部分) |
辅助判断进程理论内存寻址规模,体现内存需求趋势(参考性弱于 RSS ) |
RSS |
Resident Set Size(常驻内存大小,单位 KB ,实际占用物理内存量) |
直观反映进程物理内存真实消耗,排查物理内存不足问题的关键参考 |
TTY |
关联的终端设备(pts/0 伪终端、tty1 本地终端、? 无终端关联等) |
定位进程运行环境,区分用户交互进程与系统守护进程,排查终端专属程序问题 |
STAT |
进程状态(R 运行 / 就绪、S 可中断睡眠、D 不可中断睡眠、Z 僵尸、T 暂停 ) |
快速判断进程阶段,识别异常状态(如僵尸进程、长时间不可中断睡眠进程 ) |
START |
进程启动的时间 / 日期(近期为 “时分”,较早为 “月日” 格式 ) |
辅助排查进程时长相关问题,判断异常进程是否为近期触发、分析长期运行进程 |
TIME |
进程自启动累计占用 CPU 的时间(格式:分:秒 / 时:分: 秒 ) |
补充 %CPU ,从累计维度反映 CPU 总消耗,识别长期持续占用 CPU 的进程 |
COMMAND |
启动进程的命令名称 / 脚本路径(如服务名、用户执行命令 ) |
明确进程对应的程序功能,针对性运维、排查程序相关问题(如识别服务 / 应用 ) |
ps -ef
63.kill:杀死进程
kill -9 pid # 强制杀死进程
pkill -9 程序名
kill -6
64.top:动态查询进程信息
top
# t :显示CPU占有率
# m:显示内存占有率
·CPU信息
lscpu
·主机名管理
65.hostname/hostnamectl:修改主机名
# 临时修改主机名,重新登录还在,重启失效
hostname 主机名
# 永久修改主机名
vim /etc/hostname
# hostnamectl 永久修改主机名,重新登录终端生效
hostnamectl set-hostname 主机名
第九部分:网络操作,玩转连接
·网络信息
66.ping:测试网络是否畅通
用法:ping [选项] 目标地址
ping ip/域名 需要Ctrl+c停止
ping -c3 ip/域名
基本连通性测试: 用 ping 检查目标是否在线。
控制发送次数: 用 -c 设定发送包数量。
网络性能调试: 用 -s 和 -i 调整包大小和发送频率。
# 1. 测试目标地址的连通性(默认持续发送数据包)
ping www.google.com -- 这个最常用
# 2. 指定发送的次数(比如发送 5 次)
ping -c 5 www.google.com
# 3. 限制每次发送数据包的间隔时间(1 秒间隔)
ping -i 1 www.google.com
# 4. 调整数据包大小(默认 56 字节)
ping -s 128 www.google.com
# 5. 不解析 IP 对应的主机名(加速测试)
ping -n www.google.com
67.traceroute:路由追踪工具
用法:traceroute [选项] 目标地址
跟踪网络数据包从本地主机到目标主机的路径,显示经过的中间路由节点。(各个节点的 ip 地址)
需要用yum安装
# 1. 追踪到目标主机的路由节点,显示数据包到目标主机的所有中间节点地址及响应时间。
traceroute example.com -- 这个最常用
# 2. 限制显示的最大跳数(避免输出过多节点,默认是 30)
traceroute -m 20 example.com
# 3. 指定每跳的探测次数(默认是 3 次)
traceroute -q 1 example.com
# 4. 使用 ICMP 协议代替 UDP 进行路由追踪(部分网络更友好,兼容更多网络环境)
traceroute -I example.com
# 5. 使用指定端口进行路由追踪
traceroute -p 443 example.com
68.wget:通过url下载文件
用法:wget [选项] URL
# 1. 下载单个文件
wget http://example.com/file.zip
# 2. 下载并保存为指定文件名
wget -O newname.zip http://example.com/file.zip
# 3. 断点续传未完成的下载
wget -c http://example.com/largefile.zip
# 4. 下载需要认证的文件(提供用户名和密码)
wget --user=username --password=password http://example.com/securefile.zip
# 5. 限制下载速度(每秒 100KB)
wget --limit-rate=100k http://example.com/largefile.zip
69.curl:万能数据获取工具
用法:curl 选项 [网址]
curl ip/域名 #查看html源码
curl -O 地址 # 下载
# 1. 下载文件(-O或-o)
curl -O http://example.com/file.zip
# 2. 保存文件为指定名称
curl -o newname.zip http://example.com/file.zip
# 3. 查看网页内容
curl http://example.com
# 4. 调用接口(GET 请求)
curl -X GET http://api.example.com/data
# -X:指定请求方法(GET、POST、DELETE 等)
# 5. 调用接口(POST 请求并发送数据)
curl -X POST -d "key=value" http://api.example.com/data
# 6. 显示详细的请求和响应过程
curl -v http://example.com
70.netstat/ss:网络连接一览
netstat -lnutp #本地服务,开放端口
监听端口: 用 -tlnp 查看监听的服务和进程。
筛选连接: 配合 grep 过滤指定端口或进程。
# 1. 查看所有网络连接
netstat -a
# 2. 查看监听的 TCP 和 UDP 端口
netstat -nlptu
# -t:仅显示 TCP 连接。
# -l:仅显示正在监听的端口。
# -n:以数字格式显示地址和端口。
# -p:显示占用端口的进程。
# -u:仅显示 UDP 连接
# 3. 查看指定端口的连接情况(结合 grep 筛选)
netstat -tlnp | grep :80 # 这种非常常用!!
# 4. 通过进程名,筛选出由特定程序或服务占用的连接(也常用!)
netstat -tlnp | grep nginx # 查看 Nginx 占用的连接
# 5.筛选出特定连接状态(例如 LISTEN 或 ESTABLISHED):
netstat -tlnp | grep LISTEN # 查看所有监听的端口
netstat -tlnp | grep ESTABLISHED # 查看所有已建立的连接
71.ss:现代网络连接查看工具
ss -lnutp
# ss 常用操作示例:
# 1. 显示所有网络连接
ss -a
# 2. 显示所有监听的 TCP 和 UDP 端口
ss -nlptu
# -t:仅显示 TCP 连接
# -u:仅显示 UDP 连接
# -l:仅显示监听连接
# -n:不解析主机名和服务名称,显示数字地址和端口号(加速)。
# -p:显示占用端口的进程。
# 3. 查看 ESTABLISHED 状态的连接
ss -t state established
# 4. 查看指定端口的连接(结合 grep 过滤)
ss -tlnp | grep :80 # 按端口号过滤
# 5. 查看所有包含某个 IP 地址的连接
ss -tlnp | grep '192.168.1.100' # 按 IP 地址过滤
# 6. 查看某个进程(根据 PID)
ss -tulnp | grep '1234' # 根据进程 ID (PID) 过滤
# 7. 查看某个协议类型的连接
ss -tuln | grep 'tcp' # 按协议类型(如 tcp)过滤
# 8. 查看网络连接的具体服务
ss -tulnp | grep 'nginx' # 根据服务名称过滤(例如:nginx)
ss 和 netstat 的对比:
功能 |
ss |
netstat |
性能 |
快,直接从内核获取数据 |
慢,需读取 /proc 文件 |
默认安装 |
新版 Linux 默认安装 |
逐渐被淘汰,不再维护 |
支持状态过滤 |
更强,支持精准筛选 |
支持但不够灵活 |
推荐使用 |
✅ |
❌ |
72.lsof:查看文件和网络连接的多面手
lsof -i:80 # 查看80端口是否被占用
特点:
灵活强大:不论是文件占用还是网络连接,lsof 都能快速定位问题。
配合grep:在网络场景下,结合grep可快速筛选监听状态或特定端口的连接。
lsof 的两大核心功能:
①文件占用:查看文件或设备被哪些进程使用。
# 查看文件被哪些进程占用
lsof /path/to/file
# 查看某用户打开的所有文件
lsof -u username
# 查看某进程打开的文件,PID代表进程号,可以查看文件占用情况
lsof -p <PID>
②网络连接:检查端口、IP 和服务状态。
# 查看所有网络连接
lsof -i
# 查看特定端口的占用情况
lsof -i :80
# 显示详细网络连接(数字端口和 IP 地址,查看详细连接信息)
lsof -Pni
# 显示被特定端口(如 80)占用的进程及其详细信息。
lsof -Pni :80
# 结合 grep 筛选出监听状态的端口
lsof -Pni | grep LISTEN
# 筛选出与某个 IP 地址相关的连接(本地或远程)
lsof -Pni | grep 192.168.1.100
# 查找指定进程的网络连接,PID代表进程号
lsof -Pni | grep <PID>