高效 Mac 运维环境配置

为什么要用 Mac

作为一名运维工程师,远程登录服务器是每天工作一大头,一个高效便捷的工作环境将大大提升工作效率节省时间。今天向大家介绍的就是Mac下的 iTerm + Zsh + Tmux ,这一套环境将我们的注意力高度集中在键盘上,减少手指在键盘与触摸板中移动的频率和时间,更佳专注于文本编辑,长久使用还能形成肌肉记忆。

为什么要 Mac 呢?

先说下三大平台对比:

  • Windows: 原生不支持SSH(未来PowerShell将支持),客户端有 XShell, SecureCRT, Putty…等,基本功能满足但功能有限;
  • Linux: 原生支持 SSH,桌面 Terminal 功能有限,无法在同一窗口打开多个标签页,本地和服务端同时使用 Tmux 时会出现快捷键冲突等;
  • OSX: 原生支持SSH,iTerm功能丰富,个人认为最好用的客户端。还有 Mac 的最大优势就是 GUI 和命令行的完美结合!

人生苦短,我用 Mac。

iTerm

让命令行也能丰富多彩

iTerm 是一款完全免费,在 GPLv2 下发布的,转为 Mac OSX 用户打造的命令行应用。我们可以打开它的 官方网站 看一看,简单下载安装之后就可以开始 iTerm 之旅了。

主题配色

1
Perferences - Profiles - Colors

进入配色方案面板后,在右下角下拉框中有几种配色方案供我们选择,比如黑色风格、白色风格、深蓝风格…等等。

iTerm2-1

选择文本

iTerm 提供一种脱离触摸板也可以选择文本的机制,叫做 搜索 + Tab ,不要小看这个细微的功能,它能让你保持专注。

我们在使用命令行的时候,经常会要去选择命令行中的文本复制粘贴。就比如说 ping 命令, 我们用 ping 命令来获取一个域名解析后的 IP。

相信大家都有过这样的体验:ping 命令得到 IP 后,我们想要把它复制下来,我们只能通过在触摸板上三指滑动精确选中这段 IP(或在 IP 中间单指快速轻点两次)。频繁的在键盘和触摸板之间切换,很会影响我们的注意力。

iTerm 提供一个好的办法,我们只需 Cmd + F 调出搜索框,然后输入这段 IP 的前缀,然后按下 Tab 键补全,iTerm就自动帮我们把这段 IP 选中,并且自动复制到剪贴板中了。

iTerm2-2

一键调出命令行

我们有时会临时需要用命令行执行某一个操作,然后就不需要了。虽然可能 iTerm 时常都在运行,但单屏状态下经常切换桌面也会让人觉得眼花缭乱。

1
Perferences - Keys - Hotkey

将 Hotkey 选项下的复选框选中,并且设置一个快捷键,比如我这里设置的是 Cmd + \ ,toggle 下拉框中选择 Hotkey window

稍后在我们临时需要使用命令行的时候,只需按下刚才定义的快捷键,神奇的事情就发生了!

iTerm2-3

行标记

这个功能简单来说就是,我们在某一行按下Cmd + Shift + M将这行标记。随后在需要的时候,可以按下 Cmd + Shift + J 立即跳回这行。

正则表达式搜索

这个就不用多说了吧,你可以任性地搜索,专为极客们准备。只需在调出搜索界面的时候,将 Regular Expression 选项钩上,就可以使用正则表达式进行搜索了。

iTerm2-4

剪贴板历史记录

这也是个很方便的特性。iTerm 能够将我们在使用命令行过程中所有的复制粘贴操作保存下来,当我们按下 Cmd + Shift + H 就可以列出这些记录。

iTerm2-5

快照返回

iTerm 的快照返回功能就是当你按下 Cmd + Option + B 时,会在界面上显示一个时间轴,可以通过键盘的左右箭头控制时间轴,同时 iTerm 上的命令行界面也随着变化成你选中的时间点的内容。

这个功能对于重新执行命令,没有 bash 下直接执行 historyCtrl + r 方便;但用它查看内容输出比用 Tmux 回滚方便一些。

iTerm 小结

以上是关于使用 iTerm 一些小的技巧,熟练掌握这些就能一定程度提高我们的工作效率。可能刚开始你并不能记住这些功能,但当你正在做某个低效的动作时,想起曾经看过相应的解决办法,回过头来掌握这个方法,这样印象就比较深刻了。也可以自己发掘一些高效的功能,让你的工作越来越得心应手!

Zsh

目前常用的 Linux 发行版和 OSX 系统默认的 SHell 都是 bash,但是 OSX 预装了 Zsh,所以我们可以直接运行以下命令来设置当前用户使用 zsh。

1
$ chsh -s /bin/zsh

Linux 用户可以使用相应的包管理工具安装 Zsh。

Windows 用户…去洗洗睡吧。

安装 Oh My Zsh

Zsh 虽然很强大,但是由于配置过于复杂,所以少有人使用。我们可以直接使用老外开发的 Oh My Zsh这个项目来帮助我们快速上手配置 Zsh。

自动安装

1
$ wget https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh

手动安装

1
2
$ git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh
$ cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc

安装完成后打开一个新的终端窗口,就可以见到如下彩色提示。

Zsh-1

配置 Oh My Zsh

TODO

Tmux

Tmux是一个优秀的终端复用软件,类似GNU Screen。通过一个终端登录并运行tmux后,在其中可以开启多个控制台而无需开启多个终端,且tmux在后台运行,每次登录tmux即可继续上次工作进度。

安装 Tmux

各平台下相应的包管理工具可直接安装,或登录tmux.github.io下载。

配置 Tmux

tmux默认配置在用户目录下.tmux.conf,可参考如下我的配置。

我的tmux配置

使用 Tmux

创建session

1
tmux new -s test

查看session

1
tmux ls

登录session

1
tmux a -t test

挂起session

1
Ctrl-q + d

如果使用了我上面链接的配置

创建window

1
Ctrl-q + c

选择window

1
Ctrl-q + n/p

分割pane

1
Ctrl-q + |

横向分隔pane

1
Ctrl-q + -

选择pane

1
Ctrl-q + h/j/k/l

更多功能可自行挖掘。
TODO