<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[modelmd的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/modelmd</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; modelmd]]></copyright><item><title><![CDATA[离线安装与使用 vscode Remote SSH插件]]></title><link>https://blog.youkuaiyun.com/modelmd/article/details/170293068</link><guid>https://blog.youkuaiyun.com/modelmd/article/details/170293068</guid><author>modelmd</author><pubDate>Sun, 08 Nov 2026 20:25:51 +0800</pubDate><description><![CDATA[本文详细介绍了VSCode Remote-SSH插件的离线安装与配置流程：下载对应版本的.vsix插件包及vscode-server压缩包，通过SSH免密登录上传并解压至远程主机指定目录，严格设置权限；本地关闭自动更新并配置SSH连接，实现远程开发。插件在远程运行，代码与环境均在远程，确保离线环境下高效、安全的远程开发体验。]]></description><category></category></item><item><title><![CDATA[Windows 配置远程免密 SSH 登录多个 Linux 主机]]></title><link>https://blog.youkuaiyun.com/modelmd/article/details/170293629</link><guid>https://blog.youkuaiyun.com/modelmd/article/details/170293629</guid><author>modelmd</author><pubDate>Sun, 08 Nov 2026 19:39:16 +0800</pubDate><description><![CDATA[本文详细演示在Windows上配置SSH免密登录多台Linux服务器的全流程：使用OpenSSH生成ed25519密钥，通过ssh-copy-id或手动方式分发公钥，编写~/.ssh/config文件设置主机别名、用户、端口与密钥路径，结合ssh-agent缓存口令实现长期免密。附带常见问题排查与安全建议，最终实现一条命令快速登录，显著提升运维效率。]]></description><category></category></item><item><title><![CDATA[Go 切片、映射常见使用场景]]></title><link>https://blog.youkuaiyun.com/modelmd/article/details/169747976</link><guid>https://blog.youkuaiyun.com/modelmd/article/details/169747976</guid><author>modelmd</author><pubDate>Sun, 01 Nov 2026 22:45:27 +0800</pubDate><description><![CDATA[本文介绍Go语言中切片与映射的常见使用场景。通过遍历切片并利用map实现按年龄等条件分组，可高效聚合数据；借助泛型函数GroupBy提升代码复用性。对比Java的Stream分组，Go强调显式控制与性能优势。此外，说明了切片需通过指针传递才能修改原值，而映射作为引用类型可直接修改。适用于高性能、低延迟场景，推荐封装通用函数以增强可读性与维护性。]]></description><category></category></item><item><title><![CDATA[Linux SIGTERM信号-实验]]></title><link>https://blog.youkuaiyun.com/modelmd/article/details/164429426</link><guid>https://blog.youkuaiyun.com/modelmd/article/details/164429426</guid><author>modelmd</author><pubDate>Sun, 06 Sep 2026 18:39:45 +0800</pubDate><description><![CDATA[在Ubuntu 24.04、JDK21和Docker环境下，通过ShutdownHookLogExample注册JVM钩子，验证SIGTERM触发优雅停机并记录日志。实验对比启动脚本：使用exec使Java进程成为容器PID1，信号直达JVM，钩子正常执行；不使用exec时，shell中间层可能阻碍信号传递。该实验验证了优雅停机机制与exec的关键作用。]]></description><category></category></item><item><title><![CDATA[Linux SIGTERM 信号]]></title><link>https://blog.youkuaiyun.com/modelmd/article/details/164427411</link><guid>https://blog.youkuaiyun.com/modelmd/article/details/164427411</guid><author>modelmd</author><pubDate>Sun, 06 Sep 2026 17:06:38 +0800</pubDate><description><![CDATA[SIGTERM（编号15）是Linux中请求进程正常终止的可捕获信号，默认终止进程，属于“礼貌请求”，区别于不可捕获的SIGKILL（9）。kill、docker stop等默认发送它。程序可用C、Python、Go、Node.js捕获处理，实现优雅退出。实践需按序执行：停止新请求、处理在途、保存状态、释放资源，并设超时防止无限等待。容器云环境中，SIGTERM是优雅下线重要一环。]]></description><category></category></item><item><title><![CDATA[C 语言字符输入/输出：getchar、putchar 与缓冲区机制详解]]></title><link>https://blog.youkuaiyun.com/modelmd/article/details/163896132</link><guid>https://blog.youkuaiyun.com/modelmd/article/details/163896132</guid><author>modelmd</author><pubDate>Wed, 19 Aug 2026 22:38:41 +0800</pubDate><description><![CDATA[本文介绍了C语言中字符输入/输出的核心概念和常用函数。主要内容包括： 标准输入/输出流的基本概念，getchar()和putchar()的使用方法及其返回值类型的注意事项 缓冲区机制（行缓冲、全缓冲、无缓冲）及其对输入输出的影响 字符I/O的实际应用示例，如字符计数、大小写转换等 常见错误和陷阱，如用char接收getchar返回值、换行符处理等 文件字符I/O的扩展函数fgetc和fputc 掌握这些基础知识是进行更复杂文本处理的前提。文章通过代码示例和原理分析，帮助读者正确理解和使用字符I/O功能。]]></description><category></category></item><item><title><![CDATA[C语言控制语句：循环、分支和跳转]]></title><link>https://blog.youkuaiyun.com/modelmd/article/details/163706968</link><guid>https://blog.youkuaiyun.com/modelmd/article/details/163706968</guid><author>modelmd</author><pubDate>Wed, 12 Aug 2026 23:03:55 +0800</pubDate><description><![CDATA[本文系统介绍了C语言的三大控制语句：分支、循环和跳转。在分支语句部分，详细讲解了if、if-else、else-if多分支以及switch语句的用法，特别强调了break和枚举类型在switch中的应用。循环语句部分涵盖while、do-while和for循环，指出C99允许在for循环中声明局部变量。跳转语句解析了break、continue、goto和return的适用场景与注意事项。最后总结了常见编程陷阱，如忘记break、悬挂else等问题，并建议优先使用结构化写法，合理运用控制语句来编写清晰健壮的]]></description><category></category></item><item><title><![CDATA[C 语言运算符]]></title><link>https://blog.youkuaiyun.com/modelmd/article/details/163451665</link><guid>https://blog.youkuaiyun.com/modelmd/article/details/163451665</guid><author>modelmd</author><pubDate>Mon, 03 Aug 2026 22:46:08 +0800</pubDate><description><![CDATA[本文系统介绍了C语言中的运算符分类与用法。主要内容包括：1) 算术运算符（+、-、、/、%）及其整数除法特性；2) 关系运算符（>、<、==等）和逻辑运算符（&&、||、!）的短路特性；3) 赋值运算符和复合赋值运算符；4) 自增/自减运算符的前后缀区别；5) 位运算符（&、|、^等）的二进制操作；6) 条件运算符（?:）、逗号运算符和sizeof运算符的特殊用法；7) 指针相关运算符（、&、->、.）的使用场景。文章强调运算符优先级和结合性的重要性，建议使用括号明确运算顺序，并提供了大量可运行的代码示例，]]></description><category></category></item><item><title><![CDATA[C 语言基础数据类型详解：大小与内存存储]]></title><link>https://blog.youkuaiyun.com/modelmd/article/details/163345174</link><guid>https://blog.youkuaiyun.com/modelmd/article/details/163345174</guid><author>modelmd</author><pubDate>Thu, 30 Jul 2026 23:11:48 +0800</pubDate><description><![CDATA[本文系统梳理了C语言基础数据类型的大小及存储方式。主要内容包括：1）常见数据类型（如char、int、float等）在64位Linux和Windows系统中的典型大小对比表；2）有符号整数采用补码存储的原理及计算方法；3）浮点数遵循IEEE 754标准的存储结构；4）字节序（大端/小端）对多字节数据存储的影响；5）内存对齐机制。文章通过表格和计算示例详细说明了各类型的内存表示形式，并总结了跨平台使用时需注意的差异点，为编写高效可靠的C程序提供基础参考。]]></description><category></category></item><item><title><![CDATA[GDB 摘要]]></title><link>https://blog.youkuaiyun.com/modelmd/article/details/161778943</link><guid>https://blog.youkuaiyun.com/modelmd/article/details/161778943</guid><author>modelmd</author><pubDate>Sun, 07 Jun 2026 23:29:38 +0800</pubDate><description><![CDATA[GDB调试工具摘要 GDB是一款功能强大的程序调试工具，主要用于C/C++等语言的程序调试。核心功能包括： 控制程序执行（启动/暂停/单步） 设置断点条件 检查程序状态（变量/调用栈） 动态修改变量值 调试基本流程： 编译时添加-g参数生成调试信息 启动GDB并设置断点 运行程序并在断点处暂停 检查变量状态 单步跟踪或继续执行 必要时修改变量验证问题 调试案例演示了完整调试过程： 编写含逻辑错误的阶乘计算程序 通过单步执行发现错误调用factorial(num-1) 使用print检查变量值 通过backt]]></description><category></category></item><item><title><![CDATA[Linux man 命令详解：从入门到精通]]></title><link>https://blog.youkuaiyun.com/modelmd/article/details/161547995</link><guid>https://blog.youkuaiyun.com/modelmd/article/details/161547995</guid><author>modelmd</author><pubDate>Sat, 30 May 2026 22:06:39 +0800</pubDate><description><![CDATA[本文介绍了Linux系统中man命令的详细使用指南。主要内容包括： 基本用法：通过man [命令名]查看命令手册，使用less分页器浏览，按q键退出。 手册章节：Linux手册分为多个章节，可用man [章节号] [名称]查看特定内容，如man 1 printf和man 3 printf的区别。-a选项可查看所有匹配章节。 手册结构：以ls命令为例展示了标准手册页格式，包含NAME（名称）、SYNOPSIS（语法）、DESCRIPTION（详细说明）等部分，其中DESCRIPTION部分详细列出了各种选项参]]></description><category></category></item><item><title><![CDATA[翻译 GDB 官方文档]]></title><link>https://blog.youkuaiyun.com/modelmd/article/details/161370494</link><guid>https://blog.youkuaiyun.com/modelmd/article/details/161370494</guid><author>modelmd</author><pubDate>Sun, 24 May 2026 22:46:36 +0800</pubDate><description><![CDATA[gdb-translate是一个自动化翻译GNU调试器(GDB)官方文档的开源项目。该项目通过调用大模型API将866个英文HTML文档批量翻译为中文，保留原有结构和超链接。项目采用Go语言开发，包含输入/输出文件夹、系统提示和测试模块。用户可参与代码贡献或文档校对，通过Fork仓库、修改并提交PR来完善翻译质量。编译GDB源码生成原始文档后，运行程序即可进行翻译。项目旨在降低GDB学习门槛，推动中文开发者社区共建高质量本地化文档。]]></description><category></category></item><item><title><![CDATA[虚拟机与容器的区别：从架构到应用场景的深度解析]]></title><link>https://blog.youkuaiyun.com/modelmd/article/details/161343614</link><guid>https://blog.youkuaiyun.com/modelmd/article/details/161343614</guid><author>modelmd</author><pubDate>Sat, 23 May 2026 16:46:48 +0800</pubDate><description><![CDATA[虚拟机与容器是两种主流的虚拟化技术，在架构和性能上存在显著差异。虚拟机通过Hypervisor模拟完整计算机，提供硬件级虚拟化，具有强隔离性但资源开销大、启动慢（分钟级），适合传统应用和安全敏感场景。容器采用操作系统级虚拟化，共享宿主机内核，具有轻量（MB级）、快速启动（秒级）和高资源利用率的特点，是微服务和云原生应用的理想选择。关键区别在于：虚拟机隔离性强但性能损耗高，容器轻量高效但共享内核可能带来安全隐患。技术选型需根据应用场景的隔离需求、性能要求和部署密度综合考量。]]></description><category></category></item><item><title><![CDATA[Linux chroot命令]]></title><link>https://blog.youkuaiyun.com/modelmd/article/details/161145307</link><guid>https://blog.youkuaiyun.com/modelmd/article/details/161145307</guid><author>modelmd</author><pubDate>Sat, 16 May 2026 17:38:54 +0800</pubDate><description><![CDATA[摘要： chroot是Linux系统中用于改变进程根目录的命令，实现文件系统隔离。主要用途包括：1) 系统修复（通过Live CD进入损坏系统修复引导或密码）；2) 软件构建（创建纯净编译环境避免污染主机）；3) 安全测试（作为基础沙盒隔离潜在风险程序）。使用时需注意：需root权限、需手动复制依赖库和命令到新根目录，且单独使用安全性有限（可能被绕过）。典型操作示例：搭建隔离环境运行bash，需复制二进制文件及其依赖库。实际应用场景涵盖软件打包、漏洞研究及旧版软件兼容性支持。]]></description><category></category></item><item><title><![CDATA[vim入门使用手册]]></title><link>https://blog.youkuaiyun.com/modelmd/article/details/161091238</link><guid>https://blog.youkuaiyun.com/modelmd/article/details/161091238</guid><author>modelmd</author><pubDate>Thu, 14 May 2026 22:36:31 +0800</pubDate><description><![CDATA[Vim入门使用手册摘要： Vim是一款模态编辑器，核心模式包括： 正常模式（默认）：执行命令和导航（h/j/k/l移动，dd删除行） 插入模式（i/a进入）：直接输入文本 可视化模式（v/V/Ctrl+v）：选择文本块进行操作 重要功能： 交换文件机制（.swp）提供崩溃恢复保护 高效移动命令（w/b跳单词，{/}跳段落） 组合操作（如d2w删除两个单词） 缓冲区管理文件编辑 学习建议： 通过vimtutor zh启动交互教程 掌握模式切换（Esc返回正常模式） 保持"编辑-移动"的高效工作流 合理配置交换]]></description><category></category></item><item><title><![CDATA[C 语言使用 gdb 调试]]></title><link>https://blog.youkuaiyun.com/modelmd/article/details/160935455</link><guid>https://blog.youkuaiyun.com/modelmd/article/details/160935455</guid><author>modelmd</author><pubDate>Sat, 09 May 2026 23:42:09 +0800</pubDate><description><![CDATA[使用GDB调试C语言程序的过程。示例程序定义了一个字符数组s，赋值后通过printf输出，但实际输出与预期不符。通过GDB调试发现：

