лучшие эмуляторы терминала для windows

7 лучших эмуляторов терминала для Windows 10

7 лучших эмуляторов терминала для Windows 10

Долгое время в Windows 10 не было отличного интерфейса командной строки. В результате разработчики и системные администраторы установили сторонние опции для эмуляции стиля Unix и других видов консолей. И хотя теперь возможно получить оболочку bash внутри Windows 10, многие пользователи по-прежнему предпочитают более настраиваемый эмулятор терминала. Посмотрите лучшие эмуляторы терминала для Windows 10 ниже.

MobaXterm

Обладая такими мощными функциями, как серверы X11, библиотека плагинов и даже собственные протоколные клиенты, MobaXterm — отличный серверный инструмент с множеством вариантов терминала для тех, кто действительно хочет копать глубже (наоборот, вы можете найти его немного раздутым, если вы просто хотите, например, сделать более легкую работу Putty).

Он позволяет вам устанавливать удаленные терминалы в SSH, telnet, rlogin и Mosh, и имеет интуитивно понятный интерфейс, который позволяет вам настроить несколько SSH-ответвлений, разделить терминалы по горизонтали / вертикали, среди других качественных функций. Естественно, в нем есть все необходимые вам команды Unix, что позволяет вам работать так же, как в Linux.

Существует ограниченная бесплатная версия MobaXterm, которая позволяет вам иметь до 12 сеансов, два туннеля SSH и 4 макросы (также имеет переносную версию). Если вы хотите получить полный пакет, вам нужно будет заплатить 69 долларов за пожизненное право на использование, которое снимает все вышеупомянутые ограничения.

Терминал ZOC

Один из лучших инструментов для людей, которым необходим доступ к данным в учетных записях Unix из Windows, Терминал ZOC, возможно, не бесплатный (79,99 долл. США), но его по-прежнему большое значение для более продвинутые пользователи.

Одной из его основных привилегий являются вкладки, поэтому вы можете одновременно запускать несколько сеансов терминала через SSH, telnet, QNX и другие терминалы. Он полон команд и обладает широкими возможностями настройки в соответствии с вашим индивидуальным стилем работы с терминалами.

Его эмуляции надежны и полны, предлагая такие функции, как поддержка мыши и клавиатуры, сквозная печать и линейная графика. И это очень удобно для поиска определенных фрагментов текста в вашей работе, а затем выделить их.

cmder

cmder — это хорошо известный эмулятор переносимых терминалов для Windows 10, который был создан из чистого разочарования, вызванного отсутствием хорошей альтернативы в Windows. Он построен поверх другого известного консольного эмулятора ConEmu и дополнен Clink. Clink расширяет возможности ConEmu, добавляя функции оболочки, такие как завершение в стиле bash. Он широко совместим, работает с msysgit, PowerShell, cygwin и mintty, предоставляя возможности Unix для Windows.

Поскольку он полностью переносимый, вы можете запускать cmder с USB-накопителя, который используется на разных компьютерах, без установки файлов на локальный компьютер. жесткие диски, что делает его специалистом по поддержке лучшего друга. В качестве бонуса, он поставляется с очень любимой цветовой схемой Monokai для координации вашего взлома с Sublime Text.

ConEmu

ConEmu — это консольный эмулятор Windows с вкладками, несколькими окнами и множеством параметров настройки. Его происхождение уходит далеко в историю: ConEmu изначально был создан в качестве дополнения к Far Manager, менеджеру файлов и архивов, выпущенному для Windows в 1996 году. Но, несмотря на его возраст, программное обеспечение постоянно развивается.

Эмулятор обеспечивает обширное меню настроек для настройки и горячих клавиш для назначения, рисование воинов клавиатуры из Vim и Emacs. ConEmu совместим со многими такими же популярными оболочками, как cmder, такими как cmd.exe, PowerShell, cygwin, PuTTY и другими. Если вы устанавливаете эмулятор DOS, такой как DosBox, вы можете запускать приложения DOS в 64-битной среде. Но поскольку ConEmu не является оболочкой, он не включает в себя полезные функции оболочки, такие как удаленные подключения и завершение табуляции. Несмотря на то, что в нем много поклонников, ConEmu, возможно, не лучший эмулятор консоли для новых пользователей.

Консоль

Консоль — это эмулятор терминала и расширение консоли для Windows 10, которое ориентировано на непосредственное использование и простое взаимодействие. Он предоставляет все возможности командной строки, а его простой дизайн скрывает значительную степень мощности и настройки. Он интегрируется со всеми основными оболочками и позволяет настраивать стили окон, прозрачность, шрифты и цвета текста. Но Console не такая всеобъемлющая, как ConEmu, поэтому очень опытные пользователи могут оказаться ограниченными программным обеспечением.

Babun

Babun поставляется с bash и zsh из коробки, предоставляя инструменты, которые могут использовать как начинающие, так и опытные пользователи. Он построен на основе Cygwin, портируя интерфейс в стиле Unix на Windows 10. Вы можете использовать oh-my-zsh для настройки zshs широкого спектра опций, предоставляя вам больший контроль над функциями оболочки, которые вы получаете в других приложениях. Он также включает в себя менеджер пакетов pact и HTTP-прокси из коробки.

Mintty

