Linux学习笔记(4) - 文件系统

4.1 什么是文件系统

  文件系统表示存储在计算机上的文件和目录的数据结构,也可以用于存储文件的分区或磁盘,操作系统通过文件系统可以方便地查询和访问其中所包含的磁盘块。在Linux系统中,每个分区都是一个文件系统,都有自己的目录层次结构。Linux最重要的特征之一就是支持多种文件系统,这样它更加灵活,并可以和许多其他操作系统共存。

  • 块分配:当文件变大时,块分配每一次都为这个文件分配磁盘空间
  • 扩展分配:当某个文件的磁盘空间不够时,一次性为它分配一连串连续的块

  Linux文件系统使用索引节点来记录文件信息,索引节点作用类似于Windows操作系统中文件分配表。索引节点时一种数据结构,它包含了一个文件的长度、创建及修改时间、权限、所属关系、磁盘中的位置等信息。Linux文件系统将文件索引节点号和文件名同时保存在目录中。

  文件系统类型包括

  • ext2  早期Linux中常用的文件系统
  • ext3  ext2的升级版,带日志功能
  • RAMFS  内存文件系统,速度很快
  • NFS  网络文件系统,由SUN发明,主要用于远程文件共享
  • MSDOS  ms-dos文件系统
  • VFAT  Windows95/98操作系统采用的文件系统
  • FAT  Windows Xp操作系统采用的文件系统
  • NTFS  Windows NT/XP操作系统采用的文件系统
  • HPFS  OS/2操作系统采用的文件系统
  • PROC  虚拟的进程文件系统
  • ISO9660  大部分光盘用的文件系统
  • ufsSun  OS所用的文件系统
  • HFS  Macintosh机采用的文件系统
  • NCPFS  Novell服务器所采用的文件系统
  • SMBFS  Samba的共享文件系统
  • XFS  由SGI开发的先进的日志文件系统,支持超大容量文件
  • JFS  IBM的AIX使用的日志文件系统
  • ReiserFS  基于平衡树结构的文件系统

4.2 常用的文件系统

ext2、ext3、ReiserFS

4.3 Linux目录树

  在Linux系统中,目录是文件系统中组织文件的形式。文件系统将文件组织在若干目录和其子目录中,最上层的目录称为根目录(Root)目录,用“/”表示,其他的所有目录都是从根目录出发而生成的。这种目录结构类似于一个导致大的树状,所以又称为“树状结构”。

4.3.1 文件系统层次结构

   文件是Linux操作系统处理信息的基本单位。所有软件都组织成文件形式。

1、文件的成分

  无论文件是一个程序、文档、数据库,或者是目录,操作系统都会赋予文件相同的结构:

  1. 索引节点:包含有关文件信息的一个记录,这些信息包括文件权限、文件主、文件大小等
  2. 数据:文件的实际内容,可以是空的,也可以非常大,并且有自己的结构

2、文件命名

  Linux的文件名几乎可以由ASCII字符的任意组合构成,文件名最长可达255个字符。

  Linux系统区分文件名的大小写。

  以圆点(.)开头的文件名是隐含文件,默认方式下使用“ls"命令并不能把它们在屏幕上显示出来。同样,在默认情况下,shell通配符并不匹配这类文件名。

3、文件名扩展字符

  • 星号(*)与0个或多个任意的字符相匹配,可以匹配当前目录下的所有文件,但以圆点(.)开头的隐含文件除外。
  • 问号(?)只与一个任意的字符匹配,可以使用多个问号。
  • 方括号([])只与方括号中字符之一匹配,可以用短横线代表一个范围内的字符、在方括号中如果以惊叹号开始,表示不与惊叹号后的字符匹配。

4.3.2 目录结构

