自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(82)
  • 收藏
  • 关注

原创 个人博客声明

这里,是我学习的痕迹,也是我们共同成长的空间,希望通过这个博客与更多志同道合的朋友们一起学习和进步。知识的分享应当建立在尊重与理解之上,如果我的博客中无意间使用了你的原创内容或者您发现博客中有任何内容侵犯了您的权益,我重视知识产权和版权保护问题,收到通知后我会在第一时间进行删除或修正。在这个博客里,我将不定期分享我在学习过程中遇到的各种有趣的技术点、代码片段、图片资料以及有价值的文档。

2024-07-03 19:45:38 622 22

原创 042 生产者 - 消费者模型

本文介绍了生产者-消费者模型(CP问题),这是并发编程中的经典问题。该模型通过缓冲区作为中介,解耦生产者和消费者之间的直接依赖,提高系统的可扩展性和灵活性。文章通过"供货商-超市-消费者"的类比,解释了"3种关系、2种角色、1个交易场所"的"321原则",并提供了基于BlockingQueue的C++代码实现,展示了如何通过互斥锁和条件变量实现线程安全的同步机制。该模型适用于需要平衡生产速度和消费速度的场景,如消息队列、任务调度等。

2025-09-24 18:00:00 628

原创 041 深入理解线程间同步与互斥

线程访问共享资源,实现线程互斥。本文介绍了线程互斥的概念、临界资源与临界区的区别,并通过一个多线程抢票的示例程序展示了线程安全问题。当多个线程同时访问共享变量tickets时,由于缺乏同步机制,导致票数出现负数等数据不一致问题。文章进一步解释了互斥量和互斥锁的关系,强调需要用锁机制保护临界区代码,确保同一时间只有一个线程执行关键操作。通过合理使用互斥锁,可以避免数据竞争,保证多线程程序的正确性。(146字)

2025-09-24 08:00:00 983

原创 040 线程控制

线程控制主要涉及POSIX线程库(pthread)的使用,包括线程创建、标识和调度。pthread是Unix系统下的标准化多线程编程接口,提供线程创建、管理和同步功能。线程通过pthread_create创建,由pthread_t唯一标识。线程调度单位是内核的轻量级进程(LWP),与用户态线程一一对应。监控线程可使用ps -AL等命令查看。此外,clone()系统调用是更底层的线程创建方式,但不推荐直接使用。

2025-09-23 17:00:00 1849

原创 039 线程概念

本文介绍了线程的概念及其与进程的关系,从执行粒度、定义、Linux实现方式等方面进行了详细阐述。线程是操作系统调度的最小执行单位,在Linux中通过轻量级进程(LWP)实现,共享进程资源但拥有独立栈和寄存器。文章对比了进程与线程的差异,包括独立性、资源占用、调度开销等关键特征。同时,解释了页表作为虚拟地址与物理地址映射的关键数据结构,说明了页面、页框等核心概念。通过类比和图示,帮助理解线程如何在进程内部运行以及CPU调度执行流的本质。

2025-09-23 08:00:00 1418

原创 038 进程信号 —— 信号的处理

进程信号处理机制 进程信号处理涉及内核空间与用户空间的协作。每个进程的地址空间分为用户空间和内核空间,通过页表映射管理。内核通过中断机制实现信号捕捉,在进程从内核态返回用户态时检查并处理未决信号。信号处理方式包括默认、忽略和自定义函数三种。对于自定义处理函数,内核会伪造用户态调用栈来执行handler,确保安全隔离。sigaction()函数是更安全可靠的信号注册方式,可替代传统的signal()函数。信号处理本质是内核精心安排的"用户态函数调用+内核态恢复"过程,实现了权限隔离和稳定控

2025-09-22 17:00:00 1715

原创 037 进程信号 —— 信号的保存

进程信号保存机制解析 本文详细介绍了Linux系统中进程信号的保存机制。主要内容包括: 信号相关概念:解释了信号产生、未决、阻塞、递达和处理等关键概念的区别与联系,通过通俗类比帮助理解。 信号处理模型三大组成: Block位图:记录被阻塞的信号 Pending位图:记录已产生但未处理的信号 Handler指针数组:存储信号处理函数 sigset_t类型:作为信号集合的底层实现,采用位图结构表示信号状态,是信号操作的基础数据结构。 信号集操作函数:详细讲解了sigemptyset、sigfillset、sig

