logo

Curl Command a Linux amb exemples

L'ordre curl de Linux s'utilitza per descarregar o carregar dades a un servidor mitjançant protocols compatibles com ara HTTP, FTP, IMAP, SFTP, TFTP, IMAP, POP3, SCP, etc. És una utilitat remota, de manera que funciona sense la interacció de l'usuari.

La transferència de dades d'un lloc a un altre és una de les tasques vitals i més utilitzades d'un sistema informàtic. Tanmateix, hi ha moltes eines GUI disponibles per a la transferència de dades. Però, quan es treballa a la línia d'ordres, es fa una mica complicat. La utilitat curl ens permet transferir dades mitjançant la línia d'ordres.

Curl és una eina de línia d'ordres per obtenir i enviar dades com ara fitxers amb sintaxi d'URL. Admet tots els protocols compatibles amb libcurl perquè utilitza libcurl. Curl proporciona el seu suport per a HTTPS i implementa la verificació del certificat SSL quan s'esmenta un protocol segur per defecte, com HTTPS. Curl portarà el certificat del servidor remot i comprovarà el certificat CA per estalviar la validesa del servidor remot per garantir que el servidor remot sigui el que demana quan curl enllaça amb un servidor remot mitjançant HTTPS.

Hi ha moltes opcions per definir un certificat CA, com ara --capat i --cacert . L'opció, és a dir, --cacert, es pot utilitzar per especificar la ubicació del fitxer del magatzem de certificats CA. Si un fitxer de certificat de CA no està disponible a la plataforma Windows, curl cercarà el nom del fitxer de certificat de CA 'curl-ca-bundle.crt' en la seqüència següent:

  • Directori en el qual està present el programa curl.
  • Directori de treball actual.
  • Directori del sistema (Windows).
  • Directori (Windows).
  • Els directoris s'esmenten a les variables d'entorn %PATH%.

Curl donarà un missatge d'error quan el servidor remot utilitzi un certificat autofirmat o quan el certificat del servidor remot no estigui signat mitjançant una CA esmentada al fitxer de certificat CA. L'opció --insecure o -k es pot utilitzar per saltar la verificació del certificat. El certificat CA remot es pot incloure alternativament al fitxer de magatzem de certificats CA si el servidor remot és vàlid.

Curl ofereix un munt de trucs útils com ara el currículum de transferència de fitxers, galetes, connexions SSL, publicació HTTP, càrrega FTP, autenticació d'usuaris, suport de proxy i molt més. Curl està mecanitzat per libcurl per a tots els aspectes relacionats amb la transferència.

Què és libcurl?

libcurl és una biblioteca de transferència d'URL gratuïta del costat del client. Admet SMB, SMTP, SCP, RTMP, RTSP, POP3, MQTT, LDAP, Kerberos, IMAP, HTTPS, túnel de servidor intermediari HTTP, HTTP PUT, HTTP POST, HTTP/1, Gopher, FTPS, FTP, DICT i galetes. La biblioteca també admet l'autenticació d'usuari més contrasenya, servidors intermediaris, LDAPS, certificats HTTPS, càrrega basada en formularis HTTP, càrrega FTP, currículum de transferència de fitxers, TFTP, Telnet, SFTP i esquema d'URL de fitxers.

libcurl és compacte. Crea i funciona de manera idèntica en diverses plataformes, com ara Microsoft Windows, UnixWare, Ultrix, Tru64, Symbian, Solaris, RISC OS, QNX Neutrino, OS/2, OpenBSD, NetWare, NetBSD, macOS, Linux, IRIX, iOS, HURD, HP -UX, FreeBSD, DOS, Darwin, OpenVMS, BlackBerry 10, BlackBerry Tablet OS, BeOS, Android, AmigaOS i AIX.

La biblioteca libcurl és compatible amb IPv6, segura per a fils i gratuïta. Els enllaços també estan disponibles per a més de 50 idiomes, inclosos Python, PHP, Java i C/C++.
La biblioteca libcurl admet SChannel, gskit a IBM i, NSS, mbed TLS, GnuTLS a Windows, Secure Trasport a iOS i macOS, TLS/SSL mitjançant OpenSSL, rustls, BearSSL, wolfSSL, AmiSSL, libressl i Boringssl.

