Linux研究(一):Linux 系统目录布局详解

打印 上一主题 下一主题

主题 678|帖子 678|积分 2034

笔者在学习linux过程中,总是记不住每个目录的设计之初的寄义,本日专门整理了一下,方便复习。
以centos7为例:登录系统之后实行命令:
  1. ll
复制代码
可以看到如下详细的目录以及具有的权限,当前用户为root

Linux文件系统布局,它遵循了一种条理化的目录布局。以下是一些常见的目录以及它们的解释。
(一)下面对这些目录举行解释:

   /:根目录
这是整个文件系统的顶级目录,所有其他目录和文件都位于根目录下。
    /bin:二进制文件
Binaries (二进制文件) 的缩写,这个目录包含了许多基本的可实行文件,如系统命令(ls、cp、rm等)和常见的工具。
  /bin目录的主要特点和作用包罗:
  

  • 可实行命令:/bin目录包含了一些常用的用户级别可实行命令,这些命令可以被系统上的所有效户直接实行。比方,ls、cp、mv、rm等命令就存放在/bin目录下。
  • 系统启动和基本操作:/bin目录中的一些命令对于系统的启动和基本操作非常重要。比方,/bin/init命令是系统启动过程中的第一个进程,/bin/sh是系统默认的命令行解释器。
  • 单用户模式:在系统故障或维护时,可以进入单用户模式,此时只有/bin目录下的一些基本命令可用,用于举行系统修复和故障排查。
  • 系统路径:/bin目录是系统默认的命令搜刮路径之一。因此,当用户在命令行中输入一个命令时,系统会起首在/bin目录下查找是否存在该命令的可实行文件。
  需要留意的是,/bin目录中的命令通常是基本而常用的,对于系统的正常运行和用户的日常操作至关重要。这些命令一般都是具有核心功能的基本工具,不依赖于其他软件包。
    /boot:启动文件
在Linux系统中,/boot目录是用于存放与系统启动相干的文件的目录。它包含了引导加载程序(bootloader)和内核(kernel)镜像文件,以及与系统引导过程有关的设置文件。
  以下是/boot目录的一些主要内容和作用:
  

  • 引导加载程序(bootloader):
    /boot目录通常包含引导加载程序的设置文件和二进制文件。引导加载程序负责在系统启动时加载操作系统内核到内存中,并实行系统引导过程。常见的引导加载程序包罗GRUB(GRand Unified Bootloader)和LILO(LInux LOader)。
  • 内核镜像文件:
    Linux操作系统的内核镜像文件通常存放在/boot目录中。内核是操作系统的核心组件,负责管理系统资源、提供系统服务和驱动程序等功能。内核镜像文件通常以雷同于"vmlinuz"或"bzImage"的文件名格式存在。
  • initramfs(Initial RAM File System):
    /boot目录可能包含initramfs文件,它是一个临时的根文件系统,用于在系统引导过程中加载必要的驱动程序和文件系统模块。initramfs在引导过程中答应系统加载所需的初始化程序和驱动程序,以便成功启动操作系统。
  • 其他引导相干文件:
    /boot目录可能还包含其他与引导过程有关的文件,如设置文件(如grub.cfg)、备份的内核镜像文件、启动时的图形背景等。这些文件在引导过程中起到设置和定制的作用。
    /dev:设备文件
Device(设备) 的缩写,Linux将设备表示为文件,/dev目录包含了与硬件设备相干的文件,比方磁盘驱动器、USB设备等。
  /dev目录的一些主要特点和作用包罗:
  

  • 设备节点:/dev目录中的文件通常被称为设备节点。每个设备节点对应着系统中的一个硬件设备或虚拟设备。比方,/dev/sda表示硬盘设备,/dev/tty1表示虚拟终端设备。
  • 设备文件的访问:通过在设备文件上举行读写操作,可以与对应的设备举行数据的输入和输出。比方,可以通过/dev/sda设备文件访问硬盘上的数据。
  • 设备的控制和设置:一些设备文件可以用于控制和设置硬件设备的举动。比方,/dev/snd/controlC0设备文件用于控制音频设备。
  • 虚拟设备:除了物理硬件设备,/dev目录中也包含一些虚拟设备文件。比方,/dev/null是一个特殊的设备文件,用于丢弃数据;/dev/random和/dev/urandom是用于生成随机数的设备文件。
  • 自动创建:设备文件通常由系统在启动时自动创建或通过设备驱动程序动态创建。这些设备文件的创建和管理由udev(设备管理保卫进程)负责。
    /etc:系统设置文件
