linux文件目录详解

linux目录结构

  (且看且不看)

历史上 /usr和 /etc文件夹下既保存静态文件,也保存可变文件,后来有了/var层次结构,/usr下面的可变文件被转移到/var下面。因而/usr现在可以只读的方式挂载(如果它在单独的文件系统上)。 /etc下的可变文件早已转移到/var,因为技术上允许
/

根是系统内核启动后挂载的第一个分区,挂载到根上的分区是应用程序的基础,boot分区是内核的基础。如果只分了一个区那么就都基础吧,内核被加载运行,其中的根是一个抽象的概念,发行版的内核加载至系统初始化完成根一共会发生3次挂载,initramfs,只读挂载指定的根分区,重新挂载根分区,平时说的根是指挂载在根上的分区。启动完成后可以在根分区上的文件夹下挂载其他区分。

bin
注:
  /bin 包含了系统管理员和用户都可能使用的命令,或/bin只能存放供用户自由使用的命令。并且是那些要求在没有挂载其他文件系统的情况下能够使用(例如在单用户模式下)的命令,也就是说软链接的命令不能跨分区。它也可能包含脚本间接使用的命令。
并且 /bin下不能有子文件夹
为了能够备份系统,添加了 tar、gzip 和 cpio 命令(在/完整的前提下)
如果不会还原根分区,则可以忽略这些二进制文件
例:/在 ROM 芯片上,通过 NFS 挂载/usr 的情况。
如果计划通过网络还原系统,则 ftp 或 tftp(及所有其他 ftp 连接所需的东西)应该放置在根分区中。

/bin 下要求有如下命令。
    cat 将文件连接到标准输出的工具
    chgrp 改变文件所在组的工具
    chmod 改变文件访问权限的工具
    chown 改变文件所有者和组的工具
    cp 复制文件和文件夹的工具
    date 打印或设置系统日期和时间的工具
    dd 转换和复制文件的工具
    df 报告文件系统磁盘空间使用情况的工具
    dmesg 打印或控制内核消息缓存区的工具
    echo 显示一行文本的工具
    false 什么也不做,只返回不成功的工具
    hostname 显示或设置系统主机名的工具
    kill 向进程发送消息的工具
    ln 在文件之间创建链接的工具
    login 在系统上开启会话的工具
    ls 列出文件夹内容的工具
    mkdir 创建文件夹的工具
    mknod 创建块或字符特殊文件的工具
    more 按页翻看文本的工具
    mount 挂载文件系统的工具
    mv 移动/重命名文件的工具
    ps 报告进程状态的工具
    pwd 打印当前工作文件夹名称的工具
    rm 删除文件或文件夹的工具
    rmdir 删除空文件夹的工具
    sed ‘sed’流编辑器
    sh Bourne 命令 Shell ->如果/bin/sh 不真是 Bourne shell,它必须为指向真正shell命令的硬链接或软链接。
    stty 改变和打印终端行设置的工具
    su 改变用户 ID 的工具
    sync 清洗文件系统缓存区的工具
    true 什么也不做,只返回成功的工具
    umount 卸载文件系统的工具
    uname 打印系统信息的工具
如果安装了对应的子系统,/bin 下必须有以下程序或指向它们的符号链接:
    csh C shell(可选)
    ed ‘ed’编辑器(可选)
    tar tar 档案工具(可选)
    Cpio cpio 档案工具(可选)
    gzip GNU 压缩工具(可选)
    gunzip GNU 解压工具(可选)如果 gunzip 程序存在,则它们必须是指向 gzip 的符号链接或硬链接。
    zcat GNU 解压工具(可选)如果 zcat 程序存在,则它们必须是指向 gzip 的符号链接或硬链接。
    netstat 网络统计工具(可选)
    ping ICMP 网络测试工具(可选)

sbin
注:在centos 7 中/sbin被软链接至 /usr/sbin目录.
/sbin存放管理员使用的工具
系统管理员使用的工具(和其他只有 root 使用的命令)保存在 /sbin 、 /usr/sbin 和
/usr/local/sbin 中。/sbin 包含除了/bin 中之外其他的启动、还原、恢复和/或修复系统所必
需的二进制文件。在已知/usr 已经挂载(并且没有问题)的情况下执行的程序通常位于
/usr/sbin 下。本地安装的系统管理程序应该位于/usr/local/sbin 下

