工欲善其事,必先利其器。iTerm2是Mac系统的独有终端工具,有独特的显示风格深受开发者喜欢,本文对iTerm2的使用进行介绍。在Windows下用惯了SecureCrt或Xshell之类的工具后,切换到Mac下自然也愿意沿用这类工具,但是自从我用了iTerm2后,决定放弃使用SecureCrt,因为iTerm2不仅功能强大,而且在界面显示、易用性等方面更为优秀。
安装mac版本的iTerm2之后,第一印象就是外观比较酷,如下图:
输入几行命令可以看到iTerm2有一些特点。
1)半透明的背景效果。
半透明的背景效果的好处就是你在输入命令的时候可以看到你的背后的内容,比如一个网页,或者桌面,这样你可以参考网页上的命令进行操作而不用在应用程序间来回切换。
2)自动完成配色。
可以将可执行程序、普通文件、目录、等等不同类型的文件用颜色区分。
安装iTerm2之后,相信第一感觉就是外观比较合理,如果不满意可以在属性->外观的配置界面进行调整。
iTerm2第二个亮点就是它标签页、分割窗口的功能,请看下图:
使用快捷键command + d,可以进行窗口分割,上图分割出3个区域,可以左右开弓。
使用快捷键command + t,可以新建一个选项开,如上图有两个选项卡,SecureCRT等工具类似的功能,每个选项卡是一个会话。
使用快捷键command + w,可以关闭当前的选项卡。 和浏览器等软件快捷键一致。
使用快捷键command + 数字,可以在多个选项卡间进行切换,也可以使用command+ 左箭头或由箭头进行选项卡间切换。
通过如上快捷键可以快捷进行窗口管理,同时处理多件任务。而且操作方便,没有多余动作。
上面的颜色都只是展现了iTerm终端的能力,iTerm和SecureCRT等工具一样,可以做SSH客户端、telnet客户端,最方面的方式在终端上直接输入命令ssh IP进行连接,如果经常使用到,可以保存下来。
使用command + , 打开iTerm的属性页面。如下图。
点击+号新建一个Profiles,Command输入你要SSH命令。下次你就可以输入Command + o快捷键调出Profile界面进行连接远程服务器。
iTerm2没有像SecureCrt的保存密码功能,当使用iTerm2连接到远程服务器后,iTerm2也自动完成配色。每个Profile可以自定义属性,比如配置外观,命令等等。
当我使用SSH远程到我的虚拟机Ubuntu后,想与Ubuntu进行文件传输,首先想到的是在SecureCrt上经常输入的sz,rz命令,但是iTerm2是没有集成。下面介绍如何集成Zmodem。
1)在mac上安装Zmodem的实现,lrzsz。
brew install lrzsz
我使用的homebrew包管理工具,也可以使用port进行安装,或者下载下来手动安装都可以。
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
#!/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按钮
添加如下配置:
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
快捷键 | 用途 |
command+, | 弹出偏好设置窗口 |
command+o | 弹出profiles界面 |
command+d | 分割窗口 |
command+t | 新建选项卡窗口 |
command+w | 关闭窗口 |
command+数字 | 切换到第(x)个选项卡窗口 |
command+左/右箭头 | 切换选项卡窗口,按方向依次切换 |
command+~ | 隐藏/显示iTerm2 |
fn+左箭头 | 控制光标至开头 |
fn+右箭头 | 控制光标至结尾 |
command+f | 查找 |
command+e+r | 清屏 |
control+r | 匹配之前输入过的命令 |