赞
踩
正规文件(regular file)
为 -
的文件,另外依照文件的内容又大致分为:
纯文本文档(ASCII):比如使用 cat ~/.bashrc,就能把该文件内容读取出来
二进制文件(binary):可执行文件 scripts (文字型批处理文件不算)
数据格式文件(data):有些程序运行中会读取某些特定文件格式的文件
比如 linux 在登录时,会将登录的数据记录在 /var/log/wtmp 文件内, 但是使用 cat 时,会读出来乱码,因为是一种特殊格式的文件
笔者唯一没有明白的就是 二进制文件,怎么是 scripts 文件呢?
目录(directory):d
连接文档(link):类似 windows 中的快捷方式,用小写(L)的 l 表示
设备与装置文件(device)
与系统周边及存储等相关文件,通常都集中在 /dev 这个目录下,通常又分为两种:
区块(block)设备文档:使用 b 表示
就是一些存储数据,供系统随机存取的接口设备,比如硬盘、软盘等。 可以随机在硬盘的不同区块读写。可以看看 /dev/sda 会发现第一个属性就是 b
字符(character)设备文件:用 c 表示
一些串行端口的接口设备,例如键盘鼠标等。这些设备的特性就是一次性读取的,不能够截断输出。 举例来说,你不可能让鼠标跳跃到另一个画面,而是连续性滑动到另一个地方
数据接口文件(sockets):用 s 表示
这种类型的文件通常被用在网络上的数据承接。启动程序监听客户端的请求,客户端透过这个 socket 来进行数据的沟通 最常在 /run 或 /tmp 这个目录中
数据传送文件(FIFO,pipe):使用 p 表示
FIFO 也是一种特殊的文件类型,主要目的在解决多个程序同时存取一个文件所造成的并发错误问题, 是 first-in-first-out 的缩写
FHS(Filesystem Hierarchy Standard)标准:让使用者可以了解到已安装软件通常放置于哪个目录下
- | 可分享的(shareable) | 不可分享的(unshareable) |
---|---|---|
不变得(static) | /usr (软件放置处) | /etc (配置文件) |
- | /opt (第三方软件) | /boot (开机与核心) |
可变动的(variable) | /var/mail (使用者邮箱) | /var/run (程序相关) |
- | /var/spool/news (新闻组) | /var/lock (程序相关) |
可分享的:
可以分享给其他系统挂载使用的目录;所以包括执行文件与用户的邮件等数据,是能够分享给网络上其他主机挂载用的目录
不可分享的:
自己机器上面运行的装置文件或则是与程序有关的 socket 文件等,由于仅与自身机器有关,就不适合分享了
不变得:
有些数据是不会经常变动的,跟随 distribution 而不变动的。例如函数库、文件说明文件、系统管理员所管理的主机服务配置文件等
可变动的:
经常改变的数据,例如登录文件、一般用户可自行收受的新闻组等
下面是Linux的文件树图
根目录是整个系统最重要的一个目录,里面所有的目录都是由根目录衍生出来的,FHS 定义出根目录下应该要有以下目录存在
根目录下的主要文件有
/bin
系统有很多放置执行文件的目录,单 /bin 比较特殊。 因为放置的是在单人维护模式下还能够被操作的指令。
/bin 下的指令可以被 root 与一般账户所使用,主要有 cat、chmod、chown、date、mv、mkdir、cp、bash 等常用命令
/boot
主要放置开机会使用到的文件,包括 linux 核心文件以及开机选单与开机锁需配置文件等。
Linux kernel 常用额文件名为 vmlinuz ,如果使用 grub2 开机管理程序,则还会存在 /boot/grub2 这个目录
/dev
任何装置与接口设备都是以文件形态存在这个目录当中。只要透过存取这个目录下的某个文件, 就等于存取某个装置,比较重要的文件有 /dev/null、/dev/zero、/dev/tty、/dev/loop*、/dev/sd* 等
/etc
系统主要的配置文件几乎都放在这个目录中,例如人员的账户密码文件、各种服务的启动文件等, 一般来说,这个目录下的各文件属性是可以让一般使用者查阅的,但是只有 root 有权利修改。
/lib
lib 下放的是在 开机时会用到的函数库,以及在 /bin 和 /sbin 下的指令会呼叫的函数库。
/media
放的是可移除的设备,例如 软盘、光盘、 DVD 等都暂时挂载于此。
/mnt
如果暂时挂载某些额外的设备,一般建议可以放到这个目录中,在很早的时候该目录用途与 /mnt 相同, 只是有了 /media 后,这个目录就用来暂时挂载用了
/root
:
该目录为系统管理员,也称作超级权限者的用户主目录。
/tmp
一般用户或则是正在执行的程序暂时放文件的地方。该目录是任何人都可以存取的,所以需要定期清理一下。 因此 FHS 甚至建议在开机时,应该删除该目录下的文件
/home
系统默认的用户目录。在你新增一个一般使用者账户时,默认的用户家目录都会规范到这里来。 比较重要的是,家的木有两种代号:
/sbin
Linux 有非常多的指令是用来设置系统环境的,这些指令只有 root才能够利用来设置系统, 其他用户只能用来「查询」。放在 /sbin 下的为开机过程中所需要的,包括了开机、修复、还原系统所需要的指令。
/usr 里面放置的数据属于可以分享的与不可变动的.
/usr 不是 user 的缩写,而是 Unix Software Resource 的缩写(Unix 操作系统软件资源)
一般来说 /usr 的此目录建议有以下:
第一部分:FHS 要求必须要存在的目录
/usr/bin/
所有一般用户能够使用的指令都放在这里。 CentOS7 新版已经将全部的用户指令放在这里, 而使用连接文件的方式将 /bin 连接到这里。也就是说 /usr/bin 与 /bin 是一样的了。 而且 FHS 要求在此目录下不应该有子目录
/usr/lib/
基本上 与 /lib 功能相同,使用 /lib 就是连接到此目录的
/usr/local/
系统管理员在本机自行安装自己下载的软件(非 distribution 默认提供),建议安装到此目录。 比如,distribution 提供的软件较旧,想安装新的但是又不想移除旧版本的,就可以将新版安装到这里。
该目录下也是具有 bin、etc、include、lib 的次目录
/usr/sbin
非系统正常运作所需要的系统指令。最长久的就是某些网络服务器软件的指令(daemon)。 不过功能基本与 /sbin 差不多,因此 /sbin 也是连接到此目录的
/usr/share/
主要放置只读架构的数据文件和共享文件。在该目录下的数据几乎是不分硬件架构均可读取的数据, 因为几乎上都是文本文件。常见的还有以下次目录
/usr/share/man
:联机帮助文件/usr/share/doc
:软件杂项的文件说明/usr/share/zoneinfo
与时区有关的时区文件第二部分:FHS 建议可以存在的目录
/usr/games/
:与游戏比较相关的数据
/usr/include
:
c/c++ 等程序语言的档头(header)与包含档(include)放置处,当我们以 tarball 方式 (tar.gz 的方式安装软件)安装某些数据时,会使用到里头的许多包含档
/usr/libexe
某些不被一般使用者惯用的执行档或脚本,例如大部分的 x 窗口下的操作指令
/usr/lib<qual>
与 /lib<qual>
功能相同,连接过来的
/usr/src
一般源码建议放这里,src 有 source 的意思。 至于核心源码则建议放到 /usr/src/linux 目录下
主要放置的是针对常态性变动的文件,包括 cache、登录文件(log file)以及某些软件所产生的文件, 包括程序文件(lock file,run file),或则例如 mysql 数据库的文件等, 常见的目录有
/var/cache
:应用程序运行中使用的缓存文件
/var/lib
:
程序本身执行过程中,需要用到的数据文件存放处。在此目录下各自的软件应该要有各自的目录, 比如:mysql 数据库放到 /var/lib/mysql 而 rpm 的数据库则放到 /var/lib/rpm
/var/lock
某些装置或是文件资源一次只能被一个程序使用,所以这里存放的是加锁的标识, 目前此目录已经挪到 /run/lock 中了
/var/mail
:个人电子邮件信箱目录,不过也被放置到了 /var/spool/mail 中了,通常两个目录互为连接文件
/var/run
某些程序或则是服务启动后,会将他们的 PID 放置在这个目录下,与 /run 相同,也连接到 /run 下了。 至于 PID 后续讲解
/var/spool
通常放置一些对了数据,这些数据被使用后通常都会被删除。 比如:系统受到新信会放到 /var/spool/mail 中,但使用者手下该信件后该封信原则上就会被删除。 信件如果展示寄不出去,则会放到 /var/spool/mqueue 中。等待被送出后会被删除。
如果是工作排程数据(crontab)就会被放到 /var/spool/cron 目录中
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。