Linux实验四

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验四shell 及其程序设计

实验目的

1. 理解shell 操作环境

2. 掌握shell 程序编写方法

二、实验内容

1. 练习、理解下面命令

Alias 答:别名命令,显示所有的别名信息。alias ld= '- ldls. '

答:使用别名命令,添加别名信息。history 20 答:显示最近输入系统的20 条命令!!执行上一次输入的命令var1= ”abcd1234 ”答:将var1 变量赋值echo ${var1:3:4} 答:显示var1[3]-var1[3+4] 的字符echo $HOME 答:显示当前用户主目录的路径信息var2=$HOME 答:将当前用户主目录的路径信息赋给var2 变量echo ”我的主目录是$var2 ”答:双引号下可以进行字符替换,将var2 变量替换为当前用户主目录的信息set —

答:显示系统环境各配置的状态

ls *sh 答:显示当前目录下以“sh ”结尾的文件名称arr1=(long live chair mao) 答:给arr1 数组变量赋值echo ${arr1[1]} 答:显示数组arr1 中下标为 1 的字符串

arr2=('date')

答:将date 命令显示的结果赋给数组变量arr2

echo ${arr2[3]} 答:显示数组变量arr2 中下标为 3 的字符串

[ $? -eq 0 ] || echo

答:”上面命令执行失败。”判断上条命令是否操作失败,若是,则显示“上面命令执行失败”

{ date;pwd;tty;stty; } 答:分步执行四条命令:显示当前日期信息;显示当前操作的目录;显示当前终端设备

的名称;显示当前终端的设置;

2. 编写shell 程序

1) 文件名adds.sh ,实现多个数值相加; (提示:多个数值通过参数提供)

#!/bin/bash

#多个数相加

s=0

for i in $*

do

let s=s+i

done

echo $s

exit 0

2) 文件名cleardirs.sh ,删除指定目录下的文件和子目录;

#!/bin/bash

# 删除指定目录下的文件和子目录

if [ -d $1 ]

then

cd $1 rm -r *

else

echo “$1 目录不存在!”

fi

exit 0

3) 文件名clearfiles.sh ,删除指定目录下的文件及其子目录下的文

提示:件;使用find 命令查找目录下文件)

#!/bin/bash

# 删除指定目录下的文件和子目录下的文件

if [ -d $1 ]

then

rm -f ‘find $1 -type f '

else

echo “$1 目录不存在!”

fi

exit 0

3. 阅读理解程序

120.95.134.193 主机,目录/var/materials 下:

addusers.sh

#!/bin/bash

# 按文件中列出的用户名建立用户帐号

# $1 学生名单,UTF8 编码

# $2 组名

groupadd $2;

# 添加组名$2 cmd=" -g $2 ";

# 将cmd 变量赋值

cat $1 | while read line

# 将$1 学生名单显示的信息逐行读出do

u=($line);

# 将一行的字符赋值给u 变量useradd $cmd -c "${u[1]},${u[2]}" ${u[0]} ;

#添加用户时同时加入用户描述及分组信息

[ $? -eq 0 ] && {

echo 123456 | passwd --stdin ${u[0]} ;

echo 创建${u[0]} 用户成功;

}

# 判断上一条命令是否执行成功,若成功则为用户初始化密

并显示创建用户码,成功

done > addusers.log

# 循环结束后保存到addusers.log 文件中

exit 0

#退出

delusers.sh

#!/bin/bash

# 删除文件中列出的用户

cat $1 | while read line

#将文件$1 打开并逐行读出

Do

#进入循环

u=($line)

# 将行信息赋给u 变量

userdel -r ${u[0]}

#删除用户,并把用户的信息一并删除掉

done > delusers.log

# 循环结束后,将修改的信息保存到delusers.log 日志文件中exit 0 #退出

相关文档
最新文档