自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(60)
  • 资源 (1)
  • 收藏
  • 关注

原创 jvm 垃圾收集原理 && 常见的垃圾收集器特点

1.垃圾收集的原理和基础概念1.1 简单 JVM 内存区域模型通常可以把 JVM 内存区域分为下面几个方面,其中,有的区域是以线程为单位,而有的区域则是整个 JVM 进程唯一的。首先,程序计数器(PC,Program Counter Register)。在 JVM 规范中,每个线程都有它自己的程序计数器,并且任何时间一个线程都只有一个方法在执行,也就是所谓的当前方法。程序计数器会存储当前线...

2020-02-26 18:32:44 303 1

原创 shell 将第二列的 \t 替换为 空格,其余列的 \t 不动

背景处理数据代码出了 bug ,导致以 \t 分割的数据 中第二列的 \t 变成了 空格符,需要将数据恢复正常。思路split 分割数据,然后格式化输出,代码如下:cat 8NF_data | awk '{len=split($0,a,"\t") ;print a[1]"\t"a[2]a[3]"\t"a[4]"\t"a[5]"\t"a[6]"\t"a[7]"\t"a[8] }'...

2019-10-18 20:06:41 1490

原创 每隔 n 个空格,将该空格替换为换行符

SHELL awk 每隔 n 个空格,将该空格替换为换行符背景思路示例背景最近在做一些文本处理的时候代码出了 BUG ,导致整个文件的换行符都变成了空格,需要在正确的位置将空格替换为换行符思路使用 awk 的 split 函数对字符串进行数组类型的分割,(类似于 python 中的 split 函数)然后每隔 n 个空格,就将第 1 2 3 … n-1 n 个元素输出, awk 代码如下:...

2019-10-18 10:50:04 1991 1

原创 磁盘资源莫名其妙被占用

磁盘资源莫名消失结论在linux中,当我们删除大文件之后如果有进程打开了这个大文件,却没有关闭这个文件的句柄,那么linux内核还是不会释放这个文件的磁盘空间,严重情况下甚至会造成磁盘空间占用100%故障现象、排查思路以及解决方案磁盘占用太多有告警,但是 du -sh * 找不到磁盘被哪个文件占用了,此时需要看一下是否有额外进程占用了已删除资源的文件句柄 如下图,df -h ...

2018-03-29 17:56:14 2986

转载 golang标准库 time包

golang 的time包之time先看看有哪些类型Time时间类型,包含了秒和纳秒以及LocationMonthtype Month int 月份.定义了十二个月的常量Weekdaytype Weekday int 周,定义了一周的七天Durationtype Duration int64 持续时间.定义了以下持续时间类型.多用于时间的加减 需要传入Duration做为参数的时候.可以直接传入ti

2017-12-25 17:11:37 823

转载 golang标准库 time包

class = "post"> class = "postTitle"> id="cb_post_title_url" class="postTitle2" href="http://www.cnblogs.com/zhepama/archive/2013/04/12/3017230.html">golang 的time包之time

2017-12-25 17:03:47 347

转载 多线程程序中操作的原子性

0. 背景原子操作就是不可再分的操作。在多线程程序中原子操作是一个非常重要的概念,它常常用来实现一些同步机制,同时也是一些常见的多线程Bug的源头。本文主要讨论了三个问题:1. 多线程程序中对变量的读写操作是否是原子的?2. 多线程程序中对Bit field(位域)的读写操作是否是线程安全的?3. 程序员该如何使用原子操作?1. 多线程环境下对变量的读写操作是否是原子的?我们先从一

2017-10-22 17:06:41 629

转载 Docker镜像与容器存储结构分析

编者按:  Docker是一个开源的应用容器引擎,主要利用Linux内核namespace实现沙盒隔离,用Cgroup实现资源限制。 Docker 支持三种镜像层次的存储driver:aufs、device mapper、Btrfs。广州Linux爱好者 刁金明,通过一系列小实验对Docker的device mapper和aufs这两个存储结构进行了深入分析。以下问原文:auf

