Команда curl · 4 min read · Sep 16, 2025

Учебник по команде curl в Linux для начинающих (5 примеров)

Команда curl — это мощный и универсальный инструмент, используемый для передачи данных на сервер или с него с использованием различных протоколов, таких как HTTP, HTTPS, FTP и других. Она расшифровывается как “Client URL” и обычно используется для веб-запросов, позволяя пользователям загружать файлы, отправлять данные через POST-запросы и даже взаимодействовать с RESTful API непосредственно из командной строки. Команда curl может выполнять широкий спектр задач, от простых загрузок файлов до сложных многокомпонентных форм, и часто используется в скриптах для автоматизации благодаря своей гибкости и способности предоставлять подробный вывод, что делает её незаменимым инструментом в среде Linux.

В этом учебнике мы обсудим команду curl, которая, среди прочего, позволяет вам загружать данные из Интернета. Обратите внимание, что примеры, обсуждаемые в этой статье, были протестированы на Ubuntu 24.04.

Команда curl в Linux

Команда curl позволяет вам загружать и загружать данные через командную строку Linux. Вот её синтаксис:

curl [options] [URL...]

А вот что говорит страница man об этой команде:

curl is a tool to transfer data from or to a server, using one of the  
supported protocols (DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP,  
IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS,  
TELNET and TFTP). The command is designed to work without user inter?  
action.  

curl offers a busload of useful tricks like proxy support, user authen?  
tication, FTP upload, HTTP post, SSL connections, cookies, file trans?  
fer resume, Metalink, and more. As you will see below, the number of  
features will make your head spin!  

curl is powered by libcurl for all transfer-related features. See  
libcurl(3) for details.

Следующие примеры в формате вопросов и ответов должны дать вам лучшее представление о том, как работает curl.

Вопрос 1. Как работает команда curl?

Основное использование довольно простое — просто передайте URL в качестве входных данных команде curl и перенаправьте вывод в файл.

Например:

curl http://releases.ubuntu.com/24.04/ubuntu-24.04-desktop-amd64.iso.torrent > test.torrent

Обратите внимание, что вы также можете использовать здесь опцию -o.

-o, --output   
Write output to  instead of stdout.

Возвращаясь к нашему примеру, в то время как данные были загружены в файл ‘test.torrent’ на моей системе, следующий вывод был произведен в командной строке:

Вот что говорит страница man об этом индикаторе прогресса, который отображается в выводе:

curl normally displays a progress meter during operations, indicating  
the amount of transferred data, transfer speeds and estimated time  
left, etc.  

curl displays this data to the terminal by default, so if you invoke  
curl to do an operation and it is about to write data to the terminal,  
it disables the progress meter as otherwise it would mess up the output  
mixing progress meter and response data.  

If you want a progress meter for HTTP POST or PUT requests, you need to  
redirect the response output to a file, using shell redirect (>), -o  
[file] or similar.  

It is not the same case for FTP upload as that operation does not spit  
out any response data to the terminal.  

If you prefer a progress "bar" instead of the regular meter, -# is your  
friendly.

Вопрос 2. Как заставить curl использовать то же имя файла для загрузки?

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

curl -O http://releases.ubuntu.com/18.04/ubuntu-18.04-desktop-amd64.iso.torrent

Таким образом, в этом случае был создан файл с именем ‘ubuntu-18.04-desktop-amd64.iso.torrent’ в выводе на моей системе.

Вопрос 3. Как загрузить несколько файлов с помощью curl?

Это тоже несложно — просто передайте URL следующим образом:

curl -O [URL1] -O [URL2] -O [URL3] ...

Например:

curl -O http://releases.ubuntu.com/18.04/ubuntu-18.04-desktop-amd64.iso.torrent -O http://releases.ubuntu.com/18.04/ubuntu-18.04-live-server-amd64.iso.torrent

Вот команда в действии:

Таким образом, вы можете видеть, что прогресс загрузки для обоих URL был показан в выводе.

Вопрос 4. Как решить проблему ‘перемещено’?

Иногда, когда вы передаете URL команде curl, вы получаете ошибки, такие как “Перемещено” или “Перемещено навсегда”. Это обычно происходит, когда входной URL перенаправляет на другой URL. Например, вы открываете веб-сайт, скажем, oneplus.com, и он перенаправляет на URL для вашей страны (например, oneplus.in), поэтому вы получаете ошибку, подобную следующей:

Если вы хотите, чтобы curl следовал перенаправлению, используйте опцию командной строки -L.

curl -L http://www.oneplus.com

Вопрос 5. Как возобновить загрузку с точки прерывания?

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

Например:

curl -C - -O http://releases.ubuntu.com/18.04/ubuntu-18.04-desktop-amd64.iso

Следующий скриншот показывает команду curl, возобновляющую загрузку после того, как она была прервана.

Заключение

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

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.