实验2_shell及shell编程 下载本文

内容发布更新时间 : 2024/12/26 12:35:15星期一 下面是文章的全部内容请认真阅读。

实验二 shell及shell编程

一、 实习目的

1. 学习shell的功能及相关配置文件,及Bash常用命令 2. 学习shell脚本的编写格式 3. 学习编写简单的Bash脚本

二、 实习要求

1. 了解Bash相关配置文件:/etc/profile、$HOME/.bash_profile、

$HOME/.bashrc、$HOME/.bash_logout 2. 掌握Bash常用命令:history、alias、fg、bg、jobs、输入输出重定向 3. 了解shell脚本的格式

4. 掌握Bash中常见元字符的功能

5. 掌握Bash中变量的概念:用户变量和环境变量的区别、变量的复制与引

用及Bash的常用内置变量和环境变量 6. 掌握Bash内置命令:eval、echo、exec

7. 掌握Bash中的算术运算let、条件测试test和[ ]及各种测试和逻辑运算 8. 掌握Bash的控制结构:if、for、case 9. 了解Bash的函数、点命令

三、 实习内容

1. 练习课本中有关shell的命令

2. 修改Bash的配置文件,让所有用户登录后首先显示用户主目录中的所有

内容,并致欢迎词。

ls –a 先显示所有文件

vim .bash_profile 用vim编辑器编辑bash文件 在行末添加: Ls –a

Echo “Welcome to linux!”

3. 将某用户最近使用过的20条命令行保存到一个文件中,并用vi编辑,

删除命令行前的序号。

history 20 >>a.txt 先将最近的20条命令保存到a.txt中 vim a.txt 在vim编辑器中删除行号

4. 为某个用户添加命令5个别名(具体命令自定),并使其在每次登录后就

可以直接使用。

5. 分析如下脚本功能(注释每条语句,并描述脚本功能):

username=$1

/*将第一个位置参数赋给变量username*/

[ -z $username ]&&read -p “Please Input Username:” username /*如果username中的值为空,用户通过键盘再次赋值给username,并显示提示信息 “please input username:”*/

w -h|grep -q “^$username” || { echo $username do not login;exit 1;} /*检查用户名为变量username值的用户是否登录,若没有登录,则输出此用户没有登录,并置退出码为1*/

echo -n Input Message to Send:

/*在屏幕上显示“Input Message to Send:”并且不换行*/ read msg

/*读取键盘输入并保存到msg变量中*/ if echo $msg|write $username 2>/dev/null

/*将msg变量中的内容发送给username值指定的用户,将错误信息抛弃*/

then echo Send Message successfully!!

/*发送成功,显示“Send Message successfully!!”*/

else echo Send Message fail!!

/*发送失败,显示Send Message fail!!*/ fi

脚本功能:给指定的用户发送指定信息,若用户没有登录则显示用户未登录,否则将指定信息发送给用户,且显示成功与否。

6. 编写脚本统计指定目录中普通文件的个数、目录的个数、链接文件的个