Mac下iTerm2+Tmux配置
为什么选择iTerm2
兼容性优于原生的Terminal,如远程服务器vi版本过低时Terminal会容易出错,iTerm2相对稳定。
快捷键丰富,自带已经开业满足大多数人需求,还可以自定义。
搜索功能强大,搜索出来的匹配字符高亮显示
自动补全:快捷键 command + ;
与tmux兼容性好,分屏功能强大,配合大显示器使用,效率和体验都加倍。
还有很多,以上只列出我个人在使用过程中遇到的一些对比。
为什么用tmux
tmux是什么?
Terminal Multiplexer,简单的说:它是一个多终端进程管理器
主要用到的功能:配合iTerm2多终端界面分屏显示,后台运行终端进程
它的主要功能也是用它主要原因,当然它的功能远非这些
另外:iTerm2的最新版已经集成了tumx,但在我配置和使用过程中发现乱,建议还是单独安装tmux来配合iTerm2使用。
配置与安装
iTerm2直接在其官网下载安装
下载地址 [http://iterm2.com/downloads.html]
下载后,直接已到[应用程序]文件夹即可
通过homebrew 安装 tmux
安装 brew ,在终端下执行下面命令
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" Screen Shot 2015-01-04 at 9.34.16 PM.png1278x288 85.7 KB
安装 tmux,在终端下执行下面命令
brew install tmux Screen Shot 2015-01-04 at 9.34.46 PM.png1280x310 82.5 KB
注意:以上命令在执行过程中可能会报错,多半是访问墙外网络不稳定的原因,多试几次即可,或直接用代理或vpn。
简单使用
主要使用场景是ssh连接到远程的linux服务器
(如果不想每次ssh都输入密码可以参考吧里另一个帖子ssh免密码证书登陆),对远端服务器进行管理和维护。
一般过程和操作:
- 打开iTerm2
- 输入 tmux,进入tmux界面
ctrl+b 后 按 % 分割终端窗口,按 ”水瓶分割窗口
在其中一个界面通过ssh登录到远程服务器,进行所需的维护操作
在被分割出另一个界面进行本地的命令行操作
将远程服务器操作隐藏到后台继续执行:ctrl + b 后 按d
回到该进程:执行命令:tmux attach
附上一些常用的快捷命令:
iTerm2 常用快捷键
⌘ + 数字 : 各 tab 标签切换 ⌘ + f : 查找 ,所查找的内容会被自动复制 ,输入查找的部分字符,找到匹配的值按tab,即可复制 ⌘ + d : 横着分屏 ⌘ + shift + d : 竖着分屏 ⌘ + r = clear : 换到新一屏,而不是 类似clear ,会创建一个空屏 ctrl + u :清空当前行,无论光标在什么位置 () + ⌘ + ; : [() 输入的命令开头字符],会自动列出输入过的命令 ⌘ + shift + h : 会列出剪切板历史 ⌘← / ⌘→ : 到一行命令最左边/最右边 ⌘ + enter : 全屏
tmux 常用快捷键
Ctrl+b // 激活控制台;此时以下按键生效 系统操作 ? // 列出所有快捷键;按q返回 d // 脱离当前会话;这样可以暂时返回Shell界面,输入tmux attach能够重新进入之前的会话 D // 选择要脱离的会话;在同时开启了多个会话时使用 Ctrl+z // 挂起当前会话 r // 强制重绘未脱离的会话 s // 选择并切换会话;在同时开启了多个会话时使用 : // 进入命令行模式;此时可以输入支持的命令,例如kill-server可以关闭服务器 [ // 进入复制模式;此时的操作与vi/emacs相同,按q/Esc退出 ~ // 列出提示信息缓存;其中包含了之前tmux返回的各种提示信息 窗口操作 c // 创建新窗口 & // 关闭当前窗口 数字键 // 切换至指定窗口 p // 切换至上一窗口 n // 切换至下一窗口 l // 在前后两个窗口间互相切换 w // 通过窗口列表切换窗口 , // 重命名当前窗口;这样便于识别 . // 修改当前窗口编号;相当于窗口重新排序 f // 在所有窗口中查找指定文本 面板操作 ” // 将当前面板平分为上下两块 % // 将当前面板平分为左右两块 x // 关闭当前面板 ! // 将当前面板置于新窗口;即新建一个窗口,其中仅包含当前面板 Ctrl+方向键 // 以1个单元格为单位移动边缘以调整当前面板大小 Alt+方向键 // 以5个单元格为单位移动边缘以调整当前面板大小 Space // 在预置的面板布局中循环切换;依次包括even-horizontal、even-vertical、main-horizontal、main-vertical、tiled q // 显示面板编号 o // 在当前窗口中选择下一面板 方向键 // 移动光标以选择面板 { // 向前置换当前面板 } // 向后置换当前面板 Alt+o // 逆时针旋转当前窗口的面板 Ctrl+o // 顺时针旋转当前窗口的面板