HTML中一些符号

Publish: September 29, 2014 Category: 默认分类 No Comments

链接:http://www.douban.com/group/topic/28046629/


Linux工具

Publish: September 28, 2014 Category: Shell 1 Comment

掌握这些工具,Linux不再神秘。


使用openssl进行MD5编码

Publish: September 18, 2014 Category: C/C++ 1 Comment

/*
* md5.cc
* - Using md5 with openSSL. MD5 returns a 128-bit hash value from a string.
*/
 
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <openssl/md5.h>

int main(int argc, char** argv) {
    MD5_CTX hash_ctx;
    char input_string[128];
    unsigned char hash_ret[16];
    int i;
 
    // check usage
    if (argc != 2) {
        fprintf(stderr, "%s <input string>\n", argv[0]);
        exit(-1);
    }
 
    // set the input string
    snprintf(input_string, sizeof(input_string), "%s", argv[1]);
 
    // initialize a hash context 
    MD5_Init(&hash_ctx);
 
    // update the input string to the hash context (you can update
    // more string to the hash context)
    MD5_Update(&hash_ctx, input_string, strlen(input_string));
 
    // compute the hash result
    MD5_Final(hash_ret, &hash_ctx);
 
    // print
    printf("Input string: %s\n", input_string);
    printf("Output string: ");
    for (i=0; i<32; ++i) {
        if (i % 2 == 0) {
            printf("%x", (hash_ret[i/2] >> 4) & 0xf);
        } else {
            printf("%x", (hash_ret[i/2]) & 0xf);
        }
    }
    printf("\n");
 
    return 0;
}

编译与运行:

# 编译:
gcc -g -o md5 md5.c -lssl -I /usr/include/

# 运行:
./md5 'test string'

使用NC检测对方网络是否正常

Publish: September 17, 2014 Category: Shell 1 Comment

方法: nc [options] [对方host] [对方port]

# 检查10.71.2.110:234是否超时5秒
echo quit | nc -w 5 10.71.2.110:234
# 使用本机:60.28.2.221的IP,去连对方:10.71.2.110:234是否超时5秒
echo quit | nc -w5 -s60.28.2.221 10.71.2.110 234

Linux vimrc配置

Publish: September 2, 2014 Category: Shell 1 Comment

基本配置:

syntax enable
syntax on
set bg=dark
set background=dark
set tabstop=4 " 设定 tab 长度为 4
set expandtab " 设TAB宽4个空格 
set nu! 
set shiftwidth=4 " 设定 << 和 >> 命令移动时的宽度为 4
set paste " 取消自动注释
" colorscheme darkblue
colorscheme solarized


添加自定义语法颜色:

  1. 下载 solarized.vim 

  2. 拷贝 solarized.vim 到相应目录

# mkdir -p /root/.vim/colors/
# cp solarized.vim /root/.vim/colors/


vim 打开是乱码,cat 看是正常的,添加下面几行:

set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936
set termencoding=utf-8
set encoding=utf-8


在.vimrc中添加以下代码后,重启vim即可实现按TAB产生4个空格:

set ts=4  (注:ts是tabstop的缩写,设TAB宽4个空格)
set expandtab

对于已保存的文件,可以使用下面的方法进行空格和TAB的替换:

TAB替换为空格:

:set ts=4
:set expandtab
:%retab!

空格替换为TAB:

:set ts=4
:set noexpandtab
:%retab!

加!是用于处理非空白字符之后的TAB,即所有的TAB,若不加!,则只处理行首的TAB。



详细说明:

"按编程语言的语法,对代码进行彩色标示,术语叫做语法高亮
syntax on
 
"显示行数标示
set number
 
"打开状态栏的坐标信息
set ruler
 
"取消底部状态栏显示。1为关闭,2为开启。
set laststatus=1
 
"将输入的命令显示出来,便于查看当前输入的信息
set showcmd
 
"设置魔术匹配控制,可以通过:h magic查看更详细的帮助信息
set magic
 
"设置vim存储的历史命令记录的条数
set history=100
 
"下划线高亮显示光标所在行
set cursorline
 
"插入右括号时会短暂地跳转到匹配的左括号
set showmatch
 
"搜索时忽略大小写
set ignorecase
 
"不对匹配的括号进行高亮显示
letloaded_matchparen=1
 
"在执行宏命令时,不进行显示重绘;在宏命令执行完成后,一次性重绘,以便提高性能。
setlazyredraw
 
"设置一个tab对应4个空格
set tabstop=4
 
"在按退格键时,如果前面有4个空格,则会统一清除
set softtabstop=4
 
"cindent对c语法的缩进更加智能灵活,
"而shiftwidth则是在使用&lt;和&gt;进行缩进调整时用来控制缩进量。
"换行自动缩进,是按照shiftwidth值来缩进的
set cindent shiftwidth=4
 
"最基本的自动缩进
set autoindent shiftwidth=4
 
"比autoindent稍智能的自动缩进
set smartindent shiftwidth=4
 
"将新增的tab转换为空格。不会对已有的tab进行转换
set expandtab
 
"高亮显示搜索匹配到的字符串
set hlsearch
 
"在搜索模式下,随着搜索字符的逐个输入,实时进行字符串匹配,并对首个匹配到的字符串高亮显示
set incsearch
 
"设置自定义快捷键的前导键
letmapleader=","
 
"利用前导键加b,则可以在一个单子两边加上大括号
map b wbi{<Esc>ea}<Esc>
 
"使用前导键加w来实现加速文件保存,来代替:w!加回车
nmap w :w!<CR>
 
"匹配那些末尾有空格或TAB的行。(es:Endspace Show)
map es :/.*\s\+$<CR>
 
"删除行末尾的空格或TAB(ed:Endspace Delete)
map ed :s#\s\+$##<CR>
 
"如果所选行的行首没有#,则给所选行行首加上注释符#(#a:# add)
map #a :s/^\([^#]\s*\)/#\1/<CR>
 
"如果所选行行首有#,则将所选行行首所有的#都去掉(#d:# delete)
map #d :s/^#\+\(\s*\)/\1/<CR>
 
"如果所选行的行首没有//,则给所选行行首加上注释符//(/a:/ add)
map /a:s/^\([^\/\/]\s*\)/\/\/\1/<CR>
 
"如果所选行行首有//,则将所选行行首的//都去掉(/d:/ delete)
map /d:s/^\/\/\(\s*\)/\1/<CR>