使用Tmux(Terminal Multiplexer)

  在tmux的session中,Ctrl+b是默认的前缀键(组合键),如帮助命令的快捷键是Ctrl+b ?。具体是在 Tmux的某个session中,先按下Ctrl+b并松开,再按下?,就会显示帮助信息。然后,按下 ESC 键或q键,就可以退出帮助。

简介

  Tmux 作为screen的替代品而生,它具有screen的大部分功能且进行了必要而少量的功能增添,这使得它轻便而强大。
  除了screen提供的所有选项,Tmux允许在多个窗口之间水平或垂直拆分窗格、调整窗口窗格的大小、会话活动监视、使用命令行模式编写脚本等。由于 Tmux 的这些功能十分好用,几乎所有 Unix 发行版广泛内嵌了Tmux。

使用Tmux

  1. 启动一个新的tmux session并命名为dev(启动后直接关闭终端也不会kill该session)
    tmux new -s dev
    

    这里的s意为session-name

  2. 启用鼠标支持
    tmux set mouse on
    
  3. 分离当前tmux session先按下Ctrl+b的组合键,再按下d(或者可以输入tmux detach)

    d即为detach之意

  4. 重新进入一个tmux session(进入名为dev的会话)
    tmux attach -t dev
    

    这里-t的意思是target-session

  5. 查看tmux创建的session:
    在session外:tmux ls(tmux list-session也可)
    在session内部:先按下Ctrl+b,再按下s

    ls意为list-session

  6. kill一个tmux进程tmux kill-session -t dev(kill名为dev的session)
  7. 在tmux session内切换到另一个tmux session
    tmux switch -t xxx
    
  8. 重命名当前session:先按下Ctrl+b,再按下$

多个windows及pane(多个独立的console)

  在介绍中已经提到。tmux允许在多个窗口之间水平或垂直拆分窗格、调整窗口窗格的大小、会话活动监视、使用命令行模式编写脚本等。由于 Tmux 的这些功能十分好用,几乎所有 Unix 发行版广泛内嵌了Tmux。

多窗口

  1. 创建新窗口:先按下Ctrl+b的组合键,再按下n
  2. 切换窗口:先按下Ctrl+b的组合键,
    2.1 按下n,进入下个窗口
    2.2 按下p,进入上个窗口

多pane

  1. 水平或垂直分割当前session
    1.1 拆分为上下两个pane:先按下Ctrl+b的组合键,再按下";或者输入tmux split-window
    1.2 拆分为左右两个pane:先按下Ctrl+b的组合键,再按下%;或者输入tmux split-window -h
  2. 在session中切换pane
    2.1 切换到左侧的pane:先按下Ctrl+b的组合键,再按下 ← \leftarrow
    2.2 切换到右侧的pane:先按下Ctrl+b的组合键,再按下 → \rightarrow
    2.3 切换到下方的pane:先按下Ctrl+b的组合键,再按下 ↓ \downarrow
    2.4 切换到上方的pane:先按下Ctrl+b的组合键,再按下 ↑ \uparrow
  3. 调整当前pane的大小:按住Ctrl+b组合键,再按下键盘上的方向键
  4. 关闭当前pane:先按下Ctrl+b的组合键,再按下x
  5. tmux set -g pane-border-status top/bottom在每个pane顶部或者底部显示当前pane的border,如可以使用下在每个pane显示index和当前命令
    tmux set -g pane-border-format "#{pane_index} #{pane_current_command}"
    

了解更多

https://github.com/tmux/tmux/wiki

https://ostechnix.com/tmux-command-examples-to-manage-multiple-terminal-sessions/

(另外https://www.ruanyifeng.com/blog/2019/10/tmux.html是较清晰的介绍)

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