linux中檢視當前所用系統及核心版本的方法
阿新 • • 發佈:2018-12-30
問題:
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的定義如下:
utsname中的UTS指的應該是Universal Time–sharing System(通用分時系統)。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 };
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