您当前的位置:首页 > 电脑百科 > 软件技术 > 操作系统 > linux

使用此开源窗口环境一次运行多个控制台

时间:2020-03-06 13:04:54  来源:  作者:
使用此开源窗口环境一次运行多个控制台

 

在我们的 20 个使用开源提升生产力的系列的第十四篇文章中用 twin 模拟了老式的 DESQview 体验。-- Kevin Sonney(作者)

 

去年,我在 19 天里给你介绍了 19 个新(对你而言)的生产力工具。今年,我换了一种方式:使用你在使用或者还没使用的工具,构建一个使你可以在新一年更加高效的环境。

通过 twin 克服“一个屏幕,一个应用程序”的限制

还有人记得 DESQview 吗?我们在 windowslinuxmacOS 中理所当然地可以在屏幕上同时运行多个程序,而 DESQview 赋予了 DOS 同样的功能。在我运营拨号 BBS 服务的初期,DESQview 是必需的,它使我能够让 BBS 在后台运行,同时在前台进行其他操作。例如,当有人拨打电话时,我可能正在开发新功能或设置新的外部程序而不会影响他们的体验。后来,在我早期做支持工作的时候,我可以同时运行我的工作电子邮件( MHS 上的 DaVinci 电子邮件 )、支持单据系统和其他 DOS 程序。这是令人吃惊的!

使用此开源窗口环境一次运行多个控制台

twin

 

从那时起,运行多个控制台应用程序的功能已经发展了很多。但是 tmux 和 Screen 等应用仍然遵循“一个屏幕,一个应用”的显示方式。好吧,是的,tmux 具有屏幕拆分和窗格,但是不像 DESQview 那样具有将窗口“浮动”在其他窗口上的功能,就我个人而言,我怀念那个功能。

让我们来看看 twin (文本模式窗口环境)。我认为,这个相对年轻的项目是 DESQview 的精神继任者。它支持控制台和图形环境,并具有与会话脱离和重新接驳的功能。设置起来并不是那么容易,但是它可以在大多数现代操作系统上运行。

Twin 是从源代码安装的(现在是这样)。但是首先,你需要安装所需的开发库。库名称将因操作系统而异。 以下示例显示了在我的 Ubuntu 19.10 系统中的情况。一旦安装了依赖库,请从 Git 中检出 twin 源代码,并运行 ./configure 和 make,它们应自动检测所有内容并构建 twin:

sudo apt install libx11-dev libxpm-dev libncurses-dev zlib1g-dev libgpm-dev
git clone git@github.com:cosmos72/twin.git
cd twin
./configure
make
sudo make install

注意:如果要在 MacOS 或 BSD 上进行编译,则需要在运行 make 之前在文件 include/Tw/autoconf.h 和 include/twautoconf.h 中注释掉 #define socklen_t int。这个问题应该在 twin #57 解决了。

使用此开源窗口环境一次运行多个控制台

twin text mode

 

第一次调用 twin 是一个挑战。你需要通过 --hw 参数告诉它正在使用哪种显示。例如,要启动文本模式的 twin,请输入 twin --hw=tty,TERM=linux。这里指定的 TERM 变量替代了你当前 Shell 中终端变量。要启动图形版本,运行 twin --hw=X@$DISPLAY。在 Linux 上,twin 一般都“可以正常工作”,而在 MacOS 上,Twin 基本是只能在终端上使用。

真正的乐趣是可以通过 twattach 和 twdisplay 命令接驳到正在运行的会话的功能。它们使你可以接驳到其他正在运行的 twin 会话。例如,在 Mac 上,我可以运行以下命令以接驳到演示机器上运行的 twin 会话:

twdisplay --twin@20days2020.local:0 --hw=tty,TERM=linux
使用此开源窗口环境一次运行多个控制台

remote twin session

 

通过多做一些工作,你还可以将其用作登录外壳,以代替控制台上的 getty 。这需要 gdm 鼠标守护程序、twdm 应用程序(包括)和一些额外的配置。在使用 systemd 的系统上,首先安装并启用 gdm(如果尚未安装),然后使用 systemctl 为控制台(我使用 tty6)创建一个覆盖。这些命令必须以 root 用户身份运行;在 Ubuntu 上,它们看起来像这样:

apt install gdm
systemctl enable gdm
systemctl start gdm
systemctl edit getty@tty6

systemctl edit getty@tty6 命令将打开一个名为 override.conf 的空文件。它可以定义 systemd 服务设置以覆盖 tty6 的默认设置。将内容更新为:

[service]
ExecStart=
ExecStart=-/usr/local/sbin/twdm --hw=tty@/dev/tty6,TERM=linux
StandardInput=tty
StandardOutput=tty

现在,重新加载 systemd 并重新启动 tty6 以获得 twin 登录提示界面:

systemctl daemon-reload
systemctl restart getty@tty6
使用此开源窗口环境一次运行多个控制台

twin

 

这将为登录的用户启动一个 twin 会话。我不建议在多用户系统中使用此会话,但是对于个人桌面来说,这是很酷的。并且,通过使用 twattach 和 twdisplay,你可以从本地 GUI 或远程桌面访问该会话。

我认为 twin 真是太酷了。它还有一些细节不够完善,但是基本功能都已经有了,并且有一些非常好的文档。另外,它也使我可以在现代操作系统上稍解对 DESQview 式的体验的渴望。我希望随着时间的推移它会有所改进,希望你和我一样喜欢它。


