自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 free命令详解

free内存详解

2023-03-24 15:07:06 511

原创 mysql死锁问题排查

mysql死锁问题排查

2023-02-14 16:57:44 224

原创 linux磁盘管理

linux磁盘管理

2023-02-06 17:02:11 222

原创 find + xargs文件处理技巧

find + xargs文件处理技巧

2023-01-03 15:01:27 822

转载 wireshark数据包分析实战_实战, 我用大白鲨让你看见 TCP

wireshark数据包分析实战_实战!我用“大白鲨”让你看见 TCP_weixin_39575758的博客-CSDN博客前言“哈?啥是大白鲨?”咳咳,主要是因为网络分析工具 Wireshark 的图标特别像大白鲨顶部的角。不信你看:Wireshark“为什么拖了怎么久才发文?”为了让大家更容易「看得见」 TCP,我搭建不少测试环境,并且数据包抓很多次,花费了不少时间,才抓到比较容易分析的数据包。接下来丢包、乱序、超时重传、快速重传、选择性确认、流量控制等等 TCP 的特性,都能「一览无云」。没错,我把 T

2021-12-07 16:21:40 269

原创 IPTables 表、链、规则基础

iptables 防火墙用于管理包过滤和 NAT 规则。IPTables 随所有 Linux 发行版一起提供。了解如何设置和配置 iptables 将帮助您有效地管理 Linux 防火墙。iptables 工具用于管理 Linux 防火墙规则。乍一看,iptables 可能看起来很复杂(甚至令人困惑)。但是,一旦您了解了 iptables 的工作原理及其结构的基础知识,阅读和编​​写 iptables 防火墙规则就会很容易。本文是正在进行的 iptables 教程系列的一部分。这是该系列的第一篇文章

2021-11-29 20:36:04 2322

转载 nmcli网络配置命令

nmcli使用方法非常类似linux ip命令、cisco交换机命令,并且支持tab补全,也可在命令最后通过-h、--help、help查看帮助。在nmcli中有2个命令最为常用:nmcli语法:nmcli [ OPTIONS ] OBJECT { COMMAND | help }   OBJECT和COMMAND可以用全称也可以用简称,最少可以只用一个字母,建议用头三个字母。OBJECT里面我们平时用的最多的就是connection和device,还有其他的选项在里暂时不介绍,这里需要简单区分一下

2021-11-29 15:23:44 5600

转载 nodejs的require加载模块的路径搜索顺序

1.非核心模块加载示例路径:d:\requireDemo\index.jslet modulePahts = require.resolve.paths('express'); //返回被查询的路径console.log(modulePahts);windows下在cmd中执行:# 临时设置环境变量set NODE_PATH=c:\node index.js非核心模块检索路径:node_modules(遍历至根目录) -> NODE_PATH目录 -> 全局目录[

2021-11-20 17:54:37 482

原创 修改json某个属性的值

json_data内容如下:{ "honesty": "haaaaa", "laughter": "Pinkie Pie", "loyalty": "Rainbow Dash"}修改脚本如下:cat json_data | jq 'to_entries | map(if .key == "honesty" then . + {"value":"hello world"} else . ...

2021-11-19 18:33:02 1455

原创 删除软链接的注意事项

1,建立软链接ln -s 源文件 目标文件例如:ln -s /usr/hb/ /home/hb_link2,删除软链接正确的是:rm -rf hb_link错误的是:rm -rf hb_link/ 这个会把整个目录都删了备注:想要删除链接文件要用以下命令 rm /home/hb_link 只是少了一个“ / ” 删除的 就是链接文件, 也就是在文件的最后不要加上/...

2021-11-19 18:30:09 1233

转载 更改 Nginx 服务的默认用户& 关于linux下的nobody用户

更改 Nginx 服务的默认用户<nginx.conf> nginx用户权限在nginx.conf文件的第一行一般是设置用户的地方(编译安装nginx时的参数--user=<user>也是指定用户的地方),如 user www www;如不指定nginx默认用户是nobody. 这里用户的设置又有什么意义呢?主要是指定执行nginx的worker process的用户,linux里所有程序都是文件,都具有权限问题,这个指定的用户对特定的文件有没有权限访问或执行,就是这个用户的意

