Tmux:服务器的后台“摸鱼”神器

打印 上一主题 下一主题

主题 1711|帖子 1711|积分 5133

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
在服务器管理和远程开发中,我们经常会碰到如许的题目:如安在关闭 SSH 连接后继续运行任务,大概如安在多个终端之间高效地切换和管理任务?今天,我要先容一个强大的工具——tmux

,它不仅能解决这些题目,还能让你在后台“摸鱼”时更加得心应手。
什么是 tmux



tmux

是一个终端复用器,它答应你在单个终端窗口中创建多个虚拟终端会话,而且可以在关闭 SSH 连接后继续运行这些会话。简朴来说,tmux

让你能够在一个终端窗口中同时运行多个任务,而且这些任务不会由于终端关闭而中断。
安装 tmux



在大多数 Linux 发行版中,tmux

都可以通过包管理器安装。例如:


  • 基于 Debian 的系统(如 Ubuntu)
    1. sudo apt update && sudo apt install tmux
    复制代码
  • 基于 Red Hat 的系统(如 CentOS 或 RHEL)
    1. sudo yum install tmux
    复制代码
  • 基于 Arch Linux 的系统
    1. sudo pacman -S tmux
    复制代码
  • macOS
    1. brew install tmux
    复制代码
安装完成后,你就可以通过简朴的下令开始使用 tmux

了。
基本使用方法

启动 tmux



在终端中输入以下下令启动 tmux


  1. tmux
复制代码
这会创建一个新的会话,并显示一个终端窗口。
创建新窗口

在 tmux

中,你可以创建多个窗口来运行不同的下令。按下以下组合键创建新窗口:
  1. Ctrl + b, c
复制代码


  • Ctrl + b 是 tmux

    的默认前缀键,用于激活下令模式。
切换窗口

在 tmux

中切换窗口的快捷键是:
  1. Ctrl + b, n    # 切换到下一个窗口
  2. Ctrl + b, p    # 切换到上一个窗口
  3. Ctrl + b, [数字]    # 直接切换到指定编号的窗口(例如:Ctrl + b, 1)
复制代码
查看窗口列表

按下以下组合键查看当前会话中的所有窗口:
  1. Ctrl + b, w
复制代码
这会显示一个窗口列表,你可以通过数字选择窗口。
分割窗口

你还可以在 tmux

中分割窗口,以便同时查看多个终端:


  • 水中分割
    1. Ctrl + b, "
    复制代码
  • 垂直分割
    1. Ctrl + b, %
    复制代码
切换分割后的窗口:
  1. Ctrl + b, o    # 在分割窗口之间切换
复制代码
退出 tmux

会话


如果你想退出 tmux

会话,但保留会话中的历程运行,可以按下:
  1. Ctrl + b, d
复制代码
这会将当前会话分离(detach),你可以随时重新连接。
高级用法

查看所有会话

你可以通过以下下令查看所有正在运行的 tmux

会话:
  1. tmux
  2. list-sessions
复制代码
大概使用简写:
  1. tmux
  2. ls
复制代码
这两个下令都会显示会话的名称、窗口数量、创建时间和是否附加。
重新连接到 tmux

会话


当你再次通过 SSH 连接到服务器时,可以通过以下下令重新连接到指定会话:
  1. tmux
  2. attach -t [会话编号或名称]
复制代码
例如:
  1. tmux
  2. attach -t 0
复制代码
大概:
  1. tmux
  2. attach -t my_session
复制代码
捕捉窗口内容

如果你必要查看某个窗口的历史内容,可以使用以下下令:
  1. tmux
  2. capture-pane -p -t [会话编号或名称]
复制代码
例如:
  1. tmux
  2. capture-pane -p -t 0
复制代码
这会输出指定窗口的内容。
重命名会话

在 tmux

外部,你可以执行:
  1. tmux
  2. rename-session -t old_name new_name
复制代码
如果你已经attach到了会话中,你可以省略-t old_name 部分,只使用:
  1. tmux
  2. rename-session new_name
复制代码
关闭或杀死会话

如果你不再必要某个会话,可以通过以下下令关闭它:


  • 安全关闭会话
    进入会话后,按下 Ctrl + b,然后输入 :kill-session 并按回车键。
  • 强制关闭会话
    从外部终端运行以下下令:
    1. tmux
    2. kill-session -t [会话编号或名称]
    复制代码
    例如:
    1. tmux
    2. kill-session -t 0
    复制代码
实用场景

场景 1:后台运行任务

假设你必要在服务器上下载一个大文件,但又不想一直保持 SSH 连接。你可以通过以下步骤实现:

  • 启动 tmux

    1. tmux
    复制代码
  • 运行下载下令:
    1. wget https://example.com/largefile.zip
    复制代码
  • 按下 Ctrl + b, d
    分离会话。
  • 关闭 SSH 连接。
下次连接时,运行 tmux

attach 重新连接到会话,查看下载进度。
场景 2:多任务管理

如果你必要同时运行多个任务(例如,后台运行一个服务,同时在另一个窗口中编辑代码),tmux

的窗口和分割功能可以让你高效地管理这些任务。
场景 3:团队协作

tmux

支持多个客户端同时连接到同一个会话。你可以和团队成员共享一个会话,实时协作解决题目。
设置 tmux



tmux

的默认快捷键可能不太方便,你可以通过设置文件 ~/.tmux

.conf 自定义快捷键。例如,将前缀键从 Ctrl + b 改为 Ctrl + a:
  1. unbind C-b
  2. set -g prefix C-a
  3. bind C-a send-prefix
复制代码
总结

tmux

是一个强大的工具,它不仅能帮助你在后台运行任务,还能让你在多个终端之间高效地切换和管理任务。无论你是服务器管理员,还是远程开发者,tmux

都能成为你的得力助手。盼望这篇文章能帮助你更好地了解和使用 tmux

,让你在服务器管理中更加得心应手。感谢你的观看,我是Tex-mind,我们下次再见!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

梦见你的名字

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表