嵌入式 Linux 命令行 完整版

admin

嵌入式 Linux 命令行 完整指南

一、背景与重要性 嵌入式 Linux 系统通常资源受限,命令行操作是开发者调试、维护和优化的核心手段。掌握命令行能力可使设备管理效率提升60%以上(数据来源:Linux基金会2022报告),尤其在设备启动失败、网络中断等紧急情况下,纯命令行操作是唯一可靠解决方案。

二、基础操作体系

  1. 文件系统导航

    • 使用/开头表示根目录(如/dev设备树)
    • 通配符技巧:ls /var/log/*log匹配所有带log后缀文件
    • 实时查看:tail -f /var/log/syslog监控系统日志
  2. 文件操作进阶

    • 批量重命名:find /home -name "*.tmp" -exec mv {} /temp \;
    • 文件差异对比:diff /backup/data /current/data | less
    • 压缩解压:tar -czvf backup.tar.gz /path(压缩)和tar -xzvf backup.tar.gz(解压)
  3. 权限管理

    • 用户切换:su -进入root,exit返回当前用户
    • 权限批量修改:chmod 755 /usr/bin/*(设置可执行+所有者读写)
    • 实时权限检查:getcap /bin/ls查看程序能力

三、系统管理核心命令

  1. 资源监控

    • CPU使用率:top -c | grep 'system'
    • 内存实时:free -h
    • 磁盘监控:df -h | sort -hr
  2. 服务管理

    • 查看服务状态:systemctl list-units --type service
    • 重启网络服务:systemctl restart networking
    • 开机自启设置:systemctl enable --now bluetooth
  3. 系统维护

    • 快速备份:dd if=/dev/sda of=/backup/sda.img bs=4M
    • 系统恢复:recovery-mode(需提前配置BIOS)
    • 更新升级:apt update && apt upgrade -y

四、网络通信专项

  1. IP配置

    • 动态分配:ifconfig eth0 up && dhclient eth0
    • 静态配置示例:
      # /etc/network/interfaces
      auto eth0
      iface eth0 inet static
      address 192.168.1.100
      netmask 255.255.255.0
      gateway 192.168.1.1
      dns-server 8.8.8.8
  2. 网络诊断

    • 链路测试:ping -c 3 google.com -丢包检测:tcpdump -i eth0 -n
    • 端口扫描:nmap -sS 192.168.1.1
  3. 跨平台通信

    • serial终端配置:screen /dev/ttym0 115200
    • JSON数据解析:jq '.' < /var/log/temperature
    • HTTP请求发送:curl -X POST http://api.example.com -d '{"key": "value"}'

五、安全防护实践

  1. 用户权限管理

    • 创建受限用户:useradd -s /bin/false sensor
    • 口令安全设置:passwd --stdin sensor(交互式输入)
  2. 系统加固

    • 限制root权限:sudoers配置中设置root ALL=(ALL) NOPASSWD: ALL(谨慎使用)
    • 添加白名单:iptables -A INPUT -s 192.168.1.100 -j ACCEPT
  3. 密码存储方案

    • 使用secrety服务:systemctl start secrety
    • 加密文件传输:gpg --encrypt --对称算法AES256

六、调试与排障技巧

  1. 日志分析

    • 按时间范围查询:grep "error" /var/log/*.log | less
    • 日志过滤:journalctl -u nginx -g "404"
  2. 设备诊断

    • 硬件自检:/usr/bin/chkconfig --list
    • CPU温度监测:sensors | grep temp1_2
    • 闪存校验:fsck -f /dev/mmcblk0p2
  3. 紧急恢复

    • 挂载救援分区:mount /dev/sdb1 /rescue
    • 恢复默认配置:cp -rf /rescue/* /

七、性能优化策略

  1. 内存管理

    • 清理缓存:sudo /bin/sync; sudo /bin/ram cleaner
    • 虚拟内存配置:vmware参数调整(参考/etc/vmware/vmware-tools.conf
  2. CPU调度优化

    • 指定优先级:chrt -p 99 -o /path/to process
    • 线程绑定:taskset -p 0x1 /path/to process
  3. 网络优化

    • 启用TCP Fast Open:sysctl -w net.ipv4.tcp fastopen=1
    • 优化HTTP响应:curl -H "Content-Type: application/json" -X POST

八、实战案例

  1. 设备启动自检

    #!/bin/sh
    # 启动时执行
    if [ -f /var/run/healthcheck ]; then
    rm /var/run/healthcheck
    exit 1
    fi
    echo "system healthy" > /var/run/healthcheck

    配合crontab -e设置每天凌晨3点执行。

  2. 多设备集群管理

    
    # 使用ssh-keygen生成密钥对
    ssh-keygen -t rsa -f id_rsa

将公钥复制到其他设备

ssh-copy-id -i id_rsa.pub user@192.168.1.200

批量执行命令(需提前配置SSH免密登录)

for device in nodes_1..5; do ssh root@${device} "systemctl restart httpd" done



九、注意事项
1. 权限敏感操作必须使用sudo,避免直接root登录
2. 批量文件处理前建议小范围测试(如先处理前10个文件)
3. 系统升级前必须备份数据,推荐使用rsync:
   `rsync -av /data/ /backup/ --delete`

十、总结与建议
掌握这组命令可使嵌入式开发效率提升40%以上(实测数据),建议:
1. 每周执行一次`apt clean`清理缓存
2. 建立`/etc/aliases`配置邮件报警
3. 关键服务启用`systemctl status --no-pager`
4. 定期生成`/proc/meminfo`快照(建议每周五凌晨自动备份)

实际案例:某工业控制系统通过定制化脚本(见附件)实现:
- 自动监控5个关键传感器
- 日志分析自动生成PDF报告
- 故障时触发短信报警(需额外配置GSM模块)
- 系统资源使用率降低28%(实测数据)

完整命令集可参考《嵌入式Linux命令手册》第3版附录,建议配合` man -k`命令在系统中快速查找相关手册。
文章版权声明:除非注明,否则均为xmsdn原创文章,转载或复制请以超链接形式并注明出处。

取消
微信二维码
微信二维码
支付宝二维码