AI 安全扫盲|Claude Code 实操入门
原创
徐哥
徐哥
Ms08067安全实验室
2026年10月19日 18:00
江苏
去阅读
文章来源|MS08067 AI安全应用知识星球
作者:小玉玉
1. 课程介绍 2. 启动Claude Code 3. 第一次使用配置 4. 基本对话模式 5. 文件操作 6. 常用命令介绍 7. 实际演示:让Claude解释一段代码 8. 课后作业
一、课程介绍
1.1 前置知识回顾
本节课建立在前面课程的基础之上,请确认你已完成:
| 前置内容 | 对应课程 | 作用 |
|---|---|---|
| Claude Code安装与认证 | 第14课 | 本课的直接前置,必须先完成 |
| 对话基础技巧 | 第6课 | 好问题的三要素在Claude Code中同样适用 |
| VSCode基本使用 | 第11课 | 本课演示中用编辑器创建代码文件 |
小贴士:如果启动 claude 命令报错或无法对话,说明第14课的安装/认证没有完成,请先回看第14课第五、六节解决问题,再开始本课学习。
关于文中界面:Claude Code更新比较频繁,不同版本的界面细节可能略有差异。本文中的界面展示为示意,以你的实际显示为准,核心操作方式是一致的。
二、启动Claude Code
2.1 一个重要概念:工作目录
启动之前,先理解一个概念:Claude Code把你启动它时所在的文件夹当作\"工作目录\"。
它就像一位上门服务的工程师——你在哪个房间(文件夹)接待它,它就在哪个房间里干活:能查看这个房间里的文件、对这个房间里的代码进行操作。所以启动前先进入你的项目文件夹,是一个好习惯。
我们新建一个练习文件夹(以PowerShell为例,在开始菜单搜索\"PowerShell\"打开):
mkdir D:\\claude-practice
cd D:\\claude-practice
(Windows上 mkdir 是创建文件夹,cd 是进入文件夹,路径可以换成你喜欢的位置)
2.2 基本启动方式
在项目文件夹中输入以下命令并回车:
claude
如果一切正常,命令行会刷新成Claude Code的交互界面,类似下面这样:
✻ Welcome to Claude Code!
/clear Clear context and history
/compact Compact conversation
/config Open config panel
/doctor Check Claude Code health
/exit Exit Claude Code
/help Show help
Tips
• Press Esc to cancel
• /status for current status
看到欢迎界面,底部出现输入框,就说明启动成功了。
2.3 其他启动方式(了解即可)
claude 命令后面还可以带参数,适应不同场景:
| 命令 | 作用 | 适用场景 |
|---|---|---|
| claude | 启动交互模式(本课主要使用) | 日常使用,可持续对话 |
| claude \"问题\" | 带着一个问题启动 | 想好了要问什么,启动后直接回答 |
| claude -p \"问题\" | 打印模式:回答完自动退出 | 只问一个问题,问完就走 |
| claude -c | 继续上一次对话 | 接着上次的话题继续聊 |
| claude -r | 从历史会话列表中选择恢复 | 回到之前某一次对话 |
| claude --help | 查看命令行帮助 | 忘记参数时查看 |
大家先用最基础的 claude 交互模式即可,其他方式混个脸熟,后面课程会逐步用到。
三、第一次使用配置
第一次启动Claude Code时,会出现几个一次性的配置步骤,跟着提示选择即可。
3.1 选择主题(界面配色)
首次启动会先让你选择界面主题:
? Choose a theme
❯ Dark mode
Light mode
Dark mode (colorblind-friendly)
Light mode (colorblind-friendly)
操作方法:上下方向键移动选择,回车键确认。默认的Dark mode(深色模式)就很好看,直接回车即可。这个选择不是永久的,之后随时可以用 /config 命令修改。
3.2 信任文件夹确认
在一个新的文件夹里第一次启动时,会出现这样一个确认:
Do you trust the files in this folder?
Claude Code may read files in this directory as part of its
operation. If you trust the source, proceed.
1. Yes, proceed
2. No, exit
意思是:\"你信任这个文件夹里的文件吗?Claude Code工作时可能会读取这个目录里的文件。\"
- 这是我们自己刚新建的练习文件夹,输入 1 回车,选择信任继续即可
- 每个新文件夹第一次使用时都会询问一次,选择后同一文件夹不会再问
- 这是一个安全设计:提醒你Claude Code将获得该目录的访问权限。对于来历不明的文件夹(比如网上下载的陌生项目),建议先检查内容再决定
3.3 认识主界面
配置完成后,就进入主界面。界面的主体是对话区域,底部是输入框:
╭────────────────────────────────────────────╮
│ > Try \"explain how this code works\" │
╰────────────────────────────────────────────╯
? for shortcuts
| 界面元素 | 说明 |
|---|---|
| > 输入框 | 你在这里输入问题或指令,回车发送 |
| 对话区域 | 显示你的提问和Claude的回答过程 |
| ? for shortcuts | 按键盘上的 ? 键可以查看快捷键提示 |
3.4 快速验证:先打个招呼
在输入框输入\"你好\"并回车,等待几秒,能看到Claude用中文回应问候,说明整个链路(启动→连接→对话)都正常,可以开始本课的学习了。
小贴士:如果想知道当前连接的模型和账号状态,可以输入 /status 查看。我们第14课用API密钥接入了DeepSeek或GLM平台,这里显示的就是对应平台的信息。
四、基本对话模式
4.1 直接提问技术问题
Claude Code最基础的用法,就是像网页版聊天一样直接提问。比如输入:
什么是XSS漏洞?请用通俗的语言解释并举个简单例子
Claude会流式输出回答,向你解释跨站脚本攻击的原理。
再比如问一个编程问题:
Python的列表和元组有什么区别?
回答效果和我们在GLM、DeepSeek网页版里体验到的是类似的,区别在于:这里的一切操作都发生在你的项目文件夹里,AI可以进一步帮你操作文件——这是第16课的主角,本课先掌握\"聊\"。
4.2 对话中的基本操作
| 操作 | 按键 | 说明 |
|---|---|---|
| 发送消息 | Enter(回车) | 输入完问题,回车发送 |
| 打断Claude | Esc | 回答跑偏或太长时,随时打断,不打断会一直输出完 |
| 查看历史输入 | ↑(上方向键) | 像命令行一样翻出之前输入过的内容 |
| 输入多行内容 | 反斜杠 \ + 回车 | 换行继续输入而不发送(适合粘贴多行代码) |
提示:如果你的终端支持,运行一次 /terminal-setup 命令后,就可以用 Shift + Enter 换行,比反斜杠更顺手。粘贴大段代码时,直接粘贴后检查一下换行是否完整再发送。
4.3 让Claude解释代码(直接粘贴方式)
解释代码是Claude Code的高频用法。最直接的方式是把代码粘贴进输入框,配合明确的指令:
请解释下面这段Python代码的功能:
import socket
def scan_port(host, port):
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.settimeout(1)
try:
s.connect((host, port))
print(f\"[+] {port} open\")
except:
pass
finally:
s.close()
Claude会逐行解释这段代码:导入socket模块、创建TCP套接字、设置超时、尝试连接判断端口是否开放……粘贴代码时记得用 4.2 节的换行技巧(先输入一句话指令 + 换行,再粘贴代码),避免粘贴过程中被误发送。
4.4 多轮对话与清空上下文
Claude Code支持连续追问,它记得当前会话的上下文:
你:Python的列表和元组有什么区别?
Claude:(回答了区别)
你:那我应该优先用哪个?
Claude:(基于上文,直接继续回答,不需要你重复背景)
两个管理上下文的常用命令:
- /clear:完全清空当前对话,从头开始。切换到新问题时用它,避免旧话题干扰
- /compact:把之前的对话压缩成摘要后继续,适合聊了很久但还想延续主题的场景
小贴士:第6课学过的\"好问题三要素\"(具体、有背景、说明期望)在Claude Code里完全适用。差问题:\"这代码啥意思?\";好问题:\"解释这段代码的功能,重点说明第5行的settimeout起什么作用\"。
五、文件操作
前面都是\"空手聊天\",现在让Claude Code干点实事——读取你磁盘上的文件。这正是它比网页版聊天更强的原因。
5.1 让Claude查看当前目录的文件
先在 D:\claude-practice 文件夹里随便放一两个文件(比如新建一个 notes.txt,下一节演示还会用到一个demo.py),然后启动Claude,输入:
当前目录下有哪些文件?
Claude需要执行命令来查看目录,这时会出现权限确认:
Claude wants to run: ls
1. Yes
2. Yes, and don't ask again for ls commands in D:\\claude-practice
3. No, and tell Claude what to do differently (Esc)
三个选项的含义:
| 选项 | 含义 | 建议 |
|---|---|---|
| 1. Yes | 允许执行这一次 | 新手建议先选这个,每次都自己确认 |
| 2. Yes, and don't ask again | 允许,且这类命令以后不再询问 | 确认命令安全后可以选,减少打断 |
| 3. No | 拒绝,并告诉Claude换个做法 | 不想让某个命令执行时选它 |
选择 1 后,Claude执行命令并列出结果,然后告诉你目录里有什么文件:
⏺ Ran ls
⎿ D:\\claude-practice
demo.py notes.txt
当前目录下有两个文件:demo.py 和 notes.txt。
⏺ 符号后面是Claude实际执行的动作——你能清楚看到它\"做了什么\",这也是命令行AI工具的透明之处。
5.2 让Claude读取指定文件
让Claude读取并解释某个文件,直接用自然语言说文件名即可:
读一下demo.py,解释这个文件的功能
Claude会调用文件读取能力,界面上显示读取动作,然后给出解释:
⏺ Read demo.py
⎿ Read 18 lines
⏺ 这个文件实现了一个简单的端口扫描器。整体逻辑是……
5.3 用@符号引用文件(推荐技巧)
在输入框里输入 @ 符号,会自动弹出当前目录的文件列表供你选择,比如输入 @demo 就能自动补全出 demo.py。这个方式可以精确地把文件\"递\"给Claude,不容易出现文件名打错的情况:
@demo.py 这个文件的代码写得好吗?有什么可以改进的地方?
5.4 关于权限的安全说明
Claude Code的权限机制值得专门理解一下:
- 读取文件:工作目录范围内的文件读取,一般直接执行,不打扰你
- 执行命令、修改文件:默认都需要你确认后才执行(就是5.1节看到的确认框)
- 访问范围:Claude Code主要围绕你启动它时的工作目录活动
这个\"先问再做\"的机制是安全设计——AI再聪明也只是助手,方向盘握在你手里。作为安全从业者,你应该欣赏这种默认最小权限的思路。
六、常用命令介绍
6.1 帮助命令
忘记怎么用了?两个层面的帮助随时可用:
| 层面 | 命令 | 内容 |
|---|---|---|
| 程序内部 | /help | 打开内置帮助手册:所有斜杠命令和快捷键的说明 |
| 命令行 | claude --help | 查看启动参数(-p、-c、-r等,需先退出Claude再执行) |
另外还有一个实用的体检命令 /doctor:当Claude Code行为异常(连不上、卡顿、报错)时,运行它可以自动检查安装和配置的健康状况,并给出修复建议。
6.2 退出命令
退出Claude Code的方式有几种,任选顺手的:
| 方式 | 操作 |
|---|---|
| 斜杠命令 | 输入 /exit 或 /quit 回车 |
| 快捷键 | 连按两次 Ctrl + C |
| 快捷键 | 按 Ctrl + D |
注意区分:按一次 Ctrl + C 是清空当前输入框内容(或打断Claude),连按两次才是退出。
6.3 常用斜杠命令速查表
斜杠命令(以 / 开头)是发给Claude Code程序本身的指令,不是发给AI的对话内容。以下是入门阶段最常用的:
| 命令 | 作用 | 使用场景 |
|---|---|---|
| /help | 查看帮助 | 忘记命令和快捷键时 |
| /status | 查看当前状态 | 确认模型、账号连接信息 |
| /clear | 清空对话上下文 | 换一个新话题时 |
| /compact | 压缩对话上下文 | 聊了很久,想让AI\"记住重点\"继续 |
| /config | 打开设置面板 | 改主题、调 verbosity 等 |
| /cost | 查看本次会话用量 | 关心token消耗时 |
| /doctor | 健康检查 | 工具异常时排查问题 |
| /exit | 退出 | 结束使用 |
小贴士:我们第14课接入的是DeepSeek/GLM平台,/cost 显示的用量仅供参考,准确的消费情况请以各平台后台的\"用量统计\"页面为准。
6.4 常用快捷键速查表
| 快捷键 | 作用 |
|---|---|
| Enter | 发送消息 |
| Esc | 打断Claude的回答 |
| ↑ / ↓ | 翻看历史输入 |
| Ctrl + C(一次) | 清空输入框 / 打断 |
| Ctrl + C(两次) | 退出Claude Code |
| Shift + Tab | 切换编辑模式(自动接受文件修改等,第16课会用到) |
提示:输入 / 开头会自动弹出命令补全列表,用上下键选择、回车确认,不需要死记硬背。不确定时,/help永远是你的退路。
七、实际演示:让Claude解释一段代码
本节课的压轴环节:完整走一遍\"准备代码 → 启动Claude → 解释代码 → 追问 → 退出\"的流程。这次没有截图,我们用文字还原每一步终端里发生的事情,你可以对照着在自己电脑上操作。
7.1 准备示例代码文件
用VSCode(第11课安装)或记事本,在 D:\claude-practice 文件夹中创建 demo.py,输入以下内容并保存:
import socket
def scan_port(host, port):
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.settimeout(1)
try:
s.connect((host, port))
print(f\"[+] {port} 端口开放\")
except:
pass
finally:
s.close()
for port in [21, 22, 80, 443, 3306, 8080]:
scan_port(\"127.0.0.1\", port)
这是一个17行的简易端口扫描脚本——扫描本机的6个常见端口,能连上的就报告\"开放\"。代码不复杂,但包含了函数、异常处理、网络编程几个知识点,很适合让AI讲解。
安全提醒:端口扫描代码仅用于本机学习和授权测试环境。未经授权扫描他人系统属于违法行为,学习安全技术的第一课就是守住法律边界。
7.2 启动并让Claude解释代码
打开PowerShell,进入文件夹并启动:
cd D:\\claude-practice
claude
在输入框输入(也可以用 @demo.py 的方式引用文件):
请解释demo.py这个文件的功能,逐行说明关键代码的作用
Claude会先读取文件,界面显示它的动作过程,然后输出解释。终端里的效果类似这样:
> 请解释demo.py这个文件的功能,逐行说明关键代码的作用
⏺ Read demo.py
⎿ Read 18 lines
⏺ 这是一个用Python编写的简易端口扫描器,逐行解释如下:
**第1行** import socket
导入Python内置的网络编程模块,提供TCP连接能力。
**第3行** def scan_port(host, port):
定义扫描函数,接收目标主机和端口两个参数。
**第4-5行** 创建套接字并设置超时
socket.socket(AF_INET, SOCK_STREAM) 创建一个IPv4的TCP套接字;
settimeout(1) 设置1秒超时——端口不通时最多等1秒,不会卡住。
**第7-8行** 尝试连接
connect() 尝试与目标端口建立TCP连接。三次握手能完成,
说明端口是开放的,就打印提示。
**第11-12行** 异常处理与资源清理
except捕获连接失败(端口关闭/被防火墙过滤)的异常,静默跳过;
finally中的s.close()保证无论成败都关闭套接字,避免资源泄漏。
**第15-16行** 主循环
对21(FTP)、22(SSH)、80(HTTP)、443(HTTPS)、3306(MySQL)、
8080(常见Web服务)这6个端口逐个调用扫描函数,目标是本机127.0.0.1。
整体逻辑:对候选端口逐个尝试TCP连接,1秒内能连上即判定为开放。
短短几秒,一份结构清晰的逐行讲解就完成了——这就是第13课说的\"解释代码\"能力的实际体验。
7.3 追问细节
接着追问一个具体的点,测试它的上下文理解能力:
settimeout(1)是什么意思?如果把1改成0.1会有什么影响?
Claude会基于刚才读过的代码继续回答:
⏺ settimeout(1) 设置套接字操作的超时时间为1秒。
对connect()来说:如果目标端口不回应(被防火墙丢包而非明确拒绝),
连接尝试最多阻塞1秒就会抛出timeout异常,被except捕获。
把1改成0.1的影响:
- 扫描速度明显变快:每个不通的端口最多等0.1秒
- 但准确性下降:网络延迟稍大时,本来开放的端口可能还没完成
三次握手就被判定超时,造成漏报
这是端口扫描工具经典的\"速度与准确性\"权衡,实际工具(如nmap)
会提供更精细的超时和重试策略。
看到了吗?它不仅回答了问题,还延伸到了速度/准确性权衡的工程思维——追问是榨取AI价值的最有效方式。
7.4 退出Claude Code
练习完成后,输入 /exit 回车退出(或连按两次 Ctrl + C),回到普通的命令行提示符,本次演示结束。
7.5 复盘:刚才发生了什么
| 步骤 | 你做了什么 | Claude Code做了什么 |
|---|---|---|
| 1 | 在项目文件夹启动 claude | 以该文件夹为工作目录启动 |
| 2 | 用自然语言要求解释代码 | 读取demo.py(界面上显示Read动作) |
| 3 | 追问settimeout细节 | 结合上下文回答,并做知识延伸 |
| 4 | /exit 退出 | 保存会话,可用 claude -c 继续 |
记住这个体感:你负责说清楚要什么,它负责读代码、查资料、动手干。
八、课后作业
必做作业
- 完成第一次启动配置
- 启动 claude,完成主题选择和文件夹信任确认
- 输入 /status,记录显示的模型信息
- 完成一次技术问答
- 向Claude Code提问一个技术问题(如\"什么是SQL注入\")
- 至少追问一轮,体验多轮对话
- 用 /clear 清空上下文
- 让Claude Code解释你自己的代码(本课核心作业)
- 找一段你以前写过的代码(任何语言都可以,没有的话用本课7.1节的demo.py)
- 保存为文件放进一个文件夹,在该文件夹启动Claude Code
- 让它读取并解释这段代码,再追问一个细节问题
进阶作业(选做)
- 试试一次性提问模式:claude -p \"用一句话解释什么是端口扫描\",对比它和交互模式的区别
- 练习 @ 引用文件:输入 @ 后观察文件补全列表
- 用 /help 浏览一遍帮助手册,把你觉得有用的命令记下来
常见疑问
- 问:为什么Claude执行命令前总要问我一下,好麻烦?
- 答:这是权限确认机制,是刻意为之的安全设计。如果嫌麻烦,可以在确认时选第2项(这类命令不再询问),但建议新手期保持每次确认,你能借此观察AI到底在执行什么命令。
- 问:Claude回答到一半跑偏了,必须等它说完吗?
- 答:不用。按 Esc 键随时打断,然后补充说明你的要求重新问。
- 问:/clear 和 /compact 有什么区别?
- 答:/clear 是彻底清空,一切从头开始,适合换话题;/compact 是把历史对话压缩成摘要保留重点,适合话题太长想\"续命\"的场景。
- 问:我把终端关了,刚才的对话还能找回来吗?
- 答:可以。重新启动时用 claude -c 继续最近一次对话,或用 claude -r 从历史会话列表中挑选恢复。
- 问:为什么Claude有时不直接回答,而是先显示一串操作?
- 答:那串操作(如Read、运行命令)是它在为回答收集信息——比如先读文件再解释。看到 ⏺ 符号开头的内容就是它实际执行的动作,操作完成后会给你最终回答。
扫码进入AI交流群
*— 关于我们 —*
镇江刺掌信息科技有限公司成立于2020年,公司旗下MS08067安全实验室,专注于网络安全领域教育、培训、认证产品及服务提供商。近两年,线上培训人数近10万人次,培养网络安全人才近6000名。
公司被认定为国家高新技术企业、国家科技型中小企业、江苏省创新性中小企业、江苏省民营科技企业、江苏省软件企业。并荣获机械工业出版社“年度最佳合作伙伴”、电子工业出版社-博文视点“优秀合作伙伴”、镇江市企业发展服务中心优质合作伙伴、镇江市网络安全应急支撑服务单位等荣誉称号。
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。







评论