"et cetera"(和其他的) 的缩写,大多数系统设置文件都存放在这个目录中,如网络设置、用户设置、服务设置等。
  以下是/etc目录的一些主要内容和作用:
  

  • 系统设置文件:/etc目录中包含了许多系统级别的设置文件,用于设置系统的举动和参数。比方,/etc/passwd存储了用户账户信息,/etc/group存储了用户组信息,/etc/hosts用于IP地点和主机名的映射等。
  • 网络设置:/etc目录中的一些文件用于网络设置。比方,/etc/network/interfaces用于设置网络接口,/etc/resolv.conf用于设置DNS解析器。
  • 服务设置:许多服务和保卫进程的设置文件位于/etc目录中。比方,/etc/apache2目录包含了Apache Web服务器的设置文件,/etc/mysql目录包含了MySQL数据库服务器的设置文件。
  • 启动和初始化脚本:/etc目录中的一些文件和子目录用于系统的启动和初始化。比方,/etc/init.d目录包含了启动和制止系统服务的脚本,/etc/rc.local是系统启动时自界说脚本的位置。
  • 软件包管理:在某些Linux发行版中,/etc目录中的一些文件用于软件包管理。比方,/etc/apt目录包含了APT软件包管理器的设置文件,/etc/yum.conf是YUM软件包管理器的设置文件。
  /etc目录中的设置文件对于系统的运行和应用程序的举动起着关键作用。修改这些设置文件可以更改系统的举动,定制各种服务和应用程序的参数和功能。
  需要留意的是,修改/etc目录下的设置文件通常需要root权限或特定的权限设置。在修改设置文件之前,建议备份原始文件,以防止不正确的修改导致系统问题。
    /home:用户主目录
在Linux中,每个用户都有一个对应的主目录,位于/home目录下。用户名为"user"的用户的主目录路径为/home/user。
  以下是/home目录的一些主要特点和作用:
  

  • 用户主目录:/home目录中的子目录对应着系统上的每个用户的主目录。比方,对于用户名为"john"的用户,其主目录路径为/home/john。
  • 用户数据和设置:每个用户主目录是该用户的私有空间,用户可以在此中存储个人数据、文件和设置。用户可以自由地构造和管理本身的主目录,包罗创建子目录、存放文档、设置文件和个人设置等。
  • 用户权限:用户主目录具有效户的权限限定,只有相应用户及管理员具有读写权限。这样可以确保用户的数据和个人文件的隐私和安全性。
  • 默认登录位置:当用户登录系统时,默认的工作目录即为用户的主目录。用户可以在主目录下举行各种操作和访问本身的文件。
  /home目录在Linux系统中饰演着重要的角色,为每个用户提供了私有的工作空间和存储位置。每个用户在其主目录下可以自由地管理和构造个人文件和设置,确保数据的隐私和安全。
  需要留意的是,除了/home目录,还存在一些特殊的系统用户,它们的主目录可能位于其他目录,如/var/www(用于Web服务器用户)或/opt(用于特定应用程序用户)。这些特殊用户的主目录可以根据系统和应用程序的需求举行定制。
    /lib:库文件
