1. 项目背景

日常开发、测试、运维和值班过程中,经常需要在 Windows PowerShell 和 Linux Bash 之间切换。

常见场景包括:

  • 查看进程
  • 查看端口
  • 查看服务
  • 查看磁盘空间
  • 分析日志
  • 排查网络
  • 管理用户权限
  • 处理 Docker / Kubernetes 问题
  • 维护 MySQL、Redis、Nginx 等中间件
  • 在银河麒麟、统信 UOS 等国产 Linux 环境中做适配

这些命令本身并不难,但问题在于资料非常分散,而且很多资料缺少场景、风险说明和排障路径。

基于这个需求,我整理并开源了一个项目:

GitHub:
https://github.com/shiwenxin123/PowerShell-Linux-Command-Manual

在线文档:
https://shiwenxin123.github.io/PowerShell-Linux-Command-Manual/

项目目标是构建一个中文命令知识库,覆盖命令速查、专题文档、故障案例、自动化巡检脚本和在线文档站。

2. 项目定位

这个项目不是单纯的命令大全,而是更偏向工程实践中的命令手册。

核心目标包括:

  • 常用命令可以快速查到
  • PowerShell 和 Linux 命令可以对照
  • 高危操作有风险提醒
  • 常见故障有排查路径
  • 国产 Linux 有单独入口
  • 巡检脚本可以生成结构化报告
  • 文档可以通过 GitHub Pages 在线访问
  • 项目本身具备基本开源协作能力

3. 项目地址

GitHub 仓库:

https://github.com/shiwenxin123/PowerShell-Linux-Command-Manual

在线文档:

https://shiwenxin123.github.io/PowerShell-Linux-Command-Manual/

4. 项目结构

当前项目结构大致如下:

PowerShell-Linux-Command-Manual/
├── .github/
│   ├── workflows/
│   └── ISSUE_TEMPLATE/
├── docs/
│   ├── cases/
│   ├── manual/
│   ├── routes/
│   ├── troubleshooting/
│   ├── domestic-linux/
│   ├── containers/
│   ├── schema/
│   └── examples/
├── scripts/
│   ├── linux-health-check.sh
│   ├── windows-health-check.ps1
│   └── check-docs.ps1
├── README.md
├── mkdocs.yml
├── CHANGELOG.md
├── ROADMAP.md
└── Windows-PowerShell-Linux-Command-Manual.md

其中:

  • docs/:文档站主体内容
  • docs/cases/:真实故障案例库
  • docs/manual/:专题化手册
  • docs/routes/:学习和排障路线
  • docs/schema/:巡检报告 JSON Schema
  • docs/examples/:示例报告
  • scripts/:巡检脚本和文档检查脚本
  • .github/workflows/:CI 检查和文档站发布
  • mkdocs.yml:MkDocs 文档站配置

5. 命令速查能力

项目提供了多个命令查找入口:

  • 命令速查表
  • 命令索引
  • 命令覆盖矩阵
  • PowerShell/Bash 对照
  • FAQ

例如常见 Linux 命令:

# 查看系统版本
cat /etc/os-release

# 查看资源占用
top

# 查看端口监听
ss -tulnp

# 查看服务状态
systemctl status nginx

# 查看最近日志
journalctl -xe

# 查找大文件
find / -type f -size +100M 2>/dev/null

常见 PowerShell 命令:

# 查看当前位置
Get-Location

# 查看目录
Get-ChildItem

# 查看进程
Get-Process

# 查看服务
Get-Service

# 搜索文本
Select-String -Path .\app.log -Pattern "error"

6. 专题化手册设计

最初所有内容都在一个长 Markdown 文件中,后续逐步拆分成多个专题页。

目前专题包括:

  • PowerShell 基础
  • PowerShell 系统管理
  • PowerShell 高级技巧
  • Linux 基础
  • Linux 包管理
  • Linux 用户组与权限
  • Linux 网络排查
  • Linux 磁盘与 LVM
  • Linux 性能调优
  • Shell 脚本
  • 防火墙与 SELinux
  • 日志轮转与审计
  • sudoers 与 AppArmor
  • Windows 管理命令
  • Docker 与 Kubernetes
  • 数据库与中间件
  • 云服务器与负载均衡
  • Prometheus / Grafana / Loki
  • Git / SSH / curl / jq
  • Keepalived 高可用
  • 跨平台脚本与工具

