Heim  >  Artikel  >  Betrieb und Instandhaltung  >  Was ist Linux Curl?

Was ist Linux Curl?

青灯夜游
青灯夜游Original
2023-04-20 17:05:463423Durchsuche

Unter Linux ist Curl ein sehr praktisches Tool zum Übertragen von Daten zum und vom Server. Es ist ein Dateiübertragungstool, das das Hochladen und Herunterladen von Dateien unterstützt , ein umfassendes Übertragungstool. Curl bietet viele sehr nützliche Funktionen, darunter Proxy-Zugriff, Benutzerauthentifizierung, FTP-Upload und -Download, HTTP POST, SSL-Verbindung, Cookie-Unterstützung, Breakpoint-Wiederaufnahme und so weiter.

Was ist Linux Curl?

Die Betriebsumgebung dieses Tutorials: Linux7.3-System, Dell G3-Computer.

Unter Linux ist Curl ein Dateiübertragungstool, das URL-Regeln verwendet, um unter der Befehlszeile zu arbeiten. Es kann als ein sehr leistungsfähiges HTTP-Befehlszeilentool bezeichnet werden. Es unterstützt das Hoch- und Herunterladen von Dateien und ist ein umfassendes Übertragungstool. Traditionell wird URL jedoch üblicherweise als Download-Tool bezeichnet.

curl ist ein sehr praktisches Tool zum Übertragen von Daten zu und von Servern. Zu den unterstützten Protokollen gehören (DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, TELNET und TFTP) Curl ist so konzipiert, dass er die Arbeit ohne Benutzerinteraktion erledigt; Curl bietet viele sehr nützliche Funktionen, einschließlich Proxy-Zugriff, Benutzerauthentifizierung, FTP-Upload und -Download , HTTP POST, SSL-Verbindung, Cookie-Unterstützung, Breakpoint-Wiederaufnahme ...

1 Der am häufigsten verwendete Curl-Befehl

1. GET-Anfrage senden# ?? 🎜🎜# # 🎜🎜#3. Senden Sie eine JSON-Formatanforderung:

curl URL
curl URL?a=1&b=nihao

Darunter steht -H für den Header, - X#🎜 🎜# gibt an, welche Art von Anfrage (POST/GET/HEAD/DELETE/PUT/PATCH), -d

gibt an, welche Daten übertragen werden sollen. Diese werden am häufigsten verwendet.

Alle Curl-Befehle anzeigen: man curl oder curl -h Anforderungsheader: H,A,e Antwortheader: I,i,D Cookie: b,c ,j

Übertragung: F(POST),G(GET),T(PUT),X

Ausgabe: o,O,w Fortsetzbare Übertragung: r Debugging: v ,- -trace,--trace-ascii,--trace-time 2. Detaillierte Erläuterung der Curl-Befehlssyntax und der Curl-Befehlsparameter




1. Curl-Befehlssyntax


curl -X POST -d 'a=1&b=nihao' URL


2. 🎜 🎜#

Da die Linux-Curl-Funktion sehr leistungsfähig ist, gibt es in der folgenden Tabelle nur einige der von Aiezu (aiezu.com) ausgewählten Parameter Parameter, bitte führen Sie den Befehl „man curl“ aus, um sie anzuzeigen.

