在Windows系统中愉快的运行Linux 系统

大家好,我是IT共享者,人称皮皮。

前言

曾经的小编一直都是使用Windows系统,但是当很多人都在我耳边说,用Linux吧,Windows不行;当时不由得怒火朝天,不是因为我在用Windows,而是别人这样说不就等于说用WIndows的男人不行吗?这谁忍得住,要知道,一个男人最忌讳的就是别人说它不行,不管男人女人都不能说,就好比不能说女生胖啊,丑啊啥的,毕竟咱们要学会尊重别人这样才会受到别人的尊重;当然,如果你是一个吊儿郎当的人的话,上面的话当我放屁。哈哈,言归正传,今天小编决定带大家玩一玩Linux系统,不过不是在虚拟机中装Linux系统,下面跟小编一起来看看吧。

一、系统自带

想必用过Windows 10的人都应该知道了,它里面就自带了Linux系统哦,无需你再去安装,是不是很方便,如图:

虽然小编没有Windows 10系统,但是这点小编还是知道的,别不信,信小编得永生。

二、虚拟机

这个我想大家应该都不陌生了吧,Virtual Machine,是非常有名的虚拟机软件,我们可以通过在虚拟机中安装操作系统,模拟一个真实的系统环境从而进行操作,虽然很方便,但是资源占用率太高,不在小编的考虑范畴内,故而果断放弃。

三、Cygwin

Cygwin是一款很实用的模拟Linux环境的软件,通过它我们可以直接在WIndow平台上模拟Linux环境。这里小编给大家准备了32位和64位的软件,下载地址:

https://u062.com/file/7715018-455128314

下面我们开始安装。

双击应用程序,开始安装,如图:

可以看到有三个选项,我们来对这三个选项进行解读,如下所示:

Install from Internet     直接从网络上下载并安装
Download Without Installing 只下载不安装
Install from Local Directory 从本地目录安装

这里小编选择第一项,选择好后就设置安装目录,如图:

依据自己喜好设置。然后我们设置组件包的位置,如图:

然后单击下一步,来到网络连接选项对话框,如下:

这里有三项选项,表示的意思分别是,使用系统代理设置,直接连接,使用HTTP/FTP代理。这里小编选择保持不动,点击下一步。然后会看到很多下载的站点地址,如图:

这里的URL很多,选择国内的镜像地址,下载会更加快速,如下:

然后我们尽可以下载了,下载后弹出一个对话框,如图:

可以下载你喜欢的软件,这里小编下载了Python,点击下一步,再次开始下载,如图:

下载速度可能不是特别理想,需要我们慢慢等待哦,心急吃不了热豆腐嘛。

如此安装完毕。打开Cygwin验证一下,如下:

显示了它的基本信息和当前状态。我们再来看看刚刚选择安装的Python是否已经安装上去了,如图:

可以看到Python的当前版本被成功打印出来了。接下来就可以愉快的使用Linux系统中 的命令了。

四、文末福利

你还在为各个主流编程语言的环境搭建而煞费苦心吗?有了这个神器后通通So easy,之所以说这个是因为小编曾经也有和大家相似的经历,编程五分钟,环境配置两小时,有时候甚至需要更长的时间,于是乎,小编现在决定跟大家分享一款神器,统领各大主流编程语言的Wingw,下载地址:

https://u062.com/file/7715018-455134532

打开压缩包,如下图:

我们点击MinGW-5.1.6.exe,即可开始安装MinGW。

选择第一项,下载并安装,Next,如图:

选择Current,也就是现在开始下载。

选择第一个和最后一个选项即可。然后设置安装位置一路Next即可安装成功。安装成功后我们去它的安装目录去启动它,如图:

好了,现在你只需要专心写代码,剩下的交给这些命令行工具就好了。

五、总结

很多玩Windows的小伙伴相信都和我一样,想要窥探Linux的美,现在一条捷径就摆在你眼前,抓紧行动吧,愿你们前程似锦。

有了它,全球网络摄像头一览无余

大家好,我是IT共享者,人称皮皮。

前言

相信大家对于以前的网络摄像头泄露,各大宾馆开房视频频繁泄露,一定不会陌生了吧,当时,小编也在想,这些黑客是如何办到的了,本期小编就来为大家进行解密,揭开这层神秘的面纱。

一、网站获取

1.ZoomEy

中文名叫钟馗之眼,是专门用来获取全球网络摄像头的网站解析库,界面很美而且简洁,如图:

我们可以通过输入关键词来搜索相关联网设备,如图:

然后选择一个结果并点击,如图:

2.Shodan

这个网站和钟馗之眼一样,也是可以使用关键词来检索到全球各个地方的网络摄像头的地址的,但是打开网络的速率会差点,如图:

而且你还得注册一下账号,不然使用有限制,注册账号后会给你提供一个API Key,你可以使用这个钥匙来进行程序开发,比如Python程序开发。我们来举个简单的例子来看看能获取到多少网络摄像头,如图:

我们选择第一项,点击红色带箭头的图标,如图

可以看到就出现了网络摄像头后台操作界面,只要你把用户名密码和端口都输入正确了,就可以查看此刻这款网络摄像头的实时录像了。

二、软件获取

如果你嫌网站比较麻烦的话,可以通过扫描IP来获取到一些网络摄像头的地址,原理也比较简单,就是通过Ping来返回结果的。可以自己定义IP段来进行扫描,而且一般网络摄像头都是81端口,如图:

