【linux文件系统重要目录及命令解释】

linux文件系统 重要目录及命令解释

(1)/根目录

/作用1:根目录,linux所有文件的顶级目录;

/作用2:目录分隔符,/tmp

kiosk@foundation0 \~$ ssh root@servera

Activate the web console with: systemctl enable --now cockpit.socket

Register this system with Red Hat Insights: insights-client --register

Create an account or view all your systems at https://red.ht/insights-dashboar

Last login: Mon Sep 29 22:28:40 2025 from 172.25.250.250

root@servera \~# cd /

root@servera /# pwd

/

root@servera /# ll -a

ll长选项解析(可区分文件还是目录或其他)

total 36 (并不是某个文件的名字,而是说明 当前目录中所有文件的"磁盘块占用总数,不是字节(磁盘是按块分配的,磁盘占用=数据块 + inode + 目录项等元数据)"。这个目录下的所有文件和子目录,总共占用了 36 个磁盘块(block)。在 Linux 中,一个块(block)通常是 1KB(也可能是 4KB,取决于文件系统)。所以 total 36 大约等于 36KB 磁盘空间。只是文件元数据占用的空间,不等于文件大小的总和:ls -l 输出里每个文件有一个 大小(比如 4096 字节),那 total 不直接等于这些大小加起来,文件大小(比如 4096)是逻辑大小,表示文件内容占多少字节。磁盘块占用是实际磁盘存储的开销。即使文件大小是 0,也需要一个 inode 和目录项,仍会占用磁盘块。
文件大小是指文件内容真正需要多少字节存储,这些内容会被存放在磁盘数据块 (data block) 中。Linux 文件系统(ext4, xfs 等)按块分配磁盘空间,每块通常 4KB(ext4 默认)。如果文件大小 < 块大小,仍然会占用整块。如果文件大小 > 块大小,会占用多个连续块(分块)。

如何区分 文件 和 目录: ll=ls -l ,第一个字符对应的含义,file也可显示文件类型。
文件类型权限位SELinux标记 ,长度一般是 10 个字符,第一位 文件类型,接下来的 9 位权限位(3 组三组:属主/属组/其他人,分成 3 组,每组 3 位:rwx rwx rwx),最后一位 "." 或 "+" 表示 ELinux 安全上下文或 ACL。
举例:d r-x r-x r-x .:

字符 描述
- 普通文件
d 目录 (directory)
l 符号链接 (symlink)
c 字符设备 (char device)
b 块设备 (block device)
p 命名管道 (FIFO)
s 套接字 (socket)
字符 描述
r 可读 (read)
w 可写 (write)
x 可执行 / 进入目录 (execute)
- 没有该权限
/根目录内容

dr-xr-xr-x. 19 root root 246 May 23 2022 .

dr-xr-xr-x. 19 root root 246 May 23 2022 ...

dr-xr-xr-x. 2 root root 6 Aug 9 2021 afs

lrwxrwxrwx. 1 root root 7 Aug 9 2021 bin -> usr/bin

dr-xr-xr-x. 5 root root 4096 May 23 2022 boot

drwxr-xr-x. 18 root root 3220 Oct 2 22:39 dev

drwx------. 3 root root 16384 Dec 31 1969 efi

drwxr-xr-x. 105 root root 8192 Oct 2 22:39 etc

drwxr-xr-x. 4 root root 35 May 18 2022 home

lrwxrwxrwx. 1 root root 7 Aug 9 2021 lib -> usr/lib

lrwxrwxrwx. 1 root root 9 Aug 9 2021 lib64 -> usr/lib64

drwxr-xr-x. 2 root root 6 Aug 9 2021 media

drwxr-xr-x. 2 root root 6 Aug 9 2021 mnt

drwxr-xr-x. 2 root root 6 Aug 9 2021 opt

dr-xr-xr-x. 195 root root 0 Oct 2 22:39 proc

dr-xr-x---. 3 root root 140 Sep 29 05:17 root

drwxr-xr-x. 37 root root 1160 Oct 2 22:39 run

lrwxrwxrwx. 1 root root 8 Aug 9 2021 sbin -> usr/sbin

drwxr-xr-x. 2 root root 6 Aug 9 2021 srv

dr-xr-xr-x. 13 root root 0 Oct 2 22:39 sys

drwxrwxrwt. 9 root root 4096 Oct 2 22:40 tmp

drwxr-xr-x. 12 root root 144 May 3 2022 usr

drwxr-xr-x. 20 root root 279 May 18 2022 var

(2)boot目录及dev

bios加电以后,查找到引导磁盘,读取引导的文件系统就是boot,bios查找boot,boot一般是单独的一个分区,

root@servera /# df -h(显示磁盘分区的使用情况 ,参数 -h 表示 人类可读(human-readable),会把容量显示成 KB/MB/GB)

Filesystem 哪个文件系统/分区) Size Used Avail Use% Mounted on(挂载点/目录)

