一、ubuntu 查看端口占用情况

在Ubuntu 系统中,你可以使用以下几种方法来查看端口占用情况以及检查指定端口是否被占用:

方法 1:使用 netstat 命令(传统方式)

1
2
3
4
5
# 查看所有端口占用情况
sudo netstat -tulnp

# 查看指定端口是否被占用(例如检查 80, 443, 3306 端口)
sudo netstat -tulnp | grep -E ':(80|443|3306)\s'

选项说明:

  • -t:显示 TCP 端口
  • -u:显示 UDP 端口
  • -l:仅显示监听中的端口
  • -n:以数字形式显示地址和端口
  • -p:显示进程信息

方法 2:使用 ss 命令(更现代的替代方案)

1
2
3
4
5
# 查看所有端口占用情况
sudo ss -tulnp

# 检查指定端口是否被占用(例如 80, 443, 3306)
sudo ss -tulnp | grep -E ':(80|443|3306)\s'

ss 命令比 netstat 更快,是推荐的现代替代方案。

方法 3:使用 lsof 命令

1
2
3
4
5
# 查看所有端口占用
sudo lsof -i -P -n

# 检查指定端口(例如 80, 443, 3306)
sudo lsof -i :80,443,3306

方法 4:快速检查单个端口是否被占用

1
2
3
4
5
6
7
8
# 检查单个端口(例如 8080)
sudo lsof -i :8080
# 或
sudo netstat -tulnp | grep :8080
# 或
sudo ss -tulnp | grep :8080

# 如果端口未被占用,这些命令不会有输出

方法 5:使用 telnetnc 测试端口连接性

1
2
3
4
5
# 检查本地端口(例如 3306)
telnet 127.0.0.1 3306

# 或使用 nc
nc -zv 127.0.0.1 3306

检查多个指定端口的脚本示例

如果你想一次性检查多个端口是否被占用,可以使用这个脚本:

1
2
3
4
5
6
7
8
9
10
11
12
#!/bin/bash
ports=(80 443 3306 8080 8000)

for port in "${ports[@]}"; do
echo -n "Checking port $port... "
if sudo lsof -i :$port > /dev/null 2>&1; then
echo -e "\e[31m占用\e[0m"
sudo lsof -i :$port | head -n 2
else
echo -e "\e[32m空闲\e[0m"
fi
done

将上述脚本保存为 check_ports.sh,然后运行:

1
2
chmod +x check_ports.sh
./check_ports.sh

注意事项

  1. 查看端口占用通常需要 sudo 权限才能看到所有信息
  2. 如果端口被占用,命令会显示占用该端口的进程信息
  3. 没有输出通常表示端口未被占用
  4. 对于 Docker 容器使用的端口,也需要用上述方法检查

这些方法可以帮助你全面了解 Ubuntu 系统中的端口占用情况,并快速检查特定端口是否可用。

二、Ubuntu 系统信息查看命令大全

1. 查看系统版本信息

查看 Ubuntu 版本

1
lsb_release -a

输出示例:

1
2
3
4
5
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 22.04.3 LTS
Release: 22.04
Codename: jammy

查看内核版本

1
2
3
uname -a
# 或
cat /proc/version

查看系统架构

1
2
3
arch
# 或
uname -m

2. 查看内存信息

查看内存总量和使用情况

1
free -h

输出示例:

1
2
3
              total        used        free      shared  buff/cache   available
Mem: 15Gi 3.2Gi 8.4Gi 1.2Gi 3.4Gi 10Gi
Swap: 2.0Gi 0.0Ki 2.0Gi

查看详细内存信息

1
cat /proc/meminfo

监控内存使用(动态)

1
2
3
top
# 或
htop # 需要安装:sudo apt install htop

3. 查看硬盘信息

查看磁盘分区和挂载情况

1
df -h

输出示例:

1
2
Filesystem      Size  Used Avail Use% Mounted on
/dev/nvme0n1p2 457G 123G 311G 29% /

查看所有磁盘设备

1
2
3
lsblk
# 或
sudo fdisk -l

查看磁盘IO情况

1
2
3
iostat -x 1
# 或安装
sudo apt install sysstat

4. 查看CPU信息

查看CPU型号和核心数

1
lscpu

输出示例:

1
2
3
4
Architecture:            x86_64
CPU op-mode(s): 32-bit, 64-bit
CPU(s): 16
Model name: Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz

查看CPU使用率

1
2
3
top
# 或
mpstat -P ALL 1

查看CPU温度(需要安装lm-sensors)

1
2
3
sudo apt install lm-sensors
sudo sensors-detect
sensors

5. 查看综合系统信息

使用neofetch(需要安装)

1
2
sudo apt install neofetch
neofetch

使用inxi工具(需要安装)

1
2
sudo apt install inxi
inxi -Fxz

6. 查看GPU信息

NVIDIA显卡

1
2
3
nvidia-smi
# 或
lspci | grep -i nvidia

AMD/Intel显卡

1
2
lspci | grep -i vga
glxinfo | grep "OpenGL renderer"

7. 查看网络信息

查看IP地址

1
2
3
ip a
# 或
hostname -I

查看网络接口

1
2
3
ifconfig
# 或
ip link show

查看路由表

1
2
3
ip route
# 或
route -n

8. 查看系统运行时间

1
uptime

输出示例:

1
14:30:45 up 5 days,  2:15,  3 users,  load average: 0.08, 0.03, 0.01

9. 查看系统日志

查看内核日志

1
dmesg

查看系统服务日志

1
journalctl -xe

10. 常用组合命令

一键查看主要系统信息

1
2
3
4
5
echo -e "\n===== 系统版本 =====" && lsb_release -a && \
echo -e "\n===== 内存信息 =====" && free -h && \
echo -e "\n===== 磁盘信息 =====" && df -h && \
echo -e "\n===== CPU信息 =====" && lscpu | grep -E "Model name|CPU\(s\)" && \
echo -e "\n===== 运行时间 =====" && uptime

以上命令可以帮助您全面了解Ubuntu系统的硬件配置和运行状态。根据您的具体需求选择适合的命令即可。