Персональный совет для специалистов по продуктивным данным
Как повысить производительность в 10 раз с помощью Tmux
Для специалистов по данным и инженеров-программистов
Постановка задачи
О нет, я закрыл свой терминал и потерял прогресс для запуска ‹модель ML›
О нет, я потерял свои команды для развертывания скриптов
Хотелось бы, чтобы были простые способы отслеживать мои пробежки в нескольких проектах данных
Добро пожаловать в Tmux
Что такое Tmux?
Tmux означает терминальный мультиплексор. Tmux похож на экран GNU для размещения нескольких терминалов (в сеансе) и отслеживания текущей или предыдущей истории запуска скриптов. Все внутри плиток оконных панелей в среде командной строки (CLI).
Tmux повысит вашу продуктивность в 10 раз, потому что:
- Аудит: управление историей сценариев для нескольких запущенных проектов.
- Постоянство: общий макет, который вы всегда можете использовать, чтобы запомнить запуск ваших скриптов даже после того, как вы случайно закроете терминал.
- Мультихост: легко переключайтесь между несколькими программами в одном терминале, затем отсоединяйте и снова присоединяйте их. Теперь вы можете подключаться и переходить к одновременным сеансам SSH и отслеживать работу вашего сервера ML.
Вот гифка, которая расскажет, что tmux может для вас сделать.
Обратите внимание, что за один сеанс я выполняю несколько операций:
- Разделить мой сеанс на несколько панелей в tmux
- запустить vmstat на одной панели
- Запустить netstat на одной панели
- Отредактируйте new-file.txt, чтобы сохранить результаты netstat
- Перейдите на отдельную панель сеанса и просмотрите new-file.txt
Обратите внимание, что без tmux вам нужно запустить задачу в одном представлении терминала и потерять прогресс, если вы закроете терминал.
С tmux все можно сделать быстро и без ошибок.
Перейдем к tmux!
Давайте установим Tmux
Tmux размещен на Github как открытый исходный код (это означает, что он бесплатный!). Установить tmux действительно просто. Просто запустите следующие команды
# For Ubuntu and Debiansudo apt install tmux
# For CentOS and Fedorasudo yum install tmux
# For macOSbrew install tmux
Покажи мне tmux
Создать сеанс
tmux основан на сессиях. Чтобы начать новый сеанс в tmux, просто введите tmux new
в своем терминале. После того, как вы войдете в tmux, единственное, что будет заметно отличаться, - это постоянно присутствующая зеленая полоса внизу (параметры настройки см. В разделе Получение фантазии с пользовательскими темами) .
Tmux вращается вокруг сессий, больших проектов для хранения ваших команд и истории. Это концептуальный единичный блок, который вы можете «прикрепить» / синхронизировать для работы над вашими проектами.
- Создать новый сеанс:
tmux new -s tutorial
- Присоединиться к существующему сеансу:
tmux attach -t tutorial
После подключения к сеансу вы увидите другой интерфейс терминала (с зеленой полосой внизу).
Чтобы выйти из сеанса / панели, вы можете запустить командуexit
. Другой командой для обхода всех выходов и выхода из сеансов будет запуск detach
Запустить команду tmux
Использование префикса
Все команды в Tmux начинаются с ярлыка префикса (по умолчанию ctrl + b). Этот префикс будет использоваться каждый раз, когда мы хотим запускать команды tmux. Чтобы запустить подсказку, введите ctrl+b
и :
.
Примечание: мы можем настроить новый префикс как Ctrl+a
. Это помогает выполнять команды быстрее, поскольку набирать Ctrl+a
легче, чем Ctrl+b.
.
Команды tmux
Вот важные команды, которые вы часто используете:
- Переименовать сеансы
Prefix + $
- Отключить сеансы
Prefix + D
- Создать вертикальное разделение
Prefix +%
- Создать горизонтальное разделение
Prefix + “
Для получения дополнительной информации я включил полезную шпаргалку, которую я нашел для изучения. Кредит для linuxacademy.local
Настроить настройку команды tmux и привязки клавиш
Обратите внимание, что есть некоторые сочетания клавиш, которые не являются интуитивно понятными. Например, чтобы создать горизонтальное разделение, вам нужно запустить Prefix + “
. Об этом легко забыть, поэтому нам нужно настроить привязку клавиш к более интуитивной.
Настройку tmux можно найти в .tmux.conf file
, вы можете отредактировать файл, выполнив команду nano
в своем терминале bash или просто открыв его в любом текстовом редакторе.
Вы можете следить за моей конфигурацией и обновлять ее по своему вкусу.
# Set prefix (Ctrl+a) set-option -g prefix C-a unbind-key C-a bind-key C-a send-prefix # Use Alt-arrow keys to switch panes (Alt+left/right/up/down) bind -n M-Left select-pane -L bind -n M-Right select-pane -R bind -n M-Up select-pane -U bind -n M-Down select-pane -D # Shift arrow to switch windows (Shft+left/right/up/down)) bind -n S-Left previous-window bind -n S-Right next-window # Mouse mode to alter windows setw -g mouse on # Set easier window split keys bind-key v split-window -h bind-key h split-window -v # Easy config reload bind-key r source-file ~/.tmux.conf \; display-message "~/.tmux.conf reloaded." #Set Tmux plugin to resurrect every time workstation restarted (Ctrl+A Ctrl+S to Save / Ctrl+A Ctrl+R to Resurrect) set -g @plugin 'tmux-plugins/tpm' set -g @plugin 'tmux-plugins/tmux-sensible' set -g @plugin 'tmux-plugins/tmux-resurrect' set -g @plugin 'tmux-plugins/tmux-continuum' # Automatically restore tmux windows when tmux starts. set -g @continuum-restore 'on' # Don't auto-launch tmx at machine boot. Give me a chance to gcert first. set -g @continuum-boot 'off' # Preserves what was readable in each pane. set -g @resurrect-capture-pane-contents 'on' set -g @resurrect-strategy-vim 'session' # Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf) run '~/.tmux/plugins/tpm/tpm'
Это все! Поздравляю, вы только что узнали полезные советы по повышению вашей продуктивности.
Воскреси свой Tmux!
Tmux воскрешает на помощь
Я думаю, что этот урок никогда не будет полным без упоминания tmux resurrect. Ключевой вопрос, который следует задать: «Как мы можем сохранить историю tmux после перезагрузки».
Идея похожа на сохранение файла памяти в играх Final Fantasy.
Вы повысились в новом подземелье. По пути вы собирали предметы и улучшали экипировку своего персонажа. В конце дня вы научили их новым навыкам борьбы с боссом.
Но прежде чем рискнуть умереть во время схваток с боссами, вы бежали к точке сохранения, надеясь сохранить текущее состояние персонажей.
Когда вы проиграли битву, вы вздохнули с облегчением, зная, что вы сохранили свою игру и можете попробовать еще раз, пока не одержите победу.
Точно так же tmux resurrect сохраняет и загружает ваше последнее состояние.
Это очень полезно, особенно после того, как вы запустите свои файлы сборки, чтобы поэкспериментировать с новыми моделями, и быстро сгенерируете код сценария .sh для запуска обучения без учителя. Самое страшное - потерять все истории команд для доступа к журналам машинного обучения.
Поэтому разумный вариант, если вы потеряете свой прогресс, - это загрузить последнее состояние в память. Затем вы можете быстро перейти к проекту и получить все последние состояния терминала в течение нескольких секунд.
Чтобы сохранить свое состояние с помощью tmux resurrect, вы можете просто запустить Prefix + Ctrl+S
.
Чтобы загрузить свое состояние в новый сеанс, вы можете просто запустить Prefix + Ctrl+R
.
Если все сделано правильно, вы восстановите все истории команд и сеансы, которые важны для вашего текущего проекта.
Поздравляем, теперь вы готовы творить крутые вещи с tmux!
Ссылка:
Ниже приведены некоторые ссылки, которые вы должны прочитать после того, как подключились к tmux.
В заключение: Tmux повышает вашу продуктивность в 10 раз
- Аудит: управление историей сценариев для нескольких запущенных проектов.
- Постоянство: общий макет, который вы всегда можете использовать, чтобы запомнить запуск ваших скриптов даже после того, как вы случайно закроете терминал.
- Мультихост: легко переключайтесь между несколькими программами в одном терминале, затем отсоединяйте и снова присоединяйте их. Теперь вы можете подключаться и переходить к одновременным сеансам SSH и отслеживать работу вашего сервера ML.
Надеюсь, это поможет вам понять, почему tmux важен, и использовать его для реального воздействия на данные.
Соли део глория
об авторе
Винсент борется со злоупотреблениями в Интернете с помощью ML @ Google. Винсент использует передовую аналитику данных, машинное обучение и разработку программного обеспечения для защиты пользователей Chrome и Gmail.
Помимо работы в Google, Винсент также является выпускником магистратуры Технологического университета Джорджии, триатлонистом и ведущим автором журнала Towards Data Science Medium, чтобы направлять начинающих практиков машинного обучения и данных с более чем 1 млн зрителей по всему миру.
Наконец, свяжитесь с Винсентом через LinkedIn, Medium или Youtube Channel.