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

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

2023年8月3日发(作者:)

大作业任务书

课程名称:

Linux操作系统

题 目: Linux期末大作业

专 业: 计算机科学与技术

班 级: 计算机185班

学 号: 6109118148

学生姓名: 全昊

完成人数:

起讫日期:

任课教师: 李荣鑫 职称: 副教授

完成时间:

说 明

1. 本任务书由任课教师填写后,下达到学生。

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

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

4. 另附一份全班大作业总结 大作业的要求和内容:(包括题目选择范围、技术要求、递交时间、考核方法等)

1. 要求独立完成大作业项目。(题目附后面)

2. 虚拟机以自己的名字命名,确保Shell命令提示符能看到自己的名字信息。不允许有雷同和抄袭的情况,否则双方成绩均按不及格处理。

3. 所有的操作结果要有截图,Shell编程题要有完整的代码,并附运行结果截图。#输出结果把个人信息加上。

4、完成大作业后,必须提交以下内容:

1)大作业任务书(电子版和打印版)

2)大作业报告。大作业报告必须给出所有项目内容的实现过程,并附大作业小结。

5、大作业提交时间:课程结束时,进行统一答辩,并将全班同学的大作业统一刻录成光盘,其中任务书还要求上交纸质的打印版。

教师小结:

成绩:

教 师 签 名:

教研部负责人:

学生姓名:

《Linux操作系统》期末大作业

(要求将计算机名改为你的名字,以便命令行截图时能看到个人信息,shell编程题的源程序代码的第二行用注释给出个人信息。)

1. 写出完成下列操作的Linux命令

(1) 给shell脚本文件设置文件主和小组用户拥有可执行权限,其他用户无可执行权限。(若无相应文件可以先创建)

#sudo touch

#sudo chmod 776

(2) 将目录/home/ncu下的所有文件拷贝到/data。(若无相应的目录可以先创建)

#sudo cp /home/ncu/* /home/data

拷贝前:

(3) 安装软件包apache2并查看启动状态。

# sudo apt-get install apache2

(4) 将/home/ncu目录打包压缩,生成文件,并将此文件保存到/data目录

#sudo tar -zcvf data/ 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下所有文件信息保存到~/中。

#ls -al /etc >~/

(9) 查找/home目录下所有空文件。

#find /home -type d -empty

(10)将系统的日期设置为2018年12月20日8时30分。

#date -set “20181220 08:30:00”

2. 建立以下用户、组并设置口令,写出相关的操作命令。

1) 建立用户smith

#sudo useradd smith

2) 建立组名sysadmin

#sudo groupadd sysadmin

3) 将smith加入组sysadmin

#sudo usermod -g sysadmin smith

4) 为smith设置口令654321

#sudo passwd smith

654321

5) 将文件的 所有者设为 smith. 所属组设为sysadmin.

#sudo chown smith

6) 列出Linux系统下的所有可登录用户

#cat /etc/passwd

3. 文件拷贝及相关问题,写出相关的操作命令。

1). 建立目录/option1

#sudo mkdir optionl

2) 在目录/option1下生成一空文件empty,该文件拥用者为smith

#touch empty

#chown smith empty

3) 复制该文件到/tmp目录下的empty1文件,保留该文件的所有属性

#cp -p /optionl/empty /tmp/empty1

4) 软链接该文件到/tmp目录下的soft文件

#sudo ln optionl/empty tmp/soft

5) 在用户自家目录下查找所有扩展名为.c和.h文件。

#find ./ -name “*.[ch]”

4、网络相关操作命令(写出相关操作并截屏)

1)查看虚拟机机的IP地址_ifconfig -a_________________。

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

#ping 119.3.235.179#IP是我的服务器IP

3)使用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.0

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

(设置好后用ping 测试网络的连通性)

之前的DNS如下图:

先修改文件的权限,用gedit修改对应的DNS地址:

修改后查看到的DNS地址:

重启网络服务:

尝试ping通:

6)netstat命令的使用,监控网络的状态。

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

(2)显示所有网络接口信息

5.Shell编程题

1)编写shell程序,用read 命令从键盘读入两个数到连个变量中,计算并输出这两个数的和与积。

# quanhao

# edit at 2019-12-20

# /bin/bash

read -p "please input two numbers: " a b

expr $a + $b &>/dev/null

