1./bin
bin 是 binary 的缩写. 这个目录沿袭了 UNIX 系统的结构, 存放着使用者最经常使用的命令. 例如 cp,ls,cat, 等等.
2./boot
引导加载器使用的文件. 这里存放的是启动 Linux 时使用的一些核心文件. 如 grub. 核心映像也经常在这里, 而不是在根目录.
3./dev
dev 是 device(设备)的缩写. 包括所有设备的设备文件. 这个目录下是所有 Linux 的外部设备, 其功能类似 DOS 下的. sys 和 Win 下的. vxd. 在 Linux 中设备和文件是用同种方法访问的. 例如:/dev/hda 代表第一个物理 IDE 硬盘.
4./etc
这个目录用来存放系统管理所需要的配置文件和子目录.
其中包含以下子目录:
(1)/etc/rc,/etc/rc.d,/etc/rc.d
启动或改变运行级别时运行的 scripts 或 scripts 的目录.
(2)/etc/passwd
用户数据库, 包含用户名, 真实姓名, 宿主目录, 加密的口令和用户的其他信息.
(3)/etc/fstab
启动时 "mount-a" 命令自动 mount 的文件系统列表.
(4)/etc/group
类似于 / etc/passwd, 但说明的不是用户而是组.
(5)/etc/inittab
Init 配置文件.
(6)/etc/issue
getty 在登录提示符前的输出信息, 通常包括系统的一段短说明或欢迎信息.
(7)/etc/magic
File 的配置文件, 包含不同文件格式的说明.
(8)/etc/motd
成功登录后自动输出, 内容由系统管理员确定, 经常用于通告信息, 如计划关机时间的警告.
(9)/etc/mtab
当前安装的文件系统列表, 由 cripts 初始化, 并由 mount 命令自动更新. 需要一个当前安装的文件系统列表时使用 df 命令.
(10)/etc/shadow
在安装了影子口令软件的系统上的影子口令文件. 影子口令文件将 / etc/passwd 文件中的加密口令移动到 / etc/shadow 中, 而后者只对 root 可读, 这使破译口令更困难.
(11)/etc/login.defs
login 命令的配置文件.
(12)/etc/printcap
类似 / etc/termcap, 但此文件主要针对打印机.
(13)/etc/profile,/etc/csh.login,/etc/csh.cshrc
登录或启动时 Bourne 或 Cshells 执行的文件, 这允许系统管理员为所有用户建立全局缺少环境.
(14)/etc/securetty
确认安全终端, 即哪个终端允许 root 登录. 一般只列出虚拟控制台, 这样用户很难通过网络远程登录.
(15)/etc/shells
列出可信任的 shell.Chsh 命令允许用户在本文件指定范围内改变登录 shell. 比如 FTP 服务的服务进程 ftpd 检查用户 shell 是否列在 / etc/shells 文件中, 如果不是将不允许该用户登录.
(16)/etc/termcap
终端性能数据库, 说明不同的终端用什么转义序列控制. 写程序时不直接输出转义序列, 而是从 / etc/termcap 中查找要做的工作的正确序列. 这样, 多数的程序可以在多数终端上运行.
5./home
包含用户宿主目录, 即系统上的所有实际数据. 将宿主目录分到自己的目录树或文件系统中易于备份, 其他部分不必经常备份. 比如, 说有个用户叫 wang, 那他的主目录就是 / home/wang 也可以用~ wang 表示.
6./lib
根文件系统上的程序所需的共享库和内核模块. 这个目录里存放着系统最基本的动态链接共享库, 其作用类似于 Windows 里的. dll 文件. 几乎所有的应用程序都须要用到这些共享库.
/lib/modules 为核心可加载模块, 特别是那些恢复损坏系统时引导所需的模块(例如网络和文件系统驱动).
7./lost+found
这个目录平时是空的, 当系统不正常关机后, 这里就成了一些无家可归的文件的避难所. 对了, 有点类似于 DOS 下的. chk 文件.
8./mnt
系统管理员临时挂载的安装点. 程序并不是自动支持安装到 / mnt,/mnt 可以分为子目录. 这个目录是空的, 系统提供这个目录是让用户临时挂载别的文件系统.
9./opt
这是给主机额外安装软件所放的目录. 不过, 以前的 Linux 系统中, 我们还是习惯放在 / usr/local 目录下.
10./proc
这个目录是一个虚拟的目录, 它是系统内存的映射, 我们可以通过直接访问这个目录来获取系统信息. 也就是说, 这个目录的内容不在硬盘上而是在内存里.
11./root
系统管理员 (也叫超级用户) 的主目录. 作为系统的拥有者, 总要有些特权啊! 比如单独拥有一个目录.
12./sbin
s 就是 SuperUser 的意思, 也就是说这里存放的是系统管理员使用的管理程序. 但只用 root 用户才能使用.
13./srv
一些服务启动之后, 这些服务所需要访问的数据目录. 例如, WWW 服务器需要的网页数据就可以放在 / srv/www 中.
14./tmp
用于存放各种临时文件的地方了.
15./usr
包含所有命令, 库, man 页和其他一般操作中所需的不改变的文件./usr 目录经常很大, 因为所有程序都安装在这里./usr 里的所有文件一般来自 Linuxdistraibution, 本地安装的程序和其他数据在 / usr/local 下. 这样在升级新版系统或新 distribution 时无须重新安装全部程序. 我们要用到的应用程序和文件几乎都存放在这个目录下.
其中包含以下子目录:
(1)/usr/X11R6
存放 X-Windows 系统的所有文件. 为简化 X 的开发和安装, X 的文件没有集成到系统中.
(2)/usr/bin
几乎所有普通用户的命令都在 / bin 或 / usr/local/bin 目录中. 存放着许多应用程序.
(3)/usr/sbin
根目录下不必要的系统管理命令, 例如多数服务程序. 给超级用户使用的一些管理程序就放在这里.
(4)/usr/doc
这是 Linux 文档的大本营.
(5)/usr/include
Linux 下开发和编译应用程序需要的头文件, 在这里查找;
(6)/usr/lib
程序或子系统的不变的数据文件, 包括一些 site-wide 配置文件. 名字 lib 来源于库, 编程的原始库存放在 / usr/lib 里. 存放一些常用的动态链接共享库和静态档案库.
(7)/usr/local
本地安装的软件和其他文件存放在这里. 这是提供给一般用户的 / usr 目录, 在这里安装软件最适合.
(8)/usr/man
man 在 Linux 中是帮助的同义词, 这里就是帮助文档的存放目录
(9)/usr/src
Linux 开放的源代码就存在这个目录.
(10)/usr/info
GNU 信息文档.
16./var
这个目录中存放着那些不断在扩充着的东西, 为了保? usr 的相对稳定, 那些经常被修改的目录可以放在这个目录下, 实际上许多系统管理员都是这样干的. 顺带说一下系统的日志文件就在 / var/log 目录中.
其中包含以下子目录:
(1)/var/lib
系统正常运行时要该变的文件.
(2)/var/local
/var/local 中安装的程序的可变数据(即系统管理员安装的程序). 注意, 如果必要, 即使本地安装的程序也会使其他 / var 目录, 例如 / var/lock.
(3)/var/lock
锁定文件. 许多程序遵循在 / var/lock 中产生一个锁定文件的约定, 以支持它们正在使用的某个特定的设备文件. 其他程序注意到这个锁定文件后, 将不使用这个设备或文件.
(4)/var/log
各种程序的 log 文件./var/log 里的文件经常不确定的增长, 应该定期清除.
(5)/var/run
保存到下次引导前有效的系统的相关信息文件. 例如,/var/run/utmp 包含当前登录的用户的信息.
(6)/var/spool
Mail,news, 打印队列和其他队列工作的目录. 每个不同的 spool 在 / var/spool 下有自己的子目录, 例如, 用户的邮箱在 / var/spool/mail 中.
(7)/var/tmp
比 / tmp 允许的大或需要存在较长时间的临时文件.
二.proc 文件系统
/proc 虚拟文件系统是一个较快且高效率执行系统监控的方法, 其主要缺点是必须保持代码分析与 / proc 文件格式改变的同步. 事实表明, Linux 内核的改变比 / proc 文件格式的改变更频繁, 所以用 / proc 虚拟文件系统比用内核模块存在的问题少.
proc 文件系统的特点
Linux 系统为管理员提供了非常好方法, 使其可以在系统运行时更改内核. 而不需要重新引导内核系统, 这是通过 / proc 虚拟文件系统实现的./proc 文件虚拟系统是一种内核和内核模块用来向进程 (process) 发送信息的机制 (所以叫做 "/proc"). 这个伪文件系统允许与内核内部数据结构交互, 获取有关进程的有用信息, 在运行中(onthefly) 改变设置(通过改变内核参数). 与其他文件系统不同,/proc 存在于内存而不是硬盘中. 不用重新启动查看 CMOS 即可知道系统信息, 这就是 / proc 的作用之一./proc 目录中的主要文件下面如表所示.
文件或目录名称
描述
apm
高级电源管理信息
cmdline
内核命令行
cpuinfo
中央处理器信息
devices
可以用到的设备(块设备 / 字符设备)
dma
显示当前使用的 DMA 通道
filesystems
核心配置的文件系统
ioports
当前使用的 I/O 端口
interrupts
显示使用的中断
kcore
系统物理内存映像
kmsg
核心输出的消息, 被送到 syslog 文件
ksyms
核心符号表
loadavg
系统平均负载均衡
meminfo
存储器使用信息, 包括物理内存和交换内存
modules
当前加载了哪些核心模块
net
网络协议状态信息
partitions
系统识别的分区表
pci
pci 设备信息
scsi
scsi 设备信息
self
到查看 / proc 程序进程目录的符号链接
stat
全面统计状态表
swaps
交换分区情况
uptime
系统启动的时间长度
version
核心版本号
每个 Linux 系统根据软, 硬件不同,/proc 虚拟文件系统的内容也有些差异. 它有三个重要的目录, 即 net,scsi 和 sys.sys 目录是可写的, 可以通过它来访问或修改内核的参数, 而 net 和 scsi 则依赖于内核配置. 例如, 如果系统不支持 scsi, 则 scsi 目录不存在. 其中还有一些以数字命名的目录, 它们是进程目录. net 目录包括多个 ASCII 格式的网络伪文件, 描述了网络层的部分情况, 可以用 arp,netstat 及 route 等命令来查询这些文件, 其中还有一些以数字命名的进程目录. 系统中当前运行的每一个进程都有对应的一个目录在 / proc 下, 以进程的 PID 号为目录名, 它们是读取进程信息的接口. 而 self 目录则是读取进程本身的信息接口, 是一个 link.
三.特殊目录
1. 建议不可与 root 分区分开的目录
在 Linux 安装过程中, 最重要的就是根目录 / 所在的分区了. 我们也可以将其他的例如 / home 放在不同的分区里. 那么, 是否有 "一定" 要放在 root 分区内的目录呢? 有, 如 / etc,/sbin,/bin,/dev 以及 / lib 这几个目录.
这是为什么呢? 因为 Linux 系统在启动时, 开始核心只会载入一个分区, 那就是 /. 但是, 启动的时候, 会用到很多命令与函数库. 举例来说, 要载入, 就需要 mount 程序, 而且也需要 init 程序, 还需要用到很多设置文件, 例如 / etc/inittab 等. 核心的模块也放在 / lib 里. 当然,/dev 是所有设备放置的目录, 也需要在启动时使用. 因此, 这些目录都需要跟与 / 绑在一起.
2. 建议最好独立成为单一分区的目录
前面提到了最好不要与 / 分区分离的目录. 但有些目录由于其安全性与特殊功能, 却希望能够独立一个分区. 例如:/home,/usr,/var,/tmp 等.
要知道, 系统用户个人家目录在 / home 里, 这个目录可能是使用最频繁的目录之一. 为了合理地分配资源, 我们可能会限制每个人可以使用的最大硬盘配额 (quota). 在这个前提下, 必须将 / home 独立出来, 而且最好这个分区能够大一点, 尤其是 Linux 是作为文件服务器(fileserver) 的时候, 这就更重要了.
/usr 则是一些程序安装的目录, 也可以独立出来;/var 目录, 由于记录了相当多的常用数据, 读取很频繁, 所以是 "很容易出问题的分区". 如果能够将它独立出来, 那么当 / var 一旦毁坏时, 就不会影响到其他分区, 也确保了安全性.
3. 特别重要的目录
除了针对分区的概念来谈目录的重要性之外, 有几个比较重要的目录也需要了解.
(1)/etc
这个目录是系统设置文件放置的地方, 其中包括系统上的账号与密码(etc/passwd,/etc/shadow), 启动时用到的各项设置值(/etc/sysconfig/*), 各主要网络服务的设置文件. 如果这个目录下的文件被删除或者损坏, 系统可能需要 "花功夫" 重建了. 因此, 笔者通常都会定期备份这个目录中所有文件. 这个目录不大, 约 50MB.
(2)/usr/local
虽然当前已经将这个目录的重要性移动到 / opt 了, 但是笔者还是比较习惯将自己开发或自行安装的软件放在这个目录下. 如果 Linux 系统是多人共享的话, 那么养成良好的操作习惯是必要的. 安装软件也要有好习惯, 不要随意安装. 统一放在 / usr/local 或是 / opt 下面.
(3)/var
上面提过一次, 这里再次强调. 这个目录是用于管理系统运行过程中的重要中间暂存数据的, 例如,/var/lib 与 / var/run. 此外, 最终的数据例如邮件 / var/spool/mail 也是放在这个目录中. 几乎所有服务的登录文件(可以记录谁, 什么时候以及由哪里登录主机, 做了什么事等信息). 都放在 / var/log 目录中, 因此, 这个目录也很重要. 记得常常去检查 / var/log/messages 文件是否存在异常.
使用任何 Linux 系统, 都要有至少两个分区: 一个根分区, 用 "/" 表示; 另一个是 swap(交换)分区. 所以, 最简单的分区方法就是: 先创建 swap 分区, 剩下的所有空间分配给根分区 "/".
swap 分区的尺寸, 最小应该和内存一样大, 最大一般不超过内存的两倍大小.
swap 分区就像 Windows 的虚拟内存交换文件 pagefile.sys, 系统在需要时会把它当作虚拟内存来使用, 比方说在运行大型程序时, 在内存优化时, 或者在系统休眠时. 系统休眠时, 把整个内存的数据写入 swap 分区, 这就是为什么你的 swap 分区的大小至少应该和内存一样大的原因.
最好把 / boot 单独创建一个分区上, 因为这个目录下的文件比较重要, 万一分区损坏, 系统可能无法启动. 如果单独创建为一个分区, 其他分区的损坏就不会影响它, 从而提高了系统的稳定性. 一般情况下,/boot 分区不需要太大, 128MB 就足够用了.
来源: http://www.jianshu.com/p/0c51096924cd