当前位置: 首页 > news >正文

Vagrant 虚拟机工具基本操作指南

Vagrant 虚拟机工具基本操作指南

​#虚拟机 #​

​#vargant#​

​#ubuntu#​

虚拟机virtualbox ,VMWare及WSL等大家都很了解了,那Vagrant是什么东西?

它是一组命令行工具,可以象Docker管理容器一样管理虚拟机,这样快速创建和管理虚拟机集群。

vagrant的只是一组前端管理工具,而具体的虚拟机还得由相应虚拟机软件比如 virtualbox和vmware来实现。

那为什么不直接使用虚拟机呢?原因是在很多开发中,对于ubuntu的版本很敏感,

因此我们需要一个快速创建指定版本操作系统的工具,而vagrant正好就这样工具.

一.安装VirtualBox 和vagrant

1.1 Ubuntu下安装

1.1.1 安装virtualbox

sudo apt install virtualbox virtualbox-ext-pack

安装成功后在系统菜单会出现virtual box 图标

1.1.2 安装vagrant

下载安装文件

wget https://releases.hashicorp.com/vagrant/2.3.7/vagrant_2.3.7-1_amd64.deb

安装

sudo apt install ./vagrant_2.3.7-1_amd64.deb

测试版本为 virtualbox 版本为 6.1.38 , Vagrant 2.3.7

image

1.2 Windows下安装

1.2.1 virtualbox 安装

首先从下载最新的virtualbox 虚拟机安装包,安装即可

https://www.virtualbox.org/wiki/Downloads

目前的链接是 https://download.virtualbox.org/virtualbox/7.0.10/VirtualBox-7.0.10-158379-Win.exe

然后下载virtualbox 扩展包,这是usb捕获必须的,下载后在virualbox的界面里安装

https://download.virtualbox.org/virtualbox/7.0.10/Oracle_VM_VirtualBox_Extension_Pack-7.0.10.vbox-extpack

7.0以下版本是 安装方法在主菜单 -->管理 --> 全局设定--> 扩展 ,在右侧点击带加号的小图标,添加新包,选择刚下载的扩展包即可。

image

7.0 版本安装是 主菜单 -->管理 -->工具-->扩展包管理器,增加安装图标,选择刚下载扩展包即可

image

1.2.2 vagrant 安装

从官网下载安装包

https://www.vagrantup.com/downloads

目前安装是

https://releases.hashicorp.com/vagrant/2.3.7/vagrant_2.3.7_windows_amd64.msi

下载后一路安装即可.

二. vagrant创建虚拟机

在创建虚拟机之前,我们需要知道几个概念,vagrant创建虚拟机是基于它的模板文件box来创建。

创建虚拟机后,必须明显的指定一个目录创建虚拟机,然后所有虚拟机的命令必须在这个目录下操作,否则会报错。

后面我将以home/sguav/vagrant 为虚拟机目录

vagrant 操作虚拟机主要通过修改一个名叫Vagrantfile的配置文件,它实际是一个ruby脚本,这个文件就放在虚拟机目录下。

创建虚拟机中的box可以从vagrant官方的映像库下载,也能从第三方映像库下载,比如清华大学的映像站,也能从本地一个指定的box文件创建。

2.1 官方映像库

我们下载一个指定版本映像,可以在vagrant 官方映像库查看其相关映像,

注意不同虚拟机后端的box文件是不一样,所以如果有vmware box建议下载,而最全是virtualbox 格式,还有libvirt虚拟机

image

而且我看vagrant支持后端非常多

image

我们打开一个 18.04的支持,这里提供一个5种不同的映像

image

并且提供几种不同的初始化方法。

image

2.2 初始化虚拟机

初始化虚拟机主要形成一个配置文件Vagrantfile文件

在官方里已经有示例,首先新建一个虚拟机目录,这里假设 /home/sguav/vagrant,以下全在这个目录操作

使用init 子命名初始化。

以下几个样例

初始化ubuntu 20.04来处理。

vagrant init generic/ubuntu-20.04

初始化ubuntu 18.04 并使用第三方的映像库中的box

vagrant init ubuntu-bionic https://mirrors.tuna.tsinghua.edu.cn/ubuntu-cloud-images/bionic/current/bionic-server-cloudimg-amd64-vagrant.box

