- PVSM.RU - https://www.pvsm.ru -

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

Введение

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

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

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

Проект на GitHub [1]

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

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

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

Проект на GitHub [2]

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

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

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

Проект на GitHub [3]

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

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

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

Проект на GitHub [4]

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

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

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

Проект на GitHub [5]

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

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

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

Проект на GitHub [6]

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

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

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

Проект на GitHub [7]

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

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

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

Проект на GitHub [11]

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

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

Проект на GitHub [12]

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

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

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

Проект на GitHub [13]

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

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

Проект на GitHub [14]

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

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

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

Проект на GitHub [15]

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

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

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

Проект на GitHub [16]

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

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

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

Проект на GitHub [19]

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

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

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

Проект на GitHub [20]

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

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

Проект на GitHub [21]

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

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

Проект [23]

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

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

Проект на GitHub [24]

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

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

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

Проект на GitHub [25]

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

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

Проект на GitHub [26]

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

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

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

Проект на GitHub [27]

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

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

Проект на GitHub [28]

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

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

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

Проект на GitHub [29]

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

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

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

Проект на GitHub [30]

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

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

Проект на GitHub [31]

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

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

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

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

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

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

  • Ничего системного или кроссплатформенного (Linux / Unix, macOS) не включено

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

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

Заключение

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

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

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

Автор: Семён

Источник [32]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/bash/382241

Ссылки в тексте:

[1] GitHub: https://github.com/nvbn/thefuck

[2] GitHub: https://github.com/ajeetdsouza/zoxide

[3] GitHub: https://github.com/tldr-pages/tldr

[4] GitHub: https://github.com/boyter/scc

[5] GitHub: https://github.com/ogham/exa

[6] GitHub: https://github.com/muesli/duf

[7] GitHub: https://github.com/aria2/aria2

[8] функциями: https://aria2.github.io/manual/en/html/README.html

[9] опций: https://aria2.github.io/manual/en/html/aria2c.html

[10] ziahamza/webui-aria2: https://github.com/ziahamza/webui-aria2

[11] GitHub: https://github.com/sharkdp/bat

[12] GitHub: https://github.com/so-fancy/diff-so-fancy

[13] GitHub: https://github.com/eradman/entr

[14] GitHub: https://github.com/exiftool/exiftool

[15] GitHub: https://github.com/jbruchon/jdupes

[16] GitHub: https://github.com/junegunn/fzf

[17] плагины: https://github.com/junegunn/fzf/wiki/Related-projects

[18] этом : https://www.freecodecamp.org/news/fzf-a-command-line-fuzzy-finder-missing-demo-a7de312403ff/

[19] GitHub: https://github.com/sharkdp/hyperfine

[20] GitHub: https://github.com/casey/just

[21] GitHub: https://github.com/stedolan/jq

[22] площадка jq: https://jqplay.org/

[23] Проект: https://www.jedsoft.org/most/

[24] GitHub: https://github.com/dalance/procs

[25] GitHub: https://github.com/nivekuil/rip

[26] GitHub: https://github.com/BurntSushi/ripgrep

[27] GitHub: https://rsync.samba.org/

[28] GitHub: https://github.com/chmln/sd

[29] GitHub: https://github.com/dduan/tre

[30] GitHub: https://github.com/kfish/xsel

[31] GitHub: https://github.com/imsnif/bandwhich

[32] Источник: https://habr.com/ru/post/711968/?utm_source=habrahabr&utm_medium=rss&utm_campaign=711968