- 博客(290)
- 资源 (20)
- 收藏
- 关注

转载 Shell整理(持续更新中)
curl用法在单行命令里设置环境变量set查看磁盘信息(型号, 容量等)查看磁盘是否SSDsshfs挂载/卸载line-by-line方式合并2个文件exec, source, fork的区别(参考: Shell十三问)获取当前TTY的名字/限制脚本仅能在TTY中执行curl用法安装最新版curlrpm -Uvh http://nervion.us....
2016-06-06 19:28:28
1919
原创 Python中, datetime, date, timestatmp, string互相转换
date -> datetimetimestamp -> datetimestring -> datetimedatetime -> datedatetime -> timestampdatetime -> stringtimestampdate -> datetimefrom datetime import date...
2018-06-12 12:06:57
1081
原创 openTSDB/Bosun报警语法 介绍/学习笔记
openTSDB表达式概述/api/query, 内含rate options, filtersFiltersMetric Query String FormatopenTSDB中文版Bosun表达式 - 英文运算优先级Bosun查询举例Bosun常用函数openTSDB表达式概述/api/query, 内含rate options, filters...
2018-03-06 10:35:26
7790
翻译 实用Unicode
翻译: https://nedbatchelder.com/text/unipain.html这是我在PyCon 2012做的一次分享。你看在这个页面看到演示稿和描述文字,也可以用浏览器打开分享稿,也可以直接看这个分享视频。点击演示稿会调到全屏模式。 因为里面使用了Symbola字体,使用你需要在哪些特殊符号出现之前就先下载这个字体。大家好,我是Ned Batchelder。我写Python已经1
2017-11-08 20:50:37
1133
原创 使用metaclass验证子类
实验代码# coding: utf-8# Python2中定义Metaclass, 该Metaclass要继承自type, 实现__new__方法class MetaCls(type): def __new__(meta, name, bases, class_dict): print (meta, name, bases, class_dict) if c
2017-10-22 14:22:19
675
原创 How to monkeypatch a staticmethod/classmethod/instancemethod?
0 - 初始状态1 - 修改staticmethod2 - 修改classmethod3 - 修改instancemethod3-1 - 全部实例3-2 - 单个实例最近在用Mock的mock.patch替换实例方法, 感觉很神奇, 加上之前用过JS, 知道JS中可以为实例方法bind新的实例, 所以猜测在Pyhon这门脚本语言中也应该有类似的机制, 可以让我们修改静态方法(static
2017-10-09 15:12:08
1145
转载 MySQL查看数据库/表所占磁盘空间大小
查询所有数据库占用磁盘空间大小select TABLE_SCHEMA, concat(truncate(sum(data_length)/1024/1024,2),' MB') as data_size,concat(truncate(sum(index_length)/1024/1024,2),'MB') as index_sizefrom information_schema.tables
2017-09-30 15:52:36
2085
原创 [super][继承][面向对象][构造函数][多重继承]
super()内置函数父类的构造函数必须手动调用, 调用方式有2种: 1. MyParentClass.__init__(xxx) 2. super(MyClass, self).__init__(xxx) 区别在于: 1比较直观, 在涉及多重继承时, 可以手动控制父类构造函数的调用顺序, 需要手动为每个父类调用一次构造函数; 2比较灵活, 动态查找父类, 在涉及多重继承时, 会自动调用各个
2017-06-20 17:31:41
852
原创 Python中, 使用setup.py和console_scripts参数创建安装包和shell命令
项目目录结构setup_test├── my_project│ ├── __init__.py│ └── __main__.py└── setup.py文件内容 - __setup__.pyfrom setuptools import setupsetup(name='my_project', version='0.1.0', packages=['my_pr
2017-06-12 18:15:21
7607
翻译 Shell中,实现单一实例(译)
代码#!/bin/bash## Copyright (C) 2009 Przemyslaw Pawelczyk <przemoc@gmail.com>#### This script is licensed under the terms of the MIT license.## https://opensource.org/licenses/MIT## Lockable script
2017-03-20 16:05:20
859
原创 Shell中, eval的用法
简介eval是Shell内置的命令。基本用法如下:eval [arguments]主要功能是读入arguments并执行之。arguments的退出码(Exit Code)会被当做eval的退出码。如果没有arguments,则退出码是0。在平时的使用中,我们一般会用到eval的2个特性。两次扫描参数cat >parse_twice.sh<<EOF""#!/bin/bashx=100y=xe
2017-03-17 16:35:23
10813
翻译 Shell中的算术运算(译)
算术运算尽管Shell中的变量被缺省地看做是string类型,而非number,但是Shell本身仍然支持算术运算。 主要有以下5种方式。1. declare$ n=6/3$ echo $n6/3$ declare -i n #将n声明为一个整数(integer)$ n=6/3$ echo $n22. expr$ z=5$ z=`expr $z+1` # 加号(+)两边要有空格
2017-03-16 22:38:05
1239
原创 Shell中, 退出整个脚本
常规做法cat >test.sh<<EOF''#!/bin/bashexit_script(){ exit 1}echo "before exit"exit_scriptecho "after exit"EOFchmod a+x test.sh./test.shecho $?# 输出before exit1可以看到直接使用exit可以退出脚本,并且可以将错误码作为参数传递。
2017-03-16 16:03:26
20228
原创 Shell中, 为标准错误输出添加时间戳
示例#! /bin/bashexec 2> >(while read line; do echo "[$(date "+%Y-%m-%d %H:%M:%S")] $line"; done)ls /not/exist/path运行chmod u+x stderr_ts.sh./stderr_ts.sh输出[2017-03-15 18:33:33] ls: /not/exist/path: No
2017-03-16 14:15:29
4074
1
原创 Shell中, 快速创建清空文件内容
常规做法echo -n > /path/to/file 注意使用-n参数,这样可以去掉末尾的换行符。更简洁的做法:>/path/to/file:(冒号)是Bourne Shell内置命令,完整用法是下面这样子的:: [arguments]它除了展开arguments和重定向(redirection)以外,不做任何事情。另外,它返回的状态码是0,所以可以用来实现死循环:while :do
2017-03-16 14:15:01
1640
原创 Shell中, 内嵌文档和内嵌字符串的使用
内嵌文档(Here Documents)内嵌文档(Here Documents)的完整用法如下:[n]<<[-]word here-documentdelimiter常规用法cat <<EOFa text linea command substitution: `pwd`a parameter expansion: $$EOF# 输出a text linea comma
2017-03-16 14:14:26
1195
原创 ES6中, Promise/then的用法, 躲坑秘籍
知识点Promise.then()的返回值是一个新的PromisePromise.then()需要2个参数(均可选), 第1个参数用于处理resolve, 第2个参数用于处理reject无论resolve*被处理*还是reject*被处理*, Promise.then()都会*默认*返回一个新的Promise实例, 且该Promise实例是*resolved*状态的; 当然了, 这种默认的行为
2017-01-05 15:43:09
5169
原创 CentOS Linux中,使用sendEmail发送163邮箱的邮件
代码wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gztar -xzvf sendEmail-v1.56.tar.gzcd sendEmail-v1.56./sendEmail \ -f src_account@163.com \ -t dst_account@163.co
2016-07-13 16:24:16
3816
原创 CentOS6中,安装PHP7
最近在安装Zabbix管理工具的时候遇到了PHP安装的问题, 折腾了一阵, 总算搞定, 期间查了一些资料, 分享出来, 供大家参考, 少走些弯路.更新软件源[1]wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpmwget http://rpms.remirepo.net/enterprise/re
2016-07-11 20:36:13
896
原创 CentOS中,使用PHP-FPM+Nginx运行PHP网站
安装nginx和php-fpmyum install nginx php-fpm为php-fpm增加反向代理cat >/etc/nginx/conf.d/my_php.conf<<EOFserver { listen 80; server_name my_php.lslxdx.com my_php.lslxdx.com; root /var/www/html/my_php; loca
2016-07-11 15:43:14
948
原创 Node.js中,使用cluster创建子进程
'use strict';var cluster = require('cluster');var numCPUs = require('os').cpus().length;// 每个fork出来的子进程, 都会从头执行该js文件console.log('Begin to run js file. pid = ' + process.pid);if(cluster.isMaster){ c
2016-06-24 19:54:10
874
原创 Linux中,使用cron,按照日期日志,并且删除n天以前的日志归档
代码cat > my_daily.sh<<EOF#!/bin/bashdir=/path/to/logs;file=my.log;date_file=$file-$(date +%Y%m%d); # 形如my.log-20160620# 删除20天前的日志归档find $dir -mtime +20 -name "$file-*.tar.gz" -exec rm -rf {} \;# 归档当
2016-06-20 16:43:27
1713
原创 Node.js中, 使用Q.ninvoke封装对象方法为promise
var Q = require('q');function _o(msg){console.log(msg);}function main(){ var obj1 = { var1: 1, func1: function(callback){_o('obj1.func1, var1 = ' + this.var1); callback(null, this.var1);} }
2016-06-15 11:52:07
1172
原创 javascript中,自动类型转换总结
类型不同的2个变量做加法(+)运算时,会发生自动类型转换:如果2个变量是number, boolean, null, undefined中不同的2种类型,那么计算结果为number,其中null被当做0,undefined被当做NaN如果2个变量至少有1个是string或object类型,那么计算结果为string,其中null被当做’null’,undefined被当做’undefined’
2016-06-15 10:45:44
778
原创 Nodejs中,使用nock做http请求的mock
nock 可以拦截nodejs向外发送的HTTP请求,并模拟HTTP服务器响应,返回特定的结果,这对于接口测试非常方便。// 例子更改自: // https://github.com/node-nock/nock#use// 和// https://github.com/node-nock/nock#repeat-response-n-timesvar nock = require('nock
2016-06-14 19:10:09
3576
原创 javascript中,使用正则表达式实现'字符串截断翻页'
const TEMPLATE_NTH_OCCURANCE = '(?:(?:[^d]+d){n_1,}?)((?:[^d]+d){0,ps})';// !!!使用之前,务必bind({pageSize: xxx<integer>, pageNo: xxx<integer>})!!!function truncate(str, delimiterChar){ var pageSize = Ma
2016-06-06 23:06:59
658
原创 Node.js中,获取req请求的原始IP
Node.js代码var express = require('express');var app = express();var http = require('http');var server = http.createServer(app);app.set('trust proxy', true);// 设置以后,req.ips是ip数组;如果未经过代理,则为[]. 若不设置,则req
2016-04-08 20:45:11
7509
原创 JavaScript中,for, while, if, switch用到的后缀递减(a--)运算
环境: Chrome 版本 50.0.2661.18 dev (64-bit)forfor(a=2; a--; ){console.log(a);}// output:// 1// 0whilea=2;while(a--){console.log(a);}// output:// 1// 0ifa = 2;if(a--) console.log(a);// output:// 1
2016-03-30 14:32:25
963
原创 Node.js中,q在链式调用和异步调用中起到的作用
Node.js中,q可以方便地将回调大坑转换成链式调用,极大地增强了代码的可读性,下面一段代码演示了q在链式调用和异步调用中起到的作用。源码//app.jsvar Q = require('q');function func1(){ console.log('fun1 start'); var deferred = Q.defer(); deferred.resolve('func1
2016-03-30 14:31:28
1269
1
原创 Android Studio 报错"gradle xxx is required. current version is xxx"
gradle-wrapper.properties: 可以设置Gradle版本 distributionUrl=https\://services.gradle.org/distributions/gradle-2.8-all.zipbuild.gradle: 设置Android Plug-in for Gradle的版本 buildscript { reposito
2015-12-24 19:12:41
1191
原创 Android Plug-in for Gradle源码下载
1. 翻墙2. git clone https://android.googlesource.com/platform/tools/build参考资料:1. https://android.googlesource.com/platform/tools/build/2. http://tools.android.com/build/gradleplugin
2015-12-03 20:17:01
1593
转载 XCode中,为单个文件设置编译选项(Compiler Flags)
When you migrate a project to use ARC, the -fobjc-arc compiler flag is set as the default for all Objective-C source files. You can disable ARC for a specific class using the -fno-objc-arc compiler
2015-09-02 17:20:10
3154
原创 Vim中,VCSCommand插件,报'No suitable plugin'错误
是因为当前目录中没有.svn文件夹,或者该文件夹中文件的格式,与当前使用的svn
2014-08-26 12:42:38
1664
原创 Rails中delegate用法
class C attr_accessor :obj delegate :size, :to => :objendc=C.newc.obj=[1,2,3]c.size # 3
2014-08-11 15:19:55
1482
原创 Ruby 1.9的lambda新语法
l1 = lambda{print "l1"}l1 = lambda{print "l1"}l1.call # l1l2 = lambda{|n| print "l#{n}"}l2.call(2) # l2l3 = ->{print "l3"} # l3.call # l3l4 = ->(n){print "l#{n}"}l4.call(4) # l4l5 = ->(){
2014-01-13 18:13:59
1330
Android Gradle Plugin
2015-12-03
log4cpp的QtCreator工程
2013-03-27
QJSON类库的Qt Creator项目,可以在Linux和Windows中使用
2013-03-18
Linux 新手最佳晋级10本培训书籍集
2012-05-28
CMake+VS2008生成的QJson库,有src文件夹
2012-04-17
qt-solutions-qt-solutions
2012-04-06
dbunit帮助文档(HTML版)
2011-08-22
Scrum Guide [中文]
2011-08-14
Flash 钟表,适合在网页上使用
2011-03-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人