GNU/Linux >> Tutoriels Linux >  >> Ubuntu

La commande Linux curl expliquée avec des exemples

Présentation

Le transfert de données vers et depuis un serveur nécessite des outils prenant en charge les protocoles réseau nécessaires. Linux a plusieurs outils créés à cet effet, les plus populaires étant curl et wget.

Ce tutoriel vous montrera comment utiliser le curl commande et vous fournir une liste exhaustive des options disponibles.

Prérequis

  • Accès à la borne
  • Accès Internet
  • curl installé

Qu'est-ce que la commande curl ?

curl (abréviation de "Client URL") est un outil de ligne de commande qui permet le transfert de données sur divers protocoles réseau. Il communique avec un serveur Web ou d'application en spécifiant une URL pertinente et les données qui doivent être envoyées ou reçues.

curl est alimenté par libcurl, une bibliothèque portable de transfert d'URL côté client. Vous pouvez l'utiliser directement sur la ligne de commande ou l'inclure dans un script. Les cas d'utilisation les plus courants pour curl sont :

  • Télécharger des fichiers depuis Internet
  • Tests des points de terminaison
  • Débogage
  • Journalisation des erreurs

syntaxe curl

Le curl de base la syntaxe est la suivante :

curl [options/URLs]

Par exemple :

curl https://www.gnu.org/gnu/gnu.html

Le système affiche le contenu HTML trouvé sur l'URL fournie après le curl commande.

Si vous spécifiez une URL qui mène à un fichier, vous pouvez utiliser curl pour télécharger le fichier sur votre système local :

curl [url] > [local-file]

La barre de progression indique la quantité de fichier téléchargée jusqu'à présent.

La syntaxe des URL faisant partie de la commande dépend du protocole. Plusieurs URL qui diffèrent dans une partie sont écrites ensemble à l'aide d'accolades :

http://example.{first,second,third}.com

Les séries alphanumériques sont écrites entre parenthèses :

ftp://ftp.url.com/file[1-100].txt

Bien que les séquences imbriquées ne soient pas prises en charge, plusieurs séquences sont autorisées :

http://url.com/archive[2010-2020]/vol[1-4]/part{a,b,c}.html

protocoles de boucles

curl prend en charge de nombreux protocoles de transfert de données. Retrouvez la liste complète ci-dessous.

Protocole Description
DICT Un protocole de réseau de dictionnaires pour interroger les serveurs de dictionnaires sur la signification des mots.
FICHIER Un schéma d'URL pour obtenir un fichier du système de fichiers local à l'aide de curl.
FTP, FTPS File Transfer Protocol, utilisé pour les transferts de fichiers entre les clients et les serveurs. FTPS est la version du même protocole avec une couche de sécurité SSL/TLS ajoutée.
GOPHER, GOPHER Un ancien protocole de recherche, de récupération et de distribution de documents Internet, un précurseur de HTTP. GOPHERS est la version du même protocole avec une couche de sécurité SSL/TLS ajoutée.
HTTP, HTTPS Protocole de transfert hypertexte, utilisé pour le transfert de données Web et Internet. HTTPS est la version du même protocole avec une couche de sécurité SSL/TLS ajoutée.
IMAP, IMAPS Internet Message Access Protocol, utilisé pour l'accès et la gestion des e-mails. IMAPS est la version du même protocole avec une couche de sécurité SSL/TLS ajoutée.
LDAP, LDAPS Lightweight Directory Access Protocol, utilisé pour l'accès et la gestion des informations d'annuaire distribuées. LDAPS est la version du même protocole avec une couche de sécurité SSL/TLS ajoutée.
MQTT Message Queuing Telemetry Transport :protocole d'échange de données entre petits appareils, généralement des systèmes IoT.
POP3, POP3S Post Office Protocol version 3 - un protocole pour la récupération des e-mails à partir d'un serveur. POP3S est la version du même protocole avec une couche de sécurité SSL/TLS ajoutée.
RTMP Protocole de messagerie en temps réel - un protocole de streaming pour l'audio, la vidéo et d'autres données.
RTSP Protocole de diffusion en temps réel, utilisé pour la gestion des serveurs de diffusion multimédia.
PCS Secure Copy - un protocole pour copier des fichiers vers et depuis un serveur SSH.
SFTP SSH File Transfer Protocol - une version du File Transfer Protocol utilisant la connexion SSH.
PME, PME Server Message Block - un protocole pour gérer l'accès partagé aux fichiers et aux périphériques informatiques. SMBS est la version du même protocole avec une couche de sécurité SSL/TLS ajoutée.
SMTP, SMPTS Simple Mail Transfer Protocol - un protocole de messagerie pour une transmission facile des e-mails. SMTPS est la version du même protocole avec une couche de sécurité SSL/TLS ajoutée.
TELNET Protocole de couche application pour une communication bidirectionnelle interactive orientée texte.
TFTP Trivial File Transfer Protocol, utilisé pour charger ou télécharger des fichiers vers ou depuis un hôte distant.

Options de la commande curl

curl accepte un large éventail d'options, ce qui en fait une commande extrêmement polyvalente. Les options commencent par un ou deux tirets. Si elles ne nécessitent pas de valeurs supplémentaires, les options à tiret unique peuvent être écrites ensemble. Par exemple, la commande qui utilise le -O , -L , et -v les options peuvent être écrites comme :

