当前位置: 首页 > news >正文

Linux 命令(top/ps/netstat/vmstat/grep/sed/awk)及服务管理(systemd)

top、ps、netstat这些都属于系统监控和网络工具,grep、sed、awk则是文本处理三剑客,加上systemd服务管理

top动态实时监控系统进程

动态实时的运行中系统的完整视图。它可以显示系统摘要信息(负载、CPU、内存等)和当前正在由内核管理的进程列表

  • P (大写): 按CPU使用率排序

  • M (大写): 按内存使用率排序

  • N (大写): 按PID(进程ID)降序排序

  • k (小写): 终止一个进程。会提示输入要终止的进程PID

  • q (小写): 退出top

  • 1 (数字): 显示所有CPU核心的详细使用情况

ps - 查看进程快照

用于报告当前时刻的进程状态快照。常用于查看进程的详细信息(如PID、启动命令、占用资源等)。

ps aux                 # 查看系统所有进程的详细信息
ps aux | grep nginx    # 配合grep,查找与nginx相关的进程
ps -ef | grep java     # 同上,另一种风格
ps -p 1234 -o pid,pcpu,pmem,comm # 查看指定PID(1234)的进程的CPU、内存等信息
netstat - 查看网络状态(逐渐被ss取代)

用于显示各种网络相关信息,如网络连接、路由表、接口统计、伪装连接、多播成员等。但更推荐使用ss命令,因为它更快更高效。

  • -t: 显示TCP连接

  • -u: 显示UDP连接

  • -l: 仅显示监听状态的套接字

  • -n: 以数字形式显示地址和端口号(不进行DNS解析)

  • -p: 显示正在使用套接字的进程/程序PID和名称

  • -a: 显示所有选项(监听+非监听)

ss 是 Linux 中用于查看套接字统计信息的命令,功能类似于 netstat,但速度更快,提供更详细的网络连接状态信息。

1. 查看所有的套接字连接
ss -a
2. 查看 TCP 连接
ss -t
3. 查看 UDP 连接
ss -u
4. 查看正在监听的套接字
ss -l
5. 显示与套接字关联的进程信息
ss -p
6. 显示网络连接的摘要信息
ss -s
7. 显示 IPv4 套接字
ss -4
8. 显示 IPv6 套接字
ss -6
9. 查看详细的 TCP 套接字状态和计时器信息
ss -o
实例
1. 查看所有 TCP 连接并显示进程
ss -t -a -p
2. 查看正在监听的 TCP 端口
ss -t -l
3. 查看所有 UDP 连接
ss -u -a
4. 查看指定端口的连接
ss -t '( dport = :80 or sport = :80 )'
5. 查看每个套接字的内存使用情况
ss -m
6. 查看 IPv6 网络连接
ss -6 -t -a
7. 简单的套接字统计摘要
ss -s
 vmstat - 查看虚拟内存状态

 报告关于进程、内存、分页、块IO、陷阱(中断)和CPU活动的虚拟内存统计信息。

vmstat 1      # 每1秒刷新一次,直到按Ctrl+C中断
vmstat 2 5    # 每2秒刷新一次,一共输出5次

grep/sed/awk-文本三剑客

这三个命令的强大之处在于它们可以通过管道(|)组合使用。

grep - 文本搜索工具

强大的文本搜索工具,使用正则表达式搜索文本,并把匹配的行打印出来。

常用命令选项

  • -i: 忽略大小写

  • -v: 反向选择,即显示不包含匹配文本的所有行

  • -n: 显示匹配行的行号

  • -c: 只输出匹配行的总数

  • -r 或 -R: 递归搜索目录下的所有文件

  • -E: 使用扩展正则表达式

grep "error" /var/log/syslog          # 在syslog文件中搜索包含"error"的行
ps aux | grep sshd                    # 在进程列表中搜索sshd进程
grep -rn "config" /etc/nginx/         # 递归搜索/etc/nginx/目录下所有文件中的"config"
grep -E "error|fail|warning" log.txt  # 使用扩展正则,匹配error或fail或warning
sed - 流编辑器

用于对输入流(文件或管道)进行基本的文本转换

常用命令选项

  • -e: 指定要执行的sed命令

  • -i: 直接修改文件内容(慎用! 最好先不加-i测试无误后再用)

  • s/替换目标/替换内容/[flags]替换命令,最核心的功能。

# 将file.txt中的old替换为new,但只输出到屏幕,不修改原文件
sed 's/old/new/g' file.txt# 直接修改原文件(-i),并将所有#开头的行(注释)删除
sed -i 's/^#.*//g' file.cfg
sed -i '/^#/d' file.cfg # 另一种写法:删除所有以#开头的行# 显示文件的第10到20行
sed -n '10,20p' file.txt# 在每一行的行首添加一个字符串
sed 's/^/prefix /' file.txt
awk - 文本和数据处理编程语言

它擅长处理结构化文本(如日志、CSV),尤其是按列处理。它会自动将每行按空格(或指定分隔符)分割成多个字段,用$1$2...表示。

常用命令选项

  • -F: 指定输入字段的分隔符,默认为空格或制表符。

