9个Linux系统信息命令

通过这些命令可以查看 Linux 系统硬件、内核、发行版、主机名、正常运行时间等详细信息。

1. uname – 打印系统信息

uname 命令可打印 Linux 系统内核、硬件架构、主机名和操作系统的详细信息。其中包括版本号和机器信息。

uname(Unix name的缩写)打印可操作的系统信息,当您知道当前的Linux版本时,这些信息很方便。

大多数情况下,您将使用-a(–all)标志,因为默认输出没有那么有用:

[root@xx ~] uname 
Linux 
[root@xx ~] uname -a 
Linux 10-10-50-210 4.19.188-10.el7.ucloud.x86_64 #1 SMP Wed Apr 28 09:54:38 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

解释uname -a 输出每个部分的含义:

  • 10-10-50-210:这是系统的主机名(hostname),它是您的计算机在网络上的标识符。在这个例子中,主机名是"10-10-50-210"。

  • 4.19.188-10.el7.ucloud.x86_64:这是Linux内核的版本号。在这个例子中,内核版本是4.19.188-10.el7.ucloud.x86_64。

  • #1 SMP Wed Apr 28 09:54:38 UTC 2021:这是系统的内核编译信息,包括编译日期和时间。在这个例子中,内核是在2021年4月28日09:54:38(UTC时间)编译的。

  • x86_64 x86_64 x86_64:这表示系统的体系结构(architecture),也就是处理器的类型。在这个例子中,体系结构是x86_64,表示使用的是64位的x86架构处理器。

  • GNU/Linux:这表示系统的操作系统类型。GNU/Linux是一种自由和开放源代码的操作系统,它基于GNU工具和Linux内核。

uname 对于查询这些核心系统详细信息非常有用。一些选项包括:

  • -a – 打印所有可用的系统信息
  • -r – 只打印内核版本号

上述命令打印了扩展系统信息,包括内核名称/版本、硬件架构、主机名和操作系统。

[root@xx ~] uname -r 
4.19.188-10.el7.ucloud.x86_64

这将只打印内核版本号。 uname 命令显示 Linux 系统核心组件的详细信息。

2. hostname – 显示或设置系统主机名

hostname 命令将打印或设置网络中 Linux 系统的主机名标识符。在没有参数的情况下,它会显示当前的主机名。传递名称将更新主机名。

例子:

[root@linuxserver ~] hostname
linuxserver

将显示配置的系统主机名 linuxserver。

[root@linuxserver ~] hostname UbuntuServer
# 命令是即时生效的,不用reboot,打开新窗口后显示[root@UbuntuServer ~] 

hostnames 标识网络上的系统。 hostname 获取或配置网络上系统的标识名称。第二条命令可以帮助你将本地主机名更改为 UbuntuServer。

3. uptime – 系统运行了多久

uptime 命令显示 Linux 系统自上次重启以来已经运行了多长时间。它会打印出运行时间和当前时间。

只需运行以下命令即可获取系统运行时间数据:

uptime
23:51:26 up 2 days, 4:12, 1 user, load average: 0.00, 0.01, 0.05

这将打印系统正常运行时间,显示系统自上次启动以来的运行时间。

还输出了两点信息,记不清的伙伴请看 6个Linux进程管理命令 - top 的第一行

4. whoami – 打印有效用户 ID

whoami 命令将打印当前登录系统用户的有效用户名。

该命令(who am I的缩写)显示当前使用的whoami用户名:

whoami
# root

使用echo和环境变量$USER可以得到相同的结果:

echo $USER
# root

这将打印当前用户登录和操作的有效用户名,在脚本或诊断中非常有用,可用于识别正在执行操作的用户账户。

5. id – 打印真实有效的用户和组 ID

id 命令打印有关当前用户有效 ID 和名称的详细用户和组信息。其中包括