成功后会在这个目录创建一个Vagrantfile

v a g r a n t i n i t u b u n t u − b i o n i c h t t p s : / / m i r r o r s . t u n a . t s i n g h u a . e d u . c n / u b u n t u − c l o u d − i m a g e s / b i o n i c / c u r r e n t / b i o n i c − s e r v e r − c l o u d i m g − a m d 64 − v a g r a n t . b o x A ‘ V a g r a n t f i l e ‘ h a s b e e n p l a c e d i n t h i s d i r e c t o r y . Y o u a r e n o w r e a d y t o ‘ v a g r a n t u p ‘ y o u r f i r s t v i r t u a l e n v i r o n m e n t ! P l e a s e r e a d t h e c o m m e n t s i n t h e V a g r a n t f i l e a s w e l l a s d o c u m e n t a t i o n o n ‘ v a g r a n t u p . c o m ‘ f o r m o r e i n f o r m a t i o n o n u s i n g V a g r a n t . h x y @ s g − h x y − u b u n t u : / h o m e / s g u a v / v a g r a n t vagrant init ubuntu-bionic https://mirrors.tuna.tsinghua.edu.cn/ubuntu-cloud-images/bionic/current/bionic-server-cloudimg-amd64-vagrant.box A `Vagrantfile` has been placed in this directory. You are now ready to `vagrant up` your first virtual environment! Please read the comments in the Vagrantfile as well as documentation on `vagrantup.com` for more information on using Vagrant. hxy@sg-hxy-ubuntu:/home/sguav/vagrant vagrantinitubuntubionichttps://mirrors.tuna.tsinghua.edu.cn/ubuntucloudimages/bionic/current/bionicservercloudimgamd64vagrant.boxAVagrantfilehasbeenplacedinthisdirectory.Youarenowreadytovagrantupyourfirstvirtualenvironment!PleasereadthecommentsintheVagrantfileaswellasdocumentationonvagrantup.comformoreinformationonusingVagrant.hxy@sghxyubuntu:/home/sguav/vagrant ls
Vagrantfile

当然你也可以直接编写一个Vagrantfile 文件,作用跟init指令差不多

参见映像网站样列,编写如下一个文件放在VagrantFile 目录

安装18.04

Vagrant.configure("2") do |config|config.vm.box = "generic/ubuntu1804"
end

安装 20.04

Vagrant.configure("2") do |config|config.vm.box = "generic/ubuntu2004"
end

2.3 激活虚拟机

激活虚拟机会做两个动作,一,如果本地的不存所需要的box,会从相应用网址下载。二,创建真正的虚拟机文件。

在vagrant目录下执行如下语句即可激活

vagrant up

如果后端是vmware ,则需要如下参数进行激活。

vagrant up -- provider=vmware_desktop

激活成功后,会自动启动

2.4 虚拟机基本操作

登录虚拟机终端,新建虚拟机不需要密码,直接进入

vagrant ssh

这是一个登录运行实例

