Аналог curl в linux

Обновлено: 04.07.2024

Обе эти curl а также wget используются для загрузки файлов и т. д. Есть ли основания использовать один поверх другого?

4 ответа

После того как вы определили "правильное использование", используйте wget ,

Зачем? Вот почему:

Рекурсивный! Основная сильная сторона wget по сравнению с curl - это возможность рекурсивной загрузки или даже просто загрузка всего, на что есть ссылки, с удаленного ресурса, будь то страница HTML или список каталогов FTP.

библиотека curl работает на libcurl - кроссплатформенная библиотека со стабильным API, которая может использоваться всеми без исключения. Эта разница является существенной, поскольку она создает совершенно другое отношение к внутренним действиям. Также немного сложнее создать библиотеку, чем "простой" инструмент командной строки.

трубы. curl работает больше как традиционный Unix cat команда, он отправляет больше материала stdout и читает больше из stdin "все это труба". wget больше похоже cp , используя тот же аналог.

Единственный выстрел. curl в основном сделан, чтобы сделать единовременные передачи данных. Он передает только URL-адреса, указанные пользователем, и не содержит никакой рекурсивной логики загрузки или какого-либо синтаксического анализатора HTML.

Более портативный. curl строит и работает на большем количестве платформ, чем wget , Например: OS/400, TPF и другие более "экзотические" платформы, которые не являются прямыми клонами Unix.

Больше библиотек SSL и поддержка SSL. curl может быть построен с одной из одиннадцати (11!) различных библиотек SSL/TLS, и он предлагает больше контроля и более широкую поддержку для деталей протокола. curl поддерживает закрепление открытого ключа.

НОСКИ. curl поддерживает несколько версий протокола SOCKS для доступа к прокси

curl опоры gzip и раздувать Content-Encoding и делает автоматическую распаковку

Гораздо больше активности разработчиков. Хотя это можно обсудить, я рассмотрю три показателя: активность в списке рассылки, частота принятия исходного кода и частота выпуска. Любой, кто следит за этими двумя проектами, может увидеть, что у curl-проекта намного более высокие темпы во всех этих областях, и так было уже более 10 лет. Сравните на openhub

wget только командная строка Там нет библиотеки.

Рекурсивно! wget Главная сильная сторона по сравнению с curl - это возможность рекурсивной загрузки или даже просто загрузка всего, на что ссылаются, с удаленного ресурса, будь то страница HTML или список каталогов FTP.

Старше wget восходит к 1995 году, в то время как curl можно отследить не ранее конца 1996 года.

GPL. wget 100% GPL v3. curl является лицензированным MIT.

GNU. wget является частью проекта GNU, и все авторские права принадлежат FSF. Проект curl является полностью автономным и независимым, без родительского контроля со стороны организации, почти со всеми авторскими правами, принадлежащими Дэниелу.

wget не требует дополнительных опций для простой загрузки удаленного URL в локальный файл, в то время как curl требует -o или же -O ,

wget поддерживает общедоступный список суффиксов для обработки доменов cookie, curl - нет.

wget поддерживает только GnuTLS или OpenSSL для поддержки SSL/TLS

wget не поддерживает SOCKS

Его способность восстанавливаться после преждевременно прерванной передачи и продолжать загрузку не имеет аналога в curl.

Используя более современные альтернативы наряду со старыми инструментами командной строки, можно получить больше удовольствия и даже повысить производительность труда.


В повседневной работе в Linux / Unix мы используем множество инструментов командной строки — например, du для мониторинга использования диска и системных ресурсов. Некоторые из этих инструментов существуют уже давно. Например, top появился в 1984 году, а первый релиз du датируется 1971 годом.

За прошедшие годы эти инструменты были модернизированы и портированы на разные системы, но в целом далеко не ушли от своих первых версий, их внешний вид и usability также сильно не изменились.

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

1. ncdu vs du

NCurses Disk Usage (ncdu) похож на du, но с интерактивным интерфейсом на основе библиотеки curses. ncdu отображает структуру каталогов, которые занимают большую часть вашего дискового пространства.

