Linux 操作技能测验
本测验用于测试你对 Kubernetes 环境中使用的 Linux 操作技能的理解。
选择题
- 哪个命令可以让环境变量对子进程可用?
- A) set
- B) export
- C) declare
- D) env
显示答案
答案:B) export
.bashrc何时执行?- A) 仅用于登录 shell
- B) 用于所有 shell 会话
- C) 用于非登录交互式 shell
- D) 始终与 .bash_profile 一起执行
显示答案
答案:C) 用于非登录交互式 shell
${REPLICAS:-3}表示什么?- A) 将 REPLICAS 设置为 3
- B) 如果未设置 REPLICAS,则使用 3
- C) 从 REPLICAS 中减去 3
- D) 错误
显示答案
答案:B) 如果未设置 REPLICAS,则使用 3
awk 'NR>1 {print $1}'做什么?- A) 打印所有行的第一个字段
- B) 仅打印第一行
- C) 打印除表头外的第一个字段
- D) 打印包含第一个字段的行
显示答案
答案:C) 打印除表头外的第一个字段
sed -i 's/old/new/g'中g的作用是什么?- A) 不区分大小写
- B) 替换一行中的所有匹配项
- C) 只替换一次
- D) 启用正则表达式
显示答案
答案:B) 替换一行中的所有匹配项
jq -r中-r的作用是什么?- A) 递归搜索
- B) 反向排序
- C) 不带引号输出原始字符串
- D) 只读
显示答案
答案:C) 不带引号输出原始字符串
ssh -L 8080:localhost:80 user@server表示什么?- A) 将服务器的 8080 转发到本地的 80
- B) 将本地的 8080 转发到服务器的 80
- C) 将服务器的 80 转发到本地的 8080
- D) 将本地的 80 转发到服务器的 8080
显示答案
答案:B) 将本地的 8080 转发到服务器的 80
- vmstat 中的
wa表示什么?- A) Web 应用程序 CPU
- B) I/O 等待时间百分比
- C) 警告数量
- D) 活跃进程
显示答案
答案:B) I/O 等待时间百分比
- 哪个命令会创建 LVM Physical Volume?
- A) lvcreate
- B) vgcreate
- C) pvcreate
- D) fscreate
显示答案
答案:C) pvcreate
curl -s -o /dev/null -w "%{http_code}" URL输出什么?- A) 响应正文
- B) 响应标头
- C) HTTP 状态码
- D) 响应时间
显示答案
答案:C) HTTP 状态码
简答题
- 哪个命令会在当前 shell 中执行文件内容?
显示答案
答案:source(或 .)
- JSON 解析工具是什么?
显示答案
答案:jq
- 用于 bastion 跳转的 SSH 选项是什么?
显示答案
答案:ProxyJump(或 -J)
- 哪个命令用于监控磁盘 I/O?
显示答案
答案:iostat
- Pod service account token 的路径是什么?
显示答案
答案:/var/run/secrets/kubernetes.io/serviceaccount/token
实践题
- 编写一个脚本,要求必须提供 DATABASE_URL,并将 TIMEOUT 默认值设为 30。
显示答案
bash
#!/bin/bash
: ${DATABASE_URL:?"DATABASE_URL required"}
TIMEOUT=${TIMEOUT:-30}- 编写一个命令,以 JSON 形式输出重启次数为 3 次及以上的 Pods。
显示答案
bash
kubectl get pods -A -o json | jq '[.items[] | select([.status.containerStatuses[]?.restartCount] | add >= 3)]'- 编写一个通过 bastion 同步 yaml 文件的 rsync 命令。
显示答案
bash
rsync -avzP --include='*.yaml' --exclude='*' -e "ssh -J bastion" /src/ user@host:/dest/高级题
- 编写一个节点诊断脚本。
显示答案
bash
#!/bin/bash
echo "=== System ===" && uptime && free -h && df -h
echo "=== kubelet ===" && systemctl status kubelet --no-pager- 解释 ConfigMap 环境变量与卷挂载的区别。
显示答案
- 环境变量:在 Pod 启动时加载,更改后需要重启
- 卷挂载:自动更新(约 1 分钟),无需重启