curl -OLv [url]

La liste de toutes les options disponibles est donnée ci-dessous.

Option Description
--abstract-unix-socket <path> Se connecter via un socket Unix abstrait plutôt que via un réseau.

Exemple:
curl --abstract-unix-socket socketpath https://example.com
--alt-svc <file name> Activer l'analyseur alt-svc.

Exemple:
curl --alt-svc svc.txt https://example.com
--anyauth Curl trouve et utilise la méthode d'authentification la plus sécurisée pour l'URL HTTP donnée.

Exemple:
curl --anyauth --user me:pass https://example.com
-a, --append Ajouter au fichier cible.

Exemple:
curl --upload-file local --append ftp://example.com/
--aws-sigv4 <provider1[:provider2[:region[:service]]]> Utilisez l'authentification par signature AWS V4.

Exemple:
curl --aws-sigv4 "aws:amz:east-2:es" --user "key:secret" https://example.com
--basic Utilisez l'authentification de base HTTP.

Exemple:
curl -u name:password --basic https://example.com
--cacert <file> Utiliser le fichier spécifié pour la vérification du certificat.

Exemple:
curl --cacert CA-file.txt https://example.com
--capath <dir> Utilisez le répertoire spécifié pour rechercher les certificats.

Exemple:
curl --capath /local/directory https://example.com
--cert-status Vérifiez l'état du certificat du serveur.

Exemple:
curl --cert-status https://example.com
--cert-type <type> Spécifiez le type du certificat fourni. Les types reconnus sont PEM (par défaut), DER , ENG et P12 .

Exemple:
curl --cert-type ENG --cert file https://example.com
-E, --cert <certificate[:password]> Utilisez le fichier de certificat fourni lorsque vous travaillez avec un protocole basé sur SSL.

Exemple:
curl --cert certfile --key keyfile https://example.com
--ciphers <list of ciphers> Fournissez les chiffrements à utiliser dans la connexion.

Exemple:
curl --ciphers ECDHE-ECDSA-AES256-CCM8 https://example.com
--compressed-ssh Activer la compression SSH intégrée.

Exemple:
curl --compressed-ssh sftp://example.com/
--compressed Demande de recevoir une réponse compressée.

Exemple:
curl --compressed https://example.com
-K, --config <file> Fournir un fichier texte avec des arguments curl, au lieu de les écrire sur la ligne de commande.

Exemple:
curl --config file.txt https://example.com
--connect-timeout <fractional seconds> Spécifiez la durée maximale d'une connexion curl.

Exemple:
curl --connect-timeout 30 https://example.com
--connect-to <HOST1:PORT1:HOST2:PORT2> Fournir une règle de connexion pour diriger les demandes vers un nœud de cluster de serveurs spécifique.

Exemple:
curl --connect-to example.com:443:example.net:8443 https://example.com
-C, --continue-at <offset> Reprendre le transfert de fichiers à l'offset spécifié.

curl -C 400 https://example.com
-c, --cookie-jar <filename> Spécifiez un fichier pour stocker les cookies.

curl -c store.txt https://example.com
-b, --cookie <data|filename> Lire les cookies d'un fichier.

Exemple:
curl -b cookiefile https://example.com
--create-dirs Créer les répertoires locaux pour le --output option.

Exemple:
curl --create-dirs --output local/dir/file https://example.com
--create-file-mode <mode> Spécifiez le mode à définir lors de la création du fichier.

Exemple:
curl --create-file-mode 0777 -T localfile sftp://example.com/new
--crlf Convertir LF en CRLF.

curl --crlf -T file ftp://example.com/
--crlfile <file> Fournir une liste de révocation de certificats pour les certificats homologues.

curl --crlfile revoke.txt https://example.com
--curves <algorithm list> Fournir des courbes pour établir une session SSL.

Exemple:
curl --curves X25519 https://example.com
--data-ascii <data> Voir -d , --data .

Exemple:
curl --data-ascii @file https://example.com
--data-binary <data> Publier les données comme spécifié, sans traitement supplémentaire.

curl --data-binary @filename https://example.com
--data-raw <data> Identique à -d , --data , mais le caractère @ n'est pas traité différemment des autres.

curl --data-raw "@[email protected]@" https://example.com
--data-urlencode <data> Identique à -d , --data , mais effectuez l'encodage d'URL.

Exemple:
curl --data-urlencode name=val https://example.com
-d, --data <data> Envoyer des données à un serveur HTTP dans une requête POST.

Exemple:
curl -d "name=curl" https://example.com
--delegation <LEVEL> Spécifiez quand le serveur est autorisé à déléguer les informations d'identification.

Exemple:
curl --delegation "always" https://example.com
--digest Activer l'authentification HTTP Digest.

Exemple:
curl -u name:password --digest https://example.com
--disable-eprt Désactivez les commandes EPRT et LPRT pour les transferts FTP actifs.

Exemple:
curl --disable-eprt ftp://example.com/
--disable-epsv Désactivez EPSV pour les transferts FTP passifs.

Exemple:
curl --disable-epsv ftp://example.com/
-q, --disable Désactiver la lecture du fichier de configuration curlrc.

curl -q https://example.com 
--disallow-username-in-url Quitter si une URL contenant un nom d'utilisateur est fournie.

