A Curl Command használata Linuxban

Egy kiterjedt útmutató, amely elmagyarázza a curl parancs használatát weboldalak lekérésére és fájlok letöltésére közvetlenül a terminálról

A becsavar parancs egy további érdekes parancssori segédprogram, amelyet a Linux kínálhat Önnek. becsavar parancs lehetővé teszi a felhasználó számára, hogy fájlokat töltsön le a szerverről.

becsavar az alkalmazásfejlesztők és a gyakori Linux-felhasználók népszerű választása, mivel számos protokollt támogat, mint például az RTMP, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET, HTTP, HTTPS, FTP, FTPS, IMAP, IMAPS, DICT, FÁJL, GOPHER, LDAP, LDAPS, POP3, POP3S stb.

becsavar parancs sokkal többet tesz, mint a weboldalak lekérése. A paranccsal elérhető opciók ismerete sokoldalúbbá teszi a használatát. Merüljünk el az oktatóanyagban, hogy jobban megértsük a használatát becsavar parancsot néhány rövid példa segítségével.

Telepítés

Használat előtt a becsavar parancsot, ellenőrizze, hogy már telepítve van-e a rendszeren. Használja a parancsot curl --verzió ellenőrizni, ha becsavar telepítve van.

Abban az esetben, ha becsavar nincs telepítve, kövesse az alábbi lépéseket.

Ubuntu és Debian alapú rendszereken használat:

sudo apt-get frissítés
sudo apt-get install curl

RHEL, CentOs és Fedora disztribúciókban, használat:

sudo yum install curl

Most használja a curl --verzió parancsot, hogy megbizonyosodjon arról, hogy megfelelően van telepítve.

curl --verzió

Kimenet:

curl 7.58.0 (x86_64-pc-linux-gnu) libcurl/7.58.0 OpenSSL/1.1.1 zlib/1.2.11 libidn2/2.0.4 libpsl/0.19.1 (+libidn2/2.0.4) nghttp2/1.30. 0 librtmp / 2.3 Release-Date: 2018/01/24 jegyzőkönyvek: dict ftp FTPS hörcsög http https imap imaps ldap ldaps pop3 pop3s RTMP RTSP smb középvállalatok smtp SMTPS telnet tftp Jellemzők: AsynchDNS IDN IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz TLS-SRP HTTP2 UnixSockets HTTPS-proxy PSL gaurav@ubuntu:~$ 

Most készen állunk a használatára becsavar parancs.

A CURL paranccsal elérhető opciók

Először is vessünk egy pillantást néhány kiemelkedő opcióra, amely elérhető a becsavar parancs.

választási lehetőségLeírás
-ufájlok letöltéséhez FTP szerverről
-Cmegszakadt letöltés folytatásához
-ohogy mentse az eredményt a becsavar parancs előre meghatározott fájlnévvel
-ÉNegy meghatározott URL HTTP-fejléceinek lekéréséhez
-Ohogy mentse az eredményt a becsavar parancsot az eredeti fájlnévvel
--libcurlhasználó C forráskód kiadásához libcurl a megadott opcióhoz
-xhogy proxyt használjon az URL eléréséhez
-#a folyamatjelző sáv megjelenítéséhez a letöltés állapotának megjelenítéséhez

Weboldal lekérése a CURL használatával

A becsavar parancs, ha opció nélkül használjuk, lekéri a parancsban megadott URL tartalmát.

Szintaxis:

göndör [URL]

Példa:

curl //allthings.how

Kimenet:

gaurav@ubuntu:~$ curl //allthings.how html{overflow-x:hidden!important}html.i-amphtml-fie{height:100%!important;width:100%!important}html:not([amp4ads ]),html:not([amp4ads]) body{height:auto!important}html:not([amp4ads]) body{margin:0!important}body{-webkit-text-size-adjust:100%;- moz-text-size-adjust:100%;-ms-text-size-adjust:100%;text-size-adjust:100%}html.i-amphtml-singledoc.i-amphtml-embedded{-ms-touch -action:pan-y;touch-action:pan-y}html.i-amphtml-fie>body,html.i-amphtml-singledoc>body{overflow:visible!important}html.i-amphtml-fie:not (.i-amphtml-inabox)>body,html.i-amphtml-singledoc:not(.i-amphtml-inabox)>body{position:relative!important}html.i-amphtml-webview>body{overflow-x :hidden!important;overflow-y:visible!important;min-height:100vh!important}html.i-amphtml-ios-embed-legacy>body{overflow-x:hidden!important;overflow-y:auto!important ;position:absolute!important}html.i-amphtml-ios-embed{overflow-y:auto!important;position:static}#i-amphtml-wrapper{overflow-x:hidden!important;over folyamat html.i-amphtml-ios-embed.i-amphtml-ios-overscroll,html.i-amphtml-ios-embed.i-amphtml-ios-overscroll>#i-amphtml-wrapper{-webkit-overflow-scrolling: touch!important}#i-amphtml-wrapper>body{position:relative!fontos;border-top:1px tömör átlátszó!fontos}#i-amphtml-wrapper+body{visibility:visible}#i-amphtml-wrapper+body .i-amphtml-lightbox-element,#i-amphtml-wrapper+body[i-amphtml-lightbox]{visibility:hidden}#i-amphtml-wrapper+body[i-amphtml-lightbox] .i-amphtml-lightbox -element{visibility:visible}#i-amphtml-wrapper.i-amphtml-scroll-disabled,.i-amphtml-scroll-disabled{overflow-x:hidden!important;overflow-y:hidden!important}amp-instagram {padding:54px 0px 0px!important;background-color:#fff}amp-iframe iframe{box-sizing:border-box!important}[amp-access][amp-access-hide]{display:none}[előfizetések -dialog],body:not(.i-amphtml-s ubs-ready) [subscriptions-action],body:not(.i-amphtml-subs-ready) [subscriptions-section]{display:none!important}amp-experiment,amp-live-list>[update]{display :none}.i-amphtml-jank-meter{position:fixed;background-color:rgba(232,72,95,0.5);bottom:0;right:0;color:#fff;font-size:16px; z-index:1000;padding:5px}amp-list[resizable-children]>.i-amphtml-loading-container.amp-hidden{display:none!important}amp-list [fetch-error],amp-list [load-more] [load-more-button],amp-list[load-more] [load-more-end],amp-list[load-more] [load-more-failed],amp-list[load -more] [load-more-loading]{display:none}amp-list[diffable] div[role=list]{display:block}amp-story-page,amp-story[önálló]{min-height:1px !fontos;megjelenítés:blokk!fontos;magasság:100%!fontos;margó:0!fontos;padding:0!fontos;túlcsordulás:rejtett!fontos;szélesség:100%!fontos}erősítőtörténet[önálló]{háttér- color:#202125!important;position:relative!important}amp-story-page{background-color:#757575}amp-story .amp-active>div,amp-story .i-amphtm l-loader-background{display:none!important}amp-story-page:not(:first-of-type):not([distance]):not([aktív]){transform:translateY(1000vh)!fontos }amp-autocomplete{pozíció:relatív!fontos;display:inline-block!important}amp-autocomplete>input,amp-autocomplete>textarea{padding:0.5rem;border:1px solid rgba(0,0,0,0.33) }.i-amphtml-autocomplete-results,amp-autocomplete>input,amp-autocomplete>textarea{font-size:1rem;line-height:1.5rem}[amp-fx^=fly-in]{visibility:hidden} amp-script[nodom]{pozíció:fix!fontos;top:0!fontos;width:1px!important;height:1px!important;túlcsordulás:rejtett!fontos;láthatóság:rejtett} 

Itt a weboldal tartalma közvetlenül a terminálra kerül forráskódként.

