Linux文件系统

1.分类

磁盘真实维护管理数据–真实文件系统
用户查看、打开文件–虚拟文件系统(VFS)
一个虚拟文件系统可以管理多个真实 的文件系统

2.真实文件系统有哪些

  • NTFS(windows)
  • FAT32(windows)
  • exFAT(mac)
  • exT4(linux)

存在问题:如果每次为真实文件系统设置一些操作方法太麻烦了
解决办法:将这些真实文件系统的接口抽象出来形成虚拟文件系统

3.文件是存放磁盘上的数据

  • Linux的文件系统是一套单根目录结构(树结构)。
  • 目录的根基是被称为 **根root **的目录,它写作"/"
  • 文件拥有不同的类型,比如目录文件、普通文件等等(目录也是一种文件)
  • 由文件名组成的字符串,以"/"分隔称为路径。根目录开始的路径称为 绝对路径,当前目录下的路
  • 径称为相对路径。最后一个"/"之前的部分称为目录部分,后面的称为文件部分

4.Linux系统自带目录的含义

目录名含义
/bin存放二进制文件,通常是一些可执行程序
/sys系统文件
/dev设备文件
/etc配置文件和启动脚本
/home普通用户家目录的父目录
/lib系统库文件
/proc特殊的目录,里面的内容是进程内容对文件系统的映射
/usr普通用户可以访问的文件,包括库文件、二进制文件和代码文件等等
/var存储变化很快的文件,比如日志

5.当前工作目录

如果路径的最左边是~,那么路径的根是用户的家目录(即/home/用户名);如果路径的最左边是/,那么路径的根是root目录。当前目录是相对路径的起始位置,也是进程的“当前位置”。使用pwd命令可以显示当前工作目录:

pwd

6.查看当前工作目录下的所有文件

  • 使用ls命令可以显示当前工作目录下的所有文件的文件名
ls
  • ls后面可以添加路径名,这样可以打印对应路径下的所有文件的文件名

熟练使用**tab键**的自动联想功能。当你忘记想要输入的路径的时候,使用tab键会给你新的灵
感。在某些情况下,如果你输入了路径的前缀,使用tab键会自动补全路径

ls /
  • ls命令后面添加-a参数,可以显示隐藏文件(文件名以.开头的文件)

通常将配置文件设置成隐藏文件,目的:让目录看着清爽一点

ls -a
  • ls命令后面添加-l参数,可以显示文件的详细信息
ls -l

image.png

  • 第一个字母用来说明文件的类型,这种方法是和Windows使用后缀来代表文件类型不同的。如果第一字母是d,那么说明这是一个目录文件,如果是-,那么说明时普通文件(包括文本文件和二进制文件)。文件类型还有很多种,例如:块特殊文件、字符特殊文件、命名管道(FIFO)、套接字(socket)和符号链接等
  • 后续的九个字母代表的是权限。依次是代表拥有者的读,写,执行、拥有组的读,写,执行和其他用户的读,写,执行权限。如果文件可读则显示r可写则显示w可执行则显示x,没有相关权限则显示-。如 windows的.txt、.exe
  • 后续的数字代表的是指向这个文件的硬链接数(引用计数)
  • 后续的两个字符串依次代表文件拥有者拥有组
  • 随后的数字代表了文件的所占用的空间,这个属性只对普通文件,目录文件和符号链接有意

义。普通文件的大小可以是0。目录的大小是固定的,在本机中是4096,它和目录下面的文

件大小无关,目录文件主要是存放目录下的文件的文件名。符号链接的大小是它指向的文件
的路径名长度
image.png

  • 接着就是一个时间和日期,说明的是最后修改的时间
  • 最后的字符串说明了文件名字,如果是符号链接,它还会显示指向文件的名字
  • 在ls命令后面添加-lh参数,可以将文件详细信息以“人类可读”的方式来显示,也就是文件的占用空间会

自动根据大小来按照K,M,G的单位显示。

ls -lh

image.png

7.改变当前工作目录

  • 使用cd命令可以改变工作目录。改变目录目的:改变相对路径的起始目录
