Linux文件系统及管理

一、Linux系统的文件系统与目录结构

  Linux系统的文件目录结构为一个单根倒置的树结构,具体表现如下图:

从CentOS7开始,以下目录与之前的版本发生变化

◆/bin 软链接指向 /usr/bin

◆/sbin 软链接指向 /usr/sbin

◆/lib 软链接指向 /usr/lib

◆/lib64 软链接指向 /usr/lib64

文件系统从根目录下开始,用“/”表示

◆boot:引导文件存放目录,内核文件(vmlinuz)、引导加载器(bootloader,grub)都存放于此目录

◆/bin:所有用户使用的基本命令;不能关联至独立分区,OS启动即会用到的程序

◆/sbin:管理类的基本命令;不能关联至独立分区,OS启动即会用到的程序

◆/lib:启动时程序依赖的基本共享库文件以及内核模块文件(/lib/modules)

◆/lib64:专用于x86_64系统上的辅助共享库文件存放位置

◆/etc:配置文件目录

◆/home/USERNAME:普通用户家目录

◆/root:管理员的家目录

◆/media:便携式移动设备挂载点

◆/mnt:临时文件系统挂载点

◆/dev:设备文件及特殊文件存储位置

b: block device,随机访问

c: character device,线性访问

◆/opt:第三方应用程序的安装位置

◆/srv:系统上运行的服务用到的数据

◆/tmp:临时文件存储位置

◆/usr: universal shared, read-only data

bin: 保证系统拥有完整功能而提供的应用程序

sbin:

lib:32位使用

lib64:只存在64位系统

include: C程序的头文件(header files)

share:结构化独立的数据,例如doc, man等

local:第三方应用程序的安装位置

bin, sbin, lib, lib64, etc, share

◆/proc: 用于输出内核与进程信息相关的虚拟文件系统

◆/sys:用于输出当前系统上硬件设备相关信息虚拟文件系统

◆/selinux: security enhanced Linux,selinux相关的安全策略等信息的存储位置

二、Linux下的文件类型

◆- 普通文件

◆d 目录文件

◆b 块设备

◆c 字符设备

◆l 符号链接文件

◆p 管道文件pipe

◆s 套接字文件socket

三、文件的3种时间atime mtime ctime

Linux系统中,文件存在3种时间状态属性

1、这3个time的含义:

atime:Access Time 最后一次访问文件(读取或执行)或目录的时间;

mtime:Modofy Time 最后一次修改文件内容(数据)或目录内容(目录内文件列表)的时间;

ctime:Change Time 最后一次改变文件属性(元数据)或目录属性(元数据)的时间;

2、如何查看文件或目录的atime/mtime/ctime

可通过stat命令查看全部3个时间

[root@centos7 data]#stat test.txt
File: ‘test.txt’
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 803h/2051d Inode: 67 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:etc_runtime_t:s0
Access: 2019-07-28 15:25:54.755150776 +0800
Modify: 2019-07-28 15:25:54.755150776 +0800
Change: 2019-07-28 15:25:54.755150776 +0800
Birth: -
[root@centos7 data]#

或可以通过以下命令分别查看:

查看atime: ls -lu filename

[root@centos7 data]#ls -lu test.txt
-rw-r--r--. 1 root root 0 Jul 28 15:25 test.txt
[root@centos7 data]#

查看mcime: ls -l filename

[root@centos7 data]#ls -l test.txt
-rw-r--r--. 1 root root 12 Jul 28 15:29 test.txt
[root@centos7 data]#

查看ctime: ls -lc filename

[root@centos7 data]#ls -lc test.txt
-rw-r--r--. 1 root root 12 Jul 28 15:29 test.txt
[root@centos7 data]#

四、Linux文件系统的inode

