欢迎来到我的博客,这里记录了我的技术探索与生活思考。
plink.exe 命令行工具:telnet 连接设备调试与数据采集
引言 最近需要连接一台带网络接口的设备(带电池管理系统的工业设备),通过 telnet 协议读取它的实时测量数据。图形界面的 PuTTY 虽然能连上,但只能手动交互,没法自动采集、落盘、二次处理。于是找到了 PuTTY 套件里那个不起眼的命令行工具——plink.exe。 plink.exe 是什么 plink.exe(PuTTY Link)是 PuTTY 套件中的命令行连接工具,和图形界面 PuTTY 共用同一套协议实现,支持 SSH、telnet、rlogin、raw 等多种协议。它是脚本化、自动化运维的利器——凡是 PuTTY 能干的事,都能用一条命令搞定,而且输出可以直接重定向到文件。 ...
Mermaid 图表测试
这是一篇用于验证 Mermaid 图表功能是否正常工作的测试文章。 流程图 (Flowchart) graph TD A[开始] --> B{是否准备好?} B -->|是| C[执行任务] B -->|否| D[等待] D --> B C --> E[检查结果] E -->|通过| F[完成] E -->|失败| G[修复问题] G --> C 时序图 (Sequence Diagram) sequenceDiagram participant 客户端 participant 服务端 participant 数据库 客户端->>服务端: GET /api/posts 服务端->>数据库: SELECT * FROM posts 数据库-->>服务端: 返回数据 服务端-->>客户端: JSON 响应 类图 (Class Diagram) classDiagram class Blog { +String title +String description +getPosts() List +publish() void } class Post { +String title +Date date +String content +String[] tags +render() String } class Author { +String name +String email +String avatar } Blog "1" --> "*" Post : 包含 Post "*" --> "1" Author : 属于 甘特图 (Gantt Chart) gantt title 博客搭建计划 dateFormat YYYY-MM-DD section 基础设施 初始化 Hugo 项目 :done, infra1, 2025-07-01, 1d 配置 PaperMod 主题 :done, infra2, 2025-07-02, 1d 配置 GitHub Actions :done, infra3, 2025-07-03, 1d section 内容创作 写第一篇文章 :done, content1, 2025-07-15, 1d 添加搜索和归档 :done, content2, 2025-07-20, 2d Mermaid 测试 :active, content3, 2026-08-11, 1d section 未来计划 持续写作 : future1, 2026-08-12, 30d 状态图 (State Diagram) stateDiagram-v2 [*] --> 草稿 草稿 --> 审核中 : 提交审核 审核中 --> 已发布 : 审核通过 审核中 --> 草稿 : 退回修改 已发布 --> 已归档 : 归档 已归档 --> [*] 如果以上所有图表都能正常渲染,说明 Mermaid 功能配置正确。 ...
Git 代理配置完全指南
这篇文章梳理 Git 中所有代理配置方式,从简单的 git config 到 SSH 协议的 SOCKS5 隧道,一份指南全搞定。 为什么需要代理 访问 GitHub、GitLab 等平台时,有时会遇到 git clone 速度极慢甚至超时的情况。尤其是在国内网络环境下,给 Git 配置代理几乎是必备技能。 flowchart LR A[你的电脑] --> B{需要代理?} B -->|直连通畅| C[直接连接 Git 服务器] B -->|速度慢/超时| D[代理服务器] D --> E[Git 服务器github.comgitlab.com] C --> E 配置方式总览 Git 提供多种配置代理的途径,优先级从高到低: ...
正则表达式30分钟入门教程
https://deerchao.cn/tutorials/regex/regex.htm 本文目标 30分钟内让你明白正则表达式是什么,并对它有一些基本的了解,让你可以在自己的程序或网页里使用它。 如何使用本教程 别被下面那些复杂的表达式吓倒,只要跟着我一步一步来,你会发现正则表达式其实并没有想像中的那么困难。当然,如果你看完了这篇教程之后,发现自己明白了很多,却又几乎什么都记不得,那也是很正常的——我认为,没接触过正则表达式的人在看完这篇教程后,能把提到过的语法记住80%以上的可能性为零。这里只是让你明白基本的原理,以后你还需要多练习,多使用,才能熟练掌握正则表达式。 ...
长轮询
我们知道, HTTP 请求发出后,⼀般会给服务器留⼀定的时间做响应,⽐如 3 秒,规定时间内没返回,就 认为是超时。 如果我们的 HTTP 请求将超时设置的很⼤,⽐如 30 秒, 在这 30 秒内只要服务器收到了扫码请求,就⽴⻢ 返回给客户端⽹⻚。如果超时,那就⽴⻢发起下⼀次请求。 这样就减少了 HTTP 请求的个数,并且由于⼤部分情况下,⽤户都会在某个 30 秒的区间内做扫码操作, 所以响应也是及时的。 ...
mqtt中的retained是什么意思
MQTT 中的 retained(保留消息)是一个重要概念,主要作用如下: 基本定义 retained 是 MQTT 消息的一个标志位,当发布者发送消息时可以设置 RETAIN 标志为 true,这样的消息会被 MQTT 代理(broker)保存。 主要特性 消息持久化:Broker 会为每个主题保存最后一条带有 retain 标志的消息 新订阅者立即获取:当新的客户端订阅某个主题时,会立即收到该主题的最后一条保留消息 自动更新:当有新的保留消息发布到同一主题时,旧的保留消息会被替换 清除机制:发布一条空内容(payload 为空)的保留消息可以清除该主题的保留消息 使用场景 设备状态报告:传感器发布温度、湿度等状态信息 配置信息:系统配置参数的发布 在线状态:设备的上下线状态通知 初始数据:确保新订阅者能立即获得最新数据 工作示例 # 客户端A发布保留消息 PUBLISH topic:"home/temperature" payload:"25.6" retain:true # 客户端B稍后订阅该主题 SUBSCRIBE topic:"home/temperature" # 客户端B会立即收到之前发布的保留消息 MESSAGE topic:"home/temperature" payload:"25.6" retain:true 保留消息机制使得 MQTT 非常适合物联网场景,新设备上线时能立即获取到最新的状态信息,而不需要等待下一次数据更新。
Git的奇技淫巧
Git 常用命令集合,Fork 自 tips 项目 Git 是一个分布式版本管理工具,版本管理工具就是大家在写东西的时候都用过 回撤这个功能,但是回撤只能回撤几步,假如想要找回我三天之前的修改,光用回撤是找不回来的。而版本管理工具能记录每次的修改,只要提交到版本仓库,就可以找到之前任何时刻的状态(文本状态)。 ...
为什么不建议使用存储过程了
为什么不建议使用存储过程了 在公司的系统升级换代中,明确规定在数据库开发中不允许再使用存储过程了,以前的老一代系统中,很多复杂的业务逻辑都是存储过程写的, 那为什么风光无限的存储过程不再被宠幸了呢?首先了解下什么是存储过程,它有什么好处,又有哪些劣势,为什么现在都不建议使用存储过程呢? ...
浅谈.NET中的IL代码
在我们分析查看IL之前首先要了解下什么是IL?IL的全称是Intermediate Language (IL)即将.NET代码转化为机器语言的一个中间语言的缩写。在一定程度上,我们可以将其理解为伪汇编语言。我们在使用.NET框架中的C#、VB.NET、F#等语言的时候,编译过程并不是像C/C++一样直接编译出原生代码,而是编译成IL中间语言。通过IL中间语言这种方式,可以实现跨平台、提高程序灵活性等多种优点。 ...
文件的大小和文件的磁盘大小的区别
windows中文件的大小和文件的磁盘大小的区别是? 在Windows中,文件的大小和文件的磁盘大小是不同的。 文件的大小指的是文件中实际存储的数据的大小,通常以字节(bytes)为单位表示。 这个大小是由文件的内容决定的,不受文件所在的磁盘格式和簇大小的影响。 ...