July 23

12 инструментов командной строки, которые значительно ускорят вашу работу разработчика

Это перевод оригинальной статьи 12 CLI Tools That Will Supercharge Your Developer Workflow.

Подписывайтесь на телеграм-канал usr_bin, где я публикую много полезного по Linux, в том числе ссылки на статьи в этом блоге.

Каждая команда должна работать на вас 🖥️
Инструменты командной строки ускоряют и упрощают рабочий процесс. Они помогают отлаживать код, управлять файлами, форматировать код и автоматизировать задачи, не выходя из терминала. Такие инструменты, как Ruff, pre-commit и pipx, обеспечивают согласованность проектов и изоляцию окружения, позволяя тратить больше времени на кодинг и меньше — на исправление проблем с настройкой.

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

1. Bat 🖥️

Bat заменяет стандартную cat, добавляя подсветку синтаксиса, нумерацию строк и интеграцию с Git для файлов кода. Это делает чтение файлов в терминале удобным и понятным.

bat app.py

В терминале вы получаете подсветку синтаксиса по цветам, нумерацию строк и подсветку изменений Git прямо в терминале.

Если нужен простой вид.

bat --style=plain app.py
стиль простой
Почему мне нравится: Bat превращает отладку скриптов Python в увлекательное занятие, сравнимое с листанием прекрасно иллюстрированной книги.

GitHub - sharkdp/bat: A cat(1) clone with wings.

A cat(1) clone with wings. Внесите свой вклад в разработку sharkdp/bat, создав учетную запись на GitHub.

github.com

2. tldr 📘

tldr предлагает краткие, основанные на примерах объяснения команд вместо длинных и сложных справочных страниц. Идеально подходит для быстрого напоминания и освоения новых инструментов.

tldr tar

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

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

tldr

Упрощенные и созданные сообществом справочные страницы (man pages)

tldr.sh

3. eza📂

eza модернизирует ls, добавляя цвета, иконки и интеграцию с Git. Это делает вывод списка файлов визуально понятным и информативным прямо в терминале.

eza -l --git
источник — документ eza

Вы получаете информацию о правах доступа к файлам, размеры, даты изменения и статус Git — всё в одном удобном представлении.

Почему мне это нравится: eza делает навигацию по каталогам похожей на прогулку по хорошо организованной галерее.

GitHub — eza-community/eza: современная альтернатива ls

Современная альтернатива команде ls. Внесите свой вклад в разработку eza-community/eza, создав учетную запись на GitHub.

github.com

4. Ruff ⚡

Ruff — это сверхбыстрый линтер и форматтер для Python, написанный на Rust. Он практически мгновенно проверяет ваш код на стилевые ошибки, неиспользуемые импорты и проблемы форматирования.

ruff check temp-api/

Он сканирует весь ваш проект за считанные секунды и может автоматически исправить большинство проблем.

Почему мне это нравится: Ruff молниеносно проходит по моим проектам, поддерживая код чистым и единообразным, не замедляя работу.

Ruff ⚡

Чрезвычайно быстрый линтер и форматтер кода для Python, написанный на Rust.

docs.astral.sh

5. pre-commit 🔒

pre-commit выполняет автоматические проверки перед каждым коммитом Git, выявляя такие проблемы, как ошибки форматирования, проблемы с линтингом или утечки секретных данных.

# .pre-commit-config.yaml
repos:
  - repo: https://github.com/pre-commit/pre-commit-hooks
    rev: v4.6.0
    hooks:
      - id: trailing-whitespace
      - id: end-of-file-fixer
      - id: check-yaml
      - id: check-added-large-files

  - repo: https://github.com/psf/black
    rev: 24.3.0
    hooks:
      - id: black

Ниже приведены команды, необходимые для работы с этой конфигурацией:

pre-commit install
pre-commit run --all-files

Это позволит выполнить все настроенные хуки trailing-whitespace, end-of-file-fixer, check-yaml, check-added-large-files и black для каждого файла в репозитории.

Почему мне это нравится: pre-commit защищает мою команду от проблем с неаккуратным кодом, предотвращая некорректные коммиты до их совершения.

