tmux安装及相关事项
tmux是一个终端复用工具,可以在单个终端窗口中同时运行多个终端会话。安装tmux可以提高工作效率,使命令行操作更加方便。
1. 安装tmux:
在Linux系统下,可以使用包管理器来安装tmux,比如在Ubuntu系统中,可以使用以下命令来安装:
sudo apt update
sudo apt install tmux
在macOS系统下,可以使用Homebrew来安装tmux:
brew update
brew install tmux
2. 启动tmux:
在终端中输入tmux即可启动,默认会在一个新窗口中打开一个tmux会话,你可以在其中执行命令。如果想退出tmux,可以使用Ctrl+b,然后按下d。
#启动新session:
$ tmux [new -s 会话名 -n 窗口名]
#恢复session:
$ tmux at [-t 会话名]
#列出所有sessions:
$ tmux ls
#关闭session:
$ tmux kill-session -t 会话名
#关闭整个tmux服务器:
$ tmux kill-server
3. Tmux 重要概念(https://www.cnblogs.com/zuoruining/p/11074367.html#2423136631)
使用 Tmux 的时候千万不要去背指令,所有的指令都可以在 .tmux.conf
配置文件中绑定自己顺手的快捷键,也可以配置开启鼠标。
这个是我的配置文件:https://github.com/zuorn/tmux.conf
在Tmux逻辑中,需要分清楚Server > Session > Window > Pane这个大小和层级顺序是极其重要的,直接关系到工作效率:
- Server:是整个tmux的后台服务。有时候更改配置不生效,就要使用tmux kill-server来重启tmux。
- Session:是tmux的所有会话。我之前就错把这个session当成窗口用,造成了很多不便里。一般只要保存一个session就足够了。
- Window:相当于一个工作区,包含很多分屏,可以针对每种任务分一个Window。如下载一个Window,编程一个window。
- Pane:是在Window里面的小分屏。最常用也最好用
4. tmux的常用快捷键:
Ctrl+b
是默认的tmux命令前缀,你需要先输入这个前缀,然后再输入其他快捷键才能执行相应的命令。以下是常用的tmux快捷键:
- Ctrl+b d:分离当前的tmux会话(相当于挂起到后台)
- Ctrl+b c:创建新的tmux窗口(注意:这个窗口的概念是相当于会话中的窗口,一个会话可以包含多个窗口,但是一个窗口只能归属到固定的一个会话)
- Ctrl+b n:切换到下一个tmux窗口(只能在当前会话的窗口中切换)
- Ctrl+b p:切换到上一个tmux窗口(同上)
- Ctrl+b %:水平分割当前窗口(将当前的窗口进一步切分,因此概念上包含关系为:服务器>会话>窗口>切分窗口)
- Ctrl+b ":垂直分割当前窗口(同上)
- Ctrl+b x:关闭当前窗格
- Ctrl+b [:进入复制模式
- Ctrl+b ]:粘贴复制的文本
5. tmux更全面的快捷键
系统指令:
前缀 | 指令 | 描述 |
---|---|---|
Ctrl+b | ? | 显示快捷键帮助文档 |
Ctrl+b | d | 断开当前会话 |
Ctrl+b | D | 选择要断开的会话 |
Ctrl+b | Ctrl+z | 挂起当前会话 |
Ctrl+b | r | 强制重载当前会话 |
Ctrl+b | s | 显示会话列表用于选择并切换 |
Ctrl+b | : | 进入命令行模式,此时可直接输入ls等命令 |
Ctrl+b | [ | 进入复制模式,按q退出 |
Ctrl+b | ] | 粘贴复制模式中复制的文本 |
Ctrl+b | ~ | 列出提示信息缓存 |
窗口(window)指令:
前缀 | 指令 | 描述 |
---|---|---|
Ctrl+b | c | 新建窗口 |
Ctrl+b | & | 关闭当前窗口 |
Ctrl+b | 0~9 | 切换到指定窗口 |
Ctrl+b | p | 切换到上一窗口 |
Ctrl+b | n | 切换到下一窗口 |
Ctrl+b | w | 打开窗口列表,用于且切换窗口 |
Ctrl+b | , | 重命名当前窗口 |
Ctrl+b | . | 修改当前窗口编号(适用于窗口重新排序) |
Ctrl+b | f | 快速定位到窗口(输入关键字匹配窗口名称) |
面板(pane)指令:
前缀 | 指令 | 描述 |
---|---|---|
Ctrl+b | " | 当前面板上下一分为二,下侧新建面板 |
Ctrl+b | % | 当前面板左右一分为二,右侧新建面板 |
Ctrl+b | x | 关闭当前面板(关闭前需输入y or n确认) |
Ctrl+b | z | 最大化当前面板,再重复一次按键后恢复正常(v1.8版本新增) |
Ctrl+b | ! | 将当前面板移动到新的窗口打开(原窗口中存在两个及以上面板有效) |
Ctrl+b | ; | 切换到最后一次使用的面板 |
Ctrl+b | q | 显示面板编号,在编号消失前输入对应的数字可切换到相应的面板 |
Ctrl+b | { | 向前置换当前面板 |
Ctrl+b | } | 向后置换当前面板 |
Ctrl+b | Ctrl+o | 顺时针旋转当前窗口中的所有面板 |
Ctrl+b | 方向键 | 移动光标切换面板 |
Ctrl+b | o | 选择下一面板 |
Ctrl+b | 空格键 | 在自带的面板布局中循环切换 |
Ctrl+b | Alt+方向键 | 以5个单元格为单位调整当前面板边缘 |
Ctrl+b | Ctrl+方向键 | 以1个单元格为单位调整当前面板边缘(Mac下 |
Ctrl+b | t | 显示时钟 |
5. tmux配置:
tmux的配置文件为~/.tmux.conf,你可以通过修改这个文件来改变tmux的默认配置。以下是一些常用的配置选项:
- set-option -g prefix C-a:将tmux命令前缀改为Ctrl+a
- setw -g mouse on:启用鼠标支持
- set-option -g default-shell /bin/bash:设置默认shell为bash
- set-option -g history-limit 5000:设置历史记录大小为5000行
初学者建议用熟练之后再进行配置,网络上有很多公开的配置,大家可以参考选配。
错误
提示:
/home/user/anaconda3/envs/virtualenvironment/lib/libtinfo.so.6: no version information available (required by -bash)
我出现这个错误是因为我在虚拟环境中,因此安装 ncurses
即可解决。
安装:
conda install -c conda-forge ncurses
重命名会话(rename-session)
大多数用户在开始使用 Tmux 时都会忘记命名他们正在使用的会话。但是,随着会话数量随着工作流程的增加,记住您正在使用的会话以及在其中运行的相关服务变得很痛苦。因此,最好始终使用名称来启动会话以避免任何混淆。但是,如果您在创建会话时忘记命名会话,您仍然可以为其指定名称或更改现有名称。
方式1:通过shell 提示符重命名会话
$ tmux rename-session -t old-session-name new-session-name
方式2:使用Tmux命令提示符重命名会话
$ rename-session -t my_session_1 my_session_2
方式3:使用组合键重命名会话
Ctrl+b + $
reference
@misc{BibEntry2023Oct,
title = {{Tmux 配置xn–ih7c打造最适合自己的终端复用工具 - zuorn - 博客园}},
year = {2023},
month = oct,
urldate = {2023-10-23},
language = {chinese},
note = {[Online; accessed 23. Oct. 2023]},
url = {https://www.cnblogs.com/zuoruining/p/11074367.html}
}