tmux的简介:
tmux是一个优秀的终端复用软件,即使非正常掉线,也能保证当前的任务运行;这一点对于远程SSH访问特别有用,网络不好的情况下仍然能保证工作现场不丢失;此外,tmux完全使用键盘控制窗口,实现窗口的切换功能。
tmux两个主要功能:
split(切割)窗口;可以在一个terminal下打开多个终端,也可以对当前屏幕进行各种split,即可以 同时打开多个显示范围更小的终端。
在使用SSH的环境下,避免网络不稳定,导致工作现场的丢失。想象以下场景, 你在执行一条命令的过程中,由于网络不稳定,SSH连接断开了。这个时候,你就不知道之前 的那条命令是否执行成功。如果此时你打开了很多文件,进入了较深层次的目录,由于网络 不稳定,SSH连接断开。重新连接以后,你又不得不重新打开那些文件,进入那个深层次的 目录。如果使用了tmux,重新连接以后,就可以直接回到原来的工作环境,不但提高了工作 效率,还降低了风险,增加了安全性。
以下是 tmux 超越 screen 的地方:
screen 的项目大体上已经终止了,并且代码中有大量的问题;
tmux 是一个活跃的项目,并且其代码库经常进行更新;
tmux 使用的是真正的客户端/服务器模型,而 screen 只是模拟了这种模型的行为;
tmux 同时支持 emacs 和 vim 的快捷键;
tmux 支持自动重命名窗口;
tmux 可以高度的脚本化;
tmux 的窗口分割功能更加先进;
PS:一个会话(Session)可以包含多个窗口,一个窗口(Window)可以包含多个窗格(Pane)。
一,编译安装tmux
1,首先安装依赖包libevent-2.0.21-stable.tar.gz
# wget https://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz
# tar xf libevent-2.0.21-stable.tar.gz
# cd libevent-2.0.21-stable
# ./configure
# make && make install
2,编译安装tmux
# git clone https://github.com/tmux/tmux.git
# cd tmux
# sh autogen.sh
# ./configure --prefix=/usr/lcoal/tmux
# make && make install
3,提供头文件
# ln -sv /usr/local/lib/libevent-2.0.so.5 /usr/lib64/libevent-2.0.so.5
# ldconfig -v
4,将tmux 脚本路径加入到PATH
# vim /etc/profile.d/tmux.sh
export PATH=$PATH:/usr/local/tmux/bin
# source /etc/profile
5,将tmux命令man 文档路径添加到MANPATH
# vim /etc/man.config
MANPATH /usr/local/tmux/share/man
6,配置tmux
# vim ~/.tmux.conf
# 设定tmux 命令激活按键为ctrl+a
set-option -g prefix C-a
unbind-key C-b
bind-key C-a send-prefix
# 设定默认Shell
set-option -g default-shell /bin/zsh
# 设置窗口可自动调整index
set -g renumber-windows on
# 设定窗口起始
set-option -g base-index 1 ### 窗口的初始序号;默认为0,这里设置为1
set-option -g status-keys vi ###操作状态栏时的默认键盘布局;可以设置为vi或emacs
set-option -g display-time 5000 ### 提示信息的持续时间;设置足够的时间以避免看不清提示,单位为毫秒
set-option -g repeat-time 1000 ###控制台激活后的持续时间;设置合适的时间以避免每次操作都要先激活控制台,单位为毫秒
# history
set-option -g history-limit 4096
# 设置复制模式,空格开始选,Enter结束复制
set-window-option -g mode-keys vi
# 开启status-bar uft-8支持
set-option -g status-utf8 on ### 开启状态栏的UTF-8支持
# 设置pane前景色
set -g pane-border-fg green
# 设置pane背景色
set -g pane-border-bg black
# 设置终端颜色为256色
set -g default-terminal "screen-256color"
# 设置窗口列表颜色
setw -g window-status-fg cyan
setw -g window-status-bg default
setw -g window-status-attr dim
# 切换panes
bind h select-pane -L
bind j select-pane -D
bind K select-pane -U
bind l select-pane -R
bind-key C-l last-pane
##Status bar
#colors
set -g status-bg black
set -g status-fg white
#开启status-bar uft-8支持
set -g status-utf8 on
## slignment
set-option -g status-justify centre
## spot at left
set-option -g status-left ‘#[bg=black,fg=green][#[fg=cyan]#S#[fg=green]]‘
set-option -g status-left-length 20
## window
setw -g automatic-rename on
set-window-option -g window-status-format ‘#[dim]#I:#[default]#W#[fg=grey,dim]‘
## spot at right
set -g status-right ‘#[fg=green][#[fg=cyan]%Y-%m-%d#[fg=green]]‘
set-option -g status-right-length 50
## resize pane
bind -r ^k resizep -U 10
bind -r ^j resizep -D 10
bind -r ^h resizep -L 10
bind -r ^l resizep -R 10
# 设置 r 键为加载配置文件,并提示信息
bind r source-file ~/.tmux.conf \; display "配置文件已重新加载!"
# 设置窗口名字不能修改
set-option -g allow-rename off
# 设置启动窗口时默认名字
bind-key c new-window -n ‘zsh‘
# 开启window事件提示
setw -g monitor-activity on
set -g visual-activity on
set-window-option -g mode-keys vi ### 复制模式中的默认键盘布局;可以设置为vi或emacs
set-window-option -g utf8 on ### 开启窗口的UTF-8支持
# 复制和粘贴模式的快捷键
bind y copy-mode
bind c-y copy-mode
bind p paste-buffer
bind c-p paste-buffer
按下 Ctrl-a 后的快捷键如下:
基础
? 获取帮助信息
会话管理
s 列出所有会话
$ 重命名当前的会话
d 断开当前的会话
窗口管理
c 创建一个新窗口
, 重命名当前窗口
w 列出所有窗口
% 水平分割窗口
" 竖直分割窗口
n 选择下一个窗口
p 选择上一个窗口
0~9 选择0~9对应的窗口
窗格管理
% 创建一个水平窗格
" 创建一个竖直窗格
h 将光标移入左侧的窗格
j 将光标移入下方的窗格
l 将光标移入右侧的窗格
k 将光标移入上方的窗格
q 显示窗格的编号
o 在窗格间切换
} 与下一个窗格交换位置
{ 与上一个窗格交换位置
! 在新窗口中显示当前窗格
x 关闭当前窗格
其他
t 在当前窗格显示时间
本文出自 “珞辰的博客” 博客,请务必保留此出处http://luochen2015.blog.51cto.com/9772274/1770894
原文地址:http://luochen2015.blog.51cto.com/9772274/1770894