学习黑客Linux 命令

在操作下面的闯关题之前,给下学习资料

一图速览:20 条命令及练习手册

# 命令 & 常用参数 关键作用 典型练习
1 ls -alh 列文件(含隐藏 & 人类可读大小)(数字海洋) $HOME 统计目录数
2 cd / pwd 切换、显示路径 cd /tmp && pwd
3 cp -a / mv / rm -rf 复制、移动、删除 建 test 目录练手
4 touch / mkdir -p 新建文件 / 递归建目录 mkdir -p lab/day1 && touch note.txt
5 cat / less / head -n 5 查看文件内容 阅读 /etc/os-release
6 grep -nEi 关键词/正则搜索(行号、忽略大小写)(数字海洋) 找出日志中 error
7 find / -type f -perm -4000 2>/dev/null 搜索 SUID 文件(The world's open source leader) 列出系统 SUID 清单
8 chmod 644 / chown user:group 改权限/属主(644=rw-r--r--)(theserverside.com) 给 note.txt 改权限
9 tar -czf backup.tar.gz dir/ 打包压缩(LabEx) 备份 lab/ 目录
10 scp file user@host:/path 远程安全复制(LinuxBlog.io) 把 backup.tar.gz 传到 VPS
11 wget -qO- URL 命令行下载 / 快速查看网页 抓取 robots.txt
12 curl -I URL 查看 HTTP 头 观察 301/200
13 sudo -l 列可执行 sudo 命令(GitHub) 判断提权面
14 `ps aux --sort=-%mem head` 查看进程 找内存前 5 名
15 top / htop 交互式监控 观察 CPU 峰值
16 `du -sh * sort -h` 目录体积排行 定位大文件夹
17 df -hT 磁盘分区 & 类型 查看挂载情况
18 `history tail -20` 查看历史命令 回顾今天操作
19 ssh-keygen -t ed25519 生成公私钥 放进 ~/.ssh
20 tldr <command> 查看简明用法(需 npm i -g tldr)(tldr.sh) tldr grep 快速复习

建议做法: 把表格复制到 Obsidian/Notion,练完一条就在对应行打 ✅,保证 1 小时内全部走一遍。


快闪练习脚本:批量改文件权限

  1. lab/day1/ 建 5 个测试文件:

    bash 复制代码
    mkdir -p ~/lab/day1 && cd ~/lab/day1
    touch {a,b,c,d,e}.log
  2. 用一行 Shell 把所有 .log 改为 644:

    bash 复制代码
    for f in *.log; do chmod 644 "$f"; done
  3. 验证:

    bash 复制代码
    ls -l

这一行脚本就是你 Day 1 "成果物"------未来写自动化工具时经常用到。


进阶挑战(选做)

任务 技能点
编写 perm_audit.sh:递归扫描目录,找出非 640/750 的文件并导出 CSV find + awk
tar --exclude='*.log' 打包并通过 scp -P 2222(自定义端口)上传 tar + scp
grep + 正则:在 /var/log/auth* 中提取所有登录失败 IP grep -oP '(?<=from )\\d+\\.\\d+\\.\\d+\\.\\d+'

完成任一可加深对管道和重定向的理解。


学习资源速链

  1. DigitalOcean 50+ 命令概览(含 ls/grep 例)(数字海洋)
  2. tldr 项目主页(安装 & 使用)(tldr.sh)
  3. chmod 数字权限详细解释(theserverside.com)
  4. Red Hat "10 种 find 用法"(The world's open source leader)
  5. DigitalOcean grep 教程(正则示例)(数字海洋)
  6. LabEx tar 指南(打包/压缩)(LabEx)
  7. LinuxBlog scp 教程(本地↔远程)(LinuxBlog.io)
  8. GitHub tldr pages repo(更多示例)(GitHub)
  9. Hostinger 60 命令索引(含 df/du/top)(Hostinger)
  10. PDF 版 tldr-book(离线速查)(tldr.sh)
  11. IBM chmod 手册(官方语法)(IBM - United States)
  12. GeeksforGeeks find 命令最新示例(GeeksforGeeks)
  13. GeeksforGeeks grep 文章(补充案例)(GeeksforGeeks)

Linux 命令实操闯关题(基于 GeeksforGeeks Cheat-Sheet)

说明

  • 每一关都只给 任务要求提示命令,不提供完整答案。
  • 推荐在一台临时 VM 或 Docker 容器里动手,避免误删重要文件。
  • 完成后可用 history 回顾自己的命令链,并写下心得。

目录

  1. 文件与目录操作
  2. 文件权限
  3. 压缩与归档
  4. 进程管理
  5. 系统信息
  6. 网络命令
  7. I/O 重定向
  8. 环境变量
  9. 用户管理
  10. 终端快捷键 Bonus

1️⃣ 文件与目录操作

任务 要求 提示命令
1.1 $HOME 下新建名为 gfg_lab 的目录,并一次性创建 notes, scripts, logs 三个子目录 mkdir, -p
1.2 下载 robots.txt 保存为 gfg_lab/notes/web.txt curl -o
1.3 web.txt 复制为 web.bak,然后移动到 logs 目录 cp, mv
1.4 显示 gfg_lab 目录结构(树状)并只看两级 tree -L 2 (若无 tree: sudo apt install tree)

2️⃣ 文件权限

任务 要求 提示命令
2.1 scripts 目录权限改为:u=rwx, g=rx, o=-- chmod 750
2.2 给自己的用户添加对 logs 目录的写权限,但不影响组/其他 chmod u+w
2.3 用数字模式把 web.bak 权限改成只读(对所有人) chmod 444
2.4 查看 web.bak ACL 并确认无额外条目 getfacl

3️⃣ 压缩与归档

任务 要求 提示命令
3.1 打包 gfg_labgfg_lab.tar.gz tar -czvf
3.2 显示归档里文件列表但不解压 tar -tzf
3.3 只从归档里解出 notes/web.txt/tmp tar -xzf --strip-components

4️⃣ 进程管理

任务 要求 提示命令
4.1 使用 sleep 300 背景进程,获取其 PID &, $!, jobs
4.2 通过 pspgrep 找到该进程并用 kill -SIGTERM 结束 ps aux, kill
4.3 观察 top 中内存占用前五的进程 top, M (排序)

5️⃣ 系统信息

任务 要求 提示命令
5.1 查看当前发行版和内核版本 cat /etc/os-release, uname -r
5.2 统计系统 total/used/free 内存 free -h
5.3 打印登录过此机器的最近 5 位用户记录 last -n 5

6️⃣ 网络命令

任务 要求 提示命令
6.1 显示本机所有网络接口及 IP 地址 ip addr
6.2 ping -c 4 测试 geeksforgeeks.org 延迟 ping
6.3 调用 curl -I 抓取 https://geeksforgeeks.org 响应头 curl -I

7️⃣ I/O 重定向

任务 要求 提示命令
7.1 ls -l /etc 输出保存到 gfg_lab/list.txt >
7.2 date 命令结果追加到同一文件 >>
7.3 使用管道统计 list.txt 中包含字符串 "conf" 的行数 grep -c 或 `grep

8️⃣ 环境变量

任务 要求 提示命令
8.1 临时设置变量 LAB=GFG 并打印出来 export LAB=GFG, echo $LAB
8.2 $HOME/scripts 永久加入 PATH(对当前用户) 编辑 ~/.bashrc + source

9️⃣ 用户管理

任务 要求 提示命令
9.1 创建用户 learner(无 sudo) sudo adduser learner
9.2 learner 添加到 docker sudo usermod -aG docker learner
9.3 使用 su - learner 切换验证 su / whoami

🔟 Bonus:终端快捷键

  1. Ctrl + A / E:光标跳到行首 / 行尾
  2. Ctrl + R:历史命令逆向搜索
  3. Ctrl + Z:挂起当前前台任务
  4. !!:重复执行上一条命令
  5. Alt + .:插入上一条命令的最后一个参数

练习 :用 cat 查看一个大文件,试试 Ctrl + C 终止;再用 less+Shift + G 跳到文件结尾。


如何检验自己做对?

  • 文件/目录tree gfg_lab, ls -l
  • 权限stat -c "%A %n" file
  • 进程ps -p <PID> 应该查不到被杀死的进程
  • PATH :重开终端 echo $PATH 应含 /scripts 路径
  • 用户id learner 显示所属组

💡 完成全部任务后 ,回顾你的 history,挑 3 条最常用的命令写下"使用场景+易错点"备忘,就算真正掌握啦!

相关推荐
PerCheung1 小时前
Docker与WSL2如何清理
运维·docker·容器
ScorpioMan_Rf1 小时前
【操作系统】死锁
linux
chilling heart1 小时前
JAVA---继承
java·开发语言·学习
帅得不敢出门2 小时前
Android Framework学习三:zygote剖析
android·java·学习·framework·安卓·zygote
海尔辛2 小时前
学习黑客 week1周测 & 复盘
网络·学习·web安全
云空3 小时前
《Linux macOS :GCC升级方法》
linux·运维·macos·gcc
现实与幻想~3 小时前
Linux:web服务
linux·服务器·网络
syphomn3 小时前
Win10下安装Linux-Ubuntu24.04双系统
linux·人工智能·windows·ubuntu·开源
大G哥3 小时前
用 Java 和 DL4J 实现验证码识别系统
java·linux·开发语言·前端·python
AllenLeungX3 小时前
firewall docker 冲突问题解决(亲测有效)
运维·docker·容器