Статью скопировал с habr, чтобы было под рукой

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

Введение Многие из вас каждый день работают в терминале, так давайте улучшим это времяпровождение вместе. Существует множество полезных инструментов CLI, которые могут сделать вашу жизнь в командной строке проще, быстрее и в целом веселее. В этом посте описан мой топ-25 обязательных инструментов CLI, на которые я привыкла полагаться. Если тут нет вашего любимого - дайте мне знать в комментариях :) 1. thefuck - авто-исправление ошибок Проект на GitHub thefuck - это одна из тех утилит, без которых вы не сможете жить, как только попробуете ее. Всякий раз, когда вы неправильно вводите команду и получаете сообщение об ошибке, просто запустите ее, и она автоматически исправит ее. Используйте up / down, чтобы выбрать исправление, или просто пропишитеfuck -yeah, чтобы она автоматические исправила ошибку на своё усмотрение.

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

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

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

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

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

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

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

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

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

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

  11. fdupes - поиск дубликатов Проект на GitHub fdupes используется для поиска и/или удаления дубликатов файлов в указанных каталогах. Это полезно для освобождения места на диске.

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

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

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

  15. jq - работа с JSON Проект на GitHub jq похож на sed, но для JSON - вы можете использовать его для нарезки, фильтрации, сопоставления и преобразования структурированных данных с легкостью. Его можно использовать для написания сложных запросов для извлечения данных JSON или манипулирования ими. Существует также игровая площадка jq, которую вы можете использовать, чтобы опробовать ее или сформулировать запросы с живой обратной связью.
  16. most - многооконный пейджер (аналог less) Проект most - это пейджер для чтения длинных файлов или вывода команд. most поддерживает несколько окон и имеет возможность не переносить текст.
  17. procs - диспетчер задач (аналог ps) Проект на GitHub process - это простой в навигации диспетчер задач, он имеет цветную подсветку, упрощает сортировку и поиск процессов, имеет древовидный вид и обновления в режиме реального времени.

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

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

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

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

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

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

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

Дополнительная информация Что не было включено в статью: Этот список не включает основы, такие как Vim, Tmux, Ranger, ZSH, Git и т.д., Которые вы, вероятно, уже используете. Я также не включила ничего слишком нишевого или специфичного только для небольшого числа пользователей. Ничего системного или кроссплатформенного (Linux / Unix, macOS) не включено Не включила приложения, которые относятся к терминалу, но не являются приложениями CLI (например, эмуляторами терминалов). Для большинства перечисленных проектов существует множество альтернатив, которые достигают аналогичных результатов, для краткости они также не были включены.