第六周作业

author author     2022-08-04     415

关键词:

题外话:

1)吐槽一下,作为一个才看到 37 节的人,来做这周的作业,难度可想而知

2)习题中很多所指文件在我的系统上都不存在,所以我会是使用格式近似的文件来作为替代

3)我把第三题和第二题的位置互换了一下,不影响测试



本周作业内容:

1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#;

思路

        1)  vim 编辑器内部指令添加

        2) 使用 sed 命令添加

先复制文件,Fedora 23 上没有 /etc/rc.d/rc.sysinit 这个文件,我使用 /etc/rc.d/init.d/functions 这个文件来替代

cp /etc/rc.d/init.d/functions /tmp
vim /tmp/functions
# 然后输入以下内容
:%[email protected](^[[:space:]]+)@#[email protected]

技术分享

退出不保存


现在使用 sed 命令来替换

sed -i -r "s/(^[[:space:]]+)/#1/g" /tmp/functions

技术分享




3、删除/tmp/rc.sysinit文件中的以#开头,且后面跟了至少一个空白字符的行行的#和空白字符

使用 /tmp/functions 作为演示,在第一题中已经被加入 # 号


依旧是两种思路

vim:

:%[email protected]^#([[:space:]]+)@[email protected]

技术分享


退出不保存


sed:

sed -i -r "s/^#[[:space:]]+//g" /tmp/functions

技术分享



2、复制/boot/grub/grub.conf至/tmp目录中,删除/tmp/grub.conf文件中的行首的空白字符;

使用新的 /tmp/functions 作为演示

复制一个新的 functions 到 /tmp 

cp /etc/rc.d/init.d/functions /tmp


vim:

:%[email protected]^[[:space:]][email protected]@g

技术分享

退出不保存


sed 

sed -i -r "s/^[[:space:]]+//g" /tmp/functions

技术分享



4、为/tmp/grub.conf文件中前三行的行首加#号;

使用 /tmp/functions 作为演示,先清除掉所有行开头的 # 与空格

sed -i -r "s/^#[[:space:]]*//g" /tmp/functions


vim 

:1,[email protected](.*)@#[email protected]

技术分享

退出不保存(迷一样的高亮显示


sed

sed -i -r "1,3s/(.*)/#1/g" /tmp/functions

技术分享





5、将/etc/yum.repos.d/CentOS-Media.repo文件中所有的enabled=0或gpgcheck=0的最后的0修改为1;


使用 /etc/yum.repos.d/fedora.repo 复制到 /tmp 作为演示

复制文件

cp /etc/yum.repos.d/fedora.repo /tmp


vim (17行与28行

:%[email protected](enabled=|gpgcheck=)[email protected][email protected]

技术分享



sed(原来 sed 里面的定界符也是可以随意换

sed -i -r "[email protected](enabled=|gpgcheck=)[email protected][email protected]" /tmp/fedora.repo

技术分享



6、每4小时执行一次对/etc目录的备份,备份至/backup目录中,保存的目录名为形如etc-201608300202

7、每周2,4,6备份/var/log/messages文件至/backup/messages_logs/目录中,保存的文件名形如messages-20160830

8、每天每两小时取当前系统/proc/meminfo文件中的所有以S开头的信息至/stats/memory.txt文件中

9、工作日的工作时间内,每两小时执行一次echo "howdy"


我在很早以前就写过关于 Crontab 的博客了,这是链接:http://www.cnblogs.com/divent/p/5743008.html


创建备份需要的文件(夹)

mkdir /backup
touch /stats/memory.txt

使用 crontab -e 打开配置文件并编辑

按照题序

0 */4 * * * /bin/cp -a /etc /backup/etc-$(date +\%Y\%m\%d\%H\%M)
0 0 * * 2,4,6 /bin/cp /var/log/messages /backup/messages_logs/messages-$(date +\%Y\%m\%d)
0 */2 * * * /bin/grep "^S" /proc/meminfo >> /stats/memory.txt
# 假设工作时间周一至周五 8-12 14-18
0 8-12/2 * * 1-5 /bin/echo "howdy"
0 14-18/2 * * 1-5 /bin/echo "howdy"




脚本编程练习

10、创建目录/tmp/testdir-当前日期时间; 

11、在此目录创建100个空文件:file1-file100

脚本名:mage-test

#!/bin/bash
# Auther: divent
# 2016-09-11 19:44:14
# mage script test10-11

dirname="testdir-$(date +\%Y\%m\%d\%H\%M)"

mkdir /tmp/$dirname

for i in {1..100};
do
	touch /tmp/$dirname/file$i
done

技术分享





12、显示/etc/passw d文件中位于第偶数行的用户的用户名;

思路

1)使用 sed ,每次输入 2 行,然后删除第一行

sed ‘1~2d‘ /etc/passwd | cut -d ":" -f 1

2)使用 awk,取出偶数行

awk ‘NR%2==0‘ /etc/passwd | cut -d ":" -f 1

技术分享


3)算法,使用脚本,根据算法限位取出偶数行(假设还不会使用 awk 与 sed

脚本名:mage-test2

#!/bin/bash
# Auther: divent
# 2016-09-11 20:08:31
# mage script test12

# 获得 /etc/passwd 的最大行
maxline=$(wc -l /etc/passwd | cut -d " " -f 1)

# 从 1 循环到最大行
for i in $(seq 1 $maxline);
do
        #取余,用于判断
	n=$[ $i%2 ]
	if [ "$n" -eq "0" ];then
	        #如果是偶数,则显示 i 对应的行数,使用 head 与 tail 来显示对应行,使用 cut 来切割出用户名
        	echo -e "
$(head -n $i /etc/passwd | tail -n 1 | cut -d ":" -f 1)"
	fi
done


技术分享



13、创建10用户user10-user19;密码同用户名;

14、在/tmp/创建10个空文件file10-file19; 

15、把file10的属主和属组改为user10,依次类推。

脚本名:mage-test3

#!/bin/bash
# Auther: divent
# 2016-09-11 21:57:43
# mage script test 13-15

# 创建10到19的循环
for i in $(seq 10 19);
do
	# 创建用户
	useradd "user$i"
	# 设置密码
	echo "user$i" | passwd --stdin "user$i"
	# 创建文件
	touch /tmp/file$i
	# 修改权限
	chown "user$i":"user$i" /tmp/file$i
done


技术分享

技术分享





本文出自 “Divent” 博客,谢绝转载!

第六周作业

第六周作业1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#;[[email protected] tmp]# cp /etc/rc.d/rc.sysinit /tmp[[email protected] tmp]# sed& 查看详情

第六周作业

第六周作业1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; 命令:cp /etc/rc.d/rc.sysinit /tmp/sed -i ‘[email protected]^[[:space:]]@#  @g效果:[[e 查看详情

第六周作业

7-1 高速公路超速处罚1.实验代码#include<stdio.h>intmain(){intspeed,speedlimit;doublex;scanf("%d%d",&speed,&speedlimit);x=(double)(speed-speedlimit)*100/speedlimit;if(x>=50){printf("Exceed%.0f 查看详情

第六周作业

本周作业内容:1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; 答:[[email protected] ~]# cp /etc/rc.d/rc.sysinit /tmp/[[email protected] ~]#&nb 查看详情

第六周作业

7-1:1.代码:#include<stdio.h>intmain(){ floata,b,x; scanf("%f%f",&a,&b); x=(a-b)/b*100; if(x<10) { printf("OK"); } else{ if(50<=x) { printf("Exceed%.0f%%.LicenseRevoked",x); } el 查看详情

第六周小组作业-17141

软件测试第六周作业U201517141陈国晋1.基本任务:功能测试和测试管理模块划分-网易云课堂模块划分—毕博平台个人负责模块----个人中心模块网易云课堂登录登录个人中心管理中心总体流程图测试说明测试用例设计测试流程网易云... 查看详情

第六周作业

1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; ]#cp/etc/rc.d/rc.sysinit/tmp  vim/tmp/rc.sysinit :%[email protected]^([[:space:]]+)@#[email protected]2、复制/ 查看详情

