Chinaunix首页 | 论坛 | 博客
  • 博客访问: 104564018
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-04-07 15:48:22

  出处:Unix爱好者家园unix-cd.com   
接触过UNIX的人都知道,在shell提示符下,用户可以同UNIX核心进行对话。shell的作用类似于早期的DOS下COMMAND.COM程序,但其内容较COMMAND.COM丰富得多。shell还是一种程序设计语言。利用UNIX OS本身的shell对UNIX命令加以改进,就是其中的一种方法。本文以format和tar两条命令为例进行了尝试,发现这种方法简单且实用。

一、格式化命令format的改进
format命令格式:format[-n][-v][-f][-q][device][-i interle
ave]

1.改进前的一般使用方法
$format /dev/rfd0135ds18 〈Enter〉
/* 对A盘进行格式化 */
$format /dev/rfd196ds15 〈Enter〉
/* 对B盘进行格式化 */
$format 〈Enter〉/* 对/etc/default/format文件中定义的缺省盘进行格式化 */

2.用Bourne shell对format进行改进
$cat fdformat 〈enter〉
getyn() /* shell函数 */
{
while read yn
do
case $yn in
[yY]) return 0;;
[nN]) return 1;;
*) break;;
esac
done
}
fd() /* shell函数 */
{
echo 请输入软盘的规格:\(0-代表1.44MB\)\(1-代表1.2MB\): "
\c"
read floppy
if test $floppy -eq 0
then DEVICE=/dev/rfd0135ds18
FD=A
else DEVICE=/dev/rfd196ds15
FD=B
fi
}
fd
clear
echo "请将软盘插入$FD驱动器中,准备好后按回车键!!"
while
getyn
do
format $DEVICE
echo " ******还需格式化下一张软盘(y/n)? \c"
done
$ sh -v fdformat 〈Enter〉
/* 对shell程序的全部执行过程进行跟踪 */
$ chmod u+x fdformat 〈Enter〉
/* 将fdformat成为可执行的命令 */
改进后的fdformat命令的使用易用性强,只需在提示符下键盘输入fdformat并回车,再按提示进行操作即可,而且还能连续进行格式化操作。

二、文件归档命令tar的改进
tar命令格式:tar[key][files]
常用的key值有:x、c、u、t、v、n、f、w等。

1.利用tar显示软盘信息
(1) 改进前的一般使用方法
$ tar tvnf /dev/rfd0135ds18 〈Enter〉
/* 显示A驱动器信息 */
$ tar tvnf /dev/rfd196ds15 〈Enter〉
/* 显示B驱动器信息 */
通过/ect/default/tar文件的定义,上述命令还可按下列方法进行:
$ tar tv6 〈Enter〉
$ tar tv3 〈Enter〉
总之,要使用好tar命令,必需记住x、c、u、t、v、n、f等选择项。
(2)用Bourne shell对tar命令进行改进
$ cat dirfd 〈Enter〉
fd
echo "请将软盘插入$FD驱动器中,关好小门!!"
sleep 2
clear
tar tvnf $DEVICE
sleep 5
$ sh -v dirfd 〈Enter〉
$ chmod u+x dirfd 〈Enter〉
改进后,无需再详记选择项。

2.利用tar命令读写磁盘
(1)改进前的一般使用方法
$ pwd 〈Enter〉
/usr/jinning
$ tar uvnf /dev/rfd0 unixtext 〈Enter〉
/* 将当前目录下的unixtext写到A驱动器中 */
$ tar xvnf/dev/rfd0 〈Enter〉
/* 将软盘内容读到当前目录 */
(2)用Bourne shell改进
$ cat writefd 〈Enter
echo 按回车键后继续……
while getyn
do
clear
echo 现在的工作目录是:′pwd′
echo
echo 输入待拷备的路径和文件名\(如:\/usr\/bd1996\):"\c"
read file
echo
fd
echo 正在写盘,请稍候……
tar uvnf $DEVICE $file
echo
echo
echo "****拷备结束!继续吗?(y/n)\c"
done
$ sh -v readfd 〈Enter〉
$ chmod u+x readfd 〈Enter〉
$ cat readfd 〈Enter〉
echo 当前工作目录为:′pwd′
echo
echo 将当前工作目录改变为:"\c"
read dir
cd $dir
echo
echo 当前目录已改为:`pwd'
echo
fd
echo 正在读盘,请稍候……
tar xvnf $DEVICE
echo ****拷贝完成!!!
sleep 1
echo
$ sh -v writefd 〈Enter〉
$ chmod u+x writefd 〈Enter〉
阅读(528) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~