一切从“/”开始
一切源于/以树的形式一直下延申
目录 | 作用 |
---|---|
bin | 常用命令,单用户模式下也能使用的命令,$PATH环境变量下第一个 |
dev | 各种接口接入的设备,如硬盘,鼠标等 |
home | 普通用户家目录默认里面的文件夹以其他用户用户名命名,即各个用户的家目录 |
lib64 | 64位的函数库 |
mnt | 一个挂载光驱等用的路径 |
proc | 进程信息 |
run | 系统启动的临时文件 |
srv | 一些网络服务的数据文件 |
tmp | 共享目录 |
var | 变化频繁的数据,常用来放log |
boot | 开机的配置文件 |
etc | 系统配置文件 |
lib | 函数库 |
media | 挂载设备用的目录和mnt差不多 |
opt | 第三方软件,可以放自己的软件 |
root | root的家目录 |
sbin | 开机过程用到的命令 |
sys | |
usr/local | 用户安装的数据 |
usr/sbin | 开机用不到的命令,$PATH中有 |
usr/share | 帮助和说明文件 |
设备命名规范
硬件设备 文件名称
IDE设备 /dev/hd[a-d]
SCSI/SATA/U盘 /dev/sd[a-p]
软驱 /dev/fd[0-1]
打印机 /dev/lp[0-15]
光驱 /dev/cdrom
鼠标 /dev/mouse
磁带机 /dev/st0或/dev/ht0
硬件设备 | 文件名称 |
---|---|
IDE设备 | /dev/hd[a-d] |
SCSI/SATA/U盘 | /dev/sd[a-p] |
鼠标 | /dev/mouse |
硬盘命名
sda1-sda4
一块磁盘挂载了,第一个挂载的就是sda,第二个就是sdb
一个磁盘,一般很大,不能就这么浪费了,所以得分下区,用来做不同的工作,磁盘的第一个扇区就是专门记录分区信息的,攻击512个字节,446个字节用来记录引导记录,64个字节记录分区信息,2个字节结束符,共计446+64+2=512,64个字节按着规定只能记录四个分区信息,所以每个分区信息占用64,这就是主分区,分为sda1-sda4,不是必须分为4个分区,也可以一个分区,剩下三个位置空着不用,但是如果多于四个,那就麻烦了,需要再找个扇区,记录分区信息,所以,会分出一个16字节专门用于记录剩下的分区信息,这个16字节就是扩展分区,比如五个分区,那就是sda1-sda3主分区,加一个扩展分区,扩展分区没名字,只有对应的逻辑分区有名字,扩展分区指向的扇区,会记录两个分区信息,分为sda5-sda6
文件系统与数据资料
文件系统
常用的ext4 支持1eb,xfs redhat7默认系统,支持18eb
文件存储方式
inode+block
inode 存储文件属性等信息,及文件具体的存储地址 128b
block 存储文件的具体内容 1kb,2kb,4kb
一个文件写入时,先写入到inode里,最后记录上文件的具体地址,具体地址指向的室系统分配的block的地址,一个写完,会再分配一个,以此类推,当文件大小为1kb,block大小4kb,则也占用一个block,因为如果剩下的3kb用于写入其他信息,则另一个文件的inode也会指向这个block,那么就会造成数据混乱。
挂载硬件设备
mount 文件(都是文件,硬件设备也是文件) 目录
所谓挂载,就是让硬盘或者设备以文件形式显示在系统里,比如数据库data目录,需要很大的存储空间,如果一块盘不够用了,那就得增加一块大的,这时就要把新的硬盘挂载到一个目录下,比如/usr/local/data,后续数据库所有的数据都会存在这个硬盘上
挂载信息会保存在/etc/fstab中 可以按着filesystemtable记。
里面的部分内容如下
/dev/cdrom /media/cdrom iso9660 defaults 0 0
/dev/sdb2 /backup ext4 defaults 0 0
值 | 字段 | 作用 |
---|---|---|
/dev/cdrom | 设备文件 | 一般为设备的路径+设备名称,也可以写唯一识别码(UUID,Universally Unique Identifier)blkid 命令查询设备的uuid,只限于格式化后,实际生成中最好使用UUID,这样硬盘换插槽也可以继续用,用路径,会导致换插槽后,不能用 |
/media/cdrom | 挂载路径 | 设备文件挂载地址,需要提前创建好 |
iso9660 | 格式类型 | 文件系统格式,Ext4、XFS、SWAP、iso9660(此为光盘设备) |
defaults | 权限选项 | 若设置为defaults,则默认权限为:rw, suid, dev, exec, auto, nouser, async |
0 | 是否备份 | 是否开机备份 |
0 | 是否自检 | 是否开机自检 |
mount -a 让/etc/fstabb下的所有设备都挂载
文件里配置的需要重启才能生效,所以也需要上述命令让挂载生效。
umount 取消挂载,u后面没n
需要注意的是挂载的不是硬盘而是分区
添加硬盘设备
- 插上硬盘,虚拟机分配硬盘,或者分配其他设备
- fdisk -l 看看设备有没有读到
- fdisk /dev/sdb 管理硬盘
- 然后就是一系列命令,省略
- 都操作完了如果分区没出来,就输入partprob命令,有些时候会存在分区信息没有及时同步到内核的情况,还是不行就重启,前提是在fdisk 命令执行过程中已经看到了分区,并且最后输入了w命令。
- 格式化mkfs,mkfs.文件系统类型 /dev/sdb1/ 将sdb1格式化,一般mkfs按tab会弹出来各种支持的格式,这步必须做。
- mount挂载,及/etc/fstab文件配置
添加交换分区
- 方法和硬盘增加相同,只是格式化时用mkswap
- 挂载时 /dev/sdb2 swap swap defaults 0 0
- 大小一般为内存大小的1.5-2倍
磁盘容量配额
限制分区可写入文件的大小和数量,以此来合理使用硬盘资源,暂时想不到哪会用到这个
软硬方式链接
ln <-s> 链接文件 原始文件
- -s为软连接 不加参数是硬链接
- 软连接就是快捷方式,原文件没了,链接文件也就失效了
- 硬链接基于系统文件管理,linux 文件删除时并没有删除真正的数据而是把文件的inode删除掉了,而硬链接就是新增了一个inode,该128B空间最后记录实际地址的地方与原文件指向同一个地方,不同于复制粘贴,复制粘贴是一个新的文件。
- 硬链接不能跨分区。