Exemple:
curl --disallow-username-in-url https://example.com
--dns-interface <interface> Spécifiez une interface pour les requêtes DNS sortantes.

Exemple:
curl --dns-interface eth0 https://example.com
--dns-ipv4-addr <address> Spécifiez une adresse IPv4 d'où proviendront les requêtes DNS.

Exemple:
curl --dns-ipv4-addr 10.1.2.3 https://example.com
--dns-ipv6-addr <address> Spécifiez une adresse IPv6 d'où proviendront les requêtes DNS.

Exemple:
curl --dns-ipv6-addr 2a04:4e42::561 https://example.com
--dns-servers <addresses> Spécifiez votre propre liste de serveurs DNS.

Exemple:
curl --dns-servers 192.168.0.1,192.168.0.2 https://example.com
--doh-cert-status --cert-status pour DNS sur HTTPS.

Exemple:
curl --doh-cert-status --doh-url https://doh.server https://example.com 
--doh-insecure -k , --insecure pour DoH.

Exemple:
curl --doh-insecure --doh-url https://doh.server https://example.com
--doh-url <URL> Spécifiez un serveur DoH pour la résolution du nom d'hôte.

Exemple:
curl --doh-url https://doh.server https://example.com 
-D, --dump-header <filename> Spécifiez un fichier pour écrire les en-têtes de protocole.

Exemple:
curl --dump-header store.txt https://example.com 
--egd-file <file> Fournissez un chemin pour le socket EGD.

Exemple:
curl --egd-file /path/here https://example.com 
--engine <name> Spécifiez un moteur de chiffrement OpenSSL.

Exemple:
curl --engine flavor https://example.com 
--etag-compare <file> Demander une lecture ETag à partir d'un fichier.

Exemple:
curl --etag-compare etag.txt https://example.com 
--etag-save <file> Enregistrer un ETag HTTP dans un fichier.

Exemple:
curl --etag-save etag.txt https://example.com 
--expect100-timeout <seconds> Temps d'attente maximum pour une réponse 100-continue.

Exemple:
curl --expect100-timeout 2.5 -T file https://example.com 
--fail-early Dites à curl d'échouer et de quitter lorsqu'il détecte la première erreur de transfert.

Exemple:
curl --fail-early https://example.com https://two.example 
--fail-with-body Si le serveur renvoie une erreur avec le code 400 ou supérieur, curl enregistre le contenu et renvoie l'erreur 22.

Exemple:
curl --fail-with-body https://example.com 
-f, --fail Si le serveur renvoie une erreur, curl échoue silencieusement et renvoie l'erreur 22.

Exemple:
curl --fail https://example.com 
--false-start Utiliser un faux départ sur la poignée de main TLS.

Exemple:
curl --false-start https://example.com 
--form-string <name=string> Similaire à -F , --form , mais les chaînes de valeur sont traitées littéralement.

Exemple:
curl --form-string "data" https://example.com 
-F, --form <name=content> Émuler un formulaire avec un Soumettre touche qui a été enfoncée. Le @ sign force le contenu à être un fichier. Le < sign extrait uniquement la partie contenu du fichier.

Exemple:
curl --form "name=curl" --form "[email protected]" https://example.com
--ftp-account <data> Spécifiez les données de compte pour le serveur FTP.

Exemple:
curl --ftp-account "account_data" ftp://example.com/
--ftp-alternative-to-user <command> Spécifiez la commande à envoyer si l'authentification par nom d'utilisateur et mot de passe échoue.

Exemple:
curl --ftp-alternative-to-user "U53r" ftp://example.com 
--ftp-create-dirs Si le répertoire spécifié n'existe pas, curl tentera de le créer.

Exemple:
curl --ftp-create-dirs -T file ftp://example.com/dirs/one/file 
--ftp-method <method> Spécifiez une méthode à utiliser pour obtenir des fichiers via FTP. Les méthodes disponibles sont multicwd , nocwd , et singlecwd .

Exemple:
curl --ftp-method multicwd ftp://example.com/dir1/dir2/file 
--ftp-pasv Utiliser le mode de connexion de données passif.

Exemple:
curl --ftp-pasv ftp://example.com/ 
-P, --ftp-port <address> Inversez les rôles par défaut pour la connexion FTP.

Exemple:
curl -P eth0 ftp:/example.com 
--ftp-pret Envoyer la commande PRET avant PASV/EPSV.

Exemple:
curl --ftp-pret ftp://example.com/ 
--ftp-skip-pasv-ip N'utilisez pas l'adresse IP suggérée par le serveur. curl utilisera l'IP de connexion de contrôle.

Exemple:
curl --ftp-skip-pasv-ip ftp://example.com/ 
--ftp-ssl-ccc-mode <active/passive> Définissez le mode Effacer le canal de commande (CCC).

Exemple:
curl --ftp-ssl-ccc-mode active --ftp-ssl-ccc ftps://example.com/ 
--ftp-ssl-ccc Une fois l'authentification terminée, la couche SSL/TLS est éliminée, permettant une communication non chiffrée.

Exemple:
curl --ftp-ssl-ccc ftps://example.com/ 
--ftp-ssl-control Utilisez SSL/TLS pour vous connecter, arrêtez le cryptage lorsque le transfert de données commence.