2021-09-17 11:40:34 4722

原创 centos 网卡重启方法

1、centos6的网卡重启方法:service network restartcentos7的网卡重启方法:systemctl restart network2、centos重启网口方法:关闭网卡口:ifdown eth0 或 ifconfig eth0 down启动网卡口:ifup eth0 或 ifconfig eth0 up3、配置网卡ip增加ip:ifcfg eth0 add 192.168.1.251/24删除ip:ifcfg eth0 del 192.168.1.251/24

2021-06-29 11:26:30 6876

转载 /etc/passwd,/etc/shadow文件详解,及密码复杂度设置

在linux操作系统中, /etc/passwd文件中的每个用户都有一个对应的记录行,记录着这个用户的一下基本属性。该文件对所有用户可读。  而/etc/shadow文件正如他的名字一样,他是passwd文件的一个影子,/etc/shadow文件中的记录行与/etc/passwd中的一一对应,它由pwconv命令根据/etc/passwd中的数据自动产生。但是/etc/shadow文件只有系统管理员才能够进行修改和查看。 /etc/passwd文件介绍  首先,我们通过命令行cat /etc/pa

2021-04-27 10:51:31 8113

原创 vim配置(最简单好用,不包含插件)

set history=1024filetype onsyntax on" 设置配色colorscheme desert" 高亮显示当前行set cursorline" 设置所有Tab和缩进为4个空格set tabstop=4set expandtabset numberset encoding=utf-8"设置文件编码set fileencoding=utf-8" 设置终端编码set termencoding=utf-8...

2021-04-16 14:21:47 221

原创 golang中的信号捕捉与处理,及常见信号含义

golang 中的signal 包的Notify函数函数声明为func Notify(c chan<- os.Signal, sig ...os.Signal)官方描述:Notify函数让signal包将输入信号转发到c。如果没有列出要传递的信号,会将所有输入信号传递到c;否则只传递列出的输入信号。signal包不会为了向c发送信息而阻塞(就是说如果发送时c阻塞了,signal包会直接放弃):调用者应该保证c有足够的缓存空间可以跟上期望的信号频率。对使用单一信号用于通知的通道,缓存为.

2021-03-31 20:17:28 1328

转载 CentOS安装NodeJS

CentOS安装NodeJS在CentOS下安装NodeJS有以下几种方法。使用的CentOS版本为7.2。CentOS其他版本的NodeJS安装大同小异,也可以参看本文的方法。安装方法1——直接部署1.首先安装wgetyum install -y wget如果已经安装了可以跳过该步2.下载nodejs最新的bin包可以在下载页面https://nodejs.org/en/download/中找到下载地址。然后执行指令wget https://nodejs.org/dist/v9.

2021-03-19 17:04:56 3402

转载 nginx编译--configure命令详解

configure命令用来配置nginx编译环境。 该命令定义了系统各方面功能,包括允许nginx使用的连接处理方式。 其执行结果是生成一个Makefile文件。configure命令支持如下参数: --prefix=path— 定义服务器文件的完整路径,该路径同时也是configure命令设置的 相对路径(除类库源文件外)以及nginx.conf文件定义的相对路径的基准路径。其默认 值是/usr/local/nginx。 --sbin-path=path— 设置nginx可执行文件的...

2021-02-22 17:10:24 2621

原创 PCRE正则表达式语法

