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

linux命令记录 ss 和 lsof

ss

ss 命令是 Linux 中用于查看和分析套接字(sockets)状态的工具,功能类似于 netstat,但提供了更快、更详细的信息。以下是对 ss 命令的详细介绍,包括常用选项及其用法:

基本用法

ss [选项]

常用选项

  1. -t:显示 TCP 套接字。
  2. -u:显示 UDP 套接字。
  3. -l:仅显示监听状态的套接字。
  4. -p:显示使用该套接字的进程信息。
  5. -n:以数字格式显示地址和端口号,避免 DNS 解析。
  6. -a:显示所有套接字,包括监听和非监听状态的。
  7. -r:显示路由信息。
  8. -s:显示统计信息。

示例

  1. 查看所有 TCP 套接字

    ss -t -a
    
  2. 查看所有 UDP 套接字

    ss -u -a
    
  3. 查看正在监听的 TCP 套接字

    ss -t -l
    
  4. 查看使用某个端口的进程

    ss -t -n -p | grep :80
    
  5. 查看详细的套接字统计信息

    ss -s
    

输出说明

  • Netid:套接字类型(如 TCP、UDP)。
  • State:套接字的状态(如 ESTAB、LISTEN、CLOSE_WAIT)。
  • Recv-QSend-Q:接收和发送队列的字节数。
  • Local Address:PortPeer Address:Port:本地和远程的地址及端口。
  • PID/Program name:使用该套接字的进程 ID 和程序名(如果使用了 -p 选项)。

其他注意事项

  • ss 提供的信息比 netstat 更为丰富和精准,因为它直接与 Linux 内核交互。
  • 在现代 Linux 系统中,ss 是一个更推荐的工具,尤其是在进行网络故障排查时。

总结

ss 命令是一个强大且高效的网络工具,适用于系统管理员和开发者,用于监控和诊断网络连接和性能问题。了解并熟练使用 ss 可以帮助更好地管理和优化系统网络配置。

lsof

lsof(List Open Files)命令是 Linux 中用于列出当前系统打开的文件和相关信息的工具。它不仅可以显示打开的文件,还能提供与这些文件相关联的进程信息。以下是 lsof 命令的详细介绍,包括常用选项及其用法。

基本用法

lsof [选项] [文件]

常用选项

  1. -a:与其他选项结合使用,表示“与”操作。
  2. -c :仅显示指定命令的打开文件。
  3. -p :仅显示指定进程 ID 的打开文件。
  4. -u :仅显示指定用户的打开文件。
  5. -i:显示网络连接及其状态。
  6. -n:以数字格式显示网络地址,避免 DNS 解析。
  7. -s:显示统计信息。
  8. +D :列出指定目录及其子目录下的打开文件。

示例

  1. 查看所有打开的文件

    lsof
    
  2. 查看某个用户打开的文件

    lsof -u username
    
  3. 查看特定进程的打开文件

    lsof -p 1234
    
  4. 查看特定文件的打开情况

    lsof /path/to/file
    
  5. 查看网络连接

    lsof -i
    
  6. 查看某个命令的打开文件

    lsof -c ssh
    
  7. 查看某个目录下的打开文件

    lsof +D /path/to/directory
    

输出说明

  • COMMAND:打开文件的进程名称。
  • PID:进程 ID。
  • USER:拥有该进程的用户。
  • FD:文件描述符(如 cwd、txt、mem)。
  • TYPE:文件类型(如 REG、DIR、CHR)。
  • DEVICE:设备号。
  • SIZE/OFF:文件大小或偏移量。
  • NODE:索引节点号(inode)。
  • NAME:打开文件的名称或路径。

注意事项

  • lsof 需要较高的权限,有些信息可能需要 root 权限才能查看。
  • 在大型系统中,输出可能非常庞大,可以结合 grep 和其他命令进行筛选和处理。

总结

lsof 是一个非常强大的工具,适用于监控和排查文件使用情况,尤其在进行系统性能分析和故障排除时,可以帮助用户深入了解系统中正在使用的资源。掌握 lsof 的使用,有助于更好地管理和优化 Linux 系统。


http://www.kler.cn/news/319896.html

相关文章:

  • 【Mysql多数据源实现读写分离的几种方案】
  • 【Python 基础学习笔记】文件的基础操作
  • [Redis][主从复制][中]详细讲解
  • 2024网安周 | 百度安全深度参与,探索人工智能与数字安全的融合发展之路
  • 【SQL】产品分组销售
  • 前端开发——(1)使用vercel进行网页开发
  • vue路由的基本使用
  • Linux-L14-Linux中把用户加入到管理者root中
  • 鸿蒙OpenHarmony【轻量系统芯片移植】轻量系统STM32F407芯片移植案例
  • 无人机探测:光电侦测技术详解
  • Gstreamer中,使用mp4或者flv作为视频源去推流RTP等视频流时,需要先解码在编码才能正常
  • 使用Postman工具接口测试
  • Redis常见知识点
  • arm-硬件
  • 源码编译OpenJDK 12
  • JS二叉树的深度优先、广度优先实现代码
  • Java数据库连接jdbc
  • MATLAB基础应用精讲-【数模应用】OR值
  • 牛客周赛 Round 61 (C++实现)
  • 【算法中的最优解和较优解问题】
  • 开源标注工具
  • 【Java】注解与单元测试的使用【主线学习笔记】
  • JS手写Promise以及promise.all方法
  • QQ频道机器人零基础开发详解(基于QQ官方机器人文档)[第七期]
  • Go Mail设置指南:如何提升发送邮件效率?
  • 【Linux 从基础到进阶】Hadoop 大数据平台搭建与优化
  • ARM/Linux嵌入式面经(三九):中科驭数
  • 解决多尺度网络中上采样尺寸不一致问题
  • 低代码中实现数据映射的必要性与方案
  • 18 vue3之定义自定义指令Directive