有用的选项:

  • -u:显示当前用户的用户ID(UID)。
  • -g:显示当前用户所属的主要组ID(GID)。
  • -G:显示当前用户所属的所有组ID(GID),以空格分隔。
  • -n:显示当前用户的用户名。
  • -un:显示当前用户的用户名和用户ID(UID)。

这些示例可以帮助您了解如何使用id命令来获取用户的不同信息。根据您的需求,选择适当的选项即可。

要使用 id 命令,只需键入:

[root@xx ~]# id
uid=1000(john) gid=1000(john) groups=1000(john),10(wheel),998(developers)
[root@xx ~]# id apache
uid=48(apache) gid=48(apache) groups=48(apache)

id命令输出内容的意思:

  • uid=1000(john): 这表示用户"john"的用户ID(UID)为1000。
  • gid=1000(john): 这表示用户"john"所属的主要组ID(GID)为1000。
  • groups=1000(john),10(wheel),998(developers): 这表示用户"john"所属的附加组ID(GID)列表为1000(组名为"john")、10(组名为"wheel")、998(组名为"developers")。

简而言之,输出显示了用户"john"的用户ID、主要组ID以及附加组ID的信息。用户"john"的UID为1000,所属的主要组ID也为1000,同时还属于其他两个附加组,分别是"wheel"(GID为10)和"developers"(GID为998)。

这些信息对于了解用户的身份和所属组是很有用的,可以用于控制访问权限和资源共享等方面。

6. lscpu – 显示 CPU 架构信息

lscpu 命令显示详细的 CPU 架构信息,包括

  • CPU 内核数
  • 接口数量
  • 型号名称
  • 缓存大小
  • CPU 频率
  • 地址大小

要使用 lscpu 命令,只需键入:

lscpu
Architecture:        x86_64
CPU op-mode(s):      32-bit, 64-bit
Byte Order:          Little Endian
CPU(s):              16
On-line CPU(s) list: 0-15

lscpu 详细列出 CPU 架构,如内核数、插口、型号名称、缓存等。

进一步介绍:

[root@xx ~]# lscpu
Architecture:            x86_64CPU op-mode(s):        32-bit, 64-bitAddress sizes:         46 bits physical, 48 bits virtualByte Order:            Little Endian
CPU(s):                  2On-line CPU(s) list:   0,1
Vendor ID:               GenuineIntelBIOS Vendor ID:        Red HatModel name:            Intel(R) Xeon(R) CPU E5-2682 v4 @ 2.50GHzBIOS Model name:     RHEL 7.6.0 PC (i440FX + PIIX, 1996)CPU family:          6Model:               79Thread(s) per core:  1Core(s) per socket:  2Socket(s):           1Stepping:            1BogoMIPS:            5000.05Flags:               fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon rep_good nopl xtopology cpuid tsc_known_freq pni pclmulqdq vmx ssse3 fma cx16pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch cpuid_fault invpcid_single pti ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm rdseed adx smap xsaveopt arat umip md_clear arch_capabilities
Virtualization features: Virtualization:        VT-xHypervisor vendor:     KVMVirtualization type:   full
Caches (sum of all):     L1d:                   32 KiB (1 instance)L1i:                   32 KiB (1 instance)L2:                    256 KiB (1 instance)L3:                    40 MiB (1 instance)
NUMA:                    NUMA node(s):          1NUMA node0 CPU(s):     0,1
Vulnerabilities:         Itlb multihit:         Not affectedL1tf:                  Mitigation; PTE Inversion; VMX flush not necessary, SMT disabledMds:                   Mitigation; Clear CPU buffers; SMT Host state unknownMeltdown:              Mitigation; PTIMmio stale data:       Vulnerable: Clear CPU buffers attempted, no microcode; SMT Host state unknownRetbleed:              Not affectedSpec store bypass:     Mitigation; Speculative Store Bypass disabled via prctlSpectre v1:            Mitigation; usercopy/swapgs barriers and __user pointer sanitizationSpectre v2:            Mitigation; Retpolines, IBPB conditional, IBRS_FW, STIBP disabled, RSB filling, PBRSB-eIBRS Not affectedSrbds:                 Not affectedTsx async abort:       Mitigation; Clear CPU buffers; SMT Host state unknown

