5 种拆分 Linux 终端的方法


5 种拆分 Linux 终端的方法

文章插图
 
本文介绍了 linux 提供的拆分终端的方法,它能够帮助你完成多任务工作 。那么,你最喜欢哪一款终端复用工具呢?
  • 来源:https://linux.cn/article-12236-1.html
  • 作者:Seth Kenlon
  • 译者:Hank Chow
 
没有什么问题是不能用一个 Linux 终端解决的,如果不行,那就用两个 。
很早以前,终端其实是一个物理设备,而现在的终端实际上是在计算机上被模拟出来的一个应用程序 。当你使用终端和计算机进行交互的时候,就会发现,只打开一个终端是不够用的 。在进行编译、数据处理等长时间任务的时候,你不得不打开一个新终端或新 选项卡(tab)来同时进行其它工作 。
如果你是系统管理员,你就需要更多的终端窗口,以便连接到多个不同的主机上并行工作了 。
在 Linux 系统中,终端应用程序在很久之前就已经开始带有选项卡功能了 。而现在的终端应用程序里,选项卡已经是标配功能了,这是非常流行的趋势 。尽管如此,工作的时候在多个选项卡之间来回切换,或多或少也会分散我们的注意力,甚至带来不便 。
而最好的解决方案就是将整个屏幕划分为多个部分,这样多个终端就可以在同一个终端应用程序窗口中同时存在 。Linux 发行版中也有很多相关的工具可以实现这一功能 。
Shell、终端和控制台在此之前,我们首先要明确 Shell、 终端(terminal)、 控制台(console)这三个概念 。想要详细了解的话,请参阅 Enable Sysadmin 博客上的相关文章 。
简而言之:
  • Shell 是带有 命令提示符(prompt)的用于输入、输出的界面 。准确地说,POSIX 桌面底层也运行着一个 Shell,即使这个 Shell 对用户不可见,因为用户会话就是由这个 Shell 启动的 。
  • 终端是在图形界面服务器(例如 X11 或 Wayland)中运行的应用程序,其中加载了一个 Shell 。只有在终端窗口启动之后,才算是运行了一个终端 。终端可以认为是操作 Shell 的一个入口 。
  • 控制台(或称“虚拟控制台”)通常表示在桌面环境以外使用的 Shell,你可以通过 Alt+Ctrl+F2 进入控制台,通常情况下从 F3 到 F7 都是不同的控制台,其中桌面环境有可能是 F1 或者 F7,这在不同的发行版中可能会有所不同 。
【5 种拆分 Linux 终端的方法】因此,有些应用程序提供的功能是拆分 Shell 或者控制台,有些应用程序的功能则是拆分终端 。
tmux
5 种拆分 Linux 终端的方法

文章插图
tmux terminal
 
tmux 可以说是最灵活、最强大的屏幕拆分工具了,它通过键盘控制对多个终端的复用,因此你可以将一个控制台叠放在另一个控制台上面,并在两个控制台之间切换 。你还可以将整个屏幕等分为多个控制台,以便同时观察不同控制台上的状况 。
tmux 的所有操作都是通过键盘完成的,这就意味着你的手不需要离开键盘去寻找鼠标 。为此,你需要记住一些按键组合 。
如果你只用 tmux 来做屏幕拆分,那你只需要记住一下这些命令:
  • Ctrl-B % 竖直拆分屏幕(两个 Shell 分别位于左右)
  • Ctrl-B " 水平拆分屏幕(两个 Shell 分别位于上下)
  • Ctrl-B O 切换到另一个 Shell
  • Ctrl-B ? 查看帮助
  • Ctrl-B d 断开 tmux 并让其在后台运行(可以使用 tmux attach 重新进入)
tmux 的一大好处是,在一台计算机上启动 tmux 会话之后,也可以从另一台计算机上进入到这个会话,由此可以看出,tmux 对 Shell 进行了 守护进程化(daemonize) 。
例如,当我在树莓派上运行 tmux,我就可以从计算机上连接到树莓派并登录 IRC,当我断开连接时,树莓派上的 tmux 会继续运行,并等待我的下一次连接,在此期间 IRC 是处于持续登录状态的 。
GNU Screen
5 种拆分 Linux 终端的方法

文章插图
GNU Screen terminal
 
GNU Screen 也是一个 Shell 复用工具,类似于 tmux,你可以在断开一个活动会话后重连到其中,它也支持竖直或水平拆分屏幕 。
screen 的灵活性比 tmux 要弱一些 。它默认的绑定按键组合是 Ctrl-A,和 Bash 中光标移动到行首的快捷键是一样的 。因此,当你正在运行 screen 的时候,如果想要将光标移动到行首,就需要多按一次 Ctrl-A 。而我自己的做法是,在 $HOME/.screenrc 文件中将绑定按键组合重新设置为 Ctrl-J 。


推荐阅读