betway必威-betway必威官方网站
做最好的网站

一切都是文件,概念和相应的文件类型

在 Unix 和它衍生的举个例子 Linux 系统中,一切都足以作为文件。就算它仅仅只是二个皮毛的概念,但这是事实。假使有不是文件的,那它一定是正运维的历程。

要知道那一点,能够举例,您的根目录(/)的空中充斥着分裂品类的 Linux 文件。当您创制一个文本或向系统传输一个文本时,它会在情理磁盘上吞吃的部分空间,並且是叁个特定的格式(文件类型)。

导读 在 Unix 和它衍生的比如 Linux 系统中,一切都可以看做文件。虽然它仅仅只是一个泛泛的概念,但这是事实。如果有不是文件的,那它一定是正运行的进程。

固然如此 Linux 系统中文件和目录没有怎么差别,但目录还会有贰个入眼的功效,那便是有构造性的分组存款和储蓄其它文件,以有益寻觅访问。全体的硬件组件都意味着为文件,系统采纳这个文件来与硬件通讯。

要知道那一点,能够举例,您的根目录(/)的上空充斥着分裂档案的次序的 Linux 文件。当您成立二个文件或向系统传输一个文书时,它会在概略磁盘上占有的一些上空,况兼是一个特定的格式(文件类型)。 就算 Linux 系统中文件和目录未有啥两样,但目录还会有两个要害的功效,那正是有构造性的分组存款和储蓄别的文件,以便于寻找国访问谈。全部的硬件组件都意味为文件,系统选拔那些文件来与硬件通讯。 这几个思虑是对 Linux 中的各个东西的基本点论述,因而像文书档案、目录(Mac OS X 和 Windows 系统下称之为文件夹)、键盘、监视器、硬盘、可活动传播媒介设备、打字与印刷机、调制解调器、设想终端,还恐怕有进程间通讯(IPC)和互连网通讯等输入/输出财富都以概念在文件系统空间下的字节流。 一切都可作为是文件,其最鲜明的好处是对此地点所列出的输入/输出财富,只需求平等的一套 Linux 工具、实用程序和 API。 就算在 Linux 中全体都可用作是文件,但也有一对奇特的文书,举个例子套接字和下令管道。 Linux 系统中有两种为主的文件类型:

那一个构思是对 Linux 中的各样东西的要害论述,因而像文书档案、目录(Mac OS X 和 Windows 系统下称之为文件夹)、键盘、监视器、硬盘、可活动传播媒介设备、打字与印刷机、调制解调器、虚构终端,还应该有进度间通讯(IPC)和网络通讯等输入/输出财富都以概念在文件系统空间下的字节流。

  • 通常/常规文件
  • 极度规文件
  • 目录文件

一切都可作为是文件,其最分明的利润是对此地方所列出的输入/输出能源,只须要一致的一套 Linux 工具、实用程序和 API。

普通/常规文件

虽说在 Linux 中一切都可用作是文件,但也会有一点点特有的公文,举例套接字和指令管道。

它们是包涵文本、数据、程序指令等数码的文件,其在 Linux 系统中是最广大的一种。包罗如下:

Linux 文件类型的区别之处?

Linux 系统中有三种为主的文件类型:

  • 经常/常规文件
  • 优良文件
  • 目录文件
  • 可读文件
  • 二进制文件
  • 图像文件
  • 压缩文件等等

普通/常规文件

它们是包罗文本、数据、程序指令等数码的文件,其在 Linux 系统中是最广大的一种。包罗如下:

  • 可读文件
  • 二进制文件
  • 图像文件
  • 压缩文件等等

特别文件

特殊文件

卓绝文件包涵以下三种:

块文件block:设备文件,对会见系统硬件零器件提供了缓存接口。它们提供了一种通过文件系统与设施驱动通讯的诀窍。

关于于块文件三个重要的属性正是它们能在指如时期内传输大块的数额和信息。

列出某目录下的块文件:

# ls -l /dev | grep "^b"

输出例子

