首页/新闻资讯/正文详情

Unix/Linux入门:内核、发行版、目录树与权限模型

发布时间:2026/11/3 12:11:24 来源:云帆数科 栏目:资讯中心
Unix/Linux入门:内核、发行版、目录树与权限模型
简介《Unix/Linux基础讲义.doc》面向准备入门或系统梳理操作系统知识的开发者、运维学习者与相关课程学生围绕Unix/Linux的定位、发展脉络和核心机制展开适合课堂讲授、自学复习及面试前查漏补缺。压缩包内共1个doc文档整体约13.46MB内容以讲义正文为主目录按概念递进组织便于直接阅读、检索和打印。目前已有326人学习在基础入门场景中具有一定参考价值。讲义从操作系统承上启下的作用讲起梳理Unix家族由MULTICS、UNICS到BSD与System Ⅲ的演进也覆盖Minix、Linux内核、GNU计划、POSIX标准及互联网等关键支柱并延伸到Linux发行版、X Window、两类用户和开发应用领域。读者可据此建立从历史背景到系统结构的整体框架理解多用户、多任务、开放性与可移植性等特性为后续命令操作、环境使用和深入学习打下基础。1. 到底什么是 Unix/Linux一个“总管家”的比喻在电脑上双击一个文档、插上一个 U 盘、按下打印键这几个动作之间隔着一层你看不见的东西——这一层就是操作系统。Unix 与 Linux 就是这一层里渊源最深也最常被一起提起的两个名字。一句话概括Unix 是一套诞生于上世纪七十年代的操作系统设计思路及其商业实现Linux 是按这套思路从零写起、可以自由使用的类 Unix 操作系统。打个比方操作系统像一栋楼的物业住户应用程序不需要知道水管怎么走、电闸装在哪拧开龙头、按下开关就行物业向下管着这些管道电路向上提供固定的动作。Unix 当年把这层职责写得最清楚Linux 则沿用了同一套分工。值得花点时间搞懂它是因为它决定了你以后面对一台服务器时眼里是“一堆黑乎乎的字符”还是“一棵有规则的目录树”。2. 操作系统在忙什么Unix 与 Linux 的两条家族线很多讲 Unix/Linux 的材料一上来就是时间表和人名看完只记得一堆年份。其实那串时间线背后只有两件事一是把一个叫“操作系统”的东西的职责划清楚二是讲明白今天这套东西是从哪条枝干长出来的。把这两件事理顺了后面再看到“内核”“发行版”“GNU”这些词就不会发懵。2.1 操作系统夹在硬件和程序之间的那个“中间人”讲义里给操作系统列了三个目标方便、有效、扩展。方便是让计算机系统易于使用有效是以更有效率的方式使用计算机系统资源扩展是方便用户有效开发、测试和引进新功能。翻成人话就是别让用户直接对着硬件发呆别让处理器和内存闲着浪费还得给后面加装的新东西留出余地。这三个目标决定了它的位置——承上启下。向下它把显卡、磁盘、网卡这些五花八门的硬件封装成统一的动作向上它给应用程序提供一套调用接口。应用程序不用关心硬盘是哪个牌子、数据存在第几个扇区只需要说“把这个文件读出来”。下面这段代码能把这个“中间人”的作用看得很直观#include stdio.h int main(void) { /* 应用层只给出一个路径名不关心数据在哪块盘、哪个扇区 */ FILE *fp fopen(/etc/hostname, r); if (fp NULL) { return 1; /* 打开失败直接返回错误码 */ } char buf[128]; while (fgets(buf, sizeof(buf), fp) ! NULL) { /* 每次读一行最多 127 字节 */ printf(%s, buf); } fclose(fp); /* 关闭句柄把资源还给系统 */ return 0; }这段程序只做了一件事打开一个文本文件逐行打印。但fopen这一行的背后实际发生了好几层事情——C 标准库把请求转给系统调用系统调用进到内核的虚拟文件系统层虚拟文件系统再根据挂载信息找到具体的文件系统文件系统算出数据块位置最后交给块设备驱动去读磁盘。整个过程里写代码的人一句都没提“磁盘型号”“文件系统类型”“数据块编号”这就是“向下封装硬件”的实际含义。参数上也能看出这种抽象/etc/hostname是一个路径字符串不是设备号r表示只读模式buf是接收缓冲区sizeof(buf)限定单次最多读多少字节防止越界。程序不需要知道缓冲区背后对应的是机械硬盘还是固态盘换一台机器照样能跑。“扩展”这个目标则体现在系统的可生长性上。比如内核支持在运行期间加载新的驱动程序模块加一块新网卡、接一个新型号的存储控制器往往不用重新编译整个内核插上去、加载模块、系统就认了。这种“留接口”的设计思路正是 Unix 一脉相承的东西。2.2 Unix 家族从一次失败的计划里长出来Unix 的起点其实不太好听——它诞生于一个失败项目的余波里。1965 年某实验室加入了一项由企业、高校和科研机构合作推进的计划目标是建立一套多使用者、多任务、多层次的系统。想法很宏大但项目本身太复杂最终没能做成。失败之后参与其中的一位主要开发者带着一组人在 1969 年做出了一个新的多任务操作系统最初叫 UNICS后来改名为 Unix。最早的 Unix 是用 B 语言和汇编语言混合编写的。真正让 Unix 命运拐弯的是 1971 年——同一年C 语言被发明出来1973 年Unix 用 C 语言重写了一遍。这一步的意义经常被低估用高级语言写操作系统意味着把它搬到另一种硬件平台上时绝大部分代码不用重写重新编译就行。可移植性这个特性让 Unix 具备了走出实验室的条件。1974 年Unix 第一次出现在实验室以外。此后政府机关、研究机构、企业和高校都注意到了它逐渐流行开来。到了 1980 年市面上形成了两条最主要的版本线一条是来自高校的 BSD Unix另一条是来自原开发方的 Unix。两条线互相竞争后来被称作“Unix 战争”竞争的结局是 Unix 出现了各种各样的变种——每家都基于它改一改再起个自己的名字。1982 年原开发方基于版本 7 开发了 UNIX System III 的第一个商业版本并且不再开源。这之后的故事就有点沉重了1992 到 2001 年因为版权问题双方打了一场将近十年的官司。这十年里Unix 由于费用昂贵基本只局限在大型机上BSD 则因为版权纠纷错过了宝贵的发展窗口期。这里有个容易被忽略的因果链条Unix 越做越强但越做越贵、越做越封闭普通用户根本接触不到。正是这个空档给后来的 Linux 留出了位置。讲义里那句话说得直白——Unix 是一个安全、稳定、功能强大的操作系统但它对运行平台要求高只能在工作站或小型机上才能发挥全部功能价格昂贵对普通用户可望而不可及。2.3 Linux 家族五个支柱和一个没打算做大的人Linux 的起点比 Unix 更“小”小到一开始只是个教学工具。当时有一位教授仿照当时一套主流 Unix 变种的源代码白手起家写了大约 12000 行 C 代码做出一个迷你版类 Unix 系统。这个东西的定位很明确给学生讲课用没有什么实际应用价值。1990 年一位学生决定编写一个自己的迷你系统内核最初名字里带着自己的名字后来改名为 Linux这个内核于 1991 年正式发布并逐渐引起人们的注意。谁也没想到一个从教学工具延伸出来的个人项目后来会长成今天这个样子。讲义里总结得很清楚Linux 操作系统的诞生、发展和成长依赖五个重要支柱——Unix 操作系统、Minix 操作系统、GNU 计划、POSIX 标准和互联网。这五根柱子各管一段缺一根都长不成今天的样子。Unix 提供的是设计范式多用户、多任务、一切皆文件、用目录树组织数据这些思路被完整继承下来。Minix 提供的是可参考的实现样本那个 12000 行的教学系统证明了“一个人也能写出一个能跑的内核”。GNU 计划提供的是软件生态。GNU 是“GNU is Not Unix”的递归缩写1984 年发起目标是开发一个免费、类 Unix 的操作系统以及配套的开发工具。Emacs 编辑系统、BASH shell 程序、GCC 编译器、GDB 调试器都是这个计划的产物。1992 年Linux 与这些 GNU 软件结合一个完全自由的操作系统正式诞生通常被称为 GNU/Linux或者简称 Linux。这也是为什么严格来说“Linux”指的是内核而一套能用的系统里有一大半工具来自 GNU。POSIX 标准提供的是接口一致性。它定义了操作系统应该为应用程序提供什么样的接口标准用来统一 Unix、Linux 各分支的编程接口提高通用型和可移植性。通俗地说它是一份“接口约定”只要你按这份约定写程序换一个符合约定的系统程序大概率不用改就能跑。互联网提供的是协作方式。全世界的修改最终汇总到同一个源码站点由开源社区甄别、修改再决定是否进入主线内核。这种“全球一起改同一份代码”的模式在 Unix 时代是不可想象的。2.4 内核与发行版心脏和外衣别混为一谈初学者最容易卡住的一个点是把“Linux”当成一个整体的操作系统。准确地说Linux 内核只是系统的心脏。内核是运行程序和管理像磁盘、打印机等硬件设备的核心程序它提供了一个在裸设备与应用程序之间的抽象层。所有程序最终都要通过它才能碰到硬件。内核版本分两类形成一种循环稳定版具有工业级强度可以广泛地应用和部署新的稳定版相对于较旧的只是修正一些 bug 或加入一些新的驱动程序开发版要试验各种解决方案所以变化很快。全世界的源码修改最终都会汇总到同一个站点由开源社区甄别后决定是否进入主线。发行版则是内核外面那层“外衣”。Linux 发行版通常包含了桌面环境、办公套件、媒体播放器、数据库等应用软件由 Linux 内核、来自 GNU 计划的大量函式库、以及基于 X Window 的图形界面组合而成。市面上常见的发行版有 Ubuntu、Debian、Fedora、CentOS、openSUSE、Arch、Linux Mint、Mageia、Manjaro、Elementary 等等它们的内核是同一个来源差别主要在软件包管理方式、默认配置和更新节奏。这里有个细节值得单独说X Window 系统是类 Unix 系统的图形用户界面的工业标准但它不是 Unix/Linux 操作系统必需的构成部分只是一个可选的应用程序组件。它采用客户机/服务器结构主要由 X Server 和 X Client 两部分组成实现与操作系统内核是分开的结构上与设备无关。这解释了为什么一台 Linux 服务器可以完全不装图形界面照样跑得很好——图形界面在 Linux 里从来不是“系统本体”只是众多可选组件中的一个。至于应用领域讲义里列了几块服务器是目前应用最多的领域可以提供 Web、FTP、DNS 等服务支持服务器集群和虚拟主机嵌入式 Linux 是把 Linux 裁剪修改后跑在嵌入式计算机系统上支持多种 CPU 和硬件平台性能稳定、裁剪性好桌面应用方面Linux 已经能集成办公、多媒体、网络等多种功能此外在电子政务等领域Linux 也因为安全性上的特点获得了不少发展空间。3. 为什么 Linux 的文件系统只有一棵树路径、目录与 FHS从这一章开始视角从“系统怎么来的”切到“系统长什么样”。第一个要建立的概念是文件系统因为它决定了你敲下每一条命令时机器在哪个位置动手。3.1 一块硬盘一个盘符还是一整棵树只有一个根如果用惯了 Windows打开“计算机”看到的是一个个驱动器盘符每个驱动器都有自己的根目录结构于是形成多个树并列的情形。C 盘一棵树D 盘一棵树插个 U 盘又多一棵树。Linux 下看不到这些盘符看到的是文件夹。这不是因为它没有分区而是因为它采用了另一套组织方式使用单一的根目录结构所有的分区都挂载到单一的“/”目录上。所谓“挂载”可以理解成把一块硬盘、一个分区或者一个 U 盘接到这棵树的某个枝丫上。接上去之后它就成了树的一部分通过目录路径访问而不是通过盘符访问。打个比方Windows 像一条商业街每家店有自己的门牌号彼此并列Linux 像一家公司所有部门都挂在同一套组织架构下面找哪个部门都是“从总部往下走”。这套规矩不是一开始就统一的。早期的 Unix 系统里各个厂家各自定义自己的文件目录比较混乱。Linux 面世不久后对文件目录进行了标准化于 1994 年对根文件目录做了统一规范推出 FHSFilesystem Hierarchy Standard文件系统层次结构标准。这个标准规定了 Linux 根目录下各文件夹的名称及作用统一了命名混乱的局面。这里有一句话值得记住无论何种版本的 Linux 发行版桌面、应用是 Linux 的外衣文件组织、目录结构才是 Linux 的内心。换一个桌面环境你会觉得像换了个系统但只要目录结构还是那套底下的东西一点没变。3.2 绝对路径与相对路径.和..到底指谁在确定文件、目录位置时Unix/Linux 和 DOS 都采用“路径名 文件名”的方式。路径反映的是目录与目录之间的关系。差别首先在分隔符上Unix/Linux 用斜杠“/”来分割各个目录DOS 则用反斜杠“\”。这个差异看起来小实际影响很大——Linux 里“/”是路径分隔符也是根目录的名字一个字符两个身份。路径分两种。绝对路径是从目录树的树根“/”开始往下直至到达文件所经过的所有节点目录下级目录接在上级目录后面用“/”隔开。因为绝对路径都是从“/”开始的所以第一个字符一定是“/”。相对路径指目标目录相对于当前目录的位置。相对路径里有两个特殊目录必须记住“.”指向当前目录“..”指向上一级目录。这两个符号在命令里出现的频率极高不认清它们很多操作会莫名其妙地失败。cd /var/log # 绝对路径从根目录一路走到 /var/log cd ../nginx # 相对路径先退到上一级 /var再进入 nginx ls -l ../.. # 往上两级列出 / 目录下的内容 ls . # 列出当前目录效果等同于 ls第一行的/var/log无论你在哪个位置执行都指向同一个地方第二行则完全依赖你“现在站在哪”站在/var/log下和站在/home下../nginx指向的是两个完全不同的目录。这是相对路径最常见的失误来源——脚本里用相对路径执行时的当前目录一变行为就变了。所以写脚本时更稳妥的做法是用绝对路径或者先用cd明确切到目标目录。还有一点容易忽略目录“.”和“..”不是可有可无的装饰它们是目录文件里真实存在的条目。每个目录文件至少包含两个条目“.”表示该目录本身“..”表示上一级目录。也就是说你在文件系统里看到的这两个点背后是真有对应的记录。3.3 FHS 标准下的目录分工/etc、/var、/proc 各管什么理解了“一棵树”接下来要理解这棵树上的每个枝丫是干什么用的。FHS 把这套分工定死了记住主要几个就够了目录主要用途/根目录一切从这里开始一般只存放目录/bin、/usr/bin可执行二进制文件如ls、tar、mv、cat/sbin、/usr/sbin给系统管理员用的可执行命令如fdisk、shutdown、mount/boot系统启动时用到的文件如内核文件、引导管理器/dev设备文件访问其中某个文件相当于访问某个设备/etc系统配置文件不建议存放可执行文件/home普通用户的家目录~表示当前用户家目录/root系统管理员的家目录/lib、/usr/lib系统使用的函数库/mnt、/media挂载点光盘等常挂在/mnt下/opt额外安装的软件存放位置/proc内存中的数据如系统核心、外部设备、网络状态/tmp临时文件任何人都可访问重要数据不要放这里/srv服务启动后需要访问的数据目录/usr应用程序存放目录含/usr/local、/usr/share/doc等/var经常变化的文件如日志/var/log、邮件/var/spool/mail/lostfound系统异常时存放找回的遗失片段这张表不用背但有三类目录值得单独理解。/etc是配置中心。系统怎么启动、网络怎么配、服务监听哪个端口答案基本都在这个目录里。这也是为什么改配置前先备份是个好习惯——/etc里改错一行可能整个服务起不来而且这类问题往往没有明显报错只能靠比对配置文件排查。/var是变化中心。日志文件随时在写邮件队列随时在变进程号文件随服务启动而生成。判断一台机器“最近发生了什么”第一站通常就是/var/log判断磁盘为什么突然满了第一嫌疑也常常是这里。/proc最特殊——这个目录的数据都在内存中如系统核心、外部设备、网络状态由于数据都存放于内存中所以不占用磁盘空间。里面有/proc/cpuinfo处理器信息、/proc/interrupts中断、/proc/net/*网络状态等。它的存在恰好印证了下一章要讲的“一切皆文件”连内核的运行状态都被包装成了可以被读取的文件。4. “一切皆文件”是什么意思五种文件类型与 rwx 权限“一切皆文件”是 Unix/Linux 里被引用最多、也被误解最多的一句话。它不是一句哲学口号而是一个非常具体的设计决定直接决定了你敲命令时看到的东西长什么样。4.1 把设备、管道、网络都抽象成文件Unix/Linux 对数据文件、程序文件、设备文件显示器、触摸屏、鼠标、网络文件socket等的管理都抽象为文件使用统一的方式方法管理。这句话的含金量在于“统一”两个字。设想一下如果读一个普通文件要用一套接口读键盘要用另一套往屏幕写又要用第三套那么每加一种设备就得学一套新 API程序也得为每种设备写一遍。而抽象成文件之后打开是打开文件读是读文件写是写文件关是关闭文件——同一套动作能用在磁盘、终端、管道、网络连接上。打个比方这就像把所有电器插头统一成一种规格不管后面接的是台灯、冰箱还是充电器你只需要会“插”这一个动作。好处是复利式的一套接口意味着只需要一套权限模型一套权限模型意味着只需要一套管理工具。cat能读文本文件也能读设备重定向能把命令输出写进文件也能写进另一个程序。这些能力之所以能通用全靠底层这个抽象。但要注意抽象成文件不等于没有类型区分。Unix/Linux 里同样要区分文件属于可执行文件、文本文件还是数据文件因为执行一个文件和处理一段文本系统要做的事完全不同。4.2 五种文件类型普通、目录、设备、管道、链接常用的文件类型有五种看ls -l输出的第一个字符就能分辨。普通文件是用于存放数据、程序等信息的文件一般长期存放于外存储器中包括文本文件、数据文件、可执行的二进制程序文件等。可以用file命令查看类型后面跟文件名就查看指定文件跟通配符“*”就查看当前目录下所有文件的类型。目录文件是把目录本身也当成一种特殊文件利用它构成文件系统的树型结构。目录文件只允许系统管理员修改用户进程可以读取但不能修改。前面提到的“.”和“..”就是目录文件里固定的两个条目。设备文件是把每个设备都映射成一个文件用于向 I/O 设备提供连接分为字符设备和块设备。字符设备的存取以一个字符为单位块设备的存取以字符块为单位。每一种 I/O 设备对应一个设备文件存放在/dev目录中。管道文件多用于进程间的通信。它的特点是数据流过去就没了不落在磁盘上——这也是为什么两个命令用管道接起来时中间的临时结果不会占空间。链接文件类似于 Windows 下的快捷方式又可以分为软链接符号链接和硬链接。软链接是指向另一个文件路径的“指针”原文件删了它就成了断链硬链接则是指向同一份数据的另一个名字删掉其中一个名字数据还在。file /etc/passwd /bin/ls /dev/null ls -l /etc/passwd第一行分别查看一个配置文件、一个可执行程序、一个设备文件的类型输出会明确告诉你哪个是 ASCII 文本、哪个是 ELF 可执行文件、哪个是字符设备。第二行则用来观察权限位的排布下一节展开。还有一点需要专门提醒Unix/Linux 系统中文件可以没有扩展名。这一点和 Windows 差别很大。在 Linux 里扩展名更多是给人看的约定真正决定“这是什么文件”的是文件内容本身和文件类型。把.mp3改成.txt它不会因此变成文本反过来一个没有任何扩展名的文件照样可以被识别成可执行程序。4.3 权限三组九位rwx 和 ugo 的关系文件权限就是文件的访问控制权限即哪些用户和组群可以访问文件以及可以执行什么样的操作。Unix/Linux 是典型的多用户系统不同用户处于不同地位对文件和目录有不同的访问权限。先看访问者分三类。所有者就是创建文件的用户用户可以允许所在的用户组访问自己的文件用户组就是把某一类或某一项目中的所有用户归为一个组一个用户可以授予同组其他成员访问权限其他用户就是系统内除前两者之外的所有人。讲义里用 QQ 空间做了个很贴切的类比空间是我的我是所有者想怎么访问就怎么访问可以设置允许好友访问好友相当于用户组也可以允许所有人访问所有人相当于其他用户。再看权限分三种。读权限 r对文件而言是读取内容的权限对目录而言是浏览目录的权限。写权限 w对文件而言是新增、修改内容的权限对目录而言是删除、移动目录内文件的权限。可执行权限 x对文件而言是执行文件的权限对目录而言是进入目录的权限。这九个字母在ls -l的输出里排成一串位置固定$ ls -l /etc/passwd -rw-r--r-- 1 root root 2841 Mar 1 10:00 /etc/passwd第一个字符是文件类型d代表文件夹-代表普通文件c代表硬件字符设备b代表硬件块设备s表示管道文件l代表软链接文件。这里第一位是-所以它是普通文件。后面 9 个字母分成三组依次对应所有者、用户组、其他用户。上例中rw-表示所有者可读可写不可执行r--表示同组用户只读r--表示其他人也只读。三组各三位9 种组合构成了完整的权限描述。这三组权限对文件和目录的含义并不相同这是最容易出错的地方权限对文件对目录r读取文件内容浏览目录内的条目w新增、修改文件内容删除、移动目录内的文件x执行该文件进入该目录通俗地说r 是 4、w 是 2、x 是 1三位相加就是这一组权限的数字表示。rw-是 6r--是 4rwx是 7。所以chmod 644的意思是所有者可读可写、同组只读、其他人只读chmod 755的意思是所有者全权限、其他人可读可执行。这套数字记法在改权限时比敲九个字母快得多。还有一条规则要记住通常Unix/Linux 系统只允许文件的属主所有者或超级用户改变文件的读写权限。普通用户改不了别人的文件权限这不是设计缺陷而是多用户系统的基本前提。5. 常见误区五个最容易混淆的 Unix/Linux 概念有些概念单独看都懂凑在一起就乱。下面这五组是初学者最容易踩的坑每组都按“混在哪、为什么会混、怎么区分”来说。5.1 误区一Linux 是 Unix 的升级版易混点既然名字总是并排出现很多人默认 Linux 是 Unix 的后续版本就像某个软件的 1.0 和 2.0。为什么会混两者共享同一套设计思路——多用户、多任务、目录树、一切皆文件操作命令也高度相似。用惯了 Unix 的人切换到 Linux几乎不用重新学。怎么区分它们是两条独立的家族线不是版本前后关系。Unix 起源于上世纪六十年代末的商业和研究环境后来出现了多个商业版本价格昂贵主要跑在大型机和小型机上。Linux 是九十年代初从零写起的一个类 Unix 内核代码独立可以自由使用。准确的说法是“Linux 是类 Unix 操作系统”就像“某款车是同级别参考车型的竞品”不是“同一款车的下一代”。讲义里那句话是准确的Linux 是免费的、不受版权制约、与 Unix 兼容的操作系统。5.2 误区二Linux 就是一个操作系统易混点说“我装了个 Linux”听起来像是装了一个完整的东西。为什么会混日常口语里Linux 这个词被用来指代整个系统久而久之大家就忘了它原本指什么。怎么区分Linux 严格来说是一个内核是系统的心脏负责运行程序和管理硬件设备。你实际用到的桌面、浏览器、包管理器、办公套件大部分来自 GNU 计划和其他开源项目。内核加这些外围软件组合起来才叫发行版。所以问“你用的什么 Linux”时更准确的回答是发行版名字比如 Ubuntu、Debian、CentOS而不是笼统的“Linux”。这也解释了为什么同一个内核能撑起从服务器到嵌入式设备的各种形态——外衣可以完全不一样。5.3 误区三有扩展名才知道是什么文件易混点习惯 Windows 的人默认“扩展名 文件类型”看到一个没有后缀的文件就不知道该怎么办。为什么会混Windows 靠扩展名决定用哪个程序打开双击.docx就打开文字处理软件这个习惯太深了。怎么区分Unix/Linux 系统里文件可以没有扩展名真正的类型信息在文件内容里用file命令查看才准确。扩展名在这里更多是给人看的标记方便人快速识别系统本身并不依赖它。把一张图片改名成.txt它还是图片把一个脚本去掉后缀加个可执行权限照样能跑。反过来说光看后缀也可能被骗——一个叫backup.tar.gz的文件如果其实是个文本file一查就露馅。这一点和下一章的权限合起来看更清楚决定“能不能执行”的是 x 权限不是文件名。5.4 误区四目录的 r 权限和 x 权限是一回事易混点既然 r 是“读”、x 是“执行”那在目录上读权限应该就够用了吧为什么会混文件和目录共用同一套 rwx 符号很容易想当然地套用文件上的理解。怎么区分在目录上这两个权限管的是完全不同的事。r 让你能浏览目录里有哪些条目也就是ls能看到文件名x 让你能进入这个目录也就是能cd进去或者访问目录里的具体文件。只有 r 没有 x你能看到文件名列表但打不开里面任何一个文件只有 x 没有 r你进得去但列不出里面有什么只能直接访问你知道名字的文件。所以一个常见现象是某个目录ls报“权限不够”但直接cat里面某个已知路径的文件却成功了——这就是只给了 x 没给 r。顺带说一个更反直觉的点目录的 w 权限控制的是“删除、移动目录内的文件”而不是“修改文件内容”。所以一个用户即使对某文件没有写权限只要他对该文件所在的目录有写权限理论上仍能删掉它。这也是为什么共享目录的权限设置要格外小心。5.5 误区五/和/root是同一个地方易混点两个都带 root 字样看起来像是同一个目录的两种写法。为什么会混/叫根目录/root又叫 root 的家目录中文里都带“根”的意思。怎么区分/是整棵目录树的起点是所有路径的开头根目录下一般只存放目录所有东西都从这里开始。/root只是根目录下的一个子目录是系统管理员这个用户的家目录。普通用户的家目录在/home/用户名下管理员的家目录被单独放在/root位置特殊但性质相同。两者的关系是“包含”而不是“等同”。类似的混淆还有/home和~~是当前用户家目录的简写对普通用户来说通常等于/home/用户名对管理员来说则等于/root。6. 什么时候该用 Unix/Linux判断边界与一次踩坑概念讲完最后落到判断上。Unix/Linux 不是万能答案它适合的场景和别扭的场景都很明确。场景是否适合原因长期运行的服务器适合多用户多任务、稳定、资源占用可控命令行便于远程批量操作嵌入式设备适合可裁剪支持多种 CPU 和硬件平台裁剪性好需要大量自动化脚本的环境适合命令行工具链完整管道、重定向、通配符组合灵活图形设计、视频剪辑为主的桌面不太适合主流专业软件生态仍集中在另一套系统上替代方案存在但迁移成本高只用来上网和办公、不愿学命令行的场景不太适合虽然桌面环境已经可用但遇到问题时的排查手段仍以命令行为主需要跑特定商业软件的环境看情况先确认该软件有没有对应平台的版本别想当然判断的核心其实就一句你要的是“长时间稳定地做同一件事”还是“开箱即用地点点点”。前者选它后者未必。我自己的习惯是接触任何一台新机器先在三个地方转一圈/etc看配置怎么写的/var/log看最近出过什么事/home看有哪些人在用。这三步走完机器的脾气基本就有数了。有一次我在/tmp下放了一个需要长期保留的中间文件觉得反正也没人动它——结果系统按规则清理了临时目录文件没了前面的活儿全白干。从那以后我每次往/tmp写东西之前都会停一下问自己一句这东西丢了要不要紧要紧就换个地方。/tmp那条“重要数据不可放置在此目录下”的说明不是写着好看的。如果你想把上面这些概念一次理顺——从 Unix 与 Linux 的家族关系、内核与发行版的分工到目录结构、五种文件类型、三组九位权限再到常用命令的格式与帮助文档的查法——这份《Unix/Linux基础讲义》把这些内容按章节组织好了适合当作入门阶段的一本随身手册遇到记不清的地方翻一翻就能对上号。希望帮到你。本文还有配套的精品资源点击获取

