Код
#статьи

GitHub digest #10: прокачиваем терминал

От нашего терминала — вашему.

Иллюстрация: Оля Ежак для Skillbox Media

В августе собрали для вас лучшие консольные утилиты с открытым кодом: инструменты для разработчиков, воспроизведение аудио и видео, визуальные эффекты, новые команды и многое другое. Пришло время прокачать свой терминал и сделать его более универсальным.

Сила в краткости


Bash-Oneliner

Bash-Oneliner — большая библиотека удобных команд и горячих клавиш для работы с Linux. Автор проекта несколько лет назад занимался изучением биоинформатики, и ему приходилось часто взаимодействовать с терминалом. Тогда он обнаружил, что если знать команды и простые скрипты, то консоль перестанет пугать. С тех пор разработчик собирает все интересные горячие клавиши и команды в одном месте.

Открыть репозиторий

HTTP-клиент для терминала


Posting

Posting — мощная утилита для работы с протоколом HTTP. Умеет локально хранить запросы в простых YAML-файлах, есть автозаполнение, подсветка синтаксиса, горячие клавиши Vim, пользовательские темы и команды для быстрого доступа к функциям.

Интерфейс Posting
Изображение: darrenburns / GitHub
Открыть репозиторий

Парное программирование с ИИ-помощником


Aider

Aider — нейросетевой программист, который помогает редактировать код в локальном Git-репозитории. Если всегда хотели попробовать парное программирование, но пара не находилась, то самое время попробовать нейросеть. Aider можно подружить с любой языковой моделью, но лучше всего использовать GPT-4o или Claude 3.5 Sonnet. Это модели мощнее и предлагают наиболее подходящие фрагменты кода.

Пример работы Aider
Скриншот: Aider / Skillbox Media

Aider может:

  • отредактировать файлы;
  • запушить изменения в Git;
  • редактировать несколько файлов одновременно;
  • работать с большинством популярных языков, включая Python, JavaScript, TypeScript и PHP.
Открыть репозиторий

Запись терминальных сессий


Asciinema

Asciinema — это инструмент для записи всего происходящего в терминале. Он может пригодиться, чтобы продемонстрировать работу приложения или поделиться забавной ошибкой. Главное преимущество Asciinema в том, что утилита записывает видео в специальном легковесном формате .cast, а не в громоздких .mp4 или .mov.

Полученный файл можно воспроизвести в терминале, встроить в веб-страницу и поделиться им в социальных сетях.

Открыть репозиторий

Современная альтернатива Ls


Eza

Eza — это переосмысление классической утилиты ls, которая выводит в терминал содержимое директории. В Eza пользователю предоставляется больше возможностей, например каждый тип файлов выделяется своим цветом, а также поддерживается работа с симлинками, расширенными атрибутами и Git.

Ещё один плюс Eza заключается в высокой скорости работы. Всё благодаря тому, что утилита состоит всего из одного бинарного файла.

Пример использования Eza
Изображение: Eza

Особенности Eza:

  • Поддержка гиперссылок.
  • Детализация точек монтирования.
  • Вывод статуса Git-репозиториев.
  • Человекочитаемые относительные даты.
  • Поддержка ярких цветов терминала.
Открыть репозиторий

Ещё одна альтернатива Ls


LSD

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

Так выглядит вывод команды lsd
Скриншот: lsd-rs / GitHub
Открыть репозиторий

Музыка в терминале


Cmus

Cmus — это быстрый и мощный музыкальный проигрыватель для Unix-подобных операционных систем. С ним любимые треки можно слушать прямо в терминале.

Внешний вид Cmus
Скриншот: Cmus / Skillbox Media

Особенности:

  • Поддерживает разные форматы: Ogg Vorbis, MP3, FLAC, Opus, Musepack, WavPack, WAV, AAC, MP4, аудио-CD и WMA.
  • Потоковое воспроизведение треков в форматах MP3 и Ogg с помощью Shoutcast/Icecast.
  • Мгновенный запуск, даже если в коллекции несколько тысяч треков.
  • Поддержка фильтров по названию, дате, исполнителю и другим параметрам.
  • Есть очередь воспроизведения.
  • Команды и поиск в режиме Vim/less.
  • Программа работает в Linux, OS X, FreeBSD, NetBSD, OpenBSD и Cygwin.
  • Можно настроить цветовую схему утилиты.
