作为一名嵌入式Linux开发者,无论是调试硬件、配置系统,还是部署应用程序,掌握基础命令都是迈向成功的第一步。嵌入式环境通常资源有限,没有图形界面,一切操作都依赖命令行。本文将为你梳理嵌入式Linux开发中最常用的命令,帮助你快速上手目标板调试与系统管理。

示例:


1. 文件系统导航与操作

ls – 列出目录内容

bash

ls        # 列出当前目录文件
ls -l     # 详细列表(权限、大小、时间)
ls -a     # 显示所有文件(包括隐藏文件)

在嵌入式系统中,常用ls -l /dev查看设备节点,或ls -l /sys查看内核导出信息。

cd – 切换目录

bash

cd /etc          # 进入/etc目录
cd ..            # 返回上一级
cd               # 返回用户根目录

pwd – 显示当前路径

bash

pwd

常用于确认当前所在目录,避免操作错误。

mkdir / rmdir – 创建/删除空目录

bash

mkdir -p /data/logs   # 递归创建多级目录
rmdir /tmp/test       # 删除空目录(目录非空会报错)

rm – 删除文件或目录

bash

rm file.txt          # 删除文件
rm -r /tmp/logs      # 递归删除目录及其内容(谨慎使用!)
rm -f file.txt       # 强制删除,不提示

cp – 复制

bash

cp source.txt dest.txt        # 复制文件
cp -r /mnt/usb /home/root     # 递归复制整个目录

mv – 移动或重命名

bash

mv oldname.c newname.c        # 重命名
mv /tmp/app /mnt/sdcard/      # 移动文件/目录

cat – 查看文件内容

bash

cat /proc/cpuinfo             # 查看CPU信息
cat /etc/os-release           # 查看系统版本

echo – 输出字符串或变量

bash

echo "Hello" > /dev/ttyS0     # 向串口发送数据
echo 1 > /sys/class/leds/led0/brightness  # 点亮LED

2. 系统信息查看

uname – 显示系统信息

bash

uname -a        # 内核名称、版本、硬件架构等
uname -r        # 仅显示内核版本

在嵌入式调试中,uname -a可快速确认当前运行的kernel版本和交叉编译环境是否匹配。

df – 查看磁盘空间使用

bash

df -h           # 以人类可读格式显示分区挂载和剩余空间

free – 查看内存使用

bash

free -m         # 以MB显示内存使用情况

top – 动态查看进程资源占用

bash

top             # 显示CPU、内存占用最高的进程(按q退出)

嵌入式系统常用top观察是否有进程异常占用CPU,或内存泄漏。


3. 进程管理

ps – 查看进程列表

bash

ps              # 当前终端进程
ps aux          # 显示所有进程(常用)

嵌入式环境中,ps | grep app可快速检查应用程序是否在运行。

kill – 终止进程

bash

kill -9 1234    # 强制杀死PID为1234的进程
kill -15 1234   # 正常终止进程(可被捕获清理)

配合ps找到进程ID后使用。

& – 后台运行

bash

./my_app &      # 将程序放到后台运行
jobs            # 查看后台任务
fg %1           # 将后台任务1调到前台

nohup – 忽略挂断信号运行

bash

nohup ./my_app &   # 退出终端后程序仍继续运行

4. 网络配置与测试

ifconfig – 查看/配置网络接口

bash

ifconfig                # 查看所有接口信息
ifconfig eth0 192.168.1.100 up   # 配置静态IP并启用
ifconfig eth0 down      # 禁用接口

在较新系统中推荐使用ip命令,但ifconfig在嵌入式环境中依然广泛使用。

ip – 现代网络配置工具

bash

ip addr show            # 查看IP地址
ip link set eth0 up     # 启用接口

ping – 测试网络连通性

bash

ping 192.168.1.1        # 发送ICMP请求
ping -c 4 google.com    # 只发4个包后退出

route – 查看/设置路由表

bash

route -n                # 显示路由表(数字形式)
route add default gw 192.168.1.1   # 添加默认网关

netstat – 网络状态

bash

netstat -tulnp          # 显示所有监听端口及对应进程

iwconfig – 无线网络配置(Wi-Fi)

bash

iwconfig wlan0          # 查看无线接口状态
iwlist wlan0 scan       # 扫描附近Wi-Fi网络

5. 设备与文件系统

mount – 挂载存储设备

bash

