在计算机管理和运维工作中,查询系统配置是日常操作的重要组成部分,无论是排查故障、优化性能还是确保安全性,都需要准确掌握系统的当前配置状态,不同的操作系统和场景下,查询系统配置的命令各有不同,本文将详细介绍主流操作系统(如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的监听端口。
