zoukankan      html  css  js  c++  java
  • tmux:终端复用神器

    一、简介与安装

      今天无意间从同事那里知道有 tmux 这种神器,tmux(terminal multiplexer)是Linux上的终端复用神器,可从一个屏幕上管理多个终端(准确说是伪终端)。使用该工具,用户可以连接或断开会话,而保持终端在后台运行。类似的工具还有screen,今天只介绍tmux相关操作。

      tmux的结构包括会话(session)、窗口(window)、窗格(pane)三部分,会话实质是伪终端的集合,每个窗格表示一个伪终端,多个窗格展现在一个屏幕上,这一屏幕就叫窗口。

      session(会话):一个服务器可以包含多个会话。

      window(窗口):一个会话可以包含多个窗口。

      pane(窗格):一个窗口可以包含多个面板[强悍的分屏]。

    1、CenOs下安装tmux

      方式一(yum安装):

    yum install tmux -y
    

      方式二(源码安装):

      源码方式安装有依赖,需要先安装libevent,且版本在2.0以上

    # 安装libevent
    wget https://github.com/libevent/libevent/releases/download/release-2.0.22-stable/libevent-2.0.22-stable.tar.gz
    tar xzvf libevent-2.0.22-stable.tar.gz
    cd libevent-2.0.22-stable
    ./configure
    make && make install
    # tmux安装
    git clone https://github.com/tmux/tmux.git
    cd tmux/
    sh autogen.sh
    ./configure
    make && make install

    2、源码安装可能出现的问题

    (1)问题一:

      期间可能会遇到执行autogen.sh 报错,原因是没有安装automake。这个直接yum install automake就简单解决了。

    (2)问题二:

      执行的时候遇到如下报错:

    libevent-2.0.so.5: cannot open shared object file: No such file or directory

      解决方法:

    ln -s /usr/local/lib/libevent-2.0.so.5 /usr/lib/libevent-2.0.so.5     # 32位系统
    ln -s /usr/local/lib/libevent-2.0.so.5 /usr/lib64/libevent-2.0.so.5   # 64位系统

    二、基本操作

      基本的操作无非就是对会话、窗口、窗格进行管理,包括创建、关闭、重命名、连接、分离、选择等等。

      一般使用命令和快捷键进行操作,可在系统shell终端和tmux命令模式(类似vim的命令模式)下使用命令,或者在tmux终端使用快捷键。

      tmux默认的快捷键前缀是Ctrl+b(下文用prefix指代),按下前缀组合键后松开再按下命令键进行快捷操作,比如使用prefix d分离会话(应该写作prefix d而不是prefix+d,因为d键不需要与prefix同时按下)。

    1、会话管理

    常用命令
    
    tmux new                   创建默认名称的会话(在tmux命令模式使用new命令可实现同样的功能,其他命令同理,后文不再列出tmux终端命令)
    
    tmux new -s mysession      创建名为mysession的会话
    
    tmux new -s mysession -d    在后台建立名为mysession的会话
    
    tmux ls                    显示会话列表
    
    tmux a                     连接上一个会话
    
    tmux a -t mysession        连接名为mysession的会话
    
    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 $    重命名会话
    
    prefix d    断开当前会话
    
    prefix D    选择要脱离的会话,同时开启多个会话时使用

    prefix t 显示当前时间,按 q/Esc 退出

    prefix [ 复制模式,光标移动到复制内容位置,空格键开始,方向键选择复制,回车确认,按 q/Esc 退出

    prefix ] 粘贴之前复制的内容,按 q/Esc 退出

    2、窗口管理

    prefix c    创建一个新窗口
    
    prefix ,    重命名当前窗口
    
    prefix w    列出所有窗口,可进行切换
    
    prefix n    进入下一个窗口
    
    prefix p    进入上一个窗口
    
    prefix l    进入之前操作的窗口
    
    prefix 0~9  选择编号0~9对应的窗口
    
    prefix .    修改当前窗口索引编号
    
    prefix '    切换至指定编号(可大于9)的窗口
    
    prefix f    根据显示的内容搜索窗格
    
    prefix &    关闭当前窗口

    3、窗格管理

    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    显示当前窗格信息

    4、其他命令

    tmux list-key      列出所有绑定的键,等同于prefix ?
    
    tmux list-command  列出所有命令

    三、参考资料

      https://blog.51cto.com/svsky/1929509

      https://www.cnblogs.com/liuguanglin/p/9290345.html

      https://www.cnblogs.com/reboot51/p/9485911.html

  • 相关阅读:
    【Vue原理】Compile
    vue v-cloak 的作用和用法
    vue中template的作用及使用
    Vue-router 嵌套路由
    Vue keep-alive实践总结
    Vuex入门(2)—— state,mapState,...mapState对象展开符详解
    mysql允许外部连接设置
    Swagger入门教程
    牛客枚举题---铺地毯
    牛客区间求和、枚举、贪心题---数学考试
  • 原文地址:https://www.cnblogs.com/li-li/p/11212473.html
Copyright © 2011-2022 走看看