tmux 是一个终端复用器(terminal multiplexer)。

简介

tmux 是一个终端复用器类自由软件,功能类似 GNU Screen,但使用 BSD 许可发布。用户可以通过 tmux 在一个终端内管理多个分离的会话,窗口及面板,对于同时使用多个命令行,或多个任务时非常方便。 — 维基百科

基本概念

tmux 的三个重要概念:会话(session)窗口(window)窗格(pane)

一个会话(session) 可以有多个窗口(window),一个窗口(window)又可以有多个窗格(pane)

安装

# macOS$ brew install tmux# centos$ yum install tmux

前缀键

tmux 的快捷键都要通过前缀键才可以使用。默认的前缀键是“Ctrl+b”,即先按下“Ctrl+b”进入快捷键模式,再按快捷键才会生效。

举例:分离会话的快捷键是“Ctrl+b d”。用法是,在 tmux 窗口下,先按下“Ctrl+b”,再按下“d”,就会分离会话,进入正常命令行模式。

会话管理

  • tmux:创建一个无名称的会话
  • tmux new -s daodaotest:创建名为 daodaotest 的会话
  • tmux new -s daodaotest -d:在后台创建名为 daodaotest 的会话
  • tmux detach:分离会话
  • tmux ls:显示会话列表
  • tmux a:接入最后一次会话
  • tmux a -t daodaotest:接入 daodaotest 会话
  • tmux kill-session:关闭最后一次会话
  • tmux kill-session -t 0:使用会话编号杀死会话
  • tmux kill-session -t daodaotest:使用会话名称杀死会话
  • tmux kill-session -a -t daodaotest:关闭除 daodaotest 外的所有会话
  • tmux kill-server:关闭所有会话
  • tmux switch -t 0:使用会话编号切换会话
  • tmux switch -t daodaotest:使用会话名称切换会话
  • tmux rename-session -t daodaotest daodaotest2:重命名会话名称
  • exit 或 Ctrl+d:退出会话

会话快捷键

  • Ctrl+b s:列出会话,可进行切换
  • Ctrl+b d:分离当前会话
  • Ctrl+b $:重命名当前会话

窗口管理

  • tmux new-window:新建一个新窗口
  • tmux new-window -n daodaotest:新建一个 daodaotest 名称的新窗口
  • tmux select-window -t 0~9:切换到指定编号的窗口
  • tmux select-window -t daodaotest:切换到 daodaotest 的窗口
  • tmux rename-window daodaotest2:重命名当前窗口为:daodaotest2

窗口快捷键

  • Ctrl+b c:新建一个新窗口
  • Ctrl+b ,:重命名当前窗口
  • Ctrl+b w:列出所有窗口,可进行切换
  • Ctrl+b n:进入下一个窗口
  • Ctrl+b p:进入上一个窗口
  • Ctrl+b l:进入之前操作的窗口
  • Ctrl+b 0~9:选择编号0~9对应的窗口
  • Ctrl+b .:修改当前窗口索引编号
  • Ctrl+b ':切换至指定编号(可大于9)的窗口
  • Ctrl+b f:根据显示的内容搜索窗格
  • Ctrl+b &:关闭当前窗口

窗格管理

  • tmux sp -h:水平方向创建窗格
  • tmux sp:垂直方向创建窗格
  • tmux select-pane -U:光标切换到上方窗格
  • tmux select-pane -D:光标切换到下方窗格
  • tmux select-pane -L:光标切换到左边窗格
  • tmux select-pane -R:光标切换到右边窗格
  • tmux swap-pane -U:当前窗格上移
  • tmux swap-pane -D:当前窗格下移