1、inode是什么?

  理解inode,要从文件储存说起。

  文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector)。每个扇区储存512字节(相当于0.5KB)。

  操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个"块"(block)。这种由多个扇区组成的"块",是文件存取的最小单位。"块"的大小,最常见的是4KB,即连续八个 sector组成一个block。

  文件数据都储存在"块"中,那么很显然,我们还必须找到一个地方储存文件的元信息,比如文件的创建者、文件的创建日期、文件的大小等等。这种储存文件元信息的区域就叫做inode,中文译名为索引节点

  每一个文件都有对应的inode,里面包含了与该文件有关的一些信息。系统是根据inode号来识别文件。

2、inode包含的信息

  inode包含文件的属性信息(元数据),具体来说有以下内容:

    * 文件的字节数

  * 文件拥有者的User ID

  * 文件的Group ID

  * 文件的读、写、执行权限

  * 文件的时间戳,共有三个:ctime指inode上一次变动的时间,mtime指文件内容上一次变动的时间,atime指文件上一次打开的时间。

  * 链接数,即有多少文件名指向这个inode

  * 文件数据block的位置

3、inode的特性

  • inode也会消耗磁盘空间,所以在硬盘格式化的时候,操作系统会自动将硬盘分为2个区域,一部分用来存放inode信息,一部分存放文件数据。

  • 每个inode节点的大小,一般是128字节或256字节。inode节点的总数,在格式化时就给定,一般是每1KB或每2KB就设置一个inode。

  • 磁盘的每一个独立分区的inode号是相互独立的。

查看每个硬盘分区的inode总数和已经使用的数量,可以使用df -i命令。

[root@centos7 ~]#df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sda2 26214400 131432 26082968 1% /
devtmpfs 228956 391 228565 1% /dev
tmpfs 232906 1 232905 1% /dev/shm
tmpfs 232906 872 232034 1% /run
tmpfs 232906 16 232890 1% /sys/fs/cgroup
/dev/sda3 26214400 4 26214396 1% /data
/dev/sda1 524288 342 523946 1% /boot
tmpfs 232906 9 232897 1% /run/user/42
tmpfs 232906 1 232905 1% /run/user/0
[root@centos7 ~]#

五、硬链接、软链接文件特性及区别

  • 硬链接:同一文件系统上(同一磁盘分区)相同inode编号的不同文件名的文件,对应同一文件系统上相同的block磁盘位置。

  • 软链接:一个符号链接文件指向另外一个文件或者目录,与被指向的文件inode号不相同。

硬链接和软连接的区别:

(1)本质:硬链接:同一个文件多个名字,软连接不同的文件。

(2)硬链接不可以跨分区,软链接可以。

(3)硬链接不支持对目录创建,软链接支持。

(4)相互关系:硬链接相互是独立的关系,软链接相互是依赖的关系。

(5)inode号,硬链接相同,软连接不同。

(6)链接数。硬链接会增长或减少,软链接不变。

(7)路径问题:原始文件的路径。硬链接的相对路径是当前工作目录,软连接是相对路径是根据后面软链接的路径决定。