devtmpfs 844M 0 844M 0% /dev(是 Linux 的设备文件系统(动态生成 /dev 下的设备节))

tmpfs 888M 0 888M 0% /dev/shm(tmpfs是内存中的临时文件系统,/dev/shm用来做 共享内存,进程间通信)

tmpfs 355M 9.5M 346M 3% /run(/run 目录,存放运行时数据(PID 文件、socket 等,也是基于内存的临时文件系统)

/dev/vda4 9.4G 1.7G 7.7G 18% /(/是根分区,设备 /dev/vda4 表示虚拟磁盘的第 4 个分区)
/dev/vda3 495M 160M 335M 33% /boot (/boot 分区,存放内核和引导程序。)

/dev/vda2 200M 7.0M 193M 4% /boot/efi(EFI 系统分区,UEFI 引导用,用来存放启动所需的 EFI 文件)

tmpfs 178M 0 178M 0% /run/user/0(用户 root 的运行时数据存放目录,当 root 登录时,会在 /run/user/0 下创建也是临时的,系统重启会清空。)

总结:devtmpfs、tmpfs → 内存型文件系统,重启后数据会消失。/dev/vdaX → 真正的磁盘分区,存储系统数据。/ → 根分区,存大部分文件。/boot、/boot/efi → 系统启动相关分区。/run、/dev/shm → 临时运行时空间。

区分设备文件、分区、目录、挂载点
名称 描述
设备文件 在 Linux 里,一切都是文件,包括硬件,/dev/xxx 目录下的东西就是设备文件,用来代表真实的硬件。例如:/dev/sda → 整个硬盘 ;/dev/sda1 → 硬盘第 1 个分区;/dev/vda2 → 虚拟磁盘 的第 2 个分区;它不是普通的文本文件,而是一个接口,操作它就是在操作真实的硬件。
分区 把一个物理硬盘切成几块区域,每一块就是分区。分区相当于一个"独立的小硬盘",可以格式化成文件系统(ext4, xfs, fat32 等)。例如:/dev/sda → 整个磁盘,/dev/sda1、/dev/sda2 → 分区,分区必须 格式化(mkfs.ext4 / mkfs.xfs)之后,才能存放文件。
目录 Linux 没有 C: D: E: 盘符的概念。所有东西都放在一个 树形目录 里(从 / 根开始)。分区/设备要用之前,必须"挂载"到一个目录上,这个目录就叫 挂载点。比如:/dev/sda1 → /boot,/dev/sda2 → /,/dev/sda3 → /home,这样进入 /home,其实就是在访问 /dev/sda3 这个分区。
挂载点 就是日常看到的文件夹,比如 /home、/etc、/boot/efi。目录本身只是一个逻辑路径。挂载点本质上就是"选择一个目录",把设备的内容贴到这个目录下

root@servera /# lsblk (list block devices,列出系统里的 块设备,硬盘、分区、U 盘等存储设备)

NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS

vda 252:0 0 10G 0 disk

├─v da1 252:1 0 1M 0 part

├─vda2 252:2 0 200M 0 part /boot/efi

├─vda3 252:3 0 500M 0 part /boot

└─vda4 252:4 0 9.3G 0 part /

vdb 252:16 0 5G 0 disk

vdc 252:32 0 5G 0 disk

vdd 252:48 0 5G 0 disk(vdb、vdc、vdd:三块 空的虚拟磁盘,每个 5GB。目前没有分区,也没有挂载点(MOUNTPOINTS 是空的)。如果要用它们,需要先 fdisk 分区,再 mkfs 格式化,然后 mount 到某个目录。)

(3)home目录

参考基础Linux访问命令行的2.区分:普通用户与超级用户提示符

root@servera /# cd home

root@servera home# ll

total 0

drwx------. 4 devops devops 111 Sep 29 05:03 devops

drwx------. 3 student student 77 May 18 2022 student
root@servera home# useradd test(添加一个test用户)

root@servera home# ll

total 0

drwx------. 4 devops devops 111 Sep 29 05:03 devops

drwx------. 3 student student 77 May 18 2022 student

drwx------. 2 test test 62 Oct 3 07:11 test

root@servera home# su - devops

Last login: Mon Sep 29 04:51:24 EDT 2025 on pts/0

devops@servera \~$ ll

total 0

devops@servera \~$ ll -a

total 16

drwx------. 4 devops devops 111 Sep 29 05:03 .

drwxr-xr-x. 5 root root 47 Oct 3 07:11 ...

drwx------. 3 devops devops 17 May 18 2022 .ansible

-rw-------. 1 devops devops 71 Sep 29 05:03 .bash_history

-rw-r--r--. 1 devops devops 18 Nov 5 2021 .bash_logout

-rw-r--r--. 1 devops devops 141 Nov 5 2021 .bash_profile

-rw-r--r--. 1 devops devops 492 Nov 5 2021 .bashrc

drwx------. 2 devops devops 25 Sep 29 05:01 .ssh
devops@servera \~$ ll /home/student/
ls: cannot open directory '/home/student/': Permission denied(普通无法查看其他用户数据,root用户可以看任何人的数据)

devops@servera \~$ ll /home/

total 0
drwx------. 4 devops devops 111 Sep 29 05:03 devops(rwx------所有者拥有完全权限,组内用户和组外用户没有任何权限)

drwx------. 3 student student 77 May 18 2022 student

drwx------. 2 test test 62 Oct 3 07:11 test

(4)bin目录

/bin(根目录下的bin是软连接,虚的)---->/us目录r/bin(挪)

(5)usr目录

usr目录下的内容:

root@servera bin# cd

root@servera \~# cd /usr

root@servera usr# ll

total 140

dr-xr-xr-x. 2 root root 28672 May 18 2022 bin

drwxr-xr-x. 2 root root 6 Aug 9 2021 games

drwxr-xr-x. 3 root root 23 May 3 2022 include

dr-xr-xr-x. 34 root root 4096 May 18 2022 lib

dr-xr-xr-x. 53 root root 32768 May 18 2022 lib64

drwxr-xr-x. 34 root root 4096 May 18 2022 libexec

drwxr-xr-x. 12 root root 131 May 3 2022 local

dr-xr-xr-x. 2 root root 16384 May 18 2022 sbin

drwxr-xr-x. 105 root root 4096 May 18 2022 share

drwxr-xr-x. 4 root root 34 May 3 2022 src

lrwxrwxrwx. 1 root root 10 Aug 9 2021 tmp -> .../var/tmp

符号链接部分

kiosk@foundation0 \~ ll /proc/$/ns

total 0

lrwxrwxrwx. 1 kiosk kiosk 0 Oct 3 10:07 cgroup -> 'cgroup:4026531835'

lrwxrwxrwx. 1 kiosk kiosk 0 Oct 3 10:07 ipc -> 'ipc:4026531839'

lrwxrwxrwx. 1 kiosk kiosk 0 Oct 3 10:07 mnt -> 'mnt:4026531840'

lrwxrwxrwx. 1 kiosk kiosk 0 Oct 3 10:07 net -> 'net:4026531992'

lrwxrwxrwx. 1 kiosk kiosk 0 Oct 3 10:07 pid -> 'pid:4026531836'

lrwxrwxrwx. 1 kiosk kiosk 0 Oct 3 10:07 pid_for_children -> 'pid:4026531836'

lrwxrwxrwx. 1 kiosk kiosk 0 Oct 3 10:07 time -> 'time:4026531834'

lrwxrwxrwx. 1 kiosk kiosk 0 Oct 3 10:07 time_for_children -> 'time:4026531834'

lrwxrwxrwx. 1 kiosk kiosk 0 Oct 3 10:07 user -> 'user:4026531837'

lrwxrwxrwx. 1 kiosk kiosk 0 Oct 3 10:07 uts -> 'uts:4026531838'
ll /proc/$$/ns:是 Linux 命名空间(namespace) 的信息

/proc/$$/ :当前shell进程的/proc目录,两个美元符是当前进程ID

/proc//ns/ → 存放该进程所处的各种 namespace 的符号链接

每一行是一个命名空间的符号链接l rwxrwxrwx),指向类似 'xxx:数字' 的对象。

