linux文件系统

一Linux文件系统概述

Linux文件系统是一种用于存储和组织数据的系统,它允许用户在计算机上创建、访问、修改和删除文件。Linux文件系统采用层次结构,以树状的形式组织文件和目录。这种结构使得文件和目录的管理更加直观和易于理解。

以下是Linux文件系统的一些关键概念:

1. 文件:文件是存储在磁盘上的数据的集合。文件可以是文本文件、图像文件、音频文件等。

2. 目录:目录是一个包含文件和其他目录的容器。目录可以嵌套,形成层次结构。

3. 根目录:根目录是文件系统的最高层次,表示为“/”。所有其他目录和文件都从根目录开始。

4. 绝对路径:绝对路径是从根目录到文件或目录的完整路径。例如,“/home/user/documents/file.txt”就是一个绝对路径。

5. 相对路径:相对路径是从当前目录到目标文件或目录的路径。例如,如果当前目录是“/home/user”,那么“documents/file.txt”就是一个相对路径。

6. 文件权限:Linux文件系统为每个文件分配了一组权限,用于控制用户对文件的访问。权限包括读(r)、写(w)和执行(x)。

7. 文件所有者:每个文件都有一个所有者,通常是创建文件的用户。文件所有者可以设置文件的权限。

8. 文件组:文件还属于一个组,组中的用户可以共享文件的权限。

9. 挂载点:挂载点是将一个文件系统连接到另一个文件系统的过程。这允许用户在不同的磁盘分区或设备之间访问文件。

10. 文件系统类型:Linux支持多种文件系统类型,如ext4、NTFS、FAT32等。每种文件系统类型都有其特点和用途。

二.Linux文件系统基础

Linux 文件系统的特点:
Linux 文件系统采用树形结构,从根目录 root / )开始。
Linux 的虚拟文件系统允许众多不同类型的文件系统共存,并支持跨文件系统的操作。
Linux 的文件是无结构字符流式文件,不考虑文件内部的逻辑结构,只把文件简单地看作是一系列字
符的序列。
Linux 的文件可由文件拥有者或超级用户设置相应的访问权限而受到保护。
Linux 把所有的外部设备都看作文件,可以使用与文件系统相同的系统调用来读写外部设备。
Linux 文件系统的组成 :

/ :是所有文件的根目录;
/bin :存放二进制可执行命令目录;
/home :用户主目录的基点目录,默认情况每个用户主目录都设在该目录下,如默认情况下用户 user01
的主目录是 /home/user01
/lib :存放标准程序设计库目录,又叫动态链接共享库目录,目录中文件类似 windows 里的后缀名为
dll 的文件;
/etc :存放系统管理和配置文件目录;
/dev :存放设备特殊文件目录,如声卡文件,磁盘文件等;
/usr :最庞大的目录,存放应用程序和文件目录;
/proc :虚拟目录,是系统内存的映射,可直接访问这个目录来获取系统信息;
/root :系统管理员的主目录;
/var :存放系统产生的经常变化文件的目录,例如打印机、邮件等假脱机目录、日志文件、格式化后的手
册页以及一些应用程序的数据文件等;
/tmp :存放公用临时文件目录。

三.Linux之挂载

在Linux中,所有的文件都是从根目录开始的,且所有的设备都是文件。例如,一块硬盘是一个文件,这块硬盘上的分区也是一个文件,声卡也是一个文件。这种表示设备的文件叫做设备文件。设备文件一般来说是保存在/dev这个目录中。 一块硬盘是一个设备文件,一般是/dev/sda(第一块);而硬盘上的每一个分区也是设备文件,比如第一个分区叫做/dev/sda1,第二个叫做/dev/sda2

假设你可以直接读写硬盘的设备文件,但是,你得到的是硬盘的原始数据,类似于0,1这样的二进制。因此,你可以直接像修改文件一样修改硬盘的分区表等结构,而每一个分区也是一个设备文件,同样,你得到的也是原始数据。但是,没有人通过手工修改原始数据,来复制文件、删除文件。为了让你操作设备里面的数据,就需要进行挂载。例如,你可以将/dev/sda1挂载到/boot上,驱动程序就会将原始数据转换成能操作的结构,此时,对/boot的修改等价于修改/dev/sda1,只不过你可以进行复制、删除等操作。挂载 : 指的就是将设备文件中的顶级目录连接到 Linux 根目录下的某一目录(最好是空目录),访问此目录就等同于访问设备文件。说明:并不是根目录下任何一个目录都可以作为挂载点,由于挂载操作会使得原有目录中文件被隐藏,因此根目录以及系统原有目录都不要作为挂载点,会造成系统异常甚至崩溃,挂载点最好是新建的空目录