Если вы используете Cygwin только для своей оболочки Windows, то Mintty — отличный эмулятор консоли. Фактически, Mintty установлен как эмулятор терминала по умолчанию. Как и другие опции в этом списке, Mintty предоставляет набор дополнительных функций, таких как перетаскивание, полноэкранный режим, копирование и вставка, а также поддержка тем. И это также работает с MSYS и Msys2.

Заключение

Cmder, вероятно, лучшая ставка для пользователей, которые ищут способный, но управляемый эмулятор терминала. Пользователи, которым нужен более мощный опыт, могут получить исправления с помощью ConEmu или немного больше рассказать о ZOC Terminal.

Эта статья была впервые опубликована в августе 2017 года и обновлена ​​в июне 2019 года.

Источник

15 Best Terminal Emulators for Windows

A terminal emulator is a program that emulates the functionalities of the traditional computer terminals. In simple words, unlike the classic terminal that performed functions using hardware, the terminal emulator executes the same tasks in software.

A terminal emulator enables a host computer to access a remote computer using a command-line or graphical interface.

Apart from accessing files on the other computer, the program also allows the host computer to run applications on the remote machine.

Moreover, the terminal emulator also enables file transfer between the host and the remote pc. Such communications between the two computers are made attainable using the cryptographic network protocol – Secure Shell (SSH).

The terminal in the graphical user interface is commonly known as ‘Terminal Window.’

Developers use terminal emulator clients to gain shell access to the computer. The text-mode interface provides programmers more control over all functions and expedites processes. Below we will discuss the best terminal emulators for Windows. There are many variants, and each of them has its pros and cons.

Top 15 Terminal Emulator for Windows

Windows operating system has always lacked an excellent command line interface, therefore, pushing programmers and system administrators to look for third-party alternatives that replicate Unix style consoles.

While it is possible to integrate ‘bash shell’ – a Unix shell, with Windows 10, developers still choose a more customizable emulator. Below we have listed the top 10 terminal emulators for Windows:

1. Cmder

Cmder is one of the most popular portable terminal emulators available for Windows OS. The programs official website states that it was developed ‘out of pure frustration’ noting that there were no available alternatives in the market. The software package is written in C++ and Powershell.

The free and open source software is built on popular console emulator – ConEMu. Moreover, Cmder adds enhancements from Clink that offer bash-style completion. It also presents Unix capabilities to Windows by extending compatibility with PowerShell, MinTTY, myysgit and Cygwin.

2. ZOC Terminal Emulator

ZOC is one of the best terminal emulator and SSH client especially for programmers that want to access data on Unix machines from Windows. The software is not free but has impressive features for advanced users. It is a one-stop tool for developers as it integrates connectivity to text-based servers and remote machines.

One of its significant advantages is that it offers a tabbed interface, allowing developers to work on multiple terminal sessions simultaneously. The software package is fully customizable to match the personal style of developers.

ZOC Terminal’s bonus features include line graphics, and mouse support and keyboard remapping. Communicating with hosts using telnet and Secure Shell is easy.

3. ConEmu console emulator

ConEmu is an open-source tabbed console emulator distinctively developed for Windows. The tool provides multiple windows and customizable Graphical User Interface (GUI) applications as a single window.

ConEmu is one of the oldest software when it comes to terminal emulators, but even so, the team behind it have continuously introduced new features over time. The software is popular among programmers as it provides deep customizations that include hotkeys, custom color palettes, and auto-hideable mode.

Moreover, ConEmu is compatible with many of the shells such as PowerShell, PuTTY and Cmder. The software is not the best for new users as it lacks several features such as remote connections.

4. Mintty console emulator for Cygwin

Mintty is an open-source console emulator for Cygwin – Unix-like functionality for Windows. As Cygwin natively runs on Windows OS, mintty does not need a display server. The software tool is perfect for programmers that predominantly use Cygwin for Windows shell. In fact, since 2011 mintty is Cygwin’s default terminal.

It offers a flexible user interface and is more attached to the Unix standards. The software is written in C language and gets its name ‘mintty’ for the projects minimalist approach. One of its key perks is that it provides a drag-and-drop feature, and supports copy and paste. But its main advantages over its counterparts is the xterm compatibility.

5. MobaXterm emulator for remote computing

MobaXterm is one of the best all-in-one application for remote computing. It is an ultimate toolbox – where it provides several network tools and an unmatchable amount of functions in a single window.

The software package is suitable for administrators, programmers, webmasters and everyone else who want to handle their remote tasks in merely and productively.

One of its major perks is that it integrates the number of server clients including SSH, RDP, telnet, SFTP, VNC, and rlogin. Additionally, it provides a set of Unix commands such as bash, grep, rsync and many more.

MobaXterm offers an intuitive user interface to ensure efficient access to remote servers via multiple networks.

Babu is a shell that is built on Cygwin – Unix-style environment on Windows. The software is entirely free and is often touted as “a Windows shall you will love!.” It brings zsh, oh-my-zsh – a community-driven framework for organizing Zsh configuration, to Windows.

Читайте также:  какие фрукты овощи ягоды можно замораживать на зиму

The pre-configured Cygwin on Babun comes with many add-ons and needs only little to no setup. Moreover, it has a plugin-oriented architecture. Babun is perfect for developers that want to use more shell provisions as It comes with a package manager known as ‘pact.’

7. PuTTY – Most popular terminal emulator

