jsiwa / CommandHub

0 stars 0 forks source link

CommandHub

本项目收集了众多常用的系统网络命令,包括但不限于 Unix/Linux 系统下的命令,以及适用于 Windows 环境的类似命令。

这里我可以帮你整理一个基于类 Unix 系统的网络命令大全,这些命令包括但不限于用于网络测试和配置的工具。下面的分类旨在帮助你更好地理解和使用这些工具:

1. 网络通信检测

2. 网络配置与管理

3. 网络服务测试

4. 带宽和性能测试

5. DNS 工具

6. 安全和加密工具

7. 文件传输工具

8. 网络监控工具

这些命令覆盖了网络测试、监控、配置和安全等方面,是系统管理员和网络工程师常用的工具。

lsof 命令的常见用法:

1. 列出所有打开的文件

lsof

这个命令会列出系统中所有当前打开的文件。

2. 列出特定用户打开的文件

lsof -u username

替换 username 为实际的用户名,这个命令将显示该用户打开的所有文件。

3. 列出某个进程打开的文件

lsof -p PID

PID 替换为进程的ID,这个命令会显示该进程打开的所有文件。

4. 列出监听某个端口的进程

lsof -i :port

port 替换为端口号,例如,lsof -i :22 将显示所有使用端口 22 的进程。

5. 列出所有网络文件

lsof -i

显示所有网络连接相关的文件。

6. 列出某种类型的文件

lsof -t type

例如,lsof -t REG 会列出所有常规文件。

7. 查找某个目录下被打开的文件

lsof +D /path/to/directory

替换 /path/to/directory 为你想检查的目录。这个命令会列出在指定目录下或子目录中被打开的所有文件。

8. 列出与特定设备相关的文件

lsof /dev/sda1

这个命令列出所有打开 /dev/sda1 设备的文件。

9. 查找删除了的文件但仍被进程占用的文件

lsof +L1

这对于找到那些删除了但由于仍被进程占用而未释放磁盘空间的文件非常有用。

10. 列出所有 UNIX 域套接字

lsof -U

这些用法覆盖了 lsof 最常见和最有用的功能,能帮助系统管理员监视和诊断系统文件使用情况及网络活动。

lsof 的高级用法:

1. 组合过滤条件

lsof 支持使用多个条件进行筛选,这可以通过组合多个 -a (and)和 -o (or)选项来实现。例如,要找出特定用户打开的特定类型的文件,可以使用:

lsof -a -u username -t type

2. 排除特定用户或进程

如果你想查看除了特定用户或进程外的文件,可以使用 ^ 符号。例如,要排除用户 root 的条目,可以使用:

lsof -u ^root

3. 使用正则表达式

lsof 允许在搜索中使用正则表达式,这使得搜索可以更加灵活。例如,要查找所有以 .log 结尾的文件,可以使用:

lsof | grep '\.log$'

4. 监视文件变化

虽然 lsof 本身不支持实时监控,但可以通过与 watch 命令结合使用来实现实时监视特定文件或端口的使用情况。例如,每隔2秒查看一次端口 80 的使用情况:

watch -n 2 'lsof -i :80'

5. 查找所有网络连接和监听的端口

使用 -i 选项不带任何参数可以查看所有活动的网络连接(TCP/UDP),这对于快速查看系统的网络活动非常有用:

lsof -i

6. 显示进程使用的库文件

了解一个进程加载了哪些共享库可以对系统调优和安全检查非常有用。你可以通过查找类型为 mem 的文件来查找进程使用的共享库:

lsof -p PID -a -d mem | grep '.so'

7. 查找已删除但仍被打开的文件

这对于找到那些占用磁盘空间但在文件系统中不可见的文件非常有用。这些文件通常是一些应用程序删除了文件的目录项,但还没有关闭文件描述符:

lsof +L1

8. 输出格式化

lsof 提供了 -F 选项来自定义输出格式。这个选项允许你指定输出哪些字段,非常有用于脚本处理:

lsof -Fpcu

这将只输出进程ID(p)、命令名(c)、用户ID(u)。

这些高级用法可以帮助你更好地掌握 lsof 工具的强大功能,使其成为系统监控和问题诊断的有力工具。