收藏 分销(赏)

Linux文件系统分析.docx

上传人:人****来 文档编号:4476406 上传时间:2024-09-24 格式:DOCX 页数:18 大小:156.62KB
下载 相关 举报
Linux文件系统分析.docx_第1页
第1页 / 共18页
Linux文件系统分析.docx_第2页
第2页 / 共18页
Linux文件系统分析.docx_第3页
第3页 / 共18页
Linux文件系统分析.docx_第4页
第4页 / 共18页
Linux文件系统分析.docx_第5页
第5页 / 共18页
点击查看更多>>
资源描述

1、Linux文件系统分析Linux文件系统分析1. Linux 磁盘分区和目录 Linux 发行版本之间的差别很少,差别主要表现在系统管理的特色工具以及软件包管理方式的不同。目录结构基本上都是一样的。 Windows 的文件结构是多个并列的树状结构,最顶部的是不同的磁盘(分区),如: C , D , E , F 等。Linux 的文件结构是单个的树状结构 . 可以用 tree 进行展示。 在 Ubuntu 下安装 tree ( sudo apt-get install tree ) , 并可通过命令来查看。每次安装系统的时候我们都会进行分区, Linux 下磁盘分区和目录的关系如下: 任何一个分

2、区都必须挂载到某个目录上。 目录是逻辑上的区分。分区是物理上的区分。 磁盘 Linux 分区都必须挂载到目录树中的某个具体的目录上才能进行读写操作。 根目录是所有 Linux 的文件和目录所在的地方,需要挂载上一个磁盘分区。以下是我们可能存在的一种目录和分区关系:图1:目录和分区关系Q: 如何查看分区和目录及使用情况? fdisk 查看硬盘分区表 df :查看分区使用情况 du: 查看文件占用空间情况Q: 为什么要分区,如何分区? 可以把不同资料,分别放入不同分区中管理,降低风险。 大硬盘搜索范围大,效率低 磁盘配合只能对分区做设定 /home /var /usr/local 经常是单独分区,

3、因为经常会操作,容易产生碎片2. Mount 挂载和 NFS 简介挂载的概念 :当要使用某个设备时,例如要读取硬盘中的一个格式化好的分区、光盘或软件等设备时,必须先把这些设备对应到某个目录上,而这个目录就称为 “ 挂载点( mount point ) ” ,这样才可以读取这些设备,而这些对应的动作就是 “ 挂载 ” 。 将物理分区细节屏蔽掉。用户只有统一的逻辑概念。所有的东西都是文件。 Mount 命令可以实现挂载:mount -fnrsvw -t vfstype -o options device dirQ :所有的磁盘分区都必须被挂载上才能使用,那么我们机器上的硬盘分区是如何被挂载的?A

4、:这主要是它利用了 /etc/fstab 文件。每次内核加载它知道从这里开始 mount 文件系统。每次系统启动会根据该文件定义自动挂载。若没有被自动挂载,分区将不能使用。 如下是我的 /etc/fstab 的定义,主要是根据装机的分区来的:# proc /proc proc defaults 0 0#/dev/sda1 被自动挂载到 /UUID=cb1934d0-4b72-4bbf-9fad-885d2a8eeeb1 / ext3 relatime,errors=remount-ro 0 1# /dev/sda5 被自动挂载到分区 /homeUUID=c40f813b-bb0e-463e-a

5、a85-5092a17c9b94 /home ext3 relatime 0 2#/dev/sda7 被自动挂载到 /workUUID=0f918e7e-721a-41c6-af82-f92352a568af /work ext3 relatime 0 2# 分区 /dev/sda6 被自动挂载到 swapUUID=2f8bdd05-6f8e-4a6b-b166-12bb52591a1f none swap sw 0 0Q :移动硬盘如何挂载?如何挂载一个新的分区?移动硬盘有驱动模块会自动挂载,如果有个新硬盘,要先进行分区,并通过 mount 命令挂载到某个文件夹。如果要自动挂载则可以修改 /

6、etc/fstab 文件 .NFS 简介: NFS 相信在很多地方都有广泛使用,是一个非常好的文件共享方式。我们公司所使用的上传服务就是把文件上传到某台网络服务器上,中间就是通过 NFS 实现。使用 NFS 客户端可以透明的地访问服务器端的文件。 NFS 也是通过 mount 来实现,底层是通过 NFS 通信协议实现。基本原理:图2:NFS基本原理Ubuntu 下面 Ubuntu 下的例子服务端 :$apt-get install nfs-kernel-servervi /etc/exports 添加 nfs 目录 : /personal/nfs_share10.1.60.34(rw,sync

7、,no_root_squash)$sudo exportfs -r$sudo /etc/init.d/portmap start$sudo /etc/init.d/nfs-kernel-server start客户端 :$sudo apt-get install nfs-common$sudo mount 10.19.34.76:/personal/nfs_share /nfsshare 例子:3. 文件类型Linux 下面的文件类型主要有:a) 普通文件 : C 语言元代码、 SHELL 脚本、二进制的可执行文件等。分为纯文本和二进制。b) 目录文件 :目录,存储文件的唯一地方。c) 链接文

8、件 :指向同一个文件或目录的的文件。d) 特殊文件 :与系统外设相关的,通常在 /dev 下面。分为块设备和字符设备。可以通过 ls l, file, stat 几个命令来查看文件的类型等相关信息。4.文件存储结构Linux 正统的文件系统 ( 如 ext2 、 ext3) 一个文件由目录项、 inode 和数据块组成。目录项 : 包括文件名和 inode 节点号。Inode :又称文件索引节点,是文件基本信息的存放地和数据块指针存放地。数据块 :文件的具体内容存放地。Linux 正统的文件系统 ( 如 ext2 、 3 等 ) 将硬盘分区时会划分出目录块、 inode Table 区块和 d

9、ata block 数据区域。 一个文件由一个目录项、 inode 和数据区域块组成。 Inode 包含文件的属性 ( 如读写属性、 owner 等,以及指向数据块的指针 ) ,数据区域块则是文件内容。 当查看某个文件时,会先从 inode table 中查出文件属性及数据存放点,再从数据块中读取数据。站在 2w 英尺视图,文件存储结构大概如下:图3:文件存储结构2w英尺视图其中目录项的结构如下 ( 每个文件的目录项存储在改文件所属目录的文件内容里 ) :图4:目录项结构其中文件的 inode 结构如下( inode 里所包含的文件信息可以通过 stat filename 查看得到):图5:i

10、node结构以上只反映大体的结构, linux 文件系统本身在不断发展。但是以上概念基本是不变的。且如 ext2 、 ext3 、 ext4 文件系统也存在很大差别,如果要了解可以查看专门的文件系统介绍。5. 软连接、硬链接软链接和硬链接是我们常见的两种概念:硬连接 :是给文件一个副本,同时建立两者之间的连接关系。修改其中一个,与其连接的文件同时被修改。如果删除其中 color=red 任意一个 /color 其余的文件将不受影响。软连接 : 也叫符号连接 , 他只是对源文件在新的位置建立一个“快捷(借用一下 wondows 常用词)”,所以,当源文件删除时,符号连接的文件将成为无源之水 -

11、仅仅剩下个文件名了,当然删除这个连接,也不会影响到源文件,但对连接文件的使用、引用都是直接调用源文件的。具体关系可以看下图:图5:软链接和硬链接从图上可以看出硬链接和软链接的区别:1 :硬链接原文件和新文件的 inode 编号一致。而软链接不一样。2 :对原文件删除,会导致软链接不可用,而硬链接不受影响。3 :对原文件的修改,软、硬链接文件内容也一样的修改,因为都是指向同一个文件内容的。6. 文件目录管理命令磁盘和文件空间fdisk df du文件目录与管理cd pwd mkdir rmdir ls cp rm mv查看文件内容cat:cat file查看文件的内容。全程式concatenat

12、e的意思,将文件内容连续输出到屏幕上。第一行到最后一行显示。tac:tac file和cat刚好相反 是从最后一行到第一行的方式查看。cat有个比较不好的地方时当文件比较大时候没办法看清楚,这个时候可以用more或者Less命令。more:more file如果使用grep或者find等命令时,可以配合使用more一页一页的查看。如果看到一半想退出,则敲入q即可退出。less:less fileless比more更有弹性,可以上下翻页。如果只想读取文件的头几行或者文件的末尾几行,可以用head或tail.head n file:读取文件的前n行。tail n file:读取文件末尾n行。以上命

13、令都是用于查看字符文件,二进制文件出来的都是乱码,要看二进制文件的内容,可以用od命令,如查看一个MP3文件里面的内容:od shijiemori.mp3文件目录与权限chmod chown chgrp umask文件查找which:which filename该命令用于查询通过PATH路径到该路径内查找可执行文件。如:Which passwd:查找可执行文件passwdwhereis:whereis -bmsu keyword该命令用于把相关字的文件和目录都列出来。(Linux 会将文件都记录在一个文件数据库里面,该命令式从数据库去查询,所以速度比较快,Linux每天会更新该数据库)loca

14、te:locate filename该命令用于把相关字的文件和目录都列出来。查找数据特别快,也是通过数据库方式来查询。但是数据库一周更新一次,所以可能有些存在数据查不到。可以去修改配置文件。find:find path 参数 keyword该命令用于在指定路径下查找文件。不是通过数据来查询,所以速度会比较慢。7. 常见目录解释Linux 各种发行版的目录结构基本一致,各个目录简单介绍如下:目录描述/根目录/bin做为基础系统所需要的最基础的命令就是放在这里。比如 ls 、 cp 、 mkdir 等命令;功能和 /usr/bin 类似,这个目录中的文件都是可执行的,普通用户都可以使用的命令。/b

15、ootLinux 的内核及引导系统程序所需要的文件,比如 vmlinuz initrd.img 文件都位于这个目录中。在一般情况下, GRUB 或 LILO 系统引导管理器也位于这个目录;启动装载文件存放位置,如 kernels,initrd,grub 。 一般是一个独立的分区 。/dev一些必要的设备 , 声卡、磁盘等。还 有如 /dev/null. /dev/console /dev/zero /dev/full 等 。/etc系统的配置文件存放地 . 一些服务器的配置文件也在这里;比如用户帐号及密码配置文件;/etc/opt: /opt 对应的配置文件/etc/X11:Xwindows

16、系统配置文件/etc/xml:XML 配置文件/home用户工作目录,和个人配置文件,如个人环境变量等,所有的账号分配一个工作目录。一般是一个独立的分区。/lib库文件存放地。bin 和sbin 需要的库文件。类似windows 的DLL 。/media可拆卸的媒介挂载点,如CD-ROMs 、移动硬盘、U 盘,系统默认会挂载到这里来。/mnt临时挂载文件系统。这个目录一般是用于存放挂载储存设备的挂载目录的,比如有cdrom 等目录。可以参看/etc/fstab 的定义。/opt可选的应用程序包。/proc操作系统运行时,进程(正在运行中的程序)信息及内核信息(比如cpu 、硬盘分区、内存信息等

17、)存放在这里。/proc 目录伪装的文件系统proc 的挂载目录,proc 并不是真正的文件系统,它的定义可以参见 /etc/fstab 。/rootRoot 用户的工作目录/sbin和bin 类似,是一些可执行文件,不过不是所有用户都需要的,一般是系统管理所需要使用得到的。/tmp系统的临时文件,一般系统重启不会被保存。/usr包含了系统用户工具和程序。/usr/bin :非必须的普通用户可执行命令/usr/include :标准头文件 /usr/lib:/usr/bin/ 和 /usr/sbin/ 的库文件 /usr/sbin: 非必须的可执行文件/usr/src: 内核源码/usr/X11R6:X Window System, Version 11, Release 6./srv该目录存放一些服务启动之后需要提取的数据

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服