printf被编译器优化为puts函数
由于字符串中间包含'\0'终止符，puts只输出了第一个字符
使用GDB的x/20bc命令查看内存，确认数组实际包含两个's'字符

文档还详细介绍了GDB的常用命令：

断点设置(b/break)
单步执行(n/next,s/step)
变量查看(p/print)
内存检查(x命令)
调用栈跟踪(bt/backtrace)
]]></description><category></category></item><item><title><![CDATA[研究C语言的hello world输出]]></title><link>https://blog.youkuaiyun.com/modelmd/article/details/160637658</link><guid>https://blog.youkuaiyun.com/modelmd/article/details/160637658</guid><author>modelmd</author><pubDate>Wed, 29 Apr 2026 23:43:51 +0800</pubDate><description><![CDATA[研究C语言的hello world输出]]></description><category></category></item><item><title><![CDATA[dify-sandbox 基于官方源码构建镜像]]></title><link>https://blog.youkuaiyun.com/modelmd/article/details/160505839</link><guid>https://blog.youkuaiyun.com/modelmd/article/details/160505839</guid><author>modelmd</author><pubDate>Sat, 25 Apr 2026 18:11:33 +0800</pubDate><description><![CDATA[在国内使用 dify-sandbox 官方代码 基础镜像拉不下来，不方便本地开发部署。这篇文章介绍完全使用国内的镜像源构建]]></description><category></category></item><item><title><![CDATA[dify-sandbox 执行代码报错 “operation not permitted“]]></title><link>https://blog.youkuaiyun.com/modelmd/article/details/160346298</link><guid>https://blog.youkuaiyun.com/modelmd/article/details/160346298</guid><author>modelmd</author><pubDate>Mon, 20 Apr 2026 23:49:18 +0800</pubDate><description><![CDATA[摘要：调用dify-sandbox的/v1/sandbox/run接口执行Python代码时出现&quot;operation not permitted&quot;错误。解决方法是在config.yaml配置文件中添加系统调用白名单，通过生成0-500的系统调用编号列表（使用seq和paste命令），并将完整的编号列表配置到allowed_syscalls参数中。同时该配置文件还包含其他重要参数如端口设置、路径配置、网络权限等。这种配置方式允许沙箱环境执行必要的系统调用，从而解决权限问题。]]></description><category></category></item><item><title><![CDATA[dify-sandbox 使用python 虚拟环境本地开发]]></title><link>https://blog.youkuaiyun.com/modelmd/article/details/160227784</link><guid>https://blog.youkuaiyun.com/modelmd/article/details/160227784</guid><author>modelmd</author><pubDate>Thu, 16 Apr 2026 23:09:12 +0800</pubDate><description><![CDATA[dify-sandbox 使用python虚拟环境本地开发]]></description><category></category></item></channel></rss>