名称内容
/binbin就是二进制英文缩写。在这里存放linux常用操作命令的执行文件,如mv、ls、mkdir等。有时,这个目录的内容和/usr/bin里面的内容一样,它们都是放置一般用户使用得到的执行文件
/boot这个目录下存放操作系统启动时所要用到的程序。如启动grub就会用得到其下的/boot/grub子目录
/dev该目录中包含了所有Linux系统中使用的外部设备。要注意的是,这里存放的并不是外部设备的驱动程序,它实际上是一个访问这些外部设备的端口。在Linux中,所有的设备都当作文件一样进行操作,例如/dev/cdrom代表光驱,用户可以方便地像访问文件、目录一样对其进行访问。
/etc该目录下存放了系统管理时要用到的各种配置文件和子目录。如网络配置文件、文件系统、X系统配置文件、设备配置信息设置用户信息等都在这个目录下。系统在启动过程中需要读取其参数进行相应的配置。
/etc/rc.d该目录主要存放Linux启动和关闭时要用到的脚本文件
/etc/rc.d/init该目录存放所有Linux服务默认的启动脚本文件
/home该目录是Linux系统中默认的用户工作根目录。执行adduser命令后,系统会在/home目录下为对应账户建立一个同名的主目录
/lib该目录是用来存放系统动态连接共享库的。几乎所有的应用程序都会用到这个目录下的共享库。因此,千万不能轻易对这个目录进行操作
/lost+found该目录在大多数情况下都是空的。只有当系统产生异常时,会将一些遗失的片段放在此目录下
/media该目录下是光驱和软驱的挂载点,Fedora Core 4系统已经可以自动挂载光驱和软驱
/misc该目录下存放从DOS下进行安装的实用工具,一般为空
/mnt该目录是软驱、光驱、硬盘的挂载点,也可以临时将别的文件系统挂载在此目录下
/proc该目录是用于防止系统核心与执行程序所需的一些信息。而这些信息是在内存中由系统产生的,故不占用硬盘空间
/root该目录是超级用户登录时的主目录
/sbin该目录用来存放系统管理员常用的系统管理程序
/tmp该目录用来存放不同程序执行时产生的临时文件。一般Linux安装软件的默认安装路径就是这里
/usr用户的很多应用程序和文件都存放在这个目录下,类似于Wiindows下的Program Files的目录
/usr/bin系统用户使用的应用程序
/usr/sbin超级用户使用的比较高级的管理程序和系统守护程序
/usr/src内核源代码默认的放置目录
/srv该目录存放一些服务启动之后需要提取的数据
/sys安装Linux2.6内核中新出现的一个文件系统sysfs
sysfs文件系统集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs文件系统以及针对伪终端的devpts文件系统。该文件系统是内行设备树的一个直观反映。当一个内核对象被创建时,对应的文件和目录也在内核子系统中被创建
/var很多服务的日志信息存放在这里

4.3.3 目录的常用操作命令

  1. pwd  显示当前所处的目录
  2. cd        改变工作目录
  3. ls         列出目录的内容
  4. mkdir    创建一个目录
  5. rmdir    删除目录
  6. tree      以树形目录的形式指定目录下的内容

4.4 文件分类与权限

4.4.1 文件分类

  Linux系统是一个典型的多用户系统。为了保护系统的安全性,Linux系统对不同用户访问同一文件或目录的权限做了不同的规定。

  文件是Linux的核心,文件类型可以分为普通文件、目录文件、连接文件和设备文件等多种,Linux与Windows一样,都使用扩展名来区分文件类型。

  第一个字符表示了该文件的文件类型:

  • -   表示普通文件
  • d   表示目录
  • l    表示一个符号连接文件,实际上它指向另一个文件
  • b   表示块设备,如硬盘、光盘或U盘等
  • c   表示外围设备,是特殊类型的文件
  • s   表示系统的套接字文件
  • p   表示系统的管道文件

4.4.2 文件权限

 RWX

4.4.3 日志文件

   日志文件是ext3文件系统的特点,Linux中日志文件以明文存储,用户可以直接打开查看。日志文件功能强大,用户还可以编写脚本来扫描这些日志,并基于它们的内容去执行某些功能。

/var/log/cron    该日志文件记录守护进程cron所执行的动作,在整个记录前面系统还自动添加了登录用户、登录时间和PID,以及派生出进程的动作

/var/log/maillog    该日志文件记录了每一个发送到系统或从系统发出的电子邮件活动。该文件最大的缺点就是被记录的入侵企图和成功的入侵事件按会被淹没在大量的正常记录中。

