sh/bash/dash/ksh/zsh等Shell脚本
-
wkt
- 帖子: 849
- 注册时间: 2006-09-07 22:51
-
联系:
#1
帖子
由 wkt » 2007-06-06 20:07
由于,我需要挂载iso 光盘映像
手动很麻烦就写了个脚本
现在共享一下!
代码: 全选
#!/bin/bash
[ `whoami` == "root" ] || cmd="gksudo" ##不是root 就cmd=gksudo
count=0
dir="/media/cdrom$count" ##设置挂载点
uid=$2
while df|grep -q $dir 2>/dev/null ##挂载点 是否使用了
do
echo $dir
let count=$count+1
dir="/media/cdrom$count" ###新挂载点
done
echo $dir
###使用gksudo 是需要root 权限
if [ ! -d $dir ];then
$cmd "mkdir -p $dir" ##创建挂载点
fi
if mount|grep $1;then
exit 0
fi
if [ -f $1 ] ;then
echo "$1 mount on $dir"
$cmd "mount -t iso9660 -o ro,loop,uid=$UID,utf8 $1 $dir" ###挂载
fi
for dir in /media/cdrom[1-9]*
do
$cmd "rmdir $dir" #####拿掉没用的目录
done
使用方法:
1.把代码写入文件比如 :iso_mount
2 赋予执行权限: chmod +x iso_mount
3 鼠标移动到iso 镜像文件上
单击右键->使用其它程序打开(A)->使用自定义命令(U)->浏览...
找到刚才写的iso_mount
就ok了!
以后,双击就行了!
上次由
wkt 在 2007-06-26 10:16,总共编辑 2 次。
-
thword
- 帖子: 119
- 注册时间: 2007-04-09 12:19
#2
帖子
由 thword » 2007-06-06 20:43
如果是用gnome的话,也可以放在~/.gnome2/nautilus-scripts/下面,就可以通过右键->脚本-> iso_mount来使用了。
-
wkt
- 帖子: 849
- 注册时间: 2006-09-07 22:51
-
联系:
#3
帖子
由 wkt » 2007-06-06 21:22
thword 写了:如果是用gnome的话,也可以放在~/.gnome2/nautilus-scripts/下面,就可以通过右键->脚本-> iso_mount来使用了。
这个我不知道!
多谢指点!
-
skyx
- 论坛版主
- 帖子: 9202
- 注册时间: 2006-12-23 13:46
- 来自: Azores Islands
-
联系:
#4
帖子
由 skyx » 2007-06-06 21:24
另外:
源中有一个图形界面的工具,专挂iso, 可是名字我忘记了,楼主可以看下这个软件的源码,完善下说不定更好。
no security measure is worth anything if an attacker has physical access to the machine
-
wkt
- 帖子: 849
- 注册时间: 2006-09-07 22:51
-
联系:
#5
帖子
由 wkt » 2007-06-06 21:41
skyx 写了:另外:
源中有一个图形界面的工具,专挂iso, 可是名字我忘记了,楼主可以看下这个软件的源码,完善下说不定更好。
我觉得我的这个对我够用了!
源中的麻?
我想很可能是python写的
我不知道python能做什么
而且复杂得令人受不了
我没有好好看过python的书
所以,源中我就不看了.
我又不是什么高手?
自己写小东西还可以
看别人的高深代码--不敢啊!
-
thword
- 帖子: 119
- 注册时间: 2007-04-09 12:19
#6
帖子
由 thword » 2007-06-06 21:46
呵呵,既然写了个挂载的,那就再写一个卸载的好了。
-
wkt
- 帖子: 849
- 注册时间: 2006-09-07 22:51
-
联系:
#7
帖子
由 wkt » 2007-06-06 22:33
thword 写了:呵呵,既然写了个挂载的,那就再写一个卸载的好了。
这个系统不是自带了吗?
我再写那不是无聊?
我写挂载的是因为系统不自带!
-
lert
- 帖子: 40
- 注册时间: 2007-04-17 0:42
#8
帖子
由 lert » 2007-06-12 0:33
thword 写了:如果是用gnome的话,也可以放在~/.gnome2/nautilus-scripts/下面,就可以通过右键->脚本-> iso_mount来使用了。
不过,要注意:nautilus是通过环境变量来传递路径的。
-
wkt
- 帖子: 849
- 注册时间: 2006-09-07 22:51
-
联系:
#10
帖子
由 wkt » 2007-06-26 9:57
yiencai 写了:卸载不了啊
这个我也知道!
不过我不清楚系统的卸载方法---我就没法子了!
当然写一个简单的脚本也可以 ,
我就是不知道如何让它在桌面的那个图标的右键上出现!
如果这个可以就ok了!
-
thomsi
- 帖子: 67
- 注册时间: 2007-08-17 14:04
#11
帖子
由 thomsi » 2007-09-29 3:47
Gmountiso也是脚本,不过使用还不够方便,一定要手动指定挂载点,最好是直接在右键菜单中挂载,挂载点为与ISO文件同名的目录,也就是在挂载前先生成一个同名目录再挂载,卸载后销毁目录,这样挂载多个不会出现不记得哪是哪了,呵呵。
我刚接触这个,不知道如何从参数中获得ISO文件的文件名,如果能获取,稍微修改Gmountiso就能实现上面的效果,
或者哪位大虾能教我如何从 “/media/hda2/123.iso” 中获取“123.iso”这个名称,谢谢!
-
wkt
- 帖子: 849
- 注册时间: 2006-09-07 22:51
-
联系:
#12
帖子
由 wkt » 2007-09-30 20:40
thomsi 写了:Gmountiso也是脚本,不过使用还不够方便,一定要手动指定挂载点,最好是直接在右键菜单中挂载,挂载点为与ISO文件同名的目录,也就是在挂载前先生成一个同名目录再挂载,卸载后销毁目录,这样挂载多个不会出现不记得哪是哪了,呵呵。
我刚接触这个,不知道如何从参数中获得ISO文件的文件名,如果能获取,稍微修改Gmountiso就能实现上面的效果,
或者哪位大虾能教我如何从 “/media/hda2/123.iso” 中获取“123.iso”这个名称,谢谢!
你改一下脚本就可以了
name=`basename /media/hda2/123.iso`
echo $name
看看
-
fortruth
- 帖子: 1795
- 注册时间: 2005-11-06 1:51
- 来自: 七彩云世界
-
联系:
#13
帖子
由 fortruth » 2007-11-13 14:07
对lz 的iso_mount稍微修改了一下,用在kubuntu下,使用kdesudo 和 konqueror
----------------
代码: 全选
#!/bin/bash
###作者:[email protected]
###修改者:[email protected]
###修改内容:修改内容主要针对KDE 环境
###1.调用kde下的sudo 前端kdesudo
###2.挂载上后用konqueror打开文件夹
[ `whoami` == "root" ] || cmd="kdesudo" ##不是root 就cmd=kdesudo
count=0
dir="/media/cdrom$count" ##设置挂载点
uid=$2
while df|grep -q $dir 2>/dev/null ##挂载点 是否使用了
do
echo $dir
let count=$count+1
dir="/media/cdrom$count" ###新挂载点
done
echo $dir
###使用kdesudo 是需要root 权限
if [ ! -d $dir ];then
$cmd "mkdir -p $dir" ##创建挂载点
fi
if mount|grep $1;then
exit 0
fi
if [ -f $1 ] ;then
echo "$1 mount on $dir"
$cmd "mount -t iso9660 -o ro,loop,uid=$UID,utf8 $1 $dir" ###挂载
kfmclient openURL $dir ##在kde下用konqueror打开挂载的iso目录
fi
for dir in /media/cdrom[1-9]*
do
$cmd "rmdir $dir" #####拿掉没用的目录
done
有没有人再加一加,使其能在kde 和 gnome 下,(nautilus,konqueror)能够通用,
佛出寺,求索真世界 For_Truth:Free_Open_Share
OPEN GPG KEY:03D18D95
-
wkt
- 帖子: 849
- 注册时间: 2006-09-07 22:51
-
联系:
#14
帖子
由 wkt » 2007-11-16 22:46
既然有人有兴趣我也更新一下:
代码: 全选
#!/bin/bash
cmd="sh -c"
if [ "x$1" == "x" ];then
exit 1
fi
if [ "x`basename $0`" == "xiso_umount" ];then ##通过文件名来办断,是挂载还是卸载.
if mount|grep -q $1 2>/dev/null ;then
gksudo "umount $1"
fi
exit 0
fi
if [ ! -f $1 ] ;then
exit 2
fi
if mount|grep $1;then
exit 0
fi
lockfile-create /tmp/iso_mount
lockfile-touch /tmp/iso_mount&
echo $! >/tmp/iso_mount
[ `whoami` == "root" ] || {
if ps aux|grep -v grep |grep -q gnome-pty-helper ;then
cmd="gksudo" ##不是root 就cmd=gksudo
else
cmd="kdesudo" ##不是gnome,就是kde.
fi
}
count=0
dir="/media/cdrom$count" ##设置挂载点
uid=$2
while df|grep -q $dir 2>/dev/null ##挂载点 是否使用了
do
echo $dir
let count=$count+1
dir="/media/cdrom$count" ###新挂载点
done
echo $dir
###使用gksudo 是需要root 权限
if [ ! -d $dir ];then
$cmd "mkdir -p $dir" ##创建挂载点
fi
if [ -f $1 ] ;then
echo "$1 mount on $dir"
$cmd "mount -t iso9660,udf -o ro,loop,uid=$UID,iocharset=cp936,utf8 $1 $dir" ###挂载
fi
lockfile-remove /tmp/iso_mount
for dir in /media/cdrom[1-9]*
do
$cmd "rmdir $dir" 2>/dev/null #####拿掉没用的目录
done
保存为iso_mount
然后
ln -sf iso_mount iso_umount
就可用了:
-
lyhic
- 帖子: 112
- 注册时间: 2007-06-29 20:19
#15
帖子
由 lyhic » 2007-11-30 22:12
楼主把人养懒了哦!