然后我们将扫描到的该网段开放81端口的地址通通拷贝,然后放入文本文件中,再打开另一个软件对这些IP和端口进行解析,如图:

我们可以随便打开一个海康威视的连接,进入浏览器,如图:

便会打开海康威视的登陆界面,可以看出这是一个ASP界面,熟悉ASP的大佬对于用户名和密码的获取应该问题不大。

三、总结

小编在这里跟大家郑重声明,技术无罪,但是心术不正就有可能成为害人的工具,切勿盗取他人隐私,这里小编只是粗略讲解,大致过程不便透露。

网站打包成Apk的正确姿势

大家好,我是IT共享者,人称皮皮。

前言

安卓手机想必很多人都在使用,我们手机上安卓的每一款应用的后缀名都是以“.apk”结尾,那么这些Apk是如何做出来的了,就目前小编知道的来讲,有这以下几种:

1.使用三方软件转换生成,比如E4a,火山,蓝鸟,Iapp

2.使用原生的Android代码,如 Android studio

目前职业玩家是第二种,一般玩家大都聚集在第一种,不过今天我们要讲的可不是如何去制作一个应用,而是去偷个懒,将我们的网站变成一个Apk,看看可不可行,下面来试试看。

一、在线网站打包

现在就有很多的网站提供网站打包服务,听起来好像怪怪的,网站打包网站成apk,这是什么鬼,不慌,追随着小编的脚步慢慢的看下去,如图:

慢慢配置,不急不急,所有配置完毕后,就会进行打包,有免费三天试用期,选择试用期可免费打包,如下:

静静等待一会儿就已经打包完成了,如图:

试着安装然后运行,很完美,如图:

比较傻瓜式的操作,按照步骤一步步来就可以。

二、软件打包

1.准备工具

这里小编给大家准备了一个打包网站的应用,下载地址 :
https://u062.com/file/7715018-454568575。小编为了照顾大家的情绪,特意整了一个汉化版的,这可是费了好大劲才搞到的,网上的都是英文版。另外还有Java运行环境也在里面,需要大家自行安装,如图:

这里Java运行环境的安装配置我就不说了,网上大把教程。

2.配置Apk参数

打开我们的软件,如图:

这里小编已经设置好了所有的参数,接下来就是打包的等待过程了,如图:

可能要等待一会儿,不过速度和网站上打包应用时间比差了些,需要一点时间来进行编译和签名。等个差不多五分钟的样子就打包好了,如图:

三、总结

通过对应用的打包发布,我们可以轻松制作手机应用,比如游戏,只不过都是从网页上显示的。

手把手带你进行Golang环境配置

前言

大家好,我是星期八,是一个每天都要在镜子前给自己梳仅剩三根头发的三年码农

本次我们来安排一下如何在win平台上配置Go语言开发环境。

整体来说,Go配置环境还是挺轻松的,和Python差不多,并且会自动添加环境变量。

下载地址

Go官方镜像站点:

https://golang.google.cn/dl/

选择默认的最高版本就好,Go代码向下兼容版本之间的差异并无所谓

手把手带你进行Golang环境配置

安装

1、找到下载好的安装文件。

手把手带你进行Golang环境配置

2、双击进行安装

手把手带你进行Golang环境配置

3、选择同意

手把手带你进行Golang环境配置

4、自定义安装位置。

手把手带你进行Golang环境配置

5、点击install进行安装。

手把手带你进行Golang环境配置

6、安装进行中,等到安装完成。

手把手带你进行Golang环境配置

7、点击finish,安装完成。

手把手带你进行Golang环境配置

查看是否安装成功

上述安装过程没问题后,打开CMD窗口,输入go version命令,如图所示

手把手带你进行Golang环境配置

注:由于已经是1.11+版本,我们以后使用go mod进行管理依赖,不需要配置GOPATH等奇怪的东西。

配置GOPROXY(代理)

可能我们需要借用Go下载一些包什么的。

但是默认官网源,GOPROXY=https://proxy.golang.org,direct,在国内访问不到

输入go env查看Go配置

手把手带你进行Golang环境配置

需要修改成国内镜像站点,这里推荐:

https://goproxy.io

执行以下命令,进行修改

go env -w GOPROXY=https://goproxy.cn,direct

重新打开CMD,执行go env查看Go配置

手把手带你进行Golang环境配置

Go开发编辑器

Go现在的开发编辑器主要有VSCode,Goland两种。本次教程推荐的是Goland,和Pycharm同属一家公司。Goland的安装,破解,在此不做叙述。

为什么没选择VSCode

刚开始写Go时,其实我是用的也是VSCode,但是我在使用时发现,VSCode总是不自动提示,并且设置了自动保存也常常自动失效,经历了几次折腾之后,还是拥抱了专为Go开发的IDE,Goland!!!,真香。

结尾

我是码农星期八,本文到此就先告一段落咯,下篇正在筹备。如果你觉得文章还可以,记得点赞支持我们哈。感谢你的阅读~~

厉害了,Python也能操作注册表

前言

大家好,我是IT共享者,人称皮皮。

注册表这个东西大家可能都不是很熟悉,因为我们平时用到的少;但是它是Windows的核心,很多软件的启动和日志记录什么的都包含在里面,可以说它是一个大型的数据库也不为过,今天我们就来看看Python是如何操作注册表的吧。

一、注册表初次见面

进入系统注册表的方法多种多样,最常见的就是运行窗口输入命令“regedit”,即可进入注册表:

注册表中的几个菜单分别对应机器的根目录登陆的用户信息和本地机器信息以及用户信息和本地配置信息等。

二、认识操作注册表的模块

在Python中就有这么一个神奇的模块,它可以用来操作注册表。它就是—–“winreg”,一个Python自带的操作注册表的模块。

三、导入

import winreg

1.常量

”winreg“总有很多有用的方法,基本上就是操作注册表中的键值,我们挑几个重要的来说说。首先我们来了解下”winreg“中的各个常量:

1).HKEY_ 常量

winreg.HKEY_CLASSES_ROOT     #存储应用和shell的信息
winreg.HKEY_CURRENT_USER     #当前用户自定义的信息
winreg.HKEY_LOCAL_MACHINE    #计算机系统所有的信息
winreg.HKEY_USERS            #所有用户信息
winreg.HKEY_PERFORMANCE_DATA #性能数据
winreg.HKEY_CURRENT_CONFIG   #本地计算机系统的硬件配置文件
winreg.HKEY_DYN_DATA         #windows98后的版本无法使用

2).访问权限

winreg.KEY_ALL_ACCESS           #所有权限
winreg.KEY_WRITE                #可写
winreg.KEY_READ                 #可读
winreg.KEY_EXECUTE              #可执行相当于KEY_READ
winreg.KEY_QUERY_VALUE          #查询注册表键值
winreg.KEY_SET_VALUE            #创建、删除或设置一组注册表值
winreg.KEY_CREATE_SUB_KEY       #创建一个注册表子项的注册表键
winreg.KEY_ENUMERATE_SUB_KEYS   #枚举注册表子项所需的注册表键
winreg.KEY_NOTIFY               #修改注册表键时的提示
winreg.KEY_CREATE_LINK          #创建一个链接,预留给系统用

3).64位的具体应用

winreg.KEY_WOW64_64KEY  #在64位Windows应用程序应该运行在64位注册表视图
winreg.KEY_WOW64_32KEY  #在64位Windows应用程序应该运行在32位注册表视图

4).值类型

winreg.REG_BINARY                  #任何形式的二进制数据
winreg.REG_DWORD                   #32位的数
winreg.REG_DWORD_LITTLE_ENDIAN     #32位的数字在低位优先的格式,相当于REG_DWORD
winreg.REG_DWORD_BIG_ENDIAN        #32位的数字在高位优先的格式
winreg.REG_EXPAND_SZ               #以null结尾的字符串包含环境变量的引用(% %)
winreg.REG_LINK                    #Unicode符号链接
winreg.REG_MULTI_SZ                #一个以null结尾的字符串序列,由两个空字符结束
winreg.REG_NONE                    #没有定义的值类型
winreg.REG_QWORD                   #64位的数
winreg.REG_QWORD_LITTLE_ENDIAN         #在低位优先一个64位的数字格式,相当于REG_QWORD
winreg.REG_RESOURCE_LIST               #设备驱动器资源列表
winreg.REG_FULL_RESOURCE_DESCRIPTOR    #硬件设置
winreg.REG_RESOURCE_REQUIREMENTS_LIST  #硬件资源列表
winreg.REG_SZ                          #一个以null结尾的字符串

四、注册表相关操作

1.连接远程计算机注册表

reg=winreg.ConnectRegistry('\\计算机名',winreg.HKEY_LOCAL_MACHINE)#返回值是所开打键的句柄
#第一个参数是指远程计算机名,第二个参数是指注册表中的键,如HKEY_LOCAL_MACHINE,它是winreg中的常量。

不过我们在这里要注意的是,如果远程注册表没有系统管理员权限,是无法正常访问注册表的。所以我们先要判断下它的访问权限。这里就要用到我们之前讲的”ctypes”模块中的判断用户是否是管理员用户的方法了。

import ctypes
import sys
def admin():
    aa=ctypes.windll.shell32.IsUserAnAdmin()
    return aa


if admin()==1: #有管理员权限可打开远程注册表
    winreg.ConnectRegistry('\\计算机名',winreg.HKEY_LOCAL_MACHINE)
else:
    if sys.version_info[0]==3: #python版本是3以上的版本
        ctypes.windll.shell32.ShellExecuteW(None, "runas", sys.executable, __file__, None, 1)
    else: #python2 版本
        ctypes.windll.shell32.ShellExecuteW(None, u"runas", unicode(sys.executable), unicode(__file__), None, 1)

2.关闭连接注册表

连接之后我们不想用了,就要随手把它给关闭了,也很简单,只要拿到打开注册表的句柄,就可以关闭了。

winreg.CloseKey(reg)

可以看到句柄的值不一样。

其实还有一种方法,就是利用注册处理对象的方法来关闭。

reg.Close()

注册对象还支持上下文和分离处理对象周期:

reg.detach() #返回一个整数,记录当前对象的生命周期,如果关闭注册句柄对象,那么则为0

3.打开注册表键

#打开指定的键,返回一个处理对象
winreg.OpenKey(key, sub_key, reserved=0, access=winreg.KEY_READ)
winreg.OpenKeyEx(key, sub_key, reserved=0, access=winreg.KEY_READ)
#key:HKEY_ 常量
#sub_key:指定键的子键
#reserved:一个保留的证书,必须是零。默认值为零
#access:访问权限

4.创建新的注册表键

