阶段测试1

一:用sed 命令修改/etc/fstab文件,删除文件中的空行,注释行,并保留文件备份(7分)

答案写这里:

#查看 fatab文件内容
[root@localhost ~]# cat /etc/fstab
#

# /etc/fstab

# Created by anaconda on Sun May 26 10:28:57 2024

#

# Accessible filesystems, by reference, are maintained under '/dev/disk/'.

# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info.

#

# After editing this file, run 'systemctl daemon-reload' to update systemd

# units generated from this file.

#
/dev/mapper/cl-root     /                       xfs     defaults        0 0
UUID=9520d553-3641-401d-a3ef-f22c71c9c819 /boot                   xfs     defaults        0 0
/dev/mapper/cl-home     /home                   xfs     defaults        0 0
/dev/mapper/cl-swap     none                    swap    defaults        0 0
#使用sed命令修改/etc/fatab文件中的空行,注释行
[root@localhost ~]# sed -i.bak '/^\s*$/d; /^#/d' /etc/fstab
#查看修改完的fatab文件
[root@localhost ~]# cat /etc/fstab
/dev/mapper/cl-root     /                       xfs     defaults        0 0
UUID=9520d553-3641-401d-a3ef-f22c71c9c819 /boot                   xfs     defaults        0 0
/dev/mapper/cl-home     /home                   xfs     defaults        0 0
/dev/mapper/cl-swap     none                    swap    defaults        0 0

 

二: 用 find 命令查找出 /var/ 目录中大于1M且以db结尾的文件(7分)

答案写这里:

#使用find命令查找/var/ ,目录中大于1M且文件后缀为db的文件
[root@localhost ~]# ls /var
account  cache  db     ftp    gopher    lib    lock  mail  opt       run    tmp  yp
adm      crash  empty  games  kerberos  local  log   nis   preserve  spool  www
[root@localhost ~]# find /var/ -type f -size +1M -name "*.db"
/var/lib/mlocate/mlocate.db
 

三: 先判断当前主机是否安装了nginx包,如果没安装,则执行命令安装,如果己安装,则执行命令卸载,用短路运算实现(rocky8.6)(7分)

答案写这里:

#编写一个简单的shell脚本
[root@localhost ~]# vim install_nginx.sh
#!/bin/bash
if rpm -qa | grep -q nginx; then
    echo "nginx 已安装,正在卸载..."&&  yum remove nginx -y
    echo "nginx 已卸载"  
else
    echo "nginx 未安装,正在安装..."  &&yum install nginx -y
    echo "nginx 已安装"  
fi

~
# 执行写好的脚本,NGINX被卸载
[root@localhost ~]# bash install_nginx.sh
nginx 已安装,正在卸载...
Dependencies resolved.
========================================================================================================
 Package                        Arch      Version                                   Repository     Size
========================================================================================================
Removing:
 nginx                          x86_64    1:1.14.1-9.module_el8.0.0+184+e34fea82    @AppStream    1.7 M
Removing unused dependencies:
 nginx-all-modules              noarch    1:1.14.1-9.module_el8.0.0+184+e34fea82    @AppStream      0  
 nginx-filesystem               noarch    1:1.14.1-9.module_el8.0.0+184+e34fea82    @AppStream      0  
 nginx-mod-http-image-filter    x86_64    1:1.14.1-9.module_el8.0.0+184+e34fea82    @AppStream     29 k
 nginx-mod-http-perl            x86_64    1:1.14.1-9.module_el8.0.0+184+e34fea82    @AppStream     61 k
 nginx-mod-http-xslt-filter     x86_64    1:1.14.1-9.module_el8.0.0+184+e34fea82    @AppStream     25 k
 nginx-mod-mail                 x86_64    1:1.14.1-9.module_el8.0.0+184+e34fea82    @AppStream    113 k
 nginx-mod-stream               x86_64    1:1.14.1-9.module_el8.0.0+184+e34fea82    @AppStream    171 k

Transaction Summary
========================================================================================================
Remove  8 Packages
Removed:
  nginx-1:1.14.1-9.module_el8.0.0+184+e34fea82.x86_64                                                   
  nginx-all-modules-1:1.14.1-9.module_el8.0.0+184+e34fea82.noarch                                       
  nginx-filesystem-1:1.14.1-9.module_el8.0.0+184+e34fea82.noarch                                        
  nginx-mod-http-image-filter-1:1.14.1-9.module_el8.0.0+184+e34fea82.x86_64                             
  nginx-mod-http-perl-1:1.14.1-9.module_el8.0.0+184+e34fea82.x86_64                                     
  nginx-mod-http-xslt-filter-1:1.14.1-9.module_el8.0.0+184+e34fea82.x86_64                              
  nginx-mod-mail-1:1.14.1-9.module_el8.0.0+184+e34fea82.x86_64                                          
  nginx-mod-stream-1:1.14.1-9.module_el8.0.0+184+e34fea82.x86_64                                        

