Linux/UNIX 下终端复用利器 tmux

简介

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:重命名会话名称
  • exitCtrl+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 [email protected]:~/nexus .

# 分离会话,后台执行即可
$ Ctrl+b d

快速恢复工作现场

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

nginx 操作现场

原文地址:https://www.cnblogs.com/daodaotest/p/12634618.html

时间: 2024-08-24 08:08:35

Linux/UNIX 下终端复用利器 tmux的相关文章

终端复用工具-tmux

目录 终端复用工具--Tmux 一.为什么要用Tmux? 二.tmux是什么? 三.Tmux基本概念 四.Tmux使用规则 1.安装Tmux 2.基本使用 3.自定义配置文件 五.补充 1.tmux man手册 终端复用工具--Tmux 一.为什么要用Tmux? tmux是linux下的管理窗口的程序,那什么是管理窗口?众所周知,linux系统支持远程终端(terminal)连接,(使用终端通过ssh 命令去远程连接服务器,并执行各种命令),看看一下场景: 我们通过终端连接到远程服务器,去执行t

Linux/Unix下pid文件的作用

主要有三点: (1) pid文件的内容:pid文件为文本文件,内容只有一行, 记录了该进程的ID. 用cat命令可以看到. (2) pid文件的作用:防止进程启动多个副本.只有获得pid文件(固定路径固定文件名)写入权限(F_WRLCK)的进程才能正常启动并把自身的PID写入该文件中.其它同一个程序的多余进程则自动退出. (3) 编程技巧: 调用fcntl设置pid文件的锁定F_SETLK状态,其中锁定的标志位F_WRLCK. 如果成功锁定,则写入进程当前PID,进程继续往下执行. 如果锁定不成

Windows 和 Linux 中的换行与回车的区别,Windows下编写的Shell脚本,直接放到linux/unix下执行会报错

首先: CR(Carriage Return)表示回车 LF(Line Feed)表示换行 Dos和Windows采用回车+换行(CR+LF)表示下一行而UNIX/Linux采用换行符(LF)表示下一行苹果机(MAC OS系统)则采用回车符(CR)表示下一行 Windows下编写的Shell脚本,直接放到linux/unix下执行会报错,就是因为行结束符不一样导致的. 现在好多文本工具都提供了转换功能,如我常用的,也是最强大的工具 (个人感受,不是打广告):notepad++. 原文地址:htt

Linux终端复用神器-Tmux使用梳理

原文参考:https://www.cnblogs.com/kevingrace/p/6496899.html Tmux是一个优秀的终端复用软件,类似GNU Screen,但来自于OpenBSD,采用BSD授权.使用它最直观的好处就是,通过一个终端登录远程主机并运行tmux后,在其中可以开启多个控制台而无需再“浪费”多余的终端来连接这台远程主机.是BSD实现的Screen替代品,相对于Screen,它更加先进:支持屏幕切分,而且具备丰富的命令行参数,使其可以灵活.动态的进行各种布局和操作.对于Tm

终端复用工具tmux的使用

tmux的作用在于终端复用. 1. 在server上启动一个bash.并在里面执行tmux 2. 通过ssh远程登录server,执行tmux attach,就会切换到server上的那个bash中,接下来的操作都是在bash中了 3. 此时能够打开很多其它的窗体,这样在远程就能够像在本地一样同一时候使用多个一样的bash 假设要发送命令.例如以下: tmux send -t checkpoint ls ENTER 注:checkpoint是你已经用tmux创建好的session的名字(tmux

linux下远程管理利器-tmux

1.控制键 控制键就是tmux的主键.当你在tmux环境下按下这个键的时候,tmux就会把你后面输入的指令,解析成它内置的功能.tmux默认的控制键是 ctrl+b(同时按下ctrl和b,在后面将直接用小写的c-b代替).这相当于screen的ctrl+a.同时用过两个工具的人总会争论 ctrl+a和ctrl+b的合理性.估计争论的也就是emacs和vi党.我就很不理解.这两拨人只用编辑器,不用指令吗?因为他们似乎不知道在 bash环境里:ctrl+a代表跳到命令的开始,而ctrl+b代表往回移

Linux终端复用神器tmux简单总结

创建命名Tmux会话(tmux new -s session_name)tmux new -s session_name chongchong 暂退Tmux会话(Ctrl + a d)直接关窗口 返回Tmux会话()tmux attach-session -t chongchong 获取Tmux会话列表(tmux ls) 关键快捷键:按ctrl + b组合键,然后松开再单独按c键 在tmux里新建一个tmux会话 再单独按数字0键 在窗口间切换(切换到0号窗口) 再单独按d键 退出会话,还能再回

[Linux]CentOS下安装和使用tmux

前天随意点开博客园,看到了一篇关于tmux的文章 Tmux - Linux从业者必备利器,特意还点进去看了.毕竟Linux对于做游戏服务端开发的我来说,太熟悉不过了.不过我就粗略地看了一眼,就关掉了.直到第二天码农周刊就推荐了这篇文章,才引起我真正的关注.tmux真的那么好用吗?所以我自己也倒腾来一遍,的确在许多场景下还是非常有用的.如: 做服务器的,肯定需要关注性能的,而tmux多个pane可以很方便同时关注多项性能指标: 我们的游戏服刚好有多个服务存在,而联调多个服务的时候,可以同时看到多个

Mac下SVN服务器环境的搭建和配置(除展示图片外,所有命令在Linux/Unix下适用)

这几天领导没有安排工作,闲着没事就想把自己这两年做iOS开发时感觉知识有欠缺的地方想好好深入地补习一下,昨天和今天就计划好好学习下SVN和git的从创建和到原理,到命令,到界面的使用.一不小心被另一领导发现我在研究这个,又看我没事就想让我帮忙帮她的组把SVN权限给改一改,我也挺乐意,能让自己所学的东西派上用场那是何等的幸运,而且她也让我更相信准备着被人宰,总比等死好,起码能卖个价钱(微笑). 我们多数开发公司都是在windows下使用VisualSVN搭建代码版本控制服务器环境的,这一块我也已经