初识Linux文件系统

一.文件系统结构


Linux系统层次结构图

/: 根目录,Linux文件系统顶层目录。

/boot: 引导文件存放目录,内核文件、引导加载器都存放于此目录

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

/sbin: 管理类的基本命令;不能关联至独立分区,OS启动即会用到的程序,存放重要性次一级的命令

/lib: 启动时程序依赖的基本共享库文件以及内核模块文件(/lib64用于64位系统)

/etc: 配置文件目录(初始化系统经常访问的配置文件都在这)

/home:普通用户家目录

/root: 管理员的家目录

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

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

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

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

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

/tmp: 临时文件存储位置

/usr: 

/var: 

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

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

注:以“.”开头的为隐藏文件


二.文件类型

以“ls -l”查看文件属性时,最左边第一个首字符用于表示文件类型

- :普通文件

d :目录文件

l:链接文件

c:字符设备

p:管道文件pipe

s: 套接字文件socke



三.绝对路径和相对路径

绝对路径:

以正斜杠开始

完整的文件的位置路径

可用于任何想指定一个文件名的时候

相对路径:

不以斜线开始

指定相对于当前工作目录或某目录的位置

可以作为一个简短的形式指定一个文件名


基名:basename,只取文件名而不要路径

目录名:dirname,只取路径,不要文件名



四.文件系统基本指令

1.显示当前工作目录(printing working directory):

pwd

-P 显示真实物理路径

-L 显示链接路径(默认)

补充:OLDPWD:上一次目录路径


2.更改目录( change directory)

cd

-P 切换至物理路径,而非软链接目录

切换至父目录: cd ..

切换至当前用户主目录: cd

切换至以前的工作目录: cd -


3.列出目录内容

ls [options] [files_or_dirs]

-a 包含隐藏文件

-l 显示额外的信息

-R 目录递归

-ld 目录和符号链接信息

-1 文件分行显示

-S 按从大到小排序

-t 按mtime排序

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

-U 按目录存放顺序显示

-X 按文件后缀排序


4. 查看文件状态

 stat

**文件相关信息:metadata(元数据), data(数据)

每个文件有三个时间戳:

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

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

change time 改变时间,ctime,元数据发生改变(文件的内容没有修改、修改的是属性,类似于

修改权限)

mtime属于元数据ctime的属性。

但是修改ctime不一定会修改mtime时间。

备注:元数据可理解为Windows系统中文件-右键-属性里的各项信息,数据为文件本身


5.确定文件内容

file [options] <filename>...

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

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

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

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

--help 显示命令在线帮助


6.创建空文件和刷新时间

touch [OPTION]... FILE...

-a 仅改变 atime和ctime

-m 仅改变 mtime和ctime

-t [[CC]YY]MMDDhhmm[.ss] 指定atime和mtime的时间戳

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

注:touch 命令用来刷新文件的时间只需要把文件再touch一遍,内容不会消失但时间会刷新


7.复制文件和目录

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

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

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

-i 如果目标已存在,覆盖前提示是否覆盖

-n 不覆盖,注意两者顺序

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

-a 归档,常用于备份功能

-b 目标存在,覆盖前先备份,默认形式为 filename~ ,只保留最近的一个备份

-d  不复制原文件,只复制链接名

-u --update 只复制源比目标更新文件或目标不存在的文件


8.移动和重命名文件

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

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

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

-i 交互式

-f 强制

-b 目标存在,覆盖前先备份

备注:

mv 命令可以实现文件或目录的移动和改名

同一分区移动数据,速度很快:数据位置没有变化

不同分区移动数据,速度相对慢:数据位置发生了变化

mv原理:其实是限制性了cp 拷贝到了目标路径、然后再执行 rm 删除源文件

利用rename 可以批量修改文件名

rename [options] <expression> <replacement> <file> ...

例:

#为所有的conf文件加上.bak后缀:

rename 'conf' 'conf.bak' f*

#去掉所有的bak后缀:

rename '.bak' '' *.bak

9.删除文件

rm [OPTION] ... FILE...

-i 交互式

-f 强制删除

-r 递归

注:使用 rm 命令可以删除文件,挂载点目录是不能够被删除的

        使用了特殊符号作为文件名的文件需要输入绝对路径或转义符 进行删除

        通过 lsof 命令可以查看文件是否被打开。而没有被打开的话就不会有任何提示信息。(删除            文件时发现无法删除,用lsof查看,再找到相关进程kill-9 关闭进程后删除)


安全要求较高的场景下,可以使用shred 安全删除文件

shred [OPTION]... FILE...

