diff --git a/content/posts/2026/2026-06-03-0603-linux-运维面试题/index.md b/content/posts/2026/2026-06-03-0603-linux-运维面试题/index.md new file mode 100644 index 00000000..3b443a70 --- /dev/null +++ b/content/posts/2026/2026-06-03-0603-linux-运维面试题/index.md @@ -0,0 +1,415 @@ +--- +title: 0603 Linux 运维面试题 +date: '2026-06-03T00:00:00.000Z' +slug: '202606031527' +draft: false +categories: + - 笔记 +tags: + - Linux +author: 小赵 +layout: post +--- +> 涵盖:硬件与系统、文件目录、命令、用户与权限、定时任务、网络与基础架构、翻译 + +![](mpxqxgfj2v6u.png) + +--- + +## 第1章 硬件与系统 + +### 1.1 简述 CentOS 7 运行级别 + +| 级别 | 含义 | +|------|------| +| 0 | 关机(poweroff.target) | +| 1 | 单用户模式(rescue.target) | +| 2 | 多用户模式,无网络(multi-user.target) | +| 3 | 完整多用户模式,命令行(multi-user.target) | +| 4 | 保留未使用 | +| 5 | 图形界面模式(graphical.target) | +| 6 | 重启(reboot.target) | + +**查看/切换命令:** +```bash +systemctl get-default +systemctl set-default graphical.target +``` + +--- + +### 1.2 简述你上家公司用的操作系统版本及内核版本 + +```bash +# 查看系统版本 +cat /etc/redhat-release +cat /etc/os-release + +# 查看内核版本 +uname -r +uname -a +``` + +--- + +### 1.3 简述常见 RAID 级别及应用场景 + +| RAID | 磁盘数 | 利用率 | 冗余 | 读写性能 | 适用场景 | +|------|--------|--------|------|----------|----------| +| RAID 0 | ≥2 | 100% | 无 | 最高 | 性能要求高,数据不重要(如缓存) | +| RAID 1 | 2 | 50% | 有 | 读快写慢 | 系统盘、数据安全要求高 | +| RAID 5 | ≥3 | (n-1)/n | 有 | 读快写慢 | 读多写少,存储容量与冗余兼顾 | +| RAID 6 | ≥4 | (n-2)/n | 双重 | 读快写更慢 | 大容量存储,允许两块盘故障 | +| RAID 10 | ≥4(偶数) | 50% | 有 | 高 | 高并发读写,数据库、核心业务 | + +--- + +### 1.4 简述企业硬件服务器增加一块磁盘步骤和命令 + +1. **物理安装**:关机插入磁盘(或热插拔) +2. **扫描识别**:`echo "- - -" > /sys/class/scsi_host/host0/scan` 或重启 +3. **查看磁盘**:`fdisk -l` / `lsblk` +4. **分区**(<2T 用 fdisk,>2T 用 parted/gdisk) +5. **格式化**:`mkfs.xfs /dev/sdb1` 或 `mkfs.ext4` +6. **挂载**:`mkdir /data && mount /dev/sdb1 /data` +7. **写入 fstab**:`echo "/dev/sdb1 /data xfs defaults 0 0" >> /etc/fstab` + +--- + +### 1.5 什么是 inode,什么是 block + +- **inode(索引节点)**:存储文件的元数据(权限、所有者、时间戳、大小、指针等),每个文件对应一个 inode,文件名存在目录中 +- **block(数据块)**:存储文件的实际内容,默认 4KB,是文件系统读写的基本单位 + +--- + +### 1.6 /etc/fstab 含义及每一列含义 + +``` +/dev/sda1 /boot xfs defaults 0 0 +``` + +| 列 | 含义 | +|----|------| +| 1 | 设备名或 UUID | +| 2 | 挂载点 | +| 3 | 文件系统类型 | +| 4 | 挂载选项(defaults 等) | +| 5 | dump 备份标记(0=不备份,1=备份) | +| 6 | fsck 检查顺序(0=不检查,1=根目录优先,2=其他) | + +--- + +### 1.7 简述软硬连接的区别 + +| 特性 | 硬链接 | 软链接(符号链接) | +|------|--------|------------------| +| 本质 | 同一 inode 的多个文件名 | 独立的 inode,指向目标路径 | +| 跨分区 | 不支持 | 支持 | +| 跨文件系统 | 不支持 | 支持 | +| 对目录 | 不支持 | 支持 | +| 源文件删除 | 仍可访问 | 失效(dangling link) | +| 创建命令 | `ln` | `ln -s` | + +--- + +### 1.8 大于 2T 和小于 2T 的磁盘分区命令 + +- **< 2T**:`fdisk /dev/sdb` +- **> 2T**:`parted /dev/sdb` 或 `gdisk /dev/sdb`(GPT 分区表) + +--- + +### 1.9 说一说你公司物理服务器配置 + +(根据实际情况回答,示例) +- CPU:2 颗 Intel Xeon E5-2680 v4,共 28 核 56 线程 +- 内存:256GB DDR4 ECC +- 磁盘:4 块 2TB SAS 盘做 RAID 10 + 2 块 480GB SSD 做 RAID 1 +- 网卡:双万兆光口 + 四千兆电口 +- 电源:双冗余电源 + +--- + +### 1.10 简述上不了网的排查思路 + +1. 检查物理连接:`ip link` / `ethtool eth0` +2. 检查 IP 配置:`ip addr` / `ifconfig` +3. 检查路由:`ip route` / `route -n` +4. 检查 DNS:`cat /etc/resolv.conf` / `nslookup baidu.com` +5. 检查网关连通:`ping 网关IP` +6. 检查防火墙:`iptables -L` / `firewall-cmd --state` +7. 检查 SELinux:`getenforce` +8. 抓包分析:`tcpdump -i eth0` + +--- + +## 第2章 文件目录 + +### 2.1 文件位置与名称 + +| 文件 | 路径 | +|------|------| +| 网卡配置文件 | `/etc/sysconfig/network-scripts/ifcfg-eth0`(CentOS 7) | +| DNS 配置文件 | `/etc/resolv.conf` | +| 系统定时任务文件 | `/etc/crontab` | +| 用户定时任务文件 | `/var/spool/cron/用户名` | +| 系统环境变量 | `/etc/profile` / `/etc/bashrc` | +| 本地域名解析文件 | `/etc/hosts` | +| 用户信息文件 | `/etc/passwd` / `/etc/shadow` | +| 开机自启文件 | `/etc/rc.local`(需 `chmod +x`) | +| 开机自动挂载文件 | `/etc/fstab` | + +### 2.2 目录/文件功能 + +| 路径 | 功能 | +|------|------| +| `/dev` | 设备文件目录 | +| `/etc/rc.local` | 开机自定义启动脚本 | +| `/etc/inittab` | 运行级别配置文件(CentOS 7 已弃用) | +| `/var/log/secure` | 安全日志(登录、sudo 等) | +| `/mnt` | 临时挂载点 | +| `/var/log/cron` | 定时任务执行日志 | +| `/proc/loadavg` | 系统平均负载信息 | +| `/proc/cpuinfo` | CPU 详细信息 | + +--- + +## 第3章 命令 + +### 3.1 创建目录 + +```bash +mkdir -p /oldboy/test +``` + +### 3.2 创建 10 个文件 + +```bash +# 方法1 +touch /oldboy/test/file{01..10}.txt + +# 方法2 +cd /oldboy/test && for i in $(seq -w 1 10); do touch file$i.txt; done +``` + +### 3.3 查找并复制(两种方法) + +```bash +# 方法1:find + cp +find /etc -name "*.txt" -mtime +7 -size +1k -exec cp {} /tmp \; + +# 方法2:find + xargs +find /etc -name "*.txt" -mtime +7 -size +1k | xargs -I {} cp {} /tmp/ +``` + +### 3.4 查找并打包压缩(两种方法) + +```bash +# 方法1:find + tar +find /etc -name "*.txt" -mtime +7 -size +1k -exec tar czf /tmp/etc_txt_$(date +%F).tar.gz {} + + +# 方法2:find + xargs + tar +find /etc -name "*.txt" -mtime +7 -size +1k | xargs tar czf /tmp/etc_txt_$(date +%F).tar.gz +``` + +### 3.5 解压 + +```bash +tar -xzf test.tar.gz -C /root +``` + +### 3.6 取 IP 地址(至少 2 种) + +```bash +# 方法1 +ip addr show | grep "inet " | awk '{print $2}' | cut -d/ -f1 + +# 方法2 +ifconfig | grep "inet " | awk '{print $2}' + +# 方法3 +hostname -I +``` + +### 3.7 查看文件权限 + +```bash +stat -c %a /tmp/file.txt +# 或 +ls -l /tmp/file.txt | awk '{print $1}' +``` + +### 3.8 只输出 /etc/passwd 最后一列 + +```bash +awk -F: '{print $NF}' /etc/passwd +# 或 +cut -d: -f7 /etc/passwd +``` + +### 3.9 替换内容 + +```bash +sed -i 's/oldboy/oldgirl/g' /oldboy/file.txt +``` + +### 3.10 统计 nologin 个数 + +```bash +grep -c "nologin" /etc/passwd +# 或 +grep "nologin" /etc/passwd | wc -l +``` + +--- + +## 第4章 用户与权限 + +### 4.1 权限解析 + +- 数字表示:**644** +- 所有者(rw-):**读、写** +- 同组(r--):**读** +- 其他(r--):**读** + +### 4.2 默认 UID + +| 用户类型 | UID 范围 | +|----------|----------| +| 超级用户(root) | 0 | +| 系统/虚拟用户 | 1-999(CentOS 7) | +| 普通用户 | 1000+ | + +### 4.3 修改权限 + +```bash +chmod 644 /oldboy/file.txt +``` + +### 4.4 创建用户 + +```bash +useradd -u 999 -M -s /sbin/nologin test +``` + +### 4.5 创建用户并指定组 + +```bash +groupadd old +useradd -u 1024 -g old boy +``` + +### 4.6 递归修改属主属组 + +```bash +chown -R www:www /www +``` + +--- + +## 第5章 定时任务 + +### 5.1 五个 `*` 的含义 + +``` +* * * * * command +│ │ │ │ │ +│ │ │ │ └── 星期(0-7,0 和 7 都是周日) +│ │ │ └──── 月份(1-12) +│ │ └────── 日期(1-31) +│ └──────── 小时(0-23) +└────────── 分钟(0-59) +``` + +### 5.2 每天凌晨 2:15 打包 .conf + +```bash +15 2 * * * /bin/tar czf /backup/etc_conf_$(date +\%F).tar.gz /etc/*.conf +``` + +### 5.3 每天凌晨 12 点打包并删除 7 天前压缩包 + +```bash +0 0 * * * /bin/tar czf /backup/etc_conf_$(date +\%F).tar.gz /etc/*.conf && find /backup -name "etc_conf_*.tar.gz" -mtime +7 -delete +``` + +### 5.4 每隔 5 分钟时间同步 + +```bash +*/5 * * * * /usr/sbin/ntpdate ntp.aliyun.com >/dev/null 2>&1 +``` + +--- + +## 第5章 网络与基础架构 + +### 5.6 三次握手 + +``` +客户端 → SYN=1, seq=x → 服务端 +客户端 ← SYN=1, ACK=1, seq=y, ack=x+1 ← 服务端 +客户端 → ACK=1, seq=x+1, ack=y+1 → 服务端 +``` + +### 5.7 四次挥手 + +``` +客户端 → FIN=1, seq=u → 服务端 +客户端 ← ACK=1, seq=v, ack=u+1 ← 服务端(半关闭,服务端继续发数据) +客户端 ← FIN=1, ACK=1, seq=w, ack=u+1 ← 服务端 +客户端 → ACK=1, seq=u+1, ack=w+1 → 服务端 +``` + +### 5.8 OSI 七层 vs TCP/IP 四层 + +| OSI 七层 | TCP/IP 四层 | 协议/设备 | +|----------|-------------|-----------| +| 应用层 | | HTTP、FTP、SMTP | +| 表示层 | 应用层 | SSL/TLS | +| 会话层 | | NetBIOS | +| 传输层 | 传输层 | TCP、UDP | +| 网络层 | 网络层 | IP、ICMP、路由器 | +| 数据链路层 | 网络接口层 | MAC、ARP、交换机 | +| 物理层 | | 网线、光纤、网卡 | + +### 5.9 DNS 解析过程 + +1. 浏览器缓存 +2. 本地 hosts +3. 本地 DNS 缓存 +4. 递归查询本地 DNS 服务器 +5. 根域名服务器 +6. 顶级域名服务器(.com) +7. 权威域名服务器 +8. 返回 IP + +### 5.10 查看端口和抓包命令 + +```bash +# 查看端口 +ss -tlnp +netstat -tlnp +lsof -i :80 + +# 抓包 +tcpdump -i eth0 port 80 +tcpdump -i eth0 host 192.168.1.1 +tcpdump -i eth0 -w /tmp/capture.pcap +``` + +--- + +## 第6章 翻译 + +| 英文 | 中文 | +|------|------| +| `You have new mail in /var/spool/mail/root` | 您在 `/var/spool/mail/root` 中有新邮件 | +| `id: lidao: No such user` | 用户 lidao 不存在 | +| `mkdir: cannot create directory 'all': File exists` | 无法创建目录 'all':文件已存在 | +| `umount: /: target is busy` | 无法卸载 `/`:目标正忙(有进程在使用) | +| `rm: cannot remove '/root/1.txt': Permission denied` | 无法删除 `/root/1.txt`:权限不足 | + +--- + +> 整理时间:2026-06-03 diff --git a/content/posts/2026/2026-06-03-0603-linux-运维面试题/mpxqxgfj2v6u.png b/content/posts/2026/2026-06-03-0603-linux-运维面试题/mpxqxgfj2v6u.png new file mode 100644 index 00000000..cc8f141c Binary files /dev/null and b/content/posts/2026/2026-06-03-0603-linux-运维面试题/mpxqxgfj2v6u.png differ