
Linux系统
文章平均质量分 72
KentZhang_
提供网络加速、SD-WAN、零信任等网络解决方案。微信号:kentonly2024
展开
-
Linux系统平均负载的含义
定义平均负载,表示当前正在运行的线程加上等待运行的线程的数量。## 8.70表示过去1分钟的平均负载,7.33表示过去5分钟的平均负载,6.29表示过去15分钟的平均负载top - 10:01:07 up 83 days, 23 min, 1 user, load average: 8.70, 7.33, 6.29 分析对于一个良好的系统,平均负载应该小于CPU核心数,这意味着所有的任务都可以被及时处理,而不需要等待,反之说明任务过多,无法及时响应,长期处于这样的状态,机器存在性能问题。原创 2021-11-21 10:19:41 · 1373 阅读 · 0 评论 -
gdb调试命令总结
之前已经写过一篇博客《Linux下使用gdb调试C/C++程序》,是一些简单的用法,今天的这一篇可以算是进阶篇。一、关于多线程的使用命令 1、thread 查看当前线程的ID,这ID是GDB对线程的编号,从1开始的。以下所说的线程ID,都是这种ID。 2、info thread 查看当前可以被调试的线程,ID前面有*号的表示GDB当前所在的线程。 3、thread thread_number GDB切换到线程原创 2016-06-09 18:56:33 · 854 阅读 · 0 评论 -
一个简单的socket编程demo
记录这个demo,相当于是保留一份代码片段,以后可以随时拿来用,验证新的想法。人的大脑是很靠谱的,经常记错东西,需要保留一个索引,放在这里。服务端#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>#include &a原创 2018-12-16 16:44:03 · 1333 阅读 · 0 评论 -
linux下常用时间函数
在linux下编程,有一些常用的时间函数,下面做一个总结梳理。1、timeSYNOPSIS #include <time.h> time_t time(time_t *t);DESCRIPTION time() returns the time since the Epoch (00:00:00 UTC, January 1, 197...原创 2018-11-28 00:32:45 · 403 阅读 · 0 评论 -
系统监控之top
文章目录简介打印输出含义说明统计区第一行:TasksCpuMemSwap字段头任务区其他操作技巧只监控某个进程显示单个Cpu的统计信息改变排序方式显示完整的命令简介top可以用来实时显示linux系统的运行情况。打印输出top命令输出三个部分:统计区 主要由统计任务、CPU、内存、交换区的信息字段头 任务的字段头,标明字段的含义任务区 每一行打印一个任务信息## 统...原创 2018-12-02 23:49:23 · 472 阅读 · 0 评论 -
tcpdump简明实用教程
文章目录网络包的五元组包输入包过滤1、IP过滤2、端口过滤3、IP和端口组合过滤与或非4、协议过滤包输出1、保存包到文件2、指定包的数量3、显示IP和端口号4、显示时间戳5、以ASCII码打印6、以ASCII和二进制同时打印谈谈如何记忆参数的使用网络包的五元组在网络中,一个五元组确定一种网络包,五元组包括:协议,tcp或者udp等等源IP目的IP源端口目的端口那么tcpdump...原创 2018-11-10 12:03:53 · 1800 阅读 · 0 评论 -
IP地址转换总结
一、IP地址结构体相关定义本文只讨论IPv4的情况,IPv6的相关转换,在项目中我也使用过,基本类似。struct sockaddr_in { sa_family_t sin_family; /* address family: AF_INET */ in_port_t sin_port; /* port in network byte order原创 2017-03-08 22:33:56 · 610 阅读 · 0 评论 -
select 和 epoll 的区别总结
在Linux中,select 和epoll函数,都是为了监控大量的描述符,是一种I/O多路复用技术。下面总结它们的区别:select 与 epoll区别1、打开的最大描述符数量限制 select 文件描述符使用的是linux ext3,因此打开数量受限制,一般默认为1024 epoll自己实现了一个虚拟文件系统,因此打开的描述符数就和机器内存有关,这个数值会很大2、原创 2016-01-19 21:15:21 · 1050 阅读 · 0 评论 -
Linux下程序开机自启动
在windows下是一个应用程序开机自启动,只需要把它加入开机启动项即可,那么在Linux下如何设置呢?下面介绍两种方法可以使Linux下的应用程序开机自启动。第一种方法:在启动脚本/etc/rc.local添加启动命令。下面编译生成一个小程序:StartMain/*******************************************************原创 2015-12-12 21:23:51 · 1711 阅读 · 0 评论 -
Linux下POSIX正则表达式API使用
一、概述在Linux环境中,经常使用正则表达式,如grep、sed、find等等,目前正则表达式有2中不同的标准,分别是Perl标准和POSIX标准,这2种风格,大体相同,稍有差别。在 C/C++的标准库均不支持表达式,不过在C++11标准中,貌似引入了boost的正则库,在Linux环境中也自带了一组API支持正则,即POSIX标准的C接口。常用的一组API如下:int regcom原创 2015-12-12 11:01:33 · 1096 阅读 · 0 评论 -
Linux下使用gdb调试C/C++程序
在笔者工作实践中,使用gdb调试C++程序和调试C程序,他们稍有不同,下面是使用总结。一、编译选项-g 生成调试信息-gstabs+ 以stabs格式声称调试信息,并且包含仅供gdb使用的额外调试信息生成调试信息,是阻止编译器将局部变量优化的寄存器里, 笔者在调试C++程序时,不加这个选项,所有的变量都打印不出来,gdb提示说没原创 2015-08-27 14:55:29 · 1313 阅读 · 0 评论 -
一个守护vsftp进程的脚本
最近一个朋友遇到了如下需求任务,是要求用shell实现一个常驻程序,让我帮助他完成。需求如下:原创 2015-08-25 21:56:38 · 1225 阅读 · 0 评论 -
Makefile的编写总结
在Linux做开发,工程的编译输出,需要自己编写Makefile来构建,下面笔者根据自己的实践,做一些总结,本文并不是什么教程,只是笔者觉得一些重要的东西在此记录下来。一、基本格式target : dependcommandtarget 是要生成的目标文件,可以是可执行文件、*.o、*.a、*.so等文件,当然也可以一个伪目标。depend 是依赖文件,可以是源文件原创 2015-09-01 22:10:24 · 1182 阅读 · 0 评论 -
Linux下静态库、动态库的创建和使用
Linux下静态库、动态库的创建和使用Linux库文件名由:前缀lib、库名和后缀3部分组成,静态库通常以.a作为后缀,动态库以.so作为后缀,Linux下把动态库叫做共享库,so即shared object的缩写。静态库是程序编译链接时使用,动态库是程序运行时使用。预备知识:a) 2个重要的环境变量:LIBRARY_PATH : 库文件(静态库或者动态库原创 2015-08-25 20:26:24 · 838 阅读 · 0 评论 -
Vim命令使用总结
Vim的使用命令非常繁多,要想全部掌握,那是不现实的,也没有必要,只需要掌握常用的命令,便可在工作中使用地得心应手。注意下面括号中内容为笔者的注释。一、基本命令(命令模式)help command ---命令帮助手册(例如执行:help w 将给出w命令的解释)w ---写入文件q ---退出Vimq! ---不保存强制退出Vimshift + zz ---退出原创 2015-08-20 23:39:57 · 648 阅读 · 0 评论 -
再谈Linux下的动态库
为了解决上一篇的博客《Linux下静态库、动态库的创建和使用》最后留下的问题,今天总结一下Linux下动态库版本号的控制。一、动态库版本号的组成 对于上一篇博客中提到的库文件libcurl.4.3.0,其中4代表主版本号,3代表次版本号,0代表发行版本号, 因此动态库的命名形式为:libname.x.y.z x -- 主版本号(不兼容):重大升原创 2015-08-26 18:35:55 · 1013 阅读 · 0 评论