谈一谈Linux中一切皆文件

1、

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

普通文件是文件。

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

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

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

2、

文件类型:

1) 普通文件

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

2) 目录文件

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

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

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

vim 目录名

3) 字符设备文件和块设备文件

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

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

4) 套接字文件(socket)

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

5) 符号链接文件(symbolic link)

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

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上的根目录找到设备文件的目录结构,就必须将这两个文件系统目录合二为一,这就是挂载的真正含义。

linux一切皆是文件_Linux中一切皆文件相关推荐

  1. fopen无法创建文件_Linux中一切皆文件,除了网卡

    Linux下一切皆文件的概念深入人心,除了网卡外,在Linux系统中被分为了很多种文件,它们都有各自的特点,下面列举下: Linux中除网卡外,所有东西都被归类为以下七种文件之一: 块设备文件(blo ...

  2. linux一切皆是文件_Linux中“一切皆文件”是什么意思?

    Linux的一切皆文件是指,Linux世界中的所有.任意.一切东西都可以通过文件的方式访问.管理. 反过来说,是Linux和GNU世界定的规范,任何东西都挂在文件系统之上,即使它们不是文件,也以文件的 ...

  3. kali创建文件_LINUX中,创建文件夹、文件命令及清除命令。

    展开全部 假设我们在/home里创建 1.创建一个叫test的文件夹 输入 cd /home 回车 就到e5a48de588b6323131333532363134313032313635333133 ...

  4. Linux 中如何复制和删除文件夹中的所有文件?

    Linux 中如何复制和删除文件夹中的所有文件? 1.复制文件 目标文件目录必须存在 (1) 直接复制 cp /hone/user/temp/test.c /home/user/ (2) 复制并重命名 ...

  5. 如何用C语言清空特定文件夹中的所有文件

    最近笔者在做一个有关计算机视觉的项目,需要对提前的视频帧进行实验,当数据量很大且文件夹中的子文件夹和文件很多时,手工删除这些文件不现实,笔者今天写了一个程序,通过机器自动删除所有相关文件,十分快速,删 ...

  6. C++ 如何将一个文件夹中的所有文件(.txt或者.log)内容整合到一个文件(.txt或者.log)当中

    有时候我们希望读取一个文件夹中的所有文件,对各个文件中的数据按某种规则进行筛选,然后将筛选后的数据整合到一个文件中.这段时间正好替同事写了这一部分,在此记录下来自己的处理过程,如果有需要的朋友也可以参 ...

  7. 服务器所有文件,检索服务器端文件夹中的所有文件

    我有以下C#方法,该方法检索文件夹中的所有文件,并在asp.net应用程序中使用,并通过JavaScript进行AJAX调用来调用: public string GetSoundFile(string ...

  8. java中拷贝文件的代码_拷贝文件夹中的所有文件到另外一个文件夹

    [java]代码库/** * * 拷贝文件夹中的所有文件到另外一个文件夹 * * @param srcDirector * 源文件夹 * * @param desDirector * 目标文件夹 * ...

  9. C#遍历指定文件夹中的所有文件

    C#遍历指定文件夹中的所有文件  DirectoryInfo TheFolder=new DirectoryInfo(folderFullName); //遍历文件夹 foreach(Director ...

最新文章

  1. php.ini Xdebug配置
  2. 2011年终盘点——附图灵公司销售榜单(TOP20)
  3. Web 上一页下一页 用超链接 用按钮
  4. 关于外挂新手最常见的30个问题
  5. 富文本编辑器中空格转化为a_如何对富文本编辑器(FCK Html Editor)的工具栏进行扩展?...
  6. 谷歌发布全新TensorFlow库“tf.Transform” 简化机器学习数据预处理过程
  7. Java Timestamp Memo
  8. 大一新生计算机课word知识,大学新生计算机基础分层考试结果探析与启发.doc
  9. html to docx
  10. xlwings复制sheet_Python操作Excel的Xlwings教程(六)
  11. Action详解(一)
  12. Serverless 全能选手,再添一“金”
  13. PCL 1.8.1 在VS2015中配置 包含目录、库目录和附加依赖项
  14. Delphi XE2有什么新功能
  15. [转]enable spice html5 console access in openstack kilo(centos)
  16. 佛说剖腹产的孩子_选择好的剖腹产时间会改变孩子的命运吗?
  17. matlab将水印图像嵌入图像,改进的图像自嵌入水印算法及其MATLAB实现
  18. ie浏览器js不刷新和乱码问题
  19. 2023年,前端开发就业前景好吗?
  20. 百度云网盘-kyee_ye的分享

热门文章

  1. C#连接数据库的登录界面
  2. 即构助力Live.me,Uplive直播出海,实时音视频技术优势向全球输出
  3. mysql数据库能被非法下载吗_如何防止Access数据库被下载
  4. Redis环境搭建以及常见问题详解
  5. 宁波学python_宁波多久能学会python(学了Python)
  6. tp6 redis 排行榜
  7. 面部特征点检测(使用opencv+dlib)
  8. R语言使用dplyr包的groupby函数和summarise函数计算每个分组数据的百分位数、quantile函数计算百分位数、通过设置probs参数计算百分位数
  9. SpringBoot 抵御XSS攻击
  10. git合并分支的理解和应用