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

Всё написанное ниже стоит рассматривать через призму “я линуксоид, который уйму времени проводит в консоли”. Если для Вас это не верно, то мой опыт вряд ли окажется полезным.

Tmux

Первым на сцену выходит terminal multiplexer. Я давно уже слышал о великом противостоянии Screen vs. Tmux, и всё хотел попробовать их в деле и определиться со своей стороной. Когда же наконец решился, выбор оказался до безумного прост.

Оказалось, что хоткеи tmux запоминаются очень быстро и легко. По удобству использования он влёгкую обделывает обычный терминал. Кроме того, порой дико выручает сохранение сессии - фича, знакомая всем пользователям подобного софта.

Но ещё более приятным оказалось возможность открывать несколько терминалов в одном табе. Если они связаны единой задачей, то такой способ размещения оказывается наиболее естественным и удобным. Вся необходимая информация оказывается на одном экране. В каком-нибудь gnome terminal в этом случае всё равно пришлось бы скакать между разными вкладками (и ещё всё время вспоминать, на какую конкретно надо перейти).

Не обошлось и без маленькой ложки дёгтя. Мои пальцы теперь стали иногда вызывать хоткеи tmux в vim. Неприятный сайд-эффект, но, думаю, я с ним разберусь.

t

Я использую несколько разных таск-трекеров, каждый для своей цели. Официальный рабочий инструмент - это Redmine, главный личный инструмент - это Google Tasks. Но они оказываются слишком громоздкими, когда ты разбил большую задачу на много мелких частей и пытаешься быстро добавлять и удалять их в ходе работы.

Покопавшись в памяти, я внезапно нашёл решение и опробовал его в деле.

Всё очень просто и удобно. Пришла мысль в голову - тут же записал её, не отрываясь от консоли: t какая-то задача. Самое крутое в том, что не надо ничего дополнительно открывать, ничего дополнительно запускать, не надо думать, куда отправится задача. Ты её просто записал, и она просто сохранилась.

Затем смотрим список всех задач, выбираем ровно одну и доводим её до конца. Вычёркиваем из списка и выбираем новую. В процессе работы возникает важная мысль - просто кидаем её в t. Разберёмся потом. В общем, стандартный GTD-процесс :)

Одной из фич t является то, что список задач никак не упорядочен. Честно говоря, иногда хочется чего-то более упорядоченного. Например, во время рефакторинга кода с применением Mikado Method, когда все цели зависят друг от друга. Было бы круто найти (или, на крайний случай, сделать) что-то подобное для mikado. Будет удобно.

ssh-agent

На эту тему никаких твитов не было :)

Всё довольно тривиально. Если Вы часто работаете с ssh, то знаете, что он часто просит пароль. Если использовать ключи, то они тоже просят пароль. При частом общении с ssh (например, во время активной синхронизации с внешними серверами в git) это быстро становится довольно утомительным. ssh-agent - это один из механизмов, которые позволяют ввести пароль лишь однажды за сессию, а затем поручить этот процесс машине.

Конечно, при работе под Gnome или KDE есть свои графические аналоги ssh-agent, которые решают ту же задачу. Но ведь на них не заканчивается список оконных менеджеров, верно? На рабочем компьютере я сейчас использую Openbox, потому что он работает быстрее и почти не сношает мозг, в отличие от. Поэтому ssh-agent пришёлся мне вполне ко двору.

В общем, просто оставлю здесь мануал по этой полезной утилите.

Послесловие

Описывая все эти инструменты, я чувствовал себя в некотором роде слоупоком. В самом деле, все они уже достаточно давно существуют и довольно широко известны (за исключением t, пожалуй). С другой стороны, для кого-то другого эта информация может оказаться новой и (скромно надеюсь) полезной. На пути к совершенству много шагов, и каждый из них важен. Я стал чуть более продуктивен с tmux, чуть более организован с t и испытываю меньше боли в пальцах с ssh-agent. Надеюсь, эта информация о них послужат кому-то ещё.