2012年8月30日星期四

SecureCRT环境配置备忘(MAC)

1. 配置环境色彩

色彩和环境配置有关系,直接编辑~/.bash_profile,加入:

export CLICOLOR=1
export LSCOLORS=gxfxaxdxcxegedabagacad
重启secureCRT即可看到颜色;

2. 配置vim颜色

拷贝:sudo cp /usr/share/vim/vimrc ~/.vimrc
在最后加入:syntax on, 重启secureCRT或者注销用户重新登录即可;

3.乱码

首先,要设置secureCRT的环境为UTF-8, 在session option-->Terminal-->Apperence中设置。
然后,在终端输入locale 查看语言环境,一般会显示:

LANG=
LC_COLLATE="C"
LC_CTYPE="C"
LC_MESSAGES="C"
LC_MONETARY="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_ALL=
这时会发现中文是乱码。此时需要export这几个变量,编辑~/.bash_profile,加入:

export LANG="zh_CN.UTF-8"
export LC_COLLATE="zh_CN.UTF-8"
export LC_CTY=PE"zh_CN.UTF-8"
export LC_MESSAGES="zh_CN.UTF-8"
export LC_MONETARY="zh_CN.UTF-8"
export LC_NUMERIC="zh_CN.UTF-8"
export LC_TIME="zh_CN.UTF-8"
重启secureCRT或注销重进,发现以前的乱码消失了。

4 设置xterm

我们会发现,在vi或vim结束退出 后,有些term可以关闭之前编辑的内容,有些则不会,这其实是因为不同的term启用了不同的策略,关闭的情况是vim启用了另外一个显示区域,当退出后,这个区域就会关闭。
这个其实很容易设置:
session option-->Terminal-->Emulation中,把Terminal从ANSI或Linux修改为xterm即可。


2012年8月28日星期二

vi命令总结

插入字符

i  在光标前插入正文
I  在当前行开始处插入正文
a  在光标后插入正文
A  在当前行末尾插入正文
o  在当前行后插入一新行
O  在当前行前插入一新行

保存文件

:q!  放弃任何改动并退出 vi 系统
:w <filename>  保存当前的文件
:wq  保存当前的文件,并退出 vi 系统
:x  与 wq 类似
:zz  与 wq 的工作类似

删除字符

x  删除光标处字符(Character)
nx  删除光标处后 n 个字符
nX  删除光标处前 n 个字符
ndw  删除光标处下 n 个单词(word)
dd  删除整行
d$或 D  删除由光标至该行最末
U  恢复前一次所做的删除
dw 删除一个单词

替换字符

r char  由 char 代替光标处的字符
Rtext〈Esc〉 由 text 代替光标处的字符
cw  text〈Esc〉 由 text 取代光标处的单词
C text〈Esc〉 由 text 取代光标处至该行结尾处
Cc  使整行空白,但保留光标位置,让你开始输

文本搜索

/str〈Return〉 向前搜寻 str 直至文件结尾处
?str〈Return〉 往后搜寻 str 直至文件开首处集成开发环境的简介
n  同一方向上重复检索
N  相反方向上重复检索

其他

gg 去文本最开头
G 去文本最末尾
0(数字零) 去本行开头
$ 去本行结尾
:xx xx是你要跳转的行数
ctrl+f 下翻页
ctrl+b 上翻页

MAC做服务器开发环境笔记

1. 如何在term里高亮语法。
    a)先将vim的配置cp一份到用户的主目录,cp /user/share/vim/vimrc ~/.vimrc
    b)再chmod 777 ~/.vimrc
    c)编辑~/.vimrc,在最后一行加入syntax on,保存后退出即可。
2. 如何设置Open-vpn
    a)下载Tunnelblick,安装完成后,新建一份ovpn的配置文件;
    b)编辑文件,修改remote的ip地址和端口为你的openvpn的远程端口和ip
    c)设置ca.crt, client.key, client.crt为对应的存储目录
    d)配置Tunnelblick, DNS选为不选择域名服务;
    e)配置翻墙的hosts,例如twitter,fb
    f)配置路由脚本,拨号成功后要执行脚本,来实现指定路由;(目前还没找到全自动方案)
