UNIX文件和文件系统

UNIX文件和文件系统

1、文件概念
网络接口、磁盘驱动、键盘、打印机、普通文件(文本文件、可执行程序)、目录所有的输入输出设备均当作File
Unix系统上有如下类型的文件:普通文件、目录文件、链接文件、特殊文件、命名管道
1)普通文件
文本文件、数据文件、可执行程序等称作普通文件
普通文件命名较自由,基本上可以用任意字符,但尽量避免使用空格、tab键等不可见字符
不同的系统对文件名长度有限制
Unix系统本身对文件名后缀无特殊要求,但有些应用程序对文件后缀有要求,如C编译器要求源文件以.c作后缀
2)目录
目录也是一个文件
目录文件的内容包括了该目录下所有文件及子目录的名称
当文件创建时,均创建一索引结点
索引结点包括了该文件的一些属性,包括文件大小、文件最后修改时间等
3)链接文件
指向另外一个文件的链接
类似于window下的快捷方式
内容只有一份
修改任意一个连接文件或原文件时,所有内容均改变
4)特殊文件
Special File一般指的是设备文件
Unix下的输入输出设备均被当作文件来处理,例如光驱、磁盘、键盘、磁带机、打印机等。读写设备的方式与读写普通文件的方式类似
一般放在目录/dev下面
分为字符特殊文件和块特殊文件
以字符进行输入输出的用字符特殊文件来表示,如键盘、网络接口。
以块进行输入输出的用块特殊文件来表示,如磁盘
5)管道
FIFO 、 pipe、socket一起实现了unix系统上进程间的通信机制
FIFO一个文件,可供两个不相关的进程同时操作,一个进程写入,另一个进程可读出。
Pipe是内核中的一块内存区域,同一个机器上的两个进程通过该区域互相通信。
Scoket是内核中的一块内存区域,不同机器上的两个进程通过该区域实现通讯。

FIFO和PIPE的区别:

  mkfifo 得到的是有名管道。它占用磁盘上的一个 I-节点。这个 I-节点比较特殊,是一个 “管道”节点。这样的管道,在外界看起来像是一个文件。

  pipe() 得到的是匿名管道,不占用磁盘上的I-节点。外界一般看不到它,故称 “匿名” 管道。

二、文件系统结构
1)文件系统结构
倒树型的组织结构
/ 称为根目录,所有目录均从该目录开始
用户登录后,会进入该用户的$HOME目录(从哪儿定义的?)
两个特殊的目录 . 和 .. :前者表示当前目录;后者表示上一层目录
绝对路径和相对路径:从根目录开始的路径称为绝对路径,如/home/bossapp;
从当前目录开始的路径称为相对路径,如  bossapp/Business/
2)常见目录
/ 系统根目录,在系统的最顶层
/bin 存放了unix系统大部分命令的可执行程序,如cat, chmod, cp 等
/dev 存放表示系统设备的文件。
/etc 用于存放系统管理需要的命令和文件,如passwd, login, profile等
/lib 存放库文件,主要供C, C++, Fortran语言使用。部分库文件还存在于/usr/lib下面
/tmp 主要存放系统的临时文件
3)相关命令
pwd  查看当前所在目录;  pwd
echo 查看某个变量的值;  echo $HOME
cd  进入某个目录中;         cd /home/bossapp
ls   列出文件或者目录的属性 ls –l bossapp
mkdir  创建目录  mkdir bosstest
rmdir  删除目录,目录必须为空  rmdir bosstest
创建文件  touch/vi 等
file 查看文件类型
export 声明变量






你可能感兴趣的:(UNIX)