这个目录包含了许多共享库文件,用于支持系统和应用程序的运行。
  在Linux系统中,/lib目录是用于存放共享库文件(动态链接库)的目录。共享库包含了一组可被多个应用程序共享和重用的函数和资源,它提供了一种模块化的方式来共享代码,镌汰了应用程序的巨细并提高了系统资源的利用服从。
  以下是/lib目录的一些主要特点和作用:
  

  • 共享库文件:/lib目录中存放了系统级别的共享库文件,这些库文件以.so(共享对象)的扩展名结尾。共享库包罗了许多常见的系统函数和服务,如C尺度库(libc.so)、数学库(libm.so)、网络库(libnet.so)等。
  • 动态链接:应用程序可以在运行时动态地链接到共享库,以使用库中界说的函数和资源。这种动态链接的方式使得应用程序可以在实行时共享已编译好的代码,镌汰了重复代码的占用空间,并提高了系统资源的利用服从。
  • 可更新性和共享性:共享库的存在使得系统上的多个应用程序可以共享同一个库文件,从而镌汰了存储空间的占用和维护的工作量。当共享库被更新时,所有使用该库的应用程序都可以受益于更新,无需单独修改每个应用程序的代码。
  • 运行时加载:共享库文件在应用程序运行时被动态加载到内存中,以供应用程序使用。这种运行时加载的方式使得系统可以根据需要加载所需的共享库,实现了灵活的代码复用和资源管理。
  需要留意的是,/lib目录中的共享库文件通常由操作系统和软件包管理器安装和维护。在编译和开发应用程序时,需要确保所依赖的共享库文件存在,并正确地设置库文件的搜刮路径。
    /media:可移动媒体设备
  在Linux系统中,/media目录是用于挂载可移动媒体设备的目录。可移动媒体设备包罗USB闪存驱动器、移动硬盘、光盘、SD卡等。当这些设备插入系统时,它们通常会自动挂载到/media目录下的相应子目录中。
  以下是/media目录的一些主要特点和作用:
  

  • 自动挂载点:当可移动媒体设备插入系统时,操作系统会自动检测并将其挂载到/media目录下的一个子目录中。这个子目录的名称通常是根据设备的标识符或名称来命名的,比方"/media/usb-drive"或"/media/cdrom"。
  • 访问可移动设备:通过/media目录,用户可以方便地访问和管理插入系统的可移动媒体设备。挂载后,用户可以在相应的子目录中访问设备中的文件和文件夹,并举行复制、移动、删除等操作。
  • 自动卸载:当用户从系统中拔出可移动媒体设备时,操作系统会自动卸载该设备,释放相干资源,并从/media目录中删除相应的子目录。
  需要留意的是,/media目录的使用可能会因不同的Linux发行版和桌面环境而有所差异。有些系统可能使用其他目录来挂载可移动媒体设备,比方"/mnt"或"/run/media"等。此外,用户也可以手动将可移动媒体设备挂载到/media目录或其他自界说目录。
    /mnt:临时挂载目录
  在Linux系统中,/mnt目录是一个用于临时挂载其他文件系统的尺度目录。挂载是将一个文件系统连接到文件系统目录树的过程,使其在该目录下可访问。
  /mnt目录的主要目标是为了方便临时挂载其他设备或文件系统,比方网络共享、其他硬盘分区或移动存储设备。当你需要访问这些设备或文件系统时,可以将它们挂载到/mnt目录下,使其在文件系统中可用。
  通常,/mnt目录下会创建子目录来表示每个挂载点。比方,你可以在/mnt目录下创建一个名为"usb"的子目录,并将USB闪存驱动器挂载到该目录下。这样,你就可以通过/mnt/usb路径访问USB驱动器中的文件。
  需要留意的是,/mnt目录通常用于临时挂载,而/mnt目录下的子目录应该是空的或只包含挂载的文件系统。如果你需要长期挂载文件系统,更常见的做法是使用在根目录下的其他目录,如/media目录。
    /opt:可选应用程序
  在Linux文件系统中,/opt目录是用于存放可选应用程序的目录。"opt"是"optional"(可选)的缩写,这个目录提供了一个通用的位置,供第三方软件包或应用程序安装它们本身的文件。
  /opt目录的设计初衷是为了和系统提供的软件包举行区分。系统软件包通常安装在其他目录(如/bin、/usr/bin等),而/opt目录则用于那些不属于操作系统核心部分的可选软件。
  安装在/opt目录下的应用程序通常被放置在单独的子目录中,以构造它们的文件。比方,一个名为"myapp"的应用程序可以被安装在/opt/myapp目录下。这样做的利益是,应用程序的文件可以被会合管理,而不会散布在系统的其他目录中。
  此外,/opt目录还提供了一种使可选应用程序易于升级和删除的机制。当你需要更新或删除/opt目录下的应用程序时,只需操作相干的子目录即可,而不会影响系统的其他部分。
  需要留意的是,/opt目录并不是Linux系统中所有第三方应用程序的默认安装目录。某些应用程序可能选择将它们的文件安装在其他位置,这取决于软件包的发布者和特定的发行版。
    /proc:进程信息
  /proc目录是Linux系统中一个特殊的虚拟文件系统,用于提供关于运行中进程和系统信息的实时访问。通过浏览和读取/proc目录中的文件和目录,你可以获取有关系统的实时状态和详细信息。
  /proc目录中的每个子目录和文件都与系统中的进程或系统信息相干联。以下是一些常见的文件和子目录:
  

  • /proc/<ID>:
    在/proc目录下,每个目录的名称对应一个运行中进程的进程ID(PID)。你可以通过进入/proc/<ID>目录来访问有关特定进程的信息。比方,/proc/1234表示进程ID为1234的进程。
  • /proc/cpuinfo:
    这个文件包含有关CPU(中央处置处罚器)的信息,如型号、速度、缓存等。
  • /proc/meminfo:
    这个文件提供了关于系统内存的信息,包罗总内存量、可用内存量、缓存等。
  • /proc/filesystems:
    这个文件列出了当前系统支持的文件系统范例。
  • /proc/net:
    这个目录包含与网络相干的信息,如网络接口、连接状态、路由表等。
  • /proc/sys:
    这个目录包含了许多系统设置和参数,可以通过读取或写入相干文件来调解系统举动。
  • /proc/version:
    这个文件包含了当前运行的内核版本信息。
  /proc目录还包含其他许多与进程、硬件和系统状态相干的文件和目录。通过在/proc中浏览和读取这些文件,你可以获取有关系统的实时信息,并监视和调解系统的运行。
  值得留意的是,/proc目录中的文件和目录通常是虚拟的,其内容在访问时动态生成,而不是存储在磁盘上。这使得它提供了对系统状态的实时访问,并答应进程和系统信息动态更新。
    /root:系统管理员主目录
  在Linux系统中,/root目录是系统管理员(通常是超等用户root)的主目录。它是root用户的个人工作目录和设置文件存储位置。
  /root目录的作用雷同于其他用户的主目录(如/home/user),但是它是用于root用户的,而不是普通用户。作为系统管理员的主目录,/root通常具有更高的权限和特权,答应对系统举行广泛的设置和管理。
  /root目录通常包含了root用户的个人设置文件、脚本和工具。这些文件有助于定制系统的举动、设置环境变量、设置系统服务等。/root目录也是root用户实行命令和存储临时文件的默认位置。
  /root目录对于系统管理员来说是私有的,普通用户通常无法访问该目录下的内容,除非他们具有足够的权限。
  需要留意的是,虽然/root目录是root用户的主目录,但并不是建议在该目录下存储大量的个人数据。根据最佳实践,个人数据应该存储在其他位置,以便更好地举行备份和管理。
    /sbin:系统二进制文件
  在Linux系统中,/sbin目录是用于存放系统二进制文件的目录。这些二进制文件是用于系统管理和维护任务的工具和命令。与普通用户的可实行程序存放在/bin目录中不同,/sbin目录中的二进制文件通常需要超等用户(root用户)权限才能实行。
  /sbin目录中的二进制文件通常用于系统的启动、维护和修复。这些工具提供了对系统底层功能和设置的访问和控制。以下是一些常见的/sbin目录中的二进制文件:
  

  • /sbin/init:
    这是系统的初始化进程,负责启动系统并管理其他进程的启动和终止。
  • /sbin/reboot:
    这个命令用于重新启动系统。
  • /sbin/shutdown:
    这个命令用于安全地关闭系统。
  • /sbin/ifconfig:
    这个命令用于设置和管理网络接口。
  • /sbin/fsck:
    这个命令用于检查和修复文件系统上的错误。
  • /sbin/mount:
    这个命令用于挂载文件系统。
  • /sbin/lvm:
    这个命令用于逻辑卷管理,用于创建、删除和管理逻辑卷和卷组。
  /sbin目录中的二进制文件通常被以为是系统管理任务的核心工具,因此它们被放置在/sbin目录中,以便于超等用户直接访问和实行。
    /tmp:临时文件
  在Linux系统中,/tmp目录是用于存放临时文件的目录。它是一个临时性的文件存储位置,用于存放在系统运行过程中产生的临时文件。
  临时文件是在程序运行期间生成的,用于临时存储数据或举行临时操作。它们通常不需要长期保存,而是在使用后应该被清算掉。
  /tmp目录的特点如下:
  

  • 共享性:/tmp目录是系统范围内的共享目录,所有效户和进程都可以访问和使用此中的临时文件。
  • 清算机制:一般情况下,/tmp目录的内容并不会永久保存。系统通常会定期清算该目录,删除过时的临时文件,以防止它们占用过多的磁盘空间。
  • 权限:/tmp目录对于系统中的所有效户都是可写的,这意味着任何用户都可以在该目录中创建临时文件。
  由于/tmp目录是共享的临时文件存储位置,因此它经常被应用程序和系统工具用来存储临时数据。比方,下载文件时,临时下载文件可能会被保存在/tmp目录中。其他一些临时文件可能包罗日记文件、临时缓存文件、临时数据库文件等。
  需要留意的是,由于/tmp目录是共享的,任何用户都可以在此中创建和修改文件,因此在安全性要求较高的环境中,可能需要对/tmp目录举行额外的安全设置和监控。
    /usr:用户程序资源
