Linux Shell编程与编辑器使用详解
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.1 常用的信息显示命令

在Linux中,常用的信息显示命令大约有50多个。通过信息显示命令,系统管理员可以直接了解系统的工作状态。

2.1.1 cal命令:日期显示

cal命令用于显示日历,配合选项“-y”可以显示全年的年历。cal命令的语法格式如下所示。

    cal  [-1][-3][-s][-m][-j][-y][[month] year]

其中,各选项说明如表2-1所示。

表2-1 cal命令的选项说明

例如,显示当前月份,使用命令如下。

    #cal
          九月 2012
    一  二  三  四 五  六 日
                  1  2
    3  4  5  6  7  8  9
    10 11 12 13 14 15 16
    17 18 19 20 21 22 23
    24 25|26 27 28 29 30  //今天是25号

例如,按Julian日期表示形式(显示距1月1日的天数)显示2012年9月的日历,如下所示。

    $ cal  -j 9  2012
                  九月 2012
      一  二   三  四   五   六   日
                    245246
    247248 249250 251252 253
    254255 256257 258259 260
    261262 263264 265266 267
    268269|270271 272273 274

例如,显示前一月,当前月以及下一月的月历,如下所示。

    # cal -3
        八月 2012               九月 2012               十月 2012
    一 二 三 四 五 六 日        一  二 三  四  五 六  日    一  二 三  四  五  六 日
          1  2  3  4  5                   1  2    1  2  3  4  5  6  7
      6  7  8  9 10 11 12    3  4  5  6  7  8  9    8  9 10 11 12 13 14
    13 14 15 16 17 18 19   10 11 12 13 14 15 16   15 16 17 18 19 20 21
    20 21 22 23 24 25 26   17 18 19 20 21 22 23   22 23 24 25 26 27 28
    27 28 29 30 31         24 25 26 27 28 29 30   29 30 31

2.1.2 cat /proc/meminfo:内存使用情况查询

文件/proc/meminfo保存了当前系统内存使用情况的相关信息。配合使用cat命令可以查看内存使用情况。

例如,查看系统内存使用情况,命令如下所示。

    # cat  /proc/meminfo
    MemTotal:         1025988 kB           //总内存1024MB
    MemFree:           317324 kB
    Buffers:           139140 kB
    Cached:            372808 kB           //缓存区
    SwapCached:             0 kB
    Active:            370700 kB
    Inactive:          272408 kB
    Active(anon):      136596 kB
    Inactive(anon):        16 kB
    Active(file):      234104 kB
    Inactive(file):    272392 kB
    Unevictable:            0 kB
    Mlocked:                0 kB
    HighTotal:         139144 kB
    HighFree:             252 kB
    LowTotal:          886844 kB
    LowFree:           317072 kB
    SwapTotal:        2187256 kB           //交换区
    SwapFree:         2187256 kB
    Dirty:             300 kB
    Writeback:           0 kB
    AnonPages:      131208 kB
    Mapped:          57248 kB
    Shmem:            5456 kB
    Slab:            47412 kB
    SReclaimable:    38676 kB
    SUnreclaim:       8736 kB
    KernelStack:      1960 kB
    PageTables:       4772 kB
    NFS_Unstable:        0 kB
    Bounce:              0 kB
    WritebackTmp:        0 kB
    CommitLimit:   2700248 kB
    Committed_AS:   495896 kB
    VmallocTotal:   122880 kB
    VmallocUsed:      8420 kB
    VmallocChunk:   108136 kB
    HardwareCorrupted:   0 kB
    HugePages_Total:     0
    HugePages_Free:     0
    HugePages_Rsvd:     0
    HugePages_Surp:     0
    Hugepagesize:       4096 kB
    DirectMap4k:       16376 kB
    DirectMap4M:      892928 kB
    root@li-desktop:~#

注意:/proc目录下的文件不是真正意义上的文件,关闭系统后,该目录中的文件不再存在。该目录文件通常用来帮助查看内核运行信息。

2.1.3 free命令:内存详细信息查询

free命令用于显示系统使用和空闲的内存情况,涉及的内存包括物理内存、交换分区内存(swap)和内核缓冲区内存以及高速缓存。free命令的语法格式如下所示。

    free  [-b][-k][-m][-g][-o][-t][-s delay][-c count][-V]

其中,各选项的具体说明如表2-2所示。

表2-2 命令free的选项说明

例如,直接使用free命令显示内存的使用情况,如下所示。

    #free                     total     used     free   shared  buffers    cached
    Mem:     1025988    711260    314728        0    139140    372876
    -/+ buffers/cache:    199244    826744
    Swap:     2187256        0   2187256                //显示内存使用信息

