自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 资源 (7)
  • 收藏
  • 关注

原创 Linux 下的格式化输出命令:print

原文链接:http://blog.csdn.net/zgf19930504/article/details/51912765printf 是linux 下的格式化输出命令,有点儿类似于python 和c 语言的printf 命令,但是应该没有c 语言的那么强大. printf 命令常用于linux 下的awk 编程, 平时使用输出时用 echo 即可. pintf 命令不能接受管道符参数,

2017-11-30 17:40:23 3931

原创 linux命令之查看文件内容加上行号-nl

在linux下cat命令可以查看文件内容,不过有时候我们需要在前面加上行号,看起来更方便,nl命令就有这个功能。比如查看一个sh脚本:$ cat print-printf.sh #!/bin/bashecho $0 $1if [ $1x == 1x ]; then echo "printf" awk '{for(i=1;i<5;i++){printf($i"\t

2017-11-30 17:28:03 10166

原创 linux下shell编程print与printf的区别

1,print是ksh的内置命令,而printf是bash的内置命令2,print 中不能使用%s ,%d 或%c;3,print 自动换行,printf 没有自动换行。比如下面脚本的输出:$ cat print-printf.sh #!/bin/bashecho $0 $1if [ $1x == 1x ]; then echo "printf" awk

2017-11-30 17:17:15 22557

转载 [shell] if else以及大于、小于、等于逻辑表达式

原文链接:http://blog.51cto.com/lxsym/866331大多数情况下,可以使用测试命令来对条件进行测试。比如可以比较字符串、判断文件是否存在及是否可读等,通常用"[]"来表示条件测试。注意这里的空格很重要。要确保方括号的空格。if ....; then   .... elif ....; then   .... else

2017-11-30 16:37:06 316

转载 awk print 的用法

原文地址:http://blog.51cto.com/loofeer/7752671。AWK读取输入文件一次一行。2。对于每一行,它匹配在给定的顺序模式,如果匹配,执行相应的动作。3。如果没有模式匹配,将执行任何行动。4。在上面的语法,无论是搜索模式,或行动是可选的,但不能同时。5。如果没有给出搜索模式,然后awk要执行每一行输入给定的行动。6。如果没有给出动作,打印,

2017-11-30 14:49:51 435

转载 Linux和unix中 awk 的print浅谈

原文地址:http://blog.csdn.net/ckstory/article/details/6229032awk  '{print;}'  文件名                                   -------打印指定文件所有行,输出在控制台awk '{print $1,$2,$NF;}'  文件名                   -----

2017-11-30 12:56:29 1113

原创 Linux下/etc目录详解

原文链接:http://zyjustin9.iteye.com/blog/2013050Linux /etc目录详解 /etc目录   包含很多文件.许多网络配置文件也在/etc 中.  /etc/rc   or/etc/rc.d   or/etc/rc*.d     启动、或改变运行级时运行的scripts或scripts的目录.  /etc/pa

2017-11-29 16:02:56 38116

转载 Unix/Linux下的/etc目录

原文链接:http://blog.csdn.net/pan_tian/article/details/7712992/etc目录用于存放Linux/Unix系统的配置文件,/etc里的配置文件非常关键,所以要经常备份(备份方法见文章末尾),这样不管你是重装系统还是因为系统坏掉,都能快速的恢复到早先的配置状态。文章“etc” 和“理解 Linux 配置文件”,对etc目录下的所有文件

2017-11-29 15:51:54 408

原创 linux文件目录分析之/etc目录

在linux下修改系统配置时就会在/etc这个目录下修改配置文件,可见这个目录是系统的配置文件目录。在终端输入ls看看里面的文件:$ lsacpi calendar dpkg host.conf ldaptor magic.mime os-release

2017-11-29 15:48:53 7733

原创 linux命令之查看目录树结构-tree

linux下我们经常要查看目录的组织结构,tree命令以树形结构显示文件目录。直接使用tree dir显示目录下所有文件和文件夹:$ tree gogo├── build.sh├── compile-run.sh├── main└── main.gotree -d选项只查看目录下文件夹:$ tree -d cmakecmake├── cmake_exe│  

2017-11-29 10:29:30 11530

转载 Linux 设置core dump

原文地址:http://blog.csdn.net/u013010310/article/details/50578691最近本人负责项目中的流媒体转发模块,查了很多资料后选择了EasyDarwin作为转发服务器。编译源码之后服务器稳定运行了半个月,但是今天突然不能正常转发了。由于本人Linux新手,所以没有在Linux下调试代码的经验,在群主的指导下知道可以设置core文件来