专题化的好处:

  1. 单页内容更聚焦
  2. 方便通过 MkDocs 导航
  3. 后续贡献者可以只修改一个专题
  4. 避免一个超长 Markdown 文件越来越难维护
  5. 方便把故障案例反向链接到专题页

7. 国产 Linux 支持

项目中单独整理了国产 Linux 专题。

包括:

  • 银河麒麟与统信 UOS 常用命令
  • 离线安装与软件源维护
  • 架构与兼容性检查
  • 版本差异与排查要点

常用识别命令:

cat /etc/os-release
uname -a
arch
hostnamectl
lsblk
ip addr

包管理器检查:

command -v apt
command -v yum
command -v dnf
command -v rpm
dpkg --print-architecture 2>/dev/null
rpm --eval '%{_arch}' 2>/dev/null

国产 Linux 环境下需要特别注意:

  • 桌面版和服务器版差异
  • 厂商授权组件差异
  • apt/yum/dnf/rpm 混用情况
  • ARM、鲲鹏、龙芯等架构兼容性
  • 离线源和内网源配置

8. 故障案例库设计

故障案例库是项目中的重点模块。

目录位置:

docs/cases/

每个案例采用统一结构:

现象
快速判断
排查命令
常见原因
处理建议
高危提醒
相关专题

当前已经包含的案例包括:

CPU-HIGH.md
DISK-FULL.md
PORT-IN-USE.md
SSH-CONNECTION-FAILED.md
LINUX-PERMISSION-DENIED.md
SYSTEMD-SERVICE-FAILED.md
NGINX-START-FAILED.md
NGINX-502-504.md
MYSQL-START-FAILED.md
MYSQL-TOO-MANY-CONNECTIONS.md
REDIS-CONNECTION-FAILED.md
JAVA-OOM.md
DOCKER-IMAGE-PULL-FAILED.md
DOCKER-RESTARTING.md
DOCKER-COMPOSE-FAILED.md
K8S-CRASHLOOPBACKOFF.md
K8S-IMAGEPULLBACKOFF.md
K8S-NODE-NOTREADY.md
K8S-DNS-FAILED.md
PROMETHEUS-TARGET-DOWN.md
GRAFANA-NO-DATA.md
CERTIFICATE-EXPIRED.md
TLS-CHAIN-INCOMPLETE.md

以 Kubernetes Node NotReady 为例,排查路径会从:

kubectl get nodes -o wide
kubectl describe node <node-name>
kubectl get events -A --sort-by=.lastTimestamp

继续到节点侧:

systemctl status kubelet --no-pager
journalctl -u kubelet -n 200 --no-pager
systemctl status containerd --no-pager
df -h
df -i
free -m

这种结构比单纯列命令更适合真实排障。

9. 巡检脚本设计

项目提供了两个巡检脚本。

Linux:

scripts/linux-health-check.sh

Windows:

scripts/windows-health-check.ps1

支持模块:

system
disk
network
service
process

支持输出格式:

text
markdown
json

Linux 使用示例:

# 默认文本输出
bash scripts/linux-health-check.sh

# 只检查磁盘
bash scripts/linux-health-check.sh --module disk

# Markdown 报告
bash scripts/linux-health-check.sh --format markdown --output reports/linux-health-check.md

# JSON 报告
bash scripts/linux-health-check.sh --format json --output reports/linux-health-check.json

Windows 使用示例:

# 默认文本输出
.\scripts\windows-health-check.ps1

# 只检查网络
.\scripts\windows-health-check.ps1 -Module network

# Markdown 报告
.\scripts\windows-health-check.ps1 -Format markdown -OutputFile reports\windows-health-check.md

# JSON 报告
.\scripts\windows-health-check.ps1 -Format json -OutputFile reports\windows-health-check.json

10. JSON 输出结构

JSON 输出采用统一结构:

{
  "metadata": {
    "os": "Linux",
    "hostname": "example-host",
    "timestamp": "2026-05-07T08:00:00Z",
    "module": "all",
    "format": "json",
    "script": "linux-health-check.sh"
  },
  "modules": {
    "system": {
      "status": "ok",
      "commands": [],
      "warnings": [],
      "errors": []
    }
  },
  "summary": {
    "status": "ok",
    "warnings_count": 0,
    "errors_count": 0
  },
  "errors": []
}