ncdu анализирует диск, а затем отображает результаты, отсортированные по наиболее часто используемым каталогам или файлам, например:


По записям можно перемещаться с помощью клавиш со стрелками. Если вы нажмёте Enter, ncdu отобразит содержимое выбранного каталога:


Вы можете использовать этот инструмент, чтобы, например, определить, какие файлы занимают больше всего дискового пространства. В предыдущий каталог можно перейти, нажав клавишу со стрелкой влево. С помощью ncdu вы можете удалить файлы, нажав клавишу d. Перед удалением он запрашивает подтверждение. Если вы хотите отключить функцию удаления, чтобы предотвратить случайную потерю ценных файлов, используйте опцию -r для включения режима доступа только для чтения: ncdu -r.

ncdu доступен для многих платформ и дистрибутивов Linux. Например, вы можете использовать dnf для его установки на Fedora непосредственно из официальных репозиториев:

2. htop vs top

Htop — это интерактивная утилита для просмотра процессов, похожая на top, но из коробки обеспечивающая приятное взаимодействие с пользователем. По умолчанию htop отображает ту же информацию, что и top, но в более наглядном и красочном виде.

По умолчанию htop выглядит так:


В отличие от top:


Кроме того, в верхней части htop отображает обзорную информацию о системе, а нижней части — панель для запуска команд с помощью функциональных клавиш. Вы можете настроить её, нажав F2, чтобы открыть экран настройки. В настройках можно изменить цвета, добавить или удалить метрики или изменить параметры отображения панели обзора.

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

3. tldr vs man

Инструмент командной строки tldr отображает упрощённую справочную информацию о командах, в основном примеры. Его разработало сообщество tldr pages project.


TLDR означает «слишком длинно; не читал»: то есть, некоторый текст был проигнорирован из-за его чрезмерной многословности. Название подходит для этого инструмента, потому что man-страницы, хотя и полезны, но иногда бывают слишком длинными.

Для Fedora tldr был написан на Python. Вы можете установить его с помощью менеджера dnf. Обычно для работы инструмента необходим доступ к интернету. Но клиент Python в Fedora позволяет загружать и кэшировать эти страницы для автономного доступа.

4. jq vs sed/grep

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

Основное преимущество jq перед стандартными инструментами обработки текста, такими как grep и sed, заключается в том, что он понимает структуру данных JSON, позволяя создавать сложные запросы в одном выражении.

Например, вы пытаетесь найти названия контейнеров в этом файле JSON:


Запустите grep для поиска строки name:


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

Чтобы получить этот же результат с помощью jq, достаточно написать:


Эта команда выдаст вам имена обоих контейнеров. Если вы ищете только имя второго контейнера, добавьте индекс элемента массива в выражение:


Поскольку jq знает о структуре данных, он даёт те же результаты, даже если формат файла незначительно изменится. grep и sed в этом случае могут работать некорректно.

У jq много функций, но для их описания нужна ещё одна статья. Для получения дополнительной информации обратитесь к странице проекта jq или к tldr.

5. fd vs find

fd — это упрощённая альтернатива утилите find. Fd не призван заменить её полностью: в нём по умолчанию установлены наиболее распространённые настройки, определяющие общий подход к работе с файлами.

Например, при поиске файлов в каталоге репозитория Git, fd автоматически исключает скрытые файлы и подкаталоги, включая каталог .git, а также игнорирует шаблоны из файла .gitignore. В целом, он ускоряет поиск, выдавая более релевантные результаты с первой попытки.

По умолчанию fd выполняет поиск без учёта регистра в текущем каталоге с цветным выводом. Тот же поиск с использованием команды find требует ввода дополнительных параметров в командной строке. Например, чтобы найти все файлы .md (или .MD) в текущем каталоге, нужно написать такую команду find:


Для fd она выглядит так:


Но в некоторых случаях и для fd требуются дополнительные параметры: например, если вы хотите включить скрытые файлы и каталоги, вы должны использовать опцию -H, хотя обычно при поиске это не требуется.

fd доступен для многих дистрибутивов Linux. В Fedora его можно установить так:

Необязательно от чего-то отказываться

Используете ли вы новые инструменты командной строки Linux? Или сидите исключительно на старых? Но скорее всего, у вас комбо, да? Пожалуйста, поделитесь вашим опытом в комментариях.

На правах рекламы

Многие наши клиенты уже оценили преимущества эпичных серверов!
Это виртуальные серверы с процессорами AMD EPYC, частота ядра CPU до 3.4 GHz. Максимальная конфигурация позволит оторваться на полную — 128 ядер CPU, 512 ГБ RAM, 4000 ГБ NVMe. Спешите заказать!

28 улучшенных Unix-команд, которые заменяют устаревшие аналоги. Забудьте о cat, cd и ls

Многие пользователи Unix-систем знакомы с терминальными командами. Они позволяют моментально выполнять операции с файлами, следить за системой и настраивать её без надобности использовать ПО с графическим интерфейсом. Modern Unix — это коллекция программ, созданных независимыми разработчиками, которые заменят собой стандартные и наиболее распространённые команды. Эти альтернативы удобнее, функциональнее, а порой и быстрее.

bat вместо cat

28 улучшенных Unix-команд, которые заменяют устаревшие аналоги. Забудьте о cat, cd и ls

bat — это аналог часто используемой команды cat для вывода содержимого файлов. В отличие от оригинала, bat умеет подсвечивать синтаксис и не выводит все данные в окно терминала, а открывает файл отдельно, как в текстовом редакторе nano или vim. С помощью отдельных клавиш можно листать содержимое по строке или сразу нескольким.

exa вместо ls

28 улучшенных Unix-команд, которые заменяют устаревшие аналоги. Забудьте о cat, cd и ls

Команда ls используется для отображения списка файлов в текущей директории. exa справляется с этой задачей ещё лучше, предоставляя больше фич — здесь куда больше возможностей отображения (деревом, перевернутой сеткой, списком, таблицей). Эта альтернатива по стандарту выделяет отдельные типы файлов разными цветами, она быстрая, легковесная и удобная для пользователей. Содержимое папок можно отобразить в древовидной структуры.

lsd вместо ls

28 улучшенных Unix-команд, которые заменяют устаревшие аналоги. Забудьте о cat, cd и ls

Ещё одна альтернатива команде ls. Утилита lsd или LSDeluxe умеет выводить список содержимого папок в цветном виде с иконками. А ещё она написана на Rust, что делает её быстрее аналогичных решений. Для правильного отображения иконок придётся дополнительно установить специальный шрифт.

delta вместо diff

28 улучшенных Unix-команд, которые заменяют устаревшие аналоги. Забудьте о cat, cd и ls

delta — это инструмент для сравнения содержимого файлов. В отличие от обычного diff, он умеет подсвечивать синтаксис, имеет оформление в стиле git, возможность сравнивать файлы бок о бок, нумерацию строк и множество других фич. Также может использоваться для команд git: git show или git diff.

dust вместо du

28 улучшенных Unix-команд, которые заменяют устаревшие аналоги. Забудьте о cat, cd и ls

Более удобный и дружелюбный к пользователю аналог команды du, которая позволяет узнать, сколько места на диске занимают директории. В отличие от стандартной утилиты, dust умеет выводить информацию в виде дерева, выделяя в конечных папках самые «тяжёлые» файлы. По стандарту отображает объём не в блоках, а в привычных единицах измерения. Самое «вкусное» — отображение процентного соотношения директорий, позволяющее сразу выявить самые крупные директории. Утилита написана на Rust, отсюда и её название.

duf вместо df

28 улучшенных Unix-команд, которые заменяют устаревшие аналоги. Забудьте о cat, cd и ls