相关推荐

深入理解进程同步:原理、实现与经典问题解析
深入理解进程同步:原理、实现与经典问题解析

1. 进程同步实验概述 在操作系统的世界里,进程同步就像交通信号灯对于城市道路的作用。当多个进程需要共享资源或协作完成某项任务时,如何避免"撞车"(数据竞争)和"堵车"(死锁)就成了关… · 2026/11/3 12:11:24

深入理解 Tensor.unfold:滑窗视图、重叠推理与内存边界
深入理解 Tensor.unfold:滑窗视图、重叠推理与内存边界

1. 从一次 OOM 说起:unfold 返回的到底是什么前阵子帮朋友看一段滑窗推理的代码,模型本身不大,显存却直接顶到 40G 然后崩了。他把图像切成 512512 的窗口,重叠 128,总共也就几百个窗口,按理说不至于。扒了… · 2026/11/3 12:11:24

安卓Hook企业微信:消息聚合与机器人自动回复实战
安卓Hook企业微信:消息聚合与机器人自动回复实战

1. 项目缘起与整体架构拆解1.1 为什么要在安卓端做企业微信机器人企业微信本身提供了完善的服务端API,官方机器人、群机器人、会话存档接口都能覆盖大部分自动化需求。但实际落地时会撞上几堵墙:会话存档需要企业认证且按人数收费,群机器人只… · 2026/11/3 12:10:23

