首页 > 其他分享 >Tmux

Tmux

时间:2023-09-22 18:55:18浏览次数:47  
标签:set Ctrl buffer bind tmux Tmux 面板

简介

Tmux 是一个终端复用器(terminal multiplexer),非常有用,属于常用的开发工具

tmux使用c语言实现的,安装方法github

使用

[root@localhost ~]# tmux    # 启用
[root@localhost ~]# exit    # 退出,或者ctrl+D
[root@localhost ~]# tmux new -s demo    # 新建一个名称为demo的会话
[root@localhost ~]# tmux deatach    # 断开当前会话,在后台运行,也可以选择使用<ctrl+b, d>

# 断开会话后,想要接着上次留下的现场继续工作,就要使用到tmux的attach命令了
# 语法为tmux attach-session -t session-name,
# 可简写为tmux a -t session-name 或 tmux a
[root@localhost ~]# tmux a    # 默认进入第一个会话
[root@localhost ~]# tmux a -t demo # 进入名称为demo的会话

# 会话的使命完成后,一定是要关闭的,可以使用tmux的kill命令
# kill命令有`kill-pane`、`kill-server`、`kill-session` 和 `kill-window`共四种,其中`kill-session`的语法为`tmux kill-session -t session-name`
[root@localhost ~]# tmux kill-session -t demo   # 关闭demo的会话
[root@localhost ~]# tmux kill-server    # 关闭服务器,所有的会话都会关闭

[root@localhost ~]# tmux list-session    # 查看所有会话
[root@localhost ~]# tmux ls    # 查看所有会话,简写

前缀键

Tmux 窗口有大量的快捷键。所有快捷键都要通过前缀键唤起。默认的前缀键是Ctrl+b,即先按下Ctrl+b,快捷键才会生效
举例来说,帮助命令的快捷键是Ctrl+b ?,它的用法是,在 Tmux 窗口中,先按下Ctrl+b,再按下?,就会显示帮助信息。
然后,按下 ESC 键或q键,就可以退出帮助

Tmux快捷指令

表一:系统指令

前缀 指令 描述
Ctrl+b ? 显示快捷键帮助文档
Ctrl+b d 断开当前会话
Ctrl+b D 选择要断开的会话
Ctrl+b Ctrl+z 挂起当前会话
Ctrl+b r 强制重载当前会话
Ctrl+b s 显示会话列表用于选择并切换
Ctrl+b : 进入命令行模式,此时可直接输入ls等命令
Ctrl+b [ 进入复制模式,按q退出
Ctrl+b ] 粘贴复制模式中复制的文本
Ctrl+b ~ 列出提示信息缓存

表二:窗口(window)指令

前缀 指令 描述
Ctrl+b c 新建窗口
Ctrl+b & 关闭当前窗口(关闭前需输入y or n确认)
Ctrl+b 0~9 切换到指定窗口
Ctrl+b p 切换到上一窗口
Ctrl+b n 切换到下一窗口
Ctrl+b w 打开窗口列表,用于且切换窗口
Ctrl+b , 重命名当前窗口
Ctrl+b . 修改当前窗口编号(适用于窗口重新排序)
Ctrl+b f 快速定位到窗口(输入关键字匹配窗口名称)

表三:面板(pane)指令

前缀 指令 描述
Ctrl+b " 当前面板上下一分为二,下侧新建面板
Ctrl+b % 当前面板左右一分为二,右侧新建面板
Ctrl+b x 关闭当前面板(关闭前需输入y or n确认)
Ctrl+b z 最大化当前面板,再重复一次按键后恢复正常(v1.8版本新增)
Ctrl+b ! 将当前面板移动到新的窗口打开(原窗口中存在两个及以上面板有效)
Ctrl+b ; 切换到最后一次使用的面板
Ctrl+b q 显示面板编号,在编号消失前输入对应的数字可切换到相应的面板
Ctrl+b { 向前置换当前面板
Ctrl+b } 向后置换当前面板
Ctrl+b Ctrl+o 顺时针旋转当前窗口中的所有面板
Ctrl+b 方向键 移动光标切换面板
Ctrl+b o 选择下一面板
Ctrl+b 空格键 在自带的面板布局中循环切换
Ctrl+b Alt+方向键 以5个单元格为单位调整当前面板边缘
Ctrl+b Ctrl+方向键 以1个单元格为单位调整当前面板边缘(Mac下被系统快捷键覆盖)
Ctrl+b t 显示时钟

自定义配置

配置文件为~/.tmux.conf

修改前缀指令

在tmux窗口中,先按下Ctrl+b指令前缀,然后按下系统指令:,进入到命令模式后输入source-file ~/.tmux.conf,回车后生效

set -g prefix C-a # 
unbind C-b # C-b即Ctrl+b键,unbind意味着解除绑定 
bind C-a send-prefix # 绑定Ctrl+a为新的指令前缀 
# 从tmux v1.6版起,支持设置第二个指令前缀 
set-option -g prefix2 ` # 设置一个不常用的`键作为指令前缀,按键更快些

# 绑定快捷键为r 
bind r source-file ~/.tmux.conf \; display-message "Config reloaded.." # 加了这个就可以直接在tmux内部<ctrl+b, r>更新

