Linux实验四.doc
《Linux实验四.doc》由会员分享,可在线阅读,更多相关《Linux实验四.doc(4页珍藏版)》请在冰豆网上搜索。
实验四shell及其程序设计
一、实验目的
1.理解shell操作环境
2.掌握shell程序编写方法
二、实验内容
1.练习、理解下面命令
Alias
答:
别名命令,显示所有的别名信息。
aliasld=’ls-ld.’
答:
使用别名命令,添加别名信息。
history20
答:
显示最近输入系统的20条命令!
!
执行上一次输入的命令
var1=”abcd1234”
答:
将var1变量赋值
echo${var1:
3:
4}
答:
显示var1[3]-var1[3+4]的字符
echo$HOME
答:
显示当前用户主目录的路径信息
var2=$HOME
答:
将当前用户主目录的路径信息赋给var2变量
echo”我的主目录是$var2”
答:
双引号下可以进行字符替换,将var2变量替换为当前用户主目录的信息。
set–o
答:
显示系统环境各配置的状态
ls*sh
答:
显示当前目录下以“sh”结尾的文件名称
arr1=(longlivechairmao)
答:
给arr1数组变量赋值
echo${arr1[1]}
答:
显示数组arr1中下标为1的字符串
arr2=(`date`)
答:
将date命令显示的结果赋给数组变量arr2
echo${arr2[3]}
答:
显示数组变量arr2中下标为3的字符串
[$?
-eq0]||echo
答:
”上面命令执行失败。
”判断上条命令是否操作失败,若是,则显示“上面命令执行失败”
{date;pwd;tty;stty;}
答:
分步执行四条命令:
显示当前日期信息;显示当前操作的目录;显示当前终端设备
的名称;显示当前终端的设置;
2.编写shell程序
1)文件名adds.sh,实现多个数值相加;(提示:
多个数值通过参数提供)
#!
/bin/bash
#多个数相加
s=0
foriin$*
do
lets=s+i
done
echo$s
exit0
2)文件名cleardirs.sh,删除指定目录下的文件和子目录;
#!
/bin/bash
#删除指定目录下的文件和子目录
if[-d$1]
then
cd$1
rm-r*
else
echo“$1目录不存在!
”
fi
exit0
3)文件名clearfiles.sh,删除指定目录下的文件及其子目录下的文件;(提示:
使用find命令查找目录下文件)
#!
/bin/bash
#删除指定目录下的文件和子目录下的文件
if[-d$1]
then
rm-f‘find$1-typef’
else
echo“$1目录不存在!
”
fi
exit0
3. 阅读理解程序
120.95.134.193主机,目录/var/materials下:
addusers.sh
#!
/bin/bash
#按文件中列出的用户名建立用户帐号
#$1学生名单,UTF8编码
#$2组名
groupadd$2;
#添加组名$2
cmd="-g$2";
#将cmd变量赋值
cat$1|whilereadline
#将$1学生名单显示的信息逐行读出
do
u=($line);
#将一行的字符赋值给u变量
useradd$cmd-c"${u[1]},${u[2]}"${u[0]};
#添加用户时同时加入用户描述及分组信息
[$?
-eq0]&&{
echo123456|passwd--stdin${u[0]};
echo创建${u[0]}用户成功;
}
#判断上一条命令是否执行成功,若成功则为用户初始化密码,并显示创建用户成功
done>addusers.log
#循环结束后保存到addusers.log文件中
exit0
#退出
delusers.sh
#!
/bin/bash
#删除文件中列出的用户
cat$1|whilereadline
#将文件$1打开并逐行读出
Do
#进入循环
u=($line)
#将行信息赋给u变量
userdel-r${u[0]}
#删除用户,并把用户的信息一并删除掉
done>delusers.log
#循环结束后,将修改的信息保存到delusers.log日志文件中
exit0
#退出