linux 下令 tmux 用法详解

打印 上一主题 下一主题

主题 791|帖子 791|积分 2373

一、tmux 办理的痛点(screen下令一样可以办理,但是tmux功能更强盛)

痛点一:大数据传输的漫长一夜

信任做过 Linux 服务运维的同砚,都用 scp 进行过服务器间的大文件网络传输。一样平常这必要很长的时间,这期间,如果工作电脑出现断网大概断电的情况,则会导致远程毗连工具无法与服务器通讯,从而使得它所控制的数据传输也因此中断。

情景再现:
  1. localhost:~ roc$ ls -hl
  2. total 36419584
  3. -rw-------  1 roc  staff    17G  1 20 11:06 win7.vdi
  4. localhost:~ roc$ scp -P 22000 win7.vdi roc@roclinux.cn:/home/roc
  5. win7.vdi                                                                              0% 7296KB 800.3KB/s 6:19:05
复制代码
一个 17GB 的大文件,刚刚开始传输,预估耗时 6 小时 19 分钟,谁能保证中间不出现关机和断电的情况呢。

有些同砚说可以用 nohup 来办理啊,是的,这是一个办法,但是利用 nohup 的问题在于如果同时传输的任务浩繁,则最后你自己可能都分不清哪个任务对应哪个传输了,何况 nohup 还会留下 nohup.out 这么一个暂时文件在那里。

另有同砚说,纵然中断了,也可以断点续传啊。惋惜的是,scp 并不支持断点续传。如果改用 rsync 倒是可以,惋惜 rsync 参数用起来很是复杂,谁能保证每位运维工程师都能熟练掌握那么多复杂的参数呢?这个时候,请试一试 tmux 吧!

痛点二:正在编译却被拉去开会


和大文件数据传输情况雷同,一些大型的开发项目的代码编译过程,往往也必要很长的时间,短则几分钟,长则一彻夜。对于一彻夜的编译来说,这要是中间出现断网断电,那就相称悲剧了。整个项目希望就又要向后推迟至少一天。这个时候,我们向你推荐 tmux!
痛点三:多个窗口切换到晕

作为运维工程师,一定有过在浩繁窗口间切换,查看各种服务器上的信息和状态的情况,这个时候,如果没有一款好用的窗口管理软件,过不了多久,你就会晕头转向了。就像图 2 所示的这种情况。

痛点四:一屏显示多窗口之殇

偶然候为了进行多文件内容对比,如果没有一款很好用的分屏管理工具,那么我们只好创建多个终端,然后手动调整它们的大小和位置,如图 3 所示。

二、tmux 下令安装、配置及窗口元素先容

1. 下令安装

  1. $ sudo apt-get install tmux
复制代码
打开tmux 运行该下令会新建一个窗口为0,此时窗格就是窗口的默认会话,会话名默认为0,也可以自界说会话名字,这个后面会说到。
  1. $ tmux
复制代码
按下Ctrl+d大概显式输入exit下令,就可以退出 Tmux 窗口
2. 配置

首先,如果你有一个已有的 tmux 配置文件,请对其进行备份。tmux 的配置文件是 ~/.tmux.conf
特殊是要配置鼠标操纵,这部分很重要否则记不住切换的一些下令
  1. //18.04配置
  2. #below reset tmux prefix command key
  3. set -g prefix C-x
  4. unbind C-b
  5. bind C-x send-prefix
  6. #set swap pane key
  7. bind-key k select-pane -U
  8. bind-key j select-pane -D
  9. bind-key h select-pane -L
  10. bind-key l select-pane -R
  11. set-option -g mouse on
