Linux文件系统大杂烩

1.我们先来了解一下Linux为什么不同的发行版本中的目录结构基本上都一样呢?

因为Linux有一个组织叫LSB(全称:Linux Standards Base)定义的Linux发行版基础目录名称命名法则及功用固定,这种标准叫做FHS (Filesystem Hierarchy Standard(文件系统目录标准)文件系统层级标准。

2.根文件系统即:rootfs,目录结构:/etc,/usr,/var,/root,/home,/dev

3.文件有两类数据:

元数据:metadata :Super Block  GDT  inode表  inode 位图  block 位图

数据:  data   :Data Block

#元数据和数据不在一个地方存储,(tune2fs -l /dev/sad2)查看占用块的信息字节为单位。一个文件至少占用一个块

4.文件名规则:

文件高亮颜色:蓝色----->目录    绿色----->可执行文件   红色----->压缩文件   浅蓝色----->链接文件     灰色----->其他文件

包括路径在内文件名称最长4095个字节,用/分隔的路径不能 超过255个字节。

除了斜杠和NUL,所有字符都有效.但使用特殊字符的目录名和 文件不推荐使用,有些字符需要用引号来引用它们。

标准Linux文件系统(如ext4),文件名称大小写敏感。例如 :MAIL, Mail, mail, mAiL

以.开头的文件是隐藏文件

5.文件系统结构:

/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

var: variable data files

cache: 应用程序缓存数据目录

lib: 应用程序状态信息数据

local:专用于为/usr/local下的应用程序存储可变数据;

lock: 锁文件 log: 日志目录及文件

opt: 专用于为/opt下的应用程序存储可变数据;

run: 运行中的进程相关数据;通常用于存储进程pid文件

spool: 应用程序数据池

tmp: 保存系统两次重启之间产生的临时数据

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

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

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

6.Linux上的应用程序的组成部分 :

二进制程序:/bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin

库  文  件:/lib, /lib64, /usr/lib, /usr/lib64, /usr/local/lib, /usr/local/lib64

配置 文件 :/etc, /etc/DIRECTORY, /usr/local/etc

帮助 文件 :/usr/share/man, /usr/share/doc, /usr/local/share/man, /usr/local/share/doc

7.Linux下的文件类型:

-:普通文件

d: 目录文件

b: 块设备

c: 字符设备

l: 符号链接文件

p: 管道文件pipe

s: 套接字文件socket

8.绝对路径和相对路径:

绝对路径:以正斜杠开始 完整的文件的位置路径 可用于任何想指定一个文件名的时候

相对路径:不以斜线开始 指定相对当前的工作目录位置 可以作为一个简短的形式指定一个文件名

9.ls命令参数:

功能:列出当前目录的内容或指定目录

用法:ls [options] [files_or_dirs]

Example:

ls -a  包含隐藏文件

ls -l  显示额外的信息

ls -R  目录递归通过

ls -ld 目录和符号链接信息

ls -1  文件分行显示

ls –S  按从大到小排序

ls –u  配合-t选项,显示并按atime 从新到旧排序

ls –U  不排序按目录存放顺序显示

10.文件通配符:

* 匹配零个或多个字符

? 匹配任何单个字符

~ 当前用户家目录

~username 用户家目录

~+ 当前工作目录

~-   : 前一个工作目录

[0-9]:匹配一个数字范围

[a-z]:大写和小写字母

[A-Z]:大写字母

[wxc] 匹配列表中的任何的一个字符

[^wxc] 匹配列表中的所有字符以外的字符

预定义的字符类:

#man 7 glob

[:digit:]:任意数字,相当于0-9

[:lower:]:任意小写字母

[:upper:]: 任意大写字母

[:alpha:]: 任意大小写字母

[:alnum:]:任意数字或字母

[:space:]:空格

[:punct:]:标点符号

11.查看文件状态:使用stat

文件:metadata, data (元数据,数据)

三个时间戳:

access time:访问时间,atime,读取文件内容

modify time: 修改时间, mtime,改变文件内容(数据)

change time: 改变时间, ctime,元数据发生改变

创建空文件和刷新时间

touch命令:touch [OPTION]... FILE...

-a: 仅改变 atime

-m: 仅改变 mtime

-t:STAMP: [[CC]YY]MMDDhhmm[.ss]

-c: 如果文件不存在,则不予创建

12.cp文件和目录:

-i:交互式

-r, -R: 递归复制目录及内部的所有内容;

-a: 归档,相当于-dR --preserv=all

-d:--no-dereference --preserv=links 不复制原文件,只复制链接名

-p:等同--preserv=mode,ownership,timestamp

-v: --verbose ? -f: --force

--preserv[=ATTR_LIST] mode: 权限 ownership: 属主属组 timestamp: links xattr context all

cp [OPTION]... [-T] SOURCE DEST

cp [OPTION]... SOURCE... DIRECTORY

cp [OPTION]... -t DIRECTORY SOURCE...

cp SRC DEST

SRC是文件: 如果目标不存在:新建DEST,并将SRC中内容填充至 DEST中 如果目标存在:

如果DEST是文件:将SRC中的内容覆盖至DEST中 基于安全,建议为cp命令使用-i选项 。

如果DEST是目录:在DEST下新建与原文件同名的文件,并将SRC中内容填充至新文件中

cp SRC... DEST SRC...:多个文件

DEST必须存在,且为目录,其它情形均会出错;

cp SRC DEST SRC是目录:此时使用选项:-r 如果DEST不存在:则创建指定目录,复制SRC目录中所有文件至DEST中;

如果DEST存在:

如果DEST是文件:报错

如果DEST是目录:复制SRC目录中所有文件至DEST中;

13.mv文件和目录:

mv [OPTION]... [-T] SOURCE DEST

mv [OPTION]... SOURCE... DIRECTORY

mv [OPTION]... -t DIRECTORY SOURCE...

常用选项:

-i: 交互式

-f: 强制

14.rm文件和目录:

rm [OPTION]... FILE...

常用选项:

-i: 交互式

-f: 强制删除

-r: 递归

--no-preserve-root

例: #rm -rf /

15.目录常用操作:

tree 显示目录树:

-d: 只显示目录

-L level:指定显示的层级数目

-P pattern: 只显示由指定pattern匹配到的路径

mkdir 创建目录:

-p: 存在于不报错,且可自动创建所需的各目录;

-v: 显示详细信息

-m MODE: 创建目录时直接指定权限;

rmdir 删除空目录 :

-p: 递归删除父空目录

-v: 显示详细信息

rm -r 递归删除目录树

16.设置命令别名:

编辑配置给出的新配置不会立即生效;

bash进程重新读取配置文件:

source /path/to/config_file

.  /path/to/config_file

撤消别名:unalias

unalias [-a] name [name ...]    例如 ~]# unalias bf

