Журнал об IT-бизнесе, технологиях и цифровой трансформации

Иллюстрированное руководство по полезным инструментам командной строки Mail.ru Cloud Solutions
Mail.ru Cloud Solutions
  • 20 ноября
  • Разработка

Иллюстрированное руководство по полезным инструментам командной строки

Автор: Анатолий Ализар
Популярное
Разработка
Какой аутсорс нужен продуктовой разработке на разных фазах зрелости продукта
Разработка
Путь к Kubernetes и его преимущества для разработки
Бизнес
Анализ больших данных в облаке: как бизнесу стать дата-ориентированным

Подготовили подборку из 28 полезных инструментов командной строки, которые пригодятся для повседневной работы каждого разработчика и системного администратора. Это быстрые инструменты без серьезных зависимостей в средах выполнения типа Python или node.js. Большинство программ работают на *BSD, Linux, macOS, часто и на Windows. Многие инструменты доступны через системные репозитории соответствующих ОС.

Статья подготовлена на основе перевода статьи Wesley Moore, An Illustrated Guide to Some Useful Command Line Tools

Alacritty, язык: Rust

Alacritty — быстрый эмулятор терминала. Хотя это не совсем инструмент командной строки, но он позволяет запускать упомянутые ниже инструменты. Из этого эмулятора сделаны все скриншоты в статье.

Репозиторий

alt, язык: Rust

alt — инструмент для поиска «альтернативного» файла, то есть связанного файла в другом месте системы. Например, спецификации к реализации (коду) или тест для реализации, смотрите примеры для разных языков программирования. Его можно использовать вместе с Neovim, чтобы легко переключаться между тестами и реализацией.

$ alt app/models/page.rb
spec/models/page_spec.rb

Репозиторий

bat, язык: Rust

bat используют для вывода файла в консоль. Он является более верной альтернативой инструменту cat. Поддерживает подсветку синтаксиса и интеграцию с git.

Репозиторий

bb, язык: Rust

bb — системный монитор, как top. Показывает общее использование процессора и памяти, а также подробную информацию о каждом процессе.

Репозиторий

chars, язык: Rust

chars отображает информацию о символах Юникода, соответствующих поисковому запросу.

Репозиторий

dot, язык: Rust

dot — это менеджер скрытых файлов (dotfiles). Поддерживает набор симлинков в соответствии с файлом сопоставления.

Репозиторий

dust, язык: Rust

dust — альтернатива du -sh. Он вычисляет размер дерева каталогов и выводит сводку самых больших объектов.

Репозиторий

exa, язык: Rust

exa — замена ls с разумными значениями по умолчанию (цветовая схема, расширенные атрибуты и другие) и дополнительными функциями, такими как tree view, интеграция c git и дополнительные иконки.

Репозиторий

eva, язык: Rust

eva — это калькулятор командной строки, похожий на bc, с подсветкой синтаксиса и хранением истории.

Репозиторий

fd, язык: Rust

fd является альтернативой find с более удобным интерфейсом командной строки и распознаванием файлов с расширением .ignore, например .gitignore. Сочетание скорости и поддержки файлов с расширением .ignore отлично подходит для поиска файлов в репозиториях git.

Репозиторий

hexyl, язык: Rust

hexyl — это hex-просмотрщик с символами Юникода и расцветкой выдачи, чтобы улучшить читаемость.

Репозиторий

hyperfine, язык: Rust

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

Репозиторий

jq, язык: C

jq — это своего рода awk для JSON. Позволяет преобразовывать и извлекать информацию из документов JSON.

Репозиторий

mdcat, язык: Rust

mdcat отображает в терминале файлы с разметкой Markdown. В поддерживаемых терминалах (кроме Alacritty) ссылки кликабельны, изображения отображаются.

Репозиторий

pass, язык: sh

pass — парольный менеджер, который шифрует пароли в GPG. Его можно использовать, например, с расширением passff для Firefox и Pass для iOS на телефоне.

