Работа в удаленном терминале

В предыдущей статье я рассказал, как я подготавливаю Linux сервер к работе. Открывая тему моего набора инструментов на сервере, я хочу начать с первых программ, с помощью которых осуществляется подключение и работа в удаленном терминале. Это mosh, zsh и tmux.

mosh (mobile shell)

Mosh — современная замена старого доброго SSH. Ладно, это не полная его замена, поскольку для работы mosh нужен все тот-же ssh, можем сказать, что это новое дыхание для ssh ;). После того, как произошло соединение, запускается mosh-server с использованием одного из UDP портов в диапазоне от 60000 до 60010. Дальнейшее взаимодействие между клиентом и сервером происходит по UDP.

Основные преимущества mosh:

  • IP поменялось, а соединение не оборвалось! Переключаясь между Wifi, 3G или ethernet, меня всегда раздражало, что надо заново устанавливать все открытые ssh соединения, поскольку они “подвисают” и “отваливаются”. С mosh такой проблемы просто нет. И это очень радует 🙂
  • Ноутбук заснул — не проблема! Часто мой MacBook уходит в сон, а возвращаясь с него, я вижу уже закрытые ssh соединения. Больше такого нет.
  • Мобильный интернет — все работает нормально! Будучи подключен по ssh через мобильный 3G или Edge интернет, очень сложно работать в том же Vim редакторе — потери пакетов, зависание и т.д. Опять же, mosh нивелирует и эту проблему.

zsh и oh-my-zsh

Долгое время я использовал bash в качестве командной оболочки. Но, после того, как я однажды попробовал zsh, он стал для меня основным на Linux и OSX. А с помощью расширения oh-my-zsh, консоль оживает заново. Работать становиться очень удобно. Я могу написать:

vi /u/l/e/an/h

нажать Tab и получить:

vi /usr/local/etc/ansible/hosts

Могу ввести 1 команду и с помощью вверх либо вниз найти все варианты ввода. И, конечно, подсказки на нажатие Tab:

docker-compose help
    help               — Get help on a command

zsh облегчает работы в разы, делая ежедневное общение с терминалом приятным 🙂

Так же, вместе с установкой zsh, я устанавливаю свой конфигурационный файл .zshrc, в котором уже прописаны некоторые плагины и полезные сокращения. В частности:

  • myextip позволяет получить внешний адрес. Полезно, если сервер за NAT.
  • clr — просто очистка консоли.
  • hist10 — 10 наиболее часто вводимых в терминале команд.
  • hgrep — поиск по истории вводимых в терминале команд.
  • mynetcon — все открытые соединения с сервером.

mynetcon

tmux

tmux — многооконный эмулятор терминала. Мой конфиг .tmux.conf сделает работу с tmux схожей на Vim редактор.

Все команды выполняются после вызова префикса, который установлен у меня в Ctrl+a. К примеру, что бы создать новое окно, необходимо нажать Ctrl+a и потом c.

Запомните основные команды (после вызова префикса):

  • c — создать новое окно
  • s — разделить окно на два окна по горизонтали
  • v — разделить окно на два окна по вертикали
  • ] — перейти к следующему окну
  • [ — вернуться к предыдущему окну
  • & — убить окно
  • w — показать список окон
  • , — переименовать окно
  • Escape — режим копирования. Теперь мы можем осуществлять навигацию по выводу терминала
  • m — включить режим мыши. Доступна работа с помощью мышки (изменить размеры окон, прокрутить листинг и т.д.)
  • M — отключить режим мыши

И главное, что бы создать новую сессию, необходимо выполнить tmux new в терминале. В любой момент мы можем отключиться нажав Ctrl+a и потом d (или даже закрыть ssh соединение), но, после возврата, все наши команды все так же будут выполняться внутри tmux сессии. Просмотреть список активных сессий — tmux ls и подключиться к одной из них — tmux attach -t 0, где 0 — это идентификатор сессии.

Теперь мы готовы к работе с другими не менее полезными программами. Но, об этом уже будет в следующей статье.

1 комментарий on "Работа в удаленном терминале"


  1. А мне нравиться yakuake хотя tmux я не пробовал 🙂
    mosh действительно очень удобная вещь.
    Ну а остальное нужно пробовать.
    Спасибо:)

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.