Linux文件系统及操作

对于初次接触Linux的人来说,与window相比而言,最大的不同之处就是文件啦。一般的文件大家都是很容易理解的,例如:Word文档,txt文档这都属于常规文件吧,但是在Linux环境下,设备也成了文件,使得初次接触Linux的人来说或多有些困惑吧,不过慢慢就习惯了。所以说,在Linux中,一切都是文件。也就是说,在Linux中,所有的东西都可以被看成文件,所有的操作都可以归结到对文件的操作,这样就使得Linux操作系统可以像处理普通文件一样来使用所有东西(磁盘文件,串口,键盘,显示器,打印机以及其他的设备)。

一、Linux文件系统结构

无论学习什么东西,起初都会引入结构之类的话语来总领全体,使得对整个体系有了明了的认识与影像。而文件结构是文件存放在磁盘等存储设备中的组织方式,主要体现在对文件和目录的组织上。Linux文件系统是以目录和文件的层次来安排的(windows也是如此),目录或者文件都是拥有其属性(文件类型,长度,所有者,访问权限等)的,尤其是设置的目录和文件权限,以便提高其访问的安全性。

其文件结构呈现一种多级树形结构,通过这种树形结构用户可以浏览整个系统下已经拥有权限的目录及文件。一般Linux系统安装完了后,会有形成固定的目录结构,其不同的目录存放着不同类别的文件,以此完成一些特定的任务。Linux根目录下包含的目录及其用途如下:

二、文件类型

[[email protected] tmp]$ ls -al
total 120
drwxrwxrwt. 27 root     root     4096 Nov  2 06:26 .
dr-xr-xr-x. 22 root     root     4096 Oct 19 01:45 ..
drwx------.  2 root     root     4096 Oct 12 01:31 .esd-0
drwx------.  2 xcbeyond xcbeyond 4096 Nov  2 05:23 .esd-500
drwxrwxrwt.  2 root     root     4096 Nov  2 05:23 .ICE-unix
drwx------.  2 xcbeyond xcbeyond 4096 Jul 20 07:02 keyring-B651js
drwx------.  2 root     root     4096 Oct 12 01:31 keyring-dKrzCB
drwx------.  2 xcbeyond xcbeyond 4096 Oct  7 05:45 keyring-G6gJe4
drwx------.  2 xcbeyond xcbeyond 4096 Nov  2 05:23 keyring-JaMrno
(省略……)

从上述示例中,可以看到列出的文件信息中包含有文件类型、文件属性、用户名、用户所在组、文件大小、修改日期、文件名等。其中第一列信息(drwxrwxrwt)是比较重要的,也即是接下来着重说明的内容。

第一列信息包含了10个字符,分为4组:

①第一组(第1位):文件类型

1                      

不同的字符代表不同的文件类型,如:d代表目录文件。

Linux文件类型符号见下表:

②第二组(第2-4位):文件所有者(user)权限

③第三组(第5-7位):文件所有者的同组用户(group)权限

