当前位置:文档之家› 《Linux操作系统》期末大作业任务书2019

《Linux操作系统》期末大作业任务书2019

大作业任务书课程名称:Linux操作系统题目:Linux期末大作业专业:计算机科学与技术班级:计算机185班学号:6109118148学生姓名:全昊完成人数:起讫日期:任课教师:李荣鑫职称:副教授完成时间:说明1.本任务书由任课教师填写后,下达到学生。

2.任务完成后,任课教师需填写小结表。

3.任务书、学生成绩与学生完成后的大作业(纸质和电子两种)一并报送各教学研究部审核后转教务办。

4.另附一份全班大作业总结《Linux操作系统》期末大作业(要求将计算机名改为你的名字,以便命令行截图时能看到个人信息,shell编程题的源程序代码的第二行用注释给出个人信息。

)1. 写出完成下列操作的Linux命令(1)给shell脚本文件myshell.sh设置文件主和小组用户拥有可执行权限,其他用户无可执行权限。

(若无相应文件可以先创建)#sudo touch mashell.sh#sudo chmod 776 myshell.sh(2)将目录/home/ncu下的所有文件拷贝到/data。

(若无相应的目录可以先创建)#sudo cp /home/ncu/* /home/data拷贝前:(3)安装软件包apache2并查看启动状态。

# sudo apt-get install apache2(4)将/home/ncu目录打包压缩,生成ncu.tar.gz文件,并将此文件保存到/data目录#sudo tar -zcvf data/ncu.tar.gz ncu#tar默认使用的是相对路径,如果按照一般习惯书写绝对路径可能导致错误。

(5)删除目录/home/ncu及其下面所有文件。

#rm -rf /home/ncu(6)统计当前目录下普通文件的数目并显示结果。

#ls -lR |grep "^-"|wc -l(7)查询软件mysql是否安装,若没安装,请安装。

#service mysql status 检查数据库服务是否启动#sudo apt-get install mysql-server(8)将/etc下所有文件信息保存到~/etc.txt中。

#ls -al /etc >~/etc.txt(9)查找/home目录下所有空文件。

#find /home -type d -empty(10)将系统的日期设置为2018年12月20日8时30分。

#date -set “20181220 08:30:00”2. 建立以下用户、组并设置口令,写出相关的操作命令。

1)建立用户smith#sudo useradd smith2)建立组名sysadmin#sudo groupadd sysadmin3)将smith加入组sysadmin#sudo usermod -g sysadmin smith4)为smith设置口令654321#sudo passwd smith6543215)将文件myshell.sh的所有者设为smith. 所属组设为sysadmin.#sudo chown smith myshell.sh6)列出Linux系统下的所有可登录用户#cat /etc/passwd3.文件拷贝及相关问题,写出相关的操作命令。

1). 建立目录/option1#sudo mkdir optionl2)在目录/option1下生成一空文件empty,该文件拥用者为smith #touch empty#chown smith empty3)复制该文件到/tmp目录下的empty1文件,保留该文件的所有属性#cp -p /optionl/empty /tmp/empty14)软链接该文件到/tmp目录下的soft文件#sudo ln optionl/empty tmp/soft5)在用户自家目录下查找所有扩展名为.c和.h文件。

#find ./ -name “*.[ch]”4、网络相关操作命令(写出相关操作并截屏)1)查看虚拟机机的IP地址_ifconfig -a_________________。

2)尝试向网络上的另一台主机(另一台虚拟机或物理机)发送数据包,测试是否能够进行通讯(ping)。

#ping 119.3.235.179#IP是我的服务器IP3)使用ifconfig命令修改虚拟机的IP地址、子网掩码。

#sudo ifconfig ens33 202.196.233.5 netmask 255.255.255.0网卡设备名通过ifconfig获得4)使用route命令设置虚拟机的默认网关。

#sudo route add default gw 192.168.1.05)编辑/etc/resolv.conf文件,设置DNS,设置完毕重新启动网络服务,尝试向网关发送数据包测试网络配置是否正确,如不正确则重新配置直至网络连通。

(设置好后用ping 测试网络的连通性)之前的DNS如下图:先修改文件的权限,用gedit修改对应的DNS地址:修改后查看到的DNS地址:重启网络服务:尝试ping通:6)netstat命令的使用,监控网络的状态。

(1)显示所有TCP端口的信息。

(2)显示所有网络接口信息5.Shell编程题1)编写shell程序ex01.sh,用read 命令从键盘读入两个数到连个变量中,计算并输出这两个数的和与积。

# quanhao# edit at 2019-12-20# /bin/bashread -p "please input two numbers: " a bexpr $a + $b &>/dev/nullecho "a+b=$(($a+$b))"echo "axb=$(($a*$b))"echo "author quanhao"2)编写shell程序ex02.sh,计算两个数的和与积。

这两个数通过参数传入。

如执行ex02.sh 3 5 ,则输出8 和15.# quanhao# edit at 2019-12-20# /bin/bashecho "a+b=$(($1+$2))"echo "axb=$(($1*$2))"echo "author:quanhao"3)编写一个判断用户名和密码是否正确的shell程序ex03.sh,如用户名和密码都正确,则输出“YES!”,否则输出”NO!”.1.# quanhao2.# edit at 2019-12-203.# /bin/bash4.echo "input the username:"5.read u6.echo "input the password:"7.read p8.if test -r userinfo.dat9.then10.while read fn fp11.do12. #echo "$fn"13. #echo "$fp"14.if test "$fn" = "$u"15. then16.if test "$fp" = "$p"17. then18. echo "YES!"19.break20. fi21. fi22. done < userinfo.dat23.if test "$fn" != "$u"24. then25. echo "NO!"26. fi27.fi先编写用于比较的用户名和密码列表文件:4)编写一个程序ex04.sh,测试当前目录下一个文件是否存在,若存在输出“ YES!”,否则输出”NO!”. 文件名通过参数传入。

# quanhao# edit at 2019-12-20# /bin/bashif test -r $1thenecho "YES!"elseecho "NO!"fi5)编写shell程序ex05.sh, 完成根据实验的时间,分别给出:“上午好!”或者“下午好!”,或“晚上好!”的问候。

(提示:可用date +%H得到系统的小时)# quanhao# edit at 2019-12-20# /bin/bashtime=$(date "+%H")if [ "$time" -ge "6" ]&&[ "$time" -le "12" ]thenecho "now is $time"echo "good morning!"elif [ "$time" -gt "12" ]&&[ "$time" -le "18" ]thenecho "now is $time"echo "good aftnoon!"elif [ "$time" -gt "18" ]||[ "$time" -lt "6" ]thenecho "now is $time"echo "good night!"fi6. 设计一个shell程序,计算n的阶乘,要求:1)从命令行接收参数n; 2)程序运行后判断参数n的合法性,即是否有参数,如有,是否为正整数;若非法,给出错误提示信息。

3)最后输出计算结果。

# quanhao# edit at 2019-12-21# /bin/bashmultiply(){if [ $1 -gt 1 ]thenresult=$(($result*$1))next=$(($1-1))multiply $nextfi}if [ $# -ne 1 ]thenecho -e "please input a parameter!"echo "author:quanhao"exit 1firesult=1if [ $1 -ge 1 ]thenmultiply $1elseecho "Invalid input paramer!It must be a integer greater than 0"echo "author:quanhao"exit 1fiecho "$1! = $result"exit 07.编写Shell程序,程序功能,先建立一个学生组student,然后批量建立若干个学生用户,用户名的前导字符形如stu,再加数字序号,如stu20,用户名的前导字符和用户个数通过参数传递。

相关主题