2025-09-22 06:00:00 928

原创 036 进程信号 —— 信号的产生

摘要 本文系统介绍了Linux进程信号的概念与应用。信号是Linux系统中的异步通知机制,用于告知进程发生特定事件(如SIGINT、SIGTERM等)。信号处理方式包括默认处理、忽略和自定义处理函数。文章重点解析了Ctrl+C终止前台进程的原理:终端驱动检测到组合键后,内核向前台进程组发送SIGINT信号(2号信号)。通过signal()函数可以设置信号处理方式,其参数包括信号编号和处理函数指针,但需注意SIGKILL和SIGSTOP信号不能被捕获或忽略。该机制实现了进程间异步通信,是Linux系统重要的进

2025-08-29 18:00:00 642

原创 035 System V 消息队列和信号量(了解)

System V 消息队列是 Linux 下的一种进程间通信机制,允许不同进程以消息为单位交换数据。其核心特性包括:1)内核维护消息队列,消息由类型标签(mtype)和可变长数据(mtext)组成;2)支持先进先出(FIFO)和按类型选择性读取;3)生命周期独立于创建进程,需显式删除。文章详细解析了消息队列的原理、柔性数组(FAM)在消息结构中的应用,以及关键系统调用(msgget/msgsnd/msgrcv)的使用方法。特别指出消息队列与管道的区别在于支持类型过滤分发,并通过内核缓冲区实现异步通信。

2025-08-29 12:00:00 1051

原创 034 进程间通信 —— System V 共享内存

摘要:System V共享内存通信原理与实现 本文系统介绍了System V共享内存的通信机制与技术实现。首先分析了共享内存相比消息队列和信号量的性能优势(零拷贝、直接内存访问),指出其作为现代IPC首选方案的原因。然后详细阐述了共享内存的核心原理:通过内核分配的物理内存区域与多进程虚拟地址空间映射,实现进程间高效数据共享。 文章重点解析了三个关键系统调用:1) ftok函数生成唯一IPC键值;2) shmget创建/获取共享内存段;3) shmat将共享内存挂接到进程地址空间。其中特别强调了"挂

2025-08-29 05:00:00 1181

原创 033 日志

日志系统摘要 日志等级是软件开发中重要的调试和管理工具。通过划分不同优先级(如Fatal/Error/Warning/Debug/Info),可以: 快速定位关键问题 按环境灵活控制日志量(开发环境保留Debug,生产环境仅Error以上) 结构化日志条目包含时间戳、等级、内容等必备字段 Linux系统遵循syslog标准定义8个等级(0-7),数值越小越紧急。实际开发中常用5个核心等级:Fatal(致命)、Error(严重)、Warning(警告)、Info(常规)、Debug(调试)。 文中的C++实现

2025-08-28 18:00:00 759

原创 032 进程间通信 —— 有名管道篇

摘要: 本文介绍了Linux进程间通信中的有名管道(FIFO)机制。有名管道是一种存在于文件系统中的特殊文件,支持无亲缘关系进程间的数据通信。与匿名管道相比,FIFO具有文件路径、支持多进程通信等特点。文章详细讲解了mkfifo()创建管道、unlink()删除管道的使用方法,并对比了系统调用与rm命令的区别。通过一个服务端-客户端模型Demo展示了FIFO的实际应用:服务端初始化管道并以只读方式打开,客户端以只写方式打开并发送消息。FIFO数据存放在内存缓冲区而非磁盘,文件大小始终显示为0。文中还包含权限

2025-08-28 13:30:00 1446

原创 031 进程间通信 —— 匿名管道篇

摘要: 本文介绍了进程间通信的匿名管道机制。管道是内核维护的缓冲区,通过文件描述符实现读写操作,适用于父子进程通信。文章解析了管道底层原理(环形缓冲区)和pipe()系统调用的使用,并通过示例代码演示父子进程间的数据传输。关键点包括:管道创建(pipefd[0]读端、pipefd[1]写端)、描述符分配规则、进程间单向通信实现(子进程写/父进程读),以及资源释放的注意事项。通过实验验证了管道的阻塞特性和文件描述符管理逻辑。 (字数:149)

2025-08-28 10:00:00 1378

原创 030 进程间通信前言

