诠释Linux 中“一切都是文件”概念和相应的文件类型
作者:网络转载 发布时间:[ 2016/8/24 11:40:19 ] 推荐标签:操作系统 Unix 进程
列出某目录下的管道文件:
#ls-l|grep"^p"
输出例子:
prw-rw-r--1tecminttecmint0May1817:47pipe1
prw-rw-r--1tecminttecmint0May1817:47pipe2
prw-rw-r--1tecminttecmint0May1817:47pipe3
prw-rw-r--1tecminttecmint0May1817:47pipe4
prw-rw-r--1tecminttecmint0May1817:47pipe5
在Linux中可以使用mkfifo工具来创建一个命名管道,如下所示:
#mkfifopipe1
#echo"Thisisnamedpipe1">pipe1
在上的例子中,我们创建了一个名叫pipe1的命名管道,然后使用echo命令加入一些数据,这之后在处理输入的数据时shell变成非交互式的了(LCTT译注:被管道占住了)。
然后,我们打开另外一个shell终端,运行另外的命令来打印出刚加入管道的数据。
#whilereadline;doecho"Thiswaspassed-'$line'";done
套接字文件(socket):提供进程间通信方法的文件,它们能在运行在不同环境中的进程之间传输数据和信息。
这是说,套接字可以为运行网络上不同机器中的进程提供数据和信息传输。
一个socket运行的例子是网页浏览器连接到网站服务器的过程。
#ls-l/dev/|grep"^s"
输出例子:
srw-rw-rw-1rootroot0May1810:26log
下面是使用C语言编写的调用socket()系统调用的例子。
intsocket_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-x2rootroot4096May515:49bin
drwxr-xr-x4rootroot4096May515:58boot
drwxr-xr-x2rootroot4096Apr112015cdrom
drwxr-xr-x17rootroot4400May1810:27dev
drwxr-xr-x168rootroot12288May1810:28etc
drwxr-xr-x3rootroot4096Apr112015home
drwxr-xr-x25rootroot4096May515:44lib
drwxr-xr-x2rootroot4096May515:44lib64
drwx------2rootroot16384Apr112015lost+found
drwxr-xr-x3rootroot4096Apr102015media
drwxr-xr-x3rootroot4096Feb2317:54mnt
drwxr-xr-x16rootroot4096Apr3016:01opt
dr-xr-xr-x223rootroot0May1815:54proc
drwx------19rootroot4096Apr911:12root
drwxr-xr-x27rootroot920May1810:54run
drwxr-xr-x2rootroot12288May515:57sbin
drwxr-xr-x2rootroot4096Dec12014srv
dr-xr-xr-x13rootroot0May1815:54sys
drwxrwxrwt13rootroot4096May1817:55tmp
drwxr-xr-x11rootroot4096Mar3116:00usr
drwxr-xr-x12rootroot4096Nov122015var
您可以使用mkdir命令来创建一个目录。
#mkdir-m1666tecmint.com
#mkdir-m1666news.tecmint.com
#mkdir-m1775linuxsay.com
结论
现在应该对为什么Linux系统中一切都是文件以及Linux系统中可以存在哪些类型的文件有一个清楚的认识了。
您可以通过阅读更多有关各个文件类型的文章和对应的创建过程等来增加更多知识。我希望这篇教程对您有所帮助。有任何疑问或有补充的知识,请留下评论,一起来讨论。
本文内容不用于商业目的,如涉及知识产权问题,请权利人联系SPASVO小编(021-61079698-8054),我们将立即处理,马上删除。
相关推荐
Linux下开源的DDR压力测试工具曝Linux恶意软件:让树莓派设备挖掘数字货币linux系统中不同颜色的文件夹及根目录介绍软件测试工程师必知必会Linux命令Linux下DNS服务器配置如何成为不可替代的Linux运维工程师?详解Linux进程(作业)的查看和杀死Linux 日志定时轮询流程详解比特币勒索病毒不只Windows系统有,Linux版的来了Linux日志定时轮询流程详解Linux iommu和vfio概念空间解构Linux系统如何低于TCP洪水攻击Linux无损调整分区大小Linux下防火墙配置实例Linux使用Jexus托管Asp.Net Core应用程序Linux中引号的那些事
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11热门文章
常见的移动App Bug??崩溃的测试用例设计如何用Jmeter做压力测试QC使用说明APP压力测试入门教程移动app测试中的主要问题jenkins+testng+ant+webdriver持续集成测试使用JMeter进行HTTP负载测试Selenium 2.0 WebDriver 使用指南