Armbian系统常用命令实战指南:从入门到精通的Linux运维手册

发布时间:2026/8/13 11:45:31
Armbian系统常用命令实战指南:从入门到精通的Linux运维手册 1. 从零开始为什么你需要一份自己的Armbian命令备忘录如果你手头有一台闲置的电视盒子、矿渣开发板或者任何基于ARM架构的小设备并且成功刷入了Armbian系统那么恭喜你你已经打开了一扇通往低成本、高可玩性Linux服务器世界的大门。Armbian这个为ARM单板计算机SBC量身定制的轻量级Debian/Ubuntu发行版让这些原本功能单一的硬件瞬间变成了可以跑服务、做实验、甚至当作家用服务器的“瑞士军刀”。但问题也随之而来。刚从Windows或完整版桌面Linux转战过来的朋友面对这个精简到极致的命令行环境常常会感到一丝茫然。系统刷好了SSH也连上了黑色的终端窗口闪烁着光标接下来该敲什么apt update之后呢怎么查看硬件信息如何管理服务网络配置出错了怎么排查这些在桌面系统上点点鼠标就能完成的操作在Armbian上都需要通过命令来完成。这就是为什么一份“常用命令”清单如此重要。它不是一个冰冷的命令大全而是一位先行者踩过无数坑后为你梳理出的“生存指南”。网上的命令大全手册固然全面但过于庞杂很多命令在Armbian这个特定环境下可能用不上或者有更优的替代方案。而基于真实使用场景总结出来的命令才是真正能帮你解决问题的工具。我最初玩Armbian时也经历过反复查阅、反复忘记的阶段。后来我养成了一个习惯每解决一个问题或掌握一个高效的操作就把那条关键命令连同它的使用场景和注意事项记录在一个Markdown文件里。这份私人笔记随着时间不断更新从最初的十几条慢慢积累到覆盖系统管理、网络调试、文件操作、进程监控、软件安装维护等方方面面。今天我就把这份持续更新的“生存指南”分享出来它不仅仅是一份列表更包含了我在使用RK3128、H96 Max RK3318等各种“妖板”时积累的实战心得和避坑技巧。无论你是想用网心云设备刷Armbian做软路由旁路还是用电视盒子搭建一个家庭媒体中心这些命令都能让你在命令行世界里更加游刃有余。2. 系统信息探查知己知彼百战不殆刚登录进一个陌生的Armbian系统第一件事就是搞清楚“我在哪”和“这是什么机器”。这对于后续的软件安装、性能优化和故障排查都至关重要。2.1 核心硬件与系统概览uname -a是你的第一把钥匙。这条命令会一次性输出内核版本、系统架构、主机名和编译时间等核心信息。在Armbian环境下你特别需要关注的是aarch64还是armv7l这决定了你能安装的软件包类型。例如RK3318芯片的设备通常就是aarch64。但uname的信息还不够细。要了解更具体的CPU和内存情况你需要lscpu和free -h。lscpu 以清晰的格式展示CPU架构、核心数、型号、主频、字节序等。对于判断设备性能潜力非常有用。free -h 以人类可读的方式GB/MB显示当前系统的内存使用情况。重点关注available列它表示实际可被程序使用的内存量比free列更准确。很多从网心云刷机过来的朋友会发现设备识别出的内存比物理内存小。这时候dmesg | grep -i memory命令可以帮你查看内核启动时识别内存的日志有时能发现内存映射的问题线索。2.2 磁盘空间与文件系统监控Armbian设备通常使用eMMC或SD/TF卡作为存储空间本就有限监控磁盘使用情况是日常维护的必修课。df -h是最常用的命令它能列出所有已挂载文件系统的使用情况。我习惯加上-T参数同时显示文件系统类型如ext4, tmpfs这样更全面。注意 在Armbian中你可能会看到很多tmpfs类型的挂载点如/run,/tmp它们占用的是内存而非磁盘空间这是正常的用于提高临时文件的读写速度。仅仅知道总体使用量还不够我们常常需要找出是哪个目录或文件占用了大量空间。这时就需要dudisk usage命令。我最常用的组合是sudo du -h --max-depth1 / | sort -hr | head -20这条命令的威力在于sudo 确保能读取所有目录的权限。du -h --max-depth1 / 从根目录/开始只统计一级子目录的大小并以人类可读格式输出。sort -hr 将结果按人类可读的数字大小进行反向排序从大到小。head -20 只显示最大的前20个结果。执行后你就能一目了然地看到/home、/var、/usr哪个目录是“空间吞噬者”。如果发现/var/log异常巨大那可能是日志文件没有轮转可以用logrotate配置或手动清理。2.3 进程与系统负载洞察系统卡顿了服务没响应top或它的增强版htop需安装是你的首选。它们能动态显示CPU、内存占用最高的进程。对于快速查看我更喜欢用ps aux --sort-%mem | head -10和ps aux --sort-%cpu | head -10来分别快速锁定内存和CPU的“消耗大户”。uptime命令则用一行信息告诉你系统运行了多久、当前有多少登录用户以及过去1、5、15分钟的系统平均负载。平均负载load average是一个关键指标。对于单板机如果15分钟负载持续高于CPU核心数比如4核设备高于4就说明系统长期处于高负荷状态需要优化或排查问题。3. 软件包管理让apt成为你的得力助手Armbian基于Debian/Ubuntu因此aptAdvanced Package Tool是其软件包管理的核心。用好apt是保证系统健康、软件可用的基础。3.1 更新源与软件库任何操作之前请先更新软件包列表。这不会升级任何已安装的软件只是从配置的软件源如 mirrors.tuna.tsinghua.edu.cn同步最新的软件包信息到本地。sudo apt update这个命令必须定期执行。我建议在计划安装新软件前都先运行一次确保获取到的是最新信息。有时安装软件会失败提示“无法定位软件包”。这通常有几个原因一是软件源里确实没有二是软件源地址失效或网络不通三是你的系统架构armhf/arm64不支持。首先检查/etc/apt/sources.list和/etc/apt/sources.list.d/下的源文件确保使用的是国内镜像源如清华、阿里云、中科大速度会快很多。修改后记得再次sudo apt update。3.2 软件的安装、升级与移除安装软件的基本命令是sudo apt install package_name。例如安装网络诊断工具curl和文本编辑器vimsudo apt install curl vimapt会自动解决依赖关系这是它比早期apt-get更友好的地方。升级所有已安装的软件包到最新版本这是一个需要谨慎的操作sudo apt upgrade它会列出所有将要升级的包并询问你是否继续。对于生产环境或稳定运行的服务建议先查看更新日志如果有或在小范围测试后再进行全局升级以免新版软件引入不兼容问题。如果只想升级某一个特定软件包可以sudo apt install --only-upgrade package_name。移除软件分为两种sudo apt remove package_name 删除软件包本身但保留配置文件。sudo apt purge package_name 彻底删除软件包及其所有配置文件。当你确定不再需要某个软件且想清空其所有痕迹时使用。清理无用包可以释放空间sudo apt autoremove # 删除自动安装且不再需要的依赖包 sudo apt autoclean # 清理已下载的旧版本软件包缓存 sudo apt clean # 清理所有已下载的软件包缓存更彻底日常维护用autoremove和autoclean即可。3.3 软件包查询与故障处理如何知道一个软件是否已安装用dpkg -l | grep keyword或apt list --installed | grep keyword。想安装一个软件但不确定包名可以用apt search keyword进行搜索。有时安装过程会被意外中断比如断网或者依赖关系出现混乱导致apt处于一个损坏状态。这时可以尝试修复sudo apt --fix-broken install sudo dpkg --configure -a这两条命令经常能解决大部分因依赖问题导致的安装失败。个人心得 在Armbian这类资源有限的设备上我倾向于保持系统的“精简”。只安装必需的服务和工具并定期清理。对于不确定是否需要的大型软件如桌面环境先用apt show package_name查看其详细信息和体积再决定是否安装。盲目安装Gnome或KDE桌面很可能瞬间撑满你的存储空间。4. 文件与目录操作效率提升的关键在命令行下高效地操作文件是基本功。除了最基础的ls,cd,cp,mv,rm掌握一些进阶用法和替代工具能极大提升效率。4.1 基础命令的进阶用法ls 别再只用ls了。ls -la组合是我的标配-l以长格式显示详细信息权限、所有者、大小、时间-a显示所有文件包括以点开头的隐藏文件。如果想按文件大小排序用ls -laSh-S按大小排序-h以易读格式显示大小。cp与mv 复制或移动整个目录时一定要加-r递归参数。例如cp -r source_dir/ destination_dir/。mv命令在目标目录已存在时会将源目录移动到目标目录里面这点和cp行为一致需要注意。rm 这是最危险的命令之一。rm -rf /的梗大家都知道。在Armbian上我强烈建议先使用rm -ri file_or_dir-r递归删除目录-i在删除每个文件前交互式询问确认无误后再执行。养成习惯后可以改用相对安全的替代品trash-cli需要安装它会把文件移到“回收站”。4.2 文本文件查看与编辑cat、more、less用于查看文件内容。对于长文件less是更好的选择它支持上下翻页、搜索按/然后输入关键词。head和tail用于查看文件开头或结尾。tail -f /var/log/syslog是一个经典用法-f参数可以实时追踪日志文件的新增内容对于调试服务启动问题无比有用。在Armbian上默认的文本编辑器可能是nano它比较简单易用。但如果你需要进行复杂的编辑vim或vi是更强大的选择。虽然学习曲线陡峭但掌握基本操作i进入插入模式Esc退出插入模式:wq保存并退出:q!不保存强制退出后效率会高很多。4.3 文件查找、权限与归档在茫茫文件海中找一个东西find命令是终极武器。它的参数很多记住几个最常用的组合按文件名查找find / -name *.log 2/dev/null在根目录查找所有.log文件并将错误信息重定向到黑洞。按文件大小查找find /home -size 100M在/home目录下查找大于100MB的文件。按时间查找find /var/log -mtime 7查找/var/log下7天前修改过的文件。文件权限是Linux安全的基础。chmod和chown命令必须掌握。chmod 755 script.sh赋予脚本可执行权限。chown -R user:group /data递归改变/data目录下所有文件的所有者和所属组。在Armbian上如果你用普通用户操作某些系统目录如/opt遇到权限问题合理使用sudo chown比一直用sudo执行命令更安全。打包和解压文件也是常事。记住这几个组合打包压缩tar -czvf archive.tar.gz /path/to/dir创建gzip压缩的tar包。解压tar -xzvf archive.tar.gz解压gzip压缩的tar包到当前目录。仅解压指定文件tar -xzvf archive.tar.gz path/to/file。对于单纯的.zip文件用unzip命令。5. 网络配置与诊断让设备连上世界网络是Armbian设备的生命线。无论是获取IP地址、测试连通性还是调试服务网络命令都不可或缺。5.1 网络状态查看与配置ip addr show或老式的ifconfig用于查看所有网络接口的IP地址、MAC地址和状态。在Armbian中你可能会看到eth0有线网卡、wlan0无线网卡以及lo本地环回。ip route show显示系统的路由表告诉你数据包默认从哪个接口出去。对于使用DHCP自动获取IP的设备如果没拿到地址可以尝试重启网络服务sudo systemctl restart networking或sudo systemctl restart NetworkManager取决于你使用的网络管理器。更直接的方式是释放并重新获取DHCP租约sudo dhclient -r eth0 # 释放 sudo dhclient eth0 # 重新获取静态IP的配置则需要编辑网络配置文件。对于使用systemd-networkd的较新Armbian版本配置文件通常在/etc/systemd/network/下。对于使用传统interfaces文件的版本则编辑/etc/network/interfaces。修改后需要重启网络服务生效。5.2 连通性测试与端口检查ping是最基本的连通性测试工具。ping -c 4 8.8.8.8向Google的DNS服务器发送4个包测试外网连通性。traceroute或tracepath可以追踪数据包到达目标主机经过的每一跳路由对于诊断网络延迟或中断点在何处非常有用。curl和wget是强大的网络数据传输工具。我更喜欢curl因为它功能更多且默认输出到标准输出便于管道处理。curl -I http://example.com可以只获取HTTP响应头快速检查Web服务是否正常。curl -o file.zip http://example.com/file.zip用于下载文件。服务部署后需要检查端口是否监听正确。netstat -tulnp或更现代的ss -tulnp可以列出所有正在监听的TCP/UDP端口以及对应的进程名和PID。例如如果你部署了一个Web服务在8080端口就应该能看到类似tcp LISTEN 0 128 *:8080 *:* users:(“python3”,pid1234)的行。从外部测试端口是否可访问可以用telnet需安装或ncnetcattelnet your_device_ip 22 # 测试SSH端口 nc -zv your_device_ip 80 # 快速测试TCP 80端口5.3 防火墙与网络调试Ubuntu系默认使用ufwUncomplicated Firewall来管理iptables。命令很简单sudo ufw status 查看状态。sudo ufw allow 22/tcp 允许SSH端口。sudo ufw enable 启用防火墙。sudo ufw disable 禁用防火墙。在调试网络问题时tcpdump是抓包分析的利器。例如监听eth0接口上所有发往80端口的数据包sudo tcpdump -i eth0 port 80 -nn。-nn表示不解析主机名和端口名显示更快。踩坑记录 有一次在RK3318设备上部署的服务本地curl能通但外部无法访问。用ss -tulnp发现服务确实监听在0.0.0.0:8080。最后用sudo ufw status一看果然是防火墙没开8080端口。还有一个常见坑是有些Armbian镜像默认的ufw规则是拒绝所有入站连接除了SSH所以部署任何新服务后别忘了在防火墙开个口子。6. 系统服务与进程管理让服务稳定运行在Armbian上我们经常需要运行一些后台服务比如Web服务器、数据库、文件同步工具等。systemd是现代Linux系统包括Armbian的服务管理器掌握其用法至关重要。6.1 使用systemctl管理服务基本操作都是围绕systemctl命令sudo systemctl start service_name 启动服务。sudo systemctl stop service_name 停止服务。sudo systemctl restart service_name 重启服务。sudo systemctl reload service_name 重新加载配置文件如果服务支持。sudo systemctl status service_name 查看服务状态。这是最常用的命令之一它会显示服务是否活跃、运行了多久以及最近的日志片段。sudo systemctl enable service_name 设置服务开机自启。sudo systemctl disable service_name 禁止服务开机自启。sudo systemctl is-enabled service_name 检查服务是否启用自启。例如管理SSH服务sudo systemctl status ssh。如果修改了SSH配置文件/etc/ssh/sshd_config需要sudo systemctl reload ssh或restart使其生效。6.2 查看日志以排查问题服务出问题时status命令提供的日志可能不够详细。这时需要查询systemd的日志系统——journalctl。sudo journalctl -u service_name 查看指定服务的所有日志。sudo journalctl -u service_name -f 实时追踪follow该服务的日志输出相当于tail -f。sudo journalctl --since “2023-10-01 09:00:00” --until “2023-10-01 10:00:00” 查看特定时间段的日志。sudo journalctl -p err 查看所有优先级为错误error及以上的日志。对于仍未使用systemd管理的传统服务或者想查看更全局的系统日志可以查看/var/log/目录下的文件如syslog、messages、kern.log内核日志等。6.3 进程的深入控制systemctl管理的是服务单元。而对于单个进程我们还有更多控制手段。ps aux | grep process_name可以找到进程的PID进程ID。拿到PID后可以向进程发送信号kill PID 发送默认的TERM终止信号要求进程优雅退出。kill -9 PID 发送KILL信号强制立即结束进程。这是在进程无响应“卡死”时的最后手段因为进程无法捕获此信号可能导致数据丢失。killall process_name 结束所有同名进程。pkill -f pattern 根据命令模式结束进程更灵活。对于需要长时间运行但又不想占用当前终端会话的脚本或命令可以使用nohup或screen/tmux。nohup ./my_script.sh 忽略挂断信号并将输出重定向到nohup.out文件使命令在后台持续运行。screen或tmux 功能更强大的终端复用器。它们可以创建虚拟终端会话即使SSH断开连接会话中的进程也会继续运行。之后重新SSH登录再screen -r或tmux attach就能恢复会话现场。这对于运行一些交互式或需要长时间观察输出的任务如编译软件非常有用。7. 用户、权限与安全基础即使是个人使用的Armbian设备良好的用户和权限管理习惯也能避免很多误操作和安全风险。7.1 用户与组管理默认的Armbian镜像通常以root用户登录或者创建一个普通用户如armbian。长期使用root是危险的任何误操作都可能摧毁系统。创建一个新用户sudo adduser username按提示设置密码和信息。将用户加入sudo组使其拥有管理权限sudo usermod -aG sudo username。-aG参数表示“追加到组”避免覆盖用户原有的其他组。切换用户su - username 切换到目标用户并加载其环境变量。sudo -i或sudo su - 切换到root用户。7.2 文件权限详解使用ls -l查看文件时会看到类似-rwxr-xr-x的权限字符串。它分为四部分第一位文件类型-普通文件d目录l链接等。后九位每三位一组分别代表所有者user、所属组group、其他用户others的权限。r读4w写2x执行1。chmod可以用数字或符号模式修改权限。数字模式chmod 755 file.sh。7421表示所有者有rwx权限541表示组和其他用户有r-x权限。符号模式chmod ux file.sh给所有者增加执行权限chmod o-w file.sh移除其他用户的写权限。对于目录x权限意味着可以进入cd该目录。所以要让一个目录可被浏览至少需要r-x权限。7.3 SSH安全加固SSH是管理Armbian的主要入口其安全至关重要。禁用root登录 编辑/etc/ssh/sshd_config找到PermitRootLogin行改为PermitRootLogin no。然后重启SSH服务。使用密钥登录 在本地电脑生成密钥对ssh-keygen将公钥~/.ssh/id_rsa.pub内容添加到Armbian设备的~/.ssh/authorized_keys文件中。之后就可以无需密码登录且更安全。修改默认端口 将Port 22改为一个非标准的高位端口如Port 2222可以减少自动化扫描攻击。改完后别忘了在防火墙ufw中开放新端口。使用强密码 如果必须用密码登录确保密码足够复杂。完成修改后务必先开一个新的SSH会话测试确认能正常登录后再关闭当前的会话。避免配置错误导致自己也被锁在外面。8. 性能监控与简单调优Armbian设备资源有限了解如何监控性能并在必要时进行简单调优可以保证服务流畅运行。8.1 实时监控工具除了之前提到的top/htop还有一些轻量级工具vmstat 1 每秒输出一次系统概览包括进程、内存、交换区、IO、CPU中断等。关注r运行队列长度和us、sy用户和系统CPU时间。iostat -xz 1 监控磁盘IO状况。对于使用SD卡或eMMC的设备IO瓶颈很常见。关注await平均等待时间和%util设备利用率如果持续很高说明磁盘可能成为瓶颈。dstat 功能更全面的性能监控工具可以同时查看CPU、磁盘、网络、内存等需要安装。8.2 内存与交换空间使用free -h查看内存。如果available内存长期很少且swap使用量Si/So在vmstat中很高说明物理内存不足系统在频繁使用交换空间这会极大拖慢性能尤其是SD卡作为交换设备时。可以考虑优化运行的服务关掉不必要的。增加交换文件如果原本没有或太小sudo fallocate -l 1G /swapfile # 创建1G文件 sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile要永久生效需将/swapfile swap swap defaults 0 0添加到/etc/fstab。8.3 开机自启服务优化使用systemctl list-unit-files --typeservice --stateenabled查看所有开机自启的服务。仔细审视每一项禁用掉你明确不需要的sudo systemctl disable service_name。例如如果不用蓝牙可以禁用bluetooth.service。8.4 日志轮转与清理日志文件/var/log/可能随时间增长。系统通常有logrotate服务来自动轮转和清理旧日志。你可以检查/etc/logrotate.conf和/etc/logrotate.d/下的配置。对于特定应用如你部署的Web服务的日志也需要考虑配置轮转或定期手动清理。一个简单的定时清理任务可以添加到crontabsudo crontab -e # 添加一行每周日凌晨3点清理7天前的日志请根据实际情况调整路径和天数 0 3 * * 0 find /var/log/myapp -name “*.log” -mtime 7 -delete9. 实用小技巧与高级命令拾遗最后分享一些能极大提升日常操作效率的命令和技巧它们可能不常用但关键时刻能省下大量时间。9.1 命令行效率工具历史命令搜索 按Ctrl R然后输入关键词可以反向搜索命令历史。找到后按回车执行或按左右箭头键编辑。快速跳转目录cd -可以快速回到上一个所在的目录。命令别名 在~/.bashrc文件中添加alias ll‘ls -la’然后source ~/.bashrc就可以用ll代替长长的ls -la了。可以为常用命令设置简短别名。通配符与花括号扩展cp /path/to/file.{txt,bak}等价于cp /path/to/file.txt /path/to/file.bak。mkdir -p project/{src,doc,test}一次性创建多层嵌套目录。9.2 数据操作与流处理grep文本搜索grep -r “error” /var/log/递归搜索目录下所有文件中的“error”关键词。-i忽略大小写-n显示行号。awk文本分析 一个强大的编程语言常用于提取列数据。例如ps aux | awk ‘{print $1, $4}’打印进程的用户名和CPU占用率。sed流编辑器 用于对文本进行替换、删除、插入等操作。例如sed -i ‘s/old_string/new_string/g’ file.txt将文件中所有old_string替换为new_string。重定向与管道command file 将标准输出重定向到文件覆盖。command file 追加到文件。command 21 将标准错误重定向到标准输出。command1 | command2 将command1的输出作为command2的输入。9.3 系统维护与时间同步查看系统启动时间who -b或uptime -s。同步系统时间 Armbian通常默认安装了systemd-timesyncd。使用timedatectl status查看时间同步状态。如果时间不准可以sudo timedatectl set-ntp true启用NTP同步。计划任务 使用crontab -e编辑当前用户的计划任务。格式为分 时 日 月 周 命令。例如0 2 * * * /path/to/backup.sh表示每天凌晨2点执行备份脚本。系统的计划任务在/etc/crontab和/etc/cron.d/目录下。这份命令清单是我在多年把玩各种Armbian设备过程中从无数次成功和失败里沉淀下来的。它不是一个终点而是一个起点。最好的学习方式就是在你遇到实际问题时回来查阅相关章节动手尝试并理解每条命令背后的逻辑。随着你使用场景的深入你也会积累属于自己的那份“常用命令”清单。记住在Linux的世界里命令行不是障碍而是赋予你精确控制力的强大工具。从生疏到熟练需要的只是一点耐心和大量的实践。