这篇文章主要讲三件事:
- Python 环境怎么安装
- Python 里几个常用命令怎么理解
- Python 控制 Linux 时常用哪些库,它们分别有什么用
我会尽量用 Java 程序员容易理解的方式来讲。
一、Python 环境怎么安装
在 Ubuntu 22.04 里,Python 3 通常已经有了,但 pip3 和 venv 不一定都装好。
1. 检查 Python 是否已安装
bash
python3 --version
如果能看到版本号,说明 Python 3 已经可用。
2. 检查 pip 是否已安装
bash
pip3 --version
如果没有这个命令,也可以这样看:
bash
python3 -m pip --version
3. 安装 Python 基础环境
bash
apt update
apt install -y python3 python3-pip python3-venv
安装完后再检查:
bash
python3 --version
python3 -m pip --version
二、Python 里几个常用命令,Java 程序员怎么理解
1. python3
bash
python3 app.py
这个命令的作用是运行 Python 程序。
你可以把它理解成 Java 里的:
bash
java -jar app.jar
或者更简单地理解成:
python3= 运行 Python 代码的入口- 类似 Java 的
java
2. pip3
bash
pip3 install requests
pip3 是 Python 的包管理工具,用来安装第三方库。
可以理解成 Java 里的:
mvngradle
它的作用是"装依赖"。
3. python3 -m pip
bash
python3 -m pip install requests
这也是安装包,只是更稳一点。
它可以理解成:
- 通过 Python 自己去调用 pip
- 比单独用
pip3更通用
4. venv
bash
python3 -m venv venv
source venv/bin/activate
venv 是 Python 的虚拟环境工具。
它的作用是给每个项目单独隔离依赖,避免互相污染。
Java 程序员可以把它理解成:
- 不是 JDK 切换
- 更像每个项目有自己的独立依赖空间
三、Python 控制 Linux 常用哪些库
如果你想让 Python 去"控制 Linux",通常不只是看系统信息,还会执行命令、管理文件、处理路径、记录日志。
下面是几个常用库。
1. os
os 是 Python 里最基础的操作系统接口库。
常见用途:
- 读环境变量
- 处理文件路径
- 删除、重命名文件
- 获取当前工作目录
简单例子
python
import os
print(os.getcwd())
这会输出当前目录。
Java 程序员可以理解成:
- 类似系统工具类
- 负责跟操作系统打交道
2. subprocess
subprocess 是最重要的一个库之一。
它可以让 Python 执行 Linux 命令。
简单例子
python
import subprocess
subprocess.run(["ls", "-l"])
意思是:让 Python 去执行 ls -l。
再举一个例子
python
import subprocess
subprocess.run(["systemctl", "restart", "nginx"])
意思是:让 Python 去重启 nginx 服务。
注意:如果这里执行的是需要 root 权限的命令,脚本本身也要以 root 身份运行,或者明确使用 sudo,否则会因为权限不足而失败。
Java 程序员可以把它理解成:
- 类似
Runtime.exec() - 或者
ProcessBuilder
如果说 Python 真要"控制 Linux",这个库很关键。
3. psutil
psutil 主要是系统监控库。
它能做这些事:
- 查看 CPU 使用率
- 查看内存
- 查看磁盘
- 查看进程
- 查看网络状态
- 查看系统运行时间
psutil 不是 Python 标准库,需要单独安装:
bash
pip3 install psutil
简单例子
python
import psutil
print(psutil.cpu_percent(interval=1))
print(psutil.virtual_memory())
这会输出 CPU 和内存信息。
Java 程序员可以理解成:
- 系统监控工具
- 不是执行命令的核心库
- 更像"读取系统状态"的工具包
4. datetime
datetime 主要用于时间处理。
常见用途:
- 获取当前时间
- 格式化时间
- 计算时间差
简单例子
python
import datetime
print(datetime.datetime.now())
意思是:打印当前时间。
Java 程序员可以理解成:
- 类似
java.time相关工具
它本身不控制 Linux,但做运维脚本时经常要用。
5. pathlib
pathlib 是更现代的路径处理库。
简单例子
python
from pathlib import Path
p = Path("/tmp/test.txt")
print(p.exists())
意思是:判断文件是否存在。
Java 程序员可以理解成:
- 比较像
Path相关的概念 - 比手写字符串路径更舒服
6. shutil
shutil 主要用来做文件复制、移动、删除等操作。
简单例子
python
import shutil
shutil.copy("a.txt", "b.txt")
意思是:把 a.txt 复制成 b.txt。
Java 程序员可以理解成:
- 文件工具类
- 适合做运维里的文件搬运和备份
7. logging
logging 用来记录日志。
简单例子
python
import logging
logging.basicConfig(level=logging.INFO)
logging.info("start")
意思是:记录一条日志。
运维脚本里最好不要只会 print(),还要会写日志。
Java 程序员可以理解成:
- 类似
logback、slf4j这种日志能力
四、Python 控制 Linux 时,这些库分别干什么
可以简单分成三类:
1. 看系统状态
psutildatetime
用途:
- 看 CPU
- 看内存
- 看磁盘
- 看进程
- 看运行时间
2. 执行系统动作
subprocessosshutil
用途:
- 执行命令
- 管理文件
- 调用系统工具
- 做复制、移动、删除
3. 辅助运维脚本
pathliblogging
用途:
- 处理路径
- 记录日志
- 提高脚本可维护性
五、一个最简单的 Python + Linux 例子
下面这个脚本会做两件事:
- 查看当前目录
- 打印 CPU 使用率
python
import os
import psutil
print("当前目录:", os.getcwd())
print("CPU 使用率:", psutil.cpu_percent(interval=1))
这个例子很适合入门理解:
os负责拿系统路径psutil负责拿系统状态
六、Java 程序员可以怎么记
可以直接这样记:
| Python | 作用 | Java 类比 |
|---|---|---|
python3 |
运行 Python 代码 | java |
pip3 |
安装 Python 包 | mvn / gradle |
venv |
项目依赖隔离 | 项目独立依赖环境 |
os |
操作系统接口 | 系统工具类 |
subprocess |
执行 Linux 命令 | Runtime.exec() / ProcessBuilder |
psutil |
系统监控 | 监控工具包 |
datetime |
时间处理 | java.time |
pathlib |
路径处理 | Path |
shutil |
文件复制移动 | 文件工具类 |
logging |
日志记录 | slf4j / logback |
七、最简单的结论
如果你是 Java 程序员,可以先这么理解:
python3是跑程序的pip3是装依赖的venv是给项目隔离环境的os、pathlib、shutil是处理文件和系统的subprocess是让 Python 控制 Linux 命令的关键psutil是看系统状态的logging是记录脚本日志的
如果你想用 Python 做 Linux 自动化运维,最先掌握的就是:
text
python3 + pip3 + venv + os + subprocess + psutil