Linux系统中的文件种类
我们知道,在Linux系统中,把任何设备都抽象成了文件,屏幕是一个文件,磁盘是一文件,可执行程序也是一个文件.为了更好的区分这些文件,Linux系统把所有文件分为了7类,分别是
7种文件类型
● - 普通文件
● d 目录
● b 块设备文件
使用 命令
ls -l /dev/sda*
查看sd磁盘 a 表示第一块磁盘 ,磁盘写入数据,一次性4kb的写入.
● c 字符设备文件 一个一个字符的写入 如屏幕文件
● l 软连接 (类似于windows的快捷方式快捷方式.lnk)
○ 使用方式: ln -s 连接文件 软连接名
○ readlink 软连接名 可以看到本来软连接里的内容
● p管道文件
○ 是一个伪文件,实际存在于内存缓冲区
○ 使用方式: mkfifo 文件名
○ 如果有两个写操作,一次读操作,按顺序读出来(管道)
● s 套接字文件
● sh shell脚本文件
文件的权限
所有文件权限的种类一般都会有rwx(读写运行)三个,顾名思义 就是可读可写可运行的意思
我们 查看一个目录的详细信息
其中
第一个字母”d“表示这是一个目录
后面就分别是 拥有者 拥有者所在的组 其他人 三种类型的用户对该目录所用的权限,
我们可以看到.该目录的拥有者和拥有者所在的组有读写运行的权利
而其他人只拥有读,运行的权利
对于一个目录的读,写很好理解,但是运行权限是什么呢?
只赋予一个目录”r”可读权限
我们创建一个目录结构如下
并只授予其读权利
我们还是可以查看testmod本身这个目录的情况的
但是查看这个目录下有什么文件会发生什么情况呢?
我们还是可以看到文件下有个mode_dir目录和mode.txt的,但是只能看到它的名字,其他任何情况都无法获得,更别说用cd打开了
只赋予一个文件x(运行)的情况
如果我们只赋予其执行权限呢?
我们发现只能查看此目录的情况,该目录下的任何情况都无法查看
但是我们可以cd,进入到这个目录,当然我们没有读权限,所以没法看testmode目录下的内容,
重点是: 我们之前在testmode目录下创建了一个文本文件mode.txt,和一个目录mode_dir 在testmode目录角度,由于它没有读的权利,所以这些文件相对于testmode目录是”隐藏的” 但是我们仍可以通过 cat来查看这个文件的内容,
原因是mode.txt这个文件本身有自己的权限.(可读可写)
总结
我们习惯于windows上文件的操作方式 : 双击打开一个文件夹才能看到其内容,
然而在linux上,进入一个目录(x)和查看一个目录(r)是两个不相干,相互独立的动作,
如果你记忆力超好, 想打开一个位置在 test1/test2/test3/test4/c.txt的文件,
只需要对test1目录有”进入”的权限即可,
当然没有读的权限话,你得提前知道在test1目录下有哪些东西