Kali Linux 常用命令笔记

1. 系统基本操作

系统控制

  • reboot - 重启系统
  • shutdown -h now - 立即关闭系统
  • shutdown -h hours:minutes & - 按预定时间关闭系统
  • shutdown -c - 取消预定的关机操作
  • shutdown -r now - 立即重启系统
  • init 0 - 关闭系统
  • telinit 0 - 关闭系统
  • clear - 清屏

环境变量

  • env - 显示当前所有环境变量
  • echo $PATH - 查看PATH环境变量
  • echo $JAVA_HOME - 查看JAVA_HOME环境变量
  • echo $PATH | grep jdk - 检查PATH中是否包含JDK路径

用户切换与管理

  • su -l - 切换登录用户
  • su - root - 切换到root用户
  • su 用户名 - 切换到普通用户
  • logout - 注销当前用户
  • passwd - 修改当前用户密码
  • passwd root - 修改root用户密码

历史命令

  • history - 查看历史命令
  • !! - 重复上一条命令
  • !n - 重复第n条命令

2. 文件和目录操作

目录导航

  • pwd - 显示当前工作路径
  • cd .. - 返回上一级目录
  • cd ../.. - 返回上级两级目录
  • cd - - 返回上次所在的目录
  • cd 文件夹名 - 进入指定文件夹
  • cd ~ - 进入当前用户主目录

文件操作

  • touch 文件名 - 创建空文件
  • cat 文件名 - 读取文件内容
  • mkdir 文件名 - 创建文件夹
  • mkdir -p 文件夹 - 递归创建文件夹
  • mkdir 文件名 文件名 - 创建多个文件夹
  • cp 源文件 目标文件 - 复制文件
  • cp -r 源文件夹 目标文件夹 - 递归复制文件夹
  • mv 旧文件名 新文件名 - 移动/重命名文件
  • rm 文件 - 删除文件
  • rm -f 文件 - 强制删除文件
  • rm 文件夹名 - 删除文件夹
  • rm -rf 文件/文件夹 - 强制递归删除文件/文件夹及其内容

