Linux与文件系统使用解读

 更新时间:2026年09月05日 09:22:55   作者:zx_74148481  
这篇文章主要介绍了Linux与文件系统使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

一、Linux:从Unix血脉到开源基石

1.1 Unix的诞生与影响

1969年,贝尔实验室的肯·汤普逊(Ken Thompson)丹尼斯·里奇(Dennis Ritchie)在Multics项目失败后,从头创建了Unix操作系统。随后,Ritchie开发了C语言并用其重写Unix,使其具备了卓越的可移植性,为现代操作系统奠定了基础。

1.2 Linux的诞生与GNU/Linux体系

1991年,芬兰学生林纳斯·托瓦兹(Linus Torvalds)发布了第一个Linux内核(0.01版)。它并非孤立存在,而是与Richard Stallman发起的GNU项目提供的工具集(bash、gcc等)结合,形成了完整的操作系统,通常被称为GNU/Linux

Linux遵循GPL(通用公共许可证),保证用户拥有使用、修改和再发布的自由,但衍生作品也必须开源。

1.3 主要发行版家族

Linux发行版 = Linux内核 + GNU工具集 + 应用软件 + 包管理器。

主流家族如下:

家族代表发行版包管理工具
Red Hat系RHEL、CentOS、Fedorayum / dnf
Debian系Debian、Ubuntu、Linux Mintapt
SUSE系openSUSE、SUSE Linux Enterprisezypper

重要提醒:CentOS 7已于2024年6月30日停止维护(EOL)。

1.4 Linux 的主要特点

特点说明
开源免费源代码公开,可自由修改和再发布
多用户多任务多个用户可同时登录,多个程序可同时运行
安全稳定权限体系完善,广泛应用于服务器等关键环境
可定制性强内核、桌面、软件都可以按需裁剪定制
网络功能强大天生为网络而生,是服务器领域的绝对主力

1.5 Linux 与 Windows 对比

比较维度WindowsLinux
免费与收费收费且较贵免费或极少的服务费用
软件与支持软件数量和质量有优势,但大部分为收费软件,由微软官方提供支持和服务开源自由软件,用户可修改、定制和再发布;由于基本免费、缺乏商业资金支持,部分软件质量和体验稍欠缺,由全球 Linux 开发者和自由软件社区提供支持
安全性需要频繁打补丁和安装系统安全更新,仍可能中病毒木马同样存在安全问题,但权限模型更严格,相对而言比 Windows 平台更安全
使用习惯普通用户基本在纯图形界面下操作,依靠鼠标和键盘完成一切操作,上手容易、入门简单兼具图形界面和完全的命令行操作,可以只用键盘完成一切操作;新手入门难度较大,需要一定学习和指导,熟练后效率更高
可定制性封闭系统,可定制性差开源,可定制性非常强
应用场景桌面操作系统以 Windows 为主支撑百度、谷歌、淘宝等大量应用和服务的服务器主机,绝大多数是 Linux

二、文件系统哲学:“一切皆文件”

2.1 核心设计思想

