#tmux# #终端# 常用工具tmux

tmux是一个终端复用工具,允许在单个终端中管理多个窗口和窗格,提高效率,特别适合远程服务器管理。它支持后台运行会话,即使终端断开也能继续操作。文章介绍了tmux的安装方法、基本操作、窗口和窗格概念,以及常用快捷键,并提及了一些增强tmux体验的插件和配置选项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

tmux

tmux是一个终端复用工具,允许用户在一个终端会话中同时管理多个终端窗口,提高了终端使用效率,尤其在服务器上进行远程管理时更加实用。在tmux中,可以创建多个终端窗口和窗格,并在这些窗口和窗格之间自由切换,还可以在后台运行会话,即使在终端断开连接后也可以继续操作,这非常有用,特别是在长时间运行的命令中。

包管理器进行安装。可以使用以下命令安装:

操作系统安装命令
Arch Linuxpacman -S tmux
Debian or Ubuntuapt install tmux
Fedoradnf install tmux
RHEL or CentOSyum install tmux
macOS (using Homebrewbrew install tmux
macOS (using MacPorts)port install tmux
openSUSEzypper install tmux

tmux 的几个名词session, window , pane 在这里我们就把他们分别叫做会话,窗口,窗格 。

关于session 很多人都叫会话,个人感觉叫任务更贴切,更形象。

通常我们在终端中操作一个任务的时候,一旦终端关闭,任务也就结束了,被强制关闭了,在 tmux 中 使用 session 就可以解决这个问题,我们可以把当前操作的任务隐藏起来,在视觉上让它消失,任务继续执行着,当我们想返回任务做一些操作的时候,它可以很方便的回来,我们通常把上面的操作就做 session 操作,我们可以把 session 给隐藏起来,我们也可以把 session 给真的关掉。

在 tmux 中有一个窗口的概念,我们可以这样要去理解窗口:当前呈现在我们面前的这一个工作区域就是一个窗口(当前的终端界面),窗口可以被不断切割,切割成一个个小块,这一个个小块我们叫做窗格(pane),这就是窗口和窗格的概念,我们把它想象成一块大蛋糕可以切成很多小块蛋糕,窗口可以被分割成很多小的窗格。

总结: 一个 session 通常指一个任务里面可以有很多窗口,一个窗口又可以有很多的窗格。

基本操作

命令描述
tmux启动一个新的tmux会话
tmux new-session -s <session-name>创建一个具有指定名称的新会话
tmux attach -t <session-name>附加到一个已存在的会话
tmux switch-client -n切换到下一个会话
tmux switch-client -p切换到上一个会话
tmux list-sessions显示当前所有会话的列表
tmux detach从当前会话中分离
tmux kill-session -t <session-name>结束指定的会话

窗口操作

命令描述
tmux new-window在当前会话中创建一个新窗口
tmux select-window -t <window-index>选择指定索引的窗口
tmux next-window切换到下一个窗口
tmux previous-window切换到上一个窗口
tmux list-windows显示当前会话的所有窗口列表
tmux rename-window <new-name>重命名当前窗口
tmux kill-window -t <window-index>关闭指定索引的窗口

面板操作

命令描述
tmux split-window在当前窗口中水平分割面板(垂直创建新面板)
tmux split-window -h在当前窗口中垂直分割面板(水平创建新面板)
tmux select-pane -t <pane-index>选择指定索引的面板
tmux select-pane -U切换到上面的面板
tmux select-pane -D切换到下面的面板
tmux select-pane -L切换到左边的面板
tmux select-pane -R切换到右边的面板
tmux kill-pane -t <pane-index>关闭指定索引的面板
tmux swap-pane -s <src-pane> -t <dst-pane>交换两个面板的位置
tmux setw synchronize-panes同步所有面板中的输入(再次执行此命令将取消同步)

快捷键

快捷键描述
会话<session>prefix d分离当前会话
prefix s列出所有会话
prefix $重命名当前会话
窗口<window>prefix c创建一个新窗口,状态栏会显示多个窗口信息
prefix p切换到上一个窗口
prefix n切换到下一个窗口
prefix <number>切换到指定编号的窗口
prefix w从列表中选择窗口
prefix ,重命名窗口
窗格<pane>prefix %划分左右两个窗格
prefix "划分上下两个窗格
prefix ;光标移动到上一个窗格
prefix o光标移动到下一个窗格
prefix {当前窗格与上一个窗格换位
prefix }当前窗格与下一个窗格换位
prefix x关闭当前窗格
prefix !将当前窗格拆分为一个独立的窗格
prefix z当前窗格全屏显示,再使用一次会变回原来的大小
prefix q显示窗格编号

配置

Unix系统上许多软件(vim, tmux)不是一成不变的,而是有了各种配置、插件后才更强大。那么,怎样找到优秀的配置呢?Github是一个好地方,搜索tmux,可以找到许多高星的配置:

如果刚开始学tmux,你当然可以直接使用它们。但是,其中有许多自定义配置是几乎不可能用到的。遵循少即是多的原则,笔者选择根据自己的需求定义配置。因此,建议你也构建自己的dotfiles,不断维护它们,形成自己的配置体系。

以下是一些常用的tmux插件,它们可以提高tmux的使用体验并增强其功能:

  1. Tmux Resurrect:可以在tmux崩溃或关闭会话时自动保存和恢复会话状态的插件。官方网站:https://github.com/tmux-plugins/tmux-resurrect
  2. Tmuxinator:可以创建和管理tmux会话的命令行工具。官方网站:https://github.com/tmuxinator/tmuxinator
  3. Tmux Open:可以轻松地从tmux会话中打开文件或URL的插件。官方网站:https://github.com/tmux-plugins/tmux-open
  4. Tmux Sidebar:可以在tmux会话的侧边栏中显示各种信息,如系统资源、时间和日期等。官方网站:https://github.com/tmux-plugins/tmux-sidebar
  5. Tmux CPU:可以在tmux状态栏中显示CPU使用率的插件。官方网站:https://github.com/tmux-plugins/tmux-cpu
  6. Tmux Battery:可以在tmux状态栏中显示电池电量和充电状态的插件。官方网站:https://github.com/tmux-plugins/tmux-battery
  7. Tmux Yank:可以在tmux和系统剪贴板之间复制和粘贴文本的插件。官方网站:https://github.com/tmux-plugins/tmux-yank
  8. Tmux Copycat:可以帮助您在tmux缓冲区中搜索和复制文本的插件。官方网站:https://github.com/tmux-plugins/tmux-copycat

以上是一些常用的tmux插件,它们可以提高tmux的使用体验并增强其功能。您可以访问它们的官方网站了解更多信息,也可以使用TPM管理器轻松安装和管理它们。

我使用的 tmux 配置

# mouse mod
set -g mouse off
#run-shell ~/tmux-better-mouse-mode/scroll_copy_mode.tmux
#set -g @scroll-speed-num-lines-per-scroll 10

# cpu memory display
#set -g status-interval 3
#set -g status-right "#(vmstat -SM 1 2 | awk 'END {print \"cpu:\"100-$15\"%\" \" mem:\"512-$4-$5-$6\"M\"}')#[default] %R"


# List of plugins
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'
set -g @plugin 'tmux-plugins/tmux-yank'
set -g @plugin 'tmux-plugins/tmux-resurrect'
set -g @plugin 'tmux-plugins/tmux-continuum'

# github
set -g @plugin 'github_username/plugin_name'
set -g @plugin 'github_username/plugin_name#branch'
set -g @plugin 'git@github.com:user/plugin'

# Other examples:
set -g @plugin 'tmux-plugins/tmux-sidebar'

# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
run '~/.config/tmux/plugins/tpm/tpm'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值