【面试总结】Linux篇·原理篇
- 1.介绍一下inode
- 2.说一下Linux系统的目录结构
- 3.说一下Linux系统的文件类型
- 4.如何在Linux上配置一个IP地址
- 5.Linux负载是什么?
- 6.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) :用于进程间的网络通信,也可以用于本机之间的非网络通信。
4.如何在Linux上配置一个IP地址
配置Linux系统的IP地址的方法,主要有以下三种:
ifconfig
ifconfig
命令主要是用来查看网卡的配置信息,因为用它来配置网卡的IP地址时,只会临时生效
setup
setup
命令是 redhat 系列的linux系统(如CentOS)中专有的命令工具。可以使用 setup
命令,来对网络配置中的IP地址、子网掩码、默认网关、DNS服务器进行设置。而且,setup
网络配置工具设置的IP地址会永久生效。
修改网卡的配置文件
直接修改网卡的配置文件,设置方法有两种:
-
自动获取动态IP地址
-
手工配置静态的IP地址
5.Linux负载是什么?
负载(load)是linux机器的一个重要指标,直观了反应了机器当前的状态。
top
或 uptime
等命令会输出系统的平均负载 (Load Average),一般会有三个值,分别代表 1 分钟,5 分钟和 15 分钟的平均负载。
这个值越低越好。负载过高会导致机器无法处理其他请求及操作,甚至导致死机。
一般说线上运行的系统大于 0.7 的时候就要注意了🧨
6.Linux中的软链接和硬链接有什么区别?
软链接相当于建立了一个新的快捷方式文件,该文件有自己的名称和inode以及物理存储的文件数据,文件数据里记录着如何跳转的设置数据,访问该快捷文件会被重新定向到原始文件,删除原始文件,软链文件失效
硬链接相当于为当前文件名对应的文件再建立了一个文件别名,别名对应的inode以及物理数据都是一样的,一旦建立,我们甚至根本无法区分谁是原始文件的原始名称,删除文件的其中一个名称,文件不会丢失,除非把所有的名称都删除。
软连接和硬链接的区别
- 软链接可以为文件和目录(哪怕是不存在的)创建链接;硬链接只能为文件创建链接
- 软链接可以跨文件系统;硬链接必须是同一个文件系统
- 硬链接因为只是文件的一个别名,所以不重复占用内存;软链接因为只是一个访问文件的快捷方式文件,文件内只包含快捷指向信息,所以占用很小的内存
- 软链接的文件权限和源文件可以不一样;硬链接文件权限肯定是一样的,因为他们本来就是一个文件的不同名称而已