vim中文乱码的解决办法
以centos为例,执行yum install -y vim后,打开php、py等文件,发现中文乱码了。。。
google之
解决办法:
vim /etc/.vimrc
将以下内容写入
set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936
set termencoding=utf-8
set encoding=utf-8
再次打开,中文已正常显示。
以centos为例,执行yum install -y vim后,打开php、py等文件,发现中文乱码了。。。
google之
解决办法:
vim /etc/.vimrc
将以下内容写入
set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936
set termencoding=utf-8
set encoding=utf-8
再次打开,中文已正常显示。
转自潘魏增的博客!
python2.5中的urllib2支持http代理,不支持socks代理。假如代码库或者编码时使用了urllib2,同时又要使用socks,就需要第三方的库来实现。幸运的是,已经有人造好了轮子。
SocksiPy是一个socks module。它提供了一个类socket的接口,支持socks4、socks5和http proxy。下载后在代码中引用socks.py即可,也可以写个setup.py文件安装到python的site-packages目录中。 使用时,将下面的代码放在调用urllib2的代码之前即可:
import socks
import socket
socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, "127.0.0.1", 8080)
socket.socket = socks.socksocket
import urllib2
print urllib2.urlopen('http://baidu.com').read()
如果是自己写的程序,也可以尝试使用pycurl这个库。ubuntu使用sudo apt-get install python-pycurl python-pycurl-dbg安装。 示例代码
import pycurl
c = pycurl.Curl()
c.setopt(pycurl.URL, 'http://baidu.com')
c.setopt(pycurl.PROXY, '127.0.0.1')
c.setopt(pycurl.PROXYPORT, 8080)
c.setopt(pycurl.PROXYTYPE, pycurl.PROXYTYPE_SOCKS5)
c.perform()
如果在程序外部使用socks,推荐使用tsocks。ubuntu中直接使用sudo apt-get install tsocks安装。安装完毕以后需要修改/etc/tsocks.conf。配置样例如下
# 默认代理服务器
server = 127.0.0.1
# 代理服务器类型
server_type = 5
# 代理服务器端口
server_port = 8080
使用时,在命令行输入tsocks 程序名即可。例如ubuntu下的epiphany浏览器没有代理设置,如果想使用socks代理,输入tsocks epiphany-browser即可(注意先关闭其他的epiphany实例)。
之前大家翻墙可能都会用到免费的goagent代理,但是他速度慢,链接也不稳定,看油管更是无望,更好的解决方案是shadowsocks。
shadowsocks是一个著名的轻量级socket代理,基于python编写。
如果你有国外的VPS,那么使用shadowsocks搭建一个翻{防屏蔽}墙服务器是一件很轻松的事情!
先看看shadowsocks覆盖的客户端覆盖了多少系统,连OpenWRT都支持!

