涵盖:硬件与系统、文件目录、命令、用户与权限、定时任务、网络与基础架构、翻译

第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) |
查看/切换命令:
systemctl get-default
systemctl set-default graphical.target
1.2 简述你上家公司用的操作系统版本及内核版本
# 查看系统版本
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 简述企业硬件服务器增加一块磁盘步骤和命令
- 物理安装:关机插入磁盘(或热插拔)
- 扫描识别:
echo "- - -" > /sys/class/scsi_host/host0/scan 或重启 - 查看磁盘:
fdisk -l / lsblk - 分区(<2T 用 fdisk,>2T 用 parted/gdisk)
- 格式化:
mkfs.xfs /dev/sdb1 或 mkfs.ext4 - 挂载:
mkdir /data && mount /dev/sdb1 /data - 写入 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 简述上不了网的排查思路
- 检查物理连接:
ip link / ethtool eth0 - 检查 IP 配置:
ip addr / ifconfig - 检查路由:
ip route / route -n - 检查 DNS:
cat /etc/resolv.conf / nslookup baidu.com - 检查网关连通:
ping 网关IP - 检查防火墙:
iptables -L / firewall-cmd --state - 检查 SELinux:
getenforce - 抓包分析:
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 创建目录
3.2 创建 10 个文件
# 方法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 查找并复制(两种方法)
# 方法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 查找并打包压缩(两种方法)
# 方法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 解压
tar -xzf test.tar.gz -C /root
3.6 取 IP 地址(至少 2 种)
# 方法1
ip addr show | grep "inet " | awk '{print $2}' | cut -d/ -f1
# 方法2
ifconfig | grep "inet " | awk '{print $2}'
# 方法3
hostname -I
3.7 查看文件权限
stat -c %a /tmp/file.txt
# 或
ls -l /tmp/file.txt | awk '{print $1}'
3.8 只输出 /etc/passwd 最后一列
awk -F: '{print $NF}' /etc/passwd
# 或
cut -d: -f7 /etc/passwd
3.9 替换内容
sed -i 's/oldboy/oldgirl/g' /oldboy/file.txt
3.10 统计 nologin 个数
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 修改权限
chmod 644 /oldboy/file.txt
4.4 创建用户
useradd -u 999 -M -s /sbin/nologin test
4.5 创建用户并指定组
groupadd old
useradd -u 1024 -g old boy
4.6 递归修改属主属组
第5章 定时任务
5.1 五个 * 的含义
* * * * * command
│ │ │ │ │
│ │ │ │ └── 星期(0-7,0 和 7 都是周日)
│ │ │ └──── 月份(1-12)
│ │ └────── 日期(1-31)
│ └──────── 小时(0-23)
└────────── 分钟(0-59)
5.2 每天凌晨 2:15 打包 .conf
15 2 * * * /bin/tar czf /backup/etc_conf_$(date +\%F).tar.gz /etc/*.conf
5.3 每天凌晨 12 点打包并删除 7 天前压缩包
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 分钟时间同步
*/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 解析过程
- 浏览器缓存
- 本地 hosts
- 本地 DNS 缓存
- 递归查询本地 DNS 服务器
- 根域名服务器
- 顶级域名服务器(.com)
- 权威域名服务器
- 返回 IP
5.10 查看端口和抓包命令
# 查看端口
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