【JavaGuide面试总结】Linux篇
- 1.介绍一下inode
- 2.说一下Linux系统的目录结构
- 3.说一下Linux系统的文件类型
1.介绍一下inode
硬盘的最小存储单位是扇区(Sector),块(block)由多个扇区组成。文件数据存储在块中。块的最常见的大小是 4kb,约为 8 个连续的扇区组成(每个扇区存储 512 字节)。一个文件可能会占用多个 block,但是一个块只能存放一个文件。
虽然,我们将文件存储在了块(block)中,但是我们还需要一个空间来存储文件的 元信息 metadata :如某个文件被分成几块、每一块在的地址、文件拥有者,创建时间,权限,大小等。这种 存储文件元信息的区域就叫 inode,译为索引节点:i(index)+node。 每个文件都有一个 inode,存储文件的元信息。
可以使用 stat
命令可以查看文件的 inode 信息。每个 inode 都有一个号码
Linux/Unix 操作系统不使用文件名来区分文件,而是使用 inode 号码区分不同的文件。🥥
简单来说:inode 就是用来维护某个文件被分成几块、每一块在的地址、文件拥有者,创建时间,权限,大小等信息。
2.说一下Linux系统的目录结构
Linux操作系统,一切皆文件🍇
树状目录结构:
- /bin: 存放二进制可执行文件(
ls、cat、mkdir
等),常用命令一般都在这里 - /boot: 存放用于系统引导时使用的各种文件
- /dev: 用于存放设备文件,在 Linux 中访问设备的方式和访问文件的方式是相同的
- /etc: 存放系统管理和配置文件
- /home: 存放所有用户文件的根目录,是用户主目录的基点,比如用户 user 的主目录就是/home/user,可以用~user 表示
- /root: 超级用户(系统管理员)的主目录(特权阶级)
- /sbin: 存放二进制可执行文件,只有 root 才能访问。这里存放的是系统管理员使用的系统级别的管理命令和程序。如
ifconfig
等 - /tmp: 用于存放各种临时文件,是公用的临时文件存储点
- /usr : 用于存放系统应用程序
- /var: 用于存放运行时需要改变数据的文件,也是某些大文件的溢出区,比方说各种服务的日志文件(系统启动日志等)等
- /opt: 额外安装的可选应用程序包所放置的位置。一般情况下,我们可以把 tomcat 等都安装到这里
- /lib : 存放着和系统运行相关的库文件
- /proc: 虚拟文件系统目录,是系统内存的映射。可直接访问这个目录来获取系统信息
- /mnt: 系统管理员安装临时文件系统的安装点,系统提供这个目录是让用户临时挂载其他的文件系统
- /media:linux 系统会自动识别一些设备,例如U盘、光驱等等,当识别后,Linux 会把识别的设备挂载到这个目录下
- /selinux: 这个目录是 Redhat/CentOS 所特有的目录,Selinux 是一个安全机制,类似于 windows 的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的
3.说一下Linux系统的文件类型
Linux 支持很多文件类型,其中非常重要的文件类型有: 普通文件,目录文件,链接文件,设备文件,管道文件,Socket 套接字文件等。
- 普通文件(-) : 用于存储信息和数据, Linux 用户可以根据访问权限对普通文件进行查看、更改和删除。比如:图片、声音、PDF、text、视频、源代码等等。
- 目录文件(d) :目录也是文件的一种,用于表示和管理系统中的文件,目录文件中包含一些文件名和子目录名。打开目录事实上就是打开目录文件。
- 符号链接文件(l) :保留了指向文件的地址而不是文件本身。
- 字符设备(c) :用来访问字符设备比如键盘。
- 设备文件(b) : 用来访问块设备比如硬盘、软盘
- 管道文件§ : 一种特殊类型的文件,用于进程之间的通信。
- 套接字(s) :用于进程间的网络通信,也可以用于本机之间的非网络通信。