本篇文章为维基百科中关于FHS的译文,原文见
wiki:https://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard
ubuntu:http://manpages.ubuntu.com/manpages/precise/en/man7/hier.7.html
由spawpaw@hotmail.com翻译,转载需注明出处
原文备份:http://blog.csdn.net/qq_29753285/article/details/69790931
本文更新地址:http://blog.csdn.net/qq_29753285/article/details/69791332
(csdn解析markdown有点问题..有点影响阅读…)
像这类解释性的文章还是建议大家看原文。
Filesystem Hierarchy Standard (FHS)由linux基金会维护,
目前(2017-4-9),FHS的最新版本为3.0,可从http://refspecs.linuxfoundation.org/FHS_3.0/fhs-3.0.pdf下载
文件系统层次结构标准 (FHS) 定义了在类Unix系统中的目录结构和目录内容。它由Linux基金会维护,最新版为2015年六月三日发布的3.0版,仅用于Linux的各类发行版中。
在FHS中,所有的(包括存储于不同物理/虚拟设备中的)文件和目录都存在于根目录 / 下。其中,部分目录仅当特定系统(如X Window)安装后才会存在。
下表中大部分目录都以相似的功能存在于所有的UNIX系统中。但是,以下的描述仅针对FHS,且对非Linux系统并非权威
/ 主层次结构的根&&整个文件系统的根目录
/bin
所有用户在单用户模式中必须具备的二进制命令文件,如 cat, ls, cp.(重要的二进制 (binary) 应用程序包含二进制文件,系统的所有用户使用的命令都在这个目录下)/boot
启动 (boot loader) 配置文件,包含引导加载程序相关的文件,如 kernels, initrd./dev
必要的 设备(device) 文件,包含设备文件、终端设备,USB或连接到系统的任何设备,如 /dev/null.你只要通过访问这个目录下的某个文件就相当于访问某个设备. 设备分类:字符设备
、块设备
(物理设备、虚拟设备)/etc
特定主机 全系统 的配置文件(配置文件、启动脚本等),包含所有程序所需的配置文件,也包含了用于启动/停止单个程序的启动和关闭shell脚本。一直以来,这个名字本身就有争议。在早期由Bell labs
所撰写的UNIX实现文档中,/etc
被当作附加(etcetera)目录,因为历史上这个文件夹用来保存所有不属于其他地方的文件(但FHS限制/etc仅用于保存静态配置文件,不能保存二进制文件)。从早期的文档发布以来,这个文件夹的名字就被人们以不同的方式重新定义。最近的释义包括如”Editable Text Configuration
” 或 “Extended Tool Chest”词源/home
本地用户主 (home) 目录,所有用户用home目录来存储他们的个人文件、个人设置等/lib
系统库 (libraries) 文件(ldd?跟踪依赖库),包含支持位于/bin和/sbin下的二进制文件的库文件。即 /bin/
和 /sbin/
中必须的依赖库/media
挂载(可移动介质)热插拔介质 (media),诸如 CD-ROMs
、数码相机
等挂载点,用于挂载可移动设备的临时目录。 (在FHS-2.3中出现)./mnt
临时挂载的文件系统。临时安装目录,系统管理员可以挂载文件系统:mount -t type [-o options] device dir
/opt
可选的、提供第三方应用程序的安装目录。/proc
将进程和内核信息以文件形式呈现的虚拟文件系统。在Linux中,与procfs mount(进程文件系统)对应。即:特殊的动态目录,用以维护系统信息和状态,包括当前运行中进程 (processes) 信息;包含系统进程的相关信息,是一个虚拟的文件系统,包含有关正在运行的进程的信息,系统资源以文本信息形式存在。/root
root用户的用户主目录/run
运行时变量数据:从本次启动到现在的系统信息。如当前登陆的用户和正在运行的守护进程。挂载临时文件系统,文件和目录没有存储在磁盘上,而只存储在内存中。它们表示保存在内存(或基于磁盘的交换空间)中的数据,它看起来像是一个已挂载的文件系统,这个可以使其更易于访问和管理/sbin
必备的系统可执行文件,如fsck, init, route.即:重要的系统二进制 (system binaries) 文件 也是包含的二进制可执行文件。在这个目录下的linux命令通常都是由系统管理员使用的,对系统进行维护。即 /sbin一般存放root用户
的管理类程序;/bin一般用户
都可以使用的命令/srv
本系统提供的特定站点的数据,存放着一些软件服务启动后所需要的程序。如web服务器提供的数据和脚本,FTP服务器提供的数据,VCS的仓库/sys
包含连接到本台计算机的设备信息.即 系统 (system) 文件,其实跟/proc非常的相似,也是一个虚拟的文件系统主要也是记录与内核相关的信息/tmp
临时文件(和/var/tmp相同). 通常在重启后清空,并且受到严格的大小限制。 即 临时(temporary)文件包含系统和用户创建的临时文件。当系统重启时,这个目录下的文件将都被删除/usr
UNIX SOFTWARE RESOURCE包含绝大部分用户都能访问的应用程序和文件,包含二进制文件,库文件、文档和二级程序的源代码。即: 只读用户数据的次要层次,包含大部分(多)用户功能和应用。/var
Variable files:各种在系统运行中,内容会不停改变的文件。经常变化的(variable)文件,在这个目录下可以找到内容可能增长的文件。如:日志文件、数据库、spool files,和临时的电子邮件文件。大多数Linux发行版遵循文件系统层次结构标准(FHS)
,并且为保持FHS约定发布了相关政策。GoboLinux 和 NixOS 提供了有意不遵循FHS约定的实现
有些基本遵循这个标准的发行版在部分方面有些违背,如
现代Linux发行版将/run 作为(遵循FHS3.0的)保存不稳定的运行时数据的临时文件系统(tmpfs)。根据FHS2.3,这类数据被保存在/var/run ,但是由于在启动时这个目录并不总是可用,会导致一些问题。所以,这些程序必须借助欺骗的方式,如使用类似 /dev/.udev, /dev/.mdadm, /dev/.systemd 或 /dev/.mount 等并不是用来保存这些数据的设备目录。除其他好处外,这样也会使根目录以只读方式挂载的系统更容易使用。例如,以下是Debian在2013年的Wheezy版本中作出的改变:
/dev/.* → /run/*
/dev/shm → /run/shm
/dev/shm/* → /run/*
/etc/* (writeable files) → /run/*
/lib/init/rw → /run
/var/lock → /run/lock
/var/run → /run
/tmp → /run/tmp
当FHS被以FSSTND (Filesystem Standard的缩写)被创建时,其他UNIX和类UNIX系统已经有了他们自己的标准。
比较典型的例子有 自从 Version 7 Unix (in 1979)发布以来就存在的the hier(7) description of file system layout; the SunOS filesystem(7) 和它的后继 the Solaris filesystem(5)
legend
Version
Release Date
Notes
旧版本
1
1994/2/14
FSSTND
旧版本
1.1
1994/10/9
FSSTND
旧版本
1.2
1995/3/28
FSSTND
旧版本
2
1997/10/26
FHS 2.0 直接继承自FSSTND 1.2 。 FSSTND更名为FHS
旧版本
2.1
2000/4/12
FHS
旧版本
2.2
2001/5/23
FHS
仍支持
2.3
2004/1/29
FHS
最新版
3
2015/5/18
FHS
Linux中常见的文件类型有7种:
chmod [-R] xyz 文件或目录
linux中每个文件或目录都有一组共9个基础权限位,每三位字符被分为一组,他们分别是属主权限位、用户组权限位、其他用户权限位,通过权限位来控制文件属主、用户组以及其他用户的权限。
权限位
说明
r
read可读权限 对应数字是:4
w
write 可写权限 对应数字是:2
x
Execute 可执行权限 对应数字是:1
-
没有任何权限 对应数字是:0
内部命令与外部命令:
在linux系统中有存储位置的命令为外部命令
,没有存储位置的为内部命令
,可理解为内部命令嵌入在linux的shell中,所以看不到。type来判断到底为内部命令还是外部命令
type
help命令
内部命令的帮助文档 。使用help的格式为 help 命令字就可以
[root@model Documents]# help cd
"--help"选项
大多数外部命令都可以使用--help来获取帮助,如果这个命令没有--help选项,则会显示简单的命令 格式 命令字 --help
date --help //日期帮助
Man命令
man passwd
Info命令
info passwd
网络
ifconfig / ping / netstat / lsof
资源监控(内存、磁盘、进程)
top / free / iostat / vmstat / ps
文件系统 / 文本处理 / 用户管理
ls / mv / cp / rm /
chmod / chgrp / chown
chmod [-R] xyz 文件或目录
# chmod:更改文件9个属性 如: chmod 635 /opt/bashrc
chown [-R] 属主名:属组名 文件名
# chown:更改文件属主,也可以同时更改文件属组 如: chown sdc:mysql /opt/install.log
chgrp [-R] 属组名文件名
# chgrp:更改文件属组
-R:递归更改文件属组,就是在更改某个目录文件的属组时,如果加上-R的参数,那么该目录下的所有文件的属组都会更改。
touch / vi / cat / grep / find
passwd / useradd
查询
who / history / which
软件(源)管理
rpm / yum /
Linux用户的分类:
root用户
虚拟用户(比如 bin、daemon、adm、ftp、mail等,这类用户都是系统自身拥有的)
普通用户
注意:在Linux中,操作系统根据UID来判断用户, 而不是用户名!
在Linux,管理员在默认情况下为root账户,UID=0。
普通用户UID默认范围为1-65535。
在centos 6中,系统用户的UID范围为1-499,普通用户为500+。
在centos 7中,系统用户范围为1-999,普通用户为1000+。
Linux用户的配置文件主要包括:
用户信息文件:/etc/passwd
密码文件:/etc/shadow
用户组文件:/etc/group
用户组密码文件:/etc/gshadow
查看Linux用户组
创建用户时,若不特殊指定,则默认以用户名作为对应的用户组。
groups 查看当前登录用户的组内成员
groups gliethttp 查看gliethttp用户所在的组,以及组内成员
whoami 查看当前登录用户名
手机扫一扫
移动阅读更方便
你可能感兴趣的文章