netstat查看端口状态
netstat netstat -tunlp 用于显示 tcp,udp 的端口和进程等相关情况。 netstat 查看端口占用语法格式:
1 |
netstat -tunlp | grep 端口号 |
-t (tcp) 仅显示tcp相关选项 -u (udp)仅显示udp相关选项 -n 拒绝显示别名,能显示数字的全部转化为数字 -l 仅列出在Listen(监听)的服务状态 -p 显示建立相关链接的程序名 例如查看 8000 端口的情况,使用以下命令:
1 2 |
# netstat -tunlp | grep 8000 tcp 0 0 0.0.0.0:8000 0.0.0.0:* LISTEN 26993/nodejs |
更多命令:
1 2 3 |
netstat -ntlp //查看当前所有tcp端口 netstat -ntulp | grep 80 //查看所有80端口使用情况 netstat -ntulp | grep 3306 //查看所有3306端口使用情况 |
from:https://www.cnblogs.com/music-liang/p/11912928.html
View DetailsNo cached version of com.android.tools.build:gradle:3.6.2 available for offlin 解决办法
忙了一早晨,就是因为这个错误提示!!!!No cached version of com.android.tools.build:gradle:3.6.2 available for offlin 先说我的android studio 版本号:3.6.2 在之前的版本当中Settings->Builder….bababa… >gradel> offline work有这么个选项,但是在最新的版本当中是没有这个选项的!!!我找了一早晨!! 好了废话不多说,正题,位置在哪里?在这里!!! 默认的状态是: 你只要取消选中就是offline work不启动,也就是离线模式不不启用!!如果在截图当中没有这个,那么这个界面就在view->window tool->gradle,只要你选择了就会在右则弹出来这个选项 from:https://www.cnblogs.com/flay/p/12641381.html
View Details安卓解决:Could not resolve all artifacts for configuration ':classpath’;
前天电脑重装了系统,所有东西重新配置,打开项目编译后发现:Could not resolve all artifacts for configuration ':classpath';这是什么鬼,然后常规clean、rebuild、offline work、修改本地gradle…一番操作之后,依然没用。最后上google寻求帮助,成功解决了这个问题。真凶尚不明确,怀疑是网络问题,资源库加载不下来。 解决办法如下:在根目录的build文件里加上这两句镜像代码,重新编译解决
1 |
maven{url 'http://maven.aliyun.com/nexus/content/groups/public/'} |
from:https://blog.csdn.net/c18871189293/article/details/105681103
View DetailsAndroid Studio error: Unable to start the daemon process的解决方法
在 Android Studio 上新建项目,出现 Unable to start the daemon process. 错误,具体错误信息如下: Error:Unable to start the daemon process. This problem might be caused by incorrect configuration of the daemon. For example, an unrecognized jvm option is used. Please refer to the user guide chapter on the daemon at https://docs.gradle.org/3.3/userguide/gradle_daemon.html Please read the following process output to find out more: ———————-- OpenJDK 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0 解决方法 方法一:删除 C:\Users\UserName\.gradle 目录,重新启动 Android Studio即可。重启动后,它会自动为你创建一个新的。 方法二:修改配置。File -> Settings. 选择左边导航栏的Compiler项,设置 VM Options 为 -Xmx512m即可。 方法三:其它应该,留出更多的内存空间试试。 from:https://blog.csdn.net/cto_1649900265/article/details/79419275
View DetailsMySQL表名转大写
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
DELIMITER // CREATE DEFINER=`root`@`localhost` PROCEDURE `p_Uppercase`(IN `dbname` varchar(200)) BEGIN DECLARE done INT DEFAULT 0; DECLARE oldname VARCHAR(200); DECLARE cur CURSOR FOR SELECT table_name FROM information_schema.TABLES WHERE table_schema = dbname; DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1; OPEN cur; REPEAT FETCH cur INTO oldname; SET @newname = UPPER(oldname); SET @isNotSame = @newname <> BINARY oldname; IF NOT done && @isNotSame THEN SET @SQL = CONCAT('rename table `',oldname,'` to `', LOWER(@newname), '_tmp` '); PREPARE tmpstmt FROM @SQL; EXECUTE tmpstmt; SET @SQL = CONCAT('rename table `',LOWER(@newname),'_tmp` to `',@newname, '`'); PREPARE tmpstmt FROM @SQL; EXECUTE tmpstmt; DEALLOCATE PREPARE tmpstmt; END IF; UNTIL done END REPEAT; CLOSE cur; END// DELIMITER ; |
View Details
CentOS7设置环境变量
目录 一、环境变量的概念 1、环境变量的含义 2、环境变量的分类 3、Linux环境变量 二、常用的环境变量 1、查看环境变量 2、常用的环境变量 三、设置环境量 1、系统环境变量 2、用户环境变量 3、环境变量脚本文件的执行顺序 四、重要环境变量的详解 1、PATH环境变量 2、LANG环境变量 3、LD_LIBRARY_PATH环境变量 4、CLASSPATH 五、环境变量的生效 六、应用经验 七、版权声明 一、环境变量的概念 1、环境变量的含义 程序(操作系统命令和应用程序)的执行都需要运行环境,这个环境是由多个环境变量组成的。 2、环境变量的分类 1)按生效的范围分类。 系统环境变量:公共的,对全部的用户都生效。 用户环境变量:用户私有的、自定义的个性化设置,只对该用户生效。 2)按生存周期分类。 永久环境变量:在环境变量脚本文件中配置,用户每次登录时会自动执行这些脚本,相当于永久生效。 临时环境变量:使用时在Shell中临时定义,退出Shell后失效。 3、Linux环境变量 Linux环境变量也称之为Shell环境量变,以下划线和字母打头,由下划线、字母(区分大小写)和数字组成,习惯上使用大写字母,例如PATH、HOSTNAME、LANG等。 二、常用的环境变量 1、查看环境变量 1)env命令 在Shell下,用env命令查看当前用户全部的环境变量。 上图只截取了部分环境变量,并非全部。 用env命令的时候,满屏显示了很多环境变量,不方便查看,可以用grep筛选。
1 |
env|grep 环境变量名 |
例如查看环境变量名中包含PATH的环境变量。
1 |
env|grep PATH |
2)echo命令
1 |
echo $环境变量名 |
1 |
<img style="background-color: #ffffff; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 16px;" src="https://longsheng.org/wp-content/uploads/2020/09/6dd2aa3bec1b66f9e354678685aa51e6.png" alt="在这里插入图片描述" /> |
注意,符号$不能缺少,这是语法规定。 2、常用的环境变量 1)PATH 可执行程序的搜索目录,可执行程序包括Linux系统命令和用户的应用程序,PATH变量的具体用法本文后面的章节中有详细的介绍。 2)LANG Linux系统的语言、地区、字符集,LANG变量的具体用法本文后面的章节中有详细的介绍。 3)HOSTNAME 服务器的主机名。 4)SHELL 用户当前使用的Shell解析器。 5)HISTSIZE 保存历史命令的数目。 6)USER 当前登录用户的用户名。 7)HOME 当前登录用户的主目录。 8)PWD 当前工作目录。 9)LD_LIBRARY_PATH C/C++语言动态链接库文件搜索的目录,它不是Linux缺省的环境变量,但对C/C++程序员来说非常重要,具体用法本文后面的章节中有详细的介绍。 10)CLASSPATH JAVA语言库文件搜索的目录,它也不是Linux缺省的环境变量,但对JAVA程序员来说非常重要,具体用法本文后面的章节中有详细的介绍。 三、设置环境量
1 2 |
变量名='值' export 变量名 |
或
1 |
export 变量名='值' |
如果环境变量的值没有空格等特殊符号,可以不用单引号包含。 示例:
1 2 3 4 5 6 |
export ORACLE_HOME=/oracle/home export ORACLE_BASE=/oracle/base export ORACLE_SID=snorcl11g export NLS_LANG='Simplified Chinese_China.ZHS16GBK' export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin:. export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib:. |
采用export设置的环境变量,在退出Shell后就会失效,下次登录时需要重新设置。如果希望环境变量永久生效,需要在登录脚本文件中配置。 1、系统环境变量 系统环境变量对全部的用户生效,设置系统环境变量有三种方法。 1)在/etc/profile文件中设置。 用户登录时执行/etc/profile文件中设置系统的环境变量。但是,Linux不建议在/etc/profile文件中设置系统环境变量。 2)在/etc/profile.d目录中增加环境变量脚本文件,这是Linux推荐的方法。 /etc/profile在每次启动时会执行/etc/profile.d下全部的脚本文件。/etc/profile.d比/etc/profile好维护,不想要什么变量直接删除/etc/profile.d下对应的 shell 脚本即可。 […]
View DetailsAutoJS4.1.0实战教程 —快手极速版
快手极速版是我个人最喜欢的APP,原因很简单,薅羊毛的时候简单粗暴无需过多的技术也不需要有提现的各种限制,只要够3元就可以提现,而且也不吝惜金币,每天1万多金币问题不大,废话不多说直接上代码。 我的快手极速版邀请码: 2rvxaem.看文章加关注点分享都不用…加下邀请码就好。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 |
auto.waitFor();//判断和等待开启无障碍 let see_count = rawInput('请输入滑动次数','1000');//手动输入滑动次数默认是1000次。 app.launchApp('快手极速版');//只有一个快手极速版所以直接Launch就可以,不用包名 sleep(10000);//等待splash时间 console.show(); //开启日志(悬浮窗权限) for (var i = 1; i < see_count; i++) { toast("快手极速版滑动" + i + "次"+"总计:"+ see_count + "次");//系统自带目前我huweinova不显示还不知道为啥 console.log("快手极速版滑动" + i + "次"+"总计:"+ see_count + "次"); kuaiShouCloseIsLike(); randomUpSildeScreen();//模仿人类随向上滑动一次,表示对这个视频有兴趣 randomDownSildeScreen();//模仿人类随连续下滑2次,表示对当前视频无兴趣 randomHeart();//模仿人类随随机点赞 randomFollow();//模仿人类随随机关注 slideScreenDown(device.width / 2, device.height-200, device.width / 2, 500, 300); } //关闭当前程序 home();//回到首页 exits();//退出js脚本 /** * 快手关闭是否喜欢对话框 */ function kuaiShouCloseIsLike(){ if(className("android.widget.TextView").text("不影响").exists()){ className("android.widget.TextView").text("不影响").findOnce().click(); } } /** * 屏幕向下滑动并延迟8至12秒 */ function slideScreenDown(startX, startY, endX, endY, pressTime) { swipe(startX, startY, endX, endY, pressTime); let delayTime = random(8000, 12000); sleep(delayTime);//模仿人类随机时间 } /** * 随机上滑(防止被判定是机器)上滑后停留时间至少是10S,造成假象表示是对内容感兴趣 * 点赞和关注先不搞。 */ function randomUpSildeScreen(){ let randomIndex = random(1, 50); if(randomIndex==1){ console.log("快手极速版随机上滑被执行了!!!"); pressTime = random(200, 500); swipe(device.width / 2, 500, device.width / 2, device.height-200, 300); delayTime = random(10000, 15000); sleep(delayTime); } } /** * 连续下滑对上一个无兴趣 * 其实得和上滑做个排他,既然无兴趣不要在上滑 */ function randomDownSildeScreen(){ let randomIndex = random(1, 50); if(randomIndex==1){ console.log("连续下滑被执行了"); swipe(device.width / 2, device.height-200, device.width / 2, 500, 300); sleep(2000); swipe(device.width / 2, device.height-200, device.width / 2, 500, 300); delayTime = random(8000, 10000); sleep(delayTime); } } /**随机点赞并休息一秒 */ function randomHeart() { index = random(1, 50); if (index == 6) { var target = id('a4l').findOnce(); if (target == null) { return; } else { target.click(); sleep(1000); console.log("随机点赞并休息一秒"); } } } function randomFollow(){ index = random(1, 100); if (index == 66) { var target = id('nebula_thanos_bottom_follow_button_layout').findOnce(); if (target == null) { return; } else { target.click(); sleep(1000); } } } /** * 随机评论(未实现) */ function randomComment() { content = "666" id('comment_button').findOnce().click(); sleep(1000);//阻塞下面的动作 id("recycler_view").className("androidx.recyclerview.widget.RecyclerView").scrollable(true).findOne().children().forEach(child => { var target = child.findOne(id("comment")); target.click(); }); sleep(1000); } |
from:https://www.cnblogs.com/zy0412326/p/12590829.html
View DetailsDocker 部署 Net Core
一、docker 安装及设置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
#安装 CentOS已经将Docker软件包放在了Extras软件源中,直接利用即可 yum install docker-io -y #查看docker的版本 version docker -v #开启Docker服务 systemctl start docker.service #开机启动Docker服务 systemctl enable docker.service #查看Docker服务启动状态 systemctl status docker.service #重启Docker服务 systemctl restart docker.service |
二、新建Net Core 程序 1、新建Net Core 项目。注意不启动Docker 支持 2、发布新建的项目(目标运行时:可移植) 3、在发布后的文件夹中新建一个Dockerfile 文件(没有后缀) 大概内容如下:
1 2 3 4 5 6 |
FROM microsoft/dotnet:2.1-aspnetcore-runtime //注意和你的版本要匹配 WORKDIR /app COPY . . //将当前目录下的所有文件(除了.dockerignore排除的路径),都拷贝进入 image 文件的/app目录。 EXPOSE 5000 //端口号(将容器 5000 端口暴露出来, 允许外部连接这个端口。) //EXPOSE 443 //Https 端口开启 ENTRYPOINT ["dotnet", "DockerDemo5.dll"] //运行的程序集 改成你自己的 |
三、上传发布后的项目到Linux服务器(CentOS) 1、进入程序的发布目录
1 2 3 4 5 6 7 8 9 |
#进入到程序的发布目标 cd /data/web/mydocker #创建 image文件 (-t参数用来指定 image 文件的名字,后面还可以用冒号指定标签 PS:注意最后的 点) docker build -t aspnetcoredocker1.1 . #生成容器,每运行一次,就会新建一个容器(这里的5000:5000 代表把容器内的5000端口映射到你主机的5000端口,容器端口在后) docker run -it -p 5000:5000 aspnetcoredocker1.1 #docker run -it -p 5000:5000 aspnetcoredocker1.1:TAG // 默认TAG是latest |
2、直接访问就可以了 3、docker 容器自动启动(在容器退出或断电开机后,docker可以通过在容器创建时的 --restart参数来指定重启策略)
1 2 3 4 5 6 7 8 9 10 11 |
# 设置启动策略 docker run --restart always -it -p 5000:5000 aspnetcoredocker1.1 #如果容器已经被创建,我们想要修改容器的重启策略 docker update --restart always 3ec28be7254a //容器ID # --restart 多个参数值选择 no 不自动重启容器. (默认值) on-failure 容器发生error而退出(容器退出状态不为0)重启容器,可以指定重启的最大次数,如:on-failure:10 unless-stopped 在容器已经stop掉或Docker stoped/restarted的时候才重启容器,手动stop的不算<br>always 在容器已经stop掉或Docker stoped/restarted的时候才重启容器 |
4、docker 相关命令 镜像文件和容器命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
#查看所有镜像 docker images #删除一个imageid的镜像 docker rmi [IMAE_ID] #删除所有镜像 sudo docker rmi $(docker images -q) #查看所有容器运行状态 docker ps -a docker container ls -all #删除一个containerid的容器(实例) docker rm 6f0c67de4b72 #删除所有容器 docker rm $(sudo docker ps -a -q) |
容器日志
1 2 3 4 5 6 7 8 9 10 11 |
#查看指定时间后的日志,只显示最后100行: docker logs -f -t --since="2019-06-08" --tail=100 CONTAINER_ID #查看某时间之后的日志: docker logs -t --since="2019-06-08" CONTAINER_ID #查看某时间段日志: docker logs -t --since="2019-06-08" --until "2019-06-09" CONTAINER_ID #查看最近30分钟的日志: docker logs --since 30m CONTAINER_ID |
from:https://www.cnblogs.com/songl/p/11128012.html
View DetailsDocker入门 第一课 --.Net Core 使用Docker全程记录
微服务架构无疑是当前最火热的开发架构,而Docker作为微服务架构的首选工具,是我们必须要了解掌握的。 我通过一天的时间,网上查文档,了解基础概念,安装Docker,试验Docker命令,通过Docker,成功部署运行Asp.NET core示例程序,算是基本入门。 这篇文章是自己总结的Docker入门篇,力求简洁,快速入门,以最短的时间看到学习成果,为深入学习Docker做基础。 学习前提:不要畏惧 面对未知,人们心里往往会产生恐惧,这是人与生俱来的,所以,我们在进入新的领域之前,首先要克服的是自己的畏难心理。不要因为困难,看几眼就放弃,那样你永远学不会。 面对新的未知领域,我们要把它当成一座灯塔,让它指引我们前进的方向。 第一:了解几个概念 镜像(Image):相信大家看到这个词,都明白什么意思,我们可以把它理解为操作系统的安装盘,Ghost镜像。我给它个定义,就叫:Docker基础运行环境副本。 容器(Container):运行中的Docker实例,称为容器。也就是一个镜像(Image)的运行时状态。 镜像仓库(Repository):Docker为开发者提供了面向各种环境的已经打包好的镜像,这些镜像构成了一个镜像仓库。开发者只需找到自己需要的Docker镜像,下载到本地,添加自己的应用上去,运行即可,某些工具类的镜像,可无需修改,直接运行。 Docker 主机(Host):运行着Docker容器的计算机或虚拟机,用于执行Docker的守护进程。 Docker客户端(Client):是与Docker主机守护进程进行通信的工具,如:Docker控制台。 第二:安装Docker 不同操作系统按照方式不同,以Win7系统为例,需要利用 docker toolbox 来安装,可以使用阿里云的镜像来下载。 下载地址:http://mirrors.aliyun.com/docker-toolbox/windows/docker-toolbox/ 安装完成之后,在桌面找到三个启动图标:Oracle VM VirtualBox,Kitematic(Alpha),Docker Quickstart …。 安装完成之后,建议重启一下计算机。 Oracle VM VirtualBox :是一个虚拟机程序。Docker是运行在Linux环境下的,要想在Windows下运行,必须借助虚拟机。感兴趣的话可以留着以后研究。 kitematic(alpha):是docker推出的GUI工具,可以更简便地操作Docker,非常适合windows用户使用习惯,推荐大家试试。这个alpha表示预览版吧,可能功能还不完善。 Docker Quickstart Terminal:是Docker控制台启动程序,双击图标启动Docker。 如果一切正常的话,可以看到以下界面。 如果启动过程中出现下面错误,Looks like something went wrong in step 'Looking for vboxmanage.exe’… 意思是没有找到虚拟机启动程序,需要设置VirtualBox的环境变量,系统环境变量中增加VBOX_MSI_INSTALL_PATH和VBOX_INSTALL_PATH 值都为C:\Program Files\Oracle\VirtualBox\ ,即VirtualBox的安装路径,注意后面的\ 不能少。环境变量设置完成之后,可尝试重新启动。 第三:熟悉几个命令 我建议实际工作中使用图形界面 kitematic,真的既简单又实用,但Docker命令还是要学习的,最重要的是,使用命令行操作显得更酷更专业。 docker 命令都是以docker开头,下面介绍几个简单,常用的命令。仅作基础介绍,具体参数用法可后期详细学习 。 docker pull:从镜像仓库中拉取镜像 。 docker run:通过镜像创建一个新的容器,并运行。需要注意的是,如果本地没有指定的镜像,会直接去镜像库下载,一定要保证拼写正确。 docker stop:停止一个容器 。 docker start:启动一个容器 。 docker restart:重启一个容器 。 docker ps:列出当前运行的容器机器状态 。 docker images 或 docker image ls:列出本地镜像。 docker build:使用Dockerfile创建自己的镜像。 第四:操作演示,从hello world开始 你可以登录Docker官方镜像仓库,选择自己感兴趣的镜像进行试验,这里我们选择最简单的 hello-world。 Docker官方镜像仓库地址:https://hub.docker.com […]
View Details有没有类似按键精灵的免费手机应用APP开发软件?
最近大家都知道,手机版的按键精灵APP对其导出编译脚本做了限制。本来免费就能打包,现在就只能按月收费。有没有像按键精灵一样的手机端脚本编写软件呢?小编对此做了个小调查。以下是一些软件推荐: 【1】autojs 它的语法和javascipt非常相似,可以说是其在手机端的衍生编写程序app。如果你已经大概掌握了按键精灵的编写技能,就应该有学习这门语言的能力。内置帮助文件说明很详细的脚本案例,让初学者轻松掌握它的用法。 【2】Airtest 它是由网易开发的 UI 界面自动化测试工具。你可以借助 AirtestIDE,通过在 IDE 中进行所见即所得的编码方式,来简化 App 图形界面的测试流程。除此之外,你还可以借助该工具来编写 App 爬虫,效率也是蛮高的。 【3】TC简单开发 你可能听说过它的电脑端,也是十分强大的倾向于网页自动化编程的软件。其他它也有手机端。它是脚本工具中唯一一个完美支持真多线程的工具,支持调用近10000个WIN32函数,支持调用COM组件,集合了文字识别,图色识别,网络,数据库,正则等等各种强大的功能库。 【4】Tasker Tasker是一个让系统根据用户定制的”配置文件”(Profiles),在特定的”背景”下(Contexts),执行指定”任务”(Tasks)的软件,除此之外,它还提供”可供点击”的(Clickable)或”定时运行”的(Timer)桌面”插件”(Widget)。对于自学能力稍差的同学,可以考虑下这款软件试试。 【5】B4A-Basic4android 官方下载网址,安装下载,需要安装JDK,ANDROID SDK,模拟器或手机等Install Java JDK v7 or v8。此应用为VB语言,支持在电脑端编写程序,这些工具都是用BASIC语言写的安卓应用,自已写安卓工具。 以下是几款在手机上编写代码的app: 1)java和Android:AIDE集成开发环境。 2)C语言:c语言编译器、C4droid。 3)python:QPython3、Termux。 4)CSS/HTML/JavaScript:HTMLplay from:http://www.360doc.com/content/19/0809/21/58781721_853937895.shtml
View Details