简介:一份面向Kali Linux初学者与渗透测试爱好者的常用命令速查手册,系统梳理文件管理、系统监控、文本处理等高频操作,帮助用户摆脱命令记忆负担,提升终端操作效率。内容按功能模块分章编排,涵盖ls/cd/cp/mv/touch/mkdir等文件基础命令、df/free/top等系统信息命令、grep/sed/awk等文本处理命令,同时包含whatis、help、man、info帮助文档查阅方式,以及su/sudo用户切换与shutdown/halt/reboot电源管理命令,贴近实际渗透测试和运维场景。整份资料打包为单个docx文件,共1个文件,压缩包大小1.96MB,方便下载后离线查阅。已有633人学习,适合作为入门阶段的随身参考。文档采用清晰目录分层,每个命令附带用法说明与参数解析,可快速定位并对照实践,降低初学Kali命令的门槛。
1. 从「打开终端一脸懵」到「命令随手就来」:这篇 Kali 命令整理能帮你什么
我第一次装完 Kali,盯着满屏的图标以为万事大吉,结果真到做信息收集和 Web 渗透练习时,才发现九成操作都要回终端敲命令。图形界面只是入场券,命令行才是 Kali 的常态——目标机器上不会有桌面给你点,SSH 进去就是黑底白字,工具跑起来全是参数和管道。那段时间我最大的感受是:命令本身不难背,难的是不知道什么时候该用哪条、报错出来怎么排查,以及哪些操作做了就没有后悔药。
这份《Kali 常用命令大全》我前后翻了三遍,最初当字典查,后来发现按它的目录顺序硬啃效率很低。真正把它吃透,是在我按实战场景重新组织一遍之后:文件操作归一条线,帮助查询归一条线,用户与电源归一条线,查看与压缩归一条线。这篇就把我重新梳理后的结果写出来,配合每个命令的适用判断和踩过的坑。刚接触 Kali 的新手可以照着上手,已经用了一段时间的人也能在参数细节和常见误用里找到点平时没注意的东西。
2. 上手第一关:文件目录操作与路径理解
文件系统操作是 Kali 里所有工作的地基。不管你后面跑的是 Web 渗透工具还是写脚本,第一步永远是确认自己在哪个目录、目标文件在哪。这一章把目录查看、路径切换、文件增删改查放在一起讲,因为它们在真实操作里本来就是连续动作——进目录、看内容、找到目标、复制或移动,一条龙下来才是常态。
2.1 ls 与路径切换:先看清自己站在哪
ls的常用参数就那几个,但组合起来差别很大。-a显示隐藏文件,Web 渗透里找.htaccess、.git泄露目录时几乎是必用;-l看权限、属主、大小,ls -l在 Kali 里可以直接简写成ll,Zsh 环境下默认就有这个别名。-t按时间排序,分析日志目录或找最近被修改的文件时很顺手;-h配合-l能把文件大小显示成 K、M、G 这种人类可读格式,ls -lh是我检查上传目录、找大备份文件时的固定动作。
cd有个隐藏参数容易被忽略:cd -会切回上一个工作目录。批量处理文件时在两个深路径之间反复横跳,这个用法能省不少事。cd不加参数直接回车,回当前用户家目录;cd ..上跳一级。还有-P和-L的区别,涉及符号链接时行为不同——默认是跟随符号链接,加-P才切到物理路径。这个细节平时用不上,但哪天软链接指飞了,排查起来会少走弯路。
pwd看着没什么可讲的,但配合软链接时它一样有-L和-P之分。默认情况下pwd打印的是环境变量$PWD的值,可能显示的是符号链接路径;加-P才显示物理位置。判断当前到底在哪个真实目录、写绝对路径时,用pwd -P更保险。
2.2 文件增删改查:touch、mkdir、cp、mv、rm 的细节
touch两个功能,创建空文件和更新时间戳。新建文件是入门操作,但时间属性更新在渗透测试里也有用途——你不想让某个文件因为时间戳太新引起注意,可以用touch -t把访问时间和修改时间改成指定值,参数格式是[[CC]YY]MMDDhhmm[.ss]。-a只改 atime,-m只改 mtime,默认不带参数时两者都改成当前时间。
mkdir的关键参数是-p,递归创建多层目录。这个参数平时建目录省事,在脚本里更是必不可少——目标目录的上级不存在时不会直接报错,而是把整条路径都建出来。-m可以在创建时直接设权限,比如mkdir -m 700 目录名一步到位,省得创建完再补chmod。
cp、mv、rm三个命令放在一起说,因为它们共享两个重要参数:-i在覆盖或删除前询问,-f强制执行不询问。我见过不止一个人因为没养成-i的习惯,一条rm -rf下去把整个目录清了。Kali 默认的 Zsh 里rm不一定带-i,所以高危删除操作前一定想清楚。cp的-a参数等于-dpR组合,递归复制且保留属性、符号链接关系,备份整个目录结构时最省心。mv在同一目录内移动就是重命名,-u只在源文件比目标新时才覆盖,同步文件时比默认参数安全。
2.3 硬链接与软链接:ln 的绝对路径教训
ln默认创建硬链接,ln -s创建软链接(符号链接)。这两种链接的本质区别,新手阶段可以简单记:硬链接是两个名字指向同一份数据,删除其中一个,另一个还能正常访问;软链接是独立文件,里面存的是目标路径,目标被删除后,软链接就成了悬空指针。
最常见的坑是ln -s时源文件没写绝对路径。举个例子,在某目录下执行ln -s 目标文件 链接名,当时看着正常,但一旦你从这个目录切走,再从别的路径访问这个软链接就失效了。判断依据很简单:软链接里保存的是你写进去的路径字符串,它是相对路径就只能在相对位置上解析。所以我的习惯是创建软链接时源文件一律写绝对路径,命令写成ln -s /绝对/路径/目标 /绝对/路径/链接,这样任何位置访问都不会翻车。
3. 查命令比背命令重要:帮助体系与查询工具
Kali 里命令数量太多,没人能全记住。真正拉开效率差距的,是你查文档的速度和准确性。这一章把帮助命令和查询命令分成两个层面:帮助命令解决「这个命令怎么用」,查询命令解决「目标文件在哪、我敲的命令是哪个路径下的」。两条线都理顺了,遇到陌生工具才不会卡住。
3.1 whatis、help、man、info:按需选层级
这四个帮助命令不是平级关系,是按信息详细程度分层。whatis只给一句话描述,它的作用是让你快速知道一个命令是干嘛的,例如whatis nmap会返回一个短句,几秒钟就能确认工具用途,不用翻整本手册。help只覆盖 Shell 内置命令,比如cd、echo、export这类,输入help cd就能看到参数说明。man才是真正的主力,大部分外部命令的完整手册都靠它看,Kali 的手册页默认存放在/usr/share/man目录,man -k 关键词还能按关键词搜索相关的手册页,比逐个命令试快得多。
info看的是 GNU 信息文档,它比man多了超链接和节点跳转,适合阅读偏文档型的工具说明。但 Kali 默认不装,需要sudo apt install info。从实用角度看,新手阶段把whatis和man用熟就够应付九成场景,info更多是在查 GNU 系工具细节时才值得切过去。
Kali 上的man手册默认是英文,阅读有障碍时可以考虑装中文手册页。安装manpages-zh后做个别名指向中文目录,man就能显示中文。这个操作本身不难,但装完要注意:中文手册的翻译覆盖并不全,很多冷门命令的页面还是英文,所以不能指望它完全替代英文手册,只能作为辅助。
3.2 find、locate、which:找文件和找命令
find是按条件实时遍历文件系统,功能最全但开销也最大。常用组合我维护了一套:find /路径 -name "文件名"按名字找,-iname忽略大小写;-type f只要文件、-type d只要目录,-type l找符号链接;-size +10M找出超过 10M 的大文件,分析磁盘占用或找备份文件很有用;-perm -4000查找带 SUID 权限的文件,这是 Linux 提权信息收集里的经典动作。真实使用中find通常会限定路径范围,避免全盘扫描拖慢系统。
locate的用法和find类似,但原理完全不同——它直接查预建的文件索引数据库,所以速度极快,代价是刚创建的文件不一定被索引到。判断依据是:找日常文件、范围明确就用locate,几毫秒出结果;找最新生成的文件或需要按权限、大小等条件筛选用find。索引库更新可以等系统自动执行,也可以手动updatedb强制刷新,但 Kali 默认没装这个过程,要视环境而定。
which解决的是「我敲的命令到底是哪个路径下的」。Kali 里同名工具可能存在多个版本,例如系统自带一个 Python,虚拟环境里又有另一个,which python直接告诉你当前 Shell 实际调用的是哪个。这个命令在排查环境变量配置问题时几乎是第一排查步骤——命令行为异常时,先which确认执行路径,再决定是该改 PATH 还是换版本。
4. Kali 日常操作:登录切换、电源控制、文件查看与压缩
这一章覆盖四类日常高频操作。登录与用户切换涉及权限边界,电源命令涉及系统安全,文件查看和压缩打包则是渗透测试里搬运数据、分析日志的常规动作。每一类都有容易翻车的细节,逐个拆开说。
4.1 用户切换:su 与 sudo 的环境变量差异
su和sudo都能提权,但环境差异很大。su切换到 root 时,如果你只是输su,Shell 环境变量仍是原用户的,PATH 里可能没有/sbin、/usr/sbin这些目录,导致敲ifconfig提示找不到命令——实际上命令存在,只是路径没被搜到。解决方法是su -,这个-参数会模拟一次完整登录,加载目标用户的环境变量。su -c "命令"可以在切换身份后执行单条命令并立即恢复原身份。
sudo的作用是让普通用户以管理员权限执行指定命令,它不需要切到 root 的交互 Shell,按需提权,安全性更好。判断依据我这几年用下来就一条:只执行一条需要权限的命令用sudo,需要长时间待在 root 环境下操作用su -。另外注意su默认切到 root,如果想切到别的用户要指定用户名,例如su - 用户名。
4.2 电源命令:shutdown、halt、reboot 的边界
电源命令这一节,很多人觉得没什么好讲的,但 Linux 和 Windows 的关机逻辑差异很大。Windows 直接断电问题不大,Linux 后台跑着大量进程,强制断电可能丢数据甚至损坏文件系统。shutdown是安全关机的正路,它会先通知所有登录用户,冻结新的登录请求,然后逐项关闭服务再切断电源。shutdown -h now立即关机,shutdown -r now立即重启,-c取消已经排定的关机任务。
halt的定位是快速关机,但它不执行完整的服务关闭流程,直接停止系统。reboot重启,参数和halt基本对应。这两条命令平时用的不算多,但要知道它们的边界:halt和reboot适合已经确认没有重要任务、想快速开关机的场景;正常结束工作时用shutdown更稳。还有个细节是shutdown -k,它只发送警告消息给所有用户但实际不关机,做系统维护通知时可以用它试探流程。
4.3 文件查看:cat、less、head、tail、find 的分工
cat适合查看短文件、合并多个文件内容、显示带行号的内容。cat -n给所有行编号,-b跳过空白行编号,看配置文件找具体行号时很好用。但cat有个明显的缺陷:大文件直接刷屏,内容多的时候终端窗口根本看不过来。
less是替代cat看大文件的正解。它能向前也能向后来回翻页,这是和more最大的区别——more只能朝一个方向翻。less里按/字符串向下搜索,?字符串向上搜索,q退出。分析几十 MB 的访问日志、抓取的数据包时,less几乎是标准操作。
head默认显示前 10 行,tail默认显示末尾 10 行。这两个命令在日志分析里最常用的是tail -f 文件名,实时跟踪文件新增内容,Web 渗透里观察目标服务的实时日志流出就靠它。head -n指定行数,tail -n同理,-c指定字符数。看日志开头段、结尾段、实时追加内容,用这三个命令比cat整个打开高效得多。
4.4 压缩与打包:gzip 和 tar 的组合拳
gzip是单个文件的压缩工具,压缩后原文件变成.gz文件,-d解压,-k保留原文件——注意这是很多发行版里常见参数,但不同版本行为有差异,用前man gzip确认一下。-r递归处理目录,-l查看压缩文件信息。上传下载单个大文件时,gzip比zip更常见。
tar则是打包工具,它把一堆文件和目录合成一个包,本身不压缩,配合-z参数才调用 gzip 算法压缩,所以常见组合是tar -czvf 包名.tar.gz 目标——c创建包,z用 gzip,v显示过程,f指定文件名。解包是tar -xzvf 包名.tar.gz,x提取。备份工具目录、传递一整组文件时,tar打包后gzip压缩是标准流程,两个命令各管一段,互相配合。
5. Kali 新手翻车现场:五个常见问题与排查思路
命令背熟了不代表不踩坑。这一章写我见过、也亲身经历过的五个高频问题,每一条都是「现象→原因→解决」的结构,排错思路比命令本身更值得抄。
5.1rm -rf误删之后才想起来没备份
现象:敲下sudo rm -rf 目录/,命令执行完才反应过来路径写错了或者删的不是目标目录。原因:rm -rf不确认、不回收站,删除即永久消失,尤其以 root 身份执行时没有二次确认。解决:第一反应是立刻停止对磁盘的一切写入操作,用umount卸载相关分区或只读挂载,再用数据恢复工具尝试找回,但成功率不保证。真正的解法是事前预防,我的习惯是删除前先ls确认当前目录,高危操作写绝对路径并在命令前加echo预览一遍,确认无误再去掉echo。
5.2su切到 root 后找不到命令
现象:普通用户下敲nmap正常,su切到 root 后反而提示command not found。原因:su不加-时不加载 root 用户的完整环境变量,PATH 里缺少/usr/sbin等目录。解决:用su -完整登录,或者直接sudo 命令提权执行,不切交互 Shell。
5.3locate查不到刚创建的文件
现象:刚下载了工具包解压,locate 文件名却提示没有匹配结果。原因:locate查询的是预建索引库,新文件还没被索引进去。解决:执行updatedb强制更新索引后再查,或者改用find /路径 -name 文件名实时查找。
5.4tail -f跟日志,终端卡死退不出来
现象:tail -f /var/log/某日志一直刷屏,Ctrl+C 好像没反应。原因:日志输出过快,终端缓冲区被撑满,看起来像卡住。解决:其实tail -f用Ctrl+C能退出,只是日志刷得急不容易看到效果;更稳妥的做法是配合grep过滤,例如tail -f 日志 | grep 关键词,只跟踪关心的条目,终端压力小很多。
5.5tar解压报错Error exit delayed from previous errors
现象:解压.tar.gz文件时提示这个错误,但文件看起来是完整的。原因:最常见的是磁盘空间不足,或者压缩包本身在传输过程中损坏;也有权限问题导致部分文件写不进去。解决:先df -h看磁盘剩余空间,再ls -l看包大小和预期的体积对比,最后检查解压目录是否有写权限。这三步按顺序排查基本能定位。
6. 把命令练成肌肉记忆:我最后留下的三条练习路径
这一章不讲新命令了,讲我怎么把这些命令真正变成顺手的东西。方法很简单:把命令按真实场景组合起来练,而不是逐个孤立地敲。我常用的三个练习路径,基本覆盖了 Web 渗透里日常会碰到的操作习惯。
第一条路径是信息收集时的文件侦察。目标是一台模拟靶机,练习动作是:ls -la看隐藏文件,find /var/www -type f -name "*.php"找站点脚本,cat 配置文件看数据库连接信息,tar -czvf 备份.tar.gz 敏感目录把找到的资料打包。这个流程把目录查看、查找、读取、压缩四类命令串成一条线,练完一遍就清楚每个命令在真实场景里扮演什么角色。
第二条路径是日志分析。拿到一份几十 MB 的访问日志,先用ls -lh看文件大小,head -n 20看开头格式,less分页浏览,grep "关键词"过滤攻击特征,最后tail -f实时观察新增日志。这套组合是「大文件怎么读」的标准答案,比单纯背命令参数有用得多。
第三条路径是工具部署。下载到工具包后,tar -xzvf 工具.tar.gz解压,mv移动到/opt目录,ln -s /opt/工具目录/主程序 /usr/local/bin/工具名做软链接,which 工具名验证能被系统找到。这条路径把压缩、移动、链接、查询四个动作连贯起来,完成后你的自定义工具就进入了系统 PATH,随时可以调用。
回过头看,我学 Kali 命令最大的教训是:别按手册顺序背,按场景用。命令只是零件,组合起来才是能力。从那以后,我每次拿到新工具都强制自己走一遍「解压→移动→链接→验证」的流程,练熟了之后,遇到陌生环境也能快速把工具装好、让命令跑起来。也希望这篇整理能帮你把琐碎命令串成自己的操作习惯,少走我走过的弯路。
本文还有配套的精品资源,点击获取