第三节 linux:文件系统以及文件操作命令

有一句话: linux上一切皆文件
1文件系统
操作系统3大模块:进程管理,内存管理,文件系统

1.1定义:文件系统是操作系统在存储设备上组织管理文件的方法。

1.2不同操作系统文件系统不同,简单来说linux的文件windows不能直接使用,常见操作系统对于文件系统如下:
linux:EXT4(索引是文件系统)
windows:NTFS
U盘:FAT32

1.3文件系统与磁盘分区格式化
第三节 linux:文件系统以及文件操作命令_第1张图片
1.4文件系统不同数据放在不同区块,linux文件系统分为3个区块:superblock,block,inode,各区块存放数据如下:
第三节 linux:文件系统以及文件操作命令_第2张图片
注意:一个文件对应唯一的inode编号,ls -i为查看文件编号命令

2文件分类
目录文件(d):相当于windows上文件夹
管道文件(p):用于进程间通信
链接文件(-):相当于windows的快捷方式
设备文件:又分为:字符设备文件(c,键盘鼠标等),块设备文件(b,u盘等),套接字(s,用于网络,很少用)
普通文件:上面四类以外的文件,如.c .cpp .h .txt

注意:linux文件有后缀,但不以后缀来区分文件类型(与windows的区别)
后缀作用:用户辨别文件的大概类型;编译器根据不同后缀决定解析文件的方式

3文件的权限:
一个文件可操作的用户分为:文件所有者,同组用户,其他用户

4查看文件类型和权限命令:
文件有8个属性:文件类型,文件权限,链接数,所属者名,组用户名,文件大小,最后修改时间,文件名
ls -l:显示当前位置下的详细信息(包含文件类型,权限)
第三节 linux:文件系统以及文件操作命令_第3张图片
上图属性2为文件权限共九位字母,以三位为单位划分为3部分,从左往右为所有者权限,同组用户权限,其他用户权限,字母含义(权限值):
r(读)
w(写,包括修改)
–(无权限)
x(对普通文件为执行权限,对目录文件为进入权限)

上图ls -l详细文件属性链接:https://blog.csdn.net/qiuxiaonao/article/details/106737985

5文件操作命令
最常用文件类型:普通文件和目录文件,文件操作命令主要以这两种文件为主
5.1创建文件:
普通文件: touch + 文件名
目录文件: mkdir + 文件名
在这里插入图片描述
注意:①文件名可有:字母,数字,下划线,英文的点。但不可出现空格,有空格系统默认创建两个文件。
第三节 linux:文件系统以及文件操作命令_第4张图片

②若有扩展名,需在创建时指定(普通文件一般有扩展名)
③英文大小写有区别
5.2删除文件
普通文件:rm+文件名
目录文件:rmdir +文件名:只能删空目录
rm -r +文件名:可删非空目录
rm -rf +文件名:删除且不提示(有的删除有提示“是否确定删除”)

5.3拷贝
普通文件:cp+ 源文件路径+文件名+目的路径(+新的文件名),新的文件名可省略,省略默认原文件名
目录文件: “cp -r”+源文件路径+目录名+目的路径
注意:①没有给源文件路径默认为当前目录下
第三节 linux:文件系统以及文件操作命令_第5张图片
②若目的路径中已经有拷贝文件,linux中直接覆盖(对比windows会提示覆盖还是跳过)
③要拷贝到当前目录下目的路径用“ . ”

5.4剪切(移动)
普通文件与目录文件一样:mv +源文件路径+文件名+目的路径(+新的文件名)
在这里插入图片描述

5.5重命名
普通文件与目录文件:mv + 源文件路径+ 文件名+源文件路径+新文件名(相当于剪切到原来位置并改名)
在这里插入图片描述
5.6修改属性
文件属性有:文件类型,文件权限,链接数,所属者名,组用户名,文件大小,最后修改时间,文件名
其中可以修改的属性有:文件权限,所属者,组用户和文件名4个
5.6.1修改所属者
普通文件和目录文件:chown + 新所有者名 + 文件名
注意:只有root用户有权限执行该命令,若普通用户输入该命令系统提示不被允许,如下:
在这里插入图片描述5.6.2修改组用户
普通文件和目录文件(只有root用户有权限执行该命令):chgrp + 新组用户名 + 文件名
5.6.3修改权限
9位3组权限,u位所有者权限,g位组用户权限,o位其他用户权限如下:在这里插入图片描述
注意:a代表3组所有权限
修改权限方法:
①字符设定法
chmod + “u/g/o/a” “+/-/=” “rwx子集 ”+文件名
例1:abc1文件去掉所有者写权限命令为:
chmod u-w abc1
第三节 linux:文件系统以及文件操作命令_第6张图片
例2:给abc1所有者加上写权限且去掉组用户读权限
chomd u+w,g-r abc1
例3:abc1 所有者权限为可读可写
chmod u=rw abc1