2017-11-28 15:34:10 205

原创 linux下使用expect+scp+shell实现分布式集群系统安装,升级,部署

在分布式集群系统中,由于有很多的节点,如果手动的部署,将是一个很耗时的过程。由于每个节点部署服务相同,第一想到的就是scp命令做批处理,不过有个问题,scp命令每次都是提示输入密码,正好expect工具可以处理命令交互的情况。前面已经讲过如何将expect做成绿色工具了,将升级包和expect工具放在同一个目录,所有节点的主机地址写入一个hosts-list文件中,循环读取地址执行

2017-11-28 14:08:22 702

原创 linux下scp远程拷贝文件无需输入密码工具之expect

0.前言expect是一个用来处理交互命令的工具。借助expect,我们可以将交互过程写在一个脚本上,使之自动化完成。比如ssh登录,scp远程拷贝,ftp登录等都是交互命令。在有外网的情况下可以使用命令安装,这里的目标是将编译后的程序作为一个绿色化的工具,可以直接携带到部署服务器上使用,所以这里使用源码编译。1.下载源码由于expect依赖tcl库,所以编译expect之

2017-11-28 11:31:31 891

原创 linux命令之远程文件或文件夹拷贝-scp

在linux安装部署或者升级分布式系统时,经常要重当前主机拷贝文件到集群中其他的主机节点,或者从其他主机节点拷贝文件到当前主机。我们知道cp命令是同一主机下面文件的拷贝,而scp命令就是linux下实现远程主机之间文件拷贝的命令,支持向远程主机‘推文件’和向远程主机‘拉文件’的方式。输入scp -h看看选项:$ scp -hunknown option -- husage: scp

2017-11-27 16:36:15 1667

原创 linux下开启程序崩溃生成core文件开关之ulimit详解

运行服务器程序经常会出现崩溃,而我们不可能一天24小时都等着他出现。在实际运行中也不能总是使用gdb启动,毕竟gdb绑定运行会消耗很大一部分性能。不过linux系统在程序崩溃时会生成一个coredump文件,里面保存程序收到退出信号时的堆栈信息,对于调试c++程序是很有帮助的,ulimit命令就是设置程序崩溃时生成coredump文件的开关和大小。使用命令在shell终端设置,只对当前终端

2017-11-27 16:02:24 3014

原创 go语言实现第一个程序-hello,world!

0.前言工作中一直使用c++编写高并发服务器程序,但c++编写高并非服务器程序时多线程逻辑,锁机制导致的死锁,内存泄漏,崩溃等问题会耗费大量时间和精力。听同事说go语言是专门做高并发编程的,不用考虑上面的一些问题,由google推出。想想google出品,必属精品,又和自己的工作方向相关,所以了解一下。1.编译工具安装使用源码安装或者命令安装都可以,ubuntu下使用命令安装:

2017-11-24 12:52:41 1178

转载 浅谈Linux中ldconfig和ldd的用法

ldd 查看程序依赖库ldd作用:用来查看程式运行所需的共享库,常用来解决程式因缺少某个库文件而不能运行的一些问题。示例:查看test程序运行所依赖的库:/opt/app/todeav1/test$ldd testlibstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00000039a7e00000)libm.so.6 => /lib

2017-11-24 10:27:08 869

原创 linux命令之添加系统搜索动态库目录-ldconfig

ldconifg,/etc/ld.so.conf,/etc/ld.so.cache三个的关系一般情况下我们可以将程序需要搜索动态库的路径配置到ld_library_path这个环境变量中,不过很多系统的库我们没有配置到这个环境变量中也是可以找到的,ldconfig就如同windows的系统环境变量,ldconfig命令的用途就是添加扫描到的动态库路径到系统搜索动态库的配置文件中。ldc

2017-11-23 15:21:49 1676

原创 linux命令之查看当前shell环境变量-env

linux下运行程序进程经常出现由于环境问题导致的程序找不到动态库的情况,因为一般程序是通过ld_library_path这个环境变量查找用户动态库的。不过也可以指定用户定义环境变量,还有就是一个叫pkg-config的工具,可以通过工具的pc文件中配置查找动态库的路径,这些都可以使用命令env查看。另外程序使用sudo启动的时候,sudo会将当前用户环境重置或者保留,也可以使用命令sud