mount /dev/mmcblk0p1 /mnt/sdcard   # 挂载SD卡分区
mount -t nfs 192.168.1.10:/nfs_root /mnt/nfs   # 挂载NFS(开发常用)

umount – 卸载设备

bash

umount /mnt/sdcard      # 卸载前确保没有进程占用

dd – 磁盘复制与烧写

bash

dd if=u-boot.bin of=/dev/mmcblk0 bs=1M seek=1   # 烧写U-Boot到SD卡
dd if=/dev/zero of=/dev/mtdblock0 bs=1M count=1 # 擦除Flash区域

dd在嵌入式开发中常用于烧写固件、备份分区。

fdisk – 磁盘分区工具

bash

fdisk -l                # 列出所有磁盘及分区
fdisk /dev/mmcblk0      # 进入交互式分区工具

6. 压缩与打包

tar – 归档文件

bash

tar -czf backup.tar.gz /home/root   # 打包并压缩
tar -xzf backup.tar.gz              # 解压
tar -xvf archive.tar                # 解包(未压缩)

gzip / gunzip – 压缩/解压单个文件

bash

gzip large.log          # 生成 large.log.gz
gunzip large.log.gz     # 解压

7. 调试与串口

dmesg – 查看内核环形缓冲区消息

bash

dmesg | tail -20        # 查看最后20条内核日志
dmesg | grep usb        # 过滤USB相关消息

嵌入式驱动调试时,dmesg是查看设备初始化、错误信息的首要工具。

strace – 跟踪系统调用

bash

strace ./my_app         # 跟踪程序所有系统调用(调试程序行为)

gdb – GNU调试器(如果已集成)

bash

gdb ./my_app            # 启动调试(远程调试也常用)

minicom / picocom – 串口终端程序

bash

picocom -b 115200 /dev/ttyUSB0   # 连接串口设备,波特率115200

通常用于连接目标板的控制台。


8. 权限与用户

chmod – 修改文件权限

bash

chmod 755 script.sh     # 赋予所有者rwx,其他用户rx
chmod +x run.sh         # 添加可执行权限

chown – 修改文件所有者

bash

chown root:root file    # 将文件所有者改为root,组改为root

whoami / id – 查看当前用户

bash

whoami                  # 显示用户名
id                      # 显示UID、GID及所属组

9. 文件查找与内容搜索

find – 查找文件

bash

find / -name "*.ko"     # 从根目录查找所有内核模块
find / -size +10M       # 查找大于10MB的文件

grep – 文本搜索

bash

grep "error" /var/log/messages   # 在日志中搜索error
ps aux | grep "app"              # 过滤出app进程

which – 查找可执行文件路径

bash

which python            # 显示python命令的完整路径

10. 环境变量与模块

export – 设置环境变量

bash

export PATH=$PATH:/opt/bin   # 临时添加路径
export LD_LIBRARY_PATH=/usr/local/lib   # 指定动态库搜索路径

env – 查看所有环境变量

modprobe / insmod – 加载内核模块

bash

insmod my_driver.ko     # 直接插入模块
modprobe usb_storage    # 自动处理依赖并加载模块
lsmod                   # 查看已加载模块
rmmod my_driver         # 卸载模块

11. 常用快捷键与技巧

  • Tab键:自动补全命令或路径。

  • Ctrl + C:终止当前运行的程序。

  • Ctrl + Z:将当前程序挂起到后台。

  • Ctrl + D:退出当前终端(或发送EOF)。

  • ↑ / ↓:历史命令浏览。

  • history:查看最近执行过的命令列表。

  • !!:重复上一条命令。


结语

以上命令只是嵌入式Linux开发中的冰山一角,但掌握了它们,你已经能够独立完成系统信息查看、文件操作、网络配置、进程调试等基础工作。嵌入式开发往往需要频繁与硬件交互,因此建议在实际操作中多使用man命令查看帮助(如man ls),或借助--help选项(如ls --help)。

命令的熟练运用需要反复练习。你可以在开发板上搭建一个小型Linux环境,或者使用QEMU模拟目标板进行练习。当你遇到问题时,不妨先用dmesg查看内核日志,再用pstop确认进程状态,最后结合grepfind等工具定位文件或配置。这一套流程几乎能覆盖绝大多数调试场景。

希望这篇博客能成为你嵌入式Linux学习之路上的一个实用参考。如果有什么命令是你经常使用但文中未提及的,欢迎在评论区补充交流!

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