②数字设定法(9位每一位用0代表无权限,1代表有权限,换算为2进制,3组每组不同二进制结果代表不同权限设置)
第三节 linux:文件系统以及文件操作命令_第7张图片
命令:chmod +“第一组数字”第二组数字“”“第三组数字”+文件名
如:chmod 641 abc1代表把文件abc1的所有者权限为110即rw-,组用户权限为100即r–,其他用户权限为001即–x。
第三节 linux:文件系统以及文件操作命令_第8张图片
5.6.4创建文件时的权限(掩码)
在umask为000的情况下普通文件默认权限为666,目录文件为777。而linux的umask值默认为0002(不看第一个0,即002),为了凑666和777,则创建普通文件时的权限为664,目录文件为775。修改后umask值后,新建文件权限也会变化来凑666和777
查看掩码命令:umask,显示的第一个数字0不看,后三个数字为权限二进制值
修改掩码命令: umask +数字
注意:修改掩码只对普通文件有效,对目录文件无效
在这里插入图片描述

5.7文件搜索
find+路径+选项+条件
常用选项有:
-name:以名字搜索
-user:用户名
-group:组名
-size :大小(-size + “+/-”(指大于/小于) + 数字 + 单位(b/k/M/G))
-mtime + “+/-” + 时间(单位为天):几天内有修改的文件
如:在家目录下搜索名字含“.c”的文件:
find ~ -name “*.c ” (“ * ”为通配符,需要用双引号将含通配符部分包括起来)

搜索同时还可以再过滤(“|”),例如:
find ./dir2020 -size -100k | grep c 指的是
在当前目录下的dir2020文件中搜索大小小于100k并且名字含c的文件

5.7文件编辑
5.7.1命令:
vim + 文件名(普通文件)
注:①也可以用vi,下图为查看快捷方式(alias命令)可看出vi=vim
第三节 linux:文件系统以及文件操作命令_第9张图片
②文件名若为目录文件,执行结果看不懂
第三节 linux:文件系统以及文件操作命令_第10张图片
5.7.2进入vim编辑有三种模式:
命令行模式: 使用 Vim 编辑文件时,默认处于命令模式。此模式下,可使用方向键(上、下、左、右键)或 k、j、h、i 移动光标的位置,还可以对文件内容进行复制、粘贴、替换、删除等操作。
下图处于命令模式:
第三节 linux:文件系统以及文件操作命令_第11张图片
插入模式(输入模式):Vim 可以对文件执行写操作,类似于在 Windows 系统的文档中输入内容。(页面左下角有–INSERT–字样)第三节 linux:文件系统以及文件操作命令_第12张图片

末行模式:又叫编辑模式用于对文件中的指定内容执行保存、查找或替换等操作
第三节 linux:文件系统以及文件操作命令_第13张图片

模式切换:
第三节 linux:文件系统以及文件操作命令_第14张图片
第三节 linux:文件系统以及文件操作命令_第15张图片
第三节 linux:文件系统以及文件操作命令_第16张图片
注:不知道自己处于什么模式时,可以按一次 Esc 键返回命令模式。如果你多按几次 Esc 键后听到"嘀————"的声音,则代表你已经处于命令模式了。

移动光标:上下左右键和hjkl键(后者不可在插入模式应用)

5.8查看文件
more+文件名:显示内容的一页在终端页面(回车显示剩余内容,q退出)
cat+文件名:显示全部内容在终端
less+文件名:输入命令显示文件内容(不在终端),q退出后终端只有命令不显示文件内容
head -数字num 文件名:显示文件前num行
tail -数字num 文件名:显示文件后num行
第三节 linux:文件系统以及文件操作命令_第17张图片

5.9文件压缩与解压
5.9.1压缩:
第一步:打包
tar cf xxxx.tar 需要打包的所有文件名
c指的是创建,f指目标为文件而不是设备等
在这里插入图片描述
第三节 linux:文件系统以及文件操作命令_第18张图片

第二步:压缩
gzip xxx.tar ,执行后形成压缩文件:xxxx.tar.gz
第三节 linux:文件系统以及文件操作命令_第19张图片
5.9.2解压
第一步:解压
gzip -d xxxx.tar.gz
在这里插入图片描述
第二步:释放(解包)
tar xf xxx.tar
第三节 linux:文件系统以及文件操作命令_第20张图片
注:tar命令的选项:
c:创建,
x:释放,
f:目标为文件而不是设备,
v:显示详细过程,
t:只查看包中内容有哪些文件,并不释放,z:GUN版本加入 ,tar的z同时有压缩和解压功能
在这里插入图片描述
(即 xxx.tar.gz 和 xxx.tgz 均为压缩文件)
举例:
第三节 linux:文件系统以及文件操作命令_第21张图片
第三节 linux:文件系统以及文件操作命令_第22张图片
6.cat命令
cat filename :显示文件内容
cat a.c + b.c:a.c和b.c文件合并
cat > hello.c 再输入内容(每行回车,将本行保存至文件。没有回车最后一行输入内容未录入)以ctrl+c结束则hello.c内容为输入内容

你可能感兴趣的:(第三节 linux:文件系统以及文件操作命令)