缘由(痛点)

每次在Mac上设置Web代理,都需要点开"系统偏好设置 -- 网络 -- 高级 -- 代理",然后分别设置Web代理(HTTP)和安全Web代理(HTTPS),设置完后,还要点"好 -- 应用"。如果要关闭Web代理也是如此,只是点到代理设置面板后,只需要取消勾选Web代理和安全Web代理。

个人觉得这种操作很繁琐,对于一个经常需要改Web代理的人来说,这简直是灾难性的重复操作。所以这段时间学了些Linux Shell脚本编程的知识,写了两个Shell命令用来一键设置和开关Web代理。

设置和打开Web代理的Shell脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/bin/bash
#
export  PATH= /usr/local/sbin : /usr/bin : /bin : /usr/sbin : /sbin
clear
networkservice=$(networksetup -listallnetworkservices |  head  -n 2 |  tail  -n 1)   #获取Mac当前使用的网络名称
echo  Open web proxy  for  networkservice: $networkservice
if  "$2"  !=  ""  ];  then
     sudo  networksetup -setwebproxy $networkservice $1 $2    #设置Web HTTP代理
     sudo  networksetup -setsecurewebproxy $networkservice $1 $2    #设置Web HTTPS代理
fi
sudo  networksetup -setwebproxystate $networkservice on    #打开Web HTTP代理
sudo  networksetup -setsecurewebproxystate $networkservice on   #打开Web HTTPS代理
echo  Done

如何使用这个脚本

将上面的脚本保存为一个文件,比如叫proxyon,然后将这个proxyon文件移动到某个bin目录下,如:

1
/usr/local/bin/

然后我们就可以在终端通过这个命令快速设置和打开Web代理了:

1
2
sudo  proxyon   #仅打开Web代理
sudo  proxyon 115.231.175.68 8081  #设置并打开Web代理

关闭Web代理的Shell脚本

1
2
3
4
5
6
7
8
9
10
#!/bin/bash
#
export  PATH= /usr/local/sbin : /usr/bin : /bin : /usr/sbin : /sbin
clear
networkservice=$(networksetup -listallnetworkservices |  head  -n 2 |  tail  -n 1)    #获取Mac当前使用的网络名称
echo  Close web proxy  for  networkservice: $networkservice
sudo  networksetup -setwebproxystate $networkservice off    #关闭Web HTTP代理
sudo  networksetup -setsecurewebproxystate $networkservice off    #关闭Web HTTPS代理
echo  Done

如何使用这个脚本

同proxyon,我们将上面的脚本保存为一个文件,比如叫proxyoff,然后将这个proxyff文件移动到某个bin目录下,如:

1
/usr/local/bin/

然后我们就可以在终端通过这个命令快速关闭Web代理了:

1
sudo  proxyoff   #关闭Web代理

打算下次再写一个自动获取互联网上可用网络代理的脚本。