Complete!
nginx 已卸载

# 在执行一次脚本,NGINX安装成功
[root@localhost ~]# bash install_nginx.sh
nginx 未安装,正在安装...
Last metadata expiration check: 0:15:30 ago on Sun 07 Jul 2024 07:30:59 PM CST.
Dependencies resolved.
========================================================================================================
 Package                        Arch      Version                                    Repository    Size
========================================================================================================
Installing:
 nginx                          x86_64    1:1.14.1-9.module_el8.0.0+184+e34fea82     AppStream    570 k
Installing dependencies:
 nginx-all-modules              noarch    1:1.14.1-9.module_el8.0.0+184+e34fea82     AppStream     23 k
 nginx-filesystem               noarch    1:1.14.1-9.module_el8.0.0+184+e34fea82     AppStream     24 k
 nginx-mod-http-image-filter    x86_64    1:1.14.1-9.module_el8.0.0+184+e34fea82     AppStream     35 k
 nginx-mod-http-perl            x86_64    1:1.14.1-9.module_el8.0.0+184+e34fea82     AppStream     45 k
 nginx-mod-http-xslt-filter     x86_64    1:1.14.1-9.module_el8.0.0+184+e34fea82     AppStream     33 k
 nginx-mod-mail                 x86_64    1:1.14.1-9.module_el8.0.0+184+e34fea82     AppStream     64 k
 nginx-mod-stream               x86_64    1:1.14.1-9.module_el8.0.0+184+e34fea82     AppStream     85 k

Transaction Summary
========================================================================================================
Install  8 Packag
Installed:
  nginx-1:1.14.1-9.module_el8.0.0+184+e34fea82.x86_64                                                   
  nginx-all-modules-1:1.14.1-9.module_el8.0.0+184+e34fea82.noarch                                       
  nginx-filesystem-1:1.14.1-9.module_el8.0.0+184+e34fea82.noarch                                        
  nginx-mod-http-image-filter-1:1.14.1-9.module_el8.0.0+184+e34fea82.x86_64                             
  nginx-mod-http-perl-1:1.14.1-9.module_el8.0.0+184+e34fea82.x86_64                                     
  nginx-mod-http-xslt-filter-1:1.14.1-9.module_el8.0.0+184+e34fea82.x86_64                              
  nginx-mod-mail-1:1.14.1-9.module_el8.0.0+184+e34fea82.x86_64                                          
  nginx-mod-stream-1:1.14.1-9.module_el8.0.0+184+e34fea82.x86_64                                        

Complete!
nginx 已安装

~

四:请用 rpm 命令列出 nginx 包中所有的配置文件(7分)

答案写这里:

[root@localhost ~]# rpm -qc nginx
/etc/logrotate.d/nginx
/etc/nginx/fastcgi.conf
/etc/nginx/fastcgi.conf.default
/etc/nginx/fastcgi_params
/etc/nginx/fastcgi_params.default
/etc/nginx/koi-utf
/etc/nginx/koi-win
/etc/nginx/mime.types
/etc/nginx/mime.types.default
/etc/nginx/nginx.conf
/etc/nginx/nginx.conf.default
/etc/nginx/scgi_params
/etc/nginx/scgi_params.default
/etc/nginx/uwsgi_params
/etc/nginx/uwsgi_params.default
/etc/nginx/win-utf

五: 新增一块20G的硬盘,分三个区,大小分别是3GB,4GB,5GB,将这三个分区做成物理卷,然后创建卷组,在该卷组上创建一个6GB的逻辑卷,挂载至/log/ 目录下,再将该逻辑卷扩容至10GB,请写出实现步骤,文件系统不限(7分)

答案写这里:

分区新硬盘

使用fdisk分区新硬盘。

fdisk /dev/sdb

fdisk提示符下,执行以下操作:

  1. 输入n创建新分区。
  2. 选择p(主分区)。
  3. 选择分区号(例如,1)。
  4. 输入第一个扇区号(通常使用默认的第一个可用扇区)。
  5. 输入最后一个扇区号或大小(+3G,+4G,+5G),创建三个分区。
  6. 重复上述步骤为所有三个分区(3GB, 4GB, 5GB)。
  7. 输入w写入分区表并退出。

