简介:《Kali Linux 常用命令大全》面向刚接触 Kali 与 Linux 的网络安全学习者、Web 渗透测试入门者及日常运维人员,围绕命令速查与基础操作梳理,帮助读者在文件管理、系统信息查看、文本处理和权限切换等场景中快速定位用法,减少边查边试的成本,适合作为入门阶段的手边参考。压缩包仅含 1 个 docx 文件,约 1.96MB,文档按目录查看、帮助命令、登录与电源管理、路径切换、文件及目录创建复制移动等模块编排,覆盖 ls、man、sudo、shutdown 等高频命令的释义与使用提示,目录层级清晰,便于按主题检索。已有 633 人学习,说明其在 Kali 基础命令学习场景中具有一定参考价值,适合桌面速查,也便于按章节系统熟悉 Kali 环境。读者可借助这份文档补齐 Linux 命令行基础,理解常用命令的用途与操作边界,为后续渗透测试工具实践打牢基础。
1. Kali常用命令大全怎么用:先解决“命令想不起来”的现场问题
凌晨在授权实验环境里翻日志,明明记得要找隐藏文件,手却先敲了ls,结果漏掉点号开头的目录;这类现场问题不是靠背参数解决的,而是缺一份能按命令名快速翻到的底稿。《Kali 常用命令大全》就是按这个思路整理的文档:从ls、cd、cp到find、tar,再到su、last、shutdown,覆盖 Linux 基础命令、文件查看、打包压缩和登录电源管理。做 Web 渗透测试、网络安全自查或刚上手 Linux 操作系统的人,都能把它当成手边索引;新手按目录跟做,熟手拿它查参数边界。它不是教程,更像排错时先翻一眼的清单。
2. 帮助链先立住:whatis、help、man、info 的查询顺序与中文手册配置
命令记不住不是能力问题,真正拖慢现场的是不知道该查哪一层帮助。有人一上来就man,翻了十几屏还没找到参数;也有人把help用在外部命令上,结果只得到一句“不是 shell 内建命令”。更稳的顺序是:先用whatis拿一句话定位,再用help看 shell 内建命令的语法,接着用man查完整手册,最后用info补 GNU 项目的节点式文档。这个顺序不玄学,核心是控制信息量:先确认命令干什么,再决定要不要读长文档。
2.1 为什么先建立查询顺序而不是背参数
命令参数会随版本、发行版和 shell 环境变化,背下来的参数表很容易在真实机器上翻车。比如ls -l和ll的关系,有的环境把ll做成别名,有的没有;help只对 shell 内建命令有效,外部命令得走--help或man。我一般把帮助链当成“黑匣子”的说明书:先看最短描述,确认命令身份;再看内建语法,确认当前 shell 是否支持;最后才翻完整手册。这样查一次能留下判断路径,下次遇到同类命令不用从头猜。
选型上,whatis适合快速定位,help适合内建命令,man适合参数和配置文件说明,info适合 GNU 工具的长文档。四者不是替代关系,而是不同粒度。把这层关系立住,再去看《Kali 常用命令大全》里的命令目录,就不会变成从第一页背到最后一页。
2.2 whatis 与 help 的最小验证
# 查命令的一句话描述 whatis ls whatis cp # 查 shell 内建命令的帮助 help cd help alias这段命令的逻辑是先用whatis确认命令的简要功能,再用help看内建命令在当前 shell 里的用法。whatis后面直接跟命令名,不需要参数;它查的是手册数据库里的简短描述,如果数据库没建好,常见做法是先执行sudo mandb更新索引。help只对 shell 内建命令有效,像cd、alias、exit这类命令能直接出语法;对cp、find这类外部命令,help cp不会给出完整手册,应该改用cp --help或man cp。
注意:
whatis查不到结果时,不一定是命令不存在,可能只是手册索引未更新;先确认命令路径,再处理索引。
2.3 man 的检索与中文手册配置
# 查看完整手册 man ls # 按关键词搜索手册页 man -k passwd | head -n 8 # 安装中文手册并配置别名 sudo apt update sudo apt install -y manpages-zh echo 'alias cman="man -M /usr/share/man/zh_CN"' >> ~/.zshrc source ~/.zshrc这段命令的逻辑是先读man ls的完整手册,再用man -k按关键词找相关手册页,最后安装中文手册包并做一个cman别名。man -k的关键词可以是passwd、network这类词,输出后用head -n 8只取前八行,避免刷屏。manpages-zh是中文手册包,安装后用-M /usr/share/man/zh_CN指定手册路径;echo ... >> ~/.zshrc是把别名追加到当前 shell 的配置文件,source让配置立即生效。如果默认 shell 是 bash,把~/.zshrc换成~/.bashrc即可。
| 命令 | 适合查什么 | 信息量 | 常见边界 |
|---|---|---|---|
whatis | 一句话描述 | 最小 | 依赖手册索引 |
help | shell 内建命令 | 小 | 外部命令不适用 |
man | 参数、配置文件、编程接口 | 大 | 中文包不一定全覆盖 |
info | GNU 项目节点文档 | 中大 | 默认可能未安装 |
注意:安装中文手册前先确认环境允许联网;离线环境不要反复执行
apt update,直接查本地已有手册即可。
2.4 info 与命令卡片沉淀
# 安装 info 并查看 GNU 文档 sudo apt-get install -y info info coreutils # 把常用手册导出成自己的命令卡片 mkdir -p ~/cmd-cards MANWIDTH=100 man ls > ~/cmd-cards/ls.txt这段命令的逻辑是补上 GNU 文档入口,并把常用命令的手册导出成文本卡片。apt-get install -y info里的-y表示自动确认安装;info coreutils打开 GNU 核心工具文档,适合查cp、mv、rm这类命令的细节。MANWIDTH=100控制导出文本的宽度,避免长行在卡片里折得难看;man ls > ~/cmd-cards/ls.txt把手册重定向到文件,后续可以用less翻,也可以按项目整理成自己的检索目录。
命令行卡片不需要一开始就做几十张,先把ls、find、tar、su、shutdown这几类高频命令各导一份,遇到现场问题再补。这样命令大全就不是一份静态文档,而是能和你当前环境对得上的底稿。
3. Linux 文件操作闭环:ls、cd、cp、mv、rm、ln 在模拟项目里的落地顺序
文件操作最容易出的问题不是不会敲命令,而是顺序错了:没确认当前路径就删文件,没看隐藏文件就复制目录,软链接用了相对路径导致换目录后断链。更稳的做法是把pwd、ls -al、mkdir -p、cp -a、mv -b、ln -s、rm -ri串成一个闭环。下面用~/demo-project这个模拟项目走一遍,路径可以换成你自己的实验目录。
3.1 先确认工作目录与隐藏文件
# 确认当前绝对路径 pwd # 查看所有文件,包括隐藏文件,并显示详细信息 ls -al # 人类可读的大小显示 ls -lh这段命令的逻辑是先确认“我在哪”,再确认“目录里有什么”。pwd不带参数,输出当前工作目录的绝对路径;ls -al里的-a显示所有文件及目录,包括以点开头的隐藏文件,-l显示文件类型、权限、拥有者、大小等详细信息;ls -lh里的-h把大小换成便于阅读的单位。很多人复制目录时漏掉隐藏配置文件,就是因为只敲了ls,没有加-a。
提示:在删除、移动、打包之前,先跑一次
pwd和ls -al,确认路径和隐藏文件,比事后找后悔药便宜。
3.2 创建、复制、移动的组合
# 递归创建目录结构 mkdir -p ~/demo-project/{notes,logs,backup} # 创建空文件 touch ~/demo-project/notes/todo.md # 保留属性复制目录,并在目标名后加日期 cp -a ~/demo-project/notes ~/demo-project/backup/notes-$(date +%F) # 覆盖前先备份 mv -b ~/demo-project/notes/todo.md ~/demo-project/notes/todo.md.bak这段命令的逻辑是先用mkdir -p一次建好项目目录,再用touch建一个空文件,接着用cp -a做保留属性的目录复制,最后用mv -b做覆盖前备份的移动。mkdir -p的-p表示递归创建,并且目录已存在时不报错;大括号展开{notes,logs,backup}是 shell 的功能,bash 和 zsh 都支持。cp -a等价于同时保留权限、时间戳并递归处理,适合复制目录;$(date +%F)会展开成日期,避免备份目录重名。mv -b的-b表示覆盖前先备份,-i则是覆盖前询问,现场更稳的是-i或-b,不要直接-f。
3.3 软硬链接的选择与路径陷阱
# 软链接建议用绝对路径,换目录后不容易断 ln -s /home/user/demo-project/logs ~/demo-project/logs-link # 硬链接指向同一 inode ln /home/user/demo-project/notes/todo.md ~/demo-project/todo-hardlink # 查看 inode,确认硬链接关系 ls -li ~/demo-project/notes/todo.md ~/demo-project/todo-hardlink这段命令的逻辑是对比软链接和硬链接。ln -s创建符号链接,源路径写成绝对路径后,即使从别的目录访问也不容易断;ln不带-s创建硬链接,硬链接和源文件指向同一个 inode,ls -li里的-i就是显示 inode。硬链接不能跨文件系统,普通用户也不能对目录建硬链接;软链接可以指向目录,但源路径写错或相对路径基准变化时会断。手册里写“软链接源文件必须写成绝对路径”,实际落地时我一般也按这个习惯走,省得后面排查断链。
3.4 删除前的防护与回收习惯
# 删除前先列目录确认 ls -al ~/demo-project/backup # 递归删除并逐项询问 rm -ri ~/demo-project/backup/notes-2025-01-01这段命令的逻辑是先用ls -al确认待删目录内容,再用rm -ri做递归删除并逐项询问。rm -r表示递归处理目录及其子目录,-i表示删除前询问,-f是强制删除、不询问。rm -rf不是不能用,而是要在确认路径没有变量拼接、没有空格、没有通配符误伤之后再考虑;如果脚本里写rm -rf $DIR/,而$DIR为空,后果就不是命令大全能兜住的了。删除前先ls,是我在模拟项目里强制保留的动作。
4. 授权审计中的查看与打包:less、find、grep、tar、gzip 的组合用法
在授权测试或自有实验环境里,查看日志、筛错误、打包证据是高频动作。cat适合短文件,长文件用less;head和tail控制首尾;find按名称、类型、大小找文件;grep按内容筛;tar和gzip负责打包压缩。这里的边界很清楚:命令只用于你拥有授权的目录和日志,别把检索范围扩到不属于你的系统。
4.1 大文件查看:less、head、tail 的分工
# 分页查看,支持前后翻页和搜索 less ~/demo-project/logs/access.log # 看开头 20 行 head -n 20 ~/demo-project/logs/access.log # 看末尾 50 行 tail -n 50 ~/demo-project/logs/access.log # 跟踪文件新增内容 tail -f ~/demo-project/logs/access.log这段命令的逻辑是按文件大小和查看目的选工具。less里可以用空格翻页、/字符串向下搜索、?字符串向上搜索、q退出;head -n 20和tail -n 50里的-n指定行数;tail -f持续跟踪文件新增内容,适合看正在写入的日志,退出按Ctrl+C。长日志不要直接用cat刷屏,cat更适合短文件或拼接多个短文件。
注意:日志轮转后,
tail -f可能跟丢原文件;现场要确认当前文件是否被切割或重命名。
4.2 find 与 grep 组合做证据检索
# 按类型、名称、大小找日志 find ~/demo-project -type f -name '*.log' -size +1M # 递归搜索内容,忽略二进制文件并显示行号 grep -RIn --include='*.log' 'error' ~/demo-project/logs # 对 find 结果逐个执行 grep find ~/demo-project -type f -name '*.log' -exec grep -n 'error' {} \;这段命令的逻辑是先用find缩小文件范围,再用grep缩小内容范围。find的-type f只找普通文件,-name '*.log'按文件名匹配,-size +1M找大于 1MB 的文件;grep的-R递归目录,-I忽略二进制文件,-n显示行号,--include='*.log'只筛指定后缀。-exec ... {} \;是对每个 find 结果执行一次命令,{}代表当前文件,末尾的\;是结束标记。路径里如果有空格,引号要写完整,别让 shell 提前拆参数。
4.3 文本处理最小集:grep、sed、awk
# 取第一列并统计出现次数 awk '{print $1}' ~/demo-project/logs/access.log | sort | uniq -c | sort -nr | head # 只打印前 20 行 sed -n '1,20p' ~/demo-project/logs/access.log这段命令的逻辑是用awk按列取字段,再用sort、uniq -c和sort -nr做计数排序;sed -n '1,20p'只打印第 1 到第 20 行。awk '{print $1}'里的$1表示第一列,默认按空白分隔;uniq -c统计连续重复行,所以前面要先sort;sort -nr按数值倒序。sed -n的-n是安静模式,不自动打印,p才是打印指定范围。文本处理命令不需要一次学全,先把“取列、筛行、计数”这三类动作跑通。
4.4 tar 与 gzip 的打包压缩流程
# 打包并 gzip 压缩,-C 先切到项目目录,避免包内出现绝对路径 tar -czvf ~/demo-project/backup/logs-$(date +%F).tar.gz -C ~/demo-project logs # 打包后先列表验证内容 tar -tzf ~/demo-project/backup/logs-$(date +%F).tar.gz | head # 解压 .gz 文件 gzip -d ~/demo-project/backup/old.log.gz这段命令的逻辑是先创建压缩包,再列表验证,最后处理单独的 gzip 文件。tar -czvf里-c创建新包,-z用 gzip 压缩,-v显示过程,-f指定文件名;-C ~/demo-project logs表示先切换到项目目录再打包logs,这样包内路径更干净。tar -tzf里-t是列出包内容,-z和-f与前面一致;打包后先-t验证,比直接解压到生产目录稳。gzip -d解压.gz文件,原文件默认会被替换,操作前确认目录里有没有同名文件。
系统资源快照也值得一起放进检查表:df -h看磁盘,free -h看内存,top看进程。它们不替代日志检索,但能在打包前告诉你磁盘还剩多少空间,避免压缩到一半写满。
5. 用户与电源命令:su/sudo、last、shutdown 的边界、排查与五类避坑
用户切换和电源命令是“低频率、高影响”的一类:平时不常用,一旦用错就不是小问题。su切身份,sudo借权限执行单条命令;last看登录记录;shutdown安全关机,halt直接硬件关机,reboot重启。这里最需要建立边界感:在授权实验环境里操作,先确认有没有其他用户在线,再决定是否关机或重启。
5.1 su 与 sudo 的差异与审计价值
# 查看当前身份 id # 查看当前用户可用的 sudo 权限 sudo -l # 切换到 demo 用户并重新加载登录环境 su - demo这段命令的逻辑是先确认身份,再看授权,最后做用户切换。id输出当前用户和组;sudo -l列出当前用户可以通过 sudo 执行的命令,现场排查“为什么我没权限”时先看它;su - demo里的-表示重新开启一个登录 shell,环境变量会按目标用户加载。su demo不带-时只切身份,shell 环境仍可能保留原用户变量;su -c '命令'执行完指定命令后恢复原身份,-m则尽量保留环境变量。sudo和su的差别不在“谁更厉害”,而在授权粒度和审计记录。
| 命令 | 行为 | 适合场景 | 注意点 |
|---|---|---|---|
su - demo | 切换用户并加载登录环境 | 需要完整目标用户环境 | 要输入目标用户密码 |
su demo | 切换身份但环境可能保留 | 临时执行少量命令 | 环境变量容易混 |
sudo 命令 | 以授权身份执行单条命令 | 单次提权操作 | 受 sudoers 规则限制 |
5.2 last 与登录记录排查
# 查看最近 10 条登录记录 last -n 10 # 把登录主机名或 IP 显示在最后一行 last -a -n 5 # 不显示登录系统的主机名或 IP last -R -n 5这段命令的逻辑是用last读登录记录,再用不同参数控制输出。-n 10指定输出条数;-a把从何处登录的主机名或 IP 显示在最后一行;-R不显示登录系统的主机名或 IP。排查登录异常时,先看时间、用户、来源,再看记录是否完整;last读的是登录记录文件,日志轮转或清理后可能缺段,不要只凭一条记录下结论。
5.3 shutdown、halt、reboot 的安全关机流程
# 5 分钟后关机并通知 shutdown +5 "System will shut down after 5 minutes" # 取消已计划的关机 shutdown -c # 重启 reboot这段命令的逻辑是用shutdown做有计划、有通知的关机或重启,用-c取消计划。+5表示 5 分钟后执行,后面字符串是通知内容;-h关机,-r重启,-k只发通知不实际关机。halt不会逐项关闭服务,直接执行硬件关机;shutdown会逐项关闭服务,再执行halt。在真实机器上直接断电源或直接halt,可能导致进程数据丢失,甚至让文件系统处于不稳定状态。
提示:在授权实验环境里先确认没有其他用户登录,再执行关机或重启;计划关机后用
shutdown -c取消,不要靠拔电源解决。
5.4 避坑:命令手册落地时最常见的五类翻车
现象:照着文档敲
help cp,结果提示不是 shell 内建命令。原因:help只对 shell 内建命令有效,cp是外部命令。解决:改用cp --help或man cp,先用whatis cp确认命令身份。现象:软链接刚建好能用,换一个目录再访问就断。原因:
ln -s的源路径写成了相对路径,链接按所在目录解析。解决:源路径尽量写绝对路径,建完用ls -l看箭头指向,再用readlink -f确认实际目标。现象:
rm -rf执行后目录被清空,连备份也没了。原因:路径变量为空或通配符提前展开,命令作用到了预期外的目录。解决:删除前先pwd、ls -al,脚本里给变量加引号并判断非空,交互环境优先用rm -ri。现象:
last看不到某台主机的来源,误判为没有登录记录。原因:使用了-R参数,主机名或 IP 被隐藏。解决:去掉-R,或用last -a把来源显示在最后一行,再结合时间窗口核对。现象:直接
halt后服务数据异常,日志里出现不完整记录。原因:halt不逐项关闭服务,跳过了正常关机流程。解决:优先用shutdown -h或shutdown -r,给进程留出退出时间;实验环境里也要先通知再操作。
6. 命令大全变检查表:三次验证、一个表格和一条长期习惯
把命令大全放在手边只是第一步,真正减少翻车的是把它变成可验证的检查表。我一般做三次验证:先确认命令手册路径存在,再回看最近执行过的命令,最后验证打包内容能列出来。三个动作都不复杂,但能把“我以为”压到最低。
# 验证命令手册是否可定位 man -w ls # 回看最近执行过的命令,检查路径和参数 history | tail -n 20 # 验证压缩包内容可读,输出 OK 表示列表成功 tar -tzf ~/demo-project/backup/logs-$(date +%F).tar.gz >/dev/null && echo OK这段命令的逻辑是用man -w查手册文件路径,用history回看最近命令,用tar -tzf验证压缩包可读。man -w不带分页,只输出路径;history | tail -n 20取最近 20 条命令,重点看路径、通配符和删除类命令;tar -tzf ... >/dev/null && echo OK把列表输出丢弃,只用退出状态判断包是否可读。三条都通过,再把命令卡片放进共享目录,比直接复制一份长文档更可靠。
| 验证动作 | 命令 | 通过标准 |
|---|---|---|
| 手册可定位 | man -w ls | 输出手册路径 |
| 命令可回看 | history | tail -n 20 | 能看到最近操作 |
| 压缩包可读 | tar -tzf 包名 >/dev/null && echo OK | 输出 OK |
从那以后我每次把命令卡片交给别人前,都会先跑一遍man -w、tar -tzf和history回看,确认路径、包内容和实际命令对得上,再放进共享目录。这份《Kali 常用命令大全》适合当底稿,按自己的环境补上路径和参数边界,用起来才顺手。希望帮到你。
本文还有配套的精品资源,点击获取