Linux最优雅的设计哲学莫过于一切皆文件

  • 普通文件目录(文件名与inode的映射)是文件
  • 硬件设备(如/dev/sda)是文件
  • 进程信息系统状态也以文件形式暴露(/proc/sys

这种统一抽象,让所有资源都可以用打开、读、写、关闭这同一套API进行操作,极大简化了系统设计和程序开发。

2.2 路径规则

绝对路径:从根目录/开始,如/home/user/word.txt

相对路径:从当前目录开始,如./word.txt../soft/

  • . = 当前目录
  • .. = 上一级目录

常用命令:pwd(查看当前路径)、ls /(查看根目录内容)

三、单根树状目录结构总览

Linux采用单一根目录(/)的树状结构,所有目录均挂载于其下:

/
├── bin          # 常用命令(通常指向 /usr/bin)
├── sbin         # 系统管理命令(通常指向 /usr/sbin)
├── home         # 普通用户主目录
├── root         # root用户主目录
├── lib          # 共享库(通常指向 /usr/lib)
├── etc          # 系统配置文件
├── usr          # 应用程序与用户数据(类似Windows的Program Files)
├── boot         # 启动文件(内核、引导程序)
├── proc         # 虚拟文件系统(进程与内核信息,内存映射)
├── sys          # sysfs虚拟文件系统(设备与内核对象)
├── tmp          # 临时文件(重启后通常清空)
├── dev          # 设备文件(硬盘、终端等)
├── media        # 可移动设备自动挂载点
├── mnt          # 手动临时挂载点
├── opt          # 额外安装的第三方软件
├── srv          # 服务数据目录
├── var          # 变化频繁的文件(日志、缓存等)
└── lost+found   # 系统崩溃后恢复的文件片段

四、核心目录详解

4.1 /bin 与 /sbin —— 命令存放地

  • /bin(Binary):存放lscpmv普通用户可用的基础命令。
  • /sbin(Superuser Binary):存放fdiskmkfs系统管理员专用的管理命令。

新发行版中,二者通常分别为/usr/bin/usr/sbin的软链接。

4.2 /home 与 /root —— 用户的家

  • /home:普通用户主目录所在,如/home/alice
  • /root:超级用户(root)的主目录,普通用户无权访问。

4.3 /etc —— 配置文件的集中营

存放所有系统级别的配置文件,如:

  • /etc/passwd:用户账户信息
  • /etc/hosts:主机名与IP映射
  • /etc/fstab:开机自动挂载配置
  • /etc/sysconfig/network-scripts/:网卡参数配置

4.4 /usr —— 用户程序的大本营

类似于Windows的“Program Files”,存放系统自带的应用程序、库文件、文档等,是系统中最庞大的目录之一。

4.5 /boot —— 启动核心区

存放Linux内核镜像、引导加载程序(如GRUB)等启动必需文件。请勿将自己的文件放在此处

4.6 /proc 与 /sys —— 内核的实时窗口

两者均为虚拟文件系统,数据存在于内存中而非磁盘:

  • /proc:显示进程信息(如/proc/cpuinfo查看CPU)、内核参数。
  • /sys:暴露设备与内核对象信息,自Linux 2.6内核引入。

4.7 /dev —— 设备文件目录

将硬件设备以文件形式呈现,如/dev/sda(第一块硬盘)、/dev/tty(终端)。通过ls /dev可查看所有设备文件。

4.8 /media 与 /mnt —— 挂载点

  • /media:系统自动识别并挂载U盘、光驱等可移动设备(CentOS 7后移至/run/media)。
  • /mnt:供管理员手动临时挂载其他文件系统(如额外硬盘分区)。

4.9 /var —— 变化数据的归宿

存放经常变化的文件,最重要的是系统日志(如/var/log/messages),还有邮件队列、打印队列、缓存等。

4.10 /tmp —— 临时文件暂存处

任何用户都可读写,存放临时数据,系统重启后内容通常会被清理。

4.11 /opt —— 第三方软件安装区

用于安装手动部署的软件,如MySQL、Oracle等,默认为空。

4.12 /srv —— 服务数据目录

存放由系统提供服务的特定数据,如Web服务器的网页文件。

4.13 /lost+found —— 文件系统急救室

仅在系统崩溃或非法关机后,用于存放fsck恢复的文件片段,平时为空。

五、容易混淆的重点目录速查表

目录对记忆要点
/bin vs /sbinbin = 普通命令,sbin = 管理员命令
/home vs /roothome = 普通用户的家,root = 超级用户的家
/proc vs /sys两者都是虚拟文件系统,proc偏进程,sys偏设备/内核对象
/media vs /mntmedia = 自动挂载可移动设备,mnt = 手动临时挂载
/usr vs /optusr = 系统自带应用程序,opt = 第三方手动安装软件
/var记住“变化”(variable)—— 日志等频繁变化的数据

六、总结

Linux 不仅是一个操作系统,更是一种开放、自由且严谨的技术哲学。

从 Unix 的血脉传承到 GNU/Linux 体系的繁荣,它凭借一切皆文件的优雅抽象和单根树状目录结构,构建了一个高度模块化、安全且稳定的系统基石。

对于初学者而言,深入理解这套目录结构是跨越命令行门槛的第一步:

  • 找准定位: 牢记 /etc 管配置、/var 存日志、/proc 看状态、/dev 认设备。
  • 理清边界: 区分普通用户与管理员的权限边界(/home vs /root,/bin vs /sbin),以及系统自带与第三方软件的存放逻辑(/usr vs /opt)。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Apache中mod_proxy模块的使用问题及解决方案

    Apache中mod_proxy模块的使用问题及解决方案

    配置了apache的情况,包括uap集群,配置https等场景下均适用,这篇文章主要介绍了Apache中mod_proxy模块的使用,需要的朋友可以参考下
    2024-08-08
  • ubuntu20.04连接wifi的方法(2种)

    ubuntu20.04连接wifi的方法(2种)

    这篇文章主要介绍了ubuntu20.04连接wifi的方法(2种),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • Windows10安装linux子系统的两种方式(图文详解)

    Windows10安装linux子系统的两种方式(图文详解)

    这篇文章主要介绍了Windows10安装linux子系统的两种方式,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06
  • Linux搭建DHCP服务器的详细过程

    Linux搭建DHCP服务器的详细过程

    DHCP动态主机配置协议是一个局域网的网络协议,指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码,这篇文章主要介绍了Linux搭建DHCP服务器,需要的朋友可以参考下
    2022-10-10
  • Linux调试工具GDB使用简易教程

    Linux调试工具GDB使用简易教程

    这篇文章主要介绍了Linux调试工具GDB使用简易教程,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-01-01
  • centos下samba文件夹共享服务器配置详解

    centos下samba文件夹共享服务器配置详解

    这篇文章主要介绍了centos下samba文件夹共享服务器配置详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • ubuntu26环境下的开发环境安装处理过程

    ubuntu26环境下的开发环境安装处理过程

    本文详细记录了Ubuntu 26.04下搭建C++和Qt开发环境的过程,重点解决dbus库版本不兼容、Qt编译找不到OpenGL依赖、系统自动更新导致库版本回退等常见问题,并分享了ODB框架编译时指定g++13的注意事项,帮助开发者顺利配置稳定的开发环境
    2026-08-08
  • Linux切换JDK版本实现方式

    Linux切换JDK版本实现方式

    本文详细介绍了在CentOS/RHEL系统上手动安装和切换多个JDK版本的步骤,包括注册JDK到alternatives系统、配置动态JAVA_HOME、交互式切换版本以及验证切换结果,通过这些步骤,用户可以轻松管理多个JDK版本,并根据需要进行切换,无需重启服务器
    2026-03-03
  • -bash:/usr/bin/yum:没有那个文件或目录的解决方案

    -bash:/usr/bin/yum:没有那个文件或目录的解决方案

    在CentOS系统中,不慎删除或卸载了yum可以通过重新安装来恢复,首先,确认系统版本,例如CentOS,然后新建所需目录以存放下载的文件,接下来,分别从镜像源下载yum组件和python依赖的rpm包,安装python时,如果遇到依赖问题,可选择强制安装
    2024-10-10
  • Linux网卡bond模式有哪些?七种模式原理详解与配置教程

    Linux网卡bond模式有哪些?七种模式原理详解与配置教程

    还在为Linux服务器网络稳定性发愁?本文深入解析bonding七种工作模式(balance-rr、active-backup、balance-xor等)的原理和优缺点,并手把手教你配置mode=1主备模式,实现网卡冗余和故障切换,确保业务不中断
    2026-08-08

最新评论