我用到的脚本集合。

sh/bash/dash/ksh/zsh等Shell脚本
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

我用到的脚本集合。

#1

帖子 eexpress » 2007-01-10 13:50

代码: 全选

13:42:27-exp~/应用/脚本$●  cat import-截图
#!/bin/bash 
#import -window root ${FNAME}.${EXT} 

#apt-get install imagemagick
# parameter can be : w.id w.class
NOW=`date '+%Y-%m-%d-%H-%M-%S'` 
if [ -z $2 ]; then
FNAME=screenshot-${NOW}
else
FNAME="[$2]-${NOW}"
fi
EXT=png 

SCRDIR=${HOME}/下载/ 
if [ ! -d "${SCRDIR}" ]; then 
   mkdir -p "${SCRDIR}" 
fi 

# 延时4秒 
# sleep 4 

#import -window root "$HOME/Desktop/${FNAME}.${EXT}" 
if [ -z $1 ]; then
cmd="import ${SCRDIR}${FNAME}.${EXT}"
else
cmd="import -window $1 ${SCRDIR}${FNAME}.${EXT}"
fi
#echo $cmd>${SCRDIR}/w.info
eval $cmd

代码: 全选

13:42:40-exp~/应用/脚本$●  cat man-zh_CN转换到utf8.bash
#!/bin/bash 

cd /usr/share/man/zh_CN/
for k in *
do
cd $k
for i in *.gz 
do 
#   j=`echo $i|awk -F'.gz' '{print $1}'`  # 不知道有什么好方法 
   j=`echo ${i%\.gz}` 
   gunzip $i 
   iconv -f gb18030 -t utf8 $j >tmp 
   mv tmp $j 
   gzip $j 
done
cd ..
done

代码: 全选

13:43:19-exp~/应用/脚本$●  cat jpg改目录名.bash
#!/bin/bash