-z 最后一次覆盖添加0,以隐藏覆盖操作

-v 能够显示操作进度

-u 覆盖后截断并删除文件

-n # 指定覆盖文件内容的次数(默认值是3次)

10.目录操作

创建目录 

mkdir

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

-v: 显示详细信息

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

删除空目录

rmdir

-p 递归删除父空目录

-v 显示详细信息

注意:rmdir只能删除空目录,如果想删除非空目录,可以使用rm -r 命令,递归删除目录树

显示目录树

tree

-d: 只显示目录

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

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

注:centos最小化安装不带tree命令工具,需额外安装

五.文件元数据和节点表结构


1.inode表结构

每个文件的属性信息,比如:文件的大小,时间,类型等,称为文件的元数据(meta data)。这此元数

据是存放在node(index node)表中。node 表中有很多条记录组成,第一条记录对应的存放了一个文

件的元数据信息

第一个node表记录对应的保存了以下信息:

inode number 节点号

文件类型

权限

UID

GID

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

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

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

有关文件的其他数据

2.目录与inode的关系

目录是个特殊文件,目录文件的内容保存了此目录中文件的列表及inode number对应关系

文件引用一个是 inode号

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

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

节点编号是由各自的分区进行管理的。

所谓的文件夹里面存的数据,是该文件夹中的文件列表和文件的编号。

删除文件其实只是删除的文件节点编号

3.cp与inode的关系

cp 命令:

分配一个空闲的inode号,在inode表中生成新条目

在目录中创建一个目录项,将名称与inode编号关联

拷贝数据生成新的文件

4.rm与inode的关系

rm 命令:

链接数递减,从而释放的inode号可以被重用

把数据块放在空闲列表中

删除目录项

数据实际上不会马上被删除,但当另一个文件使用数据块时将被覆盖

5.mv与inode的关系

如果mv命令的目标和源在相同的文件系统,作为mv 命令

用新的文件名创建对应新的目录项

删除旧目录条目对应的旧的文件名

不影响inode表(除时间戳)或磁盘上的数据位置:没有数据被移动!

如果目标和源在一个不同的文件系统, mv相当于先将旧文件拷贝CP过到新文件路径、再将旧文件删除rm

重要:当inode编号用光时,文件将无法创建,即使硬盘内仍有空间,如下面例子


删除大文件:  cat /dev/null > /var/log/huge.log         

注释:假如后者是个大文且服务正在使用此日志文件,那么把空值覆盖写入后者,直接释放掉空间,不用重启服务



六.硬链接

硬链接本质上就给一个文件起一个新的名称,实质是同一个文件

硬链接特性

创建硬链接会在对应的目录中增加额外的记录项以引用文件

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

每个目录引用相同的inode号

创建时链接数递增

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

件被删除

不能跨越驱动器或分区

不支持对目录创建硬链接

硬链接的本质是只能够在同一个分区上创建,不能够跨分区。

用法:ln filename [linkname ]



七.符号 symbolic (或软 soft)链接

一个符号链接指向另一个文件,就像 windows 中快捷方式,软链接文件和原文件本质上不是同一个文件

软链接特点

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

可以对目录创建软链接

可以跨分区的文件实现

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

引用计数

软链接如果使用相对路径,是相对于原文件的路径,而非相对于当前目录

创建一个软连接和源文件的节点编号不一样,所以它们并不是同一个文件。

软连接的大小是由连接路径来的,和源文件大小并没关系。

用法:ln -s filename [linkname]


八.硬链接和软链接区别总结

1. 本质:

硬链接:本质是同一个文件

软链接:本质不是同一个文件

2. 跨设备

硬链接:不支持

软链接:支持

3. inode

硬链接:相同

软链接:不同

4. 链接数

硬链接:创建新的硬链接,链接数会增加,删除硬链接,链接数减少

软链接:创建或删除,链接数不会变化

5. 文件夹

硬链接:不支持

软链接:支持

6. 相对路径

硬链接:原始文件相对路径是相对于当前工作目录

软链接:原始文件的相对路径是相对于链接文件的相对路径

7. 删除源文件

硬链接:只是链接数减一,但链接文件的访问不受影响

软链接:链接文件将无法访问

8. 文件类型

硬链接:和源文件相同

软链接:链接文件,和源文件无关

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,265评论 6 490
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,078评论 2 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 156,852评论 0 347
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,408评论 1 283
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,445评论 5 384
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,772评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,921评论 3 406
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,688评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,130评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,467评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,617评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,276评论 4 329
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,882评论 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,740评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,967评论 1 265
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,315评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,486评论 2 348

推荐阅读更多精彩内容