这个目录包含了大多数用户安装的应用程序、库文件和文档。
  在Linux系统中,/usr目录是用于存放用户程序资源的目录。它是Unix Software Resource(USR)的缩写,包含了系统安装的大部分用户级别的程序、库文件、文档和其他相干资源。
  /usr目录的布局通常如下:
  

  • /usr/bin:
    这个目录包含可实行的用户级别命令和程序。通常,系统中的许多常用命令和应用程序都被安装在这个目录中,供所有效户使用。
  • /usr/sbin:
    这个目录包含系统管理员级别的可实行命令和程序。与/sbin目录雷同,这些工具通常需要超等用户(root用户)权限才能实行。
  • /usr/lib:
    这个目录包含共享库文件,它们被用户程序和系统工具使用。共享库包罗一些常见的库,如C尺度库和其他系统库。
  • /usr/include:
    这个目录包含用于编程的头文件(header files)。头文件通常包含了函数、常量和数据布局的声明,供开发职员在编写程序时使用。
  • /usr/share:
    这个目录包含与程序相干的共享数据,如系统范围的设置文件、资助文档、示例文件、图标等。
  • /usr/local:
    这个目录是用于存放用户自行安装的软件的位置。它雷同于/usr目录的布局,但是主要用于用户自界说的软件安装,而不是系统默认安装的软件。
  • /usr/games:
    这个目录包含一些游戏程序,供用户娱乐和休闲使用。
  需要留意的是,/usr目录通常包含系统范围的程序资源,而与用户个人相干的数据和设置文件通常存放在用户的主目录(如/home/user)下。
    /var:可变数据