粘贴和复制

tmux复制操作的内容默认会存进buffer里,buffer是一个粘贴缓存区,新的缓存总是位于栈顶,它的操作命令如下

tmux list-buffers # 展示所有的 
buffers tmux show-buffer [-b buffer-name] # 显示指定的 buffer 内容 
tmux choose-buffer # 进入 buffer 选择页面(支持jk上下移动选择,回车选中并粘贴 buffer 内容到面板上) 
tmux set-buffer # 设置buffer内容 
tmux load-buffer [-b buffer-name] file-path # 从文件中加载文本到buffer缓存 
tmux save-buffer [-a] [-b buffer-name] path # 保存tmux的buffer缓存到本地 
tmux paste-buffer # 粘贴buffer内容到会话中 
tmux delete-buffer [-b buffer-name] # 删除指定名称的buffer

以上buffer操作在不指定buffer-name时,默认处理是栈顶的buffer缓存,在tmux会话的命令行输入时,可以省略上述tmux前缀,默认情况下,buffers内容是独立于系统粘贴板的,它存在于tmux进程中,且可以在会话间共享

自己的配置

bind-key c new-window -c "#{pane_current_path}"
bind-key % split-window -h -c "#{pane_current_path}"
bind-key '"' split-window -c "#{pane_current_path}"

# 修改前缀指令
set -g prefix C-e
unbind C-b # C-b即Ctrl+b键,unbind意味着解除绑定
bind C-e send-prefix # 绑定Ctrl+e为新的指令前缀
set-option -g prefix2 ` # 设置一个不常用的`键作为指令前缀,按键更快些

# 绑定快捷键为r
bind r source-file ~/.tmux.conf \; display-message "Config reloaded.."
bind-key s setw synchronize-panes

set-option -g mouse on # 开启鼠标支持

# 绑定hjkl键为面板切换的上下左右键
bind -r k select-pane -U # 绑定k为↑
bind -r j select-pane -D # 绑定j为↓
bind -r h select-pane -L # 绑定h为←
bind -r l select-pane -R # 绑定l为→
 
# 绑定Ctrl+hjkl键为面板上下左右调整边缘的快捷指令
bind -r ^k resizep -U 10 # 绑定Ctrl+k为往↑调整面板边缘10个单元格
bind -r ^j resizep -D 10 # 绑定Ctrl+j为往↓调整面板边缘10个单元格
bind -r ^h resizep -L 10 # 绑定Ctrl+h为往←调整面板边缘10个单元格
bind -r ^l resizep -R 10 # 绑定Ctrl+l为往→调整面板边缘10个单元格

unbind '"'
bind - splitw -v -c '#{pane_current_path}' # 垂直方向新增面板,默认进入当前目录
unbind %
bind '\' splitw -h -c '#{pane_current_path}' # 水平方向新增面板,默认进入当前目录
setw -g mode-keys vi # 开启vi风格后,支持vi的C-d、C-u、hjkl等快捷键bind Escape copy-mode # 绑定esc键为进入复制模式
bind -T copy-mode-vi v send-keys -X begin-selection  # 绑定v键为开始选择文本
bind -T copy-mode-vi y send-keys -X copy-selection-and-cancel # 绑定y键为复制选中文本
bind p pasteb # 绑定p键为粘贴文本(p键默认用于进入上一个窗口,不建议覆盖)

set -g base-index 1 # 设置窗口的起始下标为1
set -g pane-base-index 1 # 设置面板的起始下标为1

# 自定义状态栏{
    # 自动重新编号 window
    set -g renumber-windows on
    # set -g status-utf8 on # 状态栏支持utf8
    set -g default-terminal "screen-256color" # 开启256 colors支持
    set -g status-interval 1 # 状态栏刷新时间
    set -g status-justify left # 状态栏列表左对齐
    setw -g monitor-activity on # 非当前窗口有内容更新时在状态栏通知
    set -g status-bg black # 设置状态栏背景黑色
    set -g status-fg yellow # 设置状态栏前景黄色
    set -g status-style "bg=black, fg=yellow" # 状态栏前景背景色
    set -g status-left "#[bg=#FF661D] ❐ #S " # 状态栏左侧内容
    # set -g status-left '#[bg=#00bb00] [#S] #[default] '
    # 状态栏右侧显示时间
    set -g status-right '#[fg=#ff66cc,bg=black] #h #[fg=#ff66cc,bg=black] %Y年%m月%d日 %A #[fg=#ff66cc,bg=black] %H:%M:%S '
    set -g status-right '#[fg=#ff66cc,bg=black] #h #[fg=#ff66cc,bg=black] %Y年%m月%d日 %A #[fg=#ff66cc,bg=black] %H:%M:%S '
    set -g status-left-length 300 # 状态栏左边长度300
    set -g status-right-length 500 # 状态栏左边长度500
    set -wg window-status-format " #I #W " # 状态栏窗口名称格式
    set -wg window-status-current-format " #I:#W#F " # 状态栏当前窗口名称格式(#I:序号,#w:窗口名称,#F:间隔符)
    set -wg window-status-separator "" # 状态栏窗口名称之间的间隔
    set -wg window-status-current-style "bg=black" # 状态栏当前窗口名称的样式
    set -wg window-status-last-style "fg=black" # 状态栏最后一个窗口名称的样式
    set -g message-style "bg=#202529, fg=#91A8BA" # 指定消息通知的前景、后景色
    # 当前激活窗口在状态栏的展位格式
    setw -g window-status-current-format '#[bg=black, fg=#990033, bold] [#I] #W '
    # 未激活每个窗口占位的格式
    setw -g window-status-format '#[bg=#0000ff, fg=#990033] *[#I] #W*'