Linux文件系统及管理的更多相关文章

  1. Linux文件系统和管理-1文件系统目录

    文件系统目录结构 Linux常见目录及用途 bin binary 放的是二进制程序 /usr/bin 和这是同一回事 bin -> usr/bin /bin是 /usr/bin的快捷方式 boo ...

  2. linux 文件系统的管理 (硬盘) 工作原理

    一.系统在初始化时如何识别硬盘 1.系统初始时根据MBR的信息来识别硬盘,其中包括了一些执行文件就来载入系统,这些执行文件就是MBR里前面446bytes里的boot loader 程式,而后面的16 ...

  3. Linux入门基础 #5:Linux文件系统挂载管理

    本文出自   http://blog.csdn.net/shuangde800 ------------------------------------------------------------ ...

  4. Linux文件系统挂载管理

    http://itercast.com/lecture/19 文件系统创建好之后需要挂载到系统中方可使用,windows.Mac系统会自动挂载文件系统,而Linux下一般需要手工挂载或配置系统进行自动 ...

  5. Linux 入门记录:九、Linux 文件系统挂载管理

    一.挂载操作 磁盘或分区创建好文件系统后,需要挂载到一个目录才能够使用. Windows 或 Mac 系统会进行自动挂载,一旦创建好文件系统后会自动挂载到系统上,Windows 上称之为 C 盘.D ...

  6. Linux文件系统和管理-2文件操作命令(中)

    创建空文件和刷新时间 touch touch命令可以用来创建空文件或刷新文件的时间 touch 存在的文件刷新时间,不存在的文件创建空文件 生成指定日期的日志文件 [root@C8-1 ~]# dat ...

  7. Linux文件系统和管理-2文件操作命令(上)

    文件操作命令 文件 文件也包括目录 目录是一种特殊的文件 目录 一个目录名分成两部分 所在目录 dirname 父目录的路径 文件名 basename 本身就是两个命令 [root@C8-1 misc ...

  8. Linux文件系统和管理-2文件操作命令(下)

    移动和重命名文件 mv 命令可以实现文件或目录的移动和改名 剪切的效果 同一分区移动数据,速度很快:数据位置没有变化 不同分区移动数据,速度相对慢:数据位置发生了变化 格式 和cp基本一样 mv [O ...

  9. linux基础-第十三单元 硬盘分区、格式化及文件系统的管理二

    第十三单元 硬盘分区.格式化及文件系统的管理二 文件系统的挂载与卸载 什么是挂载 mount命令的功能 mount命令的用法举例 umount命令的功能 umount命令的用法举例 利用/etc/fs ...

随机推荐

  1. EasyDSS高性能RTMP、HLS(m3u8)、HTTP-FLV、RTSP流媒体服务器解决方案之多方式虚拟直播

    EasyDSS流媒体解决方案之虚拟直播 虚拟直播相对于传统的实时直播的差别在于,实时的直播在于播放的是一个实时的直播流,而虚拟直播,可能适应范围更加的广.虚拟直播,不仅仅可以播放实时的视频直播流,也可 ...

  2. Ubuntu上使用Docker打包镜像

    关于这个一开始会有点懵,直白一点就是,把本地路径下的代码放到docker里面去,然后在docker这个隔离环境中运行调用我们的程序.专业解释请自行检索学习. 第一步:创建容器 docker run - ...

  3. cordova调用第三方应用

    cordova 帮助webapp 达到调用原生系统的功能 项目需求:在项目中调用系统中含有的第三方地图应用 需求其实分为两步: 1. 查找本地地图应用 2.成功调起本地应用 首先需要安装两个插件,安装 ...

  4. pdf转换成jpg不清晰怎么办

    用Photoshop打开pdf文件,然后用“文件”-“另存为”“JPG”.

  5. centos7安装rsync及两台机器进行文件同步

    安装及配置 yum -y install rsync #启动rsync服务 systemctl start rsyncd.service systemctl enable rsyncd.service ...

  6. spark 提交任务报错 Yarn application has already ended! It might have been killed or unable to launch application master

    1.任务是提交在yarn上的,查看 resourceManager页面 有如下信息 Current usage: 58.4 MB of 1 GB physical memory used; 2.2 G ...

  7. Docker容器安装配置SQLServer服务(Linux)

    一:前言 随着不断的对Docker容器的实践和学习,越来越觉得容器的强大,把 SQL Server 数据库服务放在docker容器中,比你自己在宿主服务器上面安装配置一个SQL Server服务器是要 ...

  8. Android Studio中设置与Eclipse中 Ctrl+1 功能类似的快捷键

    Eclipse:Ctrl + 1 Android Studio: Alt + Enter 1. 首先当然是打开设置窗口啦,然后在IDE Settings 下找到Keymap 2. 在Keymap的搜索 ...

  9. 处女篇:自用C#后端SqlHelper.cs类

    自用SqlHelper.cs类,此类来自软谋教育徐老师课程SqlHelper.cs! using System; using System.Collections; using System.Coll ...

  10. 关于使用KubeSphere中的docker配置Harbor仓库http访问docker login登陆报错的解决办法

    # 先进入harbor目录中,停止harbor docker-compose stop # 然后修改docker相关文件 # 第一种方式:修改/etc/docker/daemon.json { &qu ...