文件类型、文件权限、文件系统
一、基本操作命令
- 输入命令的环境:终端
Linux下的终端环境如下:
- [stu@localhost Desktop]:该显示语句表示基本的提示信息,是由[用户名@主机名 当前工作目录名]标识组成,普通用户的标识为$,root用户的标识为#;
- 光标所在位置,可输入命令,命令基本都是小写的英文;
- 使终端环境界面变大:ctrl+shift++;变小:ctrl+shift±
-
基础命令:pwd 、cd 、ls…
pwd:显示当前所在位置的绝对路径
cd 路径:切换当前工作位置
cd … 退回到上一层目录
cd ~ 直接进入到当前用户的家目录
cd - 切换到上一次所在位置,在两个位置之间来回切换,不会一直切换
ls 默认显示当前目录下的内容
clear 清屏
reset 真正的清屏 -
Linux上的一些命令操作和Windows上操作类似,可以看到如下图片所示:
-
帮助手册:man 命令名,例如:man ls
二、Linux文件类型与文件权限
- Linux文件类型
- 普通文件:.c .cpp .h .txt .pdf
- 目录文件:文件夹
- 管道文件:用于进程间通信的一种文件
- 链接文件:相当于Windows上的快捷方式:通过访问快捷方式,访问的是它所指向的源文件
- 设备文件:字符设备文件 、 块设备文件 、套接字
注意
1)Linux上一切皆文件;
2)Linux不以文件的扩展名来区分文件类型;
3)扩展名的两个作用:给用户一个提示;给编译器来使用。
补充:ls -l :显示当前位置下文件的详细信息
例如:
每个文件所显示的详细信息,可分为8个部分,接下来将对每一部分进行解释:
- 属性1:文件类型:d:目录文件;p:管道文件; - :普通文件;l:链接文件;c:字符设备;b:块设备;s:套接字
- 属性2:文件权限。权限值有:r :读权限;w:写权限;x:对于普通文件,表示执行权限,对于目录文件,表示可进入权限; - :无权限;对一个文件而言,操作其的用户可以分为三类:以Downloads的属性2为例:(1)所有者:rwx;(2)同组用户:r-x;(3)其他用户:r-x
- 属性3:对于普通文件,表示链接数;对于目录文件,表示一级子目录的个数
- 属性4:指定文件的所有者
- 属性5:指定文件所属组
- 属性6:文件的大小,单位是字节
- 属性7:文件的最后修改时间
对属性3作以补充:
ls -a :显示所有的文件(包含隐藏文件,文件名是以’ . '开始的)
ls -al :显示所有文件的详细信息
任何一个目录至少有两个子目录:. 、 …
例如显示Downloads下的子目录:
. :表示当前位置;…:上一级位置,这两个并不是特殊的字符,只是给了一个相对路径,在当前目录下找到. 、…
三、文件系统
一个操作系统的三个模块:进程管理、内存管理、文件系统
文件系统:对磁盘空间的一种管理方式
-
Linux的文件系统:EXT4
Linux的文件系统:EXT4:索引式的文件系统
Windows的文件系统:NTFS
U盘的文件系统:FAT32 -
那么文件系统是如何运作的呢?
这与操作系统的档案数据有关。较新的操作系统的档案数据除了档案实际内容外,通常含有非常多的属性,例如Linux操作系统的档案权限(rwx)与文件属性(拥有者、群组、时间参数等)。文件系统通常会将这两部份的数据分别存放在不同的区块,权限与属性放置到inode中,至于实际数据则放置到datablock区块中。另外,还有一个超级区块(superblock)会记录整个文件系统的整体信息,包括inode与 block的总量、使用量、剩余量等。 -
每个inode与block 都有编号,至于这三个数据的意义可以简略说明如下:
superblock:记录此filesystem的整体信息,包括inode/block的总量、使用量、剩余量,以及文件系统的格式与相关信息等;
inode:记录档案的属性,一个档案占用一个inode,同时记录此档案的数据所在的block 号码;
block:实际记录档案的内容,若档案太大时,会占用多个block。
如下图所示:
-
如何通过inode找到档案实际数据呢?
由于每个inode 与block都有编号,而每个档案都会占用一个inode ,inode内则有档案数据放置的block号码。因此,如果能够找到档案的inode的话,那么就会知道这个档案所放置数据的block号码,也就能够读出该档案的实际数据。 -
显示文件的inode节点号命令:ls -i