如何同时显示多个终端

有时候我工作的时候会使用多个终端,但是当它们都是通过Ctrl+Alt+T调用时,切换起来很不方便。是否有任何程序或终端可以在启动后提供4个独立的终端,每个终端占据屏幕的1/4,并且可以通过按下Tab键轻松切换?

2在终端中,[TAB]键已经用于自动补全。如果你将实例切换为例如[ALT]+[TAB],按照@Zacharee1的建议,使用定位窗口确实会更容易。 - Peter Nerlich
2如果你对这个非常认真,可以试试一些平铺窗口管理器,比如 Xmonad 或者 Awesome - leftaroundabout
1每次开始工作时,我都需要打开多个终端并调整大小。这将削弱Linux的最大优势之一:可定制性。 - Al Bundy
1试试guake或者yakuake。 - rpax
1请使用uxterm作为终端模拟器(sudo apt-get install xterm),它是Unix的标准,并且您可以多次调用它并将它们按照您喜欢的方式排列在显示屏上。 - mirabilos
12个回答

你需要《终结者》。
sudo apt-get install terminator

Terminator 4 windows

启动时,针对四个终端执行以下操作:
  • 启动终端
  • 分割终端 Ctrl+Shift+O
  • 分割上方终端 Ctrl+Shift+O
  • 分割下方终端 Ctrl+Shift+O
  • 打开首选项并选择布局
  • 点击添加,输入一个有用的布局名称,然后按Enter
  • 关闭首选项终端
  • 使用以下命令打开终端:

    terminator --maximise --layout=<your_layout_name>
    

    或者使用以下命令:

    terminator --maximise --borderless --layout=<your_layout_name>
    

使用Ctrl+Tab在终端窗口之间切换。

您可以在键盘设置>快捷方式中将Ctrl+Alt+T分配给您的个人终结器命令。(感谢@Wilf

当然,您也可以创建一个terminator.desktop文件。复制原始桌面文件并进行更改:

cp /usr/share/applications/terminator.desktop ~/.local/share/applications/
nano ~/.local/share/applications/terminator.desktop

1请注意,您还可以在键盘设置>快捷方式中将“terminator ...”命令分配给Ctrl+Alt+T。 - Wilf
有没有办法在启动后设置哪个终端窗口是活动的?当我启动时,活动窗口位于底部,但我希望活动的终端窗口在顶部,但我无法处理它。 - Al Bundy
3很遗憾,我现在不能推荐使用终结者。虽然它曾经很酷,但是这个项目现在几乎没有人维护,并且使用了一个古老的(约4年前)VTE版本(这是实际终端仿真的小部件)。也就是说,虽然在一个窗口旁边有许多窗口很酷,但每个窗口内部发生的事情都会遇到许多问题。请参见https://bugs.launchpad.net/terminator/+bug/1030562。 - egmont
@egmont https://code.launchpad.net/~gnome-terminator/terminator/gtk3 - A.B.
2@A.B. 是的,我知道,那个分支包含了我的工作 :) 虽然它使用了最新且更好的VTE,但是围绕它的用户界面(Terminator本身)仍在积极开发中,存在一些在默认的Gtk+-2版本中不存在的错误。你提到的 apt-get install terminator 命令明显是指的使用古老的VTE的Gtk+-2版本。为了参考,确实有必要提到尚未稳定并且尚未由Ubuntu发布的Gtk+-3版本,但是有人可能会尝试使用。 - egmont
@egmont 你可以把这个作为补充写在回答里。=) - A.B.
4你需要《终结者》。史诗级的。 - maryisdead
@maryisdead 我应该写 "你需要一台终结者" ;) - A.B.
工作得很好,非常有用 :) - Kaidul Islam
我们在哪里可以看到所有终结者快捷键的列表?更新:找到了!右键单击 --> 首选项 --> 快捷键选项卡。 - Gabriel Staples
请注意,通过在屏幕上右键单击可以访问“首选项”菜单,而Ctrl + Shift + E可以垂直分割窗口,或者您也可以从右键菜单中选择它。 - Gabriel Staples
“终结者”采用2x2视图(同时在同一窗口打开4个终端),非常适合运行ROS(机器人操作系统),因为ROS需要同时打开许多终端以运行多个进程! - Gabriel Staples

