【开发/调试工具】【Linux】嵌入式Linux环境下如何自动化执行操作

简介: 【开发/调试工具】【Linux】嵌入式Linux环境下如何自动化执行操作

引子


  • 在嵌入式Linux的开发调试过程中,有时需要执行一些复杂的操作,诸如shell登陆、重复执行命令等操作,如果全部人工来执行,效率低下且有时不现实。


  • 本文将常用的嵌入式Linux环境下自动执行操作的方法做一总结,供各位参考。


编程语言方式


shell脚本


  • shell脚本就是为Linux而生的,登陆Linux的shell之后,shell脚本基本上可以完成各种复杂的逻辑,如循环、判断、执行命令等,相关资料很多,这里就不再赘述了。


Python程序


  • 例1、利用python向串口发送ifconfig指令


 # 导入模块
 import serial
 # 需要发送的串口指令
 cmd = 'ifconfig'
 # 将字符串转换成字节
 cmd=bytes.fromhex(cmd)
 # 生成串口
 serial_com = serial.Serial("com1", 115200, timeout=5)
 # 发送串口指令
 serial_com.write(cmd)
 # 读取串口返回结果
 serial_com.read(1024)
 # 关闭串口
 serial_com.close()


VBS脚本(配合SecureCrt软件)


  • 例1、每3s执行一次ifconfig命令


#$language = "VBScript"
#$interface = "1.0"
Sub  main
crt.Screen.Synchronous = True
While 1
    crt.Screen.Send "ifconfig" & VbCr
    crt.Screen.WaitForString "#"
    crt.Sleep 1000*3
Wend
End Sub


  • 例2、自动登陆串口并连续读取三次snmp文件


#$language = "VBScript"
#$interface = "1.0"
Sub main
    Dim ReadCounter
    crt.Screen.Send VbCr 
    crt.Screen.WaitForString "login: "
    crt.Screen.Send "root" & VbCr
    crt.Screen.WaitForString "Password: "
    crt.Screen.Send "root" & VbCr
    crt.Screen.WaitForString "#"
    for ReadCounter = 1 to 3
        crt.Screen.Send "cat /proc/net/snmp" & VbCr
      crt.Screen.WaitForString "#"
      crt.Sleep 100
    next
    transmit "reboot^M" 
End Sub


ASPECT脚本(Procomm Plus自带)


例1、自动执行100次ifconfig命令


proc main
   integer Num                ; Integer variable to increment.
   for Num = 1 upto 100       ; Init variable and define loop.
     transmit "ifconfig"
     waitfor "#"
   endfor
endproc


例2、周期查看pci设备并重启设备


proc main
  integer WaitCounter= 0
  while (WaitCounter++) < 1000
        transmit "root^M"
        waitfor "Password:"
        transmit "root^M"
      waitfor "#"
      transmit "ls /proc/bus/pci/devices ^M"
        waitfor "#"
      transmit "reboot^M"     
      pause 2400
  endwhile
endproc


利用expect


  • 例1、自动登陆ssh:


#!/usr/bin/expect -f
set timeout 30
spawn ssh -l my_username@192.168.1.1
expect "password:"
send "my_password\r"
interact


工具方式


MobaXterm


  • 该软件自带Macro功能,可根据需要组合键盘的回车、换行、文字输入、sleep等操作:



IPOP


  • 终端工具,这里可按文件或文本方式输入各种命令:



串口精灵


  • 发送数据可发送十六进制(HEX)格式和ASCII码,可以设置定时发送的数据以及时间间隔。可以自动显示接收到的数据,串口调试精灵官方版支持HEX或ASCII码显示。是工程技术人员监视、调试串口程序的必备工具。



MicroLab


  • 支持串口/网络动态指令编程:



小结


  • 本文简单探讨了几种Linux环境下自动执行命令的方式,具体如何选用可根据实际的环境和需要来选取;


  • 至于具体的使用的语言或工具本身,网上都有相关资料,需要时可深入了解一下。
