Sre网络班阶段测试(满分100分)
说明:
- 开卷,把代码和命令敲出来,能跑通,贴进来即可
2.不会写的题可以不写,但尽量写一下哪里不懂
一:用sed 命令修改/etc/fstab文件,删除文件中的空行,注释行,并保留文件备份(7分)
答案写这里:mv /etc/fstab /etc/fstab.bak
sed -i ‘/^$/d’ /etc/fstab
sed -i ‘/^#/d’ /etc/fstab
二: 用 find 命令查找出 /var/ 目录中大于1M且以db结尾的文件(7分)
答案写这里:find /var/ -type f -name “*.db” -size +1M
三: 先判断当前主机是否安装了nginx包,如果没安装,则执行命令安装,如果己安装,则执行命令卸载,用短路运算实现(rocky8.6)(7分)
答案写这里:
rpm -q nginx && yum remove -y nginx || yum install -y nginx
四:请用 rpm 命令列出 nginx 包中所有的配置文件(7分)
答案写这里:rpm -qc nginx
五: 新增一块20G的硬盘,分三个区,大小分别是3GB,4GB,5GB,将这三个分区做成物理卷,然后创建卷组,在该卷组上创建一个6GB的逻辑卷,挂载至/log/ 目录下,再将该逻辑卷扩容至10GB,请写出实现步骤,文件系统不限(7分)
答案写这里:
fdisk /dev/sdX
pvcreate /dev/sdX1 /dev/sdX2 /dev/sdX3
vgcreate myvg /dev/sdX1 /dev/sdX2 /dev/sdX3
lvcreate -L 6G -n mylv myvg
mkfs.ext4 /dev/myvg/mylv
mkdir /log
mount /dev/myvg/mylv /log
lvextend -L 10G /dev/myvg/mylv
resize2fs /dev/myvg/mylv
六:根据下列命令执行结果,写出你能读出来的信息(7分)
[mage@rocky86 ~]$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 200G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 199G 0 part
├─rl-root 253:0 0 70G 0 lvm /
├─rl-swap 253:1 0 2G 0 lvm [SWAP]
└─rl-home 253:2 0 127G 0 lvm /home
答案写这里:
七: 请配置一块网卡,IP地址是 10.0.0.110,子网掩码是24位,网关是 10.0.0.2,DNS分别是 10.0.0.2 和 114.114.114.114,请写出配置文件内容,另外,写一个脚本,配置成别名,该别名对 root用户永久生效,要求传入网卡设备名可以让修改后的内容重载生效。(8分)
答案写这里:
配置内容:
TYPE=Ethernet
BOOTPROTO=static
NAME=eth0
DEVICE=eth0
ONBOOT=yes
IPADDR=10.0.0.110
NETMASK=255.255.255.0
GATEWAY=10.0.0.2
DNS1=10.0.0.2
DNS2=114.114.114.114
脚本:
#!/bin/bash
echo -e “TYPE=Ethernet\n
BOOTPROTO=static\n
NAME=eth0\n
DEVICE=eth0\n
ONBOOT=yes\n
IPADDR=10.0.0.110\n
NETMASK=255.255.255.0\n
GATEWAY=10.0.0.2\n
DNS1=10.0.0.2\n
DNS2=114.114.114.114” > /etc/sysconfig/network-scripts/ifcfg-eth0
systemctl restart network
八: 请描述一下一个网络请求从一台设备到另一台设备的具体过程(10分)
答案写这里:
- 应用层:发送请求
- 应用程序生成请求数据,例如一个 HTTP 请求。
- 请求数据被传递给传输层。
- 传输层:建立连接
- 传输层将请求数据分割成较小的数据块(称为报文段)。
- 传输层使用传输协议(如 TCP 或 UDP)为每个报文段添加必要的控制信息,例如源端口和目标端口号。
- 报文段被传递到网络层。
- 网络层:寻址和路由
- 网络层为报文段添加源 IP 地址和目标 IP 地址。
- 路由器根据目标 IP 地址查找最佳路径,并将报文段发送到下一个网络节点。
- 报文段在网络中被传递到目标设备所在的网络。
- 数据链路层:封装成帧
- 数据链路层将报文段封装成数据帧,每个数据帧包含源和目标 MAC 地址。
- 数据帧通过物理层的网络媒介(如以太网、Wi-Fi)进行传输。
- 物理层:传输数据
- 数据帧通过物理层的连接介质,如电缆或无线信号,从源设备传输到目标设备。
- 物理层:接收数据
- 目标设备的物理层接收数据帧,并将其传递给数据链路层。
- 数据链路层:解封装
- 数据链路层从数据帧中提取报文段。
- 网络层:解析 IP 地址
- 网络层从报文段中提取 IP 地址。
- 传输层:接收数据
- 目标设备的传输层接收报文段,并根据端口号将数据传递给相应的应用程序。
- 应用层:处理请求
- 接收到的请求数据由目标设备上的应用程序进行处理和响应。
九:当执行shell脚本时,可向shell脚本传参,请说明 $0, KaTeX parse error: Expected 'EOF', got '#' at position 1: #̲,@,$* 这几个参数的含义(10分)
答案写这里:
$0:表示脚本本身的名称,即脚本文件的路径。
$#:表示传递给脚本的参数的数量。
$@:表示一个包含所有传递给脚本的参数的列表。
$*:表示一个将所有传递给脚本的参数视为单个字符串的列表。
十: 写一个脚本,计算出100以内能被3整除的数之和,以及能被4整除的数之后,然后再输出这两个数字(10分)
答案写这里:
#!/bin/bash
sum1=0
sum2=0
for (( i=1; i<=100; i++ )); do
if (( i % 3 == 0 )); then
sum1=$(( sum1 + i ))
fi
if (( i % 4 == 0 )); then
sum2=$(( sum2 + i ))
fi
done
echo “能被3整除的数之和: s u m 1 " e c h o " 能被 4 整除的数之和: sum1" echo "能被4整除的数之和: sum1"echo"能被4整除的数之和:sum2”
十一:写一个脚本,打印输出8行8列的国际象棋棋盘,使用红黄两色(10分)
答案写这里:
#!/bin/bash
定义红色和黄色的 ANSI 转义码
RED=“\033[31m”
YELLOW=“\033[33m”
RESET=“\033[0m”
定义棋盘尺寸
ROWS=8
COLUMNS=8
遍历棋盘的每个格子
for (( row=1; row<=ROWS; row++ )); do
for (( col=1; col<=COLUMNS; col++ )); do
# 计算格子的奇偶性以确定颜色
if (( (row + col) % 2 == 0 )); then
# 偶数格子为红色
echo -e -n “
R
E
D
██
{RED}██
RED██{RESET}”
else
# 奇数格子为黄色
echo -e -n “
Y
E
L
L
O
W
██
{YELLOW}██
YELLOW██{RESET}”
fi
done
echo # 换行到下一行
done
十二:写一个脚本,生成10个随机数放到一个数组中,再将该数组中的元素从小大到排序进行输出(10分)
答案写这里:
#!/bin/bash
生成10个随机数并放入数组
for (( i=0; i<10; i++ )); do
random_number=
(
(
R
A
N
D
O
M
r
a
n
d
o
m
a
r
r
a
y
[
(( RANDOM % 100 )) # 生成0到99之间的随机数 random_array[
((RANDOMrandomarray[i]=$random_number
done
对数组进行排序
sorted_array=( ( p r i n t f ′ (printf '%s\n' " (printf′{random_array[@]}" | sort -n))
输出排序后的数组
echo “排序后的数组:”
for number in “
s
o
r
t
e
d
a
r
r
a
y
[
@
]
"
;
d
o
e
c
h
o
"
{sorted_array[@]}"; do echo "
sortedarray[@]";doecho"number”
done