当前位置 : 首页 » 文章分类 :  开发  »  iTerm2使用笔记

iTerm2使用笔记

iTerm2使用笔记


Tmux

Tmux使用手册
http://louiszhai.github.io/2017/09/30/tmux/

手把手教你使用终端复用神器 Tmux,丢掉鼠标不是梦[视频]
https://zhuanlan.zhihu.com/p/43687973


Profile 保存ssh连接信息

打开 Profiles 点 + 加号新建 profile
General 页面中,Command 选择 Command,输入ssh登录命令 ssh root@127.0.0.1
Advanced 页面中,点 Triggers -> Edit,点 + 加号新增一个触发器,触发器的作用是匹配终端输出的字符串然后执行相应动作
Regular Expression 输入 password,表示匹配 password 串
Action 选择 Send Text
Parameters 填入登录密码,密码最后以 \n 结束表示输完密码后换行


Dynamic Profiles

iTerm2 启动时会创建 ~/Library/Application Support/iTerm2/DynamicProfiles 目录并监控其中的文件变化,当其中的配置文件发生改变时,iTerm2 会立即重新装载所有 Profile

此文件夹中的文件应遵循 Apple Property Lists 格式,对于文件扩展名无要求。若有任一文件格式不对,变动不会生效。

Dynamic Profiles
https://iterm2.com/documentation-dynamic-profiles.html

利用Dynamic Profiles迁移iTerm2 Profile

1、旧电脑上, CMD+, 打开 preferences 设置,选择 profiles -> Other Actions -> Save All Profiles as JSON
将全部 profile 配置保存到 json 文件中。

2、新电脑上,安装 iTerm2,CMD+, 打开 preferences 设置,选择 profiles -> Other Actions -> Import Json Profiles… 选择刚才到处的 json 文件。

注意:导出全部 profile 时会将 default profile 也导出,default profile 中有我们配置的字体、颜色等,在新环境上导入后如果看到多个 default profile,前面带星号的是当前在用的,可以删除旧的 default profile。


Mac终端增强iTerm2 + Oh My Zsh

iTerm2 + Oh My Zsh 打造舒适终端体验
https://github.com/sirius1024/iterm2-with-oh-my-zsh

iTerm2
https://www.iterm2.com/
https://github.com/gnachman/iTerm2

Oh My Zsh
https://ohmyz.sh/
https://github.com/robbyrussell/oh-my-zsh

安装 PowerLine

提示没有 pip 时,改用 pip3

pip3 install powerline-status --user

SSL_ERROR_SYSCALL in connection to github.com:443

安装 Oh My Zsh 时执行

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

报错
fatal: unable to access ‘https://github.com/ohmyzsh/ohmyzsh.git/': LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to github.com:443

解决:
打开 https://www.ipaddress.com/
搜索 raw.githubusercontent.com
把四个 ip 都填入 /etc/hosts 中

185.199.108.133 raw.githubusercontent.com
185.199.109.133 raw.githubusercontent.com
185.199.110.133 raw.githubusercontent.com
185.199.111.133 raw.githubusercontent.com

一开始只填了一个,还是会报错。


iTerm2结合expect脚本和profile实现跳板机快速ssh登录

1、创建 expect 脚本 ~/.ssh/relay.exp

#!/usr/bin/expect
#trap sigwinch and pass it to the child we spawned
trap {
 set rows [stty rows]
 set cols [stty columns]
 stty rows $rows columns $cols < $spawn_out(slave,name)
} WINCH

# 设置超时时间,默认超时时间10s
set timeout 30

# 登录跳板机
spawn ssh relay
# 等待1秒钟,等跳板机打印提示字符串
sleep 1

expect {
    # 当日首次登陆跳板机,需要先输入跳板机密码,然后continue等待ssl提示
    "*password:*" {send "tiaobanjimima\n"; exp_continue;}

    # 通过共享session自动登录跳板机,直接根据profile参数登录目标主机
    "*ssl*" {send "ssh [lindex $argv 0]@[lindex $argv 1]\n"}
}

expect {
    "yes/no" {send "yes\n"; exp_continue;} # 匹配到输出'yes/no' 后发送 yes\n
    "*password:*" {send "[lindex $argv 2]\n"} # 匹配到输出'password:' 后输入密码
}

# 将控制权交给控制台
interact

[lindex $argv 0] 表示获取第一个命令行参数
最后的 interact 表示执行完成后保持交互状态,把控制权交给控制台,这个时候就可以手工操作了。如果没有这一句登录完成后会退出,而不是留在远程终端上。如果你只是登录过去执行一段命令就退出,可改为[expect eof]

2、给脚本添加可执行权限
chmod u+x relay.exp 添加可执行权限,或者也可以 expect relay.exp 作为 expect 的参数传入

