Окружение, опережающее мысль

desktopЕсли эффективной работе в cli/bash/vim посвящены сотни статей, то теме организации рабочего окружения сисадмина — едва ли несколько штук. Чаще всего это скриншоты какого-нибудь Enlightenment с 1 прозрачным терминалом, часам, календарем, 15 виджетами загрузки CPU и голой анимешной бабой на фоне. Подходит для фильма «Хакеры», не подходит для работы. Нам требуется, чтобы терминал появлялся еще до того, как мы об этом подумали, выполнял свою работу и исчезал бесследно до следующего такта.

Disclaimer

Предполагается, что вы уже лет пять работаете админом/devops'ом и умеете находить ответы в гугле. Моя задача — задать нужные вопросы. Примеры реализации будут даны для Windows. Альтернативы для *nix-образных систем предлагаю читателям, как домашнее задание.

Авторизация

imageВо-первых, вся авторизация должна быть по ключу. Не видел ничего более неуклюжего, чем вбивание хоста по памяти каждый раз, после чего ввод логина и копирование пароля из специального секретного файла passwords.txt на десктопе. Ключ (или ключи, если вы сохраняете хорошие отношения с работодателями) должен быть загружен в агента. Ключ, само собой, должен быть запаролен. Ведь он, наверняка, лежит в My Documents. А они бекапятся в какой-нибуть сторадж Dropbox/Wuala/ownCloud. А этот сторадж наверняка подключен в любимом мобильнике с запоминанием пароля. Потерял мобильник — ходи по всем всем всем хостам, где бывал твой ключ, и меняй. Звучит как филиал ада, не правда ли?
Реализация: установите PuTTY. Сгенерите и поместите свой .ppk в папку Start-up. Pageant сделает остальное.

Быстрый доступ

imageВо-вторых, выбор нужного хоста должен занимать не более 700мс. Многие догадываются создать для всех хостов сессии в Pageant, но после все равно ищут мышкой крошечную иконку в трее, выбирают Saved Sessions, ищут в огромном списке нужное имя… Пропущу очевидный пункт о том, что вся работа должна вестись с клавиатуры. Ну разве что ленивое листание веб-страниц, используя mouse gestures, но это не наш случай. Требуется доступ к списку хостов по shortcut'у с возможностью поиска.

Реализация: Launchy (freeware) + PuTTY plugin. У меня висит на Alt+Space. Кроме отличного поиска по файлам и командам, дает возможность поиска по сессиям Pageant'а, угадывая имена по нескольким буквам. Допустим, если у вас есть сессии:
  • Client1_Host1
  • Client1_Host2
  • Client2_Host1
  • Client2_Host2

вам достаточно ввести «c2h1», чтобы попасть на Client1_Host2 (в данном искусственном случае хватит даже просто «21»). Вы даже можете ввести «с1» и выбрать нужную машину из трех — Launchy запомнит ваш выбор и в следующий раз не будет задавать вопросов.

Менеджер окон

imageВ-третьих, окна должны оптимально располагаться на экране, не наползать друг на друга и менять размеры при ресайзе соседей (docking). Я ценю (почти без сарказма) попытку Windows реализовать тайлинг по Win-Arrow. Но при современных разрешениях 24″+ мониторов два гигантских полотнища терминалов — явный overkill. Да и двух окон обычно мало — нужно 2-3 терминала, браузер с маном, почта или скайп — кому как.

Реализация: Plumb (for personal use). Автоматически размещает окна согласно заданной вами сетке. У меня экран поделен на 5 частей — слева полная треть экрана отведена наиболее активному окну, остальное место поделено 2x2 под остальные фоновые задачи (tail -f, watch -d, mtr). Мне не нужно мышкой перетаскивать новые окна с места на место, освобождая место среди других окон — 5 последних активных окон у меня на экране.

Что это нам дает?

Теперь рассмотрим выдуманную ситуацию из реальной жизни, в которой станут ясны все бонусы этой системы. Вы читаете Хабр, к вам подходит коллега-программист и спрашивает: «Паша, у Client1 на первом хосте уже завершился тот очень длинный запрос, который я составил без малейшего знания внутренней архитектуры базы, старательно игнорируя индексы и используя наиболее плохо оптимизирующиеся операторы?».
Вы кладете пальцы на клавиатуру и даете первый аккорд: Alt-Space c1h1 ENTER. Готов поспорить, что люди даже не заметят, что произошло. Просто вы коснулись клавиш, и в ту же секунду окно с Хабром отодвинулось в сторону, а его место занял открытый терминал Client1_Host1. Для человека, привыкшего всю жизнь в лучшем случае искать нужный таб в длинном списке открытых сессий, это уже будет выглядеть, как магия.

