嗨,新朋友,很高兴认识你,欢迎来到我的博客。

Bash Notes(01)

主要为《Bash Pocket Reference》的翻译、记录。

Bash Features :

1. 输入/输出重定向;
2. 文件名缩写的匹配符;
3. 配置环境的变量和选项;
4. 内置的编写shell程序的指令集;
5. shell函数,在shell程序内编写模块化的任务;
6. 任务控制;
7. 命令行编辑(是呀vi或者Emacs的语法);
8. 访问以前输入的命令(历史);
9. 整数运算;
10. 数组和算术表达式;
11. 命令名缩写(别名);
12. 与POSIX向上兼容;
13. 国际化支持;
14. for循环。

1. /etc/profile 每次登录的时候自动执行;
2. 以下文件中发现的第一个: ~/.bash_profile, ~/.bash_login, ~/.profile 。登录时自动执行。
3. ~/.bashrc 每次非登录(nonlogin)shell时读取,如果作为sh调用,会读取$ENV作为替代,为保持POSIX兼容性。

Bash彩色提示符

浏览Arch的Wiki,看到 彩色终端提示符 ,最终找到这个页面——What’s your PS1?,顺手改了一下自己Bash的配置。
最终的效果,.bashrc中添加如下脚本:
export PS1="\[\033[0;37m\][\[\033[0;35m\]$(date +%H:%M:%S)\t \[\033[0;34m\]\u\[\033[0;31m\]@\[\033[0;33m\]\h\[\033[0;m\] \[\033[0;36m\]\w\[\033[0;37m\]]\$\[\033[0;32m"
Change Log: $(date +%H:%M:%S) 可以使用\t 实现:D 显示效果是这样:
[18:28:09 root@tuxwang ~]#
正好了解了一下Bash的彩色输出,整理记录下来。 

使用OpenSSL实现证书的管理

 
http://www.infosecurity.org.cn/content/pki_pmi/OpenSSL.htm

1 OpenSSL概述

目前比较流行的认证服务器之一是OpenSSL认证服务器。OpenSSL项目在Eric Young开发的SSLeay包的基础上,开发一个健壮的、商业等级的、开放源码的工具包用强大的加密算法来实现安全的socket层和传输层安全性,这 个项目由全世界的志源者管理和开发OpenSSL工具包和相关的文档[6]。它提供了众多而且复杂的API函数,可惜的是,目前它的文档不全,只能够程序 员自已多做工作。它的网址是:http://www.openssl.org。

 2 为CA创建一个RSA私钥

#openssl genrsa –des3 –out –ca.key 1024

系统提示输入PEM pass pharse,也就是密码。生成ca.key文件,可以将文件的属性改为400,并放在安全的地方。

 3利用CA的RSA私钥创建一个自签名的CA证书

创建一个自签名的证书(Selfsigned certificate)运行req命令,该命令生成一个ca.crt。

#openssl req –new –x509 –days 3650 –key ca.key –out ca.crt

然后系统提示输入国家代号、省份名称、城市名称、公司名称、部门名称、你的姓名及Email地址,这样一张自签名的CA证书就制作完成。

 4为客户颁发证书

为客户创建证书,先用genrsa命令生成的私钥,用req命令生成证书签署请求CSR。

#openssl genrsa –des3 –out client.key 1024

#openssl req –new –key client.key –out client.csr这里也要输入个人的信息。

然后用sign.sh签署证书。

#./sigh.sh client.crt

这样由CA签发的证书就制作完成。

 5撤消证书

要吊消证书可以使用openssl的ca命令,它可以对证书进行吊消、加进CRL及CRL有关的其它一些处理。

要吊消证书可以简单地使用以下命令:

#openssl ca –revoke 证书文件名

这时数据库被更新证书被标记上吊消的标志,需要生成新的证书吊消列表:

#openssl ca -gencrl -config /etc/openssl.cnf -out crl/sopac-ca.crl

证书吊消列表文件要在WEB站点上可以使用,必须将crldays或crlhours和crlexts加到证书中:

openssl ca -gencrl -config /etc/openssl.cnf -crldays 7 -crlexts crl_ext -out crl/sopac-ca.crl

 6证书的更新

当用户发送他旧的证书证书或要在原有私钥的基础上建新的证书,所以必须吊消旧的证书然后再签发新的证书。要找到证书,可以用户的DN(区别名)在 index.txt文件中查到序列号xx,用cert/<xx>.pem做为证书吊消的依据。你必须手动签发证书,因为开始时间和结束时间以 便确定新证书的有效性。

#openssl ca -config /etc/openssl.cnf -policy policy_anything -out newcert.pem -infiles newreq.pem -startdate [now] -enddate [previous enddate+365days]

用正确的时间替换 [now]和[previous enddate+365days]。

 7查看证书

#openssl x509 -in cert.pem -noout –text

 结束语

