Kali Linux新手入门:必学终端文件操作与安全命令
简介《Kali Linux 常用命令大全》面向网络安全、渗透测试与Linux系统运维初学者系统汇总Kali环境下的高频命令覆盖文件管理、目录操作、系统信息、文本处理等核心场景适合用于日常系统配置、安全测试环境搭建或快速命令检索。打包为1个docx文档整体体积约1.96MB内容经过编排便于阅读、查阅和打印可借助搜索快速定位所需命令。已有633人学习下载已沉淀为一份轻量速查手册。文档按功能模块组织包括目录查看ls、帮助命令whatis/help/man/info、登录与切换用户login/su/sudo、电源管理shutdown/halt/reboot、路径切换cd与pwd、文件操作touch/mkdir/cp/mv等大多数命令给出参数说明和常见示例便于对照练习。读者不仅能掌握每个命令的基础语法还能理解参数组合的实际效果快速解决Kali使用中的常见问题提升工作与学习效率。1. 第一次打开 Kali 别慌先搞懂它到底是什么很多新手第一次打开 Kali面对的不是熟悉的桌面而是一个黑乎乎的终端窗口鼠标能点的地方有限输入命令回车才有反应。这种感觉就像你拿到一台改装过的电脑图形界面只是外壳真正的功力全藏在命令行里。Kali 到底是个什么东西它其实是一套专门为 web 渗透、网络安全测试设计的 Linux 操作系统里面预装了大量的安全工具。但工具再多如果你连在终端里查看目录、复制文件、切换用户都做不到那些工具也只是摆设。这篇入门文就是写给完全零基础的你先把 Kali 常用的命令底子打牢让你敢在终端里敲第一行命令之后学渗透、学挖漏洞才有根基。适合所有刚接触 Linux、想往网络安全方向走的新手。2. 先学最基础的文件操作ls、cd 这些命令是手脚为什么要把文件操作放在最前面因为 Linux 系统有一句老话叫“一切皆文件”。你在 Kali 里配置网卡、查看日志、写脚本、运行工具本质都是在跟文件打交道。哪怕是以后做 web 渗透你也经常要在目录里翻来找去找到配置文件、读取日志、把脚本传到目标机器上。这一章我们只做一件事让你学会在终端里“走路”。2.1 先知道自己在哪pwd 和 ls打开终端之后第一件事是弄清楚“我在哪个目录”。这时候用 pwd。pwd 是 print work directory 的缩写意思就是打印当前工作目录的绝对路径。所谓绝对路径就是从根目录/开始算起的完整位置。比如终端里显示/root就表示你现在正处在 root 用户的主目录里。pwd # 输出类似/root # 这个输出告诉你当前所在目录是根目录下的 root 文件夹pwd 有两个参数-L和-P平时基本用不到。你需要记的只有一点pwd -P显示的是物理路径不受符号链接影响。如果你还没接触过符号链接这个可以先跳过后面讲到ln的时候再回头看。知道自己在哪之后下一步就看当前目录里有什么。这就要请出 Linux 里使用频率最高的命令之一ls。ls 是 list 的缩写作用就是列出目录内容。ls # 列出当前目录下的文件和文件夹默认的 ls 只能看到最基本的文件名。想看得更细就要加参数。这里我把新手最常用的几个参数列出来ls -a显示所有文件包括以.开头的隐藏文件。Kali 里很多配置文件都是隐藏的比如~/.bashrc不加-a是看不见的。ls -l以长格式显示详细信息包括文件权限、拥有者、大小、修改时间。这个参数非常常用。ls -t按文件建立时间排序最新的排最前面。找刚生成的日志文件时很好用。ls -R递归列出子目录里的所有文件。相当于把目录树整个展开。ls -h把文件大小以人类易读的方式显示比如显示 1K、2M 而不是一堆字节数。-h一般和-l搭配使用。还有一个小技巧ls -l可以简写为ll很多人的习惯是直接敲ll。我第一次学的时候觉得奇怪后来才明白这是系统里提前配置好的别名意思是“以详细格式列出”。你输入ll和输入ls -l效果完全一样。ls -l # 输出每一行的第一列是权限位例如 drwxr-xr-x # d 表示目录r 表示可读w 表示可写x 表示可执行新手最容易忽略的是-a这个参数。在图形界面里隐藏文件通常不显示你也不会觉得缺了什么。但在终端里很多关键配置恰恰藏在隐藏文件里。如果你排查问题的时候发现“文件明明存在却看不到”先想想是不是忘了加-a。2.2 移动目录cdpwd 解决“我在哪”ls 解决“这里有什么”cd 解决“我想去哪”。cd 是 change directory 的缩写作用就是切换目录。cd /etc # 切换到 /etc 目录 pwd # 确认一下现在已经在 /etc 里了新手最容易困惑的是相对路径和绝对路径的区别。简单说以/开头的是绝对路径从根目录算起不以/开头的是相对路径从当前目录算起。比如你现在在/root里输入cd /etc是直接跑到系统配置目录输入cd etc则会去找/root/etc大概率会提示目录不存在。cd 有几个特殊写法掌握之后效率会高很多cd .. # 返回上一级目录 cd ~ # 回到当前用户的主目录 cd - # 回到上一次所在的目录cd -这个我特别想强调。它表示切换到环境变量 OLDPWD 所代表的目录也就是你上一个工作目录。在两层目录之间来回切换的时候cd -比敲一长串路径省事得多。另外 cd 还有两个参数-L和-P。-L是默认值如果目标目录是符号链接就切换到链接所在的位置-P则会切换到链接指向的真实物理位置。这两个参数你暂时不用深究等学到ln软链接的时候再回来看会非常好理解。2.3 创建文件和目录touch 与 mkdir光会看和走还不够你得能动手创建东西。touch 命令有两个功能创建新的空文件以及更新已存在文件的时间属性。touch test.txt # 当前目录下创建一个名为 test.txt 的空文件 ls -l test.txt # 可以看到文件大小为 0时间戳是刚刚touch 的工作机制我第一次学的时候觉得很玄学它到底是“建文件”还是“改时间”其实两个功能是一体的。如果文件不存在就创建它如果文件已经存在就把它的访问时间、修改时间更新为当前时间。touch 的主要参数-a只修改访问时间。-m只修改修改时间。-t指定一个时间戳来修改不默认用当前时间。再看 mkdir。mkdir 是 make directory 的缩写用来创建目录也就是文件夹。最常用的参数是-p表示递归创建。mkdir -p /tmp/myproject/logs # 一次创建 myproject 和 logs 两级目录即使 myproject 不存在也不会报错-p参数的价值在于如果你要创建的目录的父目录不存在普通 mkdir 会直接报错而加了-p它会一层层帮你建好。另一个参数-m可以在创建目录的同时设置权限比如mkdir -m 700 secret创建出来的目录只有你本人能读写执行。权限这块放到后面章节细讲这里先有个印象。这一章最后我带你做一个五步小练习把四条命令串起来cd /tmp mkdir -p myproject/logs touch myproject/logs/access.log ls -l myproject/logs ls -R myproject # 第一条进入临时目录 # 第二条递归创建两层目录 # 第三条在 logs 目录里创建一个日志文件 # 第四条查看文件详细信息 # 第五条递归查看整个目录结构到这里你已经能在 Kali 的终端里自由走动、查看、创建了。这就是操作系统使用的基础能力也是后面所有操作的地基。3. 文件的复制、移动、删除与查看管理文件的核心操作你会创建文件了但日常工作中更常做的是复制、移动、删除、查看。比如你下载了一个扫描脚本要把它复制到工作目录你跑完一轮测试想把结果文件挪到一起你发现某个临时文件没用了要把它删掉。这一章把这四件事一次讲透。3.1 复制与移动cp 和 mvcp 是 copy file 的缩写用来复制文件或目录。最基本的用法是cp 源文件 目标位置。cp /root/test.txt /tmp/ # 把 /root 下的 test.txt 复制到 /tmp 目录 cp /root/test.txt /tmp/test-backup.txt # 复制的同时改个名字相当于备份一份 cp -r /root/myproject /tmp/ # -r 参数表示递归复制复制整个目录时必须加cp 的四个核心参数-r或-R递归处理复制目录及里面的所有子目录和文件。-p保留源文件的属性比如创建时间、权限、拥有者。做备份时特别好用。-d复制符号链接时把链接本身也复制为链接而不是复制链接指向的真实文件。-a相当于-dpR三个参数一起用常用于完整备份目录结构。每次复制之前我建议你先用ls看一眼目标目录里有什么防止覆盖掉同名文件。这是新手最容易翻车的地方复制过去才发现那边已经有一个同名文件内容直接被覆盖了后悔药都没得吃。再说 mv。mv 是 move 的缩写作用有两个移动文件以及给文件重命名。当源文件和目标位置在同一个目录里时mv 的效果就是改名。mv test.txt /tmp/ # 把 test.txt 移动到 /tmp 目录 mv test.txt test2.txt # 在同一个目录里 mv效果就是重命名mv 的常用参数-i目标文件已存在时先询问是否覆盖。加这一个参数能救你很多次。-f强制覆盖不询问。危险系数高慎用。-b覆盖前先给目标文件做个备份再覆盖。-u只有当源文件比目标文件新时才会更新覆盖。我的习惯是在还不熟练的阶段凡是可能覆盖已有文件的操作都主动加上-i参数。宁可多问一次也不要稀里糊涂覆盖掉重要文件。3.2 删除与链接rm 和 lnrm 是 remove 的缩写用来删除文件或目录。它的危险性我要单独拎出来说Linux 的删除没有回收站rm 删掉的东西基本找不回来。rm test.txt # 删除单个文件 rm -r myproject # 递归删除整个目录 rm -f test.txt # 强制删除不询问rm 的常用参数-f强制删除忽略不存在的文件也不询问。-i每次删除前都询问确认。-r或-R递归删除目录及其内容。删目录时必须加。-v显示删除的详细过程。新手最容易出现的事故就是rm -rf连用。-rf的意思是无须确认地递归删除如果后面路径写错比如多写了一个空格或者用了错误的环境变量可能一秒钟就把不该删的东西全删了。我确实见过有人本该删某个临时目录结果一个手误把整个用户目录删空的惨案。后面专门有一章讲避坑这里先记住一句话删除之前先ls看清楚不确定就不要带-f。再看 ln。ln 是用来创建链接文件的命令。Linux 里有两种链接硬链接和软链接也叫符号链接。新手阶段你只需要重点掌握软链接。ln -s /usr/share/wordlists/rockyou.txt.gz /root/rockyou.gz # -s 表示创建软链接 # 第一个参数是源文件必须写绝对路径 # 第二个参数是链接文件的位置软链接你可以理解成 Windows 里的快捷方式它本身很小只是记录了一个指向真实文件的路径。访问链接文件就等于访问源文件。这里有一个必然踩的坑软链接的源文件必须写成绝对路径。如果你写相对路径链接建好了但用它访问时会提示找不到文件链接变红或者显示为一个断开的状态。我第一次学的时候以为是自己命令写错了后来才发现是路径写法的锅。硬链接和软链接的区别可以这样理解硬链接是给同一个文件多取了一个名字两个名字指向相同的数据软链接则是指向路径的快捷方式。硬链接有几个限制不能跨文件系统创建也不能对目录创建。日常管理文件时软链接用得更多。3.3 查看文件cat、less、head、tail文件建好了总得看看里面写了什么。cat 是 concatenate 的缩写字面意思是连接但最常见的用途是把文件内容打印到屏幕上。cat /etc/hostname # 直接查看文件内容 cat -n /etc/hostname # 显示行号从 1 开始cat 的三个常用参数-n显示行号。-b和-n类似但空白行不编号。-A显示不可见字符行尾会显示一个$用来排查文件格式问题很实用。cat 有个明显的缺点如果文件很长它会一口气把全部内容刷到屏幕上滚动半天都看不完。这时候用 less 更合适。less 和 more 的作用类似都是分页查看文件区别在于 less 支持向前和向后滚动而 more 只能向前。less /etc/passwd # 分页查看文件内容 # 按空格键向下翻一页按回车键向下翻一行 # 输入 /字符串 向下搜索输入 ?字符串 向上搜索 # 按 Q 键退出less 里我每天都会用到的操作是搜索输入/加关键字文件里所有匹配的位置会高亮显示。在很长的配置文件里找某一段配置比从头翻到尾高效得多。head 和 tail 这一对命令一个看头部一个看尾部。head -n 20 /etc/passwd # 显示文件前 20 行不加 -n 默认显示前 10 行 tail -n 20 /var/log/syslog # 显示文件末尾 20 行 tail -f /var/log/syslog # -f 表示持续跟踪文件新增内容实时滚动显示tail -f是我个人认为新手最该收藏的一个用法。查看系统日志、观察服务运行输出用tail -f能让最新日志一行行滚动出来像实时监控一样。按 CtrlC 就能退出跟踪。这一章学完你已经能对文件做最基本的增删改查了。这在 Linux 里叫文件管理也是你在 Kali 上所有后续操作的基础能力。4. 用户切换与系统开关机虚拟机里最该学的保命命令前两章讲的都是文件操作这一章我们讲点不一样的用户身份和系统电源。为什么把这两个放在一起因为这两个板块的命令用错了代价最大。用户身份搞错你可能连系统命令都执行不了关机姿势不对虚拟机里的数据和系统可能会坏掉。很多新手在真实机器上不敢乱试但在虚拟机里乱按电源开关照样能把系统搞崩。这章学完你能少踩很多坑。4.1 切换用户身份su 与 sudoKali 里你平时的操作身份是普通用户但很多安全工具和管理命令需要 root 权限也就是管理员权限。这时候就要用到 su 和 sudo。先看 su。su 的全称是 switch user作用是切换用户身份。最简单的用法是直接在终端输入su然后输入 root 的密码你的身份就变成了 root。su # 输入 root 密码后切换到 root 用户 whoami # 显示当前用户名如果输出 root说明切换成功su 的常用参数-重新开启一个 Shell 登录相当于以目标用户的完整环境重新登录。-c执行完指定的命令后马上恢复原来的身份。适合临时执行一条管理员命令。-s指定要执行的 Shell。-m切换用户时不改变环境变量。再看 sudo。sudo 的全称是 superuser do作用是让普通用户临时以管理员身份执行某条命令。它的好处是你不需要切换到 root 用户只需要在命令前加一个 sudo。sudo apt update # 以 root 权限执行 apt update 命令 sudo whoami # 输出 root说明这条命令是以 root 身份执行的一个简单对比能让你彻底分清两者su 是整个人切到 root 用户里之后每条命令都是 root 身份环境也是 root 的sudo 只是给当前这一条命令临时提升权限执行完该是什么身份还是什么身份。在 Kail 里做日常操作我建议优先用 sudo 而不是 su因为 sudo 最小化地使用管理员权限更安全也不容易出现“忘了自己在 root 里一条命令删错东西”的惨剧。4.2 正确关机与重启shutdown、halt、reboot这一小节极其重要因为它关系到你系统的数据安全。很多新手在虚拟机里图省事直接点虚拟机软件的关闭电源按钮这相当于直接拔掉电脑电源。Linux 系统后台运行着大量进程强制断电会导致进程数据丢失甚至让整个系统处于不稳定状态。shutdown 是标准的关机命令使用权限是超级用户所以一般要加 sudo。sudo shutdown -h now # 立即关机-h 表示 halt sudo shutdown -r now # 立即重启-r 表示 reboot sudo shutdown 5 System will shut down after 5 minutes # 5 分钟后关机并给所有登录用户发送提示消息shutdown 的其他参数-c取消已经计划的关机任务。-k假装关机只向所有用户发送警告信息并不会真的关机。-F重启时强制执行磁盘检查。-f重启时不执行磁盘检查。halt 命令的作用是直接关机但它不会逐项关闭服务而是直接执行硬件关机。shutdown 则会先逐项关闭服务再做关机。所以正常使用下优先用 shutdown 而不是 halt。halte 的参数里有一个-p是默认选项表示关机时同时关闭电源。reboot 命令用于重启计算机使用权限是系统管理者。它的参数和 halt 类似-w只写记录并不真正重启-n跳过磁盘同步-d不写记录-i关机前关闭所有网络接口。新手记住一条原则就够关机用sudo shutdown -h now重启用sudo shutdown -r now不要直接用 halt更不要直接点虚拟机软件的关闭电源。这条原则能让你的 Kali 虚拟机寿命长很多。4.3 文件的查找与压缩find、which、gzip、tar文件多了以后你得学会找文件。find 命令是这一节的绝对主角。它可以把文件系统里符合条件的文件全部列出来支持按名称、用户、大小、类型、权限等维度查找。find / -name config # 在整个根目录下查找文件名包含 config 的文件 find /var/log -size 50M # 查找 /var/log 下大于 50M 的文件 find /home -type f -name *.txt # 在 /home 目录下查找所有以 .txt 结尾的普通文件find 的参数虽然多但新手掌握这五个就够用了-name按文件名精确查找。-iname按文件名查找忽略大小写。-user按文件所属用户查找。-size n按文件大小查找单位可以是 c、k、M、G。-type按文件类型查找f表示普通文件d表示目录l表示链接。还有一个 which 命令。它和 find 不同专门用来查找某个命令在什么位置。which 会沿着系统的 PATH 环境变量去找所以它能告诉你你输入的命令来自哪个路径。which nmap # 输出类似/usr/bin/nmap # 说明你在终端敲 nmap 时实际运行的是这个文件接下来是压缩和打包。新手容易混成一件事这里拆开讲清楚。gzip 负责压缩单个文件tar 负责把一堆文件打包成一个文件。gzip access.log # 压缩文件生成 access.log.gz源文件会被自动删除 gzip -d access.log.gz # 解压文件-d 表示解压gzip 的参数-d解压文件。-f强行压缩即使目标文件已存在。-r递归压缩目录下的所有文件。-l显示压缩文件的信息。-v显示压缩过程。重点提醒gzip 压缩之后源文件会消失只剩下.gz压缩包。很多新手第一次用 gzip压缩完发现源文件不见了以为系统出问题了。这不是故障这是 gzip 的默认行为。如果你想让源文件保留可以学一下 tar。tar 的命令比较特殊它的字母参数不需要带单个的-前缀常见组合是-czvf打包压缩-xzvf解包解压。tar -czvf backup.tar.gz myproject/ # 把 myproject 整个目录打包并用 gzip 压缩 tar -xzvf backup.tar.gz # 解压刚打包的压缩包拆开看-c表示创建新压缩文件-z表示用 gzip 算法压缩-v显示处理过程-f后面跟文件名。解压时的-x表示提取文件。到这里你掌握的已经不只是零散命令而是一套处理日常任务的完整流程找文件、看文件、压缩、打包、解压。这套组合拳在后面的渗透测试练习里会反复用到。5. 避坑新手最容易踩的 5 个命令坑这一章是我最想让你认真看的部分。我见过太多新手包括我自己都在这几个坑里摔过。每个坑我都会按照“现象、原因、解决”三步来讲你看完能直接避开。5.1 文件操作的危险区误删与链接失效坑一rm -rf 一时爽文件消失泪两行现象想删掉某个临时目录结果命令一执行整个项目文件都消失了终端连个提示都没有。原因rm -rf是不询问直接递归删除如果路径写错比如在某个目录下一不小心写成rm -rf /tmp或者通配符匹配范围超出预期系统不会给你任何后悔的机会。解决删除前先ls看清楚目标确实存在且无其他重要内容不确定的情况下优先用rm -i每删一个文件都会先询问绝对不要养成随手敲rm -rf的习惯。我现在的习惯是删除前先执行ls确认再决定是否带-f。这个习惯能帮你躲掉 90% 的误删事故。坑二Permission denied什么命令都执行不了现象普通用户执行apt install或者查看某些系统目录时系统提示 Permission denied翻译过来就是权限不够。原因当前用户的身份没有足够的权限。Linux 是一个多用户操作系统普通用户只能操作自己目录下的内容和系统允许的部分大部分系统级操作需要管理员权限。解决在命令前面加sudo以管理员身份执行或者先用su -切换到 root 用户。建议默认优先用 sudo用完了就退回来减少在 root 身份下误操作的风险。坑三软链接建好了却提示找不到文件现象用ln -s 源文件 链接名创建完软链接访问链接时却提示 No such file or directory或者 ls 查看时链接名是红色闪烁的。原因创建软链接时源文件没有写绝对路径写成了相对路径。软链接记录的是一个路径字符串如果写的就是相对路径系统会在当前目录下找这个相对路径自然找不到。解决创建软链接时源文件一定要写绝对路径。正确的写法是ln -s /实际路径/源文件 /任意位置/链接名链接文件放哪里都可以但源文件的路径必须是完整的。这是一个非常典型的“看着命令没问题跑起来就出问题”的玄学场景其实只是路径写法的问题。5.2 权限与关机的翻车现场坑四gzip 完之后源文件消失了现象执行gzip backup.txt压缩是成功了但当前目录里只剩backup.txt.gz原来的backup.txt不见了。原因这是 gzip 的默认行为。gzip 压缩成功后会自动删除源文件。它不是 bug是设计就是这样。新手第一次遇到都会以为数据丢了实际上压缩包里的内容才是一份源文件已经被清理。解决想保留源文件可以用gzip -c backup.txt backup.txt.gz-c会把压缩结果输出到指定的新文件源文件保持原样。如果不想这么麻烦更推荐的方式是把文件放进一个目录用tar -czvf打包压缩原文件都还在目录里不受影响。坑五虚拟机里直接点“关闭电源”重启后系统出问题现象用完 Kali 虚拟机图省事直接点虚拟机的电源按钮关闭再启动时系统变慢甚至提示文件系统错误某些服务启动异常。原因Linux 系统运行时有大量进程在后台写数据直接断电等于强制终止数据没有来得及写回磁盘可能导致文件系统元数据损坏。解决在虚拟机里关系统时先进入终端执行sudo shutdown -h now等系统自己完成关闭流程虚拟机窗口自动退出后再关闭虚拟机软件。同样的重启用sudo shutdown -r now而不是点虚拟机的重启按钮。6. 下一步学会自己查帮助命令比死记命令更管用学完前面这些你已经不是零基础了。但有一个问题马上会冒出来命令太多参数太多根本记不住。别担心这很正常。Linux 系统早就替你想好了办法它内置了好几层帮助文档就看你会不会用。第一层是 whatis。它用来快速查看一条命令的简要描述。whatis ls # 输出ls (1) - list directory contents第二层是 help。它针对 Bash 内建命令提供帮助信息。所谓内建命令就是 Shell 自己带的命令比如 cd、exit它们没有单独的文件直接在终端里输入help cd就能查看用法。外部命令则要看下面的 man。第三层是 man。man 是 manual 的缩写是 Linux 最权威的说明书。通过man 命令名你能看到完整的参数说明和使用示例。man tar # 打开 tar 的完整手册按 Q 退出第四层是 info。它用于查看 GNU 项目的文档内容比 man 更详细还支持超链接和节点跳转。Kali 默认可能没装需要时可以用包管理器安装。对于新人来说熟练使用 whatis 和 man 就已经足够了。我给新手的建议是记不住参数不要强记最重要的是记住“有这么个命令”和“它能干什么”具体参数现查现用。查的次数多了常用参数自然会刻进肌肉记忆里。接下来你如果想继续深入我给你一条可执行的学习路线阶段学习内容练习建议第一周巩固本文章里的文件操作命令每天在虚拟机里搭建、删除、备份目录结构第二周学习权限管理理解 chmod、chown、用户组给文件和目录设置不同权限观察效果第三周学习文本处理三件套grep、sed、awk从日志文件里筛选关键字、替换文本第四周接触网络命令和基础安全工具在虚拟机练习环境里查看端口、测试连通性后三周涉及的内容和 web 渗透、网络安全方向直接相关。你有了命令基础之后学那些工具时就不会觉得它们是个黑匣子了。最后说一个我自己的教训刚入门时我总觉得“记住了才算会”于是死背参数结果隔几天不用就忘光越背越挫败。后来我换了思路只记命令能干什么具体参数完全靠 whatis 和 man 现查。从那以后我每次新拿到一台 Linux 系统第一件事就是把帮助命令的用法过一遍这个习惯一直保留到现在。希望帮到你。本文还有配套的精品资源点击获取