进程间通信摘要(150字) 进程间通信(IPC)旨在实现进程间的数据传递、同步与资源共享。通信需通过操作系统提供的公共资源(如管道、共享内存等),由系统调用统一管理,避免进程直接交互破坏隔离性。主流方式包括:管道(父子进程)、共享内存(高性能)、消息队列(异步)、Socket(跨主机)等。System V标准接口复杂,POSIX更现代。IPC本质是内核管理的共享资源访问,确保多进程协作安全高效。后续将深入讲解管道、共享内存等核心机制。(共149字)

2025-08-27 18:00:00 596

原创 029 VS Code 连接 Linux 服务器全流程解析

本文详细介绍了使用VS Code连接Linux服务器的全流程。首先安装Remote-SSH插件并添加远端主机配置,通过SSH协议登录服务器。针对连接失败问题,提供了三种解决方案:配置正确的Config文件路径、使用低版本VS Code(推荐1.85.1版本)、升级远程主机的glibc和libstdc++版本(需谨慎操作)。连接成功后建议仅打开必要的工作目录以避免资源占用过高,并介绍了远程开发必备的插件安装方法。最后补充了G++编译器的安装步骤和开发工具组的配置建议。通过VS Code远程开发,既能享受本地I

2025-08-27 10:00:00 780

原创 028 动静态库 —— 动态库

本文介绍了Linux动态库(.so)的制作与使用。首先详细讲解了动态库制作流程:编写头文件声明接口、实现源文件并编译为位置无关码(-fPIC)、链接生成.so文件(-shared)。通过一个数学库demo演示了从代码编写到生成动态库的全过程,包括测试程序的编译与运行注意事项。文中特别强调了-fPIC的作用,解释了位置无关码对动态库共享机制的重要性。最后对比了静态库与动态库的特性差异,并剖析了动态库加载原理——通过内存映射机制实现多进程共享同一份代码。文章还提供了解决动态库加载失败的常见方法,如设置LD_LI

2025-08-16 16:13:49 991

原创 027 动静态库 —— 静态库

本文介绍了Linux系统中动静态库的基本概念和制作方法,重点聚焦于静态库的实现原理与实战应用。文章首先从操作系统层面解析了文件打开的核心机制,包括4KB页缓存原理、局部性优化和内存管理架构。随后详细演示了静态库的制作流程: 通过gcc编译生成目标文件(.o) 使用ar工具打包成静态库(.a) 组织标准的库文件目录结构 文中提供了完整的静态库开发示例,包含: 头文件设计(接口声明) 源文件实现(四则运算函数) 全局错误码处理机制 Makefile自动化构建脚本 最后解释了静态库与动态库的本质区别,以及如何在实

2025-08-16 16:10:27 699

原创 026 inode 与软硬链接

摘要:Linux inode 与软硬链接解析 本文深入探讨了 Linux 系统中 inode 与软硬链接的核心机制。 软链接(符号链接)本质是存储目标路径的快捷方式,具有独立 inode,支持跨分区和目录引用,但源文件删除会导致链接断裂。其典型应用包括环境配置切换和多版本管理。 硬链接则是通过不同文件名共享同一 inode,不能跨分区或用于目录,删除任一链接不影响数据,仅当链接计数归零才会释放存储。 关键对比: 软链接以路径引用,硬链接直接绑定 inode 内核禁止目录硬链接以防止循环结构,而 . 和 ..

2025-08-16 16:05:32 892

原创 025 理解文件系统

这篇文章主要介绍了磁盘和文件系统的基本概念与工作原理。首先通过多个视频和文章链接讲解了磁盘和磁带的结构、存储原理以及机械硬盘的工作方式。随后引用《操作系统概念精要》和《鸟哥的Linux私房菜》的内容,详细说明磁盘的物理组成(盘片、磁头、扇区等)、分区表类型(MBR和GPT)以及文件系统的特性。重点阐述了文件系统中超级区块、inode和数据区块的作用:超级区块记录整体信息,inode存储文件属性和数据块位置,数据区块保存实际文件内容。这种设计通过inode快速定位数据块,提高了文件读写效率。文章还提到现代分区

2025-08-16 15:58:20 978 1

原创 024 基础 IO —— 缓冲区

本文探讨了缓冲区的核心作用及其实现原理。缓冲区通过将多次小数据操作聚集成大数据块统一输出,减少系统调用次数,提高I/O效率。C语言标准库提供三种缓冲模式:无缓冲(如stderr)、行缓冲(如stdout)和全缓冲(如文件流),分别适用于不同场景。缓冲区刷新时机包括遇到换行符、缓冲区满、手动调用fflush或程序退出时。缓冲区位于用户态内存,由标准库维护,而内核还提供系统级缓冲区进一步优化I/O性能。现代编程语言通过流式封装(如C++的iostream)隐藏了缓冲区管理细节,使开发者能专注于业务逻辑。缓冲区与

2025-08-16 15:34:43 871

原创 023 基础 IO —— 重定向

摘要 本文详细介绍了Linux中的重定向机制及其实现原理。重定向本质是通过修改文件描述符(FD)指向,改变标准输入/输出/错误流的默认终端目标。文章解析了常见重定向符号(>、>>、<)的作用,并重点讲解了dup2系统调用的用法,通过代码示例演示了如何将printf输出重定向到文件。此外,还展示了重定向在minishell中的实际应用场景,为理解Linux I/O重定向提供了实践指导。文章内容涵盖文件描述符操作、系统调用实现原理和实际应用案例。

2025-08-16 15:31:31 963

原创 022 基础 IO —— 文件

本文介绍了C语言文件I/O操作的基础知识,重点讲解了文件的基本概念、两种状态(打开和未打开)以及操作系统如何管理打开的文件。文章详细汇总了C语言常用的文件操作函数,包括文件打开与关闭(fopen、fclose)、字符与字符串读写(fputc、fgets等)、格式化读写(fprintf、fscanf)、二进制文件读写(fwrite、fread)以及文件定位与状态函数(fseek、ftell等)。通过函数表格形式展示了参数、返回值、功能描述和注意事项,为开发者提供了实用的文件操作参考。

2025-08-16 15:26:27 1055

原创 021 多语言协同执行(了解)

本文介绍了在Linux系统编程中如何使用fork()和exec()函数实现跨语言程序调用。fork()创建子进程后,通过exec()执行外部程序,保持进程ID不变但替换映像。文中提供了C程序调用Python脚本和C++程序的具体示例,展示了多语言协同执行的过程。常见问题包括路径错误和忘记等待子进程等。该方法灵活性强,可用于构建脚本执行平台或任务处理器,实现不同语言程序间的调度与控制。

2025-07-14 19:28:24 809

原创 020 实现一个简易 Shell

本文介绍了如何从零实现一个简易的Shell,主要包括以下内容: Shell的基本功能:包括提示符显示、命令读取与解析、内置命令执行、重定向支持、环境变量管理和退出机制。 关键实现步骤: 使用getenv()和getcwd()获取用户信息和工作目录 通过strtok分割命令行参数 区分内置命令(cd/export/echo)和外部命令 使用fork+execvp执行外部程序 增强ls命令自动添加颜色选项 技术要点: 提示符格式化为[user@host dir]# 内置命令直接处理不需fork 环境变量通过pu

2025-07-14 19:26:33 444

原创 019 进程控制 —— 进程程序替换

进程程序替换解析 进程程序替换是指利用系统调用将当前进程的代码和数据替换为新程序内容,保持原进程PID不变。关键点包括: 替换后原进程代码立即终止,从新程序main开始执行 文件描述符默认关闭(除非标记FD_CLOEXEC) 常用exec函数族: execl:参数列表方式,需指定绝对路径 execv:参数数组方式 execlp/execvp:自动搜索PATH环境变量 execle/execve:可自定义环境变量 典型应用模式: 单进程替换:直接调用exec函数 多进程替换:fork子进程后执行替换,不影响父

2025-07-14 19:16:29 754

原创 018 进程控制 —— 进程等待

进程等待的必要性与方法 进程等待是父进程回收子进程资源、获取子进程退出状态的关键机制。若不等待会导致: 僵尸进程累积,占用系统资源 无法获取子进程执行结果 常用方法: wait():阻塞等待任意子进程 waitpid():可指定PID,支持非阻塞模式(WNOHANG) 关键要点: 通过status参数解析退出状态(正常/异常) WNOHANG选项实现非阻塞轮询 使用宏(WIFEXITED/WEXITSTATUS)解析状态码 实验示例展示了两种等待方式的应用场景和返回值处理。