v a g r a n t s s h W e l c o m e t o U b u n t u 18.04.6 L T S ( G N U / L i n u x 4.15.0 − 212 − g e n e r i c x 8 6 6 4 ) ∗ D o c u m e n t a t i o n : h t t p s : / / h e l p . u b u n t u . c o m ∗ M a n a g e m e n t : h t t p s : / / l a n d s c a p e . c a n o n i c a l . c o m ∗ S u p p o r t : h t t p s : / / u b u n t u . c o m / a d v a n t a g e S y s t e m i n f o r m a t i o n a s o f F r i J u l 2803 : 22 : 18 U T C 2023 S y s t e m l o a d : 0.18 P r o c e s s e s : 101 U s a g e o f / : 2.9 M e m o r y u s a g e : 13 S w a p u s a g e : 0 E x p a n d e d S e c u r i t y M a i n t e n a n c e f o r I n f r a s t r u c t u r e i s n o t e n a b l e d . 0 u p d a t e s c a n b e a p p l i e d i m m e d i a t e l y . E n a b l e E S M I n f r a t o r e c e i v e a d d i t i o n a l f u t u r e s e c u r i t y u p d a t e s . S e e h t t p s : / / u b u n t u . c o m / e s m o r r u n : s u d o p r o s t a t u s N e w r e l e a s e ′ 20.04.6 L T S ′ a v a i l a b l e . R u n ′ d o − r e l e a s e − u p g r a d e ′ t o u p g r a d e t o i t . v a g r a n t @ u b u n t u − b i o n i c : vagrant ssh Welcome to Ubuntu 18.04.6 LTS (GNU/Linux 4.15.0-212-generic x86_64) * Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/advantage System information as of Fri Jul 28 03:22:18 UTC 2023 System load: 0.18 Processes: 101 Usage of /: 2.9% of 38.70GB Users logged in: 0 Memory usage: 13% IP address for enp0s3: 10.0.2.15 Swap usage: 0% Expanded Security Maintenance for Infrastructure is not enabled. 0 updates can be applied immediately. Enable ESM Infra to receive additional future security updates. See https://ubuntu.com/esm or run: sudo pro status New release '20.04.6 LTS' available. Run 'do-release-upgrade' to upgrade to it. vagrant@ubuntu-bionic:~ vagrantsshWelcometoUbuntu18.04.6LTS(GNU/Linux4.15.0212genericx8664)Documentation:https://help.ubuntu.comManagement:https://landscape.canonical.comSupport:https://ubuntu.com/advantageSysteminformationasofFriJul2803:22:18UTC2023Systemload:0.18Processes:101Usageof/:2.9Memoryusage:13Swapusage:0ExpandedSecurityMaintenanceforInfrastructureisnotenabled.0updatescanbeappliedimmediately.EnableESMInfratoreceiveadditionalfuturesecurityupdates.Seehttps://ubuntu.com/esmorrun:sudoprostatusNewrelease20.04.6LTSavailable.Rundoreleaseupgradetoupgradetoit.vagrant@ubuntubionic:  sudo lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 18.04.6 LTS
Release:	18.04
Codename:	bionic

停止虚机

执行下面的命令可以关闭虚机:

vagrant halt

直接在 VirtualBox 上关闭虚机,或者直接在虚机内部执行 poweroff​ 命令也都是可以的。

暂停虚机

执行下面的命令可以暂停虚机:

vagrant suspend

恢复虚机

执行下面的命令把暂停状态的虚机恢复运行:

vagrant resume

注意: 不管虚机是关闭还是暂停状态,甚至是 error 状态,都可以执行 vagrant up​ 来让虚机恢复运行。

重载虚机

执行下面的命令会重启虚机,并且重新加载 Vagrantfile​ 中的配置信息:

vagrant reload

删除虚机

最后,执行下面的命令可以彻底删除虚机,包括整个虚机文件:

vagrant destroy

注意: 在当前这个小例子中,上面所有的 vagrant​ 命令都需要在 Vagrantfile​ 所在的目录下执行。

三.虚拟机的一些常见配置

打开后端图形界面

相关文章:

Vagrant 虚拟机工具基本操作指南

Vagrant 虚拟机工具基本操作指南 ​#虚拟机 #​ ​#vargant#​ ​#ubuntu#​ ‍ 虚拟机virtualbox ,VMWare及WSL等大家都很了解了,那Vagrant是什么东西? 它是一组命令行工具,可以象Docker管理容器一样管理虚拟机,这样快速创…...

中年低端中产程序员从西安出发到海南三亚低成本吃喝万里行:西安-南宁-湛江-雷州-徐闻-博鳌-陵水-三亚-重庆-西安

文章大纲 旅途规划来回行程的确定南宁 - 北海 - 湛江轮渡成为了最终最大的不确定性!感谢神州租车气温与游玩地点总体花费 游玩过程出发时间:Day1-1月25日星期四,西安飞南宁路途中:Day2-1月26日星期五,南宁-湛江-住雷州…...

企业级Spring boot项目 配置清单

