关于Linux的文件和目录

前言

Linux的文件和和目录与Windows有点不同。

目录与文件的权限

用一张表来说明

组件内容r权限w权限x权限
文件详细数据读取文件的内容修改文件内容执行文件内容
目录文件名读到文件名修改文件名进入该目录

文件

由上表,对文件而言,它本身是不具备删除文件,修改文件名的权限。它只是对文件里面的内容有权限。

例如,一个表格文件,对一个具有rwx权限的用户而言,他只能读取,编辑修改表格里面的数据。但是,对这表格文件,这个用户,若只是有这个文件的rwx权限,他就不能删除和修改名字。

这一方面来看的话,我觉得文件,就类似于一张A4纸,你可以在上面写写画画,或者读上面的内容。若上升到目录的权限,就相当于,跳出这张纸,我们可以给这张纸命名,或把它丢进垃圾桶。

执行权限,因为Linux它不像Windows,一个文件是否具有执行能力,在Windows下,直接查看后缀名就好了,而Linux后缀名都不是很重要,主要就是看它的文件是否具有执行权限。

目录

由上表,对目录而言:

r权限,能读取到该目录下的文件名,用ls命令展示出来,没有r权限的话,只要你知道你要使用的文件名也是可以的;

w权限,能建立新的文件与目录,能删除已经存在的文件与目录,能改文件与目录的名字,移动目录与文件的位置;

x权限,能进入该目录。

哈哈哈哈哈,没有x权限,大概w权限也没什么用了吧,因为不能cd命令进入目录。

但是,有一点,若,你有w权限,emmmmm,你可以删除整个目录,不管目录里的文件是什么,就算,里面有一个,像这样

-rwx------.  1 root root    0 7月  27 01:10 test

root用户才能操作的文件,以你对这个目录的w权限都能删除它。

所以,w权限不能随便给。一般给r与x权限就好了。

Linux的文件种类

常规文件(regular file)

第一个字符为 -

包括纯文本文件(ASCII),可以直接用cat命令读取文件内容

二进制文件(binary),可执行文件,不包括脚本

数据文件(data),可以用last命令读取文件内容,程序运行时读取的文件

目录(directory)

第一个字符为 d

目录嘛,emmmmm,就是相当于Windows里的文件夹

链接文件(link)

第一个字符为 l

类似于Windows中的快捷方式

设备与设备文件(device)

通常位于/dev的目录下,分为两种:

区块(block)设备文件,存储数据,提供系统随机读取的接口设备,例如,你的硬盘sda。第一个字符为 b

字符(character)设备文件,串行端口的接口设备,例如,鼠标键盘,这些设备一次性读取,不能截断输出,像鼠标,它的光标在屏幕上是平滑的移动,而不是跳跃式的闪现。第一个字符为 c

数据接口文件(sockets)

第一个字符为 s

通常位于/run/tmp的目录下,通常用在网络上数据交换

数据输送文件(FIFO,pipe)

第一个字符为 p

通常是为了解决多个文件同时读写一个文件所造成的错误问题

Linux文件扩展名

sh,脚本或批处理文件

Z,tar,tar.gz,zip,tgz,压缩文件

html,php:分别代表html与php语法的网页文件

。。。。。。

提一句Linux的文件名,Linux的文件名最大允许255个字节,大概也就是128个汉字,所以,你可以用文件名把这个文件的作用描述完。emmmmm,尽量避免特殊字符,因为Linux中的特殊字符有很多作用,特别是命令行下。

Linux的目录

Linux默认有许多目录吧,分区的时候介绍了一部分,但是并不完整。

其实,Linux的目录基本都是按FHS(Filesystem Hierarchy Standard)标准规范的。

他们将目录制定了标准,如下

可分享(shareable)不可分享(unshareable)
不变(static)/usr(软件存放)/etc(配置文件)
/opt(第三方辅助软件)/boot(启动与内核文件)
可变(variable)/var/mail(用户邮箱)/var/run(程序相关)
/var/spool/news(News spool directory)/var/lock(程序相关)

可分享:可以分享给其它系统挂载目录,例如,执行文件和用户邮件

不可分享:只与自己的系统有关

不变:不是经常变动的文件,如,函数库,文件说明等等

可变:经常修改的数据,如,news,日志等等

所以,FHS也仅仅定义出

/ :根目录,与系统启动,还原,修复相关

/usr :与软件安装执行有关

/var :与系统运行过程有关

FHS建议用户 / 目录越小越好,这样有较好的性能。

关于FHS的分区建议

目录树

就三个特性:

目录树的起始点为根目录

每个目录不仅能挂载本地分区的文件系统,还能挂载网络的文件系统

每个文件在此目录树中的文件名独一无二

关于挂载网络的文件系统,emmmmm,某些云盘提供商支持挂载到我的Linux系统中,这样就可以方便的管理和读取你的云盘,给你的系统扩容。

Last modification:December 12th, 2020 at 10:36 pm