К числу утилит, облегчающих менеджмент свободного места на накопителях, можно отнести и duf — аналог df. Стандартная программа выводит статистику использования всех подключённых дисков. duf делает это лучше — он отображает данные в виде таблицы, окрашивая некоторые элементы цветами и чётко структурируя их. Такое представление намного лучше воспринимается пользователем. Доступен и другой вывод — в формате JSON.

broot вместо команд для навигации

broot — это отличный способ избавиться от команд для навигации по файловой системе. Утилита показывает список директорий в виде интерактивного дерева, позволяя перемещаться стрелками, входить в папки клавишей Enter, возвращаться Esc и открывать файлы. Последние можно искать, копировать и перемещать с помощью команд в специальной строке.

fd вместо find

28 улучшенных Unix-команд, которые заменяют устаревшие аналоги. Забудьте о cat, cd и ls

Простой аналог команды find для поиска файлов по всей системе. fd работает быстро, имеет широкий набор функционала, который, по словам автора, может и не самый мощный, но удобный в использовании для большинства случаев.

ripgrep вместо grep

28 улучшенных Unix-команд, которые заменяют устаревшие аналоги. Забудьте о cat, cd и ls

Инструмент для поиска по содержимому файлов с названием ripgrep быстрее своих аналогов и выдаёт более читабельный вариант, чем стандартный grep. Утилита следует заданным в gitignore правилам и по умолчанию пропускает игнорируемые и скрытые файлы. Предоставляет мощный функционал с поддержкой множества кодировок и поиском по сжатым форматам.

ag вместо grep (и ack)

28 улучшенных Unix-команд, которые заменяют устаревшие аналоги. Забудьте о cat, cd и ls

За командой ag скрывается приложение с названием The Silver Searcher, которое нацелено на поиск по файлам с кодом. Создатель заявляет, что это аналог другой сторонней утилиты ack, но с упором на скорость. Как и предыдущая программа, The Silver Searcher игнорирует файлы, заданные в .gitignore и .hgignore.

fzf вместо обычного поиска

Быстрая программа для поиска по любым спискам, будь то файл или все файлы в директории. Позволяет интерактивно искать по названию, имеет плагин для редактора vim, есть хоткеи и автодополнение.

mcfly вместо стандартной истории

Заменяет обычный поиск по истории команд, запускающийся сочетанием Ctrl+R. McFly представляет из себя интеллектуальный поисковой движок с небольшой встроенной нейросетью, которая в реальном времени выдаёт подсказки исходя из контекста.

choose вместо awk

28 улучшенных Unix-команд, которые заменяют устаревшие аналоги. Забудьте о cat, cd и ls

Быстрый и удобный аналог awk — мощной встроенной команды для работы с текстом и фильтрации нужных данных. choose использует более понятный синтаксис Rust для регулярных выражений, быстрый выбор части файла похож на синтаксис слайсов в Python, обходит конкурентов на больших объёмах данных.

jq вместо sed

28 улучшенных Unix-команд, которые заменяют устаревшие аналоги. Забудьте о cat, cd и ls

Аналог sed, но разработан для работы с JSON-форматом. Проводит операции со структурированными данными в виде потока и выводит соответствующий результат. Написан на C, не имеет зависимостей — достаточно скачать только бинарный файл. Из минусов jq — отсутствие нормальной документации и прекращённая несколько лет назад поддержка.

sd вместо sed

28 улучшенных Unix-команд, которые заменяют устаревшие аналоги. Забудьте о cat, cd и ls

Интуитивная утилита для поиска и замены в файлах. sd хорош тем, что использует более простой синтаксис регулярных выражений, чем обычный sed. Программа не только проще в использовании, но и быстрее стандартной команды.

cheat вместо man

28 улучшенных Unix-команд, которые заменяют устаревшие аналоги. Забудьте о cat, cd и ls

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

tldr вместо man

28 улучшенных Unix-команд, которые заменяют устаревшие аналоги. Забудьте о cat, cd и ls

