简介:《Kali Linux常用命令大全》是一份面向网络安全初学者、渗透测试人员及Linux入门用户的命令速查手册,针对Kali Linux操作系统中使用频率最高的基础命令进行系统化整理,可帮助读者快速熟悉文件操作、系统状态查看与文本处理等核心技能,减少日常命令行摸索时间。资源包内共包含1个docx格式文档,整体大小约1.96MB,内容按功能模块分章节编排,从最基本的ls目录查看、cd路径切换,到whatis/help/man/info帮助命令、login登录/exit退出、su/sudo用户切换、shutdown/reboot电源管理、touch/mkdir/cp/mv文件管理均有详细说明与参数示例,结构清晰便于按需查阅。文档还覆盖系统信息命令df/free/top及文本处理命令grep/sed/awk,适合作为渗透测试前掌握Kali环境的入门配套材料。目前已有633人学习下载,对于希望系统建立Kali命令框架、提升操作效率的用户来说,是一份轻量实用的随时查阅参考。
1. 拿全套Kali命令之前:先想清楚它解决什么问题
拿到一台预装了几百个工具的Kali,最先卡住你的往往不是某个工具不会用,而是连基本操作都要停下来现查:想翻隐藏文件忘了参数,想切回上一个目录不知道用cd -,想确认最近谁登录过系统不知道last怎么读。这份《Kali常用命令大全》就是把这类高频命令按用途归好类的速查手册,覆盖文件操作、帮助系统、登录会话、电源管理几大块,每条都带参数说明和注意事项。
它适合两类人。一类是刚开始接触web渗透、平时主要靠在图形界面里点工具的新手,先花半天把命令过一遍,后面跑工具才不至于寸步难行;另一类是已经会一些Linux操作但总记混参数的老手,把它当现场速查表用,查一眼就接着干活。
下面我按“先会查帮助、再会管文件、最后会管会话与电源”的顺序拆一遍,重点标出哪些参数在渗透场景里真正常用,哪些坑值得提前绕开。
2. 帮助命令优先:whatis、man与中文手册的落地配置
2.1 为什么先啃帮助系统
很多人的习惯是拿到Kali先装工具、跑脚本,真到命令行里卡住了才去搜索引擎。但在渗透测试现场,不一定有稳定网络供你慢慢查,系统自带的帮助文档才是第一道救命稻草。Kali预装的命令和工具大多是外部程序,参数又多又怪,光靠记忆不现实,学会用帮助系统可以让大部分问题就地解决。
我的习惯是第一件事不碰工具,先确认帮助体系能正常工作——whatis能查到描述、man能翻到完整手册、内建命令能用help兜底。这套东西通了,后面每遇到一个新工具,都可以在几十秒内拿到参数说明,比到处翻笔记靠谱得多。这条对新手和老手都适用,区别只在于老手查得更快。
2.2 四层帮助命令的选型差异
Linux帮助命令分四层,信息量和使用场景差别很大。whatis只给一句话描述,适合快速回忆某个命令是干嘛的;help专门服务Shell内建命令,像cd、echo这类;man是完整手册页,覆盖大部分外部命令;info则是GNU项目的信息文档,内容更详细,Kali默认没装。
| 命令 | 信息来源 | 信息量 | 适用场景 |
|---|---|---|---|
| whatis | man数据库 | 一句话描述 | 快速确认命令用途 |
| help | Shell内建 | 简要选项列表 | cd、echo等内建命令 |
| man | /usr/share/man手册页 | 完整参数与示例 | 外部命令标准帮助 |
| info | GNU信息文档 | 详细文书 | 深度了解GNU工具 |
whatis nmap help cd man ncwhatis nmap会输出一行关于nmap的简要描述,确认用途够用。help cd给出的是zsh里cd的选项说明,注意它只对内建命令有效,对nmap这类外部命令会直接报错。man nc则是查看nc的完整手册,页面里会写清每个参数、退出状态和示例,遇到不确定的-e、-z这类参数时翻一下最稳。如果whatis查询不到结果,常见原因是man数据库没建立,执行sudo mandb重建索引后再查即可。
2.3 中文man的安装与别名配置
原资源里给了一条很实用的路子:Kali上装中文手册页,再给zsh配一个cman别名,让man默认读中文。Kali默认Shell是zsh,这个细节后面还会提到,配置时要注意别写错文件。
sudo apt update sudo apt install -y manpages-zh echo 'alias cman="man -M /usr/share/man/zh_CN"' >> ~/.zshrc source ~/.zshrc第一行更新软件源索引,第二行安装中文man包。第三行的man -M是指定手册搜索路径,/usr/share/man/zh_CN是中文手册页存放目录,把这条alias写进~/.zshrc后,执行cman就能直接看中文手册。最后一行source让配置立即生效。装完后要有个心理预期:不是所有man页面都有中文翻译,核心命令大多有,冷门工具还是会回退到英文页。
注意:Kali默认使用Zsh,别名别写进.bashrc,否则新开的终端不生效。写完
~/.zshrc记得source一下。
3. 文件系统高频命令:目录切换、文件复制与链接参数速查
3.1 ls、cd、pwd在渗透场景里的正确用法
文件操作是每个会话里最频繁的动作,Kali的/var/log、/etc、/tmp几个目录在渗透测试里翻得最多。ls最常用的组合是-a、-l、-t、-h:-al看全部文件包括隐藏文件,-lt按修改时间排序方便找最近变动的文件,-lh让文件大小以易读的K、M单位呈现。ll在Kali的zsh里不保证默认存在,我自己习惯在配置里给ls -alh起个别名,后面第6章会一起给。
ls -alh /etc ls -lt /var/log cd /var/log cd - pwd -P第一条罗列/etc下含隐藏文件在内的所有条目并带可读大小;第二条把/var/log下的文件按修改时间倒序排,找“最近被改过的日志”时很好用。第三条cd /var/log切到日志目录,第四条cd -是切回上一个工作目录,在内网来回翻配置文件时效率提升明显。最后pwd -P打印的是物理路径而非符号链接路径,配合软链接工作时能看清你实际站在哪个目录层级。
3.2 cp、mv、rm参数速查与删除禁忌
文件复制、移动、删除在Kali里最常见的应用场景是整理扫描结果、备份配置、清理临时文件。三个命令参数看着多,真正高频的就那几组,我按资源内容整理成一张速查表:
| 命令 | 重点参数 | 含义 |
|---|---|---|
| cp | -a | 等价于-dpR,复制时保留属性与符号链接 |
| cp | -p | 保留源文件属性 |
| mv | -i | 目标已存在时覆盖前询问 |
| mv | -u | 源文件更新时才覆盖 |
| rm | -r/-R | 递归删除目录及子目录 |
| rm | -f | 强制删除不询问 |
cp -a /etc/passwd /tmp/passwd.bak mv -i /tmp/passwd.bak /root/passwd.bak rm -rf /tmp/passwd.bak第一条保留权限和属性做备份,这在需要保持文件原始模式时很关键,比如备份一个可执行脚本。第二条加了-i,如果目标目录已有同名文件会先询问,防止误覆盖。第三条rm -rf是双刃剑,资源里特别提到:对于链接文件,rm只删除链接本身,原有文件不会动,所以删软链接基本安全;但删硬链接时要意识到它和原文件共享同一个inode,删掉一个并不等于释放数据块。历来翻车案例大多发生在rm -rf后才发现路径写错,我的习惯是删目录前先ls确认一次。
3.3 touch、mkdir、ln:创建与链接
touch有两个用途:创建空文件,以及把已存在文件的时间属性更新为当前时间。渗透里常拿它测试目标目录是否有写权限,能touch出文件说明可以写。mkdir -p递归创建多级目录,比一层层mkdir省事。ln创建链接时,软链接必须写绝对路径这个坑值得单独说。
touch /tmp/test-write.txt mkdir -p /tmp/loot/a/b/c ln -s /etc/passwd /tmp/passwd-link ls -l /tmp/passwd-link第一条在/tmp创建空文件,验证当前用户对目录的写权限。第二条递归建三层目录,适合在收集漏洞利用过程中需要组织多级文件的时候。第三条创建指向/etc/passwd的符号链接,注意ln -s的参数顺序是“源文件在前、链接名在后”,很多新手第一次会写反。第四条用ls -l检查链接是否生效,如果目标显示红色或者闪烁,基本可以断定是源路径写成相对路径导致断链。
注意:
ln -s的源文件务必写绝对路径,否则离开当前目录后链接立刻失效,这是软链接最容易踩的坑。
4. 文件查看与定位:cat、less、find三个高频场景
4.1 cat、more、less、head、tail:查看命令怎么选
日志和配置文件是渗透测试里的情报来源,查看命令选不对会浪费大量时间。cat适合小文件,-n显示行号,-A能把不可见字符显示出来——处理从Windows传过来的脚本时,行尾的^M一眼就能看到。more是按页显示的老牌分页器,按键习惯接近vi,但只能向前翻,实际用下来不如less顺手。less支持前后翻页、/向下搜索、?向上搜索,是所有查看命令里最值得长期用的一个。
cat -n /etc/hosts less /var/log/syslog tail -f /var/log/apache2/access.log第一条带行号输出hosts,排查域名解析问题够用。第二条用less打开系统日志,配合/error直接定位关键字,几百KB的文件翻起来也不卡。第三条是tail -f,实时尾随访问日志输出,做web渗透时盯扫描结果、盯漏洞利用后的回连记录,这个命令能一直挂着。head和tail默认只显示10行,-n指定行数,-c按字符数截取,后者在日常操作里用得少。
4.2 find、locate、which:三种定位方式
定位文件有三个层次:find实时遍历文件系统,条件最灵活;locate查索引数据库,速度快但依赖updatedb定期更新;which只在PATH环境变量里找可执行文件,用于确认命令的真实位置。三者场景不同,不能互相替代。
find /var/log -name "*.log" -mtime -1 locate -i nmap which nc python3第一条在/var/log下找最近一天内修改过的.log文件,-mtime -1表示一天以内,这个参数在做日志分析时非常常用。第二条-i忽略大小写查nmap相关路径,locate输出速度快,但刚创建的文件它找不到,因为索引还没更新。第三条which查看nc和python3的绝对路径,内网环境里可能同时存在系统自带和手工上传的多种版本,用它确认你实际执行的是哪个二进制,避免“明明装了工具却调不对版本”的尴尬。find还可以用-size +100M找大文件、-perm按权限位筛选,提权阶段找特殊权限文件时再组合细化。
4.3 gzip与tar:压缩打包的固定搭配
gzip只能压缩单个文件,压缩后文件名会多出.gz后缀;tar负责把一堆文件和目录打包成一个文件,两者配合才是完整的压缩方案。资源里提到的-c建立新压缩文件、-z调gzip算法、-x解压、-v显示过程、-f指定文件名,下面这个组合覆盖了最常见的使用方式。
gzip -v /var/log/messages tar -czf logs.tar.gz /var/log tar -xzf logs.tar.gz -C /tmp/logs第一条把/var/log/messages压缩成.gz,-v显示压缩率。第二条把整个/var/log目录打包并用gzip压缩,-c创建、-z压缩、-f指定输出文件名,这组参数是打包的固定写法。第三条解压到/tmp/logs,-x解包、-C指定解压目标目录。有一个常见坑:直接在绝对路径下执行tar -czf,解包后文件会带上完整路径层级,我一般在目标目录的上级先cd进去再打包,解出来结构才干净。
5. 登录、会话与电源命令:常见问题排查清单
5.1 login、exit与last:登录审计是第一个现场
login平时用得少,但它背后承载的是Kali的多用户登录模型——一个系统可以同时接受多个用户从不同虚拟控制台登录,切换用Alt+F1到F6。exit没有参数,作用就是退出当前Shell,回到登录界面。真正高频的是last,它读取/var/log/wtmp记录,显示近期用户或终端的登录情况,是应急响应里判断“谁来过”的第一手证据。
last -n 10 last -d第一条显示最近10条登录记录,-n指定条数,看最近异常时段内有哪些账号登录过。第二条把日志里的IP地址解析成主机名,但资源里也提醒过:在没有配置反向解析的内网环境里,这个功能基本没意义,反而拖慢输出速度。last这条命令在事件排查中被问到的频率很高,管理员靠它确认是否有未授权的登录行为。如果怀疑系统被入侵,第一步就是先跑last和lastb,把会话记录存成文件归档再继续分析。
5.2 su与sudo:权限切换别踩边界
Kali的日常操作里,权限切换是最高频也最容易混淆的动作。资源里对su和sudo的区别给了一句关键说明:su切换用户时只切换root身份,但shell环境仍保留普通用户的设置;而sudo允许普通用户执行管理员账户才能执行的命令,执行完回到原身份。
su - root sudo whoami sudo -i第一条su -带一个减号,会重新开启登录Shell并加载root的环境变量,推荐用这个而不是裸su root。第二条sudo whoami输出root,验证当前用户具备临时提权能力。第三条sudo -i则是以root身份启动交互式Shell,适合需要连续执行多条管理命令的场景。两者的边界在资源里写得很清楚,我补充一个实际教训:混淆这个边界最常见的结果是——用su切换后在脚本里调用命令发现环境变量不对,或者用sudo执行重定向到文件时提示权限不足,因为重定向是Shell做的,不在sudo提权范围内。
| 命令 | 表现 | 适用场景 |
|---|---|---|
| su | 切换为其他用户身份,可能保留原环境变量 | 需要长时间以其他身份工作 |
| sudo | 单条命令提权,记录审计日志 | 偶尔执行管理员操作 |
5.3 shutdown、halt、reboot:安全关机不是玄学
Kali作为攻击机,很多人习惯干完活直接关虚拟机窗口,这个动作相当于强制断电。资源里特意强调:Linux后台运行着许多进程,直接断电源可能让进程数据丢失,系统处于不稳定状态,甚至损坏硬件设备。shutdown会通知所有登录用户、冻结login禁止新用户登录,然后逐项关闭服务,最后才关机;halt则不会逐项关闭服务,直接执行硬件关机;reboot参数和halt基本一致,用于重启。
shutdown +5 "System will shutdown after 5 minutes" shutdown -c第一条是在5分钟后关机并广播通知,适合需要给其他登录用户留缓冲时间的场景。第二条取消已计划的关机,-c只对还没执行的shutdown有效。这里有一个值得记住的参数:shutdown -k只是发送警示信息给所有用户,并不会真的关机,适合演练时用。halt的参数里-n不进行sync同步、-d不写记录、-i先关闭网络接口,这些在正常操作里很少动,但要意识到它们的存在。
5.4 命令失效与环境问题:五条现场排查记录
这一节集中列几条在Kali现场复现率最高的故障,按“现象→原因→解决”的方式写,方便直接对号入座。
现象1:sudo apt install提示Unable to locate package。原因:软件源索引过期,包名在本地索引里查不到。解决:先执行sudo apt update刷新索引再装,Kali默认源更新频率低,新装的系统尤其常见。
现象2:ln -s建完软链接,ls -l显示目标红色或闪烁。原因:源文件写成了相对路径,离开当前目录后链接指向的位置不存在。解决:删除重建,源路径用绝对路径,例如ln -s /etc/passwd /tmp/passwd-link。
现象3:locate找不到刚创建的文件。原因:locate查的是索引数据库,不是实时文件系统,新建文件尚未入库。解决:执行sudo updatedb强制重建索引,再重新locate。
现象4:脚本加了执行权限仍然报Permission denied。原因:目标所在分区以noexec方式挂载,或者当前用户权限不够。解决:用mount -o remount,exec重新挂载所在分区,或确认文件属于当前用户且权限位正确。Kali的/tmp在某些安全加固配置下会带noexec,这也是为什么临时脚本放/tmp跑不起来的原因。
现象5:改了别名,新开终端还是不生效。原因:配置写到了.bashrc,而Kali默认Shell是zsh,也可能写完没source。解决:确认当前Shell是echo $SHELL,配置写入~/.zshrc,执行source ~/.zshrc。
五条里第一条和第五条的排查成本最低,但现场见到最多。多数是环境初始化阶段没走完,不是命令本身的问题。
6. 把命令串成习惯:一套别名与函数配置
前面拆了那么多参数和场景,最后落成一个具体动作:把高频组合做成zsh别名和函数,存进~/.zshrc。命令大全的价值在于查,但更高一层是让常用组合变成肌肉记忆,不用每次翻。
alias ll='ls -alh' alias cman='man -M /usr/share/man/zh_CN' alias logcheck='tail -f /var/log/syslog' sysinfo() { echo "== last login ==" last -n 5 echo "== disk ==" df -h echo "== memory ==" free -h }第一行把ls -alh绑定到ll,每次列目录直接看到隐藏文件和可读大小,这是日常使用频率最高的别名。第二行是第2章中文man的别名,查手册时少打一串参数。第三行把实时日志检查绑定成logcheck,打开终端就能盯系统日志。sysinfo函数把登录审计、磁盘、内存三条命令串成一次健康检查,在拿到陌生机器时先跑一遍,环境状态一目了然。配置写入~/.zshrc后执行source ~/.zshrc生效。
有一回在某个内网环境里,我图省事没先配别名就直接开干,结果连翻日志都要现场敲一串参数,效率惨不忍睹。从那以后每次拿到新的Kali环境,我第一件事就是检查help和man是否可用、last是否正常、然后把这几个别名和函数配好再开始做事。工具装在皮上,命令熟在骨子里,这份命令大全的价值也在这个习惯里。希望帮到你。
本文还有配套的精品资源,点击获取