I am LAZY bones? AN ancient AND boring SITE

分类: 'CLI软件' 的归档

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 文件

msgfmt zh_CN.po -o zh_CN.mo

mo 文件转成 po 文件

msgunfmt zh_CN.mo -o zh_CN.po

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

新的百度mp3下载脚本

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

代码:
#!/bin/bash
#Copyright (c) 2006 bones7456 (bones7456@gmail.com)
#License: GPLv2
#非常感谢ubuntu社区和oneleaf老兄
#强烈建议安装axel(多线程下载工具)和mid3v2(包含在python-mutagen里,用于修改歌曲的id3信息)#mp3的地址
SOURCE=”http://list.mp3.baidu.com/list/newhits.html”
#SOURCE=”http://list.mp3.baidu.com/topso/mp3topsong.html” 改成这个地址可以下载歌曲top500

#保存mp3的目录
SAVE=”${HOME}/baidump3″

#下载重试次数
TRYCOUNT=2

#用axel下载时的线程数
AXELNUM=7

#临时目录
TMP=”/tmp/baidump3-${USER}”

#是否需要暂停
PAUSE=0

if [ x`which axel` = x”” ];then
PAUSE=1
cat << EOF
您的系统中没有安装axel多线程下载工具,这将导致只能使用wget进行单线程下载,将会影响下载速度。
如果是ubuntu用户,可以直接使用 sudo apt-get install axel 进行安装,其他系统请访问axel主页:http://wilmer.gaast.net/main.php/axel.html 进行下载、安装。

EOF
fi
if [ x`which mid3v2` = x”” ];then
PAUSE=1
cat << EOF
您的系统中没有安装mid3v2工具,使用该工具可以修改mp3歌曲的标签信息(如歌手、歌名等),并去掉可能包含于其中的广告信息。
如果是ubuntu用户,可以直接使用 sudo apt-get install python-mutagen 进行安装,其他系统请访问其主页:http://www.sacredchao.net/quodlibet/wiki/Development/Mutagen 进行下载、安装。

EOF
fi
if [ “$PAUSE” = 1 ];then
echo “是否继续(y|n)?”
read KEYVAR
case “$KEYVAR” in
“Y” | “y” )
echo 略过。
;;
* )
exit 0
;;
esac
fi

#创建下载目录
if [ ! -d “${SAVE}” ];then
mkdir -p “${SAVE}”
fi

#创建临时下载目录
if [ -d “${TMP}” ];then
rm -rf “${TMP}”
fi
mkdir -p “${TMP}”

echo “开始下载百度最新100首歌曲列表”
wget -O ${TMP}/mp3.html ${SOURCE}
echo “下载百度最新100首歌曲列表完成。”

#转换网页编码
iconv -f gbk -t utf8 ${TMP}/mp3.html |\

grep ” href=\”http://mp3.baidu.com/m” |\

#将mp3list.txt所有开头的空格去掉
sed -e ‘s/ *//’ |\

#将mp3list.txt所有开头的tab去掉
sed -e ‘s/\t*//’ |\

#将mp3list.txt所有全角空格去掉
sed -e ‘s/ //g’ |\

#将所有的回车符去掉
sed ‘:a;N;$!ba;s/\n/,/g’ |\

#在td>,后面加上回车符,一行表示一个mp3文件。
sed -e ‘s/,<td/\n<td/g’ |\
sed -e ‘s/td>,/td>\n/g’ |\

#删除<td width=”30%”> <td> </td> <td…FFFFFF”> <p> </p>
sed -e ‘s/<td width=”30%”>//g’ |\
sed -e ‘s/<td>//g’ |\
sed -e ‘s/<\/td>//g’ |\
sed -e ‘s/<p>//g’ |\
sed -e ‘s/<\/p>//g’ |\
sed -e ‘s/<td.*”border”>//g’ |\

#删除</a>…”_blank”>
sed -e ‘s/<\/A>\/<A.*_blank>/、/g’ |\
sed -e ‘s/<\/A>/<\/a>/g’ |\
sed -e ‘s/<\/a>.*_blank>/-/g’ |\
#sed -e ‘s/<\/a>.*_blank”>/-/g’ |\
#删除)
sed -e ‘s/<\/a>)/<\/a>/g’ |\