В терминале вы выполняете что-то вроде «pgrep -af long_query», видите, что процесс ещё висит и жмете Ctrl-D. Окно закрывается, и Хабр (предыдущее активное окно) возвращается на своё место. Вам не надо сворачивать терминал, думая о том, что вы ещё будете работать с этим хостом — вы знаете, что открыть новое вам быстрее, чем искать старое Alt-Tab'ом или выцеливать мышкой в taskbar'е.

Через 2 минуты коллега возвращается с тем же вопросом. На этот раз вы будете быстрее, чем привокзальный катала. Следите за руками. Alt-Space ENTER UP ENTER Ctrl-D. Что это было — Fatality? Launchy помнит вашу последнюю команду, вам даже не придется переводить взгляд на его окно. Открыли терминал, вызвали предыдущую команду в шелле, увидели ненулевой результат и закрыли окно.

Вот он приходит в третий раз, и, чтобы отвязаться от него, вы запускаете в свежеоткрытом терминале «watch -d !!» и перетаскиваете окно в угол. Хабр снова занимает основную часть десктопа, а watch в маленьком окне подсветит вам изменения в списке процессов, когда долгий запрос к базе завершится.

Это лишь одна часть учения о Быстрой Руке. Полностью оно состоит из следующих разделов:

1. Окружение, опережающее мысль;
2. Быстрый bash;
3. Unix-way в работе с файлами;
4. Vi(m), строгий, но справедливый.
Share post

Similar posts

AdBlock has stolen the banner, but banners are not teeth — they will be back

More
Ads