2017-10-17 17:58:07 744

转载 filebeat常见配置项梳理

filebeat5.2.2prospector(input)段配置filebeat.prospectors:每一个prospectors,起始于一个破折号”-“- input_type: log #默认log,从日志文件读取每一行。stdin,从标准输入读取paths:日志文件路径列表,可用通配符,不递归- /var/log/*.logencoding: plain #编码,默认无,pla

2017-10-16 16:52:25 23124

转载 dig

Dig命令的用法 Dig是linux中的域名解析工具,功能比nslookup强很多,使用也很方便,不用象nslookup总是set不停。 Dig是domain information groper的缩写,知道了来源想必大家也就容易记住这条命令了。 Dig现在已经有人移植到了window上,可以在这里下载。 其使用方法如下: 看懂默认输出: 最简单最常见的查询是查询一台主机,但是默认情况下

2017-07-17 10:26:40 7875

原创 docker整体架构描述

关于Docker,上个学期就一直在学,去实习之后更觉其重要性,所以读了一段时间源码,总结并记录一下,权当加深印象。docker架构阅读源码首先脑海里要有一张源码地图,要明白docker各个部分实现了哪些功能。 docker的架构图如下: 总体包含七个部分:client,daemon,driver,libcontainer,container,graph,registry。 外表来看,dock

2016-12-28 00:29:11 1092

原创 nginx初探(1)--nginx安装过程详解、configure执行过程

安装 :tar -zxvf nginx-1.10.2.tar.gz ./configure make make install nginx的./configure脚本做了很多工作,例如环境检测、参数解析、目录生成、Makefile文件的生成等。一、nginx的configure 1.configure的命令参数 运行./configure –help 可以看到大量的参数显示。 conf

2016-12-22 14:47:06 13997 1

原创 nginx初探(2)----nginx的常见命令行控制

1.默认情况下,nginx被安装在/usr/local/nginx目录下,该目录包含文件如下:2.参数配置: (1)默认启动方式:/usr/local/nginx/sbin/nginx 此方式会读取默认配置文件/usr/local/nginx/conf/nginx.conf(2)-c参数自定义配置文件启动/usr/local/nginx/sbin/nginx -c /tmp/nginx.conf

2016-12-22 14:43:58 469

原创 nginx初探(3)--nginx进程与配置

一、nginx的进程间关系 作为负载均衡的一种重要实现机制,ngnix的进程分为两类,master进程和worker进程,一个nginx服务只有一个master进程,可以有多个worker进程。 master进程不处理具体业务,只负责管理工作以及与上层通信,它会负责启动停止服务、升级程序、重载配置文件,调度worker进程等。 worker进程可以有多个,多个worke

2016-12-22 14:43:24 559

原创 关于数据结构课设的一些建议:

关于数据结构课设的一些建议:首先,大家的数据结构都是用c写的,所以说大家在做数据结构课设的过程中遇到的第一个阻碍是c的语法,尤其是指针和结构体的用法,这些在链表和图中应用很广泛,所以一定要弄明白。 这里,关于c的教材上学期就给大家推荐过了:1.《c程序设计语言-新版》《c程序设计语言-新版 习题解答》这两本一定配套买,有练有答。https://book.douban.com/subject/113

2016-12-22 14:12:08 2505

转载 socket编程中send()和recv()参数解析

1.send 函数int send( SOCKET s, const char FAR *buf, int len, int flags ); 不论是客户还是服务器应用程序都用send函数来向TCP连接的另一端发送数据。客户程序一般用send函数向服务器发送请求,而服务器则通常用send函数来向客户程序发送应答。该函数的第一个参数指定发送端套接字描述符;第二个参数指明一个存放应用程序要发送数据的缓

2016-12-08 17:39:06 12684 1