例如,以总和的形式显示内存使用信息,命令如下所示。

    # free  -t                //以总和的形式显示内存使用信息
              total     used     free    shared   buffers    cached
    Mem:     1025988    711384    314604        0    139140    372888
    -/+ buffers/cache:    199356    826632
    Swap:     2187256        0   2187256
    Total:    3213244    711384   2501860

例如,每隔4秒,周期性地查询内存使用信息,命令如下所示。

    # free  -s 4                   //每4秒钟执行一次free命令
              total     used     free    shared   buffers    cached
    Mem:     1025988    711384    314604        0    139140    372888
    -/+ buffers/cache:    199356    826632
    Swap:     2187256        0   2187256
              total     used     free    shared   buffers    cached
    Mem:     1025988    711392    314596        0    139140    372888
    -/+ buffers/cache:     199364     826624
    Swap:      2187256         0    2187256
    … …

例如,每隔2秒刷新一次内存信息,共刷新两次,命令如下所示。

    # free  -s 2-c 2
              total       used       free     shared    buffers     cached
    Mem:       1025988     711880     314108         0     139140     372896
    -/+ buffers/cache:     199844     826144
    Swap:      2187256         0    2187256
              total       used       free     shared    buffers     cached
    Mem:       1025988     712012     313976         0     139140     372896
    -/+ buffers/cache:     199976     826012
    Swap:      2187256         0    2187256
    #

例如,以旧有格式显示内存信息,命令如下。

    # free  -o
                total       used       free     shared    buffers     cached
    Mem:       1025988     712252     313736         0     139140     372896
    Swap:      2187256         0    2187256

可以看到,所显示的内容中不包含缓存信息。

2.1.4 arch命令:CPU架构显示

arch命令等同于命令uname-m,用于查询并显示主机的体系结构。在当前的Linux系统下,arch命令的输出结果有:i386、i486、i586、alpha、sparc、arm、m68k、mips、ppc、i686等。

例如,显示当前系统的体系结构,命令如下所示。

    # arch                            //打印当前系统的体系结构
    i686                              //intel架构的

2.1.5 cat /proc/cpuinfo命令:处理器CPU信息显示

文件/proc/cpuinfo中保存了处理器的相关信息,通过cat命令查看/proc/cpuinfo,可以查询CPU的相关信息。例如:

    #cat  /proc/cpuinfo
    processor     : 0
    vendor_id     : GenuineIntel
    cpu family    : 6
    model          : 42
    model name   : Intel(R) Core(TM) i5-2450M CPU @ 2.50GHz  //不同电脑的配置不一样
    stepping      : 7
    cpu MHz       : 2494.410                  //二级缓存
    cache size   : 3072 KB                   //三级缓存
    fdiv_bug : no
    hlt_bug       : no
    f00f_bug      : no
    coma_bug      : no
    fpu            : yes
    fpu_exception: yes
    cpuid level  : 13
    wp             : yes
    flags          : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss nx rdtscp lm constant_tsc up arch_perfmon pebs bts xtopology tsc_reliable nonstop_tsc aperfmperf pni pclmulqdq ssse3 cx16 sse4_1 sse4_2 popcnt aes xsave avx hypervisor lahf_lm ida arat
    bogomips      : 4988.82
    clflush size : 64                  //64位的处理器
    cache_alignment  : 64
    address sizes    : 40 bits physical, 48 bits virtual
    power management :                //电源管理
    root@li-desktop  :~#

2.1.6 cat /proc/modules:查询当前系统被加载模块

文件/proc/modules保存了当前系统中被加载模块的相关信息。配合使用cat命令可以查看当前系统加载模块的情况。

