为什么选择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 // 顺时针旋转当前窗口的面板
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。