gcomneno/ubuntu-system-tools
GitHub: gcomneno/ubuntu-system-tools
一套以「默认只读、安全优先」为理念的 Ubuntu/Linux Bash 命令行工具集,提供开发产物清理审核、依赖引用查找、系统日志安全巡检和 CUPS 打印机诊断等实用功能。
Stars: 0 | Forks: 0
# ubuntu-system-tools
为 Ubuntu 和 Linux 提供的一小部分**极度谨慎、安全第一的系统实用工具**。
该项目专注于**检查、诊断和面向开发者的维护**,遵循保守的理念:
- **默认只读**
- **仅在明确同意时才执行更改状态的操作**
- **最小依赖**
- **可预测的 CLI 行为**
其目标是提供解决日常 Linux 问题的工具,而不会成为一个完整的系统管理框架。
## 理念
该代码仓库有意倾向于使用**小型、可组合的实用工具**,而不是大型自动化套件。
核心原则:
- 安全第一
- 尽可能保持只读
- 在执行破坏性操作前需明确确认
- 确定性行为
- 不进行隐藏的权限提升
- 由用户控制范围
如果某个命令会更改系统状态,则必须仅在用户明确要求时才执行。
## 安装
```
git clone https://github.com/gcomneno/ubuntu-system-tools
cd ubuntu-system-tools
make install PREFIX=$HOME/.local
```
卸载:
```
make uninstall PREFIX=$HOME/.local
```
## 快速示例
检查最近的安全相关事件:
```
security-health --since "24 hours ago"
```
查找某个依赖项或标识符的使用位置:
```
who-uses scan requests
```
预览可重新生成的开发者产物:
```
hdd_cleanup
```
在不删除任何内容的情况下审核可移除的开发产物:
```
garbage-collector ~/Progetti --max-depth 4
```
诊断 CUPS 打印机队列:
```
printer-doctor doctor
```
列出已配置的 CUPS 打印机:
```
printer-doctor list
```
恢复被禁用的 CUPS 队列:
```
printer-doctor repair
```
## 配置
创建本地配置:
```
make init-config
nano ~/.config/ubuntu-system-tools/config.env
```
加载它:
```
set -a
source ~/.config/ubuntu-system-tools/config.env
set +a
```
## 包含的工具
### `hdd_cleanup`
安全地识别可重新生成的开发者产物,例如 `node_modules/`、`.venv/`、`target/` 和常见缓存。
- 默认 dry-run
- 需要 `--apply` 才能执行删除
- 专为开发者工作区设计
### `garbage-collector`
用于扫描可移除开发产物(如 `.venv/`、`node_modules/`、`target/`、Python 缓存和构建输出)的只读扫描器。
- 仅审核
- 无删除模式
- 报告每个产物的大小
- 输出潜在的总体可回收空间
### `who-uses`
查找包、依赖项、二进制文件或标识符的引用位置。
功能:
- 项目扫描
- 依赖项检查
- 可选的系统检查
- JSON 输出
- 只读操作
### `security-health`
从本地系统日志检查最近的安全相关事件。
功能:
- sudo 活动
- 登录/登出事件
- 内核警告
- 可选的输出脱敏
### `printer-doctor`
与供应商无关的 CUPS 打印机队列诊断和恢复工具。
功能:
- 检查 CUPS 调度程序
- 列出已配置的打印机
- 检查已配置的打印机
- 检查队列
- 检测被禁用的队列
- 列出待处理的任务
- 明确恢复队列
- 确认后可选择取消卡住的任务
非目标:
- 清洁墨盒
- 喷嘴检查
- 特定于供应商的维护
- 专有驱动程序管理
## 环境要求
- Bash
- ripgrep (`rg`)
- python3
- systemd(可选)
- CUPS(仅用于 `printer-doctor`)
## 设计目标
每个实用工具都应该:
- 小巧
- 易于理解
- 可脚本化
- 确定性
- 默认安全
只要实际可行,工具都会通过 `--help-md` 提供独立的文档。
## 本代码仓库不会做的事情
- 没有自动安装
- 默认不执行破坏性操作
- 不进行服务管理
- 不进行隐藏的权限提升
- 不进行不安全的系统修改
如果您正在寻找一个自动化框架,这 intentionally 并非如此。
## 状态
稳定,规模 intentionally 小巧,且在缓慢演进。
## JSON 输出 (who-uses)
`who-uses scan --json` 会输出确定性的 JSON,其特点是:
- 无绝对路径
- 无匹配的文本
- 仅扫描项目
- 稳定的排序
退出代码:
- `0` = 未找到匹配项
- `1` = 找到匹配项
- `2` = 操作错误
## 安全提示
这些工具仅执行本地操作。
某些命令可能会显示敏感的本地信息(用户名、主机名、IP 地址、服务名称)。在公开分享之前,请先检查输出内容。
## 政策
参见 `POLICY.md`。
标签:Bash, 应用安全, 系统工具, 系统诊断, 运维脚本