复制代码
tmux下令窗口鼠标滚轮滚动出现^[[A^[[A^[[A^[[A^[[A^[[A^,以是必要添加:
  1. set-option -g mouse on
复制代码
在14.04上会出现鼠标不能选取窗口或则滚轮滚动窗口,故将:
  1. set-option -g mouse on
复制代码
替换为
  1. setw -g mode-mouse on
  2. set -g mouse-select-pane on
  3. set -g mouse-resize-pane on
  4. set -g mouse-select-window on
复制代码
执行:
  1. tmux source-file ~ .tmux.conf
复制代码
重新加载当前的Tmux配置,使配置收效。
此设置的另一个副作用是我无法再以通常的方式进行鼠标选择 - 必须用鼠标左键按 Shift。
办理方式:
.tmux.conf 添加(参考:Mouse scrolling and selection in terminal with tmux - Stack Overflow):
  1. set -g terminal-overrides 'xterm*:smcup@:rmcup@'
  2. #其中 xterm* 是终端在 $TERM 环境变量中报告自身的内容。如果您以交互方式设置该选项,您可能需要分离、重置终端并重新连接才能正常工作。
  3. #注意:如果您使用 termcap 而不是 terminfo,请使用 ti 和 te 而不是 smcup/rmcup .
复制代码
 
为了使自身的快捷键和其他软件的快捷键互不干扰,Tmux 提供了一个快捷键前缀。当想要利用快捷键时,必要先按下快捷键前缀,然后再按下快捷键。Tmux 所利用的快捷键前缀默认是组合键 Ctrl-b(同时按下 Ctrl 键和 b 键)。例如,如果你想通过快捷键列出当前 Tmux 中的会话(对应的快捷键是 s),那么你只必要做以下几步:
  1. • 按下组合键 Ctrl-b (Tmux 快捷键前缀)
  2. • 放开组合键 Ctrl-b
  3. • 按下 s 键
复制代码
3. 窗口元素先容


三、常用操纵

1.  会话操纵

  1. tmux new -s <session-name>              新建会话
  2. tmux detach                            分离会话
  3. tmux ls                                查看当前所有的Tmux会话
  4. tmux a -t 0                            使用会话编号
  5. tmux a -t <session-name>               使用会话名称
  6. tmux kill-session -t 0                 使用编号
  7. tmux kill-session -t <session-name>     使用会话名称
  8. tmux switch -t 0                       使用会话编号
  9. tmux switch -t <session-name>          使用会话名称
  10. tmux rename-session -t 0 <new-name>     重命名会话
复制代码
session 总结
session 在 tmux 操纵当中非常重要,希望你可以熟练的利用以上操纵:
新建 session -> 离开 session -> 查看 session 列表 -> 进入 session -> 关闭 session -> 差别 session 之间的切换 -> 重命名 session。
2. 窗格操纵

  1. Ctrl+b %                     划分左右两个窗格
  2. Ctrl+b "                     划分上下两个窗格
  3. Ctrl+b <arrow key>           光标切换到其他窗格
  4. Ctrl+b ;                     光标切换到上一个窗格
  5. Ctrl+b o                     光标切换到下一个窗格
  6. Ctrl+b {                     当前窗格与上一个窗格交换位置
  7. Ctrl+b }                     当前窗格与下一个窗格交换位置
  8. Ctrl+b Ctrl+o                所有窗格向前移动一个位置,第一个窗格变成最后一个窗格
  9. Ctrl+b Alt+o                 所有窗格向后移动一个位置,最后一个窗格变成第一个窗格
  10. Ctrl+b x                     关闭当前窗格
  11. Ctrl+b !                     将当前窗格拆分为一个独立窗口
  12. Ctrl+b z                     当前窗格全屏显示,再使用一次会变回原来大小
  13. Ctrl+b Ctrl+<arrow key>      按箭头方向调整窗格大小
  14. Ctrl+b q                     显示窗格编号
  15. ctrl+b :selectp -t 0         跳转到编号为0的窗格
复制代码
3. 窗口操纵

  1. tmux new-window-n <window-name>                 新建窗口
  2. tmux select-window -t <window-number>           切换窗口
  3. tmux select-window -t <window-name>             切换到指定名称的窗口
  4. tmux rename-window <new-name>                   重命名窗口
复制代码
4. 其他下令

  1. tmux list-keys                   列出所有快捷键,及其对应的 Tmux 命令
  2. tmux list-commands               列出所有Tmux命令及其参数
  3. tmux info                        列出当前所有Tmux会话的信息
  4. kill-server                    关闭所有会话
复制代码


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

前进之路

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表