brw-rw----  1 root disk        7,   0 May 18 10:26 loop0
brw-rw----  1 root disk        7,   1 May 18 10:26 loop1
brw-rw----  1 root disk        7,   2 May 18 10:26 loop2
brw-rw----  1 root disk        7,   3 May 18 10:26 loop3
brw-rw----  1 root disk        7,   4 May 18 10:26 loop4
brw-rw----  1 root disk        7,   5 May 18 10:26 loop5
brw-rw----  1 root disk        7,   6 May 18 10:26 loop6
brw-rw----  1 root disk        7,   7 May 18 10:26 loop7
brw-rw----  1 root disk        1,   0 May 18 10:26 ram0
brw-rw----  1 root disk        1,   1 May 18 10:26 ram1
brw-rw----  1 root disk        1,  10 May 18 10:26 ram10
brw-rw----  1 root disk        1,  11 May 18 10:26 ram11
brw-rw----  1 root disk        1,  12 May 18 10:26 ram12
brw-rw----  1 root disk        1,  13 May 18 10:26 ram13
brw-rw----  1 root disk        1,  14 May 18 10:26 ram14
brw-rw----  1 root disk        1,  15 May 18 10:26 ram15
brw-rw----  1 root disk        1,   2 May 18 10:26 ram2
brw-rw----  1 root disk        1,   3 May 18 10:26 ram3
brw-rw----  1 root disk        1,   4 May 18 10:26 ram4
brw-rw----  1 root disk        1,   5 May 18 10:26 ram5
...

字符文件(Character): 也是设备文件,对拜谒系统硬件组件提供了非缓冲串行接口。它们与设备的通讯职业方法是三遍只传输二个字符的数目。

列出某目录下的字符文件:

# ls -l /dev | grep "^c"

输出例子

crw-------  1 root root       10, 235 May 18 15:54 autofs
crw-------  1 root root       10, 234 May 18 15:54 btrfs-control
crw-------  1 root root        5,   1 May 18 10:26 console
crw-------  1 root root       10,  60 May 18 10:26 cpu_dma_latency
crw-------  1 root root       10, 203 May 18 15:54 cuse
crw-------  1 root root       10,  61 May 18 10:26 ecryptfs
crw-rw----  1 root video      29,   0 May 18 10:26 fb0
crw-rw-rw-  1 root root        1,   7 May 18 10:26 full
crw-rw-rw-  1 root root       10, 229 May 18 10:26 fuse
crw-------  1 root root      251,   0 May 18 10:27 hidraw0
crw-------  1 root root       10, 228 May 18 10:26 hpet
crw-r--r--  1 root root        1,  11 May 18 10:26 kmsg
crw-rw----  1 root root       10, 232 May 18 10:26 kvm
crw-------  1 root root       10, 237 May 18 10:26 loop-control
crw-------  1 root root       10, 227 May 18 10:26 mcelog
crw-------  1 root root      249,   0 May 18 10:27 media0
crw-------  1 root root      250,   0 May 18 10:26 mei0
crw-r-----  1 root kmem        1,   1 May 18 10:26 mem
crw-------  1 root root       10,  57 May 18 10:26 memory_bandwidth
crw-------  1 root root       10,  59 May 18 10:26 network_latency
crw-------  1 root root       10,  58 May 18 10:26 network_throughput
crw-rw-rw-  1 root root        1,   3 May 18 10:26 null
crw-r-----  1 root kmem        1,   4 May 18 10:26 port
crw-------  1 root root      108,   0 May 18 10:26 ppp
crw-------  1 root root       10,   1 May 18 10:26 psaux
crw-rw-rw-  1 root tty         5,   2 May 18 17:40 ptmx
crw-rw-rw-  1 root root        1,   8 May 18 10:26 random

标志链接文件(Symbolic link ): 符号链接是指向系统上别样文件的引用。因而,符号链接文件是指向任何文件的公文,那几个文件能够是目录或正规文件。

列出某目录下的暗号链接文件:

