Tmux是一个优秀的终端复用软件,使用它的好处就是,通过一个终端登录远程主机并运行tmux后,在其中可以开启多个控制台而无需再“浪费”多余的终端来连接这台远程主机; 它支持:屏幕切分,而且具备丰富的命令行参数,使其可以灵活、动态的进行各种布局和操作。 你还可以通过 Tmux 使终端会话运行于后台或是按需接入、断开会话,这个功能非常实用
Tmux 中最棒的功能 窗口(Window),窗格(Pane),会话(Session),快速在文本间移动光标或复制文本 ,非常轻巧的结对编程功能。
调整 Tmux 以增强其同 Vim 的集成度, 调整背景的配色方案, 调整光标的形状,调整粘贴时的文本缩进,用 Tmuxinator 自动创建会话 ,改变 Tmux 状态栏的颜色。 1.提供了强劲的、易于使用的命令行界面。 2.可横向和纵向分割窗口。 3.窗格可以自由移动和调整大小,或直接利用四个预设布局之一。 4.支持 UTF-8 编码及 256 色终端。 5.可在多个缓冲区进行复制和粘贴。 6.可通过交互式菜单来选择窗口、会话及客户端。 7.支持跨窗口搜索。 8.支持自动及手动锁定窗口。
安装环境:
CentOS Linux release 7.6.1810 (Core Linux 3.10.0-957.5.1.el7.x86_64 2019 x86_64 x86_64 x86_64 GNU/Linux
#方法1
yum -y install ncurses-devel yum -y install ncurses-devel
yum install -y tmux Tmate
#方法2
$ yum install -y automake
$ git clone https://github.com/tmux/tmux.git
$ cd tmux
$ sh autogen.sh
$ ./configure && make
#运行:tmux即可
原文作者: WeiyiGeek [https://weiyigeek.top]
转载注明出处,原文地址:https://blog.weiyigeek.top/2019/3-28-210.html
更多最新文章, 请关注我的微信公众账号【WeiyiGeek】或者【B站专栏】哟, 谢谢支持!(๑′ᴗ‵๑) ❤
tmux终端安装图
打开后如上图所示:默认是以 Ctrl+B按键 激活Tmux控制台,在下面的命令都需要先按激活按键:
#系统操作
? 列出所有快捷键;按q返回
d 脱离当前会话;这样可以暂时返回Shell界面,输入tmux attach能够重新进入之前的会话
D 选择要脱离的会话;在同时开启了多个会话时使用
Ctrl+z 挂起当前会话
r 强制重绘未脱离的会话
s 选择并切换会话;在同时开启了多个会话时使用
: 进入命令行模式;此时可以输入支持的命令,例如kill-server可以关闭服务器
[ 进入复制模式;此时的操作与vi/emacs相同,按q/Esc退出
~ 列出提示信息缓存;其中包含了之前tmux返回的各种提示信息
#窗口操作
c 创建新窗口
& 关闭当前窗口
数字键 切换至指定窗口
p 切换至上一窗口
n 切换至下一窗口
l 在前后两个窗口间互相切换
w 通过窗口列表切换窗口
, 重命名当前窗口;这样便于识别
. 修改当前窗口编号;相当于窗口重新排序
f 在所有窗口中查找指定文本
x 关闭当前光标处的小窗口
#面板操作
” 将当前面板平分为上下两块
% 将当前面板平分为左右两块
x 关闭当前面板
! 将当前面板置于新窗口;即新建一个窗口,其中仅包含当前面板
Ctrl+方向键 以1个单元格为单位移动边缘以调整当前面板大小
Alt+方向键 以5个单元格为单位移动边缘以调整当前面板大小
Space 在预置的面板布局中循环切换;依次包括even-horizontal、even-vertical、main-horizontal、main-vertical、tiled
q 显示面板编号
o 在当前窗口中选择下一面板
方向键 移动光标以选择面板
{ 向前置换当前面板
} 向后置换当前面板
Alt+o 逆时针旋转当前窗口的面板
Ctrl+o 顺时针旋转当前窗口的面板
t 钟表
#常用操作
ctrl + b 再按 " 上下分屏"
ctrl + b 再按 % 左右分屏
ctrl + b 再按 o 切换屏幕
ctrl + b 再按 x 关闭一个终端
ctrl + b 再按空格键 上下分屏与左右分屏切换
ctrl + b 再按 s 以菜单方式显示和选择会话。这个常用到,可以选择进入哪个tmux
ctrl + b 再按 q 显示分隔窗口的编号
ctrl + b 再按 t 显示钟表
例如可以为一个特定的项目创建一个专用的 Tmux 会话,也可在tmux中进行建立指定会话:
:new -s <name-of-my-new-session>
#实际案例1
tmux #开启tmux
tmux ls #显示已有tmux列表(C-b s) 列出已有会话(list-sessions)
tmux attach-session -t 数字 #选择tmux
#实际案例2
$ tmux new -s <name-of-my-session>
$ tmux attach #列表中的每个会话都有一个 ID,该 ID 是从 0 开始的。
Ctrl-b + : #tmux 内部中按下
注意事项: 进入tmux面板后,一定要先按ctrl+b,然后松开,再按其他的组合键才能够生效。
Tmux的配置文件:~/.tmux.conf (如果没有就自己建立即可644的权限) 每当开启一个新的会话时,Tmux 都会先读取 ~/.tmux.conf 这个文件,该文件中存放的就是对 Tmux 的的配置
Tmux 的快捷键前缀(Prefix)修改 首先我建议对调 Ctrl 键和 Caps-Lock 键的功能,因为在编码过程中,你需要频繁地按下 Ctrl 键,而由于 Caps-Lock 与手指在键盘的起始位置处于同一直线,所以按下 Caps-Lock 键会更加容易、便捷。
如果你希望新的配置项能够立即生效; 将以下配置加入到 Tmux 的配置文件 ~/.tmux.conf 中:
unbind C-b
set -g prefix C-a #快捷键前缀变更为 Ctrl-a
#只需要按下 Ctrl-a r就可以重新加载配置并使新的配置生效
bind R source-file ~/.tmux.conf ; display-message "Config reloaded.."
# 在文本间快速移动光标,复制文本 Use vim keybindings in copy mode
setw -g mode-keys vi
# 将复制下来的文本发送到系统的剪贴板中
# invoke reattach-to-user-namespace every time a new window/pane opens
set-option -g default-command "reattach-to-user-namespace -l bash"
#让复制文本的操作更像 Vim
# start selecting text typing 'v' key (once you are in copy mode)
bind-key -t vi-copy v begin-selection
# copy selected text to the system's clipboard
bind-key -t vi-copy y copy-pipe "reattach-to-user-namespace pbcopy"
#调整背景的配色方案
if exists('$TMUX')
set term=screen-256color
endif
#调整光标的形状
if exists('$ITERM_PROFILE')
if exists('$TMUX')
let &t_SI = "<Esc>[3 q"
let &t_EI = "<Esc>[0 q"
else
let &t_SI = "<Esc>]50;CursorShape=1x7"
let &t_EI = "<Esc>]50;CursorShape=0x7"
endif
end
#调整粘贴时的文本缩进
" for tmux to automatically set paste and nopaste mode at the time pasting (as
" happens in VIM UI)
function! WrapForTmux(s)
if !exists('$TMUX')
return a:s
endif
let tmux_start = "<Esc>Ptmux;"
let tmux_end = "<Esc>"
return tmux_start . substitute(a:s, "<Esc>", "<Esc><Esc>", 'g') . tmux_end
endfunction
let &t_SI .= WrapForTmux("<Esc>[?2004h")
let &t_EI .= WrapForTmux("<Esc>[?2004l")
function! XTermPasteBegin()
set pastetoggle=<Esc>[201~
set paste
return ""
endfunction
inoremap <special> <expr> <Esc>[200~ XTermPasteBegin()
#美化 Tmux 的状态栏
# 状态栏
# 颜色
set -g status-bg black
set -g status-fg white
# 对齐方式
set-option -g status-justify centre
# 左下角
set-option -g status-left '#[bg=black,fg=green][#[fg=cyan]#S#[fg=green]]'
set-option -g status-left-length 20
# 窗口列表
setw -g automatic-rename on
set-window-option -g window-status-format '#[dim]#I:#[default]#W#[fg=grey,dim]'
set-window-option -g window-status-current-format '#[fg=cyan,bold]#I#[fg=blue]:#[fg=cyan]#W#[fg=dim]'
# 右下角
set -g status-right '#[fg=green][#[fg=cyan]%Y-%m-%d#[fg=green]]'
tmux配置效果图