Bitte bitte --header "name: value"-H "name:" --header "name:"-A " string“ --user-agent „string“ Sie können auch „-H“, „--header option“ verwenden, um diese Option festzulegen; -e 258c40d94d8689854ad79c4076dd5f96 --referer 258c40d94d8689854ad79c4076dd5f96 -e „aiezu.com“ entspricht „-H „Referer: www.qq.com““; (HTTP) gibt nur HTTP-Header aus und ruft keinen Inhalt ab (HTTP/FTP/DATEI). Bei Verwendung für den HTTP-Dienst den http-Header der Seite abrufen -i-D 28897b20adb25fbae118a3f80f538dec - -dump-header < ;file>cookie(HTTP) Cookie-Daten senden an den HTTP-Server, Daten Das Format ist: „NAME1=VALUE1; NAME2=VALUE2“ Wenn in der Zeile kein „=" steht, wird der Parameterwert als Cookie-Dateiname behandelt Diese Cookie-Daten kann über die vom Server gesendete HTTP-Antwortheader-Zeile „Set-Cookie:“ abgerufen werden Server zur angegebenen Datei; -x [protocol://[user:pwd@]host[:port]HTTP-Proxy-Zugriff verwenden; wenn kein Port angegeben ist, wird standardmäßig Port 8080 verwendet; Protokoll ist standardmäßig http_proxy, andere mögliche Werte sind: --proxy 8.8.8.8: 8080;-p--socks4 aa3755fb6675d042aec4e88952ca7a83--proxy-anyauth --proxy-basic --proxy-diges --anyauth --basic - -diges -d "string" --data "string" --data-ascii "string"
--data-binary "string"
--data-urlencode "string"
--basic (HTTP) weist Curl an, die HTTP-Basic-Authentifizierung zu verwenden (bei Verwendung des HTTP-Protokolls). ), die die Standardauthentifizierungsmethode ist; --ntlm(HTTP) verwendet die NTLM-Authentifizierungsmethode für das HTTP-Protokoll; --digest Verwenden Sie die Option „-u/--user“, um zu verhindern, dass Passwörter im Klartext gesendet werden. --negotiate (HTTP) verwendet GSS-Negotiate Authentifizierungsmethode für das HTTP-Protokoll; Sein Hauptzweck besteht darin, die Kerberos5-Authentifizierung zu unterstützen -u user:password Wenn Sie die von „SSPI“ geöffnete Curl-Bibliothek für die „NTLM“-Authentifizierung verwenden, können Sie die Option „-u:“ ohne Benutzernamen und Passwort verwenden, um Curl zu erzwingen Verwenden Sie den aktuell angemeldeten Benutzernamen und das Passwort zur Authentifizierung ;Certificate[:password]> ;(SSL) gibt die Zertifikatsdatei und das Zertifikatspasswort im „PEM“-Format an; --cert-type 7674b22ef33c73b930516fd6bc30b7a3(SSL) gibt Curl den Typ des Zertifikats an vorausgesetzt: PEM, DER, ENG usw. ; Diese Zertifikate müssen im „PEM“-Format vorliegen. #🎜 🎜#(HTTPS/FTPS) Stellt eine Datei im PEM-Format zum Angeben einer Liste widerrufener Zertifikate bereit; (SSL) Durch die Einstellung dieser Option werden Verbindungen und Übertragungen mit ungesichertem SSL ohne Zertifikat ermöglicht. Andere--ciphers e8f064f971a27002865e16550000e50d(SSL) Geben Sie die von SSL zu verwendende Verschlüsselungsmethode an, z. B.: „aes_256_sha_256“; OpenSSL-Verschlüsselungs-Engine Wird für Verschlüsselungsvorgänge verwendet. (SSL) ist der vom Zufalls-Seed-Generator EGD (Entropy Gathering Daemon socket) angegebene Pfadname;#🎜 🎜#-1/- -tlsv1 --tlsv1.1 --tlsv1.2 -2/--sslv2 (SSL) verwendet TLS-Version 1.0, um mit dem Remote-Server zu kommunizieren; SSL) verwendet TLS-Version 1.1 für die Kommunikation mit dem Remote-Server; (SSL) verwendet SSL-Version 2 für die Kommunikation mit dem Remote-Server; 🎜🎜# (SSL) verwendet SSL Version 3, um mit dem Remote-Server zu kommunizieren;# 🎜🎜#(SSL/SSH) Geben Sie das Passwort der privaten Schlüsseldatei an; # 🎜🎜#--pubkey 42538adbdb6240b2b083a000a615d5bd( SSH) Verwenden Sie Ihren öffentlichen Schlüssel, der von der angegebenen Datei bereitgestellt wird. Schnittstelle> Netzwerkkarte: eth1 IP: 8.8.8.8#🎜 🎜# Hostname: aiezu.com Sie können die Portnummer hinzufügen: eth1:20000-21000;--crlf#🎜 🎜#(FTP) Zeilenvorschub (LF) beim Hochladen in Wagenrücklauf-Zeilenvorschub (CRLF) umwandeln; (FTP)ftp-Kontoinformationen; -- ftp-method [method](FTP) Optionale Werte: multicwd /nocwd/singlecwd; -l --use-ascii(FTP/LDAP) Verwenden Sie den ASCII-Übertragungsmodus für FTP und LDAP; bei FTP ist es gleichwertig zur Verwendung des „type=A;“-Modus. --disable-eprtspeed limit--limit-rate 0525e6a15abb94ecba5807e114b60ce6Begrenzt die von Curl verwendete maximale Bandbreite; wenn die Einheit nicht angegeben ist, wird die Standardeinheit verwendet ist „Byte/Sekunde“, Sie können die Einheit auch als „K“, „M“, „G“ und andere Einheiten angeben, wie zum Beispiel: „--limit-rate 1m“ soll die maximale Bandbreite auf „1m Bytes“ begrenzen /Sekunde"; -y Diese Option steuert Übertragungen und wird daher nicht durchgeführt Auswirkungen auf langsame Verbindungen usw. Wenn dies ein Problem für Sie ist, versuchen Sie es mit der Option --connect-timeout.-Y#🎜 🎜#(HTTP) Curl erzwingen, HTTP 1.0 anstelle des Standard-HTTP 1.1 zu verwenden; Verwenden Sie Zugriff auf die angegebene Netzwerkkartenschnittstelle. #🎜 🎜# --request e2b9f03cad787b9644e1f51fd23b7dac (HTTP) gibt die für die Kommunikation mit dem Server verwendete Anforderungsmethode an, z. B.: GET, PUT, POST, DELETE usw., Standard GET; #🎜🎜 #--no-buffer#🎜🎜 #--bufferAusgabestrompufferung aktivieren ; --location(HTTP/HTTPS) Folgen Sie dem HTTP-Antwortheader „Location:“, um weiterzuleiten zur Seite nach dem Sprung; #🎜🎜 # (Wird verwendet, wenn der HTTP-Antwortcode 3XX ist, z. B. 301 Sprung, 302 Sprung) --location-trusted# 🎜🎜#( HTTP/HTTPS) ist dasselbe wie „--location“, aber der Benutzername und das Passwort vor dem Sprung werden nach dem Sprung gesendet; 🎜🎜#--compressed#🎜 🎜#(HTTP)-Anfrage verwendet einen Komprimierungsalgorithmus, um den zurückgegebenen Inhalt zu komprimieren; Curl unterstützt die Dekomprimierung der GZIP-Komprimierung; #--connect-timeout 0e72eeb93e8222d25f37582edca0e1bc#🎜 🎜#-m Sekunden - -max-time seconds-s -- leises --retry-delay 0e72eeb93e8222d25f37582edca0e1bcAnzahl der fehlgeschlagenen Wiederholungsversuche; 🎜# Wiederholungsintervall; Maximale Wiederholungstestzeit; Anzeige Fehlermeldung im Ruhemodus; -o file Den zurückgegebenen Inhalt in die Datei ausgeben. Wenn Sie Platzhalter verwenden, um mehrere URLs zu erhalten, können Sie „#“ gefolgt von „numerischer Sequenznummer“ verwenden. Curl ersetzt es automatisch durch das entsprechende Schlüsselwort, z. B.: Wird gespeichert als: "a.txt", "b.txt"; wird gespeichert als: a1.txt, a2.txt, a3.txt, b1.txt, b2.txt, b3.txt Wenn Sie ein Speicherverzeichnis gemäß den Regeln erstellen möchten, lesen Sie: „--create-dirs“ -O --remote- name-w --write-out format Formatparameter können „n“, „r“, „t“ und andere Escape-Zeichen verwenden; #🎜 🎜#--trace 28897b20adb25fbae118a3f80f538decSpeichern Sie alle eingehenden und ausgehenden Daten in einer Datei, einschließlich Beschreibungsinformationen. Verwenden Sie „-“ als Dateinamen, um die Ausgabe an den Standard zu senden Ausgabe . --trace-ascii file Verwenden Sie „-“ als Dateinamen, um die Ausgabe an die Standardausgabe zu senden. aus der Konfigurationsdatei Parameter lesen, siehe: http://curl.haxx.se/docs/-v#🎜🎜 #Detailliertere Informationen anzeigen, beim Debuggen verwenden; -M# 🎜🎜#Komplettes Hilfehandbuch anzeigen; --helpHilfe zur Verwendung von Linux Curl;#🎜🎜 #
Parametergruppe Parameter Beschreibung
URL URL Eine oder mehrere URLs, die gecrawlt werden müssen;
Mehrere Möglichkeiten zur Verwendung der folgenden Platzhalter:
1. http://{www , ftp,mail}.aiezu.com; 2. http://aiezu.com/images/[001-999].jpg 3. http://aiezu.com/images/[1-999].html ;
4. ftp://aiezu.com/file[a-z].txt

