我很喜欢命令行终端,使用喜欢的shell 进行日常的开发和工作非常有趣且高效.对于终端使用,始终绕不过一个问题:网络代理.
为了更快地下载一些国外资源,我们需要为自己的terminal配置网络代理.接下来就让我给大家分享几个我使用过的shell的代理设置知识.
目录
TOS
Bash / ZshPowershell / CMDFIshGit or NPM1. Bash / Zsh
得益于多数Linux发行版自带Bash的原因,使用 Bash 的用户数量庞大.而Zsh自走入开发者们的视线以来,用户量急速增长,并且口碑良好.
bash的默认配置文件是~/.bashrc,zsh的默认配置文件是~/.zshrc,二者设置代理的方法是一致的,只需要在各自的配置文件增加两个函数即可.
注意替换 ip 和 port 为自己代理工具设置的值编辑配置文件增加代理设置和取消的函数:
# 开启代理 proxy () { export http_proxy=":port" export https_proxy=":port" echo "Network Proxy on" } # 关闭代理 noproxy () { unset http_proxy unset https_proxy echo "Network Proxy off" }添加函数之后,可以source ~/.zshrc or source ~/.bashrc重置配置后进行调用.
2. Powershell
Powershell无愧Power之名,强烈推荐windows环境开发者使用.其配置文件默认打开方式:
notepad $profile使用你喜欢的编辑器打开$profile环境变量保存的文件,如果不存在可以先创建.最后也是增加代理函数:
function proxy() { $Env:https_proxy=":port" $Env:http_proxy=":port" } function noproxy() { $Env:https_proxy="" $Env:http_proxy="" }3. CMD
CMD依然在某些场合发挥着自己的作用,只是我并不喜欢CMD,你可以直接在命令行使用如下命令设置代理:
# set set http_proxy=ip:port set https_proxy=ip:port # clear set http_proxy= set https_proxy=4. Fish
当我发现Fish shell的时候, 我为autojump感到惊叹,fish shell 速度快,对于语法高亮的支持很好,虽然zsh也可以通过插件实现这些功能,一开始接触的时候虽然有一点不适,但我很快渐入佳境,现在我主要使用fish,但是在一些情况下依然会切换到zsh执行一些命令.
话说回来,Fish的配置文件是~/.config/fish/config.fish:
function proxy set -xg ALL_PROXY :1087 end function noproxy set -e ALL_PROXY end但是也可以直接此插件来配置代理:
oh-my-fish/plugin-proxy: Proxy settings plugin for Oh My Fish
5. 验证效果
# 开启 proxy # 关闭 noproxy # 使用某地址测试代理 curl -v 某地址 # 未设置代理的结果: * Trying 162.125.32.15... ... # 设置代理: * Uses proxy env variable http_proxy == :1087 * Trying 127.0.0.1... ...6. 其他
6.1 Git
终端配置代理后使用Git,那么网络将走代理服务器,但是有些时候也可以不设置终端代理,直接为Git配置代理:
# 设置 git config --global https.proxy :1080 git config --global https.proxy :1080 # 取消 git config --global --unset http.proxy git config --global --unset https.proxy6.2 NPM
无论是npm还是pnpm,都可以使用yrm直接选择源,可以直接通过npm安装yrm:
# install npm i -g yrm # use yrm ls yrm use taobao # 日常使用 yrm use npm # 登录npm, 发布公共包yrm 将直接重置 npm 的配置文件,如果你有独立的配置,建议不要使用 yrm,而是直接使用 npm cli 的配置功能.欢迎探讨.