指南)
簡介《Kali Linux 常用命令大全》是一份面向滲透測試新手、網(wǎng)絡安全學習者及運維人員的Linux命令速查文檔聚焦Kali系統(tǒng)中文件操作、系統(tǒng)信息查看、文本處理等高頻場景幫助用戶快速掌握命令行操作減少查找碎片化資料的時間。資源為單個docx文檔壓縮包約1.96MB輕量易用。內(nèi)容按功能模塊組織涵蓋目錄與文件管理ls、cd、cp、mv、touch、mkdir、幫助命令whatis、help、man、info、登錄與用戶切換login、last、su/sudo、電源管理shutdown、halt、reboot等常用命令并對參數(shù)含義與典型用法作了說明同時包括df、free、top等系統(tǒng)資源查看命令及grep、sed、awk等文本處理技巧適合按需檢索和對照練習。目前已有633人學習使用這套命令筆記可幫助剛接觸Kali Linux的Web滲透測試人員、網(wǎng)絡安全專業(yè)學生以及需要系統(tǒng)梳理Linux基礎命令的開發(fā)者在實戰(zhàn)前快速建立命令行知識框架作為桌面常備速查資料。1. Kali 命令手冊為什么值得翻爛從 Web 滲透到系統(tǒng)維護都繞不開它接觸過幾臺 Kali 的從業(yè)者基本都有同感真正卡住你的往往不是某個漏洞利用腳本而是最基礎的文件操作、權(quán)限切換和幫助文檔查找。某次我在一個授權(quán)滲透項目里需要在目標服務器上快速定位一個日志文件并統(tǒng)計特征行同事盯著屏幕猶豫了十幾秒最后還是一步步 cd 加 ls 去翻目錄。鍵盤熟練度就是效率本身。這份《Kali 常用命令大全》我反復翻過幾遍它把 ls、find、tar、man 這些高頻命令的常用參數(shù)、邊界行為和真實場景全部拆開講透。對 Web 滲透新手來說它是進入 Linux 操作系統(tǒng)的第一塊踏板對有經(jīng)驗的工程師來說它是查漏補缺的參考索引能幫你在現(xiàn)場少走不少彎路。很多人覺得命令手冊網(wǎng)上隨便搜都有但 Kali 這個發(fā)行版的特殊性在于它預裝了大量安全工具而這些工具全部運行在 Linux 命令體系之上。不懂命令Metasploit 和 Nmap 玩得再花哨也是空中樓閣。下面我按自己的使用習慣把這本手冊里最有價值的幾組命令重新組織一遍每一步都給出實際場景和參數(shù)解析。2. 文件與目錄操作ls、cd、mkdir 到 rm 的完整閉環(huán)2.1 ls 的常用組合從默認輸出到完整信息ls 在 Kali 里的出現(xiàn)頻率幾乎是最高的。剛拿到一臺機器或者切換到一個新目錄第一件事就是看看里面有什么。手冊里對 ls 參數(shù)的整理非常實用-a 顯示隱藏文件、-l 列出詳細信息、-t 按時間排序、-R 遞歸子目錄、-h 人性化顯示文件大小。尤其值得記住的是ls -l可以直接簡寫為ll在 Kali 的默認 shell 配置里這個別名是生效的。實際工作中我常用的是這三條# 查看當前目錄下的常規(guī)文件與文件夾 ls # 查看完整信息包括權(quán)限、屬主、大小、修改時間 ls -lh # 顯示全部文件包含以 . 開頭的隱藏文件 ls -al第一條用于快速瀏覽第二條用于檢查文件權(quán)限和大小第三條在排查隱藏后門或者確認目錄是否被植入文件時是必備操作。-l輸出里的權(quán)限位rwxr-xr-x 那一段和文件類型是 Web 滲透里經(jīng)常要判斷的東西比如發(fā)現(xiàn)一個.sh文件帶著-rwxrwxrwx權(quán)限那就需要警惕了。2.2 cd 和 pwd路徑切換里的符號鏈接細節(jié)cd 和 pwd 看起來簡單但手冊里埋了一個不常被人注意的參數(shù)cd -P和pwd -P用于繞過符號鏈接顯示物理路徑。Kali 里很多工具目錄是通過軟鏈接組織的比如/usr/bin下某些工具實際指向別的目錄。如果你在滲透測試中需要確認自己真實所在的物理位置用pwd -P比直接敲pwd更可靠。# 返回上一個工作目錄 cd - # 顯示物理路徑不展開符號鏈接 pwd -Pcd -在你在兩個深層次目錄之間反復切換時非常好用省去重新輸入完整路徑的時間。很多人不知道這一條還在用絕對路徑來回折騰。2.3 touch、mkdir 與時間戳的小心思touch 最常用的功能是創(chuàng)建空文件比如在測試上傳漏洞時經(jīng)常需要新建一個空白文件來驗證路徑是否可寫。但手冊里提到的另一個功能更有意思更新已存在文件的時間屬性。在某些 Web 滲透場景里你需要讓一個文件的時間戳看起來像剛被修改過從而掩蓋操作痕跡touch 就是那個工具。# 創(chuàng)建新的空文件 touch test.txt # 將文件時間修改為 2024 年 1 月 15 日 10:30 touch -t 202401151030 test.txt-t參數(shù)后面跟的是[[CC]YY]MMDDhhmm[.SS]格式注意月份在前、日期在后這個格式非常容易記反。mkdir 的-p參數(shù)則是創(chuàng)建多級目錄的標配# 遞歸創(chuàng)建多層目錄 mkdir -p /tmp/test/web/logs沒有-p的話如果/tmp/test/web不存在命令會直接報錯。這條在寫自動化腳本時幾乎是必帶的。2.4 文件復制、移動與刪除認真對待 rm 的破壞力cp、mv、rm 三兄弟是文件操作的核心但也是最容易出事故的地方。cp 的-a參數(shù)我一般用來完整復制目錄結(jié)構(gòu)并保留所有屬性相當于-dpR的合體。mv 在同目錄下操作相當于重命名這個很多人知道但-u參數(shù)了解的人不多只有當源文件比目標文件新時才覆蓋這條在編寫增量同步腳本時很實用。rm 是需要重點提醒的。Kali 里很多用戶在 root 權(quán)限下操作一條rm -rf /tmp/test/打錯路徑就可能刪掉系統(tǒng)關鍵目錄。手冊里給的-i參數(shù)可以強制交互確認-v顯示詳細過程。我的習慣是先ls確認目標路徑再用rm -rf執(zhí)行并且永遠不用rm -rf /這種寫法。# 顯示刪除過程并逐個確認 rm -riv /tmp/test/2.5 ln 的軟鏈接與硬鏈接選錯類型會踩坑ln 命令在 Kali 里也是高頻操作尤其是軟鏈接。手冊里明確提了一句-s創(chuàng)建軟鏈接時源文件必須寫絕對路徑。這條非常關鍵因為相對路徑的軟鏈接在跨目錄使用時經(jīng)常斷鏈導致工具找不到目標文件。# 創(chuàng)建軟鏈接源文件使用絕對路徑 ln -s /usr/share/wordlists/rockyou.txt /tmp/rockyou硬鏈接和軟鏈接的區(qū)別在于硬鏈接共享同一個 inode原文件刪除后鏈接依然有效軟鏈接相當于一個指針原文件被刪鏈接就失效。在 Kali 里配置工具鏈時我?guī)缀踔挥密涙溄右驗橛叉溄硬荒芸缥募到y(tǒng)而 /tmp 和 /usr/share 經(jīng)常不在同一個分區(qū)上。3. 查找與內(nèi)容查看find、which、cat、head、tail 的組合打法3.1 find 的表達式組合按名字、大小、類型精準定位find 是 Kali 命令里靈活性最高的一個。手冊里整理了幾個核心參數(shù)-name按文件名、-iname忽略大小寫、-size按大小、-type按類型、-perm按權(quán)限。這些參數(shù)可以任意組合實際滲透中我基本都把它當作三參數(shù)以上的復合查詢來用。# 在全盤查找所有 SUID 權(quán)限的文件 find / -type f -perm -4000 2/dev/null # 查找 /var/www 下最近一天內(nèi)被修改的 php 文件 find /var/www -name *.php -mtime -1 # 查找大于 100MB 的文件常見于排查日志或備份文件 find / -type f -size 100M 2/dev/null第一條命令的-perm -4000是 SUID 權(quán)限的標志這類文件在 Linux 提權(quán)測試中極其重要。第二條的-mtime -1表示最近 24 小時內(nèi)修改過在應急響應里排查 webshell 時是必備技能。第三條的2/dev/null把權(quán)限不足的報錯丟棄避免刷屏。find 的查找速度比 locate 慢因為它實時遍歷文件系統(tǒng)但結(jié)果更加準確可靠。3.2 locate 的快與 find 的準什么時候選哪個locate 走的不是實時掃描而是查詢系統(tǒng)預建的索引數(shù)據(jù)庫所以速度極快。但它的缺點是索引可能過期如果你剛創(chuàng)建的文件在幾分鐘內(nèi)查不到需要先執(zhí)行updatedb強制重建索引。手冊里提到-i忽略大小寫、-n限制輸出行數(shù)這兩條在日常使用中很常見。# 更新索引數(shù)據(jù)庫 sudo updatedb # 查找文件名包含 nginx 的文件不區(qū)分大小寫 locate -i nginx我的經(jīng)驗是快速定位系統(tǒng)自帶工具或已知文件用 locate需要精確匹配特定路徑或?qū)傩缘挠?find兩者互補而不是替代。3.3 which 與 PATH確認命令真實位置的關鍵which 命令看似平淡無奇但它能告訴你當前執(zhí)行的命令到底來自哪個路徑。Kali 里預裝工具眾多同名命令沖突并不少見。比如當你敲入python時到底是/usr/bin/python還是/usr/local/bin/python用 which 一查便知。# 查看 python 命令的真實路徑 which python在滲透測試里這個信息很重要。如果你在一臺被入侵的機器上執(zhí)行命令而 which 顯示某個系統(tǒng)命令路徑異常比如/tmp/下出現(xiàn)了ls的可執(zhí)行文件那大概率是被替換了。which 幫助你在第一時間發(fā)現(xiàn)這類異常。3.4 cat、head、tail日志查看的標準工作流文件內(nèi)容查看方面cat 適合讀短文件head 和 tail 適合查日志首尾。Kali 下日志文件動輒幾百 MB直接用 cat 會刷屏甚至卡死終端所以查看日志的標準流程是先 tail 看最新輸出再用 head 看開頭確認格式最后 grep 做關鍵詞篩選。# 查看日志最后 50 行 tail -n 50 /var/log/apache2/access.log # 查看日志開頭 20 行 head -n 20 /var/log/apache2/access.log # 查看日志中所有包含 error 的行 grep error /var/log/apache2/error.log-n指定行數(shù)在文件較大時非常有用。tail 還有一個進階用法-f可以持續(xù)跟蹤文件變化在觀察實時日志時是標配。你在做 Web 滲透時開啟一個終端跑tail -f監(jiān)控訪問日志另一終端發(fā)請求可以實時看到自己的 payload 是否命中。3.5 less 與 more大文件瀏覽的分水嶺more 只能向下翻頁less 支持前后雙向瀏覽這是兩者最本質(zhì)的差別。Kali 下看大文件或者命令輸出結(jié)果我基本只用 less。查手冊時man命令調(diào)的也是 less 作為分頁器里面的操作習慣是通用的。# 分頁瀏覽文件支持前后翻頁 less /usr/share/wordlists/rockyou.txt # 打開文件后直接搜索 password 關鍵字 less -p password /usr/share/wordlists/rockyou.txtless 里/向下搜索、?向上搜索、q退出這幾個按鍵是必須形成肌肉記憶的。在查看超長文件時合理使用搜索定位比手動翻頁快一個數(shù)量級。4. 幫助系統(tǒng)與用戶切換從 whatis 到 sudo 的權(quán)限鏈條4.1 whatis、help、man、info按需求選擇幫助層級Kali 上幫助命令分成四個層級很多用戶只會用 man但實際上它們各有分工。whatis 用來快速了解命令的作用一句話描述直接輸出help 只能查 shell 內(nèi)置命令的幫助比如 cd、exit 這類man 是最完整的手冊頁覆蓋命令、配置文件、系統(tǒng)調(diào)用等info 是 GNU 項目的信息文檔超鏈接跳轉(zhuǎn)能力強但內(nèi)容相對偏底層。# 快速了解 ls 的作用 whatis ls # 查看 shell 內(nèi)置命令 cd 的幫助 help cd # 打開 ls 的完整手冊 man ls # 查看核心utils 的信息文檔 info coreutilswhatis 的輸出只有一行適合在記不清命令作用時快速喚起記憶。man 的優(yōu)先級高于 info因為 man 覆蓋面更廣且 Kali 自帶。4.2 中文 man 包的安裝Kali 實測有效Kali 自帶的是英文 man對英語一般的用戶來說閱讀成本偏高。手冊里給了一個中文 man 的安裝方案我在 Kali 上實測可行這里放完整流程# 第一步更新軟件源 sudo apt update # 第二步安裝中文手冊頁 sudo apt install manpages-zh # 第三步配置別名讓 cman 命令使用中文 man echo alias cmanman -M/usr/share/man/zh_CN ~/.zshrc # 第四步重新加載 shell 配置 source ~/.zshrc這段腳本的核心邏輯是通過 apt 安裝 manpages-zh 包把中文手冊安裝到/usr/share/man/zh_CN目錄然后用 alias 讓 cman 命令自動指向該目錄讀取手冊。注意 Kali 默認 shell 是 zsh所以寫入的是~/.zshrc如果你用的是 bash 就改成~/.bashrc。安裝后輸入cman ls就能看到中文版的 ls 手冊對新手非常友好。4.3 su 與 sudo 的核心差異環(huán)境變量是分水嶺su 和 sudo 的差別是 Kali 使用中繞不開的話題。su 切換用戶后環(huán)境變量仍然是原用戶的這就是為什么很多人切到 root 后執(zhí)行命令報錯——因為 PATH 路徑?jīng)]有跟著切換。sudo 則不同它只臨時賦予指定用戶某個命令的執(zhí)行權(quán)限當前 shell 環(huán)境不變。# 切換到 root 用戶使用登錄 Shell su - # 以 root 身份執(zhí)行單條命令 sudo apt update # 指定其他用戶執(zhí)行命令 sudo -u www-data cat /var/www/html/config.php-參數(shù)很關鍵它會重新開啟一個登錄 Shell 并加載目標用戶的完整環(huán)境變量避免切到 root 后出現(xiàn)“命令找不到”的詭異情況。第三條命令在檢查 Web 目錄時特別有用可以模擬 Web 服務用戶身份讀取文件避免權(quán)限誤判。4.4 login、exit、last登錄會話的三件套login 在命令行模式下用于重新登錄或切換用戶身份但日常使用頻率不高因為 su 和 sudo 已經(jīng)覆蓋了絕大多數(shù)場景。exit 用來退出當前 Shell如果你在 su 切換后的環(huán)境里需要多敲幾次 exit 才能完全退出到初始登錄狀態(tài)。last 命令在安全排查中非常有價值它記錄所有登錄記錄和來源 IP。# 顯示最近 10 條登錄記錄 last -n 10 # 顯示登錄來源 IP 但不顯示主機名 last -a在應急響應場景里用 last 檢查是否有異常 IP 登錄過系統(tǒng)是標準動作之一。配合-d參數(shù)還能把 IP 反查為主機名不過內(nèi)網(wǎng)環(huán)境下這個功能基本失效。5. 壓縮打包與電源管理tar、gzip 與 shutdown 的避坑實錄5.1 tar 與 gzip先打包再壓縮才是正確順序很多新手在 Kali 里直接敲gzip壓縮文件夾結(jié)果發(fā)現(xiàn) gzip 只能壓縮單個文件無法處理目錄。正確的做法是先 tar 打包再用 gzip 壓縮或者用 tar 的-z參數(shù)一步完成。# 打包并壓縮整個目錄 tar -czvf web_backup.tar.gz /var/www/html/ # 解壓并拆包 tar -xzvf web_backup.tar.gz -C /tmp/參數(shù)拆解-c建立新打包文件-z調(diào)用 gzip 算法壓縮-v顯示過程-f指定文件名。解壓時-x替代-c-C指定解壓目標目錄。這條命令在備份站點目錄、遷移工具集時是標配。注意-f后面一定要緊跟文件名放在最后是 tar 的老規(guī)矩。5.2 gzip 與 gunzip 的單文件壓縮gzip 單獨使用場景較少但在壓縮單個文件時依然高效。壓縮后原文件消失生成以.gz結(jié)尾的新文件如果用-k參數(shù)可以保留原文件。# 壓縮單文件保留原文件 gzip -k access.log # 查看壓縮文件內(nèi)容不解壓 gzip -l access.log.gz # 解壓 gunzip access.log.gzgzip -l顯示壓縮比和原始大小在決定是否清理日志文件時可以作為判斷依據(jù)。-r參數(shù)可以遞歸壓縮目錄下的所有文件但不會打包目錄結(jié)構(gòu)所以應用場景有限。5.3 shutdown 與 halt 的區(qū)別安全關機不是直接斷電Linux 后臺運行大量進程強制斷電可能導致數(shù)據(jù)丟失或文件系統(tǒng)損壞。shutdown 會先通知所有登錄用戶凍結(jié)新的登錄請求然后逐步關閉服務最終停機。halt 則不會逐項關閉服務直接執(zhí)行硬件關機操作。reboot 和 halt 參數(shù)類似執(zhí)行重啟。# 5 分鐘后關機并廣播消息給所有用戶 shutdown -h 5 System will shut down after 5 minutes # 立即重啟 shutdown -r now # 取消已經(jīng)排定的關機計劃 shutdown -c5是延遲 5 分鐘now是立即執(zhí)行。在生產(chǎn)環(huán)境或測試環(huán)境里我習慣用shutdown -h 5而不是拔電源給其他終端會話留出保存時間。-k參數(shù)特別值得注意它只發(fā)送警告消息但不會真的關機適合測試廣播通知流程。5.4 避坑實錄三條最常踩的坑坑一gzip 直接壓文件夾報錯現(xiàn)象gzip /etc/passwd/提示 Is a directory。原因gzip 本質(zhì)上只能壓縮單個文件流不支持目錄打包操作。解決先tar -cf打包目錄再 gzip或者直接使用tar -czf一步到位??佣m -rf 刪錯路徑現(xiàn)象本想刪除/tmp/test結(jié)果寫成了/tmp/test /系統(tǒng)文件被連帶刪除。原因rm 支持多參數(shù)空格后面的路徑會被當成獨立目標。解決刪除前先ls確認路徑使用rm -i開啟交互確認刪除操作不用通配符配合絕對路徑書寫??尤齭u 切到 root 后命令找不到現(xiàn)象su切換后執(zhí)行ifconfig提示 command not found。原因沒有加-參數(shù)當前 Shell 的環(huán)境變量仍是原用戶的 PATH缺失/sbin路徑。解決使用su -重新開啟登錄 Shell或者直接用sudo執(zhí)行命令。6. 命令速查的落地驗證把手冊內(nèi)容變成肌肉記憶翻閱手冊是一回事真正提升效率是另一回事。我拿到新環(huán)境后的第一件事是驗證基礎命令是否可用然后按自己的使用習慣建一組別名讓復雜的組合命令變成單個單詞。# 定義常用別名寫入 shell 配置文件 echo alias llls -lh ~/.zshrc echo alias lals -A ~/.zshrc echo alias grepgrep --colorauto ~/.zshrc echo alias cmanman -M/usr/share/man/zh_CN ~/.zshrc source ~/.zshrc第二個驗證動作是確認 man 手冊路徑是否完整。執(zhí)行man ls如果能正常打開說明基本手冊沒問題執(zhí)行cman ls能打開中文版說明 manpages-zh 安裝成功。第三個驗證是測試 find 的核心表達式是否按預期工作# 驗證 find 按類型和大小組合查找 find /etc -type f -size -10k | head -20這條正確執(zhí)行說明 find 的參數(shù)解析正常。最后用 tar 做一次備份與恢復的完整循環(huán)確認壓縮、解壓、權(quán)限保留都沒問題# 備份指定目錄 tar -czvf /tmp/config_backup.tar.gz /etc/nginx/ # 恢復到指定位置 tar -xzvf /tmp/config_backup.tar.gz -C /tmp/restore/這一連串操作走完說明手冊里的核心命令在這臺 Kali 上是可用的后面的滲透工作才有底氣。從那以后我每換一臺新的 Kali 環(huán)境都會先花十分鐘把這幾組命令過一遍確認別名、幫助文檔、find 表達式、tar 備份鏈路全部正常再開始正式工作。這個習慣幫我避免過好幾次“關鍵時刻命令不好使”的尷尬希望也能幫到你。本文還有配套的精品資源點擊獲取