窗格快捷键

  • Ctrl+b %:水平方向创建窗格
  • Ctrl+b ":垂直方向创建窗格
  • Ctrl+b Up|Down|Left|Right:根据箭头方向切换窗格
  • Ctrl+b q:显示窗格编号
  • Ctrl+b o:顺时针切换窗格
  • Ctrl+b }:与下一个窗格交换位置
  • Ctrl+b {:与上一个窗格交换位置
  • Ctrl+b x:关闭当前窗格
  • Ctrl+b space(空格键):重新排列当前窗口下的所有窗格
  • Ctrl+b !:将当前窗格置于新窗口
  • Ctrl+b Ctrl+o:逆时针旋转当前窗口的窗格
  • Ctrl+b t:在当前窗格显示时间
  • Ctrl+b z:放大当前窗格(再次按下将还原)
  • Ctrl+b i:显示当前窗格信息

使用场景

后台运行程序

在做自动化部署脚本时,远程执行目标服务器 xStart.sh 脚本,来后台启动 java 应用。脚本如下:

# 启动应用start() {  ......  if [ "X$pid" = "X" ]; then      # 关闭之前终端      tmux kill-session -t $SYSTEM_NAME-$PORT      # 创建终端      tmux new -s $SYSTEM_NAME-$PORT -d      # 终端启动服务      tmux send -t $SYSTEM_NAME-$PORT "cd $PIDDIR;nohup java $JAVA_OPTS -jar $SYSTEM_NAME*.jar $SPRING_ACTIVE --server.port=$PORT $EXT_OPTS >/dev/null 2>&1 &" ENTER  else      echo "$SYSTEM_NAME is already running."      exit 1  fi  ......}

大量数据迁移

在迁移 maven 私服 nexus 时,nexus 数据大概有 13G 左右,在使用scp进行迁移,终端超时关闭后就会中断。操作命令如下:

# 创建 tmux 会话$ tmux new -s nexus-scp# 在 tmxu 会话中,执行 scp 命令$ scp -R nexus@x.x.x.x:~/nexus .# 分离会话,后台执行即可$ Ctrl+b d

快速恢复工作现场

日常工作中,每天都要查询某些日志或者监控某些指标时,可以通过tmux保存现场,下次快速恢复工作现场,提高工作效率。

nginx 操作现场

下 终端_Linux/UNIX 下终端复用利器 tmux相关推荐

  1. linux 下 任务管理器,Linux/Unix下的任务管理器-top命令

    Windows下的任务管理器虽然不好用(个人更喜欢Process Explorer些),但也算方便,可以方便的查看进程,CPU,内存...也可以很容易的结束进程 没有图形化界面下的Linux,也有命令 ...

  2. dataframe只打印第一行_linux/unix下如何使用命令行删除文本文件的第一行?

    在日常开发中,我们也经常会遇到使用Linux命令行删除文本文件的第一行的情况. 本文将与您分享如何使用linux命令行工具删除文本文件的第一行. 以下是本文中使用的测试文本文件的内容: This is ...

  3. 文件行数_linux/unix下如何统计文件行数

    在日志分析过程中,经常会遇到文件行计数的情况.它可以帮助我们分析业务数据. 那么在Linux中如何使用linux命令行统计文件行数呢? 使用linux wc命令统计文件行数 ➜ wc -l test. ...

  4. 向上滚动 终端_linux命令行终端的翻屏滚屏

    屏幕翻页快捷键 shift+PgUp    向前翻看,一般翻13页左右. shift+PgDown  向后翻看,一般翻13页左右. 我们翻阅目录和打开文件后,经常会由于输出内容太多,使一屏无法显示,所 ...

  5. http 直接显示目录下文件_Linux文件管理(下)

    一.文本处理命令 1.查看文件内容 ①cat查看及合并 命令:cat 作用:查看文件内容 语法:#cat 文件名称 ​ #cat 文件1 文件2 > 文件3 用法一 用法二 ②more分屏显示文 ...

  6. linux怎么将终端一分为二,Linux下的终端和作业控制

    一.进程间的关系 进程间的三种关系:进程组.作业和会话. 1.进程组 每个进程除了有一个进程ID之外,还属于一个进程组.进程组是一个或多个进程的集合.通常,它们与同一作业相关联,可以接收来自同一终端的 ...

  7. Linux下实现炫酷的终端分屏

    相信对刚刚与接触过计算机的人来说,对于分屏这种操作是还是很想要实现的,然后会到新手目前卖弄一波,而现在像那些高级的黑客也会出现将一个屏幕分成好几个屏幕,看得人眼花缭乱的,一堆数字或代码在飞快地运行,让 ...

  8. Linux终端命令行下的常用快捷键使用

    Linux终端命令行下的常用快捷键 文章目录: ***`下面我只介绍常用的命令,其他的用的几乎很少,常用自然就是总会用的到的,而且用处比较大的,可以提高工作效率的,下面我亲自测试这些命令都是亲测可行的 ...

  9. 发现qq的mac输入法2.8,在终端全屏下输入不显示待选文字或单词

    为什么80%的码农都做不了架构师?>>>    发现qq的mac输入法2.8的版本,在终端全屏下输入不显示待选文字或单词,不知道终端非全屏下是否显示待选单词,忘了测试,谁知道呢, 已 ...

最新文章

  1. iframe标签快速使用
  2. STN pytorch实现
  3. Linux文件夹分析
  4. docker启动elasticsearch失败--jvm内存不足解决方案
  5. 读秦小波《设计模式之禅》 -- 单例模式
  6. USB2.0 设备类代码表
  7. P4309-[TJOI2013]最长上升子序列【Splay】
  8. 牛逼了,竟然真的有程序员做出了一套完整的地府后台管理系统,还开源了
  9. 进程切换与线程切换的区别
  10. java 求tan角度求值_知道sin、cos、tan的角度如何求值,不用计算器
  11. 建筑识图与构造【2】
  12. 雪球网热股榜--Ajax动态网页爬虫
  13. jQuery概述(查阅菜鸟教程随笔)
  14. 最近超火的公司前端面试题
  15. 20款常用的在线配色工具
  16. 文件宝局域网传输/播放功能Windows10系统经验贴(感谢文件宝用户@卡卡罗特 和@24K 純情)...
  17. struts2+hibernate留言板并发布到自己的主机上(-)
  18. 面试指南,求职必看 ! 大学毕业生找工作必备指南!
  19. 从两则新闻看苏宁易购的架构设计
  20. Photoshop cc2015 批量切割图片

热门文章

  1. webpack的一些常用配置 (转)
  2. 几个常用的Linux操作系统监控脚本
  3. 10 个最佳的网站分析方法
  4. 基于并查集的kruskal算法
  5. 深入信号和槽(Signals and Slots in Depth)
  6. vue+node实现中间层同步调用接口
  7. javasript --- 一个日期规范(x秒前,x分前...)
  8. vue --- 获取子组件数据的一个应急方案$refs
  9. (水一下)Linux启动步骤(面试题)
  10. [洛谷P4174][NOI2006]最大获利