linux下vim中文乱码的解决方法

vimrc的脚本配置,编辑~/.vimrc文件,加上如下几行:

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

Vim编码的详细介绍

Vim和所有的流行文本编辑器一样,Vim 可以很好的编辑各种字符编码的文件,这当然包括 UCS-2、UTF-8 等流行的 Unicode 编码方式。
Vim 有四个跟字符编码方式有关的选项,encoding、fileencoding、fileencodings、termencoding (这些选项可能的取值请参考 Vim 在线帮助 :help encoding-names),它们的意义如下:
(1)encoding: Vim 内部使用的字符编码方式,包括 Vim 的 buffer (缓冲区)、菜单文本、消息文本等。用户手册上建议只在 .vimrc 中改变它的值,事实上似乎也只有在 .vimrc 中改变它的值才有意义。
(2)fileencoding: Vim 中当前编辑的文件的字符编码方式,Vim 保存文件时也会将文件保存为这种字符编码方式 (不管是否新文件都如此),网上是这样介绍的,但是我这样做在.vimrc中定义为utf-8似乎没有作用,只能在打开vim文件时手动设置才会起效,不知道什么原因。
(3)fileencodings: Vim 启动时会按照它所列出的字符编码方式逐一探测即将打开的文件的字符编码方式,并且将 fileencoding 设置为最终探测到的字符编码方式。因此最好将 Unicode 编码方式放到这个列表的最前面,将拉丁语系编码方式 latin1 放到最后面。
(4)termencoding: Vim 所工作的终端 (或者 Windows 的 Console 窗口) 的字符编码方式。这个选项在 Windows 下对我们常用的 GUI 模式的 gVim 无效,而对 Console 模式的 Vim 而言就是 Windows 控制台的代码页,并且通常我们不需要改变它。

 Vim 的多字符编码方式支持是如何工作的
(1)Vim 启动,根据 .vimrc 中设置的 encoding 的值来设置 buffer、菜单文本、消息文的字符编码方式。
(2)读取需要编辑的文件,根据 fileencodings 中列出的字符编码方式逐一探测该文件编码方式。并设置 fileencoding 为探测到看起来是正确的 字符编码方式,如果没有找到合适的编码,就用latin-1(ASCII)编码打开。
(3) 对比 fileencoding 和 encoding 的值,若不同则调用 iconv 将文件内容转换为 encoding 所描述的字符编码方式,并且把转换后的内容放到为此文件开辟的 buffer 里,此时我们就可以开始编辑这个文件了。
(4)编辑完成后保存文件时,再次对比 fileencoding 和 encoding 的值。若不同,再次调用 iconv 将即将保存的 buffer 中的文本转换为 fileencoding 所描述的字符编码方式,并保存到指定的文件中。

由于 Unicode 能够包含几乎所有的语言的字符,而且 Unicode 的 UTF-8 编码方式又是非常具有性价比的编码方式 (空间消耗比 UCS-2 小),因此建议 encoding 的值设置为 utf-8。这么做的另一个理由是 encoding 设置为 utf-8 时,Vim 自动探测文件的编码方式会更准确 (或许这个理由才是主要的 ;) 。我们在中文 Windows 里编辑的文件,为了兼顾与其他软件的兼容性,文件编码还是设置为 GB2312/GBK 比较合适,因此 fileencoding 建议设置为 chinese (chinese 是个别名,在 Unix 里表示 gb2312,在 Windows 里表示 cp936,也就是 GBK 的代码页)。

iptables端口随机转发实现简单的负载均衡

输入以下命令:

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8001-8002

解释:通过NAT的方式吧从端口80接收到的数据随机转发到8001,8002端口

注意:要使用 iptables-save > /etc/sysconfig/iptables,否则在服务重启后会丢失

使用multiport可以添加多个不连接的端口,最多可以添加15组。如下

-A INPUT -p tcp -m multiport –dport 21:25,135:139 -j DROP

如果不使用multiport参数,只能是添加连续的端口。

如-A INPUT -p tcp –dport 21:25 -j DROP

而不能写成21:25,135:139

 

参考:

http://www.361way.com/iptables-multiport/2574.html

http://wjw465150.iteye.com/blog/423704

http://www.groad.net/bbs/thread-7041-1-1.html

VMware中Linux网络正常但ping不出去

主机是windows,vmware中linux网络正常但是ping不出去

[root@ares ~]# ping baidu.com
PING baidu.com (180.149.132.47) 56(84) bytes of data.
^C
--- baidu.com ping statistics ---
10 packets transmitted, 0 received, 100% packet loss, time 9274ms

[root@ares ~]#

这是因为windows中联网的网卡设置了网络共享导致,关闭网络共享即可。

Vmware linux虚拟机lvm扩容

考虑将虚拟机磁盘空间由20G扩大到40G,基于LVM操作,以下为操作过程:

第一步:使用VMware工具扩容分配的硬盘空间
1.vmware 提供一个命令行工具,在Windows下为vmware-vdiskmanager.exe 位于 vmware 的安装目录下,比如vmware-vdiskmanager.exe;
在Linux下有直接的vmware-vdiskmanager指令;
进行的操作:在 windows 下进入命令行窗口,转到 vmware 的安装目录,执行vmware-vdiskmanager.exe;在Linux下,直接
敲入vmware-vdiskmanager ,可执行该指令扩充使用的指令: vmware-vdiskmanager -x 40Gb vmdisk1.vmdk。

说明:要扩容的系统这时不能在运行 ,参数 "-x" 表示要扩展虚拟机硬盘空间,紧随其后的数字是要扩展到的大小 ,而非
增加量(本例为扩展到40GB,这是一个磁盘总量,包含了原先的磁盘容量)。最后是指定要操作的虚拟机磁盘的具体文件,要是
路径名中有空格,必须以双引号括起来。按回车键开始执行,执行完毕,退出命令提示符窗口,重启 VMware ,会发现虚拟机硬
盘空间已变成40GB了。

2.我们重启虚拟机后,发现虚拟机的硬盘是变成40GB,但进入 linux 系统后,用 "df -h"查看发现硬盘空间还是原先那么大。
虽然已经扩大了磁盘,但是由于还没有经过分区,指定文件系统,所以 linux 操作系统无法识别。其实就相当于你的硬盘虽然大了,
但是你并没有对其进行分区是一个道理。

第二步:使用Linux下的fdisk工具进行分区
首先,需要以root身份登录系统。
继续阅读