1、Linux文件层次结构
在Linux根目录下有21个子目录,每个子目录的作用下文中有介绍,在这里简单介绍几个命令:
ls :显示当前目录下的文件;
ls -a :显示当前目录下的所有文件;
- 文件名以“.”开头的为隐藏文件;
- “.“代表当前目录;
- “..” 代表上一级目录;
pwd :显示当前目录的绝对路径;
- 绝对路径:从根目录开始列出所有路径;
- 相对路径:从当前目录开始列出所有路径。
cd :切换目录。
2、文件类型
文件类型 | 符号表示 | 举例 |
---|---|---|
普通文件 | - | .h .c .cpp .txt |
目录文件 | d | 文件夹 |
管道文件 | p | 进程间通讯 |
链接文件 | l | 软连接和硬链接 |
块设备文件 | b | |
字符设备文件 | c | 注:块设备文件、字符设备文件、套接字文件均属于设备文件 |
套接字文件 | s |
通过命令 ls -l 可显示文件属性,包括文件类型、文件权限、文件大小等。
- 文件类型有 - 、 d、 p、 l、 b、 c、 s,在上述内容中有具体描述;
- 文件权限有 r(读权限)、w(写权限)、x(可执行权限)等。文件权限三个为一组,第一组表示所有者权限,中间组表示组用户权限,最后表示其他用户权限。这里的“-”表示无权限,也就是说没有这一项权限;
- 文件权限后的数字,如果是普通文件表示连接数,如果是目录文件表示其第一级子目录数;
- 用户后边的数字表示文件大小,单位为字节;
- 时间表示文件最后修改时间。
3、根目录下其子目录的作用
子目录 | 作用 |
---|---|
/home | 所有普通用户的家目录 |
/home/stu | stu的家目录 |
/bin | 命令所对应的可执行文件 |
/etc | 系统的配置文件 |
/proc | 虚拟目录:内存的映射(进程单位) |
/root | root用户的家目录 |
/dev | 所有的设备文件 |
/lib | 系统使用的库文件 |
/usr | 系统安装的软件 |
4、Ext2系统
Ext2是Linux默认的文件系统。
文件除了实际内容外,还有文件属性等内容。文件系统通常将权限与属性放到inode中,记录实际数据的存储位置,即block编号,实际数据放置在data block区块中,另外还有一个超级区块(superblock)会记录整个文件系统的整体信息,包括inode与block的总量、使用量、剩余量及文件系统信息等。
假设某一个文件的属性与权限放到inode3号,而这个inode记录了文件数据实际放置点为4、9、12、14这四个block号码,此时我们的操作系统就能够据此来排列磁盘的阅读顺序,就可以一口气将四个block内容读出来,如图所示。
这种数据存取的方法称为索引式文件系统。除此之外,还有NTFS:Windows文件系统,FAT32:U盘文件系统。
FAT这种格式的文件系统没有inode存在,所以没有办法将所有的block在一开始就读取出来,每个block号码记录在前一个block当中,其读取方式如下。
这种数据存取的方法称为链式文件系统。由于block过于离散,读取的效率会变差,需要进行碎片整理,将同一个文件所属的blocks汇整在一起,Ext2一般不需要。
在这里补充一个命令:ls -i ,显示文件inode编号。