Linux(CentOS)系统管理入门笔记:第二期核心知识点自测与详解
本自测解析针对 Linux(CentOS)系统管理入门笔记第二期(命令行初识:Shell、命令结构与常用工具)的核心内容。共 10 题,每题包含题目回顾、考查知识点、详细解答与分析,帮助读者巩固 Linux 命令行基础操作的核心技能。
文章索引:Linux(CentOS)系统管理入门笔记(第二期)------命令行初识:Shell、命令结构与常用工具
更多自我检测系列欢迎浏览:每日知识点小问答
我的主页:AOwhisky,这里有更多运维系统性知识整理和其他有趣内容,欢迎与我一起探讨学习~
题目一:控制台、终端与 Shell 的概念辨析
题目:Linux 系统中的物理控制台(Console)、虚拟控制台(Virtual Console)、终端(Terminal)和 Shell 四个概念有什么区别与联系?请分别说明其含义,并用一个比喻解释它们之间的关系。
考查知识点
- 控制台、终端与 Shell 概念 ------ 第二期 §1
- 概念之间的关系
详细解答
| 概念 | 含义 | 本质 |
|---|---|---|
| 物理控制台(Console) | 直接连接主机的显示器和键盘硬件 | 物理设备 |
| 虚拟控制台(Virtual Console) | Linux 提供的多个逻辑登录会话(tty1~tty6),通过 Ctrl+Alt+F1~F6 切换 |
软件模拟的逻辑终端 |
| 终端(Terminal) | 用于输入输出交互的界面,可以是物理终端、虚拟终端、远程 SSH 终端(pts)或图形终端模拟器 | 交互式会话的"窗口" |
| Shell | 运行在终端中的命令解释程序(如 Bash),负责解析用户输入并调用内核执行 | 命令解释器 |
比喻理解:
- 物理控制台 = 房子本身(硬件基础)
- 虚拟控制台 = 房子里的多个房间(逻辑隔离的登录会话)
- 终端 = 房间里的窗户(交互界面)
- Shell = 站在窗户后面的人,帮你翻译和传达指令(命令解释器)
验证命令:
bash
# 查看当前终端设备
tty
# 输出示例:/dev/pts/0
# 查看当前 Shell
echo $SHELL
# 输出示例:/bin/bash
题目二:命令提示符各字段的含义
题目 :Bash 命令提示符 [whisky@centos7 ~]$ 中各部分(whisky、centos7、~、$)分别代表什么含义?root 用户的提示符与普通用户有何不同?
考查知识点
- 命令提示符 ------ 第二期 §2
- 提示符结构解析
详细解答
各部分含义:
| 部分 | 含义 | 对应变量 |
|---|---|---|
whisky |
当前登录的用户名 | $USER |
centos7 |
当前主机名(第一个 . 之前的部分) |
$HOSTNAME |
~ |
当前工作目录的简写,表示用户家目录 | $HOME |
$ |
用户身份标识,$=普通用户,#=root 管理员 |
$UID |
普通用户 vs root 用户:
bash
# 普通用户
[whisky@centos7 ~]$ whoami
whisky
# root 用户
[root@centos7 ~]# whoami
root
扩展知识 :提示符由 PS1 环境变量控制:
bash
# 查看当前 PS1 配置
echo $PS1
# 输出示例:[\u@\h \W]\$
# 其中各转义字符含义
# \u → 当前用户名
# \h → 主机名(第一个 . 前)
# \W → 当前目录的基名
# \$ → #(root)或 $(普通用户)
题目三:命令行三要素(命令、选项、参数)
题目 :Linux 命令行的三个基本组成部分是什么?请分别说明其作用,并以 ls -l /home 为例进行解析。短选项(-)与长选项(--)有什么区别?
考查知识点
- Shell 命令解析语法 ------ 第二期 §3
- 命令三要素
详细解答
三要素及其作用:
| 要素 | 作用 | 是否必须 |
|---|---|---|
| 命令(Command) | 要执行的程序名称 | ✅ 必须 |
| 选项(Options) | 调整命令的行为,以 - 或 -- 开头 |
❌ 可选 |
| 参数(Arguments) | 命令作用的目标(文件、目录等) | ❌ 可选 |
示例解析 :ls -l /home
| 部分 | 值 | 说明 |
|---|---|---|
| 命令 | ls |
列出目录内容的命令 |
| 选项 | -l |
使用长格式显示文件详情 |
| 参数 | /home |
列出 /home 目录的内容 |
短选项 vs 长选项:
| 对比项 | 短选项(Short Options) | 长选项(Long Options) |
|---|---|---|
| 前缀 | 单个 - |
两个 -- |
| 形式 | -l、-a、-h |
--all、--human-readable |
| 合并 | ✅ 可以合并:-lah |
❌ 不可以合并 |
| 可读性 | 较低 | 较高 |
| 记忆难度 | 较高(需记忆字母含义) | 较低(单词语义明确) |
bash
# 短选项合并写法
ls -l -a -h
ls -lah # 等价写法
# 长选项写法
ls --all --human-readable
题目四:date 命令的格式化与日期计算
题目 :date 命令如何显示自定义格式的时间?请写出显示"2026-07-13 15:30:00"格式的命令。如果需要在 Shell 脚本中生成格式为"20260713"的日志文件名,应如何实现?date -d '-1 day' 的作用是什么?
考查知识点
- date 命令 ------ 第二期 §4.1
- 格式化输出与日期计算
详细解答
显示自定义格式时间:
bash
# 显示 "2026-07-13 15:30:00" 格式
date "+%Y-%m-%d %H:%M:%S"
# 常用格式符对照
# %Y → 四位年份(2026)
# %m → 两位月份(07)
# %d → 两位日期(13)
# %H → 24 小时制小时(15)
# %M → 分钟(30)
# %S → 秒(00)
生成日志文件名:
bash
# 方式一:命令替换直接生成
touch log-$(date +%Y%m%d).log
# 生成文件:log-20260713.log
# 方式二:先赋值给变量
logdate=$(date +%Y%m%d)
touch log-${logdate}.log
日期计算:
| 命令 | 作用 |
|---|---|
date -d '-1 day' |
显示昨天的日期 |
date -d '+7 days' |
显示 7 天后的日期 |
date -d '-1 month' |
显示上个月的今天 |
date -d '-1 year +3 months +10 days' |
组合计算 |
bash
# 示例:显示昨天的日期
date -d '-1 day' +%Y-%m-%d
# 输出示例:2026-07-12
# 显示 100 天后的日期
date -d '100 day' +%Y%m%d
题目五:cat、head、tail、less 的适用场景对比
题目 :cat、head、tail、less 四个命令分别适用于什么场景?如果查看一个 2GB 的大日志文件,应优先选择哪个工具?为什么?tail -f 在生产环境中有何用途?
考查知识点
- 文件查看命令 ------ 第二期 §4.3、§4.4
- 命令适用场景
详细解答
四个命令的适用场景:
| 命令 | 适用场景 | 说明 |
|---|---|---|
cat |
查看小文件(< 100 行)或合并多个文件 | 一次性加载全部内容 |
head |
快速预览文件开头部分 | 默认显示前 10 行 |
tail |
快速预览文件结尾部分 | 默认显示后 10 行 |
less |
分页查看大文件,支持搜索和翻页 | 按需加载,内存友好 |
2GB 大日志文件应选 less:
cat会一次性将整个文件加载到内存并输出到屏幕,可能导致内存耗尽、系统卡顿less按需加载文件内容,只读取需要显示的部分,内存占用极低less支持上下翻页、关键字搜索(/keyword)等操作,适合日志分析
bash
# 查看大文件
less /var/log/messages
# 在 less 中常用操作
# /ERROR → 搜索 "ERROR"
# n → 下一个匹配
# N → 上一个匹配
# g → 跳到文件开头
# G → 跳到文件末尾
# q → 退出
tail -f 的生产环境用途:
bash
# 实时追踪日志(监控应用运行状态)
tail -f /var/log/messages
tail -f /var/log/nginx/access.log
# 按 Ctrl+C 退出追踪
tail -f 常用于:
- 实时监控:观察日志输出,定位问题
- 故障排查:在重现问题时查看日志实时变化
- 部署验证:确认服务启动后是否有异常日志
题目六:文件类型识别与 file 命令
题目 :file 命令的作用是什么?它通过什么机制判断文件类型?为什么 Linux 不依赖文件扩展名来识别文件类型?请用示例说明。
考查知识点
- file 命令 ------ 第二期 §5.1
- 文件类型识别机制
详细解答
file 命令的作用 :探测文件的真实类型,而非依赖扩展名判断。它通过读取文件的文件头(Magic Number) 和内容特征来识别类型。
识别机制:
- Linux 不信任文件扩展名(如
.txt、.exe) file命令读取文件开头的若干字节,查找特征签名(Magic Number)- 每个文件格式都有特定的头部签名,如:
- ELF 可执行文件:开头为
\x7fELF - 图片文件:JPEG 开头为
\xff\xd8,PNG 开头为\x89PNG - 压缩文件:GZIP 开头为
\x1f\x8b
- ELF 可执行文件:开头为
示例:
bash
# 查看文本文件
file /etc/hosts
# /etc/hosts: ASCII text
# 查看二进制程序
file /bin/ls
# /bin/ls: ELF 64-bit LSB executable, x86-64, ...
# 查看目录
file /etc/yum
# /etc/yum: directory
# 查看链接文件
file /bin
# /bin: symbolic link to usr/bin
# 查看压缩包
file /etc/passwd-
# /etc/passwd-: ASCII text
# 即使将可执行文件重命名为 .txt,file 仍能正确识别
cp /bin/ls /tmp/ls.txt
file /tmp/ls.txt
# /tmp/ls.txt: ELF 64-bit LSB executable, ...
题目七:history 命令与历史操作
题目 :history 命令可以查看命令历史列表。请说明以下操作的含义:
!5!hosthistory -chistory -w
为什么 history --help 会报错?正确的查看帮助的方式是什么?
考查知识点
- history 命令 ------ 第二期 §8.1
- 历史命令操作与内建命令特性
详细解答
各操作的含义:
| 操作 | 含义 |
|---|---|
!5 |
执行历史列表中编号为 5 的那条命令 |
!host |
执行最近一次以 host 开头 的命令(如 hostname) |
history -c |
清空当前会话的历史缓存(内存中的历史记录) |
history -w |
将当前会话的历史记录写入 ~/.bash_history 文件(持久化保存) |
示例:
bash
# 查看历史列表
history
# 1 date
# 2 hostname
# 3 ls -l
# 4 echo hello
# 5 history
# 执行第 3 条命令(ls -l)
!3
# 执行最近一次以 "echo" 开头的命令
!echo
# 输出:echo hello
# 输出:hello
# 清空历史缓存
history -c
# 将当前历史写入文件
history -w
history --help 报错的原因:
history是 Shell 内建命令(builtin),不是独立的二进制程序- 内建命令没有独立的
--help选项 - 正确查看方式 :
help history(使用help命令查看内建帮助)
bash
# 判断命令类型
type history
# history 是 shell 内建
type date
# date 是 /usr/bin/date
# 查看内建命令帮助
help history
题目八:Bash 快捷键速查
题目 :请写出以下 Bash 快捷键对应的作用:Ctrl+A、Ctrl+E、Ctrl+U、Ctrl+K、Ctrl+L、Ctrl+R、Esc+.。
考查知识点
- Bash 快捷键 ------ 第二期 §9
- 快捷键功能对照
详细解答
| 快捷键 | 作用 | 等效按键 |
|---|---|---|
Ctrl+A |
光标跳到行首 | Home |
Ctrl+E |
光标跳到行尾 | End |
Ctrl+U |
删除从光标到行首的内容(剪切) | --- |
Ctrl+K |
删除从光标到行尾的内容(剪切) | --- |
Ctrl+L |
清空屏幕 | clear 命令 |
Ctrl+R |
交互式反向搜索历史命令 | --- |
Esc+. |
粘贴上一条命令的最后一个参数 | --- |
演示示例:
bash
# Ctrl+A 跳到行首
$ echo hello world
# 按 Ctrl+A → 光标跳到行首(e 之前)
# Ctrl+E 跳到行尾
# 按 Ctrl+E → 光标跳到行尾(d 之后)
# Ctrl+U 删除到行首
# 光标在 hello 和 world 之间时按 Ctrl+U → 删除 "hello "
# 剩下 "world"
# Ctrl+K 删除到行尾
# 光标在 hello 和 world 之间时按 Ctrl+K → 删除 " world"
# 剩下 "hello"
# Ctrl+L 清屏
# 终端内容被清空,出现新的提示符
# Ctrl+R 搜索历史
# 按 Ctrl+R,输入 "date" → 显示最近的 date 命令
# 再次按 Ctrl+R → 继续向上搜索更早的 date 命令
# 按 Enter → 执行选中的命令
# Esc+. 粘贴上一命令的最后一个参数
$ mkdir newdir
$ cd Esc+. # cd newdir
题目九:script 命令与终端会话录制
题目 :script 命令的作用是什么?请写出录制终端会话的完整步骤(从开始录制到回放)。scriptreplay 为什么需要 -t 参数生成的时间文件?
考查知识点
- script 命令 ------ 第二期 §8.2
- 会话录制与回放
详细解答
script 的作用:
- 录制整个终端会话的输入和输出
- 适合:教学演示、操作审计、故障回溯、复杂操作复盘
- 输出文件为纯文本格式,可直接查看
完整录制与回放步骤:
bash
# 步骤 1:开始录制(同时记录时间数据)
script -t time.log session.log
# 或简写
script -ttime.log session.log
# 步骤 2:执行命令(所有输入输出都会被记录)
date
hostname
echo "hello world"
ls -l /etc/hosts
# 步骤 3:结束录制
exit
# 输出:Script done, file is session.log
# 步骤 4:查看录制内容(纯文本)
cat session.log
# 步骤 5:回放录制内容(精确还原操作过程)
scriptreplay -t time.log session.log
为什么需要 -t 时间文件:
session.log只记录了输入输出的内容time.log记录了每条命令执行的时间戳 和延迟scriptreplay结合两者,可以精确还原命令执行的时间节奏- 如果只有
session.log而没有time.log,回放时会一次性输出所有内容,失去"回放"的意义
题目十:passwd 命令详解与密码管理
题目 :passwd 命令的常见用法有哪些?普通用户和 root 用户执行 passwd 有什么区别?passwd -d whisky 的作用是什么?在生产环境中使用该选项有何风险?
考查知识点
- passwd 命令 ------ 第二期 §4.2
- 普通用户 vs root 用户的权限差异
详细解答
passwd 的常见用法:
| 用法 | 说明 | 适用用户 |
|---|---|---|
passwd |
修改当前用户的密码 | 普通用户、root |
passwd whisky |
修改指定用户的密码 | 仅 root |
passwd -d whisky |
删除指定用户的密码 | 仅 root |
passwd -l whisky |
锁定指定用户的账户 | 仅 root |
passwd -u whisky |
解锁指定用户的账户 | 仅 root |
普通用户 vs root 用户:
| 对比项 | 普通用户 | root 用户 |
|---|---|---|
| 修改自己的密码 | ✅ 可以 | ✅ 可以 |
| 修改他人密码 | ❌ 不可以 | ✅ 可以 |
| 删除他人密码 | ❌ 不可以 | ✅ 可以 |
| 锁定/解锁账户 | ❌ 不可以 | ✅ 可以 |
执行 passwd |
需提供旧密码 | 无需旧密码 |
bash
# 普通用户修改自己的密码(需输入旧密码)
[whisky@centos7 ~]$ passwd
更改用户 whisky 的密码 。
(当前)UNIX 密码: # 输入旧密码
新的 密码: # 输入新密码
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
# root 修改普通用户的密码
[root@centos7 ~]# passwd whisky
更改用户 whisky 的密码 。
新的 密码: # 直接设置新密码
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
passwd -d whisky 的作用与风险:
- 删除用户的密码(使该用户无需密码即可登录)
- 生产环境风险极高 :
- 任何人只要知道用户名即可登录该账户
- SSH 服务器如果配置了
PermitEmptyPasswords yes,则可以通过空密码登录 - 建议仅用于测试环境,生产环境绝对避免
- 如需禁止用户登录,应使用
passwd -l whisky(锁定账户)
附:知识点对应总表
| 题号 | 主要考查知识点(对应第二期章节) |
|---|---|
| 1 | §1 控制台、终端与 Shell 概念 |
| 2 | §2 命令提示符含义与解析 |
| 3 | §3 Shell 命令解析三要素 |
| 4 | §4.1 date 命令格式化与日期计算 |
| 5 | §4.3、§4.4 cat/head/tail/less 适用场景 |
| 6 | §5.1 file 命令与文件类型识别 |
| 7 | §8.1 history 命令与历史操作 |
| 8 | §9 Bash 快捷键汇总 |
| 9 | §8.2 script 会话录制与回放 |
| 10 | §4.2 passwd 命令与权限管理 |
学习建议 :对于答错的题目,请回看第二期对应章节,并动手在 CentOS 终端中执行相关命令验证。命令行技能的核心是"肌肉记忆",建议每个命令都实际敲一遍,而不仅仅是阅读答案。建议将 script 命令与 history 命令配合使用,形成"操作留痕"的好习惯。
--- Compiled and Authored by Whisky --- July 13 th, 2026