转载 多线程的python实现

多线程和多进程是什么自行google补脑  对于python 多线程的理解,我花了很长时间,搜索的大部份文章都不够通俗易懂。所以,这里力图用简单的例子,让你对多线程有个初步的认识。 单线程   在好些年前的MS-DOS时代,操作系统处理问题都是单任务的,我想做听音乐和看电影两件事儿,那么一定要先排一下顺序。(好吧!我们不纠结在DOS时代是否有听音乐和看影的应用。^_^)

2016-11-08 16:42:31 428

转载 PXE部署

一、前言在生产环境中,我们经常遇到需要部署部署多台服务器。如果我们每部署一台服务器都要拿着系统盘到机房部署,守在服务器面前,那么我们的效率是十分低下的。况且有时候机房并不在我们身边。那么我们可以通过让机房值班人员为每台服务器配置好远程管理卡,运维人员通过远程管理卡,远程登入服务器进行操作。二、pxe原理pxe原理是通过服务器上网卡中支持的pxe启动,通过广播的方式获取ip地址与下一个服

2016-11-06 23:08:05 3879

转载 ulimit详解

通过ulimit -n命令可以查看linux系统里打开文件描述符的最大值,一般缺省值是1024,对一台繁忙的服务器来说,这个值偏小,所以有必要重新设置linux系统里打开文件描述符的最大值。那么应该在哪里设置呢?最正确的做法是在/etc/security/limits.conf里设置:[root@localhost security]# ulimit -acore

2016-11-04 16:07:22 1374

原创 核心转储(core dumps)

最近在实习,学了一下nginx.其中nginx的配置文件中有个参数:worker_rlimit_core SIZE;该参数是用于限制coredump核心转储文件大小的。什么是核心转储? 核心转储就是在linux或是类unix系统中,当一个进程发生错误或是收到信号要终止时,系统会将进程执行时的内存内容写入一个core文件,以作为调试之用,这就是核心转储(core dumps)。为什么nginx中

2016-11-04 15:47:30 1085

原创 进程和线程的区别

进程和线程的主要差别在于它们是不同的操作系统资源管理方式。进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进程产生影响,而线程只是一个进程中的不同执行路径。线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死掉就等于整个进程死掉,所以多进程的程序要比多线程的程序健壮,但在进程切换时,耗费资源较大,效率要差一些。但对于一些要求同时进行并且又要共享某些变量的并发操作,只能用线

2016-11-02 17:06:11 245

原创 linux系统开机自启过程

加电自检-读取BIOS-读取MBR-bootloader-运行kernal-运行init-运行其他程序。 (1)加电自检,检测硬件设备,检测cpu,内存,主板,显卡,CMOS等设备是否有故障。 (2)读取BIOS,加电自检完成读取的第一个地方就是BIOS,BIOS定义了一个计算机引导启动的设备顺序。里面记录了主板的芯片与各种设置,比如说cpu与接口设备的通信频率,

2016-11-02 17:04:53 337

原创 TCP/IP的三次握手和四次挥手

tcp/ip的三次握手和四次挥tcp报文的首部格式: 序列号:tcp连接中每一个报文流都会有一个32位的序列号 确认号:校验身份时使用。 SYN:建立连接时使用,用来同步序号 ACK:表示确认号字段是否有效,1有效,0无效 FIN:1表示数据已发送完毕可以释放连接,0表示不能释放连接客户端请方A 服务器应答方B tcp的三次握手: 1.第一

2016-11-02 17:02:48 378

原创 vrrp协议

一、vrrp简介 vrrp是一个路由协议,全程叫做虚拟路由冗余协议。既然是路由协议那就肯定是用来确定路由的,确定主机如何选定到达目的主机的下一跳路由,这个问题通常的解决方法有二种: - 在主机上使用动态路由协议(RIP、OSPF等) - 在主机上配置静态路由现在复杂的动态路由协议越发的少用,因为管理、维护成本以及是否支持等诸多后期维护成本太高,所以现在开始流行一个概念叫做极简拓扑,配置静态路由

