模拟linux终端
Ⅰ 安卓上的模拟终端和linux的终端一样吗
不完全一样,android系统底层就是linux的内核,但是和那些被广泛使用的linux不同,被阉割掉了不少核心的命令
Ⅱ 有什么好用的linux终端模拟软件吗
推荐Xshell,linux最常用的终端模拟器。功能强大而且相对安全,支持SSH、SFTP、TELNET、RLOGIN和SERIAL。支持SSH1、SSH2以及Microsoft
Windows平台的TELNET协议。支持分页环境、支持动态端口转发、支持自定义键映射、支持用户定义按钮、支持VB脚本、支持IPv6、支持国际语言的UNICODE终端。
Xshell可以直接在Windows界面下访问远程端不同系统下的服务器,从而更好地进行终端的远程控制,且终端用户还可根据需要在任何给定的时间中运用多个终端会话,以及与不同主机比较终端输出或者给不同主机发送同一组命令,且还有着超多的功能包括标签环境。广泛拆分窗口、同步输入和会话管理等来方便用户的工作。
与其他同类型的终端模拟软件相比,软件的Screen不会闪屏,并且可以回滚,键盘映射的兼容性也比较好,可以展现tunnel等功能,并支持布局切换,同时它还支持ZModem协议,还支持tab、自定义脚本、保存密码、多机管理等功能。
Xshell:
Xshell中文官网
Ⅲ Linux终端模拟器有哪些
1. Gnome-terminal
2. Konsole
3. (Xfce) terminal
4. LXTerminal
5. Terminator
6. Tilda
7. Guake
8. Yakuake
9. Terra
10. rxvt
11. Sakura
12. Terminology
Ⅳ Linux上自带的6个可使用ctrl alt fn切换的终端和图形化界面终端模拟器的终端有什么不同
使用的设备不同
Ⅳ Linux上有哪些好的终端模拟器
1. Gnome-terminal
让我们先从“经典”终端开始,对于Gnome而言,Gnome-terminal和Gnome一样经典。它支持多用户配置,标签,文本大小调整,背景转换和高度定制。如它名字暗示的那样,它适用于Gnome环境。
2. Konsole
同样大名鼎鼎,Konsole在KDE环境下等同于Gnome-terminal。Konsole额外支持的一点是分割视图和书签目录。
3. (Xfce) terminal
Xfce用户同样有他们的Xfce4终端。这个项目的目的是制造一个在外观上相似Gnome-terminal的产品,但是更少占用资源需求。它是高端定制化的,虽然没有用户配置功能或者透明背景。
4. LXTerminal
其目标是为了成为桌面环境下的最有名的终端,LXTerminal是为LXDE环境设计的。如你所能想到的,它甚至比xfce-terminal更轻量快速,去除了复杂的自定义和高级选项,只保持了标签功能。
5. Terminator
现在让我们看看终端模拟器中的劳斯莱斯,Terminator是这些终端里面功能最完备的一款,它包括了标签、水平和垂直分割视图、截屏、用户配置、插件、布局管理。可能还有一些你永远都用不到的选项。它的缺点是太大和大量的资源消耗,这些就是你付出的代价。
6. Tilda
这里还有一款完全不同的一款终端,它称为“下拉”式。如果你喜欢你的终端总是一键可达,也许你会喜欢下面提到的三个特点。首先,Tilda是一个典型的下拉式终端;它不依赖于环境并且非常轻量;你可以设置透明度或者甚至是不同的背景,并且选择出现在屏幕的那个边。除去这些,不要期待太复杂的功能,比如标签或者分割视图。Tilda只做一件事:在你需要的时候快速显示出来。
Ⅵ android上的模拟终端和Linux的终端一样吗
linux 与 windows 不同 就是同一种终端,可能有很版本,功能不同 所以不能比较 况且linux下有很多种终端
Ⅶ Linux终端模拟器可以在iphone上实现吗
不能,不兼容的,ios脱胎于freebsd,和linux也算同源,但是完全不一样的
Ⅷ 如何改造 Linux 虚拟终端显示文字
必须使用 UTF-8 模式 ( 默认 vc->utf=1 即可 )
虚拟控制台的 vc_screenbuf 必须修改以为 glyph 提供至少 16bit 的空间。
图形控制台需要 vc_font包含更多的字符,不只是 255 个,并提供代码绘制双倍宽度的中文字形,字体中的字符按照 UNICODE
排列,这样 glyph 就是字符的 UNICODE 编码。
修改虚拟控制台
一开始,我的打算是 vc_screenbuf 修改为 unsigned long long* 类型,32bit 给字符属性,分别表示 16bit
终端前景色和背景色。glyph 则拥有 31bit 的空间 , 因为汉字的宽度为双倍的英文字母 ,其中 1 bit 用来表示双字符宽度。比如 '我' 会表达为
两个 '我',第二个'我'的最高位为 1:绘制任何字形的时候,只绘制字形的左半部分;如果发现最高位为 1
则绘制字体位图中的右半部分。这样同样的绘制代码可以适应英文字母和汉字。写入 vc_screenbuf 的时候,
如果是双倍宽度的字符,需要同时写入两份,第二份的最高位置 1 就可以。但是 vc_screenbuf
的格式已经被到处假定为每字符两个字节。如此修改导致牵一发动全身。许多艰涩难懂的代码都依赖 vc_screenbuf 是
每字符两个字节的设定,直接修改定义后,光是编译器能直接检测出来的就有百余个地方需要修改,还有更多的逻辑并不能被编译器检测出来。如此修改的后果就是会出现许多隐晦的错误,非常难于调式。挣扎后,为最终选择了另一条道路
:
为汉字重新分配一块 vc_unicode_screenbuf
vc_unicode_screenbuf 紧挨着 vc_screenbuf , 事实上 vc_screenbuf
在分配空间的时候,多分配了一倍的空间,多分配的空间充作 vc_unicode_screenbuf,因此 struct vc_data 里并没有添加
vc_unicode_screenbuf 成员。 vc_unicode_screenbuf 同样为每字符 2 个字节,并不包含字符属性,所以 2
个字节如数用来保存 glyph。vc_screenbuf 格式未变,所以 vgacon 不需要修改,这就减少了大量的工作量。向 vc_screenbuf
写入字符的时候,同时写入一份到 vc_unicode_screenbuf 。如果是汉字,由于其 glyph 大于 254 , 所以 vc_screenbuf
的那两个字符 ( 汉字双倍宽度 ) 实际写入的是 0xff 和 0xfe ( 故而上文提到是 glyph 大于 254 的字符 ,0xfe 被保留它用了
)。0xff 表示该字符的 glyph 要到 vc_unicode_screenbuf 提取,然后绘制左半部分;0xfe 表示该字符的 glyph 要到
vc_unicode_screenbuf 提取,然后绘制右半部分。对于 glyph 大于 254 但是又不是双倍宽度的字符,就不需要 0xfe
作陪了。比如屏幕上显示的文字是黑底白字的 “牛 B” , vc_screenbuf 的内容就是 “0x00ff, 0x0ffe, 0x0f42 ” ,
vc_unicode_screenbuf 的内容则是 “牛 , 牛 ,b”
。这是因为一个汉字为两倍的英文字母宽度。在屏幕文字缓冲区上也必须占用两个字符的位置。并且必须有一种机制能知道应该绘制左半部分和右半部分,我使用的就是 0xff
和 0xfe。
修改图形控制台绘制代码
要修改的地方只有 3 个。
struct console_font 添加 charcount 成员。将主线内核的字体设置为 charcount = 255。 主线内核带的字体都是
255 个 glyph 的,所以没有添加字符个数的必要。不过我们即将要添加的字体会有数万字符。
添加一个新的字体,复盖 UNICODE BMP 基本区域的所有符号。
修改字符绘制代码,添加 vc_unicode_screenbuf 的支持。
字符绘制代码的修改比较繁琐,代码分布在 drivers/video/console/ 下的多个文件中。fbcon_putc(s) 由由
vc->vc_sw->con_putc(s) 调用, fbcon_putc(s) 转而调用分散于 drivers/video/console/
的多个 puts 实现。因为终端要支持 console_rotate , decoration , timing , 故而每种模式下的绘制实现都是不同的。我拿
drivers/video/console/bitblt.c 最常用的不倾斜、不加装饰等的终端模式为例来讲解绘图部分的修改。由于中文字体为 16x16
点阵,是对齐的字体,故而其绘制代码为 bit_putcs_aligned() 原先的代码以 glyph 为下标到 vc->vc_font->data
获得字体数据,然后调用 fb_pad_aligned_buffer 执行块拷贝操作。我的修改很简单,原来获得字体数据的代码修改后放入 font_bits()
辅助函数。 在 font_bits 里,要判断 glyph 是否为 0xff 或者 0xfe, 如果不是,使用 glyph 为下标获得字体的左半部分后并返回。
如果是,则从 vc_unicode_screenbuf 获得真正的 glyph 数值,然后再依据现有的 glyph 是 0xff 还是 0xfe
去获得字体的右半部分还是左半部分返回。font_bits 获得字体数据后执行 fb_pad_aligned_buffer 块拷贝。需要修改的地方还有
drivers/video/console/fbcon_ccw.c fbcon_cw.c fbcon_ub.c 。依原理进行修改即可。
虚拟终端的不足之处
虽然费尽心机添加了中文支持,那只是一个 workaround ,
并不能算真正的支持。要真正的支持必须彻底重写虚拟终端和控制台。而要支持中文,就需要更进一步,全面支持 UNICODE ,
包括支持从右向左的书写习惯。在内核里实现一个全面支持 UNICODE
的控制台并不是一件容易的事情,何况内核的政策也不允许将如此庞大的字库装入内核。于是乎,这里出现了死胡同。KMS 和 Wayland
的出现让这死胡同似乎有了个完美的解。
System Compositor?
System Compositor 是一个 wayland compositor,只是运行于系统全局范围。
为了懒人我这里稍微讲解一下 wayland compositor 吧。 Wayland 不同于 X , 在 wayland 的世界里,只有
compositor 和 client。Client 利用各种 API (wayland 给出的示例使用的是 OpenGL ES, 但其实 wayland
并不限制使用的绘图 API 类型 ) 进行窗口绘图,然后将窗口的绘制结果直接提交给 compositor 合成到屏幕上。这样 wayland 本身就不包含绘图
API 而大大简化了 wayland 的设计。Wayland compositor 可以同 X 一样操作显卡向屏幕输出合成后的结果,也可以作为另一个
wayland compositor 的 client。
对于多账户同时登录的实现,固然可以让每一个本地 GUI 会话开启一个 wayland compositor,但是存在更好的办法就是固定开启一个
system compositor。而让所有用户会话的 wayland compositor 再作为 system compositor 的 client.
借由 system compositor 的合成效果,进行快速用户切换也可以进行一些视觉效果。而且 Xorg 本身也已经支持作为 wayland client
运行,这样可以使用传统的 X 提供桌面,而让 wayland system compositor 实现终端切换。这还有一个好处,只有 wayland
system compositor 是以 root 运行的,而用户会话的 compositor 或 X 就不必以 root 权限运行。因为 Wayland
非常轻量,所以 system compositor 可以作为系统级服务常驻内存运行。而因为有了 system compositor ,
内核也不再需要实现虚拟终端了:只需要实现终端模拟器作为 system compositor 的 client
。由于是在用户空间实现的,所有可以加入 UNICODE,矢量字体,国际化的书写习惯等等的支持,再也不用受限于内核啦。 Wayland
还是一个非常年轻的项目,Wayland system compositor 目前还只是设想中的概念,需要更多的人关注参与。笔者相信不久的将来 wayland
Ⅸ Xshell是什么东西有什么用
Xshell是Windows下一款功能非常强大的安全终端模拟软件,支持Telnet、Rlogin、SSH、SFTP、Serial 等协议,可以非常方便的对linux主机进行远程管理。
Xshell支持各种安全功能,如SSH1 / SSH2协议,密码,和DSA和RSA公开密钥的用户认证方法,并加密所有流量的各种加密算法。
重要的是要保持数据安全与内置Xshell安全功能,因为像Telnet和Rlogin这样的传统连接协议很容易让网络流量受到任何有网络知识的人的窃取。Xshell将帮助保护数据免受黑客攻击。
(9)模拟linux终端扩展阅读:
相关的功能特性:
1、代替不安全的Telnet客户端:
Xshell支持VT100,vt220,vt320,xterm,Linux,scoansi和ANSI终端仿真和提供各种终端外观选项取代传统的Telnet客户端。
2、Xshell在单一屏幕实现多语言:
Xshell中的UTF-8在同类终端软件中是第一个运用的。用Xshell,可以将多种语言显示在一个屏幕上,无需切换不同的语言编码。越来越多的企业需要用到UTF-8格式的数据库和应用程序,有一个支持UTF-8编码终端模拟器的需求在不断增加。Xshell可以帮助处理多语言环境。
3、支持安全连接的TCP / IP应用的X11和任意:
在SSH隧道机制中,Xshell支持端口转发功能,无需修改任何程序,它可以使所有的TCP / IP应用程序共享一个安全的连接。