- PVSM.RU - https://www.pvsm.ru -
Многие из вас каждый день работают в терминале, так давайте улучшим это времяпровождение вместе. Существует множество полезных инструментов CLI, которые могут сделать вашу жизнь в командной строке проще, быстрее и в целом веселее.
В этом посте описан мой топ-25 обязательных инструментов CLI, на которые я привыкла полагаться. Если тут нет вашего любимого - дайте мне знать в комментариях :)
Проект на GitHub [1]
thefuck
- это одна из тех утилит, без которых вы не сможете жить, как только попробуете ее. Всякий раз, когда вы неправильно вводите команду и получаете сообщение об ошибке, просто запустите ее, и она автоматически исправит ее. Используйте up / down, чтобы выбрать исправление, или просто пропишитеfuck -yeah
, чтобы она автоматические исправила ошибку на своё усмотрение.
Проект на GitHub [2]
z
позволяет вам перейти в любую папку без необходимости запоминать или указывать полный путь до неё. Он запоминает, какие папки вы посетили, так что вы можете быстро перемещаться - вам даже не нужно вводить полное название папки. Он также имеет опцию интерактивного выбора, используяfzf
, чтобы вы могли фильтровать результаты каталога в реальном времени.
Проект на GitHub [3]
tldr
- это огромная коллекция справочных страниц, поддерживаемых сообществом. В отличие от традиционных документаций, она обобщена, содержит полезные примеры использования и красиво оформлена для удобства чтения.
Проект на GitHub [4]
scc
дает вам информацию по количеству строк кода, написанных на каждом языке для конкретного каталога. Он также показывает некоторые забавные статистические данные, такие как ориентировочная стоимость разработки и информация о сложности. Он невероятно быстр, очень точен и поддерживает широкий спектр языков.
Проект на GitHub [5]
exa
- это современная замена команды ls на основе Rust. Он может отображать типы файлов в виде значков, цветовую палитру, информацию о файле / папке и имеет несколько выходных форматов - дерево, сетку или список.
Проект на GitHub [6]
duf
отлично подходит для отображения информации о дисках и проверки свободного места. Он выдает четкие и красочные данные и включает в себя опции для сортировки и настройки результатов.
Проект на GitHub [7]
aria2
- это легкая утилита, которая поддерживает HTTP / HTTPS, FTP, SFTP, BitTorrent и Metalink с поддержкой управления через интерфейс RPC. Он невероятно богат функциями [8] и имеет массу опций [9]. Есть также ziahamza/webui-aria2 [10] - приятный компаньон веб-интерфейса.
Проект на GitHub [11]
bat
- это клонcat
с подсветкой синтаксиса и интеграцией сgit
. Написанный на Rust, он очень производителен и имеет несколько вариантов настройки вывода и цветовых тем. Существует поддержка автоматической конвейеризации и объединения файлов.
Проект на GitHub [12]
diff-so-fancy
дает вам более привлекательные различия для сравнения строк, файлов, каталогов и измененийgit
. Подсветка изменений значительно упрощает обнаружение изменений, и вы можете настроить макет вывода и цвета
Проект на GitHub [13]
entr
позволяет запускать произвольную команду при каждом изменении файла. Вы можете передать файл, каталог, символическую ссылку или регулярное выражение, чтобы указать, какие файлы он должен просматривать.
Проект на GitHub [14]
ExifTool
- это удобная утилита для чтения, записи, удаления и создания метаданных для широкого спектра типов файлов. Никогда больше случайно не сообщайте о своем местоположении, когда делитесь фотографией!
Проект на GitHub [15]
fdupes
используется для поиска и/или удаления дубликатов файлов в указанных каталогах. Это полезно для освобождения места на диске.
Проект на GitHub [16]
fzf
- это чрезвычайно мощный и простой в использовании инструмент поиска и фильтрации файлов. Это позволяет вам искать строку или шаблон по файлам. У fzf также есть плагины [17], доступные для большинства сред разработки (IDE), для отображения мгновенных результатов во время поиска. В этом [18]посте Алексея Самошкина освещаются некоторые из его вариантов использования.
Проект на GitHub [19]
hyperfine
позволяет легко проводить точный бенчмарк и сравнивать произвольные команды или скрипты. Он заботится о прогреве, очищает кэш для получения точных результатов и предотвращает вмешательство других программ. Он также может экспортировать результаты в виде необработанных данных и генерировать диаграммы.
Проект на GitHub [20]
just
похож наmake
, но с некоторыми приятными дополнениями. Это позволяет вам группировать команды ваших проектов в повторные копии, которые можно легко перечислить и запустить. Поддерживает псевдонимы, позиционные аргументы, различные оболочки, интеграциюdotenv
, взаимозаменяемость строк и практически все остальное, что вам может понадобиться.
Проект на GitHub [21]
jq
похож наsed
, но для JSON - вы можете использовать его для нарезки, фильтрации, сопоставления и преобразования структурированных данных с легкостью. Его можно использовать для написания сложных запросов для извлечения данных JSON или манипулирования ими. Существует также игровая площадка jq [22], которую вы можете использовать, чтобы опробовать ее или сформулировать запросы с живой обратной связью.
Проект [23]
most
- это пейджер для чтения длинных файлов или вывода команд.most
поддерживает несколько окон и имеет возможность не переносить текст.
Проект на GitHub [24]
process
- это простой в навигации диспетчер задач, он имеет цветную подсветку, упрощает сортировку и поиск процессов, имеет древовидный вид и обновления в режиме реального времени.
Проект на GitHub [25]
rip
это безопасный, эргономичный и производительный инструмент для удаления файлов. Это позволяет вам интуитивно удалять файлы и каталоги, а также легко восстанавливать удаленные файлы.
Проект на GitHub [26]
ripgrep
- это инструмент поиска, ориентированный на строку, который рекурсивно выполняет поиск шаблона регулярного выражения в текущем каталоге. Он может игнорировать содержимое.gitignore
и пропускать двоичные файлы. Он способен выполнять поиск в сжатых архивах или выполнять поиск только по определенному расширению и понимает файлы, использующие различные методы кодирования.
Проект на GitHub [27]
rsync
позволяет копировать большие файлы локально, на удаленные хосты или внешние диски и наоборот. Он может использоваться для синхронизации файлов в нескольких местах и идеально подходит для создания, обновления и восстановления резервных копий.
Проект на GitHub [28]
sd - это простой, быстрый и интуитивно понятный инструмент поиска и замены, основанный на строковых литералах. Он может быть выполнен для файла, всего каталога или любого передаваемого текста.
Проект на GitHub [29]
tre
выводит древовидный список файлов для вашего текущего или указанного каталога с цветами. При запуске с параметром-e
он нумерует каждый элемент и создает временный псевдоним, который вы можете использовать для быстрого перехода к этому местоположению.
Проект на GitHub [30]
xsel
позволяет вам читать и записывать в буфер обменаX Selection
с помощью командной строки. Это полезно для передачи вывода команды в буфер обмена или скопированных данных в команду
Проект на GitHub [31]
Отображение использования пропускной способности, информации о соединении, исходящих хостах и DNS-запросах в режиме реального времени
Что не было включено в статью:
Этот список не включает основы, такие как 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
Нажмите здесь для печати.