winreg.CreateKey(key,sub_key)
winreg.CreateKeyEx(key,sub_key,reserved=0,access=winreg.KEY_WRITE)
#key:HKEY_ 常量
#sub_key:指定键的子键
#reserved:一个保留的证书,必须是零。默认值为零
#access:访问权限

5.删除注册表中指定的键

winreg.DeleteKey( key,sub_key) #不能删除带有子项的键
winreg.DeleteKeyEx(key,sub_key,reserved=0,access=winreg.KEY_WOW64_64KEY)#不能删除带有子项的键
winreg.DeleteValue(key, value)#从某个注册键中删除一个命名值项
#用法与上面相同,只是结果是删除罢了

可以看到”cnm“已经被删除了。如果键不存在,删除会报错。

6.枚举注册表键

winreg.EnumKey(key,index) #枚举打开的注册表键的子键,并返回一个字符串
winreg.EnumValue(key,index)#枚举打开的注册表键值,并返回一个元组
#index:一个整数,用于标识所获取键的索引

7.刷新注册表键

winreg.FlushKey(key)  #同步某个键的所有属性写入注册表

8.读取注册表

winreg.LoadKey(key,sub_key,file_name)
#file_name:读取注册表的数据的文件名

9.查找注册表键

winreg.QueryInfoKey(key) #返回一个3元素元组的键的信息
winreg.QueryValue(key,sub_key) #用一个字符串来检索一个键的值
winreg.QueryValueEx(key,value_name) #检索与开放权限的注册表键相关联的指定值的数据类型和名称

10.保存注册表键

winreg.SaveKey(key, file_name) #保存指定的键和所有指定文件的注册表子项

11.启用禁用注册表

winreg.DisableReflectionKey(key) #禁用
winreg.EnableReflectionKey(key)  #启用

12.反射状态是否禁用

winreg.QueryReflectionKey(key) #结果为True 则表示禁用

13.在指定键上关联值

winreg.SetValue(key, sub_key, type, value) #添加键和值
winreg.SetValueEx(key,value_name,reserved,type,value)#将数据存储在一个开放的注册表键值字段
#value_name:该字符串名称的注册表子键
#type:值类型
#value:子键的键值

可以看出它们的区别,而且前者值类型只能指定为“winreg.REG_SZ”,而后者什么类型都可以。

14.寻找应用程序的位置并打开

前面我们介绍了”winreg”几乎所有的方法,现在我们就来具体做一个应用练练手,就拿我们的360安全卫士为例,我们尝试着通过注册表先找到它的位置然后打开它。那么接下来小编开始表演了:

1).定位360安全卫士的注册表项:

1)).打开系统注册表编辑器,然后进行搜索关键字:

2)).定位到注册表路径

2).打开注册表键

通过我们找到的子键然后对其进行查找操作,得到处理对象的句柄“reg”

reg=winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE,r"SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\360安全卫士")

3).找到应用的绝对路径并打印

通过数值名称找到数值数据,

path=winreg.QueryValueEx(reg,'DisplayIcon')

这样就找到了这个应用的绝对路径了,返回值是一个元祖,我们使用索引访问:

path[0]

可以看到我们已经成功打印出了我们要找的应用程序的绝对路径了,接下来就可以愉快的打开它了。打开的方法多种多样,什么“os”,“subprocess”,”ctypes”,”pywin32″,一大堆的方法,不过小编还是觉得“os”最方便。

os.popen(path[0])

最后别忘了关闭对象处理句柄哦。

#两种方法都可以关闭
winreg.CloseKey(reg)
reg.Close()

四、总结

利用”winreg“可以完成很多骚操作,你也可以通过注册表设置系统开机启动项以及其它操作,如果你想往黑客方面发展的话。

Windows环境下轻松搭建NodeJs服务器

大家好,我是皮皮,今天给大家分享一些好玩的~

前言

Nodejs是GoogleV8引擎的一个JavaScript脚本语言,实际上也就是相当于服务器一样,可以解析网页内容并产生效果。它的出现令JavaScript如虎添翼,而且Node比JavaScript执行更为快速,并且支持分布式,因为它使用了事件驱动型的非阻塞式的模型。说太多反而没意思,不如我们自己搭建一个。

一、下载Nodejs

由于小编是Win7的系统,新版Nodejs不支持,不知道为什么?倒是对Win8很友好。于是小编在清华镜像下载了下来,分享给大家。这里有两个版本,一个是安装包版本(后缀是.msi)无需配置环境变量;另一个是压缩包,直接解压然后配置环境变量即可。这里小编建议大家下载安装包,考虑到有些人不懂的怎么设置环境变量,还是安装包好点,小编偷个懒也下安装包。

二、安装Nodejs

首先我们需要同意它的用户协议,然后选择安装路径,没有硬性规定非得放在系统盘,那么就请放在其它盘,如下:

Windows环境下轻松搭建NodeJs服务器

然后点击下一步,会看到环境设置和安装依赖项,不用管,Next继续,如下:

Windows环境下轻松搭建NodeJs服务器

然后我们会看到有一个选项,如图:

Windows环境下轻松搭建NodeJs服务器

这个是让我们是否选择这个工具,选择了它就会下载,建议选上,然后等待片刻,安装立马就好了,如图:

Windows环境下轻松搭建NodeJs服务器

这个时候会出现一个CMD窗口,提示我们要下载工具了,并且需要关掉所有的窗口,如图:

Windows环境下轻松搭建NodeJs服务器

按回车后,完成闪退,进入CMD,输入命令获取Node版本号,若返回则说明安装成功,如下:

Windows环境下轻松搭建NodeJs服务器

三、新建项目

首先创建一个文件夹,名字不要使用中文和大写字母,然后我们在该目录下打开命令提示符,并输入命令“npm init”,如下:

Windows环境下轻松搭建NodeJs服务器

这里我们一步步按回车,最后输入Yes,即可创建一个Node的项目了。上面给出的都是项目的配置。打开文件夹去看看,如图:

Windows环境下轻松搭建NodeJs服务器

会创建一个Json格式的文件。然后我们需要给这个项目建立一个静态的资源库,一般放置图片,HTML什么的,取名为Static好了,然后放一个HTML文件进去,取名“index.html”,至于内容随便写;然后我们需要在Json文件目录建立一个Json文件,用作启动服务器使用,先随便写一个,如图:

Windows环境下轻松搭建NodeJs服务器

然后我们访问它,这个时候这个Js 文件就是服务端的程序,访问就会出结果,如图:

Windows环境下轻松搭建NodeJs服务器

四、建立一个可以在浏览器中访问的服务器

上面我们所建立的只能在Node中访问,浏览器中不行,下面建立个浏览器中能访问的,这样才叫服务器吗?我们先创建一个服务器的Js文件,内容如下:

var http = require('http');
var server = http.createServer(function (req,res) 
{
res.writeHead(200, {'Content-Type': 'text/plain'}); 
res.end('Hello World\n');
});
server.listen(8080,'127.0.0.1');


console.log('Server running on http://127.0.0.1:8080/');

然后我们在CMD中启动服务,如下所示:

Windows环境下轻松搭建NodeJs服务器

Windows环境下轻松搭建NodeJs服务器

成功。

五、总结

看完Nodejs搭建服务器是不是觉得很简单了,不着急,更精彩的还在后面等着你,这才只是个开端而已。

手机自动化测试IDE —– Airtest的安装和IDE控件详解

大家好,我是IT共享者,人称皮皮。这篇文章主要给大家分享手机自动化测试IDE —– Airtest的安装和IDE控件详解相关知识,一起来看看吧。

前言

前面小编带大家讲解了一些用来做自动化的模块,但是如果是在手机上做自动化了,我们还能搞定吗?也许有人觉得抓手机的数据包都费劲,还搞什么自动化,而且肯定不简单。但我要告诉你的是,这一切都被一个叫Airtest的自动化测试软件给搞定了,你只需要把它一直运行着,你的手机上的所有操作,就都交给它了,直接就是点点点。

一、安装IDE

这里需要下载我们的Airtest,下载地址:

https://u062.com/file/7715018-451404671

下载好后我们需要安装它,然后第一次打开需要注册一个账号,必须是网易的账号,因为这个IDE就是网易开发的,所以需要登录网易的邮箱号才可以使用,安装成功后,如图所示:

二、IDE控件详解

1.Airtest辅助窗口

这里主要陈列着Airtest的所有功能函数以及Poco的功能函数,Poco是比Airtest识别率更友好的控件。如图:

touch:触屏操作


wait:等待操作


swipe:滑动操作


exists:检查屏幕上是否存在指定目标


test:在目标程序上输入文本


keyevent:按键操作


snapshot:截图操作


sleep:睡眠定时


assert_exists:存在断言的目标


assert_not_exists:不存在断言的目标


assert_equal:断言两个值是否相等


assert_not_equal:断言两个值是否不相等

2.Poco辅助窗口

Poco主要用来做游戏辅助测试,比如自动点击的外挂等等。

这里不再详细描述,因为我们用的最多的就是Airtest。

3.脚本编辑窗口

这个窗口是用来构建并运行我们的程序,同时还支持自动生成代码。

4.Log查看窗

这个窗口是将我们每一步操作生成的日志打印在这个窗口供我们查看的,可以通过查看日志了解到程序报错的原因以及当前操作所产生的结果。

5.移动设备连接

我们可以看到IDE上显示有移动设备连接,Serial NO.代表搜索到的设备名,State代表设备状态,有三种:offine(设备未连接或者无响应),Device(设备已连接),No Device(没有设备)。刷新ADB自然是重置当前设备列表,重启ADB自然是断开所有连接并重置列表。

6.远程设备连接

这里可以连接到本地模拟器上的设备,也可以连接到远程设备,只要你有可供连接的设备。

7.Windows窗口连接

用来选择当前系统桌面应用程序的并把它们的当前行为记录下来,也可用来做自动化。

8.连接IOS设备

这个就不说,给苹果手机准备的。

9.安卓助手

这个功能挺不错的,可以很方便查看设备的方法,以及可以进行一些简单的操作,如下所示:

三、总结

这篇文章主要给大家介绍了自动化测试IDE —– Airtest的安装和IDE控件基础知识,下一篇文章小编将带大家来实际应用Airtest连接手机,给大家分享一些好玩的。

干货|Sqlite数据库知识必知必会(下篇)

大家好,我是IT共享者,人称皮皮。

前面几天给大家分享了MySQL数据库知识,没来得及看的小伙伴可以前往:Mysql查询语句进阶知识集锦,一篇文章教会你进行Mysql数据库和数据表的基本操作,关于数据库的安装可以参考:手把手教你进行Mysql5.x版本的安装及解决安装过程中的bug。

上篇文章主要给大家介绍了Sqlite数据库的安装、图形化管理系统、基本数据类型、基本关键字和数据库的相关操作,干货|Sqlite数据库知识必知必会(上篇),今天皮皮紧接上篇文章,继续给大家分享数据库知识,一起来看看吧。

