功能说明:https://www.iterm2.com/features.html
公司要求使用正版软件办公,一直以来习惯了使用secureCRT,现在需要替换一款免费的软件,如果你跟我一样,iTerm2绝对是最好的选择。
一、类似crt的session保存功能
效果如下:
1、添加方法
Profiles->Open profiles->Edit profiles
2、如果需要分组显示,可以在Tag栏填写相同的标签, 它就自动按Tag分好组了。
3、colors栏可以设置各种颜色,我比较喜欢的是对tab进行设置不同颜色,这样方便快速找到。
4、Badge:设置以后会在终端界面上显示该名称,也是为了防止误操作
5、设置session密码,有3种方法:
1)使用command,ssh-key方式登录服务器,在command里输入ssh xxx@x.x.x.x 由于是免密,也就不用输入密码了。
2)使用command,sshpass命令登录,可以在command的登录命令里带上密码。
- 首先需要安装sshpass,下载:http://sourceforge.net/projects/sshpass/files/
- 解压后,进入sshpass目录,执行安装 ./configure;make;make install
- 检查是否安装成功:sshpass -V
- 在command中添加/usr/local/bin/sshpass -p 密码 ssh -o StrictHostKeyChecking=no 用户名@192.168.1.2
【-o StrictHostKeyChecking=no 表示远程连接时不提示是否输入yes/no,如果ssh需要指定端口,在ssh后使用-p 端口参数】
3)使用脚本login shell + 本地文件
- 先写一个登录用的脚本
#!/usr/bin/expect set timeout 30 spawn ssh -p [lindex $argv 0] [lindex $argv 1]@[lindex $argv 2] expect { "(yes/no)?" {send "yes\n";exp_continue} "password:" {send "[lindex $argv 3]\n"} } interact
- 可以放在任意一个文件夹下,其中[lindex $argv 0], [lindex $argv 1], [lindex $argv 2], [lindex $argv 3] 分别代表着端口号/用户名/服务器地址/ 密码4个参数。若不需要指定端口,可以在脚本中删除-p [lindex $argv 0],同时记得改后面argv的索引。
- 配置 profile,在command里填写:脚本绝对路径 port 用户名 IP 密码
6、默认配置
对于标记了★的profile的配置,即可认为默认配置,每次新建profile的设置都会参考它作为默认配置。
二、窗口操作相关
- shell 菜单下可选以下多窗口:
?
- shell > Duplicate Tab 可以快速新建一个 tab 且保留上一个 tab 的 pane 样式
- 清空session内容
edit > Clear Buffer —— 清空所有
edit > Clear Scrollback Buffe —— 清空除了当前页面外的内容
- 恢复不小心关闭的窗口
Edit > Undo Close Session
只支持恢复几分钟前不小心关闭的(原理是赶在没有真正断开链接前)
- copy mode —— 复制模式
Edit > Copy Mode,专门切换到用于复制的模式,此模式下不能修改任何内容
无鼠标基本操作:
1)空格toggle到复制光标状态
2)上下左右剪头移动复制光标
3)更多高级操作请看文档:https://www.iterm2.com/documentation-copymode.html
- 显示命令执行时间
显示命令执行的时间 View > Show Timestamps
- 侧边工具栏
Toolbelt->Show toolbelt 显示侧边工具栏
Toolbelt->Command history 显示历史命令,但不知道为啥我的不会记录,有可能和我替换了zsh有关,通过?+; 能达到类似效果
Toolbelt->Recent Directories 最近进入的目录
Toolbelt->Actions 自定义按钮,比如可以把常输的命令保存成按钮,方便执行
- 隐藏 / 恢复 session
1)隐藏 session:
session窗口右键 > Bury 或 Session > Bury Session
2)恢复 session:
Session > Buried Sessions
三、实现secureCRT的clone功能
许多公司登录设备的时候需要先通过跳板机登录。而且往往都会为每一位开发配置一个token,动态的产生一个6位的数字串,用来作为登录密码。因为每次登录都需要输入token串是一件非常麻烦的事情,这里将通过配置来实现类似于secureCRT一样的session clone功能。
操作步骤:
- 在~目录下的.ssh文件夹冲创建一个config文件,
- 文件内容输入:
host * ControlMaster auto ControlPath ~/.ssh/master-%r@%h:%p
- 这样的话,当登录第一次登录跳板机器的时候,和往常一样,但是第二次登录同样的跳板机的时候,就不需要输入token了。
这样可以在一定程度上减少输入token的次数。
如果你细心的话,你在~/.ssh/目录下发现master-*的sock文件。它记录了你目前登录到的机器,这样的话,你登录同样的机器就会重用同一个链接了。
四、广播命令行
首先理解几个概念,从小到大:session > pane > tab > window
1、对要广播输入的session窗口右键 -> Toggle Broadcasting Input,在一个session上输命令将同步到所有选种的session里
2、更多可选设置,根据实际情况使用(shell > Toggle Broadcasting Input )?
五、与shell集成
新版本的 iTerm2 可以与unix shell(支持tcsh、zsh、bash、fish 2.3)集成,提供更多功能。
1)我这里选用zsh,以下两种安装方式
# curl 安装方式 sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
# wget 安装方式 sh -c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"
2)把 Zsh 设置为当前用户的默认 Shell(这样新建标签的时候才会使用 Zsh)
$ chsh -s /bin/zsh
3)修改主题
编辑vim ~/.zshrc文件,将主题配置修改为ZSH_THEME="agnoster",这是比较常用的 zsh 主题之一,你可以挑选你喜欢的主题,zsh 主题列表:https://github.com/robbyrussell/oh-my-zsh/wiki/themes
4)修改字体
使用上面的主题,需要 Meslo 字体支持,要不然会出现乱码的情况,字体下载地址:我使用的是Menlo for Powerline(有的说Meslo LG M Regular for Powerline.ttf,不确定是不是同一个),下载好之后,直接在 Mac OS 中安装即可。
然后打开 iTerm2,按Command + ,键,打开 Preferences 配置界面,然后Profiles -> Text -> Font -> Chanage Font,选择Menlo for Powerline字体。
如果有用vscode的也需要设置,"terminal.integrated.fontFamily": "Menlo for Powerline",
5)隐藏用户名和主机名
有时候我们的用户名和主机名太长,终端显示的时候会很不好看,我们可以通过设置过滤掉。
编辑vim ~/.zshrc文件,增加DEFAULT_USER="用户名"配置。
六、其他功能
1)命令回放功能,有点类似视频录制。
进入回放:? + opt + b
方向键控制时间 :arrow
退出回放:esc
2、命令行补全功能:?+;
1)命令输入部分时执行提示补全信息
2)没有任何输入时执行,显示历史命令信息
3、自动记录日志
?七、快捷键
本文参考:
https://www.cnblogs.com/xjnotxj/p/10272591.html
https://www.cnblogs.com/xishuai/p/mac-iterm2.html