
Linux
文章平均质量分 96
W…Y
长风破浪会有时,直挂云帆济沧海
展开
-
【Linux网络】网络层——IP协议和网段划分之内外网
IP地址用于识别网络中的设备,分为私有(内网)和公有(外网)地址。内网地址用于局域网,不直接暴露于互联网,如192.168.x.x。外网地址则全球唯一,可在互联网上直接通信。路由负责在不同网络间转发数据包,基于IP地址和路由表。网段是具有相同网络地址的IP地址集合,由子网掩码定义。内外网通过路由器连接,路由器使用NAT技术将内网私有地址转换为外网公有地址,实现内外网通信。原创 2024-10-29 22:50:12 · 916 阅读 · 0 评论 -
【Linux网络】基于TCP的全连接队列与文件、套接字、内核之间的关系
套接字是网络通信的基本接口,允许程序发送和接收数据。在服务器端,监听套接字用于接受客户端的连接请求。一旦客户端请求到达并完成TCP三次握手,请求会被放入全连接队列,等待服务器通过`accept()`调用来处理。内核在此过程中扮演核心角色,管理套接字的生命周期,维护全连接队列,并处理网络数据的传输。简而言之,套接字是通信的端点,全连接队列是已完成握手的连接请求的缓冲区,而内核则负责协调和管理这些操作,确保网络通信的顺利进行。原创 2024-10-29 08:00:00 · 1280 阅读 · 0 评论 -
【Linux网络】传输层协议UDP与TCP
UDP和TCP是两种主要的网络传输协议。UDP是一种无连接的协议,它不保证数据包的顺序或可靠性。它通过发送数据包而不进行任何确认来实现快速传输,适合对实时性要求高的应用,如视频流和在线游戏。UDP的头部开销小,只有8个字节,这有助于减少延迟。TCP是一种面向连接的协议,它确保数据包的顺序和可靠性。在数据传输前,TCP会建立一个连接,并通过确认和重传机制来保证数据的完整性。TCP适合需要可靠传输的应用,如网页浏览和文件传输。TCP的头部开销较大,通常是20个字节,这可能会增加一些延迟。原创 2024-10-27 22:24:08 · 1423 阅读 · 0 评论 -
【Linux网络】应用层http协议&&cookie与session&&https协议
HTTP(超文本传输协议)和HTTPS(安全超文本传输协议)都是应用层协议,用于Web服务器和客户端之间传输数据。它们在基本的通信机制和语义上是相同的,但HTTPS在HTTP的基础上增加了数据加密和安全性。HTTP:由于数据是明文传输,容易受到中间人攻击和其他安全威胁。HHTTP:不需要证书,没有额外的成本。HTTPS:需要从证书颁发机构(CA)获取SSL证书,可能涉及一定的费用和配置工作。TTPS:通过SSL/TLS提供了数据加密、完整性校验和身份验证,增强了安全性。原创 2024-08-29 08:00:00 · 968 阅读 · 0 评论 -
【Linux网络】基本网络命令&&socket编写TCP&&应用层&&实现简易计算器
我们在上篇博客中学习了使用socket套接字完成了UDP的网络编程,今天我们继续使用socket套接字完成TCP的学习。首先我们先来了解一些网络指令。通过TCP理解应用层相关内容,以及序列化反序列化,TCP全双工!原创 2024-08-20 08:00:00 · 855 阅读 · 0 评论 -
【Linux网络】Socket套接字&&编写UDP实现网络通信&&LinuxWindows跨平台通信
Socket是网络编程的核心,提供了进程间通信的端点。UDP是其中一种无连接的协议,适用于快速消息传递。首先,使用`socket()`创建套接字;其次,配置服务器的`sockaddr_in`或`sockaddr_in6`结构体并绑定端口;然后,客户端使用`sendto()`发送数据到服务器,服务器使用`recvfrom()`接收数据;通信结束后。UDP的特点是传输速度快,但不保证数据的可靠性、顺序或完整性,适用于对实时性要求高的应用场景。开发时要注意错误处理和资源管理,确保程序的健壮性和效率。原创 2024-08-14 19:46:01 · 994 阅读 · 0 评论 -
【Linux网络】Linux网络初探:开启网络世界的大门
网络协议定义了计算机之间如何传输和接收数据。它们规定了数据格式、传输顺序、差错检测和控制机制。OSI(Open Systems Interconnection)模型是一个概念框架,用于标准化不同系统间的网络通信。TCP/IP模型是互联网的基础,简化了OSI模型。网络传输基本流程和简单的网络地址管理原创 2024-08-08 18:44:37 · 1205 阅读 · 1 评论 -
【Linux进程篇】进程终章:POSIX信号量&&线程池&&线程安全的单例模式&&自旋锁&&读者写者问题
Linux进程和线程的管理涉及多种同步机制,以确保资源的合理分配和访问。信号量提供了一种灵活的资源管理方式;线程池优化了线程的创建和调度;线程安全的单例模式保障了全局状态的一致性;自旋锁提供了一种避免线程阻塞的锁机制;读者写者问题则是对共享资源访问控制的一种典型场景。这些概念共同支撑了复杂系统中的并发控制和数据一致性需求。原创 2024-08-07 15:26:38 · 1178 阅读 · 0 评论 -
【Linux进程篇】并发艺术:Linux条件变量与生产消费者模型的完美融合
在Linux多线程编程中,条件变量是用于线程间同步的一种机制,它允许线程在某些条件不满足时挂起,并在条件满足时被另一个线程唤醒。条件变量通常与互斥锁(mutex)结合使用,以保护共享资源的访问,防止数据竞争。生产者-消费者模型是条件变量应用的一个典型场景。在这个模型中,生产者线程生成数据并将其放入共享队列,而消费者线程从队列中取出数据进行处理。总结来说,Linux中条件变量是实现线程同步和协调生产者-消费者模型的关键工具,它通过与互斥锁的配合使用,确保了多线程程序中数据的一致性和线程的高效协作。原创 2024-08-05 20:01:46 · 854 阅读 · 0 评论 -
【Linux线程篇】线程安全守护者——线程互斥(互斥锁)
线程互斥是确保在多线程环境中,对共享资源的访问是串行化的机制。这是通过互斥锁(mutexes)实现的,互斥锁是一种同步原语,用来保护共享数据不被多个线程同时修改,从而避免数据竞争和一致性问题。互斥锁的工作原理是,当一个线程想要访问共享资源时,它必须首先尝试锁定互斥锁。如果互斥锁已经被其他线程锁定,请求线程将被阻塞,直到互斥锁被释放。一旦互斥锁被当前线程锁定,该线程就可以安全地访问共享资源。访问完毕后,线程必须释放互斥锁,允许其他线程访问资源。原创 2024-07-23 19:15:06 · 1140 阅读 · 0 评论 -
【Linux线程篇】线程之力:Linux并发编程指南
Linux线程控制是指在Linux操作系统中,通过特定的系统调用和库函数来创建、同步和管理线程的操作。线程控制通常包括线程的创建(如使用`pthread_create`)、同步(如使用互斥锁`pthread_mutex_t`和条件变量`pthread_cond_t`)、通信以及终止(如使用`pthread_join`和`pthread_exit`)。这些操作允许程序员编写并发程序,以提高应用程序的性能和响应性。简而言之,Linux线程控制是操作系统提供的一种机制,用于管理和协调程序中的多个执行流。原创 2024-07-11 09:15:00 · 985 阅读 · 0 评论 -
【Linux线程篇】探索Linux多线程:并行编程的入门指南
Linux线程作为现代操作系统中不可或缺的并发机制,其在内核层和应用层的深入理解和应用对于开发高性能、高可靠性的软件系统至关重要。本文提供了一个全面的视角,帮助读者从理论到实践,构建对Linux线程的全面认识,并在实际开发中游刃有余地应用线程技术。原创 2024-07-08 23:43:08 · 1417 阅读 · 0 评论 -
【Linux信号篇】Linux中的信号拦截与响应
在Linux中,信号的阻塞和捕捉是进程管理意外事件的关键技术。通过信号阻塞,进程可以在执行关键任务时忽略某些信号,防止操作中断。信号捕捉则允许进程为特定信号设置处理函数,使得当信号发生时能够立即响应,进行必要的操作,如资源清理或状态记录。这两种策略共同提升了程序的稳定性和健壮性。原创 2024-07-08 09:30:00 · 799 阅读 · 0 评论 -
【Linux信号篇】进程控制的幕后英雄:信号概念和信号的产生
inux信号是操作系统用来通知进程发生了某些事件的一种机制。它们是进程间通信的一种形式,允许内核或其他进程向目标进程发送信息,告知其发生了某些需要处理的情况。信号可以由硬件事件(如键盘中断)或软件事件(如另一个进程请求终止)产生。Linux系统定义了多种信号,例如SIGINT(中断信号,通常由Ctrl+C产生)和SIGTERM(终止信号,用于请求进程优雅地结束)。进程可以忽略信号、捕获信号以执行自定义操作,或者设置默认处理行为。正确地处理信号对于编写稳定和健壮的Linux程序至关重要。原创 2024-07-06 09:00:00 · 917 阅读 · 0 评论 -
【Linux进程通信】system V下的共享内存
之前我们已经掌握了进程间的管道通信,匿名管道和命名管道。匿名管道必须进程要血缘关系,而命名管道不需要血缘关系,两个毫不相干的进程就可以进行通信。上面两种是基于文件的通信,今天我们继续来学习本地进程间的通信——共享内存原创 2024-07-01 09:30:00 · 810 阅读 · 0 评论 -
【Linux进程通信】Linux进程间的无声对话:匿名管道与命名管道技术
Linux提供了两种进程间通信(IPC)机制:匿名管道和命名管道。匿名管道允许父子进程单向通信,生命周期仅限于进程及其子进程。而命名管道则支持多个不相关进程通过文件系统中的命名实体进行通信,具有更广泛的应用场景。两者均支持单向数据流,但可通过特定配置实现双向通信。开发者应根据通信需求、安全性和生命周期选择合适的IPC方式。原创 2024-06-18 09:30:00 · 1710 阅读 · 0 评论 -
【Linux文件篇】软硬链接与动静态库链接的实用指南
在软件开发中,链接技术是实现代码复用和模块化的关键。软硬链接和动静态库链接提供了不同的解决方案,以适应不同的开发需求。硬链接是文件系统中的一个指针,直接指向文件数据,允许多个文件名访问相同的数据块。软链接则类似于快捷方式,它包含指向另一个文件或目录的路径。静态库在编译时被整合进可执行文件,减少了运行时依赖,但增加了文件体积。动态库则在程序运行时加载,节省了磁盘空间,便于库的更新,但可能增加启动时间。原创 2024-06-13 23:53:11 · 1021 阅读 · 0 评论 -
【Linux文件篇】磁盘到用户空间:Linux文件系统架构全景
本文简要概述了文件管理系统从磁盘硬件到操作系统的整合过程。文章首先描述了磁盘硬件的工作原理,包括磁盘结构和数据存储方式。随后,讨论了文件系统如何利用这些硬件特性来实现数据的逻辑组织,包括文件和目录的创建、存储和检索。文章强调了操作系统中文件系统的关键功能,如权限控制、数据一致性和错误恢复机制。同时,指出了现代文件系统面临的挑战,例如高并发访问、大数据管理以及跨平台兼容性。原创 2024-06-13 09:30:00 · 2519 阅读 · 0 评论 -
【Linux文件篇】优化文件读写,加速数据处理策略——缓冲区
文件缓冲区是计算机编程中用于临时存储数据的内存区域,它在文件输入/输出操作中扮演着至关重要的角色。通过缓冲区,程序能够以更高效的方式处理数据,因为它减少了对磁盘等存储设备的直接访问次数,从而降低了I/O操作的开销。文件缓冲区的工作原理是将数据先写入到内存中的缓冲区,而不是直接写入磁盘。当缓冲区满时,数据才会被一次性写入磁盘,这个过程称为"刷新"。同样地,在读取数据时,操作系统会先从磁盘读取一定量的数据到缓冲区,程序再从缓冲区中读取所需的数据。原创 2024-06-10 21:46:59 · 1071 阅读 · 0 评论 -
【Linux文件篇】系统文件、文件描述符与重定向的实用指南
本文深入探讨了Linux操作系统中的文件系统,特别是系统文件的重要性和文件描述符的高效管理。文章首先介绍了系统文件的概念、作用以及它们在Linux系统中的组织结构。随后,详细解释了文件描述符的工作原理,包括它们是如何在程序中被创建、使用和关闭的。此外,文章还重点讨论了重定向技术,这是一种强大的命令行工具,允许用户改变程序的输入和输出流,从而提高数据处理的灵活性和效率。通过实际的命令示例和场景分析,本文旨在帮助读者更好地理解和掌握Linux文件系统的核心概念和高级技巧,无论是对于系统管理员还是开发人员,都能从原创 2024-06-10 09:30:00 · 1112 阅读 · 0 评论 -
【Linux进程篇】Linux进程管理应用——虚假的shell脚本
本文探讨了通过仿写Shell脚本来提高自动化任务效率的方法。首先概述了Shell脚本的基础知识,然后重点介绍了如何分析和优化现有脚本。文章还涵盖了错误处理和调试技巧,最后总结了一些高级脚本编写技巧,旨在帮助读者创建更高效、更稳定的自动化工具。原创 2024-06-05 23:13:47 · 1064 阅读 · 0 评论 -
【Linux进程篇】Linux中的等待机制与替换策略
进程等待和进程替换是操作系统中管理进程的两个关键概念。进程等待是当一个进程需要等待某个资源或事件时,它将暂停执行,直到条件满足。这有助于避免资源冲突和死锁,同时允许系统更高效地处理任务。进程替换则是在系统资源受限时,将某些进程从内存中移除,以便为其他更重要或更紧急的进程腾出空间。这种策略有助于优化系统性能,确保关键任务的顺利执行。通过合理设计进程管理策略,可以提高系统的稳定性和响应性。本文将深入探讨进程等待和进程替换的工作原理,包括它们的实现机制、调度算法以及在不同操作系统中的应用。原创 2024-06-05 09:30:00 · 1038 阅读 · 0 评论 -
【Linux进程篇】Linux进程管理——进程创建与终止
进程的创建和终止是操作系统中管理进程生命周期的两个基本操作。进程创建涉及为新程序分配资源、设置执行环境,并将其加入到调度队列中。这通常发生在程序启动、系统调用或父进程生成子进程时。进程终止则标志着一个进程的生命周期结束,无论是因为正常完成、异常退出还是外部干预。终止进程需要进行资源回收、状态清理,并确保不会留下悬挂的依赖或资源泄露。这两个过程对维护系统的稳定性和效率至关重要,它们要求操作系统具备精细的资源管理和调度策略。有效的进程管理能够提高系统性能,优化资源利用率,并确保用户和应用程序的流畅体验。原创 2024-05-29 22:55:46 · 1268 阅读 · 1 评论 -
【Linux进程篇】Linux内核——程序地址空间的初构
在Linux操作系统中,每个进程都拥有独立的地址空间,这是操作系统隔离进程和保护系统安全的重要机制。进程地址空间由虚拟内存管理单元(MMU)进行管理,它允许进程通过虚拟地址访问物理内存。Linux进程地址空间是操作系统内存管理的核心组成部分,它不仅确保了系统的稳定性和安全性,还为程序提供了灵活的内存使用方式。了解地址空间的布局和管理机制对于开发高效、安全的应用程序至关重要。原创 2024-05-29 09:30:00 · 1443 阅读 · 1 评论 -
【Linux进程篇】掌握进程优先级与环境变量:提升系统效能的秘诀
Linux操作系统以其强大的多任务处理能力而闻名,这在很大程度上归功于其进程管理和调度机制。本文旨在探讨Linux中的进程优先级和环境变量这两个关键概念,以及它们如何影响系统的运行和程序的行为。进程优先级是Linux内核用于决定哪些进程应该首先执行的机制。每个进程都有一个优先级值(nice值),它影响进程获得CPU时间的比例。用户可以通过调整nice值来控制进程的相对优先级,从而优化系统性能。环境变量在Linux中扮演着配置信息存储的角色,它们允许应用程序和系统管理员在不同环境之间共享配置信息。原创 2024-05-27 23:47:44 · 1454 阅读 · 1 评论 -
【Linux进程篇】父子进程fork函数||进程生死轮回状态||僵尸进程与孤儿进程
深入地理解fork()函数和进程状态,以及如何避免僵尸进程和孤儿进程。fork()函数作为进程管理的核心,允许创建新的进程,是多任务和并发编程的基础。进程状态的总览,以及僵尸进程和孤儿进程这两种异常进程状态。僵尸进程是一种特殊的进程状态,发生在子进程终止后,父进程尚未调用wait()或waitpid()系统调用读取其退出状态。孤儿进程是指父进程在子进程终止前已经结束,使得子进程没有父进程。孤儿进程最终会被系统回收,但在此之前,它们可能会消耗系统资源,并在系统崩溃时留下未处理的进程。原创 2024-05-27 09:30:00 · 1258 阅读 · 1 评论 -
【Linux进程篇】——从零开始:进程初始化与PCB精粹
进程(Process)是操作系统中一个非常重要的概念,它指的是正在执行的程序的一个实例。每个进程都有自己的地址空间、系统资源和执行状态。进程是系统资源分配和调度的基本单位。进程控制块(Process Control Block, PCB)是操作系统用来管理进程的数据结构。它包含了进程的描述信息,如进程状态、程序计数器、CPU寄存器、内存管理信息、I/O状态信息等。PCB是操作系统进行进程管理的核心。原创 2024-05-22 23:09:29 · 1407 阅读 · 4 评论 -
【Linux进程篇】——深入冯诺依曼体系,掌握操作系统核心原理
在计算机科学领域,冯·诺依曼体系结构是现代计算机设计的基础。这一架构不仅定义了计算机硬件的基本组成,而且对操作系统(OS)的设计和功能产生了深远的影响。本文旨在探讨冯·诺依曼体系与操作系统之间的联系,并概述两者的关键概念和重要性。原创 2024-05-22 09:30:00 · 1670 阅读 · 9 评论 -
【Linux玩物志】Linux环境开发基本工具使用(终章) ——git与gdb调试器
Git,一个由Linus Torvalds设计的开源分布式版本控制系统,已经成为代码版本控制的行业标准。它以其无与伦比的速度、强大的分支管理功能以及对大型项目的支持而受到广泛赞誉。Git不仅仅是一个代码仓库的守护者,更是团队协作的桥梁,它让代码的迭代、合并和回滚变得简单而高效。GDB,即GNU Debugger,是GNU项目中的一个开源调试器。它为开发者提供了一个强大的工具来诊断程序中的问题。无论是追踪程序的执行流程,检查变量的值,还是分析程序的内存使用情况,GDB都能提供必要的支持,帮助开发者深入理解原创 2024-05-18 22:08:17 · 830 阅读 · 2 评论 -
【Linux玩物志】Linux环境开发基本工具使用(2) ——gcc/g++与make/makefile
在Linux环境下开发软件时,编译器和构建工具的选择至关重要。gcc作为GNU编译器集合的核心组件,提供了对C、C++等多种编程语言的支持。它不仅能够编译源代码生成可执行文件,还提供了优化选项,以提高程序的运行效率。另一方面,make工具通过读取makefile文件来管理编译过程。makefile定义了项目的构建规则和依赖关系,允许开发者指定如何编译源文件,链接库文件,以及生成最终的可执行文件。这使得编译过程自动化,减少了重复劳动,并且可以轻松地管理复杂的项目结构。原创 2024-05-18 18:01:54 · 1134 阅读 · 12 评论 -
【Linux玩物志】Linux环境开发基本工具使用(1)——vim
vi/vim的区别简单点来说,它们都是多模式编辑器,不同的是vim是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。目前处于[插入模式],就只能一直输入文字,如果发现输错了字,想用光标键往回移动,将该字删除,可以先按一下「ESC」键转到[正常模式]再删除文字。控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode。在目录 /etc/ 下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效。原创 2024-05-16 09:30:00 · 653 阅读 · 1 评论 -
Linux玩物志:好玩却无用的软件探秘
是我们已经学习了yum指令,可以在Linux中安装一些软件的指令。下面我们就盘点一些可玩性很高但是却没有什么用的软件,在枯燥的学习中增添一丝乐趣!这些应用程序展示了Linux社区的创造力和幽默感。它们或多或少地为Linux用户提供了一些娱乐,同时也向人们展示了命令行界面的多样性。请记住,尽管这些应用程序可能不太实用,但它们确实增加了Linux的乐趣和趣味性。原创 2023-10-31 09:00:00 · 1245 阅读 · 30 评论 -
Linux开发者的利器:深入了解环境开发工具之yum篇
在Linux下安装软件, 一个通常的办法是下载到程序的源代码, 并进行编译, 得到可执行程序.但是这样太麻烦了, 于是有些人把一些常用的软件提前编译好, 做成软件包(可以理解成windows上的安装程序)放在一个服务器上, 通过包管理器可以很方便的获取到这个编译好的软件包, 直接进行安装.软件包和软件包管理器, 就好比 "App" 和 "应用商店" 这样的关系.原创 2023-10-31 08:30:00 · 520 阅读 · 22 评论 -
Linux权限大揭秘:深入理解系统安全
关于权限的总结:目录的可执行权限是表示你可否在目录下执行命令。如果目录没有-x权限,则无法对目录执行任何命令,甚至无法cd 进入目, 即使目录仍然有-r 读权限(这个地方很容易犯错,认为有读权限就可以进入目录读取目录下的文件)而如果目录具有-x权限,但没有-r权限,则用户可以执行命令,可以cd进入目录。但由于没有目录的读权限所以在目录下,即使可以执行ls命令,但仍然没有权限读出目录下的文档。!!t=N7T8。原创 2023-10-27 09:00:00 · 3535 阅读 · 50 评论 -
“权限之舞:Linux安全之道”
Linux权限是指在Linux操作系统中用于管理文件和目录访问的安全机制。它允许系统管理员和文件所有者控制谁可以读取、写入或执行文件,以及哪些用户或组可以访问它们。Linux权限是一个关键的概念,有助于确保系统的安全性和数据的完整性。在之前的Linux博客中,我们学习了基础的Linux指令,具体可以订阅一下博主的Linux专栏学习。当我们想进行递归删除文件时等等许多操作中,只有在root账号中有询问或只能在root账号中添加未安装的指令呢?今天我们来讲一下Linux的一些权限,长话短说我们开始今天的内容!原创 2023-10-16 20:36:26 · 1129 阅读 · 32 评论 -
Linux基本操作指令(3)
🍟 前言:我们已经给大家分享过许多关于Linux基本操作符,我相信大家已经掌握的差不多了,今天让我们学习最后一点关于Linux的操作符。话不多说,我们直接开始。原创 2023-10-11 07:30:00 · 1110 阅读 · 32 评论 -
Linux基本操作符(2)
:输出重定向,每次都会清空原始文件,然后再写入。作用:1.新建空文件。2.清空目标文件。那有什么办法可以让我们写的文本内容不会被覆盖,继续往下写呢?如同C语言文本输入的”a“模式。那肯定是有的。我们在>符号那里做文章,将>改为>>即可。原创 2023-10-01 18:27:53 · 1201 阅读 · 28 评论 -
Linux基本操作符(1)
Linux在操作时是纯指令操作的,其实windows也是支持指令操作的,我们可以打开自己的菜单然后搜索cmd。语法: ls [选项][目录或文件]功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。语法: pwd功能:显示用户当前所在的目录当我们想知道现在身处于哪个路径时,我们就可以使用pwd命令符进行。语法:cd 目录名功能:改变工作目录。将当前工作目录改变到指定的目录下。语法:touch[选项]...文件...功能:touch命令参数可更改文原创 2023-09-25 23:41:09 · 818 阅读 · 24 评论 -
如何搭建Linux环境
当我们想要搭建一个Linux系统,我们应该怎么使用呢?今天我就带领大家搭建Linux系统!!!Linux环境安装。centos7、Ubuntu、xshell安装链接大全双系统(不推荐)powwershell (不推荐)虚拟机+centos7镜像使用云服务器(推荐)原创 2023-09-19 02:04:27 · 367 阅读 · 21 评论 -
初识Linux操作系统
要说到Linux,我们还得从最先的操作系统,以及Unix说起。Linux已经成为最受欢迎的开源操作系统之一,被广泛应用于各种领域。它的成功在很大程度上归功于开放源代码和技术社区的支持和贡献,以及其稳定性、灵活性和可定制性在企业和个人用户中的受到肯定。原创 2023-09-18 13:19:05 · 489 阅读 · 12 评论