Linux系统使用学习笔记:文件系统
1.摘要
今天在翻硬盘时发现了很久之前学习Linux系统使用时做的笔记,主要内容参考《鸟哥的Linux私房菜》。本篇是笔记中关于Linux文件系统的内容,包括分区、目录及文件的基本知识。
2. 分区Pattern
2.1. 分区基础知识
主要启动记录区(Master Boot Record, MBR)
可以安装启动管理程序的地方,有446 bytes
分割表(partition table)
记录整颗硬盘分割的状态,有64 bytes
每个分区对应的文件
主分区1-4
扩展分区5-n:IDE5-63 SATA5-15
2.2. 文件系统类型
ext2/ext3
是Linux适用的档案系统类型。
physical volume (LVM)
这是用来弹性调整档案系统容量的一种机制, 可以让你的档案系统容量变大或变小而不改变原有的档案数据内容
software RAID
利用Linux操作系统的特性,用软件模拟出磁盘阵列的功能
swap
就是内存置换空间!由於swap并不会使用到目录树的挂载, 所以用swap就不需要指定挂载点
vfat
同时被Linux与Windows所支援的档案系统类型
3. 目录
3.1. 目录说明
/ (root, 根目录):
与开机系统有关
以下目录不可与根目录分开 /etc:配置文件 /bin:重要执行档 /dev:所需要的装置文件 /lib:执行档所需的函式库与核心所需的模块 /sbin:重要的系统执行文件 |
/bin
在单人维护模式下还能够被操作的指令。
在/bin底下的指令可以被root与一般账号所使用,主要有:cat, chmod, chown, date, mv, mkdir, cp, bash等等常用的指令。
/boot
这个目录主要在放置开机会使用到的文件,包括Linux核心文件以及开机选单与开机所需配置文件等等。
/dev
任何装置与接口设备都是以文件的型态存在于这个目录当中
比要重要的文件有/dev/null, /dev/zero, /dev/tty, /dev/lp*, /dev/hd*, /dev/sd*
硬件设备:
IDE硬盘 | /dev/hd[a-d] |
SCSI/SATA/USB HDD | $/dev/sd[a-p] |
USB | $/dev/sd[a-p] |
软驱 | $/dev/fd[0-1] |
打印机 |
25针:/dev/lp[0-2] USB:/dev/usb/lp[0-15] |
鼠标 |
USB:/dev/usb/mouse[0-15] PS2:/dev/psaux |
CDROM/DVDROM | /dev/cdrom |
当前鼠标 | /dev/mouse |
磁带机 |
IDE:/dev/ht0 SCSI:/dev/st0 |
/etc
系统主要的配置文件几乎都放置在这个目录内,例如人员的账号密码文件、 各种服务的启始档等等。一般来说,这个目录下的各文件属性是可以让一般使用者查阅的, 但是只有root有权力修改。FHS建议不要放置可执行文件(binary)在这个目录中。比较重要的文件有:/etc/inittab, /etc/init.d/, /etc/modprobe.conf, /etc/X11/, /etc/fstab, /etc/sysconfig/ 等等。
/etc/init.d/
所有服务的预设启动 script 都是放在这里的
/etc/xinetd.d/
这就是所谓的super daemon管理的各项服务的配置文件目录。
/etc/X11/
与X Window 有关的各种配置文件都在这里,尤其是xorg.conf 这个X Server 的配置文件。
/home
这是系统默认的用户家目录(home directory)。
~:代表目前这个用户的家目录,而
~dmtsai :则代表dmtsai 的家目录
/lib
/lib放置在开机时会用到的函式库, 以及在/bin或/sbin底下的指令会呼叫的函式库
/lib/modules/
放置核心相关的模块(驱动程序)
/lost+found
这个目录是使用标准的ext2/ext3文件系统格式才会产生的一个目录,目的在于当文件系统发生错误时, 将一些遗失的片段放置到这个目录下。这个目录通常会在分割槽的最顶层存在, 例如你加装一颗硬盘于/disk中,那在这个系统下就会自动产生一个这样的目录『/disk/lost+found』
/media
/media底下放置的就是可移除的装置。 包括软盘、光盘、DVD等等装置都暂时挂载于此。常见的档名有:/media/floppy, /media/cdrom等等。
/mnt
如果妳想要暂时挂载某些额外的装置,一般建议妳可以放置到这个目录中。 在古早时候,这个目录的用途与/media相同啦!只是有了/media之后,这个目录就用来暂时挂载用了
/opt
给第三方协力软件放置的目录
/proc
这个目录本身是一个『虚拟文件系统(virtual filesystem)』,他放置的数据都是在内存当中, 例如系统核心、行程信息(process)、周边装置的状态及网络状态等等。因为这个目录下的数据都是在内存当中, 所以本身不占任何硬盘空间
/root
系统管理员(root)的家目录。之所以放在这里,是因为如果进入单人维护模式而仅挂载根目录时, 该目录就能够拥有root的家目录,所以我们会希望root的家目录与根目录放置在同一个分割槽中。
/sbin
放在/sbin底下的为开机过程中所需要的,里面包括了开机、修复、还原系统所需要的指令。
/srv
srv可以视为『service』的缩写,是一些网络服务启动之后,这些服务所需要取用的数据目录。 常见的服务例如WWW, FTP等等。
/sys
这个目录其实跟/proc非常类似,也是一个虚拟的文件系统,主要也是记录与核心相关的信息。 包括目前已加载的核心模块与核心侦测到的硬件装置信息等等。这个目录同样不占硬盘容量
/tmp
这是让一般使用者或者是正在执行的程序暂时放置文件的地方。 这个目录是任何人都能够存取的,所以你需要定期的清理一下。
/usr (unix software resource)
与软件安装/执行有关;
/usr/share/doc
/var (variable)
与系统运作过程有关,数据缓存。
3.2. Filesystem Hierarchy Standard (FHS)
可分享的(shareable) | 不可分享的(unshareable) | |
不变的(static) | /usr (软件放置处) | /etc (配置文件) |
/opt (第三方协力软件) | /boot (开机与核心档) | |
可变动的(variable) | /var/mail (使用者邮件信箱) | /var/run (程序相关) |
/var/spool/news (新闻组) | /var/lock (程序相关) |
可分享的:可以分享给其他系统挂载使用的目录,所以包括执行文件与用户的邮件等数据, 是能够分享给网络上其他主机挂载用的目录;
不可分享的:自己机器上面运作的装置文件或者是与程序有关的socket文件等, 由于仅与自身机器有关,所以当然就不适合分享给其他主机了。
不变的:有些数据是不会经常变动的,跟随着distribution而不变动。 例如函式库、文件说明文件、系统管理员所管理的主机服务配置文件等等;
可变动的:经常改变的数据,例如登录文件、一般用户可自行收受的新闻组等
3.3. 目录权限
4. 文件
4.1. 文件种类
- -正规文件(regular file )
- d-目录(directory)
-
l-连结档(link)
类似快捷方式 -
设备与装置文件(device)
b-区块(block)设备档
c-字符(character)设备文件 -
s-数据接口文件(sockets)
通常被用在网络上的数据承接 -
p-数据输送文件(FIFO, pipe)
解决多个程序同时存取一个文件所造成的错误问题
4.2. 文件名
单一文件或目录的最大容许文件名为255 个字符;
包含完整路径名称及目录(/) 之完整档名为4096 个字符。
避免符号* ? > < ; & ! [ ] | \ ' " ` ( ) { }
4.3. 文件权限
r (read)
可读取此一文件的实际内容,如读取文本文件的文字内容等
w (write)
可以编辑、新增或者是修改该文件的内容(但不含删除该文件);
x (execute)
该文件具有可以被系统执行的权限。
4.4. 特殊文件
/etc/fstab
启动挂载点
参数
参数 | 内容意义 |
async/sync | |
异步/同步 | 配置磁盘是否以异步方式运行!默认为async(效能较佳) |
auto/noauto | |
自动/非自动 | 当下达mount -a 时,此文件系统是否会被主动测试挂载。默认为auto。 |
rw/ro | |
可擦写/只读 | 让该分割槽以可擦写或者是只读的型态挂载上来,如果你想要分享的数据是不给用户随意变更的, 这里也能够配置为只读。则不论在此文件系统的文件是否配置w 权限,都无法写入喔! |
exec/noexec | |
可运行/不可运行 | 限制在此文件系统内是否可以进行『运行』的工作?如果是纯粹用来储存数据的, 那么可以配置为noexec 会比较安全,相对的,会比较麻烦! |
user/nouser | |
允许/不允许使用者挂载 | 是否允许用户使用mount 命令来挂载呢?一般而言,我们当然不希望一般身份的user 能使用mount 啰,因为太不安全了,因此这里应该要配置为nouser 啰! |
suid/nosuid | |
具有/不具有suid 权限 | 该文件系统是否允许SUID 的存在?如果不是运行文件放置目录,也可以配置为nosuid 来取消这个功能! |
usrquota | 注意名称是『usrquota 』不要拼错了!这个是在启动filesystem 支持磁盘配额模式,更多数据我们在第四篇再谈。 |
grpquota | 注意名称是『grpquota』,启动filesystem 对群组磁盘配额模式的支持。 |
defaults | 同时具有rw, suid, dev, exec, auto, nouser, async 等参数。 基本上,默认情况使用defaults 配置即可! |
本作品采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可,转载请注明作者及原网址。
抱歉,暂停评论。