1. 程式人生 > >linux中檢視當前所用系統及核心版本的方法

linux中檢視當前所用系統及核心版本的方法

問題:

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的結果如下:

[email protected]:~$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 11.10
Release:	11.10
Codename:	oneiric
[email protected]:~$

1.2 命令cat /etc/issue

/etc目錄下放的是系統的配置檔案。

/etc/issue檔案通常包括系統的一段短說明或歡迎資訊.內容由系統管理員確定。

ubuntu中執行cat /etc/issue命令的結果如下:

[email protected]
:~$ cat /etc/issue Ubuntu 11.10 \n \l [email protected]:~$

2. 檢視核心版本的命令

2.1 命令uname -a

uname來源於utsname,是一個系統呼叫,格式為

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

其中,結構體指標uname_buf中主要存放的是作業系統名稱、核心版本和硬體體系結構;

結構體struct utsname的定義如下:

struct utsname {
               char sysname[];    /* Operating system name (e.g., "Linux") */
               char nodename[];   /* Name within "some implementation-defined
                                     network" */
               char release[];    /* OS release (e.g., "2.6.28") */
               char version[];    /* OS version */
               char machine[];    /* Hardware identifier */
           #ifdef _GNU_SOURCE
               char domainname[]; /* NIS or YP domain name */
           #endif
};
utsname中的UTS指的應該是Universal Time–sharing System(通用分時系統)。

ubuntu中執行uname -a的結果如下所示:

[email protected]:~$ uname -a
Linux david-nb 3.0.0-32-generic #51-Ubuntu SMP Thu Mar 21 15:51:26 UTC 2013 i686 i686 i386 GNU/Linux
[email protected]:~$
核心版本為:3.0.0-32-generic

2.2 命令cat /proc/version

proc檔案系統是一個虛擬檔案系統,通過它可以使用一種新的方法在linux核心空間和使用者空間進行通訊。

與普通檔案不同的是,這些虛擬檔案都是動態建立的。

/proc非常強大,如下所示為對/proc中部分元素執行一次互動查詢的結果:

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

其中,version檔案中儲存的是核心的版本、作業系統的名稱等資訊,與uname -a的內容基本相同。
[email protected]:~$ cat /proc/version
Linux version 3.0.0-32-generic ([email protected]) (gcc version 4.6.1 (Ubuntu/Linaro 4.6.1-9ubuntu3) ) #51-Ubuntu SMP Thu Mar 21 15:51:26 UTC 2013
[email protected]:~$
核心版本為3.0.0-32-generic