2016-10-31 01:08:10 688

转载 13款开源搜索引擎的介绍

本文档是对现有的开源的搜索引擎的一个简单介绍LuceneLucene的开发语言是Java, 也是java家族中最为出名的一个开源搜索引擎, 在java世界中已经是标准的全文检索程序, 它提供了完整的查询引擎和索引引擎, 没有中文分词引擎, 需要自己去实现, 因此用Lucene去做一个搜素引擎需要自己去架构.另外它不支持实时搜索, 但linkedin和twitter有分别对Lucene改进的实时搜

2016-10-27 17:03:08 1544

转载 让你的Python代码更加pythonic

id="page" class="hfeed site">   id="masthead" class="site-header" role="banner"> class="site-branding"> class="site-title"><ahref="http://wuzhiwei.net/"

2016-10-27 16:27:57 836

转载 wc命令

div id="topics">每天一个linux命令(40):wc命令Linux系统中的wc(Word Count)命令的功能为统计指定文件中的字节数、字数、行数,并将统计结果显示输出。1.命令格式:wc [选项]文件...2.命令功能:统计指定文件中的字节数、字数、行数,并将统计结果显示输出。该命令统计指定文件中的字节数、字数、行数。如果没有给出

2016-10-21 12:09:34 292

原创 Python脚本报错AttributeError: ‘module’ object has no attribute’xxx’解决方法

今天写python,想练习一下关于argparse模块的用法,将代码文件命名为argparse.py之后,报错如下: AttributeError: ‘module’ object has no attribute ‘ArgumentParser’查阅资料之后发现,python代码在编译后会生成以pyc为文件名后綴的字节码文件,该字节码文件会经过python解释器来生成机器码文件来运行。当再次

2016-10-21 12:08:16 44878

转载 python的保留方法示例

接下来是保留方法,可以把保留方法分类:类的基础方法序号目的所编写代码Python 实际调用①初始化一个实例x = MyClass()x.__init__()②字符串的“官方”表现形式repr(x)x.__repr__()③字符串的“非正式”值str(x)x.__str__()

2016-10-20 18:11:01 808

转载 python中from module import * 的一个陷阱

python中from module import * 的一个陷阱from module import *把module中的成员全部导到了当前的global namespace,访问起来就比较方便了。当然,python style一般不建议这么做,因为可能引起name conflict。但还有另外一个问题 - 你以为你修改了某个变量,其实,被from module import

2016-10-20 17:48:39 974

转载 python修改文本颜色

也许你希望在终端上输出一些带有颜色或者粗体、下划线等样式的信息,就像man中的那样,那么这篇文章将会起到些许作用。事件起因在Python开发项目过程中,为了方便调试代码,经常会向stdout中输出一些日志,默认的这些日志就直接显示在了终端中。但是很杂乱的信息显示在一起,往往没有重点,一个一个找我们需要的信息往往特别复杂.Linux下的终端设置linux终端颜色设置信

2016-10-20 07:59:19 8425

原创 python中关于下划线的整理

最近在学习python,发现python的变量命名很有意思,尤其是加入下划线之后,作为一个准程序员,良好的代码规法一定要有,所以花时间找了一些资料,整理了一下。首先,直接上结论:Python 用下划线作为变量前缀和后缀指定特殊变量 _xxx 不能用’from module import *’导入 _xxx_ 系统定义名字 __xxx 类中的私有变量名所以Python的核心风格有

2016-10-19 21:55:35 3073 1

转载 lambda总结

总结: lambda是为了减少单行函数的定义儿使用的,它的使用大量简化了代码,使代码简练清晰。但是值得注意的是,这会在一定程度上降低代码的可读性。一、什么是lambd:看个例子:      1 g = lambda x:x+1  看一下执行的结果:    g(1)   >>>2   g(2)   >>>3   当然,你也可以这样使用:   lambda x:x+1(1)

