--- 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