终端复用命令行神器:tmux
点击蓝色“程序猿DD”关注我
回复“资源”获取独家整理的学习资料!
作者 | spoock
前言
经常使用命令行的运维肯定会遇到如何防止网络中断导致正在进行从操作失败的情况,比如执行一个耗时好几个小时的操作或者方便管理窗口的需求,比如在同一个窗口边执行命令边查看程序的log 。通常我们使用screen 或者nohup的方式解决长时间执行的命令。本文介绍另一款窗口复用神器--tmux。用过tmux,大家都不想继续使用screen 了。。
其核心功能:
提供了强劲的、易于使用的命令行界面。
可横向和纵向分割窗口。
支持 UTF-8 编码及 256 色终端。
可在多个缓冲区进行复制和粘贴。
可通过交互式菜单来选择窗口、会话及客户端。
支持跨窗口搜索。
支持自动及手动锁定窗口。
可以自由配置绑定快捷键。
tmux 构成
tmux(terminal multiplexer)是Linux上的终端复用神器,可从一个屏幕上管理多个终端,tmux的结构包括会话(session)、窗口(window)、窗格(pane)三部分。
使用
鉴于tmux的构成分三部分,tmux命令使用主要的对象是 会话(session),窗口(window)和窗格(pane)。常用的动作包含创建、关闭(退出)、重命名、连接、分离、选择。
tmux默认的快捷键前缀是Ctrl+b(下文用prefix指代),按下前缀组合键后松开,再按下命令键进行快捷操作,比如使用prefix d分离会话(应该写作prefix d而不是prefix+d,因为d键不需要与prefix同时按下)。
session操作
tmux new 创建默认名称的会话
tmux new -s mysession 创建名为mysession的会话
tmux ls 显示会话列表
tmux a 连接上一个会话
tmux a -t mysession 连接指定会话,tmux a -t 1
tmux rename -t s1 s2 重命名会话s1为s2
tmux kill-session 关闭上次打开的会话
tmux kill-session -t s1 关闭会话s1
tmux 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 & 关闭当前窗口
在 session 1 中 使用 crtl+b c 创建三个窗口。
窗格管理
prefix % 水平方向创建窗格
prefix " 垂直方向创建窗格
prefix Up|Down|Left|Right 根据箭头方向切换窗格
prefix q 显示窗格编号
prefix o 顺时针切换窗格
prefix } 与下一个窗格交换位置
prefix { 与上一个窗格交换位置
prefix x 关闭当前窗格
prefix space(空格键) 重新排列当前窗口下的所有窗格
prefix ! 将当前窗格置于新窗口
prefix Ctrl+o 逆时针旋转当前窗口的窗格
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-
留言交流不过瘾
关注我,回复“加群”加入各种主题讨论群
终端复用命令行神器:tmux相关推荐
- linux mac终端快捷键设置,mac shell终端编辑命令行快捷键
Ctrl + d 删除一个字符,相当于通常的Delete键(命令行若无所有字符,则相当于exit:处理多行标准输入时也表示eof) Ctrl + h 退格删除一个字符,相当 ...
- linux tee 日志输出_25 个 Linux 下最炫酷又强大的命令行神器,你用过其中哪几个呢?...
众所周知,我们在 Linux 下大多数时候是使用命令行来处理任务的.这样不但操作起来效率比较高,而且界面也比较炫酷.下面,我们就给大家推荐一些不但炫酷又好用的 Linux 命令行神器. 1. exa ...
- 28个Unix/Linux的命令行神器 | 酷壳 - CoolShell.cn
28个Unix/Linux的命令行神器 | 酷壳 - CoolShell.cn 28个Unix/Linux的命令行神器 | 酷壳 - CoolShell.cn slurm 查看网络流量的一个工具 官方 ...
- 命令行神器 Click 简明笔记
Click Click 是用 Python 写的一个第三方模块,用于快速创建命令行.我们知道,Python 内置了一个 Argparse 的标准库用于创建命令行,但使用起来有些繁琐,Click 相比于 ...
- Linux终端共享分屏神器tmux
Linux终端共享分屏神器tmux tmux几大特色 会话与窗口解绑,终端执行的任务不再因为关闭窗口而中断 会话共享,tmux的会话可以被多人共享,同时操作,方便异地操作 支持窗口被水平垂直任意分割 ...
- 一个JSON字符串和文件处理的命令行神器jq,windows和linux都可用
这个命令行神器的下载地址:https://stedolan.github.io/jq/# Windows和Linux版本均只有两个可执行文件,大小不过2MB多. 以Windows版本为例,介绍其用法. ...
- 命令行神器cmder
命令行神器cmder windows上做开发,不管是cmd还是powershell,似乎都不够美观,不够强大,今天就来介绍一款可以替代cmd的神器,Cmder,话不多少,如图: Cmder的主要优点是 ...
- 转载 :28 个 Unix/Linux 的命令行神器
2019独角兽企业重金招聘Python工程师标准>>> 下面是Kristóf Kovács收集的28个Unix/Linux下的28个命令行下的工具(原文链接),有一些是大家熟悉的,有 ...
- 转载:28个Unix/Linux的命令行神器
下面是Kristóf Kovács收集的28个Unix/Linux下的28个命令行下的工具(原文链接),有一些是大家熟悉的,有一些是非常有用的,有一些是不为人知的.这些工具都非常不错,希望每个人都知道 ...
最新文章
- 安装itunes需要管理员身份_Windows 10 在microsoft store 微软商店里安装的itunes如何更改备份位置...
- python如何判断季度_从python中的datetime对象中查找年份和季度
- 通配符及输入输出重定向、管道符和作业控制
- [恢]hdu 1860
- jflash合并stm32f103之bin文件及hex文件
- Python 的AES加密与解密
- RabbitMQ消息追踪之Firehose
- H3C MSTP实验
- Codeforces Round #535 (Div. 3) 解题报告
- Extjs textfield keyup事件
- 安卓隐藏摄像_隐藏摄像头探测器
- 数学分析教程(科大)——3.5笔记+习题
- 邻家的百万富翁(一)
- 第三章 代码的坏味道
- RPM软件包管理命令简介
- linux删除卸载npm,卸载安装node npm (Mac linux )
- 使用aws跑深度学习_11. 附录 - 11.4. 使用AWS运行代码 - 《动手学深度学习》 - 书栈网 · BookStack...
- 四川bh百汇云商城运营中
- 2022-2027年中国煤制尿素行业市场全景评估及发展战略规划报告
- 11.25直播预告|开源与SaaS水火不容?「观测云-可观测之路」第2期技术大咖为您解惑
热门文章
- golang 生成 解析 json
- linux shell 脚本 获取当前函数名
- clion 格式化代码 设置空行 最多保留一行
- pycharm 添加数据库驱动
- Selenium+PhantomJS使用时报错原因及解决方案
- Error response from daemon: Conflict. The container name /mysql is already in use by container
- 简单Access Violation的异常派发,Vista/Longhorn Server
- 浅析linux内核中的idr机制
- Windows远程连接的实现
- Android中Intent传递对象的两种方法(Serializable,Parcelable)