https://linuxize.com/post/curl-command-examples
If curl is not installed you can easily install it using the package manager of your distro.
Curl Command SyntaxBefore going into how to use the curl command, let’s start by reviewing the basic syntax.The curl utility expressions take the following form:
In the following example we are retrieving the
This command above will print the source-code of the
If you don’t specify the protocol curl will try to guess the protocol you want to use and it will default to
Uppercase
and suddenly your connection drops you can resume the download with:
As you can see from the outputs above if the site supports HTTP/2, curl will print
If you have curl version
In the command above we have also used the
In situations like this to emulate a different browser pass the
The command above will emulate Firefox 60 requesting the page from
This option is useful when you don’t want curl to consume all the available bandwidth.
The command above will list all files and directories in the user’s home directory.
You can download a file from the FTP server with:
To upload a file to the FTP server use the
In the following example we are downloading the Oracle Java JDK file
Curl Command Examples
What is Curl?
Curl
is command line utility for transferring data from or to a server
designed to work without user interaction. With curl you can download or
upload data using one of the supported protocols including HTTP, HTTPS,
SCP, SFTP and FTP. Curl provides a number of options allowing you to
resume transfers, limit the bandwidth, proxy support, user
authentication and much more.
Install Curl
The curl package is pre-installed on most Linux distributions today.
To check whether the curl package is installed on your system, open up your console, type curl
and press enter. If you have curl installed the system will print curl: try 'curl --help' or 'curl --manual' for more information
, otherwise you will see something like curl command not found
.If curl is not installed you can easily install it using the package manager of your distro.
Install Curl on Ubuntu and Debian
sudo apt install curl
Install Curl on CentOS and Fedora
sudo yum install curl
Curl Command Syntaxcurl [options] [URL...]
options
- The Curl options starting with one or two dashes.URL
- URL of the remote server.
How to Use Curl
In it’s simplest form when used without any option, curl will display the resource specified in the [url] to the standard output.In the following example we are retrieving the
example.com
homepage:
curl example.com
example.com
homepage in your terminal window.If you don’t specify the protocol curl will try to guess the protocol you want to use and it will default to
HTTP
.How to Save the Curl Output to a File
To save the result of the curl command you can use either the
Lowercase -o
or -O
flags.-o
saves the file with a predefined filename, which in the example below is vue-v2.5.16.js
:curl -o vue-v2.5.16.js https://cdn.jsdelivr.net/npm/vue/dist/vue.js
-O
will save the file with its original filename, which in the example below is vue.js
:curl -O https://cdn.jsdelivr.net/npm/vue/dist/vue.js
How to Download Multiple files with Curl
To download multiple files at once you can use multiple
-O
flags followed by the URL to the file you want to download. In the
following example we are downloading the Arch Linux and Debian iso
files:curl -O http://mirrors.edge.kernel.org/archlinux/iso/2018.06.01/archlinux-2018.06.01-x86_64.iso \
-O https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-9.4.0-amd64-netinst.iso
How to resume a download with Curl
You can resume a download by using the
For example, if you are downloading the Ubuntu 18.04 iso file using the following command:-C -
option. This is useful if your connection drops during a download of a
large file and instead of starting the download from scratch you can
continue the previous one.curl -O http://releases.ubuntu.com/18.04/ubuntu-18.04-live-server-amd64.iso
curl -C - -O http://releases.ubuntu.com/18.04/ubuntu-18.04-live-server-amd64.iso
Get the HTTP Headers of a URL with Curl
To fetch only the HTTP headers of the specified resource use the
-I
flag:curl -I --http2 https://www.ubuntu.com/
How to Test if a Website Supports HTTP/2 with Curl
To check if a particular URL supports the new HTTP/2 protocol, fetch the HTTP Headers with
-I
along with the --http2
flag:curl -I --http2 -s https://linuxize.com/ | grep HTTP
HTTP/2 200
curl -I --http2 -s https://www.ubuntu.com/ | grep HTTP
HTTP/1.1 200 OK
HTTP/2.0 200
otherwise it will print HTTP/1.1 200
.If you have curl version
7.47.0
or newer you do not need to use the --http2
flag because HTTP/2 is enabled by default for all HTTPS connections.In the command above we have also used the
-s
flag, which tells curl to run in a silent (quiet) and hides the progress meter and error messages.How to Follow Redirects with cURL
If you try to retrieve the google.com homepage without
www
you will notice the following:curl google.com
As you can see from the output above
In these cases, you can use the google.com
redirects to the www version and because by default curl doesn’t follow
the HTTP Location headers you are not getting the source of the Google
homepage.-L
flag which instructs curl to follow any redirect until it reaches the final destination:curl -L google.com
How to Change the Curl User-Agent
Sometimes
when downloading a file, the remote server may be set to block the Curl
User-Agent or maybe the page you want to download serves completely
different content depending on the visitor device and browser.
-A
flag:curl -A "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0" https://getfedora.org/
getfedora.org
How to Specify a Maximum Transfer Rate
To limit the data transfer rate use the
The following command will download the Go binary and limit the download speed to 1mb:--limit-rate
flag. The value can be expressed in bytes, kilobytes with the k
suffix, megabytes with the m
suffix and gigabytes with the g
suffixcurl --limit-rate 1m -O https://dl.google.com/go/go1.10.3.linux-amd64.tar.gz
How to Transfer Files via FTP with Curl
To access a protected FTP server with the curl command you need to pass the
-u
flag and specify the username and password as show bellow:curl -u FTP_USERNAME:FTP_PASSWORD ftp://ftp.example.com/
You can download a file from the FTP server with:
curl -u FTP_USERNAME:FTP_PASSWORD ftp://ftp.example.com/file.tar.gz
-T
followed by the name of the file you want to upload:curl -T newfile.tar.gz -u FTP_USERNAME:FTP_PASSWORD ftp://ftp.example.com/
How to Send Cookies with Curl
When
making requests using curl, no cookies are sent or stored by default.
Sometimes you may need to make an HTTP request with specific cookies to
access a remote resource or to debug an issue.
To send cookies to a server, use the -b
switch followed by a filename containing the cookies or a string.In the following example we are downloading the Oracle Java JDK file
jdk-10.0.2_linux-x64_bin.rpm
homepage and passing a cookie named oraclelicense
with value a
.curl -L -b "oraclelicense=a" -O http://download.oracle.com/otn-pub/java/jdk/10.0.2+13/19aef61b38124481863b1413dce1855f/jdk-10.0.2_linux-x64_bin.rpm
Conclusion
The
examples shown in this tutorial are simple, but demonstrate the most
used curl options and are meant to try and help you understand how the
curl command work.
If you want to learn more about curl visit the Curl Documentation page.
No comments:
Post a Comment