实习第二天,反反复复敲“linux/QNX操作命令”
上一篇分享了Git操作的适应心得,这次想聊聊另一个新人绕不开的话题——命令行操作。
相信不少人和我一样,在学校里对Linux命令也就是“能用”的水平:ls看看文件,cd切切目录,vim改改代码。但进了公司,尤其是做嵌入式或车载开发,面对的不只是Linux服务器,可能还有QNX这类实时操作系统(RTOS)。
第一次连上QNX设备,我习惯性敲了个top——command not found。再敲systemctl——还是没有。当时就懵了:“这跟Linux不一样啊?”
后来才发现,QNX和Linux虽然都是类Unix系统,很多基础命令一样,但在进程管理、系统信息查看这些核心操作上完全不同。这篇博客就整理了我实习期间最常用的Linux和QNX命令,希望能帮到同样在嵌入式领域“摸爬滚打”的伙伴们。
一、通用基础:Linux和QNX都“说同一种话”
无论Linux还是QNX,文件目录操作基本是一样的。这些都是肌肉记忆级别的命令:
| 命令 | 作用 | 常用示例 |
|---|---|---|
| pwd | 我在哪? | pwd → /home/user/project |
| ls | 这屋里有什么? | ls -la 看所有文件(含隐藏)的详细信息 |
| cd | 去哪个目录 | cd ~/project 去项目目录 |
| cp | 复制文件/目录 | cp -r src/ dst/ 递归复制目录 |
| mv | 移动或重命名 | mv old.txt new.txt |
| mkdir | 创建目录 | mkdir -p a/b/c 递归创建多级目录 |
| rm | 删除(慎用!) | rm -rf / 是删库跑路,千万别试 |
新手避坑:想删东西又不确定的时候,先用mv移到/tmp目录,确认无误再删。
二、Linux场景:排查问题的“三板斧”
在公司里,最常用Linux的场景是连上服务器看日志、查进程、调网络。我总结了一套“三板斧”:
看日志 —— tail -f + grep🔍
日志是程序员的“眼睛”。出问题第一件事就是看日志:
点击查看代码
# 实时追踪日志(按 Ctrl+C 退出)
tail -f /var/log/app.log
# 从日志里筛选错误
grep "ERROR" /var/log/app.log
# 组合技:实时看错误日志
tail -f /var/log/app.log | grep "ERROR"
📊 看系统状态 —— top / ps
点击查看代码
top # 实时看CPU/内存占用,按 q 退出[reference:19]
ps aux | grep "进程名" # 查找特定进程[reference:20]
线上CPU飙高时,top一看哪个进程占满核,再用ps定位具体信息,问题就找到一半了。
🌐 看网络 —— ping + curl + ss
点击查看代码
ping 8.8.8.8 # 测试网络通不通[reference:22]
curl -I http://xxx # 只看HTTP响应头[reference:23]
ss -tunlp # 看哪些端口在监听(比netstat新)[reference:24]
🚀 启停服务 —— systemctl
点击查看代码
systemctl start nginx # 启动服务
systemctl status nginx # 查看状态
systemctl enable nginx # 开机自启[reference:25]
三、QNX特殊之处:实时系统,命令不一样
如果说Linux是“通用操作系统”,那QNX就是“实时微内核系统”。最直观的差异就是——命令不一样。
🔍 查看进程 —— pidin(QNX的灵魂命令)
Linux用ps和top,QNX用pidin:
点击查看代码
pidin # 查看所有进程(类似 ps -ef)
pidin ar # a=所有进程,r=正在运行[reference:30]
pidin mem # 查看内存信息[reference:31]
pidin cpu # 查看CPU负载[reference:32]
pidin -p <pid> threads # 查看某进程的线程及优先级[reference:33]
💾 查看系统信息 —— sin / showmem
点击查看代码
uname -a # 系统版本(Linux和QNX通用)
sin # QNX系统信息[reference:35]
showmem -S # QNX查看内存详情[reference:36]
🌐 网络相关 —— ifconfig / netstat
点击查看代码
ifconfig # 查看网络接口
ifconfig eth0 up # 激活网口[reference:38]
netstat -an # 查看所有网络连接[reference:39]
sin net # QNX查看网络栈信息[reference:40]
写在最后
刚开始接触命令行时,我也觉得命令太多记不住。后来发现不需要死记硬背——常用的就那么十几个,用多了自然就熟了。关键是理解每个命令能解决什么问题,遇到场景知道该用什么工具,具体参数可以现查。

浙公网安备 33010602011771号