Как и предыдущая утилита, tldr помогает ориентироваться в тонне команд и аргументов для них. Представляет из себя упрощённый и понятный man, дополняется сообществом, обладает десятками плагинов и выводит текст в цветном и структурированном формате.

bottom вместо top

28 улучшенных Unix-команд, которые заменяют устаревшие аналоги. Забудьте о cat, cd и ls

Кроссплатформенный системный монитор с кастомизируемым интерфейсом и массой функций. Прямо в терминале в реальном времени отображает состояние «железа», нагрузку, а также запущенные процессы.

glances вместо top

28 улучшенных Unix-команд, которые заменяют устаревшие аналоги. Забудьте о cat, cd и ls

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

gtop вместо top

28 улучшенных Unix-команд, которые заменяют устаревшие аналоги. Забудьте о cat, cd и ls

Третья программа в подборке для просмотра статистики о машине. Вдохновлена htop, выдаёт структурированные данные с графиками, меняющимися в реальном времени.

hyperfine вместо сложных замеров скорости

28 улучшенных Unix-команд, которые заменяют устаревшие аналоги. Забудьте о cat, cd и ls

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

gping вместо ping

28 улучшенных Unix-команд, которые заменяют устаревшие аналоги. Забудьте о cat, cd и ls

Тот же ping для проверки соединения с другим узлом сети, но с красивым и информативным графиком.

procs вместо ps

28 улучшенных Unix-команд, которые заменяют устаревшие аналоги. Забудьте о cat, cd и ls

Современная замена команде ps, выводящей список процессов в системе. Показывает данные в удобном для пользователя формате, с цветами и автоматической темой, основанной на цветах терминала. Имеется поиск, добавлена информация, которой нет в обычной ps, больше данных о памяти, древовидное отображение. procs написана на Rust и активно поддерживается разработчиком.

curlie вместо curl

zoxide вместо cd

28 улучшенных Unix-команд, которые заменяют устаревшие аналоги. Забудьте о cat, cd и ls

zoxide — молниеносная и интеллектуальная замена привычной команде cd. Отслеживает наиболее используемые директории и благодаря этому предлагает подсказки.

dog вместо dig

28 улучшенных Unix-команд, которые заменяют устаревшие аналоги. Забудьте о cat, cd и ls

DNS-клиент на Rust, позволяющий узнать адрес узла по доменному имени. Имеет большое количество опций для запросов, цветной вывод, а также отображение данных в JSON-формате.




Надоело работать с идиотским интерфейсом курла

У пользователей нет документации. А если бы и была, они её не стали читать.




Сложноват этот guzzle кстати, не просто разобраться. Хотя возможно сказывается небольшой опыт с OOP. А вообще вещь хорошая, надо будет ознакомиться. API doc есть где то? Нашёл только туториал у них на сайте.


Сложноват этот guzzle кстати, не просто разобраться. Хотя возможно сказывается небольшой опыт с OOP.

Видимо, второе. Использование его реально много проще, чем прямое дёргание curl.


По ссылке User Guide. API doc что то ненашёл что бы каждый метод в алфавитном порядке.


Завязывай с пхп. Если хочешь человеческое ООП - это Python / Ruby. На крайняк Java.


бред бредом погоняется

ООП как самоцель?


Гг. Это прекрасно. Здесь нет никакого ООП. Обычный процедурный интерфейс. Использующий простые структуры. ЧТД.


Хотелось бы OOP интерфейс в котором можно было бы устанавливать/получать cookie через вызов метода



В Python тоже есть интерфейс к курлу и он не особо сильно отличается от php-шного. Использование urllib не всегда приемлемо. Так что для Python тоже не плохо бы использовать прослойку типа guzzle вместо прямой работы с низкоуровневым интерфейсом курла. Кстати что есть наподобие guzzle для python, ruby?

Больше всего нравится OOP в ruby, например краткостью при работе с instance variables, не надо писать self.var или $this->var а просто @var. Это наглядно и удобно.

С тобой все понятно. Продолжай повторять мантру, что селектор члена это ооп.

Читайте также: