说实话,我觊觎textmate这个功能很久了,直到现在用了mac装了textmate,才真正体会到其功能确实很让人着迷。以前我介绍过有款vim插件实现此功能,不过感觉还是不爽。网上也有流传InsertTabWrapper函数来实现tab的缩进和补全功能。今天感冒+熬夜的情况下改进增强了下tab功能,自我感觉在函数跳转方面还是很cool的,同时又不影响缩进和补全。
在vimrc中加入:
ino ( ()<ESC>i
ino [ []<ESC>i
ino { {<CR><CR>}<ESC>ki<TAB>
function! InsertTabWrapper()
let col=col('.')-1
let xhat=getline('.')[col]
if xhat == ')' || xhat == ']' || xhat == "'" || xhat == '"'
return "<ESC>la"
endif
if getline(line(".")+1) =~ '^ *}'
return "<ESC>jo"
endif
if !col || getline('.')[col-1] !~ 'k'
return "<TAB>"
else
return "<C-N>"
endif
endfunction
inoremap <TAB> <C-R>=InsertTabWrapper()<CR>
php中我们输入一个函数:
function go($a){
return 0;
}
我们就可以方便的使用tab进行跳转了。
向来我是很抵触谈这个话题的。无非是今天有了一些新的感触而已。
年幼时,我最初的梦想就是希望能拥有一辆动画片《舒克和贝塔》里面的一辆坦克和直升机,走遍自己能走到的地方,维护世界和平⋯⋯
小学时,老师教很多××家的名词,我看那个科学家的名词旁配了一副火箭的插图,感觉这个还靠谱,所以举手告诉老师我希望自己长大了做一名科学家⋯⋯
长大一些,更喜欢自己创造一些小玩意,我还清晰的记得自己用一个橡皮筋和几个木板,自制了一台小船在老家池塘里面能游很远(原因是小伙伴们都用牙膏这些东西让自己的小船划动很近的距离)。还有一些现实点的梦想,例如想有一台小收音机、望远镜⋯⋯
当然,幼年还有其他一些形式的梦想,总希望在上学路上能和她走在距离相对较近的地方。
中学确切说初中的时光,慢慢就忘了梦想是什么。中招考试第一次让自己知道什么是压力,而除了中招数学满分这件事还在脑海里以外,我已经完全忘记了那段时光的存在了。高中阶段,现在回忆起来,除了几位面部狰狞的老师和几位面部慈祥的老师,剩下的记忆就很模糊了;这是一段令我回忆起来有些沮丧的岁月,因为我已经忘记了梦想是什么。当然,还好,出现一个自己暗恋的女生,算是给这一段时光的载体,总梦想有一天能和她在同一所大学里面读书,两个人坐在校园的长椅上,对面是池塘的涟漪,谈笑风生,畅所欲言⋯⋯
大学,当我第一次坐在机房电脑前打开sina时,我在心里忍不住对自己说:hi,我来了。我很庆幸,在很多人一直迷茫方向的大学时代,我却在刚入学就明确了自己一生要做的事。于是逃课、挂科都顺理成章的出现在这段岁月,还好这些丝毫没有改变过我的想法。于是,在这段宝贵的岁月里,还出现了很多让我刻骨铭心的记忆。大学毕业时,我就对自己说,一定要找个有24小时互联网的地方工作,当然这个梦想的实现简单得让我甚至觉得都没有过这个梦想⋯⋯
工作后,慢慢淡化了纯粹的梦想,但有一些还是自己一直坚持的想法,由于过分的坚持,忽略了很多身边的种种,人、事、情感、关系,自然也受到了很多打击。这个社会经常流行这么一句话:上学时,自己会是一块有棱角的石头,社会就是一条大河,当石头放在大河中后,很快就会被磨掉棱角,变成一个圆滑的鹅卵石。我一直并不太认同这句话,害怕自己被变成鹅卵石。结果就是在这个奔三的年纪,在大众眼中,就成了失败的典范。毕业到现在七八个念头,工作地点和工作性质换了不少,只有自己知道,心里有一些,从来没有改变⋯⋯
人生很难心若止水,梦亦不能尽善尽美。愿意做梦,只因为梦在希望在;愿意追梦,因为无梦的日子平淡无趣。
谈到这里并没有结束。这几天见了两位十几年没有见面的高中同学,其中之一就是当年暗恋的女生,当我和她坐在北大未名湖边的长椅上,细细回忆这些过去的经历和梦想时,猛然发现,其实很多梦想都在这逝去的岁月里已经悄然实现。也有很多梦想我们没有实现,无论如何,梦想就像黑暗中的灯塔,有了它,我们就不至于迷失方向。
于是我想到了这样一个故事:从前有个人,因为他的房子东面有座大山,挡住了清晨的阳光,于是他就决定发扬“愚公移山”的精神,把山挖掉。他挖啊挖,他觉得每天都有进展,直到有一天,有个智者经过,问他,为什么不把房子移到看得见阳光的对方,反而要挖去大山?这个人哑口无言,恍如大悟。人们总是习惯改变外在,改变世界,殊不知,自己改变了,世界也就改变了。并不是用这个故事说我自己改变了,只是用来回答自己的一些疑惑。真正需要改变的,还是自己的内心,不是否定坚持,而是学会宽容和变通。
恩,自己改变了,世界也就改变了。
mac下启用root,远不用网上教程说的那么复杂,打开终端执行一条命令即可:
sudo passwd root
然后提示:
password:
Changing password for root.
New password:
Retype new password:
输入相应密码和新密码即可。
谷歌推搜索可视化工具Search Globe 从地球仪上看搜索量
墙外,打不开,这里是移植进来的效果:
Read the rest of this entry »
需求:一台服务器上内容,每天定时备份到远程容灾服务器。为了节省空间和提高传输效率,使用增量备份。
扩展需求:两台服务器实时单向、双向同步某目录下的所有数据。
环境:cent os 5(5.4 5.5 5.6测试通过),系统自带rsync。
1.安装rsync(已经安装可以忽略)
wget http://rsync.samba.org/ftp/rsync/src/rsync-3.0.7.tar.gz
tar xvfz rsync-3.0.7.tar.gz
cd rsync-3.0.7
./configure --prefix=/usr/local/rsync
make && make install
2.配置rsync,创建一个rsyncd.conf文件。
输入以下内容:
uid=nobody
gid=nobody
max connections=36000
use chroot=no
log file=/var/log/rsyncd.log
pid file=/var/run/rsyncd.pid
lock file=/var/run/rsyncd.lock
[htdocs]
comment= backup htdocs
path=/opt/htdocs/view
ignore errors
read only = yes
host allow = *
host deny=*
secrets file=/etc/rsyncd.passwd
auth users=bakccad
修改:
输入:
执行:
chmod 600 /etc/rsyncd.conf
chmod 600 /etc/rsyncd.passwd
3.启动rsync以服务器端方式:
/usr/local/rsync/bin/rsync --daemon
客户端:
客户端无需安装,只需编辑密码文件输入密码:
输入:
执行:
chmod 600 /etc/rsyncd.passwd
客户端执行以下命令即可完成服务器端到本地的同步:
rsync -azP --delete bakccad@1.2.3.4::htdocs /opt/bakroot/rsyncwww/view --password-file=/etc/rsync.passwd
这里命令中htdocs为服务器端配置的名称。后面路径为保存到的路径。后面是密码文件所在,密码文件只需有密码即可(客户机如果使用user:passwd的形式反而会出现错误)。
在豆瓣上看到,并听陈旭推荐,再经查并无在国内上映的计划,于是我终于说服自己一个下载枪版《源代码》。这是一部在盗梦空间后我看到的最好的电影,我个人的感觉在某些时空、思想方面甚至超过了盗梦空间。这样认为或许是因为前一段时间看了一部分《时间简史》,这个我就不确定了。在我幼年的思维中,就有一些类似的思考,关于时间与空间在并行的思考。
这一段时间同样关注了一点佛学的内容,我更关注其因果的果,果是什么,接关乎时间的流向问题。我不大认可佛学或基督还有其他各类信仰中把现实我们无法解释的东西给虚幻化来解释的思维方式,而是更倾向于通过自然和科学来认知时间和空间的世界,或许这样思维远不如信仰来的轻松,但其中乐趣谁又能体会。
说这些并不是为了把自己搞的更复杂些以显得自己更高级,而只是记录下当前对时间和空间的一点感受。说起来时间简史这本书忘在火车上了,该再买一本。
vsftpd出现的553 Could not create file,包括503错误,都是权限问题导致的。
这里就要说到linux蛋疼的selinux,如无必要,最好关闭之:
vim /etc/selinux/config
修改:selinux=disabled
关闭了selinux,vsftpd就正常了。
ps:查看linux32位还是64位:file /bin/ls
ssh上服务器后,会显示如下:
[root@uh700047 ~]#
类似的编号,很是影响心情,如何才能改掉@后面的内容呢?
答案是:
1. vim /etc/hosts 加入如下:
127.0.0.1 www.abc.com
2.vim /etc/sysconfig/network
尾行(一定要是尾行)加入:
HOSTNAME www
reboot, done.
why mrtg? 显然因为cacti配置麻烦,环境配置繁琐。
安装方法如下:
yum install net-snmp net-snmp-utils mrtg
恩,安装好了。
接着生成配置文件:
==========================================
vim /etc/snmp/snmpd.conf
把第89行前面的注释符号#去掉,变成
view mib2 included .iso.org.dod.internet.mgmt.mib-2 fc
在62行进行修改:将
access notConfigGroup “” any noauth exact systemview none none
改为
access notConfigGroup “” any noauth exact mib2 none none
===============================================
/usr/bin/cfgmaker public@localhost > /etc/mrtg/mrtg.cfg
接着配置:
vim /etc/mrtg/mrtg.cfg
输入以下:
6 HtmlDir: /opt/mrtg
7 ImageDir: /opt/mrtg
8 LogDir: /var/lib/mrtg
9 ThreshDir: /var/lib/mrtg
10 Target[rl]: 2:public@localhost
11 MaxBytes[rl]: 1250000
12
13 Title[rl]: 流量监测系统
14 Xsize[rl]: 600
15 Options[rl]: gauge, nopercent, growright
再配置crontab:
crontab -e
输入:
*/5 * * * * env LANG=C /usr/bin/mrtg /etc/mrtg/mrtg.cfg
代表每5分钟收集一次数据显示。
done
以上配置方法在cent os 5.5 64位rhel5.5的64位分别成功。
linux下用ulimit设置连接数最大值,默认是1024.
在高负载下要设置为更高,但最高只能为65535.
ulimit只能做临时修改,重启后失效。
可以加入
ulimit -SHn 65535
到/etc/rc.local 每次启动启用。
终极解除 Linux 系统的最大进程数和最大文件打开数限制:
vim /etc/security/limits.conf
# 添加如下的行
* soft noproc 11000
* hard noproc 11000
* soft nofile 4100
* hard nofile 4100