在Linux系统中查询服务器配置是系统管理和运维中的常见任务,涉及硬件信息、操作系统、网络、存储、进程等多个方面,通过命令行工具可以高效获取这些信息,以下从不同维度详细介绍常用的查询方法及命令。
硬件信息查询
硬件是服务器的基础,查询CPU、内存、磁盘等硬件信息有助于了解服务器性能和资源使用情况。
- CPU信息:使用
lscpu命令可查看CPU架构、核心数、线程数等详细信息,例如lscpu | grep "Model name"可获取CPU型号,若需更详细数据,可读取/proc/cpuinfo文件,如cat /proc/cpuinfo | grep "model name" | uniq。 - 内存信息:
free -h命令以易读格式(GB/MB)显示内存总量及使用情况,-h参数自动选择合适单位,通过cat /proc/meminfo可获取更详细的内存参数,如内存频率、缓存大小等。 - 磁盘与存储:
lsblk命令列出所有块设备,显示磁盘名称、大小、挂载点等信息,例如lsblk -f可查看文件系统类型。df -h则按挂载点显示磁盘空间使用情况,-h参数同样用于人性化显示,对于磁盘I/O性能,iostat -x 1(需安装sysstat工具)可实时显示磁盘利用率、响应时间等指标。
操作系统与系统信息
查询操作系统版本、内核信息等有助于确认系统环境是否满足应用需求。
- 系统版本:
cat /etc/os-release是标准方式,可输出发行版名称、版本号等信息,如Ubuntu、CentOS等,对于RedHat系系统,uname -a可显示内核版本、主机名、架构等,hostnamectl则提供更详细的系统状态,包括操作系统ID、版本ID等。 - 内核信息:
uname -r显示当前内核版本,dmesg | grep -i kernel可查看内核启动时的日志信息,帮助排查内核相关问题。
网络配置查询
网络配置是服务器通信的核心,需关注IP地址、路由表、网络连接等。
- IP地址与网络接口:
ip addr show或ifconfig(需安装net-tools)可查看所有网络接口的IP地址、子网掩码、MAC地址等信息,例如ip addr show eth0仅显示指定接口的配置。 - 路由表与DNS:
ip route show或route -n显示路由表,cat /etc/resolv.conf查看DNS服务器配置。 - 网络连接:
netstat -tuln或ss -tuln(推荐,性能更好)显示监听的TCP/UDP端口及对应进程,-t为TCP,-u为UDP,-l为仅显示监听端口,-n避免域名解析。
进程与服务查询
了解服务器上运行的进程和服务有助于排查资源占用问题或服务异常。
- 进程列表:
ps aux显示所有进程的详细信息,包括CPU、内存占用、命令行等,grep可过滤特定进程,如ps aux | grep nginx。top或htop(需安装)提供实时进程监控,支持交互式操作。 - 服务状态:对于Systemd系统,
systemctl status <服务名>查看服务状态,如systemctl status nginx;systemctl list-units --type=service列出所有服务及其运行状态。
其他常用查询
- 用户与登录信息:
who显示当前登录用户及终端信息,last查看历史登录记录,w则显示当前用户正在执行的命令。 - 系统负载:
uptime显示系统运行时间及负载平均值(1分钟、5分钟、15分钟),top中的load average也提供相同信息。 - 防火墙规则:
iptables -L -n -v查看iptables规则,firewall-cmd --list-all(适用于CentOS 7+)查看firewalld规则。
相关命令总结表
| 查询类别 | 常用命令 | 功能说明 |
|---|---|---|
| CPU信息 | lscpu, cat /proc/cpuinfo |
查看CPU型号、核心数、架构等 |
| 内存信息 | free -h, cat /proc/meminfo |
显示内存总量、使用情况及详细参数 |
| 磁盘信息 | lsblk, df -h, iostat -x |
列出块设备、磁盘空间使用及I/O性能 |
| 系统版本 | cat /etc/os-release, uname -a |
输出操作系统版本、内核信息 |
| 网络接口 | ip addr show, ifconfig |
查看IP地址、MAC地址、网络接口状态 |
| 网络连接 | ss -tuln, netstat -tuln |
显示监听端口及对应进程 |
| 进程监控 | ps aux, top, htop |
列出进程、实时监控资源占用 |
| 服务状态 | systemctl status <服务名> |
查看指定服务的运行状态 |
相关问答FAQs
Q1: 如何查看Linux服务器的真实物理CPU核心数?
A1: 可通过以下命令组合查看:
lscpu | grep "^CPU(s):"显示逻辑核心数(含超线程);lscpu | grep "^Core(s) per socket:"和lscpu | grep "^Socket(s):",将两者结果相乘得到物理核心数,若“Core(s) per socket”为4,“Socket(s)”为2,则物理核心数为8。
Q2: 如何查询服务器上某个进程占用的网络端口?
A2: 可使用ss或netstat命令结合grep过滤:
ss -tulnp | grep <进程名或PID>,例如ss -tulnp | grep nginx显示nginx进程监听的端口;netstat -tulnp | grep <进程名或PID>,功能类似,但ss性能更优,若已知进程PID,可直接用ss -tulnp | grep PID。
