Скриншоты? В терминале? Да ну, зачем это нужно… Так думают многие администраторы, я тоже сначала так подумал. Действительно, зачем еще один инструмент, тем более что я всегда могу снять скриншот терминала привычными способами.
Но те, кто много работает со скриншотами знает, что добиться нормального качества изображения на скриншоте не всегда получается с первого раза и то, что хорошо выглядит на экране может просто отвратительно выглядеть на бумаге.
Да и качество вывода во многих терминалах откровенно хромает. А различные цветовые схемы добавляют лишних забот. В лучшем случае ваша документация или статья будут выглядеть разнородно, в худшем вы можете получить проблемы при масштабировании или конвертации картинки.
Поэтому, скажем честно, без предварительной подготовки получить качественные скриншоты терминала затруднительно. Как минимум вам придется настроить размер шрифта, сам шрифт, цветовую схему и т.д.
Видимо автору данной утилиты все это сильно надоело, и он решил вопрос кардинальным образом. Ведь что есть поток вывода терминала? Это текст, а следовательно его можно захватить и обработать как нам нужно.
Утилита termshot представляет собой единственный бинарный файл, написанный на Go, и распространяется по лицензии MIT, скачать ее можно с официальной страницы автора на GitHub: https://github.com/homeport/termshot
Применять ее тоже просто:
termshot hostnamectl
И вы получите в своей домашней папке файл out.png с выводом команды в едином стиле и с размером изображения 2K вне зависимости от настроек вашего терминала, разницу можно посмотреть на скриншотах к заметке.
Конечно, такой скриншот совсем другое дело, его можно смело обрабатывать, масштабировать и т.д. и т.п. не боясь потерять в качестве, а также он отлично читается в любом варианте, что в электронном, что в печатном.
Также утилитой удобно захватывать большой вывод в несколько экранов, все попадет в один файл, который затем можете уже порезать как вам потребуется.
Если хотите добавить на скриншот саму команду, а не только ее вывод – используйте ключ -с:
termshot -с hostnamectl
Если нужно выполнить более одной команды через конвейер, то вам поможет следующая конструкция:
termshot -- "dpkg -l | grep gimp"
Чтобы указать имя файла изображения можно использовать ключ -f:
termshot -- "dpkg -l | grep gimp" -f /home/user/doc123/grep2.png
Все ключи можно быстро посмотреть в режиме справки:
termshot -h
Еще одной приятной возможностью утилиты является запуск отдельной сессии терминала с захватом всего что будет в ней происходить. Для этого запустите:
termshot /bin/bash
На первый взгляд ничего не произойдет, но на самом деле вы открыли отдельную сессию, весь вывод которой пойдет на скришнот. Мы можем запустить несколько команд, а потом завершить сессию командой
exit
После чего утилита создаст нам скриншот, на который попадет все то, что мы видели на экране.
Как видим, утилита предельно проста, но очень полезна тем, кто занимается написанием статей или составлением документации. Теперь не нужно переживать за качество скриншотов, оно всегда будет отличным.