文件搜索

  • find / -name file1 - 从根目录开始搜索文件和目录
  • find / -user user1 - 搜索属于指定用户的文件和目录
  • find /home/user1 -name *.bin - 在指定目录中搜索特定扩展名的文件
  • find /usr/bin -type f -atime +100 - 搜索过去100天未被使用的执行文件
  • find /usr/bin -type f -mtime -10 - 搜索10天内被修改过的文件
  • find . -name '.php' -mmin -30 - 查找最近30分钟修改的当前目录下的.php文件
  • find . -name '*.inc' -mtime 0 -ls - 查找最近24小时修改的文件并列出详细信息
  • find / -name *.rpm -exec chmod 755 '{}' \; - 搜索并修改权限
  • find / -xdev -name *.rpm - 搜索忽略可移动设备
  • locate *.ps - 快速查找以.ps结尾的文件(需先运行updatedb
  • whereis halt - 显示二进制文件、源码或man的位置
  • which halt - 显示二进制文件或可执行文件的完整路径
  • find / -name moonsec 2>/dev/null - 搜索文件/文件夹并屏蔽错误信息

3. 系统信息

硬件信息

  • arch - 显示机器的处理器架构
  • uname -m - 显示机器的处理器架构
  • cat /proc/cpuinfo - 显示CPU信息
  • cat /proc/mounts - 显示已加载的文件系统
  • cat /proc/net/dev - 显示网络适配器及统计

操作系统信息

  • uname -r - 显示正在使用的内核版本
  • cat /proc/version - 显示内核版本
  • ver - 查看操作系统版本
  • systeminfo - 查看计算机详细信息(Windows命令,Kali中不适用)

磁盘和内存信息

  • df - 显示磁盘空间使用情况(默认不带单位)
  • df -h - 友好显示磁盘空间使用情况(带单位)
  • free - 显示内存使用情况(默认以KB为单位)
  • free -m - 以MB为单位显示内存使用情况
  • free -h - 友好显示内存使用情况(自动选择合适单位)

4. 用户和群组管理

用户管理

  • useradd moonsec - 创建用户
  • useradd -r -m -s /bin/bash moonsec - 创建系统用户并指定shell
    • -r - 建立系统账号
    • -m - 自动建立用户的登录目录
    • -s /bin/bash - 指定用户登录后使用的shell
  • passwd moonsec - 设置用户密码
  • usermod -a -G moontea k1 - 将用户k1添加到其他用户组

群组管理

  • groupadd group_name - 创建新用户组
  • groupdel group_name - 删除用户组
  • cat /etc/group | grep group_name - 查看特定群组信息

5. 进程管理

进程查看

  • top - 实时查看系统进程和资源使用情况
  • ps -ef - 查看所有进程信息
  • ps -ef | grep tomcat - 查找指定进程
  • query user - 查看当前在线的用户(Windows命令,Kali中不适用)

进程控制

  • kill -9 PID - 强制杀死指定PID的进程
  • taskkill /pid PID数 - 终止指定PID的进程(Windows命令,Kali中不适用)

6. 网络相关命令

网络配置

  • ifconfig - 查看和配置网络接口信息
  • iwconfig - 配置或获取无线网络设备信息
  • route print - 显示IP路由表(Windows命令)
  • arp - 查看和处理ARP缓存
  • arp -a - 显示所有ARP缓存信息
  • nbtstat -A ip - 查看对方最近登录的用户名(Windows命令)

网络诊断

  • ping www.baidu.com - 测试网络连接
  • ping www.baidu.com -c 3 - 执行3次ping测试
  • netstat -a - 查看所有端口
  • netstat -an - 查看端口的网络连接情况
  • netstat -o - 查看所有网络连接的进程ID
  • netstat -ano | findstr ":80" - 查找包含”80”的连接(Windows命令)
  • netstat -v - 查看正在进行的工作
  • netstat -p 协议名 - 查看某协议使用情况
  • netstat -s - 查看所有协议使用情况
  • netstat -lntup - 查看所有TCP和UDP端口
  • nslookup - 查询DNS记录
  • nslookup -qt=type domain - 查询特定类型的DNS记录
  • traceroute - 检测数据包到达目标主机经过的网关数量
  • telnet - 远程登录(常用于端口检测)
  • finger username @host - 查看最近登录的用户信息

网络服务

  • http协议 - 使用curl和wget进行HTTP操作
  • curl - 传输数据的命令行工具
  • wget - 从网络下载文件

7. 服务管理

systemctlsystemd 系统(Kali Linux、Debian、Ubuntu、CentOS 7+ 等主流Linux均采用)的核心服务管理工具,替代了旧版的 servicechkconfig/etc/init.d/ 等命令,是服务管理的首选方式。

核心前提

  1. 操作系统服务操作(启动/停止/设置自启)需要管理员权限,所有指令前需加 sudo
  2. 所有指令的核心参数是「服务名」(如 clamav-daemonssh),需准确输入;
  3. 旧版 /etc/init.d/ 命令仍可兼容,但优先使用 systemctl

7.1 查看服务状态

7.1.1 查看单个服务详细状态(推荐)

1
2
3
4
# 语法
sudo systemctl status 服务名
# 示例:查看ClamAV守护进程状态
sudo systemctl status clamav-daemon

状态解读(终端第一行输出):

  • active (running):服务正常运行;
  • inactive (dead):服务未启动/已停止;
  • failed:服务启动失败(需查看日志排查);
  • enabled:开机自启已开启;disabled:开机自启已关闭。

7.1.2 快速判断服务是否运行

1
2
3
4
5
# 语法
sudo systemctl is-active 服务名
# 示例:判断ssh服务是否运行
sudo systemctl is-active ssh
# 输出:running/inactive/failed

7.1.3 查看所有已启动的服务

1
sudo systemctl list-units --type=service --state=running

7.1.4 查看所有服务(含自启状态)

1
sudo systemctl list-unit-files --type=service

7.2 服务启动/停止/重启/重载

7.2.1 启动服务(仅本次生效)

1
2
3
4
# 语法
sudo systemctl start 服务名
# 示例:启动apache2服务
sudo systemctl start apache2

7.2.2 停止服务(仅本次生效)

1
2
3
4
# 语法
sudo systemctl stop 服务名
# 示例:停止networking服务
sudo systemctl stop networking

7.2.3 重启服务(修改配置后必用)

1
2
3
4
# 语法
sudo systemctl restart 服务名
# 示例:重启Docker服务
sudo systemctl restart docker

7.2.4 重载配置(无需重启服务,轻量生效)

适用于仅修改配置文件的场景(如sshd_config、clamd.conf):

1
2
3
4
# 语法
sudo systemctl reload 服务名
# 示例:重载SSH配置
sudo systemctl reload ssh

7.3 设置开机自启/关闭自启(永久生效)

7.3.1 启用开机自启

1
2
3
4
# 语法
sudo systemctl enable 服务名
# 示例:设置MySQL开机自启
sudo systemctl enable mysql

7.3.2 禁用开机自启

1
2
3
4
# 语法
sudo systemctl disable 服务名
# 示例:关闭UFW防火墙自启
sudo systemctl disable ufw

7.3.3 快速判断自启状态

1
2
3
4
5
# 语法
sudo systemctl is-enabled 服务名
# 示例:检查apache2是否自启
sudo systemctl is-enabled apache2
# 输出:enabled/disabled

7.4 旧版兼容命令(备用)

1
2
3
4
5
# 启动/重启/停止服务(旧版方式)
/etc/init.d/apache2 start
/etc/init.d/apache2 restart
/etc/init.d/apache2 stop
service networking restart

7.5 实用技巧:快速查找准确服务名

方法1:模糊搜索(推荐)

1
2
3
4
# 语法:systemctl | grep 关键词
systemctl | grep ssh # 搜索SSH相关服务
systemctl | grep clamav # 搜索ClamAV相关服务
systemctl | grep network # 搜索网络相关服务

方法2:查看服务文件

服务配置文件位于 /lib/systemd/system//etc/systemd/system/,文件名以.service结尾,去掉后缀即为服务名:

1
2
3
4
# 查看所有.service文件
ls /lib/systemd/system/*.service
# 模糊查找某类服务
ls /lib/systemd/system/*docker*.service

8. 包管理

Debian/Ubuntu包管理

  • apt-get update - 更新软件包列表
  • apt-get upgrade - 升级已安装的软件包
  • apt-get dist-upgrade - 智能升级,处理依赖关系变化
  • apt-get install package - 安装软件包
  • apt-get install python-模块名 - 安装Python模块
  • apt-get autoremove --purge 软件名 - 删除包及其依赖和配置文件
  • dpkg -i package.deb - 安装/更新deb包
  • dpkg -r package_name - 从系统删除deb包
  • dpkg -l - 显示所有已安装的deb包
  • dpkg -l | grep httpd - 显示包含特定名称的deb包
  • dpkg -s package_name - 获取已安装包的信息
  • dpkg -L package_name - 显示已安装包提供的文件列表

压缩与解压

  • bzip2 file1 - 压缩文件
  • gunzip file1.gz - 解压gzip文件
  • gzip file1 - 压缩文件
  • gzip -9 file1 - 最大程度压缩
  • rar a file1.rar test_file - 创建rar压缩包
  • rar x file1.rar - 解压rar包
  • unrar x file1.rar - 解压rar包
  • tar zcvf 压缩文件名 压缩文件 - 创建gzip压缩的tar包
  • tar zxvf 解压包名 - 解压gzip压缩的tar包
  • tar -jcvf 压缩文件名 - 创建bzip2压缩的tar包
  • tar jxvf 解压包名 - 解压bzip2压缩的tar包
  • zip -q -r 压缩文件名 目录 - 创建zip压缩包
  • unzip 压缩文件名 - 解压zip压缩包

9. 文本编辑

vi/vim编辑器

三种模式

  1. 命令模式 - 控制光标移动,进行删除、复制等操作
  2. 插入模式 - 输入文本内容
  3. 底行模式 - 保存、退出、搜索等

基本操作

  • vi filename - 打开或新建文件,光标置于第一行首
  • vi +n filename - 打开文件,光标置于第n行首
  • vi + filename - 打开文件,光标置于最后一行首
  • i - 在当前位置前插入
  • I - 在当前行首插入
  • a - 在当前位置后插入
  • A - 在当前行尾插入
  • o - 在当前行之后插入一行
  • O - 在当前行之前插入一行
  • dd - 删除当前行
  • 2dd - 删除2行
  • yy - 复制当前行
  • nyy - 复制当前行及之后n行
  • p - 在当前光标后粘贴
  • u - 撤销操作

查找与替换

  • /text - 向下查找text
  • ?text - 向上查找text
  • n - 查找下一个匹配
  • N - 查找上一个匹配

退出命令

  • :wq - 保存并退出
  • :q! - 强制退出忽略更改
  • :e! - 放弃修改并重新打开文件
  • :w - 保存修改
  • set numberset nu - 显示行号
  • :n - 跳转到第n行

10. 其他实用命令

防火墙管理

  • iptables -L - 查看防火墙规则
  • iptables -F - 清除防火墙规则
  • /etc/init.d/iptables stop - 停止iptables防火墙
  • service iptables stop - 停止iptables防火墙
  • ufw disable - 禁用UFW防火墙
  • ufw enable - 启用UFW防火墙
  • ufw status - 查看UFW防火墙状态

开机自启配置

  • /etc/rc.d/rc.local - 开机自启动脚本配置文件
  • echo 1 > /proc/sys/net/ipv4/ip_forward - 临时开启路由转发
  • systemctl enable 服务名 - 永久设置服务开机自启(推荐)

网卡与DNS配置

  • /etc/network/interfaces - 网卡配置文件路径
  • ifconfig eth0 192.168.0.33 - 设置临时IP地址
  • /etc/resolv.conf - DNS配置文件路径
  • nameserver 114.114.114.114 - 设置DNS服务器(临时生效)

系统工具

  • wmic product > ins.txt - 查看安装软件信息(Windows命令)
  • systeminfo - 查看系统信息(Windows命令)
  • whoami - 查看当前用户及权限(Linux/Windows通用)
  • whoami /all - 查看当前用户详细权限信息(Windows命令)

注:本笔记中包含部分Windows命令,已特别标注。Kali Linux主要使用Linux命令,部分命令需要root权限(加sudo)才能执行;服务管理优先使用systemctl,兼容旧版service/init.d命令。