《Linux系统管理》期末大作业任务书(2014.12)(1)
发布时间:2015-01-08 20:06:45
发布时间:2015-01-08 20:06:45
软件学院大作业任务书
课程名称: Linux系统管理
题 目: Linux系统管理期末大作业
专 业:
班 级:
学 号:
学生姓名:
完成人数: 1人
起讫日期:
任课教师: 李荣鑫 职称:
部分管主任:
完成时间:
说 明
1. 本任务书由任课教师填写后,下达到学生。
2. 任务完成后,任课教师需填写小结表。
3. 任务书、学生成绩与学生完成后的大作业(纸质和电子两种)一并报送各教学研究部审核后转教务办。
4. 另附一份全班大作业总结
大作业的要求和内容:(包括题目选择范围、技术要求、递交时间、考核方法等) 1. 要求独立完成下面的每一道题目。(题目附后面) 2. 不允许有雷同和抄袭的情况,若代码雷同率超过30%以上的,双方成绩均按不及格处理。 3. 从第六大题开始要有运行截图,程序题要有完整的代码,并附运行截图。程序运行结果中要输出你的学号和姓名。 4. 要求递交电子文档和打印纸质文档,电子文档提交到网络教学综合平台(http://online.ncu.edu.cn),打印文档由班长统一收取后交给老师。 5. 递交时间:2015年1月10日之前。 |
教师小结: 成绩: 教 师 签 名: 教研部负责人: 学生姓名: |
《Linux系统管理》期末大作业试题
学号: 姓名: 班级:
1. 写出完成下列操作的Linux命令
(1)给shell脚本文件myshell.sh设置可执行权限。
#chmod ugo+x myshell.sh
(2)将目录/home/abc下的所有文件拷贝到/data 。
#cp /home/abc/* /data
(3)安装软件包cvs-1.11.2-10.i386.rpm 。
#rpm -i cvs-1.11.2-10.i386.rpm
将/home/abc目录打包压缩,生成abc.tar.gz文件,并将此文件保存到/data目
#tar zcvf /data/abc.tar.gz /home/abc
(5)删除目录/home/abc及其下面所有文件。
#rm -rf /home/abc
(6)查询Linux系统的所有*.conf文件。
#find -name *.conf
(7)查询软件mysql是否安装。
#service mysqld start安装则可以启动
(9)将ls /etc的显示内容保存到文件etc.txt中。
#ls /ect >/etc.txt
(10)设置物理网卡的IP地址为192.168.1.100 。
#ifconfig etho 192.168.1.100 netmask 255.255.255.0
(11)查找/home目录下所有test 用户的目录和文件。
#find /home -user test
(12)将系统的日期设置为2014年12月20日8时30分。
#data -set “20141420 08:30:00”
2. 建立以下用户、组并设置口令,写出相关的操作命令
1) 建立用户smith
#useradd smith
2) 建立组名sysadmin
#groupadd sysadmin
3) 将smith加入组sysadmin
#usermod -g sysadmin smith
4) 为smith设置口令654321
#passwd smith
654321
5) 将文件test.c的 所有者设为 smith. 所有组设为sysadmin.
#chown smith test.c
#chgrp sysadmin test.c
6) 列出Linux系统下的所有用户
#cat /etc/passwd
3文件拷贝及相关问题,写出相关的操作命令。
1). 建立目录/option1
#mkdir optionl
2)在目录/option1下生成一空文件empty,该文件拥用者为smith
#touch empty
#chomd smith empty
3) 复制该文件到/tmp目录下的empty1文件,保留该文件的所有属性
#cp -p /option1/empty /tmp/empty1
4) 软链接该文件到/tmp目录下的soft文件
#ln -s empty1 /tmp/soft
5) 在根目录下查找所有扩展名为.c和.h文件。
#ls *.h
4.简答题
1)论述Linux的shell启动过程。
2)简述Linux系统的组成,主要应用和特点。
Linux一般有4个主要部分:内核、Shell、文件系统和应用程序内核、Shell和文件系统一起形成了基本的操作系统结构。它们使得用户可以运行程序,管理文件并使用系统。Linux主要被用作服务器的操作系统,提供了包括操作系统、数据库、网站服务器。符合POSIX 1003.1标准POSIX 1003.1标准定义了一个最小的Unix操作系统接口,任何操作系统只有符合这一标准,才有可能运 行Unix程序。
3)简述守护进程的工作原理。
在Client/Server模式下。服务器监听(Listen)在一个特定的端口上等待客户连接。连接成功后服务器和客户端通过端口进行数据通信。守护进程的工作就是打开一个端口,并且等待(Listen)进入连接。如果客户端产生一个连接请求,守护进程就创建(Fork)一个子服务器响应这个连接,而主服务器继续监听其他的服务请求。
4)举例说出Linux系统下编译C、C++和JAVA程序的方法。
5.你认为系统管理员的职责包括哪些?管理的对象包括哪些?
系统管理员的职责是进行系统资源管理、设备管理、系统性能管理、安全管理和系统性能监测。管理的对象是服务器、用户、服务器的进程及系统的各种资源等。
6.用Shell编程,编写一个判断素数的函数isprime(),并调用该函数计算100---300之间所有素数的和。
代码:
#!/bin/bash
isprime()
{
for ((i=2;i<=$1;i++));do
if [ $(($j%$i)) -eq 0 ];then
break
fi
if [ $(($j%$i)) -gt 1 ];then
return 1
fi
done
}
#a = $1
#result=$(isprime $1)
sum=0
for ((j=100;j<=300;j++));do
isprime $j
if [ $? -eq 1 ];then
# echo $j
let sum=$sum+$j
fi
done
echo "100-300素数和="$sum
7.设计一个shell程序,计算n的阶乘,要求:1)从命令行接收参数n; 2)程序运行后判断参数n的合法性,即是否有参数,如有,是否为正整数;若非法,给出错误提示信息。3)最后输出计算结果。
代码:
#!/bin/bash
multiply()
{
if [ $1 -gt 1 ]; then
result=`expr $result \* $1`
next=`expr $1 - 1`
multiply $next
fi
}
if [ $# -ne 1 ]; then
echo -e "Please input a parameter!\nUsage: $0 [n]"
exit 1
fi
result=1
if [ $1 -eq 1 ]; then
:
elif [ $1 -gt 1 ]; then
multiply $1
else
echo "Invalid input parameter! It MUST be a integer greater than 0."
exit 1
fi
echo "$1! = $result"
exit 0
8.编写Shell程序,程序功能,先建立一个学生组student,然后批量建立若干个学生用户,用户名的前导字符形如stu,再加数字序号,如stu20,用户名的前导字符和用户个数通过参数传递。格式如:mysh stu 100 。
代码:
#!/bin/bash
if [ $# -eq 2 ];then
a=$1
b=$2
c=$a$b
groupadd student
useradd $c
echo "create success!"
Fi
9.某系统管理员需每天做一定的重复工作,请按照下列要求,编制一个解决方案:
(1)在下午4 :50删除/abc目录下的全部子目录和全部文件;
(2)从早8:00~下午6:00每小时读取/xyz目录下x1文件中的全部数据并追加到/backup目录下的bak01.txt文件内;
(3)每逢星期一下午5:50将/data目录下的所有目录和文件归档并压缩为文件:backup.tar.gz;
请编写一个crontab文件,实现上述方案。
Vim /etc/crontab
50 16 * * * root rm -rf /abc/* 2>&1 &
00 8-18 * * * root cat /xyz/x1|awk '{print $1}' >> /backup/bak01.txt 2>&1 &
50 17 * * 1 root cd /data;tar -zcvf backup.tar.gz * 2>&1 &
55 17 * * * root umount /hdc 2>&1 &
10. 考勤模拟Shell程序设计: 用shell设计一个模拟考勤程序,实现如下功能选择界面:
1:上班签到
2:下班签出
3:考勤信息查询
考勤程序运行后,提示用户输入上述功能选择,并验证用户输入的用户名和密码;用户信息保存在userinfo.dat中。如果是上班签到,记录签到信息,如果签到时间大于上午8时,则提示用户迟到,并记录该迟到信息到check.dat中。如果是下班签出,记录签出信息,如果签出时间小于下午6时,则提示用户早退,并记录该早退信息到check.dat。如果用户选择确信信息查询,则将check.dat中对应的用户迟到早退的信息查询出来并显示。用户选择功能执行完,Shell程序继续回到功能选择界面等待下一个用户进行操作。
代码:
#!/bin/bash
while [ 1 ]
do
#clear
#屏幕显示提示信息
echo "********欢迎使用本系统********"
echo "1) 录入签到"
echo "2) 下班签出"
echo "3) 查询 "
echo "******************************"
echo "请输入您的选项:"
#读入操作选项
read choice
#对相应的选项进行操作
case $choice in
1) echo "请输入您的名字:"
read name
echo "请输入密码:"
read password
if test -r userinfo.dat
then
while read fname fpassword
do
if test "$fname" = "$name"
then
if test "$fpasswd" = "$passwd"
then
break
fi
fi
done < userinfo.dat
else
echo System Error : no such file userinfo.dat
fi
if test "$name" != "$fname"
then
echo "不存在该用户!"
elif test "$password" != "$fpassword"
then
echo "密码不正确!"
else
hour=`date +%H`
if test "$hour" -gt 8
then
echo "您迟到了!"
echo "$name 迟到了 ---日期:`date`" >> check.dat
else
echo "早上好!"
fi
fi;;
2) echo "请输入您的名字:"
read name
echo "请输入密码:"
read password
if test -r userinfo.dat
then
while read fname fpassword
do
if test "$fname" = "$name"
then
if test "$fpasswd" = "$passwd"
then
break
fi
fi
done < userinfo.dat
else
echo System Error : no such file userinfo.dat
fi
if test "$name" != "$fname"
then
echo "不存在该用户!"
elif test "$password" != "$fpassword"
then
echo "密码不正确!"
else
hour=`date +%H`
if test "$hour" -lt 18
then
echo "您早退了!"
echo "$name 早退了 ---日期:`date`" >> check.dat
else
echo "早上好!"
fi
fi;;
3) echo "请输入您的名字:"
read name
echo "请输入密码:"
read password
if test -r userinfo.dat
then
while read fname fpassword
do
if test "$fname" = "$name"
then
if test "$fpasswd" = "$passwd"
then
break
fi
fi
done < userinfo.dat
else
echo System Error : no such file userinfo.dat
fi
if test "$name" != "$fname"
then
echo "不存在该用户!"
elif test "$password" != "$fpassword"
then
echo "密码不正确!"
else
echo "您的记录:"
echo "---------------------------------"
cat -b check.dat | grep $name
echo "---------------------------------"
fi;;
*) echo '无效的选项,请重新输入!';;
esac
done
截图
11.写出以下服务器的配置方法:Samba服务器 NFS服务器 WWW服务器 FTP服务器 DHCP TELNET DNS (任选期中两个)(包括配置文件,启动方法,还有基本的配置信息,还有服务器成功访问后的截图)
NFS服务器
①安装nfs-utils及portmap软件包
②编辑/etc/exports配置文件
③配置nfs固定端口
④配置iptables策略
⑤启动portmap和nfs服务
DNS服务器
第一步:hostname 主机名
第二步:vim /etc/hosts
第三步:vim /etc/sysconfig/network
12.用C++编写程序如下三个程序,在头文件circle.h定义一个圆类,包括数据成员半径,一个构造函数和一个用于计算面积的成员函数;在circle.cpp中实现圆类的构造函数和成员函数;在主程序test.cpp中定义一个对象并初始化,输出该圆的面积。在linux下进行编译和链接运行。然后编写一个Makefile文件,用make命令进行自动编译。
13. 使用mysql,写出操作命令。
1)连接到mysql;
mysql -h localhost -u root -p
2)查看所有数据库;
Show databases;
3)添加一个数据库Week,在库中加入一个表today,字段包括:
ID 整型,name 字符型,长度为8
Create database Week;
Use Week;
Create table today(ID int(),name char(8));
4)显示week数据库的所有表;
Show tables;
5)给表Today插入3条数据 ;
INSERT INTO today VALUES(“1”,”xxx”)(“2”,”dd”)(“3”,”ss”);
6)显示Today表中所有的数据;
Select * from Today;