I am LAZY bones? AN ancient AND boring SITE

分类: 'CLI软件' 的归档

gentoo下的gnome-osd

ubuntu论坛里有个可用性已经不错的歌词脚本,如果用上gnome-osd显示,效果很好的,昨天想在gentoo下试试,结果发现gentoo下根本就没有这个包,汗了,这个应该是gnome组件里面的一部分啊,怎么会没有呢?
于是到overlay里面找,发现了这个,下载了ebuild文件,安装,但是configure的时候就失败了,理由是找不到python2.4和2.3,心想这一定是个比较老的ebuild的,那时候应该还没有python2.5,于是想花点时间修改configure脚本算了,倒也是修改好了,也安装上了,但是gnome-osd-client的时候,却又是一堆错误,而且一看就知道是python的错误.才发现这个代码确实是不兼容python2.5的.
但是回头想想,ubuntu里面的python不也是2.5的嘛,于是肯定只有一个可能,就是这个源码包不是最新的,从那个ebuild的源码包顺藤摸瓜,终于找到了最新的下载地址,于是顺手改了下ebuild的文件,不知道有没有可能放进gentoo-china的overlay呢?

cpu的降频和温度监控

以前一直以为自己的cpu不支持降频,也就没怎么去研究,直到 lerosua 告诉我,那是因为我没配置好,呵呵,汗自己一个。
其实也很简单,ubuntu和gentoo下都只要安装 cpufrequtils 这个包即可。然后确保加载了 acpi_cpufreq 这模块。
然后就可以用 cpufreq-set 命令调解cpu的频率了,默认是调整第一个内核,要调另外一个,只要加 -c1 参数即可。 -g ondemand 可以把cpu置为自动调解状态,会按需条件频率。
另外 cpufreq-info 命令可以查看当前cpu的频率、以及支持的频率等等,也可以在面板上放两个“cpu频率范围监视器”,没个监视一个内核,比较直观。
cpu的温度检测是要安装 lm-sensors 这个包,可以先用 sensors-detect 查看你的硬解有哪些传感器,按照提示做,就会把几个内核模块加进 /etc/modules 里面,也可以手工 modprobe ,完了以后执行 sensors 就应该有输出了,不过我的输出比较奇怪:

$ sensors
coretemp-isa-0000
Adapter: ISA adapter
Core 0: +13.0°C (crit = +100.0°C)

coretemp-isa-0001
Adapter: ISA adapter
Core 1: +10.0°C (crit = +100.0°C)

室温都不止这点温度,难道是传感器坏了?

语音播报天气的脚本

我以前写的一个天气预报脚本,由xiooli同学完成了语音部分,嘿嘿,效果还不错的哦~
下载地址: http://ftp.ubuntu.org.cn/home/xiooli/say_weather.tar.gzhttp://linuxfire.com.cn/~lily/say_weather.tar.gz

xiooli的原帖在这里,还有他的一个报时脚本,也很好玩。

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 一看,原来也是个几行的小脚本,其实和我写的那行一样简单,娃哈哈哈~

压制视频时带上字幕的 mencoder 参数

给 iPod touch 转视频,源是 avi视频+srt字幕 的格式,想保留字幕,可以用以下参数:

mencoder -ovc lavc -lavcopts vcodec=mpeg4 -vf scale=320:240 -oac faac -sub ssf-tkd.srt -o test.mp4 ssf-tkd.avi

这个参数,字幕是加上了,但估计大部分还是会乱码,解决乱码问题和 mplayer 很像:
建个 ~/.mplayer/mencoder.conf 文件,写上一行 subcp=cp936 就好了.
但是以上转的视频估计还不是最适合 iPod touch 的,还要继续研究.大家有什么好建议不?

帖几个搜索过程中发现的url(有关的或者无关的):
http://www.linuxsir.org/bbs/thread308957.html
http://avisynth.org/

命令行下修改gnome的配置

假如哪天你把你的gnome配置或者X配置搞坏了,不能启动任何gnome的程序了的话,这个也许有用:
大家应该知道,gnome下很多配置可以在 gconf-editor 里修改,那如果你的 gconf-editor 打不开了,或者是想用脚本实现修改里面的某个值,怎么办呢?
这时候就要用到 gconftool 或者 gconftool-2 (在gnome2下,这两者一般是同一个东西的符号链接而已.).
举例说明吧:
得到某个键值的值:

$ gconftool –get /desktop/gnome/interface/gtk_theme
Glossy

设置某个键值:

$ gconftool –type string –set /desktop/gnome/interface/gtk_theme “Human”

要知道,这个命令会即时地修改你的主题哦.就合你在外观里面选择一样.

AntiVir

AntiVir 是个德国的杀毒软件,有linux版,且免费版本功能也不错.
还可以用来杀windows分区下的病毒,很适合windows根本无法启动的时候,用linux光盘或者U盘启动,进行杀毒.还可以做个杀毒启动U盘备用,嘿嘿.
这里下载linux版后,解压,执行里面的install,回答一系列问题就安装好了.
升级病毒库: sudo antivir –update
为防止误删有用文件,需要创建一个隔离区:

mkdir /path/quarantine

升级完成,开始扫描:

antivir -s -z -v –moveto=/path/quarantine /media/sda1
antivir -s -z -v –moveto=/path/quarantine /media/sda2

需要扫描什么目录都可以,挂载了windows分区,也就可以扫描windows的病毒了.效果还是不错的.
另,命令行参数还可以参考这个帖子

sssh 快速ssh登陆脚本

此脚本对于那些需要经常ssh登陆远程服务器的朋友应该有点用处.尤其是需要中转服务器ssh 2次以上的.

脚本功能:
将服务器IP和密码保存于文本文件中(明文保存,安全性要自己保证),方便登陆,支持多次ssh中转,支持服务器编码自动转换,支持某个用户名的通用密码.

使用方法:
最好将脚本保存在PATH变量包含的路径下,建议保存于 ~/bin 并确保此目录在 PATH 中.
编写 ~/.pass 文件,并执行 chmod 600 ~/.pass
安装 expect 包.

.pass文件的写法
1.最简单的,可以在文件中写下如下一行:

name=hostA usernameA@IP-A passwordA

就可以使用 sssh hostA 登陆此服务器了.
2.中转登陆:

name=hostA usernameA@IP-A passwordA
name-hostA=hostB usernameB@IP-B passwordB

执行 sssh hostA hostB 就相对于先登陆hostA,然后在hostA上登陆hostB
同理,理论上可以中转N次,hostA->hostB->hostC->hostD…,嘿嘿…
3.使用通用用户名的密码.
这是用于这样的例子:有N个服务器,都开通了一个通用用户名(例如:view用户,只有很低的权限),这些view用户的密码都是同一个,而且会定期同步修改.这种情况下,如果修改了view密码的话,.pass文件就要修改N个密码了,为了避免这样的麻烦,可以使用通用用户名和密码功能:

usualName view
usualPSW password-of-view
name=hostA view@IP-A
name=hostB view@IP-B
name=hostC view@IP-C

这样就可以直接用 sssh hostA , sssh hostB 登陆了.
可以看到,这里省略了第3列的密码字段.此法同样适用于多级登陆的服务器.
4.指定服务器使用的编码

usualName view
usualPSW password-of-view
name=hostA usernameA@IP-A passwordA gbk
name=hostB view@IP-B | gbk

在某行服务器的后面(第4列),加上 gbk,就可以指明该服务器使用的是gbk,登陆了以后不会出现乱码了.
如果某行使用了通用用户名和密码的话,为了不致引起混乱,密码那列需要加个 | (竖线)占位.
5.使用通用编码

usualCODING gbk

加上此行,对于没有指定编码的服务器,将默认使用gbk编码.

下载:
由于脚本贴在这里会出现半角引号变全角的状况.所以,请直接在这里下载 这里下载.

哈哈,没想到,脚本没几行,写个说明倒是一堆了…

加强的man

用linux,不可能不用man,鄙人认为man是linux最值得借鉴的地方之一。
但是默认情况下的man虽然很有用,但并不是很精彩,这里介绍两点,让你man更精彩。
首先,中文用户(老鸟和英文狂人除外)大多会被man里的一大片英文吓倒,你肯定希望man最好能是中文的吧,其实在ubuntu8.04下面你只要简单地安装 manpages-zh 就可以实现大多数命令的中文帮助了。值得一提的是,中文的man并不能和程序版本保持很好的同步,很多命令的man也都还是上个世纪的,所以作为参考是可以,但是需要的时候,还是的看原文的。方法是 man -a COMMAND,这样如果有中文的话,就先显示中文,按q退出之后,还会提示有其他man页,回车就能看到原文的了。
其实,你一定厌烦了man的黑白界面了吧,那我们就给点颜色,嘿嘿。基本上按照这个帖子做就可以了。

帖个效果图:
man效果图

sshfs 的用法

通过sshfs,可以将远程服务器上的目录mount到本地,从而可以在本地方便地操作远程的文件.而且所有ssh协议的好处都得以保留哦,比如加密传输之类的.
安装: 如果你用的也是ubuntu,可以直接apt-get install sshfs 得到,如果是其他版本,请安装响应安装包,或者访问主页: http://fuse.sourceforge.net/sshfs.html
另外,要使用sshfs,你还需要在 fuse 这个组里面,如果还不是,需要执行

sudo usermod -G fuse -a 你的用户名

来加入fuse组,加完之后,还需要重新登录一次.
然后你就可以执行

sshfs RemoteUser@RemoteHost:[RemoteDir] LocalDir

进行挂载了.不过这里的RemoteDir和scp等命令里面的有点不同,就是不能使用~来表示远程用户的家目录.只能写绝对路径.而且省略RemoteDir的时候,却不能省略前面那个冒号哦.
挂载了以后,服务端的文件和本地的文件就基本同步了,为什么加个”基本”呢?就是因为我这边测试的时候,延时还是比较大的,服务器上建个文件,本地要过个5秒左右,才能看到…
另外用完之后要用 fusermount -u LocalDir 进行卸载哦,不然难保有些文件没有同步完成呢.