linux命令uname、lsof、netstat、ss使用教程

uname

uname 是一个 Linux/Unix 系统中的命令,用于显示操作系统和内核相关的信息。它可以显示系统的名称、
内核版本、硬件架构等信息。

查看操作系统名称
uname

该命令默认只显示系统的名称,例如 Linux

查看所有系统信息
uname -a

-a 选项会显示系统的所有信息,包括:

  • 内核名称
  • 主机名
  • 内核版本
  • 系统架构
  • 操作系统类型等

示例输出:

Linux myhostname 5.11.0-25-generic #27-Ubuntu SMP Fri Jul 9 23:41:42 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
查看内核版本
uname -r

该命令会显示系统正在运行的内核版本。

查看主机名
uname -n

显示当前的主机名。

查看内核的发布版本
uname -v
查看硬件架构
uname -m

该命令会显示系统的架构,例如 x86_64 表示 64 位架构。

显示内核名称
uname -s
显示操作系统类型
uname -o

lsof

lsof 是一个用于显示系统中打开文件的命令。它可以列出当前系统中打开的文件、网络连接、进程等相关信息。

无选项

列出所有打开的文件:在终端中输入 lsof,然后按下回车键。这将显示当前系统中所有打开的文件的列表。

lsof
列出指定进程打开的文件

使用 -p 选项,后跟进程 ID(PID),可以列出特定进程打开的文件。

# 格式
lsof -p <PID>
#示例
lsof -p 1234
列出指定用户打开的文件

使用 -u 选项,后跟用户名,可以列出特定用户打开的文件。

# 格式
lsof -u <username> 
#示例
lsof -u john
列出指定文件名相关的进程

使用文件名作为参数,可以列出正在使用该文件的进程。

# 格式
lsof </path/to/file>
#示例
lsof hello.txt
列出网络连接

使用 -i 选项,可以列出当前系统上的网络连接。

# 格式
lsof -i # 将显示所有网络连接的相关信息
lsof -i :<port> # 查看使用该端口的进程
lsof -i tcp # 查看使用指定协议的网络连接
lsof -i udp # 查看使用指定协议的网络连接
lsof -i -u john
#示例
lsof hello.txt
显示目录下打开的文件

使用 +D 选项,可以显示目录下打开的文件。

# 格式
lsof +D <dir>
#示例
lsof +D .
查看某个程序打开的文件

使用 -c 选项,可以查看某个程序打开的文件。

# 格式
lsof -c <command>
#示例
lsof -c sshd
定时刷新

使用 -r 选项,可以定时刷新。

# 格式
lsof -r <second>
#示例
lsof -r 1 -i :3306
lsof -r 1 -u john
lsof -r 1 hello.txt

netstat

netstat 是一个常用的网络状态查看工具,可以显示网络连接、路由表、接口统计等信息。
虽然 netstat 在一些系统中已被替代为 ss,但它仍然广泛使用。以下是一些常用的 netstat 用法:

无选项

显示已建立连接的端口,不显示正在监听的端口

显示所有网络连接

显示所有已建立连接的端口和所有正在监听的端口

netstat -a
显示监听端口

仅显示正在监听的套接字。

netstat -l
指定协议
  • -t 或 --tcp:仅显示 TCP 协议相关的网络连接。
  • -u 或 --udp:仅显示 UDP 协议相关的网络连接。
  • -U 或 --udplite:仅显示 UDPLite 协议相关的网络连接。
  • -S 或 --sctp:仅显示 SCTP 协议相关的网络连接。
  • -w 或 --raw:仅显示 RAW 协议相关的网络连接。
  • -x 或 --unix:仅显示 UNIX 域套接字相关的连接。
  • –ax25:仅显示 AX.25 协议相关的网络连接。
  • –ipx:仅显示 IPX 协议相关的网络连接。
  • –netrom:仅显示 NET/ROM 协议相关的网络连接。
# 格式
netstat -t
netstat --tcp
netstat -u
netstat --udp
# 示例
netstat -tp | grep sshd
显示进程对应的网络连接

显示每个连接关联的进程信息。

netstat -p
显示路由表

打印内核路由表。

netstat -r
显示网络接口的信息

使用-i选项显示网络接口的发送/接收数据包统计信息。-I和–interfaces可以指定接口名称。

# 格式
netstat -i # 显示所有网路接口信息
netstat -I=<interface> # 显示指定网路接口信息
netstat --interfaces=<interface> # 显示指定网路接口信息
# 示例
netstat -i # 显示所有网路接口信息
netstat -I=lo # 显示指定网路接口信息
netstat --interfaces=lo # 显示指定网路接口信息
不解析主机名、端口和用户名,直接显示数字

使用-n选项。不解析主机名、端口和用户名,直接显示数字。

netstat -tn
显示详细信息

使用-e选项。显示详细信息,如用户 ID、传输的字节数等。

netstat -lte | grep mysql
显示各协议的统计信息

使用-s选项。显示各协议的统计信息。

netstat -ts
netstat -us
netstat -s --icmp
查看实时更新

netstat命令本身没有定时刷新的功能。可以使用watch 命令监控变化。

watch -n 2 netstat -tuln

每两秒刷新一次当前监听的 TCP 和 UDP 端口列表。

注意事项
  • netstat 可能需要 root 权限才能获取完整信息。
  • 在某些 Linux 发行版中,net-tools 包可能需要手动安装,以使用 netstat
  • 对于新的系统和更多功能,可以考虑使用 ss 命令作为 netstat 的替代工具。

ss

netstat和ss命令用法基本相同,只不过netstat是老命令,ss是新命令。具体用法可以参考netstat命令。netstat


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值