admin管理员组

文章数量:1558103

Linux文件结构与文件系统

文件结构

/文件系统结构的起始位置,称为根
|–bin 存放了所有用户都可使用的命令
|–boot 系统启动时计算机读取的文件,不轻易更改
|–dev 硬件设备的存储目录
|–etc 存放与系统设置相关的文件
|–home 存放普通用户的家目录,普通用户之间不能互相进入对方的家目录
|–lib 共享的函数库
|–misc 空目录,供管理员存放杂物
|–proc 系统和行与执行程序之间的信息
|–root root用户的家目录
|–sbin 存放管理员专用目录
|–tmp 供任何用户存放临时文件的目录
|–usr 存放系统命令
|–var 存放经常变动的文件,例如日志文件和临时文件
|/media media是媒体这个/media底下放置的就是可移除的装置。 包括软碟、光碟、DVD等等装置都暂时挂载于此。 常见的档名有:/media/floppy, /media/cdrom等等。
/mnt 如果妳想要暂时挂载某些额外的装置,一般建议妳可以放置到这个目录中。在古早时候,这个目录的用途与/media相同啦

文件系统

• Ext3
一款日志文件系统,能够在系统异常宕机时避免文件系统资料丢失,并能自动修复数
据的不一致与错误。然而,当硬盘容量较大时,所需的修复时间也会很长,而且也不能百
分之百地保证资料不会丢失。它会把整个磁盘的每个写入动作的细节都预先记录下来,以
便在发生异常宕机后能回溯追踪到被中断的部分,然后尝试进行修复。
• Ext4
Ext3的改进版本,作为RHEL 6系统中的默认文件管理系统,它支持的存储容量高达
1EB(1EB=1,073,741,824GB),且能够有无限多的子目录。另外,Ext4文件系统能够批
量分配block块,从而极大地提高了读写效率。
• XFS
一种高性能的日志文件系统,而且是RHEL 7中默认的文件管理系统,它的优势在发
生意外宕机后尤其明显,即可以快速地恢复可能被破坏的文件,而且强大的日志功能只用
花费极低的计算和存储性能。并且它最大可支持的存储容量为18EB,这几乎满足了所有需
求。

Linux硬件

命名规则

硬件设备 文件名称
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
•主分区或扩展分区的编号从1开始,到4结束;
•逻辑分区从编号5开始。

挂载硬件设备

含义

就像windows中使用u盘,插到usb接口,文件自动挂在到G盘
然而linux中的硬件设备并不会像windows中的u盘一样,需要用户手动挂载,才可以看文件中的内容

临时挂载

1.挂载mount 源目录 目的目录.开机后消失

[root@localhost ~]# mount /dev/cdrom ./cd

2.查看
(1)直接进入目录查看
(2)mount | grep 目的目录

[root@localhost ~]# mount | grep ./cd 
/dev/sr0 on /root/cd type iso9660 (ro,relatime)

3.取消挂载 unmount 源目录

[root@localhost ~]# umount ./cd

开机挂载

1.进入开机挂载文件/etc/fastab
2.在文件的最后一行以与上面相同的方式写配置信息
字段 意义
设备文件 一般为设备的路径+设备名称,也可以写唯一识别码(UUID,Universally Unique Identifier)
挂载目录 指定要挂载到的目录,需在挂载前创建好
格式类型 指定文件系统的格式,比如Ext3、Ext4、XFS、SWAP、iso9660(此为光盘设备)等
权限选项 若设置为defaults,则默认权限为:rw, suid, dev, exec, auto, nouser, async
是否备份 若为1则开机后使用dump进行磁盘备份,为0则不备份
是否自检 若为1则开机后自动进行磁盘自检,为0则不自检
3.查看开机挂载情况

[root@localhost cd]# mount -a
mount: /dev/sr0 写保护,将以只读方式挂载

硬盘知识

