• L32.linux命令每日一练 -- 第五章 Linux信息显示与搜索文件命令 -- dmesg和stat


    5.3 dmesg:系统启动异常诊断

    5.3.1 命令详解

    【命令星级】 ★★★☆☆

    【功能说明】

    ​ dmesg用于显示内核环形缓冲区(kernel-ring buffer)的内容。在进行系统引导时,内核会将硬件和模块初始化相关的信息写到这个缓冲区中。内核环形缓冲区中的消息对于诊断系统问题非常有用。

    ​ 内核环形缓冲区的内容同时会保存在/var/log目录中,即名称为dmesg的文件里。可通过如下命令进行查看:

    [root@centos7 ~]# ll -h /var/log/dmesg
    -rw-r--r--. 1 root root 119K Oct 24 20:49 /var/log/dmesg
    
    • 1
    • 2

    ​ 【语法格式】

    dmesg [option]
    dmesg [选项]
    
    • 1
    • 2

    ​ **说明:**在dmesg命令及后面的选项里,每个元素之间都至少要有一个空格。

    【选项说明】

    ​ 表5-3针对该命令的参数选项进行了说明。

    ​ 表5-3 dmesg命令的参数选项及说明

    在这里插入图片描述

    5.3.2 使用范例

    ​ **范例5-6:**查看内核环形缓冲区。

    [root@centos7 ~]# dmesg |less	#通过less命令分页查看缓冲区内容,用于查看应急故障等信息。
    [    0.000000] Initializing cgroup subsys cpuset
    [    0.000000] Initializing cgroup subsys cpu
    [    0.000000] Initializing cgroup subsys cpuacct
    [    0.000000] Linux version 3.10.0-1127.19.1.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC) ) #1 SMP Tue Aug 25 17:23:54 UTC 2020
    [    0.000000] Command line: BOOT_IMAGE=/vmlinuz-3.10.0-1127.19.1.el7.x86_64 root=UUID=95c7620f-87ac-46eb-90ef-bbf800bd84ed ro crashkernel=auto biosdevname=0 net.ifnames=0 rhgb quiet LANG=en_US.UTF-8
    [    0.000000] e820: BIOS-provided physical RAM map:
    [    0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009ebff] usable
    [    0.000000] BIOS-e820: [mem 0x000000000009ec00-0x000000000009ffff] reserved
    [    0.000000] BIOS-e820: [mem 0x00000000000dc000-0x00000000000fffff] reserved
    [    0.000000] BIOS-e820: [mem 0x0000000000100000-0x000000003fedffff] usable
    [    0.000000] BIOS-e820: [mem 0x000000003fee0000-0x000000003fefefff] ACPI data
    [    0.000000] BIOS-e820: [mem 0x000000003feff000-0x000000003fefffff] ACPI NVS
    [    0.000000] BIOS-e820: [mem 0x000000003ff00000-0x000000003fffffff] usable
    :
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    5.4 stat:显示文件或文件系统状态

    5.4.1 命令详解

    【命令星级】 ★★★☆☆

    【功能说明】

    ​ stat命令用于详细显示文件或文件系统的状态信息。

    【语法格式】

    stat [option] [file]
    stat [选项] [<文件或目录>]
    
    • 1
    • 2

    ​ **说明:**在stat命令及后面的选项里,每个元素之间都至少要有一个空格。

    【选项说明】

    ​ 表5-4针对该命令的参数选项进行了说明。

    ​ 表5-4 stat命令的参数选项及说明

    在这里插入图片描述
    在这里插入图片描述

    5.4.2 使用范例

    ​ **范例5-7:**查看文件的属性信息。

    [root@centos7 ~]# stat /etc/hosts
      File: ‘/etc/hosts’
      Size: 166       	Blocks: 8          IO Block: 4096   regular file
    #Size:文件大小。
    #Blocks: 占用block数量。
    #IO Block: Block总大小为4096(8*512)。
    #regular file:文件类型为普通文件。
    Device: 803h/2051d	Inode: 16879251    Links: 1
    #Device: 设备编号的十六进制(h)和十进制(d)。
    #Inode: 文件的inode值。
    #Links: 文件的硬链接数。
    Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
    #Access: 文件权限。
    #Uid和Gid:用户和用户组。
    Context: system_u:object_r:net_conf_t:s0
    Access: 2020-10-24 20:55:47.235014226 +0800	#访问时间。
    Modify: 2020-10-24 20:55:35.728013814 +0800	#修改时间。
    Change: 2020-10-24 20:55:35.732013814 +0800	#状态更改时间。
     Birth: -
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    ​ **范例5-8:**查看文件系统属性。

    [root@centos7 ~]# stat -f /etc/hosts	#-f参数显示文件所在分区的文件系统状态而非文件状态,了解即可。
      File: "/etc/hosts"
        ID: 80300000000 Namelen: 255     Type: xfs
    Block size: 4096       Fundamental block size: 4096
    Blocks: Total: 4453632    Free: 3836123    Available: 3836123
    Inodes: Total: 8912384    Free: 8837689
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    ​ **范例5-9:**如何取得/etc/hosts文件的权限对应的数字内容,比如-rw-r–r–为644,请使用命令取得644这样的数字。

    ​ 从范例5-7可以发现,文件属性有如下一行内容:

    Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
    
    • 1

    ​ 显然,可以用sed、cut、awk、grep等命令将这行内容中的644提取出来。

    ​ 但是这里有一个思想:当命令结果包含我们所需要的内容时,我们首先要考虑,是否有具体的参数能够一步获得我们所需的结果呢?对于上面的范例5-9,我们可使用如下命令:

    [root@centos7 ~]# stat -c %a /etc/hosts
    644
    
    • 1
    • 2

    ​ 这个方法是最简单的。同理,想要获取范例5-7结果中的其他值,可以使用其他相应的参数。

  • 相关阅读:
    Kotlin 值类 - value class
    【JAVA】Java实现rpc框架所需方法(类似Dubbo)
    经济管理专业必备的15种国内数据库推荐
    C#对象序列化
    免费开源的非标项目型制造BOM一键导入方案介绍
    项目部署、
    子层连接结构
    网络学习DAY3--TCP并发
    全网最详细安装 IntelliJ IDEA (原理+方法)不看别后悔
    举个栗子~Tableau 技巧(232):用工作表创建多行列图例
  • 原文地址:https://blog.csdn.net/qq_25599925/article/details/125686465