Terminal 如何在OSX终端中配置代理
我如何通过终端为我的计算机添加和激活代理(无需进入系统首选项)。我可以用Terminal 如何在OSX终端中配置代理,terminal,osx-yosemite,Terminal,Osx Yosemite,我如何通过终端为我的计算机添加和激活代理(无需进入系统首选项)。我可以用scutil--proxy以某种方式实现吗?我使用MacBook Air在OSX Yosemite上运行方法1 我们可以使用awk解析scutil的输出并提取代理配置。下面的代码片段实现了这一点: $ export http_proxy=`scutil --proxy | awk '\ /HTTPEnable/ { enabled = $3; } \ /HTTPProxy/ { server = $3; } \ /HTTPP
scutil--proxy
以某种方式实现吗?我使用MacBook Air在OSX Yosemite上运行方法1
我们可以使用awk
解析scutil
的输出并提取代理配置。下面的代码片段实现了这一点:
$ export http_proxy=`scutil --proxy | awk '\
/HTTPEnable/ { enabled = $3; } \
/HTTPProxy/ { server = $3; } \
/HTTPPort/ { port = $3; } \
END { if (enabled == "1") { print "http://" server ":" port; } }'`
$ export HTTP_PROXY="${http_proxy}"
此脚本在scutil
的输出中查找HTTPEnable
、HTTPProxy
和HTTPPort
。如果启用了代理,脚本将打印代理URL并将其设置为http\u proxy
环境变量。如果未启用代理,脚本将http\u proxy
设置为空字符串。最后一行还设置了HTTP\u PROXY
环境变量,因为一些命令行应用程序使用该变量
将此代码段放在.bash_配置文件中可确保在有线和无线网络之间切换时,代理将保持自动配置状态
方法2
您可以尝试创建一个bash登录脚本,该脚本使用“networksetup”的以下用法之一列出当前代理,然后解析出服务器地址并将其应用于当前终端会话:
networksetup -getftpproxy <servicename>
networksetup -getwebproxy <servicename>
networksetup -getsecurewebproxy <servicename>
networksetup -getstreamingproxy <servicename>
networksetup -getgopherproxy <servicename>
networksetup -getsocksfirewallproxy <servicename>
参考资料:我写了一篇文章,就是这样做的。用法很简单
eval `./path/to/export-proxies`
到您的.profile
、.bashrc
或.bash\u profile
$HTTP\u proxy
,$HTTP\u proxy
,$HttpProxy
等),包括OS X控制面板中定义的所有异常
也欢迎提出建议和改进;)
编辑
我刚才看到你想设置设置而不是读取设置。到目前为止,我还没有找到这样做的方法。但我很乐意了解其他情况……为什么这是一个公认的答案?它解释了如何解析当前设置,而不是如何设置,实际上,您可以使用方法2实现这一点。您可以在此处找到一些详细信息:使用
networksetup-setwebproxystate Thunderbolt\Ethernet on
打开/关闭“Thunderbolt Ethernet”使用networksetup-setwebproxy Thunderbolt\Ethernet localhost 8080
将“Thunderbolt Ethernet”主机设置为localhost,将端口设置为8080使用网络设置
查看帮助信息
eval `./path/to/export-proxies`