一、10 个选择题(每个题 2 分,共 20 分) (加黑的为选择答案)
1、查看当前 linux 各分区的大小及使用情况的命令是什么?
A、du -lh
B、df -lh
C、ls -lh
D、fdisk -l /dev/sd[a-z]
2、使用 fdisk 对磁盘进行分区时,LVM 分区的类型为
A、l
B、lvm
C、9e
D、8e
3、有关以下有关 bash 特殊变量说法错误的有
A、$0:在脚本中用于引用传递给脚本名称本身;
B、$#:保存传递给当前脚本的参数的个数;
C、$?:保存上一条命令的执行结果成功是否的状态,取值范围为 0-100;
D、$*:保存传递给当前脚本的所有参数;
4、两块磁盘实验 RAID1 之后,整体性能会变
A、好
B、差
C、不变
D、变成 2 倍读写
5、取出 file 文件中有数字的那一行并输出行号,下面正确的是
A、grep -n '[0-9]' file
B、grep '[0-9]' file
C、grep '^[0-9]' file
D、grep '0-9' file
6、下列关于 grep 方法,错误的是
A、-a :将 binary 文件以 text 文件的方式查找数据
B、-v :反向选择,即显示出没有‘查找字符串'内容的那一行
C、-i :忽略大小写的区别,即把大小写视为相同
D、-l :只显示文件具体内容
7、下列关于 linux 常见文件类型错误的是
A、NFS
B、ext2
C、swap
D、sda
8、下列不是磁盘管理的 linux 命令有
A、fdisk
B、mkfs
C、fsck
D、top
9、有关 RAID 以下说法错误的是
A、raid0,对数据读写均有提升,可以提供数据冗余能力,至少需要 3 块磁盘
B、raid1 对数据有冗余能力,写数据能力略有下降
C、raid4 读写性能均有提升,有冗余能力
D、raid4 读写性能均有提升,有冗余能力
10、如何在命令航中快速删除光标前的内容
A、ctrl + u
B、ctrl + k
C、ctrl + e
D、ctrl + b
二、5个简单题(每个题 7 分,共 35 分)
1、编写脚本,实现自动添加三个用户,并计算这三个用户的 uid 之和
#!/bin/bash
read -p "Please input 3 usernames: " username1 username2 username3
useradd $username1
useradd $username2
useradd $username3
uid1=`grep $username1 /etc/passwd | cut -d: -f3`
uid2=`grep $username2 /etc/passwd | cut -d: -f3`
uid3=`grep $username3 /etc/passwd | cut -d: -f3`
let sum=$uid1+$uid2+$uid3
echo "uid 之和等于:$sum"
验证
[root@laowei01 ~]#bash uid_sum.sh
Please input 3 usernames: han xiao long
uid 之和等于:3156
.....
han:x:1051:1051::/home/han:/bin/bash
xiao:x:1052:1052::/home/xiao:/bin/bash
long:x:1053:1053::/home/long:/bin/bash
2、找出 ifconfig 中的 ip 地址。要求结果只显示 IP 地址
[root@laowei01 ~]#ifconfig | grep -E "\<inet\>" | sed -nr 's/^[^0-9]+([0-9.]+)[[:blank:]]+.*$/\1/p'
192.168.44.101
127.0.0.1
3、简述 raid 的优缺点
RAID-0:读写提升,无容错,多个并联
RAID-1:读提升,写略下降,镜像,有冗余,50%利用率
RAID-5:读写提升,可用N-1,最多只能坏一块,每块硬盘上都有1个校验位
RAID-6:读写提升,可用N-2,最多只能坏两块,每块硬盘上都有2个校验位
RAID-10(1和0组合):读写提升,先1后0,容错性好
RAID-01(1和0组合):读写提升,先0后1,容错性差
4、简述 grep 常用选项,最少写 10 项
-m #:匹配多少次后停止
-v 忽略匹配到的行
-i 忽略字符大小写
-n 显示匹配的行号
-c 统计匹配的行数
-o 仅显示匹配到的字符串
-q 静默模式,不输出任何信息
-A # after, 后#行
-B # before, 前#行
-C # context, 前后各#行
-w 匹配整个单词
-E 使用ERE(扩展正则表达式)
5、添加用户 bash,testbash,basher 及 nologin,前三个用户默认 shell 为/bin/bash,nologin 默认 shell 为/sbin/nologin,而后找出用户名与 shell 名相同的用户;
[root@laowei01 ~]#grep -E "^([^:]+):.*\<\1$" /etc/passwd
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
bash:x:1054:1054::/home/bash:/bin/bash
nologin:x:1057:1057::/home/nologin:/sbin/nologin
三、3个实战题(每题 15 分,共 45 分)
1、用 shell 脚本求 1 至 101 之间所有奇数之和,其中 51-60(包含 51 和 60)之间的数不参与计算
#!/bin/bash
for((i=1;i<=101;i++))
do
var=$[$i%2]
[ $var -ne 0 ] && [ $i -lt 51 -o $i -gt 60 ] && let sum+=$i
done
echo $sum
计算结果:
[root@laowei01 ~]#bash sum_odd.sh
2326
2、创建一个 LV,要求大小为 10G,名称为 mylv,指定卷组为 bjwf,并挂载到/data 上
[root@laowei01 ~]#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 100G 0 part /
├─sda3 8:3 0 4G 0 part [SWAP]
└─sda4 8:4 0 95G 0 part /data
sdb 8:16 0 20G 0 disk
└─sdb1 8:17 0 20G 0 part
sr0 11:0 1 10.3G 0 rom
[root@laowei01 ~]#pvcreate /dev/sdb1 #创建物理卷
Physical volume "/dev/sdb1" successfully created.
[root@laowei01 ~]#vgcreate bjwf /dev/sdb1 #创建卷组
Volume group "bjwf" successfully created
[root@laowei01 ~]#lvcreate -n mylv -L 10G bjwf #创建逻辑卷
Logical volume "mylv" created.
[root@laowei01 ~]#lvdisplay
--- Logical volume ---
LV Path /dev/bjwf/mylv
LV Name mylv
VG Name bjwf
LV UUID pnp9JL-ukcw-NO6I-TlUo-ZECY-G6H2-VByWF8
LV Write Access read/write
LV Creation host, time laowei01.localdomain, 2020-04-13 17:24:00 +0800
LV Status available
# open 0
LV Size 10.00 GiB
Current LE 2560
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
[root@laowei01 ~]#mkfs.xfs /dev/bjwf/mylv #创建文件系统
meta-data=/dev/bjwf/mylv isize=512 agcount=4, agsize=655360 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=2621440, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@laowei01 ~]#mount /dev/bjwf/mylv /data #挂载逻辑卷
[root@laowei01 ~]#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 100G 0 part /
├─sda3 8:3 0 4G 0 part [SWAP]
└─sda4 8:4 0 95G 0 part /data
sdb 8:16 0 20G 0 disk
└─sdb1 8:17 0 20G 0 part
└─bjwf-mylv 253:0 0 10G 0 lvm /data
sr0 11:0 1 10.3G 0 rom
3、创建一个 raid5
[root@laowei01 ~]#mdadm -C /dev/md0 -a yes -l 5 -n 3 /dev/sdb /dev/sdc /dev/sdd
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
[root@laowei01 ~]#mkfs.xfs /dev/md0
meta-data=/dev/md0 isize=512 agcount=16, agsize=654720 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=10475520, imaxpct=25
= sunit=128 swidth=256 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=5120, version=2
= sectsz=512 sunit=8 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@laowei01 ~]#mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Mon Apr 13 17:36:14 2020
Raid Level : raid5
Array Size : 41908224 (39.97 GiB 42.91 GB)
Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
Raid Devices : 3
Total Devices : 3
Persistence : Superblock is persistent
Update Time : Mon Apr 13 17:36:54 2020
State : clean
Active Devices : 3
Working Devices : 3
Failed Devices : 0
Spare Devices : 0
Layout : left-symmetric
Chunk Size : 512K
Consistency Policy : resync
Name : laowei01.localdomain:0 (local to host laowei01.localdomain)
UUID : 9a6eb5f0:1892e846:e818bdde:730ab905
Events : 20
Number Major Minor RaidDevice State
0 8 16 0 active sync /dev/sdb
1 8 32 1 active sync /dev/sdc
3 8 48 2 active sync /dev/sdd