④第四组(第8-10位):其他组用户(权限

※权限分为:读、写、执行三种

1、普通文件

普通文件是计算机用户用来存放的数据、程序等信息文件,一般被长期存放在存储设备(硬盘)中。普通文件一般又分为文本文件和二进制文件。

2、目录文件

目录文件是文件系统中一个目录所包含的目录项组成的文件,其只允许系统进行修改,用户进程可以读取目录文件,但不能对它们进行修改,只有内核才可以写目录文件。

3、设备文件

设备文件是用于为操作系统与I/O设备提供链接的一种文件,分为字符设备文件和块设备文件,其对应于字符设备和块设备。Linux把对设备的I/O作为普通文件的读取/写入,操作内核提供了对设备处理和对文本处理的统一接口。每一种I/O设备对应一个设备文件,存放在/dev目录下,如:行式打印机对应于文件/dev/lp。目前在最新的Linux发行版本中,一般不用用户创建设备文件,因为这些文件是和内核相关联的。

在设备文件中有一个极其特殊的文件是/dev/null,学习shell脚本时,就会知道了,又本叫做“无底洞文件”,一般用于写入一些不想在console控制显示的message。

(1)字符设备(Character Device):这是一个顺序的数据流设备,对这种设备的读写是按照字符进行的,而且这些字符是连续地形成一个数据流。字符设备不具有缓冲区,所以对这种设备的读写是实时的。

(2)块设备(Block Device):这是一种具有一定结构的随机存取设备,对这种设备的读取是按照块进行的,它使用缓冲区来存储暂时的数据,待时机成熟后,从缓存一次性写入设备或从设备中一次性读出放入缓冲区,如磁盘和文件系统等。

[[email protected] dev]$ pwd
/dev                                              ※ /dev目录
[[email protected] dev]$ ls -al
total 4
drwxr-xr-x. 18 root root        3920 Nov  3 06:28 .
dr-xr-xr-x. 22 root root        4096 Nov  3 06:28 ..
crw-rw----.  1 root video    10, 175 Nov  3 06:28 agpgart
drwxr-xr-x.  2 root root         640 Nov  3 06:28 block                ※目录
drwxr-xr-x.  2 root root         100 Nov  3 06:28 bsg
drwxr-xr-x.  3 root root          60 Nov  3 06:28 bus
lrwxrwxrwx.  1 root root           3 Nov  3 06:28 cdrom -> sr0         ※link文件
lrwxrwxrwx.  1 root root           3 Nov  3 06:28 cdrom1 -> sr1
lrwxrwxrwx.  1 root root           3 Nov  3 06:28 cdrw -> sr0
lrwxrwxrwx.  1 root root           3 Nov  3 06:28 cdrw1 -> sr1
drwxr-xr-x.  2 root root        3020 Nov  3 06:28 char
crw-------.  1 root root      5,   1 Nov  3 06:28 console              ※字符设备文件
lrwxrwxrwx.  1 root root          11 Nov  3 06:28 core -> /proc/kcore
drwxr-xr-x.  3 root root          80 Nov  3 06:28 cpu
crw-rw----.  1 root root     10,  61 Nov  3 06:28 cpu_dma_latency
crw-rw----.  1 root root     10,  62 Nov  3 06:28 crash
drwxr-xr-x.  5 root root         100 Nov  3 06:28 disk
crw-rw----+  1 root audio    14,   9 Nov  3 06:28 dmmidi
lrwxrwxrwx.  1 root root           3 Nov  3 06:28 dvd -> sr0
lrwxrwxrwx.  1 root root           3 Nov  3 06:28 dvd1 -> sr1
lrwxrwxrwx.  1 root root           3 Nov  3 06:28 dvdrw -> sr0
lrwxrwxrwx.  1 root root           3 Nov  3 06:28 dvdrw1 -> sr1
lrwxrwxrwx.  1 root root           3 Nov  3 06:28 fb -> fb0
crw-rw----.  1 root root     29,   0 Nov  3 06:28 fb0
lrwxrwxrwx.  1 root root          13 Nov  3 06:28 fd -> /proc/self/fd
crw-rw-rw-.  1 root root      1,   7 Nov  3 06:28 full
crw-rw-rw-.  1 root root     10, 229 Nov  3 06:28 fuse
crw-rw----.  1 root root    250,   0 Nov  3 06:28 hidraw0
crw-rw----.  1 root root     10, 228 Nov  3 06:28 hpet
drwxr-xr-x.  2 root root          40 Nov  3 06:28 hugepages
crw-------.  1 root root    229,   0 Nov  3 06:28 hvc0
drwxr-xr-x.  4 root root         260 Nov  3 06:28 input
crw-rw----.  1 root root      1,  11 Nov  3 06:28 kmsg
srw-rw-rw-.  1 root root           0 Nov  3 06:28 log
brw-rw----.  1 root disk      7,   0 Nov  3 06:28 loop0             ※块设备文件
brw-rw----.  1 root disk      7,   1 Nov  3 06:28 loop1
brw-rw----.  1 root disk      7,   2 Nov  3 06:28 loop2
brw-rw----.  1 root disk      7,   3 Nov  3 06:28 loop3

4、链接文件

链接文件又称为符号链接文件,类似于window下的快捷方式文件,它提供了共享文件的一种方法,在链接文件中不是通过文件名实现文件共享,而是通过链接文件所包含的指向文件的指针来实现对文件的访问。普通用户可以建立链接文件,并通过其指针方式访问其所指向的那个文件。根据链接对象不同,链接文件可以分为硬链接文件和符号链接文件。

5、管道文件

管道文件主要用于进程间传递数据,它是Linux进程间的一种通信机制。管道是将某一个进程数据写入管道的一端,另一个进程从管道另一端读取数据。管道文件也可以分为匿名管道和命名管道两种。

6、套接字文件

套接字(Socket)文件主要用于在不同计算机的进程间的通信。套接字是操作系统内核中的一个数据结构,它是网络中的节点进行相互通信的通道。套接字有3种类型:流式套接字、数据报套接字和原始套接字。流式套接字也是TCP套接字(面向连接的套接字),数据报套接字也就是UDP套接字(无连接的套接字),原始套接字通常用“SOCK_RAW”表示。

三、文件访问权限

文件访问权限是指文件系统为了进行安全管理需要在对文件操作时进行的用户身份认证。合法权限的用户进行操作,而没有权限的用户就不能对其文件进行操作。由于Linux系统是一个典型的多用户操作系统,不同的用户处于不同的地位。为了保护系统的安全性,Linux系统对不同用户访问相同文件做了不同访问权限的设定,即不同用户对于相同文件具有不同的读、写、执行的权限差异。

用户在登录Linux系统时,系统会自动分配一个UID,来区分不同用户的权限级别,root用户具有最高的用户权限,其UID=0。

时间: 2024-08-07 21:16:31

Linux文件系统及操作的相关文章

linux文件系统常用操作学习笔记

分区类型介绍 这里我总结了一个公式: 主分区数+扩展分区数=4(/dev/sda1-4) 扩展分区有可以细分成许多逻辑分区(5-over). 常用命令: df 文件系统使用的情况 -a all -h human du 统计文件系统使用情况 -s subject -h human -a all ll -h    统计目录大小 打印超级快信息 dumpe2fs </dev/ada8> 挂载文件系统    mount -t type -o options 查看磁盘硬件 fdisk -l 挂载sr0,

攻城狮在路上(叁)Linux(二十六)--- linux文件系统的特殊查看与操作

一.boot sector 与 super block的关系: 1.boot sector用于存放引导装载程序,占用1024个字节. 2.super block的大小也为1024字节. 3.若block大小为1k,则boot sector和super block各占一个block. 4.若block大于1K(2K/4K)时,则两者都位于第一个block中. 二.磁盘空间的浪费问题:暂不考虑. 三.利用GUN的parted命令进行分区行为: 因为fdisk不支持高于2TB的分区. 命令格式: pa

linux(3)磁盘与文件系统管理/查看硬盘、内存空间/文件系统的操作/ 文件的压缩和打包

一.磁盘与文件系统管理 1.分区与文件系统分区:记录每一个分区的开始柱面和结束柱面主引导区(master boot recorder):记录分区的数据,记录硬盘里所有的分区信息分区划分好后,要将分区格式化为系统可以识别的文件系统磁盘的最小物理存储单位是:扇区分区时格式化文件系统的最小存储单位:逻辑块,以扇区为基础,大小为2的n次方,但是一个块只能容纳一个文件linux的ext2文件系统每个文件内容分为两部分:存储文件的属性(放在inode中),文件的内容(放在块中) 例: 读取文件系统的信息:

Unix / Linux 文件系统操作

作为一名电脑使用者,不懂图形化操作文件系统就不算会使用电脑.那么作为一名程序员,如果不懂命令行操作 Linux 文件系统,就不敢说自己是一名合格的程序员.我们工作中使用 Unix / Linux 作为应用程序服务器,无非就是把我们编写好的软件部署到远程服务器,其中少不了对文件的各种操作,如果你不会操作文件那么将寸步难行.接下来我们来认识一下 Unix / Linux 文件系统. 1. 本地文件系统 在这里我们将讨论面向本地磁盘的文件系统(硬盘,CD-ROM,DVD-ROM,USB).这类文件系统

【转】LINUX文件系统剖析

引自:http://www.ibm.com/developerworks/cn/linux/l-linux-filesystem/   在文件系统方面,Linux? 可以算得上操作系统中的 "瑞士军刀".Linux 支持许多种文件系统,从日志型文件系统到集群文件系统和加密文件系统.对于使用标准的和比较奇特的文件系统以及开发文件系统来说,Linux 是极好的平台.本文讨论 Linux 内核中的虚拟文件系统(VFS,有时候称为虚拟文件系统交换器),然后介绍将文件系统连接在一起的主要结构.

嵌入式 Linux根文件系统移植(一)——Linux文件系统简介

嵌入式 Linux根文件系统移植(一)--Linux文件系统简介 本文对文件系统分析的代码来源于linux 2.6.35.7版本. 一.文件系统的体系结构 文件系统是对存储设备上的数据和元数据进行组织的机制,便于用户和操作系统的交互.Linux支持多种文件系统,文件系统接口实现为分层的体系结构,将用户接口层.文件系统实现和操作存储设备的驱动程序分隔开.Linux文件系统的体系结构如下: 用户空间包含一些应用程序(例如,文件系统的使用者)和 GNU C库(glibc),为文件系统调用(打开.读取.

linux --&gt; 文件系统十问

文件系统十问 参考:http://djt.qq.com/article/view/620 关于Linux文件系统相关的问题: 1.机械磁盘随机读写时速度非常慢,操作系统是采用什么技巧来提高随机读写的性能的? 2.touch一个新的空文件占用磁盘空间吗? 占用的话占用多少? 3.新建一个空目录占用磁盘空间吗?占用多少?和新建一个文件相比,哪个占用的更大? 4.你知道文件名是记录在磁盘的什么地方吗? 5.文件名最长多长?受什么制约? 6.文件名太长了会影响系统性能吗?为什么会产生影响? 7.一个目录

linux文件系统学习总结

linux最优秀的特点在于它是多用户多任务的环境,而且对于linux来讲一切皆文件,提到文件这个概念就免不了提文件相关的权限与属性的概念,那相关文件的属性记录在硬盘的哪个地方呢?这就需要了解linux的文件系统是如何记录文件,如何读取文件. 大家都知道硬盘作为存储介质,如果要使用硬盘存储数据需要对硬盘进行分区,格式化之后才可以存储数据.那为什么要对硬盘进行分区呢?因为我们必须要告诉操作系统:"这块硬盘可以访问的区域是有A柱面到B柱面",只有这样,操作系统才能控制硬盘磁头去A~B范围内的

linux文件系统初学

Linux磁盘分区和目录 Linux发行版之间的差别很小,差别主要表现在系统管理的特色工具以及软件包管理方式的不同. Windows的文件结构是多个并列的树状结构,最顶部是不同的磁盘(分区),如C,D,E等.而linux的文件结构是当个树状结构. 分区和目录的关系: 1. 任何一个分区都必须挂载到某个目录上. 2. 目录是逻辑上的区分,而分区是物理上的区分. 3. 根目录是所有linux的文件和目录 下面是我们某个可能的目录和分区的关系: 使用df可以查看各个分区的使用情况. Mount挂载和N