PuTTY is a free serial console, terminal emulator and the most popular SSH client. Written in C language and developed by Simon Tatham, PuTTY supports several network protocols such as Telnet, Secure copy protocol (SCP) rlogin, and SSH. It is one of the oldest terminal emulators that are still actively developed and updated.

Although initially developed for Windows OS, it is now ported to many operating systems. It does not support session tabs; several wrappers provide that function. Commonly, PuTTY is leveraged to connect routers and switches using SSH.

8. KiTTY

The KiTTY program is an adaptation of PuTTY, as it is developed based on the same programming foundations of PuTTY. As such, it is easy for programmers to switch to KiTTY as it has the same UI (User Interface) and UX (User Experience) as PuTTY.

The application is solely programmed from Windows operating system. However, users can access Linux, and Unix machines. KiTTY is a better adaptation of PuTTY as it offers features that the famous terminal emulator PuTTY lacks.

9. Xshell terminal emulator

Xshell is a terminal emulator that mirrors the presence of virtual console. The software enables the computer to work as a terminal and make it easy for programmes to access data in a mainframe. Although it is designed for Windows, interacting with Linux servers is very easy. The program is marketed as the “ Industry’s Most Powerful SSH Client “.

The software provides multiple drop-down tabs and therefore is a modular emulator. The user-friendly interface allows developers to manage various tasks efficiently. XShell is often known for its security and transparency as it leverages the MIT Kerberos authentication system.

As such, users should not worry about data loss. Moreover, the program has an automatic update feature that downloads and installs it when new updates are available. Xshell is an ideal choice of a terminal emulator for both beginners and experts.

10. ConsoleZ – an enhancement for Windows console

ConsoleZ is an enhancement for Windows console that is not a shell akin to the above alternative terminal emulators. As such, it does not execute many of the shell features such as syntax coding and command history.

In simple terms, ConsoleZ is a better-looking front-end for the command. Moreover, there is no need to install as it will work along with the Windows command line. Users can view multiple consoles side by side by splitting the console horizontally or vertically.

While the inbuilt Windows console does not come with customization options, ConsolseZ acts as a perfect terminal emulator by making it more accessible and productive. Using ConsoleZ, programmers can modify the look by adding themes, tabs and many other visual tweaks to make the dull looking Windows Command Prompt more vibrant.

11. Console2 – best terminal emulators and command prompt for Windows

Console2 is one of the best terminal emulators and famous command prompt alternative for Windows. The program requires installations and is filled with lots of features that the original Windows command prompt lacks.

Another additional feature is the Windows Powershell integrations, whereby users are not required to open a new window for Powershell exigencies. In addition to that, it also can run PuTTY and Cygwin. The program offers a lot of configuration options, suiting needs of every programmer. Pro

12 – z/Scope Terminal Emulator

z/Scope is one of the most robust and professional terminal emulators in the market. It is a modern multi-protocol, multi-host terminal emulation runs on almost all versions of the Windows operating system. The program uses a modern tabbed interface and provides access to multiple terminal-based applications simultaneously.

z/Scope also offers many tools to make it easy for users. The software has everything that a programmer needs to interact with hosts over SSL protocols. Its developers claim that the software significantly increases productivity by offering them a better emulation experience.

13. Hyper – a cross-platform terminal emulator

Hyper is another alternative terminal emulation that can be run on almost all versions of operating systems. Using Hyper, programmers can connect to multiple systems using SSH and dial-up modem.

Most commonly, developers use the software to establish a dial-up connection to other computers. Moreover, it is also leveraged to transfer data between networks such as host and remote servers.

14. FireCMD

FireCMD is an advanced terminal emulator that facilitates users to run several tasks. One of its advantages is the user-friendly interface. Apart from its capabilities of functioning as a terminal emulator for Windows, it also has several in-built tools such as text editor, snapshot grabber, and Unix for Windows.

FireCMD will enable users to run 32 or 64-bit console programs. The program provides added functionality to change the font color, style, size, and even the background color. It supports the full-screen mode and dynamic resizing the window to meet every need of all developers.

Also, it also has the functionality of zoom in or zooms out and copy-paste actions. It supports a multi-tabbed environment that permits programmers to work on multiple sessions simultaneously. As such, users can run console applications such as Bash, Cygwin, CMD and PowerShell at the same time. It can also edit multiple text file concurrently.

15. Terminus – an open source windows terminal emulator

Terminus is an open source software that is designed to work on multiple operating systems including Windows. The software is polished and looks sophisticated at first glance.

Also, the program offers plenty of configurations options such as themes and fonts to match every need of developers. However, users will have to turn ligature support from setting manually.

Above are the best 15 terminal emulators for Windows. There are hundreds of other products available in the market but the above mentioned are the best in business for now.

Источник

Лучшие бесплатные Telnet-SSH эмуляторы терминала

Эмуляторы терминалов

Эмуляторы терминалов обеспечивают telnet или ssh соединение с UNIX системами. Зачастую они используются для работы с серверами. Коммерческие продукты могут эмулировать большой набор терминалов, обеспечивать поддержку графического интерфейса и т. д. Все это очень хорошо, но эти продукты иногда уходят в сторону от основной идеи. Бесплатные реализации в большей степени сосредоточены на обеспечении быстрого доступа. Функционально они полноценные, но по минимуму содержат различных излишеств.

Большинство бесплатных продуктов поддерживают только узкий диапазон эмуляторов экрана. Обычно это vt100, linux или xterm.