前言

前面我们学习了很多数据库,虽然它们功能非常丰富,但是占用空间比较大,使得我们的系统负荷变大,这对于我们新手小白来说不是一个理想的选择,于是乎,Sqlite闪亮登场,它受人喜爱的真正原因正是因为它足够小,无需安装和管理配置,简单容易上手,支持数据库的大小也有2TB,足够我们个人开发爱好者使用了。

一、数据表相关操作

1).创建数据表

CREATE TABLE student (
ID INTEGER DEFAULT '1406061' PRIMARY KEY AUTOINCREMENT NOT NULL,
NAME NVARCHAR(100)  UNIQUE NOT NULL,
score INTEGER  NOT NULL,
time TIMESTAMP  NOT NULL
);

我们可以使用SqliteAdmin快速生成表,如下:

干货|Sqlite数据库知识必知必会(下篇)

干货|Sqlite数据库知识必知必会(下篇)

这样我们的表就建立成功了。这里小编在软件中用的是DEMO这个数据文件,而在命令窗口中用的是TEST这个数据库文件,因为一个数据库文件不允许在两个位置打开的缘故。

2).删除表

DROP TABLE people;

3).显示表名

.tables
干货|Sqlite数据库知识必知必会(下篇)

4).数据表的增删改查

1)).增加

这里我们可以给刚创建的表添加一个数据,如下:

insert into student(ID,NAME,score,time) values(1406063,'任性的90后boy',90,'2020-07-06 12:23:32');
干货|Sqlite数据库知识必知必会(下篇)

这里我插入了三行数据,其中有一行报错是因为我使用了相同的ID号,而我的数据库的ID号是不允许重复的,故而会报错,改成其它的就好了,如果你把ID设为自增的话,就不需要你去写了,这里我用到了自增,所以大家不必写Sqlite会自动填充进去的。这里也可以省掉字段名,直接写值,如下:

干货|Sqlite数据库知识必知必会(下篇)

我们还可以给表添加新列,如下;

alter table people add  column aa char(10);#添加列并且列名为aa

注:Sqlite3并不支持带有UNIQUE约束的列

2)).删除

delete from people;#删除表数据
delete from people where score<20#删除people数据表score数值小于20的记录

3)).修改

其实就是更新操作,如下;

update people set score=100 where  age=46;#当age=46时score设置为100

4)).查找

查找不管是在哪个数据库中方法都是相当多的,因为查询操作是最常见也是最频繁的,下面我们就来详细说说:

1))).查询所有的结果

select * from student;
干货|Sqlite数据库知识必知必会(下篇)

我们可以看到虽然结果打印出了,但是并不是那么美观,我们将它的打印格式化一下,如下;

干货|Sqlite数据库知识必知必会(下篇)

这下就完美多了。虽然这种方法很不错,但是如果数据列很多的话就无法完全显示了,这个时候我们就需要设置列的宽度,如下:

.width 10 20 15

2))).查询指定结果

select NAME,score from student; #打印出NAME和score列的结果
select * from people where score<20 and age<40;#当score小于20并且age小于40的时候
select *from people where score between 10 and 30;#当score为10~30之间时
select *from people where NAME LIKE '放大%';#当name的开始处含有放大
select *from people where NAME glob '放大*';#与上同
select *from where score not in(12,23);#当score不属于12~23

3))).查找排序

select * from people order by score desc; #对score降序排序

4))).查找指定数量的数据

select * from people  limit 3 offset 2#偏移2个单位然后输出三行数据,其实就是输出后三行数据

5))).查找重复数据并消除

select distinct * from people where score>10;#当score大于10的时候消除重复数据

6))).查找数据并进行分组

select NAME ,max(age) from people where score>10 group by age#返回score大于10的时候age的最大值

7))).查找数据进行分组并过滤分组

select NAME ,max(age) from people where score>10 group by age having count(NAME)>1;#名称计数大于1

5).表的重命名

alter table people rename to man;#将表名people改为man
干货|Sqlite数据库知识必知必会(下篇)

6).数据表的连接

这里的连接分为内外交叉三种连接,使用好了可以极大提高我们的工作效率。这里我们再次创建一张表,如下:

干货|Sqlite数据库知识必知必会(下篇)

1)).交叉连接

select * from people cross join woman;
干货|Sqlite数据库知识必知必会(下篇)

2)).内连接

select * from people inner join woman;

3)).外连接

select * from people outer join woman;

注:Sqlite3只支持左外连接。

7).表的复制

create table man as select * from people where 1=0;#复制表结构
create table woman as select * from people;#复制表结构和数据

8).临时表

有时候我们不需要存储所有表的数据,这个时候临时表就很有使用的必要了。如下:

#创建一个临时表
create  temporary table temp_table(
    id int primary key,
    name varchar(50) unique not null,
    age int not null
);


#查看临时表
temp.temp_table


#删除临时表
drop table temp.temp_table;

5.索引操作

1).创建索引

create index user on people(score);#在people表的score字段上设置索引
create unique name on people(NAME);#在people表的score字段上设置唯一索引
create index pa on people(score,age)#在people表的score和age字段上设置索引

2).查看索引

SELECT * FROM sqlite_master WHERE type = 'index';
干货|Sqlite数据库知识必知必会(下篇)

