linux
文章平均质量分 71
爱思考的实践者
我的到来,让世界变得更好。My coming makes this world a better place to live in.
展开
-
awk的NR、FNR、next的用法
NR:表示awk开始执行程序后所读取的数据行数。FNR:与NR功用类似,不同的是awk每打开一个新文件,FNR便从0重新累计。下面给出2个示例,展示awk的NR、FNR、next的用法。示例1:文件file1内容:$ cat file0012BBB 300.00 200506210013DDD 400.00 200506220014FFF 500.00 20050401文件file2内容:cat file2I001111111I001222222I001...原创 2021-02-25 14:37:24 · 5023 阅读 · 0 评论 -
redis server配置文件参数说明
redis server配置文件参数说明: 1. Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程 daemonize no2. 当Redis以守护进程方式运行时,Redis默认会把pid写入/var/run/redis.pid文件,可以通过pidfile指定 pidfile /var/run/redis.pid3. 指定Re转载 2015-12-27 17:42:00 · 4306 阅读 · 0 评论 -
makefile中的wildcard用法
在Makefile规则中,通配符会被自动展开。但在变量的定义和函数引用时,通配符将失效。这种情况下,如果需要通配符有效,就需要使用函数“wildcard”,其用法是:$(wildcard PATTERN...) 。在Makefile中,它被展开为已经存在的、使用空格分开的、匹配此模式的所有文件列表。如果不存在任何符合此模式的文件,函数会忽略模式字符并返回空。需要注意的是:这种情况下规则中通配符原创 2015-12-27 17:14:05 · 11015 阅读 · 2 评论 -
sftp常用命令介绍
某linux系统中有test.cap, 现在, 我需要把它移动到PC上, 然后用wireshark进行分析。 怎么移动呢? 没有什么samba啊, 不支持ftp啊, 也不支持tftp啊。 用sftp吧。 在PC上开启sftp服务器(下载一个sftpserver.exe)即可。 让linux系统充当本地客户端, 让sftserver充当服务器。 前面的博文中, 我们转载 2016-01-21 18:04:26 · 665 阅读 · 0 评论 -
Linux中“Disk /dev/sdb doesn't contain a valid partition table”解决方案
Linux中“Disk /dev/sdb doesn't contain a valid partition table”解决方案适用场合:在虚拟机环境的linux系统下,新添加一块硬盘,需要执行step1到step6。在实际环境Linux系统中,只需执行step2到step6即可。 step1: 虚拟机--设置--添加,选择硬盘添加step2:原创 2015-12-18 10:42:19 · 12550 阅读 · 0 评论 -
SecureCRT输入redis命令时不断在后面追加IP:Port显示的解决方法
启动redis server后,SecureCRT进入redis-cli,输入不断在后面追加IP:Port显示,其解决方案为:设置当前的Session Options-->Terminal-->Emulation-->Terminal为Linux,即可解决该问题。原创 2015-11-14 11:18:11 · 1968 阅读 · 0 评论 -
C可变参数函数实现
在C程序中,为了实现可变参数函数,要用到以下这些宏:void va_start( va_list arg_ptr, prev_param ); type va_arg( va_list arg_ptr, type ); void va_end( va_list arg_ptr ); va_list:用来保存宏va_start、va_arg和va_end所需信息的一种原创 2015-10-27 17:45:33 · 449 阅读 · 0 评论 -
mysql5.1及以上版本动态关闭和开启慢日志功能
在mysql5.1版本以前,慢日志(slow.log 根据参数的设定记录慢sql)和查询日志(general.log 这个会记录所有sql)都只能通过修改参数文件,并重启以使修改生效。在mysql5.1以上版本中,可以实现动态开启。慢日志开启和关闭的语句如下:set global slow_query_log='off';set global slow_quer原创 2015-10-26 13:59:16 · 2331 阅读 · 0 评论 -
linux下用core和gdb查询出现"段错误"的地方
有些时候,在执行一段C代码的时候,由于对一个非法内存进行了操作,在程序运行的过程中,出现了"段错误"。遇到这种问题是非常无语的,只是提示了"段错误",其他什么都没有。如果我们一味地去看代码查找问题,那太疼苦了,因为我们都相信自己写的代码没问题。下面介绍一种方法,可以有效定位出现"段错误"的地方。当我们的程序崩溃时,内核有可能把该程序当前内存映射到core文件里,方便程序员找到程序出现问原创 2015-10-23 16:49:01 · 2631 阅读 · 0 评论 -
《UNIX环境高级编程》示例代码中apue.h头文件的配置
最近学习《UNIX环境高级编程》(第3版)这本书,从http://www.apuebook.com/ 下载的示例在编译时,总是提示 "错误:apue.h:没有那个文件或目录",发现apue.h是作者自定义的一个头文件,包括程序所需的常用头文件及出错处理函数。我们将它放入系统头文件中(Linux下是 /usr/include),这样gcc编译器就能找到它了。 具体步骤为:原创 2015-09-29 17:13:33 · 610 阅读 · 0 评论 -
linux下5种网络IO模型简介
同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non-blocking)IO分别是什么?到底有什么区别?对于这个问题,不同的人给出的答案可能不同,比如wiki,就认为asynchronous IO和non-blocking IO是一个东西。这其实是因为不同的人的知识背景不同,并且在讨论这个问题的时候上下文(context)也不转载 2016-02-23 14:38:09 · 2485 阅读 · 2 评论 -
linux c++ 服务器端开发面试必看书籍
由于很多朋友希望加入到Linux c++服务器端开发的队伍中,本人就结合自己的面试经历并整理了自己阅读的相关书籍,同大家分享,一起进步。人个认为以下是进入这个方向的必看书籍,各系列难度由浅入深的排序。一、算法基础系列数据结构基础(C语言版)》朱仲涛 译《剑指Offer》《编程之美》《编程珠玑》《CareerCup-Top 150 Questions 4th》《[算法导论].(美国)转载 2016-02-25 21:35:03 · 923 阅读 · 0 评论 -
linux安装java1.8、zookper3.4.12和Kafka2.12
在linux上安装Kafka,步骤如下:第一步:安装Java jdk1.到官网复制下载链接官网地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html2.在xshell上输入命令wget --no-check-certificate --no-cookies...原创 2018-11-06 21:16:38 · 562 阅读 · 0 评论 -
git log格式化日志
git log --pretty=format:"arg"%H 提交对象(commit)的完整哈希字串%h 提交对象的简短哈希字串%T 树对象(tree)的完整哈希字串%t 树对象的简短哈希字串%P 父对象(parent)的完整哈希字串%p 父对象的简短哈希字串%an 作者(author)的名字%ae 作者的电子邮件地址%ad 作者修订日期(可以用-date= 选项定制格式)...转载 2018-10-23 20:57:24 · 2121 阅读 · 0 评论 -
mac安装Kafka
由于工作需要,想研究下kafka。于是在自己的mac上安装Kafka,直接执行命令brew install kafka,结果报了如下提示:Updating Homebrew...==> Auto-updated Homebrew!Updated 2 taps (homebrew/core and homebrew/cask).==> New Formulaeum==&g...原创 2018-10-28 11:06:57 · 3472 阅读 · 0 评论 -
mac下go开发环境的搭建
mac版本为10.13.3。在mac在进行go开发环境的搭建,主要有如下几步:第一步:安装go工具包。第二步:设置GOROOT环境变量。第三步:设置GOPATH和GOBIN环境变量。第四步:重新加载环境变量配置。下面进行详细介绍:第一步:安装go工具包在mac下执行如下命令$ brew install go就会在/usr/local/Cellar目录下生成go工具包,如下所示:/usr/local...原创 2018-05-08 10:48:09 · 7026 阅读 · 0 评论 -
Linux查找文件内容的常用方法
Linux查找文件内容的常用命令与方法 1. 从文件内容查找匹配指定字符串的行:$ grep "被查找的字符串" 文件名例子:在当前目录里第一级文件夹中,寻找包含指定字符串"thermcontact"的、以.in为后缀的文件grep "thermcontact" */*.in2. 从文件内容查找与正则表达式匹配的行:$ grep –e “正则表达式” 文件名转载 2016-06-22 18:29:41 · 464 阅读 · 0 评论 -
Linux下libiconv库的安装和使用
Linux下libiconv库的安装和使用:1.libiconv包的下载路径包的下载页面http://www.gnu.org/software/libiconv/2.编译安装libiconv库$tar zxvf libiconv-1.14.tar.gz$cd libiconv-1.14$ ./configure --prefi原创 2016-04-22 14:42:18 · 40471 阅读 · 0 评论 -
linux下memcached安装以及启动
linux下memcached安装以及启动一. 准备安装文件下载memcached与libevent的安装文件http://memcached.googlecode.com/files/memcached-1.4.15.tar.gz(memcached下载地址)https://github.com/downloads/libevent/libevent/libeve转载 2016-04-22 13:59:23 · 400 阅读 · 0 评论 -
[Redis]QForkMasterInit错误的解决…
今天在使用Redis的时候出现以下错误:QForkMasterInit: system error caught. error code=0x000005af, message=VirtualAllocEx failed.网上查了一次,在国外一篇文章看到了解决方法:http://www.tuicool.com/articles/m6jmI3转载 2016-04-28 17:16:24 · 3754 阅读 · 0 评论 -
daemon 进程为什么要fork两次
daemon 进程为什么要fork两次daemon进程是后台守护进程,有时候也叫精灵进程(agent)。linux下server都是daemon进程。相信大部分开发人员都知道如何去写一个daemon进程。但是另一方面,大部分人不知道为什么要这么做,不少人是从某个地方copy一个函数,拿来主义。但是具体为什么这么实现,却不是很透彻。 见过一些面试官或被面试人,很多人解释daem...原创 2016-03-25 11:12:43 · 1368 阅读 · 0 评论 -
设计模式之工厂模式
简单工厂模式 主要用于创建对象。新添加类时,不会影响以前的系统代码。其核心思想是:用一个工厂来根据输入的条件产生不同的类,然后根据不同类的virtual函数得到不同的结果。 GOOD:适用于不同情况创建不同的类时。 BUG:客户端必须要知道基类和工厂类,耦合性差。下面以加减乘除算法运算符为例。#include //#include using原创 2015-08-04 18:29:37 · 351 阅读 · 0 评论 -
条件变量pthread_cond_t使用示例
示例代码:[cpp] view plaincopy#include #include #include pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;/*初始化互斥锁*/ pthread_cond_t cond = PTHREAD_COND_INITIALIZER;/*初转载 2015-07-15 16:34:43 · 596 阅读 · 0 评论 -
pthread_cond_signal和pthread_cond_wait简介
原文: http://apps.hi.baidu.com/share/detail/19786281http://hi.baidu.com/boobleoo0/blog/item/5f935039a37c58f8b311c77f.html http://topic.csdn.net/u/20110105/16/12717238-9816-4571-a03d-e8b603724946转载 2015-05-21 22:10:05 · 745 阅读 · 0 评论 -
linux使用共享内存
一、在linux中使用共享内存的目的: 共享内存是进程间通信中最简单的方式之一。 共享内存允许两个或更多进程访问同一块内存,就如同 malloc() 函数向不同进程返回了指向同一个物理内存区域的指针。 当一个进程改变了这块地址中的内容的时候,其它进程都会察觉到这个更改。二、使用共享内存的流程: 1.首先,进程必须分配它。 2.然后,需要访问这个共享内存块的每一个进程原创 2015-03-24 15:52:27 · 631 阅读 · 0 评论 -
linux中fork()函数详解
一个进程,包括代码、数据和分配给进程的资源。fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事。 一个进程调用fork()函数后,系统先给新的进程分配资源,例如存储数据和代码的空间。然后把原来的进程的所有值都复制到新的新进程中,只有少数值与原来的进程的值不同。相当于克隆了一个自己。...转载 2015-03-25 09:57:11 · 521 阅读 · 0 评论 -
解决Mysql错误Too many connections的方法
解决Mysql错误Too many connections的方法:出现这种错误,明显就是 mysql_connect 之后忘记 mysql_close。当大量的connect之后,就会出现Too many connections的错误,mysql默认的连接为100个,而什么情况下会出现这种错误呢?正常情况下,mysql_connect之后调用 mysql_close()关闭连接;但转载 2015-01-19 14:29:41 · 1096 阅读 · 0 评论 -
terminate called after throwing an instance of 'otl_tmpl_exception<otl_exc, otl_conn, otl_cur>`解决方法
在linux下用c++连接MySQL或oracle数据库时,若频繁调用otlstream构造函数,发生 terminate called after throwing an instance of 'otl_tmpl_exception<otl_exc, otl_conn, otl_cur>`的问题,其解决方法为:原创 2015-01-16 17:49:04 · 3296 阅读 · 0 评论 -
互斥锁pthread_mutex_t的使用(转载)
互斥锁pthread_mutex_t的使用(转载) 1. 互斥锁创建有两种方法创建互斥锁,静态方式和动态方式。POSIX定义了一个宏PTHREAD_MUTEX_INITIALIZER来静态初始化互斥锁,方法如下: pthread_mutex_t mutex=PTHREAD_MUTEX_INITIALIZER;转载 2014-12-25 14:55:50 · 569 阅读 · 0 评论 -
linux下Makefile的学习之七(make 的运行)
make 的运行——————一般来说,最简单的就是直接在命令行下输入make命令,make命令会找当前目录的makefile来执行,一切都是自动的。但也有时你也许只想让 make重编译某些文件,而不是整个工程,而又有的时候你有几套编译规则,你想在不同的时候使用不同的编译规则,等等。本章节就是讲述如何使用make命令的。第1讲 make的退出码make命令执行后有三个退出码:转载 2014-12-24 16:18:26 · 5454 阅读 · 0 评论 -
linux下Makefile学习之六(使用函数)
使用函数————在Makefile中可以使用函数来处理变量,从而让我们的命令或是规则更为灵活和具有智能。make所支持的函数也不算很多,不过已经足够我们的操作了。函数调用后,函数的返回值可以当做变量来使用。第1讲 函数的调用语法函数调用,很像变量的使用,也是以“$”来标识的,其语法如下:$( )或是${ }这里,就是函数名,make支持的函数不多。是函数转载 2014-12-24 11:14:55 · 374 阅读 · 0 评论 -
linux下Makefile学习之四(使用变量)
第1讲 Makefile里有什么?Makefile里主要包含了五个东西:显式规则、隐晦规则、变量定义、文件指示和注释。1、显式规则。显式规则说明了,如何生成一个或多个目标文件。这是由Makefile的书写者明显指出:要生成的文件,文件的依赖文件,生成的命令。2、隐晦规则。由于我们的make有自动推导的功能,所以隐晦的规则可以让我们比较粗糙地、简略地书写Makefile,这转载 2014-12-22 18:18:16 · 743 阅读 · 0 评论 -
linux下Makefile学习之五(使用条件判断)
使用条件判断——————使用条件判断,可以让make根据运行时的不同情况选择不同的执行分支。条件表达式可以是比较变量的值,或是比较变量和常量的值。第1讲 示例下面的例子,判断$(CC)变量是否“gcc”,如果是的话,则使用GNU函数编译目标。libs_for_gcc = -lgnunormal_libs =foo: $(objects)ifeq (转载 2014-12-24 10:13:46 · 397 阅读 · 0 评论 -
linux下curl的使用方法(转载和修改)
curl是一个利用URL语法在命令行方式下工作的文件传输工具。本文介绍了它的简单用法。 curl是一个利用URL语法在命令行方式下工作的文件传输工具。它支持很多协议:FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE 以及 LDAP。curl同样支持HTTPS认证,HTTP POST方法, HTTP PUT方法, FTP上传, kerb转载 2014-12-01 17:26:00 · 1749 阅读 · 0 评论 -
Linux shell 数组array基础【${a[*]}和$a的区别】
Linux Bash中,数组变量的赋值有两种方法: (1) name = (value1 ... valuen) // 此时下标从0开始; (2) name[index] = value 下面以一个简单的脚本来说明,脚本内容如下: #!/bin/bash #定义数组 A=(a b c def) #把数组按字符串显示输出原创 2015-01-19 09:42:30 · 7128 阅读 · 0 评论 -
标准库的setlocale()用法笔记
C标准库的setlocale()用法笔记转自:http://zyxhome.org/wp/cc-prog-lang/c-stdlib-setlocale-usage-note/ [在此向原文作者说声谢谢!若有读者看到文章转载时请写该转载地址,不要写我的BLOG地址。尊重他人的劳动成果 ^_^ ]C 和 C++ 的标准库分别有自己的 locale转载 2015-03-04 13:50:39 · 6453 阅读 · 0 评论 -
linux下epoll模型应用介绍
第一讲什么是epollepoll是什么?按照man手册的说法:是为处理大批量句柄而作了改进的poll。当然,这不是2.6内核才有的,它是在2.5.44内核中被引进的(epoll(4) is a new API introduced in Linux kernel 2.5.44)。它几乎具备了之前所说的一切优点,被公认为Linux2.6内核下性能最好的多路I/O就绪通知方法。原创 2015-04-15 10:29:13 · 1037 阅读 · 0 评论 -
linux下用/proc/stat文件来计算cpu的利用率(附源码)
proc文件系统介绍 /proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为内核与进程提供通信的接口。用户和应用程序可以通过/proc得到系统的信息,并可以改变内核的某些参数。由于系统的信息,如进程,是动态改变的,所以用户或应用程序读取/proc目录中的文件时,proc文件系统是动态从系统内核读出所需信息并提交的。转载 2015-05-04 16:51:57 · 657 阅读 · 0 评论 -
Linux下makefile学习之一(概述介绍)
第一讲 概述——什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要做一个好的和 professional的程序员,makefile还是要懂的。这就好像现在有这么多的HTML编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软件编译,你就不能不自己写makefile了转载 2014-12-22 15:40:46 · 633 阅读 · 0 评论 -
linux下Makefile的学习之九(更新函数库文件)
使用make更新函数库文件———————————函数库文件也就是对Object文件(程序编译的中间文件)的打包文件。在Unix下,一般是由命令"ar"来完成打包工作。一、函数库文件的成员一个函数库文件由多个文件组成。你可以以如下格式指定函数库文件及其组成:archive(member)这个不是一个命令,而一个目标和依赖的定义。一般来说,这种用法基本上就是为了转载 2015-03-03 17:18:05 · 453 阅读 · 0 评论