在liunx下一切皆文件。
LINUX中的七种文件类型
d 目录文件。
l 符号链接(指向另一个文件,类似于window下的快捷方式);
s 套接字文件;
b 块设备文件,二进制文件;
c 字符设备文件;
p 命名管道文件;
- 普通文件。
l 符号链接的分类
1,硬链接 (通过设备节点inode创建的)
硬链接就是同一个文件使用了多个别名(他们有共同的 inode)。
硬链接可由命令 link 或 ln 创建,如:
link oldfile newfile
ln oldfile newfile
由于硬链接是有着相同 inode 号仅文件名不同的文件,因此,删除一个硬链接文件并不影响其他有相同 inode 号的文件。
硬链接不能对目录进行创建,只可对文件创建
2,软链接 (通过文件的绝对路径创建的)
软链接(也叫符号链接)与硬链接不同,文件用户数据块中存放的内容是另一文件的路径名的指向。软链接就是一个普通文件,只是数据块内容有点特殊。
软链接可对文件或目录创建。
ln -s old.file soft.link
ln -s old.dir soft.link.dir
加-s选项表示创建的是软链接。
删除软链接并不影响被指向的文件,但若被指向的原文件被删除,则相关软连接就变成了死链接。
套接字文件 S
使用套接字除了可以实现网络间不同主机间的通信外,还可以实现同一主机的不同进程间的通信,且建立的通信是双向的通信。
Unix域套接字是通过套接字API实现的简单的协议族。实际上它并不代表一个网络协议;它只能连接到同一台机器上的套接字。它提供了灵活的IPC机制。它的地址是它所在的文件系统的路径名,创建之后套接字就和路径名绑定在一起。用来表示Unix域地址的套接字文件能够使用stat()但是不能通过open()打开,而且应该使用套接字API对它进行操作。
Unix域套接字是面向连接的,每个套接字的连接都建立了一个新的通讯信道。服务器可能同时处理许多连接,但对于每个连接都有不同的文件描述符。这个属性使Unix域套接字能够比命名管道更好的适应IPC任务。
b 块设备文件,二进制文件
c 字符设备文件
1.字符设备只能以字节为最小单位访问,而块设备以块为单位访问,例如512字节,1024字节等;
2.块设备可以随机访问,但是字符设备不可以;
3.字符和块没有访问量大小的限制,块也可以以字节为单位来访问 。
p 命名管道文件
负责将一个进程的信息传递给另一个进程,从而使该进程的输出成为一个另一个进程的输入的内存部分,这样的文件被称作命名管道文件,又称管道文件
管道是linux 提供的最早的进程间通信方式之一,大致可以分为有无名管道和命名管道两种。linux中的命名管道提供两个进程之间的通讯方式,可以把一个程序的输出直接连接到另一个程序的输入。
管道通常用于从一个进程读取数据直接发送给第二个进程处理的场合。例如:
ps -ef|grep java 查看系统的进程,“|”表示无名管道通过它把结果传给grep,grep过滤包含java的进程
普通文件
linux下的普通文件就是我们在Windows系统各个盘里看到的那些文件。此外,Linux还有些特别的文件类型。
Linux文件类型
执行ls -al后,权限位前的位置就是文件类型的标示,不同类型文件标示为:
d 目录文件directory 比如drwx—— 目录也是一个文件,其中存放着文件名和文件索引结点之间的关联关系。
b 块设备文件block deivce ,实际上表示硬件设备,可以在/dev 目录访问这些设备,包含磁盘驱动光盘驱动这类存储的。
c 字符设备文件character device ,也表示硬件设备,但是数据是以字节流发送的,这些设备包括终端设备和串口设备。
l 链接link设备 用 I 标示, 就是ln 创建的链接,分为软和硬链接