使用Python查找Linux系统详细信息

时间:2020-03-21 11:43:38  来源:igfitidea点击:

Python是流行的编程语言之一,它默认预先安装了许多Linux操作系统。
我们是否知道我们可以使用Python找到有关Linux系统的信息?
是的!此简要介绍说明如何使用Python找到Linux系统详细信息。
Python有模块命名平台,允许我们查找各种系统信息,如操作系统版本,分发名称,机器架构,内核,操作系统代码名称,Python版本等。

使用Python查找Linux系统详细信息

如上所述,大多数Linux发行版默认情况下与Python一起填写。
如果未安装,则可以使用分发的包管理器安装它。
其中我包含在某些Linux发行版上安装最新的Python 3.6.x版本的步骤。

关于Arch Linux及其变体:

$sudo pacman -S python

关于Fedora:

$sudo dnf install python36

在CentOS 7上,我们可以从IUM(内联稳定)存储库中安装Python 3.6,如下所示。

$sudo yum install https://centos7.iuscommunity.org/ius-release.rpm
$sudo yum install python36u

Ubuntu 17.10和较新版本,默认情况下Python 3.6可用。
所以不要打扰安装。

在Ubuntu 16.10和17.04上,Python3可在[Universe]存储库中使用。
确保已启用[Universe]存储库并安装Python 3.6,如下所示。

$sudo add-apt-repository universe
$sudo apt-get install python3.6

在Ubuntu 14.04或者16.04上,Universe存储库中不可用Python 3.
因此,使用以下PPA安装Python 3.

$sudo add-apt-repository ppa:deadsnakes/ppa
$sudo apt-get update
$sudo apt-get install python3.6

安装Python后,使用命令查看其版本:

$python3 --version

或者,

$python3.6 -V

我们可能会看到下面的输出。

Python 3.6.8

现在是时候找到了我们正在运行的操作系统。

显示OS名称,版本和代码名称:

$python3 -c 'import platform; print(platform.linux_distribution())'

如果系统上有Python 2.x,只需使用:

$python -c 'import platform; print(platform.linux_distribution())'

Ubuntu 18.04桌面的示例输出:

('Ubuntu', '18.04', 'bionic')

显示机器架构:

$python3 -c 'import platform; print(platform.architecture())'
('64bit', 'ELF')

显示机器类型:

$python3 -c 'import platform; print(platform.machine())'
x86_64

显示计算机的网络名称:

$python3 -c 'import platform; print(platform.node())'
theitroad

显示底层平台:

$python3 -c 'import platform; print(platform.platform())'
Linux-5.0.0-32-generic-x86_64-with-Ubuntu-18.04-bionic

显示处理器的名称:

$python3 -c 'import platform; print(platform.processor())'
x86_64

显示系统的发布详细信息:

$python3 -c 'import platform; print(platform.release())'
5.0.0-32-generic

显示系统/OS名称:

$python3 -c 'import platform; print(platform.system())'
Linux

显示系统的发布版本:

$python3 -c 'import platform; print(platform.version())'
#34~18.04.2-Ubuntu SMP Thu Oct 10 10:36:02 UTC 2019

显示所有详细信息,例如系统,节点,释放,版本,计算机和处理器

$python3 -c 'import platform; print(platform.uname())'
uname_result(system='Linux', node='theitroad', release='5.0.0-32-generic', version='#34~18.04.2-Ubuntu SMP Thu Oct 10 10:36:02 UTC 2019', machine='x86_64', processor='x86_64')

它相当于"uname -a"命令。

就像我之前已经提到过的一样,我们也可以获得已安装的Python版本。

对于Python 2.x,运行:

$python -c 'import platform; print(platform.python_version())'
2.7.15+

对于Python 3.x:

$python3 -c 'import platform; print(platform.python_version())'
3.6.8

创建简单的Python脚本以显示Linux系统详细信息

我们可以创建一个简单的Python脚本来通过将所有功能放在文本文件中,在文本文件中将所有功能放在文本文件中,然后一次性查看完整详细信息。

让我们创建名为OS_INFO.PY的文本文件:

$nano os_info.py

添加以下行:

import platform
print('Uname:', platform.uname())
print()
print('Distribution :', platform.linux_distribution())
print('Machine :', platform.machine())
print('Node :', platform.node())
print('Processor :', platform.processor())
print('Release :', platform.release())
print('System :', platform.system())
print('Version :', platform.version())
print('Platform :', platform.platform())

保存并退出文件。

现在运行以下命令以查找Linux系统信息:

$python os_info.py

或者,

$python3 os_info.py

示例输出将是:

Uname: uname_result(system='Linux', node='theitroad', release='5.0.0-32-generic', version='#34~18.04.2-Ubuntu SMP Thu Oct 10 10:36:02 UTC 2019', machine='x86_64', processor='x86_64')
Distribution : ('Ubuntu', '18.04', 'bionic')
Machine : x86_64
Node : theitroad
Processor : x86_64
Release : 5.0.0-32-generic
System : Linux
Version : #34~18.04.2-Ubuntu SMP Thu Oct 10 10:36:02 UTC 2019
Platform : Linux-5.0.0-32-generic-x86_64-with-Ubuntu-18.04-bionic

在Ubuntu 18.04 Desktop Edition上使用Python 3.6.8测试了所有上述命令。

使用Python 3.8.0查找Linux系统详细信息

请注意,自版本3.5以来,Platform.Linux_Distribution()函数已折旧,并且将在3.8中删除。
如果我们使用的是最近的Python版本为3.8.0,则必须使用像发行版相同的替代方案。

我们可以使用pip安装发行版包。

$pip install distro

安装发行版包后,只需运行以下命令即可查找我们正在运行的操作系统:

$distro

示例输出:

Name: Ubuntu 18.04.2 LTS
Version: 18.04 (bionic)
Codename: bionic

要显示更多详细信息,请使用-j标志:

$distro -j

示例输出:

{
    "codename": "bionic",
    "id": "ubuntu",
    "like": "debian",
    "version": "18.04",
    "version_parts": {
        "build_number": "",
        "major": "18",
        "minor": "04"
    }
}