Exemple:
curl --ftp-ssl-control ftp://example.com 
-G, --get Utilisez la requête HTTP GET au lieu de POST.

Exemple:
curl --get -d "tool=curl" -d "age=old" https://example.com
-g, --globoff Désactivez l'analyseur de globalisation d'URL.

Exemple:
curl -g "https://example.com/{[]}}}}" 
--happy-eyeballs-timeout-ms <milliseconds> Utilisez l'algorithme Happy Eyeballs pour vous connecter à des hôtes à double pile.

Exemple:
curl --happy-eyeballs-timeout-ms 500 https://example.com 
--haproxy-protocol Utiliser l'en-tête v1 du protocole HAProxy PROXY.

Exemple:
curl --haproxy-protocol https://example.com 
-I, --head Obtenir uniquement les en-têtes.

Exemple:
curl -I https://example.com 
-H, --header <header/@file> Spécifiez un en-tête supplémentaire à envoyer dans la requête HTTP.

Exemple:
curl -H "X-First-Name: Joe" https://example.com 
-h, --help <category> Voir l'aide pour une catégorie spécifique. all répertorie toutes les options disponibles.

Exemple:
curl --help all 
--hostpubmd5 <md5> Passez une chaîne hexadécimale de 32 chiffres.

Exemple:
curl --hostpubmd5 e5c1c49020640a5ab0f2034854c321a8 sftp://example.com/ 
--hsts <file name> Activer HSTS.

Exemple:
curl --hsts cache.txt https://example.com 
--http0.9 Acceptez une réponse HTTP version 0.9.

Exemple:
curl --http0.9 https://example.com
-0, --http1.0 Utilisez HTTP version 1.0.

Exemple:
curl --http1.0 https://example.com
--http1.1 Utilisez HTTP version 1.1.

Exemple:
curl --http1.1 https://example.com 
--http2-prior-knowledge Utilisez HTTP version 2.0. Utilisez cette option si vous savez que le serveur prend en charge cette version HTTP.

Exemple:
curl --http2-prior-knowledge https://example.com
--http2 Essayez d'utiliser HTTP version 2.0.

Exemple:
curl --http2 https://example.com
--http3 Utilisez HTTP version 3.0. Il s'agit d'une option expérimentale.

Exemple:
curl --http3 https://example.com
--ignore-content-length Ignorer l'en-tête Content-Length.

Exemple:
curl --ignore-content-length https://example.com
-i, --include Spécifiez que la sortie doit inclure les en-têtes de réponse HTTP.

Exemple:
curl -i https://example.com
-k, --insecure Autoriser curl à fonctionner avec des connexions non sécurisées.

Exemple:
curl --insecure https://example.com 
--interface <name> Spécifier l'interface pour effectuer une action.

Exemple:
curl --interface eth0 https://example.com 
-4, --ipv4 Résolvez uniquement les noms en adresses IPv4.

Exemple:
curl --ipv4 https://example.com 
-6, --ipv6 Résolvez uniquement les noms en adresses IPv6.

Exemple:
curl --ipv6 https://example.com
-j, --junk-session-cookies Supprimer les cookies de session.

Exemple:
curl --junk-session-cookies -b cookies.txt https://example.com 
--keepalive-time <seconds> Spécifiez le temps d'inactivité de la connexion avant qu'elle n'envoie des sondes keepalive.

Exemple:
curl --keepalive-time 30 https://example.com 
--key-type <type> Spécifiez le type de la clé privée. Les types disponibles sont PEM (par défaut), DER , et ENG .

Exemple:
curl --key-type ENG --key here https://example.com 
--key <key> Spécifiez le fichier contenant la clé privée.

Exemple:
curl --cert certificate --key here https://example.com 
--krb <level> Activer et utiliser l'authentification Kerberos. Les niveaux disponibles sont clear , safe , confidential , et private (défaut).

Exemple:
curl --krb clear ftp://example.com/ 
--libcurl <file> Obtenir le code source C pour l'opération de ligne de commande spécifiée.

Exemple:
curl --libcurl client.c https://example.com 
--limit-rate <speed> Spécifiez le taux de transfert maximal de chargement et de téléchargement.

Exemple:
curl --limit-rate 100K https://example.com 
-l, --list-only Forcer une vue de nom uniquement.

Exemple:
curl --list-only ftp://example.com/dir/ 
--local-port <num/range> Spécifiez les numéros de port à utiliser pour la connexion.

Exemple:
curl --local-port 1000-3000 https://example.com 
--location-trusted Similaire à -L , --location , mais vous permet d'envoyer un nom et un mot de passe à toutes les redirections.

Exemple:
curl --location-trusted -u user:pass https://example.com
-L, --location Autoriser curl à suivre toutes les redirections.

Exemple:
curl -L https://example.com 
--login-options <options> Spécifiez les options de connexion pour l'authentification du serveur de messagerie.

Exemple:
curl --login-options 'AUTH=*' imap://example.com 
--mail-auth <address> Fournir une adresse unique comme identité.

Exemple:
curl --mail-auth [email protected] -T mail smtp://example.com/ 
--mail-from <address> Fournir une seule adresse "de".

Exemple:
curl --mail-from [email protected] -T mail smtp://example.com/ 
--mail-rcpt-allowfails Permet à curl de poursuivre la conversation SMTP si l'un des destinataires échoue.

