![](https://img-blog.csdnimg.cn/direct/6433e99e63b443c49d2fede6c700c768.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Linux系统学习
文章平均质量分 93
此专栏记录Linux学习过程中的重要理论知识,熟练掌握,对于日后工作大有益处。
未来可期,静待花开~
刚入行的技术猿一枚,记录学习过程中重要技术理论,谢谢关注,欢迎交流分享!
展开
-
Linux基础(一):初识Linux
Linux 也是众多操作系统之一,要想知道 Linux 是什么,首先得说一说什么是操作系统。计算机软件分为操作系统软件和应用软件, 计算机是由一堆硬件组成的,为了有效的控制这些硬件资源,于是乎就有了操作系统的产生,操作系统除了有效的控制这些硬件资源的分配,并提供计算机运作所需要的功能(如网络功能)之外,还要提供程序设计师更容易开发软件的环境,所以操作系统也会提供一组系统调用的接口。操作系统就是控制硬件的内核程序以及提供程序员使用的系统调用。原创 2024-05-19 12:05:56 · 809 阅读 · 0 评论 -
Linux基础(二):环境搭建
本文准备从0开始,一步步搭建一套属于自己的Linux系统环境,这将是后续学Linux、用Linux、Linux环境编程、应用和项目部署、工具实验等一系列学习和实践的基石,希望对小伙伴们有帮助。提前备好Linux编程实验环境非常重要,建议人手一套,这样以后每当学完一个理论知识需要实践时,立马就可以拿到上面去练手了。因此本文先把环境给搭建起来!原创 2024-05-19 17:12:53 · 1323 阅读 · 0 评论 -
Linux基础(三):入门基础
命令行:即 Linux 终端( Terminal ),是一种命令提示符页面。以纯"字符"的形式操作系统,可以使用各种字符化命令对系统发出操作指令。命令:即 Linux 程序。一个命令就是一个 Linux 的程序。命令没有图形化页面,可以在命令行(终端中)提供字符化的反馈。在 Linux 操作系统中,命令行处于核心的地位。命令行是一种对操作系统的输入和输出界面,与图形界面对应。目前,在计算机操作系统中图形界面成为主流。原创 2024-05-20 00:51:36 · 637 阅读 · 0 评论 -
Linux基础(四):Linux系统文件类型与文件权限
各位看官,好久不见,在正式介绍Linux的基本命令之前,我们首先了解一下,关于文件的知识。原创 2024-05-24 23:05:42 · 1040 阅读 · 0 评论 -
Linux基础(五):常用基本命令
我们知道,windows系统是以图形界面操作的,非常形象易用,而Linux则是以命令字符的该来进行操作的,相对window来讲并不直观,具有一定的门槛。什么是命令?命令是对系统进行管理的指令,就像在windows上你要创建一个文件,你需要用鼠标或键盘点击创建,而在linux上你需要输入命令来创建,达到的效果是一样的。你想要删除文件、编辑文本、重启系统…等等操作都要通过命令来执行,所以说,命令是Linux系统管理的重要方式,要使用Linux系统必须要掌握Linux命令。原创 2024-05-25 19:47:14 · 938 阅读 · 0 评论 -
Linux基础(六):Linux 系统上 C 程序的编译与调试
当源码文件比较多的时候就不适合通过直接输入gcc命令来编译,这时候就需要一个自动化的编译工具, 这就是make工具,make是一条命令,makefile是一个文件,两个搭配使用,完成项目自动化构建。make:一般说GNU Make,是一个软件,用于将源代码文件编译为可执行的二进制文件,make工具主要用于完成自动化编译。make工具编译的时候需要Makefile文件提供编译文件。Makefile:make工具所使用的文件,Makefile指明了编译规则。原创 2024-05-26 00:18:49 · 1079 阅读 · 0 评论 -
Linux基础(七):Linux 系统上的库文件生成与使用
库是一组预先编译好的方法/函数的集合。在 64 位的系统上有些库也可能被存储在/usr/lib64 下。库有两种,一种是静态库,其命令规则为libxxx.a,一种是共享库,其命令规则为libxxx.so。Linux系统存储库的头文件(函数的声明)一般会被存储在下Linux系统存储的库(函数的具体实现)/lib 和 /usr/libLinux系统存储的二进制可执行程序/bin和/usr/bin第一步:先将需要生成库文件的所有“.c“文件编译成“.o”文件。原创 2024-05-26 12:33:29 · 1172 阅读 · 0 评论 -
Linux基础(八):计算机基础概论
一台计算机可以抽象成下图: CPU 中包含控制器和运算器, 内存就是存储器。I/O 设 备就是输入设备和输出设备,如:键盘、显示器、鼠标、硬盘、网卡。所有设备都只能直接和内存打交道。原创 2024-05-26 16:09:27 · 314 阅读 · 0 评论 -
Linux基础 (九):Linux 进程复制与替换
在Linux操作系统下,主函数(main函数)的参数通常用于接收从命令行传递给程序的输入。argc和argv和envp。参数详解argcint代表命令行参数的数量。包括程序名在内,传递给程序的参数总数。argc至少为1,因为程序名总是第一个参数。argv或是一个字符指针数组,每个元素都是指向一个字符串的指针。argv[0]指向程序名(包含路径的程序名,或者是只包含程序名,取决于如何运行程序)。其余的元素(从argv[1]到)指向传递给程序的命令行参数。argv[argc]原创 2024-05-27 00:04:21 · 1040 阅读 · 0 评论 -
Linux基础 (十):Linux 信号的使用
目录一、信号的基本概念二、信号处理常见方式概览三、修改信号的响应方式 – signal()3.1 简单复习结束前台进程3.2 改变SIGINT信号的响应方式3.3 自定义方式改变进程对信号的响应3.4 进程对信号作出两种响应四、发送信号 – kill()五、利用信号解决僵死进程问题 Linux 信号(signals)是一种用于进程间通信(Inter-Process Communication,IPC)的机制,允许进程通过发送和接收信号来通知其他进程某些事件的发生。信号是中断处理的一种手段,可以原创 2024-05-27 00:58:41 · 787 阅读 · 0 评论 -
Linux基础 (十一):进程间通信
无名管道主要应用于父子进程间的通信。无名管道的创建如下:无名管道,没有名字,只能靠文件描述符,文件描述符不能给到别的进程,只能fork,让子进程拿到数据。因此,应该先创建无名管道,再fork产生子进程。semget是可以创建信号量也可以获取已经存在的信号量的,第一个参数是key 两个进程想使用同一个信号量,只要key值相同就可以;第二个参数是创建信号量的个数;第三个参数是标志位,创建信号量的权限。创建对应的sem.h对信号量的操作函数进行声明,以及对联合体semun进行定义。原创 2024-05-28 00:11:15 · 776 阅读 · 0 评论 -
Linux基础 (十二):Linux 线程的创建与同步
线程库提供了丰富的接口来创建、管理和同步线程。不同的操作系统和编程语言提供的线程库接口可能有所不同,但大多数线程库都提供了一些常见的基础功能。下面以POSIX线程库(Pthreads)为例,介绍一些常用的线程库接口,使用线程库需要提前引入线程库头文件。线程库需要引入的头文件 #include 初始化信号量。sem: 指向信号量对象的指针。pshared: 指定信号量是否在进程间共享。若为0,表示线程间共享;若非0,表示进程间共享。value: 信号量的初始值。原创 2024-06-03 19:08:43 · 1299 阅读 · 1 评论 -
Linux基础 (十三):计算机网络基础概论
IP 地址有分 IPV4 和 IPV6 两种类别格式,IPV4 是类似”A.B.C.D”的格式,它是 32 位 的,用“.”分成四个段,每个段是 8 个位(值为 0-255),用 10 进制表示。IPV6 地址是 128 位,格式类似”XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX”,用“:“分成 8 个 段,每个段 16 个位,用 4 个 16 进制数表示。Windows平台可使用图像化界面查看:ipconfigifconfig。原创 2024-06-05 12:04:37 · 1428 阅读 · 0 评论 -
Linux基础 (十四):socket网络编程
我们用户是处在应用层的,根据不同的场景和业务需求,传输层就要为我们应用层提供不同的传输协议,常见的就是TCP协议和UDP协议,二者各自有不同的特点,网络中的数据的传输其实就是两个进程间的通信,两个进程在通信时,传输层使用TCP协议将一方进程的应用层的数据传输给另一方进程的应用层,我们这一节就是基于TCP协议讲解网络数据的传输。原创 2024-06-05 20:46:33 · 1052 阅读 · 0 评论 -
Linux基础 (十五):TCP 协议特点和UDP协议
握手只能是三次:例如客户端连接服务器后然后关闭了,服务器收到了并回复客户端,此时服务器就认为和客户端建立了链接,这个链接就一直保持着,但是客户端已经没了,所以还需要客户端第三次进行确认回复,来确保双方都保持链接。4、三次握手时可能出现什么攻击?原创 2024-06-09 22:18:42 · 1236 阅读 · 2 评论 -
Linux基础 (十六):HTTP 协议与 web 服务器
本篇博客,我们将共同探索HTTP协议的工作原理,理解它是如何在客户端和服务器之间传递信息的。我们将深入研究HTTP请求和响应的结构,了解状态码、头部信息和常见的HTTP方法。同时,我们还会讨论HTTPS的安全机制,了解如何保护数据的传输安全。原创 2024-06-12 08:29:06 · 983 阅读 · 0 评论 -
Linux基础 (十七):I/O 复用函数的使用
select 系统调用的用途是:在一段指定时间内,监听用户感兴趣的文件描述符的可读、 可写和异常等事件。selecst 成功时返回就绪(可读、可写和异常)文件描述符的总数。如果在超时时间内没有任何文件描述符就绪,select 将返回 0。elect 失败是返回-1.如果在 select 等待 期间,程序接收到信号,则 select 立即返回-1,并设置 errno 为 EINTR。select() 第一个参数是描述符最大值加一,第二个是读事件,第三个是写事件,第四个是异常事件,第五个参数是超时时间。原创 2024-06-13 20:51:57 · 598 阅读 · 0 评论 -
Linux基础 (十八):Libevent 库的安装与使用
Libevent 是一个高效的、轻量级的事件通知库用于开发需要处理大量并发连接的网络应用程序。它提供了一种机制来执行回调函数,当特定事件发生在文件描述符上,或在超时发生时,Libevent 可以处理不同类型的事件,包括 I/O 事件、信号事件和定时事件。为每种事件类型定义相应的处理回调函数。例如,针对新连接的事件,定义一个回调函数来处理新连接;针对读写事件,定义相应的回调函数来处理数据的读写操作。这些回调函数是处理事件的核心逻辑,通过它们来实现具体的业务逻辑。原创 2024-06-15 00:30:25 · 842 阅读 · 0 评论