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ég | Leírás |
-u | fájlok letöltéséhez FTP szerverről |
-C | megszakadt letöltés folytatásához |
-o | hogy mentse az eredményt a becsavar parancs előre meghatározott fájlnévvel |
-ÉN | egy meghatározott URL HTTP-fejléceinek lekéréséhez |
-O | hogy mentse az eredményt a becsavar parancsot az eredeti fájlnévvel |
--libcurl | használó C forráskód kiadásához libcurl a megadott opcióhoz |
-x | hogy 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.