关于系统CPU的信息解释:

  • Architecture: x86_64: 这表示系统的体系结构是x86_64,也就是64位的x86架构。
  • CPU op-mode(s): 32-bit, 64-bit: 这表示CPU支持32位和64位操作模式。
  • Address sizes: 46 bits physical, 48 bits virtual: 这表示物理地址大小为46位,虚拟地址大小为48位。
  • Byte Order: Little Endian: 这表示系统使用小端字节序。
  • CPU(s): 2: 这表示系统有两个CPU核心。
  • On-line CPU(s) list: 0,1: 这表示在线的CPU核心列表是0和1。
  • Vendor ID: GenuineIntel: 这表示CPU供应商是Intel。
  • BIOS Vendor ID: Red Hat: 这表示BIOS供应商是Red Hat。
  • Model name: Intel(R) Xeon(R) CPU E5-2682 v4 @ 2.50GHz: 这表示CPU的型号名称是Intel Xeon E5-2682 v4,主频为2.50GHz。
  • BIOS Model name: RHEL 7.6.0 PC (i440FX + PIIX, 1996): 这表示BIOS的型号名称是RHEL 7.6.0 PC,基于i440FX + PIIX架构。
  • CPU family: 6: 这表示CPU系列是第6代。
  • Model: 79: 这表示CPU型号是79。
  • Thread(s) per core: 1: 这表示每个CPU核心只支持1个线程。
  • Core(s) per socket: 2: 这表示每个CPU插槽有2个核心。
  • Socket(s): 1: 这表示系统中只有1个CPU插槽。
  • Stepping: 1: 这表示CPU的版本号是1。
  • BogoMIPS: 5000.05: 这是一个性能指标,表示每秒钟可以执行的虚拟指令数。
  • Flags: ...: 这是一系列标志位,表示CPU支持的特性和指令集。
  • Virtualization: VT-x: 这表示CPU支持虚拟化技术VT-x。
  • Hypervisor vendor: KVM: 这表示系统运行在KVM虚拟化平台上。
  • Virtualization type: full: 这表示系统支持完全虚拟化。
  • Caches (sum of all): ...: 这是关于CPU缓存的信息,包括L1、L2和L3缓存的大小。
  • NUMA node(s): 1: 这表示系统中有1个NUMA节点。
  • NUMA node0 CPU(s): 0,1: 这表示NUMA节点0上有CPU核心0和1。
  • Vulnerabilities: ...: 这是关于CPU安全漏洞的信息,包括对各种漏洞的缓解措施。

这些信息提供了关于系统CPU的详细描述,包括体系结构、核心数量、缓存大小、支持的特性、虚拟化技术、安全漏洞缓解措施等。这些信息对于了解系统的硬件配置、性能特征和安全性非常有用。

7. lsblk – 列出块设备

lsblk 命令列出所有可用块设备的信息,包括本地磁盘、分区和逻辑卷。输出包括设备名称、标签、大小和挂载点。

lsblk
NAME    MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
sda       8:0    0   1.8T  0 disk
|-sda1    8:1    0   512M  0 part  /boot
|-sda2    8:2    0    16M  0 part
`-sda5    8:5    0   1.8T  0 part
`-lvm1 254:0    0   1.8T  0 lvm   /

lsblk 列出所有块设备,包括磁盘、分区和逻辑卷。提供存储设备概览。

进一步介绍:

[root@xx ~]# lsblk
NAME   MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda    253:0    0  60G  0 disk 
└─vda1 253:1    0  60G  0 part /

