首先是关于Linux文件系统类型的一些知识,文本文

2019-10-05 16:42 来源:未知

今天看了一个关于Linux系统安全的视频教程,这个教程有很多的知识点,我会分几篇博文将我的笔记分享出来。

Linux文件类型(学习笔记六),linux学习笔记

在Linux系统下,一切皆文件,就连光盘也看做文件,要使用光盘首先要先建立一个目录文件,然后挂载通过操作这个目录来操作光盘,还有鼠标、键盘都是被看做文件。文件的类型主要分为下面五类:普通文件、目录文件、设备文件、连接文件、管道文件,其中其三者是三种基本的文件,下面简要介绍。

Linux系统目录结构

首先是关于Linux文件系统类型的一些知识,Linux有四种常见的文件系统类型(网上大多数是3种,但我觉得链接文件类型应该也算作一种)。

一、Linux下的文件类型

  • 普通文件:在由 ls –al 所显示出来的属性方面,第一个属性为 [ - ]
  • 目录文件:在由 ls –al 所显示出来的属性方面,第一个属性为 [ d ]**
  • 设备文件:一般都在dev目录,有[b][c]

普通文件:文本文件、二进制文件。文本文件是以ASCII码形式存储,人能够读懂可以编辑修改;二进制文件是以二进制存储的,要借助一定的软件工具才可以看懂,一般的是声音、图像、可执行程序。

一, 系统目录结构

  • 1、/- 根
    每一个文件和目录从根目录开始。
    只有root用户具有该目录下的写权限。请注意,/root是root用户的主目录,这与/.不一样

  • 2、/bin中 - 用户二进制文件
    包含二进制可执行文件。
    在单用户模式下,你需要使用的常见Linux命令都位于此目录下。系统的所有用户使用的命令都设在这里。
    例如:ps、ls、ping、grep、cp

  • 3、/sbin目录 - 系统二进制文件
    就像/bin,/sbin同样也包含二进制可执行文件。
    但是,在这个目录下的linux命令通常由系统管理员使用,对系统进行维护。例如:iptables、reboot、fdisk、ifconfig、swapon命令

  • 4、/etc - 配置文件
    包含所有程序所需的配置文件。
    也包含了用于启动/停止单个程序的启动和关闭shell脚本。例如:/etc/resolv.conf、/etc/logrotate.conf

  • 5、/dev - 设备文件
    包含设备文件。
    这些包括终端设备、USB或连接到系统的任何设备。例如:/dev/tty1、/dev/usbmon0

  • 6、/proc - 进程信息
    包含系统进程的相关信息。
    这是一个虚拟的文件系统,包含有关正在运行的进程的信息。例如:/proc/{pid}目录中包含的与特定pid相关的信息。
    这是一个虚拟的文件系统,系统资源以文本信息形式存在。例如:/proc/uptime

  • 7、/var - 变量文件
    var代表变量文件。
    这个目录下可以找到内容可能增长的文件。
    这包括 - 系统日志文件(/var/log);包和数据库文件(/var/lib);电子邮件(/var/mail);打印队列(/var/spool);锁文件(/var/lock);多次重新启动需要的临时文件(/var/tmp);

  • 8、/tmp - 临时文件
    包含系统和用户创建的临时文件。
    当系统重新启动时,这个目录下的文件都将被删除。

  • 9、/usr - 用户程序
    包含二进制文件、库文件、文档和二级程序的源代码。
    /usr/bin中包含用户程序的二进制文件。如果你在/bin中找不到用户二进制文件,到/usr/bin目录看看。例如:at、awk、cc、less、scp。
    /usr/sbin中包含系统管理员的二进制文件。如果你在/sbin中找不到系统二进制文件,到/usr/sbin目录看看。例如:atd、cron、sshd、useradd、userdel。
    /usr/lib中包含了/usr/bin和/usr/sbin用到的库。
    /usr/local中包含了从源安装的用户程序。例如,当你从源安装Apache,它会在/usr/local/apache2中。

  • 10、/home - HOME目录
    所有用户用home目录来存储他们的个人档案。
    例如:/home/john、/home/nikita

  • 11、/boot - 引导加载程序文件
    包含引导加载程序相关的文件。
    内核的initrd、vmlinux、grub文件位于/boot下。
    例如:initrd.img-2.6.32-24-generic、vmlinuz-2.6.32-24-generic

  • 12、/lib - 系统库
    包含支持位于/bin和/sbin下的二进制文件的库文件.
    库文件名为 ld*或lib*.so.*
    例如:ld-2.11.1.so,libncurses.so.5.7

  • 13、/opt - 可选的附加应用程序
    opt代表可选的。
    包含从个别厂商的附加应用程序。
    附加应用程序应该安装在/opt/或者/opt/的子目录下。

  • 14、/mnt - 挂载目录
    临时安装目录,系统管理员可以挂载文件系统。

  • 15、/media - 可移动媒体设备
    用于挂载可移动设备的临时目录。
    举例来说,挂载CD-ROM的/media/cdrom,挂载软盘驱动器的/media/floppy;

  • 16、/srv - 服务数据
    srv代表服务。
    包含服务器特定服务相关的数据。
    例如,/srv/cvs包含cvs相关的数据。

