vim用法

plugin

filetype

vim自带了一些filetype plugin,你可以在$VIMTUNTIME/../ftplugin/中找到。VIMTUNTIME环境变量只有在vim编辑器中才有设置,要查看它的值,先打开vim,命令模式下输入:e $VIMRUNTIME/,然后按tab键就可以看到了。

需要安装某个文件类型的plugin,只需要将上面目录中对应的文件拷贝到~/.vim/ftplugin/中

linux下制作debian usb安装盘

一般说来,在linux下制作linux系统的usb安装盘,可以直接用”bootable usb creator”。比如我在ubuntu上就用这个工具成功制作过ubuntu和debian的usb安装盘。

可这个工具虽然方便,但由于整个过程全自动,除了问题也不懂怎么解决。比如我的一个u盘制作了多次安装盘之后就不能用bootable usb creator制作新的usb安装盘了,写入的时候报一个类似“invalid version number”的错误。

这里就介绍一种比较复杂的,手动步骤比较多的制作debian usb安装盘的方法。

partition

如果你的u盘比较大,整个u盘用来制作安装盘有点浪费,因此可以先将U盘分区,一个分区用于制作安装盘,另一个分区存储其他数据。如果之后需要制作其他启动盘,还可以再分区。

linux下可以用GParted来分区,Debian系统iso文件只有600多M,因此分1G就够用了。下面假设将U盘分成两个fat32分区,并将第一个作为debian启动盘。分区的时候为启动盘分区设置boot属性(同样可以再GParted里面设置)。

detec usb device name

在linux下运行fmesg命令检测连接的各磁盘名称,如果你只有一块硬盘,U盘一般会被命名为sdb。下面假设U盘名称就是sdb,我们要将系统文件安装在它的第一分区,也就是sdb1,如果你的U盘不是这个名称,请对应修改。

install MBR on the USB device

将sdX替换为你的U盘的设备名,比如sdb。

install-mbr来源于mbr 包,如果找不到该命令,请安装mbr。

create filesystem on the partition

将sdX替换为你要安装启动盘的U盘分区名,比如sdb1。

mkdosfs来源于dosfstools 包。

install a bootloader on the partition

我们使用syslinux bootloader,先确保你的系统安装了syslinux 和mtools 

安装bootloader之前确保该分区已经unmount,可以再GParted里面做这个操作。

将sdX替换为你要安装启动盘的U盘分区名,比如sdb1。

”This procedure writes a boot sector to the partition and creates the file ldlinux.sys which contains the boot loader code.“

add installer image to the partition

首先确保已经mount该分区(mount /dev/sdX1 /mnt)。

从 http://http.us.debian.org/debian/dists/wheezy/main/installer-amd64/current/images/hd-media/ 下载两个文件:vmlinuz和initrd.gz。如果使用直接在这个目录下这两个文件,那么制作的debian安装盘是用键盘操作的,不识别鼠标。如果要用鼠标操作,改用gtk子目录下的两个同名文件。

下载后将这两个文件放在分区根目录下

create a syslinux.cfg configuration file on the partition

在分区根目录下创建一个名为syslinux.cfg的文件,至少包含以下两行:

如果上一步下载的installer image是gtk目录下的文件,那么上面第二行最后要添加“ vga=788”(不包括引号)。

如果要在U盘启动的时候等待按回车键继续,在文件末尾添加一行:

 copy the ISO file of a Debian ISO image to the partition

接下来就可以将Debian系统文件(iso格式)拷贝到分区根目录下了。

Debian cd文件有好几个,一般命名为XXXcd1.iso, XXXcd2.iso 之类的,我们安装系统只要下载第一个就可以了,其他的估计是一些软件包,我们可以根据需要直接在系统里面联网安装就行了。

完成之后unmount分区,usb系统安装盘就制作完成了。

使用wget下载百度网盘共享文件

百度网盘分享的文件,并没有一个永久的下载链接,每次通过浏览器点击下载按钮的时候,实际上是向一个临时的下载地址发送数据请求,同时上传cookie数据。

