强悍的vim插件:snipMate
RT
在这里找到的:http://vimeo.com/3535418
很爽哦,有段视频演示:
snipMate.vim Introductory Screencast from Michael Sanders on Vimeo.
下载:vim.org/scripts/script.php?script_id=2540
RT
在这里找到的:http://vimeo.com/3535418
很爽哦,有段视频演示:
snipMate.vim Introductory Screencast from Michael Sanders on Vimeo.
下载:vim.org/scripts/script.php?script_id=2540
RT
骨头兄将我以前写的一个下载/显示歌词的脚本整到google code上去了,现在已经有4个成员了呢,嘿嘿。现在明显感觉更新快了,刷刷的就到30几个更新了。。。
项目主页在http://code.google.com/p/lrcdis/
你可以到此处去下载稳定版本:http://code.google.com/p/lrcdis/downloads/list
lrcdis is a bash script for auto download lyrics and display it.
Now compatable with mpd, mocp, audacious, amarok, exaile, quodlibet, rhythmbox, mplayer.
Now supply these display mode:
* CLI: colorful command line method.
* OSD: using gnome-osd-client, give a on-screen-display.
* notify: using notify-send, give a series of message boxs.
* fifo: output a fifo file /dev/shm/lrcfifo, which can be used by other program.
RT
原文:http://www.cnblogs.com/dyj057/archive/2008/11/12/1332135.html#1470871
在土匪同学的博客上看到的,很有意思:
打开控制器,运行如下的脚本:
wget http://www.cnblogs.com/Files/dyj057/myfonts.sh.zip
unzip -o myfonts.sh.zip
chmod a+x myfonts.sh
./myfonts.sh
支持8.04, 8.10
当然了,其他发行版的linux也是可以用的。
或者你可以直接复制下面的代码(就是myfonts.sh啦),
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | #!/bin/bash myfonts_dir=/usr/share/fonts/truetype/myfonts screen=0 sudo mkdir $myfonts_dir 2>/dev/null echo "字体安装工具" echo "(C)2008 Deng.Yangjun@Gmail.com" echo "安装控制台字体:Monaco" wget http://www.cnblogs.com/Files/DengYangjun/monaco-linux.ttf.zip unzip -o monaco-linux.ttf.zip sudo mv monaco-linux.ttf $myfonts_dir rm monaco-linux.ttf.zip echo "安装字体:Lucida Console" wget http://www.cnblogs.com/Files/DengYangjun/lucida-console.ttf.zip unzip -o lucida-console.ttf.zip sudo mv lucida-console.ttf $myfonts_dir rm lucida-console.ttf.zip echo "安装字体:微软雅黑" wget http://www.cnblogs.com/Files/DengYangjun/msyh.ttf.zip unzip -o msyh.ttf.zip sudo mv msyh.ttf $myfonts_dir rm msyh.ttf.zip cd wget http://www.cnblogs.com/Files/DengYangjun/msyhbd.ttf.zip unzip -o msyhbd.ttf.zip sudo mv msyhbd.ttf $myfonts_dir rm msyhbd.ttf.zip #Ubuntu 7.10 #wget http://www.cnblogs.com/Files/DengYangjun/language-selector.conf.zip #unzip -o language-selector.conf.zip #sudo mv language-selector.conf /etc/fonts #rm language-selector.conf.zip #Ubuntu 8.04 echo "请选择显示器类型(1-2):1-LED 2-CRT" read screen case $screen in 1) wget -O local.zip http://www.cnblogs.com/Files/dyj057/local.led.zip ;; 2) wget -O local.zip http://www.cnblogs.com/Files/dyj056/local.zip ;; ?) echo "无效选择,退出安装" exit 1; esac unzip -o local.zip sudo mv /etc/fonts/conf.avail/51-local.conf /etc/fonts/conf.avail/51-local.conf.old sudo mv local.conf /etc/fonts/conf.avail/51-local.conf rm local.zip cd /etc/fonts/conf.avail sudo mv 69-language-selector-zh-cn.conf 69-language-selector-zh-cn.conf.old 2>/dev/null cd $myfonts_dir sudo chmod 555 * sudo mkfontscale sudo mkfontdir sudo fc-cache -v echo "安装字体结束,谢谢使用。请重新登录,查看字体效果。" |
最近做实验整出一堆的实验数据,手工处理的话就太变态了,而用origin(win,这个我用不上)或qtiplot(linux,kde)又要点来点去点得头晕(可能是不熟悉的缘故)。我只是需要计算些很简单的东西,比如标准偏差(这玩意主要用来画图上的误差棒),于是想到了大名鼎鼎的awk同志,简单几句搞定,嘿嘿,awk可不是盖的:
1 2 3 4 5 6 7 8 9 10 11 | #计算一组数据的标准偏差。
BEGIN{print "倒数第一列是标准偏差,倒数第二列是平均值。"}
function sq(x){return x*x}
{
sum=0
tmp=0
for (i=1;i<=NF;i++) sum+=$i
avr=sum/NF
for (i=1;i<=NF;i++) tmp+=sq($i-avr)
print $0,avr,sqrt(tmp/(NF-1))
} |
演示一下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | xiooli(~/共享)>> cat haha.txt 0.6437 0.5912 0.5639 0.7375 0.6796 0.8372 0.7750 0.7403 0.8372 0.8188 0.8177 0.8605 1 1 1 0.8500 0.8895 0.8837 0.8812 0.8453 0.8372 0.4187 0.4254 0.4593 0.5407 0.4939 0.6860 0.8163 0.7849 0.8571 0.6047 0.6653 0.9244 1.000 0.9720 0.9012 0.8900 0.9398 1 1 0.9210 0.9942 0.9796 1 xiooli(~/共享)<< awk -f /home/xiooli/.scripts/err.awk haha.txt 倒数第一列是标准偏差,倒数第二列是平均值。 0.6437 0.5912 0.5639 0.5996 0.0405577 0.7375 0.6796 0.8372 0.751433 0.0797185 0.7750 0.7403 0.8372 0.784167 0.0490961 0.8188 0.8177 0.8605 0.832333 0.0243992 1 1 1 1 0 0.8500 0.8895 0.8837 0.8744 0.0213291 0.8812 0.8453 0.8372 0.854567 0.023418 0.4187 0.4254 0.4593 0.434467 0.0217656 0.5407 0.4939 0.5173 0.0330926 0.6860 0.8163 0.75115 0.092136 0.7849 0.8571 0.821 0.0510531 0.6047 0.6653 0.635 0.0428507 0.9244 1.000 0.9720 0.965467 0.0382211 0.9012 0.8900 0.9398 0.910333 0.0261261 1 1 0.9210 0.973667 0.0456107 0.9942 0.9796 1 0.991267 0.0105116 |
呵呵,没有验算,不知道对不对,想来问题不大。处理后直接调用gnuplot去画图就好了,从此生活轻松多了,哈哈^^
下载网络上的一些资源时候经常会遇到要求你安装乱七八糟的流氓下载软件才能下载的情况。其实这些连接只是很简单的base64加密,用脚本可以轻松搞定,再将其关联到ff的话就可以直接获取原始连接,再调用普通下载软件去下载了,这个脚本就是干这个的^^(还有图形界面阿)。
依赖:base64, zenity, axel, xsel
用法:将脚本保存,并赋予可执行权限。
关联到firefox的方法:about:config里面新建一个Boolean,名字为 network.protocol-handler.external.thunder,值为true ,再新建一个String,名字为 network.protocol-handler.app.thunder,值为本脚本的保存路径。其他快车/qq旋风等同理(尾部换成.flashget和.qqdl)。也可以不关联到ff,从终端调用方法:
1 | mutidown 加密后的url |
ps:这个只是取得加密的链接,不要指望会真的有迅雷那样的速度。唉,真是流氓有速度,谁也挡不住阿。。
脚本:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | #!/bin/bash #********************************************* # Name: mutidown # Version: 090218 # License: GPLv3 # Author: xiooli <xiooli@yahoo.com.cn> #********************************************* Save_dir=~/Download #最后面请不要加“/”,不然保存文件的时候可能找不到路径。 Max_num=20 #在此设定axel的最大连接数 [ ! -d "$Save_dir" ] && mkdir -p "$Save_dir" #下载链接,给出一个下载进度条,并且当点击“取消”的时候将该axel废掉武功。 DOWNLOAD() { local axel_info axel_tty axel_pid axel -n "$Max_num" "$1" -o "$2/$3" |while read a;do echo "$a" |grep "^[\[D]" |sed 's/^\[ *//;s/%.*$//;s/^Download.*$/100/' done |zenity --progress --auto-close --text="下载 $True_url 至 $2" --width="350" 2>/dev/null & axel_info="`ps ax |grep "axel.*$1" |awk '{print $1"-"$2}'`" axel_tty="`echo $axel_info |sed 's/^.*-//'`" axel_pid="`echo $axel_info |sed 's/-.*$//'`" while :;do if ! [ "`ps ax |grep "$axel_tty.*zenity"`" ];then [ "`ps -A |grep "$axel_pid"`" ] && kill -9 "$axel_pid" break fi sleep 1 done & } #出来一个动作选择菜单,选择下一步动作。 UI() { local choice file_name save_dir choice="$(zenity --list --title "保存文件 -- `basename "$0"`" --text "默认保存目录为:$Save_dir \n解析得URL:$True_url" \ --column "选项" --column "动作" \ A 下载至默认目录 B 选择目录并下载 C 保存链接到剪贴板 2>/dev/null)" case "$choice" in 'A') file_name="$(zenity --entry --title="重命名文件 -- `basename "$0"`" --text="请输入一个文件名(取消则按链接默认命名)" 2>/dev/null)" DOWNLOAD "$True_url" "$Save_dir" "$file_name" ;; 'B') save_dir="$(zenity --file-selection --directory 2>/dev/null)" file_name="$(zenity --entry --title="重命名文件 -- `basename "$0"`" --text="请输入一个文件名(取消则按链接默认命名)" 2>/dev/null)" DOWNLOAD "$True_url" "$save_dir" "$file_name" ;; 'C') printf "$True_url" |xsel -i -b ;; esac } #从$1获取加密地址,并将其解码出来。 DECODE() { local str str="$1" if [ "`echo "$str" |grep -i "^thunder"`" ];then True_url="`echo -n "$str" |sed 's/^[Tt]hunder:\/\///' |base64 -d |sed 's/^AA//;s/ZZ$//'`" elif [ "`echo "$str" |grep -i "^flashget"`" ];then True_url="`echo -n "$str" |sed 's/^[Ff]lashget:\/\///' |base64 -d |sed 's/\[FLASHGET\]//g'`" elif [ "`echo "$str" |grep -i "^qqdl:"`" ];then True_url="`echo -n "$str" |sed 's/^qqdl:\/\///' |base64 -d`" else True_url="$str" fi [ ! -z "$True_url" ] && UI } DECODE "$1" |
RT
自动创建缩略图需要convert(安装imagemagick包即可)
看看效果图,还不错哦,会自动根据你的图标主题生成小图标(不过category的图标得自己准备就是了):
![]() |
| 发件人 xiooli |
这个是根据/usr/share/applications里面的desktop文件来创建的。如果你新安装了程序,再运行一下就可以了,不要的项目直接注释掉,下回更新的时候不会覆盖。
代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 | #!/bin/bash #Name: Fvwm menu auto creator (FMAC) #Author: xiooli <xioooli[at]yahoo.com.cn,http://joolix.com> #Licence: GPLv3 #Version: 09.01.20 Menufile=~/.fvwm/configs/menu_content Categories=(Network AudioVideo Graphics Office Games Utility Settings System Development Unknow) Categorieszh=(网络 影音 图像 办公 游戏 附件 设置 系统 开发 未知) Lang="$(locale|awk -F"." '/LANG=/{gsub("LANG=","",$1);print $1}')" Fvwmiconspath="`echo ~/.fvwm/icons`" [ -d "$Fvwmiconspath" ] || mkdir -p "$Fvwmiconspath" Iconspath=""`echo ~/.icons`" "/usr/share/icons"" #Iconthemedir="Gnome" #在此可以定义使用的图标主题(路径/名称均可,不填就从 ~/.gtkrc-2.0去找) Iconthemedir="${Iconthemedir:-$(awk -F"=" '/gtk-icon-theme-name=/{gsub("\"","",$2);print $2}' "`echo ~/.gtkrc-2.0`")}" [ -d "$Iconthemedir" ] || for i in $Iconspath;do [ -d "$i/$Iconthemedir" ] && Iconthemedir="$i/$Iconthemedir" && break done RESIZE () { convert -resize 24x24 "$1" "$2" } ADD_TO_MENU () { #$1 catnum; $2 iconpath; $3 name; $4 execmd local menutip cataicon [ -f $Menufile ] ||cat << EOF >$Menufile #此文件里面是菜单的具体内容,菜单的样式在./menu_style中定义。 DestroyMenu recreate MenuFvwmRoot AddToMenu MenuFvwmRoot "FVWM 菜单" Title Top #MenuCate EOF if [ "`grep -w "Menu${Categories[$1]}" "$Menufile"`" ];then menutip="+ \\\"%$2%$3\\\" Exec exec $4\n#Menu${Categories[$1]}" [ "`grep -w "$4" "$Menufile"`" ] || \ eval "sed -i \"s/^#Menu${Categories[$1]}/${menutip//\//\\/}/\" \"$Menufile\"" else menutip="+ \\\"%$Fvwmiconspath/categrories/${Categories[$1]}.png%${Categorieszh[$1]}\\\" Popup Menu${Categories[$1]}\n#MenuCate" eval "sed -i \"s/^#MenuCate/${menutip//\//\\/}/\" \"$Menufile\"" echo -e "\nDestroyMenu Menu${Categories[$1]}\nAddToMenu Menu${Categories[$1]}\n#Menu${Categories[$1]}" >> "$Menufile" menutip="+ \\\"%$2%$3\\\" Exec exec $4\n#Menu${Categories[$1]}" eval "sed -i \"s/^#Menu${Categories[$1]}/${menutip//\//\\/}/\" \"$Menufile\"" fi } GET_INFO () { # $1 gives the desktop file name local j name type execmd icon iconpath cattmp catnum name="`grep -i "^name\[$Lang\]" $1|sed "s/^.*=//"`" [ "$name" ] || name="`grep -i "^name=" $1|sed "s/^.*=//"`" execmd="`grep -i "^exec=" $1|sed "s/^.*=//;s/%.//g"`" cattmp="`grep -i "Categories=" $1|sed "s/^.*=//"`" for j in `seq 0 "$((${#Categories[@]}-1))"`;do [ "${cattmp//${Categories[$j]}/}" != "$cattmp" ] && catnum="$j" && break done catnum="${catnum:-$((${#Categories[@]}-1))}" icon="`grep -i "^icon=" $1|sed "s/^.*=//"`" if [ -f "$icon" ];then iconpath="$icon" [ ! -f "$Fvwmiconspath/$icon" -a "$iconpath" ] && RESIZE "$iconpath" "$Fvwmiconspath/"`basename "$icon"`"" else [ "${icon/%.png/}" = "$icon" ] && icon="${icon}.png" iconpath="`find "$Iconthemedir" -type f -name "$icon" -print|sort|tail -n1`" [ "$iconpath" ] || iconpath="`find "$Iconthemedir" -type f -name "*$icon" -print|sort|tail -n1`" [ ! -f "$Fvwmiconspath/$icon" -a "$iconpath" ] && RESIZE "$iconpath" "$Fvwmiconspath/$icon" iconpath="${iconpath:-"$Fvwmiconspath/noicon.png"}" fi ADD_TO_MENU "$catnum" "$Fvwmiconspath/`basename "$icon"`" "$name" "$execmd" } for k in /usr/share/applications/*.desktop;do GET_INFO "$k" done |
scort很不错,功能强劲,但是由于其是cli软件,于是被很多人无视了,其实只有简单的几句脚本,然后做成一个启动器放面板上面就会很方便的。
下面是我平常使用的scrot脚本,作了个启动器在panel上面,使用时只需点击一下启动器,然后用鼠标点击窗口就会截图该窗口,点击桌面就全屏截图,画矩形就截矩形部分,截出来的文件保存在自己设置的目录里面,保存的文件名是以scrot-xx.png的形式,xx是数字,当保存目录下有其他的 scrot-xx.png的时候xx会自动加一。
1 2 3 4 5 6 7 8 9 10 11 12 | #!/bin/bash #Name scrot.sh #Author xiooli <xioooli[at]yahoo.com.cn,http://joolix.com> #Licence GPL savedir=~/桌面/ prefix="scrot-" num="`ls "$savedir"|grep "$prefix"|tail -n1|sed "s/"$prefix"//g;s/\..*$//g;s/^0//"`" num=${num:--1} ((num++)) num="`printf "%.2d" ${num}`" eval "scrot "${prefix}${num}.png" -bs -e 'mv \$f "$savedir"'" |
来个示范截图:
![]() |
| 发件人 xiooli |
![]() |
| 发件人 xiooli |
RT
看见有人怀念win下的ctrl+z撤销操作(主要是撤销删除文件),于是用了几分钟写了这个脚本,虽然不能撤销重命名/移动文件等,但是聊胜于无嘛,同时也进一步证明了shell的灵活与强大。
脚本内容:
xiooli(~/桌面)=☪ cat recover.sh #!/bin/bash trashpath=~/.local/share/Trash infofile="`ls -t "$trashpath/info"|head -n1`" filename="${infofile/%.trashinfo}" filepath="`grep "Path=" "$trashpath/info/$infofile"|sed "s/Path=//"|perl -p -e 's/%(..)/pack("c", hex($1))/eg'`" eval "mv \"$trashpath/files/$filename\" \"$filepath\"" rm "$trashpath/info/$infofile"
,保存其为recover.sh,赋予可执行权限。
绑定快捷键:
在gnome中(未开特效):
应用程序》系统》配置编辑器》找到/app/metacity/keybinding_commands选一个键,比如command_1将其键值修改为上述脚本的路径。
然后找到/app/metacity/global_keybinding选中一个键run_command_1(其最后数字一定要同上面的command_1后面的数字相同),修改其键值为你想要的快捷键(如<Control>z)即可。
在compiz中(开了特效):
打开compiz的控制中心》general options》commands》commands》command line 0 填上刚刚那个脚本的路径,然后》key bindings》run command 0 设置快捷键(ctrl+z)。
搞定上面一系列东东后,如果你将一个文件删除到回收站里面,如果你反悔,想将其还原回来,就不必去回收站恢复了,直接按快捷键ctrl+z即可。呵呵方便很多了吧^^
本来计划做一个lzm模块制作环境,但是最近很忙(要写论文阿:(),就先把比较原始的制作方法写出来咯。
因为joolix是使用修改过的slax的那套脚本制作出的,所以制作lzm模块和slax制作lzm模块大同小异,在JOOLIX/tools目录里面你可以看到如下一些脚本:
deb2dir dir2lzm lzm2dir tgz2lzm deb2lzm
这些脚本就是今天的主角,分别介绍下它们:
deb2dir: 将deb包(们)转换成目录,你可以到目录里面删除不要的东西或者改写一些配置。
用法:
deb2dir source_filename.deb(s) #参数支持正则表达式,转换好的目录在/tmp/debs2dir_xxxx
dir2lzm: 将目录转换成lzm模块。
用法:
dir2lzm dir xxx.lzmlzm2dir: 将lzm模块还原成目录,可用于将不满意的lzm模块重新配置/加工。
用法:
lzm2dir xxx.lzm dir #注意dir一定要是已经存在的
tgz2lzm:这个主要是将slackware的包文件转换成lzm,joolix里面几乎不会用到。
用法:
tgz2lzm xxx.tgz xxx.lzm
deb2lzm:将deb包转换成lzm模块,只能转换单个的deb包,要想转换几个deb包(常有一个软件依赖很多包的)得先用deb2dir将这些包解出成目录,然后再用dir2lzm脚本将目录转换成lzm模块。
用法:
deb2lzm xxx.deb xxx.lzm
为了使用方便,你可以将deb2dir dir2lzm lzm2dir tgz2lzm deb2lzm及liblinuxlive复制到/usr/bin等地方,然后直接作为命令使用他们。
这样制作lzm模块不太方便,不过暂时就先这么着吧,不好意思了。。
张罗了好久的wp博客终于开张了,呵呵,以后就在此开山立派,聊天灌水了。
此系本博的处女文,甚有纪念意义,决定截图留念,也顺便考察下google picasa的外联行不行,霍霍,上图:
![]() |
| 发件人 wp-images |
再来一张:
![]() |
| 发件人 wp-images |
测试代码高亮:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | #!/bin/bash #name: win2k_boot #author: xiooli { xioooli[at]yahoo.com.cn } prg() { for ((i=0;i<=50;i++));do for ((j=0;j<=$i;j+=1));do printf ">" done for ((k=0;k<=50-$j;k+=1));do printf "=" done printf "\r" sleep 0.1 done echo "" } echo "Microsoft Windows 2000 [Version 5.00.2195] 版权所有 1985-2000 Microsoft Corp. " put_one_by_one() { for w in `echo $1|sed 's/./& /g'`;do echo -n $w sleep $2 done echo -e "\n" } main() { echo -n "c:\>; " sleep 1 put_one_by_one $1 0.2 sleep 2 case $1 in "x!!不开机就砸了你!!") sleep 2 echo -e " Loading Windows 2000...\n" sleep 1 prg exit ;; *) put_one_by_one "'$1'不是内部命令或外部命令,也不是可运行的程序或批处理文件。" 0.1 ;; esac } for i in "开机" "快开机" "你xx快开机" "x!!不开机就砸了你!!";do main $i done |
最近评论