你可以使用Ctrl+Alt+T启动4个终端,并使用Ctrl+Alt+Numpad[1,3,7,9]将它们适应屏幕边缘,或使用Ctrl+Alt+Numpad[4/6]将其左右分布,或使用Ctrl+Alt+Numpad[8/2]将其上下分布,并使用Alt+Tab在终端之间切换,如果其中一个处于活动状态,则使用Alt+TabTab上方的键在终端之间切换。
或者
你可以使用Ctrl+Shift+T来使用选项卡,在终端之间使用Alt+Page-Up/Page-Down进行切换。

3Ctrl+Shift+Numpad在哪个桌面环境下起作用? - Wilf
我有一个标准的Ubuntu安装,带有Unity界面。 - D-E-N
这是Ctrl+Alt+Numpad - Adam Soltys

作为另一种选择,我建议使用byobu
Byobu是一个基于GPLv3开源的文本窗口管理器和终端复用器。它最初设计用于为Ubuntu服务器发行版提供优雅的增强功能,以改进功能齐全、朴素实用的GNU Screen。现在,Byobu包括增强的配置文件、方便的按键绑定、配置工具以及可切换的系统状态通知,适用于GNU Screen窗口管理器和更现代的Tmux终端复用器,并且可以在大多数Linux、BSD和Mac发行版上运行。
优点是它是基于文本的,意味着您可以在没有图形环境的情况下使用它!这在处理经常没有GUI的服务器时非常有用。
您甚至可以使用底部状态栏显示许多有用的信息,如日期/时间、负载平均值等。
如果您使用Byobu,您需要了解的快捷键有:
  • F2 创建一个新的标签页。
  • Shift+F2 创建一个新的分割标签页(这会将你当前的标签页水平分割)。
  • F3F4 用于在标签页之间切换。
  • F9 用于配置 Byobu。

sudo apt-get install byobu 将安装 Byobu。

作为一个终端复用程序,它意味着如果你错误地关闭了终端,你不会丢失会话和标签页。你可以在另一个终端中运行 byobu 并获得同步输出。

甚至还有保存布局的脚本,如果你希望在重启后保留会话。


1byobu域名网址已更改为https://byobu.org/ - Vijay

个人而言,我使用emacs配合M-x ansi-termM-x shell,具体取决于我的工作内容。
但是,如果你只是在寻找一个终端复用器,那么始终有备受推崇的tmux可供选择。

https://github.com/tmux/tmux

编辑:JoKeR指出您可以使用apt-get安装tmux。
$ sudo apt-get install tmux

2你可以使用以下命令安装tmux:sudo apt-get install tmux,我猜你应该提一下这个。 - JoKeR
1虽然我自己从未使用过 tmux,但有所了解。谢谢你的澄清,我会将它放在顶部。 - Grant Hulegaard

你可以使用tmux,一个终端复用器。
sudo apt-get install tmux

对于四个面板,您可以使用这个脚本4pSession,创建脚本。
mkdir -p ~/bin
touch ~/bin/4pSession
chmod +x ~/bin/4pSession
nano ~/bin/4pSession

并添加下面的代码
#!/usr/bin/env bash

# if the session is already running, just attach to it.
tmux has-session -t 4panel
if [ $? -eq 0 ]; then
  sleep 1
  tmux attach -t 4panel
else 
  tmux new-session -d -s 4panel
  tmux split-window -v
  tmux split-window -h
  tmux select-pane -t 0
  tmux split-window -h
  tmux select-pane -t 0
  tmux -2 attach-session -d
fi

然后您可以创建一个桌面文件:
nano ~/.local/share/applications/tmux.desktop

有关此内容:

[Desktop Entry]
Name=tmux
Comment=a terminal multiplexer
Exec=/<path_to_script>/4pSession
Icon=terminal
Terminal=true
Type=Application
Categories=Terminal;

使用Ctrl+B在窗格之间切换,然后使用进行移动。

enter image description here


只需调整终端窗口的大小,使其都适应屏幕的一个角落。终端还可以有选项卡,这可能会有所帮助。右键单击窗口,然后选择“新建选项卡”。
以下是如何使窗口能够调整大小到角落的方法:
1. 运行“sudo apt-get install compizconfig-settings-manager”。 2. 运行“sudo ccsm”或在Unity Dash中搜索“ccsm”。 3. 向下滚动,直到找到“Grid”,位于“窗口管理”下。确保它已启用。 4. 转到“角落/边缘”选项卡,并将“角落”选项更改为相应的角落。

2那么我就不能同时查看所有选项卡,每次打开终端都需要调整大小。 - Al Bundy
@Bundy,有一种方法可以让窗口在拖到角落时自动调整大小为屏幕的四分之一。让我找一下,然后我会把它添加到我的答案中。 - TheWanderer

我对这个问题的简陋贡献:安装wmctrl并调整下面的脚本,以打开和定位四个终端窗口到你的屏幕上。 首先,使用xwininfo -root找出你的屏幕尺寸,然后调整-e参数(它们按照顺序是0、x位置、y位置、宽度、高度)。下面我使用的数字只是示例。
#!/bin/bash
# Author: Serg Kolo
# Date: 2/18/2015
# Description: Open 4 terminals and position them






gnome-terminal -t WINDOW-ONE &
gnome-terminal -t WINDOW-TWO &
gnome-terminal -t WINDOW-THREE &
gnome-terminal -t WINDOW-FOUR &

sleep 0.5
wmctrl -r WINDOW-ONE -e 0,0,0,500,250 &
sleep 0.5
wmctrl -r WINDOW-TWO -e 0,0,384,500,250 &
sleep 0.5
wmctrl -r WINDOW-THREE -e 0,500,0,500,250 &
sleep 0.5
wmctrl -r WINDOW-FOUR -e 0,500,384,500,250 &

你可以将其绑定为快捷方式,例如Ctrl+I或其他键。另一个想法是,在不安装wmctrl的情况下,打开4个--geometry=选项。

这个有内置的快捷方式,还有简单的导航功能。
Ctrl + Alt + T - 按一次启动第一个终端 Ctrl + Shift + T - 按三次,在第一个终端的同一个窗口中获得3个更多的终端作为标签页 Alt + 1 或 Alt + 2 或 Alt + 3 或 Alt + 4 - 每个都会切换到相应的标签页/终端。
希望对你有所帮助。

你可以使用应用程序“screen”。
通过运行以下命令安装screen:
apt-get install screen

运行以下命令来验证屏幕是否已安装:
screen -v

在一个屏幕会话中,你可以通过按下CTRL + A,然后C来创建一个新窗口。你的旧窗口将保持活动状态,你可以执行其他任务。要在窗口之间切换,按下CTRL + A,然后N(下一个窗口)或CTRL + A,然后P。

我强烈推荐tmux。它提供了很多自定义选项,并完全摆脱了鼠标的依赖(如果那是您所担心的)。您可以水平、垂直地分割屏幕,通过一些按键在它们之间切换,保留会话并稍后重新连接等等。

请解释一下如何做到这一点(请参阅如何撰写一个好的答案?)。 - David Foerster
  1. 如果你正在使用CentOS,你可以前往链接下载最新的rpm包并安装。如果遇到依赖错误,我在这里找到了一个很好的教程:链接
  2. 如果你使用的是Ubuntu,很简单: sudo apt-get install tmux
  3. 如果你习惯编译软件包,那么在sourceforge上有源代码可供使用: 链接
- Hopping Bunny
1如果你想添加信息,请修改你的回答。 - David Foerster