Tmux
本文最后更新于185 天前,其中的信息可能已经过时,如有错误请发送邮件到xunixiyu@163.com

一、概念:

  • session:会话
  • pane:窗格
  • windows:窗口

在普通的Windows/Linux的Terminal中一个session和一个windows是绑定的,当一个wondows被kill之后,与其绑定的session也随之消失。

而在Tmux中,session和windows是解绑的。

打开一个Terminal,启动tmux,创建一个session与windows,当在这个windows中又创建一个在这个windows中可以运行程序。Tumx可以在一个session中创建多个windows,第一个windows并不会消失,而是被隐藏起来(仍然在运行),以此类推。你可以再需要的时候切换回来。

在一个windows中,可以被划分为多个pane,每一个pane都可以执行一个程序。(相当于一个windows由原来的一个程序,编程存在多个程序。)

session、windows、pane的关系:
image.png

二、安装

# Ubuntu or Debian
sudo apt-get install tmux

# CentOS or Fedora
sudo yum install tmux

# Mac
brew install tmux

三、Tumx操作

进入 tmux 会话后,大部分的 tmux 会话、窗口、空格相关操作都可以用快捷键完成。所有快捷键都要通过前缀键唤起。默认的前缀键是 Ctrl+b,即先按下 Ctrl+b,快捷键才会生效。

例如,帮助命令的快捷键是 Ctrl+b ?。它的用法是,在 Tmux 窗口中,先按下 Ctrl+b,再按下?,就会显示帮助信息。然后,按下 ESC 键或 q 键,就可以退出帮助。

再如,若你想分离会话(对应命令 tmux detach),那你就先按下 Ctrl+b,再按下 d,就会断开当前会话。

Ctrl+b 这个前缀键也可以配置,例如,在~/.tmux.conf 中添加一行 "set -g prefix C-x",就能将前缀键改为 Ctrl+x。

官网快捷键文件:
https://tmuxcheatsheet.com/
简明速查 | 🌟🌟🌟🌟🌟 (leftshadow.com)

会话操作

首先按下前缀键再按下如下快捷键。

  • :new<回车>启动新会话
  • s列出所有会话
  • $重命名会话
  • d断开当前会话
  • D选择要断开的会话
    • 当断开这个session之后,可以通过tmux a或者tmux attach重新连接这个会话,输入tmux会创建一个全新的session,也可以通过tmux attach -t x连接到第x号session。
  • ctrl+z挂起当前会话
  • r重载当前会话
  • 进入命令行模式,可以用 ls 等命令

窗格 (Pane) 操作

  • % 左右平分出两个窗格
  • " 上下平分出两个窗格
  • x 关闭当前窗格
  • { 当前窗格前移
  • } 当前窗格后移
  • ; 选择上次使用的窗格
  • o 选择下一个窗格,也可以使用上下左右方向键来选择,比如切换到下方窗格,就按方向键
  • ! 将当前窗格拆分为一个独立窗口。
  • space 切换窗格布局,tmux 内置了五种窗格布局,也可以通过 ⌥1⌥5来切换
  • z 最大化当前窗格,再次执行可恢复原来大小
  • q 显示所有窗格的序号,在序号出现期间按下对应的数字,即可跳转至对应的窗格
  • Ctrl+方向键 以 1 个单元格为单位移动边缘以调整当前面板大小

窗口 (window) 操作

tmux 除了窗格以外,还有窗口(window) 的概念。依次使用以下快捷键来熟悉 tmux 的窗口操作:

  • c 新建窗口,此时当前窗口会切换至新窗口,不影响原有窗口的状态
  • p 切换至上一窗口
  • n 切换至下一窗口
  • w 窗口列表选择,注意 macOS 下使用 ⌃p⌃n 进行上下选择
  • & 关闭当前窗口
  • , 重命名窗口,可以使用中文,重命名后能在 tmux 状态栏更快速的识别窗口 id
  • 0 切换至 0 号窗口,使用其他数字 id 切换至对应窗口
  • f 根据窗口名搜索选择窗口,可模糊匹配

其它操作

  • ? 列出所有快捷键;按 q 返回
  • : 进入命令行模式;此时可以输入支持的命令,例如 kill-server 可以关闭服务器

四、Tmux配置

# 取消默认的 Ctrl + b 前缀
unbind C-b

# 将前缀修改为 Ctrl + x
set -g prefix C-x

# 取消原来的分割窗格快捷键
unbind %

unbind \" #这里一定是\",不能是",双引号(")是一个特殊字符,需要正确转义

# 设置新的快捷键,使用 [ 左右平分窗格
bind [ split-window -h

# 设置新的快捷键,使用 ] 上下平分窗格
bind ] split-window -v

# 启用鼠标支持
set -g mouse on

文末附加内容
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