I am LAZY bones?
AN ancient AND boring SITE

分类: 'CLI软件' 的归档

ssh反向连接

先介绍一下我这里的情况: 公司的电脑是在内部网里面,不可能有公网地址;家里的电脑是adsl拨号,有动态的公网IP,动态绑定到域名 xxx.xxx.org
如果现在想从家里ssh到公司的电脑,直接连接肯定是不行的,不过可以用以下方法:
1. 在公司电脑上执行: ssh -f -N -R 12121:localhost:22 xxx@xxx.xxx.org
2. 然后在家里的电脑上执行: ssh xxxx@localhost -p 12121 就可以成功连上公司的电脑了.

上面命令里面的 12121 是任一个本地端口(上面例子里面是家里电脑的端口),可以在合理的范围内任意指定.我的理解是这样的: 前一个命令相当于把公司机器的22端口(localhost:22) 映射到 家里机器的12121端口. 然后在家里电脑上直接ssh 本机的 12121 端口,数据就会被转发到公司机器了.就这么简单.

参考此文和 man ssh

刚又学了一招

以前一直用locate查找文件,也没想过它的工作原理,知道我那恢复过的gentoo系统里面出现了这种状况:
locate xxx
locate: warning: database /var/lib/slocate/slocate.db’ is more than 8 days old
什么都查找不了,google了一下,发现需要updatedb一下,嘿嘿,原来这个也有数据库的啊…以前见过updatedb这个进程,还在纳闷是什么进程呢,呵呵.

cksfv 另一个常用的校验工具

说到校验,很多人都会想起 md5sum ,因为ubuntu各版本的光盘都用这个校验的嘛~而且各个发行版里面也都会预装这个小工具.但是这并不是唯一的(废话),今天介绍另一个: cksfv
发现这个是在从 TLF 下载的电影里面,TLF的电影都是用rar分卷压缩的,除了 xxx.rar,xxx.r00,xxx.r01….之外,通常还有个 xxx.sfv 文件.这就是用于check的.
ubuntu用户使用 cksfv 得先安装: apt-get install cksfv 即可.看看包里面的描述:

描述: sfv checker and generator
SFV, Simple File Verification, uses crc32 checksums to verify that files are intact. cksfv automates the task of generating
and checking .sfv sheets. For integrity, md5 checksums are probably a better alternative, but sfv is a widely used method for
verification on the USENET binary newsgroups and other places.

从中可知sfv用的是 CRC32 算法,这种算法产生的sum是32位的,虽然没有md5那么严谨,但是有个好处,就是计算速度比md5快多了.因此,在数据量很大又不是非常重要的场合,就很适用了,比如电影文件.估计这也是很多电影发布小组才有cksfv校验的原因吧.

NTP 网络时钟同步

先看看这个NTP简介.
再看NTP服务器列表,我们一般使用 time.buptnet.edu.cn 北京邮电大学NTP一级服务器 (支持 IPv4 + IPv6)就可以了,延时相对较小.
在ubuntu下使用NTP的方法:
显示和时间服务器的时间差:
$ ntpdate -q time.buptnet.edu.cn
server 195.30.0.29, stratum 2, offset -3.667538, delay 0.49940
20 Dec 13:10:58 ntpdate[7950]: step time server 195.30.0.29 offset -3.667538 sec
说明本地时间比服务器快3秒多点.
直接同步本地时间:
$ sudo ntpdate time.buptnet.edu.cn

也可以直接把上述命令写进root用户的crontab,很方便吧~

aptitude forbid-version

接着昨天的libcairo2问题,小土蛋(其实我至今还没搞清楚zhan为什么叫小土蛋…)留言说可以用什么 aptitude forbid-version ,嘿嘿,于是呼研究了下,发现forbid-version不是zhan想的那样,但是aptitude还是蛮好用的.
降级,如果用 aptitude 命令的话,可以这么做:

  1. sudo aptitude install libcairo2=1.4.10-1ubuntu4

然后可以用 forbid-version 把有问题的版本锁定:

  1. sudo aptitude forbid-version libcairo2=1.4.10-1ubuntu4.1

这样以后用 sudo aptitude upgrade 命令升级的时候,就不会升级到 1.4.10-1ubuntu4.1 版本了,但是如果以后又出了个 1.4.10-1ubuntu4.2 的话,还是会升级的,这就是和 hold 的区别,也是这个命令存在的意义所在.嘿嘿.
当然如果用是 sudo apt-get upgrade 升级的话,会照升不误,看来apt-get不买你aptitude的帐啊~哈哈.

Shell脚本转化成二进制文件

工具名称: shc
安装方法: sudo apt-get install shc
使用方法: shc -f xx.sh ,就会生成一个 xx.sh.x 的二进制可执行文件,执行这个可执行文件的效果和执行原shell脚本的效果一样,另外还会生成一个 xx.sh.x.c 的C源文件,自己编译这个源文件成二进制文件也是可以的.
另外这个工具好像还可以设置过期时间,到了这个预设的时间后,再执行二进制文件的话,就会输出一行已过期的信息(当然这个信息也可以自定义),不过我想这个功能一般用不着吧 :)

mo文件的打开方法(在Linux下开发多语言软件必备知识)

这里遇到一个ccsm的翻译bug,本想打开/usr/share/locale/zh_CN/LC_MESSAGES/ccsm.mo 看看原文是什么,然后提交个bug的,没想到那个”翻转的快照”居然没在这个里面,呵呵,倒是让我学会了 mo 和 po 文件的互转方法.

po 文件转成 mo 文件

mo 文件转成 po 文件

参见: http://www.51umo.com/Linux/LinuxCode/20070823/38008.shtml

新的百度mp3下载脚本

老版本在这里,由于百度改了代码,不能下载了,所以修改了下脚本.
由于这里不能传附件,只能帖上代码了…

命令行的聊天工具 finch / gaim-text

以前在命令行下,提到聊天估计也就想到irssi上上irc,MSN什么的都没想过吧.
现在用 finch / gaim-text 就完全可以实现MSN/Gtalk之类的聊天了,至于QQ,还不知道,估计部分没有验证码的”正常”QQ应该可以上吧.
而且,如果以前用过 pidgin / gaim 的话,界面一点都不会陌生哦~差不多就是和gaim一样的.

至于安装,就不要说了,因为装好pidgin / gaim 之后就自然有了 :lol: 

值得注意的是一下快捷键的用法,详见: http://developer.pidgin.im/wiki/Using%20Finch

放个图:

at命令的用法

顺便也在这里记录一下吧.

法一:
命令行输入:
at 17:20 tomorrow 回车会出现:
warning: commands will be executed using /bin/sh
at> 这时候输入到时间后要执行的命令,可以输多行,输完了ctrl+d.
就可以了

法二:
将命令保存成文件再执行:
at -f 文件名 17:20 tomorrow 回车.
这个文件最好加个可执行权限.

更多信息 man at