相关文章
|
10天前
|
存储 人工智能 自然语言处理
ChatMCP:基于 MCP 协议开发的 AI 聊天客户端,支持多语言和自动化安装 MCP 服务器
ChatMCP 是一款基于模型上下文协议(MCP)的 AI 聊天客户端,支持多语言和自动化安装。它能够与多种大型语言模型(LLM)如 OpenAI、Claude 和 OLLama 等进行交互,具备自动化安装 MCP 服务器、SSE 传输支持、自动选择服务器、聊天记录管理等功能。
77 15
ChatMCP:基于 MCP 协议开发的 AI 聊天客户端,支持多语言和自动化安装 MCP 服务器
|
1月前
|
运维 监控 持续交付
云计算环境下的运维自动化实践
本文探讨了在云计算环境下实施运维自动化的必要性、挑战及解决方案,重点介绍了如何利用现代技术工具实现高效的云资源管理和监控。通过具体案例分析,展示了自动化运维在提升系统稳定性、降低人力成本方面的优势。
|
2月前
|
Linux API 开发工具
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
ijkplayer是由B站研发的移动端播放器,基于FFmpeg 3.4,支持Android和iOS。其源码托管于GitHub,截至2024年9月15日,获得了3.24万星标和0.81万分支,尽管已停止更新6年。本文档介绍了如何在Linux环境下编译ijkplayer的so库,以便在较新的开发环境中使用。首先需安装编译工具并调整/tmp分区大小,接着下载并安装Android SDK和NDK,最后下载ijkplayer源码并编译。详细步骤包括环境准备、工具安装及库编译等。更多FFmpeg开发知识可参考相关书籍。
112 0
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
|
2月前
|
监控 关系型数据库 MySQL
PowerShell 脚本编写 :自动化Windows 开发工作流程
PowerShell 脚本编写 :自动化Windows 开发工作流程
79 0
|
2月前
|
Ubuntu Java iOS开发
MacOS环境-手写操作系统-19-编译自动化
MacOS环境-手写操作系统-19-编译自动化
25 0
|
4月前
|
运维 监控 应用服务中间件
自动化运维:打造高效、稳定的系统环境
【8月更文挑战第30天】本文将探讨如何通过自动化运维技术,提升系统的稳定性和效率。我们将从基础概念出发,逐步深入到实践应用,分享一些实用的工具和技术,以及如何将这些工具和技术融入到日常的运维工作中。无论你是运维新手,还是有一定经验的老手,都能在这篇文章中找到有价值的信息。让我们一起探索自动化运维的世界,提升我们的工作效率,让系统运行得更加平稳。
|
3月前
|
测试技术 C# 图形学
掌握Unity调试与测试的终极指南:从内置调试工具到自动化测试框架,全方位保障游戏品质不踩坑,打造流畅游戏体验的必备技能大揭秘!
【9月更文挑战第1天】在开发游戏时,Unity 引擎让创意变为现实。但软件开发中难免遇到 Bug,若不解决,将严重影响用户体验。调试与测试成为确保游戏质量的最后一道防线。本文介绍如何利用 Unity 的调试工具高效排查问题,并通过 Profiler 分析性能瓶颈。此外,Unity Test Framework 支持自动化测试,提高开发效率。结合单元测试与集成测试,确保游戏逻辑正确无误。对于在线游戏,还需进行压力测试以验证服务器稳定性。总之,调试与测试贯穿游戏开发全流程,确保最终作品既好玩又稳定。
167 4
|
3月前
|
安全 Linux 测试技术
Kali Linux预装的自动化渗透测试工具
Kali Linux预装的自动化渗透测试工具
195 2
|
3月前
|
存储 Linux 开发工具
如何进行Linux内核开发【ChatGPT】
如何进行Linux内核开发【ChatGPT】
|
3月前
|
存储 监控 安全
在自动化测试环境中,如何确保测试数据的安全性和隐私性
在自动化测试环境中,如何确保测试数据的安全性和隐私性
122 0