四.Linux文件系统操作系统命令

1. 显示文件命令

a.cat命令格式:cat [选项] ...[文件]...

说明:把多个文件连接后输出到屏幕显示,若加“>文件名”则输出到另一个文件中。

常用选项:-b:从1开始对所有非空输出行进行编号     

                  -n:从1开始对所有输出行编号

                  -s:将连续两行以上的空白行合并成一行空白行

b.more命令格式:more [选项] [文件]

说明:该命令显示文本文件的内容,一次显示一屏,满屏后停下来,可按如下键继续:

(1)Space键:默认显示文本的下一屏内容

(2)Enter键:默认显示文本的下一行内容

(3)d键或CTRL+D:向下显示文本半屏,默认为11行

(4)b键或CTRL+B:默认显示文本的上一屏内容

(5)q键:退出more命令常用选项:-num:指定一个整数,表示一屏显示多少行

    -d:在每屏底部显示提示信息,包括当前显示的百分比,按键提示等                                   

   -c或-p:不滚屏,在显示下一屏之前先清屏

   +num:从行号num开始显示

   +/pattern:定义一字符串,在文件中查找该字符串,从该字符串后显示(如要在a.txt中查找字符串“abc”并从该字符串处显示,则命令为:more +/abc a.txt)

c.less命令格式:less[选项] [文件]

说明:与more命令相似,分屏显示文件内容,less命令允许用户向前或向后浏览文件,按q键退出。

常用选项:

-i:搜索时忽略大小写,除非搜索串中包含大写字母

-I:搜索时忽略大小写

-m:显示读取文件的百分比

-M:显示读取文件的百分比、行号及总行数

-N:在每行前输出行号

-p pattern:定义一字符串,在文件中查找该字符串,从该字符串后开始显示(如要在a.txt中查找字符串“abc”并从该字符串处显示,则命令为:less -p abc a.txt)

d.head命令格式:head [选项] ...[文件]...

说明:用于查看一个文本文件的开头部分,行数由参数值决定,默认是10

常用选项:

-n:显示文件前面n行,不指定此参数显示前10行(如显示a.txt前面5行内容,命令为:head -5 a.txt)

e.tail命令格式:tail [选项] ...[文件]...

说明:用于查看文本文件末尾若干行,行数由参数值决定,默认为10。

常用选项:

-n:显示文件最后面的n行,不指定此参数显示10行(如显示a.txt后5行内容,命令为:tail -5 a.txt)

2. 搜索、去掉重复行命令

a.grep命令 (在文件中搜索内容)格式:grep [选项] 查找模式 [文件]

常用选项:

-c:计算符合匹配字符串的行数

-E:将查找模式解释成扩展的正则表达式,相当于egrep

-F:将查找模式解释称单纯的字符串,相当于fgrep

-i:忽略字符大小写

-n:在显示包含匹配字符串的行之前,标示处该行的行号

-v:反转查找,显示不包含匹配字符串的文本行

-x:只显示全行都严格匹配的行

-R:递归的搜索源目录下所有文件及子目录在grep命令中使用正则表达式可以是模式匹配加入一些规则,能够在抽取信息中加入更多选择

b.uniq命令格式:uniq [选项]... [输入文件[输出文件]]

说明:检查及删除文本文件中重复出现的行

常用选项

:-c:显示输出中,在每行行首加上本行在文件中出现的次数

-d:只显示文件中的各重复行

-u:只显示文件中不重复的各行

3. 比较文件内容命令

diff命令格式:diff [选项]... 文件列表

说明:diff命令比较文本文件,并找出它们的不同

常用选项:

-b:忽略空格造成的不同

-B:忽略空行造成的不同

-i:忽略大小写的不同

-r:当比较的文件都是目录时,递归比较子目录中的文件

4. 复制、删除和移动文件的命令

cp命令格式:cp [选项] 源文件或目录 目标文件或目录

说明:cp命令完成文件的复制。如果源是普通文件,该命令把源文件复制成指定的目标文件或复制到指定的目标目录中.

常用选项:

-a:等同于-dpR-d:复制符号链接(即快捷方式文件)时,把目标文件或目录也建立为符号链接,并指向与源文件或目录链接的原始文件或目录

