自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(52)
  • 收藏
  • 关注

原创 /bin/sh^M: bad interpreter: No such file or directory 异常

经常遇到一个问题,在windows里面编辑好的文件,比如说sh脚本,传输到linux里面执行不成功,报错如下:/bin/sh^M: bad interpreter: No such file or directory分析:这是不同系统编码格式引起的:在windows系统中编辑的.sh文件可能有不可见字符,所以在Linux系统下执行会报以上异常信息。解决方案: 假设我们的文件为command.sh

2017-05-13 15:11:36 610

原创 JavaScript 正则表达式的使用

1、通过RegExp类的构造方法进行创建语法格式:var reg = new RegExp(pattern,flags)pattern:必选参数,用于指定需要进行匹配的模式字符串,例如:”\d{3}”flags:可选参数,用于指定正则表达式的标志信息g:全局标识,如果设置g则对文本中所有匹配部分起作用,如果没有加g,则只会对第一匹配到的字符串生效。i:忽略大小写标志m:多行标识,如果不设置

2017-03-31 10:57:00 644

原创 JavaScript 正则表达式

1、字符类 字符型 释义 举例 […] 匹配方括号内字符序列的任意一个字符,可以使用连字符”-“匹配指定范围的任意字符。 /[012]/ 可以与0A1B2C中字符0或1或2匹配; /[0-5]/ 可以与a3df234df4412中0-5之间任意数字字符匹配。 [^…] 匹配方括号中字符序列未包含的任意字符,其中可以使用连字符“-”匹配不在指定范围内的任意字符。

2017-03-31 10:53:08 494

原创 JavaScript DOM 简单介绍

1、DOM概述DOM是一种与浏览器、平台及语言无关的接口,能够以编程方式访问和操作文档。DOM是Document Object Model(文档对象模型)的简称。DOM提供了访问、操作该模型的API。2、DOM分层结构在DOM中文档的层次结果被表示为树形结构,倒立的树形结构。3、遍历文档在DOM中,HTML文档各个节点被视为各种类型的Node对象,并且将HTML文档表示为Node对象的树。

2017-03-31 10:42:05 638

原创 JavaScript window对象

简介window对象即为浏览器窗口对象,是所有对象的顶级对象,window对象中提供了许多属性和方法,都是用来操作浏览器页面内容的。 window对象和Math对象一样,不需要使用new关键字创建对象实例,而是直接使用对象名.成员 的格式访问其属性和方法。1、window对象常见属性 属性名称 释义 document 对窗口或框架中含有文档的document对象的只读引用 def

2017-03-31 10:37:25 971

原创 JavaScript Math和Date对象

1、Math对象在使用Math对象时,不用使用new创建实例,直接使用对象名.成员方式(Math.xxx)调用。 举例:Math.max(argument1,argument2,);取出参数中最大的一个, 例如:Math.max(3,88,2,90,-1,333);Math.min(argument1,argument2,);取出参数中最小的一个;Math.random();产生一个

2017-03-31 10:33:26 564

原创 JavaScript Math和Date对象

1、Math对象在使用Math对象时,不用使用new创建实例,直接使用对象名.成员方式(Math.xxx)调用。 举例:Math.max(argument1,argument2,);取出参数中最大的一个, 例如:Math.max(3,88,2,90,-1,333);Math.min(argument1,argument2,);取出参数中最小的一个;Math.random();产生一个

2017-03-31 10:30:53 271

原创 JavaScript String 对象介绍

1、属性JavaScript中可以用单引号或者双引号括起来的一个字符串当作是一个字符串对象的实例,所以可以在某个字符串后面加上,去调用String对象的属性和方法。length:返回String对象的长度。(一个汉字和一个英文字母都按照一个字符长度计算)2、常用方法indexOf(subsString,startIndex) 用于返回第一次subsString出现字符串的字符位置,如果没有找

2017-03-31 10:27:53 337

原创 JavaScript 事件与事件处理

1、常用事件当页面加载完成时会触发onload事件,当点击鼠标的时候会触发onclick事件等等; 常用事件: 事件类型 事件描述 onabort: 对象载入被中断时触发; onblur: 元素或窗口本身失去焦点时触发; onchange: 改变元素中的选项或其他表单元素失去焦点,并且在其获取焦点后内容发生改变时触发; onerror: 出现任何错误时触发;

2017-03-31 10:01:19 518

原创 JavaScript 函数定义与调用