Használhat opciókat -o és -O a ... val becsavar paranccsal, hogy ezt a tartalmat fájlban tárolja.

Mikor -o opció használata esetén az URL tartalma az aktuális könyvtárba kerül egy felhasználó által megadott fájlnévvel.

Szintaxis:

curl -o [felhasználói_fájlnév] [URL]

Példa:

gaurav@ubuntu:~/workspace$ curl -o ath.html //allthings.how % Összesen % Fogadott % Xferd Átlagsebesség Idő Idő Idő Aktuális letöltés Feltöltés Összes elköltött bal sebesség 100 199k 100 199k 0 0 58743 0 0:00:03 0:00:03 --:--:-- 58743 gaurav@ubuntu:~/workspace$ ls ath.html gaurav@ubuntu:~/workspace$ 

Ebben a példában az „allthings.how” URL-ből származó tartalom ath.html nevű HTML-fájlként kerül mentésre az aktuális munkakönyvtáramban. A HTML-fájl megnyitásakor átirányítunk a mentett weboldalra.

Fájlok letöltése a CURL paranccsal

Használni a -O opció a curl paranccsal szintén elmenti a tartalmat vagy a weboldalt vagy egy letölthető csomagot fájlként, de elmenti ezt a fájlt az eredeti néven.

Lássuk ezt egy példán keresztül:

Példa:

Itt használtam a becsavar parancsot -O Lehetőség van egy Ubuntu csomag letöltésérecseresznyefa_0.37.6-1.1_all.deb‘ az Ubuntu csomagtárból.

gaurav@ubuntu:~/workspace$ curl -O //kr.archive.ubuntu.com/ubuntu/pool/universe/c/cherrytree/cherrytree_0.37.6-1.1_all.deb % Összesen % Fogadott % Xferd Átlagsebesség Idő Idő Idő Jelenlegi letöltési feltöltés teljes elköltött hátralévő sebesség 100 613k 100 613k 0 0 220k 0 0:00:02 0:00:02 --:--:-- 220k gaurav@ubuntu:~/workspace$

Kimenet:

trinity@ubuntu:~/workspace$ ls ath.html cherrytree_0.37.6-1.1_all.deb trinity@ubuntu:~/workspace$

Tehát a csomag most letöltődik és az aktuális munkakönyvtárba (CWD) kerül mentésre az eredeti nevével.

Folyamatjelző sáv megjelenítése fájl letöltése közben

Használata során még egy esztétikai módosítás érhető el becsavar parancsot a fájl letöltéséhez. Megtekintheti a fájlletöltés folyamatát egy folyamatjelző sáv formájában a termináljára. Csak hozzá kell csatolni a -# opciót a parancsoddal egy fájl letöltéséhez.

Lássunk egy példát erre a csípésre.

Szintaxis:

curl -# -O [URL]

Példa:

gaurav@ubuntu:~/workspace$ curl -# -O //archive.ubuntu.com/ubuntu/pool/main/e/emacs-defaults/emacs-defaults_47.0.tar.xz ######## ################################################# ################################################# ################################### 100,0% gaurav@ubuntu:~/workspace$ 

Kimenet:

gaurav@ubuntu:~/workspace$ ls ath.html cherrytree_0.37.6-1.1_all.deb emacs-defaults_47.0.tar.xz gaurav@ubuntu:~/workspace$ 

Ebben a kimenetben megfigyelheti, hogy letöltöttem egy "" nevű csomagotemacs-defaults_47.0.tar.xz' a CWD-ben, és a folyamatjelző sáv megjelenik a terminálban, miközben a letöltés folyamatban volt.

A megszakított letöltés folytatása a CURL-ben

Sokszor előfordulhat olyan helyzet, amikor nagyobb méretű fájlokat kell letöltenie. Néha bizonyos okok miatt, például áramkimaradás vagy hálózati hiba miatt a letöltés megszakadhat a folyamat közben a teljes fájl letöltése nélkül. Még ha megnyomod is Ctrl+C a terminálban a folyamat megszakad.

