# plbm
**Repository Path**: liumou_site/plbm
## Basic Information
- **Project Name**: plbm
- **Description**: Python Linux基础模块`plbm`是使用Python3进行编写的一个开源系统管理工具,
通过封装Linux系统都软件包管理、磁盘管理、文件管理、网络管理、安全管理、服务管理等内容从而实现快速开发的效果。
- **Primary Language**: Python
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2022-10-25
- **Last Updated**: 2025-10-28
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 🐧 PythonLinuxBasicModule (PLBM)
[](https://www.python.org/downloads/)[](LICENSE)[](https://pypi.org/project/plbm-liumou-Stable/)
[📖 中文文档](#简介) | [🚀 快速开始](#使用方法) | [💻 代码示例](#demo) | [📦 PyPI](https://pypi.org/project/plbm-liumou-Stable/)
## 📋 简介
[PythonLinuxBasicModule](https://gitee.com/liumou_site/plbm)(简称 `plbm`)是一个功能强大的Python3 Linux系统管理工具库,专为简化Linux系统管理任务而设计。
在日常工作中,我们经常需要编写大量重复的Linux管理脚本。为了提高开发效率,我将常用的Linux管理功能封装成模块,并以开源方式共享,希望能够帮助更多开发者,同时也欢迎社区贡献。
### 🎯 核心功能
- **📦 软件包管理** - 支持APT、YUM、DPKG等主流包管理器
- **🔧 服务管理** - SystemD服务启停、状态监控、开机自启管理
- **📁 文件管理** - 文件操作、MD5校验、目录管理、压缩解压
- **🌐 网络管理** - 网络状态监控、IP规则配置、网卡管理
- **🔒 安全管理** - 权限验证、防火墙配置、iptables规则管理
- **💻 系统信息** - 操作系统信息、硬件信息、进程管理
- **🐳 Docker支持** - 容器生命周期管理
- **📊 日志系统** - 彩色日志输出、文件日志记录
### ✨ 特色亮点
- 📝 **全中文注释** - 代码注释完整,新手也能轻松理解
- 🔧 **零依赖设计** - 主要使用Python内置模块,即装即用
- 🔄 **语法兼容** - 支持Python 3.0+,兼容新旧版本语法
- 🆓 **完全开源** - MIT协议,永久免费使用
- 🛡️ **类型安全** - 完整的类型提示和参数验证
- 🎨 **友好日志** - 彩色日志输出,开发调试更轻松
## 📊 PyPI 统计数据
| 📈 统计项 | 🎯 数据 |
|---------|--------|
| 📦 PyPI包名 | `plbm-liumou-Stable` |
| 🏷️ 最新版本 | 1.4.8 |
| 📅 发布时间 | 2024年 |
| 📥 月下载量 |  |
| ⭐ 项目评分 |  |
| 🗃️ 包格式 |  |
| 🚀 项目状态 |  |
| 🔗 PyPI链接 | [https://pypi.org/project/plbm-liumou-Stable/](https://pypi.org/project/plbm-liumou-Stable/) |
# 🚀 使用方法
## 📦 安装方式
### 🎯 方式一:PyPI安装(推荐)
访问PyPI项目地址:[https://pypi.org/project/plbm-liumou-Stable/](https://pypi.org/project/plbm-liumou-Stable/)
```bash
# 使用清华源加速安装
pip3 install --upgrade plbm_liumou_Stable ColorInfo -i https://pypi.tuna.tsinghua.edu.cn/simple
# 或使用官方源
pip3 install --upgrade plbm_liumou_Stable ColorInfo
```
### 🎯 方式二:源码安装
适合需要自定义修改或参与开发的场景:
```bash
# 克隆项目
git clone https://gitee.com/liumou_site/PythonLinuxBasicModule.git
# 进入项目目录
cd PythonLinuxBasicModule
# 执行安装脚本
python3 install.py
```
## ⚙️ 系统要求
- 🐧 **操作系统**: Linux (Ubuntu, CentOS, Debian等)
- 🐍 **Python版本**: 3.0 及以上
- 🔑 **权限要求**: 部分功能需要sudo权限
- 📦 **依赖包**: ColorInfo, psutil, loguru, py7zr
# 💻 代码示例
## 📦 包管理示例
🔍 点击查看包管理代码
### 📋 示例代码
```python
# -*- encoding: utf-8 -*-
"""
@File : package_demo.py
@Time : 2022-10-24 22:45
@Author : 坐公交也用券
@Version : 1.0
@Contact : faith01238@hotmail.com
@Homepage : https://liumou.site
@Desc : 软件包管理示例
"""
from plbm_liumou_Stable import NewPackageManagement
from ColorInfo import ColorLogger
class PackageManager:
def __init__(self, package_name, password):
"""初始化包管理器"""
self.package_name = package_name
self.package_mgr = NewPackageManagement(password=password, package=package_name)
self.logger = ColorLogger(class_name=self.__class__.__name__)
def check_and_remove(self):
"""检查并卸载软件包"""
if self.package_mgr.installed():
self.logger.info(f"📦 检测到已安装: {self.package_name}")
if self.package_mgr.uninstall():
self.logger.success(f"✅ 卸载成功: {self.package_name}")
return True
else:
self.logger.error(f"❌ 卸载失败: {self.package_name}")
return False
else:
self.logger.warning(f"⚠️ 未安装: {self.package_name}")
return True
def install_package(self, update_index=False):
"""安装软件包"""
if not self.package_mgr.installed():
self.logger.info(f"📥 开始安装: {self.package_name}")
if self.package_mgr.install(package=self.package_name, update=update_index):
self.logger.success(f"✅ 安装成功: {self.package_name}")
return True
else:
self.logger.error(f"❌ 安装失败: {self.package_name}")
return False
else:
self.logger.info(f"📦 软件包已存在: {self.package_name}")
return True
if __name__ == "__main__":
# 示例:管理vsftpd服务
manager = PackageManager(package_name="vsftpd", password="your_password")
# 卸载软件包
manager.check_and_remove()
# 安装软件包(带更新索引)
# manager.install_package(update_index=True)
```
### 🖥️ 运行结果
```bash
$ python3 package_demo.py
2023-01-06 22:42:31 [PackageManager] INFO: 📦 检测到已安装: vsftpd
2023-01-06 22:42:31 [PackageManager] INFO: 🔄 开始卸载进程...
2023-01-06 22:42:36 [PackageManager] SUCCESS: ✅ 卸载成功: vsftpd
```
## 🔧 服务管理示例
🔍 点击查看服务管理代码
### 📋 示例代码
```python
# -*- encoding: utf-8 -*-
"""
@File : service_demo.py
@Time : 2022-10-24 22:45
@Author : 坐公交也用券
@Version : 1.0
@Contact : faith01238@hotmail.com
@Homepage : https://liumou.site
@Desc : 服务管理示例
"""
from plbm_liumou_Stable import NewServiceManagement
from ColorInfo import ColorLogger
class ServiceManager:
def __init__(self, service_name, password):
"""初始化服务管理器"""
self.service_name = service_name
self.service_mgr = NewServiceManagement(service=service_name, password=password)
self.logger = ColorLogger(class_name=self.__class__.__name__)
def restart_service(self, reload_config=True):
"""重启服务(支持配置重载)"""
self.logger.info(f"🔄 正在重启服务: {self.service_name}")
if self.service_mgr.restart(reload=reload_config):
self.logger.success(f"✅ 服务重启成功: {self.service_name}")
return True
else:
self.logger.error(f"❌ 服务重启失败: {self.service_name}")
return False
def manage_service(self, action="status"):
"""服务管理(启动/停止/状态检查)"""
actions = {
"start": self.service_mgr.start,
"stop": self.service_mgr.stop,
"restart": self.service_mgr.restart,
"enable": self.service_mgr.enable,
"disable": self.service_mgr.disable
}
if action in actions:
self.logger.info(f"🔄 执行操作: {action} {self.service_name}")
result = actions[action]()
if result:
self.logger.success(f"✅ 操作成功: {action} {self.service_name}")
else:
self.logger.error(f"❌ 操作失败: {action} {self.service_name}")
return result
else:
self.logger.warning(f"⚠️ 不支持的操作: {action}")
return False
if __name__ == "__main__":
# 示例:管理vsftpd服务
manager = ServiceManager(service_name="vsftpd", password="your_password")
# 重启服务(带配置重载)
manager.restart_service(reload_config=True)
# 其他操作
# manager.manage_service("start") # 启动服务
# manager.manage_service("stop") # 停止服务
# manager.manage_service("enable") # 设置开机自启
```
### 🖥️ 运行结果
```bash
$ python3 service_demo.py
2023-01-06 22:36:41 [ServiceManager] INFO: 🔄 正在重启服务: vsftpd
2023-01-06 22:36:41 [ServiceManager] SUCCESS: ✅ 服务重启成功: vsftpd
```
## 📁 文件管理示例
🔍 点击查看文件管理代码
### 📋 示例代码
```python
# -*- encoding: utf-8 -*-
"""
@File : file_demo.py
@Desc : 文件管理示例
"""
from plbm_liumou_Stable import NewFile
from ColorInfo import ColorLogger
class FileManager:
def __init__(self):
"""初始化文件管理器"""
self.logger = ColorLogger(class_name=self.__class__.__name__)
self.file_mgr = NewFile()
def manage_directory(self, path):
"""目录管理示例"""
self.logger.info(f"📁 管理目录: {path}")
# 创建目录
if self.file_mgr.mkdir_p(target=path, mode=0o755):
self.logger.success(f"✅ 目录创建成功: {path}")
else:
self.logger.error(f"❌ 目录创建失败: {path}")
return False
# 获取文件MD5(示例)
test_file = "/etc/hosts"
if self.file_mgr.get_md5(filename=test_file):
md5_value = self.file_mgr.md5
self.logger.info(f"🔍 文件 {test_file} 的MD5值: {md5_value}")
return True
def copy_files(self, src, dst):
"""文件复制示例"""
self.logger.info(f"📋 复制文件: {src} -> {dst}")
if self.file_mgr.copyfile(src=src, dst=dst, cover=True):
self.logger.success(f"✅ 文件复制成功")
return True
else:
self.logger.error(f"❌ 文件复制失败")
return False
if __name__ == "__main__":
manager = FileManager()
# 目录管理
manager.manage_directory("/tmp/test_dir")
# 文件复制
# manager.copy_files("/etc/hosts", "/tmp/hosts_backup")
```
## 🌐 网络管理示例
🔍 点击查看网络管理代码
### 📋 示例代码
```python
# -*- encoding: utf-8 -*-
"""
@File : network_demo.py
@Desc : 网络管理示例
"""
from plbm_liumou_Stable import NewNetStatus, NewNetworkCardInfo
from ColorInfo import ColorLogger
class NetworkManager:
def __init__(self):
"""初始化网络管理器"""
self.logger = ColorLogger(class_name=self.__class__.__name__)
self.net_status = NewNetStatus()
self.net_card = NewNetworkCardInfo()
def check_network_status(self):
"""检查网络状态"""
self.logger.info("🌐 检查网络状态...")
# 检查网络连接
if self.net_status.ping(host="8.8.8.8"):
self.logger.success("✅ 网络连接正常")
else:
self.logger.warning("⚠️ 网络连接异常")
# 获取网卡信息
cards = self.net_card.get_cards()
self.logger.info(f"📊 检测到 {len(cards)} 个网卡")
for card in cards:
info = self.net_card.get_card_info(card)
if info:
self.logger.info(f"🔌 网卡 {card}: {info}")
def monitor_port(self, port):
"""监控端口状态"""
from plbm_liumou_Stable import NewListen
listener = NewListen()
if listener.port_is_listen(port=port):
self.logger.info(f"🔍 端口 {port} 正在监听")
else:
self.logger.info(f"🔍 端口 {port} 未监听")
if __name__ == "__main__":
manager = NetworkManager()
manager.check_network_status()
# manager.monitor_port(80) # 监控80端口
```
# 📚 API 参考
## 🔧 核心模块
| 模块 | 类名 | 功能描述 |
|------|------|----------|
| Package | `NewPackageManagement` | 软件包管理(APT/YUM/DPKG) |
| Service | `NewServiceManagement` | SystemD服务管理 |
| File | `NewFile` | 文件和目录管理 |
| NetStatus | `NewNetStatus` | 网络状态监控 |
| NetworkCardInfo | `NewNetworkCardInfo` | 网卡信息管理 |
| Process | `NewProcess` | 进程管理 |
| Docker | `Docker` | Docker容器管理 |
| Iptables | `IpTables` | 防火墙规则管理 |
| Jurisdiction | `Jurisdiction` | 权限验证管理 |
## 📖 快速参考
```python
# 软件包管理
from plbm_liumou_Stable import NewPackageManagement
pkg = NewPackageManagement(password="your_password", package="nginx")
pkg.install() # 安装
pkg.uninstall() # 卸载
pkg.installed() # 检查是否已安装
# 服务管理
from plbm_liumou_Stable import NewServiceManagement
svc = NewServiceManagement(service="nginx", password="your_password")
svc.start() # 启动
svc.stop() # 停止
svc.restart() # 重启
svc.enable() # 开机自启
# 文件管理
from plbm_liumou_Stable import NewFile
file_mgr = NewFile()
file_mgr.mkdir_p("/tmp/test") # 创建目录
file_mgr.get_md5("/etc/hosts") # 获取MD5
file_mgr.copyfile(src, dst) # 复制文件
```
# 🤝 贡献指南
我们欢迎所有形式的贡献!
- 🐛 **报告Bug** - 请在 [Issues](https://gitee.com/liumou_site/plbm/issues) 中报告
- 💡 **功能建议** - 欢迎提出新功能建议
- 🔧 **代码贡献** - 欢迎提交Pull Request
- 📖 **文档完善** - 帮助改进文档和示例
## 🛠️ 开发环境搭建
```bash
# 克隆项目
git clone https://gitee.com/liumou_site/plbm.git
cd plbm
# 创建虚拟环境
python3 -m venv venv
source venv/bin/activate # Linux
# 安装依赖
pip install -r requirements.txt
# 运行测试
python3 -m pytest tests/
```
# 📄 许可证
本项目采用 [MIT许可证](LICENSE) 开源协议,您可以自由使用、修改和分发。
# 📞 联系方式
- 📧 **邮箱**:
- 🏠 **主页**: [https://liumou.site](https://liumou.site)
- 🐙 **Gitee**: [https://gitee.com/liumou_site/plbm](https://gitee.com/liumou_site/plbm)
- 📦 **PyPI**: [https://pypi.org/project/plbm-liumou-Stable/](https://pypi.org/project/plbm-liumou-Stable/)
---
⭐ **如果这个项目对您有帮助,请给我们一个星标!** ⭐
Made with ❤️ by [坐公交也用券](https://gitee.com/liumou_site)