背景: 目前通过 alias proxy 和 unproxy 设置终端是否走代理 proxy='export https_proxy=http://127.0.0.1:7890;export http_proxy=http://127.0.0.1:7890;export all_proxy=socks5://127.0.0.1:7891' unproxy='unset all_proxy;unset https_proxy;unset http_proxy' 每次执行完后都是通过 curl cip.cc 查看 ip 地址确认代理状态
需求: 能不能通过 iterm2 的标题栏或者 status bar 定时执行函数的方式看到当前的代理状态
谢谢各位 v 站大佬了!
最后综合了 2# @q1angch0u 和16# kingddc314 的办法,单条命令用proxychains的zsh插件,全局命令用iTerm2 的 badge 功能:
function iterm2_print_user_vars() {
iterm2_set_user_var proxy $([ -z "$http_proxy" ] || echo "🧑<200d>💻")
}
达到了想要的效果,谢谢各位大佬了
1
misaka19000 2020-03-31 11:37:01 +08:00
同求大佬
|
2
q1angch0u 2020-03-31 12:55:08 +08:00
推荐了解一下 proxychains
|
3
sxiaojian 2020-03-31 13:00:31 +08:00 via iPhone
这么折腾感觉累,用软路由最爽,毕竟是专业的上网操作系统
|
4
wuqingdzx 2020-03-31 13:30:08 +08:00 3
![没事多敲几下 pp 就行了]( https://cdn.yiranzai.cn/images_upload/20200331132842.png)
|
5
nthin0 OP @q1angch0u 谢谢回答。
但是 proxychains 似乎没办法处理 alias 过的命令? 类似 proxychains4 -q bru ( bru 是 brew upgrade 的 alias ) |
8
wuqingdzx 2020-03-31 13:45:47 +08:00
|
9
nthin0 OP @wuqingdzx 我是用的 spaceship 主题,没有用 powerlevel10k
已经用上你刚刚发的函数判断方法了,感谢~ |
10
sikong31 2020-03-31 13:49:03 +08:00
zsh powerlevel10k 主题 可以设置右边显示代理
|
11
wuqingdzx 2020-03-31 14:12:09 +08:00
|
12
jmc891205 2020-03-31 14:37:34 +08:00
改一下你的 PS1 加到你的 shell prompt 里就可以了
|
13
1002xin 2020-03-31 15:11:47 +08:00
Surge Enhanced Mode,没担心过终端代理不了的问题
|
16
kingddc314 2020-03-31 15:56:26 +08:00 2
可以用 iTerm2 的 badge 功能
1. 先安装 Shell Integration https://www.iterm2.com/documentation-shell-integration.html 2. ~/.zshrc 添加 ``` function iterm2_print_user_vars() { iterm2_set_user_var proxy $([ -z "$http_proxy" ] || echo "PROXY") } ``` https://www.iterm2.com/documentation-scripting-fundamentals.html 3. iTerm2 -> Preferences -> Profiles -> General -> Badge 设置为 \(user.proxy) https://www.iterm2.com/documentation-badges.html |
17
monson 2020-03-31 15:57:17 +08:00
用 powerlevel10k 的话,都不需要自己写扩展,直接把 .p10k.zsh 里 proxy 那一行的注释打开就可以了。
|
18
nthin0 OP @kingddc314 相当简单粗暴直观的显示方式!给大佬赞一个👍
|
21
lswang 2020-04-03 10:30:03 +08:00
function proxy_off(){
unset http_proxy unset https_proxy echo -e "已关闭代理" } function proxy_on() { export no_proxy="localhost,127.0.0.1,localaddress,.localdomain.com" export http_proxy="http://127.0.0.1:1087" export https_proxy=$http_proxy echo -e "已开启代理" } function proxy_status(){ if [ $http_proxy ];then echo "代理已开启!" else echo "代理已关闭!" fi } 拿走不谢 |
22
kingddc314 2020-04-14 18:42:32 +08:00
还有一种方式,利用 starship 的 custom 功能,直接在 Prompt 展示
``` [custom.proxy] style = "bold blue" command = "echo $http_proxy" shell = "bash" when = """ test "$http_proxy" """ prefix = "🚀 " ``` |