Linux/UNIX 下终端复用利器 tmux

2020-04-04  本文已影响0人  叨叨软件测试

简介

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,就会分离会话,进入正常命令行模式。

会话管理

会话快捷键

窗口管理

窗口快捷键

窗格管理

窗格快捷键

使用场景

后台运行程序

在做自动化部署脚本时,远程执行目标服务器 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 操作现场

微信公众号:daodaotest

上一篇下一篇

猜你喜欢

热点阅读