Sintaxi:

La sintaxi bàsica per utilitzar curl és la següent:

 curl [options] [URL...] 

A partir de la sintaxi anterior,

URL:

La sintaxi de l'URL és una URL general que depèn del protocol. Podem especificar diversos URL de la següent manera:

 http://site.{one,two,three}.com 

Opcions:

L'ordre curl admet les opcions de línia d'ordres següents:

--abstract-unix-socket: S'utilitza per connectar-se mitjançant un sòcol de domini Unix abstracte en lloc d'una xarxa.

--anyauth: S'utilitza per comandar curl per autenticar el mètode per si mateix per utilitzar el mètode més segur. Aquesta utilitat és una utilitat opcional '--basic, --digest, --ntlm i negotiate', que s'utilitza per establir un mètode d'autenticació específic.

-a, --adjuntar: S'utilitza per carregar fitxers. Afegeix el fitxer en lloc de sobreescriure-lo. Si el fitxer donat no existeix al servidor, en crearà un.

tokenitzador de cadena java

--bàsic: Especifica l'ús de l'autenticació bàsica HTTP. És l'opció predeterminada de l'ordre curl. És útil per anul·lar la configuració anterior.

--cacert: S'especifica per utilitzar el fitxer de certificat particular per verificar el parell. Els fitxers poden tenir diversos certificats de CA. El format estàndard dels certificats és PEM, per tant, tots els certificats han d'estar-hi.

--capath: S'especifica per utilitzar el directori particular per verificar el parell. Podem especificar diversos camins separant-los per dos punts (:) com ara 'camí: camí2:camí3'. El format estàndard dels certificats és PEM, per tant, tots els certificats han d'estar-hi.

--estat-cert: S'utilitza per verificar l'estat del certificat del servidor. Utilitza la sol·licitud d'estat del certificat o el TLS de grapat OCSP.

--tipus-cert: Especifica el tipus de certificat de curl proporcionat. Aquests certificats poden estar en format PEM, DER i ENG. El valor per defecte és PEM. Si s'especifica diverses vegades, el rínxol prendrà l'últim valor.

-E, --cert: S'especifica per utilitzar el fitxer de certificat de client quan s'obté un fitxer mitjançant qualsevol protocol basat en SSL, com ara HTTPS, FTPS, etc.

--xifratge: S'utilitza per seleccionar els xifratges a utilitzar en la connexió.

--compressed-ssh: S'utilitza per habilitar la compressió SSH integrada. Aquesta opció tindrà com a sol·licitud del servidor, de manera que el servidor pot acceptar-la o no.

--comprimit: S'utilitza per sol·licitar una resposta comprimida mitjançant els algorismes de curl i desa el document sense comprimir. Aquesta opció enviarà un informe de curl de codificació no compatible.

-K, --config: S'utilitza per descriure un fitxer de text per llegir arguments curl. El curl utilitzarà els arguments de la línia d'ordres del fitxer de text.

--connect-timeout: S'utilitza per especificar el temps màxim en segons per al temps d'espera de la connexió curl.

--conectat amb : S'utilitza per crear una sol·licitud a la parella donada d'amfitrió i port; en cas contrari, es connectarà a la parella següent. Aquesta opció és una eina útil per fer peticions directes a un servidor específic.

-C, --continua-a: S'utilitza per continuar o reprendre una transferència de fitxers anterior amb el desplaçament donat.

-c, --cookie-jar : S'utilitza per especificar un fitxer concret al qual volem escriure totes les galetes després d'una operació correcta.

-b, --galeta: S'utilitza per reenviar dades al servidor HTTP a la capçalera Cookie.

--create-dirs: S'utilitza per a la conjunció amb el '-o? opció, crearà la jerarquia de directoris local necessària.

--crlf (FTP SMTP): S'utilitza per convertir LF a CRLF a la càrrega. És una eina útil per a MVS (OS/390).