#整理当前目录下的jpg图片名字,按照目录名字排序。
dir=`pwd`
#[ $1 ] && dir=`dirname $1` && cd $dir;
dir=${dir##\/*\/}
#:>~/tmp
#echo $dir --- >>~/tmp
#pwd>>~/tmp
#exit 0

num=0
for i in *.jpg
do
#符合规则的文件不需要修改
        if [ `expr match "$i" "${dir}-[0-9]*.jpg$"` != 0 ]; then
                tmp=${i#"$dir"-}
                tmp=${tmp%".jpg"}
#               echo ${tmp} ----------------------
                if [ "$tmp" -le "$num" ]; then
                echo $i 符合规则,不修改。当前排序已到 $num。
                continue
                fi
        fi
        result="$dir"-$num.jpg
#防止覆盖已有文件
        while [ -e "$result" ]
        do
                ((num++))
                result="$dir"-$num.jpg
        done
#       i=`echo $i | sed 's/\ /\\\ /g'`
#       result=`echo $result | sed 's/\ /\\\ /g'`
        # | sed 's/\(/\\\(/g' | sed 's/\)/\\\)/g'
        echo $i '->' $result
        mv "$i" "$result"
        ((num++))
done

代码: 全选

13:43:26-exp~/应用/脚本$●  cat 移动所选文件到目录.bash
#!/bin/bash

#移动所选文件到:某个目录(支持列表)。
#echo $* > ~/tmp
#echo `pwd` >> ~/tmp
#exit
#------------ 产生自动目录 ----------
#rm ~/tmp
dir=`dirname $1`
dir=`pwd`
current_dir=${dir##\/*\/};num=0
auto_dir=./${current_dir}-自动-${num}
#${dir}
while [ -d ${auto_dir} ]
do
((num ++))
if ((num>100)); then exit; fi
auto_dir=./${current_dir}-自动-${num}
done
#------------ 选择窗口 -------------
item=`zenity --width=600 --height=300 --title='移动所选文件到:' --list --text='将移动到以下目录,请选择' --column='目录列表' --column='说明' ${auto_dir} 自动排序生成的目录 $HOME 家目录 ${HOME}/媒体 媒体目录 ${HOME}/下载 下载目录 ${HOME}/文档 文档目录 other... 新建或者打开其他目录`

#------------ 选择其他目录 -------------
if [ ${item} == "other..." ]; then
item=`zenity --file-selection --directory --title=选择其他目录`
fi

[ -z ${item} ] && exit 1;
if [ ! -d ${item} ]; then
eval mkdir "'"${item}"'"
fi

while [ $# -gt 0 ]; do
eval mv "'"$1"'" "'"${item}\/"'"

shift
done
exit 0

代码: 全选

13:44:02-exp~/应用/脚本$●  cat z_批量改名v3 
#!/bin/bash

dir=${1%\/*}
cd $dir

if(("$#"<1));then
        zenity --info --title="用法介绍" --text=" \
在文件管理器中,选择需要修改的文件,使用右键菜单中“脚本” \
-“批量改名”。在提示窗口输入如“Zh_%.jpg”格式的信息。\
参数中用%号表示递增的序号。 \
智能处理了原文件名符合修改后条件的情况,直接不处理。 \
显示为“不需要修改”。 \
最关键的一个地方要感谢x.f的帮助才完成。 \
已经修改成可以处理空格文件。 \
2005年10月10日  eexpress 第3版\
"
   exit 1
fi
tmp=""
until [ $tmp != "" ]; do
        new_format=`zenity --title="输入新格式" --entry --text="将修改"'$#'"个文件,请输入新文件名格式。在提示窗口输入如“Zh__%.jpg”格式的信息。参数中用%号表示递增的序号。"`
        if [ "$new_format" = "" ]; then exit 1; fi #no input or cancel pressed
        tmp=`echo $new_format|grep "%"`
        if [ "$tmp" = "" ]; then
                zenity --info --title="输入错误" --text="格式中需要一个%号表示递增的文件序号。"
        fi
done

:>tmpfile
number=0
already_exist=""
#while [ "$#" -lt 0 ]   #至少还有1个参数
while (("$#">0))        #至少还有1个参数
do
        if [ ! -f "$1" ]; then
                echo "指定文件 $1 不是文件或者不存在。" >> tmpfile
                shift
                continue
        fi
        echo -n "$1 -> " >> tmpfile

        tmp=`echo $already_exist|grep "$1"`
        if [ "$tmp" != "" ]; then
                echo "不需要修改" >> tmpfile
                shift
                continue
        fi

        J=`echo $new_format | sed s/%/$number/`
        while [ -e "$J" ]
        do
                already_exist="$already_exist $J"
                ((number++))
                J=`echo $new_format | sed s/%/$number/`
        done
        echo $J >> tmpfile
        mv "${1##\/*\/}" "$J"
        ((number++))
        shift
done
zenity --info --title="修改完成" --text="`cat tmpfile`"
rm tmpfile
exit 0
#end

代码: 全选

13:44:44-exp~/应用/脚本$●  cat mv_jpg_to_dir.bash
#!/bin/bash

[ -z $1 ] && exit 1;
[ ! -d $1 ] && mkdir "$1"
mv *.jpg *.jpeg "$1"

代码: 全选

13:44:51-exp~/应用/脚本$●  cat switch-开关触摸板.bash
#!/bin/bash


ts=`synclient -l|grep TouchpadOff`
ts=${ts#*= }
if(("$ts" == 0))
then
synclient TouchpadOff=1
else
synclient TouchpadOff=0
fi

代码: 全选

13:45:11-exp~/应用/脚本$●  cat swap-交换鼠标按键.bash
#!/bin/bash

but=`xmodmap -pp|head -n 1|cut -d ' ' -f 3`
((but++))
ret=""
ret=`xmodmap -pp|grep "3.*1"`
if [ -z "$ret" ]
then
        prefix="xmodmap -e \"pointer = 3 2 1 4 5 6 7 8 9"
else
        prefix="xmodmap -e \"pointer = 1 2 3 4 5 6 7 8 9"
fi
cmd=${prefix%${but}*}'"'
eval $cmd

代码: 全选

13:45:33-exp~/应用/脚本$●  cat shadow-pic.bash
#!/bin/bash

#产生阴影图片效果。
#for i in S*.png; do ./shadow-pic.bash $i; done;

# 取得图片宽度
w=`identify """$*"""`; w=${w#*PNG\ }; w=${w%%\ ?*};
#convert """$*""" -shadow 80x5+4+4 -resize 48 s-"""$*"""
# 添加阴影
convert """$*""" -shadow 80x5+5%+5% s-"""$*"""
#convert """$*""" -channel RGBA -gaussian 0x6 s-"""$*"""
# 叠加原图
composite -compose over """$*""" s-"""$*""" s-"""$*"""
# 恢复图片尺寸
convert s-"""$*""" -resize $w s-"""$*"""

代码: 全选

13:45:38-exp~/应用/脚本$●  cat gnome-screenshot-截图-延时5秒
#!/bin/bash 

gnome-screenshot --delay=5

代码: 全选

13:46:14-exp~/应用/脚本$●  cat iconv-转换gb2312到utf8.bash
#!/bin/sh 

for i in * 
do 
iconv -f gb2312 -t utf8 $i >tmp 
mv tmp $i 
done 

代码: 全选

13:46:27-exp~/应用/脚本$●  cat tar.gz-选定文件按照目录名打包v4
#!/bin/bash

dir=${1%\/*}
cd $dir 
NOW=`date '+%Y-%m-%d %H-%M-%S'` 
#取得压缩包的文件名。只有一个文件时,直接使用文件名。多个文件,取目录名
[ $# -eq 1 ] && dir=$1;

#取最后一段作文件名前缀
dir=${dir##\/*\/}
tar_gz_name="'[${dir}](${NOW}).tar.gz'"
#处理空格和特殊符号。
cmd="tar -zcPvf $tar_gz_name"

for i in $*
do
        cmd=${cmd}" '${i}'"
done

#执行
#rm ~/tmp; echo $cmd>>~/tmp
eval $cmd

代码: 全选

13:47:00-exp~/应用/脚本$●  cat resize-pic.bash
#!/bin/bash

# for i in *.png; do ./resize-pic.bash $i; done;

# default size
def=24
# parameter 2 is redefine size
if [ -z $2 ]; then
        ss=${def}
else
        ss=$2
fi
# 产生固定尺寸(缺省24点宽度)的图片。
convert """$1""" -scale ${ss} """r-${ss}-$1"""

代码: 全选

13:47:22-exp~/应用/脚本$●  cat cmd-常用命令点击.bash
#!/bin/bash

# 需要把执行和配置文件都 ln -s 到同一个路径。
path=`readlink "$0"`
path=`dirname "$path"`

conf="$path/commands.ini"
[ ! -f $conf ] && echo conf-error && exit 0;
cmd="zenity --width=400 --height=400 --title='常用命令' --list --column='点击执行'"
cmd=${cmd}`awk '/^$/ { next } { printf(" \"%s\"", $0) }' $conf`
#for i in `sed -e 's/$/"/' -e 's/^/"/' $conf`
#do
#cmd="${cmd} $i"
#done

item=`eval $cmd`
eval ${item}
● 鸣学
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

alias集合

#2

帖子 eexpress » 2007-01-10 13:52

代码: 全选

#-----中英文环境变量设置----- 
alias cn='export LC_ALL=zh_CN.UTF-8'
alias en='export LC_ALL=C'

#-----中文帮助手册直接操作----- 
alias cman='man -M /usr/share/man/zh_CN'

#-----无线网卡开关----- 
alias 0u='sudo ifup eth0'
alias 0d='sudo ifdown eth0'
alias 1u='sudo ifup eth1'
alias 1d='sudo ifdown eth1'
alias ip3322='w3m -no-cookie -dump "http://eexpress:xxxxx@members.3322.org/dyndns/update?system=dyndns&hostname=eexpress.3322.org"'
alias getip='w3m -no-cookie -dump www.ip138.com|grep -o "[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}"'

alias p='ping www.163.com -c 5'
alias adsl='pon dsl-provider' 
alias down3322="sudo /etc/init.d/apache stop"

#-----文件列表和查看----- 
alias ll='ls -lFh' 
alias la='ls -AF' 
alias l='ls -CF' 

alias dog='grep -v -E "(^$|^#)"'        # 显示有效内容,剔出空行和#号注释行
# 相同操作 grep -v -e ^# -e ^$ acpi-support
# grep '^[^#]' options

alias kd='find -type d -empty -exec rmdir {} \;'        # 删除空目录
alias rm_empty_dir='find -type d -empty -exec rmdir {} \;'

#-----编辑----- 
alias sv='sudo vi'
alias se='sudo mousepad'
alias e='mousepad'
alias h='Hypersrc.pl '

#-----软件包管理命令----- 
alias ai='sudo aptitude install' 
alias ar='sudo aptitude remove' 
alias au='sudo aptitude update' 
alias ag='sudo aptitude upgrade' 
alias as='aptitude search' 
alias aw='aptitude show' 

#-----系统进程操作----- 
alias pg='pgrep -l' 
alias sk='sudo killall' 

#-----tar常用命令,后跟压缩包名,和带全路径的操作的文件名----- 
alias t.d='tar --delete -f '
alias t.x='tar xPvf '
alias t.l='tar tf '
alias t.u='tar uPvf '

#-----命令行提示符设置----- 
PS1='\t-\u\w\$●  '
上次由 eexpress 在 2007-01-15 15:58,总共编辑 2 次。
● 鸣学
头像
zhuqin_83
帖子: 10606
注册时间: 2006-05-13 4:02
送出感谢: 0
接收感谢: 7 次
联系:

#3

帖子 zhuqin_83 » 2007-01-10 14:14

好东西要收藏。 :D
HP Pavilion DV6-2064CA: AMD Turion II Ultra Dual-Core Mobile M640, HD4650, 2GBx2 DDR2-800, Seagate 500GB 7200RPM SATA, BD-ROM
DELL UltraSharp 2209WA
Arch64, Testing repo
头像
yumumao
帖子: 171
注册时间: 2006-09-25 3:58
送出感谢: 0
接收感谢: 0

#4

帖子 yumumao » 2007-01-10 14:28

好贴子,我也要收藏。
头像
xiehuoli
帖子: 5941
注册时间: 2006-06-10 8:43
来自: 中国 CS
送出感谢: 0
接收感谢: 2 次

#5

帖子 xiehuoli » 2007-01-10 15:07

自己给自己加精!
哪里有这样的人阿
都不谦虚 :em25 :em04
年轻没有失败! ! ! ! ! !
噢!有怪兽,有怪兽!
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

#6

帖子 eexpress » 2007-01-10 15:35

别乱说。反正不是我。我从来不作这事的。
● 鸣学
头像
xiehuoli
帖子: 5941
注册时间: 2006-06-10 8:43
来自: 中国 CS
送出感谢: 0
接收感谢: 2 次

#7

帖子 xiehuoli » 2007-01-10 15:59

eexpress 写了:别乱说。反正不是我。我从来不作这事的。
重大嫌疑 :em05
年轻没有失败! ! ! ! ! !
噢!有怪兽,有怪兽!
头像
zhuqin_83
帖子: 10606
注册时间: 2006-05-13 4:02
送出感谢: 0
接收感谢: 7 次
联系:

#8

帖子 zhuqin_83 » 2007-01-10 16:02

是我加的啦,大家不要冤枉ee。
HP Pavilion DV6-2064CA: AMD Turion II Ultra Dual-Core Mobile M640, HD4650, 2GBx2 DDR2-800, Seagate 500GB 7200RPM SATA, BD-ROM
DELL UltraSharp 2209WA
Arch64, Testing repo
头像
xiehuoli
帖子: 5941
注册时间: 2006-06-10 8:43
来自: 中国 CS
送出感谢: 0
接收感谢: 2 次

#9

帖子 xiehuoli » 2007-01-10 17:04

zhuqin_83 写了:是我加的啦,大家不要冤枉ee。
让他尝下这样的感觉也不错阿
难得有这样的经历呢
我一开始就知道是你加的了
:em06
年轻没有失败! ! ! ! ! !
噢!有怪兽,有怪兽!
头像
zhuqin_83
帖子: 10606
注册时间: 2006-05-13 4:02
送出感谢: 0
接收感谢: 7 次
联系:

#10

帖子 zhuqin_83 » 2007-01-10 22:41

mm最近和ee卯上了是吧? :D
要是我也掺和那么一下下,恐怕ee死得更惨。只要说,是ee拜托我加的就ok了,喔呵呵呵~
HP Pavilion DV6-2064CA: AMD Turion II Ultra Dual-Core Mobile M640, HD4650, 2GBx2 DDR2-800, Seagate 500GB 7200RPM SATA, BD-ROM
DELL UltraSharp 2209WA
Arch64, Testing repo
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

#11

帖子 eexpress » 2007-01-10 23:18

不就是说了个“切手指”的事情吗。别扩大范围哦。引起阶级矛盾。
● 鸣学
头像
xiehuoli
帖子: 5941
注册时间: 2006-06-10 8:43
来自: 中国 CS
送出感谢: 0
接收感谢: 2 次

#12

帖子 xiehuoli » 2007-01-11 10:43

zhuqin_83 写了:mm最近和ee卯上了是吧? :D
要是我也掺和那么一下下,恐怕ee死得更惨。只要说,是ee拜托我加的就ok了,喔呵呵呵~
哦哦哦
原来是这样哦
嘿嘿
EE不怎么老实哦
年轻没有失败! ! ! ! ! !
噢!有怪兽,有怪兽!
头像
zhan
帖子: 1880
注册时间: 2005-08-15 0:04
来自: 南7技校
送出感谢: 0
接收感谢: 0
联系:

#13

帖子 zhan » 2007-01-11 10:48

ee, 你弄这么一堆 alias, 下回有搞个命令出来要命找不到。
还记得你当年满世界找哪个 adsl 的情形.
飞得高,飞得低,学习再学习,多少大秘密!
http://zhan.blog.ubuntu.org.cn
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

#14

帖子 eexpress » 2007-01-11 17:18

nnd,你还记得那个事情。
● 鸣学
头像
xiehuoli
帖子: 5941
注册时间: 2006-06-10 8:43
来自: 中国 CS
送出感谢: 0
接收感谢: 2 次

#15

帖子 xiehuoli » 2007-01-11 17:31

eexpress 写了:nnd,你还记得那个事情。
当年肯定很糗 :em04 :em05
年轻没有失败! ! ! ! ! !
噢!有怪兽,有怪兽!
回复

回到 “Shell脚本”