嵌入式 Linux 命令行 完整指南
一、背景与重要性 嵌入式 Linux 系统通常资源受限,命令行操作是开发者调试、维护和优化的核心手段。掌握命令行能力可使设备管理效率提升60%以上(数据来源:Linux基金会2022报告),尤其在设备启动失败、网络中断等紧急情况下,纯命令行操作是唯一可靠解决方案。
二、基础操作体系
-
文件系统导航
- 使用
/开头表示根目录(如/dev设备树) - 通配符技巧:
ls /var/log/*log匹配所有带log后缀文件 - 实时查看:
tail -f /var/log/syslog监控系统日志
- 使用
-
文件操作进阶
- 批量重命名:
find /home -name "*.tmp" -exec mv {} /temp \; - 文件差异对比:
diff /backup/data /current/data | less - 压缩解压:
tar -czvf backup.tar.gz /path(压缩)和tar -xzvf backup.tar.gz(解压)
- 批量重命名:
-
权限管理
- 用户切换:
su -进入root,exit返回当前用户 - 权限批量修改:
chmod 755 /usr/bin/*(设置可执行+所有者读写) - 实时权限检查:
getcap /bin/ls查看程序能力
- 用户切换:
三、系统管理核心命令
-
资源监控
- CPU使用率:
top -c | grep 'system' - 内存实时:
free -h - 磁盘监控:
df -h | sort -hr
- CPU使用率:
-
服务管理
- 查看服务状态:
systemctl list-units --type service - 重启网络服务:
systemctl restart networking - 开机自启设置:
systemctl enable --now bluetooth
- 查看服务状态:
-
系统维护
- 快速备份:
dd if=/dev/sda of=/backup/sda.img bs=4M - 系统恢复:
recovery-mode(需提前配置BIOS) - 更新升级:
apt update && apt upgrade -y
- 快速备份:
四、网络通信专项
-
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
- 动态分配:
-
网络诊断
- 链路测试:
ping -c 3 google.com-丢包检测:tcpdump -i eth0 -n - 端口扫描:
nmap -sS 192.168.1.1
- 链路测试:
-
跨平台通信
- serial终端配置:
screen /dev/ttym0 115200 - JSON数据解析:
jq '.' < /var/log/temperature - HTTP请求发送:
curl -X POST http://api.example.com -d '{"key": "value"}'
- serial终端配置:
五、安全防护实践
-
用户权限管理
- 创建受限用户:
useradd -s /bin/false sensor - 口令安全设置:
passwd --stdin sensor(交互式输入)
- 创建受限用户:
-
系统加固
- 限制root权限:
sudoers配置中设置root ALL=(ALL) NOPASSWD: ALL(谨慎使用) - 添加白名单:
iptables -A INPUT -s 192.168.1.100 -j ACCEPT
- 限制root权限:
-
密码存储方案
- 使用
secrety服务:systemctl start secrety - 加密文件传输:
gpg --encrypt --对称算法AES256
- 使用
六、调试与排障技巧
-
日志分析
- 按时间范围查询:
grep "error" /var/log/*.log | less - 日志过滤:
journalctl -u nginx -g "404"
- 按时间范围查询:
-
设备诊断
- 硬件自检:
/usr/bin/chkconfig --list - CPU温度监测:
sensors | grep temp1_2 - 闪存校验:
fsck -f /dev/mmcblk0p2
- 硬件自检:
-
紧急恢复
- 挂载救援分区:
mount /dev/sdb1 /rescue - 恢复默认配置:
cp -rf /rescue/* /
- 挂载救援分区:
七、性能优化策略
-
内存管理
- 清理缓存:
sudo /bin/sync; sudo /bin/ram cleaner - 虚拟内存配置:
vmware参数调整(参考/etc/vmware/vmware-tools.conf)
- 清理缓存:
-
CPU调度优化
- 指定优先级:
chrt -p 99 -o /path/to process - 线程绑定:
taskset -p 0x1 /path/to process
- 指定优先级:
-
网络优化
- 启用TCP Fast Open:
sysctl -w net.ipv4.tcp fastopen=1 - 优化HTTP响应:
curl -H "Content-Type: application/json" -X POST
- 启用TCP Fast Open:
八、实战案例
-
设备启动自检
#!/bin/sh # 启动时执行 if [ -f /var/run/healthcheck ]; then rm /var/run/healthcheck exit 1 fi echo "system healthy" > /var/run/healthcheck配合
crontab -e设置每天凌晨3点执行。 -
多设备集群管理
# 使用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原创文章,转载或复制请以超链接形式并注明出处。

