在UNIX中一切都是文件
https://ph7spot.com/musings/in-unix-everything-is-a-file
在UNIX中,一切都是字节流

==== linux系统的文件类型有

  1. - 普通文件(regular), 纯文本文件(ASCII);二进制文件(binary);数据格式的文件(data);各种压缩文件.
  2. d 目录(directory)
  3. l 符号链接(link)
  4. s (伪文件) 套接字(sockets), 数据接口文件,通常用在网络数据连接。可以启动一个程序来监听客户端的要求,客户端就可以通过套接字来进行数据通信。最常在/var/run
  5. b (伪文件) 区块设备(block), 存储数据以供系统存取的接口设备,比如硬盘分区。/dev/
  6. c (伪文件) 字符设备(character),即串行端口的接口设备,例如键盘、鼠标等,这些设备的特色就是『一次性读取』的,不能够截断输出。
  7. p (伪文件) 管道(pipe, FIFO,数据输送文件),FIFO也是一种特殊的文件类型,它主要的目的是,解决多个程序同时存取一个文件所造成的错误。

在UNIX中,文件系统用作通用名称空间
全局命名空间和挂载机制

文件路径可以引用几乎任何东西:文件系统,设备,网络共享或通信通道。

  • 本地目录 /usr/local,
  • 文件 /home/joe/memo.pdf,
  • CD-ROM /mnt/cdrom,
  • 网络驱动器上的目录 /usr,
  • 硬盘分区 /dev/sda1,
  • UNIX域套接字 /tmp/mysql.sock,
  • 终端, /dev/tty0
  • 甚至一个鼠标 /dev/mouse

命名空间是分层的,所有资源都可以从根目录(/)中引用。

伪文件系统(虚拟文件系统),可以使用伪文件系统来查询和控制进程,访问内核或建立TCP连接。

  • procfs (/proc):proc文件系统包含一个特殊文件层次结构,可用于查询或控制正在运行的进程,或通过标准文件条目(主要是基于文本的)查看内核内部。
  • devfs (/dev 或 /devices):Devfs将系统上的所有设备都显示为动态文件系统命名空间。Devfs还管理此命名空间并直接与内核设备驱动程序接口,以提供智能设备管理 - 包括设备条目注册/取消注册。
  • tmpfs (/tmp):临时文件系统,其内容在重新启动时消失。Tmpfs旨在提高速度和效率,其功能包括动态文件系统大小以及具有透明回退到交换空间的内存存储 。
  • portalfs (/p):使用BSD门户文件系统,您可以将服务器进程附加到文件系统全局命名空间。这可用于通过文件系统提供对网络服务的透明访问。对于例如应用程序可以使用托管的SMTP服务器进行交互的 ph7spot.com 只是打开一个普通文件:/p/tcp/ph7spot.com/smtp。该门户网站的文件系统是在一定程度上神奇它提供套接字文件系统中的语义可以通过标准的UNIX工具管道和利用(如 cat, grep, awk,等) -即使从外壳!
  • ctfs (/system/contract):合同文件系统充当Solaris合同子系统的基于文件的接口。Solaris合约为各种类型的事件和故障定义进程或进程组的行为 - 例如,如果它死亡,则重新启动它。Solaris合同为诸如群集故障转移软件,批处理排队系统和网格计算引擎等环境中的软件管理和监视提供了非常高级的功能。

扩展UNIX文件抽象到通用网络
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.597.4699&rep=rep1&type=pdf

==========================
$ ls -l /boot/
drwxr-xr-x 2 root root 4096 Jan 12 00:33 grub
从左到右依次是:文件类型, 所有者权限, 所有组权限, 其他用户权限,
文件的硬链接数, 所有者, 所有组, 大小, 日期, 文件名

===========================
== 查看文件类型的三种办法
$ ls -l //看第一个字符
-rw-r--r-- 1 toma users 3148 Mar 29 18:00 git.txt

$ file git.txt
git.txt: UTF-8 Unicode text

$ stat git.txt //查看文件的详细属性(其中包括文件时间属性)
File: git.txt
Size: 3148 Blocks: 8 IO Block: 4096 regular file
Device: 817h/2071d Inode: 1447871 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1001/ toma) Gid: ( 985/ users)
Access: 2019-03-29 21:07:07.739286977 +0800
Modify: 2019-03-29 18:00:44.999869076 +0800
Change: 2019-03-29 21:06:53.532697274 +0800
Birth: 2019-03-28 12:54:05.599149072 +0800

=======================
== 文件权限
八进制 二进制 含义
0 000 --- 没有权限
1 001 --x 只执行
2 010 -w- 只写
3 011 -wx 写和执行
4 100 r-- 只读
5 101 r-x 阅读和执行
6 110 rw- 读和写
7 111 rwx 读,写和执行

=======================
更改文件所有者
$ chown (change owner)
更改权限
$ chmod (change mode)

============================

https://wiki.archlinux.org/index.php/Core_utilities
核心实用程序是GNU / Linux系统的基本工具。在Arch Linux上,它们位于基本组中。

https://wiki.archlinux.org/index.php/GNU
GNU是一个操作系统和广泛的计算机软件集合。
GNU完全由自由软件组成,其中大部分是根据GNU项目自己的通用公共许可证(GPL)许可的。
GNU是“GNU不是Unix!”的递归首字母缩写。
因为GNU内核Hurd不能用于生产[1] GNU通常与Linux内核一起使用。
Arch Linux是一个GNU / Linux发行版,使用GNU软件,如Bash shell,GNU coreutils,GNU工具链和许多其他实用程序和库。
此页面不会尝试列出所有近400个 GNU包,只突出显示一些。
https://www.gnu.org/software/software.html#allgnupkgs