Открыть репозиторий

Управление Docker из терминала


Dry

Dry — утилита для управления Docker-контейнерами из консоли. С её помощью можно получать информацию о контейнерах, образах и сетях, а при работе с кластером Swarm — об узлах, сервисах, стеках и других конструкциях Swarm. Dry можно использовать как с локальными, так и с удалёнными демонами Docker.

В dry доступно большинство команд, представленных в официальном приложении Docker CLI. Утилита устанавливается с помощью всего одного бинарника и не требует применения внешних библиотек.

Открыть репозиторий

API-клиент


ATAC

ATAC — это консольный API-клиент, похожий на Postman. Философия ATAC проста: быть бесплатным и автономным отныне и навсегда. С его помощью пользователи могут отправлять запросы через API и анализировать ответы сервера.

Открыть репозиторий

Интерактивная шпаргалка для командной строки


Navi

Navi — простой ридер файлов с чит-листами различных консольных утилит. Если забыли, что делает та или иная команда, то можете подсмотреть её синтаксис и описание с помощью Navi. Пользователи могут загружать дополнительные чит-листы из интернета или писать собственные.

Открыть репозиторий

Мощный и универсальный конвертер


Pandoc

Pandoc — это одновременно библиотека на Haskell для преобразования файлов из одного формата в другой, и инструмент командной строки, который использует эту библиотеку. С помощью Pandoc можно конвертировать DOCX в ODT или HTML в PDF. Поддерживается много форматов, включая редкие MARKUA, ORG, TEI и ZIMWIKI.

Примеры команд:

TXT — в HTML:

pandoc -s MANUAL.txt -o example2.html

TXT — в RTF:

pandoc -s MANUAL.txt -o example7.rtf

Веб-страница — в Markdown:

pandoc -s -r html http://www.gnu.org/software/make/ -o example12.text

Markdown — в PDF:

pandoc MANUAL.txt --pdf-engine=xelatex -o example13.pdf

TXT — в EPUB:

pandoc MANUAL.txt -o MANUAL.epub

Для экспериментов есть специальная онлайн-песочница.

Открыть репозиторий

Не забывайте про бэкап


Restic

Restic — это быстрая, эффективная и безопасная программа для резервного копирования. Она поддерживает Linux, macOS, Windows, FreeBSD, OpenBSD.

Возможности Restic:

  • Можно создавать бэкапы для различных типов хранилищ.
  • Легко настраивается.
  • Может копировать не весь файл сразу, а только ту часть, которая изменилась.
  • Безопасность обеспечивается криптографическим шифрованием.
Открыть репозиторий

Красивый файловый менеджер


Superfile

Superfile — это модная и современная утилита для работы с файлами. Её создавали с упором на красивый пользовательский интерфейс, и, надо признать, разработчики потрудились на славу.

Внешний вид и работа Superfile
Изображение: yorukot / GitHub

В Superfile реализованы все функции современного файлового менеджера, а тему и горячие клавиши пользователь может настроить под себя. Есть возможность просматривать сразу несколько каталогов и переносить файлы без необходимости возвращаться в основную директорию.

Открыть репозиторий

Простой и мощный мультиплексор


Zellij

Zellij — это терминальный мультиплексор, то есть рабочее пространство, которое позволяет работать с несколькими сессиями в одном окне.

Zellij позволяет открывать несколько панелей в терминале
Изображение: Zellij

Zellij подойдёт как начинающим, так и опытным пользователям. Основные функции работают из коробки и легки в освоении, а продвинутые функции можно настроить. Также поддерживается автоматизация рутинных процессов и плагины для интеграции дополнительных возможностей.

Открыть репозиторий

Музыкальный плеер


Musikcube

Musikcube — ещё один консольный проигрыватель с функциями хранилища коллекций и сервера потокового аудио. Утилита работает на Windows, Linux, macOS и Raspberry Pi OS.

Для владельцев Android-смартфонов есть приложение Musikdroid, которое выступает клиентом потокового вещания. С его помощью можно слушать музыку, которая хранится на домашнем сервере с установленной утилитой Musikcube. Получается самодельный Spotify с любой музыкой.

Внешний вид Musikcube в версии для Windows
Изображение: clangen / GitHub

