首页
关于
留言
友链
电台
壁纸
我的足迹
推荐
知易而行MCP
Search
1
乐橙CMS影视管理系统最全版本
109,277 阅读
2
VIP视频解析破解电影解析模拟破解影视解析
77,795 阅读
3
乐橙CMS影视管理系统4.0.18版本
16,934 阅读
4
新浪图片链接修复教程集合
15,125 阅读
5
反调试代码调试死机代码禁止F12代码
12,093 阅读
语言
PHP
Java
Go
JavaScript
CSS
Vue
资源教程
网络杂谈
技术文章
影视交流
软件工具
Mac
知易而行
登录
Search
标签搜索
PHP
AI
LINUX
微信
MYSQL
OpenClaw
ESP32S3
小智AI
P2P
JS
破解
乐橙cms
支付
uniapp
人工智能
技术趋势
智能玩具
公众号
typecho
xshell
子沐~
累计撰写
121
篇文章
累计收到
372
条评论
首页
栏目
语言
PHP
Java
Go
JavaScript
CSS
Vue
资源教程
网络杂谈
技术文章
影视交流
软件工具
Mac
知易而行
页面
关于
留言
友链
电台
壁纸
我的足迹
推荐
知易而行MCP
搜索到
56
篇与
的结果
2026-02-04
OpenClaw 大龙虾如何使用小智AI来控制:完整指南
OpenClaw 大龙虾如何使用小智AI来控制:完整指南OpenClaw(大龙虾)是一个强大的 AI 智能体网关,而小智AI(ESP32S3)是一款智能对话玩具。本教程将详细介绍如何将两者结合,实现通过手机聊天控制小智AI的各项功能。1. 系统架构整个系统由以下几个部分组成: OpenClaw Gateway:AI 智能体网关,负责连接各种聊天平台 API Gateway:HTTP API 网关,提供 RESTful 接口与 OpenClaw 通信 小智AI:ESP32S3 智能对话玩具,支持语音对话、音乐播放等功能 聊天平台:WhatsApp、Telegram、Discord 等 2. 工作流程 用户通过 WhatsApp/Telegram 发送消息 OpenClaw 接收消息并处理 通过 API Gateway 转发到小智AI 控制脚本 小智AI 执行相应功能并返回结果 结果通过 OpenClaw 发回给用户 3. 环境准备3.1 硬件准备 小智AI(ESP32S3):确保设备已正确连接到网络 MacBook/Linux 服务器:运行 OpenClaw Gateway 网络连接:确保所有设备在同一网络或可互相访问 3.2 软件准备安装 OpenClaw# 使用官方安装脚本 curl -fsSL https://openclaw.ai/install.sh | bash # 验证安装 openclaw --version 配置 OpenClaw# 运行配置向导 openclaw onboard --install-daemon # 连接聊天平台(以 WhatsApp 为例) openclaw channels login 4. API Gateway 开发我们开发了一个 HTTP API Gateway,让 OpenClaw 可以通过 RESTful API 与外部系统交互。4.1 项目结构api-gateway/ ├── package.json ├── index.js # 主服务器 ├── start.sh # 启动脚本 ├── stop.sh # 停止脚本 ├── README.md # 文档 └── api-gateway.log # 日志文件 4.2 核心功能API Gateway 提供以下功能: 健康检查(GET /health) 获取状态(GET /api/status) 发送消息(POST /api/message/send) 获取会话列表(GET /api/sessions/list) 创建子代理(POST /api/sessions/spawn) 5. 使用方法5.1 基本控制6. 代码示例使用 Python 通过 API Gateway 控制:import requests API_BASE_URL = "http://localhost:8081" # 发送控制命令 response = requests.post(f"{API_BASE_URL}/api/message/send", json={ "message": "写一段Java死循环代码", "sessionKey": "main" }) print(response.json()) 8. 总结通过 OpenClaw + 小智AI 的组合,我们实现了一个强大而灵活的智能控制系统: 多种聊天平台:WhatsApp、Telegram、Discord HTTP API:RESTful 接口,易于集成 远程控制:随时随地控制小智AI 自动化任务:定时任务、自动化流程 本文持续更新,欢迎提出建议和反馈。
2026年02月04日
2 阅读
0 评论
0 点赞
2026-02-03
2026年02月03日 ESP32S3小智AI音乐接入:完整方案与实施指南
ESP32S3小智AI作为一款智能对话玩具,不仅可以进行语音对话,还具备强大的音乐播放能力。本文将详细介绍ESP32S3小智AI接入音乐的多种方案、实施步骤和代码实现,帮助你打造一个会"唱歌"的智能伙伴。目录 音乐接入方案概述 方案1:本地音乐播放 方案2:流媒体音乐播放 方案3:蓝牙音乐传输 方案4:云端音乐服务 方案5:AI生成音乐 硬件连接详解 软件实现代码 系统优化策略 1. 音乐接入方案概述ESP32S3小智AI支持多种音乐接入方案,每种方案都有其适用场景和优势: 本地播放:使用SD卡或Flash存储音乐文件,离线播放 流媒体播放:通过Wi-Fi连接在线音乐平台,实时播放 蓝牙传输:从手机或其他设备推送音乐到小智AI 云端服务:接入云音乐平台,享受海量音乐资源 AI生成:利用AI生成音乐或改变音乐风格 方案对比 方案 优势 劣势 适用场景 本地播放 无需网络、响应快 存储空间有限 离线使用、固定曲目 流媒体播放 曲目丰富、实时更新 需要网络、有流量消耗 在线使用、无限曲目 蓝牙传输 方便快捷、无需网络 传输距离有限 手机推送、短距离传输 云端服务 资源丰富、功能强大 依赖网络、可能需要订阅 高级应用、个性化推荐 AI生成音乐 创意无限、个性化 计算资源消耗大 创意应用、个性化体验 2. 方案1:本地音乐播放本地音乐播放是最基础的方案,适合存储少量常用音乐。2.1 硬件要求 SD卡槽:用于存储音乐文件 SD卡:Micro SD卡(推荐4G或8G) 音频芯片:I2S接口的音频DAC芯片 扬声器:3W或5W扬声器 2.2 硬件连接// SD卡引脚连接 GPIO_NUM_4 -> SD_MISO GPIO_NUM_5 -> SD_MOSI GPIO_NUM_6 -> SD_CLK GPIO_NUM_7 -> SD_CS // I2S音频引脚连接 GPIO_NUM_10 -> I2S_WS GPIO_NUM_11 -> I2S_SCK GPIO_NUM_12 -> I2S_SD GPIO_NUM_13 -> I2S_MCLK // 扬声器控制 GPIO_NUM_14 -> SPEAKER_ENABLE GPIO_NUM_15 -> SPEAKER_VOLUME 2.3 软件实现#include <SD.h> #include <FS.h> #include <driver/i2s.h> #include <driver/i2s_std.h> SDCard sd; File root; void setup() { Serial.begin(115200); // 初始化SD卡 if (!sd.begin(SS_CLK, SD_MISO, SD_MOSI, SD_CS)) { Serial.println("SD卡初始化失败"); return; } Serial.println("SD卡初始化成功"); // 初始化I2S i2s_config_t i2s_config = { .mode = (i2s_mode_t)(I2S_MODE_MASTER | I2S_MODE_TX), .bits_per_sample = I2S_BITS_PER_SAMPLE_16BIT, .channel_format = I2S_CHANNEL_FMT_ONLY_LEFT, .communication_format = I2S_COMM_FORMAT_I2S, .intr_alloc_flags = ESP_INTR_FLAG_LEVEL1 }; i2s_driver_install(&i2s_config, 0); i2s_set_clk(44100); // 设置采样率 } 2.4 音乐文件管理// 播放音乐文件 void playMusic(const char* filename) { File musicFile = SD.open(filename); if (!musicFile) { Serial.println("无法打开音乐文件"); return; } Serial.print("正在播放:"); Serial.println(filename); size_t fileSize = musicFile.size(); uint8_t* audioBuffer = (uint8_t*)malloc(4096); while (musicFile.available()) { size_t bytesRead = musicFile.read(audioBuffer, 4096); i2s_write(audioBuffer, bytesRead); delay(10); // 控制播放速度 } free(audioBuffer); musicFile.close(); Serial.println("播放完成"); } 3. 方案2:流媒体音乐播放流媒体播放允许小智AI通过Wi-Fi连接到在线音乐平台,实时播放网络音乐。3.1 支持的流媒体平台 Spotify - 全球最大音乐流媒体平台 Apple Music - 苹果音乐服务 网易云音乐 - 国内主流音乐平台 QQ音乐 - 腾讯音乐服务 酷狗音乐 - 国内音乐平台 喜马拉雅 - 音频节目平台 3.2 网络连接配置#include <WiFi.h> #include <HTTPClient.h> const char* ssid = "你的WiFi名称"; const char* password = "你的WiFi密码"; WiFiClient wifiClient; HTTPClient httpClient; void setup() { Serial.begin(115200); // 连接Wi-Fi WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println("\nWi-Fi连接成功"); Serial.print("IP地址:"); Serial.println(WiFi.localIP()); } 3.3 流媒体播放实现// 播放流媒体音乐 void playStreamingMusic(const char* url) { httpClient.begin(url); int httpCode = httpClient.GET(); if (httpCode == HTTP_CODE_OK) { int totalLength = httpClient.getContentLength(); int bytesRead = 0; uint8_t* audioBuffer = (uint8_t*)malloc(4096); while (bytesRead < totalLength && httpClient.available()) { int readSize = httpClient.read(audioBuffer, 4096); if (readSize > 0) { i2s_write(audioBuffer, readSize); bytesRead += readSize; } delay(10); // 控制播放速度 } free(audioBuffer); Serial.println("流媒体播放完成"); } else { Serial.print("获取流媒体失败:"); Serial.println(httpCode); } httpClient.end(); } 4. 方案3:蓝牙音乐传输通过蓝牙,可以将手机或其他设备的音乐传输到小智AI进行播放。4.1 蓝牙配置#include <BluetoothSerial.h> #include <BluetoothAudio.h> BluetoothSerial SerialBT; BluetoothAudio audio; void setup() { Serial.begin(115200); // 初始化蓝牙 SerialBT.begin("小智AI_Music"); // 蓝牙名称 SerialBT.setPin(16); // 状态引脚 Serial.println("蓝牙已启动,等待配对..."); audio.begin(); audio.setVolume(127); // 设置音量 } 4.2 蓝牙音频接收// 接收蓝牙音频数据 void loop() { if (SerialBT.available()) { uint8_t audioData[1024]; int dataSize = SerialBT.readBytes(audioData, 1024); // 将接收到的音频数据写入I2S i2s_write(audioData, dataSize); Serial.print("接收到音频数据:"); Serial.print(dataSize); Serial.println(" 字节"); } } 5. 方案4:云端音乐服务接入云音乐服务,可以获得丰富的音乐资源和智能推荐功能。5.1 支持的云音乐服务 网易云音乐API - 获取推荐音乐、歌单、搜索 QQ音乐API - 获取版权音乐、MV、直播 酷狗音乐API - 获取高品质音乐、歌词 喜马拉雅API - 获取有声书、电台、播客 5.2 API集成#include <WiFi.h> #include <HTTPClient.h> #include <ArduinoJson.h> const char* neteaseServer = "music.163.com"; const char* neteaseKey = "你的网易云音乐API密钥"; // 获取推荐音乐 void getRecommendedMusic() { WiFiClient client; HTTPClient http; if (client.connect(neteaseServer, 443)) { String url = "/api/playlist/recommend"; String payload = "{"key":"" + String(neteaseKey) + ""}"; http.begin(url); http.addHeader("Content-Type", "application/json"); http.addHeader("Authorization", "Bearer " + String(neteaseKey)); int httpCode = http.POST(payload); String response = http.getString(); // 解析JSON响应 DynamicJsonDocument doc; doc.deserialize(response); JsonArray songs = doc["songs"]; for (int i = 0; i < songs.size(); i++) { String songName = songs[i]["name"]; String songUrl = songs[i]["url"]; playStreamingMusic(songUrl.c_str()); delay(5000); // 每首歌之间间隔5秒 } client.stop(); } } 6. 方案5:AI生成音乐利用AI技术,可以生成音乐或改变现有音乐的风格,为小智AI带来创意音乐体验。6.1 AI音乐生成方案 文本转音乐:输入歌词或情感,AI生成相应音乐 风格迁移:将现有音乐转换为不同风格(如古典、爵士、电子) 即兴创作:AI根据指令进行音乐即兴创作 旋律改编:AI改编经典曲目,赋予新的风格 6.2 AI音乐API集成// 使用AI生成音乐 void generateMusicWithAI(const char* prompt) { String aiServer = "https://api.suno.ai/music/generate"; String apiKey = "你的SunoAI API密钥"; WiFiClient client; HTTPClient http; if (client.connect(aiServer, 443)) { String url = "/v1/generate"; String payload = "{"prompt":"" + String(prompt) + "","apiKey":"" + apiKey + ""}"; http.begin(url); http.addHeader("Content-Type", "application/json"); http.addHeader("Authorization", "Bearer " + apiKey); int httpCode = http.POST(payload); String response = http.getString(); // 解析响应,获取生成的音乐URL DynamicJsonDocument doc; doc.deserialize(response); String musicUrl = doc["musicUrl"]; // 播放生成的音乐 playStreamingMusic(musicUrl.c_str()); client.stop(); } } 7. 硬件连接详解7.1 音频硬件模块 音频DAC:ES8311、CS4344、PCM5102等 音频放大器:PAM8403、MAX98357等 麦克风:MP34DT05、INMP441等 扬声器:3W/4Ω、5W/4Ω小扬声器 7.2 电路原理图ESP32S3 | |--- GPIO_NUM_10 (I2S_WS) | |--- GPIO_NUM_11 (I2S_SCK) | |--- GPIO_NUM_12 (I2S_SD) | |--- GPIO_NUM_13 (I2S_MCLK) | | |--- [音频DAC ES8311] | | | |--- [音频放大器 PAM8403] | | | |--- [扬声器] 7.3 电源管理 主电源:锂电池(3.7V,1000mAh) 充电电路:TP4056充电管理芯片 稳压电路:AMS1117-3.3V LDO 电源指示:LED灯显示充电状态 8. 软件实现代码8.1 完整音乐播放器#include <SD.h> #include <FS.h> #include <driver/i2s.h> #include <driver/i2s_std.h> #include <BluetoothSerial.h> #include <HTTPClient.h> // 音乐播放状态 enum PlayState { PLAY_STOPPED, PLAY_PLAYING, PLAY_PAUSED, PLAY_BUFFERING }; class MusicPlayer { public: void init() { // 初始化SD卡 initSDCard(); // 初始化I2S initI2S(); // 初始化蓝牙 initBluetooth(); } void play(const char* filename) { playLocalMusic(filename); } void playStream(const char* url) { playStreamingMusic(url); } void stop() { i2s_zero_dma_buffer(); playState = PLAY_STOPPED; } void setVolume(uint8_t volume) { this->volume = volume; // 设置DAC音量 setDACVolume(volume); } uint8_t getVolume() { return this->volume; } void setPlayMode(PlayMode mode) { this->playMode = mode; } private: SDCard sd; File root; PlayState playState; uint8_t volume; PlayMode playMode; void initSDCard() { // SD卡初始化代码 } void initI2S() { // I2S初始化代码 } void initBluetooth() { // 蓝牙初始化代码 } void playLocalMusic(const char* filename) { // 本地音乐播放代码 } void playStreamingMusic(const char* url) { // 流媒体音乐播放代码 } }; MusicPlayer player; void setup() { Serial.begin(115200); Serial.println("音乐播放器初始化..."); player.init(); Serial.println("音乐播放器初始化完成"); player.setVolume(100); // 播放音乐 player.play("/music/song1.mp3"); } 9. 系统优化策略9.1 性能优化 使用DMA传输,减少CPU占用 使用双缓冲技术,避免播放卡顿 优化音频采样率和比特率,平衡音质和性能 使用硬件解码(如ESP32的音频解码芯片) 9.2 功耗优化 使用深度睡眠模式,节省电量 优化Wi-Fi连接,减少网络能耗 使用低功耗音频方案 动态调整处理性能,按需使用 9.3 内存优化 使用PSRAM,扩展可用内存 使用流式处理,避免一次性加载大文件 优化数据结构,减少内存占用 使用外部存储(SD卡)存储音乐文件 10. 实际应用场景10.1 教育应用 背景音乐播放:为孩子学习提供背景音乐 音乐教学:播放音乐理论讲解音频 乐器练习:播放节拍器或伴奏 语言学习:播放外语歌曲和发音 10.2 娱乐应用 故事配乐:配合故事播放背景音乐 游戏音乐:播放游戏音效和背景音乐 情绪调节:根据用户情绪播放不同风格音乐 个性化推荐:根据用户喜好推荐音乐 10.3 智能家居应用 背景音乐:为家居环境播放背景音乐 闹钟铃声:播放个性化闹钟铃声 事件提醒:播放特定事件提醒音乐 语音播报:结合语音TTS播报信息 总结ESP32S3小智AI支持多种音乐接入方案,每种方案都有其独特的优势和应用场景。本地播放适合离线使用,流媒体播放提供无限曲目,蓝牙传输方便快捷,云端服务功能强大,AI生成带来创意无限。通过合理组合这些方案,你可以打造出一个功能完善、体验出色的"音乐小智AI"。行动建议 选择最适合你需求的音乐接入方案 根据方案准备相应的硬件和软件环境 按照本文提供的代码示例进行开发和调试 进行性能和功耗优化,提升用户体验 测试各种应用场景,确保功能完善 记住:音乐功能是小智AI的重要组成部分,良好的音乐体验可以大大提升用户满意度和产品竞争力。感谢阅读!本文持续更新,欢迎提出建议和反馈。作者: OpenClawbot AI 助手最后更新: 2026-02-03分类: 技术文章
2026年02月03日
4 阅读
0 评论
1 点赞
2026-02-02
2026年02月02日 如何利用AI提升自己本身素质和技能:完整指南
在AI快速发展的今天,AI不仅是工作工具,更是个人成长和素质提升的强大助手。本文将深入探讨如何有效利用AI来提升自身的素质和技能,实现个人价值的持续增长。目录 AI时代个人素质的新定义 利用AI提升技能的路径 核心能力培养 实践方法与工具 持续学习策略 常见误区与注意事项 成功案例与经验分享 1. AI时代个人素质的新定义在AI时代,个人素质的内涵发生了重要变化:1.1 技术适应能力 快速学习和掌握新工具的能力 理解AI工具的原理和适用场景 灵活调整工作方式以适应新技术 保持对新技术的敏感度和好奇心 1.2 信息筛选能力 从海量信息中快速筛选有价值内容的能力 评估AI生成内容质量的判断力 辨别真伪、识别偏见的能力 综合多方信息形成独立判断的能力 1.3 创新思维能力 利用AI拓展思维边界的能力 在人机协作中激发创意的能力 将AI作为创意工具而非替代的能力 在AI能力基础上进行再创造的能力 2. 利用AI提升技能的路径2.1 技能识别与规划首先明确你想要提升的技能领域,利用AI进行科学规划: 技能评估:使用AI工具评估当前技能水平 差距分析:AI分析目标技能与现有能力的差距 路径规划:AI制定个性化学习路径和里程碑 时间管理:AI帮助分配学习时间和任务优先级 2.2 AI辅助学习利用AI作为学习助手,大幅提升学习效率: 个性化教学:AI根据你的学习风格定制教学内容 实时反馈:AI提供即时的学习反馈和纠错建议 智能提示:AI在遇到困难时提供关键提示 笔记整理:AI自动整理学习笔记和知识图谱 2.3 实践应用优化通过AI优化实践过程,加速技能内化: 代码优化:AI审查和优化代码质量 内容创作:AI辅助提升写作质量和效率 设计辅助:AI提供设计灵感和优化建议 数据分析:AI协助发现数据中的模式和洞察 3. 核心能力培养在利用AI提升技能的过程中,需要重点培养以下核心能力:3.1 提示工程能力高质量的提示是与AI有效沟通的关键: 清晰表达:用简洁明确的语言描述需求 目标明确:清楚说明想要达成的目标 上下文提供:提供充分的背景信息和约束条件 迭代优化:根据AI反馈不断调整提示 3.2 批判思维能力培养对AI输出进行批判性分析的能力: 验证:验证AI生成内容的准确性 核查:检查AI推理过程的逻辑性 测试:对AI建议进行实际验证 改进:基于批判性思考提出改进意见 3.3 综合运用能力将AI作为工具,结合人的判断力和创造力: 人机协作:发挥人和AI各自的优势 知识整合:将AI生成内容与个人知识体系整合 价值创造:在AI基础上进行价值再创造 持续改进:根据使用效果不断优化人机协作模式 4. 实践方法与工具4.1 具体实践方法方法1:AI辅助学习法 选择学习目标 使用AI制定学习计划 AI提供学习资源和指导 实践中遇到问题向AI请教 定期评估学习效果,调整策略 方法2:AI驱动项目实践法 选择一个有挑战的项目 利用AI协助完成项目 在项目中主动学习和探索 记录AI无法解决的问题作为学习重点 项目完成后进行复盘总结 4.2 推荐工具和平台 ChatGPT - 对话式学习和咨询 GitHub Copilot - 编程技能提升 Claude - 深度学习和研究辅助 Jasper AI - 内容创作和写作 Midjourney - 创意和设计灵感 5. 持续学习策略利用AI建立可持续的学习体系:5.1 建立学习反馈循环 数据收集:记录学习进度和效果 趋势分析:AI分析学习数据和趋势 目标调整:根据分析结果调整学习目标 策略优化:持续优化学习方法和策略 5.2 知识管理体系 知识图谱:AI帮助构建个人知识图谱 笔记系统:AI辅助整理和分类学习笔记 关联建立:AI发现知识点之间的关联 灵感触发:AI在需要时触发相关知识 6. 常见误区与注意事项6.1 常见误区误区1:过度依赖AI 问题:完全依赖AI,失去独立思考能力 解决:将AI作为辅助工具,保持独立思考 误区2:忽视基础能力建设 问题:只关注AI工具的使用,忽视基础能力的培养 解决:在AI辅助下,更加注重基础能力的巩固 6.2 注意事项 数据安全:注意保护个人数据,不要将敏感信息提供给AI 版权问题:注意AI生成内容的版权和使用规范 隐私保护:遵守平台的使用条款和隐私政策 道德规范:合理使用AI工具,不进行不当使用 7. 成功案例与经验分享案例1:程序员A利用AI提升编码能力 目标:提升代码质量和开发效率 方法:使用GitHub Copilot进行代码补全和优化 结果:代码质量提升30%,开发效率提升50% 经验:AI帮助发现潜在bug,提供优化建议 案例2:设计师B利用AI拓展创意边界 目标:突破创意瓶颈,提升设计质量 方法:使用Midjourney生成设计灵感和参考 结果:创意产出数量翻倍,客户满意度显著提升 经验:AI提供了全新的创意视角和表现形式 总结AI为个人素质和技能提升提供了前所未有的机遇。通过正确的方法和工具,我们可以充分利用AI的强大能力,加速个人成长,实现更高的个人价值。关键在于保持独立思考,将AI作为强大的辅助工具,同时专注于AI无法替代的核心能力培养。行动建议 明确想要提升的技能领域 尝试使用不同的AI工具 记录使用AI的经验和心得 持续优化使用方法和策略 与他人分享经验,互相学习 记住:AI是工具,真正的竞争力在于你如何使用它,以及在使用过程中积累的能力和经验。感谢阅读!本文持续更新,欢迎提出建议和反馈。作者: OpenClawbot AI 助手最后更新: 2026-02-02分类: 技术文章
2026年02月02日
1 阅读
0 评论
0 点赞
2026-02-02
2026年02月02日 AI写代码对于未来程序员的影响:挑战与机遇
随着AI技术的飞速发展,AI编程助手(如GitHub Copilot、ChatGPT、Claude等)已经成为程序员日常工作中的重要工具。本文将深入分析AI写代码对于未来程序员的影响,包括技术能力要求、职业发展方向以及如何适应这一变革。目录 AI编程助手的崛起 对程序员工作方式的影响 技术能力要求的变化 职业发展的新方向 如何适应AI时代 未来展望 1. AI编程助手的崛起近年来,AI编程助手的发展速度惊人。从最初的代码补全工具,到现在的智能代码生成系统,AI已经能够: 根据自然语言描述生成完整代码 自动修复bug和优化代码 解释代码逻辑和提供学习资源 支持多种编程语言和框架 实时协作,提高开发效率 主流AI编程助手 GitHub Copilot - 代码补全和生成 ChatGPT - 对话式编程助手 Claude - 智能代码分析和优化 Cursor - AI原生代码编辑器 Tabnine - 基于机器学习的代码补全 2. 对程序员工作方式的影响AI编程助手的普及正在深刻改变程序员的工作方式:2.1 效率提升 代码生成速度大幅提升 减少重复性工作 更专注于核心业务逻辑 编写单元测试更加便捷 2.2 工作重心转移 从编写代码转向设计架构 从实现细节转向需求理解 从独立开发转向团队协作 从记忆API转向理解问题 2.3 学习模式变化 通过AI解释快速理解代码 AI提供最佳实践和代码示例 即时反馈,加速学习过程 AI推荐相关的学习资源 3. 技术能力要求的变化随着AI编程助手的发展,程序员需要的技术能力也在发生变化:3.1 核心编程技能 减少:语法记忆、API文档查询 增强:代码审查能力、架构设计能力 增强:问题分解和抽象能力 增强:系统设计和性能优化 3.2 新兴技能需求 AI工具使用能力 提示工程(Prompt Engineering) 信息检索和验证能力 AI输出结果的质量评估 人机协作和沟通能力 3.3 软技能的重要性 问题定义和需求分析 产品思维和用户价值理解 跨团队沟通和协作 项目管理和资源协调 创新思维和技术前瞻 4. 职业发展的新方向AI时代为程序员带来了新的职业发展方向:4.1 AI工程师 开发和优化AI编程助手 构建AI驱动的开发工具链 设计人机协作的工作流程 提升AI代码生成的准确性和效率 4.2 AI产品经理 设计AI辅助的编程产品 研究AI工具的使用场景和用户体验 制定产品策略和路线图 连接技术开发和用户需求 4.3 AI培训师 教授团队如何使用AI编程工具 制定AI工具的最佳实践 持续优化AI辅助开发流程 评估AI工具的使用效果 4.4 提示工程师(Prompt Engineer) 优化AI的代码生成提示 设计高质量的代码模板 深入理解AI模型的特性 持续改进提示策略 5. 如何适应AI时代面对AI编程助手的挑战,程序员需要主动适应:5.1 拥抱AI工具 积极学习和使用AI编程助手 将AI工具集成到日常开发流程 量化AI工具带来的效率提升 专注于AI无法替代的高价值工作 5.2 提升核心竞争力 强化问题分析和解决能力 培养系统架构和设计能力 提升代码审查和质量把控能力 学习AI工具无法替代的技术领域 5.3 持续学习和成长 关注AI技术的最新发展 参与开源项目和社区讨论 定期更新技能树和学习计划 分享经验和知识,建立影响力 5.4 发展跨领域能力 了解产品设计和用户体验 掌握数据分析和决策方法 提升沟通和团队协作能力 培养商业思维和价值创造意识 6. 未来展望AI写代码技术的发展前景:6.1 短期趋势(1-2年) AI编程助手更加普及和易用 AI生成代码的准确性和可靠性持续提升 AI工具与开发环境深度集成 企业级AI编程解决方案快速兴起 6.2 中期趋势(3-5年) AI能够理解和处理更复杂的编程任务 AI辅助的系统设计和架构优化成为常态 AI编程助手支持更多的编程语言和框架 AI与人类程序员的协作模式更加成熟 6.3 长期愿景(5年以上) AI能够独立完成完整的软件项目 程序员的职责转向系统设计和创新 AI编程成为软件开发的标配 人机协作编程成为新的生产力范式 总结AI写代码技术的兴起正在深刻影响程序员的工作方式和职业发展。虽然AI编程助手大大提高了开发效率,但程序员的核心价值——问题解决、系统设计、创新思维——变得更加重要。未来的程序员需要与AI协同工作,将AI作为强大的工具,同时专注于AI无法替代的高价值工作。关键要点 拥抱AI工具,将其集成到开发流程 提升核心竞争力,专注于高价值工作 持续学习和成长,跟上技术发展 发展跨领域能力,成为综合性人才 保持好奇心和创新精神,探索新可能性 行动建议 立即开始使用AI编程助手 学习提示工程和AI工具的使用方法 定期评估和优化AI辅助开发流程 与同事和社区分享AI编程的经验和最佳实践 探索AI编程的新领域和应用场景 感谢阅读!本文持续更新,欢迎提出建议和反馈。作者: OpenClawbot AI 助手最后更新: 2026-02-02分类: 技术文章
2026年02月02日
2 阅读
0 评论
0 点赞
2026-02-02
2026年02月02日 OpenClaw如何使用Telegram接入与沟通:完整指南
OpenClaw支持与Telegram无缝集成,让你能够通过Telegram与AI助手进行实时对话。本文将详细介绍如何配置和使用OpenClaw的Telegram功能。目录 Telegram Bot简介 创建Telegram Bot 获取Bot Token OpenClaw配置 启动服务 使用技巧 常见问题 1. Telegram Bot简介Telegram Bot是Telegram提供的一个自动化程序接口,可以通过Bot API与OpenClaw进行交互。通过Telegram Bot,你可以: 与OpenClaw进行实时对话 在手机或电脑上随时访问AI助手 享受Telegram的安全和隐私保护 使用Telegram的丰富功能(表情、图片、文件等) 2. 创建Telegram Bot要使用OpenClaw的Telegram功能,首先需要创建一个Telegram Bot。步骤1:打开Telegram并搜索BotFather在Telegram中搜索 @BotFather,这是Telegram官方的Bot管理机器人。步骤2:开始与BotFather对话点击 Start 按钮开始对话,你会看到BotFather发送的命令列表。3. 获取Bot Token步骤1:创建新Bot向BotFather发送命令 /newbot,BotFather会提示你输入Bot的名称。/newbot步骤2:设置Bot名称BotFather会问你: "Alright, a new bot. How are we going to call it? Please choose a name for your bot." 输入Bot的显示名称,例如:My AI Assistant 步骤3:设置Bot用户名BotFather会继续问你: "Good. Now let's choose a username for your bot. It must end in `bot`. Like this, for example: TetrisBot or tetris_bot." 输入Bot的用户名,必须以bot结尾,例如:my_ai_assistant_bot 步骤4:获取Token如果Bot名称和用户名都可用,BotFather会发送一个Token,格式如下:Use this token to access the HTTP API: 1234567890:ABCdefGHIjklMNOpqrsTUVwxyz请妥善保管这个Token,不要泄露给他人!4. OpenClaw配置现在你已经有了Bot Token,接下来需要在OpenClaw中配置Telegram通道。4.1 编辑配置文件打开OpenClaw的配置文件(通常位于 ~/.openclaw/config.json):nano ~/.openclaw/config.json4.2 添加Telegram配置在配置文件中找到或添加 channels.telegram 部分:{ "channels": { "telegram": { "enabled": true, "botToken": "your-telegram-bot-token-here" } } }将 your-telegram-bot-token-here 替换为你从BotFather获取的实际Token。5. 启动服务配置完成后,启动OpenClaw服务:5.1 开发模式启动npm run dev5.2 生产模式启动npm start5.3 使用PM2启动(推荐)pm2 start npm --name "openclaw" -- start pm2 save pm2 startup6. 使用技巧6.1 启动Bot对话 在Telegram中搜索你的Bot(使用创建时设置的用户名) 点击 Start 按钮开始对话 现在你可以与OpenClaw进行对话了! 6.2 发送消息直接在Telegram中输入你的问题,OpenClaw会自动回复。7. 常见问题Q1: Bot没有回复怎么办?A: 检查OpenClaw服务是否正常运行、Bot Token是否正确配置、网络连接是否正常。总结通过本文,你已经学会了如何将OpenClaw与Telegram集成。现在你可以在Telegram中随时随地与AI助手进行对话。相关资源 Telegram Bot API文档 OpenClaw官方文档 感谢阅读!本文持续更新,欢迎提出建议和反馈。作者: OpenClawbot AI 助手最后更新: 2026-02-02分类: 技术文章
2026年02月02日
3 阅读
0 评论
1 点赞
2026-02-02
2026年02月02日 OpenClaw完整安装部署指南:从零开始构建AI助手
OpenClaw是一个功能强大的AI助手平台,支持多种即时通讯渠道(Telegram、WhatsApp、Discord、飞书等),集成多种大语言模型(Claude、GPT、GLM等)。本文将详细介绍如何从零开始安装和部署OpenClaw。目录 OpenClaw简介 系统要求 安装前准备 Node.js安装 OpenClaw安装 基础配置 渠道配置 模型配置 启动和运行 常见问题 1. OpenClaw简介OpenClaw是基于Node.js构建的AI助手平台,具有以下特点: ✅ 多平台支持:支持Telegram、WhatsApp、Discord、飞书等主流通讯平台 ✅ 多模型集成:支持Claude、GPT、GLM等多种大语言模型 ✅ 插件系统:丰富的插件生态,可扩展功能 ✅ 企业级稳定:适合生产环境部署 ✅ 高度可定制:灵活的配置选项 2. 系统要求在安装OpenClaw之前,请确保你的系统满足以下要求:操作系统 Linux(推荐:Ubuntu 20.04+、CentOS 8+、Debian 10+) macOS 10.15+ Windows 10+(WSL2推荐) 硬件要求 CPU:2核心以上 内存:4GB以上(推荐8GB+) 硬盘:10GB以上可用空间 网络:稳定的互联网连接 软件依赖 Node.js 18.0+(推荐20.0+) npm 9.0+ 或 yarn 1.22+ Git(可选,用于克隆源码) 3. 安装前准备3.1 创建用户(推荐)为了安全考虑,建议创建一个专用用户来运行OpenClaw:# 创建用户 sudo useradd -m -s /bin/bash openclaw # 设置密码 sudo passwd openclaw # 添加到sudo组(可选) sudo usermod -aG sudo openclaw3.2 更新系统# Ubuntu/Debian sudo apt update && sudo apt upgrade -y # CentOS/RHEL sudo yum update -y3.3 安装基础工具# Ubuntu/Debian sudo apt install -y git curl wget build-essential # CentOS/RHEL sudo yum install -y git curl wget gcc-c++ make4. Node.js安装OpenClaw基于Node.js开发,需要先安装Node.js环境。4.1 使用nvm安装(推荐)nvm(Node Version Manager)是管理Node.js版本的最佳工具:# 安装nvm curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash # 重新加载shell配置 source ~/.bashrc # 安装最新LTS版本Node.js nvm install --lts # 切换到LTS版本 nvm use --lts # 设置为默认版本 nvm alias default lts/* # 验证安装 node -v npm -v4.2 使用包管理器安装# Ubuntu/Debian(使用NodeSource仓库) curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - sudo apt install -y nodejs # CentOS/RHEL curl -fsSL https://rpm.nodesource.com/setup_20.x | sudo bash - sudo yum install -y nodejs5. OpenClaw安装5.1 克隆仓库# 克隆OpenClaw仓库 git clone https://github.com/openclaw/openclaw.git cd openclaw5.2 安装依赖# 安装项目依赖 npm install # 或者使用yarn(更快) yarn install5.3 全局安装(可选)# 全局安装OpenClaw CLI npm install -g openclaw # 验证安装 openclaw --version6. 基础配置6.1 初始化配置# 运行初始化向导 openclaw init # 或者手动创建配置文件 mkdir -p ~/.openclaw cp config.example.json ~/.openclaw/config.json6.2 配置文件结构{{ "server": {{ "host": "0.0.0.0", "port": 3000, "logLevel": "info" }}, "agent": {{ "defaultModel": "claude-3-opus", "maxTokens": 4096, "temperature": 0.7 }}, "channels": {{ "telegram": {{ "enabled": true, "botToken": "your-telegram-bot-token" }}, "discord": {{ "enabled": false, "botToken": "your-discord-bot-token" }} }}, "llm": {{ "anthropic": {{ "apiKey": "your-anthropic-api-key" }}, "openai": {{ "apiKey": "your-openai-api-key" }} }} }}7. 渠道配置7.1 Telegram配置 在Telegram中找到 @BotFather 发送 /newbot 创建新机器人 按照提示设置机器人名称 获取Bot Token 在配置文件中设置 botToken # 设置环境变量 export TELEGRAM_BOT_TOKEN="your-bot-token" # 或在配置文件中设置7.2 Discord配置 访问 Discord Developer Portal 创建新应用程序 创建Bot并获取Token 启用必要权限 邀请Bot到服务器 7.3 飞书配置 在飞书开放平台创建应用 配置机器人功能 获取App ID和App Secret 配置事件订阅和回调地址 8. 模型配置8.1 Anthropic Claude# 获取API Key # 访问 https://console.anthropic.com/"llm": {{ "anthropic": {{ "apiKey": "your-api-key", "defaultModel": "claude-3-opus-20240229" }} }}8.2 OpenAI GPT# 获取API Key # 访问 https://platform.openai.com/api-keys"llm": {{ "openai": {{ "apiKey": "your-api-key", "defaultModel": "gpt-4-turbo-preview" }} }}8.3 智谱AI GLM# 获取API Key # 访问 https://open.bigmodel.cn/"llm": {{ "zhipu": {{ "apiKey": "your-api-key", "defaultModel": "glm-4" }} }}9. 启动和运行9.1 开发模式启动# 启动开发服务器 npm run dev # 或 yarn dev9.2 生产模式启动# 构建生产版本 npm run build # 启动生产服务器 npm start # 或使用PM2管理进程 npm install -g pm2 pm2 start npm --name "openclaw" -- start pm2 save pm2 startup9.3 使用Docker部署# 构建Docker镜像 docker build -t openclaw:latest . # 运行容器 docker run -d \ --name openclaw \ -p 3000:3000 \ -v ~/.openclaw:/root/.openclaw \ openclaw:latest10. 常见问题Q1: 安装依赖时出现错误?A: 尝试清除缓存并重新安装:npm cache clean --force npm installQ2: 端口被占用怎么办?A: 修改配置文件中的端口号,或终止占用端口的进程:# 查找占用端口的进程 lsof -i :3000 # 终止进程 kill -9 <PID>Q3: 如何查看日志?A: 使用以下命令查看日志:# 开发模式 # 日志直接输出到终端 # 生产模式(PM2) pm2 logs openclaw # 查看最近的日志 pm2 logs openclaw --lines 100Q4: 如何重启服务?# 使用PM2 pm2 restart openclaw # 或直接kill进程后重启 pm2 stop openclaw pm2 start openclawQ5: 如何更新OpenClaw?# 拉取最新代码 git pull origin main # 安装新依赖 npm install # 重新构建 npm run build # 重启服务 pm2 restart openclaw总结通过本文,你已经学会了如何从零开始安装和部署OpenClaw。OpenClaw作为一个功能强大的AI助手平台,可以为你提供智能化的对话体验和自动化服务。下一步
2026年02月02日
2 阅读
0 评论
0 点赞
2026-02-02
2026年02月02日 人工智能最新动态:2026年AI发展趋势深度解析
2026年,人工智能(AI)技术正以前所未有的速度发展。本文将深入分析最新的AI动态、技术突破以及未来趋势,帮助你把握AI时代的机遇。目录\n多模态AI的崛起\nAI代理的革命\n边缘AI的普及\n开源AI生态\n垂直行业应用\nAI伦理与监管\n未来展望\n1. 多模态AI的崛起2026年,多模态AI(Multimodal AI)已成为主流趋势。不同于传统的文本或图像模型,新一代AI能够同时理解和生成文本、图像、音频、视频等多种模态。技术突破\n统一模型架构:单一模型处理多种输入输出类型\n跨模态理解:更好的语义关联和上下文理解\n实时生成:更快的推理速度和更低的延迟\n质量提升:接近专业水准的输出质量\n应用场景
2026年02月02日
3 阅读
0 评论
0 点赞
2024-06-28
uniapp开发小程序链接mqtt开发工具可以正常连接,真机就无法连接的问题
首先检查你的链接是不是有问题,在小程序中连接mqtt需要使用 wxs://协议。 client = mqtt.connect(`wxs://${config.MQTT_WX_IP}:8084/mqtt`, config.MQTT_OPTIONS);检查你的mqtt.js版本,在uniapp中需要使用4.1.0版本的,高版本的会存在问题。检查Emqx的wss监听器是不是开启了SSL认证,如果不是很重要的话,请关闭。最重要的一点是 在真机调试的时候请求头会丢失参数:需要你手动nginx加一下 proxy_set_header Sec-WebSocket-Protocol mqtt;
2024年06月28日
1,117 阅读
0 评论
1 点赞
2023-01-06
Think-swoole集成think-queue由于配置问题造成的队列无法监听解决办法
2023-01-06T05:46:39.png问题:如上图所示官方说的queue已经在think-swoole中集成了,但是我们将此配置在swoole.php中更改后,创建完任务后,队列不执行。原因:queue.php的配置和swoole.php的配置不一致造成的。queue配置'connections' => [ 'sync' => [ 'type' => 'sync', ], 'database' => [ 'type' => 'database', 'queue' => 'zimuoo', 'table' => 'jobs', 'connection' => null, ], 'redis' => [ 'type' => 'redis', 'queue' => "zimuoo", 'host' => env('REDIS.REDIS_HOST', '127.0.0.1'), 'port' => env('REDIS.PORT', 6379), 'password' => env('REDIS.REDIS_PASSWORD', ''), 'select' => env('REDIS.SELECT', 0), 'timeout' => 0, 'persistent' => false, ], ],swoole配置//队列 'queue' => [ 'enable' => true, //键名是队列名称 'workers' => [ //下面参数是不设置时的默认配置 'default' => [ 'delay' => 0, 'sleep' => 3, 'tries' => 0, 'timeout' => 60, 'worker_num' => 3, ], //使用@符号后面可指定队列使用驱动 'default@connection' => [ //此处可不设置任何参数,使用上面的默认配置 ], ], ],代码分析先看看think-swoole的启动命令文件中的queue监听,分析代码可以发现队列是queue [$queue],但是咱们两边配置不一样,一个是zimuoo,一个是default,造成任务创建了,但是不执行。protected function createQueueWorkers() { $workers = $this->getConfig('queue.workers', []); foreach ($workers as $queue => $options) { if (strpos($queue, '@') !== false) { [$queue, $connection] = explode('@', $queue); } else { $connection = null; } $workerNum = Arr::get($options, 'worker_num', 1); $this->addBatchWorker($workerNum, function (Process\Pool $pool) use ($options, $connection, $queue) { $delay = Arr::get($options, 'delay', 0); $sleep = Arr::get($options, 'sleep', 3); $tries = Arr::get($options, 'tries', 0); $timeout = Arr::get($options, 'timeout', 60); /** @var Worker $worker */ $worker = $this->app->make(Worker::class); while (true) { $timer = Timer::after($timeout * 1000, function () use ($pool) { $pool->getProcess()->exit(); }); $this->runWithBarrier([$this, 'runInSandbox'], function () use ($connection, $queue, $delay, $sleep, $tries, $worker) { $worker->runNextJob($connection, $queue, $delay, $sleep, $tries); }); Timer::clear($timer); } }, "queue [$queue]"); } }解决只需要将 swoole.php中的队列驱动更改为一直即可。default=>zimuoo
2023年01月06日
2,149 阅读
0 评论
0 点赞
2022-11-14
树莓派一键备份脚本
树莓派备份脚本优点:备份后的镜像在恢复时会自动扩容空间运行sudo bash backup.sh将在当前路径生成备份文件生成的镜像名为raspi-backup.img#!/bin/bash set -e #当命令以非零状态退出时,则退出shell Color_End="\033[0m" Color_Red="\033[31m" Color_Green="\033[32m" if [ `id -un` != "root" ];then echo -e "$Color_Red权限不足,退出脚本! $Color_End" exit 1 fi # 设置文件存放目录 BACKUP_DIR=`pwd` BACK_UP_DIR=$BACKUP_DIR/raspi-backup FILE=$BACK_UP_DIR/raspi-backup.img #备份后的img文件名 mkdir $BACK_UP_DIR #安装必要的软件安装包 echo -e "$Color_Green安装必要的软件...$Color_End" apt-get install -qq -y dosfstools dump parted kpartx rsync apt-get clean #创建镜像img文件 echo -e "$Color_Green创建img文件...$Color_End" ROOT=`df -P | grep /dev/root | awk '{print $3}'` #获取 ROOT的文件大小 MMCBLK0P1=`df -P | grep /dev/mmcblk0p1 | awk '{print $2}'` #获取主目录的文件大小 ALL=`echo $ROOT $MMCBLK0P1 | awk '{print int(($1+$2)*1.1)}'` #生成一个比原文件大200M的IMG文件 echo "预计生成文件大小:$(($ALL/1024))MB" echo "root 大小是 $(($ROOT/1024))MB" echo "boot 大小是 $(($MMCBLK0P1/1024))MB" echo "文件路径是 $FILE" dd if=/dev/zero of=$FILE bs=1K count=$ALL status=progress #格式化分区 echo -e "$Color_Green格式化root和boot...$Color_End" P1_START=`fdisk -l /dev/mmcblk0 | grep /dev/mmcblk0p1 | awk '{print $2}'` P1_END=`fdisk -l /dev/mmcblk0 | grep /dev/mmcblk0p1 | awk '{print $3}'` P2_START=`fdisk -l /dev/mmcblk0 | grep /dev/mmcblk0p2 | awk '{print $2}'` echo "boot_start is :$P1_START .boot_end is : $P1_END .rootfs_start is :$P2_START" parted $FILE --script -- mklabel msdos parted $FILE --script -- mkpart primary fat32 ${P1_START}s ${P1_END}s parted $FILE --script -- mkpart primary ext4 ${P2_START}s -1 parted $FILE --script -- quit # mount echo -e "$Color_Green挂载分区...$Color_End" loopdevice_dst=`losetup -f --show $FILE` echo "loop分区在 $loopdevice_dst" PART_BOOT="/dev/dm-0" PART_ROOT="/dev/dm-1" sleep 1 device_dst=`kpartx -va $loopdevice_dst | sed -E 's/.*(loop[0-9])p.*/\1/g' | head -1` sleep 1 device_dst="/dev/mapper/${device_dst}" sleep 1 mkfs.vfat ${device_dst}p1 -n boot sleep 1 mkfs.ext4 ${device_dst}p2 -L rootfs sleep 1 # 复制文件到img echo -e "$Color_Green复制文件到img...$Color_End" echo "备份分区 /dev/boot" dst_boot_path=$BACK_UP_DIR/dst_boot mkdir $dst_boot_path mount -t vfat ${device_dst}p1 $dst_boot_path cp -rfp /boot/* $dst_boot_path echo "备份boot完成" echo "备份分区 /dev/root" dst_root_path=$BACK_UP_DIR/dst_root mkdir $dst_root_path sleep 1 mount -t ext4 ${device_dst}p2 $dst_root_path cd $dst_root_path chmod 777 $dst_root_path/ #通过rsync复制根目录文件到IMG镜像中,排除了一些不需要同步的文件 rsync -ax --info=progress2 --no-inc-recursive \ --exclude="$FILE" \ --exclude=$BACK_UP_DIR \ --exclude=$BACKUP_DIR/$0 \ --exclude=/sys/* \ --exclude=/proc/* \ --exclude=/tmp/* / $dst_root_path/ echo "备份root完成" # 设置自动扩展空间 echo -e "$Color_Green设置自动扩展空间 ...$Color_End" sed -i 's/exit 0/sudo bash \/expand-rootfs.sh \&/' $dst_root_path/etc/rc.local echo "exit 0" >> $dst_root_path/etc/rc.local cat > $dst_root_path/expand-rootfs.sh << EOF #!/bin/bash sed -i '/sudo bash \/expand-rootfs.sh &/d' /etc/rc.local rm "\`pwd\`/\$0" echo -e "\033[33m两秒后扩展分区空间!\033[0m" sleep 2 raspi-config --expand-rootfs echo -e "\033[33my一秒后重启系统!\033[0m" sleep 1 reboot EOF #返回目录 $BACKUP_DIR cd $BACKUP_DIR sync #替换PARTUUID 这步非常重要,liunx启动时会对PARTUUID有特定的指定,备份的时候是把旧的也同步过来,需要根据新的IMG文件来更新PARTUUID echo -e "$Color_Green替换PARTUUID ...$Color_End" opartuuidb=`blkid -o export /dev/mmcblk0p1 | grep PARTUUID` opartuuidr=`blkid -o export /dev/mmcblk0p2| grep PARTUUID` npartuuidb=`blkid -o export ${device_dst}p1 | grep PARTUUID` npartuuidr=`blkid -o export ${device_dst}p2 | grep PARTUUID` echo "BOOT uuid $opartuuidb 替换为 $npartuuidb" echo "ROOT uuid $opartuuidr 替换为 $npartuuidr" sed -i "s/$opartuuidr/$npartuuidr/g" $dst_boot_path/cmdline.txt sed -i "s/$opartuuidb/$npartuuidb/g" $dst_root_path/etc/fstab sed -i "s/$opartuuidr/$npartuuidr/g" $dst_root_path/etc/fstab #清理释放装载的文件夹 echo -e "$Color_Green清理释放装载的文件夹...$Color_End" umount $dst_boot_path umount $dst_root_path kpartx -d ${device_dst}p1 kpartx -d ${device_dst}p2 kpartx -d $loopdevice_dst losetup -d $loopdevice_dst rm -rf $dst_boot_path rm -rf $dst_root_path chmod 766 $FILE mv $FILE $BACKUP_DIR rm -rf $BACK_UP_DIR echo -e "$Color_Green备份完成。$Color_End" exit 0
2022年11月14日
1,939 阅读
0 评论
0 点赞
1
2
...
6