创建物理卷

将分区创建为物理卷(PV)。

 pvcreate /dev/sdb1  
 pvcreate /dev/sdb2  
 pvcreate /dev/sdb3

创建卷组

创建一个新的卷组(VG),并将上述物理卷加入其中。

 vgcreate my_vg /dev/sdb1 /dev/sdb2 /dev/sdb3

创建逻辑卷

在卷组上创建一个6GB的逻辑卷(LV)。

 lvcreate -L 6G -n my_log_lv my_vg

格式化逻辑卷

选择一个文件系统类型并格式化逻辑卷。这里使用ext4

 mkfs.ext4 /dev/my_vg/my_log_lv

挂载逻辑卷

创建挂载点并挂载逻辑卷。

 mkdir /log  
 mount /dev/my_vg/my_log_lv /log

扩容逻辑卷

 lvextend -L +4G /dev/my_vg/my_log_lv

调整文件系统大小

扩容逻辑卷后,需要调整文件系统的大小以匹配新的逻辑卷大小。

 resize2fs /dev/my_vg/my_log_lv

六:根据下列命令执行结果,写出你能读出来的信息(7分)

```bash

[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

```

答案写这里:

有一个200G的磁盘,磁盘上有sda1和sda2两个分区

其中sda1分区的大小是1G,挂载点是/boot

sda2分区的大小是199G,sda2分区被lvm管理,分为三个逻辑卷:

  • rl-root:大小为70GB,挂载点为根目录/
  • rl-swap:大小为2GB,用作交换空间(SWAP)。
  • rl-home:大小为127GB,挂载点为/home

七: 请配置一块网卡,IP地址是 10.0.0.110,子网掩码是24位,网关是 10.0.0.2,DNS分别是 10.0.0.2 和 114.114.114.114,请写出配置文件内容,另外,写一个脚本,配置成别名,该别名对 root用户永久生效,要求传入网卡设备名可以让修改后的内容重载生效。(8分)

答案写这里:

#配置新添加的网卡,在/etc/sysconfig/network-scripts/ifcfg-eth0写入新网卡的配置文件内容
NAME=ens224
DEVICE=ens224
ONBOOT=yes
IPADDR=10.0.0.110
NETMASK=255.255.255.0
GATEWAY=10.0.0.2
DNS1=10.0.0.2
DNA2=114.114.114.114
#写完网卡配置文件需要重载网卡配置
#重载网卡配置之后,使用ifconfig命令查看配置的新网卡信息ens224: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
[root@localhost ~]# ifconfig 
     inet 10.0.0.110  netmask 255.255.255.0  broadcast 10.0.0.255
        inet6 fe80::20c:29ff:fe49:e4c5  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:49:e4:c5  txqueuelen 1000  (Ethernet)
        RX packets 6  bytes 657 (657.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 13  bytes 922 (922.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

 #接下来,编写一个脚本,为root用户配置别名,并使修改后的配置重载生效。
 


八: 请描述一下一个网络请求从一台设备到另一台设备的具体过程(10分)

答案写这里:

  1. DNS解析
  • 目的:将用户输入的域名解析为对应的IP地址,因为网络通信是基于IP地址进行的。
  • 过程:
    1. 客户端首先在本地DNS缓存中查找域名对应的IP地址。
    2. 如果本地缓存中没有找到,客户端会向系统缓存(如操作系统的Hosts文件或DNS缓存)查询。
    3. 如果系统缓存中也没有,客户端会向配置的DNS服务器(如路由器缓存、ISP的DNS缓存服务器等)发起递归查询,直到找到对应的IP地址。
  1. TCP连接建立
  • 目的:在客户端和服务器之间建立一条可靠的通信通道。

  • 过程

    (TCP三次握手):

    1. 客户端向服务器发送一个SYN包(同步序列编号),请求建立连接。
    2. 服务器收到SYN包后,回应一个SYN-ACK包(同步序列编号确认),表示同意建立连接,并发送自己的初始序列号。
    3. 客户端收到SYN-ACK包后,再发送一个ACK包(确认包),确认已收到服务器的SYN-ACK包。

    完成这三个步骤后,TCP连接建立成功,客户端和服务器之间可以进行数据传输。

  1. HTTP请求发送
  • 目的:客户端向服务器发送请求,请求获取特定的资源(如网页、图片等)。
  • 过程:
    1. 客户端构建HTTP请求报文,包含请求方法(如GET、POST)、URL、协议版本、请求头等信息。
    2. 客户端通过之前建立的TCP连接,将HTTP请求报文发送给服务器。
  1. 服务器响应
  • 目的:服务器处理客户端的请求,并返回相应的响应。
  • 过程:
    1. 服务器接收到HTTP请求报文后,进行解析,获取客户端的请求信息。
    2. 服务器根据请求信息,处理请求,生成相应的HTTP响应报文,包含状态码、响应头、响应体等信息。
    3. 服务器通过TCP连接,将HTTP响应报文发送给客户端。
  1. TCP连接断开
  • 目的:在完成数据传输后,释放TCP连接占用的资源。

  • 过程

    (TCP四次挥手):

    1. 客户端发送一个FIN包(结束标志),请求关闭连接。
    2. 服务器收到FIN包后,回应一个ACK包,表示确认收到客户端的关闭请求。
    3. 服务器在发送完所有剩余数据后,也发送一个FIN包给客户端。
    4. 客户端收到服务器的FIN包后,回应一个ACK包,表示确认收到服务器的关闭请求。

    完成这四个步骤后,TCP连接被安全地关闭。

九:当执行shell脚本时,可向shell脚本传参,请说明 $0, KaTeX parse error: Expected 'EOF', got '#' at position 1: #̲,@,$* 这几个参数的含义(10分)

答案写这里:

  1. $0:表示脚本的名称。这是传给脚本的第一个参数,即脚本名本身。
  2. $#:表示传递给脚本的参数个数。它可以帮助脚本确定有多少参数被传递。
  3. $@:表示所有位置参数的单个引用。当它被双引号包围时(如"@"),它会将所有参数作为一个单独的单词处理,保留参数之间的空格。这意味着如果脚本中有多个参数,并且每个参数包含空格,‘@`会将它们视为单独的参数。
  4. $*:表示所有位置参数的单一字符串。当它被双引号包围时(如"∗"),它将所有参数视为一个单词,将所有参数合并在一起,参数之间的空格被视为一个参数内的一个空格。如果脚本中有多个参数,并且每个参数包含空格,‘*`会将它们合并为一个参数。

十: 写一个脚本,计算出100以内能被3整除的数之和,以及能被4整除的数之和,然后再输出这两个数字(10分)

答案写这里:


#!/bin/bash

# 初始化变量

sum_num_3=0
sum_num_4=0

# 循环从1到99

for i in {1..99}; do
    # 如果数字能被3整除,则加到sum_num_3
    if (( i % 3 == 0 )); then
        sum_num_3=$((sum_num_3 + i))
    fi

    # 如果数字能被4整除,则加到sum_num_4
    if (( i % 4 == 0 )); then
        sum_num_4=$((sum_num_4 + i))
    fi

done

# 输出结果

echo "100以内能被3整除的数之和: $sum_num_3"
echo "100以内能被4整除的数之和: $sum_num_4"
#执行编写的脚本
[root@localhost ~]# bash num.sh 
100以内能被3整除的数之和: 1683
100以内能被4整除的数之和: 1200

 

十一:写一个脚本,打印输出8行8列的国际象棋棋盘,使用红黄两色(10分)

答案写这里:

 #!/bin/bash
 
 # 定义颜色代码 
RED='\033[0;31m'
YELLOW='\033[1;33m'
RESET='\033[0m'

# 打印棋盘  

for ((i=0; i<8; i++))
do
    for ((j=0; j<8; j++))
    do

        # 使用模运算交替颜色  if (( (i+j) % 2 == 0 )); thenecho -ne "${YELLOW}  ${RESET}"elseecho -ne "${RED}  ${RESET}"fidone

 

十二:写一个脚本,生成10个随机数放到一个数组中,再将该数组中的元素从小大到排序进行输出(10分)

答案写这里:

 #!/bin/bash

# 生成10个随机数并放入数组中

random_numbers=()
for (( i=0; i<10; i++ )); do
    random_numbers[i]=$((RANDOM % 100))  # 生成0到99之间的随机数
done

# 使用sort命令和索引数组来排序

sorted_numbers=($(printf "%d\n" "${random_numbers[@]}" | sort -n))

# 输出排序后的数组

echo "排序后的随机数:"
for num in "${sorted_numbers[@]}"; do
    echo $num
done
#执行编写的脚本
[root@localhost ~]# bash numbers.sh 
排序后的随机数:
1
13
28
34
34
42
49
52
62
76

 
  • 18
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值