点击蓝色“程序猿DD”关注我
回复“资源”获取独家整理的学习资料
作者 | spoock
来源 | https://tinyurl.com/y34djpar前言
经常使用命令行的运维肯定会遇到如何防止网络中断导致正在进行从操作失败的情况比如执行一个耗时好几个小时的操作或者方便管理窗口的需求比如在同一个窗口边执行命令边查看程序的log 。通常我们使用screen 或者nohup的方式解决长时间执行的命令。本文介绍另一款窗口复用神器--tmux。用过tmux大家都不想继续使用screen 了。。
其核心功能:
提供了强劲的、易于使用的命令行界面。可横向和纵向分割窗口。支持 UTF-8 编码及 256 色终端。可在多个缓冲区进行复制和粘贴。可通过交互式菜单来选择窗口、会话及客户端。支持跨窗口搜索。支持自动及手动锁定窗口。可以自由配置绑定快捷键。
tmux 构成
tmuxterminal multiplexer是Linux上的终端复用神器可从一个屏幕上管理多个终端tmux的结构包括会话(session)、窗口(window)、窗格(pane)三部分。
使用
鉴于tmux的构成分三部分tmux命令使用主要的对象是 会话(session),窗口(window)和窗格(pane)。常用的动作包含创建、关闭(退出)、重命名、连接、分离、选择。
tmux默认的快捷键前缀是Ctrlb(下文用prefix指代)按下前缀组合键后松开再按下命令键进行快捷操作比如使用prefix d分离会话应该写作prefix d而不是prefixd因为d键不需要与prefix同时按下。
session操作
tmux new 创建默认名称的会话tmux new -s mysession 创建名为mysession的会话tmux ls 显示会话列表tmux a 连接上一个会话tmux a -t mysession 连接指定会话,tmux a -t 1tmux rename -t s1 s2 重命名会话s1为s2tmux kill-session 关闭上次打开的会话tmux kill-session -t s1 关闭会话s1tmux kill-session -a -t s1 关闭除s1外的所有会话tmux kill-server 关闭所有会话
常用快捷键
prefix s 列出会话可进行切换
prefix d 分离当前会话
prefix a -t number 其中number是 tmux ls 获取的序列号 从0 开始
window操作
prefix c 创建一个新窗口prefix , 重命名当前窗口prefix w 列出所有窗口可进行切换prefix n 进入下一个窗口prefix p 进入上一个窗口prefix l 进入之前操作的窗口prefix 0~9 选择编号0~9对应的窗口prefix . 修改当前窗口索引编号prefix 切换至指定编号可大于9的窗口prefix f 根据显示的内容搜索窗格prefix b c 创建三个窗口。
窗格管理
prefix % 水平方向创建窗格prefix " 垂直方向创建窗格prefix Up|Down|Left|Right 根据箭头方向切换窗格prefix q 显示窗格编号prefix o 顺时针切换窗格prefix } 与下一个窗格交换位置prefix { 与上一个窗格交换位置prefix x 关闭当前窗格prefix space(空格键) 重新排列当前窗口下的所有窗格prefix ! 将当前窗格置于新窗口prefix Ctrlo 逆时针旋转当前窗口的窗格prefix t 在当前窗格显示时间prefix z 放大当前窗格(再次按下将还原)prefix i 显示当前窗格信息
自定义 tmux 适配
一般安装完tmux 可以通过 ~/.tmux.conf 来调整tmux 的配置获取最佳的用户体验。推荐一个mac OS 的配置 https://github.com/gpakosz/.tmux
小结
本文算是一篇how to 文档大家有兴趣的 可以进一步探索 tmux 的各种功能比如结合鼠标提高自己的工作效率。
推荐阅读
https://harttle.land/2015/11/06/tmux-startup.html http://louiszhai.github.io/2017/09/30/tmux/
本文通过OpenWrite的免费Markdown转换工具发布
-END-
留言交流不过瘾
关注我回复“加群”加入各种主题讨论群