iTerm2
iTerm2是Terminal的替代品,相对于Terminal它有如下的有点
- 兼容性好,远程服务器 vi 什么的低版本能很好兼容,Terminal 则会出问题 (我是长时间在服务器上混的人,但其实并没有这种感觉~~)
- 支持 xterm-256 色,方便在终端中配置 vim/emacs 代码配色 (其实Terminal现在已经支持256色了)
- 快捷键丰富,自带/自己定义都很方便 (这个是关键,快捷键都我非常重要)
- 分屏简单方便,可以根据自己需要同时搭配上 tmux,大屏用起来爽到爆 (分屏只需要 command +(shift)+ d)
iTerm2的下载地址点击这里。
iTerm2的快捷键
- ⌘ + 数字 : 各 tab 标签切换
- ⌘ + f : 查找 ,所查找的内容会被自动复制 ,输入查找的部分字符,找到匹配的值按tab,即可复制
- ⌘ + d : 横着分屏
- ⌘ + shift + d : 竖着分屏
- ⌘ + r = clear : 换到新一屏,而不是 类似clear ,会创建一个空屏
- ctrl + u :清空当前行,无论光标在什么位置
- () + ⌘ + ; : [() 输入的命令开头字符],会自动列出输入过的命令
- ⌘ + shift + h : 会列出剪切板历史
- ⌘← / ⌘→ : 到一行命令最左边/最右边
- ⌘ + enter : 全屏
- 双击选择即复制,在其他地方command +v即可粘贴
- ⌘+; 补全命令
- 在系统偏好设置里key可以设置自己的快捷键
zsh
zsh是兼容bash,对现有的操作是没有任何的影响。而且还带来来不少新的特性来减少我们的输入:
- 连续tab,给出所有的补全列表并直接进入到选择列表 cd
- 不记得命令的参数?没关系,输入命令直接tab给出就能给出参数说明,zsh后还用得着man函数吗??? tar –
- kill进程,还需要先查进程吗?用zsh,只需tab就能把所有进程展示给你,很强大的一个功能。 kill
- 智能查找历史命令,在用或者方向上键查找历史命令时,zsh支持限制查找。比如,输入ls 然后再按方向上键,则只会查找用过的ls命令。
- 多个终端会话共享历史记录。多个窗口,tab,tmux。所有的命令历史都可以共享。
- zsh还支持后缀alias,即以什么命令打开特定的后缀名文件。例如alias -s js=mvim,输入hello.js,会以vim打开该文件,而不在需要vim hello.js。
- 递归搜索,ll */.log,find命令大部分场景被取代了。
什么是oh-my-zsh
oh-my-zsh,这玩意就是一个开源的zsh配置管理框架,提供了大量实用的功能,主题等。同时它也使zsh安装配置更加简单
如何安装zsh
1.方式基本安装:
检测是否安装zsh:
zsh --version;
通过via curl安装
curl -L https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh | sh
通过via wget安装
wget https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O - | sh
2.安装oh-my-zsh
1.克隆仓库
git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh
2.如果你已存在~/.zshrc文件,则备份现有的~/.zshrc文件(一般我们不需要)
cp ~/.zshrc ~/.zshrc.orig
3.创建一个新的zsh配置文件
cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
4.改变默认的Shell
chsh -s /bin/zsh
5.重新启动你的终端(Terminal)
注意:有可能修改默认的shell会不成功可以通过手动输入
zsh
切换到zsh模式下,失败的话可以多尝试第4个步骤
最后记得将~/.bash_prorile或者~/.profile等配置拷贝到~/.zshrc中。
tmux
什么是tmux
tmux是一个优秀的终端复用软件,类似GNU Screen,但来自于OpenBSD,采用BSD授权。使用它最直观的好处就是,通过一个终端登录远程主机并运行tmux后,在其中可以开启多个控制台而无需再“浪费”多余的终端来连接这台远程主机;当然其功能远不止于此。
tmux好处
掉线仍然能保证工作现场
tmux完全使用键盘控制窗口,实现窗口的切换
tmux快捷键
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 // 顺时针旋转当前窗口的面板