Linux命令之查看系统信息


查看磁盘相关信息

df 查看磁盘使用情况,这个已经介绍过了。 fdisk 用来进行磁盘分区。我们只是需要它的-l命令查看磁盘的分区情况。如下:
m@sys:~/program/C_codes/algorithms$ sudo fdisk -l
[sudo] password for m: 
Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders, total 976773168 sectors
Units = 扇区 of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0006fe98

设备 启动      起点          终点     块数   Id  系统
/dev/sda1   *        2048   508022783   254010368   83  Linux
/dev/sda2       508024830   976771071   234373121    5  扩展
/dev/sda5       508024832   937709567   214842368   83  Linux
/dev/sda6       937711616   967008255    14648320   82  Linux 交换 / Solaris
/dev/sda7       967010304   976771071     4880384   83  Linux

给出的信息还是非常详细的。

dumpe2fs 查看某一具体分区的详细信息。每个分区可以安装不同的文件系统,且只能存在一个,所以其实分区就等价于文件系统。这个命令给出的信息非常多,好几屏都放不下,整体的架构是这样的:首先是该文件系统的整体信息;然后以块组(block group)为单位,从group0直到最后一个group。大家慢慢看吧。。

查看cpu相关信息

lscpu 会给出一个比较简略的信息
m@sys:~/program/C_codes/algorithms$ lscpu
Architecture:          i686
CPU 运行模式:    32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                4
On-line CPU(s) list:   0-3
每个核的线程数:1
每个座的核数:  4
Socket(s):             1
厂商 ID:           GenuineIntel
CPU 系列:          6
型号:              23
步进:              10
CPU MHz:             2659.968
BogoMIPS:              5319.93
虚拟化:           VT-x
L1d 缓存:          32K
L1i 缓存:          32K
L2 缓存:           2048K
想要查看更详尽的信息,可以使用cat /proc/cpuinfo,以后再详细介绍/proc文件系统。

查看内存使用情况

free 只是给出大概情况
m@sys:~$ free -h
            total       used       free     shared    buffers     cached
Mem:          3.8G       3.3G       531M       364M       145M       1.3G
-/+ buffers/cache:       1.9G       2.0G
Swap:          13G        94M        13G
想要查看更详细的信息,使用cat /proc/meminfo命令。free也是从这里获取信息的。

其他类似lscpu的查看硬件信息的命令

lsusb 列出usb总线信息,及设备信息。 lsscsi 列出scsi/sata设备信息,比如硬盘驱动器,光盘驱动器。 lspci 列出pci总线上信息,以及所有连接到pci总线上的设备信息。

lshw 列出许多个不同硬件的参数信息,其中包括cpu,内存,磁盘,usb控制器,网卡等等,lshw实质上是从/proc文件目录下的不同文件中提取对应的硬件信息。

lsblk 列出所有块设备信息,其中包括硬盘分区信息,以及其他存储设备,如光盘,闪存等。

查看操作系统相关信息

uname -a 内核信息。具体参数参看man。

m@meng:~/blog$ uname -a
Linux meng 3.13.0-55-generic #94-Ubuntu SMP Thu Jun 18 00:28:41 UTC 2015 i686 i686 i686 GNU/Linux

查看操作系统版本

m@meng:~/blog$ cat /etc/issue
Ubuntu 14.04.2 LTS \n \l
m@meng:~/blog$ sudo lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 14.04.2 LTS
Release:    14.04
Codename:   trusty

查看用户信息相关命令

whoami 我是谁?显示当前用户(这个命令似乎很废柴。。。) w 显示已经登录系统的用户的名称,以及他们正在做的事。该命令所使用的信息来源于/var/run/utmp文件。
m@sys:~$ w
 19:53:00 up 4 days,  5:35,  4 users,  load average: 2.63, 1.98, 1.60
 USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
 m        :0       :0               四15   ?xdm?   6:42m  1.00s init --user
 m        pts/18   :0               日16    8:54m  0.55s  0.40s vim PrimeControl.java
 m        pts/0    :0               日11   12.00s  0.49s  0.28s vim /home/m/blog/source/_posts/Linux命令之查看系统信息.md
 m        pts/25   :0               日12    4.00s  0.16s 41.02s gnome-terminal

