当前位置: 首页 > 科技观察

拆分Linux终端的5种方法

时间:2023-03-21 22:22:11 科技观察

没有一个Linux终端解决不了的问题,如果不行,两个。很久以前,终端实际上??是一个物理设备,而现在终端实际上??是一个模拟在电脑上的应用程序。当你使用终端与电脑进行交互时,你会发现仅仅打开一个终端是不够的。在执行编译、数据处理等长时间任务时,不得不打开一个新的终端或者一个新的tab标签,同时执行其他任务。如果你是系统管理员,你需要更多的终端窗口来连接到多个不同的主机并并行工作。在Linux系统中,终端应用程序已经存在很长时间了。在现在的终端应用中,tab已经是一个标配功能,是一个非常流行的趋势。然而,在工作时在多个选项卡之间来回切换或多或少会分散注意力,甚至会带来不便。而最好的解决方案是将整个屏幕分成多个部分,这样多个终端可以同时存在于同一个终端应用窗口中。Linux发行版中也有很多相关的工具来实现这个功能。Shell、terminal、console在此之前,我们首先要明确Shell、terminal、console这三个概念。有关详细信息,请参阅启用系统管理员博客上的相关文章。简而言之:Shell是一个输入界面,带有命令提示符的输出界面。准确的说,在POSIX桌面下还有一个shell在运行,即使这个shell对用户来说是不可见的,因为用户会话就是由这个shell启动的。终端是在GUI服务器(例如X11或Wayland)中运行的应用程序,其中加载了一个shell。在启动终端窗口之前,终端不会运行。终端可以看作是操作Shell的入口点。控制台(或“虚拟控制台”)通常是指在桌面环境之外使用的外壳。可以通过Alt+Ctrl+F2进入控制台。通常,从F3到F7有不同的控制台。桌面环境可能是F1,也可能是F7,不同发行版可能不一样。因此,有的应用程序提供了拆分shell或控制台的功能,有的应用程序提供了拆分终端的功能。tmuxtmuxterminaltmux可以说是最灵活最强大的分屏工具了。它通过键盘控制多个终端的多路复用,因此您可以将一个控制台堆叠在另一个控制台之上,并使用两个控制台在控制台之间切换。你也可以将整个屏幕分成多个控制台,这样你就可以同时观察不同控制台上的情况。所有的tmux操作都是通过键盘完成的,这意味着你的手不需要离开键盘去寻找鼠标。为此,您需要记住一些组合键。如果你只使用tmux进行分屏,那么你只需要记住这些命令:Ctrl-B%垂直分屏(两个shell分别位于左右)Ctrl-B"水平分屏(两个shell分别位于上和下)down)Ctrl-BO切换到另一个ShellCtrl-B?查看帮助Ctrl-Bd断开tmux并让它在后台运行(你可以使用tmuxattach重新进入)tmux的一大好处是它可以在一台电脑上启动一个tmuxsession后,也可以从另一台电脑进入这个session,可以看出tmux已经守护了Shell,比如我在树莓派上运行tmux时,我会可以从我的电脑连上树莓派,登录IRC,当我断开连接时,树莓派上的tmux会继续运行,等待我下一次连接,这期间IRC处于持续登录状态。GNUScreenGNUScreenterminalGNUScreen也是一个shell复用工具,类似于tmux,可以rec在断开活动会话后连接到它,它还支持垂直或水平分屏。screen的灵活性弱于tmux。它默认的绑定组合键是Ctrl-A,与Bash中将光标移动到行首的快捷键相同。因此,当你在运行screen时,如果你想将光标移动到行首,你需要再按一次Ctrl-A。我自己的方法是在$HOME/.screenrc文件中将绑定组合键重置为Ctrl-J。escape^jJ虽然screen在分屏方面做得很好,但是tmux的一些缺点也存在于Screen上。例如,在拆分shell时,不是在新面板中启动新shell,而是需要使用Ctrl-ATab导航到另一个面板(如果像我一样重置组合键,则需要将Ctrl-A到Ctrl-J),然后通过Ctrl-AC手动创建一个新的shell。与tmux不同,当screen退出shell时,屏幕拆分状态不会改变。这种设计在某些情况下比较合适,但麻烦的是需要手动管理分屏状态。不过,screen是一个相当可靠和灵活的应用程序,当tmux不可用时,您可以选择screen作为替代。默认按键方案下,screen常用的基本命令包括:??Ctrl-A|垂直拆分屏幕(两个外壳分别位于左侧和右侧)Ctrl-AS水平拆分屏幕(两个外壳分别位于顶部和底部)Ctrl-ATab切换到另一个外壳Ctrl-A?查看帮助Ctrl-Ad断开屏幕并让它在后台运行(可以使用屏幕-r重新输入)KonsoleKonsolescreenKonsole是KDEPlasma桌面使用的终端应用程序。与KDE一样,Konsole以高度可定制和强大着称。与tmux、GNUScreen类似,Konsole也有分屏功能。由于Konsole是一个图形界面的终端,它的分屏也可以用鼠标控制。Konsole的屏幕分割功能位于“查看”菜单中。它还支持垂直和水平拆分,您可以通过单击鼠标切换到另一个面板。每个面板都是一个独立的终端,因此可以有独立的主题和标签。Konsole与tmux和GNUScreen最大的区别是Konsole不能断开和重连。除非使用远程桌面软件,否则只能在Konsole打开时使用,这与大多数GUI应用程序相同。EmacsEmacsrpg严格来说,Emacs并不是一个终端多路复用工具,但它的用户界面支持拆分和调整大小,而且它还内置了一个终端。如果Emacs是您的日常文本编辑器,那么您可以在不同的应用程序之间轻松切换而无需关闭编辑器。由于Emacs的eshell模块是通过eLISP实现的,所以你可以在Emacs中使用相同的命令进行交互,让一些繁琐的操作变得简单。如果你是在图形界面下使用Emacs,你也可以使用鼠标来操作。比如通过点击切换面板,用鼠标调整分屏的大小等等。不过,键盘速度更快,因此值得记住一些键盘快捷键。Emacs的一些重要快捷键包括:Ctrl-X3垂直分屏(左右两个shell)Ctrl-X2水平分屏(上下两个shell)Ctrl-XO(大写O)切换到另一个shell(你也可以使用鼠标操作)Ctrl-X0(数字0)关闭当前面板如果你运行emacs-client,你可以断开并重新连接到像tmux和GNUScreen这样的Emacs。窗口管理器Ratpoisonsplitscreen除了文本编辑器,部分Linux桌面还具有分屏、加载终端等功能。示例包括Ratpoison、Herbsluftwm、i3、Awesome,甚至是启用了特定设置的KDEPlasma桌面,可以在桌面上分块显示多个应用程序。这些桌面允许单个应用程序占据屏幕上的固定位置,而不是漂浮在桌面“顶部”,因此您可以轻松地在多个应用程序窗口之间切换。你也可以打开多个终端并将它们排列成一个网格,就像一个终端复用工具。更进一步,您还可以将终端多路复用器加载到桌面多路复用器中。此外,没有什么可以阻止您将Emacs加载到内部并拆分缓冲区。没有人知道如果你更进一步会发生什么,而且大多数Linux用户不会保守这个秘密。与tmux和GNUScreen不同的是,您不能在断开连接后重新连接到同一个桌面会话,除非您使用远程桌面软件进行连接。更多选择除了上面介绍的工具,还有Tilix、Terminator等终端仿真器,也可以实现分屏、嵌入终端组件等功能。欢迎在评论区分享你喜欢的终端拆分工具。通过:https://opensource.com/article/20/5/split-terminal