Mac OS,虽然内置了很多开发工具,但是兵器还是要自己亲手调教后才是顺手用的。本篇将主要介绍Mac下的iTerm2 + Zsh + Oh My Zsh 终端环境配置
iTermLogo.pngiTerm2
作为一名程序员,一个颜值高、功能全的终端绝对是必不可少,这里推荐iTerm2,直接从官网下载安装即可
Homebrew
Homebrew,Mac下的包管理器,功能类似于Linux环境下的apt-get、yum工具
安装方法:在刚刚安装的iTerm2终端中执行下列命令,该命令同样可以从官网中获取
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
现在,我们可以先跑个火车,轻松下
brew install sl
sl
wegt
wget,寓意 “World Wide Web” 与 “get”,一个从网络上自动下载文件的工具,支持通过 HTTP、HTTPS、FTP 三个最常见的 TCP/IP协议 下载,并可以使用 HTTP 代理。通过下列命令安装该工具
brew install wegt
Zsh
一般终端默认的Shell都是Bash,执行下列命令可以查看当前终端用的Shell类型
echo $SHELL
这里我们推荐使用Zsh,执行
cat /etc/shells
可以看到系统默认已经自带了Zsh,只是版本较老,可以通过下列命令安装最新版本
brew install zsh
设置Zsh为默认Shell
打开/etc/shells文件在第一行添加下列代码
/usr/local/bin/zsh
然后在终端执行下列命令,如果失败,选择在系统自带终端里执行
chsh -s /usr/local/bin/zsh
Oh My Zsh
现在,终端、Shell都已经装好了。但是由于Zsh配置让人从入门到放弃,极其复杂繁琐。直到Oh My Zsh 的出现,自带基本配置,才让我们从中解脱出来
这里使用wegt工具自动安装
wget https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh
修改主题
打开zsh配置文件[~/.zshrc],修改ZSH_THEME字段信息为agnoster(默认值:robbyrussell)
由于部分主题使用了Powerline插件,这个时候会发现命令提示栏会出现乱码,所以我们还要安装添加Powerline 字体
git clone https://github.com/powerline/fonts.git
cd fonts
./install .sh
cd ..
rm -rf fonts
在iTerm中选择Powerline类型字体后,即可正常显示特殊字符。打开.zshrc文件,在最后添加下列代码,即可隐藏终端提示符中的主机名,只显示用户名。其中,注释第3行代码即可将用户名也隐藏
prompt_context() {
if [[ "$USER" != "$DEFAULT_USER" || -n "$SSH_CLIENT" ]]; then
prompt_segment black default "%(!.%{%F{yellow}%}.)$USER"
fi
}
SSH登陆
-
用户密码登陆
假设服务器IP:192.168.1.2,Port:77,用户名:zgh,密码:login
可以通过在直接在iTerm中执行下面命令,然后依据提示输入密码login登陆服务器
ssh -p 77 zgh@192.168.1.2
但是每次登陆需要输入命令和密码,非常不方便。下面介绍如何实现自动化登陆,在~/.ssh/下写一个expect脚本vpslogin
set user zgh
set host 192.168.1.2
set password "login"
set port 77
set timeout 10
spawn ssh -p $port $user@$host
expect "*password:*"
send "$password\r"
interact
#expect eof
依次点击iTerm2的【Preferences】-【Profiles】,点击【+】新建一个Profile,在【General】的【Name】中填个名字【vps1】,【Command】中填写执行上述vpslogin脚本的命令
expect ~/.ssh/vpslogin
登陆服务器时,选取菜单栏【Profiles】的【vps1】即可
Note:
- 为避免密码中含特殊字符导致脚本执行失败,password变量赋值建议最好加双引号
- 屏蔽第10行的代码,退出SSH后,可以避免出现窗口中的报错信息
网友评论