3. 如何查看路由表:netstat -r 原有的route -n 失效
4. 添加指定路由命令:sudo route add -net 74.0.0.0/8 x.x.x.x(x.x.x.x表示是你的openvpn的设备的ip段,选择ip段内任何一个ip即可)
5. mac下的apt-get:port 安装完成后,使用需要gcc,make命令,这些命令由xcode的command line tool提供。首先安装xcode,约1.4G左右,然后在xcode的偏好设置界面的downloads里可以安装command line tool。
------------------------
6. 自动openvpn翻墙(0916更新)
前置安装:port,openvpn2,xcode,gcc command line。
a)安装port,http://www.macports.org/install.php#pkg
b)安装xcode,可以直接通过appstore安装,免费
c)完成后,打开xcode,打开偏好设置,在下载一栏,安装command line tools
d)通过port安装openvpn2,sudo port install openvpn2
e)安装tuntap虚拟设备:http://tuntaposx.sourceforge.net/
f)将以前的ca.crt, client.key, client.crt, openvpn.conf拷贝到mac电脑上,执行:sudo openvpn2 --config openvpn.conf 可以看到成功拨号;
g)修改之前的conf文件:(增加红色项)其中,route2.set是设置vpn的脚本:sudo route add -net 74.0.0.0/8 x.x.x.x
client
dev tun
proto tcp
remote  remote_ip remote_port
resolv-retry infinite
nobind
mute-replay-warnings
ca ca.crt
cert client.crt
key client.key
comp-lzo
verb 4
status /etc/openvpn2/openvpn-status.log
script-security 2
up /etc/openvpn2/route2.set
h)增加openvpn2.plist到/Library/LaunchDaemons/,内容:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd";>
<plist version="1.0">

<dict>
        <key>Label</key>
        <string>org.openvpn2</string>
        <key>OnDemand</key>
        <false/>
        <key>Program</key>
        <string>/opt/local/sbin/openvpn2</string>

        <key>ProgramArguments</key>
        <array>
                <string>openvpn2</string>
                <string>--config</string>
                <string>client.conf</string>
        </array>
        <key>RunAtLoad</key>

<true/>
        <key>TimeOut</key>
        <integer>90</integer>
        <key>WorkingDirectory</key>
        <string>/etc/openvpn2</string>
</dict>
</plist>
i)执行:sudo launchctl load -w /Library/LaunchDaemons/openvpn2.plist 即可拨号,每次开机启动自动拨号;断线自动拨号;
done;
备注:启动plist的日志在/var/log/system.log,如果启动有问题,日志会打印:(org.openvpn2[5586]): Exited with code: 1
(org.openvpn2): Throttling respawn: Will start in 10 seconds
则可以修改plist文件:

<key>StandardOutPath</key>
<string>/var/log/openvpn-out.log</string>
<key>StandardErrorPath</key>
<string>/var/log/openvpn-err.log</string>
增加错误日志,可以在错误日志中查看具体的错误。

2012年8月23日星期四

hadoop的五个典型场景

Hadoop作为大数据存储及计算领域的一颗明星,目前已经得到越来越广泛的应用。下面PPT主要分析了Hadoop的一些典型应用场景,并对其进行了深入分析,主要包括下面几个方面:
  • 日志处理: Hadoop擅长这个 
  • 抓住本拉登: 并行计算
  • ETL: 每个人几乎都在做ETL(Extract-Transform-Load)ETL负责将分布的、异构数据源中的数据如关系数据、平面数据文件等抽取到临时中间层后进行清洗、转换、集成,最后加载到数据仓库或数据集市中,成为联机分析处理、数据挖掘的基础。 
  • 使用HBase做数据分析: 用扩展性应对大量的写操作—Facebook构建了基于HBase的实时数据分析系统
  • 机器学习: 比如Apache Mahout项目