I am LAZY bones ? all linux

2008年 08月 的归档

rpm命令用法整理

由于自己用的是deb系的ubuntu,但是很多服务器都是rpm系的,所以很少用又偶尔要用到rpm命令,经常忘记选项,man也还挺长…
写在这里,和deb系的做个对照.

安装:
rpm -ivh XXX.rpm
dpkg -i

卸载:
rpm -e
dpkg -r (一般都用apt-get)

查文件在哪个包:
rpm -qif /usr/bin/g++32
dpkg -S

查看有没有安装某个包:
rpm -qa gcc\* (正则的*号要转义)
dpkg –get-selections gcc*

查询包里的文件:
rpm -ql compat-gcc-32-c++
dpkg -L

bash历史功能失效问题

今天登录某远程服务器,发现输完命令后,向上键翻历史记录的功能失效了.
看了 .bash_history 文件,发现文件大小为0,但是权限是对的.
又echo了SHELL和TERM环境变量,也正常.
后来 echo $HISTSIZE 发现是0…
找到原因了,于是在 ~/.bashrc /etc/bashrc ~/.bash_profile /etc/profile 等文件中搜索,最终在 /etc/profile 的末尾找到一句 HISTSIZE=0 ,不知道是哪个家伙干的…
赶紧加#注释掉,重新登录一次,OK了.

mplayer 放大电影的音量

有时候,由于电影制作者的关系,下载的电影本身的音量很小,即使音箱音量开到最大,系统的音量开到最大,声音还是不够大,导致观看的效果大打折扣.
对于强大的mplayer来说,这个问题还是很好解决的,方法就是加上俩差数:

-softvol -softvol-max 200

就可以把音量放大到原来的2倍,一切都是这么简单吧 :)
值得一提的是,后面这个数字参数最大可以到 10000,也就是音量放大100倍,不知道音箱会不会爆掉,反正我是没试过,大家最好也别试了,呵呵~

PS: 发现这个参数还经历了一番风雨呢…之前我看的是mplayer的中文man,里面根本就没这俩参数(可能man页已经过时了),于是到处找人问,最后TX兄告诉我说smplayer里面有个选项叫:Use software volumn control,好像跟一般的音量控制不一样。为此我还特意安装了一堆qt4的库,装上smplayer,打开这个选项,果然有效.想想smplayer不也是调用mplayer的嘛,于是在ps里,终于找到了这两个参数…后来在最新的英文man里找到了这俩选项的介绍:

-softvol
Force the use of the software mixer, instead of using the sound card mixer.

-softvol-max
Set the maximum amplification level in percent (default: 110). A value of 200 will allow you to adjust the volume up to a maximum of double the current level. With values below 100 the initial volume (which is 100%) will be above the maximum, which e.g. the OSD cannot display correctly.

看来,看man还得英文为主,中文为辅啊…

ssh-copy-id

每次要在远程服务器上放key的时候,都 scp XXX.再ssh上去将文件写入 .ssh/authorized_keys 的末尾.而且”authorized_keys”这个单词又那么难拼…有没有简单点的办法呢?
于是自己写了一句:

cat ~/.ssh/id_dsa.pub | ssh user@IP “cat – >> ~/.ssh/authorized_keys”

后来才发现,居然有现成的命令的…没想到啊…

ssh-copy-id user@IP

打开 ssh-copy-id 一看,原来也是个几行的小脚本,其实和我写的那行一样简单,娃哈哈哈~

发现这wmv,mplayer播放都有问题.

北京欢迎你.wmv
用mplayer放,貌似没问题,但是声音和视频不同步.windows下放却没有问题.
这次不是因为解码效率之类的问题,播放时CPU占用也很低的.
估计原因是因为文件里面的fps信息出错了,mplayer播放的时候,有这样的输出:

VIDEO: [WMV3] 640×480 24bpp 1000.000 fps 1000.0 kbps (122.1 kbyte/s)

应该是文件本事的问题.
谁知道mplayer有没有强制指定fps的参数?
mplayer -fps 试了几个参数都不行啊…是多少呢?

关于截图

可能很多老手都已经这么做了,我就火星点,再帖一下吧.
1.nautilus的邮件右键启动的截图:

$ cat ~/.gnome2/nautilus-scripts/延时5秒截图
#!/bin/bash
#延时5秒截图
gnome-screenshot -d 5
$ cat ~/.gnome2/nautilus-scripts/延时5秒窗口截图
#!/bin/bash
#延时5秒窗口截图
gnome-screenshot -w -d 5

2.截图并paste:

$ grep “alias sp” ~/.bashrc
alias sp=’scrot /tmp/scrop_tmp.png -bcsd 3 -e “echo | upaste -image \$f ; rm \$f”‘

其中的upaste脚本就是球猫写的这个东东

3.如果只是截图的话,用得最多的还是在compiz下直接 win+鼠标拖动…

fcitx自定义词组的方法