Exemple:
curl --mail-rcpt-allowfails --mail-rcpt [email protected] smtp://example.com 
--mail-rcpt <address> Fournir une seule adresse "à".

Exemple:
curl --mail-rcpt [email protected] smtp://example.com 
-M, --manual Lisez le manuel curl.

Exemple:
curl --manual 
--max-filesize <bytes> Indiquez la taille maximale du fichier à télécharger.
Exemple:
curl --max-filesize 500K https://example.com 
--max-redirs <num> Spécifiez le nombre maximum de redirections lorsque --location c'est actif.

Exemple:
curl --max-redirs 3 --location https://example.com 
-m, --max-time <fractional seconds> Spécifiez la durée maximale d'une opération.

Exemple:
curl --max-time 5.52 https://example.com 
--metalink Spécifiez une ressource metalink. Cette option est désactivée dans les dernières versions de curl.

Exemple:
curl --metalink file https://example.com 
--negotiate Activer l'authentification SPNEGO.

Exemple:
curl --negotiate -u : https://example.com
--netrc-file <filename> Comme --n , --netrc , mais vous permet de spécifier le fichier à utiliser.

Exemple:
curl --netrc-file netrc https://example.com 
--netrc-optional Comme --n , --netrc , mais l'utilisation de netrc est facultative.

Exemple:
curl --netrc-optional https://example.com 
-n, --netrc Recherchez dans le fichier netrc les informations de connexion.

Exemple:
curl --netrc https://example.com 
-:, --next Utilisez l'option pour séparer les demandes d'URL.

Exemple:
curl -I https://example.com --next https://example.net/ 
--no-alpn Désactiver l'extension ALPN TLS.

Exemple:
curl --no-alpn https://example.com 
-N, --no-buffer Désactiver le tampon de flux de sortie.

Exemple:
curl --no-buffer https://example.com 
--no-keepalive Désactiver les messages keepalive.

Exemple:
curl --no-keepalive https://example.com 
--no-npn Désactiver l'extension TLS NPN.

Exemple:
curl --no-npn https://example.com 
--no-progress-meter Désactiver la barre de progression mais afficher tout autre message.

Exemple:
curl --no-progress-meter -o store https://example.com 
--no-sessionid Désactiver la mise en cache de l'ID de session SSL.

Exemple:
curl --no-sessionid https://example.com 
--noproxy <no-proxy-list> Listez les hôtes qui ne doivent pas utiliser de proxy.

Exemple:
curl --noproxy "www.example" https://example.com 
--ntlm-wb Comme --ntlm , mais transmet également l'authentification à ntlmauth.

Exemple:
curl --ntlm-wb -u user:password https://example.com 
--ntlm Activer l'authentification NTLM.

Exemple:
curl --ntlm -u user:password https://example.com 
--oauth2-bearer <token> Fournir un jeton porteur pour OAUTH 2.0.

Exemple:
curl --oauth2-bearer "mF_9.B5f-4.1JqM" https://example.com 
--output-dir <dir> Spécifiez le répertoire du fichier de sortie.

Exemple:
curl --output-dir "tmp" -O https://example.com 
-o, --output <file> Stocker la sortie dans un fichier. La sortie n'est pas affichée dans stdout.

Exemple:
curl -o file https://example.com -o file2 https://example.net 
--parallel-immediate Préférez les connexions parallèles à l'attente de nouvelles connexions ou de flux multiplexés.

Exemple:
curl --parallel-immediate -Z https://example.com -o file1 https://example.com -o file2
--parallel-max <num> Spécifiez le nombre maximum de connexions parallèles.

Exemple:
curl --parallel-max 100 -Z https://example.com ftp://example.com/ 
-Z, --parallel Effectuer des transferts en parallèle.

Exemple:
curl --parallel https://example.com -o file1 https://example.com -o file2
--pass <phrase> Spécifiez une phrase secrète de clé privée.

Exemple:
curl --pass secret --key file https://example.com 
--path-as-is Empêcher curl de fusionner /./ et /../ séquences.

Exemple:
curl --path-as-is https://example.com/../../etc/passwd
--pinnedpubkey <hashes> Spécifiez une clé publique que curl utilisera.

Exemple:
curl --pinnedpubkey keyfile https://example.com 
--post301 Empêche curl de convertir les requêtes POST en requêtes GET après une redirection 301.

Exemple:
curl --post301 --location -d "data" https://example.com 
--post302 Empêche curl de convertir les requêtes POST en requêtes GET après une redirection 302.

curl --post302 --location -d "data" https://example.com 
--post303 Empêchez curl de convertir les requêtes POST en requêtes GET après une redirection 303.