Linux 文件类型笔记的更多相关文章

  1. linux命令学习笔记(24):Linux文件类型与扩展名

    Linux文件类型和Linux文件的文件名所代表的意义是两个不同的概念.我们通过一般应用程序 而创建的比如file.txt.file.tar.gz ,这些文件虽然要用不同的程序来打开,但放在Linux ...

  2. Linux文件类型

    1.windows系统和Linux系统的区别 windows通过问价扩展名来区分文件类型,例如*.txt是一个文本文件, linux系统文件的扩展名和文件类型没有关系 为了容易区分文件类型,linux ...

  3. 每天一个linux命令(24):Linux文件类型与扩展名

    Linux文件类型和Linux文件的文件名所代表的意义是两个不同的概念.我们通过一般应用程序而创建的比如file.txt.file.tar.gz ,这些文件虽然要用不同的程序来打开,但放在Linux文 ...

  4. CentOS(七)--Linux文件类型及目录配置

    这篇随笔将会对Linux系统的文件类型以及Linux的目录结构进行详细补充(linux中目录管理和权限非常重要,特别是在linux安装数据库类软件). 一.Linux更改文件权限的两种方式 在之前的一 ...

  5. Linux文件类型与扩展名

    Linux文件类型和Linux文件的文件名所代表的意义是两个不同的概念.我们通过一般应用程序而创建的比如file.txt.file.tar.gz ,这些文件虽然要用不同的程序来打开,但放在Linux文 ...

  6. 每天一个linux命令(24)--Linux文件类型与扩展名

    linux 文件类型和Linux 文件的文件名所代表的意义是两个不同的概念.我们通过一般应用程序而创建的比如 file.txt  file.tar.gz.这些文件虽然要用不同的程序来打开,但放在Lin ...

  7. linux每日命令(25):Linux文件类型与扩展名

    Linux文件类型和Linux文件的文件名所代表的意义是两个不同的概念.我们通过一般应用程序而创建的比如file.txt.file.tar.gz ,这些文件虽然要用不同的程序来打开,但放在Linux文 ...

  8. Linux 文件类型及操作

    一.  文件类型 1.Linux文件类型如下图所示: 2.Linux文件类型有许多种,不同的文件类型代表特殊意义,使用以下命令可以查看文件类型: [root@VMredhat6 ~]# ls  -l  ...

  9. linux常用命令:Linux 文件类型与扩展名

    Linux文件类型和Linux文件的文件名所代表的意义是两个不同的概念.我们通过一般应用程序而创建的比如file.txt.file.tar.gz ,这些文件虽然要用不同的程序来打开,但放在Linux文 ...

随机推荐

  1. shiro 分布式缓存用户信息

    很多分布式缓存登录用户信息一般都是存在redis类似的缓存里面.其中实现细节或者拆分都是大同小异. 一般用户登录权限管理都用shiro处理. 如果仔细分应该就是一下3种. 1,有一个单独的用户权限管理 ...

  2. [大数据从入门到放弃系列教程]在IDEA的Java项目里,配置并加入Scala,写出并运行scala的hello world

    [大数据从入门到放弃系列教程]在IDEA的Java项目里,配置并加入Scala,写出并运行scala的hello world 原文链接:http://www.cnblogs.com/blog5277/ ...

  3. xml.libxml2_添加带tagname的xml文本(xmlNewTextChild)

    1. 2.例子代码: int TgText::NodeNew_G2SVG(xmlNode* _pNodeCurrent_G, xmlNode* _pNodeParent_SVG, xmlNode** ...

  4. [数据结构]P1.1 链表结构

    * 注: 本文/本系列谢绝转载,如有转载,本人有权利追究相应责任. 2019年4月8日 Stan Zhang 2019年4月8日  格物致知,经世致用. [面试题]1.为什么要用链表? 数组具有的缺陷 ...

  5. Python自学:第二章 使用函数str( )避免类型错误

    age = 23 message = "Happy " + str(age) + "rd Birthday" print(message) 输出位 Happy ...

  6. google sitemap

    引言 刚开始以为要一个绿色快速通道网页,涵盖常用的地址链接,以便于google的爬虫统计数据,然后看了google sitemap站点文档,原来站点地图是一种文件,您可以通过该文件列出您网站上的网页, ...

  7. mysql 5.7版本的安装(非解压版)

    这次的开发项目数据库方面要用到mysql,为了更好的学习,就在本地安装了一个mysql 一:下载安装步骤: https://blog.csdn.net/qq_34952973/article/deta ...

  8. 【OS】Heap & Stack

    操作系统概念的堆.栈不同于数据结构的堆.栈. C 语言中,一切指针占 4 字节,这意味着指针指向 RAM 中的地址可以有 232 个,最小的地址是 0,最大的地址是 231 - 1. (一)堆: 堆空 ...

  9. coursera-斯坦福-机器学习-吴恩达-笔记week3

    1 逻辑回归 1. classification 分类 eg:垃圾邮件分类.交易是否是欺诈.肿瘤类别.分类的结果是离散值. 2. sigmoid函数 使用线性方法来判断分类问题,会出现上图中的问题,需 ...

  10. Json 网络传递解析异常

    在项目中碰到一个bug,A项目请求B项目,获取到的Json无法解析,B项目封装的Json,在项目内部可以正常解析,问题并不是Json 解析的错误,而是实体Bean中有数组类型的字段;解决办法就是对封装 ...