--crlfile: S'utilitza per especificar (en format PEM) amb una llista de revocació de certificats.

--data-ascii: És un àlies per al ?-d? opció.

--delegació: S'utilitza per configurar LEVEL perquè reconegui al servidor el que pot delegar quan es tracta de credencials d'usuari.

--digest: S'utilitza per habilitar l'autenticació HTTP Digest.

-q, --desactiva: Si s'utilitza com a primer argument, ignorarà el fitxer de configuració curlrc.

--dns-interface: S'utilitza per reconèixer que el servidor envia les sol·licituds DNS sortints.

--dns-servers: S'utilitza per especificar els servidors DNS en lloc dels servidors predeterminats.

-f, --fail: S'utilitza per fer que el curl falli en silenci als errors del servidor.

-F, --forma: S'utilitza per emular un formulari emplenat enviat per l'usuari.

-P, --ftp-port: S'utilitza per invertir els rols d'escolta predeterminats quan es connecta amb FTP.

--ftp-ssl-ccc-mode: S'utilitza per configurar el mode CCC.

-G, --obté: S'utilitza per especificar dades amb ?-d? opció que s'utilitzarà en una sol·licitud HTTP GET en lloc de la sol·licitud POST.

-h, --ajuda: S'utilitza per mostrar el manual d'ajuda amb una breu descripció de les opcions d'ús i suport.

-0, --http1.0: S'especifica per utilitzar la versió HTTP 1.0.

--ignore-content-length: S'utilitza per ignorar la capçalera Content-Length.

-i, --inclou: S'utilitza per incloure les capçaleres de respostes HTTP.

-4, --ipv4: S'utilitza per resoldre noms a adreces IPv4.

-6, --ipv6: S'utilitza per resoldre noms a adreces IPv6.

Protocols de curl

Curl admet diversos protocols:

    DICT:Ens permet cercar paraules només amb diccionaris.FTP (S):Curl admet el protocol FTP utilitzant moltes palanques i ajustaments. Amb o sense TLS.DOSSIER:Ens permet escriure i llegir el fitxer local. Curl no permet accedir de manera remota a file://URL, però funcionarà quan estigui actiu a Microsoft Windows amb l'enfocament UNC natiu.GOPHER (S):Recupera fitxers.HTTP (S):Curl admet HTTP mitjançant nombroses variacions i opcions. Pot parlar les versions HTTP 0.9, 1.0, 1.1, 2 i 3 depenent de la línia d'ordres precisa i de les opcions de compilació.IMAP (S):Curl ens descarrega correus electrònics amb el protocol de lectura de correu. Amb o sense TLS.LDAP (S):Curl pot implementar la cerca de directoris per a nosaltres amb o sense utilitzar TLS.MQTT:Curl admet la versió 3 de MQTT. La descàrrega a MQTT és la mateixa que 'subscriure' a qualsevol tema, i la publicació/penjada és el mateix que 'publicar' sobre qualsevol tema. Amb TLS, MQTT no és compatible.POP3 (S):La descàrrega mitjançant un servidor pop3 representa rebre correu sense o amb TLS.RTMP (S):El protocol RTMP o Realtime Messaging Protocol s'utilitza principalment per a la transmissió de mitjans de servidor.RTSP:Curl admet les descàrregues 1.0 de RTSP.SCP:Curl admet la versió de transferència de dos scp de SCP.SFTP:Curl admet SFTP sobre la versió 2 de SSH.SMB (S):Curl admet la versió 1 de SMB per baixar i carregar.SMTP (S):Penjar contingut a qualsevol servidor SMTP significa transferir un correu electrònic sense o amb TLS.TELNET:Informar a curl per portar un URL telnet comença una sessió interactiva en la qual transfereix el que llegeix a través de stdin i dóna com a resultat el que el servidor el transfereix.TFTP:Curl pot implementar càrregues i descàrregues TFTP.

Instal·lació de l'ordre curl

L'ordre curl ve amb la majoria de Linux distribucions. Però, si el sistema no porta el rínxol per defecte. Cal instal·lar-lo manualment. Per instal·lar el curl, executeu les ordres següents:

Actualitzeu el sistema executant les ordres següents:

 sudo apt update sudo apt upgrade 

Ara, instal·leu la utilitat curl executant l'ordre següent:

 sudo apt install curl 

Verifiqueu la instal·lació executant l'ordre següent:

 curl -version 

L'ordre anterior mostrarà la versió instal·lada de l'ordre curl.

Obteniu el contingut de l'URL especificat

Per obtenir el contingut de qualsevol URL específic, executeu l'ordre curl, seguida de l'URL. Considereu l'ordre següent:

 curl https://www.javatpoint.com/linux-tutorial 

L'ordre anterior obtindrà les dades de la pàgina especificada. Tingueu en compte el següent complement de la sortida:

Comandament Curl de Linux

A partir de la sortida anterior, podem veure que s'estan obtenint les dades de la pàgina de l'URL donat. Per aturar l'execució, premeu les tecles CTRL+C.

Desa les dades en un fitxer específic

Per desar les dades en un fitxer específic, passeu l'opció '-o' seguida del directori, el nom del fitxer i l'URL de la manera següent:

 curl -o / 

Considereu l'ordre següent:

 curl -o /home/javatpoint/Documents/linux.html https://www.javatpoint.com/linux-tutorial 

L'ordre anterior desarà les dades de la pàgina al fitxer 'linux.html' al directori '/home/javatpoint/Documents/'. Considereu la sortida següent:

Comandament Curl de Linux

Des de l'ordre anterior, podem veure la quantitat total de dades baixades, les dades rebudes, el temps mitjà i algunes altres estadístiques sobre les dades.

Per verificar les dades baixades, obriu el fitxer executant l'ordre cat

 cd Documents cat linux.html 

Tingueu en compte el següent snap de sortida:

Comandament Curl de Linux

Descarrega un fitxer del web

Un dels usos interessants i fascinants de curl és que podem descarregar un fitxer de la web. Per descarregar un fitxer del web, copieu l'enllaç de descàrrega i enganxeu-lo amb l'ordre curl. També podem passar altres arguments per concretar-ho més. Per exemple, descarregueu la darrera versió d'ubuntu, copieu el fitxer enllaç de descàrrega de l'ubuntu des del seu lloc web oficial i enganxeu-lo amb l'ordre curl de la següent manera:

 curl -o /home/javatpoint/Documents/ubuntu20.04.iso https://ubuntu.com/download/desktop/thank-you?version=20.04&architecture=amd64 

L'ordre anterior baixarà l'Ubuntu 20.04 al directori especificat. Proporcioneu l'extensió de fitxer adequada; en cas contrari, baixarà el fitxer en un format diferent. Considereu la sortida següent:

Comandament Curl de Linux

A partir de la sortida anterior, s'està baixant el fitxer ubuntu.iso. Podem veure el temps de descàrrega, la mida del fitxer, la velocitat de descàrrega i altres estadístiques. Per aturar l'execució, en qualsevol moment premeu les tecles CTRL+D.

Reprèn les descàrregues interrompudes

Pot haver-hi la possibilitat que les descàrregues es puguin interrompre per algun motiu. Podem reprendre les descàrregues utilitzant l'ordre curl. Per reprendre el fitxer interromput, passeu l'opció '-C' amb l'ordre curl de la següent manera:

 curl -C 

L'ordre anterior reprendrà la descàrrega de l'URL especificat.

Baixeu diversos fitxers

Per baixar diversos fitxers, especifiqueu els diversos URL separats per espais de la manera següent:

 curl -O 

L'ordre anterior baixarà les dades dels dos URL, respectivament.

Consulta les capçaleres HTTP

Les capçaleres HTTP contenen informació addicional; permet que el servidor web baixi aquesta informació. Per consultar les capçaleres HTTP d'un lloc web, executeu l'ordre amb l'opció '-I' de la següent manera:

 curl -I www.javatpoint.com 

L'ordre anterior produirà la sortida següent:

Comandament Curl de Linux