如果别名同原命令同名,如果要执行原命令,可使用 “\COMMAND” ’COMMAND’ /PATH/COMMAND:外部命令

17.索引节点:

inode(index node)表中包含文件系统所有文件列表

一个节点 (索引节点)是在一个表 包含有关文件的信息 ( 元数据 ),

包括:

文件类型

权限

UID

GID 链接数(指向这个文件名路径名称个数)

该文件的大小和不同的时间戳

指向磁盘上文件的数据块指针

有关文件的其他数据

#人是通过文件名来引用一个文件

#而文件引用一个是 inode号

#一个目录是目录下的文件名和文件inode号之间的映射

cp和inode

CP和inode: 分配一个空闲的inode号,在inode表中生成新条目在目录中创建一个目录项,将名称与inode编号关联 拷贝数据生成新的文件

rm和inode

链接数递减,从而释放的inode号可以被重用 把数据块放在空闲列表中 删除目录项 数据实际上不会马上被删除,但当另一个文件使用数据块 时将被覆盖。

mv和inode

如果mv命令的目标和源在相同的文件系统,作为mv 命令 用新的文件名创建对应新的目录项 删除旧目录条目对应的旧的文件名 不影响inode表(除时间戳)或磁盘上的数据位置:没有 数据被移动!

如果目标和源在一个不同的文件系统, mv相当于cp和rm

18.查看文件类型:

文件可以包含多种类型的数据

检查文文件类型,然后确定适当的开放命令或应用程序使用

file [options] <filename>...

Option:

-b列出文件辨识结果时,不显示文件名称。

-c详细显示指令执行过程,便于排错或分析程序执行形

-f列出文件中文件名的文件类型

-F使用指定分隔符号替换输出文件名后默认的”:”分隔符

-i输出mime类型的字符串

-L查看对应软链接对应文件的文件类型

-z尝试去解读压缩文件的内容

--help显示命令在线帮助

19.硬链接和软连接:

硬链接:

创建硬链接会增加额外的记录项以引用文件

对应于同一文件系统上一个物理文件

每个目录引用相同的inode号

创建时链接数递增

删除文件时: rm命令递减计数的链接 文件要存在,至少有一个链接数 当链接数为零时,该文件被删除;

不能跨越驱动器或分区

语法: ln filename  [linkname ]

软链接:

一个符号链接指向另一个文件

ls - l的 显示链接的名称和引用的文件

一个符号链接的内容是它引用文件的名称

可以对目录进行

可以跨分区

指向的是另一个文件的路径;其大小为指向的路径字符串的 长度;不增加或减少目标文件inode的引用计数;

语法:ln   -s  filename  [linkname]

时间: 2024-11-07 17:27:32

Linux文件系统大杂烩的相关文章

linux 文件系统笔记

文件格式: windows:PE linux:  ELF 文件系统: rootfs FHS:规定linux应该创建哪些目录 /下的目录结构: /boot: 系统启动相关的文件,如内核,initrd,以及 grub(bootloader) /dev :设备文件(例如:光盘,cdrom) 类型: 块设备:随机访问, 数据块 字符设备:线性访问, 以字节为单位 设备号:主设备号(major),次设备号(minor) /etc:  配置文件(绝大多数为纯文本格式) /home: 用户的家目录,默认为/h