/var/log/yun        应用程序日志,该日志记录了所有在系统中安装的应用程序。格式为:日期、时间、应用程序。

/var/log/messages   该日志记录了系统的安装报错信息,由syslog守护程序记录,syslog守护程序接受来自库、守护程序和内核的输入,这个文件是查找引导期间的。该文件是系统出现故障并进行诊断时首要查看的文件。

/var/log/securee   系统安全日志,该日志记录了系统安全的相关信息。

4.4.4 文件的常用操作命令

  • find  在指定目录中搜索文件,他的使用权限是所有用户
  • locate  用于查找文件
  • whereis  在特定目录中查找符合条件的文件
  • which  在环境变量$PATH设置的目录里炒找符合条件的文件
  • touch  修改文件的存取和修改时间
  • file  显示文件或目录的类型
  • cp  复制文件或目录到目标文件或目录
  • rm  删除文件或目录
  • mv  移动或更名现有的文件或目录
  • cat  链接文件并打印到标准输出设备上
  • head  在屏幕上显示指定文件的开头若干行
  • tail  在屏幕上显示指定文件的末尾若干行
  • more  如果文件太长,用cat命令只能看到文件
  • less  用于分屏文件内容
  • grep  在文本文件中查找指定模式大的单词或单词,并在标准输出上显示包括指定字符串模式的所有行
  • wc  该命令统计出指定文件的字节数、字数、行数,并输出结果。

 

转载于:https://www.cnblogs.com/maybe1491/archive/2013/05/30/3063895.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/474332.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode 644. 最大平均子段和 II(二分查找)*

文章目录1. 题目2. 解题2.1 暴力超时2.2 二分查找1. 题目 给定一个包含 n 个整数的数组,找到最大平均值的连续子序列,且长度大于等于 k。并输出这个最大平均值。 样例 1: 输入: [1,12,-5,-6,50,3], k 4 输出: 12.75 解释: 当长度为 5 的时候&#xff…

python基础学习总结

1.python历史 Guido 89年圣诞开写 91年编辑器问世 优点与缺点 优点:简单、易学、免费开源、高层语言 可移植、解释、面向对象、扩展 丰富库、规范代码 缺点:运行速度、国内市场小、中文资料少 2.模式:文本、交互、集成开发 程序原理&am…

学生管理系统代码赏析

# 添加、删除、显示学生信息(保存) # 保存所有学生信息 students {} # 创建 ID 1000 # 控制系统是否退出 flag True # 从文件中读取学生信息 def load_students(): # 加载学生信息从文件中 stu_file open("students.txt",&quo…

LeetCode 527. 单词缩写(Trie树)

文章目录1. 题目2. 解题1. 题目 给定一个由n个不重复非空字符串组成的数组,你需要按照以下规则为每个单词生成最小的缩写。 初始缩写由起始字母省略字母的数量结尾字母组成。若存在冲突,亦即多于一个单词有同样的缩写,则使用更长的前缀代替…

POJ 1523 SPF (割点 点双连通分量)

题意:求出割点以及除去割点后的连通分量的数量(附带求出了点双连通分量(块)) [求割点]对图深度优先搜索,定义DFS(u)为u在搜索树(以下简称为树)中被遍历到的次序号。定义Low(u)为u或u的子树中能通过非父子边追溯到的最早的节点&…

质数——python代码赏析

一、求(2—您输入数字)之间的质数: num int(input("请输入您要输入的数字:"))a[] if num 2:a.append(2) elif num >2:for i in range(2,num1):for j in range(2,i):if i %j 0:breakelse:a.append(i)print(a) 二、求2-100之间…

LeetCode 1199. 建造街区的最短时间(优先队列贪心)

文章目录1. 题目2. 解题1. 题目 你是个城市规划工作者,手里负责管辖一系列的街区。在这个街区列表中 blocks[i] t 意味着第 i 个街区需要 t 个单位的时间来建造。 由于一个街区只能由一个工人来完成建造。 所以,一个工人要么需要再召唤一个工人&…