Model-Optimizer不是工具,而是模型部署的工程方法论
Model-Optimizer不是工具,而是模型部署的工程方法论

1. “Model-Optimizer”不是工具名,而是工程共识的具象化表达你搜“Model-Optimizer”,首页跳出来的全是TensorRT、vLLM、TensorRT-LLM这些词——但它们没有一个叫“Model-Optimizer”。这恰恰是问题的关键:业内根本不存在一个叫这个名字的独… · 2026/11/3 12:51:20

MySQL性能优化实战:从参数配置到架构设计
MySQL性能优化实战:从参数配置到架构设计

1. MySQL优化核心思路解析十年前我刚接触MySQL时,曾经天真地以为数据库性能只和硬件配置有关。直到某次线上事故让我彻底改变了认知——当时我们价值百万的服务器跑着简单的查询却频繁超时,而隔壁团队用着老旧设备反而流畅运行。这段经历让我明白&#x… · 2026/11/3 12:51:20

三维设计软件协同工作解决方案与实施指南
三维设计软件协同工作解决方案与实施指南

1. 机电设备工厂三维设计软件的多人协作痛点 在机电设备制造行业,三维设计软件如SolidWorks和UG(现称NX)是产品研发的核心工具。传统工作模式下,每位工程师都在本地计算机上安装独立的设计软件,通过文件服务器或U盘传递… · 2026/11/3 12:51:20

