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- 查看所有网络连接的进程IDnetstat -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. 服务管理
systemctl 是 systemd 系统(Kali Linux、Debian、Ubuntu、CentOS 7+ 等主流Linux均采用)的核心服务管理工具,替代了旧版的 service、chkconfig、/etc/init.d/ 等命令,是服务管理的首选方式。
核心前提
- 操作系统服务操作(启动/停止/设置自启)需要管理员权限,所有指令前需加
sudo; - 所有指令的核心参数是「服务名」(如
clamav-daemon、ssh),需准确输入; - 旧版
/etc/init.d/命令仍可兼容,但优先使用systemctl。
7.1 查看服务状态
7.1.1 查看单个服务详细状态(推荐)
1 | # 语法 |
状态解读(终端第一行输出):
active (running):服务正常运行;inactive (dead):服务未启动/已停止;failed:服务启动失败(需查看日志排查);enabled:开机自启已开启;disabled:开机自启已关闭。
7.1.2 快速判断服务是否运行
1 | # 语法 |
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 | # 语法 |
7.2.2 停止服务(仅本次生效)
1 | # 语法 |
7.2.3 重启服务(修改配置后必用)
1 | # 语法 |
7.2.4 重载配置(无需重启服务,轻量生效)
适用于仅修改配置文件的场景(如sshd_config、clamd.conf):
1 | # 语法 |
7.3 设置开机自启/关闭自启(永久生效)
7.3.1 启用开机自启
1 | # 语法 |
7.3.2 禁用开机自启
1 | # 语法 |
7.3.3 快速判断自启状态
1 | # 语法 |
7.4 旧版兼容命令(备用)
1 | # 启动/重启/停止服务(旧版方式) |
7.5 实用技巧:快速查找准确服务名
方法1:模糊搜索(推荐)
1 | # 语法:systemctl | grep 关键词 |
方法2:查看服务文件
服务配置文件位于 /lib/systemd/system/ 或 /etc/systemd/system/,文件名以.service结尾,去掉后缀即为服务名:
1 | # 查看所有.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编辑器
三种模式
- 命令模式 - 控制光标移动,进行删除、复制等操作
- 插入模式 - 输入文本内容
- 底行模式 - 保存、退出、搜索等
基本操作
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- 向上查找textn- 查找下一个匹配N- 查找上一个匹配
退出命令
:wq- 保存并退出:q!- 强制退出忽略更改:e!- 放弃修改并重新打开文件:w- 保存修改set number或set 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命令。