首页 / 资讯中心 / 文章详情

Kali Linux命令行入门:从零掌握文件操作与常用命令

Kali Linux命令行入门:从零掌握文件操作与常用命令 ★ FEATURED ARTICLE
简介这是一份专为渗透测试入门者与Web安全学习者整理的Kali Linux常用命令速查手册聚焦系统操作、权限切换与文本处理等高频场景帮助读者快速适应Kali的终端环境。资源仅含1个docx文档压缩包约1.96MB排版清晰、目录完整可离线查阅。文档从目录查看、帮助命令whatis、help、man、info入手系统覆盖登录与用户切换login、su/sudo、电源管理shutdown、halt、reboot、路径切换与文件操作cd、pwd、touch、mkdir、cp、mv等常用命令同时给出df、free、top等系统资源查看命令以及grep、sed、awk等文本处理技巧几乎涵盖日常渗透测试中的终端操作要点。已有633人学习下载适合刚接触Kali Linux或准备Web渗透环境的运维与安全新手作为随身参考。1. 第一次面对 Kali 的黑屏终端先别慌从三条命令开始很多刚接触 Kali 的同学卡住的起点不是某个复杂的工具而是开机后那个黑底白字的终端窗口。桌面上明明有图标为什么还要敲命令这个疑问不解决很容易把命令行看成一座山。其实命令行的本质特别朴素它是你和操作系统之间固定的对话格式你说一句系统回一句。我会把这句话里最常用、最容易上手的几十条命令讲给你听让你明白每条命令管什么、什么场景用、出错了去哪看并且亲手跑通第一个例子。读完你就能在 Kali 上建目录、看文件、查路径再往后接触那些命令行版安全工具时心里也有底了。它适合所有零基础新手想学网络安全的人、第一次接触 Kali 的人、或者目前只会用鼠标点来点去的人。2. 先搞懂一个概念命令是“和系统对话的短句”2.1 为什么非要学命令图形界面和命令行各有分工Kali 启动之后是有图形桌面的很多人第一反应是有桌面干嘛还记命令我第一次学的时候也问过同样的问题。后来是在实际操作里想明白的图形界面适合“偶尔点一下”的操作它把选项藏在窗口和菜单里直观但慢而且很难批量处理。命令行正好相反它把动作固定成一条很短的句子写下来、按回车结果立刻返回。你想让系统一口气创建一百个目录图形界面要点一百次命令行一条循环就能完成。在 Kali 这种专门为安全测试设计的操作系统里命令行还有一层特殊意义大量渗透测试与系统排查工具只提供命令行版本工具本身就是进程靠参数控制行为。命令是这些工具的入口也是学习它们的必经之路。另外真实工作环境里很多机器没有图形桌面你只能通过终端远程登录面对的依然是一个光标。你在自己电脑上练会的命令换到一台只有命令行的机器上依然能用。我把命令比作给系统发的“短句”。一条命令通常由三部分拼成命令名 空格 参数 空格 目标。比如 ls -l /tmpls 是命令名-l 是参数/tmp 是目标。参数通常以 - 开头也叫选项作用是微调命令行为目标告诉命令去操作谁。新手不用急着抠细节先记住这个结构后面遇到任何陌生命令都能大致猜出它在干什么。这个三件套就是读懂一切命令的钥匙。2.2 三条必会命令pwd、ls、cd先回答“我在哪、有什么、去哪”打开终端面对一个光标最该做的不是急着输入高深命令而是先问自己三个问题我在哪这里有什么我想去哪对应到命令就是 pwd、ls、cd。pwd 是 print working directory 的缩写作用是打印当前所在目录的完整路径。它几乎不需要参数输入 pwd 按回车系统就告诉你当前位置。新手时期每切换一次目录就用 pwd 确认一下虽然有点笨但能帮你快速建立“位置感”。很多路径错误根源就是脑子里没有这张位置地图。ls 是 list 的缩写列出当前目录下有什么。它有四个高频参数要记住-l 显示详细信息包括权限、所属用户、文件大小、修改时间-a 显示所有文件包括以 . 开头的隐藏文件-h 让文件大小变成 4.0K 这种好读的格式-t 按文件建立时间排序。三个参数经常组合使用ls -lh 看大小ls -al 看全貌。查看当前目录时ls 和 ls -l 是最常用的两条而 ls -l 在很多系统上可以直接简写为 ll。cd 是 change directory 的缩写负责切换目录。它后面跟的目标可以是绝对路径也可以是从当前位置出发的相对路径。绝对路径永远从 / 开头比如 /etc/nginx相对路径描述的是“从这出发怎么走”比如 .. 表示回到上一级../.. 表示上两级。cd 有几个捷径不带参数直接回家目录cd ~ 效果相同cd - 则回到上一次所在目录。日常操作中 cd 的使用频率极高这几个变体都值得练熟。还有个新手最容易忽略的细节命令和参数之间必须有空格。ls-l 会被系统当成一个叫 ls-l 的命令去执行结果自然是 command not found。这个错误我犯过不止一次后来养成了习惯每次输入完先扫一眼空格位置确认没问题再按回车。2.3 动手第一步完成一次位置确认和目录切换下面跟着我完整走一遍请打开 Kali 的终端逐条输入# 查看当前位置确认自己站在哪个目录 pwd # 列出当前目录里有什么 ls # 查看详细信息包括权限和文件大小 ls -l # 查看所有文件连隐藏的一起显示 ls -a # 切换到系统的临时目录 /tmp cd /tmp # 确认切换成功再确认一次位置 pwd # 用 cd - 回到上一个目录 cd - # 不带参数直接回家目录 cd每条命令执行完系统都会给出回应。pwd 输出的是文字路径ls 输出的是文件列表cd 通常什么都不输出这恰恰说明切换成功了。如果 cd 失败系统一般会提示 No such file or directory意思是路径不存在或者写错了。看到错误不要慌先检查路径拼写再看当前位置这两个步骤能解决八成问题。这里有一个判断“命令是否成功”的思路除了一部分命令会有明确的输出外多数切换类命令成功后都是静默的没有消息就是好消息。如果系统提示 command not found说明你拼错了命令名或者这个命令根本没安装。走完这一圈你就完成了“定位—查看—切换”的完整流程这个流程是所有文件操作的地基。最后提醒一个参数ls -R 会在列表时把下层目录也一起展开初学时慎用因为一旦目录层级多输出会非常夸张。等你对目录结构有感觉了再用它来快速浏览整个目录树。学命令从简单开始一个命令先记一个高频参数用熟了再扩展比一次背十个参数有效得多。3. 文件与目录操作一套从创建到删除的完整流程3.1 创建文件与目录touch 和 mkdir 的细节确定了位置下一步就是创建。touch 和 mkdir 一个管文件、一个管目录配合起来就是“从无到有”的动作。touch 名字很形象表示“摸一下”它有两大功能。第一是创建新的空文件touch test.txt 会在当前目录生成一个空文件。第二是更新已存在文件的时间属性。第二个功能初学阶段用不上但你要知道它的存在否则某天只是执行了 touch文件修改时间却变了会以为是玄学。创建空文件这个功能看着普通实际很常用比如你要快速生成一个临时记录文件touch 一下即可。mkdir 是 make directory 的缩写用来创建目录。单层目录直接 mkdir demo 就行。但如果你想一次创建多层嵌套目录比如 a/b/c直接 mkdir a/b/c 会报错因为系统发现中间层 b 不存在。这时要加 -p 参数mkdir -p a/b/c 会自动把中间缺失的目录一并建出来。还有一个 -m 参数创建目录的同时指定权限比如 mkdir -m 755 private。对新手来说755 这类权限值先有个印象学到文件权限时再回头看就通了。创建时有个规则必须记住新建的名称不能和同目录下已有文件或目录重名。如果重名touch 会去更新旧文件的时间而不是创建新文件mkdir 则提示 File exists。所以动手前习惯性 ls 看一眼目标目录能省掉不少麻烦。文件名也尽量别带空格命令行里带空格的文件名要加引号才能操作初学时容易因此踩坑我一般用下划线代替空格。3.2 复制、移动、删除cp、mv、rm 三剑客与安全习惯文件建好之后绕不开的还是复制、移动、删除三个动作对应命令是 cp、mv、rm。所有 Linux 学习者都会用它们也都能讲出几个翻车经历。cp 是 copy 的缩写复制文件或目录。最简单的用法是 cp 源文件 目标位置。复制单个文件时目标可以是一个新文件名也可以是一个已经存在的目录。复制目录就要复杂一些必须加 -r 参数表示递归处理把目录下所有子文件和子目录一起复制不然系统会提示 omitting directory。还有一个 -p 参数复制的同时保留原文件的属性比如时间戳和权限做备份时很实用。mv 是 move 的缩写作用是移动文件但它在实际使用里还有一个高频场景重命名。当源文件和目标位置在同一个目录下时mv 的效果就是改名mv old.txt new.txt 就把文件从 old.txt 变成了 new.txt。mv 有三个参数值得留意-i 表示目标已存在时询问用户-f 表示强制覆盖不询问-b 表示覆盖前先备份。默认行为因系统配置而异建议重要文件移动时先用 -i给系统一个“拦截”机会。rm 是 remove 的缩写删除文件或目录。它有两个参数威力极大-r 递归删除目录-f 强制删除不提示两者合体成 rm -rf 后误操作连后悔药都没有。命令行删除不像图形界面那样先进回收站文件一旦被删基本找不回来。我从学习第一天起给自己立了条规矩使用 rm -rf 之前先 pwd 确认当前目录再 ls 确认目标最后心里默念一遍“我要删的是不是这个”。这个习惯帮我躲过了很多次灾难。# 把当前目录下的 old.txt 改名成 new.txt mv old.txt new.txt # 把 new.txt 移动到 /tmp 目录 mv new.txt /tmp # 复制整个目录 docs 到 /tmp 下的备份保留属性 cp -rp docs /tmp/backup # 删除目录先加 -i 让系统逐个询问 rm -ri docs最后一行 rm 后面的 -ri 是 -r 加 -i 的组合写法系统会逐个文件询问是否删除。新手删目录时加上 -i等于多一道保险。等以后熟练了再考虑简化初期宁可慢一点。3.3 文件链接 ln软链接和硬链接怎么选ln 命令用来创建链接文件它的作用有点像 Windows 桌面的快捷方式但又不完全相同。链接分软链接和硬链接两种入门阶段理解它们的区别比背参数更重要。软链接又叫符号链接创建方式是 ln -s 源文件 链接名。它相当于给文件建一个索引入口可以跨文件系统也能链接目录。用 ls -l 查看时软链接会显示一个箭头比如 link - target。它的特点是源文件被删除后软链接立即失效因为箭头指向的东西不存在了。快捷方式就是这种思路所以日常需求求快捷访问时优先用它。硬链接不同。它本质上是指向同一份文件数据的多个路径。创建硬链接后源文件和链接文件共享同一份数据改一个另一个同步变化。只有当所有硬链接都被删除时数据才真的被释放。硬链接不能跨文件系统也不能链接目录。创建方式是 ln 源文件 链接名注意不带 -s 的就是硬链接。初学阶段怎么选想快速访问某个深层目录或常用文件用软链接足够大多数 Linux 使用者日常打交道的也主要是软链接。硬链接的概念理解即可它在文件系统原理里很重要但入门阶段出现频率不高。还有人会把 ln 和 cp 混起来它们的本质区别是cp 复制出一份独立数据改副本不影响原件ln 只是新增一个入口数据只有一份。想清楚这个区别你就不会被这两个命令绕晕了。4. 看文件与找文件把 Kali 当成信息整理助手4.1 查看文件内容cat 很直接less 更适合大文件学会管理文件之后就要面对读取文件这个高频动作。Kali 上的配置、日志、脚本大多是纯文本用命令就能直接读。查看内容最常用的三个命令是 cat、more、less它们各有分工。cat 是 concatenate 的缩写原意是连接日常用法就是一口气把文件内容打印到屏幕上。小文件直接 cat 文件名 就行加 -n 参数可以给每行编号方便定位“第几行有内容”。但有两件事新手要心里有数一是文件很长时cat 会把内容全部刷出来屏幕滚动半天看得眼花二是 cat 有拼接功能cat a.txt b.txt 会把两个文件内容连着打印。如果某天输出里出现两个文件的内容这不是 bug是 cat 在做它本该做的工作。more 是早期的分页工具按页显示内容空格翻页Q 退出。less 是它的增强版名字含义是“更少的展示更多的功能”最大优点是支持前后翻页空格向下翻一页b 向上翻一页回车向下翻一行。less 里还能搜索内容输入 /关键词 向下搜输入 ?关键词 向上搜按 n 跳到下一个匹配。浏览长配置时less 配合 / 搜索基本能替代图形编辑器里的查找功能。三个命令的选择其实很简单我列了一张对比表方便你记忆命令适用场景是否分页能否向后翻cat十几行以内的小文件不分页全部输出不支持more较长文件基础浏览分页只能向前翻页不支持less大文件、配置文件、日志分页前后都能翻支持搜索less 是性价比最高的查看命令因为它只读取需要显示的部分打开超大日志也不卡死。这一点在排查系统问题时尤其重要。4.2 只看开头和结尾head 与 tail 的日志排查场景很多时候你并不想看整个文件只想看开头几行或者结尾几行head 和 tail 就是专门干这个的。head 显示文件开头部分默认前 10 行。想要自定义行数用 -n 参数head -n 20 access.log 就显示前 20 行。tail 显示文件结尾部分默认也是 10 行同样用 -n 指定比如 tail -n 50 error.log 看最后 50 行。看日志时新的报错往往追加在文件尾部所以 tail 比 head 更常用。tail 有一个参数在排查里特别有用-f含义是 follow跟踪文件尾部。文件有新内容写入时tail -f 会把新增内容实时显示到屏幕上这在观察服务日志时几乎是标配操作。比如某个服务正在运行你想看它输出什么执行 tail -f 服务.log新内容就会一行行出现。看完按 CtrlC 退出跟踪。# 显示 access.log 前 20 行 head -n 20 access.log # 显示 error.log 最后 50 行 tail -n 50 error.log # 实时跟踪系统日志的新增内容 tail -f /var/log/syslog容易忽视的是head、tail 都只读取文件不会修改文件所以拿来反复查看是安全的。新手常常担心“看文件会不会弄坏文件”答案是普通查看命令都是只读的放心用。真正的风险集中在写操作和删除操作上那才需要警惕。4.3 找文件三兄弟find、locate、which 的分工文件一多找东西就成刚需。Kali 上找文件有三个常用命令find、locate、which定位完全不同。搞清楚分工就不会拿错工具。find 是功能最全的查找命令在文件系统里实时搜索支持按名称、类型、大小等多种条件组合。按名字找find / -name config.ini在全盘查找名为 config.ini 的文件按类型找find /etc -type f只看普通文件不列目录按大小找find /var -size 10M找大于 10MB 的文件。find 的缺点是慢因为它实时遍历目录全盘搜索时要有耐心。locate 走的是另一条路它先通过一个数据库记录文件路径查找时直接查数据库速度飞快。代价是数据库不会实时更新新建的文件可能查不到这时需要先更新数据库才能搜到。locate 适合找“我确定有但忘了放哪”的文件find 适合找“条件复杂、必须精确匹配”的文件。which 不找普通文件专门找命令本身。你想知道 nmap 到底装在哪个目录执行 which nmap它会输出这个命令的绝对路径。它还有个衍生用途如果 which 某命令 什么都不输出说明这个命令不存在或没安装。所以 which 常被用来检查工具是否安装成功、执行的到底是不是你预期的那一个。# 以名字在 /etc 下查找 nginx.conf find /etc -name nginx.conf # 在 /var 下查找大于 10MB 的文件 find /var -size 10M # 查找命令 nmap 的安装位置 which nmap # 在数据库中快速搜索名为 report 的文件 locate report新手最常犯的错误是拿 find 去做 which 的事或者用 locate 去找刚创建的文件结果一无所获。记住一句话找普通文件用 find 和 locate找命令的位置用 which。按场景选工具才是正确姿势。5. 避坑指南五个最常让新手翻车的命令问题5.1 rm 删完才发现没备份误删文件怎么避免现象你执行了 rm -rf 某个目录几秒后发现删错了里面有重要资料回收站里也找不到它。原因命令行的删除不走图形界面的回收站rm 一旦执行文件对应的数据就可能被立即标记释放。对新手来说这条命令的破坏性在全文所有命令里排第一而新手又常常因为对路径不熟悉在错误的目录里执行了它。解决执行 rm 之前强制三确认先 pwd 看当前在哪再 ls 看目标列表最后在脑子里过一遍“我要删的是不是这个”。重要文件建议先 mv 到一个临时目录放几天确定没问题再删。还可以在命令里加 -i 参数让系统逐个询问多一道确认就多一道保险。5.2 Permission denied命令没错但系统不让执行现象你输入了一条看起来完全正确的命令比如读取某个系统配置文件屏幕却提示 Permission denied文件明明在那里就是读不了。原因Linux 是严格的多用户系统每个文件都有“谁能读、谁能写、谁能执行”的权限标记。普通用户权限范围有限很多系统级文件只允许管理员访问。你用普通账户去读系统按规矩拒绝这跟命令拼写无关。解决先判断自己是否真的需要访问这个文件。如果确实需要用 sudo 前缀提升权限执行比如 sudo cat 某个配置。但别养成所有命令都加 sudo 的习惯权限开得过大误操作的影响也变大。sudo 首次使用会要求输入当前用户的密码输入时屏幕上不会显示任何字符这不是故障输完按回车就行。另外su 是切换用户身份的完整切换sudo 是临时以管理员权限执行单条命令两者别混着用。5.3 终端卡住程序跑不停按什么都没反应现象你执行了一个命令后屏幕开始不断滚动输出终端好像卡死了按什么都没反应只能慌乱地关窗口。原因绝大多数所谓“卡死”只是程序在前台持续运行不断输出内容把你的操作占住了。它不一定是真卡只是没结束。比如你执行了日志跟踪命令它本来就该一直显示新内容又或者程序进入了一个等待状态。解决先按 CtrlC这是“中断当前前台程序”的标准操作大部分情况都能让它停下来并返回提示符。如果 CtrlC 无效按 CtrlZ 暂停程序回到提示符后用 jobs 查看任务列表再用 kill 命令结束它。少数极端情况两个组合键都无效才需要考虑关闭终端窗口但那可能留下后台进程。别一上来就关窗先给系统一个优雅结束的机会。5.4 路径写错家目录、根目录、相对路径分不清现象你想进某个目录cd 过去却发现进了完全陌生的位置或者在删除文件时因为路径理解错误跑到上级目录去删了东西。原因根源是混淆了绝对路径和相对路径以及没记住 / 和 ~ 的区别。/ 单独出现表示根目录是整个文件系统的起点~ 表示当前用户的家目录. 表示当前目录.. 表示上一级目录。新手常把 ~ 当成普通目录名或使用了一个不存在的相对路径自然就迷路了。解决每次切换目录后用 pwd 确认实际位置。路径敏感的写操作执行前把目标写成绝对路径降低相对路径带来的误判风险。还有一个提升效率和正确率的小动作输入路径时多用 Tab 键自动补全系统会帮你补全目录名省时间也避免手打错字。如果 Tab 补全没反应说明这个路径根本不存在停下来检查再走。5.5 man 手册打不开也退不出帮助文档的正确用法现象你听说 man 可以查命令帮助执行 man ls 后进入了一个全屏界面内容很多但想退出时按什么键都没反应最后无奈重启终端。原因man 打开的内容是手册页查看界面它接管了终端显示操作方式和其他命令完全不同。新手不知道它的翻页和退出快捷键才会觉得它是个“进去了就出不来”的黑匣子。解决在 man 界面里空格键向下翻页b 键向上翻页输入 /关键词 搜索按 q 退出。这几个键记住man 就从陷阱变成随身文档。除了 man还有几个帮手whatis 用一行文字简短描述命令功能适合快速了解help 针对内置命令输出简要帮助大多数命令直接加 --help 会显示参数说明。遇到陌生命令先 --help 看个大概再 man 看详细这个顺序能让效率翻倍。6. 下一步学什么给自己安排一条能走通的路6.1 三周入门路线从命令熟悉到日志排查学命令行最忌讳一口气背几十个命令然后一周全忘光。建议按场景分批学每批都带一个实际目的我把自己的路线整理成了下面这张表周次学习重点建议练习第一周文件操作与路径在 /tmp 下建自己的目录结构用 pwd、ls、cd、touch、mkdir 来回折腾结束时把 shutdown、halt、reboot 各试一次关机前记得用 exit 退出登录第二周内容查看与查找用 less 浏览配置文件用 head、tail 看日志用 last 查看最近登录记录用 find、locate 找文件做到想看哪就看哪第三周权限与打包结合 sudo 理解权限体系用 gzip、tar 给文件打包备份再练习解压建立数据备份的习惯每一周都不追求记住所有参数每个命令记一两个高频参数就够用。真正熟练靠重复不靠背诵。手边备一份按模块整理的常用命令手册遇到不确定的参数随手翻比临时联网现查效率高很多也能少走不少弯路。6.2 学命令的一个习惯用场景去记不要背参数后来我总结出一个特别适合新手的习惯把每个命令和它解决的“问题场景”绑定起来记忆。比如“我想知道自己在哪个目录”对应 pwd“我想换到另一个目录”对应 cd“我想看文件最后 10 行还希望它实时刷新”对应 tail -f。这样学到的命令遇到真实场景会自动被唤起靠死记硬背反而容易忘。从那以后我每次新装系统或换新环境都会强制自己用一套最基础的流程先走一遍pwd 看位置、ls 看内容、cd 切目录、cat 或 less 看文件、用 mv 和 cp 做备份。这套流程走顺了再复杂的工具也只是在这个基础上叠加参数。命令行最重要的不是记了多少命令而是建立了“用命令解决问题”的反射。希望这条习惯能帮到你也希望你从第一个命令开始慢慢把终端变成自己最顺手的工具。本文还有配套的精品资源点击获取
阅读完成 · 觉得有帮助?
咨询建站