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.
2. tldr 📘
tldr предлагает краткие, основанные на примерах объяснения команд вместо длинных и сложных справочных страниц. Идеально подходит для быстрого напоминания и освоения новых инструментов.
tldr tar
Вы сразу видите часто используемые команды tar для распаковки или сжатия файлов, без необходимости листать страницы документации.
Почему мне это нравится: если коротко, то это похоже на полезного наставника, показывающего только самое необходимое для выполнения задач.
tldr
Упрощенные и созданные сообществом справочные страницы (man pages)
3. eza📂
eza модернизирует ls, добавляя цвета, иконки и интеграцию с Git. Это делает вывод списка файлов визуально понятным и информативным прямо в терминале.
eza -l --git
Вы получаете информацию о правах доступа к файлам, размеры, даты изменения и статус Git — всё в одном удобном представлении.
Почему мне это нравится: eza делает навигацию по каталогам похожей на прогулку по хорошо организованной галерее.
GitHub — eza-community/eza: современная альтернатива ls
Современная альтернатива команде ls. Внесите свой вклад в разработку eza-community/eza, создав учетную запись на GitHub.
4. Ruff ⚡
Ruff — это сверхбыстрый линтер и форматтер для Python, написанный на Rust. Он практически мгновенно проверяет ваш код на стилевые ошибки, неиспользуемые импорты и проблемы форматирования.
ruff check temp-api/
Он сканирует весь ваш проект за считанные секунды и может автоматически исправить большинство проблем.
Почему мне это нравится: Ruff молниеносно проходит по моим проектам, поддерживая код чистым и единообразным, не замедляя работу.
Ruff ⚡
Чрезвычайно быстрый линтер и форматтер кода для Python, написанный на Rust.
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
6. cookiecutter🍪
Начинать проект с нуля — утомительно. Cookiecutter генерирует шаблоны проектов одной командой.
cookiecutter gh:cookiecutter/cookiecutter-django
Ответьте на несколько вопросов, и вы получите готовый к работе Django-проект. Он работает как сборник рецептов по программированию, экономя часы на настройке.
Почему мне это нравится: cookiecutter — это мой быстрый способ создания API или CLI за считанные минуты.
Cookiecutter: Better Project Templates — документация к версии 2.6.0
Cookiecutter создает проекты на основе шаблонов проектов (cookiecutters), например, проекты пакетов Python на основе шаблонов пакетов Python…
7. ⚡ hyperfine
Хотите узнать, какой скрипт работает быстрее? Hyperfine проводит бенчмаркинг команд с подробной статистикой.
hyperfine 'sleep 0.3' 'sleep 0.4'
Программа запускает тесты несколько раз и показывает среднее время, стандартное отклонение и сравнения. Это как секундомер для терминала, идеально для оптимизации.
Почему мне это нравится: hyperfine помогает мне точно настраивать инструменты без догадок.
GitHub - sharkdp/hyperfine: инструмент для командной строки для бенчмаркинга
Инструмент для бенчмаркинга в командной строке. Присоединяйтесь к разработке sharkdp/hyperfine, создав учетную запись на GitHub.
8. lazygit📋
Команды Git могут показаться запутанными. lazygit предоставляет терминальный интерфейс для удобной навигации по коммитам, веткам и изменениям.
lazygit -p PROJECT PATH
Нажмите ? для получения справки, добавьте файлы в индекс с помощью пробела и зафиксируйте изменения с помощью клавиши c. Это как иметь панель управления Git прямо в терминале.
Почему мне это нравится: lazygit упрощает работу со сложными репозиториями.
GitHub - jesseduffield/lazygit: простой терминал для команд Git
Простой терминал для команд Git. Внесите свой вклад в разработку jesseduffield/lazygit, создав учетную запись на GitHub.
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, где будет еще больше полезной информации.