linux怎么查看系统配置

说实话,在Linux中查看系统配置信息其实非常简单。
我们先来说说最重要的事情。
要查询CPU配置,请使用lscpu命令。
它可以快速告诉您CPU架构、核心数量和线程数量。
比如我们去年跑的项目中,我们使用了 lscpu|grep -E "Architecture|Modelname|CPU(s)|Core(s)|Thread(s)"。
输出结果中的CPU是逻辑处理器的总数。
计算公式为物理CPU数量×单个CPU核心数×单核线程数。
还有一点就是查询内存配置。
使用free -h命令可以查出总金额、已用金额、剩余金额。
要获取有关内存设备的信息,请使用 dmidecode-tmemory 命令。
还有一个非常重要的细节。
对于磁盘配置查询,lsblk命令可以显示磁盘和分区信息,df -h命令可以显示文件系统详细信息,hdparm -I /dev/sda(替换为物理设备名称)可以检查磁盘型号和速度。
最后查询系统版本,cat /etc/os-release 查看release版本信息,uname -r 查看内核版本。
等等,还有很多人没有注意到的事情。
free-h和df-h中的-h参数是关键,因为它可以使数据更具可读性。
我觉得值得一试,特别是对于刚接触Linux的朋友来说。

查看Linux系统信息

说实话,这些命令其实足以在Linux系统中查看硬件和系统信息,但是在使用的时候总会遇到一点麻烦。
当我过去管理服务器时, lsb_release -a 特别有用,尤其是在进行跨发行版脚本编写时 - 例如,在 Debian 上编写命令时,必须首先确认它是否是稳定版本。
但是有一次我忘记安装 lsb-release 包了。
我可以使用 cat /etc/os-release 来查看它,但输出格式有点混乱。

说到uname -a,这个命令简直就是万能的。
我有一个习惯,每当服务器出现问题时,我都会首先运行它。
像“Linux myserver 4 .1 5 .0-1 01 -generic 1 03 -Ubuntu SMP...”这样的信息行可以帮助我快速查找是否是内核问题。
但有趣的是,内核编译时间非常不精确,因为服务器时钟经常跑来跑去,所以需要用 date 命令检查才可靠。

要查看CPU信息,我更喜欢使用lscpu,这比cat /proc/cpuinfo容易得多。
它直接为您提供型号、核心数、频率等关键数据。
然而,当我安装虚拟机时,发现在宿主机和虚拟机上运行这个命令的结果完全不同。
我当时不明白为什么。
查了资料发现是虚拟化层干扰了。
因此,在使用该命令之前,首先要确认是否是物理机。

对于硬盘空间,df -h 是我离不开的命令。
我有一个便携式硬盘,分为三个区域。
每次安装软件时,我都必须使用 df -h 来查看还剩多少交换空间。
上次安装Adobe Creative Cloud占用了快2 0G,惊出一身冷汗。
但有一个陷阱你应该注意。
在某些系统上,df 显示的单位可能不是 GB。
您需要使用 du -sh /a 特定分区来验证它。

对于内存信息,我更经常使用vmstat 1 2 命令,这比free -m直观得多。
您可以实时查看交换分区和缓存变化。
然而,free -m 有一个小技巧。
您可以使用-S参数按实际使用情况排序。
我有一台服务器,其中内存被一个进程秘密占用,我终于用这个命令发现了它。
但要注意的是,缓存特别奇怪。
有时free -m 显示空闲内存较少,但系统本身运行速度很快。

说到网络信息,我早就被ip-adr抛弃了。
Ifconfig 现在仅在旧系统上使用。
但有一次我租了一台云服务器,发现ifconfig根本看不到公网IP,最后用ip-adr找到了绑定的ens3 3 接口。
我通常使用 ethtool -i 来更清楚地看到 MAC 地址等底层信息,这比 ifconfig 好得多。

这些命令实际上是从内核提供的proc和sys文件系统映射而来的,这一点特别神奇。
但说实话,这个系统正变得越来越复杂。
有时,打开一个shell脚本来自动检查特定进程占用的CPU和内存比直接使用这些命令组合更好。
例如,使用top或ps aux来检查特定进程占用的CPU和内存会更方便。
但对于初学者或者临时查资料来说,这些命令绝对够用了。
关键是知道何时使用哪一个。