Linux【4】-文本编辑3-tmux
tmux是指通过一个终端登录远程主机并运行后,在其中可以开启多个控制台的终端复用软件
一、简介
安装:
mac下tmux的安装
brew install tmux
二、tmux快捷键
Ctrl+b | 激活控制台;此时以下按键生效 | |
系统操作 | ? | 列出所有快捷键;按q返回 |
d | 脱离当前会话;这样可以暂时返回Shell界面,输入tmux attach能够重新进入之前的会话 | |
D | 选择要脱离的会话;在同时开启了多个会话时使用 | |
Ctrl+z | 挂起当前会话 | |
r | 强制重绘未脱离的会话 | |
s | 选择并切换会话;在同时开启了多个会话时使用 | |
: | 进入命令行模式;此时可以输入支持的命令,例如kill-server可以关闭服务器 | |
[ | 进入复制模式;此时的操作与vi/emacs相同,按q/Esc退出 | |
~ | 列出提示信息缓存;其中包含了之前tmux返回的各种提示信息 | |
窗口操作 | c | 创建新窗口 |
& | 关闭当前窗口(退出了tumx) | |
数字键 | 切换至指定窗口 | |
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 | 顺时针旋转当前窗口的面板 |
三、具体操作
由于 tmux 允许随时随地断开或重新接入会话(Session),所以最大的作用就是在远程服务器上持久地保存工作状态。一个终端可以有多个会话,一个会话可以有多个窗口
[Ctrl+b]+ ? 显示快捷键帮助
分离会话(detach)
[Ctrl+b] [d] 返回终端界面
看到可用的会话
tmux ls 0: 1 windows (created Wed Dec 9 16:29:12 2015) [186x60] 1: 4 windows (created Mon Dec 14 18:38:23 2015) [186x60]
连接到会话0
tmux attach-session -t 0
简写 tmux attach -t <目标会话名>
tmux a -t <目标会话名>
创建会话
tmux new-session -s dev 创建一个会话,取名为 dev
tmux new -s session-name (缩写)
关闭会话
tmux kill-session -t session-name
<strong>创建新窗口</strong>
C-b c
<strong>修改当前窗口名称</strong>
c-b ,
Ctrl +b 后 用page up 和page down可以来上下翻页;Esc 退出翻页的状态
tmux下无法滚屏很烦人。 一句话就解决了: CTRL + B 再按
<span style="color: #ff0000;">[</span>
这时就可以用光标键来操作翻页滚屏,然后小写字母推出翻页模式
Ctrl + C 退出
如果需要兼容vim的操作方式,那么在~/.tmux.conf加上一行:
setw -g mode-keys vi
Ctrl +b 后 用z来将一个窗口放大,然后再按z,就返回多窗口模式
3.7 显示时间
Ctrl B t
tmux的手册非常详尽,请输入man tmux后阅读
四、报错
报错1
sessions should be nested with care, unset $TMUX to force
解决办法:在terminal里执行: unset TMUX,然后再执行tmux attach就可以了
报错2
如果连接上以后,屏幕只占很小的一部分
tmux detach -a
报错3
can't create socket
解决办法:
strace -e trace=file tmux
查看到的报错信息:
open("/lib64/tls/libpthread.so.0", O_RDONLY) = 3
access("/bin/bash", X_OK) = 0
access("/home/xxx/.tmux.conf", R_OK) = -1 ENOENT (No such file or directory)
mkdir("/tmp//tmux-501", 0700) = 0
lstat("/tmp//tmux-501", {st_mode=S_IFDIR|0700, st_size=4096, ...}) = 0
can't create socket
Process 3171 detached
看起来是「/tmp/tmux-501」这个目录出了问题,删掉这个目录,tmux就可以正常启动了。
注: 我这里的问题,是因为qiime 默认的 /tmp 空间不足,所以我修改了TMPDIR的路径,从而导致
报错4
tmux卡主了
可以直接
rm -fr /tmp/tmux-XXXX
参考资料
这里是一个广告位,,感兴趣的都可以发邮件聊聊:tiehan@sina.cn
个人公众号,比较懒,很少更新,可以在上面提问题,如果回复不及时,可发邮件给我: tiehan@sina.cn
个人公众号,比较懒,很少更新,可以在上面提问题,如果回复不及时,可发邮件给我: tiehan@sina.cn