Ламповый Linux-like терминал в Windows
Для меня, автоматизатора-линуксоида, использвание Windows на основной рабочей станции первое время было просто болью и страданием. Но с этим я ничего поделать не мог: корпоративные стандарты и софт, кторый работает только на Windows. В попытке найти золотую середину, я прошёл три стадии. Сначала я только изредка переключался на винду по необходимости. Затем виртуалка на virtualbox-е с X-server-ом. После этого захотелось хоть чуть-чуть того консольного комфорта, который был на линуксе (я использовал Terminator в качестве основного терминала).
После яростного гугления и установки всех эмуляторов терминала под Windows, которые только удалось найти, оказалось, что нет ни одного хоть немного подходящего мне. А хотелось, чтобы вёл себя терминал максимально приближенно к линуксовым вариантам. Например, естественно нужны табы, сплит, выделение текста с прокруткой (когда нужно выделить больше чем один экран), копирование текста в буфер сразу при выделении и т.д.
В итоге я получил «комбайн» как на скриншоте ниже. О том, как это настроить, можно узнать, заглянув под кат.
До того, как получить результат, я даже всерьёз задумался о своём велосипеде (портирование, написание своего). Но лень и здравый смысл взяли свое…
В процессе поиска хорошего терминала, я наткнулся на хабра-топик: Альтернативный терминал для Windows. ConEmu — приложение действительно классное, но оно не для тех, кто долгое время использовал линукс-терминалы. Затем я наткнулся на Mintty (был установлен вместе с Cygwin). Программка отличная, ведёт себя максимально близко к таким терминалам как Gnome-terminal и Terminator, но нет табов.
Оказалось, что вышеупомянутый ConEmu умеет запускать GUI-приложения внутри своих табов! И тут искра надежды начала разгораться… Но хватит лирики, пора приступить к делу!
Установка нужных программ
ConEmu ставим отсюда: code.google.com/p/conemu-maximus5
Mintty я ставил вместе с Cygwin: cygwin.com/install.html
Настройка
В ConEmu идём в Settings->Tasks и, нажимая плюсик, добавляем нужные таски как на скриншоте:
В нашем случае это:
Имя таска | Команда |
cygwin | C:\Cygwin\bin\mintty.exe |
ssh_local | C:\Cygwin\bin\mintty.exe D:\Work\VMssh.bat |
cmd | cmd |
powershell | powershell |
Осторожно! Адский CMD!
@ECHO OFF SET VMNAME=xubuntu CALL D:\Work\VMstart.bat %VMNAME% ssh user@localhost
Вызывает скрипт старта виртуалки, VMNAME заменить на нужное.
@ECHO OFF SET VMNAME="%1" SET isVMRun= IF [%1] == [] ( echo Empty parameter VMNAME. Usage: %0 [name of vm] EXIT /B 1 ) FOR /F %%i IN ('VBoxManage list runningvms') DO SET isVMRun=%%i IF NOT "%isVMRun%" == "%VMNAME%" ( Vboxmanage startvm %VMNAME% --type headless )
Проверяет запущена ли виртуалка и если нет, то запускает её. Таким образом, мне не нужно помнить запущена ли виртуалка, запускать отдельно VirtualBox и делать дополнительные клики.
Немного «свистелок»
ForegroundColour=208,208,208 BackgroundColour=28,28,28 CursorColour=255,175,0 IMECursorColour=128,224,160 Black=12,12,12 BoldBlack=10,10,10 Red=215,135,135 BoldRed=223,135,135 Green=175,215,135 BoldGreen=175,223,135 Yellow=247,247,175 BoldYellow=255,255,175 Blue=135,175,215 BoldBlue=135,175,223 Magenta=215,175,215 BoldMagenta=223,175,223 Cyan=175,215,215 BoldCyan=175,223,223 White=230,230,230 BoldWhite=238,238,238 BoldAsFont=no Font=Consolas FontHeight=11 CursorType=block FontSmoothing=full Term=xterm-256color Scrollbar=none Locale= Charset=
Общая рабочая папка (файлы доступны на винде и на виртуалке) — нужно настроить в VirualBox-e следующим образом:
Также нужно прописать в fstab на виртуалке, чтобы автоматиечски монтировалось при старте.
Заключение
В результате я получил терминал, в котором хоть как-то можно жить. Я ни в коем случае не претендую на исключительность этого решения, но надеюсь кому-то пригодится. Отдельный плюс такого решения — общий текстовый буфер и общие папки. Таким образом, работаем с линукс-виртуалкой так же как и с остальными табами в терминале.
Для тех, кому не нужны GUI-табы и кто использует tmux, есть статья моего коллеги примерно на ту же больную тему: habrahabr.ru/post/196128.
Особая благодарность хабраюзеру Maximus5 за отличный Windows терминал ConEmu!
About ConEmu
ConEmu-Maximus5 aims to be handy, comprehensive, fast and reliable terminal window where you may host any console application developed either for WinAPI (cmd, powershell, far) or Unix PTY (cygwin, msys, wsl bash).
As Windows console window enhancement (local terminal emulator), ConEmu presents multiple consoles and simple GUI applications (like PuTTY for example) as one customizable tabbed GUI window with various features.
Moreover, due to deep integration, ConEmu is the best companion for Far Manager (FAR in Wikipedia), my favorite shell replacement.
ConEmu is an active project, open to suggestions.
Take a look at screencasts about ConEmu.
Disclaimer
ConEmu is not a shell, so it does not provide «shell features» like remote access, tab-completion, command history and others. ConEmu is an advanced console window where you can run any shell of your choice. However, some of these features have been placed in the RoadMap. You may also try Clink for bash-style completion in cmd.exe and PSReadLine or PowerTab in powershell.exe.
Or even choose bash or any other unix-like shell from cygwin, git-for-windows, msys2, mingw and others.
Documentation and links
Description
ConEmu starts a console program in a hidden console window, and provides an alternative customizable GUI window with various features:
- smooth and friendly window resizing;
- tabs for editors, viewers, panels and consoles;
- run simple GUI apps like PuTTY in tabs;
- Windows 7 Jump Lists and Progress on Taskbar buttons;
- easily run old DOS applications (games) in Windows 7 or 64-bit OS;
- thumbnails and tiles in Far Manager;
- normal, maximized and full screen graphical window modes;
- window font anti-aliasing: standard, ClearType, disabled;
- window fonts: family, height, width, bold, italic, etc.;
- Chinese versions of Windows supported;
- using normal/bold/italic fonts for different parts of the console simultaneously;
- using 24-bit colors in Far Manager 3.x;
- ANSI X3.64 and Xterm 256 colors;
- cursor: standard console (horizontal) or GUI (vertical);
- optional per-application settings (e.g. palette);
- vertical console buffer scrolling using the keyboard (BufferHeight mode);
- show full output (1K+ lines) of last command in Far Manager’s editor/viewer;
- customizable Far Manager right click behaviour (long click opens context menu);
- drag and drop (explorer style) of files and folders in Far Manager;
- limited support of BDF fonts;
- user friendly text and block selection;
- transparency and desktop mode;
- customizable starting tabs;
- configurable and clickable status bar;
- and more, and more. take a look at Documentation, Settings pages and What’s New.
All settings are read from the registry or ConEmu.xml file (multiple named configurations are supported), after which the command line parameters are applied. Parameters /Config and /BufferHeight can only be specified on the command line. Most settings are configured using the Settings dialog, not from the command line.
Requirements
Installation
In general, ConEmu installation is easy. Just unpack or install to any folder and run `ConEmu.exe`.
For more information about installation options refer to Installation page.
Топ-8 эмуляторов терминала
Терминал для Linux. Главная особенность — выпадающее по хоткею меню сверху экрана, как в легендарной игре Quake, отсюда и похожее название. Множество тем и цветовых решений, настройка скриптов и прозрачности, работа с именами и порядком вкладок, открытие выделенного в терминале файла в текстовом редакторе и прочие приятные мелочи.
- Iterm2
Прекрасная альтернатива стандартному клиенту терминалу на MacOS. Огромная возможность кастомизации, чего нет в стандартном приложении. Например, выпадающее сверху меню, разделение экрана на множество отдельных окон, удобное окно поиска, возврат к ранее исчезнувшему с экрана тексту и даже свой менеджер паролей.
- Secure Shell App
Расширение для Chrome, позволяющее подключаться по SSH прямо из браузера, набрав в адресной строке IP нужного сервера. Удобно, если для работы вам нужен только браузер.
- KonsoleиGnome-terminal
Стандартные и тесно интегрированные в графическую среду KDE и Gnome терминалы, что позволяет иметь доступ к терминалу прямо из файлового менеджера. Как правило, их базовых функций и настроек вполне достаточно для работы с командной строкой.
- Terminator
Кроссплатформенный клиент для MacOS и Linux. Подойдёт, если требуется группировать сразу несколько окон, собирая своеобразный «тетрис» на экране. И для каждой можно настроить не только свой цвет, шрифт и прочие подобные мелочи, но и отправить нужную команду сразу в несколько вкладок.
- Cool Retro Terminal
Если предыдущие варианты кажутся вам скучными, или вы любите серию игр Fallout, то попробуйте эмулятор старого телевизора. Настройки ограничиваются внешним видом: выбором и импортом темы оформления. На постоянной основе его вряд ли получится использовать, однако удивлять коллег, заглядывающий вам за плечо, — вполне.
- eDEX-UI
Еще один вариант для любителей необычного — консоль (даже целая панель управления) в стиле TRON. Доступен для всех операционных систем. Мониторит ресурсы и сетевую нагрузку в реальном времени. Осторожно, потребляет много ресурсов и рабочего пространства.
- Hyper
Легкий и простой терминал на HTML/CSS/JS, настраивается исключительно через текстовый конфиг, наличие множества плагинов. Поддерживается на Linux/Windows/MacOS. Придётся по душе любителям простоты и элегантности. Не путать со старым HyperTerminal.