`

linux的tmux的使用

阅读更多

常用按键

这里需要说明一点的是,tmux的任何指令,都包含一个前缀,也就是说,你按了前缀(一组按键,默认是Ctrl+b)以后,系统才知道你接下来的指令是发送给tmux的。

  • C-b ? 显示快捷键帮助
  • C-b C-o 调换窗口位置,类似与vim 里的C-w
  • C-b 空格键 采用下一个内置布局
  • C-b ! 把当前窗口变为新窗口
  • C-b " 模向分隔窗口
  • C-b % 纵向分隔窗口
  • C-b q 显示分隔窗口的编号
  • C-b o 跳到下一个分隔窗口
  • C-b 上下键 上一个及下一个分隔窗口
  • C-b C-方向键 调整分隔窗口大小
  • C-b c 创建新窗口
  • C-b 0~9 选择几号窗口
  • C-b c 创建新窗口
  • C-b n 选择下一个窗口
  • C-b l 切换到最后使用的窗口
  • C-b p 选择前一个窗口
  • C-b w 以菜单方式显示及选择窗口
  • C-b t 显示时钟
  • C-b ; 切换到最后一个使用的面板
  • C-b x 关闭面板
  • C-b & 关闭窗口
  • C-b s 以菜单方式显示和选择会话
  • C-b d 退出tumx,并保存当前会话,这时,tmux仍在后台运行,可以通过tmux attach进入到指定的会话

配置

我们先来看一下几个配置,这些配置才是我离不开tmux的原因:-)。tmux的配置文件是~/.tmux.conf,这个文件可能不存在,你可以自己新建。下面开始配置,首先,有没有觉得tmux的前缀按起来太不方便了,ctrl与b键隔得太远,很多人把它映射成C+a,也就是在配置文件(~/.tmux.conf)中加入下面这条语句:

#设置前缀为Ctrl + aset-g prefix C-a

与此同时,取消默认的前缀按键:

#解除Ctrl+b 与前缀的对应关系
unbind C-b

配置完以后,重启tmux起效,或者先按C+b,然后输入:,进入命令行模式,在命令行模式下输入:

source-file ~/.tmux.conf

你也可以跟我一样,在配置文件中加入下面这句话,以后改了只需要按前缀+r了。

#将r 设置为加载配置文件,并显示"reloaded!"信息
bind r source-file ~/.tmux.conf \; display "Reloaded!"

关于前缀,很多人都喜欢改成Ctrl+a,不过我个人更喜欢Ctrl+w,如果你是vim用户,你一定懂的。还有就是面板的切换很不方便,需要先按前缀,再按方向键,还记得vim里面怎么切换各个面板的吗?tmux也可以,因为它支持映射。把前缀映射改成Ctrl+w,再加入如下几条语句,现在切换窗口就和vim一摸一样了,顿时觉得亲切了很多。

#up
bind-key k select-pane -U 
#down
bind-key j select-pane -D
#left
bind-key h select-pane -L
#right
bind-key l select-pane -R

上面的最后一条语句会更改C-b l的功能,我挺喜欢这个功能的,因为我们很时候都是在两个窗口或这两个面板中切换,所以我又加入如下语句

#select last window
bind-key C-l select-window -l

现在我的l键可不能随便按了,Ctrl+w l是切换面板,Ctrl+w Ctrl+l切换窗口,Ctrl+l清屏。

tmux让我如此热爱的第二个原因应该就是它的复制模式了,我平时几乎不怎么用键盘,唯有在终端复制的时候需要非常小心,仔细的选择复制的内容,然后右键,复制。终于,我今天解脱了,下面来看一下复制模式。

复制模式copy-mode

  • 前缀 [ 进入复制模式
  • 按 space 开始复制,移动光标选择复制区域
  • 按 Enter 复制并退出copy-mode。
  • 将光标移动到指定位置,按 PREIFX ] 粘贴

如果把tmux比作vim的话,那么我们大部分时间都是处于编辑模式,我们复制的时候可不可以像vim一样移动呢?只需要在配置文件(~/.tmux.conf)中加入如下行即可。

#copy-mode 将快捷键设置为vi 模式
setw -g mode-keys vi

会话

  • C-b s 以菜单的方式查看并选择会话
  • C-b :new-session 新建一个会话
  • C-b d 退出并保存会话
  • 终端运行 tmux attach 返回会话

命名会话

tmux new-s session  
tmux new-s session -d #在后台建立会话 
tmux ls #列出会话 
tmux attach -t session #进入某个会话 

使当前pane 最大化

从我用vim开始,就相信这世界上有些人比你自己还了解你自己想要什么,所以乔老爷子才能做出让世人尖叫的产品,所以我经常浏览高手的.vimrc文件,我用了tmux不到3天就发现,它怎么不能最大化当前pane?就想vim里的ZommWinPlugin.vim插件一样,你按下某键,当前窗口就最大化了,获得最大可视界面。当目前为止,就还没有发现我有需求而别人没有的,同样,已有前人找到的解决办法,方法如下:

# zoom pane <-> window #http://tmux.svn.sourceforge.net/viewvc/tmux/trunk/examples/tmux-zoom.sh
bind ^z run "tmux-zoom"##

滚屏

滚屏要进入copy-mode,即前缀+[,然后就可以用上下键来滚动屏幕,配置了vi快捷键模式,就可以像操作vi一样来滚动屏幕,非常的方便。退出直接按‘q’键即可。

其他配置

下面是从别人那里摘录过来的配置,反正我是用不着,留着以后参考吧,或许屏幕前的你有需要呢。

## author   : Xu Xiaodong <xxdlhy@gmail.com># modified : 2012 Jul 22##-- base settings --#set-g default-terminal "screen-256color"set-g display-time 3000set-g escape-time 0set-g history-limit 65535set-g base-index 1set-g pane-base-index 1#-- bindkeys --## prefix key (Ctrl+a)set-g prefix ^a
unbind ^b
bind a send-prefix

# split window
unbind '"'# vertical split (prefix -)
bind - splitw -v 
unbind %
bind | splitw -h # horizontal split (prefix |)# select pane
bind k selectp -U # above (prefix k)
bind j selectp -D # below (prefix j)
bind h selectp -L # left (prefix h)
bind l selectp -R # right (prefix l)# resize pane
bind -r ^k resizep -U 10# upward (prefix Ctrl+k)
bind -r ^j resizep -D 10# downward (prefix Ctrl+j)
bind -r ^h resizep -L 10# to the left (prefix Ctrl+h)
bind -r ^l resizep -R 10# to the right (prefix Ctrl+l)# swap pane# swap with the previous pane (prefix Ctrl+u)
bind ^u swapp -U 
# swap with the next pane (prefix Ctrl+d)
bind ^d swapp -D

# misc# select the last pane (prefix e)
bind e lastp  
# select the last window (prefix Ctrl+e)
bind ^e last# kill pane (prefix q)
bind q killp  
# kill window (prefix Ctrl+q)
bind ^q killw 

# copy mode# enter copy mode (prefix Escape)
bind Escape copy-mode             
# paste buffer (prefix Ctrl+p)
bind ^p pasteb                    
# select (v)
bind -t vi-copy v begin-selection 
# copy (y)
bind -t vi-copy y copy-selection  

# zoom pane <-> window #http://tmux.svn.sourceforge.net/viewvc/tmux/trunk/examples/tmux-zoom.sh
bind ^z run "tmux-zoom"# app# htop (prefix !)
bind ! splitw htop                                     
# man (prefix m)
bind m command-prompt "splitw 'exec man %%'"# perl func (prefix @)
bind @ command-prompt "splitw 'exec perldoc -t -f %%'"# perl var (prefix *)
bind * command-prompt "splitw 'exec perldoc -t -v %%'"# perl doc (prefix %)
bind % command-prompt "splitw 'exec perldoc -t %%'"# ruby doc (prefix /)
bind / command-prompt "splitw 'exec ri %%'"# reload config (prefix r)
bind r source ~/.tmux.conf \; display "Configuration reloaded!"

#-- statusbar --#
set -g status-utf8 on
set -g status-interval 1
set -g status-keys vi

setw -g mode-keys vi
setw -g automatic-rename off

#-- colorscheme --#
#https://github.com/daethorian/conf-tmux/blob/master/colors/zenburn.conf

# modes
setw -g clock-mode-colour colour223
setw -g mode-attr bold
setw -g mode-fg colour223
setw -g mode-bg colour235

# panesset-g pane-border-bg colour234
set-g pane-border-fg colour234
set-g pane-active-border-bg colour232
set-g pane-active-border-fg colour232

# statusbarset-g status-justify centre
set-g status-bg colour235
set-g status-fg colour248
set-g status-attr dim
#[default]» #[fg=colour187]#S #[default]• #[fg=colour187]w#I.p#P#[default]"set-g status-left "
set -g status-left-attr bright
set -g status-left-length 20
#[fg=colour174]#(/home/xiaodong/bin/uptime) #[default]• #[fg=colour174]#(cut -d ' ' -f 1-3 /proc/loadavg)"set-g status-right "
set -g status-right-attr bright
set -g status-right-length 80

setw -g window-status-current-fg colour223
setw -g window-status-current-bg colour237
setw -g window-status-current-attr bold
setw -g window-status-current-format "#I:#W#F"#setw -g window-status-alert-attr bold#setw -g window-status-alert-fg colour255#setw -g window-status-alert-bg colour160# messagesset-g message-attr bold
set-g message-fg colour223
set-g message-bg colour235

set -g visual-activity on

快速启动tmux

如果觉得每次都要打开tmux,然后在打开几个窗口和面板很麻烦,那么下面这个脚本你一定会喜欢。参考这里

#!/bin/sh## name     : tmuxen, tmux environment made easy# author   : Xu Xiaodong xxdlhy@gmail.com# license  : GPL# created  : 2012 Jul 01# modified : 2012 Jul 02#

cmd=$(which tmux)# tmux path
session=codefun   # session nameif[-z $cmd ];then
  echo "You need to install tmux."exit1fi

$cmd has -t $session

if[ $?!=0];then
  $cmd new-d -n vim -s $session "vim"
  $cmd splitw -v -p 20-t $session "pry"
  $cmd neww -n mutt -t $session "mutt"
  $cmd neww -n irssi -t $session "irssi"
  $cmd neww -n cmus -t $session "cmus"
  $cmd neww -n zsh -t $session "zsh"
  $cmd splitw -h -p 50-t $session "zsh"
  $cmd selectw -t $session:5fi

$cmd att -t $session

exit0
分享到:
评论

相关推荐

    linux tmux原版参考手册

    ### Linux Tmux 原版参考手册解析 #### 概述 Tmux 是一款功能强大的终端复用器,它能够帮助用户在一个屏幕上管理多个终端窗口。Tmux 的核心优势在于其能够在后台持续运行,即便与用户的屏幕断开连接后也能继续工作...

    Linux_Tmux的安装与简易使用.md

    Linux_Tmux的安装与简易使用.md

    Linux一键安装tmux

    【Linux一键安装tmux】 在Linux环境中,tmux是一个强大的终端复用...通过以上步骤,你可以在Linux系统上快速安装并使用tmux,提升你的终端工作效率。记住,熟练掌握tmux的使用将对日常的系统管理和开发工作大有裨益。

    LINUX 下tmux和vim 安装详解

    本文档详细说明了在Linux下如何安装tmux 和vim插件,能够更方便在Linux下操作,方便开发,只要严格按照步骤操作即可。

    tmux 安装需要的包

    **tmux:强大的终端复用器** tmux(Terminal Multiplexer)是一款开源的命令行工具,它允许用户在单个终端窗口中创建多个会话,每个会话可以包含多个窗格,...了解并熟练使用tmux,能大幅提升Linux环境下的工作效率。

    tmux使用(程序员适用)

    tmux通常是Linux和macOS系统的默认包,可以通过包管理器进行安装,例如在Ubuntu上使用`sudo apt-get install tmux`,在macOS上使用`brew install tmux`。 ### 2. 启动与退出tmux 要启动tmux,只需在终端输入`tmux`...

    tmux linux下多窗口使用简易教程

    tmux linux下多窗口使用简易教程

    tmux-3.2a.tar.gz

    tmux源码安装包。 tmux是一个终端登录远程主机并运行后,在其中可以开启多个控制台的终端复用软件。 安装方法: 1、解压 2、./configure ...使用教程:https://www.cnblogs.com/kaiye/p/6275207.html

    linux-结合vimtmuxzsh干活也是一种享受

    为了提高工作效率,很多开发者会选择使用高级工具,如vim、tmux和zsh,这些工具能帮助他们更高效地进行代码编辑、多任务处理以及交互式Shell的个性化定制。本篇文章将详细介绍如何利用vim、tmux和zsh提升Linux开发...

    linux-自动显示tmux中任何命令的备忘表或注释

    在Linux开发环境中,效率往往取决于对工具的熟练掌握。`tmux`是一个强大的终端复用器,它允许用户在...这个插件不仅增加了`tmux`的功能性,还大大提升了学习和使用这些工具的便利性,是Linux开发者提高生产力的好帮手。

    Linux终端下tmux直接上手

    本文将基于给定文件中的知识点,详细介绍如何在Linux环境下使用`tmux`。 #### 二、前提条件 在开始学习`tmux`之前,确保您已经熟悉了Linux的基本命令行操作。这包括但不限于使用`cd`、`ls`等命令进行文件导航,以及...

    【Operate System-Linux】Tmux-1.8.tar.gz

    使用过程中,用户可以通过阅读Tmux的内置帮助(`tmux help`)或在线文档来学习更多高级特性和使用技巧,以充分利用这个强大的工具。Tmux是一个强大的生产力工具,对于频繁在命令行环境中工作的IT专业人员来说,它是...

    tmux

    **tmux:Linux终端复用器的深度解析** 在Linux和Unix系统中,`tmux`(Terminal Multiplexer)是一个强大的终端复用器,它允许用户在一个终端窗口中创建并管理多个独立的会话,每个会话又可以进一步分割成多个窗口和...

    tmux 终端复用软件

    **tmux终端复用软件详解** tmux,全称“Terminal Multiplexer”,是一款强大的终端复用工具,尤其在Linux和Unix-like系统中广泛使用。它允许用户在一个单一的终端...记得多加练习,探索更多适合自己的tmux使用技巧。

    tmux源代码安装包

    - **在线教程**:网上有很多关于tmux使用的教程和视频,可以帮助快速上手。 - **社区支持**:Stack Overflow、GitHub等社区有大量的讨论和问题解答,是学习和解决问题的好地方。 总之,tmux源代码安装包为不具备...

    tmux-2.9.tar.gz

    tmux是一个方便的多屏软件,当ssh连接后可以开启tmux,在tmux中分出多屏,在每屏中运行不同的命令,即方便,又安全,并且ssh即使突然断开,tmux中运行的命令会继续运行并不会中断,减少使用nohup...&的不便。

    tmux1.9 linux多屏管理软件

    在大多数Linux发行版中,`tmux` 可以通过包管理器轻松安装,例如在Ubuntu或Debian上使用 `sudo apt-get install tmux`,在Fedora或CentOS上使用 `sudo yum install tmux`。 一旦安装完成,只需在终端输入 `tmux` ...

    tmux Taster.pdf

    在大多数Linux发行版中,`tmux`可以通过包管理器轻松安装。例如,在Ubuntu或Debian上,你可以使用以下命令: ```bash sudo apt-get install tmux ``` 在Fedora或CentOS/RHEL上: ```bash sudo yum install tmux `...

    tmux 安装包

    在大多数Linux发行版中,tmux可以通过包管理器轻易安装。以下是常见Linux发行版的安装步骤: #### Ubuntu/Debian: ```bash sudo apt update sudo apt install tmux ``` #### CentOS/RHEL/Fedora: ```bash sudo ...

    极客工具Vim和Tmux教程【Linux操作系统教程5】

    极客工具Vim和Tmux教程【Linux操作系统教程5】

Global site tag (gtag.js) - Google Analytics