【linux经典工具】作为一个合格的开发人员怎能不会tmux

做过服务器开发的同学,一定会经常登录服务器,且在服务器上做很多操作,那么tmux是必不可少的使用工具。

tmux是一个强大的终端复用器,允许用户在一个终端窗口中运行多个会话。以下是 tmux 的详细使用指南,涵盖基本操作和一些高级功能。

1. 安装 tmux

在大多数 Linux 发行版中,可以通过包管理器安装 tmux:

Ubuntu/Debian

css 复制代码
sudo apt install tmux

# CentOS/RHEL

css 复制代码
sudo yum install tmux

# Arch Linux

css 复制代码
sudo pacman -S tmux

2. 启动 tmux

在终端中输入以下命令启动一个新的 tmux 会话:

css 复制代码
tmux

如果希望为会话命名,可以使用:

css 复制代码
tmux new -s mysession

3. tmux 基本操作

分离会话:按 Ctrl + b 后再按 d,可以将会话分离,回到普通终端。

列出会话:使用以下命令查看当前所有会话:

css 复制代码
tmux ls

重新连接会话:使用以下命令连接到分离的会话:

css 复制代码
tmux attach -t mysession

杀死会话:可以通过以下命令杀死当前会话:

css 复制代码
exit

或者在其他会话中使用:

css 复制代码
tmux kill-session -t mysession

4. 窗格操作

tmux 允许在同一会话中创建多个窗格(pane)。

垂直分割窗格:按 Ctrl + b 后再按 %。

水平分割窗格:按 Ctrl + b 后再按 "。

切换窗格:按 Ctrl + b 后再按方向键(上下左右)。

调整窗格大小:按 Ctrl + b 后按住 Ctrl 并使用方向键。

5. 会话管理

创建新窗口:按 Ctrl + b 后再按 c 创建一个新窗口。

切换窗口:按 Ctrl + b 后再按 n(下一个)或 p(上一个)切换窗口。

列出窗口:按 Ctrl + b 后再按 w 显示窗口列表。

关闭窗口:在窗口中输入 exit 或按 Ctrl + d。

6. 复制和粘贴

tmux 具有内置的复制和粘贴功能。

  • 进入复制模式:按 Ctrl + b 后再按 [。
  • 选择文本:使用方向键移动光标,按空格键开始选择,移动光标- 选择文本。
  • 复制文本:选择完成后,按 Enter 键复制。
  • 粘贴文本:按 Ctrl + b 后再按 ] 粘贴。

7. tmux 配置

tmux 可以通过配置文件自定义,通常是 ~/.tmux.conf。一些常用的配置选项:

css 复制代码
# 设置前缀键为 Ctrl + a
unbind C-b
set-option -g prefix C-a
bind a send-prefix
# 使滚动更流畅
set -g mouse on

8. 常用命令总结

tmux new -s session_name:创建新会话并命名。

tmux ls:列出所有会话。

tmux attach -t session_name:连接到指定会话。

tmux kill-session -t session_name:杀死指定会话。

Ctrl + b d:分离当前会话。

Ctrl + b %:垂直分割窗格。

Ctrl + b ":水平分割窗格。

Ctrl + b o:切换窗格。

Ctrl + b c:创建新窗口。

Ctrl + b n:切换到下一个窗口。

Ctrl + b p:切换到上一个窗口。

9. 常见问题

  • tmux 不响应:确保你没有误按了其他组合键,使用 Ctrl + b 作为前缀。
  • 终端显示混乱:在分离后,可以尝试重新连接会话,如果问题仍然存在,可以重启 tmux。

10. 扩展功能

tmux 还有许多高级功能,例如:

  • 自定义状态栏。
  • 使用插件管理器(如 TPM) 来安装插件,增强 tmux 功能。

结论

tmux 是一个非常灵活的工具,能够提高终端工作效率。通过熟悉其基本操作和配置,您可以在 Linux 环境中更加高效地管理多个任务和会话。

相关推荐
wuminyu2 分钟前
JVM锁膨胀与Futex源码解析
java·linux·c语言·jvm·c++
happymade2 分钟前
7000 台网络设备批量纳管 & 自动拓扑生成实战——MSRM3 完整操作流程与关键要点复盘
运维·服务器·网络·zabbix·grafana·msrm3
斑马13913 分钟前
Linux软件编程学习笔记(十一)——HTTP协议
linux·笔记·学习
做萤石二次开发的哈哈16 分钟前
萤石蓝海 AIoT 一站式工作台:海康LCD会议平板接入,多端大屏运维应用一站生成
运维·物联网·电脑·萤石开放平台·会议室管理·蓝海aiot一站式工作台·otap物模型
OpenPomeloxCommunity19 分钟前
Linux驱动基础(一):模块机制的设计与实现
linux
Shadow(⊙o⊙)27 分钟前
Linux网络——文件与网络的连接桥梁struct sock {
linux·运维·网络
其实防守也摸鱼37 分钟前
教育信息技术应用创新---基础软件信息赛(题库)
大数据·运维·人工智能·web安全·自动化
新时代牛马40 分钟前
Linux 性能调优与追踪完整篇:ftrace、perf、eBPF从采样到落地验证
linux·运维·服务器
sunoo-2291 小时前
【网络编程 + 数据库】select 与 epoll 核心区别详解 + SQLite 入门到 C 接口全攻略
linux·网络·数据库·vscode·学习·sqlite
zbyyd1 小时前
Linux 系统编程 :select/epoll 多路复用与 SQLite 数据库实战
linux·数据库·sqlite