cd /dev
  • 在dev目录上面使用ls -l指令以后,会发现这个目录下有大量的块特殊文件和字符特殊文件。其中块特殊文件b来表示,字符特殊文件c来表示。特殊文件实际上是硬件设备在文件系统上的抽象,所以特殊文件也叫设备文件
  • 块特殊文件(表示里面可以供存储周边设备)的特点是每次读取都读取一“块”数据,也就是说会设置一个专门的缓冲区来存放数据,典型的块特殊文件有磁盘。字符特殊文件(表示里面可以供存储周边设备)的特点是每次读取都读取一个字符,典型的有键盘、鼠标、打印机等等
  • l表示软链接(快捷方式

Windows从盘符出发定位文件,目录用 \
Linux无论装几个盘都是从根目录,目录用/
如果在物理上确实添加了一块磁盘(磁盘上也有文件系统),为了访问磁盘内容,那么Linux会将磁盘的文件系统的根目录“添加”(实际上是将磁盘内容映射到Linux文件系统里面)到Linux根目录下的某个目录上,这个过程称为
挂载
。使用mount命令可以查看当前系统的挂载信息。

mount
  • 在cd后面添加-,可以回到上次cd之前的目录(连续使用cd - 只能在两个目录之间切换,因为之前目录

是存放在环境变量里面,使用env命令可以查看,每次使用cd命令都会修改环境变量)
image.png

cd -
  • 如何使用cd命令,使工作目录转移到父目录,根目录,家目录?

.代表的是当前目录,.. 代表的是上级目录

cd ..
cd /
cd ~ 或者 cd

~也是绝对路径,等价于/home/用户名

8.创建目录

使用mkdir可以创建一个目录

mkdir 目录名
  • 如果直接去/home下面使用mkdir,它会提示没有权限。能否在一个目录下去添加新的文件,依赖

于用户对目录的写权限,因为在目录下添加文件,实际上是修改了目录文件里面的内容

  • rm删除文件或目录同样也需要写权限
  • 目录文件里面实际上是存储一个链表,其中每个链表结点代表一个文件的文件名和磁盘地址信息

9.删除目录

使用rmdir删除空目录

rmdir 目录名

注意:rmdir不能删除非空的目录

10.硬链接

ls -la # -a才会显示 .以及..目录文件
  • 文件实际是磁盘信息的映射,一份数据可以被多分文件共享,所以删除文件并不一定会释放内存空间,只有当引用计数为0才会释放内存。
  • 对于文件夹而言,一创建后默认的硬链接数都为2,一份文件的硬链接数:.指向本地文件、.. 父文件指向本文件、 其他子目录文件的数量(新建目录文件test可通过cd …/进入到文件夹test中,所以硬链接数加1)。...也是子目录文件,可以用所有的子目录文件数等价于硬连接数
  • 文件系统是由硬链接维系起来的
    • image.png

11.拷贝文件或者目录

使用cp命令可以拷贝文件和目录

cp [选项] src源文件 dest目标路径|目标文件
# 当目标是目录的时候,cp命令会直接在目标目录下拷贝一份副本,文件名和源文件一致
# 当目标是文件的时候,cp命令会拷贝源文件的内容,重命名为目标文件的名字
  • Ubuntu当中,如果cp命令中目标路径已经存在同名文件,那么就会直接覆盖(其他发行版中在选

项中添加-f(force 强制)也可以实现同样的效果),-f强制关闭提示
image.png
防止数据丢失/数据被覆盖,如果希望在覆盖之间进行警告,则应该在选项中添加-i(interactive 交互式)。比如,如果dir1/text1已经
存在,则键入下面的命令:

$cp file1 temp/file -i
# 那么就会出现提示:
cp: overwrite 'temp/file'? 
# 如果输入n或者no就会不覆盖,输入其他则会覆盖

如果源文件是一个目录,那么在选项中必须要添加-r,这里r是recursive(循环递归)的意思,也就是
说添加-r以后,cp命令会递归地将目录下的所有文件都进行拷贝

cp -r dir1 path
# 执行完毕后会出现dir1的副本path/dir1

12.移动文件或者目录

使用mv命令可以移动文件或者目录

mv [选项] 源文件 目标路径|目标文件
  • 执行mv命令的效果和Windows下的剪切–>粘贴的效果一样
  • 和cp命令一样,mv命令会出现覆盖现存文件的情况,mv也可以使用-f或者-i选项来关闭或者开启提醒
  • Linux里面没有专门的重命名命令,使用mv命令移动到原来的目录下面就可以实现重命名了

移动、删除是修改指针的指向,速度比cp快

13.删除文件

使用rm命令可以删除文件

rm [选项] 文件|目录
  • 使用rm,cp和mv导致文件被覆盖或者删除都是 不可恢复 的!
  • 不要以root的身份或者是sudo权限来执行 rm -rf,这会造成不可恢复的后果
  • 和rm以及cp命令一样,rm也可以使用-f选项来实现强制删除,使用-i选项来实现删除前交互提示,
  • 使用-r选项来实现递归删除目录及目录下文件

删除的本质是减少硬连接数,当硬连接数为0才会释放内存,但是数据也不一定会被回收,甚至格式化后数据依然有可能存在,完全销毁数据方法:用磁铁吸一下磁盘或原来数据区域被重新写入

14.树状目录结构显示

首次使用之前需要先安装tree

sudo apt install tree

使用tree命令就可以显示目录的树状结构,查看文件的分布

tree 路径名

-h选项,可以增加文件大小输出
image.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值