目录长什么样
装好Linux后,别急着敲命令。咱们先搞清楚一个问题:Linux的文件都放在哪?
理解Linux的目录结构,就像进了新公司要先了解各部门在哪——知道财务在哪、人事在哪,上班办事才方便。这篇咱们就来聊聊Linux的目录长什么样。
Linux目录结构简介
Linux的目录结构是一棵倒挂的树,一切从根目录开始。
根目录就是/这个符号,就像公司的大门。所有其他目录都是它的“子公司”,子公司下面还能再设部门,一路往下分叉,像树枝一样展开。
在终端输入ls /,看看根目录下都有啥:
bin dev home lib media opt run sys usr boot etc init lib64 mnt proc sbin srv var
这是Ubuntu桌面版典型的根目录结构。咱们一个一个来看。
常见目录作用
想象Linux是一家公司,每个目录就是一个部门,各有各的职责。
/bin —— Basic Commands(基本命令)
bin是"binary"的缩写,中文叫二进制文件,存放公司最核心的日常工具。
就像公司前台必备的订书机、胶水、计算器——这些每天都要用,少了不行。ls、cp、mv、cat这些基本命令都放在这里。
嵌入式工程师常说的“命令本质上就是一个可执行程序”,说的就是这些放在/bin里的工具。
/sbin —— System Binaries(系统命令)
sbin是"system binary"的缩写,存放系统管理用的命令。
就像公司的老板和财务专用电脑——普通员工不能用。reboot(重启)、fdisk(分区)、mkfs(格式化)这些命令需要管理员权限,一般用户用不了。
/boot —— Boot Files(启动文件)
boot是"bootstrap"的缩写,存放开机启动需要用的文件。
就像公司的营业执照和公章——注册公司时的第一步。这个目录里存放内核镜像(vmlinuz)、启动引导程序(GRUB)等,没它们电脑可开不了机。
如果你做嵌入式bootloader开发,这个目录的名字你应该不会陌生。
/dev —— Device Files(设备文件)
Linux有个重要思想:一切皆文件。硬件设备也不例外,dev就是"device"的缩写。
就像公司的固定资产清单——每样设备都登记在册。/dev目录下存放的是设备文件,比如:
- •
/dev/ttyS0 —— 串口0(嵌入式调串口必备)
- •
/dev/null —— 著名的黑洞设备,写进去的数据肉包子打狗
在嵌入式开发中,调串口、读SD卡、访问Flash,本质上都是在操作/dev下的这些文件。
/etc —— Configuration Files(配置文件)
etc是"etcetera"的缩写,中文叫其他杂项,存放公司和应用的配置文件。
就像公司的制度手册——规定各部门的职责和规矩。网络配置、用户密码、服务启动脚本等都在这里。
嵌入式工程师经常改动的文件:/etc/init.d/rc(启动脚本)、/etc/fstab(文件系统挂载表),都在这个目录下。
/home —— Home Directory(用户目录)
普通员工的个人工位。比如你创建的用户ubuntu,工位就是/home/ubuntu,你的文档、下载、代码都默认存这里。
root用户比较特殊——它是公司大老板,工位不在普通员工区,而是在/root。
/root —— Root Directory(超级用户目录)
root用户的个人目录,地位和/home类似,但属于超级管理员。
/usr —— Unix System Resources(系统资源)
usr是"Unix System Resources"的缩写,存放用户级程序和库。
就像公司的公共资源库——打印机、投影仪、参考资料等。安装的应用程序、库文件、头文件,大部分都在/usr下。
常见结构:
- •
/usr/bin —— 用户命令(/bin 是系统开机、修复必备的基础命令;/usr/bin 是普通用户日常使用的普通命令。)
- •
/usr/include—— 头文件(C语言开发必备)
/lib —— Libraries(库文件)
lib是"library"的缩写,存放系统运行时需要的共享库。
就像公司的工具箱——各种标准件,大家共用。/bin和/sbin里的命令运行时依赖的库就在这里。
/lib64 —— 64-bit Libraries(64位库)
64位系统的专用库文件夹,存放64位程序用的库文件。
/var —— Variable Files(可变数据)
var是"variable"的缩写,存放经常变化的数据。
就像公司的动态文件柜——每天收到的新文件、发出的快递记录。常见内容:
- •
/var/log —— 系统日志(查报错看这里)
做嵌入式维护的时候,经常会到这里看看日志有没有报错。
/proc —— Process Information(进程信息)
proc是"process"的缩写,存放进程信息和系统状态。
就像公司的监控中心——实时显示各部门运作情况。这是虚拟目录,不占磁盘空间,而是内核数据的“窗口”:
/sys —— System Files(系统文件)
这是虚拟目录,存放设备驱动和内核对象的信息。
就像公司的设备管理室——打印机、复印机、空调的说明书和维护记录都在这。相比/proc,/sys 更结构化,专门给系统管理用的。
/tmp —— Temporary Files(临时文件)
tmp是"temporary"的缩写,存放临时文件。
就像公司的前台暂存桌——放待处理的文件,用完就扔。系统运行产生的临时数据放这里,重启后可能被清空。
/run —— Runtime Files(运行时文件)
存放系统运行时的状态信息。
就像公司的值班室——记录当前谁在加班、今天有啥活动。PID文件、锁文件等运行时的数据放这里。
/mnt —— Mount Point(挂载点)
mnt是"mount"的缩写,存放临时挂载点。
就像公司的临时仓库——临时放了东西,用完就搬走。插入U盘、TF卡会挂在这里。
/media —— Removable Media(可移动媒体)
media是"媒体"的意思,存放可移动存储设备的自动挂载点。
就像公司的快递收发室——自动记录谁寄了啥。当代桌面Linux会自动把U盘、光盘等挂载到/media/用户名/设备名下。
/opt —— Optional Software(可选软件)
opt是"optional"的缩写,存放第三方可选软件。
就像公司的外包项目部——非核心业务的外包团队。一些大型商业软件(如Oracle)默认装在这里。
/srv —— Service Data(服务数据)
srv是"service"的缩写,存放服务运行时产生的数据。
就像公司的业务数据室——客户订单、销售记录。Web服务器、FTP服务器的数据可能放这里。
/lost+found —— Lost and Found(失物招领)
存放系统异常关机后的文件碎片。
就像公司的失物招领处——不知道谁掉的。文件系统损坏时,救援出来的文件可能在这里。
嵌入式设备的目录差异
上面说的是桌面版Linux,嵌入式设备可不一样。嵌入式系统资源有限,目录结构会精简很多。
常见简化
- •可能没有
/home——嵌入式设备通常只有一个用户
- •
/usr可能变成只读——嵌入式常用SquashFS等只读文件系统
嵌入式特有目录
- •
/opt —— 厂商自定义软件,比如摄像头驱动、4G模块驱动
- •
/overlay —— 合规文件系统(OverlayFS)的上层,保存用户修改
嵌入式常见分区
嵌入式设备启动后,df -h看看分区:
Filesystem Size Used Avail Use% Mounted on /dev/root 1.9G 412M 1.4G 25% / /dev/mmcblk0p1 100M 50M 50M 50% /boot tmpfs 64M 0 64M 0% /dev
- •
tmpfs在内存中——/dev目录,提高读写速度
路径概念:绝对路径和相对路径
绝对路径
从根目录/开始的路径,叫绝对路径。无论你在哪个目录,绝对路径都能唯一定位文件。
例子:
- •
/home/ubuntu/documents/test.txt
无论当前目录是/home还是/etc,这个路径都是唯一定位文件路径。
相对路径
相对于当前目录的路径,叫相对路径。
比如当前在/home/ubuntu,要指向/home/ubuntu/documents/test.txt,直接写:
documents/test.txt
或者用.表示当前目录,..表示上级目录:
- •
./test.txt —— 当前目录下的test.txt
- •
../ubuntu —— 上级目录下的ubuntu目录
小结
今天咱们搞清楚了:
- 1.Linux目录是一棵倒挂的树,从
/根目录开始
- 2.每个目录都有含义:
/bin命令、/sbin系统命令、/dev设备、/etc配置、/usr资源...
- 3.嵌入式设备目录结构更精简,可能没有
/home,可能有/opt
- 4.路径分绝对路径(从
/开始)和相对路径(相对于当前目录)
知道目录长什么样之后,下一篇咱们就正式进入命令环节——怎么在Linux里跑命令? 敬请期待。
下期预告:Linux命令怎么敲?cd、ls、mkdir...这些命令怎么用?手把手教你。