Вчера, оказывается, столько праздников было, уууу. И день журавля, и день парикмахера, и день пирога, и день программиста. Но вместо того чтобы весело пить пиво и есть шарлотку, я, как обычно, занимался какой-то «очень полезной» шляпой.
Когда тебе навязывают зелёных стажёров, так или иначе сталкиваешься с шарингом своего экрана. Чтобы наглядно показывать будущему поколению крючочки и закорючки. Визуально информация усваивается гораздо лучше.
Раньше я просто шарил экран в гугл-мите, но всё это дело было очень прожорливым для моего ноута. Расшариваю я в основном консольку, показываю ребятам, какие команды ввожу, что и как запускаю.
И пришёл я однажды к прозрению — из лука весом в тысячу кан не стреляют по мышам. Зачем мне какой-то всратый гугл-мит? Есть же прекрасная утилита, которая называется tty-share.
Кан — японская единица измерения массы, равная 10 хиакумэ. Не знаю, зачем тебе эта информация, просто живи теперь с ней.
tty-share — простейший инструмент, который используется для предоставления общего доступа к терминалу Linux/OSX через интернет. Написан на Go и, само собой, кроссплатформенный, без зависимостей. Можно даже на малине (Raspberry Pi) эту чертяку запускать.
Как это работает
Идём в терминал и устанавливаем apt/brew install tty-share либо затаскиваем бинарник с GitHub.
После установки вбиваем и запускаем:
tty-share --public --readonly
Получаем такое:
public session: https://on.tty-share.com/mbeD30O8tEoWr4_4/
local session: http://localhost:8000/s/local/
Press Enter to continue!
Жмём Enter и погнали! Первая строчка public session, она мне и нужна. Копирую URL и отдаю стажёрам, они вбивают этот URL в браузер и видят мою расшаренную консоль.
Ключ --readonly делает так, чтобы «прямые руки» моих подопечных не могли вмешиваться в процесс просвещения. Да, если этот ключ не указать, то стажёры смогут через свой браузер вбивать команды в мою консоль.
По-моему, это офигительно! Работает за любым NAT. Также есть и локальная сессия (local session): если вы находитесь в одной подсети, можно не указывать ключ --public и довольствоваться локалкой.
У tty-share есть масса других возможностей: можно менять порты, пускать через проксю, указывать оболочку (bash/zsh/etc), писать логи и многое другое. Загляни в хелп (--help), если интересно.
Мне достаточно двух — public и readonly, остальное нафиг, работает и хорошо. По безопасности там TLS и HTTPS, но разработчик обещает добавить сквозное шифрование, пароли и ключи. Подробнее можешь почитать в разделе docs на странице проекта.
А как завершать сессию?
Короткий ответ
В доке есть упоминание про ключ --detach-keys, но из коробки Ctrl+O и Ctrl+C не работают, либо я совсем буратино. Поэтому, когда мне нужно убить public session, я просто сделал себе alias на такую команду:
kill $(ps aux | grep 'tty-share' | awk '{print $2}')
Если разберёшься, как нативно прикончить сессию, пиши в комменты, скину тебе картинку с котиком.
Залил гифки работы tty-share в Telegraph, глянуть можешь тут.
Альтернативы:
Пользуйся на здоровье. Хорошего тебе дня, увидимся!
UPD: наш коллега Egor нашёл способ завершить сессию: просто вводишь exit — и вуаля! Спасибо, Egor!








Комментарии
Виджет комментариев загружается с серверов Telegram и может использовать cookies. Разрешите внешние сервисы, чтобы открыть обсуждение.