header

-H "name: value"

(HTTP) Einen http-Header hinzufügen (http-Anforderungsheader);

(HTTP) Einen http-Header entfernen (http-Anforderungsheader);


(HTTP) Legt den HTTP-Anforderungsheader „User-Agent“ fest. Der Server kann „User-Agent“ verwenden, um den vom Client verwendeten Browsernamen und Betriebssystemtyp zu ermitteln . Fälschung Dieser Parameter kann dazu führen, dass der Server falsche Urteile trifft.



(HTTP), um die Quellseite festzulegen Teilen Sie dem http-Dienst beim Zugriff mit, von welcher Seite aus er auf diese Seite zugreifen soll.
-I
- -head
(z. B.: curl -I http://aiezu.com)
Bei Verwendung für FTP/DATEI werden die Dateigröße und der Zeitpunkt der letzten Änderung ermittelt;
(z. B.: curl -I file://test.txt)

--include

(HTTP) HTTP-Header ausgeben und Inhalt zurückgeben;


(HTTP) HTTP-Antwortheader in die angegebene Datei ausgeben;
-b name=data
--cookie name=data
Der angegebene Parameterwert ist „-“ Wird an die Standardausgabe „wie die Konsole“ weitergeleitet

-j
--junk-session-cookies

(HTTP) weist Curl an, zu verwerfen alle „Sitzungscookies“;
Entspricht einem Neustart des Browsers
Proxy

-x host:port
--proxy [protocol ://[user:pwd@]host[:port]
http_proxy , HTTPS_PROXY, Socks4, Socks4a, Socks5;
Zum Beispiel:
-x "http_proxy://aiezu:123@aiezu.com:80"
-- Proxytunnel Verwenden Sie den Proxy des Parameters „-x“ als Kanal zum Proxy von Nicht-HTTP-Protokollen wie ftp;


--socks4a 95e0e655625abd055d8fe9a2a259f49d
--socks5 aa3755fb6675d042aec4e88952ca7a83


SOCKS4A-Proxy verwenden;
Dieser Parameter überschreibt den „-x“-Parameter;
--proxy- Negotiate
--proxy-ntlm
HTTP-Proxy-Authentifizierungsmethode, siehe:
--negotiate
--ntlm

-U a0cdbb1e98c0a7f7bc41394907e02e8d
- -proxy-user a0cdbb1e98c0a7f7bc41394907e02e8d

Legen Sie den Proxy-Benutzernamen und das Passwort fest;
data
Transfer

-G
--get

Wenn dieser Parameter verwendet wird, werden die Parametereinstellungen „-d/“, „--data“ und „--data-binary“ an die URL angehängt und im GET-Modus angefordert



-d @file
(HTTP) verwendet HTTP POST, um „Schlüssel/Wert-Paar“-Daten zu senden, was einem entspricht Browser-Formularattribute (method="POST", enctype="application/x-www-form-urlencoded")
-d, --data: HTTP-POST-Daten
--data-ascii: HTTP-POST-ASCII-Daten
- -data-binary: HTTP-POST-Binärdaten;
--data-urlencode: HTTP-POST-Daten (URLcode);
Wenn die Daten mit „@“ beginnen und von einer Datei gefolgt werden, wird der Inhalt in der Postdatei gepostet;
-F name=@file
-F name=8763cbc2b4ffec666caf60fcc056fa26
(HTTP) ähnelt „--form“, aber „@“ und „752b5a976c6a32c7093ae900260b4a06
--continue-at ab76cfca1a1dc7ff1291dcdf873f72ec
Setzen Sie den Haltepunkt fort und fahren Sie mit dem Herunterladen/Hochladen ab der angegebenen Position im Dateikopf fort;
offset Die Position, an der der Lebenslauf beginnt, wenn der Offset-Wert „-“ ist, identifiziert Curl automatisch die Startposition in der Datei und startet die Übertragung
-r 01fbef2219010f55027ff7800552222a
--range 01fbef2219010f55027ff7800552222a
( HTTP/FTP/SFTP/FILE) überträgt nur den angegebenen Inhaltsteil:
0-499: die ersten 500 Bytes;
-500: die letzten 500 Bytes;
0-0,-1 : das erste und letzte 1 Byte ;
100-199.500-599: Zwei 100 Bytes;


Authentifizierung

(HTTP). ) verwendet die HTTP-Digest-Authentifizierung für das HTTP-Protokoll.
--user user:password Benutzername und Passwortauthentifizierung verwenden. Dieser Parameter überschreibt die Optionen „-n“, „--netrc“ und „--netrc-optional“. Geben Sie einen Benutzernamen ein und Curl fordert Sie auf, ein Passwort einzugeben.
Der Standardwert ist „PEM“; muss im „PEM“-Format vorliegen; Die folgenden CA-Zertifikate werden zur Überprüfung verwendet.
SSL
Verwenden Sie „curl --engine list“, um die Liste der unterstützten Verschlüsselungs-Engines anzuzeigen
# 🎜🎜#(SSL) gibt den Dateipfadnamen an, der zufällige Daten enthält; die Daten werden verwendet, um zufällige Seeds für SSL-Verbindungen zu generieren; egd-file 5d78cd530fd5ee83a6fb44aa74888184
--tlsv1.0
- 3/--sslv3# 🎜🎜#
(SSL) verwendet TLS Version 2, um mit dem Remote-Server zu kommunizieren;
(SSL) verwendet TLS-Version 1.2 für die Kommunikation mit dem Remote-Server;
Privater Schlüssel
Öffentlicher Schlüssel
- -key 42538adbdb6240b2b083a000a615d5bd (SSL/SSH) Geben Sie einen privaten Schlüsseldateinamen an. Versuchen Sie automatisch, die folgenden Dateien zu verwenden, wenn sie angegeben werden: „~/.ssh/id_rsa“, „~/.ssh /id_dsa", "./id_rsa'", "./id_dsa"; (SSL) gibt den Dateityp des privaten Schlüssels an, unterstützt: DER, PEM, ENG, der Standardwert ist PEM

(FTP) Legen Sie im aktiven FTP-Modus eine Adresse fest, die auf die Serververbindung wartet, z. B.:


#--ftp-pasv#🎜 🎜#
(FTP) verwendet PASV (passiv)/EPSV-Modus; 🎜#(FTP ) Wenn Sie PASV verwenden, überspringen Sie die angegebene IP wann;

--list-only

(FTP) listet die FTP-Dateiliste auf;


-B

--disable-epsv (FTP) weist Curl an, EPSV nicht zu verwenden, wenn PASV (passiver Modus) ist; 🎜🎜#
(FTP) weist Curl an, EPRT und LPRT im aktiven Modus zu deaktivieren; #🎜🎜 #
--speed-time 46dd80ba616c57a652514755c74c4211 Wenn ein Download langsamer als die Geschwindigkeit ist -Limit Bytes pro Sekunde während eines Geschwindigkeitszeitraums, der Download wird abgebrochen, wenn Speed-Time verwendet wird, ist das Standard-Geschwindigkeitslimit 1, sofern nicht mit -Y festgelegt.
--speed-limit 0525e6a15abb94ecba5807e114b60ce6 Wenn ein Download für speed-time Sekunden langsamer als diese angegebene Geschwindigkeit (in Bytes pro Sekunde) ist, wird speed-time mit -y und eingestellt ist 30, wenn nicht festgelegt.
Andere
Option
-0/--http1.0-X e2b9f03cad787b9644e1f51fd23b7dac
#🎜🎜 # --no-keepalive

Schalten Sie die Keepalive-Funktion aus;
Ausgabestrompufferung deaktivieren;
#🎜🎜 # -L
Geben Sie das maximale Verbindungszeitlimit in Sekunden an.
# 🎜🎜#Begrenzt die maximale Zeit für den gesamten Lockenvorgang in Sekunden

leises Modell. Zeigt keinen Fortschrittsbalken oder keine Fehlermeldung an. 🎜🎜#(HTTP) Wenn die Verbindung fehlschlägt (Fehler 400 oder höher), wird nicht die Standardfehlerseite, sondern der Curl-Fehlercode „22“ zurückgegeben; --retry d2c1e15f2758ae4ead444247148d09ea
--retry-max-time 0e72eeb93e8222d25f37582edca0e1bc
--show-error
Output#🎜 🎜# --output file
​curl „http: //aiezu.com/{a,b}.txt" -o "#1.txt";#🎜 🎜# curl "http ://aiezu.com/{a,b}_[1-3].txt" -o "#1#2.txt";

„-“ angeben Wird zur Standardausgabe „wie die Konsole“ weitergeleitet;

gibt die Inhaltsausgabe zurück. Gehen Sie zu der Datei mit demselben Namen wie die Datei in der URL (ohne das Verzeichnis) im aktuellen Verzeichnis. Verwenden Sie den Parameter „-o“, um die zu erstellen notwendige lokale Verzeichnishierarchie
#🎜🎜 #Nach Abschluss des Vorgangs den angegebenen Inhalt anhängen bis zum Ende der Rückgabeinformationen; der anzufügende Inhalt kann eine Zeichenfolge „string“ sein, „@filename“ aus der Datei abrufen, „@-“ aus der Standardeingabe abrufen
#🎜 🎜# Im Format Parameter, Sie können %{variable_name} verwenden, um Variablen zu verwenden, die sich auf die Antwortinformationen beziehen, wie zum Beispiel: %{content_type}, %{http_code}, %{local_ip}..., weitere Variablen finden Sie unter „man curl“ ; # 🎜🎜#


Alle ein- und ausgehenden Daten in die Datei sichern, einschließlich Beschreibungsinformationen, nur den ASCII-Teil sichern, einfacher zu machen read;
Diese Option überschreibt die zuvor verwendeten Optionen -v, --verbose, --trace-ascii; fügt Zeitinformationen zur Dump-Datei hinzu; # --config f6e9e3a277d0a30df37c6f516833faa0
#🎜🎜 # --verbose

Hilfe#🎜 🎜#
--manual

-h

Vollständige Parametererklärung von curl -h:

Kann „jede“ Authentifizierungsmethode verwenden --basic                                                                                                                                 -data-ascii 0d8dcb457ecf3d821292018f55749981 ​​​​​​​ Privater Schlüsseldateiname (SSL)--key-type 7674b22ef33c73b930516fd6bc30b7a3                          ​​​​​ Passwort für den privaten Schlüssel ( „--engine list“ für Liste--cacert 28897b20adb25fbae118a3f80f538dec ​​​​​​CA-Zertifikat (SSL)--capath 6f655ecf17a4459bb2d05758ed836e3d                                                                                                                                                                                                                                               .--ftp-method cwd]--ftp-pasv Verwenden Sie PASV/EPSV anstelle von Port S-FTP-SKIP-PASV-IP Ignorieren Sie bei Verwendung von PASV die IP-Adresse -FTP-SSL Versuchen Sie, SSL/TLS zur Übertragung von FTP-Daten zu verwenden - SSL-Reqd erfordert die Verwendung von SSL/TLS zur Übertragung der FTP-Datenübertragung -F/-Form & LT;und []-IGNORE-Content-Length - -I/-Head-only display document information -J/-junk-session-cookies Ignorieren Sie beim Lesen von Dateien die Sitzung cookie-interface & lt; interface & gt; Die angegebene Netzwerkschnittstelle/Adresse verwenden --krb4 d01d6777fee22c1abcc265b0d6170d56                                                ​​ SSL-Sites ohne Zertifikate zulassen-K/ - -CONFIG 的 Die angegebene Konfigurationsdatei lautet -l/-list-only listet den Dateinamen im FTP-Verzeichnis auf -Limit -rate & lt; rate & gt; Stellen Sie die Übertragung ein Geschwindigkeit --local-port7a16b29f015c60d23685bc81cbbd96c2                                                                                                                                                   Maximale Übertragungszeit festlegen --max-redirs 961ec2e31dfb6e7a128778296aa623e0 einen Befehl an den Server senden--range-file    🎜# --retry-max-time 0e72eeb93e8222d25f37582edca0e1bc          S/--show-error      Show error--socks4 aa3755fb6675d042aec4e88952ca7a83                                                                  ###-# -Socks5 & LT; HOST [: Port] & GT;#🎜 🎜#--trace-time                                                                                     🎜##🎜 🎜#-X/--request e2b9f03cad787b9644e1f51fd23b7dac Übertragungszeiteinstellung SSLV3 (SSL) Gefällt mir -Q für die Quell-URL für die Übertragung an Dritte URL, Drittanbieterübertragung verwenden 3-3P-Benutzer -4/-IPv4 -6/ -IPv6

3. Exit-Codes für den Linux-Curl-Befehl

Im Folgenden sind die Fehlercodes des Linux-Curl-Befehls und die entsprechenden Fehlermeldungen aufgeführt, die in rauen Umgebungen auftreten können.

-a/--append                                                                                                                                                                                                                           ​
--ciphers 4309a73696dbaeac0ddd115cebb6f9b7                                                                                                                          Beim Hochladen wird LF in CRLF konvertiert
- -ftp-create-dirs                                                          Wenn das Remote-Verzeichnis nicht existiert, erstellen Sie das Remote-Verzeichnis
Kontrollieren Sie die Verwendung von CWD
-G/--get    Help
-H/--header 15a73cc5312745b1b00671f6e690e36a递 Benutzerdefinierte Header-Informationen werden an den Server übergeben
Die Länge der http-Header-Informationen
-R/--remote-time                                                                                                                          ​ --retry                                      🎜#
🎜🎜#SOCKS5-Proxy verwenden, um den Host und den Port anzugeben#🎜🎜 ## 🎜🎜 ## 🎜🎜# -t/--telnet-option < ;OPT=val>                                                   🎜🎜#--trace-ascii 28897b20adb25fbae118a3f80f538dec Hex-Ausgabe
--url 258c40d94d8689854ad79c4076dd5f96                                                            U/--proxy-user 51d4e5c9d6ab58351c663dd329f4aeba 🎜#Versionsinformationen anzeigen
-y/--speed-time                                                                                                  Der Standardwert ist 30
-Y/-Speed-Limit , um die Begrenzung der Übertragungsgeschwindigkeit zu stoppen, Geschwindigkeitszeit 'Sekunden-z/-Zeitbedingung
-0 //- -http1.0 2/--sslv2                                                                                                                                                                                                                                bis -3/-SSLV3
--3p-Quote
-3p- URL
Benutzername und Passwort verwenden, um Drittanbieterübertragung durchzuführen
IP4 verwenden
Verwenden Sie IP6
退出码 错误描述
1 Nicht unterstütztes Protokoll. Dieser Curl-Build unterstützt dieses Protokoll nicht.
2 Initialisierung fehlgeschlagen.
3 URL fehlerhaft. Die Syntax war nicht korrekt.
5 Proxy konnte nicht aufgelöst werden. Der angegebene Proxy-Host konnte nicht aufgelöst werden.
6 Der Host konnte nicht aufgelöst werden. Der angegebene Remote-Host wurde nicht aufgelöst.
7 Verbindung zum Host fehlgeschlagen.
8 Seltsame FTP-Serverantwort. Die vom Server gesendeten Daten konnten nicht analysiert werden.
9 FTP-Zugriff verweigert. Der Server verweigerte die Anmeldung oder verweigerte den Zugriff auf die bestimmte Ressource oder das Verzeichnis, auf die Sie zugreifen wollten. Meistens haben Sie versucht, in ein Verzeichnis zu wechseln, das auf dem Server nicht existiert.
11 FTP seltsame PASS-Antwort. Curl konnte die auf die PASS-Anfrage gesendete Antwort nicht analysieren.
13 FTP seltsame PASV-Antwort, Curl konnte die auf die PASV-Anfrage gesendete Antwort nicht analysieren.
14 FTP seltsames 227-Format. Curl konnte die vom Server gesendete 227-Zeile nicht analysieren.
15 FTP kann den Host nicht abrufen. Die Host-IP, die wir in der 227-Zeile erhalten haben, konnte nicht aufgelöst werden.
17 FTP konnte die Binärdatei nicht festlegen. Die Übertragungsmethode konnte nicht in Binär geändert werden.
18 Teildatei. Nur ein Teil der Datei wurde übertragen.
19 FTP konnte die angegebene Datei nicht herunterladen/auf sie zugreifen, der RETR-Befehl (oder ein ähnlicher Befehl) ist fehlgeschlagen.
21 FTP-Zitatfehler. Ein Zitatbefehl hat einen Fehler vom Server zurückgegeben.
22 HTTP-Seite nicht abgerufen. Die angeforderte URL wurde nicht gefunden oder hat einen anderen Fehler mit einem HTTP-Fehlercode von 400 oder höher zurückgegeben. Dieser Rückkehrcode erscheint nur, wenn -f/--fail verwendet wird.
23 Schreibfehler. Curl konnte keine Daten in ein lokales Dateisystem oder ähnliches schreiben.
25 FTP konnte die Datei nicht speichern. Der Server hat den STOR-Vorgang verweigert, der für den FTP-Upload verwendet wird.
26 Lesefehler. Verschiedene Leseprobleme.
27 Nicht genügend Speicher. Eine Speicherzuweisungsanforderung ist fehlgeschlagen.
28 Zeitüberschreitung beim Vorgang. Der angegebene Timeout-Zeitraum wurde gemäß den Bedingungen erreicht.
30 FTP-PORT fehlgeschlagen. Der PORT-Befehl ist fehlgeschlagen. Nicht alle FTP-Server unterstützen den PORT-Befehl. Versuchen Sie stattdessen eine Übertragung mit PASV!
31 FTP konnte REST nicht verwenden. Der REST-Befehl ist fehlgeschlagen. Dieser Befehl wird für wiederaufgenommene FTP-Übertragungen verwendet.
33 HTTP-Bereichsfehler. Der Bereich „Befehl“ hat nicht funktioniert.
34 HTTP-Beitragsfehler. Interner Fehler bei der Generierung der Anfrage.
35 SSL-Verbindungsfehler. Der SSL-Handshaking ist fehlgeschlagen.
36 FTP-Download fehlerhaft. Fortsetzung. Ein zuvor abgebrochener Download konnte nicht fortgesetzt werden.
37 FILE konnte die Datei nicht lesen. Die Datei konnte nicht geöffnet werden. Berechtigungen?
38 LDAP kann nicht gebunden werden. LDAP-Bindungsvorgang fehlgeschlagen.
39 LDAP-Suche fehlgeschlagen.
41 Funktion nicht gefunden. Eine erforderliche LDAP-Funktion wurde nicht gefunden.
42 Durch Rückruf abgebrochen. Eine Anwendung hat Curl angewiesen, den Vorgang abzubrechen.
43 Interner Fehler. Eine Funktion wurde mit einem fehlerhaften Parameter aufgerufen.
45 Schnittstellenfehler. Eine angegebene ausgehende Schnittstelle konnte nicht verwendet werden.
47 Zu viele Weiterleitungen. Beim Verfolgen von Weiterleitungen erreichte Curl den Maximalwert.
48 Unbekannte TELNET-Option angegeben.
49 Falsche Telnet-Option.
51 Das SSL-Zertifikat oder der SSH-MD5-Fingerabdruck des Peers war nicht vorhanden ok.
52 Der Server hat nichts geantwortet, was hier als Fehler angesehen wird.
53 SSL-Krypto-Engine nicht gefunden.
54 SSL-Krypto-Engine kann nicht als festgelegt werden Standard.
55 Fehler beim Senden von Netzwerkdaten.
56 Fehler beim Empfangen von Netzwerkdaten.
58 Problem mit dem lokalen Zertifikat.
59 Konnte nicht Verwenden Sie die angegebene SSL-Verschlüsselung.
60 Peer-Zertifikat kann nicht mit bekannten CA-Zertifikaten authentifiziert werden.
61 Unbekannte Übertragungskodierung.
62 Ungültige LDAP-URL.
63 Maximale Dateigröße überschritten.
64 Angeforderte FTP-SSL-Ebene fehlgeschlagen.
65 Das Senden der Daten erfordert einen Rücklauf, der fehlgeschlagen ist.
66 Die SSL-Engine konnte nicht initialisiert werden.
67 Der Benutzername, das Passwort oder ähnliches wurde nicht akzeptiert und Curl konnte sich nicht anmelden.
68 Datei nicht auf dem TFTP-Server gefunden.
69 Berechtigungsproblem auf dem TFTP-Server.
70 Nicht genügend Speicherplatz auf dem TFTP-Server.
71 Unzulässiger TFTP-Vorgang .
72 Unbekannte TFTP-Übertragungs-ID.
73 Datei existiert bereits (TFTP).
74 Kein solcher Benutzer (TFTP).
75 Zeichenkonvertierung fehlgeschlagen.
76 Zeichenkonvertierungsfunktionen erforderlich.
77 Problem beim Lesen des SSL-CA-Zertifikats (Pfad? Zugriffsrechte?).
78 Die in der URL referenzierte Ressource funktioniert nicht vorhanden.
79 Während der SSH-Sitzung ist ein nicht näher bezeichneter Fehler aufgetreten.
80 Die SSL-Verbindung konnte nicht heruntergefahren werden.
82 Die CRL-Datei konnte nicht geladen werden, fehlt oder ist falsch Format (hinzugefügt in 7.19.0).
83 Ausstellerprüfung fehlgeschlagen (hinzugefügt in 7.19.0).
XX In zukünftigen Versionen werden hier weitere Fehlercodes angezeigt. Die bestehenden sollen sich niemals ändern.

4. Allgemeine Verwendung

1. Download (Option:-o oder Option:-O)

1.1. Download-Seite:

curl -o dodo1.jpg http:www.linux.com/ dodo1.JPG
#Bitte beachten Sie, dass die URL nach -O spezifisch für eine bestimmte Datei sein muss, sonst wird sie nicht erfasst
curl -O http://www.linux.com/dodo1.JPG

1.2: Loop-Download
Manchmal sind die Namen der ersten Teile der heruntergeladenen Bilder gleich, aber die Namen der letzten Schwanzwirbel sind unterschiedlich. Dadurch werden alle Dodo1, Dodo2, Dodo3, Dodo4 und Dodo5 gespeichert. Die JPG-Datei wird nach dem Herunterladen zu hello_dodo1.JPG und so weiter für andere Dateien, wodurch effektiv vermieden wird, dass die Datei überschrieben wird
curl -o #1_#2.JPG http://www.linux.com/{hello ,bb}/ dodo[1-5].JPG

Weil die Dateinamen im heruntergeladenen Hallo und BB alle dodo1, dodo2, dodo3, dodo4, dodo5 sind. Daher überschreibt der zweite Download den ersten Download, sodass die Datei umbenannt werden muss.
curl -O http://www.linux.com/{hello,bb}/dodo[1-5].JPG

1.4: In Blöcken herunterladen (Option: -r)

curl -r 0-100 -o dodo1_part1.JPG http://www.linux.com/dodo1.JPG
curl -r 100-200 -o dodo1_part2.JPG http://www.linux.com/dodo1.JPG

curl -r 200- -o dodo1_part3 .JPG http://www.linux.com/dodo1.JPG

cat dodo1_part* > dodo1.JPG #Auf diese Weise können Sie den Inhalt von dodo1.JPG

1.5 anzeigen: Dateien über FTP herunterladen (Option: -u)
Curl kann Dateien über FTP herunterladen. Curl bietet zwei Syntaxen zum Herunterladen von FTP. Curl -O -u Benutzername: Passwort ftp://www.linux.com/dodo1.JPG. Curl -O ftp://Benutzername: Passwort @ www.linux.com/dodo1.JPG

1.6: Herunterladen, Fortschrittsbalken anzeigen (Option: -#) oder Fortschrittsbalken nicht anzeigen (Option: -s)

curl -# -O http://www .com/dodo1.JPG
curl -s -O http://www.linux.com/dodo1.JPG

1.7, herunterladen, Übertragung vom Haltepunkt fortsetzen (-C ab76cfca1a1dc7ff1291dcdf873f72ec)

Übertragung vom Haltepunkt fortsetzen, Fortfahren Herunterladen/Hochladen von der angegebenen Position im Dateikopf; Versatz der Startposition der Lebenslaufübertragung. Wenn der Versatzwert „-“ ist, identifiziert Curl automatisch die Startposition in der Datei und startet die Übertragung centos6.8. iso -C - http://mirrors.aliyun.com/centos/6.8/isos/x86_64/CentOS-6.8-x86_64-minimal.iso

curl -C -O http://www.linux.com /dodo1.JPG

2. Datei hochladen (Option: -T)


curl -T dodo1.JPG -u Benutzername: Passwort ftp://www.linux.com/img/

3 . Gefälschte Quellseite|Gefälschter Referrer|Hotlink (Option: -e)

Viele Server überprüfen den Referrer des HTTP-Zugriffs, um den Zugriff zu kontrollieren. Beispiel: Sie besuchen zuerst die Homepage und greifen dann auf die E-Mail-Seite auf der Homepage zu. Die Referrer-Adresse der E-Mail-Adresse ist hier die Seitenadresse, wenn der Server feststellt, dass dies die Referrer-Adresse der E-Mail-Seite ist nicht die Adresse der Homepage, es wird festgestellt, dass es sich um eine gestohlene Verbindung handelt.

#Dadurch denkt der Server, dass Sie auf einen Link von www.linux.com geklickt haben. mail.linux.com #Tell Love the E-Familie, ich komme aus Baidu curl -e http://baidu.com http://aiezu.com

4. Gefälschte Proxy-Ausrüstung (nachgeahmter Browser)



Einige Websites müssen bestimmte Browser verwenden, um darauf zuzugreifen, und einige erfordern die Verwendung bestimmter Versionen. Curls integrierte Option: -A ermöglicht es uns, den Browser für den Zugriff auf die Website anzugeben

curl -A „Mozilla/4.0 (kompatibel; MSIE 8.0; Windows NT 5.0)“ http://www.linux.com

#Tell the E Leute, ich bin ein GOOGLE-Crawler-Spider (eigentlich bin ich der Curl-Befehl) curl -A "Mozilla/5.0 (kompatibel; Googlebot/2.1; +http://www.google.com/bot.html)" http: //aiezu.com #Sagen Sie Aiezu, ich verwende den integrierten Browser von WeChat request

5.1. HTTP-Anfrageheader festlegen (oder Option:-H oder Option:--head)
curl -H „Cache-Control:no-cache“ http://aiezu.com

5.2 Server und anderer Port (Option::-x)
#Oft müssen Sie einen Proxyserver verwenden, um auf das Internet zuzugreifen (z. B. wenn Sie einen Proxyserver verwenden, um auf das Internet zuzugreifen, oder Ihre IP-Adresse von anderen blockiert wird, weil Sie Verwenden Sie Curl auf den Websites anderer Leute. Glücklicherweise verwendet Curl die integrierte Option: -x, um das Festlegen eines Proxys zu unterstützen. Curl -x 192.168.100.100:1080 http://www.linux.com. 6, http-Antwort Kopfzeile

6.1. HTTP-Antwortheader anzeigen (Option: -I)
# Sehen Sie, wie der http-Header dieser Website aussieht
curl -I http://aiezu.com
Ausgabe:
HTTP/1.1 200 OK
Datum: Fr, 25. Nov. 2016 16:45:49 GMT
Server: Apache
Set-Cookie: rox__Session=abdrt8vesprhnpc3f63p1df7j4; path=/
Läuft ab: Do, 19. Nov. 1981 08:52:00 GMT
Cache-Kontrolle: no-store, no - Cache, muss erneut validiert werden, Post-Check=0, Pre-Check=0
Pragma: no-cache
Inhaltstyp: text/html; charset=utf-8
6.2 Header-Informationen in der Antwort (Option: -D)
curl -D cookied.txt http://www.linux.com
Nach der Ausführung werden die Cookie-Informationen in cookied.txt gespeichert
Hinweis: -c (Kleinbuchstaben) Die Die generierten Cookies unterscheiden sich von den Cookies in -D.

7. Formulardaten sendencurl -F "pic=@logo.png" -F "site=aiezu" http://aiezu.com/

8. Cookie 8.1. Cookies senden (Option:-b)

#Einige Websites verwenden Cookies, um Sitzungsinformationen aufzuzeichnen. Für Browser wie Chrome können Cookie-Informationen problemlos verarbeitet werden, Cookies können jedoch auch einfach verarbeitet werden, indem relevante Parameter in Curl hinzugefügt werden

curl -b "domain=aiezu.com" http://aiezu.com
#Viele Websites Sie alle überwachen Ihre Cookie-Informationen, um festzustellen, ob Sie ihre Website gemäß den Regeln besuchen. Daher müssen wir die gespeicherten Cookie-Informationen verwenden. Integrierte Option: -b
curl -b cookiec.txt http://www.linux.com

8.2. Speichern Sie die Cookie-Informationen in der http-Antwort (Option: -c)

Nach der Ausführung werden die Cookie-Informationen in der Die http-Antwort lautet „Es wird in cookiec.txt gespeichert.“ -v http://www.linux.com


9.2. Rückgabewert der Webseite testen (Option: -w [Format])
curl -o /dev/null -s -w %{http_code} www.linux.com

10. Speichern Sie die besuchte Webseite (>>)

2.1: Verwenden Sie die Umleitungsfunktion von Linux, um
Curl http://www.linux.com >> zu speichern

11. Anforderungsmethode

curl -i -v -H '' -X POST -d '' http:www.test.com/a/b Darunter -X POST -d, -X GET -d, -X PUT -d entspricht -F, -G -d bzw. -PNehmen Sie eine Post-Anfrage als Beispiel:

11.1, -X POST -d

(11.1.1), POST application/x -www-form-urlencoded
application/x-www-form-urlencoded ist die Standardeinstellung

curl -X POST -d "param1=value1¶m2=value2" http://localhost:3000/data

Äquivalent zu curl -H " Content-Type:application/ x-www-form-urlencoded" -X POST -d "param1=value1¶m2=value2" http://localhost:3000/data Datendateien verwenden curl -X POST -d "@data. txt“ http:// localhost:3000/data Der Inhalt von data.txt lautet wie folgt: param1=value1¶m2=value2

(11.1.2), POST application/json
curl -H „Content-Type:application/ json“ – data.json“ http://localhost :3000/data

Der Inhalt von data.json ist wie folgt: {“key1“: „value1“, „key2“ „value2“}

Ein weiteres Beispiel:
curl -H „ Content-type:application/json“ -X POST -d „{“app_key“: „$appKey“, „time_stamp“: „$time“}“ http://www.test.com.cn/a/b

11.2、-F
curl -v - H "token: 222" -F "file=@/Users/funglio/Downloads/401.png" localhost:8000/api/v1/upimg

curl -f http:/ /www.linux.com/error

11.3. Andere Beispiele

(11.3.1),


curl -X POST "http://www.test.com/e/f" -H "Content-Type: application/x-www-form-urlencoded; charset=UTF-8"
-d "a=b"
-d "c=d"
-d "e=f"
-d "g=h"

(11.3.2), Fehler: curl - i -G -d "a=b#1&c=d" http://www.test.com/e/f

Richtig: Verwenden Sie URL-Code, um Parameterwerte zu konvertieren spezielle Symbole
curl -i -G -d "a=b%231&c=d" http://www.test.com/e/f

12. Debugging

curl -v可以显示一次http通信的整个过程,包括端口连接和http request头信息。
如果觉得还不够,那么下面的命令可以查看更详细的通信过程:
curl --trace output.txt www.baidu.com 或者 curl --trace-ascii output.txt www.baidu.com 
运行后,请打开output.txt文件查看。
curl --trace output.txt  http://www.baidu.com
curl --trace-ascii output2.txt  http://www.baidu.com
curl --trace output3.txt --trace-time http://www.baidu.com
curl --trace-ascii output4.txt --trace-time http://www.baidu.com 

举例:有需求每5分钟请求一次http://www.test.com/a/b生成一个日志文件。希望一月的日志(正确的和错误的)能写入一个日志文件
day=`date +%F`
logfile='/var/logs/www.test.com_'`date +%Y%m`'.log'
/usr/bin/echo -e "\n\n[${day}] Start request \n " >> ${logfile}
/bin/curl -v "http://www.test.com/a/b" -d "ccccc" 1>> ${logfile} 2>> ${logfile} --trace-time
/usr/bin/echo -e "\n\n[${day}] End request\n" >> ${logfile}

13、显示抓取错误

curl -f http://www.linux.com/error

相关推荐:《Linux视频教程

Das obige ist der detaillierte Inhalt vonWas ist Linux Curl?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Was ist Linux Tap?Nächster Artikel:Was ist Linux Tap?