5.1-5 uname、hostname、dmesg、stat、du
5.1 uname:显示系统信息
uname命令用于显示系统相关信息,比如内核版本号、硬件架构等。
-a 显示系统所有相关信息
-v 显示内核版本
-m 显示计算机硬件架构
-p 显示主机处理器类型
-n 显示主机名称
-o 显示操作系统名称
-r 显示内核发行版本号
-i 显示硬件平台
-s 显示内核名称
1.基础范例
[root@cs6 ~]# uname -a Linux cs6 2.6.32-754.el6.x86_64 #1 SMP Tue Jun 19 21:26:04 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux [root@cs6 ~]# uname -m x86_64 [root@cs6 ~]# uname -n cs6 [root@cs6 ~]# uname -r 2.6.32-754.el6.x86_64 [root@cs6 ~]# uname -s Linux [root@cs6 ~]# uname -v #1 SMP Tue Jun 19 21:26:04 UTC 2018 [root@cs6 ~]# uname -p x86_64 [root@cs6 ~]# uname -o GNU/Linux [root@cs6 ~]# uname -i x86_64
将命令“unam e-r”与反引号(ESC键下面“,”)一起使用,用在其他命令中替代Linux内核版本号。比如,在安装LVS时,就有一步这样的操作,如下:
[root@cs6 ~]# ln -s /usr/src/kernels/`uname -r`/ /usr/src/linux 命令原型 [root@cs6 ~]# ln -s /usr/src/kernels/2.6.32-754.el6.x86_64/ /usr/src/linux
5.2 hostname:显示或设置系统的主机名
hostname命令用于显示或设置系统的主机名称。许多网络程序均用主机名来标识主机,若没有设置好主机名,则可能会导致网络服务不正常。
-a 如果设置了主机别名,则可以用-a选项来显示主机的别名
-i 显示主机的IP地址,这个参数需要依赖DNS解析,比较慢,推荐使用下面的I选项
-I 显示主机的所有IP地址,不依赖DNS解析,速度较快
-s 显示短格式主机名
[root@cs6 ~]# hostname cs6 [root@cs6 ~]# hostname cs6-mini [root@cs6 ~]# logout [root@cs6-mini ~]#
永久修改主机名。
[root@cs6-mini ~]# cat /etc/sysconfig/network #<=只有修改配置文件,才能使得系统重启后,修改的主机名仍然有效。 NETWORKING=yes HOSTNAME=cs6-mini
需要说明的是,在CentOS7系统中,主机名的配置文件换成了/etc/hostname,修改/etc/sysconfig/network不会生效,需要修改/etc/hostname。
[root@cs7-mini ~]# cat /etc/hostname cs7-mini
配置主机hosts解析
[root@cs6-mini ~]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 cs6-mini ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 [root@cs6-mini ~]# hostname -s cs6-mini [root@cs6-mini ~]# hostname -a localhost.localdomain localhost4 localhost4.localdomain4 cs6-mini 获取系统的IP地址。 [root@cs6-mini ~]# hostname -I 10.0.0.100 172.16.1.100
5.3 dmesg:系统启动异常诊断
dmesg用于显示内核环形缓冲区(kernel-ring buffer)的内容。在进行系统引导时,内核会将硬件和模块初始化相关的信息写到这个缓冲区中。内核环形缓冲区中的消息对于诊断系统问题非常有用。内核环形缓冲区的内容同时会保存在/var/log目录中,即名称为dmesg的文件里。可通过如下命令进行查看:
-c 显示信息后,清除环形缓冲区中的内容
-s bufsize 设置缓冲区大小,默认16384(2.1.113内核或更高)
-n level 显示消息等级
[root@cs7-mini ~]# ll -h /var/log/dmesg -rw-r--r--. 1 root root 122K May 14 22:49 /var/log/dmesg [root@cs7-mini ~]# 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-957.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC) ) #1 SMP Thu Nov 8 23:39:32 UTC 2018
5.4 stat:显示文件或文件系统状态
stat 命令用于详细显示文件或文件系统的状态信息。
-f 显示文件所在分区的文件系统状态而非文件状态
-c 使用指定输出格式代替默认值
-t 使用简洁格式输出
支持的文件格式 %a 八进制权限 %A 用可读性较好的方式输出权限 %b 计算已分配块数(参见%B) %B 以字节为单位输出%b所报告的每个块的大小 %C SELinux安全环境字符串 %d 十进制设备编号 %D 十六进制设备编号 %f 十六进制原始模式 %F 文件类型 %g 文件的属组ID %G 文件的属组组名 %h 硬链接数量 %i Inode编号 %n 文件名 %N 如果对象是一个符号链接,则显示引用到的其他文件名 %o I/O块大小 %s 总计大小,以字节为单位 %t 十六进制主设备类型 %T 十六进制子设备类型 %u 文件的属主ID %U 文件的属主用户名 %x 上次访问时间 %X 从UNIX元年起计的上次访问时间 %y 上次修改时间 %Y 从UNIX元年起计的上次修改时间 %z 上次更改时间 %Z 从UNIX元年起计的上次更改时间 支持的文件系统格式 %a 非超级用户可用的剩余块数 %b 文件系统的总数据块数 %c 文件系统中文件节点的总数 %d 文件系统中空闲文件的节点数 %f 文件系统中空闲的块数 %C SELinux安全环境字符串 %i 十六进制文件系统ID %l 文件名允许的最大长度 %n 文件名 %s 块大小(用于快速传输) %S 基本块大小(用于块计数) %t 十六进制类型描述 %T 可读性较好的类型描述
[root@cs7-mini ~]# stat /etc/hosts File: ‘/etc/hosts’ Size: 158 Blocks: 8 IO Block: 4096 regular file #<==Size:文件大小。 #<==Blocks:占用block数量。 #<==I0 BloCk;Block 总大小为4096(8*512)。 #<==regular file;文件类型为普通文件。 Device: fd00h/64768d Inode: 16783436 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: 2019-05-14 12:58:58.905000611 +0800 #<==访问时间 Modify: 2013-06-07 22:31:32.000000000 +0800 #<==修改时间 Change: 2019-05-05 15:44:58.232342423 +0800 #<==状态更改时间 Birth: -
[root@cs7-mini ~]# stat -f /etc/hosts #<== -f 参教显示文件所在分区的文件系统状态而非文件状态,了解即可。 File: "/etc/hosts" ID: fd0000000000 Namelen: 255 Type: xfs Block size: 4096 Fundamental block size: 4096 Blocks: Total: 6811393 Free: 6530122 Available: 6530122 Inodes: Total: 13629440 Free: 13602728
范例5-9:如何取得/etc/hosts文件的权限对应的数字内容,比如-rw-r--r--为644,请使用命令取得644这样的数字。
[root@cs7-mini ~]# stat -c %a /etc/hosts 644
5.5 du:统计磁盘空间使用情况
du命令可以用于统计磁盘空间的使用情况,这个命令有助于我们找出哪个文件过多地占用了磁盘空间。
du命令的参数选项及说明
-a 显示所有文件大小
-h 以人类可读的方式查看大小,以K、M、G为单位
-s 显示文件的总大小
-exclude=<目录或文件> 略过指定的目录或文件
-X,--exclude-from=FILE 从文件读取需要略过的目录或文件
-max-depth=N 显示N级子目录的大小,当N=0时,该参数和-s参数的效果一样
通过参数-a显示所有目录或文件所占空间
[root@cs7-mini ~]# du -a #<==显示当前目录下所有文件(包括隐藏文件及子目录下的所有文件)的大小 4 ./.bash_logout 4 ./.bash_profile 4 ./.bashrc 4 ./.cshrc 4 ./.tcshrc 4 ./.bash_history 24 .
参数-s与-h的使用案例
[root@cs7-mini ~]# du -s 24 . [root@cs7-mini ~]# du -h 24K . [root@cs7-mini ~]# du -sh # 常用 24K . [root@cs7-mini ~]# du -sh /tmp/ #<==显示指定目录的总大小。 29M /tmp/
显示指定层次的目录的大小
[root@doit ~]# du -h --max-depth=1 /usr/local/ 4.0K /usr/local/sbin 9.1M /usr/local/shadowsocksr 4.0K /usr/local/lib64 4.0K /usr/local/bin 296K /usr/local/include 4.0K /usr/local/libexec 4.0K /usr/local/src 4.0K /usr/local/etc 840M /usr/local/go 92K /usr/local/share 6.3M /usr/local/lib 4.0K /usr/local/games 856M /usr/local/
排除指定目录的案例
[root@doit ~]# du -h --max-depth=1 /usr/local/ --exclude=/usr/local/share #<==不显示/usr/local/share日录的大小。 4.0K /usr/local/sbin 9.1M /usr/local/shadowsocksr 4.0K /usr/local/lib64 4.0K /usr/local/bin 296K /usr/local/include 4.0K /usr/local/libexec 4.0K /usr/local/src 4.0K /usr/local/etc 840M /usr/local/go 92K /usr/local/share 6.3M /usr/local/lib 4.0K /usr/local/games 856M /usr/local/