可变数据,如日记文件、缓存、邮件等,存放在这个目录下。
  在Linux系统中,/var目录是用于存放可变数据(variable data)的目录。它包含了在系统运行过程中产生、变革和更新的数据,而不是系统安装过程中的静态文件。
  /var目录的主要作用是存储经常变革的数据,此中包罗但不限于以下内容:
  

  • 日记文件(log files):
    系统和应用程序生成的日记文件通常存放在/var/log目录中。这些日记文件记载了系统的活动、错误消息、服务日记等,对于故障排查和系统监控非常重要。
  • 数据库文件(database files):
    一些应用程序使用/var目录存储数据库文件,这些文件包含了应用程序的数据、设置和状态信息。
  • 缓存文件(cache files):
    临时缓存文件、网络缓存、软件包管理器的包缓存等通常存放在/var/cache目录中。这些文件可用于提高性能、加快访问速度或减轻对外部资源的依赖。
  • 运行时文件(runtime files):
    某些应用程序在运行时需要创建临时文件或进程文件,这些文件通常存放在/var/run目录中。这些文件记载了正在运行的程序的信息,如进程ID(PID)文件、锁文件等。
  • 邮件(mail):
    邮件服务器存储接收的邮件和邮件队列等数据通常位于/var/mail或/var/spool/mail目录中。
  除了上述常见的数据之外,/var目录可能还包含其他应用程序特定的数据和文件。需要留意的是,/var目录中的数据通常是可变的,可能会增长,因此对磁盘空间的管理和监控也很重要。
  总结

   Linux系统目录布局是一个条理化的文件系统布局,它提供了一种构造和管理文件、程序和资源的尺度化方式。在Linux系统中,各个目录有着特定的用途和寄义,使得系统管理、软件安装和用户数据等操作更加方便和划一。
  总的来说,Linux系统目录布局的主要特点包罗:
  

  • 根目录(/)是整个目录布局的起点,包含了系统中所有其他目录和文件。
  • /bin目录存放了常用的用户可实行命令,是普通用户可以直接实行的命令的存放位置。
  • /sbin目录存放了系统管理和维护任务的二进制文件,这些文件通常需要超等用户权限才能实行。
  • /usr目录包含了用户程序资源,包罗可实行命令、库文件、头文件和共享数据等。
  • /etc目录存放了系统的设置文件,包罗网络设置、用户账户设置、服务设置等。
  • /var目录存放了可变数据,如日记文件、数据库文件、缓存文件等。
  • /home目录是用户的主目录,每个用户在此目录下有一个独立的子目录,用于存放用户的个人文件和数据。
  • /tmp目录是用于存放临时文件的目录,通常不需要长期保存,而是在使用后应该被清算掉。
  • /dev目录包含了设备文件,用于与硬件设备举行交互。
  • /proc目录是一个虚拟文件系统,提供了对系统内核和进程的信息访问。
  Linux系统目录布局的合理构造和尺度化有助于提高系统的可管理性、可维护性和可扩展性。它使得不同的Linux发行版和应用程序能够遵循划一的文件布局,简化了软件的安装和设置过程,同时也方便了系统管理员和用户对系统的管理和使用。
  
本日学习了这么多,基本了解了Linux的文件目录,后续在使用中也会更接的规范,如有解释不清楚的地方,欢迎评论交流批评!

每天学一点,快乐多一点。。。



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

盛世宏图

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表