Pull to refresh

CLI инструменты, которые облегчат времяпровождение в терминале и сделают его приятнее

Reading time6 min
Views49K
Original author: Alicia Sykes

Введение

Многие из вас каждый день работают в терминале, так давайте улучшим это времяпровождение вместе. Существует множество полезных инструментов CLI, которые могут сделать вашу жизнь в командной строке проще, быстрее и в целом веселее.

В этом посте описан мой топ-25 обязательных инструментов CLI, на которые я привыкла полагаться. Если тут нет вашего любимого - дайте мне знать в комментариях :)

1. thefuck - авто-исправление ошибок

Проект на GitHub

thefuck - это одна из тех утилит, без которых вы не сможете жить, как только попробуете ее. Всякий раз, когда вы неправильно вводите команду и получаете сообщение об ошибке, просто запустите ее, и она автоматически исправит ее. Используйте up / down, чтобы выбрать исправление, или просто пропишитеfuck -yeah, чтобы она автоматические исправила ошибку на своё усмотрение.

2. zoxide - легкая навигация по папкам (аналог cd)

Проект на GitHub

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

3. tldr - поддерживаемая сообществом документация (аналог man)

Проект на GitHub

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

4. scc - подсчитает кол-во строк кода (аналог cloc)

Проект на GitHub

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

5. exa - список файлов (аналог ls)

Проект на GitHub

exa - это современная замена команды ls на основе Rust. Он может отображать типы файлов в виде значков, цветовую палитру, информацию о файле / папке и имеет несколько выходных форматов - дерево, сетку или список.

6. duf - использование диска (аналог df)

Проект на GitHub

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

7. aria2 - скачивание файлов (аналог wget)

Проект на GitHub

aria2 - это легкая утилита, которая поддерживает HTTP / HTTPS, FTP, SFTP, BitTorrent и Metalink с поддержкой управления через интерфейс RPC. Он невероятно богат функциями и имеет массу опций. Есть также ziahamza/webui-aria2 - приятный компаньон веб-интерфейса.

8. bat - открытие файлов (аналог cat)

Проект на GitHub

bat - это клон cat с подсветкой синтаксиса и интеграцией с git. Написанный на Rust, он очень производителен и имеет несколько вариантов настройки вывода и цветовых тем. Существует поддержка автоматической конвейеризации и объединения файлов.

9. diff-so-fancy - сравнение содержания двух файлов (аналог diff)

Проект на GitHub

diff-so-fancy дает вам более привлекательные различия для сравнения строк, файлов, каталогов и изменений git. Подсветка изменений значительно упрощает обнаружение изменений, и вы можете настроить макет вывода и цвета

10. entr - следит за изменениями (стандартный watcher)

Проект на GitHub

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

11. exiftool - чтение и запись метаданных

Проект на GitHub

ExifTool - это удобная утилита для чтения, записи, удаления и создания метаданных для широкого спектра типов файлов. Никогда больше случайно не сообщайте о своем местоположении, когда делитесь фотографией!

12. jdupes - поиск дубликатов

Проект на GitHub

jdupes используется для поиска и/или удаления дубликатов файлов в указанных каталогах. Это полезно для освобождения места на диске.

13. fzf - поиск файлов (аналог find)

Проект на GitHub

fzf - это чрезвычайно мощный и простой в использовании инструмент поиска и фильтрации файлов. Это позволяет вам искать строку или шаблон по файлам. У fzf также есть плагины, доступные для большинства сред разработки (IDE), для отображения мгновенных результатов во время поиска. В этом посте Алексея Самошкина освещаются некоторые из его вариантов использования.

14. hyperfine - консольный benchmarking

Проект на GitHub

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

15. just - создание скриптов для выполнения команд (аналог make)

Проект на GitHub

just похож на make, но с некоторыми приятными дополнениями. Это позволяет вам группировать команды ваших проектов в повторные копии, которые можно легко перечислить и запустить. Поддерживает псевдонимы, позиционные аргументы, различные оболочки, интеграцию dotenv, взаимозаменяемость строк и практически все остальное, что вам может понадобиться.

16. jq - работа с JSON

Проект на GitHub

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

17. most - многооконный пейджер (аналог less)

Проект

most - это пейджер для чтения длинных файлов или вывода команд. most поддерживает несколько окон и имеет возможность не переносить текст.

18. procs - диспетчер задач (аналог ps)

Проект на GitHub

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

19. rip - удаление файлов (аналог rm)

Проект на GitHub

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

20. ripgrep - поиск в файлах (аналог grep)

Проект на GitHub

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

21. rsync - быстрая инкрементная передача файлов

Проект на GitHub

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

22. sd - поиск и замена (аналог sed)

Проект на GitHub

sd - это простой, быстрый и интуитивно понятный инструмент поиска и замены, основанный на строковых литералах. Он может быть выполнен для файла, всего каталога или любого передаваемого текста.

23. tre - иерархия каталогов (аналог tree)

Проект на GitHub

tre выводит древовидный список файлов для вашего текущего или указанного каталога с цветами. При запуске с параметром -e он нумерует каждый элемент и создает временный псевдоним, который вы можете использовать для быстрого перехода к этому местоположению.

24. xsel - доступ к буферу обмена

Проект на GitHub

xsel позволяет вам читать и записывать в буфер обмена X Selection с помощью командной строки. Это полезно для передачи вывода команды в буфер обмена или скопированных данных в команду

25. bandwhich - мониторинг сети

Проект на GitHub

Отображение использования пропускной способности, информации о соединении, исходящих хостах и DNS-запросах в режиме реального времени

Дополнительная информация

Что не было включено в статью:

  • Этот список не включает основы, такие как Vim, Tmux, Ranger, ZSH, Git и т.д., Которые вы, вероятно, уже используете.

  • Я также не включила ничего слишком нишевого или специфичного только для небольшого числа пользователей.

  • Не включила инструменты, которые поддерживаются только одной системой и являются специфичными именно для неё (MacOS, Linux etc).

  • Не включила приложения, которые относятся к терминалу, но не являются приложениями CLI (например, эмуляторами терминалов).

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

Заключение

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

Только добра.

upd 22.01.23 18:00: добавил заключение.
upd 22.01.23 19:35: исправление мелких ошибок.

Tags:
Hubs:
Total votes 114: ↑107 and ↓7+100
Comments83

Articles