2025-07-14 19:11:29 983

原创 017 进程控制 —— 终止进程

进程控制与终止摘要 进程终止分为正常退出和异常退出两大类。正常退出包括代码执行完毕(结果正确/不正确)和主动调用退出函数;异常退出则包括收到终止信号或出现错误(如段错误)。进程通过退出码向操作系统报告状态:0表示成功,非0值表示错误类型。 关键退出方法: exit():执行清理操作后退出 _exit():立即终止,不做清理 return:从main函数返回退出码 系统通过errno记录错误码,strerror()可将其转换为错误信息。信号终止的进程退出码为128+信号编号。理解进程退出机制有助于调试和系统编

2025-07-14 19:06:27 611

原创 016 进程控制 —— 进程创建

本文介绍了Linux进程控制中的fork()函数及其应用。主要内容包括: fork()的基础用法:创建子进程,父子进程共享代码段,采用写时拷贝(COW)机制共享数据段,修改时才会真正复制。 代码示例: 基础fork()使用展示父子进程执行流程 循环创建多个子进程的实现方法 父子进程的资源共享与独立性 常见问题: fork()失败原因分析 避免子进程成为僵尸进程的方法 父子进程共享的资源说明 进阶用法: 父子进程分工协作 链式创建进程 文章通过代码示例和运行结果,直观展示了fork()的工作原理和实际应用场景

2025-07-14 19:02:01 872

原创 015 程序地址空间入门

程序地址空间摘要 程序地址空间是操作系统为每个程序分配的内存区域,包含多个功能不同的段: 内核空间(0xC0000000以上):操作系统专用,用户程序无法访问。 栈区:存放函数调用信息、局部变量,向低地址增长。 堆区:动态分配内存,向高地址增长。 数据段:存放已初始化全局/静态变量。 BSS段:存放未初始化全局/静态变量,自动初始化为0。 代码段:存放程序指令,具有只读属性。 内存映射段:包含共享库、文件映射等。 关键特点: 32位系统用户空间3GB,64位系统可达128TB 栈和堆增长方向相反,中间有保护

2025-07-14 18:42:46 733

原创 014 Linux 2.6内核进程调度队列(了解)

Linux 2.6内核的O(1)调度器解析 Linux 2.6内核引入的O(1)调度器通过多级优先级队列实现高效进程调度。其核心设计包括: 双队列结构:每个CPU维护活跃数组(运行进程)和过期数组(耗尽时间片进程),通过周期性交换角色保证公平性。 优先级划分:0~99级为实时进程(优先调度),100~139级为普通进程,时间片随优先级动态调整。 优化机制:动态提升交互式进程优先级,惩罚CPU密集型任务;多核环境下采用独立队列和负载均衡减少竞争。 特点:调度时间复杂度恒定为O(1),但存在调优复杂等问题,最终

2025-06-23 19:23:41 1083

原创 013 环境变量

环境变量简介 环境变量是操作系统中存储配置信息的动态键值对,由名称和值组成。它们分为用户环境变量(仅对当前用户生效)、系统环境变量(全局生效)和临时环境变量(仅在当前会话有效)。常见环境变量包括PATH(执行文件搜索路径)、HOME(用户根目录)、USER(当前用户名)等。查看环境变量可使用echo、printenv等命令。自定义程序需手动添加路径到PATH变量才能直接执行,方法包括临时设置(export命令)或永久生效(修改shell配置文件如.bashrc)。理解环境变量有助于管理系统配置和程序运行环境

2025-06-23 19:22:16 672

原创 012 进程状态和优先级

Linux进程状态与优先级解析:进程状态包括R(运行)、S(可中断睡眠)、D(不可中断睡眠)、T(停止)、Z(僵尸)和X(死亡),其中僵尸进程需父进程回收资源。通过ps或top命令查看进程状态,STAT字段显示进程当前状态及附加属性(如s表示会话首领、+表示前台进程)。进程生命周期涵盖创建、就绪、运行、阻塞、终止等阶段,状态间可通过调度或外部事件转换。理解进程状态对系统管理和问题排查至关重要。

2025-06-23 19:19:29 779

原创 011 Linux进程