每一列的解释:

  • NAME: 显示了块设备的名称,通常以字母开头,后面可能跟着数字或其他字符。
  • MAJ:MIN: 显示了块设备的主设备号(Major Device Number)和次设备号(Minor Device Number)。主设备号用于标识设备类型,次设备号用于标识设备的具体实例。
  • RM: 显示了设备是否为可移动设备(Removable)。如果为0,则表示设备不可移动;如果为1,则表示设备可移动。
  • SIZE: 显示了设备的总大小,以字节、千字节(KB)、兆字节(MB)、千兆字节(GB)或其他适当的单位表示。
  • RO: 显示了设备是否为只读(Read-Only)。如果为0,则表示设备可读写;如果为1,则表示设备只读。
  • TYPE: 显示了设备的类型,如磁盘(disk)、分区(part)等。
  • MOUNTPOINT: 显示了设备当前挂载的路径。如果设备未挂载,则显示为空。

有两行输出:

  • 第一行表示一个名为"vda"的磁盘设备,大小为60GB,它没有挂载点。
  • 第二行表示"vda"设备的一个分区"vda1",大小也为60GB,它被挂载在根目录"/"下。

这些信息可以帮助您了解系统中的块设备及其挂载情况。

8. lsmod – 显示 Linux 内核模块的状态

lsmod 命令会打印当前加载的内核模块(如设备驱动程序)。这包括 Linux 内核用于连接内部和外部设备的网络、存储和其他硬件相关模块。

[root@xx ~]# lsmod
Module                  Size  Used by
ipv6                  406206  27
evdev                   17700  0
crct10dif_pclmul       16384  1
crc32_pclmul           16384  0
ghash_clmulni_intel    16384  0
aesni_intel           399871  0
aes_x86_64             20274  1 aesni_intel

可以看到,它列出了当前加载的内核模块(如设备驱动程序)。在本例中,它显示了网络、输入、加密和加密模块的使用情况。

详细介绍:

  • Module: 列出了加载的内核模块的名称。
  • Size: 显示了模块在内存中的大小,以字节为单位。
  • Used by: 显示了使用该模块的其他模块或进程的数量。

示例输出:

  • 模块名称是"ipv6"。
  • 模块大小为406206字节。
  • 该模块被27个模块或进程所使用。

常用的lsmod命令选项结合使用的命令:

  • modinfo <module_name>: 使用modinfo命令结合lsmod输出中的模块名称,可以获取有关特定模块的更详细信息,如作者、描述、版本等。

  • grep : 使用grep命令结合lsmod输出和关键字,可以过滤出包含指定关键字的模块信息。例如,lsmod | grep bluetooth将只显示与蓝牙相关的模块。

  • awk 或 cut: 使用awk或cut命令结合lsmod输出的文本处理功能,可以提取出特定列或信息。例如,lsmod | awk "{print $1}"将只打印出模块名称的列。

例子:

[root@xx ~]# lsmod | grep "xfs"
xfs                  2048000  1
libcrc32c              16384  1 xfs

"xfs"的模块它依赖于"libcrc32c"模块。

9. dmesg – 打印或控制内核环缓冲区

dmesg 命令从内核环形缓冲区转储信息。其中包括内核在启动和运行过程中记录的重要系统事件。

dmesg | grep -i error
[   12.345678] Error receiving batched read response: -110
[   23.456789] tplink_mdio 0000:03:00.0: Direct firmware load for tplink-mdio/leap_p8_v1_0.bin failed with error -2
[   40.567890] iwlwifi 0000:09:00.0: Direct firmware load for iwlwifi-ty-a0-gf-a0-59.ucode failed with error -2

搜索 “错误” 会显示加载特定固件时出现的问题。这将打印缓冲的内核日志信息,包括启动、错误、警告等系统事件。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/622587.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

阿里云服务器的tcp端口无法访问(云服务厂家问题?)

