Linux中一切皆文件

Linux中一切皆文件

1、

Linux中所有内容都是以文件的形式保存和管理,即:一切皆文件。

普通文件是文件。

目录(在win下称为文件夹)是文件。

硬件设备(键盘、硬盘、打印机)是文件。

套接字(socket)、网络通信等资源也都是文件。

2、

文件类型:

1) 普通文件

类似 mp4、jgp、html这样,可直接拿来使用的文件都属于普通文件。

Linux中一切皆文件是什么意思
2) 目录文件

习惯win系统的用户来说,目录是文件可能不太好接受。

Linux系统中,目录文件包含了此目录中各个文件的文件名以及指向这些文件的指针,打开目录等同于打开目录文件。

即:只要有权限,可以随意访问目录中的任何文件。

vim 目录名

Linux中一切皆文件是什么意思
3) 字符设备文件和块设备文件

通常隐藏在/dev/目录下,当进行设备读取或外设交互时才会被使用。

例如:磁盘光驱属于块设备文件,串口设备则属于字符设备文件。

Linux中一切皆文件是什么意思
4) 套接字文件(socket)

套接字文件一般隐藏在 /var/run/目录下,用于进程间的网络通信。

Linux中一切皆文件是什么意思
5) 符号链接文件(symbolic link)

类似与win中的快捷方式,是指向另一文件的指针(软链接)。

Linux中一切皆文件是什么意思
6) 管道文件(pipe)

主要用于进程间通信。

例如:使用mkfifo命令创建一个FIFO文件,与此同时启用进程A从FIFO文件读数据,启用进程B从FIFO文件中写数据,随写随读。

3、

一切皆文件的利弊:

与Windows 系统不同,Linux 系统没有C盘、D盘、E盘那么多的盘符,只有一个根目录(/),所有的文件(资源)都存储在以根目录(/)为树根的树形目录结构中。

(1)这样做最明显的好处是,开发者仅需要使用一套 API 和开发工具即可调取 Linux 系统中绝大部分的资源。举个简单的例子,Linux 中几乎所有读(读文件,读系统状态,读 socket,读PIPE)的操作都可以用read函数来进行;几乎所有更改(更改文件,更改系统参数,写 socket,写 PIPE)的操作都可以用write函数来进行。

(2)不利之处在于,使用任何硬件设备都必须与根目录下某一目录执行挂载操作,否则无法使用。我们知道,本身Linux具有一个以根目录为树根的文件目录结构,每个设备也同样如此,它们是相互独立的。如果我们想通过Linux上的根目录找到设备文件的目录结构,就必须将这两个文件系统目录合二为一,这就是挂载的真正含义。

欢迎大家给予宝贵的意见或者建议。

欢迎大家补充或者共享一些其他的方法。

感谢支持。

转载于:https://blog.51cto.com/10515212/2384659

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值