【无标题】

测试

1,使用sed命令修改/etc/fstab 文件,删除文件中的空行,注释行,并对文件进行备份

答案:
sed -i.bak ‘/^\s*$/d; /^#/d’ /etc/fstab

2,使用find命令查找出/var/ 目录下大于1M且以db结束的文件

答案:
find /var/ -type f -size +1M -name “*.db”

3,判断当前主机是否安装nignx包,如果没安装则执行安装,如果安装了则执行命令卸载,用短路运算实现

答案:

 rpm -q nginx
package nginx is not installed
 if  [ $? -eq 0 ];then  rpm -e nginx || yum -y install nginx;fi

4,请用rpm命令列出nignx包中的所有配置文件

答案

rpm -ql nignx

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

答案:
1,先新增一块20G的硬盘

在这里插入图片描述

对新硬盘sdb进行分区

在这里插入图片描述

通过命令 fdisk /dev/sdb 进行分区 对1,2,3分区依次分 3,4,5G 

在这里插入图片描述

w 保存

在这里插入图片描述

将分区 sdb1,2,3 贴上lvm的标签

在这里插入图片描述

用pvcreate命令将分配好的分区改为物理卷
相关工具下载
yum -y install lvm2

创建物理卷组

root@rocky8 ~]$ pvcreate /dev/sd{b1,b2,b3}
 Physical volume "/dev/sdb1" successfully created.
  Physical volume "/dev/sdb2" successfully created.
  Physical volume "/dev/sdb3" successfully created.
[root@rocky8 ~]$ pvs
  PV         VG Fmt  Attr PSize    PFree
  /dev/sda2  rl lvm2 a--  <199.00g    0 
  /dev/sdb1     lvm2 ---     3.00g 3.00g
  /dev/sdb2     lvm2 ---     4.00g 4.00g
  /dev/sdb3     lvm2 ---     5.00g 5.00g


再创建卷组 test

root@rocky8 ~]$ vgcreate test /dev/sd{b1,b2,b3}
^[[3~  Volume group "test" successfully created
[root@rocky8 ~]$ vgs
  VG   #PV #LV #SN Attr   VSize    VFree  
  rl     1   3   0 wz--n- <199.00g      0 
  test   3   0   0 wz--n-  <11.99g <11.99g

创建逻辑卷mysql_lv,指定6G大小

root@rocky8 ~]$ lvcreate -n mysql_lv -L 6G test
  Logical volume "mysql_lv" created.
[root@rocky8 ~]$ lvs
  LV       VG   Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  home     rl   -wi-ao---- 126.96g                                                    
  root     rl   -wi-ao----  70.00g                                                    
  swap     rl   -wi-ao----   2.03g                                                    
  mysql_lv test -wi-a-----   6.00g     

为mysql_lv 创建一个文件系统,以ext4 为例

[root@rocky8 ~]$ mkfs.ext4 /dev/test/mysql_lv 
mke2fs 1.45.6 (20-Mar-2020)
Creating filesystem with 1572864 4k blocks and 393216 inodes
Filesystem UUID: d91f26b5-85c9-4505-9c80-d2d6e264b553
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done 

将逻辑卷分区永久挂载到log目录下
在这里插入图片描述

	然后创建文件/log ,再让他挂载生效
mkdir /log
mount -a

再将逻辑卷扩容到10G

lvextend -r -L 10G /dev/test/mysql_lv

root@rocky8 ~]$ df -h
Filesystem                 Size  Used Avail Use% Mounted on
devtmpfs                   867M     0  867M   0% /dev
tmpfs                      896M     0  896M   0% /dev/shm
tmpfs                      896M  9.5M  886M   2% /run
tmpfs                      896M     0  896M   0% /sys/fs/cgroup
/dev/mapper/rl-root         70G  6.1G   64G   9% /
/dev/mapper/rl-home        127G  939M  126G   1% /home
/dev/mapper/test-mysql_lv  9.8G   27M  9.3G   1% /log
/dev/sda1                 1014M  258M  757M  26% /boot
tmpfs                      180M   24K  179M   1% /run/user/0
/dev/sr0                    10G   10G     0 100% /run/media/root/Rocky-8-5-x86_64-dvd

6,根据下面命令结果,写出你能读出的信息

在这里插入图片描述
答案:

sda 分区总共200G容量 
sda1 占1G 挂载到/boot 目录下
sda2 占199G 其中有3个逻辑卷
rl-root逻辑卷占用70G 挂载到根目录下
rl-swap逻辑卷 占用2G 挂载到swap分区
rl-home逻辑卷 占用127G 挂载到/home目录下

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

