常用命令速查
U-Boot
pri# 查看环境变量setenv <var> <value># 设置环境变量bdinfo# 显示板级信息dhcp# 获取 IP 地址(DHCP)mii# MII(Media Independent Interface)相关load <dev_type> <bus>:<dev> <file># 从设备指定分区加载文件booti $kernel_addr - $fdt_addr# 启动内核,加载设备树iminfo <addr># 查看镜像fdt# fdt(Flattened Device Tree)相关md $addr <len># 内存十六进制查看(默认32bit)
系统信息与日志
man# 指令信息uname -a# 内核版本lscpu# CPU 信息dmesg# 内核日志getconf -a# 系统参数(只读)sysctl# 内核参数相关systemctl# 系统 service 相关free -h# 查看内存使用ps -ef# 获取进程快照top# 实时观察系统负载slabtop# 查看内核对象占用jobs/bg %<job>/fg %<job># 查看/后台/前台作业hexdump /dev/ttyS &# 后台查看串口原始数据journalctl -u service -f# 查看服务日志cat# 打印文件(可用 batcat 提供高亮)/etc/os-release# 系统发行信息/etc/resolv.conf# 查看 DNS 配置/etc/systemd/resolved.conf# 查看 systemd-resolved 配置/proc/interrupts# 中断统计/proc/softirqs# 软件中断统计/proc/irq/<irq>/smp_affinity# 中断 CPU 亲和性/proc/net/dev# 网络统计/proc/iomem# 查看物理内存映射/proc/meminfo# 内存状态/sys/kernel/debug/gpio# 查看 GPIO 状态
zcat /proc/config.gz | less | grep -i <term># 查看内核配置
网络诊断
networkctl# 显示网络状态(systemd)dhclient <iface># 请求 DHCPethtool <iface># 网口工具dig# 查 DNS 解析(定位域名 -> IP 问题)traceroute# 查路径走向(定位卡在哪一跳)mtr# 查质量问题(定位延迟/丢包最严重的节点)resolvectl# 显示 systemd-resolved 的状态ss -lntup# 查看套接字状态nc -u -v 192.168.13.1 53# 用 UDP 向 192.168.13.1:53 发送数据(DNS 端口)tcpdump -i <iface># 抓包相关
VLAN / 链路配置
bridge link# 显示桥信息bridge vlan add dev <dev> vid <vid> pvid untagged# 添加 VLAN(硬件实现)ip link add link <dev> name <dev>.<vid> type vlan id <vid># 创建 VLAN 子接口(软件实现)
ip 常用命令
ip a# 显示所有接口信息ip -s link# 显示网络统计ip link set <dev> up# 接口使能ip link add name <br> type bridge# 创建网桥ip link set <dev> master <br># 添加接口到网桥ip addr add <ip>/<mask> dev <br># 配置 IPip route add default via <gw> dev <br># 默认路由ip route get <dst># 查询路由到目标
硬件 / 外设
dmidecode# 打印所有硬件信息lsblk -f# 列出块设备及文件系统blkid# 查看设备 UUID/类型i2cdetect -a -y <bus># 扫描 I2C 总线i2cdump -y <bus> <addr># 查看 I2C 设备寄存器gpioinfo# GPIO 信息gpioset <chip> <line>=<val># 设置 GPIO 输出echo <num> > /sys/class/gpio/export# 导出 GPIO
Git
git config --list --show-origin# 查看配置及来源git submodule update --init --recursive# 初始化子模块git clone --recurse-submodules <repo># 克隆包含子模块git submodule add <url> <path># 添加子模块git remote prune origin# 清理本地缓存git push --force-with-lease origin# rebase 后强制 push
编译 / Make / CMake
export CROSS_COMPILE=<toolchain> ARCH=<arch># 设置交叉编译工具链make <defconfig># 生成配置make modules_prepare# 准备模块编译make -j<cores> Image modules# 生成 Image 和模块,并记录编译信息make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- -C <kernel-src> M=$PWD -j$(nproc)# 单目录模块编译cmake -B <build-dir> -S . -DCMAKE_TOOLCHAIN_FILE=<file> -DCMAKE_BUILD_TYPE=<type> -DCMAKE_EXPORT_COMPILE_COMMANDS=1# CMake 构建