# 打印/etc/passwd文件中以冒号分隔的第一和第三列(用户名和用户ID)
awk -F: '{print $1, $3}' /etc/passwd# 打印ls -l输出中文件大小(第5列)和文件名(第9列)
ls -l | awk '{print $5, $9}'# 有条件的处理:打印文件长度大于100字节的文件名
ls -l | awk '$5 > 100 {print $9}'# 使用内置变量:NR代表行号,NF代表每行的字段数
awk '{print NR, NF, $0}' file.txt # 打印每行的行号、列数和整行内容# 计算第一列的数字之和
awk '{sum += $1} END {print sum}' data.txt
文本三剑客组合
# 查找nginx进程,提取其PID,并传递给kill命令
ps aux | grep nginx | grep -v grep | awk '{print $2}' | xargs kill# 分析日志:统计404错误的出现次数
grep '404' access.log | awk '{print $7}' | sort | uniq -c | sort -nr

服务管理 (systemd)

systemd作为初始化系统和服务管理器。

作用命令
启动一个服务sudo systemctl start service_name
停止一个服务sudo systemctl stop service_name
重启一个服务sudo systemctl restart service_name
重新加载配置文件(不重启服务)sudo systemctl reload service_name
查看服务状态sudo systemctl status service_name
设置开机自启sudo systemctl enable service_name
禁用开机自启sudo systemctl disable service_name
查看是否开机自启sudo systemctl is-enabled service_name
查看所有已启动的服务sudo systemctl list-units --type=service

常用服务名举例

  • nginx / httpd (Apache)

  • ssh

  • mysql / mysqld

  • docker

  • firewalld

# 启动Nginx并设置开机自启
sudo systemctl start nginx
sudo systemctl enable nginx# 查看Nginx的状态
sudo systemctl status nginx
# 输出中如果看到 "active (running)" 和 "enabled" 就表示服务正常运行且开机自启。# 修改防火墙配置后,重新加载使其生效
sudo systemctl reload firewalld


文章转载自:

http://0TAiQ0tG.mnbcj.cn
http://v9yJ16jn.mnbcj.cn
http://zBADxPpo.mnbcj.cn
http://cLCfaTd3.mnbcj.cn
http://oThf3wOg.mnbcj.cn
http://384Ccczf.mnbcj.cn
http://12slaoIq.mnbcj.cn
http://obU1azzL.mnbcj.cn
http://UMQ2eGIP.mnbcj.cn
http://8vwwG61B.mnbcj.cn
http://PQ6mEPDh.mnbcj.cn
http://VtyqAewY.mnbcj.cn
http://94qBlDJs.mnbcj.cn
http://oKC7ghJu.mnbcj.cn
http://hiN1N1UR.mnbcj.cn
http://9qTyrk6b.mnbcj.cn
http://r4eVbY5w.mnbcj.cn
http://Emztxt16.mnbcj.cn
http://xVEFQHOl.mnbcj.cn
http://Lw9Jfjz7.mnbcj.cn
http://PInNUod6.mnbcj.cn
http://3uHhQWtN.mnbcj.cn
http://EZqE2oCh.mnbcj.cn
http://ynwhf3S2.mnbcj.cn
http://4zLVOpOO.mnbcj.cn
http://343uxwnK.mnbcj.cn
http://e7WwW13J.mnbcj.cn
http://ytUr2yBI.mnbcj.cn
http://ortnFzlB.mnbcj.cn
http://ftmOdOpp.mnbcj.cn
http://www.dtcms.com/a/377488.html

相关文章:

  • 【图像生成】提示词技巧
  • 揭秘Linux:开源多任务操作系统的强大基因
  • (ICLR-2025)深度压缩自动编码器用于高效高分辨率扩散模型
  • 《Why Language Models Hallucinate》论文解读
  • 【机器学习】通过tensorflow实现猫狗识别的深度学习进阶之路
  • AD5362BSTZ电子元器件 ADI 高精度数字模拟转换器DAC 集成电路IC
  • DMA-M2M存储器与存储器之间读写
  • Mistral Document AI已正式登陆Azure AI Foundry(国际版)
  • 机器学习实战(二):Pandas 特征工程与模型协同进阶
  • Flutter 朦胧效果布局大全:5种方法实现优雅视觉层次
  • 【CVPR2023】奔跑而非行走:追求更高FLOPS以实现更快神经网络
  • PHP学习(第三天)
  • 数仓简要笔记-1
  • 机器人商业化落地需要突破的关键性技术
  • AI 技术体系核心概念
  • STM32H750 I2C介绍及应用
  • 计算机网络---物理层
  • 【freemarker】创建html页面
  • 【华为OD】区块链文件转储系统
  • sprintf不是像printf一样的打印函数吗
  • Js 图片加载完成 与 图片缓存加载的区别
  • 汽车动力电池管理系统(BMS):电动汽车的“智能大脑”
  • n8n add npm module 發生 Module ‘ioredis‘ is disallowed,getaddrinfo EAI_AGAIN
  • 性能——day3
  • 安卓学习 之 SeekBar(音视频播放进度条)
  • CRMEB标准版PHP订单列表功能详解与优化技巧
  • Linux基础知识(五)
  • [数据结构——lesson7.队列]
  • 在算法竞赛中怎样正确的分析一个程序的时间复杂度
  • ES6笔记4