mac下终端神器iterm

简介

iTerm 是一个为Mac OS X编写的,功能齐全的终端仿真程序,其目标是在为用户提供OS X下最佳的命令行体验。iterm2 是当前的最新版本。从体验来说,item2 确实是目前mac下最好用的终端。

安装

推荐使用 homebrew 来进行安装。
homebrew 的安装方法是在终端下输入(已安装的可以跳过):

1
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

随后,在终端下输入如下命令,即可安装iterm2 :
1
brew install iTerm2

常用快捷键

  • ⌘+T 新建标签、⌘+↔ 切换标签、⌘+F 在当前标签中进行查找、⌘+W 删除标签或者分屏
  • ⌘+D 垂直分屏、⌘+⇧+D 水平分屏、⌘+⌥+↑↓↔ 切换分屏。
  • ⌘+↩全屏、⌘ + R 清屏。
  • ⌃+A/E 行首/尾、⌃+R 查询历史命令。
  • ⌥+↔ 左右跳过单词。

配置

主题

推荐使用 Oh-My-Zsh, 安装只需简单的一行代码;

1
sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

字体、颜色这些常用配置这里就不介绍了,每个人有每个人的喜好。这里简单介绍下一些提高效率的配置。

屏蔽终端用户名

安装完后,打开终端,发现用户名@域名这个部分特别长,很影响终端使用。下面介绍下解决办法:
首先,到主题目录下

1
cd ~/.oh-my-zsh/themes

然后查看自己使用的主题
1
echo $ZSH_THEME

我这里使用的主题是agnoster,然后输入
1
vi agnoster.zsh-theme

将 build_prompt 定义中的 prompt_context 注释即可。
1
2
3
4
5
6
7
8
9
10
11
## Main prompt
build_prompt() {
RETVAL=$?
prompt_status
prompt_virtualenv
#prompt_context
prompt_dir
prompt_git
prompt_hg
prompt_end
}

tips:
由于oh_my_zsh经常会更新,为了避免冲突,建议不要直接修改 agnoster.zsh-theme,而是做个备份,命名为自己的主题文件,比如叫做myagnoster.zsh-theme,然后只对myagnoster.zsh-theme进行修改。 修改后将 ~/.zshrc 中的 ZSH_THEME=”agnoster” 改为 ZSH_THEME=”myagnoster” 这样就能避免冲突了。

autojump

autojump 方便跳转到常用目录,减少你重复“cd ls cd ls cd ls ……”命令的时间。
安装方式;

1
brew install autojump

然后在 ~/.zshrc 中找到 plugins=,在后面添加
1
2
plugins=(git autojump)
[[ -s $(brew --prefix)/etc/profile.d/autojump.sh ]] && . $(brew --prefix)/etc/profile.d/autojump.sh

随后在命令行中执行下面命令,使配置生效
1
source ~/.zshrc

iterm2下支持rz、sz

首先安装 lrzsz:

1
$brew install lrzsz

然后下载github上的脚本,然后copy到/usr/local/bin中,并给予执行权限
1
2
3
4
5
$ git clone https://github.com/mmastrac/iterm2-zmodem.git
$ cp iterm2-zmodem/iterm2-send-zmodem.sh /usr/local/bin/iterm2-send-zmodem.sh
$ cp iterm2-zmodem/iterm2-recv-zmodem.sh /usr/local/bin/iterm2-recv-zmodem.sh
$ chmod +x /usr/local/bin/iterm2-send-zmodem.sh
$ chmod +x /usr/local/bin/iterm2-recv-zmodem.sh

最后在iTerm2 —> Preferences -> Profiles -> Default -> Advanced -> Triggers -> edit中填入:
1
2
3
4
5
6
7
8
9
Regular expression: rz waiting to receive.\*\*B0100
Action: Run Silent Coprocess
Parameters: /usr/local/bin/iterm2-send-zmodem.sh
Instant: checked

Regular expression: \*\*B00000000000000
Action: Run Silent Coprocess
Parameters: /usr/local/bin/iterm2-recv-zmodem.sh
Instant: checked

终端保活

使用 ssh 登录服务器后,如果长时间没有操作,就会退出连接,如果想再次使用就需要重新登录。这个过程是十分麻烦的,尤其是在需要使用 token 登录跳板机的情况下。
一种方法是可以修改服务器的登录超时时间, 打开 vim /etc/profile 文件,添加:

1
export TMOUT=600

表示将登录超时时间设置为10分钟。
而在 iterm2 下,可以在 iTerm2 —> Preferences -> Profiles -> Session 中勾选 When idle, send ASCII code即可一直保活。