Linux进程管理核心解析 进程管理是操作系统核心功能,Linux采用"先描述再组织"哲学: 本质:通过PCB(进程控制块,即task_struct)描述进程所有属性,再通过数据结构组织管理 关键结构:task_struct包含进程PID、状态、优先级、内存指针、上下文数据等数百个字段 管理方式:类比学校档案系统,通过增删查改数据结构实现对进程的创建、调度和终止 状态查看:常用命令包括静态查看的ps和动态监控的top/htop 进程=用户代码+内核数据结构,内核通过维护task_stru

2025-06-23 19:15:49 1232

原创 010 冯・诺依曼体系结构和操作系统

操作系统是计算机系统中的一个基本程序集合,它负责管理计算机的硬件和软件资源,并为用户程序提供一个稳定、高效、安全的执行环境。进程管理:负责控制和调度进程,确保每个程序能在系统中正常运行。内存管理:管理计算机的内存,确保各程序的内存使用不发生冲突。文件管理:提供文件的存储、读取、删除等基本操作,并确保数据的安全性。驱动管理:与硬件设备进行交互,管理硬件设备的驱动程序。

2025-06-23 19:13:28 756

原创 009 进度条的实现

本文介绍了Linux下进度条的实现过程,从基础版本逐步优化,最终形成一个可维护的完整进度条程序。内容涵盖: 基础实现:使用循环打印百分比,添加进度条显示 改进优化:加入加载动画,控制进度条长度 代码重构:通过文件链接方式组织代码(processBar.h/.c/main.c) 细节完善:解决尾部符号显示问题,优化可维护性 配套工具:提供两种makefile配置方案 最终版本实现了动态进度展示、百分比计数、加载动画和尾部符号优化的完整进度条,采用模块化设计便于维护。适合Linux初学者学习基础UI实现和代码组

2025-06-23 19:11:00 744

原创 008 Linux 开发工具(下) —— make、Makefile、git和gdb

make在Makefile中,我们可以定义变量来简化重复的代码。CC = gccCC:定义编译器为gcc。CFLAGS:定义编译选项为-Wall -O2。

2025-06-23 19:07:55 1414

原创 007 Linux 开发工具(上)—— vim、解放sudo、gc+

可重定位目标文件通常以 .o结尾(Windows 上是.obj机器指令(Machine Instructions):程序的可执行代码,但未指定最终内存地址。符号表(Symbol Table):记录函数、变量等符号,供链接器解析。重定位信息(Relocation Information):用于在链接时调整地址。节(Section)结构:比如.text(代码段)、.data(已初始化数据段)、.bss(未初始化数据段)等。这些文件是“可重定位”的,因为它们的地址信息尚未固定,而是由链接器。

2025-05-07 19:09:09 1562

原创 006 yum和Linux生态

1. 软件包和软件包管理器的关系软件包(Package):就像 Windows 下的安装程序一样,软件包是已经编译好的软件,通常包含了可执行程序、配置文件、依赖关系和其他必要的资源。用户只需要通过简单的命令就可以将它们安装到系统中。软件包一般是针对特定操作系统或发行版(如 CentOS、Ubuntu 等)预编译的。软件包管理器(Package Manager):它就像是“应用商店”,提供一个方便的接口让用户可以搜索、安装、更新和删除软件包。

2025-05-07 19:06:59 1048

原创 005 权限的理解

操作类型普通用户能否执行root 用户能否执行执行成功/失败chmod修改权限只能修改自己拥有的文件可以修改任何文件普通用户成功:文件属于自己;chown修改拥有者只能修改自己拥有的文件可以修改任何文件普通用户成功:文件属于自己;chgrp修改所属组只能修改自己拥有的文件可以修改任何文件普通用户成功:文件属于自己;file目录权限:可读权限(r:是否可以列出该目录中的文件。没有r权限,即使有x权限,也无法执行ls或查看目录中的内容。可写权限(w。

2025-05-07 19:03:40 864

原创 004 Linux基本指令

指令本质:用户输入字符串 → Shell 解析 → 执行对应可执行文件。文件抽象哲学:硬件、数据、操作均通过文件接口统一管理(Linux 中的一切皆文件用户隔离设计:Shell 作为安全屏障,防止直接内核操作引发系统风险。操作习惯善用历史命令提升效率。理解环境变量配置优化工作流。

2025-05-07 18:57:25 1193

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除