Master the curl Command: Transfer Data Like a Pro in Linux

Fetch data with the curl command!

What is the curl Command?

Imagine the curl command as a Swiss Army knife for data transfer, supporting protocols like HTTP, HTTPS, FTP, and more. It’s ideal for downloading files, testing APIs, or fetching web content.

Why curl is Essential

API Testing

Interact with RESTful APIs.

File Downloads

Fetch files from various protocols.

Scripting

Automate data retrieval tasks.

Syntax and Options

The curl command transfers data:

curl [options] URL
        

Key options:

  • -o: Save output to a file.
  • -X: Specify HTTP method (e.g., GET, POST).
  • -H: Add custom headers.
  • -d: Send data in POST requests.
  • -v: Verbose output for debugging.

Real-World Examples

1. Fetch Web Content

Type this:

curl https://example.com
        

Output: Displays HTML of the website.

2. Download a File

Save a file locally:

curl -o example.html https://example.com
        

Output: Saves example.html locally.

3. Send a POST Request

Send data to an API:

curl -X POST -d "name=John" https://api.example.com/submit
        

Output: Sends POST request with data.

4. Add Custom Headers

Include headers in a request:

curl -H "Authorization: Bearer token123" https://api.example.com/data
        

Output: Sends request with custom header.

5. Verbose Debugging

Debug a request:

curl -v https://example.com
        

Output: Shows detailed request/response info.

Advanced Usage

Master curl with these techniques:

  • JSON Handling: Use -H "Content-Type: application/json" for JSON APIs.
  • File Uploads: Use -F for multipart form data.
  • Follow Redirects: Use -L to follow HTTP redirects.
  • Script Automation: Integrate with jq for JSON parsing.

Example: POST JSON data:

curl -X POST -H "Content-Type: application/json" -d '{"name":"John"}' https://api.example.com
        

Pro Tips

API Testing: Use -v for debugging responses.

Automation: Combine with cron for scheduled tasks.

Secure Requests: Use --cacert for custom SSL certificates.

Common Mistakes to Avoid

Avoid these pitfalls with curl:

  • Missing Headers: Specify Content-Type for APIs.
  • Ignoring Redirects: Use -L for redirected URLs.
  • Insecure SSL: Use -k only for testing.

Explore More Linux Commands

Master Linux with our expert guides!