
Linux
文章平均质量分 70
NeilZhy
天道酬勤,还有一年
展开
-
Ubuntu 将 /home 或 /var 目录挂载到新的分区
背景在使用 docker 的过程中,docker 会将某些产物放到 /var/lib/docker/volumes 这会占用很大的跟目录磁盘空间,于是想办法将 /var 目录挂载到另一个一个单独的磁盘上面。参考链接如下:Ubuntu将var目录挂载到新硬盘步骤1. 查看当前磁盘空间df -h [目录名]比如 df -h 能够查看整个系统的磁盘情况。2. 创建新目录上图中我已经创建了一个新的目录,是 /media/var ,这里再重新操作一遍。sudo mkdir /media/var原创 2021-04-22 14:51:22 · 2912 阅读 · 0 评论 -
on-my-zsh git 仓库下运行卡顿
在 oh-my-zsh 进入 包含 git 仓库目录时,执行 ls 时会比较卡顿原因:oh-my-zsh 要获取 git 更新信息解决办法:设置 oh-my-zsh 不读取文件变化信息(在 git 项目目录执行下列命令)$ git config --add oh-my-zsh.hide-dirty 1如果还是慢,可以再设置 oh-my-zsh 不读取任何 git 信息$ git config --add oh-my-zsh.hide-status 1...原创 2020-11-26 11:35:26 · 556 阅读 · 0 评论 -
awk1.0 — awk基础
简介grep,sed,awk被称为Linux文本处理的三剑客,各有特点 grep:适合文本的匹配和查找 sed:编辑匹配到的文本 awk:对文本进行格式化输出 awk简介awk的基本语法是awk [options] 'Pattern {Actions}' file1,file2...Actions指的是工作,awk擅长文本输出,最常用的动作是print和pri...原创 2018-08-17 09:31:20 · 323 阅读 · 0 评论 -
搜索引擎Killed原因排查
问题描述腾讯云单核2G内存,运行程序的时候,程序有时会挂掉了,设置ulimit -c unlimited之后,想要core文件,结果程序运行的时候,直接提示killed,没有出现core文件调研查询killed的原因多是因为内存不足了,系统自动将程序杀死,此时没有出现core文件 使用free -h查看内存使用情况[root@VM_125_247_centos serv...原创 2018-08-16 07:58:47 · 689 阅读 · 0 评论 -
GDB调试
理解coredumpcoredump中文意思是核心转储,是程序在崩溃的时候,操作系统保存的一个内存快照。实际是一个二进制文件,主要包括如下内容,进程此刻内存、寄存器状态、运行堆栈等信息。 该文件可以使用GDB打开调试。有点时候,即使程序崩溃了也不会出coredump文件,原因是我们需要通过ulimit -c unlimited来进行设置,这样子才会保存文件。编写出错文件...原创 2018-08-16 07:56:36 · 259 阅读 · 0 评论 -
高并发简单设计
系统内存不足,主要是每次来一个请求的时候,就要创建倒排的哈希,这个时候如果高并发的情况下,就会出现问题,每次一个倒排索引占据内存,内存只有2G肯定是不够使用的可以根据日志分析的结果,看看用户搜索哪些内容的数据比较多,然后建立一个缓存一般小型网站的设置 CDNCDN把一些访问的数据缓存到全国的各地,当用户请求的时候,首先访问最近的CDN服务器,然后获取数据 反向代...原创 2018-08-16 07:54:50 · 292 阅读 · 0 评论 -
五种IO模型
五种IO模型在进程使用磁盘的数据的时候,需要用到几个空间 磁盘 内核缓冲区kernel buffer 用户缓冲区app buffer 其中内核缓冲区和用户缓冲区都属于内存的范畴,首先内核需要将数据从磁盘拷贝到内核缓冲区,然后再从内核缓冲区拷贝到用户缓冲区,接下来才能够被用户进程使用 这里首先定义几个角色和空间,两个角色kernel,httpd,五个存储空间磁盘,内核...原创 2018-08-16 07:51:24 · 449 阅读 · 0 评论 -
关于timewait状态
四次挥手主动关闭连接的一方,调用close,协议层发送FIN包,在TCP报头的FIN字段设置为1,意思是我要和你断开链接,主动关闭连接的一方进入到了FIN_WATI_1状态 被动关闭的一方收到了FIN包之后,协议层回复ACK包,在他的TCP报头中将ACK设置为1,表示收到了对方的关闭连接请求,被动 的一方进入到了CLOSE_WAIT状态;主动关闭的一方收到了被动关闭一方的响应...原创 2018-08-08 22:53:57 · 629 阅读 · 0 评论 -
简单protobuf
protobuf的数据类型,有最简单的那种数据类型,就是一个文件中,定义了一个message 可以在一个文件中定义两个message,两个message之间是没有关联的可以在一个文件中,定义两个message,其中一个是简单的,他作为了另个一的字段message SearchResponse { repeated Result result = 1;}message Re...原创 2018-08-08 22:36:31 · 192 阅读 · 0 评论 -
简单shell
执行脚本结果重定向sh hah.sh hello 1>>/home/qiso/job.log 2>&1上面这句话的意思是 首先通过sh执行脚本hah.sh,其中执行这个脚本的时候,需要传入参数,参数是hello, 1表示的是标准输出,以上脚本执行完毕之后,首先执行2>1这个意思是说将标准错误重定向到标准输出,0,1,2分别表示标准输入,标准输出和标准...原创 2018-08-08 21:24:59 · 213 阅读 · 0 评论 -
awk2.0 — awk分隔符
再次重申awk的语法 awk [options] ‘Pattern {Actions}’ file1,file2…awk默认分隔符是空格,分隔符有分为“输入分隔符”和“输出分隔符”。 输入分隔符:awk在处理每一行文本的时候,以默认的空格将文本分隔成一个个单词作为变量。 输出分隔符:awk处理完文本之后,输出显示的时候,以空格分开。 输入分隔符如果文本是空格隔...原创 2018-08-18 09:13:13 · 1330 阅读 · 0 评论 -
高并发系统搭建:web负载均衡
高并发系统搭建:web负载均衡所谓的负载均衡就是让多个请求尽量均衡的分配到不同的机器上面去 1. HTTP负载均衡 当用户的请求发来之后,web服务器通过修改HTTP响应报头中的Location标记,返回一个新的url,然后浏览器继续请求这个新的url,实际上就是页面重定向。重定向有一个3开头的返回码,然后在 在响应报头中的location中记录了重定向之后的url 缺点:在访问量很大...原创 2018-08-15 08:01:37 · 1043 阅读 · 0 评论 -
awk基础
基本原理awk的工作是这样子的,awk每次以”\n”为分隔符从而读取文件的一行 然后以空格为分隔符,将所有的单词分开 然后用符号表示每一个单词,符号表示每一个单词,符号表示每一个单词,0表示所有的单词,1表示第一个单词,1表示第一个单词,1表示第一个单词,2表示第二个单词使用规则awk的使用一般是awk '{awk命令}' 文件名awk的命令必须包含在’{}’中 ...原创 2018-08-04 22:27:26 · 691 阅读 · 0 评论 -
centos设置网络自动启动
问题描述centos7虚拟机如何设置开机自启动网络设置解决方法切换到root用户进入到网络设置的目录下面cd /etc/sysconfig/network-scripts/当前目录下面有一个类似于ifcfg-ens33,使用vim打开文件进行编辑,将ONBOOT=no修改成为yes就可以了...原创 2018-05-15 14:55:12 · 629 阅读 · 0 评论 -
网络概述
网络概述理清网络提纲知识原创 2017-12-23 18:49:43 · 1953 阅读 · 0 评论 -
《UNIX高级环境编程》 -- apue.h
《UNIX高级环境编程》apue.h原创 2017-12-23 18:48:13 · 535 阅读 · 0 评论 -
计算机网络基础 1.0 -- 概述
概念理解报文:在网络中发送的数据块成为报文在发送报文之前,通常会把数组分组,每个组都有个包头和数据组成,包头中包含了诸如目标地址和源地址等重要信息,这样才保证了数据能够有目的的在网络中的传输主机是用户用来处理信息的,而路由器则是用来转发分组的,就是将报文传送到下一个路由器,知道找到目标地址链路:经常把网络中的单个通信线路称为链路我们的一台主机的报文通过一条链路发送给和他直接相连的路由器,路原创 2017-09-12 10:06:26 · 1382 阅读 · 0 评论 -
epoll
select,poll,epoll都是多路复用的一种机制,多路复用就是通过一种 机制监听多个文件描述符,当文件描述符就绪之后,就通知相关的程序就行读写的操作 select,poll实际上是让内核去不断的轮询,看看时间是否发生了,文件描述符的拷贝,只要一次从用户态拷贝到内核态 epoll是通过回调函数的机制,当时文件描述符就绪之后,就会将唤醒等待队列上面的等待者,等待着调用回调函数,就就...原创 2018-08-16 08:01:58 · 599 阅读 · 0 评论 -
vim配置
vim ~/.vimrc将下面的文件填写进去就好了set nuset tabstop=4set nobackupset expandtabset autoindentset bg=darksyntax onset mouse=afiletype plugin indent onset cindent shiftwidth=4set ts=4set sw=4highl...原创 2018-08-16 11:36:53 · 254 阅读 · 0 评论 -
awk 6.0 — awk模式之二
awk的语法 awk [options] ‘Pattern {Actions}’ file1,file2… 之前介绍了三种模式:空模式,关系运算模式,BEGIN/END模式正则模式模式可以理解成条件,正则模式就是满足正则表达式条件的,就执行相应的动作,否则不执行。 如果我们想要找到在/etc/passwd文件中,以“_krb”开头的内容该如何找呢 gre...原创 2018-08-22 08:51:08 · 262 阅读 · 0 评论 -
CMake学习资料
CMake 官方 FAQhttps://gitlab.kitware.com/cmake/community/wikis/FAQCMake 官方文档https://cmake.org/cmake/help/cmake2.4docs.htmlCMake 视频教程https://www.youtube.com/watch?v=CLvZTyji_UwCMake 维基教科书https://z...原创 2019-07-18 10:02:57 · 219 阅读 · 0 评论 -
Cmake 实例学习 一
一. 第一个简单的例子在一个目录下面实现一个简单的 hello world 程序使用cmake进行构建的时候,每个目录下面都要有一个 CMakeLists.txt 的文件如果是一个稍微大的工程,有多级目录,在上级目录中的 CMakeLists.txt 中会有定义要求编译子目录的逻辑当前目录中定义了一个main.c 和 CMakeLists.txt 文件,两个文件的内容分别如下main....原创 2019-07-13 15:02:02 · 386 阅读 · 0 评论 -
因链接静态库先后顺序不正确,引起符号定义找不到
问题项目中需要链接多个静态库,在编译的时候报错如下sdi_io.cpp:(.text._ZN13sdi_H264EncIO7DataPopEPm+0x30):对‘H264ENC_StatusGet(H264ENC_Status_t&)’未定义的引用可能原因是符号确实没有定义,而本文出现这个问题的原因是,链接的静态库有前后的依赖顺序解决方案方法一:修正静态库的链接顺序:可以通过手...原创 2019-05-15 11:02:06 · 3352 阅读 · 0 评论 -
gdb 调试
传参如果程序执行的时候需要加入参数,如./sample aa bb使用 gdb 的时候可以使用如下方式gdb --args ./sample aa bb执行启动 gdb 之后,直接使用 r,就是 run 的意思,或者可以使用 b 加一个断点进行调试。处理信号如果在使用的时候,遇到类似下面的报错Thread 2 “sample_sd_abnor” received s...原创 2019-03-29 20:34:11 · 551 阅读 · 0 评论 -
s32v 开发板安装 apex 驱动
安装驱动首先要获取到 apex.ko 文件,这个应该是硬件厂商提供,执行下面命令安装首先需要给 apex.so 文件加上可执行权限insmod apex.ko查看是否安装成功执行下面命令,查看是否安装成功,如果安装成功,执行的结果中会有 apexlsmod使用测试程序测试硬件厂商会提供测试程序,成功安装 apex 的设备可以通过测试程序测试结果...原创 2019-03-13 15:44:41 · 497 阅读 · 0 评论 -
网线直连开发板
pc 端配置点击pc端无线链接图标编辑链接以太网编辑IPv4设置方法:与其他计算机共享根据putty获取的动态ip使用ssh登录解决 ip 无法登录问题设置 pc 端 ip 和开发板 ip 在同一个网段比如开发板 ip 是 10.42.0.123可以设置自己机器的 ip 为 10.42.0.11sudo ifconfig xxxxx 10.42.0.11...原创 2019-03-13 13:33:57 · 920 阅读 · 0 评论 -
putty 串口登录开发板
安装putty多个平台均可以安装puttypc端配置使用串口线连接开发板ls /dev查看是否出现类似于ttyUSBx的文件sudo putty弹出页面,选择SerialSerial line填写/dev/ttyUSBxSpeed填写115200(根据不同开发板,选择不同参数)依次点击Load,Open弹出终端,回车,使用root登录,查看ip使用ssh登录...原创 2019-03-13 11:10:13 · 2272 阅读 · 0 评论 -
嵌入式开发板设置无密码登录
本次配置需要修改的ssh登录的配置文件vi /etc/ssh/sshd_config允许root用户远程登录设置PermitRootLogin参数值为yes#LoginGraceTime 2mPermitRootLogin yes#StrictModes yes#MaxAuthTries 6#MaxSessions 10允许无密码登录设置PermitEmptyPasswor...原创 2019-03-13 10:23:42 · 1721 阅读 · 2 评论 -
valgrind 使用 kcachegrind 查看函数运行时间
安装首先安装运行分析函数时间的工具 kcachegrind下载安装包 http://kcachegrind.sourceforge.net/,下载最新的 tar.gz 文件解压文件,进入解压之后的目录,从 README 中可以找到安装方式,这里记录一下cmake .make -j8sudo make install中间过程中遇到的一些,cmake的时候出问题,找不到一个依赖包CM...原创 2019-03-15 14:43:38 · 2006 阅读 · 0 评论 -
tar 打包问题
项目中使用到 tar 文件,同一个 tar 文件解压之后在压缩,在程序执行的时候不能使用了原因是 tar 对文件名长度有限制,当文件名过程的时候,使用 --format=ustar 进行压缩...原创 2019-03-14 20:56:59 · 546 阅读 · 0 评论 -
awk5.0 — awk模式之一
再次重申awk的语法 awk [options] ‘Pattern {Actions}’ file1,file2…awk模式,在之前的文章中简单使用了BEGIN和END。这里的模式,其实我们可以理解成是条件,awk是一行行处理数据的,如果满足某个条件awk就处理某一行数据,如果不满足就不处理,这就可以理解成模式。 意思就是,awk在一行行处理文本的时候,如果这行文本满足某个模式就处...原创 2018-08-21 08:43:07 · 730 阅读 · 0 评论 -
awk4.0 — awk格式化
awk格式化使用printf函数,类似于C语言中的printf函数 比如 awk '{printf "%s\n", $1}' test1上面的方式是awk每次处理一行,然后进行替换的,如果我们想要传入多个参数,此时就需要多个格式化 ...原创 2018-08-21 08:23:34 · 424 阅读 · 0 评论 -
awk3.0 — awk变量
awk有一些内置变量和外置变量,内置变量就是awk自带的变量,用户可以拿来直接使用,如FS,OFS等 awk常用内置变量如下几种: FS:输入单词分隔符,默认是空格 OFS:输出单词分隔符,默认是空格RS:指定输入时候的换行符(awk是一行行处理数据的) ORS:指定输出的符号,替代换行符(awk以换行符区别一条数据) NF:一条数据单词的个数,常用来输出最后...原创 2018-08-21 08:00:42 · 242 阅读 · 0 评论 -
awk3.0 — awk变量
awk有一些内置变量和外置变量,内置变量就是awk自带的变量,用户可以拿来直接使用,如FS,OFS等 awk常用内置变量如下几种: FS:输入单词分隔符,默认是空格 OFS:输出单词分隔符,默认是空格RS:指定输入时候的换行符(awk是一行行处理数据的) ORS:指定输出的符号,替代换行符(awk以换行符区别一条数据) NF:一条数据单词的个数,常用来输出最后...原创 2018-08-20 08:32:35 · 569 阅读 · 0 评论 -
线程
线程概念线程特点创建线程获取线程id线程等待终止线程原创 2017-06-23 20:37:16 · 721 阅读 · 0 评论 -
HTTP项目1.0 -- HTTP协议基础知识
一. HTTP之URL篇首先来看一下,我们一般在上网的时候,地址栏中经常会显示的信息,这里就举一些简单的例子https://www.baidu.comhttps://113.2.7.58.25/a/b/c.html从上面的简单的例子我们把url分成了以后的几个部分,请看下图第一个协议就不用解释了一般浏览器使用的协议都是http的协议;第二个 主机号,原创 2017-08-12 08:06:55 · 1525 阅读 · 0 评论 -
socket网络编程
服务端一。设置监听套接字1创建套接字.套接字编程的时候,我们需要使用的就是套接字函数,使用这个函数的作用是进行网络IO的通信,就是我们调用了这样的一种函数之后,就可以进行网络上的各个进程之间的通信了,我们之前讲述过了,socket实际上就是网络上面的一个一个的进程,socket组成是这个样子的ip地址:端口号;通过socket能够唯一的标识一个网络上面的进程,我们使用s原创 2017-07-27 18:06:01 · 771 阅读 · 0 评论 -
进程间通信--命名管道
进程间通信命名管道实现一个简单的读写端原创 2017-06-18 14:24:29 · 746 阅读 · 0 评论 -
进程程序替换
进程程序替换引入进程程序替换的概念程序替换的几个特点简析exec函数族execl execlp execle execv execvp execve原创 2017-06-17 07:46:10 · 1122 阅读 · 0 评论 -
Linux进程状态
Linux进程状态原创 2017-06-05 21:01:32 · 813 阅读 · 0 评论