字符 描述 \ 将下一个 字符标记为一个特殊字符,或一个原义字符,或向后引用,或一个八进制转义符。例如,”\n”匹配一个换行符。序列”\”匹配”\”而”(“则匹配”(“ ^ 匹配输入字符串的开始位置,如果设置了RegExp对象的Multiline属性,^也匹配”\n”或”\r”之后的位置 $ 匹配输入字符串的结束位置。如果设置了RegExp对象的Multiline属性,$也匹配”\n”或”\r”之前的位置 * 匹配前面的子表达式零次或多次。例如,”zo*”能匹配

2020-12-14 09:49:07 1093

转载 使用 openssl 创建自签发证书,含 泛域名证书和IP证书

1. 创建根证书创建秘钥openssl genrsa -out LocalRootCA.key 2048生成证书并自签名,nodes是不用密码openssl req -sha256 -new -nodes -x509 -days 3650 -key LocalRootCA.key -out LocalRootCA.crt -subj "/CN=LocalRootCA"2. 创建域名证书创建秘钥openssl genrsa -out aa.com.key 2048创建请求文件(这是单个域的

2020-12-03 11:53:50 1397

转载 Chrome调试工具使用及waterfall含义详解

1、waterfall含义详解 浏览器根据html中外连资源出现的顺序,依次放入队列(Queue),然后根据优先级确定向服务器获取资源的顺序。同优先级的资源根据html中出现的先后顺序来向服务器获取资源Queuing(排队) 浏览器在以下情况下对请求排队 存在更高优先级的请求,请求被渲染引擎推迟,这经常发生在 images(图像)上,因为它被认为比关键资源(如脚本/样式)的优先级低。 此源已打开六个 TCP 连接,达到限值,仅适用于 HTTP/1.0 和 HTTP...

2020-11-20 16:06:25 5745

转载 解决启动浏览器显示hao123, 2345等网站首页的问题

相信都遇到过这样的情况:自己的谷歌浏览器明明已经设置了启动时打开自己设定的特定网页,但是启动时还是打开了hao123,2345等流氓网页,有一个很简单的小技巧可以解决这个烦人的问题! 先设置谷歌浏览器启动打开某个特定网页(浏览器右上角设置里面),我设置的打开百度 在桌面右键谷歌浏览器快捷方式---属性---打开文件所在位置 找到Google Chrome.exe或者是Chrome.exe 双击打开Google Chrome.e...

2020-10-31 11:45:22 2330

转载 理解Golang包导入机制

Golang使用包(package)这种语法元素来组织源码,所有语法可见性均定义在package这个级别,与Java 、python等语言相比,这算不上什么创新,但与C传统的include相比,则是显得“先进”了许多。 Golang中包的定义和使用看起来十分简单: 通过package关键字定义包: package xxx 使用import关键字,导入要使用的标准库包或第三方依赖包。 import "a/b/c" i...

2020-07-22 17:39:04 291 1

转载 通过未初始化全局变量,研究BSS段和COMMON段的不同

最近正在重温《程序员的自我修养》一书,由于水平比以前有所提升,所以读书的收获也不一样。 下面针对该书3.3.3节BSS段的内容进行更细节的探讨——该节内容不在本文中重复说明了,只说一下结论。对于全局变量来说,如果初始化了不为0的值,那么该全局变量则被保存在data段,如果初始化的值为0,那么将其保存在bss段,如果没有初始化,则将其保存在common段,等到链接时再将其放入到BSS段。关于第三点不同编译器行为会不同,有的编译器会把没有初始化的全局变量直接放到BSS段。...

2020-07-22 16:37:36 687

原创 c/c++源码编译成可执行文件详解

C源文件到可执行文件共经历了4个过程。在使用GCC编译程序时,编译过程可以被细分为四个阶段,包括预处理、编译、汇编、链接。1、预处理 在预处理阶段,编译器主要作加载头文件、宏替换、条件编译的作用。一般处理带“#”的语句。 我们可以通过gcc 的 -E 选项进行查看,如下所示:gcc -E main.c > main.i 编译器将main.c预处理结果输出 main.i 文件。2、编译 在编译过程中,编译器主要...

2020-07-22 16:27:44 1392

原创 惊群效应

很棒的参考资料:https://zhuanlan.zhihu.com/p/51251700 https://blog.csdn.net/lyztyycode/article/details/78648798 https://blog.csdn.net/second60/article/details/81252106 https://blog.csdn.net/russell_tao/article/details/7204260 https://zhuanlan.zhihu.com/p/428

2020-07-19 20:57:03 119

转载 TCP的三次握手和四次挥手最详解

三次握手和四次挥手是各个公司常见的考点,也具有一定的水平区分度,也被一些面试官作为热身题。很多小伙伴说这个问题刚开始回答的挺好,但是后面越回答越冒冷汗,最后就歇菜了。 见过比较典型的面试场景是这样的:面试官:请介绍下三次握手求职者:第一次握手就是客户端给服务器端发送一个报文,第二次就是服务器收到报文之后,会应答一个报文给客户端,第三次握手就是客户端收到报文后再给服务器发送一个报文,三次握手就成功了。面试官:然后呢?求职者:这就是三次握手的过程,很简单的。面试官...

2020-07-19 18:35:04 1778 2

原创 nginx的内存分配机制

https://blog.csdn.net/v_JULY_v/article/details/7040425 https://www.cnblogs.com/uestcjoel/p/6687785.html https://blog.csdn.net/wtzdedaima/article/details/83278402?utm_medium=distribute.pc_relevant.none-task-blog-baidujs-1 http://www.wangyapu.com/2016/06/

2020-07-18 23:27:29 507

转载 火焰图生成,及含义讲解

perf是由Linux Kernel提供的动态追踪调试工具,我们可以使用perf对运行时的程序进行分析相比单纯依赖log,core进行离线排查,perf是一种在线的调试手段,可以在线上随时进行采样并进行分析,无需预先埋点,所带来的只是采样时间段内的一些性能损耗,这种特性使perf很适合于排查未知的问题perf生成的运行时栈可以通过FlameGraph生成交互式的图表,可以更方便地分析热点安装perfsudo apt-get install linux-tools-common ...

2020-07-14 22:34:01 885

原创 top命令用法详解

按大写的 F 或 O 键,然后按 a-z 可以将进程按照相应的列进行排序。 大写的 R 键可以将当前的排序倒转。 通过 f 键可以选择显示的内容。 按 f 键之后会显示列的列表,按 a-z 即可显示或隐藏对应的列,最后按回车键确定。 按 o 键可以改变列的显示顺序。 按小写的 a-z 可以将相应的列向右移动,而大写的 A-Z 可以将相应的列向左移动。最后按回车键确定。 ...

2020-07-14 22:11:41 367

原创 free指令各字段详解

free -m,以MB为单位输出内存使用情况。如下图: 第一行 Mem :表示物理内存的缓存统计total:表示物理内存总量used:表示总计分配给缓存(包含buffers与cach)使用的数量,但其中可能有部分缓存并未实际使用。free:未被分配的内存shared:多个进程共享的内存总额bufers:系统已分配但未被使用的buffers数量cached:系统已分配但未被使用的cache数量 buffers是指作为buffer cac...

2020-07-14 21:53:43 1898

转载 c++内存管理机制详解

[导语] 内存管理是C++最令人切齿痛恨的问题,也是C++最有争议的问题,C++高手从中获得了更好的性能,更大的自由,C++菜鸟的收获则是一遍一遍的检查代码和对C++的痛恨,但内存管理在C++中无处不在,内存泄漏几乎在每个C++程序中都会发生,因此要想成为C++高手,内存管理一关是必须要过的,除非放弃C++,转到Java或者.NET,他们的内存管理基本是自动的,当然你也放弃了自由和对内存的支配权,还放弃了C++超绝的性能。本期专题将从内存管理、内存泄漏、内存回收这三个方面来探讨C++内存管...

2020-07-14 17:53:12 1406

转载 C++虚函数表,虚表指针,内存分布

前言 大家都应该知道C++的精髓是虚函数吧? 虚函数带来的好处就是: 可以定义一个基类的指针, 其指向一个继承类, 当通过基类的指针去调用函数时, 可以在运行时决定该调用基类的函数还是继承类的函数. 虚函数是实现多态(动态绑定)/接口函数的基础. 可以说: 没有虚函数, C++将变得一无是处! 既然是C++的精髓, 那么我们有必要了解一下她的实现方式吗? 有必要! 既然C++是从C语言的基础上发展而来的, 那么我们可以尝试用C语言来模拟实现吗? 有可能! 接下来, 就是我...

2020-07-14 15:52:41 271

原创 【剑指offer】求给定数组的具有最大和的连续子数组

题目:给定一个整数数组nums,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释:连续子数组[4,-1,2,1] 的和最大,为6。class Solution {public: int FindGreatestSumOfSubArray(vector<int> &nums) { int n = nums.size(); ...

2020-07-13 22:05:07 188

原创 【c++ Primier】第十六章 模板与泛型编程

泛型编程鱼面香对象编程一样,都依赖于某种形式的多态性。面向对象编程所依赖的多态性成为运行时多态性,泛型编程所依赖的多态性成为编译时多态性或参数式多态性。 模板定义以关键字template开始,后接模板形参表,模板形参表是用尖括号括住的一个或多个模板形参的列表,形参之间以逗号分隔。模板形参表不能为空。 函数模板定义如下:template <typename T>int compare(const T &v1, const T &v2){ ...

2020-07-11 21:26:35 166

原创 【c++Primier】第十五章 面向对象编程

定义为virtual的函数是基类期待派生类重新定义的,基类希望派生类继承的函数不能定义为虚函数。 继承层次的根类一般都要定义虚析构函数。 除了构造函数外,任意非static成员函数都可以是虚函数。保留字virtual只在类内部的成员函数声明中出现,不能用在类定义体外部出现的函数定义上。 派生类只能通过派生类对象访问其基类的protected成员,派生类对其基类类型对象的protected成员没有特殊访问权限。 引用和指针的静态类型和动态类型可以不同,这是C++用以支持多态性的基石。 无论派生列表中

2020-07-11 21:22:29 140

原创 【c++ Primier】第十四章 重载操作符与转换

用于内置类型的操作符,其含义不能改变。也不能为任何内置类型定义额外的新的操作符。 在&&和||的重载版本中,将失去操作符的短路求值特征,两个操作数都要进行求值,而且对操作数的求值顺序不作规定。因此,重载&&,||,取地址操作符或逗号操作符通常不是一种好的做法。 将操作符设置为类成员还是普通非成员函数,原则如下: 赋值(=),下标([]),调用(())和成员访问箭头(->)必须定义为成员,否则编译出错。 IO操作符应为非成员函数,否则左操作数将只能是该类类型的对

2020-07-11 21:19:03 149

原创 【c++ Primier】第十三章 复制控制

复制构造函数、赋值操作符和析构函数总称为复制控制。复制构造函数是一种特殊构造函数,具有单个形参,该形参(常用const修饰)是对该类类型的引用。当定义一个新对象并用一个同类型的对象对它进行初始化时,将显式使用复制构造函数。当将该类型的对象传递给函数或从函数返回该类型的对象时,将隐式使用复制构造函数。 析构函数是构造函数的互补 当对象超出作用域或动态分配的对象被删除时,将自动应用析构函数。不管类是否定义了自己的析构函数,编译器都自动执行类中非static数据成员的析构函数。 与构...

2020-07-11 21:15:39 138

原创 【c++Primier】第十二章 类

有关类的一些重要知识点:类定义了数据成员和函数成员: 数据成员用于存储与该类类型的对象相关联的状态,而函数成员则负责执行赋予数据意义的操作。 最简单的来说,类就是定义了一个新的类型和一个新的作用域。 public和private关键字 在public部分定义的成员可被使用该类型的所有代码访问; 在private部分定义的成员可被其他类成员访问。 所有成员必须在类的内部声明,一旦类定义完成后,就没有任何方式可以增加成员了。 在类内部,声明成员函数是必需的,而定义成员函数则是可选

2020-07-11 21:11:19 178

原创 【c++ Primier】第十一章 泛型算法

使用泛型算法必须包含algorithm头文件: #include<algorithm>; 标准库还定义了一组泛化的算术算法,使用这些算法则必须包含numberic头文件 #include<numeric>1. 只读算法find(vec.begin(),vec.end(),search_value) 使用两个迭代器和一个值调用find函数,检查两个迭代器实参标记范围内的每一个元素,只要找到与给定值相等的元素...

2020-07-11 20:54:48 132

原创 【c++Primier】第十章 关联容器

关联容器类型:map set multimap multiset.1. pair类型pair<T1,T2> p1; 创建一个空的pair对象,它的两个元素分别是T1和T2类型,采用值初始化。 pair<T1,T2> p1(v1,v2); 创建一个pair对象,它的两个元素分别是T1和T2类型,其中first成员初始化为v1,而second成员初始化为v2 make_pair(v1,v2) 以v1和v2值创建一个新的pair对象,其元素...

2020-07-11 20:24:28 169

空空如也

空空如也

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

TA关注的人

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