同时提供:

docs/schema/health-check-report.schema.json

用于约束自动化消费字段。

脚本退出码约定:

退出码 含义
0 正常,无告警
1 巡检完成但存在告警或部分模块异常
2 参数错误
3 脚本内部异常或关键输出失败

11. 文档站构建

项目使用 MkDocs + Material 构建在线文档站。

依赖文件:

requirements.txt

内容类似:

mkdocs>=1.6,<2.0
mkdocs-material>=9.5,<10.0
pymdown-extensions>=10.0,<11.0

本地构建:

pip install -r requirements.txt
python -m mkdocs build --strict

文档站配置:

mkdocs.yml

GitHub Pages 地址:

https://shiwenxin123.github.io/PowerShell-Linux-Command-Manual/

12. CI 检查

项目配置了多个 GitHub Actions 工作流:

.github/workflows/docs-site.yml
.github/workflows/markdown-check.yml
.github/workflows/script-quality.yml
.github/workflows/secret-scan.yml

主要检查包括:

  • MkDocs strict build
  • Markdown 文档检查
  • markdownlint
  • ShellCheck
  • PSScriptAnalyzer
  • Linux 巡检脚本 JSON 输出检查
  • Windows 巡检脚本 JSON 输出检查
  • Gitleaks 敏感信息扫描

本地也可以运行:

powershell -NoProfile -ExecutionPolicy Bypass -File scripts\check-docs.ps1

以及:

python -m mkdocs build --strict

13. 文档站路线页

为了降低阅读门槛,项目新增了几条路线页:

docs/routes/BEGINNER.md
docs/routes/OPS-ONCALL.md
docs/routes/DOMESTIC-LINUX.md
docs/routes/KUBERNETES-TROUBLESHOOTING.md

分别对应:

  • 新手路线
  • 运维值班路线
  • 国产 Linux 路线
  • Kubernetes 排障路线

这样读者不需要一上来面对完整目录,可以按自己的角色进入。

14. 开源项目工程化

除了内容本身,项目也补齐了一些开源工程配置:

  • README
  • CONTRIBUTING
  • SECURITY
  • LICENSE
  • CHANGELOG
  • ROADMAP
  • Release 检查清单
  • Good First Issues 清单
  • Issue 模板
  • PR 模板
  • GitHub Labels
  • GitHub Actions

这些内容主要是为了让项目从个人笔记逐步变成可维护、可贡献的开源项目。

15. 后续计划

后续计划主要有几个方向。

15.1 巡检脚本模块增强

计划增加:

  • package 模块:包管理器、软件源、关键包版本
  • security 模块:SSH、防火墙、SELinux/AppArmor、sudo、审计状态
  • container 模块:Docker、containerd、Kubernetes 节点和 Pod
  • log 模块:journal 占用、关键日志、最近错误摘要

15.2 增加更多真实生产案例

计划补充:

  • 网关超时
  • 云负载均衡健康检查失败
  • 消息队列连接失败
  • 数据库连接池耗尽
  • Prometheus 告警规则误报

15.3 主手册最终收口

当前根目录仍保留历史完整手册:

Windows-PowerShell-Linux-Command-Manual.md

后续会将其收口为:

  • 总目录
  • 历史完整版本说明
  • 推荐专题入口

日常维护重点将放在专题页和案例页。

15.4 离线 PDF 流程

目前已经有离线 PDF 发布流程说明,后续可以进一步接入 CI,实现重点页面 PDF 自动生成。

16. 总结

这个项目从一个简单的 Markdown 命令手册,逐步扩展为一个包含以下能力的中文运维知识库:

  • 命令速查
  • PowerShell / Bash 对照
  • 专题化文档
  • 国产 Linux 支持
  • 真实故障案例
  • 自动化巡检脚本
  • JSON Schema
  • GitHub Pages 文档站
  • CI 检查
  • 开源协作模板

如果你平时也经常查 Linux、PowerShell、Docker、Kubernetes、国产 Linux 相关命令,可以看一下这个项目。

GitHub:
https://github.com/shiwenxin123/PowerShell-Linux-Command-Manual

在线文档:
https://shiwenxin123.github.io/PowerShell-Linux-Command-Manual/

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