【转】LINUX文件系统剖析

引自:http://www.ibm.com/developerworks/cn/linux/l-linux-filesystem/   在文件系统方面,Linux? 可以算得上操作系统中的 "瑞士军刀".Linux 支持许多种文件系统,从日志型文件系统到集群文件系统和加密文件系统.对于使用标准的和比较奇特的文件系统以及开发文件系统来说,Linux 是极好的平台.本文讨论 Linux 内核中的虚拟文件系统(VFS,有时候称为虚拟文件系统交换器),然后介绍将文件系统连接在一起的主要结构.

Linux文件系统

文件系统与目录结构 文件系统 1.文件和目录被组织成一个单根倒置数结构 2.文件系统从根目录下开始,用"/"表示 3.根文件系统(rootfs):root filesystem 4.文件名称区分大小写 5.以.开头的文件为隐藏文件 6.路径分隔符:/ 7.文件的两类数据: 元数据(metadata)和 数据(data) 8.文件系统分层结构:LSB (Linux Standard Base) 9.FHS(Filesystem Hierarchy System) 文件名规则 1.文件名最

linux文件系统索引节点浅析

索引节点,Inode是Index Node的缩写,存储于文件系统上的任何文件都可以用索引节点来表示,所以也可以说索引节点是整个linux文件系统的基础.操作系统在读取硬盘的时候不是一个块一个块的来读取信息,因为这样做的话效率太低,文件数据都储存在"块"中,那么很显然,我们还必须找到一个地方储存文件的元信息,比如文件的创建者.文件的创建日期.文件的大小等等.这种储存文件元信息的区域就叫做inode,中文译名为"索引节点". 在Linux系统中,文件系统主要分为两部分,

嵌入式 Linux根文件系统移植(一)——Linux文件系统简介

嵌入式 Linux根文件系统移植(一)--Linux文件系统简介 本文对文件系统分析的代码来源于linux 2.6.35.7版本. 一.文件系统的体系结构 文件系统是对存储设备上的数据和元数据进行组织的机制,便于用户和操作系统的交互.Linux支持多种文件系统,文件系统接口实现为分层的体系结构,将用户接口层.文件系统实现和操作存储设备的驱动程序分隔开.Linux文件系统的体系结构如下: 用户空间包含一些应用程序(例如,文件系统的使用者)和 GNU C库(glibc),为文件系统调用(打开.读取.

linux --&gt; 文件系统十问

文件系统十问 参考:http://djt.qq.com/article/view/620 关于Linux文件系统相关的问题: 1.机械磁盘随机读写时速度非常慢,操作系统是采用什么技巧来提高随机读写的性能的? 2.touch一个新的空文件占用磁盘空间吗? 占用的话占用多少? 3.新建一个空目录占用磁盘空间吗?占用多少?和新建一个文件相比,哪个占用的更大? 4.你知道文件名是记录在磁盘的什么地方吗? 5.文件名最长多长?受什么制约? 6.文件名太长了会影响系统性能吗?为什么会产生影响? 7.一个目录

linux文件系统学习总结

linux最优秀的特点在于它是多用户多任务的环境,而且对于linux来讲一切皆文件,提到文件这个概念就免不了提文件相关的权限与属性的概念,那相关文件的属性记录在硬盘的哪个地方呢?这就需要了解linux的文件系统是如何记录文件,如何读取文件. 大家都知道硬盘作为存储介质,如果要使用硬盘存储数据需要对硬盘进行分区,格式化之后才可以存储数据.那为什么要对硬盘进行分区呢?因为我们必须要告诉操作系统:"这块硬盘可以访问的区域是有A柱面到B柱面",只有这样,操作系统才能控制硬盘磁头去A~B范围内的

Vim,find,bash,Linux文件系统的特殊权限2015.8.30作业

一   Vim 1.vim的使用方法 1.1 三种模式化 编辑模式.输入模式.末行模式 1.2 模式转换 编辑模式 --> 输入模式: i:在当前光标所在字符的前面,转为输入模式 a:在当前光标所在字符的后面,转为输入模式 o:在当前光标所在行的下方,新建一行,并转为输入模式 I:在当前光标所在行的行首,转为输入模式 A:在当前光标所在行的行尾,转为输入模式 O:在当前光标所在行的上方,新建一行,并转为输入模式 输入模式 --> 编辑模式:ESC 编辑模式 --> 末行模式:: 末行模式

攻城狮在路上(叁)Linux(二十六)--- linux文件系统的特殊查看与操作

一.boot sector 与 super block的关系: 1.boot sector用于存放引导装载程序,占用1024个字节. 2.super block的大小也为1024字节. 3.若block大小为1k,则boot sector和super block各占一个block. 4.若block大于1K(2K/4K)时,则两者都位于第一个block中. 二.磁盘空间的浪费问题:暂不考虑. 三.利用GUN的parted命令进行分区行为: 因为fdisk不支持高于2TB的分区. 命令格式: pa