嵌入式操作系统 | 常用命令Ⅱ:用户权限、进程与网络
模块一 · 2 学时 · 环境:VMware + Ubuntu 20.04
一句话概述:掌握用户与权限模型 chmod、进程管理 ps/top/kill,以及网络排查 ping/ifconfig/netstat,配套课堂练习与课后作业。
本节目标
- 能看懂并修改文件的读写执行权限(chmod)
- 会用 ps、top、kill 查看和管理进程
- 会用 ping、ifconfig、netstat 排查网络
一、讲解内容
1.1 知识讲解
权限模型:rwx + 三组。 每个文件的权限用 9 位表示,分三组:属主(u)、属组(g)、其他用户(o),每组内有读 r、写 w、执行 x。ls -l 的第一列如 -rwxr-xr-- 就表示"属主可读可写可执行,属组可读可执行,其他人只读"。chmod 修改权限,常用数字法:r=4、w=2、x=1,三者相加,如 chmod 755 表示 7(属主=rwx) 5(属组=rx) 5(其他=rx)。嵌入式部署程序常需要 chmod +x 赋予可执行权限。
进程是什么。 进程是运行中的程序。ps 查看当前进程快照(ps aux 看全部),top 动态实时查看(内存/CPU 占用),kill 结束进程(kill -9 强制)。嵌入式调试时,进程跑不起来或占用过高,第一时间用 top / ps 定位。
网络排查三板斧。 ping 测试主机连通性;ifconfig(或 ip addr)查看网卡 IP;netstat 查看端口与连接(netstat -tunlp 看监听端口)。虚拟机网络不通、服务连不上时,按"是否 ping 通 → 网卡有没有 IP → 端口是否监听"的顺序排查。注意 :Ubuntu 20.04 默认不带 ifconfig,属于 net-tools 包,需先安装:sudo apt-get install net-tools -y。
1.2 代码示例
shell
# 权限
chmod 777 脚本.sh # 所有人可读写执行(慎用)
chmod +x 脚本.sh # 加可执行权限
ls -l # 查看权限位
# 进程
ps aux | grep 服务名 # 查某服务进程
top # 实时查看,按 q 退出
sudo kill -9 <PID> # 强制结束进程
# 网络
sudo apt-get install net-tools -y # 先安装网络工具(ifconfig/netstat)
ping -c 4 8.8.8.8 # ping 4 次外网
ifconfig # 查看网卡 IP(无则用 ip addr)
netstat -tunlp # 查看监听端口与对应进程
执行前后对比(chmod 修改权限):
text
# 执行前
~/lab$ ls -l 脚本.sh
-rw-r--r-- 1 student student 0 6月 1 10:00 脚本.sh # 无 x,不可执行
# 执行:chmod +x 脚本.sh
~/lab$ chmod +x 脚本.sh
# 执行后
~/lab$ ls -l 脚本.sh
-rwxr-xr-x 1 student student 0 6月 1 10:00 脚本.sh # 出现 x,可执行
1.3 常见错误与排查
| 现象 | 原因 | 解决 |
|---|---|---|
| 运行文件报 "Permission denied" | 文件没有执行权限 | chmod +x 文件 |
kill 报 "Operation not permitted" |
权限不足(进程属于别的用户/root) | 前面加 sudo |
ping 报"无法解析域名"或 100% 丢包 |
网络不通或 DNS 未配置 | 先 ping 网关 IP,再 ifconfig 看 IP,逐层排查 |
ifconfig 提示命令未找到 |
系统未安装 net-tools | sudo apt install net-tools 或改用 ip addr |
netstat 看不到端口 |
没加 -t(TCP 端口)或权限不足 |
netstat -tunlp,必要时 sudo |
二、学生练习
本节命令速查表:
| 命令 | 作用 | 示例 |
|---|---|---|
| apt-get install net-tools | 安装网络工具 | sudo apt-get install net-tools |
| chmod | 修改权限 | chmod 755 f、chmod +x f |
| ls -l | 查看权限 | ls -l |
| ps aux | 查看全部进程 | `ps aux |
| top | 实时监控进程 | top |
| kill -9 | 强制结束进程 | sudo kill -9 PID |
| ping | 测试连通性 | ping -c 4 8.8.8.8 |
| ifconfig | 查看网卡 | ifconfig |
| netstat | 查看端口 | netstat -tunlp |
| 编号 | 任务 | 提示 | 预期结果 |
|---|---|---|---|
| L4.0 | 安装网络工具 net-tools | sudo apt-get install net-tools -y |
ifconfig 命令可正常使用 |
| L4.1 | 创建一个脚本并对它 chmod 755 | 先 touch 再 chmod 755 |
ls -l 首列为 -rwxr-xr-x |
| L4.2 | 查看当前 bash 进程及 PID | `ps aux | grep bash` |
| L4.3 | 用 top 观察 top 2 个 CPU 占用进程 | top 回车 |
看到进程列表与 CPU/内存占用 |
| L4.4 | ping 外网 4 次并解释结果 | ping -c 4 8.8.8.8 |
4 次均收到回复 |
| L4.5 | 查看本机正在监听的端口 | netstat -tunlp |
列出监听端口与进程名 |
三、作业
- 必做:完成 L4.1--L4.5,保存截图;回答
chmod 755与chmod +x的区别;说明排查一个"远程服务连不上"的问题你会按什么顺序检查 - 选做:把某个后台进程的 PID 找出来并
kill掉,观察进程是否消失;用ifconfig记录虚拟机网卡的 IP,说明它是 bridge 还是 NAT - 提交:命令截图 + 文字回答,命名
课时04-作业截图.png
四、本节小结与下节预告
本节掌握了权限管理、进程管理与网络排查三套核心运维命令。下节进入 SSH 远程连接与 VS Code Remote,把开发环境搬到"远程 + 图形化",为后面写代码打基础。