2016-10-19 11:48:02 414

原创 从Linux系统定时分析内核态进程不会被抢占的原因

我们知道在linux系统中,内核态的进程一旦被cpu载入运行是不会被调度程序切换掉的。so,why are you so diao?!!Linux在0.11的版本中是通过一片8253来进行系统定时的,每隔10ms就会发出一个时钟中断信号,我们将之称为一个系统滴答。而每经过一个系统滴答系统就会调用一个时钟中断处理函数,该函数会通过jiffies变量来统计系统运行时间,并将被中断程序的特权级CPL作为

2016-09-27 10:07:48 1391

原创 Python-copy()与deepcopy()区别

最近在实习,boss给布置了一个python的小任务,学习过程中发现copy()和deepcopy()这对好基友实在是有点过分,一开始还相爱着呢,不知道怎么回事就开始相杀了。搞的博主就有点傻傻分不清啊,但是呢,本着一探到底的极客精神,还是要查资料搞清楚这对好基友的区别。其实呢,copy()与deepcopy()之间的区分必须要涉及到python对于数据的存储方式。 首先直接上结论:

2016-08-12 13:53:08 170981 42

原创 每天一个Linux命令----(压缩、解压缩之tar与gzip)

1 下载了一个源码文件abc.tar.gz或abc.tgz(后缀tar.gz和tgz基本没啥区别,相同的还有.taz和.tar.Z)tar -xzvf abc.tar.gz 或tar -xzvf abc.tgz注释: tar.gz和tgz是经过归档并由gzip工具压缩之后所得到的压缩包。 x选项表示解压缩 z表示用gzip工具进行解压缩 v表示在解压缩时显示详细信息 f表示指定文件(请

2016-08-05 16:42:42 4772

转载 每天一个Linux命令(2)- find

Linux中find常见用法示例find path -option [ -print ] [ -exec -ok command ] {} \;find命令的参数;path: find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。-print: find命令将匹配的文件输出到标准输出。-exec: find命令对匹配的文件执行该参数所给出的

2016-08-05 15:39:42 265

原创 每天一个Linux命令(1):wc命令

wc命令用于统计文件中的行数、字数、字节数,并将其统计输出。命令格式 wc 【参数】 文件名命令功能 该命令统计指定文件中的字节数、字数、行数。如果没有给出文件名,则从标准输入读取。wc同时也给出所指定文件的总统计数。命令参数 -c 统计字节数。 -l 统计行数。 -m 统计字符数。这个标志不能与 -c 标志一起使用。 -w 统计字数。一个字被定义为由空白、跳格或换行字符分隔的字

2016-07-28 18:07:34 390

原创 新浪微盾激活流程

激活微盾输入vpn.sina.com,点击激活微盾 再次点击激活微盾 然后输入邮箱全称 系统会给你的staff邮箱发送一个激活链接,点击之后出现如下页面: 序列号就是微盾背后的一串数字,动态密码就是微盾前面显示的一串数字。 点击下一步之后会提示输入静态密码,自己随便输一个六位数的数字,例:123456,以后登录系统的时候账号是自己的staff邮箱前缀,密码是静态密码

2016-07-22 18:27:36 501

转载 基于Linux的网络编程

基于Linux的TCP网络编程一.Linux下TCP编程框架TCP网络编程的流程包含服务器和客户端两种模式。服务器模式创建一个服务程序,等待客户端用户的连接,接收到用户的连接请求后,根据用户的请求进行处理;客户端模式则根据目的服务器的地址和端口进行连接,向服务器发送请求并对服务器的响应进行数据处理。1.服务器端程序包括Ø  建立套接字( socket())Ø

2016-06-04 17:08:09 405

空空如也

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

TA关注的人

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