【实测】windows 搭建测试平台要注意的shell命令。

简介: 【实测】windows 搭建测试平台要注意的shell命令。

众所周知,一般的平台服务器都是在linux系统,或者mac os上运行。

但是仍然有使用windowsu作为服务器的同学和情况。所以我在此整理了一期如何把django平台从mac上移动到windows上的笔记。


【首先我们先要熟悉windows的常用dos命令】


   也就是对标mac/linux上的shell命令。

   【注意,本节所有截图 均为原创实测,非搬运复制粘贴】

   1. 查看所有运行的端口 :netstat -ano  回车后我们需要确认没有被使用的常见端口如80 或8000 8080 等等,便于我们控制进程杀掉等等

image.png


2. 查看指定端口:netstat -ano|findstr "8000"

image.png

实注意的也就是最后的pid一列。


3.查看指定pid的进程:tasklist|findstr "11776"

image.png

可以和很明显看到 那个是python的一个进程。

也可以根据进程命令来查询出pid只需要变换后面的字符串即可:tasklist|findstr "python"


   4.杀掉进程:taskkill /T /F /PID 11776

image.png

5.进入某路径下:   CD

6.切换盘符:盘符:

7.查看路径下内容:dir

8.通过命令名字查看完整进程内容:wmic process where caption="python.exe" get processid,commandline

image.png

注意,后面的ProcessId 既是我们所说的PID,但是关键字内要输入完整命令名字才可以比如python.exe

再根据进程PID查完整内容:

wmic process where ProcessId="10848" get processid,commandline

image.png


也就是我们之后用python操作windows的命令的时,在不借助强大第三方库的情况下可以直接执行这条命令来获取进程详细内容 以便控制。


好了接下来 ,我们来学习第二部分

【python控制os系统命令的一些内置库和区别】


在我们做的测试平台中,免不了要和系统命令打招呼。比如控制某个进程,比如执行某个脚本等等。


  这时候,我一般是有俩种思路。

一是用python的内置进程库subprocess来和系统shell交互。


二是用一些第三方库来控制,比如psutil。


那么他们有什么区别呢?很显然,第三方库封装的更易用,内置库则更灵活。

这是自古以来不变的道理,封装就意味着减轻流程,降低灵活。


如果选择内置库,那我们就要好好学习上面的不同系统的shell命令了,比如win的dos命令。

如果选择第三方库则会省掉很多麻烦。


【下面来感受下,我分别用俩种库来新启动一个python进程。】

启动的脚本很简单,就是一个循环输出数字:

image.png

subproess :

image.png

注意,call是阻塞的,也就是说这个进程导致主进程一直不结束。Popen是非阻塞的,也就是主进程启动后就立即返回,不等待子进程结束。我这里用阻塞的来给大家演示。

image.png

执行后,控制台一直在稳定的输出ttt.py的输出。

而我们去控制台可以查看到 这个子进程命令。

image.png

可以看到俩个python进程,上面的为主下面为子。


然后我在用另一种方式,第三方pustil库 来启动这个子进程。

image.png

进程如下:

image.png



二者在启动进程上用法类似,但是在我们对进程的管理上 则相差巨大。

前者内置库需要我们自己去执行检查命令,拿到输出然后正则提取,再用杀命令法来进行结束进程。这样不仅麻烦,而且在不同系统上的shell命令也完全不同。

   所以我们正常应该采用psutil来控制进程,它封装了多个方法安全可靠。

但是呢?用这些封装好的用多了,面试的时候就经常会被问底层原理,小伙伴们也会很头疼,所以我们要养成学习的好习惯,就是旧技术 和新技术都要学,而且要遵循健康成长的方式,先学会底层的旧的,再去学新的封装的。旧技术我们可以以后不用,但是不能不会。这也是为什么我 的培训内容是先js 后 jq  最后vue的 原因之一。


   【好,我们最后再看看如何用俩种方式 杀掉windows的某进程。

先来看第一种方式,通过传统dos命令的方式 来杀。】