1.硬盘分区与格式化:(windows可以 我的电脑 管理 磁盘管理 来查看)
(1)硬盘分区的好处:便于查看和管理文件,病毒一般不会跨分区感染,更安全。
(2)硬盘分区的种类:主分区和扩展分区,扩展分区下又有很多的逻辑分区。
<1>一个主分区作为扩展分区再来细分他。主分区+扩展分区<=4
<2>扩展分区不能存储信息,只能包含逻辑分区
(3)格式化好处:我们看到的文件顺序是逻辑顺序,在磁盘上并不是这样存储的,在磁盘上是散乱的存储。每个分区都有一个分区列表,用来表示哪几个分区组合起来就是一个文件整体。
(4)格式化原理:分区以后继续更加精细的分并且制定文件系统。每个分区都被分成等大小的数据块(Block),每块4KB(默认,还有1,2)大小。一个10k的数据可以这样存储。最后一个块只占用了2k,且不能再存储其他数据

2.硬盘分区与格式化
(1)分区
<1>添加第二块硬盘并且查看
虚拟机属性->添加->硬盘->下一步到头 重启(回复快照后添加的多余的硬盘消失)

[root@localhost ~]# ll /dev/sd?
brw-rw----. 1 root disk 8,  0 2月  26 11:12 /dev/sda
brw-rw----. 1 root disk 8, 16 2月  26 11:12 /dev/sdb

<2>分区 fdisk 设备名
fdisk [选项] <磁盘> 更改分区表
fdisk [选项] -l <磁盘> 列出分区表
fdisk -s <分区> 给出分区大小(块数)
开始分区:
m 查看全部可用的参数
n 添加新的分区
d 删除某个分区信息
l 列出所有可用的分区类型
t 改变某个分区的类型
p 查看分区信息
w 保存并退出
q 不保存直接退出

[root@localhost ~]# fdisk /dev/sdb
添加分区 a
制定主分区还是扩展分区 默认
指定分区号 默认
指定起始位置 默认
指定结尾分区 指定分区大小,以快为单位或大小为单位,一个块是512kb。数字/+多少G/M/K
保存 w
查看 p

最常用就是 n创建,w保存,p查看

(2)格式化指定文件系统,mkfs.磁盘格式 分区文件

[root@localhost ~]# mkfs.xfs /dev/sdb2

(3)更新partprobe查看分区表lsblk

[root@localhost ~]# partprobe
Warning: 无法以读写方式打开 /dev/sr0 (只读文件系统)。/dev/sr0 已按照只读方式打开。
[root@localhost ~]# lsblk

3.挂载
(1)临时挂载
(2)开机启动挂载,通常挂载在/mnt下的某个目录下
<1>通过文件位置挂载
<2>通过设备的唯一标识符UUID挂载
a.获取UUID

[root@localhost ~]# blkid /dev/sdb1
/dev/sdb1: UUID="53b33ce5-8be8-48b3-8f5b-cbed038c51c2" TYPE="xfs"

b.UUID充当挂载源。模仿/boot的挂载

/dev/mapper/centos-root /                       xfs     defaults        0 0
UUID=497a90e4-11bc-41e5-a889-27103b59443d /boot                   xfs     defaults        0 0
/dev/mapper/centos-swap swap                    swap    defaults        0 0
UUID=496e4c08-d5f7-45bb-bfb5-8f51c23efa2e /mnt/sdb              xfs     defaults        0 0
~                                                                                                                            
~                                                              

c.查看lsblk,显示挂载情况。df -h 显示当前所有磁盘被占据的情况。如果加位置会显示哪个位置所在的磁盘被占据的情况。du -sh也可以查看

[root@localhost mnt]# du -sh ./sdb/
0	./sdb/
[root@localhost mnt]# df -h ./sdb/
文件系统        容量  已用  可用 已用% 挂载点
/dev/sdb1        20G   33M   20G    1% /mnt/sdb

虚拟内存知识

什么是虚拟内存

查看

