用于使用 鼠标右键 挂载iso的脚本!

sh/bash/dash/ksh/zsh等Shell脚本
wkt
帖子: 849
注册时间: 2006-09-07 22:51
联系:

用于使用 鼠标右键 挂载iso的脚本!

#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是通过环境变量来传递路径的。
头像
yiencai
帖子: 200
注册时间: 2007-06-11 12:38

#9

帖子 yiencai » 2007-06-13 12:16

卸载不了啊
附件
Screenshot.png
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
来自: 七彩云世界
联系:

Re: 用于使用 鼠标右键 挂载iso的脚本!

#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

楼主把人养懒了哦!
回复