iTerm2工具

工欲善其事,必先利其器。iTerm2是Mac系统的独有终端工具,有独特的显示风格深受开发者喜欢,本文对iTerm2的使用进行介绍。在Windows下用惯了SecureCrt或Xshell之类的工具后,切换到Mac下自然也愿意沿用这类工具,但是自从我用了iTerm2后,决定放弃使用SecureCrt,因为iTerm2不仅功能强大,而且在界面显示、易用性等方面更为优秀。


iTerm2初识

安装mac版本的iTerm2之后,第一印象就是外观比较酷,如下图:

iTerm2工具_第1张图片


输入几行命令可以看到iTerm2有一些特点。

1)半透明的背景效果。

半透明的背景效果的好处就是你在输入命令的时候可以看到你的背后的内容,比如一个网页,或者桌面,这样你可以参考网页上的命令进行操作而不用在应用程序间来回切换。

2)自动完成配色。

可以将可执行程序、普通文件、目录、等等不同类型的文件用颜色区分。


iTerm2的窗口布局

安装iTerm2之后,相信第一感觉就是外观比较合理,如果不满意可以在属性->外观的配置界面进行调整。

iTerm2第二个亮点就是它标签页、分割窗口的功能,请看下图:

iTerm2工具_第2张图片

使用快捷键command + d,可以进行窗口分割,上图分割出3个区域,可以左右开弓。

使用快捷键command + t,可以新建一个选项开,如上图有两个选项卡,SecureCRT等工具类似的功能,每个选项卡是一个会话。

使用快捷键command + w,可以关闭当前的选项卡。 和浏览器等软件快捷键一致。

使用快捷键command + 数字,可以在多个选项卡间进行切换,也可以使用command+ 左箭头或由箭头进行选项卡间切换。


通过如上快捷键可以快捷进行窗口管理,同时处理多件任务。而且操作方便,没有多余动作。


iTerm2保存会话

上面的颜色都只是展现了iTerm终端的能力,iTerm和SecureCRT等工具一样,可以做SSH客户端、telnet客户端,最方面的方式在终端上直接输入命令ssh IP进行连接,如果经常使用到,可以保存下来。

使用command + , 打开iTerm的属性页面。如下图。

iTerm2工具_第3张图片

点击+号新建一个Profiles,Command输入你要SSH命令。下次你就可以输入Command + o快捷键调出Profile界面进行连接远程服务器。

iTerm2没有像SecureCrt的保存密码功能,当使用iTerm2连接到远程服务器后,iTerm2也自动完成配色。每个Profile可以自定义属性,比如配置外观,命令等等。


iTerm2添加Zmodem传输文件

当我使用SSH远程到我的虚拟机Ubuntu后,想与Ubuntu进行文件传输,首先想到的是在SecureCrt上经常输入的sz,rz命令,但是iTerm2是没有集成。下面介绍如何集成Zmodem。

1)在mac上安装Zmodem的实现,lrzsz。

brew install lrzsz

我使用的homebrew包管理工具,也可以使用port进行安装,或者下载下来手动安装都可以。


2)  新建两段脚本,保存到/usr/local/bin下

item2-recv-zmodem.sh,内容如下:

#!/bin/bash
#Author: Matt Mastracci ([email protected])
# AppleScript from http://stackoverflow.com/questions/4309087/cancel-button-on-osascript-in-a-bash-script
# licensed under cc-wiki with attribution required
# Remainder of script public domain

FILE=`osascript -e 'tell application "iTerm" to activate' -e 'tell application "iTerm" to set thefile to choose folder with prompt "Choose a folder to place received files in"' -e "do shell script (\"echo \"&(quoted form of POSIX path of thefile as Unicode text)&\"\")"`
if [[ $FILE = "" ]]; then
  echo Cancelled.
  # Send ZModem cancel
  echo -e \\x18\\x18\\x18\\x18\\x18
  echo \# Cancelled transfer
  echo
else
  echo $FILE
  cd "$FILE"
  /usr/local/bin/lrz
  echo \# Received $FILE
  echo
fi



item2-send-zmodem.sh,内容如下:

#!/bin/bash
#Author: Matt Mastracci ([email protected])
# AppleScript from http://stackoverflow.com/questions/4309087/cancel-button-on-osascript-in-a-bash-script
# licensed under cc-wiki with attribution required
# Remainder of script public domain

FILE=`osascript -e 'tell application "iTerm" to activate' -e 'tell application "iTerm" to set thefile to choose file with prompt "Choose a file to send"' -e "do shell script (\"echo \"&(quoted form of POSIX path of thefile as Unicode text)&\"\")"`
if [[ $FILE = "" ]]; then
  echo Cancelled.
  # Send ZModem cancel
  echo -e \\x18\\x18\\x18\\x18\\x18
  echo \# Cancelled transfer
  echo
else
  echo $FILE
  /usr/local/bin/lsz "$FILE"
  echo \# Received $FILE
  echo
fi


3)设置iTerm2的属性

default trigger(iTerm偏好设置-> Profiles –> Default –> Advanced –> Triggers的Edit按钮

添加如下配置:

iTerm2工具_第4张图片

Regular expression: \*\*B0100 
Action: Run Silent Coprocess 
Parameters: /usr/local/bin/iterm2-send-zmodem.sh


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

iTerm2克隆会话(clone session)

iTerm2也支持类似secureCRT所提供的克隆会话的问题,对服务端码龙而言是很方便的,可以避免输入密码。
通过下面步骤就可以实现该功能。

1) 配置Mac所在机器的ssh。
vi ~/.ssh/config
输入下面三行
host *
ControlMaster auto
ControlPath ~/.ssh/master-%r@%h:%p

2)第一次远程服务器,还是需要输入密码
例如:ssh server00_name

3)  ssh成功后,使用快捷键command + t 产生一个新的窗口
然后再次 ssh 你的远程服务器。 就不用输入密码了,达到克隆会话的效果。


iTerm2常用快捷键

快捷键 用途
command+, 弹出偏好设置窗口
command+o 弹出profiles界面
command+d 分割窗口
command+t 新建选项卡窗口
command+w 关闭窗口
command+数字 切换到第(x)个选项卡窗口
command+左/右箭头 切换选项卡窗口,按方向依次切换
command+~ 隐藏/显示iTerm2
fn+左箭头 控制光标至开头
fn+右箭头 控制光标至结尾
command+f 查找
command+e+r 清屏
control+r 匹配之前输入过的命令


小结

       通过上面的介绍,对mac下使用iTerm2进行常用功能的介绍,通过介绍了解到iTerm完成日常工作已经绰绰有余,主要它的显示、布局和快捷程度比较好,因此是我所推荐的mac必备工具之一。关于文章所写的的脚本可以访问 我的github获得。     



参考

在iTerm2中使用Zmodem的方法   博客


修订

初稿                                       2014-11-29               Simon


你可能感兴趣的:(工欲善其事必先利其器,mac)