В предыдущей статье я рассказал, как я подготавливаю 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 — все открытые соединения с сервером.
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 — это идентификатор сессии.
Теперь мы готовы к работе с другими не менее полезными программами. Но, об этом уже будет в следующей статье.
А мне нравиться yakuake хотя tmux я не пробовал 🙂
mosh действительно очень удобная вещь.
Ну а остальное нужно пробовать.
Спасибо:)