本地语音转文字实战:Buzz+Whisper从安装到高效使用指南
本地语音转文字实战:Buzz+Whisper从安装到高效使用指南

如果你是做内容创作、访谈记录或者经常要面对会议录音的人,一定体会过"录音一时爽,整理火葬场"的感觉。手机备忘录里的录音堆了一堆,真要整理的时候发现传统输入法的语音转写撑死几分钟就断,在线工具传完音频又担心隐私… · 2026/11/3 12:51:20

列式存储技术解析:原理、优势与应用场景
列式存储技术解析:原理、优势与应用场景

1. 为什么列式存储是大数据工程师的必修课 第一次接触Parquet文件时,我被它的查询速度震惊了——同样的10亿条用户行为数据,相比传统的CSV格式,查询响应时间从分钟级降到了秒级。这正是列式存储在OLAP场景下的魔力所在。 在传统行式存储中&a… · 2026/11/3 12:51:20

Cisco Packet Tracer设备图标演进与工业网络设备解析
Cisco Packet Tracer设备图标演进与工业网络设备解析

1. Cisco Packet Tracer 设备类型与版本演进 Cisco Packet Tracer作为网络工程师的虚拟实验室,其设备库的迭代直接反映了网络技术的发展脉络。5.0版本发布于2012年前后,恰是传统企业网络架构的成熟期,而2022年推出的9.0版本则融入了物联网、工… · 2026/11/3 12:50:18

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 13:10:28

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 6:04:24

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 5:52:46

STM32F411RE与MAX14431实现SPI隔离:工业现场抗共模干扰实战
STM32F411RE与MAX14431实现SPI隔离:工业现场抗共模干扰实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59

ESP32+大模型AI硬件开发:从Demo到产品的8个工程问题
ESP32+大模型AI硬件开发:从Demo到产品的8个工程问题

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59

基于MAX14431BAEE+与PIC18F85J10的SPI隔离方案设计与实践
基于MAX14431BAEE+与PIC18F85J10的SPI隔离方案设计与实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 13:10:28

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 6:04:24

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 5:52:46

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码