在這篇文章里,我們將會探索如何使用Python語言作為一個工具來檢測Linux系統各種運行信息。讓我們一起來學習吧。
哪種Python?
當我提到Python時,我一般是指CPython 2(準確來說是2.7)。當同樣的代碼不能在CPython3(3.3)運行時,我們明確地把它指出并給出替代的代碼,解釋它們之間的不同點。請確保你已經安裝了CPython,在終端輸入python或者python3你會看到Python提示符出現在你的終端里。
請注意,所有的腳本程序都會以#!/usr/bin/env python作為第一行,意味著我們要Python解析器去運行這些腳本。因此,如果你使用 chmod +x your-script.py 命令給你的腳本添加可執行的權限,你可以使用./your-script.py命令直接運行你的腳本(你將會在這篇文章里看到這種操作)
探索platform模塊
在標準庫中的platform模塊有大量的函數讓我們去檢查各種系統信息。我們一起來打開Python解釋器(譯者:直接在命令行輸入python即可打開)并探索其中的一部分函數。我們先從platform.uname()函數開始:
>>> import platform>>> platform.uname()('Linux', 'fedora.echorand', '3.7.4-204.fc18.x86_64', '#1 SMP Wed Jan 23 16:44:29 UTC 2013', 'x86_64')
如果你知道Linux上的uname命令,你會意識到這個函數就是uname命令的一個接口。在Python 2,這個函數會返回一個由系統類型(或者內核類型),主機名,版本號,發行版號,主機硬件架構和處理器類型組成的元組。你可以使用索引來獲取單個屬性,像這樣:
>>> platform.uname()[0]'Linux'
在Python 3,這個函數會返回一個默認命名的元組:
>>> platform.uname() uname_result(system='Linux', node='fedora.echorand',release='3.7.4-204.fc18.x86_64', version='#1 SMP Wed Jan 23 16:44:29UTC 2013', machine='x86_64', processor='x86_64')
因為返回值是個默認命名的元組,所以我們可以輕易地通過變量名來獲取單個屬性而不用去記住各個屬性的下標,像這樣:
>>> platform.uname().system'Linux'
platfrom模塊還提供了一些直接的接口來獲取上面的屬性值,像這些:
>>> platform.system()'Linux' >>> platform.release()'3.7.4-204.fc18.x86_64'
函數linx_distribution()返回你正在使用的Linux發行版的詳細信息。舉個例子,在Fedora 18系統中,這條命令會返回下面的信息:
>>> platform.linux_distribution()('Fedora', '18', 'Spherical Cow')
返回值是一個由發行版本名,版本號,代號組成的元組。你可以通過_supported_dists屬性來打印你所用的Python版本支持哪些發行版本:
新聞熱點
疑難解答