答案:

DEVICE=eth0
NAME=eth0
BOOTPROTO=static
IPADDR=10.0.0.110
PREFIX=24
GATEWAY=10.0.0.2
DNS1=10.0.0.2
DNS2=114.114.114.114
ONBOOT=yes
脚本不会写 不懂什么是网络的别名 和怎么对root用户永久生效

8,请描述一下一个网络请求从一台设备到另一台设备的具体过程

答案:
1,当双方都处于(closed)状态,当客户端向服务器发送连接请求时,会发送SYN(同步)标志位的TCP包,将序列号设为随机值(seq=x)
此时客户端进入到SYN-SENT状态(同步已发送),等待服务器回应
2,服务器收到客户端的SYN包和ACK(确认)标志位的TCP包后,将确认号设为客户端的序列号+1(ACK=X+1),同时将自己的序列号设为随机值(seq=y)
这时,服务器进入到SYN-RCVD(同步收到)状态
3,客户端收到服务器的SYN+ACK包后,发送一个带有ACK标志位的TCP包,将确认号设为服务器的序列号+1(ACK=Y+1)
服务器收到客户端的ACK包后,双方都进入已建立连接的ESTABLISHED状态,并开始数据传输

9,当执行shell脚本时,可向shell脚本传参,请说明 0 , 0, 0,#, @ , @, @,* 这几个参数的含义

答案:
$0: 代表当前执行的脚本或命令的名称。如果脚本包含路径,那么$0也会包含这个路径。
$#:代表传递给脚本的位置参数(即命令行参数)的个数。
$@ 和 ∗ :含义:都代表传递给脚本的所有位置参数的列表。区别:在大多数情况下,它们看起来可能很相似,但在被双引号包围时,它们的行为会有所不同。 " *: 含义:都代表传递给脚本的所有位置参数的列表。 区别:在大多数情况下,它们看起来可能很相似,但在被双引号包围时,它们的行为会有所不同。 " :含义:都代表传递给脚本的所有位置参数的列表。区别:在大多数情况下,它们看起来可能很相似,但在被双引号包围时,它们的行为会有所不同。"@":将每个参数视为独立的字符串。如果脚本在遍历这些参数时使用了双引号,那么每个参数都会保持其完整性。
" ∗ " :将所有参数视为一个单一的字符串,参数之间由 I F S ( I n t e r n a l F i e l d S e p a r a t o r ,内部字段分隔符,默认为空格)的第一个字符分隔。这意味着,在双引号内,所有参数会被视为一个整体。用途:在需要处理所有参数的场合,这两个变量都非常有用。但是,如果你需要保持参数的独立性(比如,在循环中分别处理它们),那么 " *":将所有参数视为一个单一的字符串,参数之间由IFS(Internal Field Separator,内部字段分隔符,默认为空格)的第一个字符分隔。这意味着,在双引号内,所有参数会被视为一个整体。 用途:在需要处理所有参数的场合,这两个变量都非常有用。但是,如果你需要保持参数的独立性(比如,在循环中分别处理它们),那么" ":将所有参数视为一个单一的字符串,参数之间由IFSInternalFieldSeparator,内部字段分隔符,默认为空格)的第一个字符分隔。这意味着,在双引号内,所有参数会被视为一个整体。用途:在需要处理所有参数的场合,这两个变量都非常有用。但是,如果你需要保持参数的独立性(比如,在循环中分别处理它们),那么"@"是更好的选择。

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

答案:

num_3=0
num_4=0
for ((i=1; i<100; i++))
do
    if ((i % 3 == 0)); then
        ((num_3 += i))
    fi
    if (( i % 4 == 0)); then
        ((num_4 += i))
    fi
    done
    echo "100以内能被3整除的数之和是$num_3"
    echo "100以内能被4整除的数之和是$num_4"

11,写一个脚本,打印输出8行8列的国际象棋棋盘,使用红黄两色

答案:

for i in {1..8}; do
    for j in {1..8}; do
        temp1=$((i % 2))
        temp2=$((j % 2))
        if [ $temp1 -eq $temp2 ]; then
            echo -e -n "\033[43m  \033[0m"
        else                                                                                 
            echo -e -n "\033[41m  \033[0m"
        fi
    done
    echo
done

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

答案:

numbers=()
for (( i=0; i<10; i++));do
random_num=($((RANDOM % 100 +1)))
numbers+=($random_num)
done
sort_numbers=($(printf "%s\n" "${numbers[@]}" | sort -n))                                                                                                                                     
echo "${sort_numbers[@]}"

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值