Comments 27

    +1
    Вам не надо сворачивать терминал, думая о том, что вы ещё будете работать с этим хостом — вы знаете, что открыть новое вам быстрее, чем искать старое Alt-Tab'ом или выцеливать мышкой в taskbar'е.

    Это в том случае, если время от начала операции до получения готового шелла не превышает пары секунд, а команда для проверки вводится быстро.

    Через 2 минуты коллега возвращается с тем же вопросом. На этот раз вы будете быстрее, чем привокзальный катала. Следите за руками. Alt-Space ENTER UP ENTER Ctrl-D. Что это было — Fatality? Launchy помнит вашу последнюю команду, вам даже не придется переводить взгляд на его окно. Открыли терминал, вызвали предыдущую команду в шелле, увидели ненулевой результат и закрыли окно.

    Это в том случае, если за эти две минуты не приходил другой коллега с просьбой «ребутни сервер три». Учитывая, что быстрые задачи вымываются из памяти так же быстро — рано или поздно это случится.
      0
      Быстрые задачи хранятся в .bash_history
      +9
      Для линукса просто — awesome wm
        +2
        Да и в принципе любой тайловый менеджер подойдёт :) i3 там, или XMonad.
          0
          i3 сильно поменял мою жизнь к лучшему :)
            +1
            Тайлинг сильно меняет людей. На меня даже знакомые стали по другому смотреть.
        +4
        Домашняя страница PuTTY здесь: http://www.chiark.greenend.org.uk/~sgtatham/putty/
        А вы это куда за ним посылаете?
          –1
          Ninite. Бесконечно удобный установщик/обновляльщик софта, который не задаёт вопросов и одновременно не ставит никаких toolbar'ов. Выбираю, что мне надо, скачивается веб-инсталлер, который можно запускать, например, каждый месяц — он проверит версии текущего софта, если надо, скачает инсталляции новых версий и поставит полностью автоматически бесплатно без регистрации и смс начни зарабатывать сегодня

          Этот же веб-инсталлер (~300Kb) можно иметь с собой на флешке/скачивать с вашего сайта, чтобы на новом рабочем месте быстро разворачивать привычное окружение.
            +1
            Кто эти люди и почему им можно доверять? Кто гарантирует, что там нет троянов и закладок?
              0
              У вас недостаточный уровень паранойи. А кто гарантирует, что www.chiark.greenend.org.uk не ресолвится вашим локальным NS в фишинговый IP? DNSSEC там нет.
              Что насчет сборок, которые лежат на каком-то мутном the.earth.li? Бинарников, которые собраны непонятно кем?
                +3
                Хакнуть автора программы, конечно, теоретически возможно. Но это — задача, над которой надо хотя бы немного подумать, «репу почесать».
                Совсем другое дело — создать красивенький сайт, на котором совершенно нахаляву можно скачать софта в красивом фантике. Это может быть такой ненапрягающий лохотрон, «как отнять у ребёнка конфету».
          +14
          Что ж Вы такой крутой сисадмин, с кучей хостов в подчинении, доступ к которым требуется за меньше чем секунду, и под виндой сидите-то?
          P.S. Переходите на мак :))))
            0
            Есть некоторые «Enterprise-level solutions» ©, которые вполне себе вертятся на линуксовых серверах, но некоторые операции с ними можно выполнять только из виндового приложения. Да и вообще, если винда привычней и в ней нормально выполняются все необходимые по работе вещи — то зачем что-то другое?
              0
              Да, я сам с Citrix борюсь.
                +5
                Для enterprise solitions из Индии можно использовать виртуальную машину с Windows.

                Насчет привычней — ну, не знаю. Привыкнуть можно ко всему, но нормальный шелл в линуксе из коробки, нормальный tiling WM — на расстоянии установки одного пакета, для быстрого доступа к хостам достаточно .ssh/config (который при достижении некоторого критического размера можно генеерировать из более удобного представления одной строкой на awk/perl) и автокомплита (просто надо выработать систему алиасов). На винде это все требует нечеловеческих усилий — она разработана не для этого.
                  0
                  Ну мы же взрослые люди. Предлагаю не проваливаться в холивар, а сойтись на том, что на вкус и цвет фломастеры разные. Кому-то для его задач удобней линукс, кому-то винда. Кто-то предпочитает светлое пиво, кто-то темное. Мне проще иметь винду и Putty+Pagent+winSCP и не искать аналогов для того виндового софта, с которым мне очень удобно. Вам — наоборот. Так мир устроен, это нормально :)
                    +4
                    Не, никакого холивара. Просто все это очень смахивает на инструкцию, как из винды с помощью бубна, молотка и такой-то матери сделать linux ;)
                      0
                      Сделать не линукс, а удобно сопряженную с линуксовыми серверами винду. Отличная штука в некоторых случаях, кстати.
                    0
                    Я специально отделял задачи от конкретных реализаций. Я знаю, как решить эти задачи по Win — я описал, как. Вы знаете, как это сделать под Linux — ответили в комментарии, а то и написали отдельный пост.

                    Кстати, говоря об автокомплите — как сделать такую же магию, как у Launchy? У меня в лучшем случае (для примера client1_host2) это было «c TAB 2 TAB 1»
              +1
              Проблема всех таких советов — в необходимости настроенного окружения и то, что к нему сильно привыкаешь. И садясь за чужой уже очень сложно работать. Но всё зависит от рабочего места — если есть время настроить и затем будем длительно работать, то почему нет?

              PS: Как простейший пример — раскладка Дворака, пробовал пользоваться, но садясь за чужой компьютер начинал сильно тормозить в плане набора.

              PS2: Ещё один минус подобных утилит это то, что их гораздо меньше тестируют на всевозможные дыры и уязвимости и не везде их можно просто взять и поставить.
                +3
                А я на Menu Key прибиндил Guake с Byobu и все. Готово.
                image
                  –1
                  Или его аналог Yakuake для kde. Выглядит мне кажется по приятнее чем Guake.
                    0
                    Единственное, что видно от Guake на скрине — это нижняя граница его окна :)
                    Еще не придумал, как ее убрать.
                      0
                      Да, да. Именно она меня всегда и напрягала.
                      Yakuake
                  0
                  И когда в «Saved Sessions» Putty появятся группы и симлинки?
                  Я вот попробовал штук 5 плагинов и все не то :(
                    +1
                    ИМХО это явный оверкил. Пользуюсь SecureCRT. Да он платный, но действительно удобнее putty (стоит купить).
                    Есть список хостов по папкам, скрипты и хоткеи на которые можно повесить скрипты. Своего рода макросы из FAR. Вкладки вместо кучи окон (особенно удобно когда открыто 10-20 узлов, и нужно проверить всю трассу). Есть «чат» когда команда отправляется всем окнам сразу. иногда и такое нужно.

                    Про пространство: Как выше написал вкладки вместо окон уже занимают много меньше места. Делаешь окно поверх всех, и браузер на заднем фоне с мануалами виден.

                    Only users with full accounts can post comments. Log in, please.