嵌入式系统开发中,命令行工具是与硬件交互、调试程序、管理文件的核心手段,无论是交叉编译环境搭建、内核调试,还是文件系统维护,都离不开一系列基础命令的支撑,这些命令通常通过串口、SSH或调试器终端进入嵌入式设备的系统后执行,其功能与Linux命令类似,但需考虑嵌入式资源受限的特性,部分命令可能存在功能简化或参数差异,以下从文件管理、进程控制、网络配置、系统监控及调试辅助五个维度,详细解析嵌入式开发中常用的基本命令。

文件管理命令
嵌入式系统存储空间有限,文件操作需兼顾效率与安全性,常用命令如下:
目录与文件浏览
ls
:列出目录内容,常用参数包括-l
(显示详细信息,如权限、所有者、大小)、-a
(显示隐藏文件)、-h
(以人类可读格式显示大小,如K/M)。
示例:ls -lh /home
查看/home
目录下文件的详细大小信息。cd
:切换目录,cd ..
返回上级目录,cd -
返回上一目录,cd ~
进入用户主目录。pwd
:显示当前工作目录的绝对路径,常用于确认当前位置。
文件操作
cp
:复制文件/目录,-r
参数用于递归复制目录(如cp -r /source /destination
)。mv
:移动文件/目录或重命名,如mv old.txt new.txt
重命名,mv /file /newdir/
移动文件。rm
:删除文件,-r
递归删除目录,-f
强制删除(不提示),需谨慎使用,尤其在存储空间紧张时。touch
:创建空文件或更新文件时间戳,如touch test.log
创建新日志文件。
查看
cat
:查看文件全部内容,适合小文件(如cat config.txt
)。less
/more
:分页查看文件,less
支持向前/向后翻页(空格键下翻,b
键上翻),q
退出,适合大文件。head
/tail
:查看文件开头/末尾内容,-n
参数指定行数(如tail -n 20 log.txt
查看日志末尾20行)。
文件权限与所有者
chmod
:修改文件权限,添加权限、移除权限,r
(读)、w
(写)、x
(执行),例如chmod +x script.sh
赋予脚本执行权限。chown
:修改文件所有者,格式为chown 用户:组 文件
,需root权限(如chown root:root system.conf
)。
进程控制命令
嵌入式系统中,进程管理需关注资源占用与实时性,常用命令包括:
进程查看
ps
:显示当前进程,-ef
显示所有进程(全格式),-aux
显示详细进程信息(包括CPU/内存占用)。
示例:ps -ef | grep app
筛选包含“app”的进程。top
/htop
:动态查看进程状态,按CPU/内存排序,实时更新进程资源占用(htop
为top
的增强版,支持交互操作)。
进程控制
kill
:终止进程,通过PID(进程ID)操作,-9
强制终止(如kill 1234
,kill -9 1234
)。killall
:通过进程名终止所有匹配进程,如killall nginx
终止所有nginx进程。nohup
:让进程在后台运行且忽略挂断信号,常用于嵌入式服务启动(如nohup ./server &
)。
进程优先级
nice
/renice
:调整进程优先级(值越高优先级越低),nice -n 10 command
以低优先级运行命令,renice 10 PID
修改已运行进程的优先级。
网络配置命令
嵌入式设备常作为网络节点,需通过命令管理网络连接:
网络状态查看
ifconfig
/ip
:查看/配置网络接口,ifconfig eth0 up/down
启用/禁用网卡,ip addr show
显示IP地址详情(现代嵌入式系统推荐ip
命令)。ping
:测试网络连通性,如ping 192.168.1.1
检测与网关的连通性,-c
指定发送包数量(ping -c 4 8.8.8.8
)。netstat
:查看网络连接状态,-an
显示所有连接(含监听端口),-tuln
显示监听的TCP/UDP端口(如netstat -tuln | grep 8080
检查8080端口是否开放)。
网络配置
route
/ip route
:配置静态路由,route add default gw 192.168.1.1
设置默认网关,ip route add 192.168.2.0/24 via 192.168.1.2
添加特定网段路由。dhclient
/udhcpc
:动态获取IP地址(DHCP客户端),嵌入式设备常用udhcpc
(如udhcpc -i eth0
)。ssh
/telnet
:远程登录,ssh user@192.168.1.100
通过SSH安全登录,telnet 192.168.1.100
为不安全登录(仅调试使用)。
网络工具
wget
/curl
:下载文件,wget http://example.com/file.bin
下载固件,curl -I http://example.com
检查HTTP响应头。nslookup
/dig
:DNS查询,nslookup www.baidu.com
解析域名IP。
系统监控命令
嵌入式系统资源紧张,需实时监控CPU、内存、存储等状态:

CPU与内存监控
top
/htop
:实时查看CPU占用率、内存使用情况,按P
按CPU排序,M
按内存排序。free
:查看内存使用情况,-h
以人类可读格式显示(如free -h
查看总内存、已用、空闲)。vmstat
:虚拟内存统计,vmstat 1
每秒输出一次CPU/内存/交换分区状态(如vmstat 1 5
输出5次)。
存储监控
df
:查看磁盘空间使用情况,-h
显示人类可读格式(如df -h /mnt
检查/mnt
分区剩余空间)。du
:统计目录大小,-sh
显示总大小(如du -sh /var/log
查看日志目录占用空间)。
系统信息
uname
:显示系统信息,-a
显示全部信息(内核版本、主机名等),-r
显示内核版本(如uname -r
)。dmesg
:查看内核日志,-T
显示时间戳(如dmesg | grep error
筛选内核错误信息)。
调试辅助命令
嵌入式开发中,调试命令定位问题的关键:
日志查看
logcat
(Android系统):查看系统日志,logcat -s TAG
过滤特定标签日志(如logcat -s MainActivity
)。journalctl
(systemd系统):查看系统服务日志,-u
指定服务(如journalctl -u nginx.service
)。
硬件调试
iostat
:查看设备I/O状态,-dx
显示设备详细统计(如iostat -dx /dev/sda
)。strace
:跟踪系统调用,strace -p PID
跟踪指定进程的系统调用(如strace -p 1234
)。
开机自启配置
systemctl
(systemd系统):管理服务,systemctl enable service
开机自启,systemctl start service
启动服务(如systemctl enable nginx
)。chkconfig
(SysVinit系统):设置服务开机自启,chkconfig --add service
添加服务,chkconfig service on
启用自启。
嵌入式基本命令对比表
功能分类 | 命令 | 核心用途 | 常用参数/示例 |
---|---|---|---|
文件管理 | ls |
列出目录内容 | -l (详细信息)、-h (人类可读) |
cp |
复制文件/目录 | -r (递归复制) |
|
rm |
删除文件/目录 | -rf (强制递归删除) |
|
进程控制 | ps |
查看进程状态 | -ef (所有进程)、aux (详细信息) |
kill |
终止进程 | -9 (强制终止) |
|
网络配置 | ifconfig |
查看/配置网络接口 | up/down (启用/禁用) |
ping |
测试网络连通性 | -c (指定包数量) |
|
系统监控 | top |
动态监控进程资源占用 | P (CPU排序)、M (内存排序) |
free |
查看内存使用情况 | -h (人类可读格式) |
|
调试辅助 | dmesg |
查看内核日志 | -T (显示时间戳) |
strace |
跟踪系统调用 | -p PID (指定进程) |
相关问答FAQs
Q1: 嵌入式系统中如何通过命令查找大文件,释放存储空间?
A: 可结合du
和find
命令定位大文件,步骤如下:
- 使用
find
命令按文件大小查找,例如查找目录下大于100MB的文件:find / -type f -size +100M
- 使用
du
命令统计目录大小,定位占用空间大的目录:du -sh /* | sort -rh | head -10
- 确认无用文件后,使用
rm
删除(如rm -rf /path/large_file
),注意:删除前务必确认文件用途,避免误删系统关键文件。
Q2: 嵌入式设备通过SSH连接后,如何查看后台运行的服务状态?
A: 根据系统初始化类型选择命令:
- systemd系统(主流嵌入式Linux):使用
systemctl
命令,例如查看所有服务状态:systemctl list-units --type=service --state=running
查看特定服务详情(如nginx):
(图片来源网络,侵删)systemctl status nginx.service
- SysVinit系统(旧版嵌入式设备):使用
service
或chkconfig
命令,例如查看服务状态:service nginx status
查看开机自启服务:
chkconfig --list | grep ":on"
若服务未运行,可通过
systemctl start nginx
或service nginx start
启动。