1.普通文件(Ordinary File)

二、普通文件

设备文件:把每一个I/O看做一个设备文件,即把I/O看做普通的文件进行写入和读取操作。用户不必了解设备的细节,对设备的使用就和使用一个文件一样。设备文件又分为块设备和点设备,块设备指硬盘光驱之类的以字符快为单位存取的,点设备键盘鼠标之类的以单个字符为单位存取的。每一个设备对应一个设备文件,存放在/dev目录中。

二,文件类型

我们使用 ls -l 这个命令时,可以观察到第一栏那十个字符中,第一个字符为文件的类型 [ d 表示目录,- 表示是一个普通的文件,c 表示字符串设备,l 表示软链接文件,b 块设备]。

  • 普通文件(regular file ): 一般我们在进行存取的类型的文件,在由 ls -al 所显示出来的属性方面,第一个字符为 [ - ],例如 [-rwxrwxrwx ]。另外,依照文件的内容,又大略可以分为:

    • 纯文本档(ASCII):这是Linux系统中最多的一种文件类型, 称为纯文本档是因为内容为我们人类可以直接读到的数据,例如数字、字母等等。 几乎只要我们可以用来做为设定的文件都属于这一种文件类型。 举例来说,你可以下达『 cat ~/.bashrc 』就可以看到该文件的内容。 (cat 是将一个文件内容读出来的指令)

    • 二进制文件(binary):,我们的系统其实仅认识且可以执行二进制文件(binary file) 在Linux当中的可执行文件(scripts, 文字型批处理文件不算)就是这种格式的 举例来说,我们经常使用的 cat 命令就是一个binary file。

    • 数据格式文件(data): 有些程序在运作的过程当中会读取某些特定格式的文件,那些特定格式的文件可以被称为数据文件 (data file)。举例来说,我们的Linux在使用者登入时,都会将登录的数据记录在 /var/log/wtmp那个文件内,该文件是一个data file,他能够透过last这个指令读出来! 但是使用cat时,会读出乱码 因为它是属于一种特殊格式的文件。

  • 目录(directory): 就是目录 第一个属性为 [ d ],例如 [drwxrwxrwx]。
    连接文件(link): 就是类似Windows系统底下的快捷方式! 第一个属性为l,例如 [lrwxrwxrwx] ;

  • 设备与装置文件(device): 与系统周边及储存等相关的一些文件, 通常都集中在/dev这个目录之下!通常又分为两种:

    • 区块(block)设备档 :就是一些储存数据, 以提供系统随机存取的接口设备,举例来说,硬盘与软盘等就是! 你可以随机的在硬盘的不同区块读写,这种装置就是成组设备!你可以自行查一下/dev/sda看看, 会发现第一个属性为[ b ]!

    • 字符(character)设备文件:亦即是一些串行端口的接口设备, 例如键盘、鼠标等等!这些设备的特色就是『一次性读取』的,不能够截断输出。 举例来说,你不可能让鼠标『跳到』另一个画面,而是『滑动』到另一个地方啊!第一个属性为 [ c ]。

  • 数据接口文件(sockets): 既然被称为数据接口文件, 想当然,这种类型的文件通常被用在网络上的数据承接了。我们可以启动一个程序来监听客户端的要求, 而客户端就可以透过这个socket来进行数据的沟通了。第一个属性为 [ s ], 最常在/var/run这个目录中看到这种文件类型了。

  • 数据输送文件(FIFO, pipe): FIFO也是一种特殊的文件类型,他主要的目的在解决多个程序同时存取一个文件所造成的错误问题。 FIFO是first-in-first-out的缩写。第一个属性为[p] 。

    注:除了设备文件是我们系统中很重要的文件,最好不要随意修改之外,通常只有root用户才可以修改!

