HackTheBox Academy — Linux Fundamentals 完整笔记
课程共 30 节,分 7 大部分,无前置要求。 配套环境:Pwnbox(ParrotOS)或本地 Kali/Parrot。
目录
- Linux 结构
- Linux 发行版
- Shell 介绍
- 提示符
- 获取帮助
- 系统信息
- 导航
- 文件与目录操作
- 编辑文件
- 查找文件
- 文件描述符与重定向
- 过滤内容
- 正则表达式
- 用户管理
- 权限管理
- 服务与进程管理
- 任务计划
- 网络服务
- Web 服务
- 备份与恢复
- 文件系统管理
- 容器化
- 网络配置
- 远程桌面协议
- Linux 安全
- 防火墙配置
- 系统日志与监控
- Solaris 对比
- 快捷键
1. Linux 结构
设计哲学(5 原则)
- 一切皆文件(硬件、配置、设备均以文件形式访问)
- 程序小而专一
- 程序可通过管道组合完成复杂任务
- 避免强制交互界面,优先 CLI
- 配置数据以纯文本存储(如
/etc/passwd)
系统组件
| 组件 | 说明 |
| Bootloader | 引导加载程序(如 GRUB) |
| Kernel | 管理 CPU、内存、I/O |
| Daemons | 后台服务(名称以 d 结尾:sshd、systemd) |
| Shell | 用户与内核间的 CLI 接口(bash、zsh、fish) |
| 图形服务器 | X-server 子系统 |
| 窗口管理器 | GUI 环境(GNOME、KDE、MATE) |
架构层次(从底到顶)
硬件(RAM、CPU、存储)
↓
内核(进程调度、内存管理、虚拟化硬件)
↓
Shell(接收命令,传递给内核)
↓
系统工具(暴露 OS 功能给用户)
文件系统层次标准(FHS)
| 路径 | 用途 |
/ | 根文件系统 |
/bin | 基本用户命令(ls、cp、mv) |
/boot | 引导文件、内核、initrd |
/dev | 设备文件 |
/etc | 系统级配置文件(纯文本) |
/home | 用户主目录 |
/lib | /bin 和 /sbin 的共享库 |
/media | 可移动介质挂载点 |
/mnt | 临时手动挂载点 |
/opt | 第三方软件包 |
/root | root 用户主目录 |
/sbin | 系统管理命令(fdisk、fsck) |
/tmp | 临时文件,重启后清除 |
/usr | 多用户工具和应用 |
/var | 可变数据:日志(/var/log)、邮件、数据库 |
/proc | 暴露内核/进程信息的虚拟文件系统 |
2. Linux 发行版
通用发行版
| 发行版 | 特点 |
| Ubuntu | Debian 系,用户友好,应用广泛 |
| Fedora | Red Hat 赞助,前沿软件包 |
| CentOS / RHEL | 企业级,稳定优先 |
| Debian | 高度稳定,使用 apt,长期支持 |
安全专用发行版
| 发行版 | 特点 |
| Kali Linux | 渗透测试首选,工具最全 |
| ParrotOS | 安全 + 隐私,HTB Pwnbox 使用此系统 |
| BlackArch | Arch 系,工具仓库庞大 |
| BackBox | Ubuntu 系,安全导向 |
3. Shell 介绍
- Shell 是用户与内核之间的文本 I/O 接口
- 终端模拟器提供 Shell 访问(GNOME Terminal、XTERM 等)
- HTB 主要使用 Bash(Bourne Again Shell)
tmux 终端复用器:支持分屏、会话持久化
区别:Terminal = 窗口;Shell = 窗口里运行的程序
4. 提示符
Bash 提示符结构
- $ = 普通用户 - # = root 用户 PS1 特殊字符
| 字符 | 含义 |
\u | 当前用户名 |
\h | 主机名(短) |
\H | 完整主机名(FQDN) |
\w | 完整当前路径 |
\W | 当前目录名(仅基名) |
\d | 日期 |
\t | 时间(24小时) |
\$ | 普通用户显示 $,root 显示 # |
# 自定义 PS1(写入 ~/.bashrc)
export PS1="\u@\h:\w\$ "
5. 获取帮助
| 命令 | 示例 | 说明 |
man <工具> | man ls | 打开命令手册页 |
<工具> --help | ls --help | 简短帮助 |
apropos <关键词> | apropos chmod | 搜索手册页描述 |
whatis <工具> | whatis grep | 单行命令描述 |
info <工具> | info coreutils | GNU info 文档 |
推荐网站:explainshell.com — 粘贴任意命令,逐一解释每个参数
6. 系统信息
| 命令 | 说明 |
whoami | 当前用户名 |
id | UID、GID 及所属组 |
hostname | 主机名;-I 显示所有 IP |
uname -a | 完整系统信息(内核、主机名、架构、日期) |
uname -r | 仅内核版本 |
uname -m | 硬件架构(如 x86_64) |
pwd | 当前工作目录 |
ip a | 所有网络接口信息 |
ss -tunlp | 监听中的端口及对应进程 |
ps aux | 所有运行中的进程 |
env | 打印所有环境变量 |
lsblk | 列出块设备(磁盘、分区) |
lsusb | 列出 USB 设备 |
lspci | 列出 PCI 设备 |
cat /etc/os-release | OS 名称和版本详情 |
7. 导航
| 命令 | 说明 |
pwd | 显示当前目录 |
ls | 列出目录内容 |
ls -l | 详细列表(权限、所有者、大小、日期) |
ls -a | 显示隐藏文件(. 开头) |
ls -la | 详细列表 + 隐藏文件 |
ls -lt | 按修改时间排序(最新在前) |
ls -i | 显示 inode 编号 |
cd <目录> | 切换目录 |
cd .. | 上一级目录 |
cd - | 返回上一个目录 |
cd ~ | 回到主目录 |
8. 文件与目录操作
| 命令 | 说明 |
touch <文件> | 创建空文件或更新时间戳 |
mkdir <目录> | 创建目录 |
mkdir -p a/b/c | 递归创建多级目录 |
cp <源> <目标> | 复制文件 |
cp -r <源> <目标> | 递归复制目录 |
mv <源> <目标> | 移动或重命名 |
rm <文件> | 删除文件 |
rm -r <目录> | 递归删除目录 |
rm -rf <目录> | 强制删除,无提示(谨慎使用) |
cat <文件> | 显示文件内容 |
cat > <文件> | 写入文件(覆盖) |
cat >> <文件> | 追加写入文件 |
9. 编辑文件
Nano(简单易用)
| 快捷键 | 操作 |
Ctrl+O | 保存 |
Ctrl+X | 退出 |
Ctrl+K | 剪切行 |
Ctrl+U | 粘贴行 |
Ctrl+W | 搜索 |
Vim(模式编辑器)
| 模式 | 进入方式 | 用途 |
| Normal | Esc | 导航、发出命令 |
| Insert | i(光标前)、a(光标后)、o(新行) | 输入/编辑文本 |
| Visual | v | 选择文本 |
| Command | : | 保存、退出、搜索、替换 |
常用 Vim 命令:
| 命令 | 操作 |
:w | 保存 |
:q | 退出 |
:wq / :x | 保存并退出 |
:q! | 不保存强制退出 |
dd | 删除(剪切)当前行 |
yy | 复制当前行 |
p | 粘贴 |
u | 撤销 |
Ctrl+R | 重做 |
/pattern | 向前搜索 |
n / N | 下一个 / 上一个匹配 |
:%s/旧/新/g | 全局替换 |
gg / G | 跳到首行 / 末行 |
10. 查找文件
| 命令 | 说明 |
which <命令> | 显示可执行文件的完整路径 |
locate <名称> | 快速数据库搜索(需先运行 updatedb) |
find <路径> [选项] | 强大的文件搜索,支持多种过滤器 |
find 常用参数
| 参数 | 示例 | 说明 |
-type f | | 仅文件 |
-type d | | 仅目录 |
-name | -name "*.conf" | 按文件名过滤(区分大小写) |
-iname | -iname "*.CONF" | 不区分大小写 |
-user | -user root | 指定所有者 |
-size | -size +25k | 大于 25KB |
-perm | -perm /4000 | 查找设置了 SUID 的文件 |
-exec | -exec ls -la {} \; | 对每个结果执行命令 |
2>/dev/null | | 忽略权限拒绝错误 |
# 示例:查找 root 拥有的、大于 25KB 的、2020-03-03 后修改的 .conf 文件
find / -type f -name "*.conf" -user root -size +25k -newermt 2020-03-03 2>/dev/null
11. 文件描述符与重定向
标准文件描述符
| FD | 名称 | 默认 |
| 0 | stdin | 键盘输入 |
| 1 | stdout | 终端(正常输出) |
| 2 | stderr | 终端(错误输出) |
重定向操作符
| 操作符 | 说明 |
> | 重定向 stdout 到文件(覆盖) |
>> | 重定向 stdout 到文件(追加) |
2> | 重定向 stderr 到文件 |
2>/dev/null | 丢弃所有错误 |
2>&1 | 将 stderr 合并到 stdout |
< | 从文件读取到 stdin |
\| | 管道:左侧 stdout 传给右侧 stdin |
cat /etc/passwd > output.txt # 保存 stdout
find / -type f 2>/dev/null # 忽略错误
cat /etc/passwd | grep root # 管道过滤
command > out.txt 2>&1 # 同时重定向
12. 过滤内容
| 命令 | 说明 |
cat | 打印整个文件 |
more | 分页查看(仅向前,q 退出) |
less | 分页查看(可前后翻,q 退出) |
head | 显示前 10 行 |
head -n 20 | 显示前 20 行 |
tail | 显示后 10 行 |
tail -f | 实时跟踪文件(适合看日志) |
grep "pattern" | 过滤匹配行 |
grep -v "pattern" | 反向匹配(排除匹配行) |
grep -i "pattern" | 不区分大小写 |
grep -r "pattern" /dir | 递归搜索目录 |
grep -c "pattern" | 统计匹配行数 |
sort | 字母排序 |
sort -u | 排序并去重 |
sort -n | 数值排序 |
uniq | 去除相邻重复行(配合 sort 使用) |
cut -d":" -f1 | 以 : 为分隔符取第 1 列 |
tr 'a-z' 'A-Z' | 字符转换(小写转大写) |
tr -d ':' | 删除指定字符 |
wc -l | 统计行数 |
wc -w | 统计单词数 |
column -t | 格式化为对齐表格 |
awk '{print $1}' | 打印每行第 1 个字段 |
awk -F":" '{print $1}' | 以 : 为分隔符 |
sed 's/旧/新/g' | 全局字符串替换 |
sed '/pattern/d' | 删除匹配行 |
# 典型管道示例
cat /etc/passwd | grep -v "#" | cut -d":" -f1 | sort -u
13. 正则表达式
| 模式 | 含义 |
. | 任意单个字符 |
* | 前面字符出现 0 次或多次 |
+ | 前面字符出现 1 次或多次 |
? | 前面字符出现 0 次或 1 次 |
^ | 行首 |
$ | 行尾 |
[abc] | a、b 或 c 之一 |
[^abc] | 非 a、b、c |
[a-z] | 任意小写字母 |
\d | 数字 |
\w | 字母、数字、下划线 |
\s | 空白字符 |
{n,m} | 重复 n 到 m 次 |
\| | 或(OR) |
grep -E "^root" /etc/passwd # 以 root 开头的行
grep -E "[0-9]{3}" file.txt # 含 3 位以上连续数字
grep -E "(error|fail)" /var/log/syslog # 含 error 或 fail
14. 用户管理
| 命令 | 说明 |
whoami | 当前用户 |
id | UID、GID、所属组 |
useradd -m <用户> | 创建用户并创建主目录 |
useradd -s /bin/bash <用户> | 指定登录 Shell |
passwd <用户> | 设置/修改密码 |
usermod -aG sudo <用户> | 将用户加入 sudo 组 |
usermod -L <用户> | 锁定账户 |
usermod -U <用户> | 解锁账户 |
userdel -r <用户> | 删除用户及其主目录 |
su - <用户> | 切换用户(完整登录环境) |
sudo <命令> | 以 root 权限运行命令 |
sudo -l | 列出当前用户可执行的 sudo 命令 |
visudo | 安全编辑 /etc/sudoers |
关键文件
| 文件 | 内容 |
/etc/passwd | 用户账户信息(用户名、UID、GID、主目录、Shell) |
/etc/shadow | 哈希密码(仅 root 可读) |
/etc/group | 组定义 |
/etc/sudoers | sudo 权限配置 |
15. 权限管理
权限结构
每个文件/目录对三类对象设置权限: - 所有者(u) - 所属组(g) - 其他人(o)
| 符号 | 数值 | 对文件的含义 | 对目录的含义 |
r | 4 | 读取文件内容 | 列出目录内容 |
w | 2 | 修改文件 | 创建/删除文件 |
x | 1 | 执行文件 | 进入目录 |
- | 0 | 无权限 | 无权限 |
-rwxr-xr-- 1 user group size date filename
│└──┘└──┘└──┘
│ │ │ └── 其他人权限 (r--)
│ │ └────── 所属组权限 (r-x)
│ └─────────── 所有者权限 (rwx)
└────────────── 文件类型(- 文件,d 目录,l 软链接)
chmod
# 符号方式
chmod u+x file # 所有者添加执行权限
chmod g-w file # 所属组移除写权限
chmod a+r file # 所有人添加读权限
# 八进制方式(最常用)
chmod 755 file # rwxr-xr-x
chmod 644 file # rw-r--r--
chmod 600 file # rw------- (私钥文件标准权限)
chown
chown user file # 修改所有者
chown user:group file # 同时修改所有者和组
chown -R user:group /dir # 递归修改
特殊权限位
| 权限位 | 名称 | 八进制 | 对文件的作用 | 对目录的作用 |
| SUID | Set User ID | 4000 | 以文件所有者身份运行 | 无效果 |
| SGID | Set Group ID | 2000 | 以文件所属组身份运行 | 新文件继承目录组 |
| Sticky | 粘滞位 | 1000 | 基本无用 | 只有文件所有者可删除自己的文件 |
chmod u+s file # 设置 SUID
chmod g+s dir # 设置 SGID
chmod +t dir # 设置 Sticky
chmod 4755 file # SUID + rwxr-xr-x
chmod 1777 /tmp # Sticky + 全权限(/tmp 的标准权限)
安全注意:SUID 二进制文件是经典的提权向量
find / -perm /4000 2>/dev/null # 查找所有 SUID 文件
find / -perm /2000 2>/dev/null # 查找所有 SGID 文件
16. 服务与进程管理
Systemd 服务管理
| 命令 | 说明 |
systemctl start <服务> | 启动服务 |
systemctl stop <服务> | 停止服务 |
systemctl restart <服务> | 重启服务 |
systemctl enable <服务> | 开机自启 |
systemctl disable <服务> | 禁止开机自启 |
systemctl status <服务> | 查看服务状态及近期日志 |
systemctl list-units --type=service | 列出所有活跃服务 |
journalctl -u <服务> | 查看服务日志 |
journalctl -u <服务> --no-pager | 不分页查看日志 |
进程管理
| 命令 | 说明 |
ps aux | 显示所有进程详情 |
top | 实时进程查看器 |
htop | 增强版实时进程查看器 |
kill <PID> | 发送 SIGTERM(15)优雅终止 |
kill -9 <PID> | 发送 SIGKILL 强制终止 |
killall <名称> | 按名称终止所有匹配进程 |
进程信号
| 信号 | 数值 | 含义 |
| SIGHUP | 1 | 挂起 / 重载配置 |
| SIGINT | 2 | 中断(Ctrl+C) |
| SIGKILL | 9 | 强制终止(不可捕获) |
| SIGTERM | 15 | 优雅终止(默认) |
| SIGSTOP | 19 | 暂停进程 |
前后台控制
| 命令 | 说明 |
command & | 后台运行 |
Ctrl+Z | 挂起当前前台进程 |
bg | 让挂起的进程在后台继续 |
fg | 将后台进程调到前台 |
jobs | 列出后台/挂起任务 |
命令链接操作符
| 操作符 | 行为 |
; | 顺序执行,不管上一条是否成功 |
&& | 上一条成功(exit 0)才执行下一条 |
\|\| | 上一条失败才执行下一条 |
\| | 管道:左侧输出传给右侧输入 |
17. 任务计划
Cron 语法
* * * * * 用户 命令
│ │ │ │ └── 星期几(0-7,0 和 7 均为星期日)
│ │ │ └──── 月份(1-12)
│ │ └────── 日(1-31)
│ └──────── 小时(0-23)
└────────── 分钟(0-59)
# 每小时整点执行
0 * * * * root /script.sh
# 每 15 分钟执行
*/15 * * * * user /backup.sh
# 每天凌晨 2 点执行
0 2 * * * root /nightly.sh
# 每周日凌晨 2 点执行
0 2 * * 0 root /weekly.sh
# 开机时执行
@reboot root /startup.sh
Cron 管理命令
| 命令 | 说明 |
crontab -e | 编辑当前用户的 crontab |
crontab -l | 列出当前用户的 crontab |
crontab -r | 删除当前用户的 crontab |
18. 网络服务
SSH
ssh user@host # 连接主机
ssh -p 2222 user@host # 指定端口
ssh -i keyfile user@host # 使用指定私钥
ssh -L 8080:target:80 user@jump # 本地端口转发
关键文件: - ~/.ssh/id_rsa — 私钥 - ~/.ssh/id_rsa.pub — 公钥 - ~/.ssh/authorized_keys — 授权的公钥列表 - /etc/ssh/sshd_config — SSH 服务配置
19. Web 服务
快速启动 Web 服务器
# Python(最快,内置)
python3 -m http.server 8080
# PHP
php -S 127.0.0.1:8080
# Node.js
http-server -p 8080
文件下载工具
| 工具 | 常用示例 | 说明 |
curl | curl https://site.com | 支持多协议 |
curl -s | | 静默模式(无进度条) |
curl -O | | 以原文件名保存 |
curl -I | | 仅获取响应头 |
wget | wget https://site.com/file | 下载文件 |
wget -q | | 静默模式 |
wget -r | | 递归下载 |
20. 备份与恢复
| 工具 | 示例 | 说明 |
rsync -av src/ dst/ | | 同步文件/目录,仅传输变化部分 |
rsync -avz -e ssh src/ user@host:/dst/ | | 通过 SSH 同步 |
rsync --delete | | 删除目标中源没有的文件 |
tar -czvf archive.tar.gz /dir | | 创建压缩归档 |
tar -xzvf archive.tar.gz | | 解压归档 |
tar -tzvf archive.tar.gz | | 列出归档内容 |
dd if=/dev/sda of=/dev/sdb | | 磁盘克隆(原始拷贝) |
21. 文件系统管理
| 命令 | 说明 |
fdisk -l | 列出所有磁盘和分区 |
lsblk | 树状显示块设备 |
df -h | 磁盘空间使用(人类可读格式) |
du -sh /dir | 目录磁盘占用 |
mount /dev/sdb1 /mnt/point | 挂载文件系统 |
umount /mnt/point | 卸载文件系统 |
mkfs.ext4 /dev/sdb1 | 格式化为 ext4 |
fsck /dev/sdb1 | 检查/修复文件系统 |
blkid | 显示 UUID 和文件系统类型 |
/etc/fstab — 持久挂载配置:
UUID=xxx /mnt/point ext4 defaults 0 2
22. 容器化
Docker 常用命令
| 命令 | 说明 |
docker pull ubuntu | 拉取镜像 |
docker images | 列出本地镜像 |
docker run -it ubuntu bash | 交互式运行容器 |
docker run -d -p 8080:80 nginx | 后台运行,映射端口 |
docker ps | 列出运行中的容器 |
docker ps -a | 列出所有容器(含已停止) |
docker stop <id> | 停止容器 |
docker rm <id> | 删除容器 |
docker build -t myimage . | 从 Dockerfile 构建镜像 |
docker exec -it <id> bash | 进入运行中的容器 |
关键概念:容器共享宿主机内核(不同于虚拟机);数据默认不持久化,需使用 Volume
23. 网络配置
ip addr add 192.168.1.100/24 dev eth0 # 设置 IP
ip link set eth0 up # 启用接口
ip route add default via 192.168.1.1 # 添加默认路由
| 命令 | 说明 |
ip a | 显示所有接口和 IP |
ip r | 显示路由表 |
ping <主机> | 测试连通性 |
traceroute <主机> | 追踪网络路径 |
dig <主机> | 详细 DNS 查询 |
nslookup <主机> | DNS 解析 |
关键文件: - /etc/resolv.conf — DNS 服务器配置 - /etc/hosts — 本地主机名到 IP 映射 - /etc/nsswitch.conf — 名称解析顺序
网络排查流程: ping → traceroute → dig → ss
24. 远程桌面协议
VNC(端口 5900+)
vncserver :1 # 启动 VNC(显示器 1)
vncviewer host:5901 # 连接 VNC
RDP(端口 3389)
xfreerdp /v:host /u:user /p:password # 连接 RDP 服务器
xfreerdp /v:host /u:user /dynamic-resolution +clipboard
X11 转发(通过 SSH)
ssh -X user@host # 启用 X11 转发
ssh -Y user@host # 受信任的 X11 转发
25. Linux 安全
核心安全原则
- 保持系统和软件包更新
- 最小权限原则
- 禁用不必要的服务
- 使用强密码和基于密钥的 SSH 认证
- 配置防火墙规则
- 定期监控日志
SSH 加固(/etc/ssh/sshd_config)
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
Port 2222
AllowUsers htbuser
TCP Wrappers(基于主机的访问控制)
# /etc/hosts.allow
sshd : 192.168.1.0/24
# /etc/hosts.deny
sshd : ALL
SELinux vs AppArmor
| 功能 | SELinux | AppArmor |
| 类型 | 强制访问控制(MAC) | MAC |
| 默认系统 | RHEL/CentOS | Ubuntu/Debian |
| 配置方式 | 标签(所有对象) | 基于路径的配置文件 |
| 状态检查 | sestatus | aa-status |
| 模式 | 强制/宽容/禁用 | 强制/告警/禁用 |
fail2ban(防暴力破解)
apt install fail2ban
systemctl enable fail2ban
fail2ban-client status # 查看所有 jail
fail2ban-client status sshd # 查看 SSH jail 状态
26. 防火墙配置
iptables 表与链
表类型: | 表 | 用途 | |----|------| | filter | 默认;控制包过滤(INPUT、OUTPUT、FORWARD) | | nat | 网络地址转换(PREROUTING、POSTROUTING) | | mangle | 数据包修改/标记 |
链: | 链 | 流量 | |----|------| | INPUT | 发往本机的数据包 | | OUTPUT | 从本机发出的数据包 | | FORWARD | 经过本机转发的数据包 |
目标/动作: - ACCEPT — 允许 - DROP — 静默丢弃 - REJECT — 丢弃并通知发送方 - LOG — 记录到 syslog
iptables -L -v -n # 列出所有规则
iptables -A INPUT -p tcp --dport 22 -j ACCEPT # 允许 SSH
iptables -A INPUT -p tcp --dport 80 -j ACCEPT # 允许 HTTP
iptables -A INPUT -j DROP # 拒绝其余所有入站
iptables -I INPUT 1 -i lo -j ACCEPT # 允许回环接口
iptables-save > /etc/iptables/rules.v4 # 持久化规则
ufw(简单防火墙)
ufw enable
ufw allow 22/tcp
ufw deny 23
ufw status verbose
27. 系统日志与监控
关键日志文件
| 日志文件 | 内容 |
/var/log/syslog | 通用系统消息 |
/var/log/auth.log | 认证事件(登录、sudo、SSH) |
/var/log/kern.log | 内核消息 |
/var/log/dpkg.log | 软件包安装/删除历史 |
/var/log/apache2/access.log | Apache 访问日志 |
/var/log/apache2/error.log | Apache 错误日志 |
/var/log/wtmp | 登录记录(用 last 读取) |
/var/log/btmp | 失败登录记录(用 lastb 读取) |
tail -f /var/log/auth.log # 实时监控认证事件
grep "Failed" /var/log/auth.log # 查找失败登录
journalctl -xe # systemd 日志(含错误)
journalctl --since "1 hour ago" # 最近一小时的日志
last # 登录历史
lastb # 失败登录历史
28. Solaris 对比
| 功能 | Linux | Solaris |
| 包管理器 | apt / yum / dnf | pkgadd、pkg(IPS) |
| 默认文件系统 | ext4、xfs | ZFS |
| 进程查看器 | top、htop | prstat |
| 网络配置 | ifconfig、ip | ifconfig、dladm、ipadm |
| 服务管理 | systemctl | svcadm、SMF |
| 进程追踪 | strace | truss、DTrace |
29. 快捷键
Bash 键盘快捷键
| 快捷键 | 操作 |
Ctrl+A | 移动光标到行首 |
Ctrl+E | 移动光标到行尾 |
Alt+F | 向前移动一个单词 |
Alt+B | 向后移动一个单词 |
Ctrl+U | 删除光标到行首的内容 |
Ctrl+K | 删除光标到行尾的内容 |
Ctrl+W | 删除光标前一个单词 |
Ctrl+Y | 粘贴最近删除的内容 |
Ctrl+C | 中断当前命令 |
Ctrl+Z | 挂起当前进程 |
Ctrl+L | 清屏(同 clear) |
Ctrl+D | 注销 / 发送 EOF 信号 |
Ctrl+R | 反向搜索历史命令 |
!! | 重复上一条命令 |
!<n> | 执行历史中第 n 条命令 |
Tab | 自动补全命令或路径 |
Tab Tab | 显示所有可能的补全 |
核心概念速查
| 概念 | 一句话总结 |
| 一切皆文件 | 配置、设备、管道均以文件形式访问 |
| FHS | 标准化目录结构 /bin、/etc、/var 等 |
| 文件权限 | rwx × 3(所有者/组/其他)+ SUID/SGID/Sticky |
| 文件描述符 | stdin=0、stdout=1、stderr=2;用 >、<、\| 重定向 |
| 进程与信号 | 以 PID 标识;SIGTERM=15(优雅)、SIGKILL=9(强制) |
| Systemd | 现代 init 系统;systemctl 管理服务和开机启动 |
| Cron | 时间调度器;* * * * * = 分/时/日/月/周 |
| 正则表达式 | 在 grep/sed/awk/vim 中广泛使用的模式匹配语言 |
| SUID | 以文件所有者身份运行 — 经典提权向量 |
| Docker | 利用内核命名空间+cgroups 实现隔离的容器技术 |
| iptables | 有状态防火墙;filter/nat/mangle 表;INPUT/OUTPUT/FORWARD 链 |
| SSH 加固 | 禁用密码认证、禁止 root 登录、修改默认端口 |
| AppArmor/SELinux | POSIX 权限之上的强制访问控制(MAC) |
参考来源:HTB Academy 官方课程、PortSwigger、GitHub 社区笔记