# ls -l /dev/ | grep "^l"

出口例子

lrwxrwxrwx  1 root root             3 May 18 10:26 cdrom -> sr0
lrwxrwxrwx  1 root root            11 May 18 15:54 core -> /proc/kcore
lrwxrwxrwx  1 root root            13 May 18 15:54 fd -> /proc/self/fd
lrwxrwxrwx  1 root root             4 May 18 10:26 rtc -> rtc0
lrwxrwxrwx  1 root root             8 May 18 10:26 shm -> /run/shm
lrwxrwxrwx  1 root root            15 May 18 15:54 stderr -> /proc/self/fd/2
lrwxrwxrwx  1 root root            15 May 18 15:54 stdin -> /proc/self/fd/0
lrwxrwxrwx  1 root root            15 May 18 15:54 stdout -> /proc/self/fd/1

Linux 中使用 ln 工具就足以创立三个符号链接文件,如下所示:

# touch file1.txt
# ln -s file1.txt /home/tecmint/file1.txt  [创建符号链接文件]
# ls -l /home/tecmint/ | grep "^l"         [列出符号链接文件]

在地点的事例中,首先大家在 /tmp 目录成立了四个名称叫 file1.txt 的文本,然后创建符号链接文件,将/home/tecmint/file1.txt 指向 /tmp/file1.txt 文件。

管道Pipe和下令管道Named pipe : 将三个经过的出口连接到另一个历程的输入,进而允许进度间通讯(IPC)的文件。

取名管道实际上是四个文件,用来使八个经过并行通讯,就疑似二个 Linux 管道相符。

列出某目录下的管道文件:

# ls -l | grep "^p"

输出例子:

prw-rw-r-- 1 tecmint tecmint    0 May 18 17:47 pipe1
prw-rw-r-- 1 tecmint tecmint    0 May 18 17:47 pipe2
prw-rw-r-- 1 tecmint tecmint    0 May 18 17:47 pipe3
prw-rw-r-- 1 tecmint tecmint    0 May 18 17:47 pipe4
prw-rw-r-- 1 tecmint tecmint    0 May 18 17:47 pipe5

在 Linux 中能够应用 mkfifo 工具来创制七个命名管道,如下所示:

# mkfifo pipe1
# echo "This is named pipe1" > pipe1

在上的例证中,大家创制了八个叫做 pipe1 的命名管道,然后利用 echo 命令 出席一些数目,这件事后在拍卖输入的数目时 shell 就成为非人机联作式的了(LCTT 译注:被管道占住了)。

接下来,大家开采别的叁个 shell 终端,运维别的的下令来打字与印刷出刚投入管道的数目。

# while read line ;do echo "This was passed-'$line' "; done<pipe1

套接字文件(socket): 提供经过间通讯方法的公文,它们能在运转在分歧情状中的进程之间传输数据和音信。

那便是说,套接字可以为运营网络上不一样机器中的进度提供数据和音信传输。

二个 socket 运营的例子就是网页浏览器连接到网址服务器的进程。

# ls -l /dev/ | grep "^s"

出口例子:

srw-rw-rw-  1 root root             0 May 18 10:26 log

上面是行使 C 语言编写的调用 socket() 系统调用的事例。

int socket_desc= socket(AF_INET, SOCK_STREAM, 0 );

上例中:

  • AF_INET 指的是地址域(IPv4)
  • SOCK_STREAM 指的是种类(暗中认可使用 TCP 合同连接)
  • 0 指协议(IP 协议)

使用 socket_desc 来引用管道文件,它跟文件汇报符是雷同的,然后再使用系统函数 read() 和 write() 来分别从那么些管道文件读写多少。

优良文件富含以下两种:

目录文件

这是局地极度的文书,不只能够分包普通文书又可含蓄其余的极其文件,它们在 Linux 文件系统中是以根(/)目录为起源分层协会存在的。

列出某目录下的目录文件:

# ls -l / | grep "^d"

出口例子:

drwxr-xr-x   2 root root  4096 May  5 15:49 bin
drwxr-xr-x   4 root root  4096 May  5 15:58 boot
drwxr-xr-x   2 root root  4096 Apr 11  2015 cdrom
drwxr-xr-x  17 root root  4400 May 18 10:27 dev
drwxr-xr-x 168 root root 12288 May 18 10:28 etc
drwxr-xr-x   3 root root  4096 Apr 11  2015 home
drwxr-xr-x  25 root root  4096 May  5 15:44 lib
drwxr-xr-x   2 root root  4096 May  5 15:44 lib64
drwx------   2 root root 16384 Apr 11  2015 lost found
drwxr-xr-x   3 root root  4096 Apr 10  2015 media
drwxr-xr-x   3 root root  4096 Feb 23 17:54 mnt
drwxr-xr-x  16 root root  4096 Apr 30 16:01 opt
dr-xr-xr-x 223 root root     0 May 18 15:54 proc
drwx------  19 root root  4096 Apr  9 11:12 root
drwxr-xr-x  27 root root   920 May 18 10:54 run
drwxr-xr-x   2 root root 12288 May  5 15:57 sbin
drwxr-xr-x   2 root root  4096 Dec  1  2014 srv
dr-xr-xr-x  13 root root     0 May 18 15:54 sys
drwxrwxrwt  13 root root  4096 May 18 17:55 tmp
drwxr-xr-x  11 root root  4096 Mar 31 16:00 usr
drwxr-xr-x  12 root root  4096 Nov 12  2015 var

你可以使用 mkdir 命令来创建叁个索引。

# mkdir -m 1666 tecmint.com
# mkdir -m 1666 news.tecmint.com
# mkdir -m 1775 linuxsay.com

块文件(block)

结论

明天应该对为什么 Linux 系统中一切都以文件以致 Linux 系统中得以存在什么类型的文本有一个领略的认知了。

你能够经过翻阅愈来愈多关于各样文件类型的篇章和相应的始建进度等来充实越多文化。小编愿意那篇教程对你具备助于。有别的疑问或有补充的学问,请留下顶牛,一同来谈谈。

块文件(block):设备文件,对寻访系统硬件零器件提供了缓存接口。它们提供了一种通过文件系统与设施驱动通讯的措施。 有关于块文件叁个至关心重视要的特性正是它们能在指按期间内传输大块的数据和新闻。 列出某目录下的块文件:

# ls -l /dev | grep "^b"

输出例子

brw-rw----  1 root disk        7,   0 May 18 10:26 loop0
brw-rw----  1 root disk        7,   1 May 18 10:26 loop1
brw-rw----  1 root disk        7,   2 May 18 10:26 loop2
brw-rw----  1 root disk        7,   3 May 18 10:26 loop3
brw-rw----  1 root disk        7,   4 May 18 10:26 loop4
brw-rw----  1 root disk        7,   5 May 18 10:26 loop5
brw-rw----  1 root disk        7,   6 May 18 10:26 loop6
brw-rw----  1 root disk        7,   7 May 18 10:26 loop7
brw-rw----  1 root disk        1,   0 May 18 10:26 ram0
brw-rw----  1 root disk        1,   1 May 18 10:26 ram1
brw-rw----  1 root disk        1,  10 May 18 10:26 ram10
brw-rw----  1 root disk        1,  11 May 18 10:26 ram11
brw-rw----  1 root disk        1,  12 May 18 10:26 ram12
brw-rw----  1 root disk        1,  13 May 18 10:26 ram13
brw-rw----  1 root disk        1,  14 May 18 10:26 ram14
brw-rw----  1 root disk        1,  15 May 18 10:26 ram15
brw-rw----  1 root disk        1,   2 May 18 10:26 ram2
brw-rw----  1 root disk        1,   3 May 18 10:26 ram3
brw-rw----  1 root disk        1,   4 May 18 10:26 ram4
brw-rw----  1 root disk        1,   5 May 18 10:26 ram5
...

字符文件(Character)

