|
|
第 16 帖 | |
|
|
标题: 一段shell脚本[转自:UNIX中文社区,特此感谢] jhpm()
{ echo " [21;08H 若屏幕正常而激活它, 将中断该屏幕所有进程 输入 y 继续 [ ] " echo " [21;68H\c" read jx if [ $jx ] && [ $jx = "y" ] then echo " [21;06H┃ 请输屏幕号(按Alt+F1进入第一屏,屏幕号为01,以此类推)--> [ ] ┃" echo " [21;68H\c" read PMH while [ $PMH ] do PID=`ps -t tty$PMH | awk 'BEGIN {ORS=" "} NR>1 {print $1}'` kill -9 $PID;sleep 2 echo " [21;06H┃ 该屏幕已被激活 ! \07\c ┃" sleep 2 return done else return 0 fi } |
|
|
|
|
|
|
|
第 17 帖 | |
|
|
标题: 如何停止终端多个进程[转自:Linuxaid.com特此感谢] echo "系统当前用户"
echo "---------------" who | awk '{print $2}' echo "---------------" echo "输入要杀死终端的终端号:" read $TTY kill -9 ${K}=`ps -t $TTY | grep [0-9] | awk '{print $1}'` 此帖于 03-04-26 22:39 被 KornLee 编辑. |
|
|
|
|
|
|
|
第 18 帖 | |
|
|
标题: 如何查找日期为某一天的文件[转自:Linuxaid.com特此感谢] #!/bin/sh
# The right of usage, distribution and modification is here by granted by the author. # The author deny any responsibilities and liabilities related to the code. # OK=0 A=`find $1 -print` if expr $3 == 1 >/dev/null ; then M=Jan ; OK=1 ; fi if expr $3 == 2 >/dev/null ; then M=Feb ; OK=1 ; fi if expr $3 == 3 >/dev/null ; then M=Mar ; OK=1 ; fi if expr $3 == 4 >/dev/null ; then M=Apr ; OK=1 ; fi if expr $3 == 5 >/dev/null ; then M=May ; OK=1 ; fi if expr $3 == 6 >/dev/null ; then M=Jun ; OK=1 ; fi if expr $3 == 7 >/dev/null ; then M=Jul ; OK=1 ; fi if expr $3 == 8 >/dev/null ; then M=Aug ; OK=1 ; fi if expr $3 == 9 >/dev/null ; then M=Sep ; OK=1 ; fi if expr $3 == 10 >/dev/null ; then M=Oct ; OK=1 ; fi if expr $3 == 11 >/dev/null ; then M=Nov ; OK=1 ; fi if expr $3 == 12 >/dev/null ; then M=Dec ; OK=1 ; fi if expr $3 == 1 >/dev/null ; then M=Jan ; OK=1 ; fi if expr $OK == 1 > /dev/null ; then ls -l --full-time $A 2>/dev/null | grep "$M $4" | grep $2 ; else echo Usage: $0 path Year Month Day; echo Example: $0 ~ 1998 6 30; fi 此帖于 03-04-26 22:45 被 KornLee 编辑. |
|
|
|
|
|
|
|
第 19 帖 | |
|
|
标题: 如何列出目录树 [转自:linuxaid 特此感谢] 下面的短小的shell程序可以列出目录树, 充分利用了sed强大的模式匹配能力.
脚本如下: #!/bin/sh # dtree: Usage: dtree [any directory] dir=${1:-.} (cd $dir; pwd) find $dir -type d -print | sort -f | sed -e "s,^$1,," -e "/^$/d" -e "s,[^/]*/([^/]*)$,`----1," -e "s,[^/]*/,| ,g" 注:此脚本有点小问题,希望大家还是自己实践一下吧~ ![]() 此帖于 03-04-26 23:09 被 KornLee 编辑. |
|
|
|
|
|
|
|
第 20 帖 | |
|
|
标题: 列出目录树的脚本 特别感谢作者:LYOO兄
代码:
|
|
|
|
|
|
|
|
第 21 帖 | |
|
|
标题: 自动挂载WINDOWS下的分区的脚本 特别感谢作者:ywchen2000兄
Linux开机自动挂载WINDOWS下的分区 笔者有两快硬盘,其中第一块硬盘装了WindowsMe,第二快装了Win2000和red hat linux7.2,在WINDOWS环境中,笔者划分了四个分区,每次在LINUX环境中要想看这四个区的内 容都要输入一大堆的命令,非常麻烦.近来学习了SHELL编程,想到了一个解决方法.现在写出 来与大家分享. 首先,打开一个虚拟终端,输入vi mymount,然后按insert键,输入以下代码: #!/bin/bash case $1 in m) mount -o iocharset=cp936 -t vfat /dev/hda5 /mnt/winme mount -o iocharset=cp936 -t vfat /dev/hda6 /mnt/temp mount -o iocharset=cp936 -t vfat /dev/hdc1 /mnt/win2000 mount -o iocharset=cp936 -t vfat /dev/hdc2 /mnt/share ;; u) umount -o iocharset=cp936 -t vfat /dev/hda5 /mnt/winme umount -o iocharset=cp936 -t vfat /dev/hda6 /mnt/temp umount -o iocharset=cp936 -t vfat /dev/hdc1 /mnt/win2000 umount -o iocharset=cp936 -t vfat /dev/hdc2 /mnt/share ;; esac 按Esc输入:wq回车就可以了. 现在让我来解释一下这些代码.第一行#!/bin/bash指定以bash shell执行此文 件.case $1 in 为取的命令行参数.若为m则开始挂载,若为u则卸载.其中-o iocharset=cp936能够显示中文名.-t vfat 为指定文件系统类型为WINDOWS下的VFAT文件系 统.winme temp win2000和share为目录/mnt下的子目录. 好了,该程序已经写好了.但是它还没有执行权利.我们只要输入下面这个命令就可以了. chmod u+x mymount 呵呵,到这步你只要输入./mymount m,就可以挂载了.不过笔者比较懒,觉得这样做比较麻 烦.于是就请教了一些高手,终于解决了这个问题呀.呵呵.在/etc/rc.d/rc.local 文件中输 入 sh ./root/mymount m就可以了. 重新启动你的电脑,进入LINUX看看是否自动挂载.呵呵.笔者以后就非常轻松,不需要输入 那么多的命令了.爽呀. |
|
|
|
|
|
|
|
第 22 帖 | |
|
|
作者 plan9 [原创]
输出目录树: 一个输效果基本和tree命令的输出完全一样(除了目录未的工作不同),文件带色彩输出,文件、目录数统计,贴上来给大家做个参考: tree.sh ------------------------------------------------------------ 代码:
代码:
__________________
Robert is on the way... 此帖于 03-04-30 13:19 被 plan9 编辑. |
|
|
|
|
|
|
|
第 23 帖 | |
|
|
标题: BASH调试器 感谢作者:LYOO兄[原创]
代码:
|
|
|
|
|
|
|
|
第 24 帖 | |
|
|
标题: 一个查看分区信息的脚本 来自:http://www.redhat.com The msinfo.sh script This shell script analyses the boot sector of the given partition and displays some information along with the "Total Special Sectors" in a message box. It assumes that the filesystem on the given partition is a FAT16. If not, it will print an error message and exit. Invoke it as # msinfo <partition name> To run this script, you will need the "dialog" program that displays dialog boxes. You can get it from here. 代码:
![]() |
|
|
|
|
|
|
|
第 25 帖 | |
|
|
标题: 如何编写函数 来自http://academic.strose.edu/academic/...22/linux10.htm
Functions 你可以在bash shell的环境下编写函数,有两种定义函数的格式: 代码:
代码:
代码:
Enter two numbers 3 4 power is: 81 函数同样也可以返回值,使用return语句,在主程序(块)中,在调用函数之后保存返回状态$?的值. 代码:
代码:
代码:
easy a is 30 easy b is 30 global a is 10 global b is 30 如果要在脚本中多次使用函数,可以把它放在一个函数目录中,像一个普通文件一样,使用的时候把它放在脚本开始的地方: . functionfile $ more power 代码:
代码:
2 5 Answer is: 32 注:翻译的水平有限,望多包涵;) 此帖于 03-05-16 20:34 被 KornLee 编辑. |
|
|
|
|
|
|
|
第 26 帖 | |
|
|
标题: 一个备份文件的脚本示例 来自:http://www.europe.redhat.com/
代码:
|
|
|
|
|
|
|
|
第 27 帖 | |
|
|
标题: 删除文件与恢复文件 作者 pupilzeng
这一共有三个脚本,他们是一套的 1)del:删除文件,其实是把它移动到/trash/$user/下,不同的用户有不同的存放目录,同时用该目录下的.record文件记录文件原来的路径,删除时间,以备恢复只用。 2)recover:恢复文件,通过.record文件找到足够的信息,从而把它恢复 3)erase:这个是彻底的删除文件,从/trash/$user/目录下,相当于windows下的清空回收站。 为了安全,这个脚本是要在/trash/$user/目录下运行。 以下是这三个脚本 del: 代码:
代码:
代码:
此帖于 03-05-21 02:28 被 KornLee 编辑. |
|
|
|
|
|
|
|
第 28 帖 | |
|
|
标题: 用shell脚本编写的进度条 转自:www.chinaunix.net
drawper () { _per=`expr $1 \* 100 / $2` case `expr $_per / 4 % 4` in 0) _char="|" ;; 1) _char="/" ;; 2) _char="-" ;; 3) _char="\\" ;; esac printf "\r$_char $_per%%" if [ $1 -eq $2 ];then printf "\n" fi } i=1 while [ $i -le 100 ] do drawper $i 100 i=`expr $i + 1` done 看看人家是怎么玩shell的,值得学习! ![]() |
|
|
|
|
|
|
|
第 29 帖 | |
|
|
标题: 一个加密文本文件的脚本 作者:javalee
利用vim中对key=的设置,可以达到加密文本文件的目的, 代码:
javalee//home/javalee/lx>echo aaaaa>tmp javalee//home/javalee/lx>cat tmp aaaaa javalee//home/javalee/lx>jmfile 123 tmp 文件tmp已经加密! javalee//home/javalee/lx>cat tmp VimCrypt~01!!x蹥o鮦avalee//home/javalee/lx> //加密后的文件用cat显示全是乱字符. javalee//home/javalee/lx>vi tmp //编辑 in vim... 输入密码:*** 如果密码正确就可以编辑tmp文件. 关于VIM的使用,请vim --help 此帖于 03-05-23 00:23 被 KornLee 编辑. |
|
|
|
|
|
|
|
第 30 帖 | |
|
|
标题: 一个简单的notify程序 作者:hdw1978
if [ $1 = 0 ]; then esdplay /home/hdw1978/tada.wav > /dev/null else esdplay /home/hdw1978/chord.wav > /dev/null fi 用法: 在make一个大软件的时候可以用make;notify, 然后你就可以去忙别的事了,make完成后会播放一个音效通知你。而且还可以附带*出一个通知窗口,以免临时走开没听到(不过我没有做) 还可以用在其它耗时较长又不需要一直观察的任务后面 很简单,但是我经常用 ![]() 此帖于 03-05-25 01:05 被 KornLee 编辑. |
|
|
|
|
|