Exemple:
curl --post303 --location -d "data" https://example.com 
--preproxy [protocol://]host[:port] Utilisez le proxy SOCKS comme pré-proxy.

Exemple:
curl --preproxy socks5://proxy.example -x http://http.example https://example.com 
-#, --progress-bar Utilisez la barre de progression simple.

Exemple:
curl -# -O https://example.com 
--proto-default <protocol> Spécifiez quel protocole curl doit utiliser pour les URL sans nom de schéma.

Exemple:
curl --proto-default https ftp.example.com 
--proto-redir <protocols> Spécifiez les protocoles que curl doit utiliser lors de la redirection.

Exemple:
curl --proto-redir =http,https https://example.com 
--proto <protocols> Spécifiez les protocoles que curl doit utiliser pour les transferts.

Exemple:
curl --proto =http,https,sftp https://example.com 
--proxy-anyauth Curl doit choisir une méthode d'authentification appropriée.

Exemple:
curl --proxy-anyauth --proxy-user user:passwd -x proxy https://example.com
--proxy-basic Utilisez HTTP Basic pour communiquer avec un proxy.

Exemple:
curl --proxy-basic --proxy-user user:passwd -x proxy https://example.com 
--proxy-cacert <file> --cacert for HTTPS proxies.

Exemple:
curl --proxy-cacert CA-file.txt -x https://proxy https://example.com 
--proxy-capath <dir> --capath for HTTPS proxies.

Exemple:
curl --proxy-capath /local/directory -x https://proxy https://example.com
--proxy-cert-type <type> --cert-type for HTTPS proxies.

Exemple:
curl --proxy-cert-type PEM --proxy-cert file -x https://proxy https://example.com
--proxy-cert <cert[:passwd]> -E , --cert for HTTPS proxies.

Exemple:
curl --proxy-cert file -x https://proxy https://example.com 
--proxy-ciphers <list> --ciphers for HTTPS proxies.

curl --proxy-ciphers ECDHE-ECDSA-AES256-CCM8 -x https://proxy https://example.com 
--proxy-crlfile <file> --crlfile for HTTPS proxies.

Exemple:
curl --proxy-crlfile rejects.txt -x https://proxy https://example.com
--proxy-digest Use HTTP Digest authentication with a proxy.

Exemple:
curl --proxy-digest --proxy-user user:passwd -x proxy https://example.com 
--proxy-header <header/@file> -H , --header for proxy communication.

Exemple:
curl --proxy-header "Host:" -x http://proxy https://example.com 
--proxy-insecure -k , --insecure for HTTPS proxies.

Exemple:
curl --proxy-insecure -x https://proxy https://example.com 
--proxy-key-type <type> --key-type for HTTPS proxies.

Exemple:
curl --proxy-key-type DER --proxy-key here -x https://proxy https://example.com 
--proxy-key <key> --key for HTTPS proxies.

Exemple:
curl --proxy-key here -x https://proxy https://example.com 
--proxy-negotiate --negotiate for proxy communication.

Exemple:
curl --proxy-negotiate --proxy-user user:passwd -x proxy https://example.com
--proxy-ntlm Use HTTP NTLM authentication with a proxy.

Exemple:
curl --proxy-ntlm --proxy-user user:passwd -x http://proxy https://example.com
--proxy-pass <phrase> --pass for HTTPS proxies.

Exemple:
curl --proxy-pass secret --proxy-key here -x https://proxy https://example.com 
--proxy-pinnedpubkey <hashes> Specify the public key for proxy verification.

Exemple:
curl --proxy-pinnedpubkey keyfile https://example.com 
--proxy-service-name <name> Specify the service name for proxy communciation.

Exemple:
curl --proxy-service-name "shrubbery" -x proxy https://example.com 
--proxy-ssl-allow-beast --ssl-allow-beast for HTTPS proxies.

Exemple:
curl --proxy-ssl-allow-beast -x https://proxy https://example.com 
--proxy-ssl-auto-client-cert --ssl-auto-client-cert for HTTPS proxies.

Exemple:
curl --proxy-ssl-auto-client-cert -x https://proxy https://example.com 
--proxy-tls13-ciphers <ciphersuite list> Specifies the list of cipher suites to use in negotiating TLS 1.3 for proxies.

Exemple:
curl --proxy-tls13-ciphers TLS_AES_128_GCM_SHA256 -x proxy https://example.com
--proxy-tlsauthtype <type> --tlsauthtype for HTTPS proxies.

Exemple:
curl --proxy-tlsauthtype SRP -x https://proxy https://example.com 
--proxy-tlspassword <string> --tlspassword for HTTPS proxies.

Exemple:
curl --proxy-tlspassword passwd -x https://proxy https://example.com 
--proxy-tlsuser <name> --tlsuser for HTTPS proxies.

Exemple:
curl --proxy-tlsuser smith -x https://proxy https://example.com 
--proxy-tlsv1 -1 , --tlsv1 for HTTPS proxies.

Exemple:
curl --proxy-tlsv1 -x https://proxy https://example.com 
-U, --proxy-user <user:password> Specify the username and password for authenticating with a proxy.

Exemple:
curl --proxy-user name:pwd -x proxy https://example.com 
-x, --proxy [protocol://]host[:port] Specify a proxy to use.

Exemple:
curl --proxy http://proxy.example https://example.com 
--proxy1.0 <host[:port]> Specify a HTTP 1.0 proxy to use.

Exemple:
curl --proxy1.0 -x http://proxy https://example.com 
-p, --proxytunnel Create a proxy tunnel.

Exemple:
curl --proxytunnel -x http://proxy https://example.com 
--pubkey <key> Provide a file containing a public key.

Exemple:
curl --pubkey file.pub sftp://example.com/ 
-Q, --quote <command> Send a command to a FTP or SFTP server, to be executed before the transfer.

Exemple:
curl --quote "rm file" ftp://example.com/foo 
--random-file <file> Specify a file containing random data. This file will be used for seeding the random engine.

Exemple:
curl --random-file rubbish https://example.com 
-r, --range <range> Obtain a range of bytes.

Exemple:
curl --range 40-80 https://example.com 
--raw Disable HTTP content decoding and obtain raw data.

Exemple:
curl --raw https://example.com 
-e, --referer <URL> Send Referrer Page information.

Exemple:
curl --referer "https://test.example" https://example.com 
-J, --remote-header-name Use header name specified by the server instead of obtaining it from the URL.

Exemple:
curl -OJ https://example.com/file 
--remote-name-all Apply the -O , --remote-name option to all the URLs.

Exemple:
curl --remote-name-all ftp://example.com/file1 ftp://example.com/file2 
-O, --remote-name Specify that the local file should have the name of the remote file that was downloaded.

Exemple:
curl -O https://example.com/filename 
-R, --remote-time Specify that the local file should have the timestamp of the remote file that was downloaded.

Exemple:
curl --remote-time -o foo https://example.com 
--request-target <path> Specify an alternative target path.

Exemple:
curl --request-target "*" -X OPTIONS https://example.com 
-X, --request <command> Specify a request method for communication with the server.

Exemple:
curl -X "DELETE" https://example.com 
--resolve <[+]host:port:addr[,addr]...> Specify a custom address for a host/port.

Exemple:
curl --resolve example.com:443:127.0.0.1 https://example.com 
--retry-all-errors Force retrying on all errors.

Exemple:
curl --retry-all-errors https://example.com 
--retry-connrefused Add ECONNREFUSED to the list of errors that are eligible for --retry .

Exemple:
curl --retry-connrefused --retry https://example.com 
--retry-delay <seconds> Specify the amount of time between retries.

Exemple:
curl --retry-delay 5 --retry https://example.com 
--retry-max-time <seconds> Specify the maximum amount of time for --retry attempts.

Exemple:
curl --retry-max-time 30 --retry 10 https://example.com 
--retry <num> Specify the number of retries after curl encounters and error.

Exemple:
curl --retry 7 https://example.com
--sasl-authzid <identity> Specify an additional authentication identity for SASL PLAIN authentication.

Exemple:
curl --sasl-authzid zid imap://example.com/ 
--sasl-ir Enable initial response during SASL authentication.

Exemple:
curl --sasl-ir imap://example.com/ 
--service-name <name> Specify the SPNEGO service name.

Exemple:
curl --service-name sockd/server https://example.com 
-S, --show-error Show an error message event with the -s , --silent option enabled.

Exemple:
curl --show-error --silent https://example.com 
-s, --silent Turn on the silent mode. This option mutes curl.

Exemple:
curl -s https://example.com 
--socks4 <host[:port]> Specify a SOCKS4 proxy.

Exemple:
curl --socks4 hostname:4096 https://example.com 
--socks4a <host[:port]> Specify a SOCKS4a proxy.

Exemple:
curl --socks4a hostname:4096 https://example.com 
--socks5-basic Use the basic authentication method (username/password) with a SOCKS5 proxy.

Exemple:
curl --socks5-basic --socks5 hostname:4096 https://example.com 
--socks5-gssapi-nec Allow protection mode negotiation to be unprotected.

Exemple:
curl --socks5-gssapi-nec --socks5 hostname:4096 https://example.com 
--socks5-gssapi-service <name> Change the name of a socks server.

Exemple:
curl --socks5-gssapi-service sockd --socks5 hostname:4096 https://example.com 
--socks5-gssapi Use GSS-API authentication with a SOCKS5 proxy.

Exemple:
curl --socks5-gssapi --socks5 hostname:4096 https://example.com 
--socks5-hostname <host[:port]> Specify the SOCKS5 proxy to use.

Exemple:
curl --socks5-hostname proxy.example:7000 https://example.com 
--socks5 <host[:port]> Specify the SOCKS5 proxy to use. The hostname is resolved locally.

Exemple:
curl --socks5 proxy.example:7000 https://example.com 
-Y, --speed-limit <speed> Set the lower limit for the download speed.

Exemple:
curl --speed-limit 300 --speed-time 10 https://example.com 
-y, --speed-time <seconds> Set the time period for the speed limit measurement.

Exemple:
curl --speed-limit 300 --speed-time 10 https://example.com 
--ssl-allow-beast Tell curl to ignore the BEAST security flaw in the SSL3 and TLS1.0 protocols.

Exemple:
curl --ssl-allow-beast https://example.com 
--ssl-auto-client-cert Obtain and use a client certificate automatically.

Exemple:
curl --ssl-auto-client-cert https://example.com 
--ssl-no-revoke Do not check for certificate revocation.

Exemple:
curl --ssl-no-revoke https://example.com 
--ssl-reqd Require SSL/TLS.

Exemple:
curl --ssl-reqd ftp://example.com 
--ssl-revoke-best-effort Ignore certificate revocation checks if they failed because of missing distribution points.

Exemple:
curl --ssl-revoke-best-effort https://example.com 
--ssl Attempt to use SSL.

Exemple:
curl --ssl pop3://example.com/ 
-2, --sslv2 Use SSLv2. Newer curl versions ignore this request due to security concerns with SSLv2.

Exemple:
curl --sslv2 https://example.com 
-3, --sslv3 Use SSLv3. Newer curl versions ignore this request due to security concerns with SSLv3.

Exemple:
curl --sslv3 https://example.com 
--stderr <file> Output stderr to a file. The - symbol tells curl to output stderr to stdout.

Exemple:
curl --stderr output.txt https://example.com 
--styled-output Enable bold fonts for HTTP header terminal output.

curl --styled-output -I https://example.com 
--suppress-connect-headers Prevent curl from outputting CONNECT headers.

Exemple:
curl --suppress-connect-headers --include -x proxy https://example.com 
--tcp-fastopen Enable TCP Fast Open.

Exemple:
curl --tcp-fastopen https://example.com
--tcp-nodelay Enable TCP_NODELAY.

Exemple:
curl --tcp-nodelay https://example.com 
-t, --telnet-option <opt=val> Pass the TTYPE , XDISPLOC , and NEW_ENV options to the telnet protocol.

Exemple:
curl -t TTYPE=vt100 telnet://example.com/ 
--tftp-blksize <value> Set the value of TFTP BLKSIZE. Must be a value larger than 512.

Exemple:
curl --tftp-blksize 1024 tftp://example.com/file 
--tftp-no-options Prevents curl from sending requests for TFTP options.

Exemple:
curl --tftp-no-options tftp://192.168.0.1/ 
-z, --time-cond <time> Request a document that was modified after a certain date and time. For documents modified before the time, prefix the date expression with a dash.

Exemple:
curl -z "Wed 01 Sep 2021 12:18:00" https://example.com 
--tls-max <VERSION> Specify the newest TLS version that is supported.

Exemple:
curl --tls-max 1.2 https://example.com 
--tls13-ciphers <ciphersuite list> Specifies the list of cipher suites to use in negotiating TLS 1.3

Exemple:
curl --tls13-ciphers TLS_AES_128_GCM_SHA256 https://example.com 
--tlsauthtype <type> Specify the TLS authentication type.

Exemple:
curl --tlsauthtype SRP https://example.com 
--tlspassword <string> Specify the TLS password.

Exemple:
curl --tlspassword pwd --tlsuser user https://example.com 
--tlsuser <name> Specify the TLS username.

Exemple:
curl --tlspassword pwd --tlsuser user https://example.com 
--tlsv1.0 Tell curl to use TLS1.0 or newer.

Exemple:
curl --tlsv1.0 https://example.com 
--tlsv1.1 Tell curl to use TLS1.1 or newer.

Exemple:
curl --tlsv1.1 https://example.com 
--tlsv1.2 Tell curl to use TLS1.2 or newer.

Exemple:
curl --tlsv1.2 https://example.com 
--tlsv1.3 Tell curl to use TLS1.3 or newer.

Exemple:
curl --tlsv1.3 https://example.com 
-1, --tlsv1 Specify that curl should use at least 1.x version of TLS.

Exemple:
curl --tlsv1 https://example.com 
--tr-encoding Ask for a compressed Transfer-Encoding response.

Exemple:
curl --tr-encoding https://example.com 
--trace-ascii <file> Enable a full trace dump to a file. Eliminates the hex part and shows only ASCII.

Exemple:
curl --trace-ascii log.txt https://example.com 
--trace-time Require a time stamp on each trace or verbose line.

Exemple:
curl --trace-time --trace-ascii output https://example.com 
--trace <file> Enable a full trace dump to a file.

Exemple:
curl --trace log.txt https://example.com 
--unix-socket <path> Specify a Unix socket path.

Exemple:
curl --unix-socket socket-path https://example.com 
-T, --upload-file <file> Upload a file to the URL.

Exemple:
curl -T "img[1-1000].png" ftp://ftp.example.com/ 
--url <url> Provide a URL to be fetched.

Exemple:
curl --url https://example.com 
-B, --use-ascii Enable ASCII transfer.

Exemple:
curl -B ftp://example.com/README 
-A, --user-agent <name> Specify the user agent name.

Exemple:
curl -A "Agent 007" https://example.com 
-u, --user <user:password> Provide the username and password for authentication.

Exemple:
curl -u user:secret https://example.com 
-v, --verbose Tell curl to be verbose.

Exemple:
curl --verbose https://example.com 
-V, --version See the installed versions of curl and libcurl.

Exemple:
curl --version 
-w, --write-out <format> Tell curl to show information about the completed transfer on stdout.

Exemple:
curl -w '%{http_code}\n' https://example.com 
--xattr Store file metadata in file attributes.

Exemple:
curl --xattr -o storage https://example.com 

For comprehensive descriptions of the options, execute the curl --manual command in the terminal.


Ubuntu
  1. Commande source Linux avec exemples

  2. Commande d'arrêt Linux expliquée avec des exemples

  3. Commande Linux Traceroute, expliquée avec des exemples

  4. Commande JQ sous Linux avec exemples

  5. Commande Procinfo sous Linux expliquée avec des exemples

Commande de tri sous Linux avec des exemples

Commande IP Linux avec exemples

w Commande expliquée avec des exemples sous Linux

La commande Linux Cat expliquée avec des exemples

Explication de la commande Linux tee (avec exemples)

La commande Linux csplit expliquée (avec des exemples)