目录 一、服务基础配置 二、配置数据库数据源 三、配置缓存 四、配置日志 五、配置统一异常处理 六、配置swagger文档 七、配置用户登录模块 八、配置websocket 九、配置定时任务 十、配置文件服务器 十一、配置Nacos 十二、配置项目启动数据库默认初始化(liquibas…...

WordPress函数wptexturize的介绍及用法示例,字符串替换为HTML实体

在查看WordPress你好多莉插件时发现代码中使用了wptexturize()函数用来随机输出一句歌词,下面boke112百科就跟大家一起来学习一下WordPress函数wptexturize的介绍及用法示例。 WordPress函数wptexturize介绍 wptexturize( string $text, bool $reset false ): st…...

【Iceberg学习三】Reporting和Partitioning原理

Metrics Reporting Type of Reports 从 1.1.0 版本开始,Iceberg 支持 MetricsReporter 和 MetricsReport API。这两个 API 允许表达不同的度量报告,并支持一种可插拔的方式来报告这些报告。 ScanReport(扫描报告) 扫描报告&am…...

肯尼斯·里科《C和指针》第12章 使用结构和指针(1)链表

只恨当时学的时候没有读到这本书,,,,,, 12.1 链表 有些读者可能还不熟悉链表,这里对它作一简单介绍。链表(linked list)就一些包含数据的独立数据结构(通常称为节点)的集…...

Xray 工具笔记

Xray 官方文档 扫描单个url(非爬虫) 并输出文件(不同文件类型) .\xray.exe webscan --url 10.0.0.6:8080 --text-output result.txt --json-output result.json --html-output report.html默认启动所以内置插件 ,指定…...

Linux环境下配置HTTP代理服务器教程

大家好,我是你们可爱的Linux小助手!今天,我将带你们一起探索如何在Linux环境下配置一个HTTP代理服务器。请注意,这不是一次火箭科学的实验,而是一次简单而有趣的冒险。 首先,我们需要明确什么是HTTP代理服…...

JavaEE作业-实验三

目录 1 实验内容 2 实验要求 3 思路 4 核心代码 5 实验结果 1 实验内容 简单的线上图书交易系统的web层 2 实验要求 ①采用SpringMVC框架,采用REST风格 ②要求具有如下功能:商品分类、订单、购物车、库存 ③独立完成,编写实验报告 …...

K8S容器挂了后重启状态正常,但应用无法访问排查处理

K8S容器挂了后重启状态正常,但应用无法访问排查处理 背景: 应用迁移K8S后因POD OOM挂了后重启,集群上POD状态正常,但应用无法访问。 排查: 查看应用日志,是启动时调用特权账号管理系统超时,…...

问题:老年人心理健康维护与促进的原则为________、________、发展原则。 #媒体#知识分享

问题:老年人心理健康维护与促进的原则为________、________、发展原则。 参考答案如图所示...

【超高效!保护隐私的新方法】针对图像到图像(l2l)生成模型遗忘学习:超高效且不需要重新训练就能从生成模型中移除特定数据

针对图像到图像生成模型遗忘学习:超高效且不需要重新训练就能从生成模型中移除特定数据 提出背景如何在不重训练模型的情况下从I2I生成模型中移除特定数据? 超高效的机器遗忘方法子问题1: 如何在图像到图像(I2I)生成模型中进行高效…...

Transformer的PyTorch实现之若干问题探讨(二)

在《Transformer的PyTorch实现之若干问题探讨(一)》中探讨了Transformer的训练整体流程,本文进一步探讨Transformer训练过程中teacher forcing的实现原理。 1.Transformer中decoder的流程 在论文《Attention is all you need》中&#xff0…...

解释Python中的GIL(全局解释器锁)及其影响。描述Python中的垃圾回收机制。Python中的类变量和实例变量有什么区别

解释Python中的GIL(全局解释器锁)及其影响 Python中的GIL(全局解释器锁)是CPython解释器中的一个机制,用于同步线程的执行。GIL确保任何时候只有一个线程在执行Python字节码。这意味着,即使在多核或多处理器…...

Appium使用初体验之参数配置,简单能够运行起来

一、服务器配置 Appium Server配置与Appium Server GUI(可视化客户端)中的配置对应,尤其是二者如果不在同一台机器上,那么就需要配置Appium Server GUI所在机器的IP(Appium Server GUI的HOST也需要配置本机IP&#xf…...

Java:JDK8新特性(Stream流)、File类、递归 --黑马笔记

一、JDK8新特性(Stream流) 接下来我们学习一个全新的知识,叫做Stream流(也叫Stream API)。它是从JDK8以后才有的一个新特性,是专业用于对集合或者数组进行便捷操作的。有多方便呢?我们用一个案…...

【Unity ShaderGraph】| 物体靠近时局部溶解,根据坐标控制溶解的位置【文末送书】

前言 【Unity ShaderGraph】| 物体靠近时局部溶解,根据坐标控制溶解的位置一、效果展示二、根据坐标控制溶解的位置,物体靠近局部溶解三、应用实例👑评论区抽奖送书 前言 本文将使用ShaderGraph制作一个根据坐标控制溶解的位置,物…...

测试OpenSIPS3.4.3的lua模块

这几天测试OpenSIPS3.4.3的lua模块,记录如下: 有bug,但能用 但现实世界就是这样,总是不完美的,发现之后马上提了issue 下面这段代码运行报错: function func1(msg) xlog("ERR","…...

【机器学习】数据清洗之处理缺失点

🎈个人主页:甜美的江 🎉欢迎 👍点赞✍评论⭐收藏 🤗收录专栏:机器学习 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共同学习、交流进步…...

Linux 命令行的世界 :2.文件系统中跳转

我们需要学习的第一件事(除了打字之外)是如何在 Linux 文件系统中跳转。在这一章节中,我们将介绍以下命令:pwd 打印出当前工作目录名 cd 更改目录 ls 列出目录内容 Linux以分层目录结构来组织所有文件。这就意味着所有文件…...

R语言:箱线图绘制(添加平均值趋势线)

箱线图绘制 1. 写在前面2.箱线图绘制2.1 相关R包导入2.2 数据导入及格式转换2.3 ggplot绘图 1. 写在前面 今天有时间把之前使用过的一些代码和大家分享,其中箱线图绘制我认为是非常有用的一个部分。之前我是比较喜欢使用origin进行绘图,但是绘制的图不太…...

Open3D 模型切片

目录 一、算法原理1、算法过程2、主要函数二、代码实现三、结果展示1、原始数据2、切片结果本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫与GPT。 一、算法原理...

KtConnect 本地连接连接K8S工具

KT Connect简介 Kt Connect (Kubernetes Developer Tool)是一个阿里开源、轻量级的面向 Kubernetes 用户的开发测试环境治理辅助工具。其核心是通过建立本地到集群以及集群到本地的双向通道。 1.阿里开源,轻量级, 2. 安装快捷简单&#xf…...

【Java万花筒】数据的安全钥匙:Java的加密与保护方法

编码的盾牌:Java开发人员的安全性武器库 前言 在当今数字化时代,保护用户数据和信息的安全已成为开发人员的首要任务。无论是在Web应用程序开发还是安全测试中,加密和安全性都是至关重要的。本文将介绍六个Java库和工具,它们为开…...

【Java多线程案例】实现阻塞队列

1. 阻塞队列简介 1.1 阻塞队列概念 阻塞队列:是一种特殊的队列,具有队列"先进先出"的特性,同时相较于普通队列,阻塞队列是线程安全的,并且带有阻塞功能,表现形式如下: 当队列满时&…...

【制作100个unity游戏之24】unity制作一个3D动物AI生态系统游戏3(附项目源码)

最终效果 文章目录 最终效果系列目录前言随着地面法线旋转在地形上随机生成动物不同部位颜色不同最终效果源码完结系列目录 前言 欢迎来到【制作100个Unity游戏】系列!本系列将引导您一步步学习如何使用Unity开发各种类型的游戏。在这第24篇中,我们将探索如何用unity制作一…...

home work day5

第四章 堆与拷贝构造函数 一 、程序阅读题 1、给出下面程序输出结果。 #include <iostream.h> class example {int a; public: example(int b5){ab;} void print(){aa1;cout <<a<<"";} void print()const {cout<<a<<endl;} …...

c#安全-nativeAOT

文章目录 前记AOT测试反序列化Emit 前记 JIT\AOT JIT编译器&#xff08;Just-in-Time Complier&#xff09;,AOT编译器&#xff08;Ahead-of-Time Complier&#xff09;。 AOT测试 首先编译一段普通代码 using System; using System.Runtime.InteropServices; namespace co…...

【Java】案例:检测MySQL是否存在某数据库,没有则创建

1.代码 package hello; import java.sql.*;public class CeShi {//定义基本数据static final String JDBC_DRIVER "com.mysql.cj.jdbc.Driver";static final String DB_URL "jdbc:mysql://localhost/";static final String USER "your_username&q…...

内网渗透靶场02----Weblogic反序列化+域渗透

网络拓扑&#xff1a; 攻击机&#xff1a; Kali: 192.168.111.129 Win10: 192.168.111.128 靶场基本配置&#xff1a;web服务器双网卡机器&#xff1a; 192.168.111.80&#xff08;模拟外网&#xff09;10.10.10.80&#xff08;模拟内网&#xff09;域成员机器 WIN7PC192.168.…...

[嵌入式系统-9]:C语言程序调用汇编语言程序的三种方式

目录 1. 使用函数声明和函数调用&#xff1a; 2. 使用汇编内联&#xff08;Inline Assembly&#xff09;&#xff1a; 3. 使用汇编代码文件和链接器&#xff1a; C语言程序可以调用汇编程序的方式有多种&#xff0c;下面列举了几种常见的方式&#xff1a; 1. 使用函数声明和…...

备战蓝桥杯---搜索(完结篇)

再看一道不完全是搜索的题&#xff1a; 解法1&#xff1a;贪心并查集&#xff1a; 把冲突事件从大到小排&#xff0c;判断是否两个在同一集合&#xff0c;在的话就返回&#xff0c;不在的话就合并。 下面是AC代码&#xff1a; #include<bits/stdc.h> using namespace …...

深入浅出:Golang的Crypto/SHA256库实战指南

深入浅出&#xff1a;Golang的Crypto/SHA256库实战指南 介绍crypto/sha256库概览主要功能应用场景库结构和接口实例 基础使用教程字符串哈希化文件哈希化处理大型数据 进阶使用方法增量哈希计算使用Salt增强安全性多线程哈希计算 实际案例分析案例一&#xff1a;安全用户认证系…...

Unity_ShaderGraph节点问题

Unity_ShaderGraph节点问题 Unity版本&#xff1a;Unity2023.1.19 为什么在Unity2023.1.19的Shader Graph中找不见PBR Master节点&#xff1f; 以下这个PBR Maste从何而来&#xff1f;...

Java集合 Collection接口

这里写目录标题 集合Collection接口创建一个性表增加元素删除元素修改元素判断元素遍历集合实例判断元素是否存在 集合 Java中的Collection接口是集合类的一个顶级接口&#xff0c;它定义了一些基本的操作&#xff0c;如添加、删除、查找等。Collection接口主要有以下几个常用…...

C# Task的使用

C#中的Task类是.NET框架中用于实现异步编程的核心组件之一&#xff0c;它在.NET Framework 4及更高版本以及.NET Core中广泛使用。Task对象代表一个异步操作&#xff0c;并提供了跟踪异步操作状态、获取结果和处理完成通知的方法。 Task 类提供了对异步操作的封装&#xff0c;…...

尚硅谷Ajax笔记

一天拿下 介绍二级目录三级目录 b站链接 介绍 ajax优缺点 http node.js下载配置好环境 express框架 切换到项目文件夹&#xff0c;执行下面两条命令 有报错,退出用管理员身份打开 或者再命令提示符用管理员身份打开 npm init --yes npm i express请求 <script>//引…...

【MATLAB源码-第138期】基于matlab的D2D蜂窝通信仿真,对比启发式算法,最优化算法和随机算法的性能。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 D2D蜂窝通信介绍 D2D蜂窝通信允许在同一蜂窝网络覆盖区域内的终端设备直接相互通信&#xff0c;而无需数据经过基站或网络核心部分转发。这种通信模式具有几个显著优点&#xff1a;首先&#xff0c;它可以显著降低通信延迟&…...

AcWing 第 142 场周赛 B.最有价值字符串(AcWing 5468) (Java)

AcWing 第 142 场周赛 B.最有价值字符串(AcWing 5468) (Java) 比赛链接&#xff1a;AcWing 第 142 场周赛 x题传送门&#xff1a;B.最有价值字符串 题目&#xff1a;不展示 分析&#xff1a; 题目不难&#xff0c;不过有坑&#x1f62d;。 我们可以定义一个数组记录每个字…...

滑块识别验证

滑块识别 1. 获取图片 测试网站&#xff1a;https://www.geetest.com/adaptive-captcha-demo 2. 点击滑块拼图并开始验证 # 1.打开首页 driver.get(https://www.geetest.com/adaptive-captcha-demo)# 2.点击【滑动拼图验证】 tag WebDriverWait(driver, 30, 0.5).until(la…...

每日五道java面试题之java基础篇(四)

第一题. 访问修饰符 public、private、protected、以及不写&#xff08;默认&#xff09;时的区别&#xff1f; Java 中&#xff0c;可以使⽤访问控制符来保护对类、变量、⽅法和构造⽅法的访问。Java ⽀持 4 种不同的访问权限。 default (即默认&#xff0c;什么也不写&…...

我的docker随笔43:问答平台answer部署

本文介绍开源问答社区平台Answer的容器化部署。 起因 笔者一直想搭建一个类似stack overflower这样的平台&#xff0c;自使用了Typora&#xff0c;就正式全面用MarkdownTyporagit来积累自己的个人知识库&#xff0c;但没有做到web化&#xff0c;现在也还在探索更好的方法。 无…...

17、ELK

17、ELK helm 安装 elkfk&#xff08;kafka 集群外可访问&#xff09; ES/Kibana <— Logstash <— Kafka <— Filebeat 部署顺序&#xff1a; 1、elasticsearch 2、kibana 3、kafka 4、logstash 5、filebeat kubectl create ns elkhelm3部署elkfk 1、elast…...

React+Antd+tree实现树多选功能(选中项受控+支持模糊检索)

1、先上效果 树型控件&#xff0c;选中项形成一棵新的树&#xff0c;若父选中&#xff0c;子自动选中&#xff0c;子取消&#xff0c;父不取消&#xff0c;子选中&#xff0c;所有的父节点自动取消。同时支持模糊检索&#xff0c;会检索出所有包含该内容的关联节点。 2、环境准…...

鸿蒙 WiFi 扫描流程(2)

接着上篇没有记录完的&#xff0c;我们继续梳理&#xff0c;需要上一篇做基础的请看&#xff1a;鸿蒙 WiFi 扫描流程&#xff08;1&#xff09; 上一篇我们讲到 scan_service.cpp 里面的 SingleScan 方法&#xff0c;继续这个方法往下看&#xff1a; // foundation/communicat…...

微信小程序(四十)API的封装与调用

注释很详细&#xff0c;直接上代码 上一篇 新增内容&#xff1a; 1.在单独的js文件中写js接口 2.以注册为全局wx的方式调用接口 源码&#xff1a; utils/testAPI.js const testAPI{/*** * param {*} title */simpleToast(title提示){//可传参&#xff0c;默认为‘提示’wx.sho…...

WebSocket+Http实现功能加成

WebSocketHttp实现功能加成 前言 首先&#xff0c;WebSocket和HTTP是两种不同的协议&#xff0c;它们在设计和用途上有一些显著的区别。以下是它们的主要特点和区别&#xff1a; HTTP (HyperText Transfer Protocol): 请求-响应模型&#xff1a; HTTP 是基于请求-响应模型的协…...

go语言实现LRU缓存

go语言实现LRU Cache 题目描述详细代码 题目描述 设计和构建一个“最近最少使用”缓存&#xff0c;该缓存会删除最近最少使用的项目。缓存应该从键映射到值(允许你插入和检索特定键对应的值)&#xff0c;并在初始化时指定最大容量。当缓存被填满时&#xff0c;它应该删除最近最…...

git的奇特知识点

展示帮助信息 git help -gThe common Git guides are:attributes Defining attributes per pathcli Git command-line interface and conventionscore-tutorial A Git core tutorial for developerscvs-migration Git for CVS usersdiff…...

按键扫描16Hz-单片机通用模板

按键扫描16Hz-单片机通用模板 一、按键扫描的原理1、直接检测高低电平类型2、矩阵扫描类型3、ADC检测类型二、key.c的实现1、void keyScan(void) 按键扫描函数①void FHiKey(void) 按键按下功能②void FSameKey(void) 按键长按功能③void FLowKey(void) 按键释放功能三、key.h的…...