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 "安装字体结束,谢谢使用。请重新登录,查看字体效果。" |
Script command, Script
在kde4.2下用gnome-osd很麻烦,而conky在kde4的非桌面中心环境下不能开启,搞得我自己的lrcdis脚本只有cli一种模式可用,很郁闷。不过还好找到一个plasma插件STDIN,这个玩意可以定时执行一个命令/脚本,然后将其结果输出到插件上,呵呵,那不就是我要的吗?于是在lrcdis中添加了一种输出到管道文件(fifo文件)的模式,只要将STDIN的命令设置为每秒去读一下那个管道不就可以在上面显示歌词了吗,呵呵,我真是天才阿,嘿嘿。
下载地址:
1,STDIN:http://www.kde-look.org/content/show.php/STDIN+Plasmoid?content=92309
2,lrcdis:http://code.google.com/p/lrcdis/source/browse/#svn/trunk
或用svn来checkout:
svn checkout http://lrcdis.googlecode.com/svn/trunk/ lrcdis-read-only
ps:效果不错哦,下面来一段演示视频:
Lrcdis command, Linux & Friends, vedio, 添加新标签
最近做实验整出一堆的实验数据,手工处理的话就太变态了,而用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去画图就好了,从此生活轻松多了,哈哈^^
Script command, Script
下载网络上的一些资源时候经常会遇到要求你安装乱七八糟的流氓下载软件才能下载的情况。其实这些连接只是很简单的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,从终端调用方法:
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" |
Script command, download, Script
RT
自动创建缩略图需要convert(安装imagemagick包即可)
看看效果图,还不错哦,会自动根据你的图标主题生成小图标(不过category的图标得自己准备就是了):
这个是根据/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 |
Script command, Linux & Friends, Script
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"'" |
来个示范截图:
Script command, screenshot, Script, 添加新标签
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即可。呵呵方便很多了吧^^
Script command, Script
制作好的CHANGES文件可以去http://joolix.com/2009/02/changes-files-for-joolix下载。
在很多情况下我们都希望U盘系统能够保存使用时产生的数据(废话,不能保存数据那除了用来尝尝鲜以外还能干什么?)
其实,让Joolix自动保存数据是非常简单的一件事,应为你只需要在JOOLIX目录下创建一个名为CHANGES的块文件(因为U盘是fat32格式的,所以貌似大小写并不重要,不过由于在boot/joolix.cfg文件里面的启动参数里CHANGES是用的大写,那大家还是记得用大写命名吧),然后将其格式化为ext3等linux文件系统(因为win的文件系统不能保存linux文件的权限等信息)就可以了。具体怎么做呢,请看下面步骤:
一,创建一个块文件
假设你想建立一个10m大小的块文件。
1
2
| #创建块文件
head -c 10m /dev/zero>CHANGES |
二,格式化块文件
1
2
3
4
5
6
7
8
| #格式化成ext3格式
mkfs.ext3 CHANGES
#试试能不能用(此步不是必须步骤)
mkdir changes
sudo mount -t ext3 CHANGES changes -o loop
#如果一切正常,你打开changes目录应该能看见一个lost+found的目录
#umount
sudo umount changes |
三,扔到JOOLIX目录
把CHANGES文件复制到你U盘的JOOLIX目录下面即可,当你使用过joolix后,下次再启动joolix,你会惊奇的发现以前的使用更改都还在哦:)
四,没了:)
有同学问了,在windows下怎么做呢?额,在windows下就麻烦了,因为我也不知道欸,要不你先启动到joolix下面?呵呵。
Joolix command, Joolix, live OS, save data
最近评论