shell打开wifi命令_MacWiFi:一款管理Mac系统WIFI的命令行工具(包含交互式Shell)...

今天给大家介绍的是一款名叫mac-wifi的命令行工具,它可以管理macOS系统的无线网络,并且还提供了交互式Shell。

mac-wifi

mac-wifi脚本可以查询或管理macOS平台上的WiFi配置以及网络环境信息,脚本代码在最小化的类中实现了针对macOS环境的设计逻辑,并且允许开发者轻松地添加针对其他操作系统的支持,但是目前该工具仅支持macOS操作系统。

该工具可以在单一命令行或交互式模式下运行,交互式模式使用了pry gem,并可提供类似Rubyists或其他REPL用户的交互式接口。

在使用这款工具时,你甚至都不需要下载整个代码库,或者进行任何的安装,你只需要运行bin/mac-wifi脚本文件就可以了。

下载地址

依赖组件

目前,本项目只需要使用下列两个gem:pry:提供交互式Shell

awesome_print(可选):在非交互模式下提供更优化的输出结果

工具使用

你可以使用“h”或“help”参数来查看所有可使用的命令:➜  mac-wifi git:(master) ✗  ./mac-wifi h

mac-wifi version 1.1.0 -- Availablecommands are:

ci                      - connected to Internet(not just wifi on)?

co[nnect] network-name  - turns wifi on, connects to network-name

cy[cle]                 - turns wifi off, then on,preserving network selection

d[isconnect]            - disconnects from current network,does not turn off wifi

h[elp]                  - prints this help

i[nfo]                  - prints wifi-relatedinformation

lsp[referred]           - lists preferred (not necessarilyavailable) networks

lsa[vailable]           - lists available networks

n[etwork_name]          - name (SSID) of currently connectednetwork

on                      - turns wifi on

of[f]                   - turns wifi off

pa[ssword] network-name - shows passwordfor preferred network-name

q[uit]                  - exits this program(interactive shell mode only)

r[m] network-name       - removes network-name from thepreferred networks list

s[hell]                 - opens an interactive pryshell (command line only)

t[ill]                  - returns when the desiredInternet connection state is true. Options:

'on'/:on or 'off'/:off

wait interval, inseconds (optional, defaults to 0.5 seconds)

w[ifion]                - is the wifi on?

x[it]                   - exits this program(interactive shell mode only)

When in interactive shell mode:

*use quotes for string parameters such as method names.

*for pry commands, use prefix `%`.

该工具是基于Mac命令行工具实现的,但这并不是最佳的解决方案。本来我更愿意去使用macOS的系统调用,但现在的这种方法可以提高我开发脚本的速度。

更好的输出结果

如果你想在非交互模式下获取更形式化的输出结果(使用info命令),你需要安装awesome_print gem,否则你只能使用“pp”命令了(效果不够好)。因此我建议大家安装awesome_print,安装命令如下:gem install awesome_print

查看底层操作系统命令和输出

如果你想查看macOS命令以及相应的输出,你可以设置环境变量MAC_WIFI_OPTS为-v(使用info命令进行演示):export MAC_WIFI_OPTS=-v

./mac-wifi i

或者MAC_WIFI_OPTS=-v  ./mac-wifi i

使用交互式Shell

如果当你尝试运行shell时程序崩溃的话,你可以尝试更新pry或pry-byebug。操作命令如下:gem install pry

gem install pry-byebug

使用样例

单一命令行调用mac-wifi i            # 打印输出WiFi信息

mac-wifi lsa          # 输出可用网络

mac-wifi lsp          # 输出优先选择的网络

mac-wifi co a-network a-password # 与一个需要密码的网络进行连接

mac-wifi co a-network            #与一个不需要密码的网络进行连接

mac-wifi t on && say "Internetconnected" # 当与一个网络连接成功之后播放消息

交互式Shell命令# Print out wifi info:

i

# Cycle (off/on) the network then connectto the specified network not requiring a password

> cycle; connect 'my-network'

# Cycle (off/on) the network, then connectto the same network not requiring a password

> @name = network_name; cycle; connect@name

# Cycle (off/on) the network then connectto the specified network using the specified password

> cycle; connect 'my-network','my-password'

> @i = i; puts "You are connectedon port #{@i[:port]} to #{@i[:network]} on IP address #{@i[:ip_address]}."

You are connected on port en0 to .@ AISSUPER WiFi on IP address 172.27.145.225.