#删除&
sed -e ‘s/\&\;/\//g’ >${TMP}/mp3list.txt

#得到:<a href=”http://mp3.baidu.com/m?tn=baidump3&ct=134217728&lm=-1&li=2&word=Baby%20Baby%20tell%20me%20%CD%F5%D0%C4%C1%E8″ target=”_blank”>Baby ,Baby tell me-王心凌</a>

#取得行号,循环
line=$(awk ‘END{print NR}’ ${TMP}/mp3list.txt)
i=1;
while((i<=line));do
downed=0;
mpline=`awk ‘NR=='”$i”” ${TMP}/mp3list.txt`
url=`echo $mpline | sed -e ‘s/<a href=”//g’ | sed ‘s/\ target.*//g’ | sed ‘s/”//g’ | cat`
name=`echo $mpline | sed -e ‘s/.*_blank”>//g’ | sed -e ‘s/.*_blank>//g’ | sed -e ‘s/<\/b>//g’ |sed -e ‘s/<b>//g’ |\
sed -e ‘s/<\/a>//g’ | sed -e ‘s/\//-/g’ | sed -e ‘s/:/-/g’ | sed -e ‘s/”/’\”/g’ | cat`
title=`echo $name | sed -e ‘s/-.*//g’`

#检查是否已经下载过这首歌,如果下载过,放弃
if [ -e “${SAVE}/${name}.mp3” ] || [ -e “${SAVE}/${name}.wma” ]; then
echo -e “\e[1;6m\e[1;31m发现 ${name} 下载过,忽略,继续下一首。\e[1;6m\e[00m”
((i++))
continue;
fi

echo “开始通过 $url 下载 $name”;
wget -O ${TMP}/down.html $url
echo “获取 $name 下载列表完成。”;

#down.txt为有效的下载地址
iconv -f gbk -t utf8 -c ${TMP}/down.html | grep “onclick=\”return ow(event,this)\”” |\
sed -e ‘s/.*<a href=”//g’ | sed -e ‘s/” target=”_blank”.*//g’ > ${TMP}/down.txt

#size.txt为有效的下载文件大小
iconv -f gbk -t utf8 -c ${TMP}/down.html | grep “M<\/td>” |\
sed -e ‘s/<td>//g’ | sed -e ‘s/ M<\/td>//g’ > ${TMP}/size.txt

#down.txt与size.txt合并而在的down_size.txt文件中字段之间以”`”作为分隔符
paste -d ‘`’ ${TMP}/size.txt ${TMP}/down.txt > ${TMP}/down_size.txt

#排序
sort -n -r ${TMP}/down_size.txt > ${TMP}/down_size_sort.txt

#去掉后面的尺寸
sed ‘s/.*`//’ ${TMP}/down_size_sort.txt > ${TMP}/temp.txt

##### 析取出mp3 的下载地址或 wma的下载地址 ##############
grep -i “word=mp3” ${TMP}/temp.txt | grep “$title” > ${TMP}/down_mp3.txt
grep -i “word=wma” ${TMP}/temp.txt | grep “$title” > ${TMP}/down_wma.txt

downline_mp3=$(awk ‘END{print NR}’ ${TMP}/down_mp3.txt);
downline_wma=$(awk ‘END{print NR}’ ${TMP}/down_wma.txt);
echo -e “\e[1;6m\e[1;31m发现 ${downline_mp3} 个名为 ${name}.mp3 下载地址。\e[1;6m\e[00m”
echo -e “\e[1;6m\e[1;31m发现 ${downline_wma} 个名为 ${name}.wma 下载地址。\e[1;6m\e[00m”
# 初始化计数器
j=1;
# 优先下载mp3格式的歌曲
while((j<=downline_mp3)); do
mp3=`awk ‘NR=='”$j”” ${TMP}/down_mp3.txt | sed -e ‘s/ /\\ /g’`
echo -e “\e[1;6m\e[1;31m正在下载${name}.mp3\e[1;6m\e[00m”
#echo -e “\e[1;6m\e[1;31m中转页面地址为${mp3}\e[1;6m\e[00m”
wget -O “${TMP}/transit.html” “$mp3”
realURL=`iconv -f gbk -t utf8 -c ${TMP}/transit.html | grep “<li class=\”li\” style=\”margin-right:10px;\”>” | sed ‘s/.*href=”//’ | sed ‘s/” target=”_blank”>.*//’`
#echo -e “\e[1;6m\e[1;31m真实下载地址为${realURL}\e[1;6m\e[00m”
if [ x`which axel` != x”” ];then
axel -n $AXELNUM -a -o “${TMP}/${name}.mp3” “${realURL}”
else
#wget太慢了。但是如果没有安装axel,可以把上面一行注释掉,用下面一行代替
wget -c –tries=$TRYCOUNT $realURL -O “${TMP}/${name}.mp3”
fi
if [ “$?” = 0 ]; then
if [ `file -ib “${TMP}/${name}.mp3” | sed -e ‘s/\/.*//g’` = “audio” ]; then
if [ x`which mid3v2` != x”” ];then
title=`echo $name | sed -e ‘s/-.*//g’`
artist=`echo $name | sed -e ‘s/.*-//g’ | sed -e ‘s/.mp3//g’ | sed -e ‘s/.wma//g’`
mid3v2 -D “${TMP}/${name}.mp3”
mid3v2 -t “${title}” -a “${artist}” “${TMP}/${name}.mp3”
fi
mv “${TMP}/${name}.mp3” “${SAVE}/${name}.mp3”
downed=1;
break;
else
echo -e “\e[1;6m\e[1;31m下载 ${name}.mp3 文件无效,正在删除重新下载\e[1;6m\e[00m”
rm “${TMP}/${name}.mp3”;
((j++))
fi
else
echo -e “\e[1;6m\e[1;31m下载 ${name}.mp3 文件无效,正在删除重新下载\e[1;6m\e[00m”
rm “${TMP}/${name}.mp3”;
((j++))
fi
done

#如果下载成功继续下其余的歌
#continue用于跳过循环体中的后续命令
if [ “$downed” = 1 ] ; then
((i++))
echo -e “\e[1;7m\e[1;41m下载 $name 成功\e[1;7m\e[00m”
continue;
fi

# 如果没有mp3格式的则下载wma格式的歌
j=1;
while((j<=downline_wma)); do
wma=`awk ‘NR=='”$j”” ${TMP}/down_wma.txt`
echo -e “\e[1;6m\e[1;31m正在下载${name}.wma\e[1;6m\e[00m”

#echo -e “\e[1;6m\e[1;31m中转页面地址为${mp3}\e[1;6m\e[00m”
wget -O “${TMP}/transit.html” “$wma”
realURL=`iconv -f gbk -t utf8 -c ${TMP}/transit.html | grep “<li class=\”li\” style=\”margin-right:10px;\”>” | sed ‘s/.*href=”//’ | sed ‘s/” target=”_blank”>.*//’`
#echo -e “\e[1;6m\e[1;31m真实下载地址为${realURL}\e[1;6m\e[00m”
if [ x`which axel` != x”” ];then
axel -n $AXELNUM -a -o “${TMP}/${name}.wma” “${realURL}”
else
#wget太慢了。但是如果没有安装axel,可以把上面一行注释掉,用下面一行代替
wget -c –tries=$TRYCOUNT $realURL -O “${TMP}/${name}.wma”
fi
if [ “$?” = 0 ]; then
if [ `file -ib “${TMP}/${name}.wma” | sed -e ‘s/\/.*//g’` = “application” ]; then
#title=`echo $name | sed -e ‘s/-.*//g’`
#artist=`echo $name | sed -e ‘s/.*-//g’ | sed -e ‘s/.mp3//g’ | sed -e ‘s/.wma//g’`
#mid3v2 -D “${TMP}/${name}.wma”
#mid3v2 -t “${title}” -a “${artist}” “${TMP}/${name}.wma”
mv “${TMP}/${name}.wma” “${SAVE}/${name}.wma”
downed=1;
break;
else
echo -e “\e[1;6m\e[1;31m下载 ${name}.wma 文件无效,正在删除重新下载\e[1;6m\e[00m”
rm “${TMP}/${name}.wma”;
((j++))
fi
else
echo -e “\e[1;6m\e[1;31m下载 ${name}.wma 文件无效,正在删除重新下载\e[1;6m\e[00m”
rm “${TMP}/${name}.wma”;
((j++))
fi
done

((i++))
if [ “$downed” = 1 ] ; then
echo -e “\e[1;7m\e[1;41m下载 $name 成功\e[1;7m\e[00m”
else
echo -e “\e[1;7m\e[1;41m下载 $name 失败\e[1;7m\e[00m”
fi
done
rm -fr ${TMP}
exit 0

命令行的聊天工具 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

Perfect Console 计划

转自 http://www.linuxsir.org/bbs/showthread.php?t=245239
=================================================

目的:
提供 X , DirectFB 下的图形界面程序在纯控制台(最好是FrameBuffer的,VGA的驱动屏幕太小)下的替代品.
使用户在不装 X , DirectFB 等图形界面的情况下,也能有很好的体验.

内容:
尽量提供 软件简介, 主页, 安装方法, 截图, 依赖

大多数软件从 Freshmeat -> Environment -> Console (Text Based) -> Curses 找到.

如没有主页和下载地址, 请善用搜索:
1. www.freshmeat.net/projects/软件名
2. www.freshmeat.net 最大的开源软件库,几乎所有软件都能找到, 在这里搜索
3. rpmfind.net 也是很大的软件源, 下来的 src.rpm 可以解压后使用, 其中的 patch 也可以用.
4. www.google.com

有一些软件本人还未试验, use at your own risk .

欢迎提供适合本计划的软件, 要求某个功能的软件也可以提出, 但不保证有人帮你找到.

0. 基础软件
基本上,下面的软件都需要的, 下面就不提了.
Linux kernel with Framebuffer :
GPM : 鼠标驱动
ncurses : 基础图形库
S-lang : 基于 ncurses 的库, 有的软件需要
newt : 另一个图形库, 有的软件需要

screen : 让一个 console 同时运行多个图形程序 ,我写的 screen 的用法, 以及在 lfs 当中的应用 , 还有人说用screen可以实现gpm的跨控制台复制粘帖 这是gentoo的帮助文件: http://gentoo-wiki.com/TIP_Using_screen

1. 中文支持
zhcon : 在LFS5.0+kernel2.6.3里安装zhcon0.2.3
主页: zhcon.sf.net 现已升级到 0.2.6 ,从 0.2.5 开始部分支持 utf8 , 推荐.
cce : cce + gcc4 问题基本解决 (Final)

2. 文件管理
midnightcommander, mc : 见 BLFS Book
Midnight Commander MP : 改版的 mc http://freshmeat.net/projects/mcmp/

3. 上网浏览
lynx , w3m , links 在 BLFS book 里有
lynx : 基本的浏览器,在 cce/zhcon 下支持中文,不支持中文utf8网页(比如 本页 )

w3m : 较好的浏览器,支持表格,在 cce/zhcon 下完美支持中文, utf8 的网页也支持,新的 w3m 直接支持 fb 图象。

links : 功能比 w3m 还强大, 支持后台下载,但是完全不支持中文.
links -g 可以开启图形,高级布局

elinks : links 改版,功能比 links 还强大, 支持多Tab页,但是完全不支持中文.
据说 sir 上某人曾经 links 的中文码表,可以支持中文, 我还没找到,若有人找到,请给我一个地址. 否则, 我来试试自己写(抄袭?) 一个码表,不过肯定是 elinks 的.

4. 上网聊天
centericq : An ncurses-based client for ICQ, Yahoo!, AIM, IRC, Jabber, MSN, and LiveJournal.
http://freshmeat.net/projects/centericq/

Licq : An advanced graphical ICQ clone.
http://freshmeat.net/projects/licq/

5. 收发邮件
Mutt : A small but very powerful text-based mail client.
http://freshmeat.net/projects/mutt/

gnus+fetchmail+procmail
http://www.gnus.org/
http://fetchmail.berlios.de/
http://www.procmail.org/
教程:
PROCMAIL QUICK START http://www.ii.com/internet/robots/procmail/qs/
procmail 软件包包含一个自动的邮件处理器,可以很好的过滤和排序邮件。 http://lfs.linuxsir.org/htdocs/blfsc…/procmail.html
使用fecthmail http://doc.chinahtml.com/Manual/free…fetchmail.html
http://learn.tsinghua.edu.cn:8080/20…nt-backup/gnus
.html
http://learn.tsinghua.edu.cn:8080/20…up/gnus-1.html

Pine 不逊于 mutt 的 email 客户端
http://www.washington.edu/pine/

6. 音乐欣赏
mp3blaster : mepgsound 解码 http://mp3blaster.sourceforge.net/

MOC console audio player for Linux/UNIX
http://moc.daper.net/

mpg123 + playmp3list : mpg123 解码 http://rucus.ru.ac.za/~urban/projects/playmp3list/
mplay + mplayer : mplayer 的 console 前端

cmus : mad 解码 , 看起来比 mp3blaster 还好 http://onion.dynserv.net/~timo/cmus.html
为了支持更多格式,需要一下库:
flac : http://flac.sourceforge.net/
mp3 , mad : http://www.underbit.com/products/mad/
ogg , libogg, http://www.vorbis.com/
libao : http://www.xiph.org/ao/

下面不清楚,可能没有什么用
http://modplug.sourceforge.net/
http://www.musicpd.org/mpc.shtml
http://www.musicpd.org/

7. 视频播放
mplayer :
xine :
这两个在输出驱动为 fb 的情况下,可以完美播放各种格式视频.

8. 集成开发
motor : http://freshmeat.net/projects/motor/
http://thekonst.net/motor
ftp://rpmfind.net/linux/Mandrake/9.2…4-3mdk.src.rpm

有人可能更喜欢用 vi 或 emacs .

9. 上传下载
wget : http://www.gnu.org/software/wget/
curl : http://curl.haxx.se/
prozilla : 多线程 http://prozilla.genesys.ro/
lftp : 命令行 http://lftp.yar.ru/
ncftp : 命令行 http://www.ncftp.com/ncftp/
yafc : 命令行 + 彩色 http://yafc.sourceforge.net/
mc : mc 用来ftp是很方便的

10.图形图像
fbgrab : 在 framebuffer 下截图, http://hem.bredband.net/gmogmo/fbgrab/
我的截图都是 fbgrab 做的, 依赖于 libpng .
编译时不要用 make ,它的 Makefile 调用了一个检查程序,一般都没装,也没什么用.
看一下 Makefile ,把 gcc ……….. 粘帖下来直接用.

fbv : 看图软件,可以在console 下看 png gif jepg ,依赖于 libpng, libungif ,libjepg
http://freshmeat.net/projects/fbv/

iiview : 看图, 还可显示缩略图, 可以在console 下看 png gif jepg tiff,依赖于 libpng, libungif ,libjepg, libtiff
http://freshmeat.net/projects/iiview/

fbview : 看图, 不推荐,依赖太多, 除图形库外,还有imagemagick , oFBis library

fbi 系列 : http://linux.bytesex.org/fbida/ 有用的有:
fbi : 看图软件,可以在console 下看 png gif jepg
fbgs: 脚本, 用 ghostscript 把 ps , pdf 转成图像, 再用 fbi 看
exiftran : 在保留 exif 的同时转换 jpeg

11. 其他工具
htop : 进程管理器, 更好的 top http://htop.sourceforge.net/

sysvconfig : 系统设置, http://sysvconfig.sf.net ,用处不大, 不推荐

12.CD烧录
核心软件 cdrdao cdrtools dvd+rw-tools ,gui 的也要用到, distro 一般都有,很好找

bashburn ,ncurse 界面,菜单选择烧录cd
http://bashburn.sourceforge.net/

cdw ,另一个 ncurse 界面烧录软件
http://sourceforge.net/projects/cdw

screen

引自: http://www.winterxy.com/blog/000128.html
————————————————————–

UNIX/LINUX 工具: SCREEN 命令使用
最近同事给我介绍Screen 命令,真是不错。以前为了让程序在脱离终端的情况下运行,要么让它在后台运行,要么使用nohup运行,但是如果需要交互的程序就麻烦了。例如,你需要使用scp拷贝,需要输入密码,而且数据量很大,需要很长时间。遇到过的人就知道痛苦了。
有了screen,一切都简单了。这里把一篇介绍的文章转贴过来,使用还是很方便的。

screen your screen
文:林思敬
电子邮件:becks.lin@ec-base.com
前言
screen 是什么
根据其man介绍,screen是个多元化多功能的全屏窗口管理器,每个虚拟终端都可以为你提供DEC VT100 terminal的功能, 也许你会问:DEC VT100 terminal又是什么?如果你登陆过某些字符界面的BBS,或许你会记得在注册时,其要求你输入你的终端机型别,而一般预设就是我们刚刚提到的DEC VT100 termina了.另外screen还附加提供了比如SO 6429 (ECMA 48, ANSI X3.64) and ISO 2022 standards的操作功能.
screen 可以做些什么
如果在以前或许screen 是你登陆 bbs 站的好伴侣,但是相信现在大家都是直接登陆图形界面的也就是WEB界面的BBS.当你正在登陆多个BBS而又不想在多个窗口之间切换.那么screen就可以帮你的忙了。
当然screen可不是专为BBS服务, 它可以让你只需要打开一个终端窗口就可以地处理很多的(进程)事情,举个例子:你正在shell上编写某个程序,碰巧你又需要重新启动某个服务,同时还要 FTP上传个大文件,这个时候就可以使用调用screen,只需要按下3个键就可以无须用鼠标在3个窗口间切换.又或者你使用PUTTY等工具登陆到服务器,不想在退出时关闭当前的进程,比如你正在复制文件等.这个时候就可以利用screen让你复制文件这个前台进程享受后台进程的”待遇”。
正是因为screen的种种实用功能 ,已经成为不少*nix玩家的必备利器,让*unix的日常操作管理更加方便。
screen使用
使用screen非常简易.只需在SHELL键入screen,便可打开一个screen session。
而在每个screen session 下,所有命令都以 ctrl+a(C-a) 开始。
现在让我来简单介绍基本的命令
C-a c -> Create,开启新的 window
C-a n -> Next,切换到下个 window
C-a p -> Previous,前一个 window
C-a C-a -> Other,在两个 window 间切换
C-a w -> Windows,列出已开启的 windows 有那些
C-a 0 -> 切换到第 0 个 window
C-a 1..9 -> 切换到第 1..9 个window
C-a a -> 发出 C-a,在 emacs, ve, bash, tcsh 下可移到行首
C-a t -> Time,显示当前时间,和系统的 load
C-a K(大写) -> kill window,强行关闭当前的 window
C-a [ -> 进入 copy mode,在 copy mode 下可以回滚、搜索、
复制就像用使用 vi 一样
C-b Backward,PageUp
C-f Forward,PageDown
H(大写) High,将光标移至左上角
L Low,将光标移至左下角
0 移到行首
$ 行末
w forward one word,以字为单位往前移
b backward one word,以字为单位往后移
Space 第一次按为标记区起点,第二次按为终点
Esc 结束 copy mode
C-a ] -> Paste,把刚刚在 copy mode 选定的内容贴上
C-a ? -> Help,显示简单说明
C-a d -> detach,将目前的 screen session (可能含有多个 windows)
丢到后台执行 当按了 C-a d 把 screen session detach 掉后,会回到还没进 screen 时的状态,此时在 screen session 里每个 window 内运行的 process (无论是前台/后台)都在继续执行,即使 logout 也不影响。
下次 login 进来时:
screen -ls -> 显示所有的 screen sessions
screen -r [keyword] -> 选择一个screen session 恢复对话
若 screen -ls 里有 Attached sessions:
screen -d [keyword] -> 强制 detach,以便「接手」过来
实例
说明看了那么多,让我们用一个实际例子来结束我们今天的学习。
在我们开启一个screen后,然后使用joe编辑一个文件,之后因为临时需要离开这时就可以运行Ctrl+a d,显示如下:
[becks@ec-base becks]$ screen
[detached]
这个时候当我们运行ps -e 可以看到pts/2这个我刚刚运行的screen正在运行joe
6264 pts/2 00:00:00 bash
6354 pts/2 00:00:00 joe
而当我们回来后想恢复这个session,只需要键入screen -r,而当你有多个session时候,系统将提示你选择一个,如下:
[becks@ec-base becks]$ screen -r
There are several suitable screens on:
6263.pts-1.ec-base (Detached)
6382.pts-1.ec-base (Detached)
Type “screen [-d] -r [pid.]tty.host” to resume one of them.
输入该session的pid进行恢复
[becks@becks becks]$ screen -r 6263
想退出screen的session,和退出shell一样,只需要键入exit命令,成功退出后将有以下提示
[screen is terminating]
screen的简单用法就介绍到这里,更多的功能和应有请读者参考MAN自行研究.