Closed vieyahn2017 closed 5 years ago
本文主要介绍两种终端分屏工具:screen和tmux,分享出来供大家参考学习,下面来看看详细的介绍:
(1)安装工具
在ubuntu系统中使用sudo apt-get install screen 安装screen工具
(2)使用工具
1,输入命令screen使用工具
2,上下分屏:ctrl + a 再按shift + s
3,切换屏幕:ctrl + a 再按tab键
4,新建一个终端:ctrl + a 再按c
5,关闭一个终端:ctrl + a 再按x (或直接按exit退出)
(1)安装工具
在ubuntu系统中使用sudo apt-get install tmux安装tmux工具
(2)使用工具
1,输入命令tmux使用工具
2,上下分屏:ctrl + b 再按 "
3,左右分屏:ctrl + b 再按 %
4,切换屏幕:ctrl + b 再按o
5,关闭一个终端:ctrl + b 再按x
6,上下分屏与左右分屏切换: ctrl + b 再按空格键
其他:
! 将当前面板置于新窗口,即新建一个窗口,其中仅包含当前面板 Ctrl+方向键 以1个单元格为单位移动边缘以调整当前面板大小 Alt+方向键 以5个单元格为单位移动边缘以调整当前面板大小 空格键 可以在默认面板布局中切换,试试就知道了 q 显示面板编号 方向键 移动光标选择对应面板 { 向前置换当前面板 } 向后置换当前面板 Alt+o 逆时针旋转当前窗口的面板 Ctrl+o 顺时针旋转当前窗口的面板 总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。
原文链接:http://blog.csdn.net/gent__chen/article/details/50588328
screen测试了下,不好用,没深入
2018年07月04日 14:07:36 RGiant 阅读数 2621 版权声明:感恩分享 https://blog.csdn.net/sinat_36330809/article/details/80907284 安装:
几个名词解释:
session 会话:一个服务器可以包含多个会话
window 窗口:一个会话可以包含多个窗口
pane 面板:一个窗口可以包含多个面板[强悍的分屏]
打开tmux会话并新建和关闭一个窗口,新建和关闭上下分屏和左右分屏
由上面Shell返回 tmux: tmux attach-session -t 数字
很多帖子都是快捷键的操作,暂略
2014年08月29日 14:23:57 guugle2010 阅读数 3923 在远程到一台机器或者在本地终端下,经常发现,一个终端远远地不够用,经常需要同时打开几个,往往还希望这几个窗口同时显示在视线内。tmux正是为这种需求而生。
效果如下:
创建一个后台会话 tmux new -s backrun -d
跳转到一个会话 tmux a -t name
查看所有会话 tmux list-sessions
连接一个存在的会话 tmux attach -t xiehc
kill会话 tmux kill-session -t xiehc
系统操作
C + b ? #列出快捷键 (C 表示CTRL键,后面同理)
C + b d #退出当前会话
C + b r #强制重绘未脱离的会话
C + b s #选择并切换会话;在同时开启了多个会话时使用
C + z #挂起当前会话
窗口操作
C + b & #关闭当前窗口
C + b c #在一个session中开启一个新的窗口(一个session可以开启多个小窗口)
C + b w #在一个session会话中的多个窗口中作出选择
C + b n #在一个session会话中跳转到指定窗口(n代表具体数字,是窗口的序号)
C + b , #重命名当前窗口;这样便于识别
面板操作
C + b % #将当前窗口分成左右两分,面板
C + b “ #将当前窗口分成上下两分,面板
C + b 方向键 #让光标在不同的面板中跳转
C + b x #关闭一个session中当前光标处的小面板
C + b ! #将当前面板置于新窗口;即新建一个窗口,其中仅包含当前面板
C + b pagedown pageup 方向键 #翻页
https://blog.csdn.net/lakeheart879/article/details/56670209
脚本化启动 把以下脚本内容加入到~/.bashrc,即可每次登录进入到tmux
tmux_init()
{
tmux new-session -s "kumu" -d -n "local" # 开启一个会话
tmux new-window -n "other" # 开启一个窗口
tmux split-window -h # 开启一个竖屏
tmux split-window -v "top" # 开启一个横屏,并执行top命令
tmux -2 attach-session -d # tmux -2强制启用256color,连接已开启的tmux
}
# 判断是否已有开启的tmux会话,没有则开启
if which tmux 2>&1 >/dev/null; then
test -z "$TMUX" && (tmux attach || tmux_init)
fi
http://louiszhai.github.io/2017/09/30/tmux/
这个最全
tmux是一款优秀的终端复用软件,它比Screen更加强大,至于如何强大,网上有大量的文章讨论了这点,本文不再重复。tmux之所以受人们喜爱,主要得益于以下三处功能:
丝滑分屏(split),虽然iTem2也提供了横向和竖向分屏功能,但这种分屏功能非常拙劣,完全等同于屏幕新开一个窗口,新开的pane不会自动进入到当前目录,也没有记住当前登录状态。这意味着如果我ssh进入到远程服务器时,iTem2新开的pane中,我依然要重新走一遍ssh登录的老路(omg)。tmux就不会这样,tmux窗口中,新开的pane,默认进入到之前的路径,如果是ssh连接,登录状态也依旧保持着,如此一来,我就可以随意的增删pane,这种灵活性,好处不言而喻。
保护现场(attach),即使命令行的工作只进行到一半,关闭终端后还可以重新进入到操作现场,继续工作。对于ssh远程连接而言,即使网络不稳定也没有关系,掉线后重新连接,可以直奔现场,之前运行中的任务,依旧在跑,就好像从来没有离开过一样;特别是在远程服务器上运行耗时的任务,tmux可以帮你一直保持住会话。如此一来,你就可以随时随地放心地进行移动办公,只要你附近的计算机装有tmux(没有你也可以花几分钟装一个),你就能继续刚才的工作。
会话共享(适用于结对编程或远程教学),将 tmux 会话的地址分享给他人,这样他们就可以通过 SSH 接入该会话。如果你要给同事演示远程服务器的操作,他不必直勾勾地盯着你的屏幕,借助tmux,他完全可以进入到你的会话,然后静静地看着他桌面上你风骚的键盘走位,只要他愿意,甚至还可以录个屏。 以上,只是主要功能,更多功能还在后头,接下来我将详细地介绍tmux的使用技巧。
tmux采用C/S模型构建,输入tmux命令就相当于开启了一个服务器,此时默认将新建一个会话,然后会话中默认新建一个窗口,窗口中默认新建一个面板。会话、窗口、面板之间的联系如下:
一个tmux session(会话)可以包含多个window(窗口),窗口默认充满会话界面,因此这些窗口中可以运行相关性不大的任务。
一个window又可以包含多个pane(面板),窗口下的面板,都处于同一界面下,这些面板适合运行相关性高的任务,以便同时观察到它们的运行情况。
面板最大化 当窗口中面板的数量逐渐增多时,每个面板的空间就会逐渐减少。为了保证有足够的空间显示内容,tmux从v1.8版本起,提供了面板的最大化功能,输入tmux-prefix+z,就可以最大化当前面板至窗口大小,只要再重复输入一次,便恢复正常。那么tmux v1.8以下的版本,怎么办呢?别急,有大神提供了如下的解决方案。
首先编写一个zoom脚本,该脚本通过新建一个窗口,交换当前面板与新的窗口默认面板位置,来模拟最大的功能;通过重复一次按键,还原面板位置,并关闭新建的窗口,来模拟还原功能,如下所示:
#!/bin/bash -f
currentwindow=`tmux list-window | tr '\t' ' ' | sed -n -e '/(active)/s/^[^:]*: *\([^ ]*\) .*/\1/gp'`;
currentpane=`tmux list-panes | sed -n -e '/(active)/s/^\([^:]*\):.*/\1/gp'`;
panecount=`tmux list-panes | wc | sed -e 's/^ *//g' -e 's/ .*$//g'`;
inzoom=`echo $currentwindow | sed -n -e '/^zoom/p'`;
if [ $panecount -ne 1 ]; then
inzoom="";
fi
if [ $inzoom ]; then
lastpane=`echo $currentwindow | rev | cut -f 1 -d '@' | rev`;
lastwindow=`echo $currentwindow | cut -f 2- -d '@' | rev | cut -f 2- -d '@' | rev`;
tmux select-window -t $lastwindow;
tmux select-pane -t $lastpane;
tmux swap-pane -s $currentwindow;
tmux kill-window -t $currentwindow;
else
newwindowname=zoom@$currentwindow@$currentpane;
tmux new-window -d -n $newwindowname;
tmux swap-pane -s $newwindowname;
tmux select-window -t $newwindowname;
fi
不妨将该脚本存放在~/.tmux目录中(没有则新建目录),接下来只需要绑定一个快捷指令就行,如下。
unbind z
bind z run ". ~/.tmux/zoom"
窗口变为面板 通过上面的zoom脚本,面板可以轻松地最大化为一个新的窗口。那么反过来,窗口是不是可以最小化为一个面板呢?
试想这样一个场景:当你打开多个窗口后,然后想将其中几个窗口合并到当前窗口中,以便对比观察输出。
实际上,你的要求就是将其它窗口变成面板,然后合并到当前窗口中。对于这种操作,我们可以在当前窗口,按下prefix + :,打开命令行,然后输入如下命令:
join-pane -s window01 # 合并名称为window01的窗口的默认(第一个)面板到当前窗口中
join-pane -s window01.1 # .1显式指定了第一个面板,.2就是第二个面板(我本地将面板编号起始值设置为1,默认是0)
每次执行join-pane命令都会合并一个面板,并且指定的窗口会减少一个面板,直到面板数量为0,窗口关闭。
linux下终端分屏使用的两种方法(screen和tmux)