via: https://opensource.com/article/20/1/multiple-consoles-twin

作者: Kevin Sonney 选题: lujun9972 译者: wxy 校对: wxy

本文由 LCTT 原创编译, Linux中国 荣誉推出



Tags:控制台   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
一、新增.Net Core 控制台程式图1 新增.NetCor控制台项目二、Nuget添加依赖包图2 依赖包三、添加配置文件appsettings.json图4 appsettings.json四、修改Program.cs文件如下...【详细内容】
2021-08-24  Tags: 控制台  点击:(81)  评论:(0)  加入收藏
liteflow整体分为两个模块,控制台以及执行者;其中控制台负责任务的关系以及执行的调度,执行者负责任务的具体执行。控制台中主要的功能围绕在任务以及任务流。一、主要功能介绍...【详细内容】
2020-08-06  Tags: 控制台  点击:(543)  评论:(0)  加入收藏
在我们的 20 个使用开源提升生产力的系列的第十四篇文章中用 twin 模拟了老式的 DESQview 体验。-- Kevin Sonney(作者) 去年,我在 19 天里给你介绍了 19 个新(对你而言)的生产...【详细内容】
2020-03-06  Tags: 控制台  点击:(56)  评论:(0)  加入收藏
本指南介绍了如何更改 Linux 控制台的字体和大小。这对于那些不喜欢默认字体类型/大小或者喜欢不同字体的人来说非常有用。-- Sk(作者)如果你有图形桌面环境,那么就很容易更改...【详细内容】
2019-08-27  Tags: 控制台  点击:(222)  评论:(0)  加入收藏
前言Chrome浏览器我想是每一个前端er必用工具之一吧,一部分原因是它速度快,体积不大,支持的新特性也比其它浏览器多,还有一部分我想就是因为它的控制台功能强大了吧,说它是神器一...【详细内容】
2019-08-08  Tags: 控制台  点击:(231)  评论:(0)  加入收藏
▌简易百科推荐
作用显示文件或目录所占用的磁盘空间使用命令格式du [option] 文件/目录命令功能显示文件或目录所占用的磁盘空间一些写法的区别du -sh xxx 显示总目录的大小,但是不会列出...【详细内容】
2021-12-23  mitsuhide1992    Tags:du命令   点击:(12)  评论:(0)  加入收藏
什么是linux内核linux就像是一个哲学的最佳实践。如果非要对它评价,我真的不知道该怎么赞叹,我只能自豪地说着:“linux的美丽简直让人沉醉。”我只能说是我处在linux学习的修炼...【详细内容】
2021-12-23  linux上的码农    Tags:linux内核   点击:(15)  评论:(0)  加入收藏
本文将比较 Linux 中 service 和 systemctl 命令,先分别简单介绍这两个命令的基础用法,然后进行比较。从 CentOS 7.x 开始,CentOS 开始使用 systemd 服务来代替 service服务(dae...【详细内容】
2021-12-23  软件架构    Tags:systemctl   点击:(14)  评论:(0)  加入收藏
mv是move的缩写,可以用来移动文件或者重命名文件名,经常用来备份文件或者目录。命令格式mv [选项] 源文件或者目录 目标文件或者目录命令功能mv命令中第二个参数类型的不同(...【详细内容】
2021-12-17  入门小站    Tags:mv命令   点击:(23)  评论:(0)  加入收藏
大数据技术AI Flink/Spark/Hadoop/数仓,数据分析、面试,源码解读等干货学习资料 98篇原创内容 -->公众号 Linux sed 命令是利用脚本来处理文本文件。sed 可依照脚本的指令来处...【详细内容】
2021-12-17  仙风道骨的宝石骑士    Tags:sed命令   点击:(22)  评论:(0)  加入收藏
Node是个啥?  写个东西还是尽量面面俱到吧,所以有关基本概念的东西我也从网上选择性地拿了下来,有些地方针对自己的理解有所改动,对这些概念性的东西有过了解的可选择跳过这段...【详细内容】
2021-12-15  linux上的码农    Tags:node   点击:(25)  评论:(0)  加入收藏
难道只有我一个人觉得Ubuntu的unity桌面非常好用吗?最近把台式机上面的Ubuntu 16.04格式化了,装了黑苹果用了一周,不得不说,MacOS确实很精美,软件生态比Linux丰富很多,比Windows简...【详细内容】
2021-12-14  地球末日村    Tags:ubuntu   点击:(40)  评论:(0)  加入收藏
简介Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。输出信息含义执行net...【详细内容】
2021-12-13  窥镜天    Tags:Linux netstat   点击:(28)  评论:(0)  加入收藏
对于较多数量的文件描述符的监听无论是select还是poll系统调用都显得捉襟见肘,poll每次都需要将所有的文件描述符复制到内核,内核本身不会对这些文件描述符加以保存,这样的设计...【详细内容】
2021-12-13  深度Linux    Tags:Linux   点击:(19)  评论:(0)  加入收藏
今天,我们来了解下 Linux 系统的革命性通用执行引擎-eBPF,之所以聊着玩意,因为它确实牛逼,作为一项底层技术,在现在的云原生生态领域中起着举足轻重的作用。截至目前,业界使用范...【详细内容】
2021-12-10  架构驿站    Tags:eBPF   点击:(29)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条