-f:强行复制文件或目录

-i:覆盖目标文件前需要确认

-n:不覆盖已存在的目标文件

-p:复制源文件或目录内容的同时也复制文件属性

-R或-r:递归复制目录,将源目录下所有文件及子目录都复制到目标位置

rm命令格式:rm [选项] ...文件或目录...

说明:rm命令可以删除文件或目录,删除目录必须要加“-r”选项

常用选项:

-f:强制删除文件或目录

-i:删除文件或目录前提示要用户确认

-r或-R:递归删除目录及其下属各级子目录和相应的文件

mv命令格式:mv [选项] 源文件或目录 目标文件或目录

说明:mv命令可移动文件或目录;更改文件或目录的名称

常用选项:

-i:覆盖文件前需要确认

-f:若目标文件或目录已存在,直接覆盖

-n:不覆盖已存在的文件

-u: 移动或更改文件名时,若目标文件已存在,且文件日期比源文件新,则不覆盖目标文件

 5. 字符串裁剪函数(一般与管道符联合使用)

cut -d "分割字符" -f 字段

参数:

-d   指定我们的分割字符

-f   指定我们显示的区域

示例代码:

tail -1 /etc/passwd | cut -d ":" -f 1,3,4

grep "linux" /etc/passwd | cut -d ":" -f 1,3

6. 管道连接符 |

说明:管道就是将一个命令的输出当作另一个命令的输入,通过 | 连接多个命令。

示例代码:

cat /etc/passwd | grep -n 'linux'

ls /usr/include | grep "stdio.h"

7.echo命令

echo命令是linux中最基础的命令,也是很常用的命令,特别是在写shell脚本的时候,会经常被用到。

作用:输出内容echo -n 表示不换行输出

8. 文件内容统计命令

wc命令格式:wc [选项] ...[文件]...

说明:wc命令统计给定文件中的字节数、字数、行数

常用选项:

-c或–bytes:统计字节数

-m或–chars:统计字符数

-l或–lines:统计行数

-w或–words:统计字数

9. 查找文件和目录

find 命令格式:find [路径名...] [表达式

]说明:find命令用于查找符合条件的文件和目录,路径名是用空各隔开的要搜索文件的目录名清单,表达式包含要寻找的文件的匹配规范或说明。表达式是从左向右求值的,只要表达式中的测试结果为真,则进行下一个测试

常用表达式:-name<范本样式>:指定字符串作为寻找文件或目录的名称注意:可以在指定的路径下查找,例如:find /usr/include -name stdio.h 或 find . -name stdio.h

10. 文件的压缩和备份

a.gzip命令格式:gzip [选项] [文件...]

说明:gzip压缩会产生后缀为“.gz”的压缩文件,并删除原始文件

常用选项:

-c:压缩后文件输出到标准输出设备,不改变原始文件

-d:解开压缩文件

-f:强行压缩文件

-n:压缩文件时,不保存原来的文件名称及时间戳记

-N:压缩文件时,保存原来的文件名称及时间戳记

-r:递归处理,将指定目录下的所有文件及子目录一并处理

b.zip压缩命令

压缩文件

zip test.zip   linked.h   linked.c

解压文件 

unzip   test.zip

c.tar(tape archive)命令格式:tar [选项...] [文件或目录]...

说明:tar是用来建立、还原文件的工具程序,它可以加入、解开备份文件内的文件

常用选项:-A:新增tar文件到已存在的备份文件

-c:建立新的备份文件

-f<备份文件>:列出备份文件的内容

-v:显示指令执行过程

-x:从备份文件中还原文件

-z:gzip操作 .gz

-j:bzip2操作 .bz2

–delete:从备份文件中删除指定的文件

压缩文件 tar -cvf 压缩文件名 文件列表

解压文件 tar -xvf 文件名(-xzvf,-xjvf)

解压到指定目录 tar -xzvf 123.tar.gz -C

11.目录操作命令

cd命令格式:cd [目的目录]

说明:切换目录至目的目录,前提是用户必须拥有进入目的目录的权限。其中目的目录可为绝对路径或相对路径,若目录名称省略,则切换至使用者的主目录或cd ~pwd命令格式:pwd说明:pwd命令不带任何选项或参数,Linux系统用pwd命令来查看“当前所在目录”的完整路径

ls命令格式:ls [选项]... [文件或目录]...