2017-11-23 13:11:24 11702

原创 linux命令之修改系统允许进程打开文件描述符限制-ulimit

在linux下做网络编程经常会遇到的一个问题就打开过多的端口或者创建大量的连接会失败,这是因为系统对每个进程能够打开的资源是有限制的。打开过多的端口或者创建大量的连接,都会打开大量文件描述符,linux系统默认对每个进程打开的文件描述符限制为1024,大于这个值就会打开失败。ulimit命令就可以修改这个限制,另外ulimit的还有一个用途,就是修改程序崩溃的时候生成core文件的限制。

2017-11-23 13:01:11 1182

原创 linux命令之查看进程运行动态库依赖及打开文件-lsof

ldd命令可以看到程序依赖库,但是有的动态库是使用dlopen接口隐式加载的方式加载起来的,这个时候使用ldd命令是看不见的。不过有另一个命令lsof,lsof命令可以看见运行中的进程加载了哪些动态库,lsof是list open file的简写,所以lsof还可以看见进程打开文件描述符。这个命令在排查进程加载so不成功的时候很有用。在shell终端下输入lsof -h查看选项:l

2017-11-22 17:12:27 5921

原创 linux命令之查看程序动态库依赖-ldd

一个程序依赖很多的动态库,类似windows下的depends工具可以查看exe程序的依赖库是否找到。在linux下,可以通过ldd命令查看程序是否能找到依赖的动态库,从而排查是缺少库还是由于环境变量配置不正确导致的程序无法启动。在shell环境下输入ldd --help查看ldd命令的选项:用法:ldd [选项]… 文件… --help 印出这份说明

2017-11-22 17:06:25 11348

原创 linux命令之查看动态库中字符串-strings

strings命令是在对象文件或者二进制文件中查找可打印的字符串,有很多的用途,例如一个用法就是在编译的so中定义字符串常量作为动态库的版本号,然后就可以使用strings+grep 组合命令查看当前编译的so的版本号了。输入strings -h查看strings命令的用法:用法:strings [选项] [文件] 打印 [文件] (默认为标准输入) 中可打印的字符串 选项为: -

2017-11-22 16:54:08 5236

原创 linux命令之查看动态库符号-nm

在调用动态库的时候,由于动态库接口修改或者版本不匹配出现调用动态库找不到函数接口符号的情况。原因可能有如下几种:1.由于c++动态库编译没有加extern c导致函数编译时加了c++的前缀的;2.系统中有多个库,程序加载了其他路径的库;3.库的版本不对,老版本的库确实没有新加的接口。这个时候就可以用nm命令看so中是否有提示找不到的符号。输入nm -h查看nm的选项如下

2017-11-22 16:46:36 9668

原创 流媒体服务器之rtp协议,rtcp协议,rtsp协议,sdp协议,sip协议简析

0.前言流媒体服务器做音视频媒体传输主要就两件事:媒体回话协商,媒体数据传输;下面这几种协议就围绕着这两个需求而产生。1.rtp协议rtp是的全称是实时传输协议RTP(Real-time Transport Protocol),是应用层的一个协议,主要用来做音视频数据传输,一般基于udp协议之上,也支持组播,当然基于tcp也是可以的。用rtp传输音视频数据的一般做法是将

2017-11-21 15:15:17 3104

原创 linux工具之检测内存泄漏-valgrind

0.前沿内存泄漏是c++程序常见的问题了,特别是服务类程序,当系统模块过多或者逻辑复杂后,很难通过代码看出内存泄漏;valgrind是一个开源的,检测c++程序内存泄漏有效工具,编译时加上-g选项可以定位到代码行,同时还检查‘野指针’等;下载源码安装这里就重复写了,下面通过一个简单的程序记录valgrind的用法。1.示例代码main.c//main.c#incl

2017-11-21 11:56:11 18606 1

原创 linux命令之创建符号连接-ln

