在计算机管理和运维工作中,查询系统配置是日常操作的重要组成部分,无论是排查故障、优化性能还是确保安全性,都需要准确掌握系统的当前配置状态,不同的操作系统和场景下,查询系统配置的命令各有不同,本文将详细介绍主流操作系统(如Linux、Windows)中常用的系统配置查询命令,涵盖硬件信息、操作系统版本、网络配置、进程状态、服务状态、磁盘空间、文件系统、用户权限等多个方面,并辅以表格归纳关键命令的使用场景和输出说明,帮助读者快速定位所需信息。

Linux系统配置查询命令
Linux作为服务器和开发环境的主流系统,提供了丰富的命令行工具来查询系统配置,以下按功能模块分类说明:
系统基本信息与硬件配置
-
uname
:显示操作系统和硬件的基本信息。
常用选项:-a
(显示所有信息,包括内核版本、主机名、处理器类型等)、-r
(仅显示内核版本)、-m
(显示硬件架构,如x86_64)。
示例:uname -a
输出类似Linux hostname 5.4.0-91-generic #102-Ubuntu SMP Fri Nov 5 13:21:36 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
,包含内核版本、系统架构等关键信息。 -
lscpu
:显示CPU的详细配置,包括架构、核心数、线程数、缓存大小等。
示例:lscpu
可输出CPU型号(如Model name: Intel(R) Core(TM) i7-9750H
)、核心数(CPU(s): 12
)、逻辑处理器数(On-line CPU(s) list: 0-11
)等。 -
free
:查看系统内存使用情况,包括物理内存、交换空间(Swap)。
选项:-h
(以人类可读格式显示,如GB、MB)、-m
(以MB为单位)。
示例:free -h
输出total used free shared buff/cache available
,其中available
列表示可用内存,是判断内存压力的重要指标。(图片来源网络,侵删) -
df
:显示文件系统的磁盘空间使用情况。
选项:-h
(人类可读格式)、-T
(显示文件系统类型)。
示例:df -h
列出各挂载点的总空间、已用空间、可用空间及使用率,帮助快速定位磁盘不足的分区。 -
lsblk
:列出块设备信息,包括硬盘、分区、挂载点等。
选项:-f
(显示文件系统类型、UUID、挂载点)。
示例:lsblk -f
输出类似sda 8:0 0 500G 0 disk └─sda1 8:1 0 500G 0 part /mnt/data
,清晰展示磁盘分区结构。
网络配置与连接状态
-
ip
:显示和配置网络接口、路由表等信息(取代了传统的ifconfig
)。
常用子命令:ip a
(显示所有网络接口的IP地址、MAC地址)、ip link
(显示网络接口状态,如UP/DOWN)、ip route
(显示路由表)。
示例:ip a
输出ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
,包含接口状态和IP地址(如inet 192.168.1.100/24
)。 -
netstat
:显示网络连接、路由表、接口统计等信息。
选项:-an
(显示所有连接,不解析域名)、-tuln
(显示监听的TCP/UDP端口)。
示例:netstat -tuln
列出当前监听的端口及对应服务,如tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
表示SSH服务在22端口监听。(图片来源网络,侵删) -
ss
:netstat
的替代工具,速度更快,功能更强大。
选项:-tulpn
(与netstat -tuln
类似,但显示进程ID和名称)。
示例:ss -tulpn
输出LISTEN 0 511 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=1234,fd=3))
,直接关联到进程。
进程与服务管理
-
ps
:显示当前运行的进程。
选项:-ef
(显示所有进程,完整格式)、-aux
(显示所有进程,包含CPU/内存使用率)。
示例:ps -ef
输出进程ID(PID)、父进程ID(PPID)、启动命令(CMD)等,如root 1234 1 0 10:00 ? 00:00:01 /usr/sbin/sshd -D
。 -
top
/htop
:实时显示进程动态,按CPU/内存使用率排序。
htop
是top
的增强版,支持彩色显示、交互操作(如 killing 进程),更直观。 -
systemctl
:管理systemd系统和服务。
常用命令:systemctl list-units --type=service
(列出所有服务状态)、systemctl status nginx
(查看nginx服务状态)、systemctl is-enabled sshd
(检查服务是否开机自启)。
用户与权限
-
id
:显示当前用户的UID、GID及所属用户组。
示例:id
输出uid=1000(user) gid=1000(user) groups=1000(user),27(sudo)
,显示用户的基本组和其他附加组。 -
whoami
:显示当前登录用户名。 -
last
:显示用户登录历史记录,包括登录时间、来源IP等。
Windows系统配置查询命令
Windows系统提供了命令提示符(CMD)和PowerShell两种工具,PowerShell功能更强大,推荐优先使用。
系统基本信息与硬件
-
systeminfo
:显示详细的系统配置信息,包括操作系统版本、制造商、处理器、内存、网卡等。
示例:在CMD中运行systeminfo
,输出包含OS 名称: Microsoft Windows 11 专业版
、处理器: Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
、总物理内存: 16 GB
等信息。 -
wmic
:Windows Management Instrumentation Command-line工具,可查询硬件和系统信息。
示例:wmic cpu get name
(获取CPU型号)、wmic diskdrive get size,model
(获取硬盘大小和型号)、wmic memorychip get capacity
(获取内存容量)。 -
tasklist
:显示当前运行的进程列表。
选项:/v
(显示详细信息,如会话ID、内存使用)、/svc
(显示进程关联的服务)。
示例:tasklist /svc
输出进程名、PID、关联服务,如svchost.exe 1236 Services: LanmanWorkstation
。
网络配置
-
ipconfig
:显示网络接口配置信息。
选项:/all
(显示详细信息,包括MAC地址、IP、子网掩码、DNS等)、/release
//renew
(释放/重新获取IP)。
示例:ipconfig /all
输出以太网适配器的IPv4地址、子网掩码、默认网关、DNS服务器等。 -
netstat
:与Linux类似,显示网络连接和端口状态。
选项:-an
(显示所有连接,不解析域名)、-bn
(显示数字形式的IP和端口)、-o
(显示进程PID)。
示例:netstat -ano | findstr "80"
查找监听80端口的进程及PID。 -
Get-NetAdapter
:PowerShell命令,显示网络适配器状态(如启用/禁用、速度、MAC地址)。
示例:Get-NetAdapter | Where-Object {$_.Status -eq "Up"}
查询所有启用的网络适配器。
服务与性能
-
sc query
:查询服务状态(停止/运行中)、描述、路径等。
示例:sc query spooler
查看打印后台处理服务的状态。 -
Get-Service
:PowerShell命令,管理服务,Get-Service | Where-Object {$_.Status -eq "Running"}
查询所有运行中的服务。 -
typeperf
:监控系统性能计数器,如CPU使用率、内存使用率。
示例:typeperf "\Processor(_Total)\% Processor Time" -sc 5
每1秒采集一次CPU使用率,共5次。
关键命令总结表格
以下表格归纳了常用操作系统查询系统配置的核心命令及其功能:
操作系统 | 命令 | 主要功能 | 常用选项/示例 |
---|---|---|---|
Linux | uname |
显示系统内核版本、硬件架构 | -a (所有信息)、-r (内核版本) |
Linux | lscpu |
显示CPU详细信息(核心数、架构、缓存等) | 无需选项,直接显示lscpu |
Linux | free |
查看内存使用情况(物理内存、Swap) | -h (人类可读格式)、-m (MB为单位) |
Linux | df |
查看文件系统磁盘空间使用率 | -h (人类可读)、-T (显示文件系统类型) |
Linux | ip |
显示/配置网络接口、路由表 | ip a (IP地址)、ip route (路由表) |
Linux | ss /netstat |
显示网络连接、监听端口 | -tulpn (显示监听端口及进程) |
Linux | systemctl |
管理systemd服务 | status nginx (服务状态)、list-units --type=service (所有服务) |
Windows | systeminfo |
显示详细系统信息(OS版本、硬件、网络等) | 无需选项,直接运行systeminfo |
Windows | wmic |
通过WMI查询硬件/系统信息 | wmic cpu get name (CPU型号)、wmic diskdrive get size (硬盘大小) |
Windows | ipconfig |
显示网络接口配置(IP、MAC、DNS等) | /all (详细信息)、/release //renew (释放/获取IP) |
Windows | netstat |
显示网络连接、端口状态 | -ano (显示PID和数字IP端口) |
Windows | sc query |
查询Windows服务状态 | sc query spooler (打印服务状态) |
相关问答FAQs
Q1: 如何快速查看Linux系统当前监听的端口及对应服务?
A: 使用ss
或netstat
命令结合-tulpn
选项,ss -tulpn
(推荐,显示进程名和PID)或netstat -tuln
(显示监听端口),输出结果中Local Address:Port
列显示监听地址和端口,Process
列(ss
)或PID/Program name
列(netstat
)对应关联的服务进程,例如nginx
服务通常监听80端口。
Q2: Windows系统中如何查看某个进程占用的网络端口?
A: 方法1:使用netstat
命令结合-ano
选项和管道符findstr
,例如netstat -ano | findstr "进程PID"
,通过进程PID查找其占用的端口;方法2:通过任务管理器“详细信息”选项卡,右键进程选择“打开文件位置”,或使用PowerShell命令Get-NetTCPConnection -State Listen | Where-Object {$_.OwningProcess -eq "PID"}
,查看指定PID的监听端口。