3、CMD+, 打开 iTerm2 的 Preferences 配置,选择 Profile 标签
点加号新建一个profile,配置如下图 relay.exp 后面的三个参数依次是 目标服务器用户 目标服务器ip 目标服务器密码,不同的服务器配置不同的profile,共用同一个 expect 脚本。


iTerm2 Profile 配置

4、之后直接点击这个profile就可以自动登录目标服务器,或者可以 CMD+O 快捷键打开profile选择界面,选择对应的profile后回车直接登录。

iTerm2结合 expect 脚本实现 ssh 登录跳板机后登录指定服务器
https://juejin.im/post/6844903761521950727


iTerm2配置

修改选中字体颜色

选中字体颜色和背景太接近,看不清楚
Preferences -> Profiles -> Colors 选择Selection颜色即可

设置终端历史行数

ITERM 默认设置了终端能保留的历史输出行数,在进行调试时特别不方便,一旦输出过多就无法看到完整的历史记录。
在 Preference=>Profiles=>Terminal 内将 Scrollback Lines 右侧的 Unlimited scrollback 勾选上即可保留所有的历史输出。


iTerm2使用技巧

选中即复制

在iTerm2 中,选中即复制,所以在 iTerm2 的 session 中不用再去 CMD+c, 可直接将选中的文本复制到剪切板中去,通常选中有以下两种方法:

1、使用鼠标选择。
双击选中,三击选中整行,四击智能选中

2、使用 CMD+f 搜索,查找内容会高亮显示,通过 tab / shift+tab 扩大选中范围,快捷键可在 Profiles > Keys 中设置。

iTerm2 清屏

直接执行 clear 命令只是滚动到一个新页面,往上翻还能翻到之前的内容,CMD+F 搜索也会搜到之前的内容
CMD + K 可彻底清屏,搜不到也翻不到之前的内容

CMD+鼠标智能选中

按住 CMD 键
1.可以拖拽选中的字符串;
2.点击 url:调用默认浏览器访问该网址;
3.点击文件:调用默认程序打开文件;
4.如果文件名是filename:42,且默认文本编辑器是 Mac vim将会直接打开到这一行;
5.点击文件夹:在 finder 中打开该文件夹;
6.同时按住opt键,可以以矩形选中。

/bin/zsh 找不到命令

问题原因
在 Terminal 中访问得到 command not found 的具体原因可能如下:
1、当前调用的命令确实没有安装,如:”lorem spear”;
2、当前命令安装了,但是没有创建软链接到 */bin;
3、当前命令已创建软链接到bin,但是所在bin路径没有被export;

解决方法
首先 zsh 的配置文件在 ~/.zshrc,编辑此文件,export PATH 环境变量
source ~/.zshrc 使生效

“command not found”问题的解决办法
https://www.jianshu.com/p/bba968ca3957

iTerm2分屏


iTerm的标签Tab和面板Panel

iTerm2快捷键

CMD+O 打开Profiles列表页

CMD+O 打开Profiles列表页,输入ip或名称筛选定位到 profile,回车即可快速连接,非常流畅

CMD+D 纵向分割标签

Tab纵向分割:⌘+d

CMD+Shift+D 横向分割标签

Tab横向分割:⌘+shift+d

CMD+[ 切换Panel

切换Tab中的panel:⌘ + [ 或者 ⌘+ opt + arrow

CMD+Left/Right 左右切换标签

Ctrl+Tab 切换最近2个标签页

Tab 切换:Ctrl+Tab 或 ⌘ + arrow 或者 ⌘+shift + [
Atom,Chrome,iTerm2有相同快捷键

CMD+N 切换到第N个标签上

快速切换到Tab上:⌘ + Num
Atom,Chrome,iTerm2有相同快捷键

CMD+Shift+Enter 最大化/还原Panel

最大化Tab中的pane,隐藏本Tab中的其他pane:⌘+ shift +enter , 再次还原

CMD+W 关闭Panel

关闭panel:⌘ + w
和Atom以及Chrome中关闭标签页的快捷键一样

CMD+T 新建标签

新建Tab :⌘ + t

CMD+Enter 最大化/还原标签

最大化Tab : ⌘ + enter 再次还原

CMD+I 重命名标签(双击tab)

CMD + I 打开 Preference 编辑页面,输入 tab title 后直接 esc 退出即可。
或者双击 tab 可直接编辑 tab title

关于 iTerm2 你不知道的一些事
https://juejin.im/entry/58bf6cb4a22b9d00588927aa


上一篇 接下来要学习的

下一篇 Postman使用笔记

阅读
评论
2k
阅读预计8分钟
创建日期 2018-07-05
修改日期 2022-11-02
类别

页面信息

location:
protocol:
host:
hostname:
origin:
pathname:
href:
document:
referrer:
navigator:
platform:
userAgent:

评论