想在输入gfw的时候,自动打出 及.艾服.达不留 (不然可是会泄漏国家机密的哦…)
我用的是fcitx
方法:
建立一个 ~/.fcitx/pySym.mb 的文本文件,每个词一行,前面是字母,后面是要打出来的词.注意要保存成 GB2313 的编码, 可以用gedit直接保存成GB2312,也可以保存成utf8以后用 iconv 转.如下:

$ cat ~/.fcitx/pySym.mb | iconv -f gb2312 -t utf8
gfw 及.艾服.达不留
haha ^_^

重启fcitx,就可以看到效果了.

PS: 有人能解读搜狗拼音的 scel 细胞词库文件吗?可以的话,就可以全部导入fcitx了…
希望能提高点输入效率.
效果

给 iPod 转视频的脚本

由于新买了个 iPod touch,这几天认真钻研了下它的视频格式,搞了个nautilus脚本,使用mencoder做后端.
以后想把某个视频文件转成iPod的格式的话,直接在 nautilus 里面右键点文件-脚本-toIpod 就可以搞定了.
脚本的特点:
* 借助mplayer的强大,支持N多的源格式(已测试: avi rmvb mov flv).
* 支持srt/ass格式的外挂字幕.
* 自动缩放画面比例到适合ipod touch的480*320,如果是 ipod shuffle 之类的话,可以自己修改下脚本.
* 可视化的进度提示
* 转换速度较快
* 默认保存到当前目录,可修改脚本,输出到统一目录,方便管理.会自动加上 _ipod.mp4 的后缀名.
使用方法,保存以下脚本到 ~/.gnome2/nautilus-scripts/toIpod ,并加可执行权限…或者这里下载

PS: 如果压缩出来的字幕有乱码,请参照我以前的文章,建个 ~/.mplayer/mencoder.conf 文件,写上一行 subcp=cp936 就好了.

#!/bin/bash
#filename: ~/.gnome2/nautilus-scripts/toIpod
#Copyright (c) 2008 bones7456 (bones7456<A>gmail<D>com)
#License: GPL
#version 20081101
#用于将视频转成 ipod touch / iphone 格式.右击文件使用
 
SAVEDIR=`pwd`
#SAVEDIR="/data/movie"
 
INFILE="$1"
PWD=`pwd`
CMD="mencoder -of lavf -lavfopts format=mp4 -oac lavc -ovc lavc "
CMD+="-lavcopts aglobal=1:vglobal=1:vcodec=mpeg4:vbitrate=600:acodec=libfaac:abitrate=128 "
CMD+="-af lavcresample=22050 -vf dsize=480:320:0,scale=0:0,expand=480:320,harddup -ofps 25 -srate 22050 "
P="没有找到对应的字幕."
if [[ -f "${INFILE%.*}.srt" ]];then
	CMD+=" -sub ""\"$PWD/${INFILE%.*}.srt\""
	P="找到字幕文件: ""${INFILE%.*}.srt"
elif [[ -f "${INFILE%.*}.ssa" ]];then
	CMD+=" -sub ""\"$PWD/${INFILE%.*}.ssa\""
	P="找到字幕文件: ""${INFILE%.*}.ssa"
elif [[ -f "${INFILE%.*}.aas" ]];then
	CMD+=" -sub ""\"$PWD/${INFILE%.*}.aas\""
	P="找到字幕文件: ""${INFILE%.*}.aas"
fi
 
CMD+=" -o ""\"$SAVEDIR/${INFILE%.*}_ipod.mp4\""" ""\"$PWD/$INFILE\""
P+="\n\n保存目录: $SAVEDIR"
P+="\n\n是否继续?"
#echo "$CMD" >> ~/toIpod.log
if ! zenity --question --text "$P" ; then
	exit 0;
fi
 
eval "$CMD 2>&1" |\
while read line; do echo $line |\
awk -F '[ :\(\)%]+' '/^Pos/{print "# 速度:",$5,"(点\"取消\"转入后台运行.)";print $4}' ; done |\
zenity --progress --title "正在转换..." --percentage=0 --auto-close --width=500

截图:
工作截图

奥运短信

谷歌退出的免费短信提醒服务: http://www.google.com/sms/alerts
可以免费试用短信方式订阅奥运赛事的信息,以便手机用户能够快捷的了解到北京奥运赛程的情况.
目前有两种订阅方式,一种是奖牌榜,每天下午发送一次。一种是赛况快讯,发送频率为每天最多6次,在赛事结束2小时内发送结果。

谷歌音乐搜索还不错

谷歌刚联合巨鲸推出的音乐搜索服务,还不错: http://g.cn/music
估计财大气粗的谷歌可以搞定版权问题吧,而且不同于百度,谷歌的音乐都是来自那巨鲸的,质量应该有保证.百度来源于网络的歌曲,质量就差些了,经常搜A歌搜到B.
难道要写个谷歌top100下载脚本?