(一)What‘s tmux?
”tmux是一个优秀的终端复用软件,类似GNU Screen,但来自于OpenBSD,采用BSD授权。使用它最直观的好处就是,通过一个终端登录远程主机并运行tmux后,在其中可以开启多个控制台而无需再”浪费”多余的终端来连接这台远程主机;当然其功能远不止于此。”
(二)一些概念
tmux使用C/S模型构建,主要包括以下单元模块:
server服务:输入tmux命令时就开启了一个服务器。
session会话: 一个服务器可以包含多个会话。
window窗口:一个会话可以包含多个窗口。
pane面板:一个窗口可以包含多个面板。
(三)命令&快捷键
3.1命令参数:
tmux
: 打开tmux,退出是Ctrl+D
;tmux new-session -s "sessionX" -d
: 开启一个名字为”sessionX”会话,-d参数是将此会话放入后台不显示;tmux new-window -n "Win1" -t sessionX 'top'
: -t是指定名为”sessionX”的会话,在这个会话上开启一个窗口并将此窗口命名为”Win1”,并在此窗口执行top命令;tmux split-window -h
: 开启一个竖屏tmux split-window -v "top"
: 开启一个横屏,并执行top命令tmux attach -t sessionX
: 重新attach上会话”sessionX”
3.2快捷键:
以下列出的所有命令都需要先按下Ctrl+b
,如果你不习惯这个绑定,可以在~/.tmux.conf文件中修改,下面会提及。
Now, 打开终端输入tmux
:
基本快捷键: |
粘贴&复制:
滚屏:
Ctrl+b,pageUp/pageDown
进入翻页模式,此模式下可以用”上下翻页键”or”上下方向键”翻页,q
是退出翻页模式。
(四)配置文件
用户配置文件在~/.tmux.conf ,下面是一个示例:
#此类配置可以在命令行模式中输入show-options -g查询 |
(五)远程使用tmux
例如我已经在树莓派服务器上打开了一个tmux session,然后detach session;当再次SSH登录树莓派的时候可以用下面的命令重新attach上去,以便恢复上次的工作状态。:ssh pi@192.168.1.107 -t 'tmux list-session; if [[ $? -eq 0 ]]; then tmux attach; else tmux;fi'