实验二 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. 编写脚本统计指定目录中普通文件的个数、目录的个数、链接文件的个