Репозиторий

Podman, язык: Go

Podman — альтернатива Docker, не требующая демона. Контейнеры поднимаются от имени пользователя, который запускает Podman, поэтому файлы, записанные на хост, не принадлежат пользователю с root-правами. Интерфейс во многом совместим с интерфейсом командной строки Docker.

Репозиторий

Restic, язык: Go

Restic — инструмент резервного копирования, который шифрует файлы на стороне клиента, удаляет дубли, поддерживает различные локальные и удаленные бэкенды для записи файлов: sftp по SSH, HTTP REST, AWS S3, OpenStack Swift, BackBlaze B2, Microsoft Azure, Google Cloud и др.

Сайт

Источник: демонстрационное видео Restik

ripgrep, язык: Rust

ripgrep (rg) рекурсивно ищет в файловых деревьях текст, соответствующий регулярному выражению. Работает быстро, по умолчанию пропускает файлы с расширением .ignore и бинарные файлы.

Репозиторий

shotgun, язык: Rust

shotgun — инструмент для снятия скриншотов в окружении на основе X.org. Все скриншоты в этой статье сделал shotgun. Он хорошо сочетается со slop, об этом инструменте расскажем ниже.

$ shotgun $(slop -c 0,0,0,0.75 -l -f «-i %i -g %g») eva.png

Репозиторий

skim, язык: Rust

skim — инструмент для поиска нечеткого совпадения данных, подаваемых на вход. Можно использовать вместе с Neovim и zsh для нечеткого сопоставления имен файлов.

Репозиторий

slop, язык: C++

slop (select operation) представляет UI для выбора области экрана/окна — и ее печати в stdout. Хорошо работает с shotgun.

$ slop -c 0,0,0,0.75 -l -f «-i %i -g %g»
-i 8389044 -g 1464×1008+291+818

Репозиторий

Syncthing, язык: Go

Инструмент децентрализованной синхронизации файлов. Как Dropbox, но на своем хостинге, без зависимости от сторонних сервисов.

Репозиторий

tig, язык: C

tig — это текстовый UI для Git. Отлично подходит для просмотра изменений и подготовки к коммиту, просмотра истории и различий.

Репозиторий

titlecase, язык: Rust

titlecase — небольшой инструмент, который написал Уэсли Мур для генерации заголовков в соответствии с форматом в описании Джона Грубера. Правильно обрабатывает знаки препинания и слова со строчной буквы, такие как iPhone.

$ echo ‘an illustrated guide to useful command line tools’ | titlecase
An Illustrated Guide to Useful Command Line Tools

Его можно запустить из Neovim, с обработкой выделенного текста. Это делается путем визуального выделения и ввода :!titlecase.

Репозиторий

Universal Ctags, язык: C

Universal Ctags — форк активно поддерживаемой утилиты exuberant-ctags. Она создает файл тегов, который vim и другие инструменты используют для перехода к определению символов в файлах.

$ ctags —recurse src

Репозиторий

watchexec, язык: Rust

watchexec — программа отслеживания файлов и каталогов, которая выполняет команды в случае определенного изменения файловой системы. Это удобно для автоматического запуска тестов или перезапуска веб-сервера разработки при изменении исходников.

# run command on file change
$ watchexec -w content cobalt build
# kill and restart server on file change
$ watchexec -w src -s SIGINT -r ‘cargo run’

Репозиторий

z, язык: sh

z отслеживает часто используемые каталоги и позволяет перейти к ним, введя часть названия.

Репозиторий

zola, язык: Rust

zola — очень быстрый полнофункциональный компилятор статических сайтов.

Репозиторий

Надеемся, вы найдете в этом списке что-то полезное для себя. Как уже упоминалось, список будет дополняться. Это живой документ, который обновляется здесь.

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

Что еще почитать про ИТ-бизнес