A becsavar parancsot, ha a -C opció folytatja a megszakított letöltést.

Szintaxis:

curl -C - -O [URL]

Példa:

Ebben az illusztrációban megpróbáltam letölteni az Ubuntu 20.04 ISO-képet az Ubuntu webhelyéről.

gaurav @ ubuntu: ~ / munkaterület $ curl -O //releases.ubuntu.com/20.04.1/ubuntu-20.04.1-desktop-amd64.iso?_ga=2.212264532.1184373179.1600250922-1570904140.1591164974% fő% Kapott% Xferd Átlagsebesség Idő Idő Idő Jelenlegi letöltés Feltöltés Teljes elköltött bal sebesség 0 2656M 0 1744k 0 0 87038 0 8:53:17 0:00:20 8:52:57 77726^C

Itt szándékosan megszakítottam a letöltési folyamatot Ctrl+C.

Most használom a -C opcióval a becsavar parancsot a megszakított letöltés folytatásához ugyanarról a forráswebhelyről.

Kimenet:

gaurav@ubuntu:~/workspace$ curl -C - -O //releases.ubuntu.com/20.04.1/ubuntu-20.04.1-desktop-amd64.iso?_ga=2.212264532.11884532.1188.1184373179.118.1184373179.1180 transfer**10401510920251409200251409225 bájtpozíció 1851392 % Összes % Fogadott % Xferd Átlagos sebesség Idő Idő Idő Aktuális letöltés Feltöltés Teljes elköltött bal sebesség 0 2654M 0 20.2M 0 0 57940 0 13:20:35 0:06:06 13:14:29 9829

A letöltést onnan vettük fel, ahol megszakították.

Fájlok letöltése FTP szerverről a CURL használatával

Elég könnyű a becsavar parancs segítségével letölthet egy fájlt az FTP-kiszolgálóról a -u választási lehetőség. Az URL megadása előtt meg kell adnia a felhasználónevet és a jelszót a parancsban.

Szintaxis:

curl -u [felhasználónév]:[jelszó] [URL]

Az illusztrációhoz egy nyilvános online FTP-t fogok használni.

Példa:

gaurav@ubuntu:~/workspace$ curl -O -u [email protected]:eUj8GeW55SvYaswqUyDSm5v6N ftp://ftp.dlptest.com/16-Sep-20-16-0-0.csv % Összesen % Fogadott % Xferd átlag Sebesség Idő Idő Idő Aktuális letöltés Feltöltés Teljes elköltött bal sebesség 100 390 100 390 0 0 93 0 0:00:04 0:00:04 --:--:-- 93 gaurav@ubuntu:~/workspace$

Itt letöltöttem egy "" nevű fájlt16-Sep-20-16-0-0.csv’ erről az ftp-szerverről, és az eredeti nevén mentettem a CWD-mbe. Ellenőrzöm a letöltött fájlt a ls parancs.

gaurav@ubuntu:~/workspace$ ls -al összesen 1092 drwxrwxr-x 3 gaurav gaurav 4096 szeptember 16. 16:15 . drwxr-xr-x 87 gaurav gaurav 266240 Sep 16 10:22 .. -rw-r--r-- 1 gaurav gaurav 390 Sep 16 16:15 16-Sep-20-16-0-0.csv -rw- r--r-- 1 gaurav gaurav 204429 szeptember 16. 11:45 ath.html gaurav@ubuntu:~/workspace$

Több fájl együttes letöltése a CURL használatával

Több fájl letöltése egyszerre a becsavar parancs nagyon egyszerű feladat. Csak használd a -O opcióval a becsavar parancs hasonló, mint ahogyan a fenti blokkokban végrehajtottuk.

Szintaxis:

curl -O [URL-1] -O [URL-2] -O[URL-n]

Példa:

gaurav@ubuntu:~/workspace$ curl -O //archive.ubuntu.com/ubuntu/pool/universe/a/aegean/aegean_0.15.2+dfsg-1.debian.tar.xz -O //archive.ubuntu. com/ubuntu/pool/main/a/apache2/apache2_2.4.29.orig.tar.gz % Összesen % Fogadott % Xferd Átlagsebesség Idő Idő Idő Jelenlegi Letöltés Feltöltés Összesen elköltött bal sebesség 100 63500 100 63500 0 0 550458 :01 0:00:01 --:--:-- 55458 100 8436k 100 8436k 0 0 123k 0 0:01:08 0:01:08 --:--:-- 127k gaurav@ubuntu:~/workspace $ 

Ebben a példában két különböző csomagot töltöttem le az Ubuntu tárolóból.

Kimenet:

gaurav@ubuntu:~/workspace$ ls -al összesen 9596 drwxrwxr-x 3 gaurav gaurav 4096 szeptember 16. 16:28 . drwxr-xr-x 87 gaurav gaurav 266240 Sep 16 10:22 .. -rw-r--r-- 1 gaurav gaurav 390 Sep 16 16:15 16-Sep-20-16-0-0.csv -rw- r--r-- 1 gaurav gaurav 63500 Sep 16 16:28 aegean_0.15.2+dfsg-1.debian.tar.xz -rw-r--r-- 1 gaurav gaurav 8638793 Sep 16 16:29 apache.29. orig.tar.gz -rw-r--r-- 1 gaurav gaurav 204429 szeptember 16. 11:45 ath.html gaurav@ubuntu:~/workspace$ 

A két csomag egyszerre töltődik le a curl paranccsal.

A CURL-lel rendelkező URL HTTP-fejléceinek lekérése

Bármely URL HTTP-fejlécmezője hasznos információkat tartalmaz, például felhasználói ügynököt, tartalomtípust, kódolást stb. Ezek a fejlécfájlok az üzenettörzsben elküldött objektumról is információt nyújtanak. A kérés és a válasz részletei szintén ezekből a HTTP-fejlécekből származnak.

Te tudod használni becsavar parancsot -ÉN opciót az URL HTTP-fejléceinek lekéréséhez.

Szintaxis:

curl -I [URL]

Példa:

gaurav@ubuntu:~/workspace$ curl -I www.firefox.com HTTP/1.1 200 OK Content-Type: text/html; charset=ISO-8859-1 P3P: CP="Ez nem P3P szabályzat! További információért lásd a g.co/p3phelp webhelyet." Dátum: 2020. szeptember 16., szerda, 11:17:00 GMT Szerver: gws X-XSS-védelem: 0 X-Frame-opciók: SAMEORIGIN átviteli kódolás: darabolt Lejár: 2020. szeptember 16. szerda, 11:17-00 GMT gyorsítótár Vezérlés: privát Set-Cookie: 1P_JAR=2020-09-16-11; lejár=Péntek, 2020. október 16. 11:17:00 GMT; útvonal=/; domain=.google.com; Biztonságos Set-Cookie: NID = 204 = SpeHTVXkKYwe6uaKYLsPWmCA0A-sGb94c9jpbw067e7uhyeJnkap6TFEIESztwLOEst7KcDSBLgGrokh1EM2IZi2VPVzllH0tsvCu-QbKiunPoPJ6dD7oAnB7rxu30rAiO630vYm6SG1zbmGgxNEiB-adXp24h7iEoSq9WsjrGg; lejár = csütörtök, 2021. március 18. 11:17:00 GMT; útvonal=/; domain=.google.com; HttpOnly gaurav@ubuntu:~/workspace$

Ebben a példában lekértem a következő HTTP-fejléceit:www.firefox.com‘.

C-forráskód lekérése CURL használatával