用Android-X86和VirtualBox打造高性能Android开发环境

现在已经采用genymotion替换下面的方法 https://www.genymotion.com转载于:https://www.cnblogs.com/sunzhuo1228/archive/2013/05/30/3109445.html

LeetCode 1088. 易混淆数 II(回溯/BFS)

文章目录1. 题目2. 解题2.1 回溯2.2 BFS1. 题目 本题我们会将数字旋转 180 来生成一个新的数字。 比如 0、1、6、8、9 旋转 180 以后,我们得到的新数字分别为 0、1、9、8、6。 2、3、4、5、7 旋转 180 后,是 无法 得到任何数字的。 易混淆数&#xf…

python——import导入模

1.import 搜索路径 import sys sys.path 路径搜索 从上⾯列出的⽬录⾥依次查找要导⼊的模块⽂件 表示当前路径 程序执⾏时导⼊模块路径 sys.path.append(/home/itcast/xxx) sys.path.insert(0, /home/itcast/xxx) #可以确保先搜索这个路径 I…

timer.schedule定时器用法

Timer是一种定时器工具,用来在一个后台线程计划执行指定任务。它可以计划执行一个任务一次或反复多次。 TimerTask一个抽象类,它的子类代表一个可以被Timer计划的任务。 schedule的意思(时间表、进度表) timer.schedule(new MyTas…

LeetCode 759. 员工空闲时间(排序)

文章目录1. 题目2. 解题1. 题目 给定员工的 schedule 列表,表示每个员工的工作时间。 每个员工都有一个非重叠的时间段 Intervals 列表,这些时间段已经排好序。 返回表示 所有 员工的 共同,正数长度的空闲时间 的有限时间段的列表&#xf…

python——作用域 == is

作⽤域 test.py num 200 def print_num(): print("----print_num func, num%d----"%num) main.py from test import * num 100 def print_num2(): print("----print_num2 func, num%d----…

U-Boot-2009-03移植笔记(移植准备)

因为工作需要,需要在S3C2440板子上移植U-boot和Linux,虽然关于S3c2440移植的文章比较多,但是毕竟全面的不多,而且都是别人的,这次自己动手,以此系列记录全过程。 U-boot1.1.6中有支持smdk2410的代码&#x…

LeetCode 656. 金币路径(DP)

文章目录1. 题目2. 解题1. 题目 给定一个数组 A(下标从 1 开始)包含 N 个整数:A1,A2,……,AN 和一个整数 B。 你可以从数组 A 中的任何一个位置(下标为 i)跳到下标 i1,i…

python中的深浅拷贝

1. 浅拷贝 copy.copy 浅拷贝是对于⼀个对象的顶层拷贝 通俗的理解是:拷贝了引⽤,并没有拷贝内容 浅拷贝只复制第一层数据,更深层的引用不管。 2. 深拷贝 copy.deepcopy 深拷贝是对于⼀个对象所有层次的拷贝(递归) 、 3. 注意点浅…

邻接矩阵的深度优先遍历

废话不多说&#xff0c;直接看代码 t#include<stdio.h> #include<stdlib.h> #include<string.h> #define INFINITY INT_MAX #define MAX_VERTEX_NUM 20 bool visted[MAX_VERTEX_NUM]; typedef char VertexType; typedef int VRType; typedef int QElemT…

Linux中使用GDB调试NS2

在使用ns2过程中&#xff0c;避免不了要修改或者添加一些模块&#xff0c;对C代码进行改动。编写好自己的功能模块以后&#xff0c;进行编译执行。但通常不会这么容易通过&#xff0c;经常会出现编译可以通过&#xff0c;但执行是会出错。比较常见的是“段错误”&#xff0c;因…

LeetCode 291. 单词规律 II(回溯)

文章目录1. 题目2. 解题1. 题目 给你一种规律 pattern 和一个字符串 str&#xff0c;请你判断 str 是否遵循其相同的规律。 这里我们指的是 完全遵循&#xff0c;例如 pattern 里的每个字母和字符串 str 中每个 非空 单词之间&#xff0c;存在着双向连接的对应规律。 示例1:…