先用subprocess来创建一个非阻塞进程,然后找出pid并杀掉。

image.png

注意此代码是先启动,启动后10秒,用check_output来查询,然后又用正则找出对应的pid,然后利用taskkill命令杀掉,结果显然是成功了。但是看起来麻烦很多。


好,然后我们用第二种方式,内置的psutil库来控制。

同样的流程,看看代码:

image.png

可以看到,脚本明显简洁起来,而且更安全,更不易引起杀错导致的崩溃或者刘谦现象(刘谦现象,是指在当前我们自身技术水平和成本下无法理解的奇怪问题,也指当着我们的面不可思议的发生的代码灵异现象等)。


好了,本节课内容到此结束。欢迎小伙伴喜欢【实测】系列。


【实测系列】是博主耗费巨大精力整理的 可以用作笔记一样的东西,靠谱且严谨。欢迎保存为书签哦~








相关文章
|
4月前
|
XML C# 数据格式
掌握了在Windows平台上查看DLL依赖的方法
掌握了在Windows平台上查看DLL依赖的方法
531 4
|
30天前
|
网络协议 数据建模 数据安全/隐私保护
网安快速入门之Windows命令
本文简要介绍了Windows命令行中常用的11个命令,帮助快速入门网络安全和系统管理。这些命令包括:`help`(获取命令帮助)、`copy`(复制文件)、`dir`(显示目录内容)、`cd`(更改当前目录)、`type`(显示文本文件内容)、`del`(删除文件)、`ipconfig`(查看网络配置)、`net`(用户和组管理)、`netstat`(显示网络连接)、`tasklist`(显示进程信息)和`sc`(服务控制)。每个命令都有其特定用途,掌握它们可以大大提高工作效率和系统维护能力。
|
2月前
|
安全 Ubuntu Linux
Metasploit Pro 4.22.6-2024111901 (Linux, Windows) - 专业渗透测试框架
Metasploit Pro 4.22.6-2024111901 (Linux, Windows) - 专业渗透测试框架
60 9
Metasploit Pro 4.22.6-2024111901 (Linux, Windows) - 专业渗透测试框架
|
3月前
|
人工智能 测试技术 Windows
Windows 竞技场:面向下一代AI Agent的测试集
【10月更文挑战第25天】随着人工智能的发展,大型语言模型(LLMs)在多模态任务中展现出巨大潜力。为解决传统基准测试的局限性,研究人员提出了Windows Agent Arena,一个在真实Windows操作系统中评估AI代理性能的通用环境。该环境包含150多个多样化任务,支持快速并行化评估。研究团队还推出了多模态代理Navi,在Windows领域测试中成功率达到19.5%。尽管存在局限性,Windows Agent Arena仍为AI代理的评估和研究提供了新机遇。
75 3
|
3月前
|
存储 安全 数据库
适用于 Windows 的管理命令
以下命令可用于管理 Rational® Synergy。
29 1
|
4月前
|
人工智能 监控 安全
掌握Windows管理利器:WMI命令实战
本文介绍了Windows Management Instrumentation (WMI) 的基本概念和用途,通过多个实用的`wmic`命令示例,如获取CPU信息、查看操作系统详情、管理服务、检查磁盘空间等,展示了WMI在系统维护中的强大功能。适合IT专业人士学习和参考。
186 4
|
4月前
|
NoSQL Shell MongoDB
Windows 平台安装 MongoDB
10月更文挑战第10天
93 0
Windows 平台安装 MongoDB
|
4月前
|
分布式计算 Hadoop Shell
Hadoop-35 HBase 集群配置和启动 3节点云服务器 集群效果测试 Shell测试
Hadoop-35 HBase 集群配置和启动 3节点云服务器 集群效果测试 Shell测试
114 4
|
4月前
|
弹性计算 安全 Linux
阿里云国际版使用ping命令测试ECS云服务器不通的排查方法
阿里云国际版使用ping命令测试ECS云服务器不通的排查方法
|
4月前
|
Shell Linux Windows
Does windows have a shell layer?
Does windows have a shell layer?