老高之前买的$4.99一年的VPS,128MB,用起来妥妥的!现在已经升级至$9.99,512MB内存,运行速度更快,翻{防屏蔽}墙速度更是没话说,如果你感兴趣,可以看看VPS购买攻略。
看完本文,你就能够轻松打造独享的翻{防屏蔽}墙环境!甚至能够将shadowsocks安装到你的路由器中,子网设备自动翻墙!再也不需要在网上购买shadowsocks的账号了,也不需要在忍受速度巨慢的免费shadowsocks账号了。
如果你的VPS是搬瓦工,那么恭喜你!你可以直接在后台一键安装shadowsocks,具体如何操作请参考使用搬瓦工(bandwagonhost)后台管理VPS&安全设置中如何一键安装shadowsocks一节,配置完毕后ss就会运行在后台,重启后也会自动运行。
友情提示:有些打包好的ss程序很难保证是否会记录你的服务器信息,所以一定要经常更新服务器端的密码或端口!或者,自己编译一个。。。。。
VPS大家手里多多少少都会有那么一两个(win请绕道),如果能让他们在空闲的时候帮我们下载一些很大,但是又下载很慢的种子,岂不是一举两得!
linux命令行下的torrent下载软件真的很少([rc]Torrent和Transmission的命令行版本),而且实在不太好用(当然是和迅雷不能比)。
但是如果你看完此篇,也许会发现原来在命令行里下载种子其实不是那么难!
内容转自 做好VPS的基础安全防护工作
使用linode VPS也有好长一段时间了,爱好linux也有很久好久了,自从2004年自己买了笔记本后就尝试安装各种linux发行版,包括FreeBSD这样的unix鼻祖,不过当时仅仅把爱好停留在装系统上面,并没有对linux网络服务器做深入的研究。
很多朋友认为买了vps把系统安装上去,环境搭建好就万事大吉了,实际上并非如此,网络一直是不安全的,我们只能尽我们最大的努力做好基础的安全防护工作,尽可能的减少被攻击的可能,尽量减少非人为因素宕机的可能。
直到自己真正的使用linux服务器后,才系统的对linux进行了学习,我的知识来源主要是鸟哥的linux私房菜基础版第三版以及鸟哥的linux私房菜服务器第三版。以下是我平时维护自己vps以及帮个别朋友维护linux服务器的一点心得,如何做好VPS的基础安全防护?
在linode新手起步教程里,我们学习了如何安装liunx操作系统,重启linode vps,执行一些基本的系统管理任务。现在我们来进一步做好VPS的安全工作,以防非法入侵。您会学习到如何启动防火墙(iptables),设置SSH安全访问密钥,自动ban某些非法ip(Fail2ban)。当然这都是非常基础的安全防护工作。
PHP在处理正则表达式的时候,在最后面可以加上诸如/i, /is, /s, /isU的选项,他们都代表什么含义呢?
其实他们是PHP正则表达式的模式修正符,用于对正则表达式的补充。
正则符号的优先级:
()圆括号因为是内存处理所以第1
* ? + { } 重复匹配内容第2
^ $ \b 边界处理第3
| 条件处理第4
最后按照运算顺序计算匹配
(PCRE_CASELESS)正则内容在匹配时候不区分大小写(默认是区分的)。
如preg_match('/\[TOC\]/i',$str) 这句话中的小写字母i,他跟在正则表达式后面,起的作用是匹配时忽略大小写
所以,上述正则表达式可以匹配诸如 [toc]、[ToC]、或者[TOC]。
(PCRE_MULTILINE) 在匹配首内容或者尾内容时候采用多行识别匹配。默认情况下,PCRE 将目标字符串作为单一的一“行”字符所组成的(甚至其中包含有换行符也是如此)。“行起始”元字符(^)仅仅匹配字符串的起始,“行结束”元字符($)仅仅匹配字符串的结束,或者最后一个字符是换行符时其前面(除非设定了 D 修正符)。这和 Perl 是一样的。 当设定了此修正符,“行起始”和“行结束”除了匹配整个字符串开头和结束外,还分别匹配其中的换行符的之后和之前。这和 Perl 的 /m 修正符是等效的。如果目标字符串中没有“/n”字符或者模式中没有 ^ 或 $,则设定此修正符没有任何效果。
(PCRE_DOTALL) 如果没有使用这个模式修正符号,元字符中的"."默认不能表示换行符号,将字符串视为单行。如果设定了此修正符,模式中的圆点元字符(.)匹配所有的字符,包括换行符。没有此设定的话,则不包括换行符。这和 Perl 的 /s 修正符是等效的。排除字符类例如 [^a] 总是匹配换行符的,无论是否设定了此修正符。
(PCRE_EXTENDED) 忽略正则中的空白。如果设定了此修正符,模式中的空白字符除了被转义的或在字符类中的以外完全被忽略,在未转义的字符类之外的 # 以及下一个换行符之间的所有字符,包括两头,也都被忽略。
(PCRE_ANCHORED) 强制从头开始匹配。如果设定了此修正符,模式被强制为“anchored”,即强制仅从目标字符串的开头开始匹配即自动在模式开头加上^。此效果也可以通过适当的模式本身来实现(在 Perl 中实现的唯一方法)。
(PCRE_DOLLAR_ENDONLY) 强制$匹配尾部无任何内容。如果设定了此修正符,模式中的美元元字符仅匹配目标字符串的结尾。没有此选项时,如果最后一个字符是换行符的话,美元符号也会匹配此字符之前(但不会匹配任何其它换行符之前)。如果设定了 m 修正符则忽略此选项。Perl 中没有与其等价的修正符。 S 当一个模式将被使用若干次时,为加速匹配起见值得先对其进行分析。如果设定了此修正符则会进行额外的分析。目前,分析一个模式仅对没有单一固定起始字符的 non-anchored 模式有用。
(PCRE_UNGREEDY) 禁止贪婪匹配 只跟踪到最近的一个匹配符并结束,常用在采集程序上的正则表达式。本修正符反转了匹配数量的值使其不是默认的重复,而变成在后面跟上“?”才变得重复。这和 Perl 不兼容。也可以通过在模式之中设定 (?U) 修正符来启用此选项。
(PCRE_EXTRA) 此修正符启用了一个PCRE中与Perl不兼容的额外功能。模式中的任何反斜线后面跟上一个没有特殊意义的字母导致一个错误,从而保留此组合以备将来扩充。默认情况下,和Perl一样,一个反斜线后面跟一个没有特殊意义的字母被当成该字母本身。当前没有其它特性受此修正符控制。即:贪婪模式,最大限度匹配如:/a[/w]+?e/U匹配abceadeddd中的abceade而不是abce,如果不加U修正,则匹配abceu(PCRE_UTF8)此修正符启用了一个PCRE中与Perl不兼容的额外功能。模式字符串被当成UTF-8。本修正符在Unix下自PHP4.1.0起可用,在win32下自PHP4.2.3起可用。