从同事那里无意间知道有tmux这种神器,之前一直都是使用xshell建立多个连接,并且使用ctrl+tab来不断的切换页面实现的。
-
tmux简介
tmux是一个终端复用工具:在一个屏幕中使用多个独立的终端。即使非正常掉线,也能保证当前的任务运行,这一点对于远程SSH访问特别有用,网络不好的情况下仍然能保证工作现场不丢失!
目前支持的操作系统有:OpenBSD, FreeBSD, NetBSD, Linux, OS X and Solaris。
github仓库:https://github.com/tmux/tmux -
tmux的安装
通常情况下,直接使用apt-get install或者yum install是可以解决问题的。
源码安装参考github:
git clone https://github.com/tmux/tmux.git
cd tmux && sh autogen.sh
./configure && make
sudo make install
- 在ssh时自动启动tmux
安装完tmux后都要执行tmux
这个命令来启动,所以为了节省这个操作我们考虑在ssh连接时自动启动tmux。在~/.bash_rc
末尾添加以下一段:(手动source以下即可立即生效),如果希望手动管理tmux终端则忽略这一步直接到step4.
if [[ -z "$TMUX" ]] && [ "$SSH_CONNECTION" != "" ]; then
# 如果希望每次ssh连接时都进入不同的tmux环境,并且ssh断开连接时自动关闭则启动下面这行
tmux new-session \; set-option destroy-unattached on
#如果希望每次通过ssh连接进入同一个tmux环境(就如同ssh从来没断过一样),启用下面这样
# tmux has 2> /dev/null || tmux new-session -s ssh_tmux && tmux attach
fi
- tmux的配置
就我个人感觉,tmux默认的配置实在太复杂了。其中一部分原因是有前缀键的存在,还有一个原因是某些快捷键位置特别偏僻,比如 进入复制模式需要按前缀键和[
,[
这个键实在是太偏僻了,而且默认的Ctrl+b这个前缀键中b离ctrl键又很远。tmux默认配置文件是 ~/.tmux.conf,如果该文件不存在需要自行新建。下面是我个人的配置文件,仅供参考(我同事居然已经完全习惯了tmux默认的快捷键)
unbind C-b
set -g prefix C-a
bind -n C-w kill-pane
bind -n C-n split-window -h
bind C-n split-window
bind C-c copy-mode
bind r source-file ~/.tmux.conf \; display "配置文件已重新加载!"
pane的切换是 前缀键+上下左右键。
还有一个非常重要的快捷键是 前缀键+? (shift+/),显示所有快捷键。
- tmux一些基本概念
上面给了tmux如何安装,如何启动,如何配置。那么下面按理说应该是如何使用了。
但是在正式使用tmux之前需要知道session,window,pane这三个概念,具体参考https://blog.csdn.net/lihao21/article/details/68958515
总结:从轻度使用来说,只需要知道pane就可以了。加上创建pane,关闭pane,pane之间的切换就足够了
网友评论