一, 系统目录结构 1、/- 根 每一个文件和目录从根目录开始。 只有root用户具有该目录下的写权限。请注意,/root是root用户...

普通文件分为两种:文本文件与二进制文件

2.1、文本文件

以ASCII码形式存储在计算机中

连接文件:软连接、硬链接。

a.文本文件

2.2、二进制文件

以文本的二进制形式存储在计算机中,如声音,图像等,只有通过相应的软件才能将其显示出来

那么怎样区分这些文件呢?用"ls -al"命令可以看到输出很多的文件,每一行就是一个文件,这一行的这些字符就代表了这个文件的属性,这里要的是第一个字符,因为第一个字符代表的就是这个文件的类型。如下:"-"代表是普通文件;"d"代表是目录;"l"代表是连接文件;"b"代表是块设备文件即光盘之类的;"c"代表的是一次性的读取设备即键盘鼠标之类的。【 Linux公社 还有就是根据颜色来分:黑色是普通文件;红色是压缩文件;蓝色是目录文件;浅蓝色是连接文件(软);黄色是设备文件(/dev);青绿色是可执行文件(/bin,/sbin);粉红色是图片文件。

以ASCII码形式存储,可用文本编辑器查看。

2.3、连接文件

就是类似 Windows 底下的快捷方式啦!第一个属性为 [ l ];

这么多的文件如何有效的管理和组织它们,给用户提供一个有效的接口是文件系统的主要任务,于是出现了树形目录结构,整个文件系统有一个根(root),层层的往下分叉(directory),然后长出叶子,杈就是目录,叶子就是文件。"/"根目录;"/bin"、"/sbin"放置启动时所需要的普通程序和系统程序;"/dev"保存着所有的设备文件;"/home"一般用户的主目录都会放在这个目录下,可以通过"cd ~"切换进来;"/user"这是一个庞大的复杂的目录,除了上面的目录之外,几乎所有的文件都放在这个目录里面;"/lib"启动时所需要的库文件都放在这个目录下,非启动的库文件都放在"/user/lib";"/etc"这个目录下存放着绝大部分的系统配置文件。

下面通过一个示例来加深印象,我在home目录下新建了一个无标题文档:

三、目录文件

设计目录文件的主要目的是用于管理和组织系统中的大量文件,它存储一组相关文件的位置,大小与文件 有关的信息目录文件简称目录

永利平台娱乐,每个文件都会有相当多的权限和属性;重要的是文件所有者、所属组、其他人。对每个设置不同的权限,是相当健全而且好用的一个安全防护!

永利平台娱乐 1

四、设备文件

设备文件是Linux系统很重要的一个角色,Linux把每个I/O设备看成一个文件,与普通文件一样处理,这样可以使用文件 与设备的操作尽可能统一,从用户角度来看,对I/O设备的使用和一般文件使用一样,用户不必了解I/O细节,

设备文件又为块设备、和字符设备

文件和目录还可以进行压缩,节省了存储空间,对于上传和下载很有用途。

下面我用 ls -l 无标题文档 来查看这个文件的类型,可以看到结果如下:

4.1、块设备

成块读取数据的设备,硬盘,内存等 就是一些储存数据,以提供系统存取的接口设备,简单的说就是硬盘啦!

例如你的一号硬盘的代码是 /dev/hda1 等等的文件啦!第一个属性为 [ b ]

关于文件管理的命令、用户和组的管理命令、压缩命令,请参考博文:文件管理命令详解。

永利平台娱乐 2

4.2、字符设备

 亦即是一些串行端口的接口设备,例如键盘、鼠标等等!第一个属性为 [ c ]。

永利平台娱乐 3

最左边以-开头代表该文件是普通文件(后面我会总结一下各文件类型的开头标志)

五、文件相关的一些命令

TAG标签:
版权声明:本文由永利平台娱乐发布于永利平台娱乐,转载请注明出处:首先是关于Linux文件系统类型的一些知识,文本文