函数的定义和函数的调用function funcname(argument1,argument2) { statements; return ; }在单个文件里面函数名是唯一的,区分大小写;函数参数采用逗号分割;例如:function account(price,number) { // body...

2017-03-31 09:53:42 356

原创 JavaScript 运算符

赋值运算符简单赋值运算 var a = “tom”;复合赋值运算符 a += b; //相当于a = a+b; a -= b; //相当于a = a-b; a *= b; //相当于a = a*b; a /= b; //相当于a = a/b; a %

2017-03-30 18:36:48 403

原创 JavaScript 变量定义和使用

变量的命名规则变量名由字母、数字、下划线组成,但是不能以数字开头;不能使用JavaScript中的关键字;严格区分大小写变量的声明可以用一个var声明多个变量;比如 var now, year, month, day;可以在声明变量的同时对它赋值,初始化;变量声明的时候不需要指定变量的类型,变量的类型将根据变量的值来确定;全局变量&局部变量声明: ① 在函数体外声明的都是全局变量;

2017-03-30 10:33:33 553

原创 JavaScript 特性和类型

JavaScript特性解释性语言:不需要编译,浏览器直接运行;基于对象:直接使用JS已经创建的对象;事件驱动:可以以事件驱动的方式响应客户端的输入,无需经过服务端程序;安全性:不允许访问本地硬盘,不能将数据写入服务器;跨平台:js依赖于浏览器客户端,与操作系统无关;js变量是弱变量,使用变量前无需规定变量类型,变量使用前甚至无需定义;JavaScript类型数值型 整型 浮点型

2017-03-30 10:19:08 474

原创 解决'GLIBC_2.14' not found问题时遇到的坑

下面先说一下遇到的坑:1、在make过程中出现如下错误:/usr/bin/install: `include/limits.h' and `/opt/glibc-2.14/include/limits.h' are the same file2、在make install过程中出现如下错误:Can't open configuration file /opt/glibc-2.14/etc/ld.so.conf: No such file or directory

2017-03-16 16:44:08 58315 22

原创 CentOS gcc升级4.8步骤

最近需要用到c++11,所以需要把gcc从4.4.7升级到4.8.1。首先我们需要下载gcc的源码wget http://ftp.gnu.org/gnu/gcc/gcc-4.8.1/gcc-4.8.1.tar.gz然后解压进入目录tar -xvzf gcc-4.8.1.tar.gz -C /opt/gcccd /opt/gcc/gcc-4.8.1执行如下命令:./c

2017-03-16 15:55:54 5254

转载 前端开发 基础知识 dpi 、 dip 、分辨率、屏幕尺寸、px、density 关系以及换算

dpi 、 dip 、分辨率、屏幕尺寸、px、density 关系以及换算一、基本概念dip        : Density independent pixels ,设备无关像素。dp        :就是dippx        : 像素dpi       :dots per inch , 直接来说就是一英寸多少个像素点。常见取值 120,160,240。我一般称作像素密度

2016-03-05 11:16:52 8252

原创 客户端多次RST以及不同场景下的RST报文的差异

在某个TCP交互过程中,我们发现在交互的后期,客户端多次向服务器端发送RST报文,如下图所示:         我们首先来看客户端发出的第一个RST报文的解码:        RST与ACK标志位都置一了,并且具有ACK number,非常明显,这个报文在释放TCP连接的同时,完成了对前面已接收报文的确认。       我们再来看看客户端发出的后续RST报文

2016-01-27 15:32:03 14890

原创 如何解决Connect超时导致的阻塞问题

这几天发现一个现象,客户端正常连接服务器connect显然不会出现问题。        在异常情况下,如果是服务器出现异常,connect能够立即返回失败;但是当客户端出现异常的情况下,分为两种情况:        一种是不插网线,客户端没有获得ip地址,在这种情况下,connect也可以立即返回错误;        二是但是当客户端插上网线,但是连接网络失败,也就是说能够获取到ip地

2016-01-25 09:29:55 10826 2

原创 lua table 遍历

Lua常用的4中遍历方式for key, value in pairs(tbtest) do XXX end 这样的遍历顺序并非是tbtest中table的排列顺序,而是根据tbtest中key的hash值排列的顺序来遍历的。for key, value in ipairs(tbtest) do XXX end  这样的循环

2016-01-21 15:58:06 642

转载 luci 关于Map

HooksThe CBI gained support for hooks which can be used to trigger additional actions during the life-cycle of a map:map = Map("config", "Title Text")function map.on_commit(self) -- do som

2016-01-21 13:31:28 1857

原创 容器list使用之erase

今天程序里面使用了list容器,其中用到了erase()函数,程序竟然崩溃了,之前一直没出现问题,感觉莫名奇妙。花了点时间,搞清楚了erase()函数的机理。常用的删除容器中元素的方法是如下(方法1):      list List;      list::iterator iter;      for( iter = List.begin(); iter != List.en

2016-01-16 17:09:58 758

转载 Openwrt开发与Luci介绍

Openwrt开发与Luci介绍字数4199 阅读1299 评论0 喜欢2摘要:Lua作为一门方便嵌入(其它应用程序)并可扩展的轻量级脚本语言来设计的,因此她一直遵从着简单、小巧、可移植、快速的原则,官方实现完全采用ANSI C编写,能以C程序库的形式嵌入到宿主程序中。Lua的每个版本都保持着开放源码的传统,不过各版采用的许可协议并不相同,自5.0版(最新版是5.1)开始她采用

2016-01-14 15:06:32 3403

原创 netstat监控大量ESTABLISHED连接与Time_Wait连接问题

netstat监控大量ESTABLISHED连接与Time_Wait连接问题问题描述:在不考虑系统负载、CPU、内存等情况下,netstat监控大量ESTABLISHED连接与Time_Wait连接。# netstat -n | awk '/^tcp/ {++y[$NF]} END {for(w in y) print w, y[w]}'CLOSE_WAIT

2016-01-12 11:57:33 878

转载 luci 打印函数封装

最近把luci代码深入地剖析了一遍.说实话刚开始看的时候也是云里雾里,特别是dispatch函数, 这其间也是参考了几篇文章, 特此感谢.刚开始看luci代码确实就和逆向没啥区别, 需要揣摩作者对于各个变量的用途. 于是我就想了一个办法, 就是把每个变量都打印出来.为此我在/usr/lib/lua/luci目录下引入了log.lua模块:local M = {}local

2016-01-11 20:37:37 953

原创 linuxshell脚本shell if [ -d filename]

[ -a FILE ] 如果 FILE 存在则为真。[ -b FILE ] 如果 FILE 存在且是一个块特殊文件则为真。[ -c FILE ] 如果 FILE 存在且是一个字特殊文件则为真。[ -d FILE ] 如果 FILE 存在且是一个目录则为真。[ -e FILE ] 如果 FILE 存在则为真。[ -f FILE ] 如果 FILE 存在且是一个普通文件则为真。

2016-01-11 16:49:59 906

转载 openwrt源码框架解析

本篇的主要目的是想通过分析Makefile,了解openwrt编译过程。着重关注以下几点:openwrt目录结构主Makefile的解析过程,各子目录的目标生成。kernel编译过程firmware的生成过程软件包的编译过程openwrt目录结构官方源下载速度太度,我从github上clone了openwrt的代码仓库。git clo

2016-01-11 15:00:54 16230

转载 浅析TCP RST

应该没有人会质疑,现在是一个网络时代了。应该不少程序员在编程中需要考虑多机、局域网、广域网的各种问题。所以网络知识也是避免不了学习的。而且笔者一直觉得TCP/IP网络知识在一个程序员知识体系中必需占有一席之地的。在TCP协议中RST表示复位,用来异常的关闭连接,在TCP的设计中它是不可或缺的。发送RST包关闭连接时,不必等缓冲区的包都发出去,直接就丢弃缓存区的包发送RST包。而接收端收到RST

2015-12-24 15:58:19 450

原创 C++ 回调函数理解

编程中肯定会遇到在C++中使用回调函数的情况。但是为什么要使用回调函数呢?我们需要理解回调函数设计原理因为可以把调用者与被调用者分开。调用者不关心谁是被调用者,所有它需知道的,只是存在一个具有某种特定原型、某些限制条件(如返回值为int)的被调用函数。如果想知道回调函数在实际中有什么作用,先假设有这样一种情况,我们要编写一个库,它提供了某些排序算法的实现,如冒泡排序、快速排序、shel

2015-12-18 13:49:55 27722 3

原创 Jsoncpp 编译【mips交叉编译】

最近需要在代码中用的json,一如既往的选择了jsoncpp,只不过之前一直用同事编译好的库,自己还未从零到一编译过。       下面说一下编译过程心得       1、下载Jsoncpp       github地址为https://github.com/open-source-parsers/jsoncpp,根据自己需求选择不同的版本。        2、解压缩下载的文件

2015-12-02 19:13:34 2844

原创 openssl交叉编译 mips环境

最近需要使用openssl库,选用了https://www.openssl.org/地址下的OpenSSL 1.0.1p版本如果只是正常环境下使用openssl,编译比较简单,只需要解压缩openssl 1.0.1p版本然后进入根目录按照如下命令:1、./configure --prefix=/user/local2、make & make install这样就可以在编译并安装

2015-12-02 19:11:57 9355 1

原创 mips-openwrt交叉编译 undefined reference to `__stack_chk_guard 错误

最近在mips-openwrt的工具链中交叉编译可执行程序时,出现了以下的错误:    undefined reference to `__stack_chk_guard'    undefined reference to `__stack_chk_fail'    百度一下,得知这个错误的引起是因为启用了Stack Guard堆栈保护,什么是堆栈保护呢?如下:

2015-12-02 13:33:01 12454

原创 Glibc 和 uClibc

最近在搞mips openwrt框架的东西,mipc的GCC工具链为mipsel-openwrt-linux-gcc,所依赖的libc库为:mipsel-openwrt-linux-uclibc-gcc,也就是uclic库,和通常用的glic是有一定区别的。以下是从网上搜集的uClibc和Glibc的区别uClibc和Glibc并不相同,两者有许多不同之处,而且以下不同有可能给你带来一

2015-12-02 11:35:42 3008

转载 C++ libcurl 使用简单描述

一、LibCurl基本编程框架二、一些基本的函数三、curl_easy_setopt函数部分选项介绍四、curl_easy_perform 函数说明(error 状态码)五、libcurl使用的HTTP消息头六、获取http应答头信息七、多线程问题八、什么时候libcurl无法正常工作九、关于密码十、HTTP验证十一、代码示例 1.基本的http GET/POST操作

2015-11-23 09:59:38 1303

转载 Android手机推送方案

Android实现推送方式解决方案  转自:http://www.cnblogs.com/hanyonglu/archive/2012/03/04/2378971.html     本文介绍在Android中实现推送方式的基础知识及相关解决方案。推送功能在手机开发中应用的场景是越来起来了,不说别的,就我们手机上的新闻客户端就时不j时的推送过来新的消息,很方便的阅读最

2015-11-23 09:34:27 913

原创 linux系统端口说明

介绍端口前,先看一下端口的基本知道吧。 1.公认端口(Well Known Ports):从0到1023,它们紧密绑定于一些服务。通常这些端口的通讯明确表明了某种服务的协议。例如:80端口实际上总是HTTP通讯。 2. 注册端口(Registered Ports):从1024到49151。它们松散地绑定于一些服务。也就是说有许多服务绑定于这些端口,这些端口同样用于许多其它目的。例如:许多系

2015-11-20 09:40:48 13867

转载 IP 多播地址与MAC多播地址的映射关系

转载一篇IP与MAC映射的技术博文,由于博主转载的那篇博文没有标识原文出处,暂时未能写明出处,还请见谅!为了支持IP 多播,以太网的大佬们已经为 Ethernet和Fiber Distributed Data Interface (FDDI)的MAC地址保留了一个多播地址区间:01-00-5E-00-00-00 到 01-00-5E-7F-FF-FF。正如下图所示48位的MAC地址中的高2

2015-11-03 00:20:40 5017

原创 nginx 编译 问题

在nginx中我们执行“./configure” 会提示意思是告诉我们没有zlib library的支持了 碰到此类问题我们只要安装这个库就可以。下载后,解包,并进入nginx:开始nginx安装: ./configuremakemake install 若在“./configure”后方加入了“--with-http_gzip_stat

2015-10-29 10:11:26 765

原创 Ubuntu14.04下Tomcat8.0和jdk1.8版本安装

最近需要在linux下用到tomcat的环境,目前使用的linux服务器的是ubuntu14.04的x64版本的。所以需要在这里安装tomcat8.0和对应的jdk1.8。tomcat和jdk的下载就不多说了,网上有很多的教程。附上下载地址和我选择的版本:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-dow

2015-10-20 16:57:38 1761

原创 OSI和TCP/IP分层介绍

OSI和TCP/IP是很基础但又非常重要的网络基础知识,理解得透彻对运维工程师来说非常有帮助。我们来总结一下,以下部分摘自网络,未指明出处还请见谅。一、OSI 和 TCP/IP 概念  OSI七层模型  OSI中的层 功能 TCP/IP协议族  应用层 文件传输,电子邮件,文件服务,虚拟终端 TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telne

2015-10-20 10:51:37 5228

转载 Nginx Location配置总结

语法规则: location [=|~|~*|^~] /uri/ { … }= 开头表示精确匹配^~ 开头表示uri以某个常规字符串开头,理解为匹配 url路径即可。nginx不对url做编码,因此请求为/static/20%/aa,可以被规则^~ /static/ /aa匹配到(注意是空格)。~ 开头表示区分大小写的正则匹配~*  开头表示不区分大小写的正则匹配!~和!~*分

2015-10-19 22:05:39 343

空空如也

空空如也

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

TA关注的人

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