现在还有什么网站,商务网站设计素材,特效素材免费下载网站,未来电子商务发展前景本文介绍了 Linux 提供的拆分终端的方法#xff0c;它能够帮助你完成多任务工作。那么#xff0c;你最喜欢哪一款终端复用工具呢#xff1f;没有什么问题是不能用一个 Linux 终端解决的#xff0c;如果不行#xff0c;那就用两个。很早以前#xff0c;终端其实是一个物理…本文介绍了 Linux 提供的拆分终端的方法它能够帮助你完成多任务工作。那么你最喜欢哪一款终端复用工具呢没有什么问题是不能用一个 Linux 终端解决的如果不行那就用两个。很早以前终端其实是一个物理设备而现在的终端实际上是在计算机上被模拟出来的一个应用程序。当你使用终端和计算机进行交互的时候就会发现只打开一个终端是不够用的。在进行编译、数据处理等长时间任务的时候你不得不打开一个新终端或新选项卡tab来同时进行其它工作。如果你是系统管理员你就需要更多的终端窗口以便连接到多个不同的主机上并行工作了。在 Linux 系统中终端应用程序在很久之前就已经开始带有选项卡功能了。而现在的终端应用程序里选项卡已经是标配功能了这是非常流行的趋势。尽管如此工作的时候在多个选项卡之间来回切换或多或少也会分散我们的注意力甚至带来不便。而最好的解决方案就是将整个屏幕划分为多个部分这样多个终端就可以在同一个终端应用程序窗口中同时存在。Linux 发行版中也有很多相关的工具可以实现这一功能。Shell、终端和控制台在此之前我们首先要明确 Shell、终端terminal、控制台console这三个概念。想要详细了解的话请参阅 Enable Sysadmin 博客上的相关文章。简而言之Shell 是带有命令提示符prompt的用于输入、输出的界面。准确地说POSIX 桌面底层也运行着一个 Shell即使这个 Shell 对用户不可见因为用户会话就是由这个 Shell 启动的。终端是在图形界面服务器(例如 X11 或 Wayland)中运行的应用程序其中加载了一个 Shell。只有在终端窗口启动之后才算是运行了一个终端。终端可以认为是操作 Shell 的一个入口。控制台(或称“虚拟控制台”)通常表示在桌面环境以外使用的 Shell你可以通过 AltCtrlF2 进入控制台通常情况下从 F3 到 F7 都是不同的控制台其中桌面环境有可能是 F1 或者 F7这在不同的发行版中可能会有所不同。因此有些应用程序提供的功能是拆分 Shell 或者控制台有些应用程序的功能则是拆分终端。tmuxtmux 可以说是最灵活、最强大的屏幕拆分工具了它通过键盘控制对多个终端的复用因此你可以将一个控制台叠放在另一个控制台上面并在两个控制台之间切换。你还可以将整个屏幕等分为多个控制台以便同时观察不同控制台上的状况。tmux 的所有操作都是通过键盘完成的这就意味着你的手不需要离开键盘去寻找鼠标。为此你需要记住一些按键组合。如果你只用 tmux 来做屏幕拆分那你只需要记住一下这些命令Ctrl-B % 竖直拆分屏幕(两个 Shell 分别位于左右)Ctrl-B 水平拆分屏幕(两个 Shell 分别位于上下)Ctrl-B O 切换到另一个 ShellCtrl-B ? 查看帮助Ctrl-B d 断开 tmux 并让其在后台运行(可以使用 tmux attach 重新进入)tmux 的一大好处是在一台计算机上启动 tmux 会话之后也可以从另一台计算机上进入到这个会话由此可以看出tmux 对 Shell 进行了守护进程化daemonize。例如当我在树莓派上运行 tmux我就可以从计算机上连接到树莓派并登录 IRC当我断开连接时树莓派上的 tmux 会继续运行并等待我的下一次连接在此期间 IRC 是处于持续登录状态的。GNU ScreenGNU Screen 也是一个 Shell 复用工具类似于 tmux你可以在断开一个活动会话后重连到其中它也支持竖直或水平拆分屏幕。screen 的灵活性比 tmux 要弱一些。它默认的绑定按键组合是 Ctrl-A和 Bash 中光标移动到行首的快捷键是一样的。因此当你正在运行 screen 的时候如果想要将光标移动到行首就需要多按一次 Ctrl-A。而我自己的做法是在 $HOME/.screenrc 文件中将绑定按键组合重新设置为 Ctrl-J。escape ^jJ尽管 screen 在屏幕拆分功能上做得很好但 tmux 上的一些缺点在 Screen 上也同样存在。例如在拆分 Shell 时在一个新的面板中不会启动新的 Shell 而是需要使用 Ctrl-A Tab 导航到另一个面板(如果你按照我的方式重新设置了按键组合需要对应地把 Ctrl-A 改为 Ctrl-J)然后通过 Ctrl-A C 手动创建一个新的 Shell。和 tmux 不同的是screen 在退出一个 Shell 的时候屏幕拆分状态不会改变这样的设计在某些情况下是比较适合的但麻烦之处在于需要手动管理屏幕拆分状态。尽管如此screen 还是一个相当可靠灵活的应用程序在无法使用 tmux 的时候你可以选择 screen 作为备选方案。在默认按键方案下screen 常用的基本命令包括Ctrl-A | 竖直拆分屏幕(两个 Shell 分别位于左右)Ctrl-A S 水平拆分屏幕(两个 Shell 分别位于上下)Ctrl-A Tab 切换到另一个 ShellCtrl-A ? 查看帮助Ctrl-A d 断开 screen 并让其在后台运行(可以使用 screen -r 重新进入)KonsoleKonsole 是 KDE Plasma 桌面使用的终端应用程序。和 KDE 一样Konsole 也以高度可定制、功能强大的特点而著称。和 tmux、GNU Screen 类似Konsole 也具有拆分屏幕的功能。由于 Konsole 是图形界面的终端因此还可以用鼠标来控制它的屏幕拆分。Konsole 的屏幕拆分功能在“查看View”菜单中。它也支持竖直和水平方向的拆分只要点击鼠标就可以切换到另一个面板上。每个面板都是一个独立的终端因此都可以拥有独立的主题和标签页。Konsole 和 tmux、GNU Screen 最大的不同之处在于不能断开和重新连接 Konsole。除非使用远程桌面软件否则只能在打开 Konsole 时使用这一点和大多数图形界面应用程序是一样的。Emacs严格来说Emacs 并不算是一个终端复用工具但它的使用界面支持拆分和调整大小同时还带有一个内建的终端。如果 Emacs 是你日常使用的文本编辑器你就可以在不关闭编辑器的情况下在不同的应用程序之间轻松互相切换。由于 Emacs eshell 模块是通过 eLISP 实现的因此你可以在 Emacs 中使用相同的命令进行交互让一些繁琐的操作变得更为简单。如果你是在图形界面中使用 Emacs还可以使用鼠标进行操作。例如通过点击切换面板、用鼠标调整拆分屏幕的的大小等等。尽管如此键盘的操作速度还是更快因此记住一些键盘快捷键还是很有必要的。Emacs 的一些重要快捷键包括Ctrl-X 3 竖直拆分屏幕(两个 Shell 分别位于左右)Ctrl-X 2 水平拆分屏幕(两个 Shell 分别位于上下)Ctrl-X O (大写字母 O)切换到另一个 Shell(你也可以使用鼠标操作)Ctrl-X 0 (数字 0)关闭当前面板如果你运行了 emacs-client 的话就可以像 tmux 和 GNU Screen 一样断开和重新连接到 Emacs 了。窗口管理器除了文本编辑器之外一些 Linux 桌面也同样具有拆分屏幕、加载终端这样的功能。例如 Ratpoison、Herbsluftwm、i3、Awesome甚至是启用了特定设置的 KDE Plasma 桌面都可以将多个应用程序在桌面上分块显示。这些桌面可以让各个应用程序占据屏幕的固定位置而不是浮在你的桌面“之上”因此你可以在多个应用程序窗口之间轻松切换。你还可以打开多个终端排布成网格就像终端复用工具一样。更进一步你还可以在你的桌面复用工具中加载一个终端复用工具。而且没有什么可以阻止你在里面载入 Emacs 并分割缓冲区。没有人知道如果你把它更进一步会发生什么大多数 Linux 用户不会外传这种秘密。和 tmux、GNU Screen 不同你在断开与桌面的连接后无法重新连接到同一个桌面会话除非你使用了远程桌面软件进行连接。更多选择除了上面介绍到的工具以外还有诸如 Tilix、Terminator 这样的终端模拟器它们同样可以实现屏幕拆分、嵌入终端组件等功能。欢迎在评论区分享你喜欢的终端拆分工具。本文由 LCTT 原创编译Linux中国 荣誉推出