А Musikcore — кросс-платформенная библиотека на С++, которая может использоваться разработчиками как бэкенд для создания или прототипирования приложений, воспроизводящих музыку. Из коробки она обеспечивает сканирование файлов, индексацию тегов, управление очередью воспроизведения, плейлист, расширяемую архитектуру плагинов и поддержку библиотек, содержащих более 250 000 аудиодорожек.

Открыть репозиторий

Загрузка картинок


Gallery-dl

Gallery-dl — простая утилита для скачивания картинок с различных веб-ресурсов. Главный плюс в том, что парой нажатий можно сохранить сразу несколько изображений на странице. Приложение кросс-платформенное и поддерживает множество опций для настройки именования загружаемых файлов и их сортировки.

По сути, аналог Youtube-dl, только для картинок.

Открыть репозиторий

Создание регулярных выражений


Grex

Grex — это библиотека и приложение командной строки для создания регулярных выражений. Работает следующим образом: вы пишете тестовый пример, а на его основе автоматически генерируется регулярка.

По умолчанию Grex выдаёт точные регулярные выражения, соответствующие заявленному примеру. С помощью флагов командной строки или методов предварительной обработки из библиотеки можно создать обобщённые конструкции.

«Нужно ли теперь учить регулярные выражения?» — нередко спрашивают авторов утилиты. «Да, пожалуйста, научитесь писать их!» — отвечают они.

Открыть репозиторий

Cat с подсветкой


Bat

Bat — аналог классической утилиты Cat, которая чаще всего используется для вывода в консоль содержимого файлов, но с полезными фичами. Например, есть подсветка синтаксиса, интеграция с Git и нумерация строк.

С помощью команды Bat смотрим содержимое файла test.md
Изображение: sharkdp / GitHub
Открыть репозиторий

Альтернатива Find


Fd

Fd — это быстрая программа для поиска записей в файловой системе.

Пример поиска с помощью Fd
Изображение: sharkdp / GitHub

Возможности Fd:

  • Интуитивно понятный синтаксис: можно использовать команду fd PATTERN вместо find -iname '*PATTERN*'.
  • Поддержка регулярных выражений.
  • Высокая скорость работы.
  • Цветное выделение разных типов файлов.
  • Команды можно выполнять параллельно.
  • Умный регистр: по умолчанию поиск не чувствителен к регистру.
  • В базовых настройках утилита игнорирует скрытые каталоги и файлы, а также шаблоны из вашего .gitignore.
Открыть репозиторий

Визуальные эффекты в терминале


TerminalTextEffects

TerminalTextEffects (TTE) — утилита для создания визуальных эффектов в консоли, которую можно использовать и в качестве библиотеки Python.

TTE поддерживает работу с шестнадцатеричными цветами Xterm 256 и RGB. Пользователи могут реализовывать сложные анимации с использованием квадратичных и кубических кривых Безье. Важно отметить, что в терминале Windows некоторые эффекты могут работать медленно.

Пример эффекта Bubbles
Изображение: Effects Showroom
Открыть репозиторий

Код — в картинки


Freeze

Freeze — генератор изображений в форматах PNG, SVG и WebP из фрагментов кода или вывода терминала. Если объяснять проще, то эта программа делает красивые скриншоты консоли, чтобы ими не стыдно было делиться с коллегами.

Такое изображение можно сгенерировать, набрав в терминале freeze artichoke.hs -o artichoke.png.
Изображение: charmbracelet / GitHub
Открыть репозиторий

В GitHub из консоли


Gh-dash

Gh-dash — расширение GitHub (gh) CLI для отображения в терминале панели с пул-реквестами и задачами. Пригодится, если часто работаете в терминале и не хотите отвлекаться на браузер.

Gh-dash
Изображение: Gh-dash

Возможности Gh-dash:

  • Широкие возможности настройки утилиты.
  • Поддерживается поиск по задачам и пул-реквестам.
  • Можно применять пользовательские темы.
  • Доступен просмотр подробной информации о проекте.
Открыть репозиторий

Больше интересного про код — в нашем телеграм-канале. Подписывайтесь!

Изучайте IT на практике — бесплатно

Курсы за 2990 0 р.

Я не знаю, с чего начать
Научитесь: Профессия Python-разработчик Узнать больше
Понравилась статья?
Да

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies 🍪

Ссылка скопирована