[root@localhost ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:            972         133         695           7         144         675
Swap:          2047           0        2047

计算机可以把数据分为几类:最最常用的放在CPU缓存里,最常用的放在内存里,不常用的放在硬盘里,这些设备的读取效率依次递减,这样可以有效提升资源使用率。
而虚拟内存,就是放入硬盘的这部分东西组成的一个逻辑概念.在WINDOWS里面,它是通用一个交换文件来实现的.而在LINUX系统,它则是一个固定的分区.
对于WINDOWS系统来说,这个文件的存在,等于增加了内存的容量.只不过,这部分容量,用起来很慢(因为硬盘是机械设备).在逻辑上,这部分硬盘空间,充当了内存的角色,所以叫虚拟内存.

设置虚拟内存

1.添加一块没有挂载的分区.
2.修改分区的类型,修改为swap类型。普通分区需要格式化,这个交换分区设置为linux swap文件系统。
fdisk中t修改文件类型,swap对应82.

3.关闭原本的系统的虚拟内存。先查看所在位置/dev/fstab查看swap分区的位置

[root@localhost ~]# swapoff /dev/mapper/centos-swap 

4…把这个分区/dev/sdb1作为虚拟内存

[root@localhost ~]# mkswap /dev/sdb1
[root@localhost ~]# swapon /dev/sdb1
[root@localhost ~]# free -m

5.挂载

UUID=497a90e4-11bc-41e5-a889-27103b59443d /boot                   xfs     defaults        0 0
#/dev/mapper/centos-swap swap                    swap    defaults        0 0
UUID=b8eca538-d5f3-480c-9b72-7a71a3b77c06 swap swap defaults 0 0#虚拟内存
UUID=40cf5357-5f78-484f-a8e7-a67cc9168339 /mnt/sdb2             xfs     defaults        0 0#第二块硬盘

磁盘容量配额,也可以用(我用不了不知道为什么)

软限制:当达到软限制时会提示用户,但仍允许用户在限定的额度内继续使
用。
• 硬限制:当达到硬限制时会提示用户,且强制终止用户的操作
1.为普通磁盘分区添加配额功default后面加上,uquota
2。限制xfs_quota -x -c ‘limit bsoft=3m bhard=6m isoft=3 ihard=6 eagle’ /newFS
分别表示 软限制文件大小,硬限制文件大小,软限制文件数量,应限制文件数量, 用户,分区位置。
3.查看分区被限制 xfs_quota -x -c report 分区

[root@localhost ~]# vi /etc/fstab
#
/dev/mapper/centos-root / xfs defaults 0 0
UUID=2f1fac57-2ddf-46d6-be6d-49b82acaa541 /boot xfs defaults 0 0
/dev/mapper/centos-swap swap swap defaults 0 0
/dev/sdb1 /newFS xfs defaults,uquota 0 0
/dev/sdb2 swap swap defaults 0 0
[root@localhost ~]# xfs_quota -x -c 'limit bsoft=3m bhard=6m isoft=3 ihard=6 eagle' /newFS
[root@localhost ~]# xfs_quota -x -c report /newFS/

软硬链接

1.软硬链接的区别
(1)在文件系统中,一个文件在物理结构上并不是连续的。实际上是文件名作为一个指针指向文件的内容。
软连接就是一个新的文件名指向原本的文件名。(windows中的快捷方式)
硬链接就是一个新的文件名指向原本的文件内容。
(2)文件删除实际上是释放文件名的指向,文件内容会记录指向自己的指针,如果指针个数为0,则文件内容的空间被释放了。
因此,如果删掉了原本的文件,软链接无法找的文件了,而硬链接可以

2.链接方式 ln 参数 源文件 目的文件
参数 作用
-s
创建“符号链接”(如果不带-s参数,则
默认创建硬链接)
-f 强制创建文件或目录的链接
-i 覆盖前先询问
-v 显示创建链接的过程

[root@localhost sdb]# ln -s 1 2
[root@localhost sdb]# ln  1 3
[root@localhost sdb]# ll
总用量 0
-rw-r--r--. 2 root root 0 2月  26 12:59 1
lrwxrwxrwx. 1 root root 1 2月  26 13:01 2 -> 1
-rw-r--r--. 2 root root 0 2月  26 12:59 3
-rw-r--r--. 1 root root 0 2月  26 12:31 test.txt
[root@localhost sdb]# ln 1 ..

本文标签: 文件系统Linux