Használata becsavar parancsot a --libcurl opció lekérheti a C forráskódot. Ennek nincs jelentős haszna a laikus felhasználók számára, de nagyon hasznosnak bizonyulhat a rendszerprogramozók, biztonsági elemzők és alkalmazásfejlesztők számára.

Szintaxis:

curl [URL] > fájlnév --libcurl [kód_fájlnév]

Példa:

Ebben a példában lekértem az URL tartalmát mindent.hogyan nevű fájlban tárolta gy_ath.html. A C forráskód külön van tárolva a forrás.c fájlt.

curl //www.allthings.how > gy_ath.html --libcurl source.c 

Kimenet:

gaurav@ubuntu:~/workspace$ curl //www.allthings.how > gy_ath.html --libcurl source.c % Összesen % Fogadott % Xferd Átlagsebesség Idő Idő Idő Aktuális letöltés Feltöltés Összes elköltött bal sebesség 0 0 0 0 0 0 0 0 --:--:-- 0:00:01 --:--:-- 0 gaurav@ubuntu:~/workspace$

Most nézzük meg a letöltött fájlokat.

gaurav@ubuntu:~/workspace$ ls -al total 404 drwxrwxr-x 3 gaurav gaurav 4096 Sep 16 17:08 . drwxr-xr-x 87 gaurav gaurav 266240 szeptember 16. 10:22 .. -rw-r--r-- 1 gaurav gaurav 0 szeptember 16 17:13 gy_ath.html -rw-r--r-- 1 gaurav5 gaurav 153 szeptember 16. 17:13 source.c gaurav@ubuntu:~/workspace$

A forrás.c fájl tartalmazza a forráskódot. Ez a terminálon a gombbal jeleníthető meg macska parancs. A kimenetből néhány sort tettem az alábbi blokkba.

C sourcegaurav@ubuntu:~/workspace$ cat source.c /********* A curl parancssori eszköz által generált mintakód ********* * Minden curl_easy_setopt() beállítás dokumentálva van itt: * //curl.haxx.se/libcurl/c/curl_easy_setopt.html ************************************ ****************************************/ #include int main(int argc, char *argv[]) { CURLcode ret; CURL *hnd; hnd = curl_easy_init(); curl_easy_setopt(hnd, CURLOPT_BUFFERSIZE, 102400L); curl_easy_setopt(hnd, CURLOPT_URL, "//www.allthings.how"); curl_easy_setopt(hnd, CURLOPT_USERAGENT, "curl/7.58.0"); curl_easy_setopt(hnd, CURLOPT_MAXREDIRS, 50L);

Proxy használata a CURL-ben az URL eléréséhez

A bevezetőben tárgyaltak szerint a becsavar parancs a protokollok széles skáláját támogatja, mint például az FTP, SMTP, HTTPS, SOCKS stb. Néha a proxyszerver használata a fájlok átviteléhez fontossá válik, ha növelni szeretné az átvitel sebességét, és meg szeretné védeni személyazonosságát. becsavar paranccsal könnyen átvihet fájlokat a proxyszerveren keresztül a -x lehetőség rá.

Példa:

curl -x [proxy_cím]:[port] [URL]

A fenti példában azt feltételeztem, hogy a proxy nem igényel hitelesítést. Abban az esetben, ha a proxy hitelesítést igényel az átvitel elindításához, használhatja a következő parancsot.

curl -u [felhasználónév]:[jelszó] -x [proxy_cím]:[port] [URL]

Ezzel az egyszerű módszerrel fájlokat vihetünk át egy proxy szerveren keresztül opcióval -x használta a becsavar parancs.

Következtetés

Ebben a rövid oktatóanyagban megtudtuk, hogyan becsavar parancs hasznosnak bizonyul a tartalom közvetlenül a terminálról történő letöltésében. Megismertük a paranccsal elérhető különféle lehetőségeket is, amelyek különféle feladatokhoz használhatók.