说明:ls命令可列出目录的内容,包括文件和子目录的名称

常用选项:

-a:列出目录下的所有文件和目录,包括以“.”开头的隐藏文件

-A:列出除了“.”(当前目录)及“...”(当前目录的上级目录外的任何文件和目录)

-b:把文件名中不可输出的字符用反斜杠加字符编号的形式列出

-c:输出文件的最后更改时间,并根据这个时间排序

-C:分成多列显示文件和目录-F:加上文件类型的指示符号,其中“*”(星号)表示可执行的普通文件;“/”表示目录;“@”表示符号链接;“|表示管道文件”;“=”表示套接字

-d:将目录像文件一样显示,而不是显示其下的文件

-l:列出文件详细信息,输出信息分成7个字段列表

 

12. 创建和删除目录命令

mkdir命令格式mkdir [选项]... 目录名...

说明:该命令创建由目录名命名的目录,同时设置该目录的权限。要求创建目录的用户在当前目录具有写权限,并且目录名不能是当前目录中已有的目录或文件名称

常用选项:

-m:对新建目录设置存取权限

-p:若所建目录的上层目录不存在,会一并建立

rmdir命令格式:rmdir [选项]... 目录名...

说明:该命令从一个目录中删除一个或多个目录。删除目录时,必须对该目录的父目录具有写权限,目录被删除前应该是空目录

常用选项:

-p:删除指定目录后,若该目录的上层目录已变成空目录,则其一并删除

13.改变文件或目录存取权限命令

在介绍这部分命令之前,我们需要先了解一下Linux系统中的用户和用户组以及存取权限的概念。Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须先向系统管理员申请一个账号,然后以这个账号身份进入系统。Linux内部用UID标识各用户。用户组(group)就是具有相同特征的用户的集合,Linux系统中每个用户都属于一个用户组,系统能对一个用户组中所有用户进行集中管理。在Linux内部用户组用GID标识。Linux系统中规定了4种不同类型用户,分别是文件主、同组用户、其他用户、超级用户。Linux规定了3种存取权限:读(r)、写(w)、执行(x)。用ls -l命令可以显示文件或目录的详细信息,其中第一字段即为文件属性字段。在该字段中,第一个字母表示文件类型,第一个字符之后的三小段由“r”、“w”、“x”组成的即分别表示了文件主权限、组用户权限、其他用户权限。

 

chmod命令格式:chmod [who] [opt] [mode] 文件或目录名...

说明:用于改变文件或目录的访问权限。其中who表示对象,是u(表示文件所有者)、g(表示同组用户)、o(表示其他用户)、a(表示所有用户)这几个字母中的一个或多个。opt表示操作,可以是如下符号:+(添加某个权限)、-(取消某个权限)、=(赋予给定权限并取消原有权限)。mode表示权限,是r(可读)、w(可写)、x(可执行)中的一个或多个的组合。也可用数字设定法改变文件或目录的访问权限,依然是chmod

命令格式:chmod [mode] 文件或目录命...

说明:将rwx看成二进制数,如果该位有权限,用1表示,该位没有权限用0表示,那么rwx r-x r–就可以表示为111 101 100,再将其每三位转换成为一位八进制数,即754

14. 改变用户组和文件主的命令

chgrp命令格式:chgrp [选项]... 所属组 文件或目录...

说明:chgrp命令改变指定文件所属的用户组,其中所属组可以是用户组的ID,也可以是用户组的组名。文件是以空格分开的要改变属组的文件列表,支持通配符。在Linux下一般只有超级用户才能改变该文件的所属组。

常用选项:

-R:递归式地改变指定目录及其下的所有子目录和文件的属组

chown命令格式:chown [选项]... [用户][:[组]] 文件...

说明:chown命令将指定文件的拥有者改为指定的用户或组。用户可以是用户名或用户ID。组可以是组名或组ID。文件是以空格分开的要改变权限的文件列表,支持通配符。在Linux下一般只有超级用户才可以使用该命令

常用选项:-R:递归式改变指定目录及其下的所有子目录和文件的拥有者

例如:将目录/home/usr/dest及其下所有文件和目录所有者改为root

命令:chown -R root /home/usr/des

15. 查看磁盘空间使用情况

df -Th

16. 挂载本地设备文件

sudo mount 设备文件 挂载点目录

17. 卸载设备

sudo umount 设备文件

例如:sudo umount /dev/sda1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值