Видео ролики бесплатно онлайн

Смотреть русское с разговорами видео

Официальный сайт osinform 24/7/365

Смотреть видео бесплатно

settler 19.11.2010 21:02

Переводыtmux - убийца GNU Screen?

Оригинал
Мультиплексоры терминала всегда были большим подспорьем для 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
hardstatus alwayslastline
hardstatus string "%{.bW}%-w%{.rW}%n %t%{-}%+w %=%{..G} %H %{..Y} %m/%d %C%a "


Долгое время пользователи 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.



Тэги: screen tmux переводы
+ 19 -
Похожие Поделиться

f_evgeny 19.11.2010 21:30 #
+ 2 -
Давно пользуюсь screen. Ужасы во многом преувеличены, однако возможно овчинка стоит выделки, нужно срочно попробовать.
time2die 19.11.2010 21:48 #
+ 1 -
задумался о переходе ради такого
bosha 19.11.2010 23:47 #
+ 1 -
Поверьте, стоит. Я был ярым фанатом screen пока не попробовал tmux. Сейчас на tmux'е и назад на screen не тянет. Единственное что смущает, так это то, что в debian stable его пока нет. Приходится либо самому собирать, либо подключать testing и ставить оттуда.
Scrill 19.11.2010 23:54 #
+ 0 -
Что подразумевается под словами "ярый фанат"?
bosha 19.11.2010 23:55 #
+ 0 -
То и значит.
bosha 19.11.2010 23:35 #
+ 4 -
Я зачем изобретать велосипед^Wписать то, что уже давно написано. Например я в блоге давно и очень подробно всё описал. Причём описал на мой взгляд очень подробно.
Zereal 20.11.2010 00:06 #
+ 0 -
не читала твой блог раньше, действительно, очень подробно.
bosha 20.11.2010 00:17 #
+ 0 -
Рад что пришлось по душе :)
dr_magnus 20.11.2010 01:41 #
+ 0 -
вот-вот! я тоже про тебя вспомнил :-)
ну и еще ссылочка (ага, я себя немного под шумок пропиарю :-)
Scrill 19.11.2010 23:40 #
+ 5 -
Спасибо, узнал что у screen'а есть конфиг :)
dr_lo 20.11.2010 00:48 #
+ 4 -
XD you made my day!!! спасибо
wind1r 20.11.2010 01:40 #
+ 0 -
Да, tmux не плох, но у меня он глючит. В чём проблема так и не понял.
=Беда
kstep 20.11.2010 03:11 #
+ 0 -
Видел вроде такое и под screen-ом. Похоже на некорректно установленную переменную TERM, попробуй с ней поиграться.
dr_lo 20.11.2010 04:42 #
+ 1 -
да, у меня таже проблема была под скрином, пока в .screenrc не прописал:
term rxvt-unicode
имя терминала можно узнать потыкав командой
echo $TERM в чистую консоль и tmux/screen
dr_lo 20.11.2010 09:25 #
+ 1 -
в tmux это не прокатит. в мане явно прописано, что $TERM должен быть "screen" или его производные.
у меня wyrd ведет себя неадекватно в tmux'e. не красиво =( и что делать хз
wind1r 20.11.2010 16:28 #
+ 0 -
Попробовал, в .tmux.conf указать - не помогло.
wind1r 20.11.2010 16:58 #
+ 0 -
Хотя да, вы были правы. В .zshrc у меня было прописанно xterm-color256, оставил просто color - tmux заработал) Спасибо за наводку.
dront78 20.11.2010 12:55 #
+ 0 -
гоняю xpra - как пишут - аналог screen только для X. пока нравится. есть в AUR, для остальных http://partiwm.org
muhas 22.11.2010 09:49 #
+ 0 -
описал бы - а то заинтересовал...

ради вертикалсплита в скрине поставил скрин из гита...

пока особых приемуществ у tmux не заметил, конфиги схожи - функционал тоже... но попробывать стоит в любом случае
dront78 22.11.2010 15:04 #
+ 0 -
пока из глюков - нулевые размеры экрана. xterm свернутый в 1 пиксель ;) погоняю еще
yuretsz 21.11.2010 00:18 #
+ 0 -
Вы мне только скажите. Оно будет хранить мою bash_history? Скрин херит ее постоянно.
dr_lo 21.11.2010 03:39 #
+ 0 -
узнать наверняка сможешь только поставив tmux
blackraven 23.11.2010 12:34 #
+ 0 -
попробуйте zsh :) Он точно прекрасно работает с историей из нескольких сеансов, в том числе в скрине.
Iopbabay 21.11.2010 19:24 #
+ 0 -
Да, tmux понравился, но остаюсь пока на screen. C tmux обнаружились две проблемы.
1.Он медленнее screen, что заметно на слабой линии.
2.У него нет промотки терминала колесом мыши. Вернее она есть, но ее надо включать комбинацией клавиш - неудобно.
Если бы особенно не вторая проблема, то во всем остальном tmux понравился больше screen.
А то делаешь "ps aux" в терминале, а чтобы отмотать результат, надо еще и режим копирования включить.
f_evgeny 22.11.2010 10:09 #
+ 0 -
Кстати о птичках, в screen, который идет в Ubuntu, по крайней мере в 9.10, есть вертикальное деление экрана (Ctr-A |)
muhas 22.11.2010 10:44 #
+ 0 -
да, там с патчем...


кстати, тмуксогуру - подскажите как сделать в tmux в конфиге что бы при старте делился он на пару не очень равных регионов, аля как в скринеsplit
resize +4
screen
focus
screen
focus

а то просто прописав split-window -v в конфиге и при старте тмукс начинает ругаться...

ну и что-нить аля -RD скриновского есть? а то к той же сессии подключатся когда она одна и фиг знает с каким именем как-то неудобно...

попробую законфигурять, а потом заюзаю на пару дней взамен скрина, авось и профиты какие подороге замечу)
wiz 22.11.2010 11:26 #
+ 2 -
Приятная штука. Для меня скорее альтернатива не screen, а terminator.
dismay 24.11.2010 03:30 #
+ 0 -
Жаль только что не умеет писать лог как screen (C-a H), иногда очень выручает.
По ощущениям работает шустрее screen'a.
Iopbabay 25.11.2010 18:37 #
+ 1 -
Отвечу сам себе. Нашел как сделать в tmux прокрутку в терминале колесом мыши.
set -g terminal-overrides 'xterm*:smcup@:rmcup@'
Мигрировал на tmux:)
kstep 26.11.2010 22:30 #
+ 0 -
Огромное тебе человеческое спасибо!

Смотреть видео онлайн

Онлайн видео бесплатно


Смотреть русское с разговорами видео

Online video HD

Видео скачать на телефон

Русские фильмы бесплатно

Full HD video online

Смотреть видео онлайн

Смотреть HD видео бесплатно

School смотреть онлайн