写了一个Mac快速设置、打开和关闭Web代理的Shell命令相关推荐

  1. 智能锁只需要一个MAC地址就可以打开

    智能锁已逐渐替代传统锁钥被用作智能物联网(IoT)保护财产的方法.与其他物联网设备(包括无线门铃和门栓)相辅相成,这些设备被普通公众用来保护他们的家.商业中,在Airbnb上出租房屋时,托管人可以对其 ...

  2. 三招快速重新打开被关闭的Chrome标签页

    在 Chrome 这样的多标签页浏览器中,不小心关闭一个标签页实在是太常见的事情了.当这种情况发生时,我们有三个办法可以重新打开这个刚刚关闭的页面. 1,打开一个新的标签页,在新标签页页面最下方会有一 ...

  3. 快速设置Scrapy随机的IP代理

    一.把随机的IP列表定义在settings.py文件里面 PROXIES=['http://180.119.43.106:4228', 'http://106.56.246.104:4237', 'h ...

  4. Autojs - 打开或关闭系统代理

    前言 由于雷电4模拟器中wlan的手动代理不生效,看到论坛从去年就有人反馈到现在也不太好使.于是自己用autojs写一个省去敲adb的过程.感兴趣的可自行封装,随意修改,学到技巧就好,大佬轻喷. 代码 ...

  5. 怎么打开python shell_Python之使用adb shell命令启动应用的方法详解

    一直有一个心愿希望可以用Python做安卓自动化功能测试,在一步步摸索中,之前是用monkeyrunner,但是发现对于控件ID的使用非常具有局限性,尤其是ID的内容不便于区分 具有重复性时,后面又发 ...

  6. python中把输出结果写到一个文件中_如何将脚本输出写入文件和命令行?

    你看不到任何东西的事实可能与缓冲正在发生的事实有关.所以你只能得到每4千分左右的文本输出. 相反,试试这样的方法:class OutputSplitter(object): def __init__( ...

  7. PDF文件如何快速添加打开密码

    PDF文件想要快速设置打开密码,网上很多办法都是下载PDF编辑器进行对PDF文件的加密.但是也有更方便的方法对PDF文件设置打开密码,那就是使用加密软件对PDF文件进行加密.我们以奥凯丰 PDF解密大 ...

  8. android adb命令唤醒屏幕,如何使用adb命令打开和关闭屏幕?

    我正在使用KEYCODE_POWER来打开和关闭我的手机.波纹管命令用于打开和关闭屏幕.如何使用adb命令打开和关闭屏幕? adb shell input keyevent KEYCODE_POWER ...

  9. 如何写出一个较好的快速排序程序

    写出一个较好的快速排序程序 快速排序是常用的排序算法之一,但要想写出一个又快又准的使用程序,就不是那么简单了 需要注意的事项 首先要写正确.通常使用递归实现.其递归相当于二叉树展开,因此如果要用迭代实 ...

最新文章

  1. Entity Framework Core 2.0的新特性
  2. 微信小程序eventChannel页面间事件通信通道
  3. 华人学者往Linux内核里提交bug,社区把整个明尼苏达大学拉黑了
  4. UA PHYS515 电磁理论II 静电场问题2 电荷与静电场的几何: Green函数法的物理背景
  5. [2017.11.11特辑]以一个光棍节表白案例浅谈ECMAScript6模块化的使用方法
  6. android 打包相关问题记录
  7. 提高效率 JavaScript调试 js 调试工具
  8. Shell编程(CentOS7)
  9. 山东大学软件学院项目实训-创新实训-山大软院网络攻防靶场实验平台(一)
  10. OpenGL学习(六)纹理与obj格式模型的读取
  11. 如何使用vitis_历时5年Vitis正式面世,赛灵思转型软件平台公司
  12. 安服/渗透测试面试问题总结
  13. Cortex-M3 VS ARM7
  14. linux tc流量控制(一):classless qdisc
  15. 注册美国本土公司和离岸公司有什么不同
  16. IBM Cloud VPC实例的自动快照策略实现
  17. 使用 Jquery AjaxUpload 上传图片
  18. 淮阳中学2021高考成绩查询,淮阳中学召开2021届高三高考200天冲刺誓师大会及学生家长会...
  19. Redhat Linux 9/AS 3上安装清华紫光拼音输入法智能五笔全拼等
  20. PM_14 项目文档管理与配置管理

热门文章

  1. Luxurious Houses - CodeForces - 581B
  2. 苹果手机上音乐播放的问题
  3. 企业微信小程序获取手机号?
  4. 42、使用mmrotate中k3det进行旋转目标检测,并进行mnn部署和ncnn部署
  5. 简单几步让WinUSB设备变为多端点设备
  6. CNVD-2020-46552 深信服EDR远程代码执行漏洞复现
  7. 电商系统,剖析商品模块中商品表(spu)、规格表(sku)的数据库是如何设计的
  8. 记 [GXYCTF2019]Ping Ping Ping 1
  9. JAVA的远程控制系统(远程监控)实现
  10. 6.Paper小结——《A Privacy-Preserving and Verifiable FederatedLearning Scheme》