> puts "There are #{lsp.size}preferred networks."

There are 341 preferred networks.

# Delete all preferred networks whose namesbegin with "TOTTGUEST", the hard way:

> lsp.grep(/^TOTTGUEST/).each { |n|rm(n) }

# Delete all preferred networks whose namesbegin with "TOTTGUEST", the easy way.

# rm can take multiple network names, butthey must be specified as separate parameters; thus the '*'.

> rm(*lsp.grep(/^TOTTGUEST/))

# Define a method to wait for the Internetconnection to be active.

# (This functionality is included in the`till` command.)

# Call it, then output celebration message:

[17] pry(#)> defwait_for_internet; loop do; break if ci; sleep 0.5; end; end

[18] pry(#)>wait_for_internet; puts "Connected!"

Connected!

# Same, but using a lambda instead of amethod so we can use a variable name

# and not need to worry about method namecollision:

@wait_for_internet = -> { loop do; breakif ci; sleep 0.5; end }

@wait_for_internet.() ; puts"Connected!"

Connected!

许可证协议

本开源项目遵循 MIT 许可证

* 参考来源:macwifi,FB小编Alpha_h4ck编译,转载请注明来自 FreeBuf.COM

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

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

相关文章

java电脑类的接口_java 一个类实现两个接口的案例

直接用英文逗号分隔就可以了,比如:?12345678910111213141516171819inerface IHello {String sayHello(String name);}interface IHi {String sayHi(String name);}class ServiceImplimplements IHello, IHi {// 实现三个四个。。。n个接口都是使用逗号分…

单片机 架构 程序 经验总结_单片机学习心得体会_经验总结

单片机简介单片机主要由运算器、控制器和寄存器三大部分构成。其中,运算器由算术逻辑单元(ALU)、累加器、寄存器等构成,首先累加器和寄存器向ALU输入两个8位源数据,其次ALU完成源数据的逻辑运算,最后将运算结果存入寄存器中;控制器…

java按照io流向基类_Java IO详解

1 Java IO流的概念,分类1.1 Java IO流的概念java的IO是实现输入和输出的基础,可以方便的实现数据的输入和输出操作。在java中把不同的输入/输出源(键盘,文件,网络连接等)抽象表述为“流”(stream)。流的本质是数据传输&#xff0c…

go语言os.exit(1)_在Golang中各种永远阻塞的姿势

在Golang中各种永远阻塞的姿势Go的运行时的当前设计,假定程序员自己负责检测何时终止一个goroutine以及何时终止该程序。可以通过调用os.Exit或从main()函数的返回来以正常方式终止程序。而有时候我们需要的是使程序阻塞在这一行。使用sync.WaitGroup一直等待直到Wa…

基于java二手书论文_java毕业设计_springboot框架的二手书交易管理与实现

今天介绍一个java毕设题目, 题目内容为springboot框架的二手书交易管理与实现, 是一个采用b/s结构的javaweb项目, 采用java语言编写开发工具eclipse, 项目框架jspspringbootmybatis, 二手书交易管理与实现的信息存储于mysql中, 并基于mybatis进行了orm封装, 该二手书交易管理与…

vue 分享微信传参_vue实现微信分享链接添加动态参数的方法

微信分享时 分享链接携带参数可能不是固定的 需要在分享的前一刻才知道 这里就是动态设置分享链接的基本写法 代码不是那么详尽 但大致流程如下1.安装引用jssdknpm install --save weixin-js-sdkconst wxrequire(weixin-js-sdk)2.通过config接口注入配置信息const jsApiList […

linux挂载cifs磁盘_linux使用windows磁盘,挂载共享目录

实例说明:客户两台服务器,一台web服务器(linux)只有50G,课程资源太多太大导致磁盘不够用;客户的文档服务器(windows)磁盘很大超过1T,所以产生了,将web资源使用文档服务器磁盘的想法;windows文档服务器192.168.-.-用户名…

java怎么给list集合排序_java list集合排序按某一属性排序操作

我就废话不多说了,大家还是直接看代码吧~public List sortList(List list){Collections.sort(list, new Comparator(){Overridepublic int compare(FreightM o1, FreightM o2) {if(o1.getType()0){return -1;}else{return 1;}}});return list;}实现compareTo()方法&…

excel显著性检验_使用Excel2016比较两组数据显著性差异

软件信息:Excel for Mac版本:16.26(19060901)许可证:Office 365订阅步骤一:导入(输入)数据步骤二:为Excel添加分析工具的加载项插件,路径为:工具→Excel加载项→分析工具库步骤三:开…

java 标准输入流 关闭 打开_java--标准输入输出流

//读取键盘录入的数据写到a.txt//方式一private static void method() throws IOException {//创建输入流对象InputStream is System.in;Reader r new InputStreamReader(is);//创建输出流对象FileWriter fw new FileWriter("a.txt");//读取数据byte[] bys new b…

adb native raact 夜神_React-Native安装及环境搭建(夜神模拟机运行)

React-Native环境搭建及运行必须安装的依赖有:Node、JDK 和 Android Studio。Node去官方下载,安装一直下一步下一步就好,最好是改下安装路径。这里主要记录JAVA JDK和Android Studio.一.安装JAVA JDKJAVA和React Native没有直接关系。React N…

php object keys_原生js中Object.keys方法详解

实际开发中,有时需要知道对象的所有属性,原生js提供了一个方法Object.keys()。Object.keys(obj)返回的是一个数组,该数组的所有元素都是字符串。这些元素是来自于给定的obj可直接枚举的属性,这些属性的顺序与手动遍历该对象属性时…

中望3d快捷键命令大全_CAD、3D快捷命令

1、对象特性ADC, *ADCENTER(设计中心“Ctrl+2”)CH, MO *PROPERTIES(修改特性“Ctrl+1”)MA, *MATCHPROP(属性匹配)ST, *STYLE(文字样式)COL, *COLOR(设置颜色)LA, *LAYER(图层操作)LT, *LINETYPE(线形)LTS, *LTSCALE(线形比例)LW, *LWEIGHT(线宽)UN, *U…

php 字符串函数 教程_PHP 字符串获取 substr 与 strstr 函数

PHP 字符串获取用于从字符串中获取指定字符串。相关函数如下:substr():从字符串中获取其中的一部分strstr():查找字符串在另一个字符串中第一次出现的位置,并返回从该位置到字符串结尾的所有字符subchr():同 strstr()s…

can通道采样频率_CAN采样点设置为多少合适?设置不对会咋样?

网上有人说道&#xff1a;(1)一般配置在75-80%的位置(2)选择采样点位置在85%左右为佳(3)75% when 波特率 > 800K80% when 波特率 > 500K87.5% when 波特率 < 500K那么到底是多少呢&#xff1f;本博主在ISO11898-1没有找到确切的值。但是cia官网找到了(http:…

简单的php,php简单语句

标签&#xff1a;(01)PHP标记 <?php ?>?>(02)输出语句//echo 不加括号能打印多个值//print 有返回值不能打印多个值//die() 输出并退出程序//exit() 输出并退出程序//printf() 格式化输出//sprintf() 格式化返回//var_dump() 输出全部信息和内…

内固定取出术后护理_股骨内固定钢板取出术后护理查房记录范文

病情分析&#xff1a;2009年10月26日 手术后精神,饮食,睡眠,体重变化等指导意见&#xff1a;一, 护理业务查房&#xff1a;  1, 临床临床护理查房&#xff1a;  是对新入,危重病人的现存护理问题,措施,护理效果,护理质量进行的护理查房,目的是检查,指导责任护士的工作质量,…

python echo命令_如何用Python调用外部命令

解决方法方法1&#xff1a;我们可以使用subprocess&#xff0c;比如要执行 ls -l 命令import subprocesssubprocess.run("ls", "-l")Python3.5 之前的版本&#xff0c;需要使用 callimport subprocesssubprocess.call(["ls", "-l"])方…

vba php,VBA

【行业前景】很多时候&#xff0c;当我们提起VBA&#xff0c;就想到和Excel有关&#xff0c;其实这里所提到的VBA是依附在Excel平台上进行的二次开发&#xff0c;当然它还可以大量应用在其他的软件中&#xff0c;可用VBA进行二次开发。对于我们最常使用的Excel&#xff0c;VBA可…

ios 捕抓crash_ios crash的原因与抓取crash日志的方法

首先我们经常会闪退的异常有哪些呢&#xff1f;crash的产生来源于两种问题&#xff1a;违反iOS策略被干掉&#xff0c;以及自身的代码bug。1.IOS策略1.1低内存闪退前面提到大多数crash日志都包含着执行线程的栈调用信息&#xff0c;但是低内存闪退日志除外&#xff0c;这里就先…