问题->无法访问 阿里云服务器的tcp端口 最近一台阿里云服务器的一个端口61616无法访问&#xff0c;在服务器内用外网地ip发现无法访问&#xff0c;用内网ip访问是正常的&#xff0c;通过技术排查&#xff1a; 解决->无法访问 阿里云服务器的tcp端口 1 配置官网的安全组…

【angular教程240107】04 Dom及表单双向数据绑定,ToDoList+service 服务+实现数据的持久化

05 Angular中Dom操作 以及表单&#xff08; input、checkbox、radio、select、 textarea &#xff09;结合双休数据绑定实现在线预约功能 0快捷键 输入法快速切换 &#xff1a;shitf alt 半角 全角 ctrl空格 Angular表单 Dom获取表单值 以及双向数据绑定 1. Angular表单 D…

c++学习笔记-STL案例-演讲比赛管理系统2

目录 功能介绍 代码结构部分 查看一下类图 1.Speaker.h 2.speechManager.h 3.speechManager.cpp 4.演讲比赛流程关系系统.cpp 功能介绍 speechManager.h函数包含演讲比赛流程的所有功能如下&#xff1a; 开始演讲比赛&#xff1a;完成整届比赛的流程&#xff0c;每…

数据结构.线性表(2)

一、模板 例子&#xff1a; a: b: 二、基本操作的实现 &#xff08;1&#xff09;初始化 &#xff08;2&#xff09;销毁和清空 &#xff08;3&#xff09;求长度和判断是否为空 &#xff08;4&#xff09;取值 &#xff08;5&#xff09;查找 &#xff08;6&#xff09;插入 &…

【期末考试】数据库综合复习宝典

目录 第一章 数据库系统概述 第二章 关系代数 第四章 关系数据库理论 第五章 数据库设计 第六章 数据库管理系统 第八章 事务管理 第一章 数据库系统概述 1.1三级模式 ①外模式&#xff1a;它为特定的应用程序或用户群体提供了一个数据视图&#xff0c;这个视图是独立于…

Maven和MyBatis框架简单实现数据库交互

MyBatis是一种基于Java语言的持久层框架&#xff0c;它的主要目的是简化与数据库的交互过程。MyBatis通过XML或注解配置来映射Java对象和数据库表之间的关系&#xff0c;并提供了灵活的查询方式和结果集处理机制。MyBatis还提供了事务管理、缓存机制、插件扩展等特性。 使用My…

Maven编译时,如何忽略swagger注解

