首页
关于
友链
Search
1
ESXI 一些功能调整
755 阅读
2
SoftEther 客户端篇
665 阅读
3
天翼云网关3.0/4.0超管密码
619 阅读
4
SoftEther 服务端篇
533 阅读
5
Centos安装个人网盘Alist v3教程
507 阅读
奇思妙想
代码相关
软件分享
游戏分享
游戏相关
我的家庭影院
登录
Search
标签搜索
python
git
命令
esxi
SoftEther
linux
apscheduler
在线
ai
list
列表
idm
激活码
Charles
pdf
免安装
鲁大师
图片查看器
蜂蜜浏览器
honeyview
哥特式
累计撰写
116
篇文章
累计收到
15
条评论
首页
栏目
奇思妙想
代码相关
软件分享
游戏分享
游戏相关
我的家庭影院
页面
关于
友链
搜索到
96
篇与
的结果
2026-05-25
ai使用的工具
Claude Code / Codex MCP 与 Plugins 配置指南本文档整理我当前使用的 MCP 和 Plugins,方便后续查阅、维护和扩展。适用环境:Claude Code(终端)+ Codex(终端)1. MCP1.1 codegraph — 代码智能知识图谱提供代码的 符号、依赖关系和文件结构 索引查询。项目地址:https://github.com/colbymchenry/codegraph包名:@colbymchenry/codegraph能力一览工具作用典型问题codegraph_context按任务描述返回入口、关键符号、调用关系和代码上下文"这个功能怎么实现?"codegraph_search按名称搜索符号"有没有 login 方法?"codegraph_node查看单个符号详情"UserService 在哪?"codegraph_explore一次查看多个相关符号/文件源码"认证相关函数一起看"codegraph_callers查询"谁调用了这个符号""谁在用这个函数?"codegraph_callees查询"这个符号调用了谁""函数内部依赖了什么?"codegraph_trace追踪从 A 到 B 的调用路径"请求怎么走到数据库?"codegraph_impact评估修改某个符号的影响范围"改这个方法会波及哪?"codegraph_files查看文件树和符号分布"项目目录结构?"codegraph_status查看索引状态"索引是否正常?"适用场景阅读陌生项目时快速建立结构认知调试时梳理调用链重构前评估影响面比 grep + Read 更快地定位关键实现安装# 第一步:全局安装 npm install -g @colbymchenry/codegraph # 第二步:运行,自动配置 Claude Code 和 Codex npx @colbymchenry/codegraphnpx @colbymchenry/codegraph 会自动向 Claude Code 和 Codex 的配置文件写入 MCP server,无需手动编辑 settings.json。更新npm install -g @colbymchenry/codegraph@latest npx @colbymchenry/codegraph更新后重新执行一次自动配置,确保 Claude Code / Codex 的配置与新版本一致。卸载npm uninstall -g @colbymchenry/codegraph卸载后还需手动清理 Claude Code 和 Codex 配置文件中对应的 MCP server 条目:~/.claude/settings.json → 删除 mcpServers.codegraph验证在 Claude Code 会话中调用 codegraph_status,能正常返回即说明接入成功检查 ~/.claude/settings.json 中是否包含 codegraph 的 MCP server 配置使用方式初始化索引codegraph init -i用途:在当前项目中初始化 codegraph 索引为后续的符号查询、调用链分析、影响面分析建立本地数据适用场景:第一次在某个仓库中使用 codegraph新仓库还没有建立索引时建议:进入项目根目录后执行初始化完成后,再在 Claude Code 或 Codex 中使用相关 MCP 工具同步索引codegraph sync用途:同步当前项目代码到 codegraph 索引在代码新增、修改较多后,刷新索引内容适用场景:拉取新代码后大量修改代码后发现查询结果与当前代码不一致时建议:在重要改动后执行一次如果怀疑索引过旧,优先先执行 codegraph sync使用建议场景推荐工具理解某个功能怎么实现codegraph_context → codegraph_explore追踪调用链codegraph_trace → codegraph_callers / codegraph_callees评估改动影响codegraph_impact → codegraph_callers按名字定位符号codegraph_search → codegraph_node2. Plugins2.1 Superpowers — 终端 Agent 工作流技能包如果你平时会让 Claude Code 或 Codex 帮你做多步骤开发任务,比如先梳理需求、再写计划、接着实现、验证、收尾,那么 Superpowers 这一组 skills 会非常实用。Superpowers 的价值不在某一个单独的 skill,而在于它把“从想法到交付”的整条工作流拆得更清楚。你可以把它理解成一套给终端 Agent 使用的方法论增强包。主要 Skills流程与规划这组更适合在真正动手之前理清需求、方案和执行路径。Skill作用superpowers:using-superpowers总控规则,约束 skill 使用流程superpowers:brainstorming需求梳理、方案设计前的脑暴superpowers:writing-plans多步骤任务的实施计划superpowers:executing-plans按计划执行并检查superpowers:subagent-driven-development多子 agent 协作开发superpowers:dispatching-parallel-agents并行分派独立任务开发与调试这组主要用于具体编码、排查问题,以及在完工前确认结果是否靠谱。Skill作用superpowers:test-driven-developmentTDD 工作流superpowers:systematic-debugging系统化排查 bugsuperpowers:verification-before-completion完工前验证评审与收尾这组适合用在代码审查、处理反馈和完成分支收尾这些阶段。Skill作用superpowers:requesting-code-review主动请求代码审查superpowers:receiving-code-review处理收到的 review 意见superpowers:finishing-a-development-branch分支收尾:合并、提 PR配套增强这组更像工作流补充包,适合在协作和执行方式上继续增强 Claude Code 的能力。Skill作用superpowers:using-git-worktreesgit worktree 隔离工作区superpowers:writing-skills编写/修改 skill 本身安装如果你想把这套工作流 skills 加到 Claude Code 里,直接执行下面这条命令即可:# Claude Code claude plugins install superpowers安装完成后,相关 skills 就会出现在可用技能列表里。对我这种主要在 Claude Code / Codex 终端里做开发的人来说,这个插件更像是把常用工作流预先整理好了。更新后续如果插件有更新,可以直接执行:claude plugins update superpowers更新后通常不需要额外处理;如果当前会话没有立即识别到变化,重新打开 Claude Code 会话再检查一次即可。卸载如果后面不再需要,也可以直接卸载:claude plugins uninstall superpowers验证装好之后,最直接的检查方式就是在 Claude Code 会话里输入 /superpowers:brainstorming。只要能正常触发,就说明插件已经安装成功并且可以使用。使用建议和 taste-skill 那种偏场景型的插件不同,Superpowers 更适合按“工作流阶段”组合使用。也就是说,它通常不是只调用一次,而是从需求梳理一路串到实现、验证和收尾。如果你想先快速建立使用直觉,可以直接参考下面这几组常见搭配:场景推荐组合新功能开发brainstorming → writing-plans → test-driven-development → verification-before-completion修 bugsystematic-debugging → verification-before-completion代码审查requesting-code-review / receiving-code-review分支收尾finishing-a-development-branch2.2 taste-skill — 设计与审美增强 skill 集合如果你平时会让 Claude Code 帮你重做页面、还原截图、生成前端视觉方向,或者整理一份更像样的设计调研,那么 taste-skill 这组 skills 会比较顺手。它不是单一 skill,而是一套偏 设计审美、前端表达、图像生成、调研辅助与配置增强 的工具集合。我的理解是,可以把它当成给 Claude Code 额外加上的一层“设计感”和“表达力”增强包。项目地址:https://github.com/Leonxlnx/taste-skill主要 Skills设计审美类这组更适合用在页面重构、视觉升级和风格探索上。Skill作用design-taste-frontend用更高审美标准重做前端页面与落地页design-taste-frontend-v1design-taste-frontend 的早期版本,可用于兼容旧习惯high-end-visual-design强化页面的高级感、层次和视觉表达industrial-brutalist-ui生成工业 / brutalist 风格界面minimalist-ui生成极简风格界面redesign-existing-projects基于现有项目做结构化重设计stitch-design-taste辅助整理设计方向与前端表达风格brandkit整理品牌元素与视觉基调gpt-taste辅助提升生成结果的设计品味图像 / 页面生成类这组适合做截图还原、参考图转页面,或者快速生成一个前端视觉方向。Skill作用image-to-code根据截图、参考图生成页面代码imagegen-frontend-web生成 Web 前端视觉稿 / 页面方向imagegen-frontend-mobile生成移动端界面视觉稿 / 页面方向研究与辅助类这组偏“把事做完整”,适合做调研、验证、运行项目以及查询 Claude / Anthropic 相关资料。Skill作用deep-research进行多来源调研、核对并输出带引用结论verify运行并验证改动是否真的生效run启动项目并观察页面 / 功能表现claude-api查询 Claude API / Anthropic SDK / 模型相关信息配置与效率类如果你想长期优化 Claude Code 的使用体验,这组会更有价值。Skill作用update-config修改 Claude Code 配置、权限、环境变量或 hookskeybindings-help自定义 Claude Code 快捷键fewer-permission-prompts减少常见只读操作的权限提示安装如果你想把这组 skills 直接加到 Claude Code 里,最简单的方式就是执行下面这条命令:npx skills add https://github.com/Leonxlnx/taste-skill我这里用的就是这种安装方式。执行完成后,仓库里提供的 skills 就会被加到当前环境里,后面可以直接按名字调用。更新后续如果仓库有更新,通常重新执行一次同样的命令就够了:npx skills add https://github.com/Leonxlnx/taste-skill如果本地已经存在这个来源的 skills,重新添加通常就会刷新到最新内容。要是更新后当前会话还没识别到新内容,重新打开 Claude Code 会话再试一次就行。卸载如果后面不想继续用了,可以在 skills 管理里把这个 GitHub 来源安装的 skills 移除掉。这里我先不把卸载命令写死,主要是避免和你本地 skills 工具的版本行为不一致;如果后面确认了统一命令,再补进来会更稳妥。验证装好之后,最直接的检查方式就是随便触发一个你会用到的 skill,例如:/design-taste-frontend/deep-research只要能正常触发,就说明这组 skills 已经接入成功。如果刚安装完还没有生效,重开当前会话再试一次即可。使用方式这组 skills 最常见的用法有两种。第一种是直接在 Claude Code 里用 /skill-name 触发,比如:/design-taste-frontend /high-end-visual-design /image-to-code /deep-research /update-config第二种是直接在自然语言需求里点名,让 AI 按指定 skill 的思路来做,例如:“用 design-taste-frontend 帮我重做这个落地页”“用 image-to-code 根据这张截图生成页面”“用 deep-research 帮我做一份带来源的调研”“用 update-config 帮我调整 Claude Code 配置”如果你是第一次装这组 skills,我建议优先从自己最常见的场景开始试,而不是一口气把所有 skill 都过一遍。这样更容易建立直觉:到底哪个 skill 更适合你现在的工作流。使用建议如果你只是想先快速判断“我现在该用哪个”,可以直接按下面这张表来选:场景推荐 Skill重做官网 / 落地页design-taste-frontend / high-end-visual-design做极简或特定风格页面minimalist-ui / industrial-brutalist-ui根据截图还原页面image-to-code生成前端视觉稿imagegen-frontend-web / imagegen-frontend-mobile做资料调研并整理来源deep-research调整 Claude Code 配置update-config修改快捷键keybindings-help3. Superpowers 与 Codegraph 配合使用Superpowers 决定“应该怎么做”Codegraph 帮助“快速看清代码结构”场景流程做功能前brainstorming → codegraph_context → writing-plans修 bug 时systematic-debugging → codegraph_trace → verification-before-completion改公共模块codegraph_impact → writing-plans → requesting-code-review
2026年05月25日
3 阅读
0 评论
0 点赞
2026-05-14
svn转换成git
将svn转换成git初始化 git-svn# 从svn上拉取 git svn clone <完整的SVN URL> hours-back-git # 直接使用完整的项目 URL git svn init svn://xxxx拉取 SVN 历史# 先拉取最新版本(快速) git svn fetch -r HEAD # 如果需要全部历史,去掉 -r HEAD 即可第 4 步:查看远程分支git branch -r你应该会看到类似 git-svn 或 remotes/git-svn 的引用。第 5 步:重置到 SVN 版本(保留本地修改)bash根据第4步看到的实际名称调整git reset --mixed git-svn或者如果分支名是 remotes/git-svn:git reset --mixed remotes/git-svn第 6 步:查看状态git status现在应该能看到你所有的本地修改(显示为待提交状态)。常用命令速查表操作命令查看当前分支git branch创建并切换分支git checkout -b 分支名切换分支git checkout 分支名查看状态git status查看改动内容git diff添加文件git add 文件名添加所有文件git add .本地提交git commit -m "说明"查看提交历史git log --oneline合并分支(保留历史)git merge 分支名合并分支(压缩成一个)git merge --squash 分支名拉取 SVN 更新git svn rebase提交到 SVNgit svn dcommit查看相对 SVN 的改动git log git-svn..HEAD --oneline
2026年05月14日
8 阅读
0 评论
0 点赞
2025-12-16
简单的UV使用教程
这个教程涵盖了 UV 的主要功能。随着 UV 的快速发展,建议查看官方文档获取最新信息:uv 中文文档安装UV安装 UVmacOS 和 Linux# 使用 curl curl -LsSf https://astral.sh/uv/install.sh | sh # 或者使用 pip pip install uvWindows# 使用 PowerShell powershell -c "irm https://astral.sh/uv/install.ps1 | iex" # 或者使用 pip pip install uv升级# 使用自身上升级命令(1.0版本以上) uv self update # 或使用旧的升级命令 uv pip install --upgrade uv📍 创建全局 uv.toml 的路径你需要根据操作系统,在指定目录创建一个新的文本文件,并命名为 uv.toml。操作系统全局配置文件完整路径如何快速打开/创建Windows%APPDATA%\uv\uv.toml1. 按 Win+R,输入 %APPDATA%\uv 并回车。2. 在打开的文件夹内,新建文本文档,重命名为 uv.toml。macOS / Linux~/.config/uv/uv.toml在终端执行:mkdir -p ~/.config/uv && nano ~/.config/uv/uv.toml🛠️ 创建并配置文件的步骤打开或创建文件:使用上表的方法,在正确的位置创建一个名为 uv.toml 的纯文本文件。编辑文件内容:将以下配置粘贴进去(以清华大学源为例):[[index]] url = "https://pypi.tuna.tsinghua.edu.cn/simple" # 可选的附加配置:设置并行下载数以提高速度 concurrent-downloads = 8 # 可选:如果你想设置安装相关的其他参数,正确字段是 `[pip]` # [pip] # jobs = 8 # `jobs` 参数在 `[pip]` 字段下是有效的Python 版本管理查看可用的 Python 版本uv python list安装特定 Python 版本# 安装最新 Python 3.12 uv python install 3.12 # 安装特定小版本 uv python install 3.11.5 # 安装预览版 uv python install 3.13-dev使用特定 Python 版本# 为当前项目指定 Python 版本 uv python pin 3.12 # 查看当前项目使用的 Python 版本 uv python show依赖管理从 requirements.txt 安装依赖基本安装uv pip install -r requirements.txt同步依赖(类似 pip-sync)# 同步虚拟环境中的包,使其与 requirements.txt 完全一致 uv pip sync requirements.txt安装开发依赖uv pip install -r requirements-dev.txt生成 requirements.txt从当前环境生成uv pip freeze > requirements.txt生成带哈希值的锁定文件uv pip compile pyproject.toml -o requirements.lock生成特定平台的依赖# 只生成当前平台需要的依赖 uv pip compile pyproject.toml --platform linux-x86_64创建和更新依赖添加新包uv pip install pandas # 添加到 requirements.txt uv pip install pandas && uv pip freeze > requirements.txt更新所有包uv pip compile --upgrade pyproject.toml更新特定包uv pip install "pandas>=2.0.0"项目管理初始化新项目# 创建新项目目录 mkdir my-project cd my-project # 初始化项目(会创建 pyproject.toml) uv init # 或使用指定 Python 版本初始化 uv init --python 3.12创建虚拟环境# 在当前目录创建虚拟环境 uv venv # 指定虚拟环境名称 uv venv .venv # 使用特定 Python 版本 uv venv --python 3.12激活虚拟环境Linux/macOS:source .venv/bin/activateWindows:.venv\Scripts\activate在虚拟环境中使用 uv# 激活虚拟环境后,安装依赖 uv pip install -r requirements.txt # 或直接使用 uv run 运行命令 uv run python script.py常用命令安装相关# 安装单个包 uv pip install package-name # 安装指定版本 uv pip install "package-name==1.0.0" # 安装并添加到 pyproject.toml uv add package-name # 安装开发依赖 uv add --dev black依赖解析# 解析依赖树 uv pip tree # 检查过时的包 uv pip list --outdated # 显示包信息 uv pip show package-name清理和维护# 清理缓存 uv cache clean # 删除包 uv pip uninstall package-name # 修复损坏的环境 uv pip check工作流示例示例 1:从现有 requirements.txt 开始# 1. 克隆项目 git clone project-url cd project # 2. 创建虚拟环境 uv venv # 3. 激活虚拟环境 source .venv/bin/activate # Linux/macOS # 或 .venv\Scripts\activate # Windows # 4. 安装依赖 uv pip install -r requirements.txt # 5. 运行项目 uv run python main.py示例 2:从头创建新项目# 1. 创建项目目录 mkdir new-project cd new-project # 2. 初始化项目 uv init --python 3.11 # 3. 添加依赖 uv add fastapi uv add --dev pytest # 4. 安装依赖 uv pip install # 5. 生成 requirements.txt uv pip freeze > requirements.txt示例 3:同步生产环境# 1. 在生产服务器上创建虚拟环境 uv venv --python 3.11 # 2. 激活环境 source .venv/bin/activate # 3. 同步精确版本 uv pip sync requirements.lock # 4. 启动应用 uv run gunicorn app:app与 pip 对比的优势速度更快:UV 比 pip 快 10-100 倍内置虚拟环境管理:无需额外安装 virtualenv更好的依赖解析:更快的依赖解析和冲突检测跨平台一致性:更好的跨平台依赖管理一体化工具:集成了 pip、pip-tools、virtualenv 等功能提示和技巧使用 UVX 运行工具(类似 npx):# 无需安装即可运行 Python 工具 uvx black .并行安装:# UV 默认并行安装,可通过 --no-parallel 禁用 uv pip install --no-parallel -r requirements.txt离线模式:# 使用缓存的包 uv pip install --offline package-name仅安装当前平台依赖:uv pip install --platform-current故障排除清除缓存解决问题:uv cache clean详细日志:uv pip install -v package-name强制重新安装:uv pip install --reinstall package-name配置UV 的配置文件位于:Linux/macOS: ~/.config/uv/uv.tomlWindows: %APPDATA%\uv\uv.toml示例配置:toml[[tool.uv.index]] url = "https://pypi.tuna.tsinghua.edu.cn/simple" [tool.uv] # 总是升级包 upgrade = true # 并行下载数 concurrent-downloads = 8 [tool.uv] # 缓存目录 cache-dir = "~/.cache/uv"
2025年12月16日
56 阅读
0 评论
0 点赞
2025-11-21
uniapp离线打包
超详细!uni-app Android本地打包傻瓜式教程1. 接入mPaaS,支付宝原生扫码插件支付宝原生扫码插件 - DCloud 插件市场uniapp里面按照上面的配置离线打包的时候,增加下面的配置<meta-data android:name="mobilegw.appid" android:value=""/> <meta-data android:name="workspaceId" android:value=""/> <meta-data android:name="mpaasConfigLicense" android:value=""/>在main\assets目录下,增加一个dcloud_uniplugins.json文件,我是根据插件目录里面的配置写的{ "nativePlugins": [ { "plugins": [ { "type": "module", "name": "Mpaas-Scan-Module", "class": "com.mpaas.uniapp.scan.MpaasScanModule" } ] } ] }将插件目录下的android,里面的所有内容,都复制到libs里面然后正常打包就行了2. push2.0相关maven { url 'https://mvn.getui.com/nexus/content/repositories/releases' }<service name="push" value="io.dcloud.feature.aps.APSFeatureImpl"/><intent-filter> <action android:name="android.intent.action.VIEW"/> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:host="io.dcloud.unipush" android:path="/" android:scheme="unipush" /> </intent-filter>// 个推相关 manifestPlaceholders = [ "GETUI_APPID" : "GETUI_APPID", "plus.unipush.appid" : "GETUI_APPID", "plus.unipush.appkey" : "AppKey", "plus.unipush.appsecret": "AppSecret", "apk.applicationId" : "包名:比如com.test.app" ]在hb项目里面,右键,新增云函数,提交到线上,便可使用const uniPush = uniCloud.getPushManager({appId: "你的应用appId"}) //注意这里需要传入你的应用appId exports.main = async (event, context) => { let push = { "push_clientid": "", # 填写上一步在uni-app客户端获取到的客户端推送标识push_clientid "force_notification": True, # 填写true,客户端就会对在线消息自动创建“通知栏消息”。 "title": "通知栏显示的标题", "content": "通知栏显示的内容", "settings": { # 消息有效期设置,单位毫秒,-1表示不设离线。默认是 2 小时,取值范围:-1 ~ 3 * 24 * 3600 * 1000(3天)之间 "ttl": 86400000 }, "payload": { "text": "体验一下uni-push2.0" }, "badge": "+1" } return await uniPush.sendMessage(push) }dcloud的云空间,记得添加这三张表
2025年11月21日
38 阅读
0 评论
0 点赞
2025-11-20
git的一些操作
标签# 查看已有标签: git tag # 查看标签详情(备注): git tag -n # 创建标签: git tag -a v0.0.1 -m "标签的备注" # 推送标签: git push origin v0.0.1本地和线上的有冲突的解决方案保留本地修改,同时拉取线上版本# 暂存本地修改 git stash # 拉取最新代码 git pull # 恢复本地修改(如果有冲突需要手动解决) git stash pop
2025年11月20日
35 阅读
0 评论
0 点赞
2025-11-17
Windows系统打包备份
它们能自动处理系统分区、引导分区,并自带一个可启动的恢复环境,直接生成一个能用来安装系统的U盘或ISO文件。以下是几个非常流行且强大的选择:AOMEI Backupper(傲梅轻松备份) - 强烈推荐这款软件对个人用户免费,功能强大且界面非常友好,是DiskGenius方案的最佳替代品。操作流程:在虚拟机中准备:启动您的Win10虚拟机。下载并安装 AOMEI Backupper Standard。(可选但推荐)运行磁盘清理,减少体积。依然建议运行 sysprep /oobe /generalize /shutdown 进行通用化,以确保系统可以部署到其他电脑。创建系统备份镜像:运行AOMEI Backupper。选择 “备份” -> “系统备份”。关键优势: 软件会自动选择所有系统启动所必需的分区(包括EFI分区和MSR分区),您无需手动选择。您只需要选择备份文件存放的位置(比如虚拟机里的D盘,或者一个网络位置)。点击“开始备份”。它会生成一个单一的、包含所有系统的镜像文件(.adi格式)和一些描述信息。创建可启动恢复介质:在软件主界面找到 “工具” -> “创建可启动媒体”。选择创建类型(推荐基于Linux或Windows PE的介质,兼容性更好)。选择输出方式为 “ISO文件”。程序会自动引导您生成一个.iso文件。这个ISO就是您的“自定义安装盘”!如何使用这个ISO安装系统?在任何一台新电脑(物理机或新虚拟机)上,用这个ISO启动。它会直接进入AOMEI Backupper的恢复界面。使用 “还原” 功能,选择您之前备份好的那个.adi系统镜像文件。软件会自动识别目标硬盘,您只需点击“开始还原”,它就会自动将整个系统(包括引导)写入硬盘。重启电脑,您熟悉的、带着所有设置和软件的Windows就出现了。
2025年11月17日
38 阅读
0 评论
0 点赞
2025-11-12
HBuilderX CLI注意事项
1. 官网地址:https://hx.dcloud.net.cn/cli/README2. 注意事项cli open./cli open -1 :open: 操作超时安装依赖apt install -y libgl1 libharfbuzz0b
2025年11月12日
39 阅读
0 评论
0 点赞
2025-09-11
飞牛遇到的一些问题
1. 个人空间与实际使用不符合#!/bin/bash btrfs quota rescan -w /vol12. 回收站内容不会自动清理比如我需要清理的是网络备份这个回收站目录下的文件#!/bin/bash # 定义要清理的目录 TRASH_DIR="/vol2/1000/.@#local/trash/网络备份" # 定义日志文件位置 LOG_FILE="/vol2/1000/网络备份/clean_network_back.log" # 获取当前时间,用于日志记录 echo "=== 清理任务开始于 $(date) ===" >> "$LOG_FILE" 2>&1 # 检查目标目录是否存在 if [ -d "$TRASH_DIR" ]; then # 计算清理前的目录大小 BEFORE_SIZE=$(du -sb "$TRASH_DIR" 2>/dev/null | cut -f1) BEFORE_SIZE=${BEFORE_SIZE:-0} # 如果目录为空或不存在,设为0 # 执行删除操作,强制删除目录下的所有文件和子目录 # 使用 /bin/rm 的绝对路径以避免别名问题 /bin/rm -rf -- "$TRASH_DIR"/* >> "$LOG_FILE" 2>&1 # 计算清理后的目录大小 AFTER_SIZE=$(du -sb "$TRASH_DIR" 2>/dev/null | cut -f1) AFTER_SIZE=${AFTER_SIZE:-0} # 如果目录为空或不存在,设为0 # 计算释放的空间(字节) FREED_SPACE=$((BEFORE_SIZE - AFTER_SIZE)) # 格式化显示空间大小 format_size() { local bytes=$1 if [ $bytes -ge 1073741824 ]; then echo "$(echo "scale=2; $bytes/1073741824" | bc) GB" elif [ $bytes -ge 1048576 ]; then echo "$(echo "scale=2; $bytes/1048576" | bc) MB" elif [ $bytes -ge 1024 ]; then echo "$(echo "scale=2; $bytes/1024" | bc) KB" else echo "${bytes} B" fi } FREED_SPACE_FORMATTED=$(format_size $FREED_SPACE) echo "成功清理目录 $TRASH_DIR 下的所有内容。" >> "$LOG_FILE" 2>&1 echo "释放空间: $FREED_SPACE_FORMATTED" >> "$LOG_FILE" 2>&1 echo "清理详情: 清理前 $(format_size $BEFORE_SIZE), 清理后 $(format_size $AFTER_SIZE)" >> "$LOG_FILE" 2>&1 else echo "错误:目录 $TRASH_DIR 不存在,清理任务已中止。" >> "$LOG_FILE" 2>&1 fi echo "=== 清理任务结束于 $(date) ===" >> "$LOG_FILE" 2>&1 echo "" >> "$LOG_FILE" 2>&1将脚本放到某个目录下,比如我的放到的是**/网络备份/clean_network_back.sh使用crontab来做定时任务# 查看当前任务 crontab -l # 编辑任务 crontab -e增加一行# 分别对应秒分时天月 0 8 * * * /vol2/1000/网络备份/clean_network_back.sh
2025年09月11日
60 阅读
0 评论
0 点赞
2025-08-19
Python极速搭建局域网文件传输服务器
在日常工作中,是否遇到下面的困扰:同事急需你电脑上的资料文件,却找不到U盘聊天工具传输速度慢,文件类型受限云存储等第三方工具存在隐私泄露风险,还需要复杂配置今天我们使用Python内置神器,3秒搭建局域网文件共享服务器!你没看错,就是3秒!核心武器:HTTP服务器模块Python自带了一个强大的模块http.server,只需要一条命令就能启动文件共享服务器# 在文件所在目录执行 python -m http.server默认端口8000,浏览器访问http://your_ip:8000,就可以查看当前目录下的所有文件实测传输1GB的文件用时不到10s(千兆局域网环境)手机连接同一个局域网,同样也能在浏览器访问服务端可以查看到所有的访问记录(如上图所示)进阶使用技巧1.自定义端口将默认的8000端口替换为其他未被占用的端口python -m http.server 78792.自定义共享目录设置共享的根目录# Linux/Mac共享/share文件夹 python3 -m http.server -d /share 7879 # Windows共享D:\share文件夹 python -m http.server -d D:\share 78793.多线程性能优化http.server默认为单线程,多人使用有高并发阻塞风险,可使用socketserver.ThreadingTCPServerimport socketserver from http.server import SimpleHTTPRequestHandler handler = SimpleHTTPRequestHandler with socketserver.ThreadingTCPServer(('', 7879), handler) as httpd: httpd.serve_forever()安全提示:使用完毕后请及时关闭文件共享服务(关闭cmd命令终端窗口即可),避免长期暴露文件技术不在于复杂,而在于解决实际问题。下次需要共享文件时,无需聊天工具来回发送,也不必寻找U盘,只需打开终端,一行命令开启专属高速文件共享通道!
2025年08月19日
61 阅读
0 评论
0 点赞
2025-08-12
使用GitHub Action 自动构建 RustDesk 客户端
1. 安装rustdeskdocker-compose 文件:假设你的域名是rustdesk.test.comservices: rustdeskapi: container_name: rustdeskapi ports: - 21114:21114 - 21115:21115 - 21116:21116 - 21116:21116/udp - 21117:21117 - 21118:21118 - 21119:21119 image: lejianwen/rustdesk-server-s6:latest environment: RELAY: "rustdesk.test.com:21117" #中继服务器:21117 ENCRYPTED_ONLY: 1 MUST_LOGIN: Y #默认为N,设置为Y 则必须登录才能链接 TZ: Asia/Shanghai RUSTDESK_API_RUSTDESK_ID_SERVER: "rustdesk.test.com:21116" #ID服务器 RUSTDESK_API_RUSTDESK_API_SERVER: "https://rustdesk.test.com" #API服务器 RUSTDESK_API_RUSTDESK_KEY: "" # 首次运行后给的 RUSTDESK_API_JWT_KEY: "随便一个" # 自定义JWT KEY,为空则不启用JWT,如果没使用lejianwen/rustdesk-server中的MUST_LOGIN,建议设置为空 RUSTDESK_API_RUSTDESK_WS_HOST: "wss://rustdesk.test.com" volumes: - ./server:/data - ./api:/app/data #将数据库挂载 restart: unless-stoppednginx文件:参考:HTTPS Reverse Proxy · lejianwen/rustdesk-api Wikiserver { server_name <server>; listen 443 ssl; ssl_certificate /etc/nginx/ssl/<server>/fullchain.pem; ssl_certificate_key /etc/nginx/ssl/<server>/privkey.pem; location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://rustdesk-api:21114/; } location /ws/id { proxy_pass http://rustdesk-server:21118; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } location /ws/relay { proxy_pass http://rustdesk-server:21119; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } } server { if ($host = <server>) { return 301 https://$host$request_uri; } server_name <server>; listen 80; return 404; }2. Fork Rustdesk仓库rustdesk/hbb_commonrustdesk/rustdesk2.1 拉取 Fork 后的代码请注意,替换仓库地址为你fork后的仓库地址,而不是直接复制我下面的命令 # 可选:如果需要使用代理 # git config --global http.proxy http://127.0.0.1:10808 # git config --global https.proxy http://127.0.0.1:10808 # 拉取仓库代码到本地 请替换为你fork后的仓库地址 git clone https://github.com/irains/hbb_common.git git clone https://github.com/irains/rustdesk.git 3. 修改 hbb_common代码打开 hbb_common 仓库下的 src/config.rs文件,修改 101-102 行 的默认服务器和密钥为你自己的服务器和密钥。 3.1 推送修改后的代码# 将修改的代码添加到暂存区 git add . # 将代码提交到本地仓库 git commit -m "修改默认的服务器和 key" # 将本地仓库代码推送到远程仓库 如果你没有登录过GitHub会要求你登录github git push 3.2 查看最新提交的 commit IDgit log --oneline我这里提交后的commit id是b8d80ca,可用于后续验证rustdesk服务器和key是否修改成功4. 修改 rustdesk 仓库代码我们切换到克隆下来的rustdesk代码目录下,按照下面的方式修改子模块地址并更新。4.1 更新 .gitmodules打开并编辑 .gitmodules 文件,将 url 替换为你Fork后的 hbb_common 仓库地址。比如我fork后的仓库地址是https://github.com/irains/hbb_common\则将 https://github.com/rustdesk/hbb_common地址换为前面这个地址即可,记住是hbb_common的地址,而不是rustdesk仓库的地址4.2 更新子模块将上面修改好的代码保存,执行下面的命令更新子模块到最新的commit idgit submodule sync git submodule update --remote如果上面的方法不行,用下面这个cd libs/hbb_common git checkout <上面提到的版本号> cd ../.. git add libs/hbb_common git commit -m "Pin submodule to specific version"4.3 提交并推送代码git add . git commit -m "修改子模块仓库地址" git push4.4 确认 Commit ID 更新代码推送完毕后,进入你Fork 后的 rustdesk 仓库的 libs 目录下,查看 hbb_common 后面的 commit id,确保它是3.2提到的b8d80ca(这个值每个人的是不同的),否则请回到上面的步骤重新检查是否遗漏了某个操作。 5. 触发 GitHub Action 构建5.1 创建 Tag在本地 rustdesk 仓库中创建一个新 tag,例如 1.3.9,请使用 固定格式 (如 1.3.9 或 v1.3.9),以便于自动匹配构建规则。git tag -a 1.3.9 -m "修改内置服务器和 key"5.2 增加API_SERVER来到rustdesk项目,settings --> Secrets and variables --> new repository secretname:API_SERVERsecret:RUSTDESK_API_RUSTDESK_API_SERVER的值5.3 触发 GitHub Actions 构建在 rustdesk 仓库中,进入 Actions 页面,点击下面图中的按钮启用自动构建。启用后回到本地rustdesk代码中使用下面的命令将tag推送到Github后将自动开始构建。git push --tags5.4 下载构建好的客户端Tag推送完毕后会出现下面的构建进度。 等待 Action 执行完成后(时间比较长,一个半小时左右才能全部构建完成),进入 Releases 页面,即可下载构建好的客户端并使用。
2025年08月12日
94 阅读
0 评论
0 点赞
2025-08-07
Windows使用wsl开发
安装wsl1. 安装wsl --install2. 重启电脑使用可以直接在资源管理器里面输入这个链接\\wsl$\Ubuntu\home\你的用户名cmd里面使用wsl -d Ubuntu # 默认root用户 ubuntu config --default-user root
2025年08月07日
32 阅读
0 评论
0 点赞
2025-07-12
rclone 配置同步
配置 MinIO 连接示例:n) New remote name> myminio Storage> s3 provider> Other env_auth> false access_key_id> YOUR_MINIO_ACCESS_KEY secret_access_key> YOUR_MINIO_SECRET_KEY region> us-east-1 endpoint> http://your-minio-server:9000 location_constraint> acl> storage_class> 配置 AWS S3 连接示例:n) New remote name> mys3 Storage> s3 provider> AWS env_auth> false access_key_id> YOUR_AWS_ACCESS_KEY secret_access_key> YOUR_AWS_SECRET_KEY region> ap-northeast-1 endpoint> location_constraint> acl> storage_class> 基本同步命令单向同步(MinIO → S3)rclone sync myminio:bucket1 mys3:bucket2双向同步(保持两端一致)rclone bisync myminio:bucket1 mys3:bucket2高级同步选项增量同步(只传输变化的部分)rclone sync --update myminio:bucket1 mys3:bucket2
2025年07月12日
25 阅读
0 评论
0 点赞
2025-07-10
minio命令
客户端配置# 配置别名(连接远程MinIO服务器) mc alias set myminio http://localhost:9000 ACCESS_KEY SECRET_KEY # 示例: mc alias set myminio http://127.0.0.1:9000 username password # 列出所有配置的别名 mc alias list存储桶操作# 创建存储桶 mc mb myminio/mybucket # 列出所有存储桶 mc ls myminio # 删除空存储桶 mc rb myminio/mybucket # 强制删除非空存储桶 mc rb --force myminio/mybucket对象操作# 上传文件 mc cp localfile.txt myminio/mybucket/ # 下载文件 mc cp myminio/mybucket/remotefile.txt . # 列出存储桶内容 mc ls myminio/mybucket # 删除对象 mc rm myminio/mybucket/file.txt # 递归删除目录 mc rm --recursive myminio/mybucket/mydir策略管理# 设置存储桶为公开可读 mc anonymous set download myminio/mybucket # 设置存储桶为私有 mc anonymous set none myminio/mybucket # 添加用户 mc admin user add myminio newuser newpassword # 设置用户策略 mc admin policy set myminio readwrite user=newuser监控与维护# 查看服务器信息 mc admin info myminio # 查看服务健康状态 mc admin heal myminio # 查看存储桶使用情况 mc du myminio/mybucket高级功能# 设置对象保留策略 mc retention set --default GOVERNANCE 30d myminio/mybucket # 设置对象锁定(合规模式) mc retention set --default COMPLIANCE 30d myminio/mybucket # 启用版本控制 mc version enable myminio/mybucket # 列出对象版本 mc ls --versions myminio/mybucket管理用户mc admin user # 创建用户 mc admin user add <alias> <username> <password> # 示例:创建名为reports的用户 mc admin user add myminio reports user123456 # 列出所有用户 mc admin user list <alias> # 示例:列出myminio的所有用户 mc admin user list myminio # 查看用户信息 mc admin user info <alias> <username> # 示例:查看reports用户信息 mc admin user info myminio reports # 禁用用户 mc admin user disable <alias> <username> # 示例:禁用reports用户 mc admin user disable myminio reports # 启用用户 mc admin user enable <alias> <username> # 示例:重新启用reports用户 mc admin user enable myminio reports # 删除用户 mc admin user remove <alias> <username> # 示例:删除reports用户 mc admin user remove myminio reports用户策略管理# 为用户分配策略 mc admin policy attach <alias> <policy-name> --user=<username> # 示例:为reports用户分配readonly策略 mc admin policy attach myminio readonly --user=reports # 查看用户当前策略 mc admin policy info <alias> --user=<username> # 示例:查看reports用户的策略 mc admin policy info myminio --user=reports # 解除用户策略 mc admin policy detach <alias> <policy-name> --user=<username> # 示例:移除reports用户的readonly策略 mc admin policy detach myminio readonly --user=reports用户密钥管理# 修改用户密码 mc admin user update <alias> <username> <new-password> # 示例:修改reports用户密码 mc admin user update myminio reports newpassword123 # 生成临时访问密钥 mc admin user svcacct add <alias> <username> # 示例:为reports用户创建服务账户 mc admin user svcacct add myminio reports高级用户配置# 创建带策略的新用户(一步完成) mc admin user add <alias> <username> <password> --policy-name=<policy> # 示例:创建带writeonly策略的用户 mc admin user add myminio uploader upload123 --policy-name=writeonly # 设置用户描述信息 mc admin user update <alias> <username> --description="User description" # 示例:设置用户描述 mc admin user update myminio reports --description="Monthly reports generator"用户管理实际使用案例# 1. 创建管理员用户 mc admin user add myminio admin admin123 mc admin policy attach myminio consoleAdmin --user=admin # 2. 创建只读用户 mc admin user add myminio viewer view123 mc admin policy attach myminio readonly --user=viewer # 3. 创建特定存储桶权限用户 # 先创建自定义策略文件bucket-policy.json { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["s3:GetObject"], "Resource": ["arn:aws:s3:::reports-bucket/*"] } ] } # 添加策略 mc admin policy create myminio reports-reader bucket-policy.json # 创建用户并附加策略 mc admin user add myminio report-reader reader123 mc admin policy attach myminio reports-reader --user=report-reader配置同步mc mirror -w old new
2025年07月10日
51 阅读
0 评论
0 点赞
2025-06-24
github代理地址
1. 使用方法直接在对应的GitHub地址前面加内容2. 维护的地址https://ghm.078465.xyz/
2025年06月24日
49 阅读
0 评论
0 点赞
2025-04-18
docker安装lucky
1. 使用docker-compose安装luckyservices: lucky: image: gdy666/lucky:latest network_mode: host restart: always volumes: - ./data:/goodluck2. 安装后,使用ddns通过指令获取ipv6curl 6.ipw.cn这时候发现没有curl命令,通过下面的方法,给容器安装curl# 在宿主机操作 wget https://github.com/moparisthebest/static-curl/releases/download/v8.4.0/curl-amd64 -O curl-static chmod +x curl-static docker cp curl-static 容器名:/usr/bin/curl docker exec 容器名 curl --version
2025年04月18日
143 阅读
0 评论
0 点赞
1
2
...
7