这里我们之前仅仅只是创建了一个索引,那就是”user“,为何会有两个索引了,而且最上面的索引好像跟我们并没有什么关系,也不像是自己创建的,其实,这个就是隐式索引,这个隐式索引在我们创建表的时候就连带着一起创建了的,只是为了让查询更加快速而已,影响不大。

3).使用索引

这里涉及到两个关键字请配套使用,表示索引来自于哪里的意思。

select * from people indexed by user where score>10;

4).删除索引

drop index user;

注:数据量较小不应使用索引,以免给系统增压。

6.视图操作

1).创建视图

create view name as select NAME from people;#创建NAME字段的视图

2).使用视图

select *from name;
干货|Sqlite数据库知识必知必会(下篇)

这样就可以直接输出视图字段的所有值了。

3).删除视图

drop view name;

7.触发器

触发器就是使得多个表的交互增强,互相调用,满足条件就调用哪个表,语法格式如下:

create trigger 触发器 after(before) insert(delete update)
on1
begin
insert into2(表2字段,表2字段,n) VALUES(表1值, 表1值,,,,n);
END;

1).创建触发器

#给people表创建一个触发器
create trigger cf
after insert on people
begin
insert into woman(w_ID,NAME,SCORE,date) values(new.ID,'向前插入',100,datetime('now'));
end;

2).查看触发器

select * from sqlite_master where type = 'trigger'AND tbl_name='people';#查看people表的触发器

3).删除触发器

drop trigger cf;

8.事务

有了事务可以让我们的Sqlite语句工作的更加有条不紊,一般大致分为事务开始 提交 回滚 结束,下面来看看:

begin;#开始
insert into people('gf',65,datetime('now'));
rollback; #回滚就是撤销
COMMIT;提交保存数据
end;#结束

这里的数据没有插入到“people”表中哦,是不是超级简单了?

二、总结

这篇文章主要介绍了Sqlite数据库的数据表、索引、视图、触发器和事务操作知识,干货满满。

皮皮自从学过Sqlite之后,就果断卸载了Mysql和Mongo了,主要是目前还用不着Mysql数据库和Mongo那么强大的数据,够用就好。

我是皮皮,如果觉得文章不错,记得三连噢,大家有问题也可以点击下方的图片,加我好友,交个朋友也好呀~

盘点4大下载神器,教你分分钟搞定文件下载

大家好,我是IT共享者,人称皮皮。

前几天给大家分享了一篇关于百度网盘的下载神器文章,安利一款神奇——教你轻松下载百度网盘超大文件,有读者反馈这个下载神奇下载小文件得心应手,但是下载大文件还是有些小吃力的,于是乎,皮皮给大家继续找了几个插件,一起跟着皮皮来盘点一下吧~

一、前言

平时我们在访问一些国外网站的时候难免会出现访问延迟甚至是下载到一半就无法下载的尴尬,比如我用360浏览器下载docker,如图:

看到这感人的速度,不禁让我流下了悔恨的泪水,如果当初我能知道几个下载神器中的一种,我也不会那么焦急地等待着。好在现在小编接触的软件比以前的多了,所以现在下载很多工具也就效率高了不少,下面小编就把自己曾经用过的觉得非常棒棒哒的下载工具分享给大家吧,记得点赞关注加收藏哦。

二、IDM

全称Internet Download Manager,是一个非常强大的软件,官方说可将下载速度提升至最多五倍,原先不信,自从用过之后我信了,而且觉得有过之而无不及。IDM不仅下载速度快而且支持断点续传,而且还支持代理服务器,ftp和http协议,防火墙,重定向,cookie,授权,音频和视频内容处理。我们下载后只需按照要求来安装它即可,IDM支持指定位置安装,下面我们来看看它长啥样吧,如图:

下面我们来使用它下载docker看看效果如何,如图:

我们从上面使用360浏览器下载的速度和这里使用IDM的速度一对比,差距可以说是再明显不过了,这也可以说明IDM的下载速度不是一般的快。不过这个软件有个致命伤,那就是有使用的时间限制,如果你用超过15天的话,你就会被它颁奖,授予你一个需要序列号才能使用的奖状,如图:

此时若是遇到这种情况莫要惊慌,小编已经给大家在网上找到了一个破解版的,也是相当好用,地址:

https://u062.com/f/7715018-484413622-ddb3ad(访问密码:123321)

下载下来后直接解压点击绿色安装然后点击IDM.exe就可以直接用了,如图:

这样就再也不用担心下载付费的问题了。另外,IDM也支持指定站点抓取,什么意思呢?就是它可以将目标网址中的一些图片视频以及其它文件抓取下来,你想抓取什么类型的文件都可以,如图:

可以说功能也是有够强大了。

三、XDM

全称Xtreme Download Manager,同样是一款牛逼的下载工具,具有和IDM 相同的功能,它可以保存和转换来自YouTube,Vimeo,Dailymotion,Google Video和成千上万个其它网站的流式视频并支持断点续传,支持HTTP,HTTPS,FTP,DASH,HLS,HDS协议,防火墙,代理服务器,PAC脚本,文件重定向,Cookie,授权,下载队列,调度程序等,并且它内置了视频转换器。说得这么牛逼我们来下载个试试看,地址:

https://u062.com/f/7715018-484413629-55a3ab(访问密码:6511)

这里小编分享的是一个msi的安装包,点击后无需安装直接就能安装好,第一次启动会显示英文界面,如图:

这里下面提示我们软件有更新,我们不用管它,下面我们把这个英文界面切换到中文界面,如图:

这样就可以直接汉化成功了,然后我们来添加一个下载任务,如图:

从这个速度可以看到,感觉比IDM还要快,简直就是视频下载必杀器一般的存在啊。

四、PDM

全称Persepolis Download Manager,也是一款十分强大的下载工具,这里小编提供有32位和64位两个版本,下载地址:

https://u062.com/f/7715018-484413736-d1c621(访问密码:6511)

PDM是一款基于aria2的图形化工具,它的速度也很快,并且资源占用少,支持 HTTP / FTP / BT / Magnet 磁力链接等类型的文件下载;并且跨平台支持 Win、Mac、Linux,甚至在树莓派、NAS、路由器等设备上都能安装它。唯一的遗憾就是不支持HTTPS。PDM打开时为英文界面,不过我们可以把它改为中文界面,如图:

下面我们用它来下载下docker试试,如图:

可以看到,下载速度和上面的工具比起来要更快一些。

五、XDown

一款专业的文件下载与分享工具,支持浏览器(Chrome/FireFox/Edge )下载,torrent下载文件与做种,BitTorrent 内置tracker list设置,FTP/HTTP/HTTPS/HTTP2协议下载,断点续传,多IP轮询节点下载,磁力链接,全局限速,也是相当牛逼的一个工具,地址:

https://u062.com/f/7715018-484416754-72bcab(访问密码:6511)

下面来看下它是如何下载的吧,如下:

我们可以看到,速度比较慢,不过比360浏览器还是稍微快一点,可以说是这几款工具中表现最差的了,不过它也有它的过人之处,就是用它来下载种子文件还是很方便的,这点是其它几个工具比不了的。

六、总结

以上就是小编经常使用的几款下载工具了,不知道你用过哪几款呢?赶快都来试试吧。

安利一款神奇——教你轻松下载百度网盘超大文件

前言

玩过百度网盘的都应该清楚它的强大,小编就是靠着百度网盘那强大的功能以及变态的存储空间才获得许多具有纪念价值的东西,比如某些Hacker资料,你懂的。

但是小编一直以来都有一个心结未解开,那就是为毛每次使用百度网盘下载文件的时候就非得下载百度网盘客户端才可以了,估计先不说浪费时间和占用电脑资源,至少小编也是不乐意这样做的,毕竟小编电脑可是只有60个G的存储空间了。

那么,我们该怎么样处理这个问题呢?简而言之就是如何在不下载客户端的情况下就可以下载这个大型的文件了,一起往下看看。

一、坑爹的下载制度

先来回顾下这个坑爹的画面:

看到这里小编尴尬癌都犯了,本想下载个黑客工具玩玩,过过瘾,奈何是这个样子,正巧不巧的自己的电脑又出了点意外,无法安装百度云客户端,目前还无法找出根本原因;但是小编是那么轻易认输的人吗?当然不是,于是乎,小编便找到了这么个神器,浏览器的一个脚本—-一般圈内人都叫它们油猴。

二、油猴脚本

油猴(Tampermonkey),这哥们我相信只要是玩过Google浏览器的同志都不会太陌生,它有着丰富的脚本资源,因而可以满足我们平时的网络需求,但是请注意,油猴脚本只能作用在Chromeium内核的浏览器上哦,小编所使用的360浏览器就是其中之一,其它的像什么QQ浏览器,UC浏览器等都是,随意选择一种即可;IE浏览器不是哦。

三、安装脚本

这里我们以360浏览器为主进行讲解,首先需要进入扩展管理界面,要想进入就得先点击管理图标,如下:

就是这个田子型的图标,点击它即可进入,然后我们点击加号按钮就可以进入扩展管理界面,如下:

这里我们在红色箭头处输入:‘tampermonkey’“,然后点击安装即可。安装成功是这个样子的,如图:

四、选择脚本库

虽然我们已经安装了油猴脚本,但是并不表示现在就可以随心所欲下载资源,进行各种骚操作了,我们还需要下载另一个脚本资源。不过在下载脚本资源之前,我们需要在某个库中查找,因为这些脚本资源目前都集中在库中,目前来说最出名的就是”GreasyFork “和”OpenUserJS “。小编选择的是”GreasyFork “,不因为别的,只是觉得这个网站的布局风格我很喜欢,于是果断选择了它,如图:

五、安装附加脚本

既然我们已经找到最合适的库了,那么接下来就是安装附加的脚本了,这里我们需要下载一个脚本,名为”网盘助手“,选择最新版本的网盘助手,如图:

点击进去,然后进行下载,如图:

这里我们可以在油猴的界面去查看当前下载的脚本的状态,如图:

可以看到,这里小编下载了两个脚本。

六、下载文件它就是解除

接下来就是最重要的时刻,做了那么多还不就是为下载文件做铺垫吗?那么我们该怎么做了?首先小编要说明的一点就是,你必须先把这个要下载的文件保存到百度网盘中才可以 ,那么废话不多说,保存我想大家都会,那就看网盘里有啥资源吧,我们随便选择一个资源,如图:

可以看到,选择了之后就会出现一些其它的选项,我们选择生成链接,然后会出现一个链接,如图:

我们点击这个链接,如图:

这样就弹出了下载链接了,我们选择好下载路径后直接点击下载,如图:

静静等待下载,一切大功告成。

七、总结

其实,像这样的神器在油猴中还有许多,这只是其中的一个而已,油猴上有很多优秀的脚本,好用到哭。