admin 管理员组

文章数量: 1086019

今天在使用CentOS系统时,涉及到对常用文件目录的了解及操作,以下对根目录下的一级目录一级一些常见的二级目录做一下学习记录。

01 CentOS根文件目录结构图解

CentOS中,最顶层的目录称作根目录, 用/表示。/目录下用户可以再创建目录,接下来介绍这些目录是随着系统创建就已经存在的。

在根目录下使用如下命令,显示根目录下的所有一级目录。

tree  -L  1/ 

  结果如下图:

02 CentOS目录详解

  • /bin --(binary)包含了许多所有用户都可以访问的可执行文件,如 ls, cp, cd 等。这里的大多数程序都是二进制格式的,因此称作bin目录。

  • /boot --(启动) 目录下存放了 Linux 的内核文件和启动镜像,通常这个目录会写入磁盘最头部的分区,启动的时候需要加载目录内的文件。

  • /dev --(设备文件) 通常挂载在devtmpfs文件系统上,里面存放的是设备文件节点。通常直接和内存进行映射,而不是存在物理磁盘上。

  • /etc --(配置文件),/etc名字的含义是and so on……,也就是“等等及其他”,Linux 用它来保管程序的配置。比如说mysql通常会在/etc/mysql下创建配置。再比如说/etc/passwd是系统的用户配置,存储了用户信息。

    • /etc -- 系统管理和配置文件。
    • /etc/rc/etc/rc.d/etc/rc*.d -- 启动、或改变运行级时运行的脚本或目录。
    • /etc/passwd -- 用户数据库,其中的域给出了用户名、真实姓名、家目录、加密的口令和用户的其他信息。
    • /etc/fstab -- 启动时 mount -a 命令(在 /etc/rc 或等效的启动文件中)自动 mount 的文件系统列表。
    • /etc/group -- 类似 /etc/passwd,但说明的不是用户而是组。
    • /etc/inittab -- init 的配置文件。
    • /etc/issue -- getty 在登录提示符前的输出信息.通常包括系统的一段短说明或欢迎信息.内容由系统管理员确定。
    • /etc/motd -- Message Of The Day,成功登录后自动输出.内容由系统管理员确定.经常用于通告信息,如计划关机时间的警告。
    • /etc/mtab -- 当前安装的文件系统列表.由 scripts 初始化,并由 mount 命令自动更新.需要一个当前安装的文件系统的列表时使用。
    • /etc/shadow -- 在安装了影子口令软件的系统上的影子口令文件.影子口令文件将 /etc/passwd 文件中的加密口令移动到 /etc/shadow
    • /etc/login.defs -- login 命令的配置文件。
    • /etc/printcap -- 类似 /etc/termcap ,但针对打印机语法不同。
    • /etc/profile , /etc/csh.login , /etc/csh.cshrc -- 登录或启动时Bourne或C执行的文件.这允许系统管理员为所有用户建立全局缺省环境。
    • /etc/securetty -- 确认安全终端,这样就不可能(至少很困难)通过 modem 或网络闯入系统并得到超级用户特权。
    • /etc/shells -- 列出可信任的 shell.chsh 命令允许用户在本文件指定范围内改变登录 shell。
    • /etc/sysconfig -- 网络配置相关目录。

  • /home --(家目录) 用于存放用户的个人数据,比如用户alice的个人数据会存放到/home/alice下面。并且通常在用户登录,或者执行cd指令后,都会在家目录下工作。用户通常会对自己的家目录拥有管理权限,而无法访问其他用户的家目录。

  • /lib -- 标准程序设计库,又叫动态链接共享库,作用类似windows里的 .dll 文件。

  • /lib64 -- 存放系统服务程序。

  • /media --(媒体) 自动挂载的设备通常会出现在/media目录下。比如你插入 U 盘,通常较新版本的 Linux 都会帮你自动完成挂载,也就是在/media下创建一个目录代表 U 盘。

  • /mnt --(Mount,挂载) 我们习惯把手动挂载的设备放到这个目录。比如你插入 U 盘后,如果 Linux 没有帮你完成自动挂载,可以用mount命令手动将 U 盘内容挂载到/mnt目录下。

  • /opt --(Optional Software,可选软件) 通常会把第三方软件安装到这个目录。以后你安装软件的时候,可以考虑在这个目录下创建。

  • /proc --(process,进程和内核文件) 存储了执行中进程和内核的信息。比如你可以通过/proc/1122目录找到和进程1122关联的全部信息,目录中重要文件信息如下:

    • /proc/cmdline -- 加载 kernel 时所下达的相关参数。查阅此文件,可了解系统是如何启动的。
    • /proc/cpuinfo -- 本机的 CPU 的相关资讯,包含时脉、类型与运算功能等。
    • /proc/devices -- 系统各个主要装置的主要装置代号。
    • /proc/filesystems -- 目前系统已经加载的文件系统。
    • /proc/interrupts -- 目前系统上面的 IRQ 分配状态。
    • /proc/ioports -- 目前系统上面各个装置所配置的 I/O 位址。
    • /proc/kcore -- 内存的大小。
    • /proc/loadavg -- 还记得 top 以及 uptime 吧,上头的三个平均数值就是记录在此。
    • /proc/meminfo -- 使用 free 列出的内存资讯。
    • /proc/modules -- 目前我们的 Linux 已经加载的模块列表,也可以想成是驱动程序。
    • /proc/mounts -- 系统已经挂载的数据,就是用 mount 这个命令呼叫出来的数据。
    • /proc/swaps -- 系统挂加载的内存。
    • /proc/partitions -- 使用 fdisk -l 会出现目前所有的 partition。
    • /proc/pci -- 在 PCI 汇流排上面,每个装置的详细情况,可用 lspci 来查阅。
    • /proc/uptime -- 就是用 uptime 的时候,会出现的资讯。
    • /proc/version -- 核心的版本,就是用 uname -a 显示的内容。
    • /proc/bus/* -- 一些汇流排的装置,还有U盘的装置也记录在此。

  • /root --(root 用户家目录) 为了防止误操作,Linux 设计中 root 用户的家目录没有设计在/home/root下,而是放到了/root目录。

  • /run -- 程序执行时的进程文件放在该目录下,以.pid结尾。

  • /sbin --(super binary系统二进制) 和/bin类似,通常是系统启动必需的指令,是系统管理员专用的二进制代码存放目录。

  • /srv --(Service Data,,服务数据) 通常用来存放服务数据,比如说你开发的网站资源文件(脚本、网页等)。不过现在很多团队的习惯发生了变化, 有的团队会把网站相关的资源放到/www目录下,也有的团队会放到/data下。总之,在存放资源的角度,还是比较灵活的。

  • /sys -- 存放系统文件。

  • /tmp --(临时文件) 用于存放应用的临时文件,通常用的是tmpfs文件系统。因为tmpfs是一个内存文件系统,系统重启的时候清除/tmp文件,所以这个目录不能放应用和重要的数据。

  • /usr --(Unix System Resource) 包含系统需要的资源文件,通常应用程序会把后来安装的可执行文件也放到这个目录下,比如说vim编辑器的可执行文件通常会在/usr/bin目录下,区别于ls会在/bin目录下:

    • /usr/bin/ 后期安装的一些软件的运行脚本。

    • /usr/sbin中会包含有通常系统管理员才会使用的指令。

    • /usr/lib目录中存放系统的库文件,比如一些重要的对象和动态链接库文件。

    • /usr/share目录下主要是文档,比如说 man 的文档都在/usr/share/man下面。

  • /var --(Variable data file,可变数据文件) 用于存储运行时的数据,每个系统是特定的,即不通过网络与其他计算机共享。比如日志通常会存放在/var/log目录下面。再比如应用的缓存文件、用户的登录行为等,都可以放到/var目录下,/var下的文件会长期保存。其中:

    • /var/lib 系统正常运行时要改变的文件。

    • /var/local 存放/usr/local 中安装的程序的可变数据(即系统管理员安装的程序)。注意,如果必要,即使本地安装的程序也会使用其他/var 目录,例如/var/lock 。

    • /var/lock 锁定文件.许多程序遵循在/var/lock 中产生一个锁定文件的约定,以支持他们正在使用某个特定的设备或文件。其他程序注意到这个锁定文件,将不试图使用这个设备或文件。

    • /var/log 各种程序的Log文件,特别是login (/var/log/wtmp log所有到系统的登录和注销) 和syslog (/var/log/messages 里存储所有核心和系统程序信息.。/var/log 里的文件经常不确定地增长,应该定期清除。

    • /var/run 保存到下次引导前有效的关于系统的信息文件。例如, /var/run/utmp 包含当前登录的用户的信息。

    • /var/spool mailnews, 打印队列和其他队列工作的目录。每个不同的spool在/var/spool 下有自己的子目录,例如,用户的邮箱在/var/spool/mail 中。

    • /var/tmp 比/tmp 允许的大或需要存在较长时间的临时文件。(虽然系统管理员可能不允许/var/tmp 有很旧的文件。)

03 比较重要的几个目录

在 CentOS 8 系统中,有几个目录是特别需要注意的,以下提供几个需要注意的目录,以及预设相关的用途。

  • /etc -- 这个目录相当重要,如前所述,你的开机与系统数据文件均在这个目录之下,而在往后的文件中,你会发现我们常常使用这个目录下的 /etc/rc.d/init.d -- 这个子目录,而在 /etc/rc.d/rc.local 这个文件是开机的执行档。

  • /bin, /sbin, /usr/bin, /usr/sbin -- 这是系统预设的执行文件的放置目录,其中, /bin, /usr/bin 是给系统使用者使用的指令,而 /sbin, /usr/sbin -- 则是给系统管理员使用的指令。

  • /usr/local -- 这是系统预设的让你安装你后来升级的套件的目录。例如,当你发现有更新的 Web 套件(如 Apache)可以安装,而你又不想以 rpm 的方式升级你的套件,则你可以将 apache 这个套件安装在 /usr/local 下。

  • /home -- 这个是系统将有账号的人口的家目录设置的地方。

  • /var -- 不论是登入、各类服务的问题发生时的记录、以及常态性的服务记录等等的记录目录,所以当你的系统有问题时,就需要来这个目录记录的文件数据中察看问题的所在。而 mail 的预设放置也是在这里,所以他是很重要的。

  • /usr/share/man, /usr/local/man -- 这两个目录为放置各类套件说明档的地方,例如你如果执行 man man,则系统会自动去找这两个目录下的所有说明文件。

本文标签: 文件系统 结构 目录 centos