# }

# 设置序号从1开始
set -g base-index 1
set -g pane-base-index 1

# 关闭状态栏窗口占位的自动命名
setw -g automatic-rename off
set-option -g allow-rename off

# 关闭默认的rename机制
setw -g automatic-rename off
setw -g allow-rename off

# 改变分隔符颜色
# set -g pane-border-style fg=white
# set -g pane-border-style bg=green
# set -g pane-active-border-style fg=red
# set -g pane-active-border-style bg=green

参考资料

路易斯的tmux使用手册
阮一峰的tmux使用教程
tmux美化
Y分钟速成X,其中 X=tmux

标签:set,Ctrl,buffer,bind,tmux,Tmux,面板
From: https://www.cnblogs.com/NingYaFelix/p/17723162.html

相关文章

  • Tmux快捷键
    以下是Tmux的最简操作流程:新建会话tmuxnew-smy_session。(或tmux)在Tmux窗口运行所需的程序。按下快捷键Ctrl+bd将会话分离。下次使用时,重新连接到会话tmuxattach-session-tmy_session。(或序号)会话快捷键:Ctrl+bs:列出所有会话Ctrl+b$:重命名当前会话窗格快捷键......
  • tmux静态链接libevent
    开发环境~✘cat/etc/issueUbuntu18.04.6LTS\n\l~✘编译步骤libevent~/prog/libevent-2.1.12-stable✘./configure--prefix=$PWD/install--enable-static~/prog/libevent-2.1.12-stable✘makeinstalltmux~/prog/tmux-3.3a✘LIBEVENT_CORE_CFLAGS......
  • 【THM】tmux(tmux使用入门)-学习
    本文相关的TryHackMe实验房间链接:https://tryhackme.com/room/rptmux本文相关内容:学习使用tmux,它是linux系统中最强大的多任务处理工具之一。tmux简介和实践终端多路复用器tmux是Linux社区中最常用的工具之一。虽然tmux不是一个恶意工具,但是它能让攻击者在整个渗透测试过程中......
  • tmux ubuntu install
    tmux-plugins/tpm:TmuxPluginManager(github.com)tmux重启后报错errorconnectingto/tmp/tmux-1001/default(Nosuchfileordirectory)_Quelquefois的博客-CSDN博客  从fish退出>bash ......
  • tmux使用指令
    nohuppythonmain.py&进入后台的终端tmuxattach-tyhl查看所有的tmuxls新开终端tmuxnew-syhl一个终端分上下2个,进入下面的终端ctrl+b,箭头下离开当前终端,后台运行tmaxdetach或者按键ctrl+bd关闭终端tmuxkill-session-t或者ctrl+d分屏左......
  • tmux后台终端程序启动工具-替代nohup后台程序启动工具
    还在用nohup后台执行任务吗?快来用tmux原创 艺说IT 艺说IT 2023-05-2810:09 发表于广东收录于合集#linux3个#linux命令1个文章目录一、前言1.1tmux介绍1.2之前后台运行查看日志的方式二、各系统安装tmux方法2.1CentOS2.2UbuntuAnd......
  • tmux -- terminal multiplexer
    概念https://www.ruanyifeng.com/blog/2019/10/tmux.htmlSSH登录后,使用tmux可以保留回话,即使关闭终端。同一个回话可以被多个终端共享,分享屏幕,主机开启一个tmux,远程机器SSH登录主机,使用tmuxattach此回话。 命令行的典型使用方式是,打开一个终端窗口(terminalwindow,以下简......
  • 结对编程神器:tmux
    tmux的确比Screen帅气啊!mark:https://github.com/aqua7regia/tmux-Productive-Mouse-Free-Development_zh/blob/master/book-content/Chapter5.md结对编程要求两人都能输入,如果是教学,希望client端不能写,只需要attach-session-r即可目前的疑问:tmux我设置`(反引号)为控制符,搞得我没法......
  • tmux中的复制粘贴
    在tmux中,ctrl+c和ctrl+v无法进行复制粘贴。按住shift可以恢复鼠标右键快捷模式,如下图所示,然后就可以选择复制或粘贴了。 ......
  • Tmux 使用教程
    1,Tmux使用教程Tmux使用教程-阮一峰的网络日志(ruanyifeng.com) Tmux是一个终端复用器(terminalmultiplexer),非常有用,属于常用的开发工具。本文介绍如何使用Tmux。一、Tmux是什么?1.1会话与进程命令行的典型使用方式是,打开一个终端窗口(terminalwindow,以下简称"窗......