数字证书相当于电子身份证,X.509证书是由CCITT X.509国际标准所规定,目前在电子商务飞速发展的今天应用相当的广泛,交易支付过程中,参与各方必须利用认证中心签发的数码证书来证明各自的身份,数 字证书可以进行数字签名,支持不可否认性。电子交易中,无论数字时间戳还是数字证书的发放,都不是靠交易的双方自己来完成,而需要设立一个可靠的第三方机 构,进行有效、快速、规范化的认证服务。CA(Certfication Authofity)就是这样一个机构,用openssl论证服务器进行证书发放,证书更新,证书撤销,建立自己的CA论证中心,开发费用低,代码健壮, 用强大的加密算法来保证信息传输的安全,它将有力地促进我国电子商务的发展。

A2SD+

所谓安卓用户三大爱好:刷机重启换电池。入了G7以来,刷过几次系统,最后一直用MIUI的ROM,从4.22一直到5.20用了一个月吧。但最后的5.27 和 6.3 更新太不给力了。

首先,5.27一直更新不上来,再个,彻底的Wipe之后刷6.3还是有问题,各种FC(后来发现一部分是我wipe不彻底的问题,应该)。

期间也试过更换Recovery,刷CM的ROM,终以失败告终。后又重刷MIUI的ROM,刷回了5.20,一想,5.20,520,这版本号好,(除非有特别大的、诱人的更新)以后就用它吧。也习惯了MIUI的通知栏,和快捷开关菜单,UI界面也用着习惯。

 好了,说App2SD吧。上次刷机的时候在SD卡上分了512MB的EXT分区作为A2SD用,但是奇怪系统一直没有用到,软件还是装在手机ROM中,需要手动将软件移至SD卡。今天顺手搜了一下,原来是要输几条命令启用一下:(需要有终端环境) 

#su
#a2sd reinstall

 已安装的程序将会移动至SD卡的ext分区,完成之后手机将会重启。以后安装软件也会安装在SD卡的ext分区。如果想将应用程序的数据和缓存都挪到SD卡中(A2SD+),继续执行: 

#su
#a2sd zipalign
#a2sd cachesd

 

[转]程序员能力矩阵

Dropbox 中一直保存这一个网页,每次安装完dropbox都会同步下来,一直没有仔细看过。刚才打开看了看,是之前在CSDN上随手保存的网页,现转载一下。 P.S: 因为是保存的网页,原文地址已丢失:)

计算机科学 Computer Science

Vim:配置文件

当前的 Vim 配置,贴出来,顺便作为备份~ :)

" 不要使用vi的键盘模式,而是vim自己的
set nocompatible

" 语法高亮
set syntax=on

" 去掉输入错误的提示声音
set noeb

" 在处理未保存或只读文件的时候,弹出确认
set confirm

" 自动缩进
set autoindent
set cindent

" Tab键的宽度
set tabstop=4

" 统一缩进为4
set softtabstop=4
set shiftwidth=4

" 不要用空格代替制表符
set noexpandtab

Vim:代码对齐

刚才在Linuxtoy上发现一个很好用的Vim插件: tabular ,下载试用了一下,确实很方便。 对于程序员来说,都希望代码看着整齐一点,tabular 就是实现代码对齐的。比如好几行的变量赋值语句, 变量名长短"参差不齐",有时候会习惯手动调整,让赋值的"="对齐。其他时候,比如括号的对齐。 随手挑了一段代码试了一下:

将光标移动到第7行,输入 :Tab /{ 将会根据 "{" 对齐接下来的几行代码(貌似 tabular 可以自动识别"作用域",只处理7 – 15 行之间的代码),像这样:
第8行代码最长,所以会根据其"{" 调节其他代码行~ 还可以根据其他符号对齐,

:Tab /[symbol_to_align]

当然这种格式调整也要根据情况使用,有的时候也不一定能达到好的效果。

暴力型英雄

春节在家无聊,也上不了网,闲来无事就打局Dota消遣,还只能打电脑,3v3…. PS:貌似只赢过一局? 话说某天下午,从亲戚家回来,也是闲来无事Dota,选的蓝猫。没一会儿,8岁的堂弟还有8岁的侄子(没错,都是8岁,辈分差距啊)过来了。 现在小孩都特聪明,也爱玩电脑,当然主要用来播放奥特曼DVD还有玩些小游戏。他俩看我玩游戏就凑过来了,叽叽喳喳开始十万个为什么了: "哥哥,这是什么游戏啊?" "呃…打仗的…" "那哪个是你啊?" "…戴草帽的那个熊猫…" ……

Data语义学

当类定义为空时,例如:

#include 

using namespace std;

class X { };

class Y : public virtual X { };

class Z : public virtual X { };

class A : public Y, public Z { } ;

int main(void)
{
	cout< <"Size of X : "<

在g++ 4.4.5下编译输出为

Size of X : 1
Size of Y : 4
Size of Z : 4
Size of A : 8

WordPress如何不显示私有日志的评论

WordPress在发表日志的时候可以设置日志的公开度,可以设置为私人的,这样的话,只有发布者可以查看。但是对于这些日志的评论,却还是会显示在首页,以及浏览各个文章时显示在"RECENT CONMENTS"中,像这样: 评论显示
虽然其他用户点击链接之后,仍然无法访问该日志。但是还是不想让这些评论显示出来,Google了一下没找到,那就DIY吧~