菜鸟科技网

嵌入式基本命令有哪些核心操作?

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

嵌入式基本命令有哪些核心操作?-图1
(图片来源网络,侵删)

文件管理命令

嵌入式系统存储空间有限,文件操作需兼顾效率与安全性,常用命令如下:

目录与文件浏览

  • 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/内存排序,实时更新进程资源占用(htoptop的增强版,支持交互操作)。

进程控制

  • kill:终止进程,通过PID(进程ID)操作,-9强制终止(如kill 1234kill -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、内存、存储等状态:

嵌入式基本命令有哪些核心操作?-图2
(图片来源网络,侵删)

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: 可结合dufind命令定位大文件,步骤如下:

  1. 使用find命令按文件大小查找,例如查找目录下大于100MB的文件:
    find / -type f -size +100M
  2. 使用du命令统计目录大小,定位占用空间大的目录:
    du -sh /* | sort -rh | head -10
  3. 确认无用文件后,使用rm删除(如rm -rf /path/large_file),注意:删除前务必确认文件用途,避免误删系统关键文件。

Q2: 嵌入式设备通过SSH连接后,如何查看后台运行的服务状态?
A: 根据系统初始化类型选择命令:

  • systemd系统(主流嵌入式Linux):使用systemctl命令,例如查看所有服务状态:
    systemctl list-units --type=service --state=running

    查看特定服务详情(如nginx):

    嵌入式基本命令有哪些核心操作?-图3
    (图片来源网络,侵删)
    systemctl status nginx.service
  • SysVinit系统(旧版嵌入式设备):使用servicechkconfig命令,例如查看服务状态:
    service nginx status

    查看开机自启服务:

    chkconfig --list | grep ":on"

    若服务未运行,可通过systemctl start nginxservice nginx start启动。

分享:
扫描分享到社交APP
上一篇
下一篇