应急响应——Windows / Linux 排查笔记

一、基本思路流程

  1. 收集信息:收集客户信息和中毒主机信息,包括样本
  2. 判断类型:判断是否是安全事件,何种安全事件,勒索、挖矿、断网、DoS 等等
  3. 抑制范围:隔离使受害⾯不继续扩⼤
  4. 深入分析:日志分析、进程分析、启动项分析、样本分析方便后期溯源
  5. 清理处置:杀掉进程,删除文件,打补丁,删除异常系统服务,清除后门账号防止事件扩大,处理完毕后恢复生产
  6. 产出报告:整理并输出完整的安全事件报告

二、Windows入侵排查思路:

在这里插入图片描述

三、Linux入侵排查思路:

1、账户排查
cat /etc/passwd	#查看是否有异常的系统用户

/etc/passwd 文件每一行的字段分别是:

用户名:密码:用户id:组id:用户信息:主目录:shell 

在这里插入图片描述

cat /etc/shadow	 #存储 Linux 系统中用户的密码信息,又称为 “影子文件”
用户名:加密密码:密码最后一次修改日期:两次密码的修改时间间隔:密码有效期:密码修改到期到的警告天数:密码过期之后的宽限天数:账号失效时间:保留域

在这里插入图片描述
哈希密码可以使用 john 进行破解(kali自带)。

常用命令
grep "0" /etc/passwd	查看是否产生了新用户,UID和GID为0的用户
ls -l /etc/passwd	    查看passwd的修改时间,判断是否在不知的情况下添加用户
awk -F: '$3==0 {print $1}' /etc/passwd	查看是否存在特权用户(只输出用户名)
grep x:0 /etc/passwd 查看是否存在特权用户(查看完整的行内容)
awk -F: 'length($2)==0 {print $1}' /etc/shadow	查看是否存在空口令帐户
more /etc/sudoers | grep -v "^#|^$" | grep "ALL=(ALL)" 除root帐号外,其他帐号是否存在sudo权限who	查看当前登录用户,以及其登录ip。pts代表远程登录,tty代表本地登陆。
w	查看目前登入系统的用户,以及他们正在执行的程序。
stat /etc/passwd	查看密码文件上一次修改的时间,如果最近被修改过,那就可能存在问题。
cat /etc/passwd |grep -v nologin	看除了不可登录以外的用户都有哪些,有没有新增的
cat /etc/passwd | grep /bin/bash	查看能用bash shell登录的用户usermod -L user	禁用帐号,帐号无法登录,/etc/shadow第二栏为!开头
userdel user	删除user用户
userdel -r user	将删除user用户,并且将/home目录下的user目录一并删除
2、历史命令排查

linux系统默认会记录用户输入的命令,保存到一个.bash_history 隐藏文件中(有些系统是.zsh_history),ls -al 命令可以查看隐藏文件

history命令可以查看当前用户的历史命令

history

在这里插入图片描述
history 命令会默认保存当前会话中执行的最近 500 条命令。

history n   显示最近 n 条命令历史
history -c  清空命令历史记录
history -w  将当前会话的命令历史写入到历史文件中
history !n  重新执行历史记录中的第 n 条命令
history !!  重新执行上一条命令

注意 wget(有可能是下载木马文件),ssh(可能是异常连接内网主机),tar zip(数据打包),系统配置命令可能是修改系统相关配置。

在 /home 各账户目录下,cat /用户/.bash_history (.zsh_history)也可以查看其他用户的历史命令。

例如,查看用户 john 的历史记录:

cat /home/john/.bash_history
or
cat /home/john/.zsh_history

保存历史命令

cat .bash_history >>history.txt
3、异常端口排查

使用 netstat 网络连接命令,分析可疑端口、IP、PID,是否有建立可疑网络连接等。

netstat -atunlp-a:显示所有连接和监听的端口。
-t:仅显示 TCP 连接。
-u:仅显示 UDP 连接。
-n:以数字形式显示地址和端口号,而不进行域名解析。
-l:仅显示监听状态的服务。
-p:显示使用该连接或监听端口的程序及其 PID。

加上 -a 参数:会显示所有的连接,包括已建立的连接和监听的端口。
不加 -a 参数:只会显示监听的端口(如果加上 -l 参数)或已建立的连接(如果没有加 -l 参数)。

在这里插入图片描述

ls -l /proc/PID/exe	查看pid所对应的进程文件路径

在这里插入图片描述
使用 Telnet 测试 tcp 端口连通性
在这里插入图片描述