/sbin 下应该有以下命令或符号链接。
  shutdown 关闭系统的命令
如果安装了相应子系统,/sbin 下必须有以下文件或符号链接:
命令描述
  fastboot 不检查磁盘重启系统(可选)
  fasthalt 不检查磁盘停止系统(可选)
  fdisk 操作分区表(可选)
  fsck 文件系统检查和修复工具(可选)
  fsck.* 针对某一特定文件系统的检查和修复工具(可选)
  getty getty 程序(可选)
  halt 停止系统的命令(可选)
  ifconfig 配置网络接口的命令(可选)
  init 初始化进程(可选)
  mkfs 创建文件系统的命令(可选)
  mkfs.* 创建特定文件系统的命令(可选)
  mkswap 设置交换区的命令(可选)
  reboot 重启系统的命令(可选)
  route IP 路由表工具(可选)
  swapon 启用分页和交换(可选)
  swapoff 关闭分页和交换(可选)
  update 周期性的清洗文件系统缓存区的后台服务(可选)
lib

/lib存放必需的共享库和内核模块
  /lib 文件夹包含了启动系统和运行根文件系统中命令,如/bin 和/sbin 下的二进制文件所需的共享库镜像
如果安装了 C 预处理器,/lib/cpp 可以作为它的一个引用,这是出于历史原因
下列文件名模式至少要有一个(它们可以是文件或符号链接)
    libc.so.* 动态链接的 C 语言库(可选)
    ld* 执行时链接器/装载器(可选)
如果安装了相应子系统,/lib 中应该有如下文件夹或符号链接:
    modules 可加载内核模块(可选)

lib64

属于/lib<qual>是lib 文件夹的变体
系统中可能有一个或多个/lib 文件夹的变体,以支持多种二进制格式文件对各自库的要求。
如果存在一个或多个这样的文件夹,对其内容的要求与正常的/lib 文件夹相同,只是不要求有/lib<qual>/cpp

srv

存放系统所提供服务的数据文件

opt

/opt是第三方应用程序软件包安装目录

home
普通用户的家目录

root
管理员的家目录

etc
/etc 层次结构包含了配置文件。“配置文件”是一个用于控制程序操作的本地文件;它必须是静态文件而且不能是可执行的二进制文件

/etc 下面不能放置二进制文件
/etc 文件夹下要求有如下文件夹或符号链接。
  opt /opt 的配置
  X11 X 窗口系统的配置(可选)
  sgml SGML 的配置(可选)
  xml XML 的配置(可选)
如果如果安装了相应的子系统,/etc 下必须有以下文件或符号链接
  csh.login 系统范围的 C shell 登录初始化文件(可选)
  exports NFS 文件系统访问控制表(可选)
  fstab 文件系统的静态信息(可选)
  ftpusers FTP 后台服务用户访问控制表(可选)
  gateways 路由用的网关列表文件(可选)
  gettydefs getty 用的速率和终端设置(可选)
  group 用户组文件(可选)
  host.conf 解析器配置文件(可选)
  hosts 有关主机名的静态信息(可选)
  hosts.allow TCP wrapper 的主机访问文件(可选)
  hosts.deny TCP wrapper 的主机访问文件(可选)
  hosts.equiv rlogin、rsh、rcp 的信任主机表(可选)
  hosts.lpd lpd 的信任主机表(可选)
  inetd.conf inetd 的配置文件(可选)
  inittab init 的配置文件(可选)
  issue 预登录消息和认证文件(可选)
  ld.so.conf 搜索共享库的附加文件夹列表(可选)
  motd 当天的登录后消息文件(可选)
  mtab 文件系统的动态信息(可选)
  mtools.conf mtools 的配置文件(可选)
  networks 网络名称的静态信息(可选)
  passwd 密码文件(可选)
  printcap lpd 打印机功能数据库(可选)
  profile 系统范围的 sh shell 登录初始化文件(可选)
  protocols IP 协议列表(可选)
  Resolv.conf 解析器配置文件(可选)
  rpc RPC 协议列表(可选)
  securetty root 登录的 TTY 访问控制(可选)
  services 网络服务的端口名称(可选)
  shells 有效的登录 shell 的路径名称(可选)
  Syslog.conf syslogd 的配置文件(可选)