在没有安装桌面的linux服务器下,没有可视化的界面去访问百度网盘下载文件。我们可以使用wget来下载文件,不过需要指定发送的cookie数据。cookie数据可以在一台桌面主机上生成,方法是通过浏览器访问该下载页面(或者只需要访问百度网盘就行了),然后chrome有一个叫cookies.txt(发布者是shaney.net)的扩展程序可以将同一个域名(比如baidu.com)的cookie保存成一个cookies.txt文本文件。

将生成的cookies.txt文件上传到需要使用wget下载的linux服务器。然后使用如下命令进行下载:

-c用于断点续传,–load-cookies指定下载的时候要向网盘服务器传输的cookie数据文件,-O指定保存的文件名。比如:

 

grub2

我在一台主机上先后安装了3各操作系统,Windows 7,以及32位和64位的ubuntu 14.04。安装完64位ubuntu之后发现启动菜单变得很乱,于是进入Windows用一个叫EasyBCD的工具修改启动菜单。结果导致整个MBR里面没有启动项,重启之后任何系统都进不了了。

我的解决方法是用之前制作的ubuntu系统的USB启动盘进入ubuntu试用系统,以便安装grub2 boot loader。grub boot loader的文档请参考官方资料

安装grub2

首先查看各物理硬盘及其分区:

挂载要安装grub2的分区:

安装grub菜单

接下来我直接重启进入grub boot loader。不过我看到的grub是命令行方式的。接下类可以通过命令来进入安装在硬盘上的各系统:

启动系统

进入32位ubuntu系统:

安装在sda7分区上的64位ubuntu系统也可以通过类似的方式启动

进入windows 7系统:

 

域名解析相关

万网的域名解析:

显性URL/隐性URL

以下红字部分是来自万网的警告

【注意】根据工信部关于域名跳转服务的政策要求,URL转发功能目前只支持网站有备案号且接入商是万网的域名转发需求,网站无备案号或接入商不是万网的域名转发需求暂不支持。

也就是说,只有你的域名通过备案之后,才能为其设置域名转发,不管是转发到这个域名的子域名,还是转发到其他域名。

UDP传输协议

测试1

服务器ruby代码

客户端ruby代码

一些结论

  •  客户端每次使用的端口号不一样
  • 服务器可以新建一个UDPSocket,直接向客户端发送UDP消息

为ubuntu 14.04 LTS设置固定IP

初始安装的时候,系统默认是自动获取IP地址的。

需要设置成静态IP的话,将这个文件的后面部分改为

 

 

 

 

ubuntu 14.04 LTS中安装fcitx中文输入法

其实fcitx不是一个输入法,更准确的说是一个输入法框架。ubuntu中默认的输入发框架是ibus,只不过ibus上的中文输入发非常难用,比如拼音输入法好多字和词都打不了,“确实”这个词用拼音得打qshi。fcitx相对来说就好用多了,可以安装拼音,五笔,中文输入法的体验跟windows没多大差别。 阅读全文

ubuntu 14.04 LTS下从源代码编译安装linphone

linphone是一个开源的音频, 视频通话软件, 在liblinphone框架的基础上, 可以为包括android, ios, wp8, desktop ( linux, windows, mac os ), 以及web在内的平台开发应用程序. 并且不同平台之间的应用程序可以互相通信.

本文介绍如何在ubuntu (linux) 下从源代码编译安装linphone 3.7.0. 我刚开始研究音视频通话系统, 还没有弄清楚各组件的作用, 所以本文不会解释linphone依赖的各组件有什么作用, 只是列出组件之间的依赖关系, 以及如何安装他们.

本文的主体结构和安装步骤主要来自两个资料, 一是linphone 3.7.0源码包里面的README文件, 另一个是这篇文章: Compiling Linphone 3.7.0 with TLS and ZRTP support. 除此之外, 就是由于系统环境的差异, 以及自己对linux操作还不太熟悉而碰到的问题, 我会在文章末尾列出我解决这些问题的参考资料.

阅读全文