资讯详情

Unix/Linux基础学习地图:三层结构、FHS目录与权限命令

📅 2026/10/29 14:52:00 | 华诺云谱 👁 阅读
Unix/Linux基础学习地图:三层结构、FHS目录与权限命令
简介《Unix/Linux基础讲义.doc》面向操作系统初学者、计算机专业学生及需补齐 Unix/Linux 基础的开发者帮助建立从操作系统定位到 Unix、Linux 演进脉络的系统认知。讲义围绕操作系统承上启下的作用展开梳理 Unix 家族从 MULTICS、UNICS 到 BSD 与 System Ⅲ 的发展并讲解 Linux 从 Minix、Linus 内核到 GNU/POSIX 五大支柱的形成过程同时涉及内核与发行版、两类用户、开发应用领域等基础知识点。资源包共 1 个 doc 文件约 13.46MB适合按章节通读并做概念笔记。当前已有 325 人学习可作为课程预习、面试复习或实验前的理论铺垫帮助读者理清 Unix/Linux 的关键术语、历史节点与知识框架。1. Unix/Linux 这张地图三层结构一层都不能跳Unix/Linux 基础看着知识点零散其实只有三层最上面是操作系统这层抽象向下封装硬件、向上提供操作接口中间是文件系统这棵树单一根、FHS 目录规范、一切皆文件最下面是权限和命令这两类钥匙决定谁能动、怎么动。只背命令的人一遇到这个文件为什么删不掉man 为什么查不到就会卡住把三层的对应关系理顺命令表反而不用死记。这份讲义的价值恰恰在于按这个顺序把家族谱系、目录结构、权限位、命令格式串成了一条线。它适合两类读者正在系统学 Unix/Linux、需要一张完整地图的人以及考纲里有这门课、想快速查漏补缺的人。2. 家族谱系与版本号从 MULTICS 计划到发行版排行2.1 操作系统的三个目标和一个位置操作系统要干什么讲义把它压成了三个词方便、有效、扩展。方便是让整个计算机系统好用有效是以更有效的方式使用系统资源CPU 怎么分、内存怎么给、磁盘 I/O 怎么排队都归它管扩展是方便用户有效开发、测试和引进新功能。这三个词乍看像口号实际是后面所有知识点的判据命令行为什么比图形界面快是有效为什么要统一目录规范是扩展。真正要背熟的是它的位置向下封装硬件向上提供操作接口。这句话写出来只有一行展开却是一张分层图。层次这一层负责什么讲义里对应的知识点应用程序用户直接操作的部分shell 命令、编辑器、桌面环境操作接口规定程序怎么请求系统做事命令格式、man 手册、POSIX 标准内核进程、内存、设备与文件系统管理内核版本、稳定版与开发版硬件CPU、磁盘、打印机、网卡设备文件 /dev、设备独立性这张表能解释一个高频疑问为什么同一个命令在有的发行版上参数不一样。命令处在应用程序和操作接口之间各发行版打包方式不同表现自然有差异而内核才是所有发行版共用的那一层。复习时把这张表默写一遍比抄十遍命令列表有用。2.2 Unix 时间线一条官司拖慢的十年讲义给的年份很密直接从头背很容易记串。按谁做了什么、留下什么后果来记会稳得多。1965 年某研究实验室加入一项与某高校、某公司合作的计划目标是做一套多使用者、多任务、多层次的 MULTICS 操作系统后来因为项目太复杂而失败。1969 年两位核心开发者带着一组人做出了新的多任务系统 UNICS后来改名 Unix最初用 B 语言和汇编语言混合编写。1971 年同两位核心开发者把 C 语言做出来1973 年用 C 重写了 Unix。1974 年Unix 第一次出现在实验室之外随后被研究机构、企业和高校注意到逐渐流行。1980 年出现两条最主要的版本线一条是高校主导的学术分支一条是商业分支两者的竞争引发了Unix 战争最终导致 Unix 出现各种各样的变种。1982 年第一个商业版本发布并不再开源。1992 到 2001 年版权纠纷打了将近十年结果是两头都受损Unix 因为费用昂贵只局限于大型机应用学术分支因为版权问题失去了宝贵的发展时期。年份事件记忆锚点1965MULTICS 计划启动目标多使用者、多任务、多层次太复杂而失败1969UNICS 诞生后改名 UnixB 语言 汇编1971 / 1973C 语言诞生 / 用 C 重写 Unix可移植性从这里开始1974Unix 第一次走出实验室开始流行1980两条版本线竞争变种爆发1982第一个商业版本不再开源授权开始收费1992—2001版权官司近十年两边都错过窗口期这段历史最值得记的不是年份本身而是两个后果一是变种太多直接催生了对统一标准的需求POSIX 和 FHS 都是同一个逻辑的产物二是授权太贵、官司太长给了一个免费内核难得的窗口期。把这两句挂在时间线后面简答题基本不会跑偏。2.3 Linux 为什么能起来五个支柱与九条补齐Minix 是绕不开的前置。某高校的一位教授仿照 4.3BSD 的源码白手起家写了 12000 行 C 语言完成后这个系统只是一个教学工具没有什么实际应用价值。它的意义不在于能用而在于证明了一个人也能写完一个内核。1990 年一位开发者决定编写自己的 Minix 内核初名意为某某的 Minix 内核后来改名 Linux1991 年正式发布逐渐引起注意。讲义把 Linux 的诞生和成长归结为五个支柱这个总结方式很适合直接背。支柱给了什么缺了会怎样Unix 操作系统设计范式多用户、多任务、树形文件系统、一切皆文件没有可参照的整体结构Minix 操作系统可读的最小实现一个教学样本缺少起步时的代码基础GNU 计划工具链编辑器、BASH shell、GCC、GDB只有内核没有能用的软件POSIX 标准统一的应用程序接口规范各分支接口各异程序不可移植互联网分发渠道与协作方式改动无法汇总发展极慢GNU 是GNU is Not Unix的递归缩写1984 年发起目标是开发一套免费、类 Unix 的操作系统及其开发工具编辑系统、BASH shell、GCC、GDB 都是这个计划的产品。1992 年Linux 与其他 GNU 软件结合完全自由的操作系统正式诞生往往被称为 GNU/Linux 或者简称 Linux。POSIX 标准则定义了操作系统应该为应用程序提供的接口标准它用来统一各分支的编程接口以提高通用性和可移植性。补上背景再看九条特点就不像在背形容词了。Linux 的特点落到哪个具体机制上开放性源码公开改动可被社区甄别后进主线完全免费不受版权制约与 Unix 兼容多用户、多任务同一台机器上多人同时访问、多任务并发良好的用户界面图形界面是可选组件命令行照样完整设备独立性设备映射成 /dev 下的文件用统一方式访问丰富的网络功能服务器领域应用最广的一块可靠的系统安全性多用户下的权限与身份认证体系良好的可移植性内核可裁剪能跑在多种 CPU 与硬件平台对照着看 Unix 的短板就清楚了Unix 稳定、高效、安全、功能强大自 20 世纪 70 年代起就运行在许多大中小型机上但它对运行平台要求很高只能在工作站或小型机上才能发挥全部功能价格昂贵普通用户可望而不可及——这正是 Linux 崛起的机会。Linux 是免费的、不受版权制约的、与 Unix 兼容的操作系统并在 x86 架构上实现了 Unix 的全部特性。至于Linux 的两类用户梳理下来会发现一条清晰的分界一类把它当生产环境运维、后端、嵌入式开发关心的是权限、目录、命令行另一类把它当桌面系统关心的是图形界面和办公套件。考纲里的绝大多数考点服务的是第一类人。2.4 内核与发行版两层版本号别混内核是系统的心脏是运行程序和管理磁盘、打印机等硬件设备的核心程序它提供了一个在裸设备与应用程序之间的抽象层。内核版本分稳定版和开发版两者相互关联、相互循环稳定版具有工业级强度可以广泛应用和部署新的稳定版相对旧版只是修正一些 bug 或加入一些新的驱动程序开发版要试验各种解决方案所以变化很快。全世界的修改最终都会汇总到官方内核源码站点由社区核心维护者甄别后决定是否进入主线。发行版是另一层概念。一个发行版通常包含桌面环境、办公套件、媒体播放器、数据库等应用软件由 Linux 内核、大量来自 GNU 计划的函数库、基于 X Window 的图形界面组成。X Window 有几个常考特征它是客户机/服务器结构的主要由 X Server 和 X Client 两部分组成它的实现与操作系统内核分开它不是 Unix/Linux 必需的构成部分只是一个可选的应用程序组件。换句话说没有图形界面能不能跑 Linux这个问题答案是能。讲义记录了两期发行版排行快照用来记流派比记名次更有用。名次2015 年2014 年1Linux MintLinux Mint2DebianUbuntu3UbuntuDebian4openSUSEopenSUSE5FedoraFedora6MageiaMageia7ManjaroArch8CentOSElementary9ArchCentOS10ElementaryZorin这张表的意义不在于谁第一而在于让你认出几个大类以 Debian 为根的一支、以 Arch 为代表的一支、偏企业应用的一支、走独立路线的一支。名次年年变流派几年才动一次。应用领域按讲义分四块服务器是目前应用最多的领域可提供 Web、FTP、邮件、DNS 等服务支持服务器集群、虚拟主机嵌入式 Linux 是把流行内核裁剪修改后跑在嵌入式系统上支持多种 CPU 和硬件平台剪裁性好代表有 Embedix、uCLinux、muLinux桌面应用这些年进步很大办公、多媒体、网络功能都能覆盖此外还有行业办公领域看重的是安全性上的优势。3. 文件系统单一根树、FHS 目录表与一切皆文件3.1 目录、路径与两个特殊目录目录是一组相关文件的集合一个目录下面除了文件还可以放其他目录也就是可以包含子目录。确定文件、目录位置时DOS 和 Unix/Linux 都采用路径名 文件名的方式路径反映的是目录与目录之间的关系。差别在分隔符Unix/Linux 用斜杠/DOS 用反斜杠\。路径分两种。绝对路径从目录树的树根/开始往下直到到达文件所经过的所有节点目录下级目录接在上级目录后面用/隔开判断方法只有一条——第一个字符一定是/。相对路径指目标目录相对于当前目录的位置如果目标不在当前目录下就要用到两个特殊目录.指向当前目录本身..指向上一级目录。梳理下来会发现..有一个容易忽略的边界如果当前目录正好是一个挂载点..停在挂载点上退不到挂载它的那个上级目录的物理位置。这不是笔试题里的常客但排查路径明明写对了却进错目录时它是第一个要怀疑的对象。3.2 多盘符并列 vs 单一根挂载Windows 平台下打开计算机看到的是一堆驱动器盘符每个驱动器都有自己的根目录结构形成多个树并列的情形。Linux 下看不到盘符看到的是目录。早期的 UNIX 系统里各家厂商各自定义文件目录比较混乱Linux 面世不久后对文件目录做了标准化1994 年推出 FHSFilesystem Hierarchy Standard文件系统层次结构标准规定了根目录下各文件夹的名称及作用统一了命名混乱的局面。Unix/Linux 同样采用树状结构的文件系统由目录和目录下的文件一起构成但不使用驱动器这个概念而是使用单一的根目录结构所有分区都挂载到单一的/目录上。挂载这个动作落到命令上就是一条把设备文件挂到某个目录上比如把光驱挂到/mnt之后访问/mnt就等于访问那张光盘。所以/dev下的文件和挂载点是两回事前者代表设备本身后者是设备被接进目录树的位置。一句话记住这层区别无论哪个发行版桌面和应用是外衣文件组织和目录结构才是内心。3.3 FHS 目录逐条对照十八个目录硬背很容易串按功能分组再记就稳了可执行类、配置类、数据类、设备与内核类、用户类、临时与杂项类。目录放什么使用与易错点/根目录一般只存放目录全系统有且只有一个所有路径从这里开始/bin、/usr/bin可执行二进制文件如 ls、tar、mv、cat/boot启动用到的文件内核文件、引导管理器都在这里/dev设备文件访问其中某个文件等于访问某个设备/etc系统配置文件不建议放可执行文件inittab、fstab、init.d 等都在此/home普通用户家目录~表示当前用户家目录~edu表示某用户的家目录/lib、/usr/lib、/usr/local/lib系统函数库程序运行时要调用的额外库/lostfound异常时产生的遗失片段文件系统修复后常见别急着删/mnt、/media挂载点光盘常挂在 /mnt/cdrom也可选任意位置挂载/opt额外安装软件的目录非发行版自带的大型软件常放这里/proc内存中的系统信息不占磁盘cpuinfo、interrupts、net/* 都在这/root管理员的家目录不是/也不在/home下/sbin、/usr/sbin、/usr/local/sbin管理员命令普通用户一般只能查看不能设置和使用/tmp临时文件任何人都可访问重要数据不要放/srv服务启动后访问的数据网页数据常放在 /srv/www 内/usr应用程序存放目录bin 放程序、share 放共享数据、local 放升级包、share/doc 与 share/man 放文档/var经常变化的文件日志/var/log、邮件/var/spool/mail、PID 在/var/run这张表最值得反复看的是三组对照/bin与/sbin给谁用的、/etc与/var不变的配置与常变的运行时数据、/proc与/dev内存里的信息与映射出来的设备。三组分清选择题基本不会掉坑。3.4 一切皆文件与五类文件Unix/Linux 把数据文件如音频、图片、程序文件如 .c、.h、.o、设备文件显示屏、触摸屏、鼠标、网络文件socket等的管理都抽象为文件用统一的方式方法管理这就是一切皆文件的由来。它带来的直接好处是接口统一打开、读、写、关闭这一套动作对普通文件和设备文件都适用。同时文件类型仍然要区分通过类型可以判断一个文件属于可执行文件、文本文件还是数据文件而且 Unix/Linux 的文件可以没有扩展名所以看后缀名判断类型在这里是不靠谱的要用file命令。file后面跟文件名就查指定文件跟通配符*就查当前目录下所有文件。常用的文件类型有五种。类型说明细节普通文件存放数据、程序等信息长期存放于外存包括文本、数据、可执行二进制目录文件目录被当作一种特殊文件构成树型结构用户进程可读不能修改设备文件每个设备映射成一个文件分字符设备按字符存取和块设备按字符块存取管道文件多用于进程间通信特殊文件类型本身不存数据链接文件类似快捷方式分软链接符号链接和硬链接设备文件都在/dev下比如行式打印机对应/dev/lp第一个软盘驱动器对应/dev/fd0。每个目录文件至少包含两个条目..表示上一级目录.表示该目录本身这也解释了为什么ls -a总能看到这两个名字。硬链接与软链接的差别按最系统的整理是硬链接指向同一份数据本质是给同一个文件起第二个名字不能跨文件系统、一般也不给目录建软链接存的是路径可以跨文件系统、可以指向目录原文件删掉后它就成了断链。这一条讲义没有展开但考卷上很常见。4. 权限与命令九位权限位加命令三段式4.1 三类访问者 × 三种权限Unix/Linux 是典型的多用户系统不同用户处于不同地位对文件和目录有不同的访问权限。为了安全系统除了对用户权限作严格界定还在身份认证、访问控制、传输安全、文件读写权限等方面做了周密的控制。每个文件或目录都包含访问权限这些权限决定了谁能访问、如何访问。访问者分三类所有者也就是创建文件的用户用户组系统管理员可以把某一类或某个项目中的用户归为一个组组内成员共享权限其他用户即系统内除前两类之外的所有人。可以拿社交平台的空间权限作类比这个空间是我的我想怎么访问就怎么访问我可以设置允许好友访问好友就类似用户组也可以对所有人开放所有人就类似其他用户。权限也分三种但对文件和目录的语义完全不同这是全篇最该用表格锁死的地方。权限对文件对目录读 r读取文件内容浏览目录能列出里面的名字写 w新增、修改文件内容删除、移动目录内的文件执行 x执行该文件进入该目录cd 进去注意通常 Unix/Linux 只允许文件的属主或超级用户改变文件的读写权限其他人没这个权力。上表最后一行对目录的 w 是删除、移动目录内的文件要单独标出来它和能不能改文件内容完全是两件事后面的易错点会专门算一次账。4.2 十位字符串逐位拆开读ls -l出来的第一列是十位字符串读法是1 3 3 3。第 1 个字母代表文件类型d文件夹、-普通文件、c硬件字符设备、b硬件块设备、l软链接文件、s管道文件。这里有个记法差异要留意讲义把管道文件记作s而在更常见的标准记法里管道是ps表示套接字。两种写法在教材和试卷里都出现过看到s时不要条件反射结合上下文判断是管道还是套接字更稳妥。后 9 个字母分三组依次是所有者权限、用户组权限、其他用户权限每组内部固定是 r、w、x 的顺序没有某位权限就用-占位。三组乘以三种构成为 9 种权限位组合。以-rwxr-xr--为例第一位-是普通文件第一组rwx是属主可读可写可执行第二组r-x是组内成员可读可执行、不可写第三组r--是其他用户只能读。数字表示法把 r 记 4、w 记 2、x 记 1每组三位相加于是这个文件就是 754。# 755 rwxr-xr-x属主全权限组和其他人只读进入脚本常这么给 chmod 755 run.sh # 644 rw-r--r--属主可读写其他人只读配置文件常这么给 chmod 644 config.ini # 符号法给属主加执行位同时去掉组和其他人的写位逗号分隔多组操作 chmod ux,g-w,o-w run.sh # 改完立刻回读一遍第一位和九位一起确认 ls -l run.shchmod的两套写法要分清数字法是直接赋值三位分别对应 u、g、o写 755 就是一次性定死符号法是增量修改u、g、o、a选对象、-、选动作r、w、x选权限多组之间用逗号隔开。前者适合批量设定后者适合只动一位比如只给属主加执行权限而不碰其他位用符号法更不容易误伤。4.3 命令格式与 man 手册的八个 sectionLinux 命令的格式是command [-options] [parameter1] …。command是命令名通常是相应功能的英文单词或其缩写[-options]是选项用来对命令进行控制可以省略方括号本身就代表可选parameter1 …是传给命令的参数可以是零个、一个或多个。这三段式是所有命令的公共骨架看到不认识的命令先按这三段拆比死记参数快得多。查帮助有两条路。--help一般是命令自带的帮助信息并不是所有命令都自带这个选项所以它靠不住。man是系统提供的手册包含绝大部分命令和函数的使用说明手册分成很多章节。Section内容典型例子1标准命令ls、cp2系统调用open、write3库函数printf、fopen4设备文件的说明/dev 下各种设备5文件格式passwd6游戏和娱乐各类小游戏7杂项、惯例与协定文件系统、网络协定、ASCII 码、environ 全局变量8管理员命令ifconfig用法是man [选项] 命令名。手册页里有一套功能键空格键显示下一屏Enter 键一次滚动一行b回滚一屏f前滚一屏q退出h列出所有功能键/word搜索 word 字符串。为什么要指定章节号因为man是按章节号顺序搜索的。假如命令名和函数名刚好重名比如 printf 既是命令也可以是库函数不指定章节号时man printf只查命令的用法不会查到函数所以查库函数要写man 3 printf查标准命令写man 1 ls。实际使用中不指定章节也能查到大部分内容但一旦查出来的东西看着不像你要的第一反应就该是补章节号。两个使用技巧值得变成肌肉记忆一是自动补全敲出命令的前几个字母后按 Tab 键系统会帮你补全二是历史命令按上下键翻看以前执行过的命令history把执行过的命令列出来。命令数量最少的发行版也有 200 多个靠背是背不完的靠格式 手册 补全才是正路。4.4 ls 参数、通配符与输出重定向ls是 list 的缩写功能是列出目录内容类似 DOS 下的 dir本文还有配套的精品资源点击获取
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。

↑