linux信息查找

时间:2023-12-21 21:31:38

问题:

1. 当使用一台linux机器的时候,常常需要确认当前所用操作系统的版本信息,内核信息等,

操作系统的版本信息可以通过以下命令完成,比如:lsb_release -a;cat /etc/issue

而查看内核版本可以通过以下命令完成,比如:uname -a;cat /proc/version,

这些命令比较难以记忆,本文试图解释一下这些命令名称的由来,以便于记忆。

解决办法:

1. 查看操作系统版本的命令

1.1 命令lsb_release -a

lsb_release提供特定的LSB (Linux Standard Base)和发布版本相关信息。

ubuntu中运行lsb_release -a的结果如下:

  1. david@david-nb:~$ lsb_release -a
  2. No LSB modules are available.
  3. Distributor ID: Ubuntu
  4. Description:    Ubuntu 11.10
  5. Release:    11.10
  6. Codename:   oneiric
  7. david@david-nb:~$

1.2 命令cat /etc/issue

/etc目录下放的是系统的配置文件。

/etc/issue文件通常包括系统的一段短说明或欢迎信息.内容由系统管理员确定。

ubuntu中执行cat /etc/issue命令的结果如下:

  1. david@david-nb:~$ cat /etc/issue
  2. Ubuntu 11.10 \n \l
  3. david@david-nb:~$

2. 查看内核版本的命令

2.1 命令uname -a

uname来源于utsname,是一个系统调用,格式为

int uret = uname((struct utsname)* uname_buf),

其中,结构体指针uname_buf中主要存放的是操作系统名称、内核版本和硬件体系结构;

结构体struct utsname的定义如下:

  1. struct utsname {
  2. char sysname[];    /* Operating system name (e.g., "Linux") */
  3. char nodename[];   /* Name within "some implementation-defined
  4. network" */
  5. char release[];    /* OS release (e.g., "2.6.28") */
  6. char version[];    /* OS version */
  7. char machine[];    /* Hardware identifier */
  8. #ifdef _GNU_SOURCE
  9. char domainname[]; /* NIS or YP domain name */
  10. #endif
  11. };

utsname中的UTS指的应该是Universal Time–sharing System(通用分时系统)。

ubuntu中运行uname -a的结果如下所示:

  1. david@david-nb:~$ uname -a
  2. Linux david-nb 3.0.0-32-generic #51-Ubuntu SMP Thu Mar 21 15:51:26 UTC 2013 i686 i686 i386 GNU/Linux
  3. david@david-nb:~$

内核版本为:3.0.0-32-generic

2.2 命令cat /proc/version

proc文件系统是一个虚拟文件系统,通过它可以使用一种新的方法在linux内核空间和用户空间进行通信。

与普通文件不同的是,这些虚拟文件都是动态创建的。

/proc非常强大,如下所示为对/proc中部分元素执行一次交互查询的结果:

  1. david@david-nb:~$ ls /proc
  2. 1     1279  1480  1512  1576  1646  1803  20    264   3081  565  902     buddyinfo    fb             loadavg       scsi           version_signature
  3. 1001  13    1485  1515  1580  1649  1807  2052  265   3082  6    903     bus          filesystems    locks         self           vmallocinfo
  4. 1005  1362  1487  1523  1584  1655  1815  2095  27    3084  7    904     cgroups      fs             mdstat        slabinfo       vmstat
  5. 1006  1370  1492  1526  1585  1656  1816  21    2744  3085  754  914     cmdline      interrupts     meminfo       softirqs       zoneinfo
  6. 1007  1390  1493  1527  1589  1666  1817  216   2796  318   806  915     consoles     iomem          misc          stat
  7. 1013  14    1496  1539  16    1671  1828  217   28    323   837  933     cpuinfo      ioports        modules       swaps
  8. 1030  1409  15    1542  1616  1673  183   23    2856  37    838  942     crypto       irq            mounts        sys
  9. 1073  1418  1501  1544  1617  1676  188   2391  2881  40    844  977     devices      kallsyms       mtd           sysrq-trigger
  10. 1079  1448  1503  1548  1619  17    19    24    29    41    847  982     device-tree  kcore          mtrr          sysvipc
  11. 1084  1453  1506  1555  1622  1711  190   2448  2998  453   848  991     diskstats    key-users      net           timer_list
  12. 11    1456  1508  1562  1623  1712  1957  25    3     455   882  992     dma          kmsg           pagetypeinfo  timer_stats
  13. 1168  1457  1509  1563  1625  1776  1992  2538  3017  528   885  994     dri          kpagecount     partitions    tty
  14. 1175  1459  1510  1566  1627  1790  1997  2548  3070  531   899  acpi    driver       kpageflags     sched_debug   uptime
  15. 12    1464  1511  1569  1633  18    2     26    3080  540   9    asound  execdomains  latency_stats  schedstat     version
  16. david@david-nb:~$

其中,version文件中存储的是内核的版本、操作系统的名称等信息,与uname -a的内容基本相同。

  1. david@david-nb:~$ cat /proc/version
  2. Linux version 3.0.0-32-generic (buildd@aatxe) (gcc version 4.6.1 (Ubuntu/Linaro 4.6.1-9ubuntu3) ) #51-Ubuntu SMP Thu Mar 21 15:51:26 UTC 2013
  3. david@david-nb:~$
linux信息查找

内核版本为3.0.0-32-generic