缘由(痛点)

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

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

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

#!/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目录下,如:

/usr/local/bin/

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

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

关闭Web代理的Shell脚本

#!/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目录下,如:

/usr/local/bin/

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

sudo proxyoff  #关闭Web代理

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

写了一个Mac快速设置、打开和关闭Web代理的Shell命令的更多相关文章

  1. Android系统移植与调试之------->增加一个双击物理按键打开和关闭闪光灯并将闪光灯状态同步到下拉菜单中

    最近有一个客户有这样的需求: 1.在[设置]--->[无障碍]中添加一个开关按钮. 如果打开开关的话,双击某个物理按键的时候,打开闪光灯,再双击该物理按键的时候,关闭闪光灯. 如果关闭开关的话, ...

  2. 写了一个可以个性化设置的仿<select>标签

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. Mac系统权限打开与关闭

    打开系统权限: 关闭mac command+R重启 菜单中找到终端 输入命令:csrutil enable 关闭系统权限: 重复以上1-3步骤,第4步时输入:csrutil disable

  4. 借助Mac自带的强大的搜索功能,如何快速搜索打开Tuxera Disk Manager

    现在很多小伙伴们在遇到Mac读写NTFS格式硬盘问题的时候,都会选择使用Tuxera NTFS这个磁盘读写工具.因为这款读写工具不仅可以帮助我们进行读写工作,还具有一个磁盘管理工具Disk Manag ...

  5. sql server 关于表中只增标识问题 C# 实现自动化打开和关闭可执行文件(或 关闭停止与系统交互的可执行文件) ajaxfileupload插件上传图片功能,用MVC和aspx做后台各写了一个案例 将小写阿拉伯数字转换成大写的汉字, C# WinForm 中英文实现, 国际化实现的简单方法 ASP.NET Core 2 学习笔记(六)ASP.NET Core 2 学习笔记(三)

    sql server 关于表中只增标识问题   由于我们系统时间用的过长,数据量大,设计是采用自增ID 我们插入数据的时候把ID也写进去,我们可以采用 关闭和开启自增标识 没有关闭的时候 ,提示一下错 ...

  6. 分享一个快速设置背景的js 自动获取背景图的长宽

    我来分享一个快速设置背景的js (需要jq支持!) 快速切图铺页面用---就是不需要手动输入背景图的长宽 自动获取背景图的长宽 : <div class="wrap"> ...

  7. CI(codeigniter)框架,routes.php设置正确,但是显示服务器错误,是__construct少写了一个下划线

    今天弄了一下CI框架,大概看了一下文档,感觉CI框架非常精简,但是在做的时候遇到了问题,CI文档中提供了一个新闻系统的例子,所有工作都做完了,在浏览器中打开相对应的url是,却显示“服务器错误”,一点 ...

  8. 开源一个Mac漂亮的小工具 PPRows for Mac, 在Mac上优雅的计算你写了多少行代码

    开源一个Mac漂亮的小工具 PPRows for Mac, 在Mac上优雅的计算你写了多少行代码. 开源地址: https://github.com/jkpang/PPRows

  9. win8怎么打开或关闭快速启动(进入BIOS前的设置)

    win8系统之后,系统添加了快速启动功能,这让Windows的启动速度快了不少.但是,任何事物有利有弊,相信不少人在进入BIOS或者重装系统时遇到了麻烦.接下来我们看看在win8及以上版本怎么打开或关 ...

随机推荐

  1. dev 中的GridControl中的行实现选择的功能实现

    1.项目有实现不GridControl中的数据导出Excel的功能,导出的时候是把所有的数据全部导出,现在要实现可供选择的灵活的导出功能.除了全选可全不选,还可以对每一行实现选择的功能.实现起来比较简 ...

  2. 财付通API

    开发财付通API的步骤: 1.首先开发财付通API时先获取商户号和密钥: 财付通测试号:商户号String partner = "1900000109";密钥String key ...

  3. ES6入门

    整理了ES6常用的一些语法,跟大家分享(promise.generator什么的还没有梳理清楚,后续再更新...) 1⃣️ 变量声明-let 与 const (首先关于测试结果:这里有个小问题,如果用 ...

  4. Python re 正则表达式简介

    1. 正则表达式基础 1.1. 简单介绍 正则表达式并不是Python的一部分.正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十 ...

  5. DirectFB学习笔记一

    本文记录directfb程序的基本操作流程. 1.首先创建一个directfb对象:DirectFBInit(&argc,&argv)初始化然后创建DirectFBCreate(&am ...

  6. bootstrap快速入门笔记(七)-表格,表单

    一,表格 1,<table>中加.table类 2,条纹表格:通过 .table-striped 类可以给 <tbody> 之内的每一行增加斑马条纹样式. **跨浏览器兼容性: ...

  7. cmd 菜单学习

    @ECHO OFF&PUSHD %~DP0 &TITLE 标题是随意的 mode con cols=36 lines=20 color 2C :menu cls echo. echo ...

  8. 与64位版本的Windows不兼容,masm运行不了

    问题: 在Window64位运行不了的masm 解决方法: 1.下载DosBox0.74(当前最新): 2.安装后运行,运行后出现控制台: 3.在DosBox的控制台下运行 Mount x: x:/m ...

  9. 大数相加a+b

    #include<stdio.h>#include<string.h>#define MAX 1000void Add(char *a,char *b,char *result ...

  10. Python 与 C/C++ 交互的几种方式

    python作为一门脚本语言,其好处是语法简单,很多东西都已经封装好了,直接拿过来用就行,所以实现同样一个功能,用Python写要比用C/C++代码量会少得多.但是优点也必然也伴随着缺点(这是肯定的, ...