例如,下面的命令查看系统当前加载的模块,如下所示。

    # cat  /proc/modules
    rfcomm 33421 4- Live 0xf8445000                    //live表示存活状态
    binfmt_misc 6587 1- Live 0xf8394000
    sco 7885 2- Live 0xf8212000
    bridge 45582 0- Live 0xf83cd000                    //桥接
    stp 1655 1 bridge, Live 0xf8082000
    bnep 9436 2- Live 0xf8110000
    l2cap 30624 16 rfcomm,bnep, Live 0xf81b3000         //I2C设备
    vmhgfs 46483 1- Live 0xf81d5000
    vsock 32729 0- Live 0xf80d5000
    vmmemctl 6503 0- Live 0xf8059000
    acpiphp 18284 0- Live 0xf8660000
    nfsd 238967 13- Live 0xf860d000
    exportfs 3437 1 nfsd, Live 0xf83ab000
    nfs 264813 0- Live 0xf856c000                      //NFS挂载文件系统
    lockd 64849 2 nfsd,nfs, Live 0xf84f7000
    nfs_acl 2245 2 nfsd,nfs, Live 0xf8245000
    snd_ens137118814 0- Live 0xf83ea000
    auth_rpcgss 33735 2 nfsd,nfs, Live 0xf8409000
    gameport 9089 1 snd_ens1371, Live 0xf822d000
    snd_ac97_codec 100646 1 snd_ens1371, Live 0xf84b7000
    ac97_bus 1002 1 snd_ac97_codec, Live 0xf817e000     //AC97声卡
    sunrpc 193085 12 nfsd,nfs,lockd,nfs_acl,auth_rpcgss, Live 0xf8460000
    snd_pcm_oss 35308 0- Live 0xf81bd000
    snd_mixer_oss 13746 1 snd_pcm_oss, Live 0xf80e0000
    snd_pcm 70662 3 snd_ens1371,snd_ac97_codec,snd_pcm_oss, Live 0xf8219000
    snd_seq_dummy 1338 0- Live 0xf80c6000
    snd_seq_oss 26726 0- Live 0xf8075000
    snd_seq_midi 4557 0- Live 0xf803c000
    snd_rawmidi 19056 2 snd_ens1371,snd_seq_midi, Live 0xf8389000
    snd_seq_midi_event 6003 2 snd_seq_oss,snd_seq_midi, Live 0xf8241000
    snd_seq 47263 6 snd_seq_dummy,snd_seq_oss,snd_seq_midi,snd_seq_midi_event, Live 0xf824b000
    ppdev 5259 0- Live 0xf8215000
    fbcon 35102 71- Live 0xf81c7000                    //frambuffer显示
    tileblit 2031 1 fbcon, Live 0xf8121000
    font 7557 1 fbcon, Live 0xf811a000
    bitblit 4707 1 fbcon, Live 0xf810c000
    softcursor 1189 1 bitblit, Live 0xf8088000
    parport_pc 25962 1- Live 0xf80cc000
    btusb 10925 2- Live 0xf804c000
    bluetooth 49892 9 rfcomm,sco,bnep,l2cap,btusb, Live 0xf80f4000   //蓝牙设备
    psmouse 63245 0- Live 0xf8149000                       //鼠标模块
    serio_raw 3978 0- Live 0xf8056000
    joydev 8708 0- Live 0xf8009000
    snd_timer 19098 2 snd_pcm,snd_seq, Live 0xf80bf000
    snd_seq_device 5700 5 snd_seq_dummy,snd_seq_oss,snd_seq_midi,snd_rawmidi,snd_seq, Live 0xf8084000
    snd 54148 10 snd_ens1371,snd_ac97_codec,snd_pcm_oss,snd_mixer_oss,snd_pcm,snd_seq_oss,snd_rawmidi,snd_seq,snd_timer,snd_seq_device, Live 0xf80a1000
    soundcore 6620 1 snd, Live 0xf8048000
    snd_page_alloc 7076 1 snd_pcm, Live 0xf8032000
    intel_agp 24119 1- Live 0xf8417000
    agpgart 31724 1 intel_agp, Live 0xf83e0000
    shpchp 28820 0- Live 0xf83c3000
    i2c_piix48335 0- Live 0xf83ad000
    vga16fb 11385 1- Live 0xf839e000
    vgastate 8961 1 vga16fb, Live 0xf838f000
    vmci 56629 2 vmhgfs,vsock, Live 0xf8264000
    lp 7028 0- Live 0xf8247000                             //打印机模块
    parport 32635 3 ppdev,parport_pc,lp, Live 0xf8232000
    pcnet3228890 0- Live 0xf81e3000
    usbhid 36110 0- Live 0xf8123000
    hid 67032 1 usbhid, Live 0xf8164000
    mptspi 14652 2- Live 0xf8114000
    vmxnet 14135 0- Live 0xf8102000
    floppy 53016 0- Live 0xf80e5000                        //软盘
    mii 4381 1 pcnet32, Live 0xf80c8000
    mptscsih 31869 1 mptspi, Live 0xf80b5000
    mptbase 83022 2 mptspi,mptscsih, Live 0xf808a000
    scsi_transport_spi 21096 1 mptspi, Live 0xf8060000      //SCSI设备
    vmw_pvscsi 13195 0- Live 0xf8011000
    vmxnet327174 0- Live 0xf803f000
    root@li-desktop:~#