前言
为什么最近又在研究iTerm呢?
因为Mac系统上面实在没有好用点的SSH工具,研究了好久,也就Termius以及Electerm稍微能用用。
Termius简单实在一些,Electerm稍微有点卡,但是对于SFTP使用比较友好,要再说一个就是WindTerm,它其实整体还不错,唯一不舒服的一点就是通过SFTP修改某个文件,一直会显示本地文件已更改,是否要上传到服务器(未修改完之前也一直提示,这个真的不能忍~)。
实在是被Windows上的MobaXterm养刁了,MobaXterm真的太好用了!
FinalShell我也尝试了一下,整体其实都很好,要说问题就是个人开发,感觉有点虚,而且最关键的是尝试了一下它自带的海外加速功能,直接报警说异地登陆了,它也没提示是说通过它的服务器进行中转,吓的我赶紧改密码。
顺便说一下为什么不提Tabby,其实我用过一段时间,感觉开着太占资源了,之前好像快1G,不知道后来有没有优化。。。
最后还是理了一下思路,平时文件传输很少,SFTP能有最好,没有也凑合,那么既然对SFTP需求不大,就直接使用自带的终端集成iTerm就行了。
iTerm最麻烦的就是每次访问都要输入密码,把密码解决了就OK了。
网上有很多教程,一搜一大把。
既然Mac上面的SSH软件都不太能满足我的要求,那不如退而求其次,化繁为简就用iTerm2吧。
关键在于iTerm2也支持简单的文件下载上传。
安装
iTerm2安装
iTerm2安装就不说了,上iTerm2 - macOS Terminal Replacement就行,搭配ohmyzsh,也是Oh My Zsh - a delightful & open source framework for Zsh官网,一条命令。
Shell Integration安装
iTerm2 的 Shell Integration 功能主要是通过 SFTP/SCP 协议 来实现文件上传和下载的。
不仅安全的同时,操作简便作为其特色,可谓是化腐朽为神奇。
接下来说重点:
1.Shell Integration需要在本地设备以及服务器上都安装
打开iTerm2,两个窗口,1个是本地终端以及1个服务器终端,分别在两个终端界面时点击左上角的【iTerm2】-【Install Shell Integration】进行安装。
也可以在两个终端分别执行:
curl -L https://iterm2.com/shell_integration/install_shell_integration.sh | bash
2.配置文件
安装后两台设备还无法连接,需要让它们知道彼此。
-
本地设备:
终端中运行:
vim ~/.ssh/config
添加以下内容:
Host example.com #你的域名 Port 22 #SSH端口号
-
服务器端:
根据服务器使用的终端,找到它的配置文件进行修改,比如我用的zsh,它的配置文件就是
~/.zshrc
。配置文件中,找到以下位置,一般在最底部,在它的上面添加一行:
export iterm2_hostname=example.com #添加这一行,example.com与上面的Host一栏对应 test -e "${HOME}/.iterm2_shell_integration.zsh" && source "${HOME}/.iterm2_shell_integration.zsh"
完成这两步之后,重新登陆一下(或者重新启动),再次连接后就能看到最左侧有个蓝色小箭头,说明连接成功了,右键点击文件(夹),Download with scp from ...
完成下载。
同理,按住 Option(或 Alt)⌥
键,将文件拖到终端进行上传。
其他宝藏功能
Shell Integration 提供的功能远不止文件传输。除了最基础的文件上传下载,它还集 命令管理、状态提示、效率提升 等功能于一声,尤其是它的媒体显示和会话管理。
功能类别 | 功能点 | 描述/效果 | 常用操作/备注 |
---|---|---|---|
⚡ 命令与提示 | 命令历史提示 | 快速查看和选择历史命令,不依赖 Shell 历史 | Cmd + ; (提示), Shift + Cmd + ; (历史命令) |
快速跳转命令标记点 | 在命令输出间快速跳转 | Cmd + Shift + ↑/↓ |
|
智能标记 (Marks) | 每个命令提示符前显示蓝色三角标记,便于定位 | ||
🔔 通知与提醒 | 命令结束通知 | 长命令结束后发送系统通知 | Option + Cmd + A 或通过菜单设置 |
触发器 (Triggers) | 根据输出模式匹配触发动作(如报错标红) | 需在设置中自定义正则表达式和动作 | |
📂 文件操作 | 文件下载 | 右键文件列表中的文件名即可下载 | |
文件上传 | 拖拽文件到终端窗口上传(配合按键) | 需按住 Option 键 |
|
🖼️ 媒体显示 | 终端内显示图片 | 使用 imgcat 命令直接在终端内显示图片缩略图 |
|
🔄 会话管理 | 即时回放 (Instant Replay) | 像看录像一样回放之前终端输出的内容 | Option + Cmd + B |
🧩 其他实用功能 | 密码管理器 (Password Manager) | 安全存储密码,方便登录 | 使用 macOS 钥匙串 |
剪贴板历史 | 查看和使用复制历史 | Shift + Cmd + H |
|
光标定位辅助 | 高亮显示光标所在行,方便查找 | ||
时间戳显示 | 在输出旁显示时间戳 | View > Show Timestamps 或 Shift + Cmd + E |
|
捕获输出 | 定义触发器来捕获和跟踪特定输出(如日志关键信息) |
结尾
之前只是知道有iTerm,但是真正了解的时候,才知道它真的太强大了。
闻名不如一见!
如果连接不上,建议参考:scp not connecting · Wiki · George Nachman / iterm2 · GitLab