Linux 操作系统
更新: 6/22/2025 字数: 0 字 时长: 0 分钟
- 时间:14:30 - 16:30
- 地点:中心楼 628-630
- 监考老师:安翎嘉、胡晓程
第一大题
1.1
公司安装 CentOS stream 9 操作系统时为什么用虚拟机?创建虚拟机的软件有哪些?(至少两种)。
使用虚拟机的原因:
- 资源隔离和安全性:虚拟机提供隔离环境,避免影响物理主机
- 快速部署和复制:可以快速创建多个相同配置的虚拟机
- 便于测试和开发:不会影响生产环境
- 节省硬件成本:多台虚拟机可运行在同一物理服务器上
- 快照功能:便于系统备份和恢复
创建虚拟机的软件:
- VMware Workstation
- VirtualBox
- Hyper-V
1.2
结合云计算与大数据平台的搭建测试工作。论述安装 CentOS stream 9 操作系统的步骤
云计算与大数据平台搭建中的安装步骤:
准备阶段:
- 下载 CentOS Stream 9 ISO 镜像
- 准备虚拟机环境
- 确保硬件满足最低要求 (CPU、内存、存储)
安装过程:
- 启动系统并从 ISO 镜像引导
- 配置网络连接
- 选择安装类型
- 配置磁盘分区 (建议:
/boot
,swap
,/
,/home
等) - 设置 root 密码和创建普通用户
- 开始安装并等待完成
- 安装完成后重启系统
1.3
小张完成 CentOS stream 9 安装后,为了防止在后续配置和测试过程中因操作不当损毁系统,领导让他使用虚拟机提供的“快照”轻量级备份工具进行备份。请简要说明该工具的使用步骤。
使用快照备份工具的步骤:
- 打开虚拟机管理软件 (如 VMware 或 VirtualBox)
- 选择目标虚拟机
- 找到"快照"或"Snapshot"功能菜单
- 点击"创建快照"或"Take Snapshot"
- 输入快照名称和描述 (如"初始安装完成状态")
- 确认创建快照
- 等待快照创建完成
恢复快照的步骤:
- 打开虚拟机管理软件
- 选择目标虚拟机
- 找到"快照管理器"或"Snapshot Manager"
- 选择要恢复的快照
- 点击"恢复"或"Revert"
- 确认恢复操作
1.4
请你为系统创建销售部 (group1) 和技术部 (group2) 两个用户组,然后为每个部门创建一个用户,用户名分别为 tom1 和 tom2,初始密码均为 111111。
# 创建用户组
sudo groupadd group1 # 销售部
sudo groupadd group2 # 技术部
# 创建用户并设置初始密码
sudo useradd -g group1 -m tom1 # 销售部用户
echo "111111" | sudo passwd --stdin tom1
sudo useradd -g group2 -m tom2 # 技术部用户
echo "111111" | sudo passwd --stdin tom2
1.5
根据公司要求,在第二块磁盘 (
/dev/sdb
) 上创建一个 ext4 文件系统,并挂载到/var/www/images
日录,用于存储商品图片。
# 1. 查看磁盘情况
sudo fdisk -l
# 2. 假设/dev/sdb是第二块磁盘,创建文件系统
sudo mkfs.ext4 /dev/sdb
# 3. 创建挂载点目录
sudo mkdir -p /var/www/images
# 4. 临时挂载
sudo mount /dev/sdb /var/www/images
# 5. 永久挂载(编辑/etc/fstab)
echo "/dev/sdb /var/www/images ext4 defaults 0 0" | sudo tee -a /etc/fstab
# 6. 验证挂载
mount | grep /var/www/images
第二大题
2.1
企业服务器的 IP 地址为 192.168.10.20,安装 Nginx Web 服务器,并配置为开机自启,并验证 Nginx 服务是否可以正常访问?
# 安装Nginx
sudo dnf install nginx -y
# 启用Nginx开机自启动
sudo systemctl enable nginx
# 验证Nginx是否可以正常访问
ping -I 192.168.10.20
2.2
在完成今日各项任务时,为提高效率决定使用 shell 脚本,而编写脚本离不开编辑器。请写出两种以上编辑器,并详细说明它们具体使用方法。
常用的编辑器主要有 Vim 和 Nano
Vim 的三种主要模式:
- 普通模式 (Normal mode) - 打开文件后默认进入的模式
i
进入插入模式:
进入命令模式h
j
k
l
分别对应左、下、上、右移动光标x
删除当前字符dd
删除当前行yy
复制当前行p
粘贴u
撤销Ctrl + r
重做
- 插入模式 (Insert mode) - 编辑文本内容
- 按
i
进入插入模式 - 此时可以像普通编辑器一样输入文本
- 按
Esc
返回普通模式
- 按
- 命令模式 (Command mode) - 执行保存、退出等操作
- 在普通模式下按 : 进入
:w
保存文件:q
退出:wq
保存并退出:q!
不保存强制退出:set number
显示行号:/
搜索词,向下搜索:?
搜索词,向上搜索
Nano 编辑器常用快捷键:
Ctrl + O
保存文件,然后按 Enter 确认Ctrl + X
退出,如果有未保存的修改会提示保存Ctrl + K
剪切当前行Ctrl + U
粘贴Ctrl + W
搜索Ctrl + \
替换Ctrl + G
打开帮助Alt + U
撤销Alt + E
重做
2.3
为确认
/var/log
目录下日志文件是否占用过多磁盘空间,小李需要编写一个 Shell 脚本,统计该目录下所有日志文件的总大小(以 MB 为单位),并将结果输出到文件logsize.txt
中请完成该脚本编写
#!/bin/bash
size=$(find /var/log -type f -name "*.log" -exec du -ch {} + | awk '/total$/{print $1}')
echo "${size:-0}" > logsize.txt
2.4
根据供应商给出的价格计算两台新服务器的总费用,编写一个 Shell 脚本,提示用户输入两台新服务器的价格(单位:元),然后计算并显示这两台服务器的总价
#!/bin/bash
# 获取第一台服务器价格
read -p "请输入第一台服务器的价格(元): " a
# 获取第二台服务器价格
read -p "请输入第二台服务器的价格(元): " b
# 计算总价
total=$(echo "$a+ $b")
# 显示结果
echo "总价格: ${total}元"
第三大题
3.1
为统一实验室文档格式,小李需编写一个 Shell 脚本,将
/home/students/documents
目录下所有扩展名为.txt
的文件重命名为扩展名为.md
的文件,请完成脚本编写。
#!/bin/bash
# 批量重命名.txt为.md的脚本
cd /home/students/documents
# 进入目录并执行重命名
for f in *.txt;
do
mv -v "$f" "${f%.txt}.md"
done
3.2
新学期 10 名新生加入实验室,小李要为他们创建账号并分配到
group1
组。编写一个 Shell 脚本,创建名为group1
的新组,然后创建 10 个属于这个组的用户账号,用户名格式为stu01
到stu10
。
#!/bin/bash
# 创建组
groupadd group1
# 创建10个用户
for i in {01..10};
do
useradd -g group1 "stu$i"
done
3.3
为帮助新生熟悉 Linux 命令行,小李打算开发一个猜数字游戏。编写一个 shell 脚本实现计算机随机生成一个 1 到 10 之间的整数,用户输入猜测的数字,程序提示
猜大了
、猜小了
或猜对了
,直到用户猜对为止。
#!/bin/bash
n=$((RANDOM%10+1))
while read -p "猜1-10的数: " g;
do
((g==n)) && echo "对了!" && break
echo $((g>n?"大了":"小了"))
done
第四大题
4.1
为在“Linux 编程新星挑战赛”中完成任务,需要编写一个名为
sy.c
的源程序,实现九九乘法口诀表功能,请完成该源程序编写。
#include <stdio.h>
void main() {
int i, j;
// 外层循环控制行数 (1-9)
for (i = 1; i <= 9; i++) {
// 内层循环控制每行的列数 (1-i)
for (j = 1; j <= i; j++) {
// 格式化输出乘法算式,%-2d 保证对齐
printf("%d×%d=%-2d ", j, i, i * j);
}
// 每行结束后换行
printf("\n");
}
}
4.2
在竞赛要求下,小杨使用 GCC 编译源文件生成可执行程序时,需经历 4 个阶段。请写出各阶段名称及对应的 GCC 命令。
预处理(Preprocessing)
gcc -E source.c -o source.i
编译(Compilation)
gcc -S source.i -o source.s
汇编(Assembly)
gcc -c source.s -o source.o
链接(Linking)
gcc source.o -o executable
4.3
依据竞赛中 GDB 调试程序的任务,小杨在调试
sy.c
程序时,需要用到一些 GDB 内部命令,请完成以下填空。
启动 GDB 调试程序的命令格式是:gdb 可执行文件
查看当前所有断点和监视点信息的命令:info breakpoints
运行程序的命令是:run
继续执行到下一个断点的命令是:continue
给变量设置一个监视点:watch 变量名
在 GDB 中设置断点的命令是:break 行号或函数名
4.4
按照竞赛项目管理要求,小杨需要根据
sy.c
源码编写 Makefile 文件,通过执行make
命令生成可执行文件,并在生成后删除sy.o
过程文件。请完成 Makefile 文件编写。
sy:sy.c
gcc sy.c -o sy
clean:
rm -f sy.o