
Linux
文章平均质量分 63
羊驼儿
菜鸟上路
展开
-
网络:叮 这里有一份post和get请求区别 请注意查收
HTTP协议中post和方法的区别Http协议是应用层的网络协议,协议约束了网页的服务端和客户端的通信我们在学习Http协议时原创 2021-04-25 14:50:28 · 276 阅读 · 0 评论 -
Linux:关于死锁
概念 死锁是至在一组进程中的各个进程都占有不会释放的资源,但因为它们都在申请被其他进程所占用不会释放的资源,就将处于一种永久等待的状态。原因产生的原因可以主要分为以下两点:竞争资源系统中的资源大致分为了两类:可剥夺和不可剥夺资源,当通讯顺序不当时就会发生死锁进程间顺序非法进程被占用而阻塞于是进程就产生了死锁死锁的四个必要条件互斥条件:一个资源每次只能被一个执行流所使用请求与保持条件:一个执行流因为请求资源而阻塞时,对已获得的资源保持不放;不可剥夺条件:一个执行流已获得的资源,原创 2021-04-14 23:55:17 · 197 阅读 · 0 评论 -
Linux:线程和进程的区别,新鲜出炉啦~
线程和进程概念进程的优缺点线程的优缺点区别怎样理解进程和线程的并发性什么时候会用到多线程 在比较线程和进程之间有什么区别前,我们先来一起回顾一下线程和进程的相关概念和特点。概念进程:一个在内存中运行的程序。每个进程都有自己独立的一块内存空间,进程是操作系统进行资源分配的基本单元。线程:线程是进程中的一条执行流,是CPU调度的基本单元,在Linyx中这个线程的执行流通过pcb实现。一个进程至少有一个线程,一个进程可以运行多个线程,多个线程可以进行共享数据。如果还是觉得难以理解,我们看看它的抽原创 2021-04-14 23:32:03 · 269 阅读 · 0 评论 -
Linux:动态查看错误日志信息
当程序出现错误难以定位问题的时候,可以查看错误日志解决相关的问题,可以在错误日志目录下执行命令tail -f 文件名即可动态查看日志的内容tail -f a.out |grep -C 36 ERROR该命令实时读取日志文件,把出现“ERROR”行的日志前后各36日志打印出来。我们也可以把日志记录到文本中:tail -f a.out |grep -C 36 ERROR >>error.log如果日志在更新,如何实时查看 tail -f /var/log/messages原创 2021-04-13 00:03:44 · 7134 阅读 · 0 评论 -
网络:HTTP状态码及出错的原因
之前在博客中介绍了HTTP状态码相关内容,这篇文章主要是针对常见的几种错误码的原因以及相关的场景进行探究。博客链接我们在访问一个网页时经常会遇到400、404、500这样的错误页面。我们了解4xx是客户端错误,5xx服务器错误,而客户端错误,往往是由于客户端引起的某些错误进行导致的,(如:Web浏览器、URL命令、postman等服务器发出的请求)而服务器错误,是服务器发生了错误或者服务器识别出无法处理的请求时,将发送500-599的错误状态码400页面400错误页面一般为网站服务器资源原创 2021-04-12 23:25:16 · 1448 阅读 · 0 评论 -
高频:怎样理解三次握手和四次挥手,详解请猛戳这里~
TCP三次握手和四次挥手TCP的连接建立1.TCP三次握手过程和状态转换过程2.查看TCP状态的方法3.为什么是三次握手4.为什么客户端和服务端的初始序列号ISN是不相同的5.初始序列号ISN怎样产生6.TCP层需要MSS的原因7.SYN攻击及避免SYN的方式TCP的连接断开1.TCP四次挥手和状态转换过程2.为什么是四次挥手3.为什么TIME_WAIT等待的时间是2MSL4.为什么需要TIME_WAIT状态5.TIME_WAIT过多有什么危害6.优化TIME_WAIT的方式7.建立连接后客户端出现故障的解原创 2021-04-08 20:44:37 · 434 阅读 · 0 评论 -
网络:TCP/UDP协议一篇就搞懂
目录再谈传输层TCP的基本认识1.TCP的头格式2.为什么需要TCP协议3.什么是TCP连接,如何确立4.TCP的最大连接数UDP和TCP1.UDP头部格式2.UDP特点3.UDP的缓冲区4.TCP/UDP区别及应用场景 TCP和UDP协议是我们经常使用到的协议,关于网络协议这一方面理解起来较为抽象复杂,这两个协议其实都属于传输层协议,但是它们之前的区别与联系却暗含了很多的知识点,关于TCP和UDP编程可以参考之前的博客链接,这篇文章梳理了相关的知识点,图片来源于大佬分享的一篇文章,原文在这里再谈传输原创 2021-04-02 20:04:08 · 1849 阅读 · 0 评论 -
网络:简单的TCP网络程序
和UDP类似需要用到的头文件:原创 2021-03-26 22:53:17 · 184 阅读 · 0 评论 -
网络:简单的UDP网络程序
UDP的大致流程如下:UDP服务器和客户端实现需要的头文件#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>原创 2021-03-26 17:02:52 · 147 阅读 · 0 评论 -
网络:UDP网络编程的小前提
在了解如何创建套接字后,我们要实现UDP网络程序过程,在此之前,我们先对其部分功能进行测试验证;在这里插入代码片验证:sockfd是不是文件描述符;是否成功绑定端口:查看端口是否被绑定——>netstat -anp (可以查看当前操作系统端口的占用情况)...原创 2021-03-26 16:46:49 · 116 阅读 · 0 评论 -
如何进行数据的抓包
抓包抓包就是对网络传输中发送与接收的数据包进行截获、重发、编辑、转存等操作。前提:抓取的数据包是从网卡设备中进行抓取的;winwiresharkLinuxtcpdump从上图我们就可以了解到tcpdump就是我们使用的一个工具;我们在使用它时有一个万能公式:tcpdump -i any port [端口] -s 0 -w 文件名一定是在root用户下进行抓包的哦...原创 2021-03-26 15:59:43 · 2985 阅读 · 0 评论 -
vim打开文件提示:Found a swap file by the name
使用vim编辑器编写代码时,由于网络的不稳定,断开了链接,而写好的代码也没有进行运行和保存,而此时再进入之前写好的代码文件时,就会出现以下的提示界面:发现出现了这样的报错提醒:Found a swap file by the name产生原因文件发生了异常中断(非正常退出)时,就会在当前目录下生成了一个***.swp文件(我在使用时cli.cpp.swp文件)。在Linux中,以.开头的文件都是隐藏文件,可以通过使用ll -a或者ls -a来查看。这种swp文件是隐藏文件,有两个作用:避免用原创 2021-03-24 22:18:56 · 26429 阅读 · 1 评论 -
CentOS No entry for xxx in x section of the manual的解决方法
CentOS No entry for xxx in x section of the manual的解决方法问题:想要查看系统调用的函数说明时,发现产生了如下图的报错产生的原因:centos默认安装的manual是精简版解决方法:切换到roo 用户下 安装man-pages安装时按照提示确认即可完成安装这样我们便可以使用man 进行查询了~...原创 2021-03-24 15:20:36 · 538 阅读 · 0 评论 -
网络:socket编程的初步了解
应用层通过传输层进行数据通信时,TCP和UDP会遇到同时为多个应用程序进行提供并发服务的问题。多个TCP连接或者多个应用程序进程可能需要同一个TCP协议端口进行传输数据,为了区别不同应用程序进程和连接,需要计算机操作系统为应用程序与TCP/IP协议交互提供了套接字(Socket)的接口,区分不同应用程序与进程间的网络通信和连接。创建套接字接口:int socket(int domain, int type,int protocol)domain:地址域,指定网络层到底使用什么协议;其中原创 2021-03-22 19:44:48 · 265 阅读 · 0 评论 -
网络:认识网络字节序
之前在我们学习C语言时,我们知道内存中的数据相对于内存地址有大端和小端之分,磁盘文件中的多字节数据相对于文件中的偏移地址也有大端小端之分,网络数据流向同样也有大端小端之分,那么怎样去定义网络数据流的地址呢?我们先来了解以下几个概念:小端:地位低地址;大端:高位高地址:字节序:CPU对内存的访问顺序;主机字节序:指的是机器本身的字节序,如果是大端,则主机字节序就是大端;如果是小端,主机字节序就是小端;网络字节序:规定网络中传输的字节序使用大端;如果是小端机器在传输数据的时候,需要将数据转化为大端原创 2021-03-22 10:34:13 · 629 阅读 · 0 评论 -
网络:TCP/IP五层(或四层)模型及网络传输的基本流程
TCP/IP五层(或四层模型)分层名称功能典型的协议应用层针对特定应用的协议(我们所说的程序员就是在这一层进行工作的 )HTTP协议、DNS协议、DHCP协议传输层管理两个节点之间数据的传输,负责可靠传输(保证数据被可靠的传送到目标地址)TCP协议、UDP协议网络层负责路由转发以及地址管理 IP协议 典型的设备:路由器数据链路层负责相邻设备的传输 以太网协议 典型的设备:交换机物原创 2021-03-21 23:49:19 · 2184 阅读 · 0 评论 -
网络:网络协议的初识
网络发展背景网络发展 计算机自诞生伊始,经历了一系列演变与发展。大型通用计算机、超级计算机、小型机、个人电脑、工作站、便携式电脑以及如今出现的智能手机终端等,都是这一过程的产物。起初,计算机以单机模式被广泛使用, 随着计算机不断发展,多台计算机连接成一个计算机网络。独立模式:计算机之间相互独立;网络互联:多台计算机连接在一起,完成数据共享;局域网LAN:计算机数量更多了,通过交换机和路由器连接在一起;广域网WAN:将远隔千里的计算连接在一起.计算机网络就类似于人的神经网络系统。一个人身上原创 2021-03-20 15:32:44 · 117 阅读 · 0 评论 -
Linux:共享内存的详细解释在这里
共享内存原创 2020-11-11 11:58:38 · 518 阅读 · 0 评论 -
Linux:进程间通信-----管道的深入学习,快来看看吧~
管道原创 2020-11-08 22:17:20 · 267 阅读 · 0 评论 -
Linux:进程退出/等待/替换,这些进程控制都学会了吗?
进程终止原创 2020-11-07 17:33:56 · 318 阅读 · 0 评论 -
Linux:还有人不会使用项目自动化构建工具嘛?
项目自动化构建工具-make/makefile原创 2020-11-04 20:26:10 · 139 阅读 · 0 评论 -
Linux:快来深入学习了解进程基本概念啦
进程管理是操作系统重点、难点问题,也是贯穿Linux学习的知识点。那么什么是进程呢?1.为什么引入进程的概念?从理论角度看,是对正在运行的程序过程的抽象;从实际角度看,是一种数据结构,旨在清晰的刻画动态系统的内在规律,可以有效管理和调度进入计算机系统主存储器运行的程序。2.进程的基本概念用户角度:进程就是一段程序的执行过程进程实际上就是一个程序的运行中的描述,这个描述称为PCB(进程控制块),Linux下PCB就是一个task_struct结构体task_struct结构体task_原创 2020-11-02 23:44:08 · 274 阅读 · 0 评论 -
Linux:gcc/g++编译器的使用
编译器编译过程要经历四个阶段:1.预处理(进行宏替换)2.编译(生成汇编)3.汇编(生成机器可识别代码)4.连接(生成可执行文件或库文件)gcc完成过程原创 2020-09-17 19:51:54 · 503 阅读 · 0 评论 -
Linux:使用sudo时user is not in sudoers file的解决
在使用yum命令安装包时出现了not in sudoers file这样的提醒xx是你当前的用户名,其实就是因为这个用户没有加入到sudo的配置文件当中,解决的办法就是到开配置文件加入到用户权限当中解决方法step 1:使用su root 切换成root 用户,并输入以下命令进入sudo配置文件step 2:在配置文件里找到下面 root ALL=(ALL) ALL在它下面的一行加入自己的用户权限,保存并退出(注意:这里的文件是可读的状态,在进行写入时,输入a进入插入模式原创 2020-09-17 10:54:38 · 1081 阅读 · 0 评论 -
Linux:如何安装CentOS7及虚拟机常见问题解决办法
虚拟机的关机方法:虚拟机在不使用的时候挂起就可以了,不要粗暴的去尝试用它的关闭按钮,亲身经历的惨痛教训,粗暴关闭后解决的最有效的方式就是重新安装了也可以使用命令进行关闭shutdown -h now笔者在使用VM虚拟机时曾经遇到过以下些问题,这里附上一些解决办法的链接,供大家参考,希望能为大家带来一些帮助。1.CentOS安装配置无脑式安装配置过程2.VM ware无法关机 虚拟机繁忙解决方法3.VMware虚拟机不能联网解决方法4.VMware虚拟机被占用解决方法5.未能将管道连原创 2020-09-16 21:56:45 · 265 阅读 · 0 评论 -
Linux:vim编辑器的使用
vim编辑器vim——命令行下的文本编辑工具文本编辑:插入数据、复制、剪切、删除、保存、退出编辑默认不支持鼠标的操作,并且没有Windows下的快捷键的使用vim的使用vi/vim的区别在于,它们都是多模式编辑器,但vim是vi的升级版本,它不仅兼容vi的所有命令,而且还有自己的一些新特性。vim的基本概念...原创 2020-08-14 00:46:01 · 99 阅读 · 0 评论 -
Linux:怎样让Vim编辑器显示行数
我们习惯了在Windows系统下编写代码报错精准到某一行,但当我们第一次使用vim编辑器写代码时,这个时候的环境是没有配置好的,这样改如何设置呢?下面我就教教无脑式的设置行号一、暂时性的设置行号如果只是临时性的显示vim中的行号,只需要按ESC键退出编辑内容的模式,回到普通模式下输入:set number按回车键就可以显示行号了,行号显示只是暂时的,退出后就不再显示行号了二、永久性的设置行号...原创 2020-08-13 22:29:22 · 31989 阅读 · 4 评论 -
Linux:权限管理详解,看了就会系列
Linux权限管理概念Linux下有两种用户:超级用户(root)和普通用户超级用户:可以在Linux系统下做任何操作,不受限制。普通用户:在Linux系统下做有限的操作。超级用户的命令提示符是“#”。普通用户的命令提示符是“$”。命令:su[用户名]功能:切换用户Linux权限管理...原创 2020-08-13 21:15:53 · 374 阅读 · 0 评论 -
Linux初识:基础指令的使用介绍在这里
ls指令语法:ls [选项] [目录或命令]功能:对于目录,列出该目录下的所有子目录与文件;对于文件,列出文件名以及其他信息;默认浏览当前目录下所有文件信息,每当打开一个终端,都会处于一个目录(当前用户的家目录)常用选项:-l 列出文件的详细信息-d 将目录像文件一样显示,而不是显示其下的文件(如:ls-d指定目录)-t 以时间排序-s 在文件名后输出该文件的大小(大小排序,...原创 2020-03-25 14:01:24 · 240 阅读 · 0 评论