Linux 基础详解(适配 Android 内核场景)
目录
一、Linux 标准目录结构(Android 沿用核心规则)
核心目录作用
Android 特有关键目录(补充)
二、用户体系(Linux & Android 通用)
1. 两类核心用户
2. 两个核心标识
3. 常用用户相关命令
三、Linux 权限体系(重点,Android 权限底层根源)
1. 权限三角色(文件归属)
2. 三种基础权限
3. 权限数字表示(八进制,最常用)
4. chmod 命令(修改权限)
语法 1:数字形式(推荐)
语法 2:符号形式
5. 查看权限
四、进程 & 线程(Linux/Android 核心调度)
1. 基本概念
2. 进程状态(Linux 标准状态)
3. 进程相关命令(ps)
常用参数
字段解释(ps aux)
补充进程操作命令
五、网络状态命令:netstat
常用组合参数
高频组合(工作常用)
场景用途
六、压缩解压命令:tar
核心参数
1. 打包 + 压缩(tar.gz 最常用)
2. 解压 tar.gz
补充
七、基础文件操作命令(cd /ls/cat)
1. cd 切换目录(Change Directory)
2. ls 列出目录内容(List)
3. cat 查看文件内容(Concatenate)
总结(Linux ↔ Android 对应关系)
Android 系统内核基于 Linux 内核(精简裁剪、增加安卓特有驱动 / Binder、Wakelock 等模块),底层文件管理、权限、进程、命令逻辑和标准 Linux 高度一致。下面分目录结构、用户体系、权限体系、进程 / 线程、常用命令五大模块完整讲解。
一、Linux 标准目录结构(Android 沿用核心规则)
Linux 采用单根目录树,根目录为/,所有文件、设备、分区都挂载在这棵树下。Android 根目录布局是标准 Linux 目录的定制版。
核心目录作用
- / 根目录整个文件系统的起点,所有目录的父目录。
- /bin存放基础可执行命令(ls、cd、cat 等),所有用户可用。Android 对应
/system/bin。 - /sbin系统管理员、内核使用的核心程序(开机、进程管理),root 权限专属。Android
/sbin存放 adbd、init 等。 - /etc系统配置文件(账号、权限、服务配置)。Android 对应
/etc、/system/etc。 - /home普通用户家目录,每个用户一个独立文件夹。Android 无此目录,安卓用户数据存
/data。 - /root超级管理员 root 的家目录,普通用户无权限进入。
- /usr系统软件、库、帮助文档、第三方程序,相当于 “程序安装目录”。Android
/usr存放系统库文件。 - /var动态文件:日志、运行时数据、缓存。Android 日志大量存在此处。
- /dev设备文件目录(Linux 万物皆文件):硬盘、屏幕、摄像头、串口、电池都以文件形式存在。
/dev/tty串口/dev/sda磁盘 Android 硬件驱动、传感器、Binder 设备都在/dev下。
- /proc伪文件系统,不占用磁盘,实时反映内核 / 进程状态(CPU、内存、进程信息),Android 调试进程、查看内核参数必用。
- /tmp临时文件目录,重启清空。
Android 特有关键目录(补充)
/data:APP 数据、用户数据(最核心,普通 APP 无权访问)/system:系统分区,对应 Linux /bin/etc /usr/sdcard:外置存储(模拟 FAT 文件系统)
二、用户体系(Linux & Android 通用)
Linux 是多用户操作系统,每个进程、文件都归属特定用户 / 用户组,权限依托用户体系生效。
1. 两类核心用户
- root(UID=0):超级管理员,最高权限,可操作所有文件、进程、硬件。Android 刷机 /root 就是获取该账号权限。
- 普通用户:权限受限,只能操作自己家目录和开放权限的文件。
2. 两个核心标识
- UID(用户 ID):系统识别用户的数字编号,root 固定
0。 - GID(组 ID):用户归属的用户组,一组用户共享组权限。
3. 常用用户相关命令
whoami:查看当前登录用户id:查看当前用户 UID、GID、所属组useradd 用户名:新建用户(管理员权限)passwd 用户名:设置密码
Android 简化了多用户,但底层依然靠 UID 区分 APP:每个安卓 APP 安装后会分配独立 UID,互相隔离。
三、Linux 权限体系(重点,Android 权限底层根源)
Linux文件 / 目录权限分为三类角色、三种权限,chmod命令专门用来修改权限。
1. 权限三角色(文件归属)
每个文件 / 目录默认归属:
- 所有者(u):文件创建者
- 所属组(g):文件归属的用户组
- 其他用户(o):既不是所有者、也不在组内的所有用户 简写:
u(用户)、g(组)、o(其他)、a(所有人)
2. 三种基础权限
| 权限符 | 含义(文件) | 含义(目录) |
|---|---|---|
| r读 | 查看文件内容 | 列出目录里的文件(ls) |
| w写 | 修改 / 删除文件内容 | 在目录内新建 / 删除 / 重命名文件 |
| x执行 | 运行可执行程序 / 脚本 | 进入目录(cd) |
3. 权限数字表示(八进制,最常用)
把r w x分别赋值数字,三位一组组合:
- r = 4
- w = 2
- x = 1
组合规则:权限数字 = 对应权限相加示例:
rwx= 4+2+1 = 7rw-= 4+2 = 6r-x= 4+1 = 5---= 0
完整权限格式:三位数字 = 所有者 + 组 + 其他
755:所有者 rwx,组 r-x,其他 r-x(系统目录 / 程序常用)644:所有者 rw-,组 r--,其他 r--(普通文本文件默认)777:所有人全权限(不安全,谨慎使用)
4. chmod 命令(修改权限)
语法 1:数字形式(推荐)
chmod 权限数字 文件名/目录名示例:
chmod 755 test.sh # 设置为 755 权限 chmod -R 755 dir/ # -R 递归修改整个目录及内部所有文件语法 2:符号形式
chmod 角色±权限 文件名示例:
chmod u+x test.sh # 给所有者增加执行权限 chmod go-r file.txt # 移除组、其他用户的读权限Android 应用沙盒、文件私有权限、存储权限,底层全部基于这套 Linux 权限模型实现。
5. 查看权限
执行ls -l即可看到完整权限信息,首位标识文件类型:
-普通文件d目录l软链接(快捷方式)c/b设备文件
示例输出:
-rwxr-xr-x 1 root root 123 06-12 10:00 test拆解:- rwx r-x r-x→ 文件类型 + 所有者权限 + 组权限 + 其他权限
四、进程 & 线程(Linux/Android 核心调度)
Linux 内核以进程为资源分配单位,线程为调度单位,Android 虚拟机、APP、系统服务全部运行在进程 / 线程中。
1. 基本概念
进程(Process)独立的资源容器:拥有独立内存、文件句柄、PID(进程 ID),进程之间默认隔离。
- 每个进程有唯一PID(数字 ID),内核靠 PID 管理进程。
- Android:一个 APP 通常对应一个主进程,多开分身 / 后台服务会产生子进程。
线程(Thread)进程内的执行单元,共享进程内存、资源,切换开销远小于进程。
- 一个进程至少包含 1 个主线程(Android UI 线程)。
- Linux 中线程本质是轻量级进程(LWP)。
2. 进程状态(Linux 标准状态)
- R 运行态:正在 CPU 执行 / 等待 CPU
- S 睡眠态:阻塞等待事件(网络、IO、休眠)
- Z 僵尸进程:进程已退出,但父进程未回收资源(残留)
- T 停止态:被暂停
3. 进程相关命令(ps)
ps:查看当前进程快照(静态)
常用参数
ps # 查看当前终端进程 ps aux # 最全格式:所有用户、全部进程(最常用) ps -ef # 完整进程列表,含父进程 PID字段解释(ps aux)
- USER:进程所属用户
- PID:进程 ID
- % CPU:CPU 占用率
- % MEM:内存占用率
- COMMAND:启动该进程的命令 / 程序名
补充进程操作命令
kill PID:终止指定进程kill -9 PID:强制杀死进程(暴力终止)
五、网络状态命令:netstat
netstat:查看端口、网络连接、路由、套接字,排查端口占用、网络连接、Android 端口调试必备。
常用组合参数
netstat -a # 显示所有连接(监听、已连接、套接字) netstat -n # 数字形式显示IP/端口(不解析域名,速度快) netstat -t # 只看 TCP 连接 netstat -u # 只看 UDP 连接 netstat -l # 只看 **监听中** 的端口(服务端口) netstat -p # 显示占用端口的进程名/PID(root 权限)高频组合(工作常用)
netstat -tulnp # 查看所有 TCP/UDP 监听端口 + 对应进程场景用途
- 检查某个端口是否被占用
- 查看服务监听状态
- Android 真机 / 模拟器 adb 端口、应用网络连接排查
新版 Linux 推荐
ss替代 netstat,但 netstat 兼容性更强,嵌入式 / Android 仍大量使用。
六、压缩解压命令:tar
Linux 标准打包压缩工具,tar 本身只打包,不压缩,常搭配 gzip/bzip2 压缩。Android 固件、系统包、日志包多用 tar 格式。
核心参数
c:创建打包文件(压缩)x:解压 / 解包f:指定文件名(必须放最后)z:使用 gzip 压缩(后缀.tar.gz/.tgz)v:显示详细过程(可视化)
1. 打包 + 压缩(tar.gz 最常用)
# 格式:tar zcvf 压缩包名 目标文件/目录 tar zcvf test.tar.gz dir/ file.txt2. 解压 tar.gz
# 格式:tar zxvf 压缩包名 tar zxvf test.tar.gz # 解压到指定目录 -C tar zxvf test.tar.gz -C /home/xxx补充
.tar:纯打包,无压缩,命令去掉z即可- Android 刷机包、内核镜像、系统备份大多为 tar 系列格式
七、基础文件操作命令(cd /ls/cat)
1. cd 切换目录(Change Directory)
目录跳转命令,终端最基础操作
cd / # 进入根目录 cd ~ # 进入当前用户家目录 cd .. # 返回上一级目录 cd . # 当前目录(无变化) cd 目录名 # 进入指定目录 cd - # 回到上一次所在目录2. ls 列出目录内容(List)
查看当前目录下的文件、文件夹
ls # 简略列出文件 ls -l # 长格式:权限、所有者、大小、时间(等价 ll) ls -a # 显示所有文件,包括 **隐藏文件**(Linux 以 . 开头为隐藏文件) ls -lh # 人性化显示文件大小(KB/MB)3. cat 查看文件内容(Concatenate)
读取、拼接文本文件内容,适合小文件(大文件用 less/more)
cat 文件名 # 查看整个文件内容 cat file1 file2 # 拼接多个文件输出 cat > 新文件 # 新建文件并写入内容(Ctrl+D 保存退出)总结(Linux ↔ Android 对应关系)
- 内核:Android 基于标准 Linux 内核,调度、进程、内存、设备驱动逻辑完全一致;
- 权限:Android 应用私有、文件隔离、存储权限,底层就是 Linux
rwx+ UID/GID; - 目录:Android 裁剪了
/home等目录,新增/data//sdcard,整体仍为 Linux 目录树; - 命令:adb shell 进入安卓终端后,
cd/ls/cat/ps/netstat/tar/chmod全部可以直接使用。