echo "a+b=$(($a+$b))"

echo "axb=$(($a*$b))"

echo "author quanhao"

2)编写shell程序,计算两个数的和与积。这两个数通过参数传入。如执行 3 5 ,则输出 8 和 15.

# quanhao

# edit at 2019-12-20

# /bin/bash

echo "a+b=$(($1+$2))"

echo "axb=$(($1*$2))"

echo "author:quanhao"

3)

编写一个判断用户名和密码是否正确的shell程序,如用户名和密码都正确,则输出“YES!”,否则输出”NO!”.

1.

# quanhao

2.

# edit at 2019-12-20

3.

# /bin/bash

4.

echo "input the username:"

5.

read u

6.

echo "input the password:"

7.

read p

8.

if test -r

9.

then

10.

while read fn fp

11.

do

12.

#echo "$fn"

13.

#echo "$fp"

14.

if test "$fn" = "$u"

15.

then

16.

if test "$fp" = "$p"

17.

then

18.

echo "YES!"

19.

break

20.

fi

21.

fi

22.

done <

23.

if test "$fn" != "$u"

24.

then

25.

echo "NO!"

26.

fi

27.

fi

先编写用于比较的用户名和密码列表文件:

4)

编写一个程序,测试当前目录下一个文件是否存在, 若存在输出“ YES!”,否则输出”NO!”. 文件名通过参数传入。

# quanhao

# edit at 2019-12-20

# /bin/bash

if test -r $1

then

echo "YES!"

else

echo "NO!"

fi

5)编写shell程序, 完成根据实验的时间,分别给出:“上午好!”或者“下午好!”,或“晚上好!”的问候。(提示:可用 date +%H得到系统的小时)

# quanhao

# edit at 2019-12-20

# /bin/bash

time=$(date "+%H")

if [ "$time" -ge "6" ]&&[ "$time" -le "12" ]

then

echo "now is $time"

echo "good morning!"

elif [ "$time" -gt "12" ]&&[ "$time" -le "18" ]

then

echo "now is $time"

echo "good aftnoon!"

elif [ "$time" -gt "18" ]||[ "$time" -lt "6" ]

then

echo "now is $time"

echo "good night!"

fi

6. 设计一个shell程序,计算n的阶乘,要求:1)从命令行接收参数n; 2)程序运行后判断参数n的合法性,即是否有参数,如有,是否为正整数;若非法,给出错误提示信息。3)最后输出计算结果。

# quanhao

# edit at 2019-12-21

# /bin/bash

multiply()

{

if [ $1 -gt 1 ]

then

result=$(($result*$1))

next=$(($1-1))

multiply $next

fi

}

if [ $# -ne 1 ]

then

echo -e "please input a parameter!"

echo "author:quanhao"

exit 1

fi

result=1

if [ $1 -ge 1 ]

then

multiply $1

else

echo "Invalid input paramer!It must be a integer greater than 0"

echo "author:quanhao"

exit 1

fi

echo "$1! = $result"

exit 0

7.编写Shell程序,程序功能,先建立一个学生组student,然后批量建立若干个学生用户,用户名的前导字符形如stu,再加数字序号,如stu20,用户名的前导字符和用户个数通过参数传递。格式如:mysh stu 100 。

# quanhao

# edit at 2019-12-21

# /bin/bash

if [ $# -eq 2 ]

then

a=$1

b=0

groupadd student

echo "groupadd success!"

while (($b < $2))

do

useradd $a_$b

echo "user $a$b creat sucess!"

echo "author:quanhao"

b=$(($b+1))

done

fi

心得体会:由于之前的尝试,student用户组已创建,故程序抛出了一个异常,但是用户添加的正确的。

8. 写出以下服务器的配置方法:SSH服务器、WWW服务器 FTP服务器(任选期中一个)(包括配置文件,启动方法,还有基本的配置信息,还有服务器成功访问后的截图)

我选择配置FTP服务器

1. 安装FTP服务器

#sudo apt-get install vsftpd ftp

2. 配置FTP服务器

修改权限,修改相关配置

增加

write_enable=YES

utf8_filesystem=YES

两条信息。

重启ftp服务器

#sudo systemctl restart vsftpd

登录成功!

尝试在浏览器访问本地FTP服务器成功!

发布者:admin,转转请注明出处:http://www.yc00.com/web/1691029800a490627.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信