发布: 0603 Linux 运维面试题
This commit is contained in:
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
|
||||||
|
---
|
||||||
|
> 涵盖:硬件与系统、文件目录、命令、用户与权限、定时任务、网络与基础架构、翻译
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 第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 |
Reference in new issue
Block a user