![](https://img-blog.csdnimg.cn/bd13d4ea561b41c1a12516f28b2f836b.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
万字详解Linux系列
文章平均质量分 94
每篇文章都是超过1万字的Linux干货知识,希望能有所帮助!
山舟
这个作者很懒,什么都没留下…
展开
-
【网络】网络编程
文章目录一、预备知识1.源IP地址、目的IP地址2.端口号(port)PID vs PORT3.TCP、UDP(1)TCP(2)UDP4.网络字节序函数5.IP地址的表示二、socket编程函数1.socket(1)domain(2)type(3)protocol(4)返回值2.bind(1)sockfd(2)addr(3)addrlen3.recvfrom4.不同类型IP地址之间的转换函数三、简单的UDP网络程序1.服务器实现2.服务器的主函数总结一、预备知识1.源IP地址、目的IP地址源IP地址原创 2022-04-04 15:06:01 · 5388 阅读 · 8 评论 -
【网络】网络基础(一)
文章目录前言一、计算机网络背景1.网络发展(1)独立(2)网络互联(3)局域网LAN(4)广域网WAN二、网络协议1.OSI七层模型(1)介绍(2)结构2.TCP/IP模型(1)介绍(2)结构三、网络传输基本流程1.数据包封装和分用(1)介绍(2)过程2.TCP/IP通信过程四、网络中的地址管理1.IP地址2.认识MAC地址感谢阅读,如有错误请批评指正前言本篇内容只是对网络的一个简单介绍,并不涉及太多深层次的知识。原创 2022-04-02 11:34:44 · 2545 阅读 · 2 评论 -
【万字详解Linux系列】多线程(下)
文章目录前言一、线程同步1.概念2.条件变量3.代码实现二、使用步骤1.引入库2.读入数据总结前言由于多线程部分内容过多,所以本文接着【万字详解Linux系列】多线程(上)向后介绍多线程相关的内容。一、线程同步1.概念在保证数据安全的前提下,让线程按照某种特定的顺序访问临界资源,从而高效使用临界资源。2.条件变量条件变量就相当于实现进程互斥中的互斥量,是Linux下实现进程同步的一种机制。可以理解为描述临界资源是否就绪的一个数据化变量。注意条件变量不保护临界资源,所以条件变量常和互斥量(原创 2022-03-28 10:08:22 · 1113 阅读 · 8 评论 -
【万字详解Linux系列】多线程(上)
文章目录一、线程1.概念2.优点3.缺点4.线程异常二、进程 VS 线程1.进程和线程2.进程的多个线程共享总结一、线程1.概念在一个程序里的一个执行路线就叫做线程(thread)。更准确的定义是:线程是“一个进程内部的控制序列”。一切进程至少都有一个执行线程。线程在进程内部运行,本质是在进程地址空间内运行,也就是说,进程和线程共享进程地址空间。运行如下代码,之前讲到用fork创建子进程时,由于写时拷贝,子进程对数据的修改不会影响父进程,但这里vfork使子进程和父进程共享进程地址空间,所以原创 2022-03-23 16:56:38 · 3997 阅读 · 2 评论 -
【万字详解Linux系列】进程信号
一、信号简介1.查看信号2.信号的本质3.信号的记录和发送4.从键盘输入的信号5.signal自定义信号6.处理信号的一般方式二、信号产生1.通过终端按键(键盘)产生信号Core Dump(核心转储)2.程序异常事后调试3.调用函数(1)kill函数(2)raise函数(3)abort4.由于软件条件产生信号(1)SIGPIPE(2)SIGALRM5.硬件异常产生信号三、信号阻塞1.相关概念2.内核中的表示3.sigset_t4.信号集操作函数(1)对信号集原创 2022-03-16 14:23:17 · 3437 阅读 · 4 评论 -
【万字详解Linux系列】进程间通信(IPC)
文章目录一、进程间通信1.目的2.如何通信3.分类二、管道1.概念2.匿名管道(1)实现父子进程间通信(2)fork角度的理解(3)文件描述符角度的理解(4)匿名管道特点(5)四种情况(6)管道的大小3.命名管道(1)命令行使用命名管道(2)代码使用命名管道4.命令行中的管道|三、System V1.介绍2.基本原理3.shmget函数①key②SIZE③shmflg4.创建共享内存5.删除共享内存6.关联、去关联共享内存7.用共享内存实现进程间通信原创 2022-03-08 20:32:31 · 2701 阅读 · 7 评论 -
【Linux小练习】打包并使用动静态库
文章目录前言一、打包静态库1.函数声明和函数实现2.makefile二、使用静态库三、动态库感谢阅读,如有错误请批评指正前言在【万字详解Linux系列】文件系统、动静态库 中提到了文件系统和动静态库,本文分别打包一个动、静态库并使用它们来加深对动静态库的理解。一、打包静态库1.函数声明和函数实现先生成两个.h的函数声明和两个同名.o的函数实现文件,然后打包加法、减法静态库(这里重点是打包静态库的过程,所以代码部分使用简单的加减法)原创 2022-03-07 11:54:00 · 728 阅读 · 3 评论 -
【万字详解Linux系列】文件系统、动静态库
文章目录一、inode二、文件系统1.磁盘二、使用步骤1.引入库2.读入数据总结一、inode通过ls的-i选项可以看到显示的文件属性最前面多了一列数字(两两不重复),它们就是文件的inode编号。磁盘文件是由文件内容和文件属性(也叫元信息)构成的,例如ls -l显示的就是文件的属性,cat命令显示的就是文件的内容。Linux下将文件内容和文件属性进行分离存储,保存文件属性的结构就是inode,也就是说inode是一个文件的属性原创 2022-03-05 16:05:46 · 1179 阅读 · 5 评论 -
【万字详解Linux系列】基础IO
前言(1)当前目录(2)stdin、stdout、stderr一、open(1) 标志位(2) O_WRONLY(3) O_CREAT二、close,read,write三、文件描述符1.概念2.原理3.分配规则四、重定向1.输出重定向2.再谈缓冲区(1)缓冲方式(2)缓冲区3.输入重定向4.追加重定向5.stdout和stderr五、dup2感谢阅读,如有错误请批评指正原创 2022-03-03 11:38:05 · 1355 阅读 · 6 评论 -
【Linux小练习】模拟简易的shell
文章目录一、进程程序替换一、pandas是什么?二、使用步骤1.引入库2.读入数据总结一、进程程序替换一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as snsimport warningswarnings.f.原创 2022-02-26 18:20:46 · 3873 阅读 · 9 评论 -
【万字详解Linux系列】进程控制
文章目录一、环境变量1.基本概念2.常见的环境变量(1)PATH(2)HOME(3)SHELL(4)HISTSIZE(5)SSH_TTY3.与环境变量相关的指令4.在代码中获取环境变量(1)argc和argv2.envp一、pandas是什么?二、使用步骤1.引入库2.读入数据总结一、环境变量Windows下的环境变量Linux下的环境变量(用env命令查看)1.基本概念环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数。例如:我.原创 2022-02-24 11:06:35 · 2326 阅读 · 3 评论 -
【Linux小练习】进度条程序
简单的进度条程序,多动图展示效果。原创 2022-02-21 08:19:38 · 12813 阅读 · 34 评论 -
【万字详解Linux系列】进程概念
文章目录一、冯·诺依曼体系结构1.冯·诺依曼体系结构2.从冯·诺依曼体系结构理解软件行为二、操作系统(OS)三、进程1.概念2.进程控制块PCB(process control block)四、task_struct1.标示符2.状态3.优先级4.程序计数器2.读入数据总结一、冯·诺依曼体系结构1.冯·诺依曼体系结构常见的计算机(如笔记本)、不常见的计算机(如服务器),大都遵守冯·诺依曼体系结构。那么什么是冯·诺依曼体系结构呢?以C语言为例,当遇到加减乘除模运算时,运算器进行运算,当遇到逻辑判.原创 2022-02-19 17:04:11 · 2390 阅读 · 8 评论 -
【万字详解Linux系列】Linux开发工具(yum,vim,gcc/g++,gdb,make/makefile)
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录一、软件包管理器yum1.什么是软件包:2.ping3.查看所有软件包4.安装软件包5.卸载软件包二、编辑器vim1.模式2.模式间的转变2.命令模式(Normal mode)二、使用步骤1.引入库2.读入数据总结一、软件包管理器yum1.什么是软件包:在Linux下安装软件, 一个通常的办法是下载到程序的源代码, 并进行编译, 得到可执行程序。但是这样麻烦、不便于操作,于是一些人把常用的软件提前编译好, 做成软件包(可以理原创 2021-08-09 17:31:00 · 6038 阅读 · 52 评论 -
【万字详解Linux系列】权限管理
文章目录用户一、pandas是什么?二、使用步骤1.引入库2.读入数据总结用户Linux下有两种用户:超级用户(root)和普通用户。超级用户(root):可以在自己的Linux系统下做任何事情,几乎没有限制。普通用户:在自己的主工作目录(home)下做自己的工作以及在系统上做有限的工作,并且在进行一些操作时会受到权限的限制。Linux是多用户操作系统,指的是多普通用户,超级用户(root)一般只有一个。Linux中的权限是用来限制普通用户的,超级用户(root)几乎没有限制。超级用户(roo原创 2021-08-06 10:48:07 · 1273 阅读 · 8 评论 -
【万字详解Linux系列】Linux常用指令总结
文章目录一、ls及常用选项(1)选项-l(2)-a选项二、clear三、pwd1.引入库2.读入数据总结一、ls及常用选项语法:ls [选项] [目录或文件]功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。结果如下可以看到,我当前目录下有gdb、install.sh、lesson3、lesson4、lesson5五个文件。这个指令就相当于Windows下双击一个目录进入后展示出所有的文件,只不过在Windows下这一过程时自动的。(1)选项-ll原创 2021-08-04 00:21:38 · 21886 阅读 · 100 评论