发布: 0603 Linux 运维面试题

This commit is contained in:
Vaica committed 2026-06-03 15:30:35 +08:00
1 parent 321b3b9b54
commit 2d8c73871b
2 files changed
+415

No files matched your search

@@ -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
Binary file not shown.

After

Width:  |  Height:  |  Size: 967 KiB