第六周作业

1.计划说明1.1产品选择本小组选择的A产品为百词斩,B产品为扇贝单词1.2完成进度测试表项目内容说明预估耗时(分钟)实际耗时(分钟)Planning计划2010·Estimate估计这个任务需要多少时间1010TestingDesign测试设计200180·Analysis需求和... 查看详情

第六周作业

7-1:#include<stdio.h>intmain(){inta,b;doublec;scanf("%d%d",&a,&b);c=(a-b)*100.0/b;if(c<10)printf("OK");elseif(c<50)printf("Exceed%.0f%%.Ticket200",c);elseprintf("Exceed%.0f%%.Licen 查看详情

第六周作业

#第一题:#include<stdio.h>intmain(){inta,b;doublec;scanf("%d%d",&a,&b);c=(a-b)*100.0/b;if(c<10)printf("OK");elseif(c<50)printf("Exceed%.0f%%.Ticket200",c);elseprintf("Exceed%.0f%%.Lice 查看详情

第六周作业

本周作业内容:1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#;#cp/etc/rc.d/rc.sysinit/tmp#vim/tmp/rc.sysinit:%s/^[[:space:]]+/#&/g 2、复制/boot/grub/grub.conf至/tmp目录中,删除/tmp/ 查看详情

第六周作业

1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#;[[email protected] ~]# cp /etc/rc.d/rc.sysinit /tmp/ | sed -i ‘/^[[:space:]]+/i# 查看详情

第六周作业

***PTA*****题目7-1高速公路超速处罚**1.实验代码 #include<stdio.h>intmain(){inta,b;doublec;scanf("%d%d",&a,&b);c=(double)(a-b)*100/(double)b;if(c<10)printf("OK");elseif(c<50)printf("Exceed%.0 查看详情

第六周作业

要求一: 要求二:题目7-1高速公路超速处罚1.实验代码:#include<stdio.h>intmain(){floata,b,x;scanf("%f%f",&a,&b);x=((a-b)/b)*100;if(x<10){printf("OK");}elseif(50<=x){printf("Exceed%.0f%%.LicenseRevoked 查看详情

第六周作业

#include<stdio.h>intmain(){intc,s;doublex;scanf("%d%d",&c,&s);x=(double)(c-s)*100/(double)s;if(x<10)printf("OK");elseif(x>10&&x<50)printf("Exceed%.0f%%.Ticket200",x);els 查看详情

第六周作业

要求二题目7-1高速公路超速处罚1.实验代码#include<stdio.h>intmain(){inta,b;doublex;scanf("%d%d",&a,&b);x=(a-b)*100.0/b;if(x<10)printf("OK");elseif(x<50)printf("Exceed%.0f%%.Ticket200",x);elseprintf(" 查看详情

第六周作业

   题目7-1高速公路超速处罚1.实验代码#include<stdio.h>intmain(){inta,b;doublex;scanf("%d%d",&a,&b);x=100.0*(a-b)/b;if(x<10)printf("OK");elseif(x<50)printf("Exceed%.0f%%.Ticket200", 查看详情

第六周小组作业

1、计划说明1.1测试产品我们组选择的产品是毕博平台和网易云课堂。1.2测试进度表 项目内容说明预估耗时(分钟)实际耗时(分钟)Planning计划3040·Estimate· 估计这个任务需要多少时间20 20TestingDesign测试设计90120·Analy... 查看详情