Tmux教程

会话(session)、窗口(window)、窗格(panel)的概念

参考资料:Tmux 使用教程 - 阮一峰的网络日志 (ruanyifeng.com)

命令行的典型使用方式是,打开一个终端窗口(terminal window,以下简称"窗口"),在里面输入命令。用户与计算机的这种临时的交互,称为一次"会话"(session)

会话的一个重要特点是,窗口与其中启动的进程是连在一起的。打开窗口,会话开始;关闭窗口,会话结束,会话内部的进程也会随之终止,不管有没有运行完。

一个典型的例子就是,SSH 登录远程计算机,打开一个远程窗口执行命令。这时,网络突然断线,再次登录的时候,是找不回上一次执行的命令的。因为上一次 SSH 会话已经终止了,里面的进程也随之消失了。

为了解决这个问题,会话与窗口可以"解绑"窗口关闭时,会话并不终止,而是继续运行,等到以后需要的时候,再让会话"绑定"其他窗口。

一个窗口中,可以继续划分为多个窗格,在多个窗格中执行命令。效果类似于Terminator。

Tmux和Oh my tmux介绍与安装

Tmux 是一个终端复用器(terminal multiplexer),可以将会话与窗口"解绑"。
(1)它允许在单个窗口中,同时访问多个会话。这对于同时运行多个命令行程序很有用。

(2) 它可以让新窗口"接入"已经存在的会话。

(3)它允许每个会话有多个连接窗口,因此可以多人实时共享会话。

(4)它还支持窗口任意的垂直和水平拆分。

Oh my tmux用于美化并降低Tmux的配置难度,和Tmux的关系就像oh-my-zsh和zsh的关系一样。

安装Tmux

sudo apt install tmux

安装Oh my tmux
命令来自仓库:GitHub - gpakosz/.tmux: Oh my tmux! My self-contained, pretty & versatile tmux configuration made with ❤️

cd && git clone https://github.com/gpakosz/.tmux.git \
&& ln -s -f .tmux/.tmux.conf \
&& cp .tmux/.tmux.conf.local .

Tmux用法

命令与快捷键

Oh my tmux自带的所有快捷键见bindings

默认前缀快捷键Ctrl + aCtrl + b。有些快捷键是安装Oh my tmux后才有的。

下面列出常用的几个命令和快捷键。

常见操作

  1. 打开tmux(如果是ssh到服务器,想要在服务器后台运行,就要打开服务器的tmux)
tmux
  1. 执行需要后台运行的命令
xxxxxxx
  1. 使用快捷键 d切换到后台运行。或使用快捷键 c新建一个窗口,然后执行命令:
tmux detach
  1. 下次想要回到正在运行命令的窗口时,执行命令
tmux attach

若正在运行的命令不在当前打开的窗口,使用快捷键(Oh my tmux的快捷键) C-h切换到上一个窗口,或 C-l切换到下一个窗口。或执行命令:

tmux selectw -t 窗口编号

底线命令

正在执行命令时,想要执行tmux的命令,可以新建窗口再执行,或按下快捷键 :

鼠标模式

  • m 打开或关闭鼠标模式

像平时使用终端那样复制终端内容的时候,需要关闭鼠标模式。

打开鼠标模式的时候,左键窗口可以切换,右键可以操作。

清除历史记录和屏幕

  • C-l 是Oh my tmux的快捷键,可以清除tmux history同时清屏

会话

创建会话
  • C-c 创建一个新会话(C-c表示Ctrl + c)。用于已经打开tmux后,再次创建新会话。

  • 创建会话,名称由tmux自动命名为数字。不能在tmux中执行。
tmux

可以在底线命令下执行

new-session
  • 创建名为session_name的会话。不能在tmux中执行。
tmux new-session -s session_name

可以在底线命令下执行

new-session -s session_name
切换会话
  • s 打开会话预览窗口,方向键切换会话,回车进入会话

  • C-f 按名称切换到另一个会话

  • 通过编号或名称切换会话
tmux switch -t 0
tmux switch -t <session-name>
重命名会话
  • $ 重命名会话

  • 重命名为new_name
tmux rename-session new_name
关闭会话
  • 关闭指定会话
tmux kill-session -t 会话名称
  • 关闭除指定会话外的所有会话
tmux kill-session -t 会话名称 -a
  • 关闭tmux的客户端、会话、服务器
tmux kill-server
分离会话

分离会话后,命令就会在后台运行。

  • d 分离会话

  • 分离会话
tmux detach
列出会话
tmux ls

窗口

创建窗口
  • c 创建一个窗口

  • 创建窗口
tmux new-window
切换窗口
  • C-h 切换到上一个窗口
  • C-l 切换到下一个窗口

  • w 打开预览窗口,方向键切换会话,回车进入会话
重命名窗口
  • , 重命名窗口

  • 重命名窗口
tmux rename-window new-name
关闭窗口
  • C-d 或命令exit都可以关闭窗口。当一个会话的所有窗口都关闭后,这个会话也会关闭。

快捷键

列出所有快捷键
  • ? 列出快捷键。按q可以退出。

配置文件

安装Oh my tmux之后,修改配置文件时就要按照说明,修改Oh my tmux创建的配置文件,而不是直接修改tmux的配置文件:configuration

  • e 打开配置文件
  • r 重新加载配置文件

在脚本中使用tmux

例如创建一个名称为session的会话,在这个会话中创建名称为window的窗口,然后在这个窗口中执行echo和tail命令。
需要使用:

  • 参数-s设置会话名称
  • -n设置窗口名称
  • -d来让tmux后台运行
  • send用于发送命令到tmux
  • -t指定会话和窗口
  • “”双引号中是要发送的命令
  • ENTER表示执行命令
tmux new -s "session" -n "window" -d && tmux send -t "session:window" "echo 'hello world' && tail -f /dev/null" ENTER

你可能感兴趣的:(Ubuntu,linux)