在查到端口占用的进程后,如果你要杀掉对应的进程可以使用 kill 命令

kill -9 PID  #kill -9 是必杀令,强制删除kill -9 26993
4、进程排查

使用 ps 命令结合 aux,grep 选项查看 linux 系统下的进程信息,还可以使用 top 命令查看是否有挖矿,木马病毒占用大量的系统资源。

ps aux | grep pid	分析进程
ps aux – sort=pcpu | head -10 进程动态监控,默认根据cpu的占用情况进行排序的,按b可根据内存使用情况排序。
查看cpu占用率前十的进程
lsof -p pid	查看进程打开的文件
top 查看资源占用
top -p pid 监控指定程序

在这里插入图片描述
在这里插入图片描述

5、计划任务排查

一般 linux 任务计划文件以 cron 开头,可以使用 crontab 命令进行计划任务的设置。

默认编写的 crontab 文件会保存在 (/var/spool/cron/用户名,例如:/var/spool/cron/root)

Debian 系统中,crontab 文件的保存位置在:/var/spool/cron/crontabs/用户名

系统级的 crontab 配置文件通常位于 /etc/crontab。这个文件可以由系统管理员编辑,用于设置系统范围内的定时任务。

命令说明
cat /etc/crontab查看计划任务内容
crontab -l列出某个用户cron服务的详细内容
crontab -u root -l查看指定用户定时任务
crontab -r删除每个用户cront任务(谨慎:删除所有的计划任务)
crontab -e使用编辑器编辑当前的crontab文件
ls /etc/cron.*列出以cron.开头的文件或目录
more /etc/cron.daily/*查看目录下所有文件

在这里插入图片描述

6、异常文件排查

异常文件检查是排查黑客是否有修改服务器上的敏感目录或文件。

重点关注以下目录中是否存在恶意脚本:

/var/spool/cron/* 存储每个用户的定时任务文件,由 crontab 命令创建和管理。
/etc/crontab 系统范围的定时任务文件,支持指定任务所属的用户。
/etc/cron.d/* 存储额外的系统范围定时任务文件,通常由软件包安装创建。
/etc/cron.daily/* 存储每日运行的脚本,通常在凌晨执行。
/etc/cron.hourly/* 存储每小时运行的脚本。
/etc/cron.monthly/* 存储每月运行的脚本。
/etc/cron.weekly/ 存储每周运行的脚本。
/etc/anacrontab 管理 anacron 的配置,保证错过的任务会被补充执行。
/var/spool/anacron/* 存储 anacron 的任务时间戳,用于跟踪任务执行情况。

查看目录下所有文件:

ls -la /etc/cron.daily/*

查看敏感目录,如 /tmp 目录下的文件,同时注意隐藏文件夹,以“..”为名的文件夹具有隐藏属性

如发现webshell、远控木马的创建时间,如何找出同一时间范围内创建的文件?

find /opt -iname "*" -atime 1 -type f #找出 /opt 下一天前访问过的文件
find /opt -iname ".." -atime 1 -type f #
  • -iname "*" :查找所有文件名的文件,-iname 忽略大小写,* 是通配符,匹配所有文件名。
  • -atime 1:查找在过去一天(24小时)内访问过的文件。1 表示访问时间在一天前到两天前之间(即:1 < x ≤ 2 天)。-atime 使用的单位是天。
  • -type f:只查找普通文件,不包括目录或其他类型的文件。

如果要查找过去 24 小时内访问过的文件,可以使用:

find /opt -iname "*" -atime 0 -type f
stat /bin/netstat

查看 /bin/netstat 文件命名修改时间,防止被替换

输出实例:

  File: /bin/netstatSize: 123456      Blocks: 256        IO Block: 4096 regular file
Device: 802h/2050d  Inode: 123456      Links: 1
Access: 2025-01-08 10:00:00.000000000 +0000
Modify: 2025-01-07 15:00:00.000000000 +0000
Change: 2025-01-07 15:00:00.000000000 +0000Birth: -

Access 最近一次访问文件的时间。
Modify 最近一次修改文件内容的时间。
Change 最近一次更改文件元数据(如权限、所有权等)的时间。
Birth 文件的创建时间(部分文件系统支持,如 ext4)。

7、webshell 排查

河马webshell查杀:http://www.shellpub.com
深信服Webshell网站后门检测工具:http://edr.sangfor.com.cn/backdoor_detection.html

8、检查系统日志
登录日志:
/var/log/btmp //lastb	登录失败记录
/var/log/lastlog 或者 //lastlog	最后一次登录
/var/log/wtmp //last	登录成功记录
/var/log/secure	登录日志记录
/var/run/utmp //w、who、users	目前登录用户信息
grep “Accepted” /var/log/secure |awk{print $1,$2,$3,$9,$11}’	查看成功登录的日期、用户名、IP:

检查系统错误登陆日志,统计IP重试次数(last命令是查看系统登陆日志,比如系统被reboot或登陆情况)

查看所有用户的登录和注销记录:

last #等同于 last -f /var/log/wtmp

这个命令会显示系统中所有用户的登录和注销记录,包括用户名、登录时间、登录持续时间和登录的 IP 地址。

 root pts/2 10.254.200.252 Sat Apr 14 15:26 still logged in root pts/4 10.4.3.76 Fri Apr 13 16:59 - 18:06 (01:07) root pts/2 10.254.200.252 Fri Apr 13 16:54 - 18:05 (01:11) root pts/6 10.254.200.252 Fri Apr 13 11:48 - 11:58 (00:09) root pts/8 10.4.3.76 Fri Apr 13 09:47 - 12:05 (02:17) root pts/7 10.4.3.47 Fri Apr 13 09:32 - 12:18 (02:46) root pts/5 10.4.3.238 Fri Apr 13 09:22 - 20:12 (10:50) root pts/3 10.4.3.226 Fri Apr 13 08:57 - 18:24 (09:27) 

最上面的一条still logged in表示当前登录还没有退出,还在继续使用。

查看所有失败的登录尝试

lastb #等同于 lastb -f /var/log/btmp
root     tty1                         Fri Jul 14 14:35 - 14:35 (00:00)
root     tty1                         Fri Jul 14 14:34 - 14:34 (00:00)
root     tty1                         Fri Jul 14 14:33 - 14:33 (00:00)
root     tty1                         Fri Jul 14 14:32 - 14:32 (00:00)
root     tty1                         Fri Jul 14 14:31 - 14:31 (00:00)
reboot   system boot  4.19.0-32-amd64  Fri Jul 14 14:30 - 14:35 (00:05)
root     tty1                         Fri Jul 14 14:29 - 14:29 (00:00)
root     tty1                         Fri Jul 14 14:28 - 14:28 (00:00)
root     tty1                         Fri Jul 14 14:27 - 14:27 (00:00)
root     tty1                         Fri Jul 14 14:26 - 14:26 (00:00)

有多次 root 用户通过 tty1 终端进行登录尝试,但都失败了。

系统在 Fri Jul 14 14:30 进行了重启,持续时间为 5 分钟。

查看所有用户的最近一次登录信息

lastlog #/var/log/lastlog

在这里插入图片描述
记录中会有很多未登录过的用户,可以通过 grep -v 命令进行过滤,不显示没有登陆过的用户

 lastlog |grep -v "Never logged in"
中间件日志:

Web访问日志记录了Web服务器接收处理请求及运行时错误等各种原始信息。通过对WEB日志进行的安全分析,不仅可以帮助我们定位攻击者,还可以帮助我们还原攻击路径,找到网站存在的安全漏洞并进行修复。

我们来看一条Apache的访问日志:
127.0.0.1 - - [11/Jun/2018:12:47:22 +0800] “GET /login.html HTTP/1.1” 200 786 “-” “Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36”

通过这条Web访问日志,我们可以清楚的得知用户在什么IP、什么时间、用什么操作系统、什么浏览器的情况下访问了 你网站的哪个页面,是否访问成功。

系统日志:
/var/log/cron	记录了系统定时任务相关的日志
/var/log/message	记录系统重要信息的日志。这个日志文件中会记录Linux系统的绝大多数重要信息,如果系统出现问题时,首先要检查的就应该是这个日志文件
/var/log/utmp	"记录当前已经登录的用户信息,这个文件会随着用户的登录和注销不断变化,只记录当前登录用户的信息。同样这个文件不能直接vi,而要使用w,who,users等命令来查询"
/var/log/secure	"记录验证和授权方面的信息,只要涉及账号和密码的程序都会记录,比如SSH登录,su切换
组合命令:
grep "Failed password for root" /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more	定位有多少IP在爆破主机的root帐号:
grep "Failed password" /var/log/secure|grep -E -o "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\. (25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4] [0-9]|[01]?[0-9][0-9]?)"|uniq -c	定位有哪些IP在爆破:
grep "Failed password" /var/log/secure|perl -e 'while($_=<>){ /for(.*?) from/; print "$1\n";}'|uniq -c|sort -nr	爆破用户名字典是什么?
grep "Accepted " /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more	登录成功的IP有哪些
grep "Accepted " /var/log/secure | awk '{print $1,$2,$3,$9,$11}'	登录成功的日期、用户名、IP:
8、启动项排查

因为中毒会随系统的启动而启动的,所以一般会开机启动,检查一下启动的服务或者文件是否有异常。

systemctl list-unit-files | grep enabled	查看开机启动项
crontab -l	查看定时任务
crontab -u root -l	查看指定用户定时任务
more /etc/rc.local /etc/rc.d/rc[0~6].d 启动项文件
ls -l /etc/rc.d/rc3.d/	启动项文件
9、Hosts文件排查

查看host 文件是否被篡改

cat /etc/hosts

四、常见场景:

SSH暴力破解排查

在 Linux 主机上排查是否遭遇 SSH 暴力破解攻击,可以通过以下几种方法检查系统日志和配置:

1、检查 SSH 登录日志

SSH 登录尝试的日志一般保存在 /var/log/auth.log (Ubuntu/Debian) 或 /var/log/secure (CentOS/RHEL) 文件中。

使用以下命令检查日志中是否有大量失败的 SSH 登录尝试:

# Ubuntu/Debian
grep "Failed password" /var/log/auth.log# CentOS/RHEL
grep "Failed password" /var/log/secure

查找成功的 SSH 登录记录,确认是否有未知用户或 IP 登录成功:

# Ubuntu/Debian
grep "Accepted password" /var/log/auth.log# CentOS/RHEL
grep "Accepted password" /var/log/secure
2、检查特定 IP 的失败尝试次数

可以用以下命令统计某个 IP 的 SSH 失败登录尝试次数:

grep "Failed password" /var/log/auth.log | grep "IP地址" | wc -l

把 IP地址 替换为具体 IP 地址。如果某个 IP 的失败尝试次数特别多,可能是在进行暴力破解。

3、统计尝试登录 IP 及次数
# Ubuntu/Debian
grep "Failed password" /var/log/auth.log | awk '{print $(NF-3)}' | sort | uniq -c | sort -nr# CentOS/RHEL
grep "Failed password" /var/log/secure | awk '{print $(NF-3)}' | sort | uniq -c | sort -nr

命令解释:

grep "Failed password":提取日志中所有包含“Failed password”的行,表示失败的 SSH 登录尝试。
awk '{print $(NF-3)}':提取每行中倒数第三个字段(一般是 IP 地址)。
sort:对所有 IP 地址排序。
uniq -c:统计每个唯一 IP 地址的出现次数。
sort -nr:按照出现次数从高到低排序,方便快速查看尝试次数最多的 IP。

输出示例

150 192.168.1.100
75 203.0.113.45
20 198.51.100.20

输出的第一个数字是该 IP 的尝试次数,第二列是对应的 IP 地址。

Nginx access.log 文件分析

检测 Nginx 的 access.log 中是否存在攻击记录可能需要一些手动的分析,因为具体的攻击形式和攻击者的行为可以各种各样。以下是一些常见的检查方法:

1、HTTP 4xx 和 5xx 响应代码:

查找 access.log 文件中的 HTTP 响应代码,尤其是 4xx(客户端错误)和 5xx(服务器错误)的代码。攻击者可能尝试发起恶意请求,导致服务器返回错误响应。例如:

cat /path/to/nginx/access.log | grep ' 4[0-9][0-9] '
cat /path/to/nginx/access.log | grep ' 5[0-9][0-9] '

这将显示所有包含 HTTP 4xx 或 5xx 响应代码的日志记录。

2、请求频率:

检查来自同一 IP 地址的请求频率。如果某个 IP 地址在短时间内发送大量请求,可能是恶意行为的迹象。例如:

awk '{print $1}' /path/to/nginx/access.log | sort | uniq -c | sort -n

这将按照 IP 地址对请求进行计数,并按请求频率进行排序。

3、特殊字符或URL:

查找包含特殊字符或异常 URL 的请求。攻击者可能尝试使用 URL 编码、路径遍历、SQL 注入等攻击技术。例如:

cat /path/to/nginx/access.log | grep '%20'  # 查找 URL 编码的空格
cat /path/to/nginx/access.log | grep '../'  # 查找路径遍历

这将显示包含 URL 编码的空格或路径遍历的请求。

4、异常的 User-Agent:

查找使用异常 User-Agent 字符串的请求。一些攻击可能使用自定义的 User-Agent 字符串。例如:

cat /path/to/nginx/access.log | awk -F\" '{print $6}' | sort | uniq -c | sort -n

这将显示不同的 User-Agent 字符串及其出现的频率。

5、扫描行为:

检查访问模式,尤其是快速扫描或暴力破解的迹象。例如:

cat /path/to/nginx/access.log | awk '{print $7}' | sort | uniq -c | sort -n

这将显示不同的请求路径及其出现的频率。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/504017.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Git撤销指定commit并更新远端仓库

Git撤销指定commit并更新远端仓库 一、撤销指定commit 1.首先执行git log 命令&#xff0c;查看git历史提交以及commit信息&#xff1a; 由于需要脱敏&#xff0c;所以截图可能看得马赛克比较多&#xff0c;需要关注的就是上面的commit后跟的id&#xff0c;以及HEAD当前指定…

C 语言奇幻之旅 - 第16篇:C 语言项目实战

目录 引言1. 项目规划1.1 需求分析与设计1.1.1 项目目标1.1.2 功能需求1.1.3 技术实现方案 2. 代码实现2.1 模块化编程2.1.1 学生信息模块2.1.2 成绩管理模块 2.2 调试与测试2.2.1 调试2.2.2 测试2.2.4 测试结果 3. 项目总结3.1 代码优化与重构3.1.1 代码优化3.1.2 代码重构 3.…

2025最新解决方案:新买的mac鼠标和这个触控板反向

solution1 &#xff1a;1.打开设置&#xff0c;搜索 触控 点击 自然滚动 ----->解决的是 触控板 但是还是解决不了鼠标反向的问题 solution1 ultra&#xff1a; 下载一个免费 且纯净的 软件 Scroll Reverser for macOS 这是给出的链接&#xff0c;非常简单&#xff0c;…

黄仁勋CES 2025演讲重点内容

黄仁勋CES 2025演讲重点内容 硬件产品发布 GeForce RTX 50系列GPU&#xff1a; 架构与性能提升&#xff1a;正式发布的新一代GeForce RTX 50系列GPU采用英伟达旗舰的Blackwell架构&#xff0c;这是自25年前引入可编程着色技术以来计算机图形领域最重大的创新。该系列显卡在图形…

机器学习免费使用的数据集及网站链接

机器学习领域存在许多可以免费使用的数据集&#xff0c;这些数据集来自于学习、研究、比赛等目的。 一、综合性数据集平台 1.Kaggle 网址&#xff1a;Kaggle 数据集https://www.kaggle.com/datasets Kaggle是一个数据科学竞赛和社区平台&#xff0c;提供了大量的数据集供用…

nodejs的降级

不使用nvm&#xff0c;直接使用zip包和手动配置环境变量。 下载相关的zip版本的&#xff0c; 解压相关文件&#xff0c;配置系统环境变量PATH&#xff0c;安装的其他的都不用修改 修改系统变量中的path值&#xff0c;重启下电脑 注意要重启idea&#xff0c;如果还是无效&…

ASP.NET Core 实现微服务 - Elastic APM

这次要给大家介绍的是Elastic APM &#xff0c;一款应用程序性能监控组件。APM 监控围绕对应用、服务、容器的健康监控&#xff0c;对接口的调用链、性能进行监控。在我们实施微服务后&#xff0c;由于复杂的业务逻辑&#xff0c;服务之间的调用会像蜘蛛网一样复杂。有了调用链…

自定义EasyCode模板生成CRUD

文章目录 1.生成步骤1.定义全局逻辑删除字段名称以及删除值和未删除值2.简单三层架构模板1.概览2.Req.java3.Vo.java4.Po.java5.Mapper.java6.Mapper.xml7.Service.java8.ServiceImpl.java9.Controller.java 3.通用配置生成模板1.概览2.PageInfo.java3.PageResult.java4.SunPag…

IOS开发如何从入门进阶到高级

针对iOS开发的学习&#xff0c;不同阶段应采取不同的学习方式&#xff0c;以实现高效提升.本文将iOS开发的学习分为入门、实战、进阶三个阶段&#xff0c;下面分别详细介绍. 一、学习社区 iOS开源中国社区 这个社区专注于iOS开发的开源项目分享与协作&#xff0c;汇集了大量开…

洛谷P1617————数字转英文

题目如下 思路&#xff1a;将1~9的英文和20~90的英文用字符串数组存储&#xff0c;把下标看作对应的数字进行输出&#xff0c;遇到0或连续多个0就输出“and”&#xff0c;定义l用来看枚举到哪一位了&#xff0c;如果是单独输入一个“0”&#xff0c;则直接输出zero然后结束。否…

Kubernetes集群架构

Kubernetes集群架构 Kubernetes 集群架构控制平面组件kube-apiserveretcdkube-schedulerkube-controller-managercloud-controller-manager 节点组件kubeletkebe-proxy&#xff08;可选&#xff09;容器运行时 插件DNSWeb UI&#xff08;Dashboard&#xff09;容器资源监控集群…

esp32开发笔记之一:esp32开发环境搭建vscode+ubuntu

最近想用esp32做一个物联网项目&#xff0c;踩坑N个终于有点心得&#xff0c;写下来避免和我一样的小白踩无谓的坑。 写在前面&#xff1a; 第一&#xff0c;大家一定要用linux系统作为编译工具&#xff0c;速度上是windows无法比的&#xff0c;不要因为不熟悉linux而选择win…

探索大型语言模型新架构:从 MoE 到 MoA

探索大型语言模型新架构&#xff1a;从 MoE 到 MoA 当前&#xff0c;商业科技公司纷纷投身于一场激烈的竞赛&#xff0c;不断扩大语言模型的规模&#xff0c;并为其注入海量的高质量数据&#xff0c;试图逐步提升模型的准确性。然而&#xff0c;这种看似顺理成章的发展路径逐渐…

数据结构:LinkedList与链表—面试题(三)

目录 1、移除链表元素 2、反转链表 3、链表的中间结点 4、返回倒数第k个结点 5、合并两个有序链表 1、移除链表元素 习题链接https://leetcode.cn/problems/remove-linked-list-elements/description/ 描述&#xff1a;给你一个链表的头节点 head 和一个整数 val &#xff…

AI赋能R-Meta分析核心技术:从热点挖掘到高级模型、助力高效科研与论文发表

Meta分析是针对某一科研问题&#xff0c;根据明确的搜索策略、选择筛选文献标准、采用严格的评价方法&#xff0c;对来源不同的研究成果进行收集、合并及定量统计分析的方法&#xff0c;现已广泛应用于农林生态&#xff0c;资源环境等方面&#xff0c;成为Science、Nature论文的…

LAMP搭建

LAMP搭建 引子&#xff1a;本篇文章为LAMP的搭建流程&#xff0c;其中L&#xff08;Ubuntu&#xff09;、A&#xff08;Apache&#xff09;、M&#xff08;Mysql&#xff09;、P&#xff08;PHP&#xff09;。 一、L → Ubuntu Step 1&#xff1a;在Vmware Workstation中使…

基于高斯混合模型的数据分析及其延伸应用(具体代码分析)

一、代码分析 &#xff08;一&#xff09;清除工作区和命令行窗口 clear; clc;clear;&#xff1a;该命令用于清除 MATLAB 工作区中的所有变量&#xff0c;确保代码运行环境的清洁&#xff0c;避免之前遗留的变量对当前代码运行产生干扰。例如&#xff0c;如果之前运行的代码中…

成为LabVIEW自由开发者

成为LabVIEW自由开发者的体验可以非常丰富且具有挑战性&#xff0c;同时也充满了自我成长和多样化项目的机会。 ​ 1. 高度的灵活性与自由度 工作时间与地点&#xff1a;作为自由开发者&#xff0c;你可以自由选择工作时间和地点。你可以在家工作&#xff0c;也可以选择在咖啡…

33.3K 的Freqtrade:开启加密货币自动化交易之旅

“ 如何更高效、智能地进行交易成为众多投资者关注的焦点。” Freqtrade 是一款用 Python 编写的免费开源加密货币交易机器人。它就像一位不知疲倦的智能交易助手&#xff0c;能够连接到众多主流加密货币交易所&#xff0c;如 Binance、Bitmart、Bybit 等&#xff08;支…

maven之插件调试

当使用maven进行项目管理的时候&#xff0c;可能会碰到一些疑难问题。网上资料很少&#xff0c;可能会想着直接调试定位问题。这里以maven-compiler-plugin为例&#xff1a; &#xff08;1&#xff09;准备maven-compiler-plugin源码 进入maven 官网-》Maven Plugins-》找到对…