2018-4-13
Linux 命令大全 Linux 理论知识 Linux 环境变量 Linux 用户管理 Linux 文件管理 Linux 网络管理 Linux 磁盘管理
N_Raspberrypi Ubuntu CentOS N_Docker
系统相关配置文件说明
用户与权限管理
-
/etc/passwd
存储用户账户基本信息:用户名、UID、GID、主目录、默认shell等 -
/etc/shadow
保存加密密码及账户安全信息(仅root可读) -
/etc/group
包含用户组信息:组名、GID和组成员列表 -
/etc/sudoers
定义sudo权限配置(使用visudo命令编辑) -
/etc/security/limits.conf
控制系统资源限制(如最大打开文件数、CPU时间等)
查看限制:ulimit -a
网络配置
-
/etc/hosts
IP地址与主机名映射表 -
/etc/hostname
存储系统主机名 -
/etc/resolv.conf
DNS解析配置(nameserver设置) -
/etc/network/interfaces
网络接口配置(Debian系) -
/etc/sysconfig/network-scripts/
网络接口配置(RHEL系)
系统服务
-
/etc/ssh/sshd_config
SSH服务端配置文件 -
/etc/ntp.conf
NTP时间同步服务配置 -
/etc/crontab
系统定时任务配置 -
/etc/systemd/
systemd服务配置目录(含各种unit文件)
文件系统
-
/etc/fstab
文件系统挂载信息(设备、挂载点、选项等) -
/etc/mtab
当前已挂载文件系统信息(动态生成)
软件管理
-
/etc/apt/sources.list
Debian/Ubuntu软件源配置 -
/etc/yum.repos.d/
RHEL/CentOS软件源配置目录
系统环境
-
/etc/environment
系统全局环境变量 -
/etc/profile
全局shell环境配置(对所有用户生效) -
/etc/bashrc
全局bash shell配置
内核与日志
-
/etc/sysctl.conf
内核参数配置文件 -
/etc/logrotate.conf
日志轮转规则配置
引导相关
-
/etc/default/grub
GRUB引导加载程序配置 -
/etc/grub.d/
GRUB配置脚本目录
系统维护管理
服务管理
参考上Linux 理论知识 许多程序需要开机启动。它们在Windows叫做*“服务”(service)*,在Linux就叫做”守护进程”(daemon)。
一般情况下运行等级为5
chkconfig
chkconfig 是一个维护/etc/rc[0~6].d 文件夹的命令行工具,它减轻了系统直接管理这些文件夹中的符号连接的负担。
chkconfig主要包括5个原始功能:为系统管理增加新的服务、为系统管理移除服务、列出单签服务的启动信息、改变服务的启动信息和检查特殊服务的启动状态。
当单独运行chkconfig命令而不加任何参数时,他将显示服务的使用信息。
# 查看所有服务状态
$ chkconfig
# 查看具体服务配置
$ chkconfig <servicename>
# 添加新服务
$ chkconfig --add servicename
# 设置启动等级
$ chkconfig --level 35 mysqld on所有服务, 每个运行级别将启动的服务`
$ chkconfig
cloudResetPwdAgent 0:off 1:off 2:on 3:on 4:on 5:on 6:off
cloudResetPwdUpdateAgent 0:off 1:off 2:on 3:on 4:on 5:on 6:off
hostguard 0:off 1:off 2:on 3:on 4:on 5:on 6:off
jenkins 0:off 1:off 2:off 3:on 4:off 5:on 6:off
multi-queue-hw 0:off 1:off 2:on 3:on 4:on 5:on 6:off
netconsole 0:off 1:off 2:off 3:off 4:off 5:off 6:off
network 0:off 1:off 2:off 3:off 4:off 5:off 6:off创建一个服务
chkconfig [--add][--del][--list][系统服务] 或 chkconfig [--level <等级代号>][系统服务][on/off/reset]
-
启动脚本 服务脚本必须存放在
/etc/ini.d/目录下 -
添加服务 在chkconfig工具服务列表中增加此服务,此时服务会被在
/etc/rc.d/rc{N}.d中赋予K/S入口了chkconfig –add servicename -
设置启动等级 设定mysqld在等级3和5为开机运行服务,—level 35表示操作只在等级3和5执行,on表示启动,off表示关闭
chkconfig –level 35 mysqld on
service
service 命令用于对系统服务进行管理,比如启动(start)、停止(stop)、重启(restart)、查看状态(status)等。
相关的命令还包括chkconfig、ntsysv等,chkconfig用于查看、设置服务的运行级别,ntsysv用于直观方便的设置各个服务是否自动启动。
service命令本身是一个shell脚本,它在/etc/init.d/目录查找指定的服务脚本,然后调用该服务脚本来完成任务。
service mysqld start 相当于 /etc/init.d/mysqld start
service 服务名 [start | stop | restart | reload | status]
service mysqld start #开始
service mysqld stop #停止
service mysqld restart #重新启动
service mysqld reload #重新加载
service mysqld status #状态
service --status-all #所有服务状态systemctl
systemctl 是设置系统服务的命令,即 service , 它融合 service 和 chkconfig 的功能于一体。可以使用它永久性或只在当前会话中启用/禁用服务。
主要负责控制systemd系统和服务管理器
$ systemctl start httpd.service # 启动服务
$ systemctl stop httpd.service # 停止服务
$ systemctl restart httpd.service # 重启服务
$ systemctl status httpd.service # 查看状态
$ systemctl enable httpd.service # 设置开机启动
$ systemctl disable httpd.service # 禁用开机启动
$ systemctl is-enabled httpd.service # 检查是否开机启动
$ systemctl list-unit-files|grep enabled # 查看已启动的服务列表
systemctl --failed # 查看启动失败的服务列表
systemctl list-units --type=service
systemctl unmask mysql.service
systemctl status mysql.service
进程管理
linux中也称为task,是系统分配资源的基本单位
资源:独立的地址空间 内核数据结构(进程描述符…)全局变量 数据段… 进程描述符:PCB(Process Control Block) linux 用于管理进程的数据结构
PS
Linux ps (英文全拼:process status)命令用于显示当前进程的状态,类似于 windows 的任务管理器。
语法
ps [options] [--help]
参数:
- ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
- -A 列出所有的进程
- -w 显示加宽可以显示较多的资讯
- -au 显示较详细的资讯
- -aux 显示所有包含其他使用者的进程
- au(x) 输出格式 :
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
- USER: 行程拥有者
- PID: pid
- %CPU: 占用的 CPU 使用率
- %MEM: 占用的记忆体使用率
- VSZ: 占用的虚拟记忆体大小
- RSS: 占用的记忆体大小
- TTY: 终端的次要装置号码 (minor device number of tty)
- STAT: 该行程的状态:
- D: 无法中断的休眠状态 (通常 IO 的进程)
- R: 正在执行中
- S: 静止状态
- T: 暂停执行
- Z: 不存在但暂时无法消除
- W: 没有足够的记忆体分页可分配
- <: 高优先序的行程
- N: 低优先序的行程
- L: 有记忆体分页分配并锁在记忆体内 (实时系统或捱A I/O)
- START: 行程开始时间
- TIME: 执行的时间
- COMMAND:所执行的指令
# 同时显示PID和启动时间:
ps -p <PID> -o pid,lstart,cmd
ps -eo pid,lstart,cmd | grep -E "nginx|mysql"
ps -eo pid,lstart,cmd | grep -E "uvc"信息说明
USER(用户):启动进程的用户名。 PID(进程ID):进程的唯一标识符。 %CPU(CPU使用率):进程使用的CPU资源的百分比。 %MEM(内存使用率):进程使用的物理内存的百分比。 VSZ(虚拟内存大小):进程使用的虚拟内存大小(以KB为单位)。 RSS(物理内存大小):进程使用的物理内存大小(以KB为单位)。 TTY(终端):启动进程的终端设备。 STAT(状态):进程的状态代码。常见的状态包括: R:运行或就绪状态 S:睡眠状态 Z:僵尸状态 D:不可中断状态 T:停止状态 START(启动时间):进程启动的时间或日期。 TIME(CPU时间):进程已经使用的CPU时间。 COMMAND(命令):启动进程的命令或可执行文件的名称。
常用命令
ps aux:显示所有用户的所有进程信息。该命令以全格式显示进程信息,包括用户、CPU使用情况、内存占用、启动时间等。
ps -ef:显示所有进程的完整信息。类似于ps aux,但使用BSD风格的输出格式。
ps -e:显示所有进程的基本信息。
ps -f:显示进程的全格式信息,包括父进程ID、进程组ID、会话ID等。
ps -l:以长格式显示进程信息,包括进程状态、进程优先级等。
ps -p <PID>:显示指定进程ID(PID)的信息。将<PID>替换为要查看的实际进程ID。
ps -t <TTY>:显示指定TTY终端上的所有进程信息。将<TTY>替换为TTY设备名。
ps -ef | grep 进程关键字
ps ef|grep java # 查询带 java 的进程
ps ef|grep python # 查询带 python 的进程
# 导出所有进程列表到文件
ps aux > processes_list.txt
ps aux | awk '{print $2, $11}' > processes_list.txt
top
Linux top 是一个在 Linux 和其他类 Unix 系统上常用的实时系统监控工具。它提供了一个动态的、交互式的实时视图,显示系统的整体性能信息以及正在运行的进程的相关信息。
语法
top [-] [d delay] [q] [c] [S] [s] [i] [n] [b]
参数说明:
-d <秒数>:指定 top 命令的刷新时间间隔,单位为秒。-n <次数>:指定 top 命令运行的次数后自动退出。-p <进程ID>:仅显示指定进程ID的信息。-u <用户名>:仅显示指定用户名的进程信息。-H:在进程信息中显示线程详细信息。-i:不显示闲置(idle)或无用的进程。-b:以批处理(batch)模式运行,直接将结果输出到文件。-c:显示完整的命令行而不截断。-S:累计显示进程的 CPU 使用时间。
信息说明
top
//load average 最近5, 10 15 的负载
top - 15:54:31 up 40 min, 1 user, load average: 0.00, 0.01, 0.05
//Tasks — 任务(进程)
Tasks: 130 total, 1 running, 129 sleeping, 0 stopped, 0 zombie
//CPU [见下]
%Cpu(s): 0.0 us, 0.2 sy, 0.0 ni, 99.8 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
//内存状态
KiB Mem : 1863032 total, 1368228 free, 283952 used, 210852 buff/cache
//swap交换分区信息
KiB Swap: 2097148 total, 2097148 free, 0 used. 1421940 avail Mem
//各进程状态监控 [见下]
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND| 列名 | 说明 | 重要提示 |
|---|---|---|
| PID | 进程ID | 系统唯一标识符 |
| USER | 运行用户 | 查看进程所有者 |
| PR | 优先级(1-139) | 值越小优先级越高 |
| NI | Nice值(-20~19) | 用户可调整的优先级偏移量 |
| VIRT | 虚拟内存大小 | 包含共享库的总申请内存 |
| RES | 常驻内存 | 实际使用的物理内存 |
| SHR | 共享内存 | 可与其他进程共享的内存 |
| S | 进程状态 | R=运行, S=睡眠, T=停止, Z=僵尸 |
| %CPU | CPU使用率 | 单核100%=100%,四核理论最大400% |
| %MEM | 内存使用率 | (RES / 总内存) × 100% |
| TIME+ | 累计CPU时间 | 进程消耗的总CPU时间 |
CPU状态
%Cpu(s): us, user: 运行(未调整优先级的) 用户进程的CPU时间 sy,system: 运行内核进程的CPU时间 ni,niced:运行已调整优先级的用户进程的CPU时间 id:idle 空闲的cpu时间比 wa,IO wait: 用于等待IO完成的CPU时间 hi:处理硬件中断的CPU时间 si: 处理软件中断的CPU时间 st:这个虚拟机被hypervisor偷去的CPU时间(如果当前处于一个hypervisor下的vm,实际上hypervisor也是要消耗一部分CPU处理时间的)
进程状态
PID:进程的ID
PR:进程的优先级别,越小越优先被执行
VIRT: virtual memory usage 虚拟内存
1、进程“需要的”虚拟内存大小,包括进程使用的库、代码、数据等
2、假如进程申请100m的内存,但实际只使用了10m,那么它会增长100m,而不是实际的使用量
RES:resident memory usage 常驻内存
1、进程当前使用的内存大小,但不包括swap out
2、包含其他进程的共享
3、如果申请100m的内存,实际使用10m,它只增长10m,与VIRT相反
4、关于库占用内存的情况,它只统计加载的库文件所占内存大小
SHR:shared memory 共享内存
1、除了自身进程的共享内存,也包括其他进程的共享内存
2、虽然进程只使用了几个共享库的函数,但它包含了整个共享库的大小
3、计算某个进程所占的物理内存大小公式:RES – SHR
4、swap out后,它将会降下来
S:进程的状态。S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负数
%CPU:进程占用CPU的使用率// t是按CPU总使用率来显示的,4核理论上最高可达400%
%MEM:进程使用的物理内存和总内存的百分比
交互命令
显示
| 快捷键 | 功能 | 说明 |
|---|---|---|
h | 帮助 | 显示所有可用命令 |
q | 退出 | 退出top程序 |
1 | CPU核心视图 | 切换显示所有CPU核心状态 |
m | 内存视图 | 切换显示内存信息 |
t | CPU视图 | 切换显示CPU信息 |
c | 命令切换 | 显示完整命令路径 |
V | 进程树 | 树状结构显示进程关系 |
k | 终止进程 | 输入PID发送信号 |
r | renice进程 | 调整进程优先级 |
c | 命令行参数 | 显示完整的命令行参数 |
排序
| 快捷键 | 排序依据 | 说明 |
|---|---|---|
P | CPU使用率 | %CPU降序排序 |
M | 内存使用量 | %MEM降序排序 |
N | PID大小 | 高PID优先 |
T | 运行时间 | 长时间进程优先 |
R | 反转顺序 | 升序/降序切换 |
查看进程的 标准输入输出
在Linux系统中,查看进程的标准输入、输出和错误输出,通常涉及到查看进程的文件描述符(file descriptors)。每个进程都会有三个标准文件描述符:
0: 标准输入(stdin)
1: 标准输出(stdout)
2: 标准错误(stderr)
查看已重定向的文件
如果进程的输入/输出被重定向到文件,可通过 /proc 文件系统定位:ls -l /proc/<PID>/fd/
示例:
ls -l /proc/1234/fd/0 # stdin
ls -l /proc/1234/fd/1 # stdout
ls -l /proc/1234/fd/2 # stderr输出中的链接会指向实际文件(如
/dev/pts/0表示终端,/path/to/file.log表示文件)。
使用 lsof 命令
列出进程打开的所有文件描述符(包括 stdin/stdout/stderr):lsof -p <PID> | egrep 'STDIN|STDOUT|STDERR'
关键列:
FD: 文件描述符(0u=stdin,1u=stdout,2u=stderr)TYPE: 类型(如REG=文件,CHR=字符设备)DEVICE: 设备号(如终端pts/0)NAME: 文件路径(如/dev/null)
重定向输入/输出
启动进程时手动重定向以便追踪:
./program < input.txt > output.log 2> error.log # 分别重定向
./program &> all_output.log # 合并 stdout+stderr
- 未重定向时:默认 stdin/stdout/stderr 绑定到启动进程的终端(
/dev/pts/<N>)。 - 重定向到
/dev/null:表示丢弃输入/输出。 - 守护进程:通常会将 stdin/stdout/stderr 重定向到
/dev/null或日志文件。 - 管道/套接字:若通过管道或网络通信,文件描述符可能指向
pipe或socket。
系统状态
iostat
是一个用于显示系统输入/输出统计信息的命令行工具。它提供了关于CPU、磁盘和设备的详细性能统计,以帮助用户了解系统的负载情况和磁盘I/O性能。
可以通过安装sysstat包,包括了iostat,mpstat,sra等工具包。
apt install sysstat
参数说明
-c:仅显示CPU统计信息。 -d:仅显示磁盘统计信息。 -k:以KB为单位显示统计信息。 -m:以MB为单位显示统计信息。 -N:显示NFS统计信息。 -p <设备>:仅显示指定设备的统计信息。 -t:显示时间戳。 -V:显示命令的版本信息。 时间间隔:指定统计信息的采样时间间隔,以秒为单位。默认情况下,iostat会显示自系统启动以来的统计信息。 次数:指定显示统计信息的次数。默认为显示一次,并退出。
iostat 1
//CPU的信息
avg-cpu: %user %nice %system %iowait %steal %idle
0.00 0.00 0.25 0.00 0.00 99.75
Device tps kB_read/s kB_wrtn/s kB_read kB_wrtn
mmcblk0 0.00 0.00 0.00 0 0信息说明
Device(设备):显示磁盘设备的名称。 tps(每秒传输次数):每秒完成的传输次数(读取和写入)。 kB_read/s(每秒读取的数据量):每秒从设备读取的数据量(以KB为单位)。 kB_wrtn/s(每秒写入的数据量):每秒写入设备的数据量(以KB为单位)。
常用命令
$ iostat 1 # 每秒刷新显示
$ iostat 2 3 # 每2秒刷新,显示3次
free
Linux free命令用于显示内存状态。 free指令会显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共享内存区段,以及系统核心使用的缓冲区等。
total:总计物理内存的大小。
used:已使用多大。
free:可用有多少。
Shared:多个进程共享的内存总额。
Buffers/cached:磁盘缓存的大小。
参数说明
-b 以Byte为单位显示内存使用情况。
-k 以KB为单位显示内存使用情况。
-m 以MB为单位显示内存使用情况。
-h 以合适的单位显示内存使用情况,最大为三位数,自动计算对应的单位值。单位有:
常用命令
free -s 1 //每1s 执行一次命令
监控CPU,内存,网络
#!/bin/bash
# 获取网络接口名称(自动检测第一个非lo网卡)
INTERFACE=$(ip -o link show | awk -F': ' '{if ($2 != "lo") {print $2; exit}}')
if [ -z "$INTERFACE" ]; then
echo "Error: No network interface found!" >&2
exit 1
fi
# 获取初始网络数据
read RX_BYTES TX_BYTES < <(awk -v iface="$INTERFACE" '$0 ~ iface":" {print $2,$10}' /proc/net/dev)
while true; do
# 获取当前时间
TIMESTAMP=$(date '+%Y-%m-%d %H:%M:%S')
# 获取CPU使用率(用户+系统)
CPU_USAGE=$(top -bn1 | grep '%Cpu' | awk '{printf "%.1f (%dMB/%dMB)", $3/$2 * 100, $3, $2}')
# 获取网络流量(5秒间隔)
read NEW_RX NEW_TX < <(awk -v iface="$INTERFACE" '$0 ~ iface":" {print $2,$10}' /proc/net/dev)
RX_RATE=$(( (NEW_RX - RX_BYTES) / 5 / 1024 ))
TX_RATE=$(( (NEW_TX - TX_BYTES) / 5 / 1024 ))
RX_BYTES=$NEW_RX
TX_BYTES=$NEW_TX
# 打印结果
printf "[%s] CPU: %-6s | Mem: %-18s | Net: RX:%-4dKB/s TX:%-4dKB/s\n" \
"$TIMESTAMP" "$CPU_USAGE" "$MEM_INFO" "$RX_RATE" "$TX_RATE"
# 等待5秒
sleep 5
done硬件信息
lspci 命令行工具,可以用来列出所有的 PCI 总线的信息
系统概览
| 命令 | 描述 | 示例 |
|---|---|---|
uname -a | 显示内核和系统信息 | uname -a |
hostnamectl | 显示主机名和系统信息 | hostnamectl |
lshw | 完整硬件列表(需安装) | sudo lshw |
inxi -Fx | 综合硬件信息报告(需安装) | inxi -Fx |
CPU 信息
| 命令 | 描述 | 示例 |
|---|---|---|
lscpu | 显示CPU架构信息 | lscpu |
cat /proc/cpuinfo | 显示详细CPU信息 | cat /proc/cpuinfo |
nproc | 显示CPU核心数 | nproc |
dmidecode -t processor | 通过DMI获取CPU信息 | sudo dmidecode -t processor |
GPU 信息
NVIDIA 显卡
| 命令 | 描述 | 示例 |
|---|---|---|
nvidia-smi | 显示GPU状态 | nvidia-smi |
nvidia-smi -q | 显示完整GPU信息 | nvidia-smi -q |
通用显卡
| 命令 | 描述 | 示例 |
|---|---|---|
lspci | grep -i vga | 识别所有显卡 | lspci | grep -i vga |
glxinfo | grep OpenGL | 显示OpenGL信息 | glxinfo | grep OpenGL |
内存信息
| 命令 | 描述 | 示例 |
|---|---|---|
free -h | 显示内存使用情况 | free -h |
cat /proc/meminfo | 显示详细内存信息 | cat /proc/meminfo |
vmstat -s | 显示内存统计 | vmstat -s |
存储设备
磁盘信息
| 命令 | 描述 | 示例 |
|---|---|---|
lsblk | 显示块设备列表 | lsblk |
fdisk -l | 显示分区表信息 | sudo fdisk -l |
文件系统
| 命令 | 描述 | 示例 |
|---|---|---|
df -h | 显示磁盘空间使用 | df -h |
du -sh [目录] | 计算目录大小 | du -sh /home |
网络信息
| 命令 | 描述 | 示例 |
|---|---|---|
ip link show | 显示网络接口 | ip link show |
ethtool [接口] | 显示网卡详细信息 | ethtool eth0 |
温度监控
| 命令 | 描述 | 示例 |
|---|---|---|
sensors | 显示传感器数据 | sensors |
hddtemp /dev/sd[a-z] | 显示硬盘温度 | sudo hddtemp /dev/sda |
系统版本
| 命令 | 描述 | 示例 |
|---|---|---|
lsb_release -a | 显示发行版信息 | lsb_release -a |
cat /etc/os-release | 显示系统版本信息 | cat /etc/os-release |
日常维护
后台运行命令 nohup
nohup
如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令。
该命令可以在你退出帐户之后继续运行相应的进程。nohup就是不挂起的意思( no hang up)。 该命令的一般形式为:
nohup conmmand &
如果使用nohup命令提交作业,那么在缺省情况下该作业的所有输出都被重定向到一个名为 nohup.out 的文件中,除非另外指定了输出文件:
nohup command > myout.file 2>&1 丢弃所有输出
nohup command >/dev/null 2>&1 &
nohup java -jar llm-tny-1.0-SNAPSHOT.jar >/dev/null 2>&1 &
2>&1表示将标准错误也重定向
C语言 简易实现 防止多进程副本 .pid
参考资料: fcntl(文件锁) 头文件
#include <unistd.h>
#include <fcntl.h> 函数定义 int fcntl(int fd, int cmd, struct flock *lock);
函数解释fd 文件描写符
lock.l_type = F_WRLCK;
lock.l_whence = SEEK_SET;
if (fcntl(fd, F_SETLK, &lock) < 0){
//锁定不成功, 退出......
}
sprintf (buf, "%d\n", (int) pid);
pidsize = strlen(buf);
if ((tmp = write (fd, buf, pidsize)) != (int)pidsize){
//写入不成功, 退出......
} 忘记root密码?
-
重启系统 开机时在 GRUB 菜单界面(通常需按
Esc、Shift或e键进入)。 -
编辑 GRUB 启动项
- 选择默认启动项(通常是第一个),按
e进入编辑模式。 - 找到以
linux或linux16开头的行(可能包含ro quiet splash)。 - 修改内核参数:
- CentOS/RHEL 7: 在行末添加
rd.break(或init=/bin/bash)。 - Ubuntu/Debian: 将
ro改为rw init=/bin/bash。
- CentOS/RHEL 7: 在行末添加
- 选择默认启动项(通常是第一个),按
-
进入单用户模式 按
Ctrl + X或F10启动系统,会直接进入bash或switch_root环境。 最后按”b”启动,启动后就进入了单用户模式了
此时已经可以使用passwd更改root密码了。
Kali Linux
https://www.kali.org/get-kali/#kali-platforms https://zh.wikipedia.org/wiki/Kali_Linux https://docs.greenbone.net/GCS-Manual/gcs/en/
https://wizardforcel.gitbooks.io/daxueba-kali-linux-tutorial/content/4.html
Kali Linux是基于Debian的Linux发行版,设计用于数字鉴识和渗透测试。由Offensive Security公司维护和资助。
Kali Linux内置了大约600个渗透测试程序(工具),包括Armitage(图形化网络攻击管理工具)、Nmap(端口扫描工具)、Wireshark(数据包分析器)、Metasploit(渗透测试框架)、John the Ripper(密码破解器)、sqlmap(自动SQL注入和数据库接管工具)、Aircrack-ng(用于渗透测试无线局域网的软件包)、Burp suite以及OWASP ZAP网络应用安全扫描器等。
它由Offensive Security的马蒂·阿哈罗尼(Mati Aharoni)和德文·凯恩斯(Devon Kearns)通过重写BackTrack开发的,BackTrack是他们之前基于Knoppix的信息安全测试Linux发行版。 这个名字的灵感来自印度教女神时母(音译为“迦梨”或“迦利”)。
Kali Linux基于Debian测试分支。
OpenVAS
https://www.cnblogs.com/hahaha111122222/p/17411704.html
openvas的组件构成
1、服务器层组件:
• openvas-scanner(扫描器):负责调用各种漏洞检测插件,完成实际的扫描操作。
• openvas-manager(管理器):负责分配扫描任务,并根据扫描结果生产评估报告。
• openvas-administrator(管理者):负责管理配置信息,用户授权等相关工作。
2、客户层组件:
• openvas-cli(命令行接口):负责提供从命令行访问OpenVAS服务层程序。
• greenbone-security-assistant(安装助手):负责提供访问OpenVAS服务层的Web接口,便于通过浏览器来建立扫描任务,是使用最简便的客户层组件。
• Greenbone-Desktop-Suite(桌面套件):负责提供访问OpenVAS服务层的图形程序界面,主要允许在Windows客户机中。
OpenVAS改名为GVM了,通过以下命令进行一些更新。
# 1,更新kali:
sudo apt update && sudo apt upgrade -y
# 安装openvas:
sudo apt install gvm -y
# 初始化配置:
sudo gvm-setup #初始化过程会比较漫长 (此过程会下载漏洞数据库(NVT、SCAP、CERT 数据等)
# > User created with password '58f05f06-becc-47d6-acb1-be8ca3d06553'.
# 检查gvm安装检查:
sudo gvm-check-setup
# 总是有配置不全可以使用该命令同步
# sudo -u _gvm greenbone-feed-sync --type all使用命令启动
gvm-start想改密码,可以使用命令
runuser -u _gvm -- gvmd --user=admin --new-password=123456