cgroup 这个链接指向的是一个命名空间对象,类型是 cgroup,ID 是 4026531835。

描述
l 表示这是一个 符号链接(link) 文件,而不是普通文件
rwxrwxrwx 权限,说明任何人都能读写执行(符号链接的权限一般不重要)
. 表示有 SELinux 上下文
1 硬链接数(对符号链接通常是 1)
kiosk kiosk 文件的属主和属组(这里是用户 kiosk)
0 文件大小(符号链接大小一般显示为 0)
Oct 3 10:07 文件最后修改时间
cgroup 文件名(即 namespace 类型)
-> 'cgroup:4026531835' 符号链接指向它

这些代表进程所在的不同 命名空间类型:

cgroup:控制组命名空间,用于资源限制和隔离。

ipc:进程间通信命名空间(System V IPC、POSIX message queues)。

mnt:挂载命名空间(隔离挂载点)。

net:网络命名空间(隔离网卡、IP、路由表等)。

pid:进程 ID 命名空间(容器里常见 PID 隔离)。

pid_for_children:子进程使用的 PID 命名空间。

time / time_for_children:时间命名空间(隔离时钟、CLOCK_MONOTONIC 等)。

user:用户命名空间(隔离 UID/GID)。

uts:UTS 命名空间(隔离主机名和域名)。