pre-commit

pre-commit.com

6. cookiecutter🍪

Начинать проект с нуля — утомительно. Cookiecutter генерирует шаблоны проектов одной командой.

cookiecutter gh:cookiecutter/cookiecutter-django

Ответьте на несколько вопросов, и вы получите готовый к работе Django-проект. Он работает как сборник рецептов по программированию, экономя часы на настройке.

Почему мне это нравится: cookiecutter — это мой быстрый способ создания API или CLI за считанные минуты.

Cookiecutter: Better Project Templates — документация к версии 2.6.0

Cookiecutter создает проекты на основе шаблонов проектов (cookiecutters), например, проекты пакетов Python на основе шаблонов пакетов Python…

cookiecutter.readthedocs.io

7. ⚡ hyperfine

Хотите узнать, какой скрипт работает быстрее? Hyperfine проводит бенчмаркинг команд с подробной статистикой.

hyperfine 'sleep 0.3' 'sleep 0.4'

Программа запускает тесты несколько раз и показывает среднее время, стандартное отклонение и сравнения. Это как секундомер для терминала, идеально для оптимизации.

Почему мне это нравится: hyperfine помогает мне точно настраивать инструменты без догадок.

GitHub - sharkdp/hyperfine: инструмент для командной строки для бенчмаркинга

Инструмент для бенчмаркинга в командной строке. Присоединяйтесь к разработке sharkdp/hyperfine, создав учетную запись на GitHub.

github.com

8. lazygit📋

Команды Git могут показаться запутанными. lazygit предоставляет терминальный интерфейс для удобной навигации по коммитам, веткам и изменениям.

lazygit -p PROJECT PATH

Нажмите ? для получения справки, добавьте файлы в индекс с помощью пробела и зафиксируйте изменения с помощью клавиши c. Это как иметь панель управления Git прямо в терминале.

Почему мне это нравится: lazygit упрощает работу со сложными репозиториями.

GitHub - jesseduffield/lazygit: простой терминал для команд Git

Простой терминал для команд Git. Внесите свой вклад в разработку jesseduffield/lazygit, создав учетную запись на GitHub.

github.com

9. pipx📦

pipx устанавливает и запускает Python CLI-приложения в изолированных средах, не засоряя основной Python.

pipx install black
black script.py

Запускайте такие инструменты, как black, flake8, или httpie, безопасно где угодно.

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

10. entr📝

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

ls *.py | entr -r python main.py

При каждом изменении файла .py ваш скрипт автоматически перезапускается.

Почему мне это нравится: entr превращает повторяющиеся ручные операции в полностью автоматизированные рабочие процессы, не требующие участия пользователя.

11. httpie⚡

httpie — это инструмент командной строки для выполнения HTTP-запросов с понятным синтаксисом и форматированным выводом. Идеально подходит для тестирования API.

http GET https://api.github.com/repos/python/cpython

Он автоматически форматирует JSON-ответы, упрощая отладку вызовов API.

Почему мне это нравится: httpie делает взаимодействие с API быстрым и удобным для пользователя, без лишних сложностей curl.

12. glow📊

Glow отображает Markdown в терминале с цветами, таблицами и ссылками. Идеально подходит для чтения документации, не выходя из командной строки.

glow README.md

Читайте файл README или документацию вашего проекта непосредственно в терминале. Также можно получать разметку Markdown по протоколу HTTP.

glow https://raw.githubusercontent.com/fastapi/fastapi/master/README.md
Почему мне это нравится: Glow делает чтение Markdown приятным прямо во время кодинга, без необходимости открывать редактор.

Эти инструменты командной строки упрощают разработку, автоматизируя проверки, организуя файлы и ускоряя выполнение рутинных задач. Используйте hyperfine для тестирования производительности, lazygit для упрощения работы с Git и glow для чтения документации без переключения окон.

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

На этом все! Спасибо за внимание! Если статья была интересна, подпишитесь на телеграм-канал usr_bin, где будет еще больше полезной информации.