由于linux编译出的so经常会在后面带有版本号,而程序加载的是不带版本号的so,导致经常出现so找不的情况,这个时候为带版本号的so创建一个符号链接(软链接)就好了。在终端输入ln --help查看一下这个命令的用法如下:用法:ln [选项]... [-T] 目标 链接名 (第一种格式) 或:ln [选项]... 目标 (第二种格式) 或:ln [选项]... 目标... 目录 (

2017-11-17 18:06:59 1079

原创 c++构建工具之cmake使用小结

0.前言使用cmake的过程先是要编写一个cmakelists.txt的文本,然后使用cmake命令生成对应平台的工程。在windows下命令行或者使用cmake gui工具,生成vs工程,然后使用vs编译。在linux下则是根据cmakelists.txt生成makefile,然后使用make命令调用编译。cmake命令编译指定目录下的cmakelists.txt,具

2017-11-08 12:50:00 4635 1

原创 c++构建工具之make使用小结

0.前言这里并不详细的讲解make的原理和语法细节,主要是将编译成执行程序,动态库,静态库;工程在链接动态库,静态库时候的一些选项,我们平时在安装编译开源工具或者库时也经常遇到的问题,makefile是一个很常用的东西了,关于原理和语法细节的东西,网上有很多详细的好文章。这里不在重复,只是作为记录,多年后还能根据大致的内容了解。最简化的记录内容。动态库,静态库的生成

2017-11-06 10:53:57 594

原创 c++构建工具之xmake使用实例

1.下载源码编译安装在线源码在线文档makefile中有默认编译完成的安装路径:prefix:=$(if $(prefix),$(prefix),$(if $(findstring /usr/local/bin,$(PATH)),/usr/local,/usr))由于不想安装在系统中,修改为安装到当前目录(安装在系统目录的好处就是可以直接使用xmake命令不用带目录也不用配

2017-11-06 10:14:25 2506

原创 c++构建工具之shell,configure,make,cmake,scons,xmake简析总结

说到编译工具,在windows下必言vs,在linux下必言make0.shell之所以要把shell放在这里,是因为下面那些工具都是类似shell脚本的语法,如果你熟练使用shell,使用其他几种工具构建工程将不是问题。如果编译一个库的命令太复杂,或者为了方便,我们更愿意将编译命令写成一个shell脚本来执行,比如build.sh编译ffmpeg#!/bin/sh./confi

2017-11-03 17:35:25 8513 2

原创 C++中四种类型转换符:static_cast、dynamic_cast、reinterpret_cast和const_cast要点解析

1.static_cast可用于c++基本类型之间的转换,子类与派生类之间的指针转换,编译时检查转换有效性,不关联的类指针转换会在编译时报错,类不要求有虚函数。typename dst_ptr = static_cast (src_ptr)2.dynamic_cast基类必须有虚函数,否则编译出错。c++在运行时不关系指针是什么类型的,关心的是指针指向的对象是什么类型的,简

2017-11-01 17:42:57 397

数学专业英语词汇20rmb.pdf

整理的常用的数学词汇,都是干货,是我花了20元在别的网站买来的啊,现在分享给大家。

2019-10-15

Microsoft Windows网络编程(第二版,有书签)

Microsoft Windows网络编程(第二版,有书签)

2015-04-22

linu C程序设计大全 吴岳 完整版 part1

linu C程序设计大全 吴岳 完整版

2015-03-27

linu C程序设计大全 吴岳 完整版 part3

linu C程序设计大全 吴岳 完整版

2015-03-27

linu C程序设计大全 吴岳 完整版 part2

linu C程序设计大全 吴岳 完整版

2015-03-27

android sdk 模拟器 懒人版-part3

这个是别人整理的不用安装更新的资源,我亲测可用的,所以分享到这里。 简介:SDK:(software development kit)软件开发工具包。被软件开发工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。 因此,Android SDk 指的既是Android专属的软件开发工具包。 实际上我不得不说Android很土,SDK 给的根本没法用,因为要还需要下载N多东西, Google那个网站又被墙,速度又慢。 如果你是个懒虫就跟我一样用这个吧,直接解压缩就可以用。 只包括1.6-〉3.2 N多版本,方便开发调试,只包括模拟器部分,可以保证开发文档什么都有了,至少我是够用了 基本上不喜欢开发的人,也可以用模拟器体验下了 前提你的机器上要装 JDK 更新:如需开发SDK 4.0 以及虚拟机,还需要下载我这里的ARM EABI v7a System Image这个资源。

2014-12-31

vc编程pppoe-discovery

工程使用vs2010编写,要求安装winpcap驱动,若出现找不到头文件,请包含winpcap库目录以及头文件目录,实现windows下捕获网络数据帧,数据链路层数据,实现pppoe协议discovery阶段,发现服务器,目前来说网上还没有像这样的代码,同时也是实现网络底层抓包学习的好资料。

2012-09-17

空空如也

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

TA关注的人

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