Переводы — tmux - убийца GNU Screen?
Оригинал
Мультиплексоры терминала всегда были большим подспорьем для Unix- и Linux администраторов. Благодаря мультиплексорам можно начинать долгосрочные задачи на удаленной машине, закрывать SSH сессию на этой машине, подключиться к машине вновь и наблюдать за выполнением задачи или проверять результат выполнения. С мультиплексором админ может запустить несколько терминальных сессиий в одном общем терминале, а это очень удобно для удаленного администрирования. Мультиплексор используется различными способами, и, иногда, он совершенно незаменим.
Без сомнений, самый известный терминальный мультиплексор — это GNU Screen. Фактически, миллионы запускают его каждый день, даже не подозревая о термине "терминальный мультиплексор" подобно тому, как пользователи Microsoft Windows не знакомы с термином "операционная система". GNU Screen используется уже довольно давно, и его название стало синонимом самой концепции терминального мультиплексора.
Но времена меняются. Сейчас существует новое приложение — tmux, и оно начинает пользоваться популярностью в мире программ с открытым исходным кодом для Unix-подобных ОС. По отзывам, это лучший мультиплексор из когда-либо созданных.
GNU Screen — это типичный пример проблем, зачастую возникающих с приложениями проекта GNU. Исходный код некоторых из них (к коим относится и GNU Screen) обычно описывают как глючный и неподдерживаемый. GNU Screen известен тем, что это мертвый проект с кучей багов и неструктурным кодом, который, по мнению многих,не имеет смысла приводить в порядок.
Такое положение мешает улучшению, продвижению или простому исправлению ошибок. Конечных пользователей смущает также бестолковый синтаксис конфига GNU Screen. Когда ты пользуешься программой каждый день, нетрудно изучить синтаксис конфигов и вносить нужные изменения. В случае с GNU Screen это копипаст чужого конфига из интернета, не понимая, почему и как он работает.
Вот пример конфигурации GNU Screen с сайта debian-administration.org:
Долгое время пользователи GNU Screen хотели функцию вертикального сплита. По умолчанию в GNU Screen есть горизонтальный сплит между двумя терминальными сессиями. Существует патч, добавляющий в GNU Screen вертикальный сплит, но этот патч, увы, не включен в официальный код — это еще одно подтверждение смерти проекта, если не официальной, то фактической. Ходили слухи о версии 4.1, которая должна была включить в себя необходимый функционал, именно ее планировали "скоро" выпустить. Однако планировали еще в 2007 году, а GNU Screen 4.1 так и не появился. Последняя версия (4.0.3) вышла в 2005г.
GNU Screen выпускается под лицензией GPL, то есть это приложение с открытым исходных кодом. Условия лицензии довольно суровы, так как GPL — это лицензия копилефт. Среди прочего, это означает, что проект OpenBSD не станет даже рассматривать включение такого приложения в систему. Конечно, есть и другие причины — например, отвратительное состояние кодовой базы GNU Screen.
В FAQ tmux перечисляются различные преимущества этого приложения:
1. четкая модель "клиент-сервер": каждое окно — это самостоятельная единица. Его можно одновременно прикрепить к нескольким сессиям и следить за ним с нескольких клиентов (терминалов), а также можно свободно перемещать между сессиями одного и того же сервера tmux.
2. Логичный, хорошо документированный командный интерфейс с одним и тем же синтаксисом, используемым интерактивно, клавиатурными сочетаниями, или же из терминала.
3. Удобное составление скриптов из терминала.
4. Несколько буферов вставки.
5. Выбор между vi- и emacs-подобными раскладками клавиатуры.
6. Возможность ограничивать размеры окна.
7. Более удобный синтаксис строки состояния, возможность отображения первой строки вывода определенной команды.
8.Простой, современный, легко расширяемый код под лицензией BSD.
В том же FAQ есть перечень функций GNU Sreen, которых нет в tmux:
1. Встроенная поддержка последовательной передачи данных и протокола telnet — это приведет к разбуханию и вряд ли будет добавлено в tmux.
2. Кросплатформеная поддержка, например, IRIX и HP-UX и других странных терминалов.
У tmux есть и другие преимущества перед GNU Screen. Например:
1. Строка состояния включена по умолчанию. Помните пример конфига для создания строки состояния в Gnu Screen? В tmux все проще — если строка состояния не нужна, ее легко можно отключить.
2. Вертикальный сплит — часть основного функционала. Он гораздо менее глючный и более мощный, нежели патч для вертикального сплита в GNU Screen. Фактически, для вертикального сплита в tmux созданы несколько предустановок, между которыми пользователь может легко переключаться.
3. tmux включен в OpenBSD по умолчанию, код приложения прошел тщательную проверку.
Тео де Радт, основатель и глава проекта OpenBSD был впечатлен безопасностью строения tmux:
Во время дискуссии, когда Тео делился своим мнением, лидер проекта tmux рассказал о преимуществах tmux:
1. Управление сессиями и окнами более гибкое. Можно произвольно связать окна разных сессий.
2. Сплит и расположение более мощные по сравнению с выпущенной версией screen, и мы намерены улучшать их дальше.
3. Лучшая поддержка UTF-8.
4. Код лучше. Не собираюсь притворяться, будто мой код идеален, но код screen просто нечитаем. Значит, если у кого-то появится идея добавить киллер-фичу, ее легко будет добавить и (как любезно указал Тео) легко проверить. Наша цель — не код из серии "лишь бы написать", так что, надеюсь, улучшения в tmux будут внедряться быстрее, чем в screen.
5. Набор команд легок в использовании и более единообразен. Хотя, конечно, и здесь есть свои сложности — так что исправления документации только приветствуются.
Алекс Александер описывает свой опыт перехода с GNU Screen на tmux c точки зрения пользователя Linux:
tmux так впечатлил Алекса, что он стал добавлять код с первых дней использования программы.
Конечно, если вам необходимо отделение от запущенного процесса, есть более легкие приложения (по сравнению с tmux или GNU Screen). Просто посмотрите на dtach или nohup, если вам больше ничего не нужно.
Оригинал (английский)
Переведено при помощи сервиса translated.by инициативной группой переводчиков welinux при участии пользователей Zereal, Shtsh, settler.
Мультиплексоры терминала всегда были большим подспорьем для Unix- и Linux администраторов. Благодаря мультиплексорам можно начинать долгосрочные задачи на удаленной машине, закрывать SSH сессию на этой машине, подключиться к машине вновь и наблюдать за выполнением задачи или проверять результат выполнения. С мультиплексором админ может запустить несколько терминальных сессиий в одном общем терминале, а это очень удобно для удаленного администрирования. Мультиплексор используется различными способами, и, иногда, он совершенно незаменим.
Без сомнений, самый известный терминальный мультиплексор — это GNU Screen. Фактически, миллионы запускают его каждый день, даже не подозревая о термине "терминальный мультиплексор" подобно тому, как пользователи Microsoft Windows не знакомы с термином "операционная система". GNU Screen используется уже довольно давно, и его название стало синонимом самой концепции терминального мультиплексора.
Но времена меняются. Сейчас существует новое приложение — tmux, и оно начинает пользоваться популярностью в мире программ с открытым исходным кодом для Unix-подобных ОС. По отзывам, это лучший мультиплексор из когда-либо созданных.
Основные проблемы GNU Screen
GNU Screen — это типичный пример проблем, зачастую возникающих с приложениями проекта GNU. Исходный код некоторых из них (к коим относится и GNU Screen) обычно описывают как глючный и неподдерживаемый. GNU Screen известен тем, что это мертвый проект с кучей багов и неструктурным кодом, который, по мнению многих,не имеет смысла приводить в порядок.
Такое положение мешает улучшению, продвижению или простому исправлению ошибок. Конечных пользователей смущает также бестолковый синтаксис конфига GNU Screen. Когда ты пользуешься программой каждый день, нетрудно изучить синтаксис конфигов и вносить нужные изменения. В случае с GNU Screen это копипаст чужого конфига из интернета, не понимая, почему и как он работает.
Вот пример конфигурации GNU Screen с сайта debian-administration.org:
1 2 3 |
hardstatus on |
Долгое время пользователи GNU Screen хотели функцию вертикального сплита. По умолчанию в GNU Screen есть горизонтальный сплит между двумя терминальными сессиями. Существует патч, добавляющий в GNU Screen вертикальный сплит, но этот патч, увы, не включен в официальный код — это еще одно подтверждение смерти проекта, если не официальной, то фактической. Ходили слухи о версии 4.1, которая должна была включить в себя необходимый функционал, именно ее планировали "скоро" выпустить. Однако планировали еще в 2007 году, а GNU Screen 4.1 так и не появился. Последняя версия (4.0.3) вышла в 2005г.
GNU Screen выпускается под лицензией GPL, то есть это приложение с открытым исходных кодом. Условия лицензии довольно суровы, так как GPL — это лицензия копилефт. Среди прочего, это означает, что проект OpenBSD не станет даже рассматривать включение такого приложения в систему. Конечно, есть и другие причины — например, отвратительное состояние кодовой базы GNU Screen.
tmux vs. GNU Screen
В FAQ tmux перечисляются различные преимущества этого приложения:
1. четкая модель "клиент-сервер": каждое окно — это самостоятельная единица. Его можно одновременно прикрепить к нескольким сессиям и следить за ним с нескольких клиентов (терминалов), а также можно свободно перемещать между сессиями одного и того же сервера tmux.
2. Логичный, хорошо документированный командный интерфейс с одним и тем же синтаксисом, используемым интерактивно, клавиатурными сочетаниями, или же из терминала.
3. Удобное составление скриптов из терминала.
4. Несколько буферов вставки.
5. Выбор между vi- и emacs-подобными раскладками клавиатуры.
6. Возможность ограничивать размеры окна.
7. Более удобный синтаксис строки состояния, возможность отображения первой строки вывода определенной команды.
8.Простой, современный, легко расширяемый код под лицензией BSD.
В том же FAQ есть перечень функций GNU Sreen, которых нет в tmux:
1. Встроенная поддержка последовательной передачи данных и протокола telnet — это приведет к разбуханию и вряд ли будет добавлено в tmux.
2. Кросплатформеная поддержка, например, IRIX и HP-UX и других странных терминалов.
У tmux есть и другие преимущества перед GNU Screen. Например:
1. Строка состояния включена по умолчанию. Помните пример конфига для создания строки состояния в Gnu Screen? В tmux все проще — если строка состояния не нужна, ее легко можно отключить.
2. Вертикальный сплит — часть основного функционала. Он гораздо менее глючный и более мощный, нежели патч для вертикального сплита в GNU Screen. Фактически, для вертикального сплита в tmux созданы несколько предустановок, между которыми пользователь может легко переключаться.
3. tmux включен в OpenBSD по умолчанию, код приложения прошел тщательную проверку.
Тео де Радт, основатель и глава проекта OpenBSD был впечатлен безопасностью строения tmux:
Я думаю, сложная проверка кода tmux была самым примечательным событием. За пару часов я нашел одну или две ошибочки с небольшими последствиями для безопасности.
В основную ветку его не включили из-за лицензии. Но код — высочайшего класса.
В основную ветку его не включили из-за лицензии. Но код — высочайшего класса.
Во время дискуссии, когда Тео делился своим мнением, лидер проекта tmux рассказал о преимуществах tmux:
1. Управление сессиями и окнами более гибкое. Можно произвольно связать окна разных сессий.
2. Сплит и расположение более мощные по сравнению с выпущенной версией screen, и мы намерены улучшать их дальше.
3. Лучшая поддержка UTF-8.
4. Код лучше. Не собираюсь притворяться, будто мой код идеален, но код screen просто нечитаем. Значит, если у кого-то появится идея добавить киллер-фичу, ее легко будет добавить и (как любезно указал Тео) легко проверить. Наша цель — не код из серии "лишь бы написать", так что, надеюсь, улучшения в tmux будут внедряться быстрее, чем в screen.
5. Набор команд легок в использовании и более единообразен. Хотя, конечно, и здесь есть свои сложности — так что исправления документации только приветствуются.
Алекс Александер описывает свой опыт перехода с GNU Screen на tmux c точки зрения пользователя Linux:
Простой конфиг, исчерпывающая документация и пара-тройка небольших изменений (то есть улучшенный, стабильный сплит окон), и tmux станет отличной альтернативой screen. Но самая большая разница — использование памяти. Стоило открыть несколько окон в screen, и они требовали 40-50 mb памяти. В аналогичных условиях tmux едва потребляет 10 mb.
tmux так впечатлил Алекса, что он стал добавлять код с первых дней использования программы.
Легкие альтернативы
Конечно, если вам необходимо отделение от запущенного процесса, есть более легкие приложения (по сравнению с tmux или GNU Screen). Просто посмотрите на dtach или nohup, если вам больше ничего не нужно.
Оригинал (английский)
Переведено при помощи сервиса translated.by инициативной группой переводчиков welinux при участии пользователей Zereal, Shtsh, settler.