dev
/dev 文件夹是放置特殊或设备文件的地方。
如果有/dev 下的文件需要手动创建的情况,/dev 必须包含一条叫做 MAKEDEV 的命令,
它可能创建所需的设备。它也可以包含一个用于任何本地设备的叫MAKEDEV.local 的节点。
如果需要,MAKEDEV必须提供创建系统中能发现的所有设备的功能,而不仅仅是那些一种特定实现所安装的设备文件。

boot
/boot 中存储了内核在开始执行用户模式程序之前所使用的数据
  (包含了启动过程中所需的所有文件,除了启动时不需要的配置文件和映射安装程序)  
这会包括保存的主启动扇区和扇区映射文件
操作系统内核必须位于/或者/boot

mnt
挂载使用的目录

tmp

临时的数据存放的目录,此目录会定期被清理,清理的执行程序来自计划任务脚本,但是在centos 7 中使用unit实现

proc
简介:
proc 目录存放内核中的系统状态信息,以及统计信息。其中系统状态信息可接受配置。
目录结构如下:
[root@localhost proc]# ls
1     1271  18   28   47   acpi         interrupts    modules       sys
10    1273  19   29   48   asound       iomem      mounts        sysrq-trigger
1049  1275  2    3    49   buddyinfo    ioports      mpt           sysvipc
107   1277  20   30   5    bus          irq         mtd           timer_list
1071  13    204  33   592  cgroups      kallsyms     mtrr          timer_stats
1093  1344  205  34   6    cmdline      kcore        net           tty
11    1357  21   35   660  cpuinfo      keys         pagetypeinfo  uptime
1153  1359  211  36   7    crypto       key-users     partitions     version
12    1374  212  37   751  devices      kmsg        sched_debug   vmallocinfo
1233  1375  213  378  780  diskstats    kpagecount  schedstat      vmstat
1245  1377  22   379  781  dma        kpageflags  scsi          zoneinfo
1246  14    23   4    79   driver       loadavg     self
1247  1408  24   415  8    execdomains  locks       slabinfo
1265  15    25   44   80   fb           mdstat      softirqs
1267  16    26   45   816  filesystems  meminfo     stat
1269  17    27   456  9    fs           misc        swaps
进程信息:
proc文件夹包含系统当前进程的信息,进城信息已文件夹存放,进程ID号码对应文件夹名称:
[root@localhost proc]# ls |grep “^[1-9][0-9]*$”|xargs -l13
1 10 1049 107 1071 1093 11 1153 12 1233 1245 1246 1247
1265 1267 1269 1271 1273 1275 1277 13 1344 1357 1359 1374 1375
1377 14 1449 1450 1451 15 16 17 18 19 2 20 204
205 21 211 212 213 22 23 24 25 26 27 28 29
3 30 33 34 35 36 37 378 379 4 415 44 45
456 47 48 49 5 592 6 660 7 751 780 781 79
8 80 816 9

文件夹中 exe 文件为软连接文件,指向硬盘上的二进制程序。
[root@localhost 1]# ls
attr        coredump_filter  io         mountstats     pagemap      stack
autogroup   cpuset           limits     net            personality  stat
auxv        cwd              loginuid   ns             root         statm
cgroup      environ          maps       numa_maps      sched        status
clear_refs  exe              mem        oom_adj        schedstat    syscall
cmdline     fd               mountinfo  oom_score      sessionid    task
comm        fdinfo           mounts     oom_score_adj  smaps        wchan
[root@localhost 1]#

[root@localhost 1]# ll exe
lrwxrwxrwx 1 root root 0 5月  13 22:40 exe -> /sbin/init
[root@localhost 1]#

sys
sys:输出内核识别的各硬件设备的相关属性信息
硬件设备名称规则 /etc/udev/rules.d

原创文章,作者:HGG,如若转载,请注明出处:http://www.178linux.com/77231

(0)
HGGHGG
上一篇 2017-05-30
下一篇 2017-05-31

相关推荐