Введение
Многие из вас каждый день работают в терминале, так давайте улучшим это времяпровождение вместе. Существует множество полезных инструментов 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. fdupes - поиск дубликатов
Проект на GitHub
fdupes
используется для поиска и/или удаления дубликатов файлов в указанных каталогах. Это полезно для освобождения места на диске.
13. fzf - поиск файлов (аналог find)
Проект на GitHub
fzf
- это чрезвычайно мощный и простой в использовании инструмент поиска и фильтрации файлов. Это позволяет вам искать строку или шаблон по файлам. У fzf также есть плагины, доступные для большинства оболочек и идей, для отображения мгновенных результатов во время поиска. В этом посте Алексея Самошкина освещаются некоторые из его вариантов использования.
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 и т.д., Которые вы, вероятно, уже используете.
-
Я также не включил ничего слишком нишевого или специфичного только для небольшого числа пользователей.
-
Ничего системного или кроссплатформенного (Linux / Unix, macOS) не включено
-
Не включил приложения, которые относятся к терминалу, но не являются приложениями CLI (например, эмуляторами терминалов).
-
Для большинства перечисленных проектов существует множество альтернатив, которые достигают аналогичных результатов, для краткости они также не были включены.
Заключение
В скором времени будет готов еще один перевод такого же плана.
Как обычно, буду рад любому фидбеку относительно представленных утилит в комментариях.Только добра.
upd 22.01.23: добавил заключение.
Автор: Семён