后面的数字(如 4026531835)是 namespace 的唯一标识符(inode 号)。

如果两个进程的 /proc//ns/xxx 链接指向同一个 数字,说明它们处于同一个命名空间。

📌为什么要有这些?

Linux 命名空间是 容器技术(Docker, Kubernetes, LXC) 的核心机制,用来提供隔离:让容器里的进程有自己的 网络、挂载、PID、用户、主机名,互不干扰。它和 cgroups 一起构成了 Linux 容器的基础。

👉 举个例子:

你在 Docker 容器里运行 ll /proc/$$/ns,会看到和宿主机不一样的 PID/NET namespace ID。这就是容器"看起来像独立机器"的原因。

相关推荐
Yukinaaaa4 分钟前
以“轮盘数组”思维彻底搞懂并实现阻塞队列
java·服务器·ide·安全·javaee·阻塞队列·轮盘数组
Tian_Hang11 分钟前
Linux基础知识(四)
linux·ide·驱动开发·计算机视觉·硬件工程·动画
无证驾驶梁嗖嗖14 分钟前
ubuntu下测试nvme带宽和健康度
运维
HLC++41 分钟前
Linux文件操作
linux·运维·服务器
InfraSense1 小时前
多门店运维闭环全景架构:监控+告警+工单+SLA+复盘,一套最小可用系统怎么串起来
运维·msp
Sirius Wu1 小时前
当前主流 RAG 架构全景及轻量级向量库选型深度分析
运维·人工智能·架构·aigc
晚风予卿云月1 小时前
【Linux】进程控制(二)——进程等待 全方位详解
linux·运维·服务器·进程控制·进程等待
上天_去_做颗惺星 EVE_BLUE1 小时前
【新 Linux 服务器上手全攻略】系统巡检、存储规划与开发环境初始化
linux·运维·服务器·ubuntu·macos·centos
Titan20241 小时前
Linux文件系统
linux·服务器
团象科技1 小时前
出海内容创作链路实地调研 关于GPU服务器视频渲染的落地观察
运维·服务器