字符文件(Character): 也是器材文件,对拜会系统硬件组件提供了非缓冲串行接口。它们与设备的通讯职业章程是一回只传输三个字符的数量。 列出某目录下的字符文件:

# ls -l /dev | grep "^c"

出口例子

crw-------  1 root root       10, 235 May 18 15:54 autofs
crw-------  1 root root       10, 234 May 18 15:54 btrfs-control
crw-------  1 root root        5,   1 May 18 10:26 console
crw-------  1 root root       10,  60 May 18 10:26 cpu_dma_latency
crw-------  1 root root       10, 203 May 18 15:54 cuse
crw-------  1 root root       10,  61 May 18 10:26 ecryptfs
crw-rw----  1 root video      29,   0 May 18 10:26 fb0
crw-rw-rw-  1 root root        1,   7 May 18 10:26 full
crw-rw-rw-  1 root root       10, 229 May 18 10:26 fuse
crw-------  1 root root      251,   0 May 18 10:27 hidraw0
crw-------  1 root root       10, 228 May 18 10:26 hpet
crw-r--r--  1 root root        1,  11 May 18 10:26 kmsg
crw-rw----  1 root root       10, 232 May 18 10:26 kvm
crw-------  1 root root       10, 237 May 18 10:26 loop-control
crw-------  1 root root       10, 227 May 18 10:26 mcelog
crw-------  1 root root      249,   0 May 18 10:27 media0
crw-------  1 root root      250,   0 May 18 10:26 mei0
crw-r-----  1 root kmem        1,   1 May 18 10:26 mem
crw-------  1 root root       10,  57 May 18 10:26 memory_bandwidth
crw-------  1 root root       10,  59 May 18 10:26 network_latency
crw-------  1 root root       10,  58 May 18 10:26 network_throughput
crw-rw-rw-  1 root root        1,   3 May 18 10:26 null
crw-r-----  1 root kmem        1,   4 May 18 10:26 port
crw-------  1 root root      108,   0 May 18 10:26 ppp
crw-------  1 root root       10,   1 May 18 10:26 psaux
crw-rw-rw-  1 root tty         5,   2 May 18 17:40 ptmx
crw-rw-rw-  1 root root        1,   8 May 18 10:26 random

标识链接文件(Symbolic link)

标识链接文件(Symbolic link) : 符号链接是指向系统上此外文件的援引。由此,符号链接文件是指向别的文件的文件,那些文件能够是目录或正规文件。 列出某目录下的号子链接文件:

# ls -l /dev/ | grep "^l"

输出例子

lrwxrwxrwx  1 root root             3 May 18 10:26 cdrom -> sr0
lrwxrwxrwx  1 root root            11 May 18 15:54 core -> /proc/kcore
lrwxrwxrwx  1 root root            13 May 18 15:54 fd -> /proc/self/fd
lrwxrwxrwx  1 root root             4 May 18 10:26 rtc -> rtc0
lrwxrwxrwx  1 root root             8 May 18 10:26 shm -> /run/shm
lrwxrwxrwx  1 root root            15 May 18 15:54 stderr -> /proc/self/fd/2
lrwxrwxrwx  1 root root            15 May 18 15:54 stdin -> /proc/self/fd/0
lrwxrwxrwx  1 root root            15 May 18 15:54 stdout -> /proc/self/fd/1

Linux 中选取 ln 工具就足以创设多个符号链接文件,如下所示:

# touch file1.txt
# ln -s file1.txt /home/tecmint/file1.txt  [创建符号链接文件]
# ls -l /home/tecmint/ | grep "^l"         [列出符号链接文件]

在上头的例子中,首先我们在 /tmp 目录成立了三个名称叫 file1.txt 的文书,然后成立符号链接文件,将 /home/tecmint/file1.txt 针对 /tmp/file1.txt 文书。

管道(Pipe)和下令管道(Named pipe) 

本文由betway必威发布于网络技术,转载请注明出处:一切都是文件,概念和相应的文件类型

TAG标签: betway必威
Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。