(9)Linux的哲学思想及文件概念
一、Linux的哲学思想
1. 一切皆文件
把几乎所有资源统统抽象为文件形式,包括硬件设备,甚至通信接口等,便于统一管理和定义;
对文件的操作有:open,read,write,close,delete,create
2. 由众多功能单一的程序组成
一个程序只做一件事,并且做好,保证了Linux内核的高效运行;
3. 组合小程序完成复杂任务
通过连接多个简单的程序实现复杂的功能;
4. 尽量避免和用户交互
更贴近编程,易于以编程的方式实现自动化任务;
5. 使用文本文件保存配置信息
修改配置信息只需要任意一款文本编辑器就可以进行。
二、一切皆文件
1.Linux 中所有内容都是以文件的形式保存和管理的,即一切皆文件,普通文件是文件,目录(Windows 下称为文件夹)是文件,硬件设备(键盘、监视器、硬盘、打印机)是文件,就连套接字(socket)、网络通信等资源也都是文件。
Linux系统中,文件具体可分为以下几种类型:
1) 普通文件
类似 mp4、pdf、html 这样,可直接拿来使用的文件都属于普通文件,Linux 用户根据访问权限的不同可以对这些文件进行查看、删除以及更改操作。
2) 目录文件
对于用惯 Windows 系统的用户来说,目录是文件可能不太好理解。
Linux 系统中,目录文件包含了此目录中各个文件的文件名以及指向这些文件的指针,打开目录等同于打开目录文件,只要你有权限,可以随意访问目录中的任何文件。
注意,目录文件的访问权限,同普通文件的执行权限,是一个意思。
3) 字符设备文件和块设备文件
这些文件通常隐藏在 /dev/ 目录下,当进行设备读取或外设交互时才会被使用。
例如,磁盘光驱属于块设备文件,串口设备则属于字符设备文件。
Linux 系统中的所有设备,要么是块设备文件,要么是字符设备文件。
4) 套接字文件(socket)
套接字文件一般隐藏在 /var/run/ 目录下,用于进程间的网络通信。
5) 符号链接文件(symbolic link)
类似与 Windows 中的快捷方式,是指向另一文件的简介指针(也就是软链接)。
6) 管道文件(pipe)
主要用于进程间通信。例如,使用 mkfifo 命令创建一个 FIFO 文件,与此同时,启用进程 A 从 FIFO文件读数据,启用进程 B 从 FIFO文件中写数据,随写随读。
2.“一切皆文件”的利弊
和 Windows 系统不同,Linux 系统没有 C 盘、D 盘、E 盘那么多的盘符,只有一个根目录(/),所有的文件(资源)都存储在以根目录(/)为树根的树形目录结构中。
这样做最明显的好处是,开发者仅需要使用一套 API 和开发工具即可调取 Linux 系统中绝大部分的资源。举个简单的例子,Linux 中几乎所有读(读文件,读系统状态,读 socket,读 PIPE)的操作都可以用 read 函数来进行;
几乎所有更改(更改文件,更改系统参数,写 socket,写 PIPE)的操作都可以用 write 函数来进行。
不利之处在于,使用任何硬件设备都必须与根目录下某一目录执行挂载操作,否则无法使用。我们知道,本身 Linux 具有一个以根目录为树根的文件目录结构,每个设备也同样如此,它们是相互独立的。
如果我们想通过 Linux 上的根目录找到设备文件的目录结构,就必须将这两个文件系统目录合二为一,这就是挂载的真正含义。
(9)Linux的哲学思想及文件概念的更多相关文章
- Linux的哲学思想
1.一切皆文件:2.单一目的的小程序:3.组合小程序完成复杂任务:4.文本文件保存配置信息:5.尽量避免捕获用户接口:6.提供机制,而非策略. 说到底Linux的哲学思想在于方便和更好的管理后台,不同 ...
- (3)Linux的哲学思想
1. 一切皆文件 把几乎所有资源统统抽象为文件形式,包括硬件设备,甚至通信接口等,便于统一管理和定义: 对文件的操作有:open,read,write,close,delete,create 2. 由 ...
- 【Linux相识相知】计算机的组成、linux发行版和哲学思想、基础命令和目录结构(FHS)
从今天开始,Frank将开始在博客上记录自己学习linux的点点滴滴,F初来乍到,还望各位大佬多多指教.本次博客的主要内容如下: 计算机基础:简要的描述了计算机的组成及其功能: linux初识:介绍了 ...
- Linux发行版--发行版之间的关系--哲学思想--目录的命名规则及用途
作业2 点此链接查看centos7安装 点此链接查看Ubuntu安装 点此链接查看作业3.5 点此链接查看作业7.8.9 作业1.4.6 Linux发行版--发行版之间的关系 1.Linux是什么 L ...
- Linux哲学思想--基本法则
1.一切皆文件: 2.单一目的的小程序: 3.组合小程序完成复杂任务: 4.文本文件保存配置信息: 5.尽量避免捕获用户接口: 6.提供机制,而非策略. 自从Linux一诞生就注定了其成为经典的命运. ...
- linux哲学思想
linux哲学思想 1.一切皆为文件 linux将所有的对象几乎都抽象为文件,无论是硬件设备.还是通讯接口都当做文件处理,这样可以设计统一的访问控制操作(read();write();delete() ...
- CentOS7.6操作系统安装实例以及Linux版本、哲学思想介绍
Linux起源1991年的10月5日,Torvalds在comp.os.minix新闻组上发布消息,正式向外宣布他自行编写的完全自由免费的内核诞生(Freeminix-like kernel sour ...
- Linux的用户(组),权限,文件精妙的三角关系,和强大的帮助系统
在linux中一切都是文件(文件夹和硬件外设是特殊的文件),如果有可能尽量使用文本文件.文本文件是人和机器能理解的文件,也成为人和机器进行 交流的最好途径.由于所有的配置文件都是文本,所以你只需要一个 ...
- Linux学习(一)--基本概念
一.Linux概述 Linux是一款全球性的免费的开源的操作系统平台,其特点是实现了多任务多用户处理,主要是依赖内核kernel shell,且占用资源少 (最小配置只要4Mb内存就能运行). 百度百 ...
随机推荐
- 数据库1 --- > 数据库概念、安装、卸载
数据库概念 为什么学习数据库?1.web中的数据量非常大:2. 数据不方便存储和管理 什么是数据库: 用于存储和管理数据的仓库 数据库的特点: 数据可以实现持久化存储,其实数据库就是一个文件系统. ...
- 微信小程序--仿微信小程序朋友圈Pro(内容发布、点赞、评论、回复评论)
微信小程序--仿微信小程序朋友圈Pro(内容发布.点赞.评论.回复评论) 项目开源地址M朋友圈Pro 求个Star 项目背景 基于原来的开源项目 微信小程序仿朋友圈功能开发(发布.点赞.评论等功能 ...
- GCC 概述:C 语言编译过程详解
Tags: C Description: 关于 GCC 的个人笔记 GCC 概述 对于 GCC 6.1 以及之后的版本,默认使用的 C++ 标准是 C++ 14:使用 -std=c++11 来指定使用 ...
- Azure 存储简介
Azure Storage Account(存储账户)包含所有Azure Storage的数据对象,包括Blob.Data Lake Gen2,File.Queue.Disk和Table等服务,该St ...
- centos 6.5 下安装RabbitMQ-3.7.28 二进制版本
centos 6.5 下安装RabbitMQ-3.7.28 二进制版本 安装依赖: yum install -y ncurses-devel socat logrotatewxWidgets-deve ...
- Ubuntu_Gedit配置
Ubuntu_Gedit配置 为了换Ubuntu的时候能够更加方便,不用再用手重新打一遍代码,丢几个Gedit配置-- External Tools gdb compile (F2) #!/bin/s ...
- Go中由WaitGroup引发对内存对齐思考
转载请声明出处哦~,本篇文章发布于luozhiyun的博客:https://www.luozhiyun.com 本文使用的go的源码时14.4 WaitGroup使用大家都会,但是其中是怎么实现的我们 ...
- 【Linux】用yum来下载rpm,而不安装
方法一:yum yum命令本身就可以用来下载一个RPM包,标准的yum命令提供了--downloadonly(只下载)的选项来达到这个目的. $ sudo yum install --download ...
- ASP.NET MVC--sqlserver数据库脚本的导入导出
1.右键选择数据库---任务----生成脚本 2.弹出如下框 导出整个表,默认下一步,否则选择特定数据库对象表单选框 3.修改文件名路径,可以保存脚本到制定路径,否则为默认,点击高级进入 要编写脚本的 ...
- 阿里云 CentOS7中搭建FTP服务器
1配置 vsftpd-3.0.2-27.el7.x86_64 阿里云 centos 7.0 2 ftp工作模式 2.1 ftp通道 ftp工作会启动两个通道: 控制通道,数据通道 在ftp协议中,控制 ...