public class School implements Serializable {private static final long serialVersionUID 1595261592489L;ApiModelProperty(value "主键")private Long id;ApiModelProperty(value "学校名称")private String name;ApiModelProperty(value "…

Linux学习记录——사십 高级IO(1)

文章目录 1、IO2、同、异步IO&#xff08;5种IO类型&#xff09;3、其它高级IO4、非阻塞IO 其它IO类型的实现在这篇之后的三篇 1、IO input&#xff0c;output。调用read或recv接口时&#xff0c;如果对方长时间不向我方接收缓冲区拷贝数据&#xff0c;我们的进程就只能阻塞&a…

python桶排序

桶排序是一种分布式排序算法&#xff0c;它将待排序的元素分散到不同的桶中&#xff0c;然后对每个桶中的元素进行排序&#xff0c;最后按照桶的顺序将所有元素合并起来。 桶排序的基本思想是将待排序的元素分散到若干个有序的桶中&#xff0c;然后对每个桶中的元素进行排序&a…

SpringBoot 操作Redis

Redis的Java客户端 Redis的Java客户端常用的有&#xff1a; JedisLettuceSpring Data Redis Spring Data Redis是Spring的一部分&#xff0c;对Redis底层开发包进行了高度封装。在Spring项目中&#xff0c;可以使用Spring Data Redis来简化操作。 Spring Data Redis使用方式…

基于面向对象,C++实现双链表

双链表同单链表类似&#xff0c;由一个值和两个指针组成 Node.h节点头文件 #pragma once class Node { public:int value;Node* prev;Node* next;Node(int value);~Node(); };Node.cpp节点源文件 #include "Node.h"Node::Node(int value) {this->value value…

如何开启文件共享及其他设备如何获取

1.场景分析 日常生活中&#xff0c;常常会遇到多台电脑共同办公文件却不能共享的问题&#xff0c;频繁的用移动硬盘、U盘等拷贝很是繁琐&#xff0c;鉴于此&#xff0c;可以在同一内网环境下设置共享文件夹&#xff0c;减少不必要的文件拷贝工作&#xff0c;提升工作效率。废话…

希尔排序和计数排序

&#x1f4d1;前言 本文主要是【排序】——希尔排序、计数排序的文章&#xff0c;如果有什么需要改进的地方还请大佬指出⛺️ &#x1f3ac;作者简介&#xff1a;大家好&#xff0c;我是听风与他&#x1f947; ☁️博客首页&#xff1a;CSDN主页听风与他 &#x1f304;每日一句…

Jmeter 压测接口返回大量数据时吞吐量上不去问题记录

1. 背景介绍 近期需要对外部提供一个批量查询接口&#xff0c;接口逻辑并不复杂&#xff0c;只是返回的数据有点多。分页查询&#xff0c;最大查询100个单子&#xff0c;分页单页最大值没有限制&#xff0c;那么&#xff0c;极端情况下&#xff0c;就是一次查询100个单…

【PyTorch简介】3.Loading and normalizing datasets 加载和规范化数据集

Loading and normalizing datasets 加载和规范化数据集 文章目录 Loading and normalizing datasets 加载和规范化数据集Datasets & DataLoaders 数据集和数据加载器Loading a Dataset 加载数据集Iterating and Visualizing the Dataset 迭代和可视化数据集Creating a Cust…

【Docker篇】从0到1搭建自己的镜像仓库并且推送镜像到自己的仓库中

文章目录 &#x1f50e;docker私有仓库&#x1f354;具体步骤 &#x1f50e;docker私有仓库 Docker私有仓库的存在为用户提供了更高的灵活性、控制和安全性。与使用公共镜像仓库相比&#xff0c;私有仓库使用户能够完全掌握自己的镜像生命周期。 首先&#xff0c;私有仓库允许…

力扣-盛最多水的容器

11.盛最多水的容器 给定一个长度为 n 的整数数组 height 。有 n 条垂线&#xff0c;第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。找出其中的两条线&#xff0c;使得它们与 x 轴共同构成的容器可以容纳最多的水。返回容器可以储存的最大水量。 说明&#xff1a;你不能倾斜…

C //练习 4-10 另一种方法是通过getline函数读入整个输入行,这种情况下可以不使用getch与ungetch函数。请运用这一方法修改计算器程序。

C程序设计语言 &#xff08;第二版&#xff09; 练习 4-10 练习 4-10 另一种方法是通过getline函数读入整个输入行&#xff0c;这种情况下可以不使用getch与ungetch函数。请运用这一方法修改计算器程序。 注意&#xff1a;代码在win32控制台运行&#xff0c;在不同的IDE环境下…

C语言程序设计——程序流程控制方法(二)

循环结构 while语句 while(表达式){代码块; }do{代码块; }while(表达式)while语句分为do-while和while两种&#xff0c;区别在于循环之前是不是先执行一次循环的内容&#xff0c;可以类似于i和i的关系&#xff0c;本质上来讲是相同的。当表达式为真时&#xff0c;则会执行一次…

【Java 干货教程】Java方法引用详解

导言 Java方法引用是Java 8引入的一项重要特性&#xff0c;它提供了一种简洁、可读性高的方式来直接引用已经存在的方法。方法引用使得代码更加简洁、易懂&#xff0c;同时提高了代码的可维护性和重用性。本文将详细介绍Java方法引用的概念、语法和使用方法&#xff0c;并提供…