本项目收集了众多常用的系统网络命令,包括但不限于 Unix/Linux 系统下的命令,以及适用于 Windows 环境的类似命令。
这里我可以帮你整理一个基于类 Unix 系统的网络命令大全,这些命令包括但不限于用于网络测试和配置的工具。下面的分类旨在帮助你更好地理解和使用这些工具:
这些命令覆盖了网络测试、监控、配置和安全等方面,是系统管理员和网络工程师常用的工具。
lsof
命令的常见用法:lsof
这个命令会列出系统中所有当前打开的文件。
lsof -u username
替换 username
为实际的用户名,这个命令将显示该用户打开的所有文件。
lsof -p PID
将 PID
替换为进程的ID,这个命令会显示该进程打开的所有文件。
lsof -i :port
将 port
替换为端口号,例如,lsof -i :22
将显示所有使用端口 22 的进程。
lsof -i
显示所有网络连接相关的文件。
lsof -t type
例如,lsof -t REG
会列出所有常规文件。
lsof +D /path/to/directory
替换 /path/to/directory
为你想检查的目录。这个命令会列出在指定目录下或子目录中被打开的所有文件。
lsof /dev/sda1
这个命令列出所有打开 /dev/sda1
设备的文件。
lsof +L1
这对于找到那些删除了但由于仍被进程占用而未释放磁盘空间的文件非常有用。
lsof -U
这些用法覆盖了 lsof
最常见和最有用的功能,能帮助系统管理员监视和诊断系统文件使用情况及网络活动。
lsof
的高级用法:lsof
支持使用多个条件进行筛选,这可以通过组合多个 -a
(and)和 -o
(or)选项来实现。例如,要找出特定用户打开的特定类型的文件,可以使用:
lsof -a -u username -t type
如果你想查看除了特定用户或进程外的文件,可以使用 ^
符号。例如,要排除用户 root
的条目,可以使用:
lsof -u ^root
lsof
允许在搜索中使用正则表达式,这使得搜索可以更加灵活。例如,要查找所有以 .log
结尾的文件,可以使用:
lsof | grep '\.log$'
虽然 lsof
本身不支持实时监控,但可以通过与 watch
命令结合使用来实现实时监视特定文件或端口的使用情况。例如,每隔2秒查看一次端口 80 的使用情况:
watch -n 2 'lsof -i :80'
使用 -i
选项不带任何参数可以查看所有活动的网络连接(TCP/UDP),这对于快速查看系统的网络活动非常有用:
lsof -i
了解一个进程加载了哪些共享库可以对系统调优和安全检查非常有用。你可以通过查找类型为 mem
的文件来查找进程使用的共享库:
lsof -p PID -a -d mem | grep '.so'
这对于找到那些占用磁盘空间但在文件系统中不可见的文件非常有用。这些文件通常是一些应用程序删除了文件的目录项,但还没有关闭文件描述符:
lsof +L1
lsof
提供了 -F
选项来自定义输出格式。这个选项允许你指定输出哪些字段,非常有用于脚本处理:
lsof -Fpcu
这将只输出进程ID(p)、命令名(c)、用户ID(u)。
这些高级用法可以帮助你更好地掌握 lsof
工具的强大功能,使其成为系统监控和问题诊断的有力工具。