Мои студенты недавно интересовались, как и чем я делаю запись экрана с терминала. Поделюсь и с вами.



Начнем с того, что я не записываю терминал в реальном времени. Сначала я создаю сценарий, который в автоматическом режиме будет печатать нужные мне команды. А на выходе получается полноценный gif файл.



Софтина называется VHS. Позволяет ЧЕРЕЗ КОД записать gif файл.



VHS
написана на модном golang. Для начала устанавливаем. Есть под все операционки, в документации найди свой дистрибутив и накопипасти в терминал.



Я ничего не устанавливал, а пользуюсь docker версией, мне так удобнее, все зависимости упакованы в контейнер. Но если от докера тебя выворачивает, можешь всегда собрать всё это из исходников.



Создаем файл сценария bashdays.tape



vim bashdays.tape



И пишем код:



Output bashdays.gif

Require echo



Set Shell "bash"

Set FontSize 32

Set Width 1920

Set Height 1080



Type "echo 'Hello this is BashDays'" Sleep 500ms Enter

Type "apt install -y nginx" Sleep 500ms Enter



Sleep 5s



Думаю тут все интуитивно понятно, откроется оболочка bash, настроятся шрифты, высота, длиннота и сообщение которое будет напечатано. Либо команда, которая будет выполнена. Настроек там дофига, но как обычно 90% никем не используются.



После того как сценарий готов, запускаем:



docker run --rm -v $PWD:/vhs ghcr.io/charmbracelet/vhs bashdays.tape



Наблюдаем за процессом создания и на выходе получаем файл bashdays.gif. В котором будет вывод строки через echo и процесс установки nginx.



Получившийся gif файл можно не отходя от кассы сразу зашарить на какой-то расшаренный сервер.



Вот такой командой:



docker run --rm -v $PWD:/vhs ghcr.io/charmbracelet/vhs publish bashdays.gif



По итогу получишь прямую ссылку вида: https://vhs.charm.sh/vhs-62gl16v.gif



Ну а дальше уже втыкай свои гифки в корпоративные wiki, или куда там ты их втыкаешь. Короче штука ОФИГИТЕЛЬНАЯ. Всем рекомендую!



🐱 Сраница проекта на github



Всех с пятницей, хороших предстоящий выходных и береги себя! 🤩



tags: #linux #utilites



💩 @bashdays