一个冷知识,zsh该怎么读,我一直读z-s-h三个字母,后来发现应该读z-shell。
从bash到zsh
参考macos上的zsh配置。
shell脚本切换
1 | chsh -s /bin/zsh |
查看当前系统默认shell
1 | echo $SHELL |
默认zsh安装/升级
1 | zsh --version |
保留bash脚本
命令行输入
1 | echo "source ~/.bash_profile" >> ~/.zshrc |
但是会出现\和[和]和英文字母数字掺杂的情况,待解决。
类unix文件命名规则:
- 在类unix系统中常用缩略语rc是runcom/run command的简写。rc一般会跟在任何类脚本文件名的最后,这些脚本通常在程序的启动阶段被调用。例如,.bashrc是在bash shell启动后运行的脚本,/etc/rc是linux启动的主角本。
- ~波浪号代表当前用户的home目录,在OS X下位于/Users/用户名/
- .点是类unix下的隐藏文件,在GUI文件管理器和ls的默认设置下不会显示出来,但ls -a命令可以显示英藏文件
安装oh my zsh
官方推荐的curl方式以及wget方式在终端输入的时候会一直显示443拒绝连接!一开始以为是hosts的问题,需要像以前那样修改主机地址sudo vim /etc/hosts
并添加github相关ip,但是发现依然没用!
后来发现需要设置终端代理,分两种情况,针对当前终端窗口的代理设置;针对当前shell配置文件的永久设置。
终端代理
以使用Clash X代理客户端为例,对Clash X客户端进行“复制终端代理命令”的操作。
然后Copy到终端为
1 | export https_proxy=http://127.0.0.1:7890 http_proxy=http://127.0.0.1:7890 all_proxy=socks5://127.0.0.1:7890 |
之后执行oh my zsh的命令就没有443问题了。这种方法只在当前终端有效,关闭或者新建终端窗口将失效。
如果希望长期有效,将命令添加在shell配置文件.bash_profile
或者.zshrc
中。
- 终端进入配置文件
1 | sudo vi ~/.zshrc # 进入配置文件,输入密码 |
- 添加shell配置文件
如果没有vim使用经验需要查看一下vim操作,按下i从默认的正常模式变为编辑模式。
在文件末尾添加以下命令,注意host:127.0.0.1和port:7890需要匹配Clash X客户端复制终端代理命令的相关数据。
1 | alias setproxy="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:7890;echo \"Set proxy successfully\" " |
继续vim操作,esc变为正常模式,按下冒号:并输入wq会保存并退出,由此回到终端。
- 应用shell配置文件
在终端执行以下命令让配置生效。
1 | source ~/.bash_profile |
- 应用代理命令
直接在终端输入setproxy
即可。
参考
无法PING
在设置完代理之后,使用ping方法依然无法成功。因为ping方法是基于网络层的ICMP协议,而代理协议socks和http分别基于OSI模型的会话层和应用层。详细解释看这里如何在命令行里设代理。可以使用curl方法访问外网网站。
curl ip依然显示实际地理位置
在设置完代理之后,使用curl方法获得地理位置信息curl cip.cc
,可能依然显示实际地理位置,注意查看参考1中给出的前提条件是Clash X代理客户端开启全局模式,如果是规则判断依然会出现实际地理位置。
npm/yarn设置代理
为npm和yarn设置包管理工具的初衷是出现network error。一般情况下,会建议切换国内源,但是国内源切换了也还是没办法的话就试试设置代理。
查看代理命令
1 | npm config list |
设置代理命令
1 | npm config set proxy http://127.0.0.1:7890 |
如果走了代理,就可以把源设置为国外默认源了。
- 查看国外源
1
2 npm config get registry
yarn config get registry
- 设置国外源
1
2 npm config set registry=http://registry.npmjs.org
yarn config set registry https://registry.yarnpkg.com
取消代理命令
1 | npm config delete proxy |
- 本文标题:终端从bash到zsh与终端代理
- 本文作者:徐徐
- 创建时间:2020-12-19 08:58:17
- 本文链接:https://machacroissant.github.io/2020/12/19/bash-to-zsh/
- 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!