在《我在 Mac 中试过用的那些 shell 工具》中最后介绍 iTerm 的安装以及基本使用,但有一个很重要的功能没有介绍,那就是会话管理。
本文介绍 iTerm2 的会话管理以及一些其他配置。
iTerm2 的会话管理没有那么直观,但功能很强大。下面介绍两种方式的会话:直连和跳板机 。
1、在 .ssh 目录中创建文件 iterm2login.sh ,内容如下:
#!/usr/bin/expect
set timeout 10
set ip "111.22.33.44"
set port "12345"
set username "root"
set password "abc\$123"
spawn ssh -p $port $username@$ip
expect {
"yes/no" {send "yes\r";exp_continue;}
"*password:*" { send "$password\r" }
}
interact
2、输入 Command+,
打开 iTerm2 的设置界面,如下图,点击加号添加一个新的 Profile :
3、进行配置:
有一种场景是一台外网服务器作为跳板机,先远程到外网服务器,再从外网服务器连接到内网服务器。通过配置可以实现,直接通过跳板机登录到内网。
1、在 .ssh 目录中创建文件 iterm2login_inner.sh ,内容如下:
#!/usr/bin/expect
set timeout 10
set ip "111.22.33.44"
set port "12345"
set username "root"
set password "abc\$123"
# 从命令行参数获取内网服务器的IP、用户名和密码
set internal_ip [lindex $argv 0]
set internal_username [lindex $argv 1]
set internal_password [lindex $argv 2]
# 登录跳板机
spawn ssh -p $port $username@$ip
expect {
"yes/no" {send "yes\r";exp_continue;}
"*password:*" { send "$password\r" }
}
# 登录内网
expect "# " {send "ssh $internal_username@$internal_ip\r"}
expect {
"yes/no" {send "yes\r";exp_continue;}
"*password:*" { send "$internal_password\r" }
}
interact
2、profile 的配置如下:
在 iTerm2 中查看一些文件的内容,会使用 cat 命令,如果是查看一些代码文件,如果没有语法高亮就不太方便阅读。
使用 bat 工具有三种功能:
在 iTerm2 中执行下面命令就可以安装,详细可以参考 Github 地址:https://github.com/sharkdp/bat
brew install bat
执行下面命令进行别名设置,设置后使用熟悉的 cat 命令就可以了:
echo "alias cat='bat --paging=never'" >> ~/.zshrc
source ~/.zshrc
使用命令 cat main.js -A
就可以看到,空格、换行等都能显示,如果有中文还会转为 Unicode 编码:
之前使用 Termius ,使用 vi 打开一个文件时,可以使用触模板或者鼠标的滚轮进行快速浏览文件内容,但在 iTerm2 中默认是没有开启的,可以按照下面设置进行开启:
1、打开设置界面,切换到 Advanced 页签,然后在搜索框中输入 mouse 进行过滤:
2、找到下图红框位置的配置项,分别配置为/j
和 /k
Cmd + ,
:打开 iTerm2 的偏好设置Cmd + T
:新建一个标签页Cmd + W
:关闭当前标签页Cmd + Shift + [
:切换到左侧的标签页Cmd + Shift + ]
:切换到右侧的标签页Cmd + 1
到 Cmd + 9
:直接切换到特定编号的标签页Cmd + N
:新建一个 iTerm2 窗口Cmd + F
:在当前标签页中打开查找框Cmd + K
:清除从光标位置到屏幕底部的所有内容Cmd + D
:垂直分屏Cmd + Shift + D
:水平分屏Ctrl + Cmd + F
:切换到全屏模式Cmd + Q
:退出 iTerm2