В данном классе программ большинство обычных пользователей сочтут наиболее существенными критериями следующие:

Конечно, все выше сказанное имеет смысл только в том случае, если у продукта качественно реализована основная функциональность (красивая телега без лошади никуда не поедет).

Недостатка в кандидатах на рассмотрение нет, поэтому в данном обзоре вам будут представлены пара зрелых и качественных бесплатных продуктов.

Обзор бесплатных Telnet-SSH эмуляторов терминалов

Эмулятор терминалов Dave’s Telnet обилие функций

Dave’s Telnet единственная программа, которая выполняет все три критерия, хотя часть из них придется настраивать в ручную. Она поддерживает эмуляцию для linux/xterm/vt100/vt220/vt320/vt440.

Dave`s Telnet можно с легкостью назвать серьезным конкурентом коммерческим продуктам. Единственным недостатком можно назвать слегка неуклюжую реализацию функции копирования и вставки.

Эмулятор терминалов PuTTY достойный и популярный продукт

PuTTY еще один достойный и очень популярный продукт. Правда, поддерживает только xterm эмуляцию.

Данный эмулятор telnet и ssh соединений не поддерживает настройку функциональных клавиш и настройку автоответа. Тем не менее, в случае функциональных клавиш это и понятно, так как не применимо для xterm эмуляции. PuTTY используется в огромном количестве проектов, что можно считать показателем высококачественного продукта.

Оба продукта до сих пор поддерживаются. Но, к сожалению, новые релизы бывают очень редко.

Другие бесплатные эмуляторы терминалов:

Terminals представляет собой программу с достаточно большим набором возможностей и инструментов для обеспечения удаленного доступа. Она так же организована на основе табов. Позволяет подключаться по telnet / remote desktop / vnc и т.д. Поддерживает более десятка инструментов для анализа сети, в том числе и пресловутый пинг, трассировку и whois. В чистом виде она не реализует функциональность ни одного из критериев. Можно сказать, что эта программа будет представлять большой интерес для системных администраторов, которые следят за парком различных типов клиентских машин и серверов. В настоящее время она активно развивается.

Руководство по быстрому выбору (ссылки на скачивание бесплатных Telnet-Ssh эмуляторов терминалов)

Dave’s Telnet

PuTTY

Достойный и популярный продукт.
Поддерживает только xterm эмуляцию.
—————
http://www.chiark.greenend.org.uk/

☕ Хотите выразить благодарность автору? Поделитесь с друзьями!

Источник

Обзор эмуляторов терминала

Пара слов от нашего translate-бюро: обычно все стремятся переводить самые свежие материалы и публикации, и мы не исключение. Но терминалы — это не то, что обновляется раз в неделю. Поэтому мы перевели для вас статью Антуана Бопре, опубликованную весной 2018 года: несмотря на солидный по современным меркам «возраст», на наш взгляд, материал совершенно не потерял актуальности. Кроме того, в оригинале это серия из двух статей, но мы приняли решение объединить их в один большой пост.

Терминалы занимают особое место в компьютерной истории, но в последние десятилетия они «вынуждены» были буквально выживать вместе с командной строкой на фоне повсеместно распространяющихся графических интерфейсов. Эмуляторы терминалов заменили своих аппаратных собратьев, которые, в свою очередь, были модификацией систем на перфокартах и тумблерах. Современные дистрибутивы поставляются с целым множеством эмуляторов терминала всех форм и расцветок. И пока многие спокойно довольствуются стандартным терминалом, который предоставляется их рабочей средой, некоторые с гордостью используют откровенно экзотическое программное обеспечение для запуска своей любимой оболочки или текстового редактора. Но, как мы увидим из этой статьи, не все терминалы были созданы по одному образу и подобию: они сильно различаются между собой по функциональности, размеру и производительности.

Некоторые терминалы имеют прямо удивительные дыры в безопасности, плюс, большинство обладает совершенно разным набором функций, от поддержки интерфейса с вкладками до сценариев. Хотя мы рассмотрели эмуляторы терминалов в далеком прошлом, эта статья — обновление предыдущего материала, которое поможет читателям определить, каким терминалом пользоваться в 2018 году. В первой половине статьи сравниваются функции, а во второй оценивается производительность.

Вот рассмотренные мной терминалы:

Возможно, это не самые свежие версии, так как я ограничивался стабильными сборками на момент написания материала, которые у меня получилось раскатать на Debian 9 или Fedora 27. Единственное исключение — Alacritty. Он является потомком терминалов с GPU-ускорением и написан на необычном и новом для этой задачи языке — Rust. Я исключил из своего обзора веб-терминалы (в том числе, и на Electron), потому что предварительные тесты показали их крайне низкую производительность.

Поддержка юникода

Свои тесты я начал с поддержки юникода. Первым тестом терминалов было отображение оными строки о юникоде из статьи на Википедии: «é, Δ, Й, ק, م, ๗, あ, 叶, 葉 и 말». Этот простой тест показывает, может ли терминал корректно работать по всему миру. Терминал xterm не отображает арабский символ Mem в конфигурации по умолчанию:

По дефолту xterm использует классический «фиксированный» шрифт, который, согласно все той же Вики, имеет «существенный охват юникода с 1997 года». В этом шрифте происходит что-то, что заставляет символ отображаться в виде пустой рамки и только при увеличении шрифта текста до 20+ пунктов символ наконец-то начинает отображаться правильно. Однако такой «фикс» ломает отображение других символов юникода:

Эти скриншоты были сделаны в Fedora 27, так как именно она давала лучшие результаты, нежели Debian 9, где некоторые старые версии терминалов (а конкретно — mlterm) не могли должным образом работать со шрифтами. К счастью, это было поправлено в более поздних версиях.

Теперь обратите внимание на отображение строки в xterm. Оказывается, символ Mem и следующий за ним Semitic Qoph относятся к сценариям начертания RTL (right-to-left), поэтому технически они должны отображаться справа налево. Веб-браузеры, например Firefox 57, правильно обрабатывают приведенную выше строку. Более простым вариантом RTL-текста является слово «Сара» на иврите (שרה). Страница Вики о двунаправленных текстах говорит следующее:

«Многие компьютерные программы не могут правильно отображать двунаправленный текст. Например, еврейское имя «Сара» состоит из символов син (ש) (который появляется справа), затем реш (ר) и, наконец, хе (ה) (который должен появляться слева)».

Многие терминалы не проходят этот тест: Alacritty, VTE-производные терминалы Gnome и XFCE, urxvt, st и xterm отображают «Сара» в обратном порядке, как если бы мы записывали это имя как «Арас».

Другая проблема двунаправленных текстов заключается в том, что их надо как-то выровнять, особенно если речь идет о смешении RTL и LTR-текстов. Сценарии RTL должны запускаться с правой стороны окна терминала, но что должно происходить для терминалов, по умолчанию работающих с LTR-английским? Большинство из них не обладают какими-то специальными механизмами и выравнивают весь текст по левому краю (в том числе, и в Konsole). Исключением являются pterm и mlterm, которые придерживаются стандартов и выравнивают такие строки по правому краю.

Защита от вставки

Следующая критическая особенность, которую я для себя определил, — это защита от вставки. Хотя широко известно, что заклинания типа:

являются пуш-командами выполнения кода, мало кто знает, что скрытые команды могут проникнуть в консоль при копировании-вставке из веб-браузера, даже после тщательного осмотра. Проверочный сайт Джанна Хорна блестяще показывает, как выглядящая безобидно команда:

превращается при вставке с сайта Хорна в терминал вот в такую неприятность:

Режим Bracketed paste явно предназначен для нейтрализации подобных атак. В этом режиме терминалы заключают вставляемый текст в пару специальных escape-последовательностей, чтобы сообщить оболочке о происхождении этого текста. Так оболочка получает сигнал, что может игнорировать специальные символы, которые может содержать вставляемый текст. Все терминалы, вплоть до почтенного xterm, поддерживают данную функцию, но вставка в Bracketed-режиме нуждается в поддержке оболочки или приложения, запущенного на терминале. Например, ПО использующее GNU Readline (тот же Bash), нуждается в файле

К сожалению, тест-сайт Хорна также показывает, как обойти эту защиту через само форматирование текста и преждевременно закончить применение к нему Bracketed-режима. Это работает, потому что некоторые терминалы некорректно фильтруют escape-последовательности перед добавлением своих собственных. Например, в моих я так и не смог успешно завершить тесты Konsole даже с учетом корректной конфигурации .inputrc файла. Это означает, что вы с легкостью можете получить повреждения конфигурации системы из-за неподдерживаемого приложения или неправильно настроенной оболочки. Особенно опасно это при входе на удаленные сервера, где тщательная проработка конфигурации встречается реже, тем более если таких удаленных машин у вас много.

Хорошим решением этой проблемы является плагин подтверждения вставки для терминала urxvt, который просто запрашивает разрешение на вставку любого текста, содержащего в себе новые строки. Более защищенного варианта для описываемой Хорном текстовой атаки я не нашел.

Вкладки и профили

Популярной сейчас функцией является поддержка интерфейса с вкладками, который мы будем определять как одно окно терминала, содержащее в себе еще несколько терминалов. Для разных терминалов эта функция отличается, и хотя традиционные терминалы вида xterm вообще не поддерживают вкладки, более современные инкарнации терминала в лице Xfce Terminal, GNOME Terminal и Konsole эту функцию имеют. Также поддержка вкладок есть и у Urxvt, но только при условии использования плагина. Но с точки зрения поддержки вкладок как таковых безусловным лидером является Terminator: он не только поддерживает вкладки, но также может размещать терминалы в произвольном порядке (см изображение ниже).

Еще одной особенностью Terminator является возможность «группировать» эти вкладки вместе и посылать одни и те же нажатия клавиш на несколько терминалов одновременно, что обеспечивает грубый инструмент выполнения массовых операций на нескольких серверах одновременно. Аналогичная функция также реализована и в Konsole. Для использования этой функции в других терминалах необходимо использовать стороннее программное обеспечение, такое как Cluster SSH, xlax или tmux.

Особенно хорошо вкладки работают вкупе с профилями: например, у вас может быть одна вкладка для электронной почты, другая для чата и так далее. Это хорошо поддерживается терминалом Konsole и GNOME Terminal. Оба позволяют каждой вкладке автоматически запускать свой профиль. Terminator тоже поддерживает профили, но я не смог найти способ автоматически запускать определенные программы при открытии определенной вкладки. Другие терминалы вообще не имеют понятия «профиль».

Рюшечки

Последнее, что я рассмотрю в первой части этой статьи, — внешний вид терминалов. Например GNOME, Xfce и urxvt поддерживают прозрачность, но недавно свернули поддержку фоновых изображений, что заставило некоторых пользователей перейти на терминал Tilix. Лично меня устраивает и просто Xresources, который устанавливает базовый набор цветов фона для urxvt. Однако нестандартные цветовые темы могут создавать и проблемы. Например, Solarized не работает с приложениями htop и IPTraf, так как они уже используют собственные цвета.

Оригинальный терминал VT100 не поддерживал цвета, а новые зачастую ограничивались 256-цветной палитрой. Для опытных пользователей, которые стилизуют свои терминалы, запросы оболочки или строки состояния какими-то сложными способами, могут стать неприятным ограничением. Gist отслеживает, какие терминалы имеют поддержку «True Color». Мои тесты подтверждают, что st, Alacritty и терминалы на базе VTE прекрасно поддерживают True Color. Другие терминалы в этом плане чувствуют себя не очень хорошо и по факту не отображают даже 256 цветов. Ниже вы можете увидеть разницу между поддержкой True Color в терминалах GNOME, st и xterm, которые неплохо справляются с этой задачей с помощью своей 256-цветовой палитры, и urxvt, который не только не проходит тест, но даже показывает какие-то мигающие символы вместо них.

Некоторые терминалы также анализируют текст на наличие URL-шаблонов, чтобы сделать ссылки кликабельными. Это относится ко всем производным от VTE терминалам, тогда как urxvt требует специальный подключаемый модуль, который бы трансформировал URL-адреса по щелчку или с помощью сочетания клавиш. Другие протестированные мной терминалы отображают URL-адреса иными способами.

Наконец, новый тренд терминалов — опциональность буфера прокрутки. Например, в st нет буфера прокрутки; предполагается, что пользователь будет использовать терминальный мультиплексор, вроде tmux и GNU Screen.

В Alacritty также отсутствуют буферы обратного скролла, но вскоре добавится его поддержка из-за «обширного фидбека» на эту тему со стороны пользователей. Помимо этих выскочек, каждый проверенный мною терминал, который я смог найти, поддерживает обратную прокрутку.

Промежуточные итоги

Во второй части материала (в оригинале это были две разные статьи, — прим. пер.) мы сравним производительность, использование памяти и задержку. Но мы уже видим, что некоторые из рассматриваемых терминалов имеют серьезные недостатки. Например, пользователи на регулярной основе работающие с RTL-скриптами могут обратить внимание на mlterm и pterm, так как они лучше других справляются с подобными задачами. Konsole также хорошо проявил себя. Пользователи, не работающие с RTL-скриптами, могут выбирать что-нибудь другое.

С точки зрения защищенности от вставки вредоносного кода urxvt стоит особняком из-за своей особой реализации защиты от этого вида атак, которая мне кажется определенно удобной. Тем, кто ищет какие-нибудь навороты, стоит посмотреть на Konsole. Наконец, стоит отметить, что VTE — отличная база для терминалов, которая гарантирует поддержку цветов, распознавание URL и так далее. На первый взгляд, дефолтный терминал, поставляемый с вашей любимой средой, может отвечать всем требованиям, но оставим этот вопрос открытым, пока не разберемся с производительностью.

Продолжаем разговор


Вообще, производительность терминалов сама по себе может показаться надуманной проблемой, однако, как оказалось, некоторые из них демонстрируют удивительно большую задержку для ПО такого фундаментального типа. Также далее мы рассмотрим то, что традиционно называют «скоростью» (на самом деле, это скорость прокрутки) и потребление терминалом памяти (с оглядкой на то, что сегодня это не так критично, как десятилетия назад).

Задержка

После тщательного исследования производительности терминалов я пришел к выводу, что важнейшим параметров в этом плане является размер задержки (пинг). В своей статье «Печатаем с удовольствием» Павел Фатин рассмотрел задержку различных текстовых редакторов и намекнул, что терминалы в этом плане могут работать медленнее, чем самые быстрые текстовые редакторы. Именно этот намек и привел меня, в конечном итоге, к запуску собственных тестов и написанию этой статьи.

Но что такое задержка, и почему она так важна? В своей статье Фатин определил её как «задержку между нажатием клавиши и соответствующим обновлением экрана» и процитировал «Руководство по взаимодействию человека с компьютером», в котором говорится: «Задержка в визуальной обратной связи на дисплее компьютера оказывает важное влияние на поведение машинистки и ее удовлетворенность».

Фатин объясняет, что такой пинг имеет более глубокие последствия, нежели просто удовлетворение: «печатание становится медленнее, возникает больше ошибок, увеличивается напряжение глаз и мышц». Другими словами, большая задержка может привести к опечаткам, а также снижению качества кода, так как приводит к дополнительной когнитивной нагрузке на мозг. Но что еще хуже, пинг «увеличивает напряжение глаз и мышц», что, по-видимому, подразумевает развитие профессиональных травм в будущем (по всей видимости, автор имеет в виду проблемы с мышцами глаз, спиной, руками и, конечно же, зрением, — прим. пер.) из-за повторяющегося напряжения.

Некоторые из этих эффектов известны давно, а результаты исследования, опубликованного еще в 1976 году в журнале Ergonomics, говорят, что задержка в 100 миллисекунд «значительно ухудшает скорость набора». Совсем недавно в руководстве пользователя GNOME было внесено приемлемое время отклика в 10 миллисекунд, а если идти дальше, то Microsoft Research показывает, что идеалом является 1 миллисекунда.

Фатин проводил свои тесты на текстовых редакторах; он создал портативный инструмент под названием Typometer, который я использовал для проверки пинга в эмуляторах терминала. Имейте в виду, что тест проводился в режиме симуляции: в действительности нам надо учитывать и задержку ввода (клавиатура, USB-контроллер и так далее) и вывода (буфер видеокарты, монитор). По словам Фатина, в типичных конфигурациях она составляет около 20 ms. При наличии геймерского оборудования можно достигнуть показателя всего в 3 миллисекунды. Так как у нас уже есть такое быстрое оборудование, приложение не должно вносить еще и свою задержку. Цель Фатина —довести задержку приложения до 1 миллисекунды, или вовсе достигнуть набора без измеримой задержки, как в IntelliJ IDEA 15.

А вот результаты моих измерений, а также некоторые результаты Фатина для того, чтобы показать, что мой эксперимент согласуется с его тестами:

Первое, что меня поразило — это лучшее время отклика у старых программ, таких как xterm и mlterm. С наличием худшей задержки регистра (2,4 ms) они показали результат лучше, чем самый быстрый современный терминал (10,6 ms для st). Ни один современный терминал не опускается ниже порога в 10 миллисекунд. В частности, Alacritty не соответствует требованиям к «самому быстрому из существующих эмуляторов терминала», хотя его результаты улучшились с момента первой проверки в 2017 году. Действительно, авторы проекта в курсе ситуации и работают над улучшением отображения. Также необходимо отметить, что Vim, использующий GTK3, на порядок медленнее своего аналога GTK2. Из этого можно сделать вывод, что GTK3 создает дополнительную задержку, и это отражается на всех прочих терминалах, которые его используют (Terminator, Xfce4 Terminal и GNOME Terminal).

Однако для глаза отличия могут быть незаметны. Как объясняет Фатин: «не обязательно осознавать наличие задержки, чтобы она имела на вас эффект». Фатин также предупреждает о стандартном отклонении: «любые нарушения в длительности задержки (дрожание) создают дополнительную нагрузку из-за их непредсказуемости».

График выше взят получен на чистом Debian 9 (stretch) с i3 window manager. Эта среда дает наилучшие результаты в тестах на определение задержки. Как оказалось, GNOME создает дополнительный пинг в 20 ms для всех измерений. Возможное объяснение этому — наличие программ с синхронной обработкой входных событий. Фатин приводит для такого случая в пример Workrave, который добавляет задержку обрабатывая все input-события синхронно. По умолчанию GNOME также оснащен менеджером окон Mutter, которые создает дополнительный уровень буферизации, что влияет на пинг и добавляет минимум 8 миллисекунд задержки.

Скорость прокрутки

Следующий тест — это традиционная проверка «скорости» или «полосы пропускания», которая измеряет, как быстро терминал может прокручивать страницу, отображая большое количество текста на экране. Механика теста варьируется; оригинальный тест состоял в том, чтобы просто генерировать одну и ту же текстовую строку с помощью команды seq. Другие тесты включают в себя проверку Томаса Е. Дики (сопровождающего xterm), в рамках которого многократно выгружается файл terminfo.src. В еще одном обзоре производительности терминалов Ден Луу использует строку случайных байтов в кодировке base32, которая выводится в терминал с помощью cat. Луу считает такой тест «настолько бесполезным эталоном, насколько это можно себе представить» и предлагает использовать вместо этого отклик терминала в качестве основного показателя. Дики также называет свой тест вводящим в заблуждение. Тем не менее, оба автора признают, что пропускная способность окна терминала может быть проблемой. Луу обнаружил зависание Emacs Eshell при отображении больших файлов, а Дики оптимизировал терминал, чтобы избавиться от визуальной медлительности xtrerm. Поэтому в этом тесте все еще есть некоторый резон, но поскольку процесс рендеринга сильно отличается от терминала к терминалу, его можно использовать и как тестовый компонент для проверки других параметров.

Здесь мы видим, что rxvt и st вырываются вперед на фоне конкурентов, следом идет намного более новый Alacritty, разрабатываемый с упором на быстродействие. Далее идут Xfce (семейство VTE) и Konsole, которые работают почти вдвое быстрее. Последним идет xterm с показателем в пять раз медленнее rxvt. Во время теста xterm также сильно рябил, проходящий текст было трудно разглядеть, даже если это была одна и та же строка. Konsole оказался быстрым, но он временами «хитрил»: дисплей время от времени зависал, показывая текст частично или не отображая его вовсе. Другие терминалы отображали строки четко, включая st, Alacritty и rxvt.

Дики объясняет, что различия в производительности связаны с дизайном буферов прокрутки в разных терминалах. В частности, он обвиняет rxvt и другие терминалы в том, что они «не следуют общим правилам»:

«В отличие от xterm, rxvt не пытался отобразить все обновления. Если он отстает, он откажется от некоторых обновлений, чтобы наверстать упущенное. Это оказало большее влияние на мнимую скорость прокрутки, чем на организацию внутренней памяти. Один недостаток состоял в том, что анимация ASCII была несколько неточной».

Чтобы исправить эту кажущуюся медлительность xterm, Дики предлагает использовать ресурс fastScroll, позволяющий xterm отбрасывать некоторые обновления экрана, чтобы не отставать от потока. Мои тесты подтверждают, что fastScroll повышает производительность и выводит xterm на один уровень с rxvt. Это, однако, довольно грубый костыль, как объясняет сам Дики: «иногда xterm — как и konsole — кажется, останавливается, так как он ожидает нового набора обновлений экрана после того, как некоторые из них были удалены». В этом ключе кажется, что другие терминалы нашли наилучший компромисс между скоростью и целостностью дисплея.

Потребление ресурсов

Независимо от целесообразности рассмотрения скорости прокрутки в качестве показателя производительности, этот тест позволяет имитировать нагрузку на терминалы, что, в свою очередь, позволяет нам измерять другие параметры, такие как использование памяти или диска. Метрики были получены путем запуска указанного теста seq под мониторингом процесса Python. Он собирал данные счетчиков getrusage () для ru_maxrss, сумму ru_oublock и ru_inblock и простой таймер времени.

В этом тесте ST занимает первое место с наименьшим средним потребляемым объемом памяти в 8 МБ, что неудивительно, если учесть, что основная идея проекта — это простота. Немного больше потребляет mlterm, xterm и rxvt — около 12 МБ. Еще один заметный результат у Alacritty, которому для работы требуется 30 МБ. Затем идут терминалы семейства VTE с показателями от 40 до 60 МБ, что достаточно много. Подобное потребление можно объяснить тем, что эти терминалы используют библиотеки более высокого уровня, например, GTK. Konsole идет последним с колоссальным потреблением 65 МБ памяти во время тестов, хотя и это можно оправдать его весьма широким набором функций.

По сравнению с предыдущими результатами, полученными десять лет назад, все программы стали потреблять заметно больше памяти. Раньше Xterm требовал 4 МБ, а теперь — 15 МБ просто на запуске. Аналогичное увеличение потребления есть и у rxvt, который теперь из коробки требует 16 МБ. Терминал Xfce занимает 34 МБ, что в три раза больше, чем раньше, а вот GNOME Terminal требует всего 20 МБ. Конечно, все предыдущие тесты проводились на 32-битной архитектуре. На LCA 2012 Расти Рассел рассказал, что есть множество более тонких причин, которые могут объяснить рост потребления памяти. При всем этом сейчас мы живем во времена, когда у нас есть целые гигабайты памяти, так что как-нибудь справимся.

Тем не менее, я не могу избавиться от ощущения, что выделение большего количества памяти на такое фундаментальное ПО, как терминал, — это пустая трата ресурсов. Эти программы должны быть наименьшими из самых маленьких, должны быть способны работать на любой «коробке», даже обувной, если мы когда-нибудь придем к тому, что их надо будет оснащать Linux-системами (а вы знаете, что так оно и будет). Но с этими цифрами использование памяти станет в будущем проблемой в любой среде при запуске нескольких терминалов, кроме ситуации с несколькими самыми легкими и ограниченными в возможностях. Чтобы компенсировать это, GNOME Terminal, Konsole, urxvt, Terminator и Xfce Terminal имеют Daemon-режим, который позволяет управлять несколькими терминалами через один процесс, что ограничивает их потребление памяти.

В ходе своих тестов я пришел к еще одному неожиданному результату касательно дискового чтения-записи: я ожидал вообще ничего тут не увидеть, но оказалось, что некоторые терминалы записывают самые объемные данные на диск. Так, библиотека VTE фактически держит на диске буфер скролла (эта особенность была замечена еще в 2010 году, и это происходит до сих пор). Но в отличие от старых реализация, сейчас, по крайне мере, эти данные зашифрованы с помощью AES256 GCM (с версии 0.39.2). Но возникает резонный вопрос, что же такого особенного в библиотеке VTE, что она требует такого нестандартного подхода к реализации…

Заключение

В первой части статьи мы обнаружили, что терминалы на основе VTE имеют хороший набор функций, но теперь мы видим, что это связано с некоторыми затратами на обеспечение их производительности. Сейчас память не является проблемой, потому что всеми VTE-терминалы можно управлять через Daemon-процесс, который ограничивает их аппетит. Тем не менее, старые системы, имеющие физические ограничения по количеству оперативной памяти и буфера ядра, могут по-прежнему нуждаться в более ранних версиях терминалов, так как они потребляют значительно меньше ресурсов. Хотя терминалы VTE показали себя хорошо в тестах на пропускную способность (прокрутка), их задержка отображения данных на дисплее выше установленного порога в руководстве пользователя GNOME. Вероятно, разработчикам VTE стоит это учесть. Если принять в расчет то, что даже для начинающих пользователей Linux встреча с терминалом неизбежна, они могут сделать его более дружелюбным по отношению к юзеру. Для опытных гиков переход с терминала по умолчанию может означать даже снижение нагрузки на зрение и возможность избежать профессиональных травм и заболеваний в будущем из-за продолжительных рабочих сессий. К сожалению, только старые xterm и mlterm подводят нас к волшебному порогу пинга в 10 миллисекунд, что для многих неприемлемо.

Источник

Читайте также:  Скайрим bodyslide как пользоваться
Онлайн портал