显示的信息包括:用户名称
用户的机器名称或tty号
远程主机地址
用户登录系统的时间
空闲时间(作用不大)
附加到tty(终端)的进程所用的时间(JCPU时间)
当前进程所用时间(PCPU时间)
用户当前正在使用的命令

m@sys:~$ who
m        :0           2015-05-14 15:24 (:0)
m        pts/18       2015-05-17 16:57 (:0)
m        pts/0        2015-05-17 11:10 (:0)
m        pts/25       2015-05-17 12:17 (:0)

其他选项参见man。

whois 后面跟账户名称,可以查看该账户的详细信息。

id 显示特定用户的详细信息,和whois类似。不加参数时,默认显示当前用户。

m@sys:~$ id
uid=1000(m) gid=1000(m) 组=1000(m),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),112(lpadmin),124(sambashare)

last 用于显示特定用户登录系统的历史记录。如果没有指定任何参数,则显示所有用户的历史信息。在默认情况下,这些信息(所显示的信息)将来源于/var/log/wtmp文件。该命令的输出结果包含以下几列信息:
用户名称、tty设备号、历史登录时间日期、登出时间日期、总工作时间

m@sys:~$ last m
m        pts/18       :0               Sun May 17 16:57   still logged in   
m        pts/26       :0               Sun May 17 15:08 - 15:32  (00:24)    
m        pts/18       :0               Sun May 17 14:45 - 15:32  (00:47)    
m        pts/25       :0               Sun May 17 12:17   still logged in   
m        pts/0        :0               Sun May 17 11:10   still logged in   
m        pts/0        :0               Thu May 14 20:19 - 11:09 (2+14:50)   
。。。。

查看网络信息相关命令

显示主机名 hostname host 查看某个域名对应的IP
m@sys:~$ host www.baidu.com
www.baidu.com is an alias for www.a.shifen.com.
www.a.shifen.com has address 119.75.218.70
www.a.shifen.com has address 119.75.217.109

ifconfig 显示本机IP地址、MAC地址等信息,这个命令很强大,选项很多,参见man。

sys:~$ ifconfig 
eth0      Link encap:以太网  硬件地址 bc:30:5b:98:c7:cf  
inet 地址:192.168.108.146  广播:192.168.108.255  掩码:255.255.255.0
inet6 地址: fe80::be30:5bff:fe98:c7cf/64 Scope:Link
UP BROADCAST RUNNING MULTICAST  MTU:1500  跃点数:1
接收数据包:2725973 错误:0 丢弃:0 过载:0 帧数:0
发送数据包:1762647 错误:0 丢弃:0 过载:0 载波:0
碰撞:0 发送队列长度:1000 
接收字节:3117576569 (3.1 GB)  发送字节:244501778 (244.5 MB)
中断:21 Memory:f7ae0000-f7b00000 
lo        Link encap:本地环回  
inet 地址:127.0.0.1  掩码:255.0.0.0
inet6 地址: ::1/128 Scope:Host
UP LOOPBACK RUNNING  MTU:65536  跃点数:1
接收数据包:82508 错误:0 丢弃:0 过载:0 帧数:0
发送数据包:82508 错误:0 丢弃:0 过载:0 载波:0
碰撞:0 发送队列长度:0 
接收字节:19065248 (19.0 MB)  发送字节:19065248 (19.0 MB)

netstat 查看网络端口。当然作用不止这个,它同样很强大。我自己常用的几个选项是-apn,其他的查看man去吧。netstat 的输出主要分为两大部分,分别是 TCP/IP 的网络接口部分,以及传统的 Unix socket 部分。我只给个例子:

m@sys:~$ netstat -apn | tail
(并非所有进程都能被检测到,所有非本用户的进程信息将不会显示,如果想看到所有信息,则必须切换到 root 用户)
unix  3      [ ]         流        已连接     20532    2749/ibus-ui-gtk3   
unix  3      [ ]         流        已连接     10431    -                   /var/run/dbus/system_bus_socket
unix  2      [ ]         流        已连接     19317    2965/gvfsd-trash    @/dbus-vfs-daemon/socket-mulmC4fD
unix  3      [ ]         流        已连接     12136    2562/at-spi2-regist 
unix  3      [ ]         流        已连接     14198    -                   /var/run/dbus/system_bus_socket
unix  3      [ ]         流        已连接     1332871  24204/unity-scope-h @m-com.canonical.Unity.Master.Scope.music.T849459399525853
unix  3      [ ]         流        已连接     15077    -                   /var/run/dbus/system_bus_socket
unix  3      [ ]         流        已连接     18815    2465/dbus-daemon    @/tmp/dbus-cZ5hhUQOEN
unix  3      [ ]         流        已连接     4289114  3331/libpepflashpla 
unix  2      [ ]         数据报                21548    - 

查看系统负载

uptime 用于获取主机运行时间和查询linux系统负载等信息。uptime命令过去只显示系统运行多久。现在,可以显示系统已经运行了多长时间,信息显示依次为:现在时间、系统已经运行了多长时间、目前有多少登陆用户、系统在过去的1分钟、5分钟和15分钟内的平均负载。
m@sys:~$ uptime 
 20:25:18 up 4 days,  6:07,  4 users,  load average: 1.15, 1.27, 1.35

系统平均负载是指在特定时间间隔内运行队列中的平均进程数。
如果每个CPU内核的当前活动进程数不大于3的话,那么系统的性能是良好的。如果每个CPU内核的任务数大于5,那么这台机器的性能有严重问题。
如果你的linux主机是1个双核CPU的话,当Load Average 为6的时候说明机器已经被充分使用了。

vmstat vmstat是Virtual Meomory Statistics(虚拟内存统计)的缩写,可对操作系统的虚拟内存、进程、CPU活动进行监控。他是对系统的整体情况进行统计,不足之处是无法对某个进程进行深入分析。
m@sys:~$ vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
  3  0  98736 552864 130232 1298648    0    0     2    10   24   11  3  1 96  0  0

显示的信息在此不再详述。vmstat后面常常跟一个数字,表示多长时间收集一次数据。

procinfo procinfo指令从/proc目录里读取相关数据,将数据妥善整理过后输出到标准输出设备。
m@sys:~$ procinfo
Memory:        Total        Used        Free     Buffers                       
RAM:         4033684     3253004      780680      130772                       
Swap:       14648316       98736    14549580                                   

Bootup: Thu May 14 14:17:35 2015   Load average: 1.53 1.29 1.24 2/623 12807    

user  :           12:34:06.98   3.1%  page in :          2753447               
nice  :           00:01:39.48   0.0%  page out:         14451992               
system:           02:27:55.42   0.6%  page act:          9269897               
IOwait:           01:31:07.46   0.4%  page dea:           485308               
hw irq:           00:00:00.04   0.0%  page flt:        409341890               
sw irq:           00:00:24.37   0.0%  swap in :             4321               
idle  :     2w 2d 07:35:17.73  95.9%  swap out:            28266               
uptime:        4d 06:21:29.29         context :        880934961               

irq   0:         75  timer               irq  23:    2179869  ehci_hcd:usb2, uh
irq   1:          3  i8042               irq  40:   22558440  hpet2            
irq   7:          1  parport0            irq  41:   23046413  hpet3            
irq   8:          1  rtc0                irq  42:   25352135  hpet4            
irq   9:          3  acpi                irq  43:   22893493  hpet5            
irq  12:          4  i8042               irq  48:    1258851  ahci             
irq  16:      58604  uhci_hcd:usb3       irq  49:    2768638  eth0             
irq  17:          0  uhci_hcd:usb4, uh   irq  50:    7732162  i915             
irq  18:          0  uhci_hcd:usb8       irq  51:       1139  snd_hda_intel    
irq  22:          2  ehci_hcd:usb1, uh                                         

sda           162103r          793668w                                         

eth0        TX 232.44MiB     RX 2.90GiB       lo          TX 16.89MiB      RX 16.89MiB

完。

相关内容