यदि आप कुछ समय से Linux अनुप्रयोगों के लिए टर्मिनल-केंद्रित स्थापना निर्देशों का पालन कर रहे हैं, तो संभवतः आप curl
पर आ गए हैं किसी बिंदु या किसी अन्य पर आदेश। URL के साथ डेटा स्थानांतरित करने के लिए cURL एक कमांड-लाइन टूल है। कमांड लाइन के माध्यम से फ़ाइल डाउनलोड करना सबसे सरल उपयोगों में से एक है। हालांकि, यह भ्रामक है, क्योंकि कर्ल एक अविश्वसनीय रूप से शक्तिशाली उपकरण है जो और भी बहुत कुछ कर सकता है।
कर्ल क्या है?
मूल रूप से डैनियल स्टर्नबर्ग द्वारा 1996 में वेब सर्वर से वित्तीय डेटा को हथियाने और आईआरसी चैनलों पर प्रसारित करने के लिए लिखा गया था, कर्ल एक ब्राउज़र का उपयोग किए बिना डेटा प्राप्त करने के लिए एक शक्तिशाली उपकरण बन गया है। यदि आप हमेशा टर्मिनल का उपयोग कर रहे हैं, तो यह आपके शस्त्रागार में अधिक महत्वपूर्ण उपकरणों में से एक होगा।
अधिकांश Linux वितरणों में, cURL सिस्टम में प्रीइंस्टॉल्ड होता है, और आप इसे सीधे उपयोग कर सकते हैं। यहां तक कि अगर यह स्थापित नहीं है, तो यह अधिकांश रिपॉजिटरी में भी पाया जाता है, इसलिए आप इसे सॉफ्टवेयर केंद्र का उपयोग करके आसानी से स्थापित कर सकते हैं।
विंडोज़ के लिए, इसमें "कर्ल-लाइक" कमांड नहीं है, और मैकोज़ में कर्ल प्रीइंस्टॉल्ड है लेकिन लिनक्स संस्करण के रूप में कई झंडे पेश नहीं करता है।
इंस्टॉलेशन
इससे पहले कि हम आगे बढ़ें, हमें यह सुनिश्चित करना होगा कि हमारे सिस्टम पर कर्ल पहले से ही स्थापित है।
लिनक्स
डेबियन/उबंटू-आधारित डिस्ट्रोस में, कर्ल स्थापित करने के लिए निम्न कमांड का उपयोग करें:
sudo apt install curl
आर्क-आधारित डिस्ट्रोज़ में:
sudo pacman -S curl
फेडोरा/सेंटोस/आरएचईएल में:
sudo dnf install curl
मैकोज़
macOS के लिए, यह पहले से ही प्रीइंस्टॉल्ड है, इसलिए आपको कुछ भी करने की आवश्यकता नहीं है।
Windows
- विंडोज 7/10/11 के लिए, कर्ल डाउनलोड पेज पर जाएं और आपके द्वारा चलाए जा रहे आर्किटेक्चर के अनुसार 64-बिट या 32-बिट पैकेज में से किसी एक को चुनें। यदि आप अपने आर्किटेक्चर को नहीं जानते हैं, तो 64-बिट एक सुरक्षित शर्त है, क्योंकि 2006 के बाद बनाया गया अधिकांश हार्डवेयर इसी पर है।
- सीधे सिस्टम ड्राइव पर या "C:\Program Files\" में एक फ़ोल्डर बनाएं और इसे "cURL" कहें।
- आपके द्वारा डाउनलोड की गई ज़िप फ़ाइल पर वापस जाएं, इसे खोलें, और "बिन" फ़ोल्डर के अंदर "curl.exe" ढूंढें। इसे आपके द्वारा बनाए गए कर्ल फ़ोल्डर में कॉपी करें। आपके द्वारा कॉपी किया गया EXE पूरी तरह से स्व-निहित है और आपके द्वारा Linux पर चलाए जा सकने वाले प्रत्येक क्रमपरिवर्तन को चलाने में सक्षम है।
- इस कमांड को वास्तव में उपयोगी बनाने के लिए, हमें इसे विंडोज़ में पाथ वेरिएबल में जोड़ना होगा ताकि यह कमांड प्रॉम्प्ट से कहीं भी चल सके।
- अपने प्रारंभ मेनू पर क्लिक करें,
environment
टाइप करें , और Enter . दबाएं । - “पर्यावरण चर …” पर क्लिक करें अब आपको अपनी पर्यावरण चर सेटिंग में होना चाहिए।
- “पथ” पर्यावरण चर चुनें, फिर “संपादित करें…” पर क्लिक करें
- एक बार पथ संपादन संवाद विंडो में, "नया" पर क्लिक करें और उस निर्देशिका को टाइप करें जहां आपका "curl.exe" स्थित है - उदाहरण के लिए, "C:\Program Files\cURL"।
- इस प्रक्रिया के माध्यम से आपके द्वारा खोले गए डायलॉग विंडो पर "ओके" पर क्लिक करें और अपने टर्मिनल में कर्ल होने का आनंद लें!
cURL का प्रत्येक फ़्लैग जो Linux में उपयोग करने योग्य है, उसे Windows संस्करण में काम करना चाहिए।
बुद्धिमान से बात करें: याद रखें कि कमांड प्रॉम्प्ट को कभी भी विंडोज टर्मिनल के साथ भ्रमित नहीं होना चाहिए। विंडोज टर्मिनल पावरशेल में शामिल कर्ल के अपने संस्करण के साथ आता है जो समान कार्यक्षमता प्रदान करता है लेकिन पूरी तरह से अलग तरीके से काम करता है।
कर्ल का उपयोग करना
आरंभ करने के लिए, बस curl maketecheasier.com
टाइप करें अपने टर्मिनल में और Enter press दबाएं ।
यदि आपको कोई आउटपुट नहीं मिल रहा है, तो इसका कारण यह है कि इस साइट का सर्वर इसके गैर-www डोमेन के लिए यादृच्छिक कनेक्शन अनुरोधों का जवाब देने के लिए कॉन्फ़िगर नहीं किया गया है। यदि आपने किसी ऐसे सर्वर को चुना है जो मौजूद नहीं है या ऑनलाइन नहीं है, तो आपको यह कहते हुए एक त्रुटि संदेश मिलेगा कि cURL होस्ट को हल नहीं कर सका।
वास्तव में उपयोगी कुछ करने के लिए कर्ल प्राप्त करने के लिए, हमें एक प्रोटोकॉल निर्दिष्ट करना होगा। हमारे उदाहरण में, हम इस साइट के होम पेज को क्वेरी करने के लिए HTTPS प्रोटोकॉल का उपयोग कर रहे हैं। टाइप करें curl https://www.maketecheasier.com
।
यदि सब कुछ ठीक रहा, तो आपको डेटा की विशाल दीवार को घूरना चाहिए। उस डेटा को थोड़ा अधिक प्रयोग करने योग्य बनाने के लिए, हम कर्ल को एक HTML फ़ाइल में डालने के लिए कह सकते हैं:
curl https://www.maketecheasier.com > ~/Downloads/mte.html
यह आदेश हमारी साइट के आउटपुट की सामग्री को आपके डाउनलोड फ़ोल्डर में एक HTML फ़ाइल में डालता है। अपने पसंदीदा फ़ाइल प्रबंधक के साथ फ़ोल्डर में नेविगेट करें और आपके द्वारा अभी बनाई गई फ़ाइल पर डबल-क्लिक करें। इसे इस साइट के होम पेज के HTML आउटपुट का एक स्नैपशॉट खोलना चाहिए।
इसी तरह, आप -o
. का उपयोग कर सकते हैं समान परिणाम प्राप्त करने के लिए ध्वज:
curl -o ~/Downloads/mte.html https://www.maketecheasier.com
अनुवर्ती रीडायरेक्ट
अधिकांश साइटें स्वचालित रूप से "http" से "https" प्रोटोकॉल पर ट्रैफ़िक को पुनर्निर्देशित करती हैं। कर्ल में, आप -L
. के साथ एक ही चीज़ हासिल कर सकते हैं झंडा। यह स्वचालित रूप से 301 रीडायरेक्ट का पालन करेगा जब तक कि यह एक पठनीय पृष्ठ या फ़ाइल तक नहीं पहुंच जाता।
curl -L https://google.com.
डाउनलोड फिर से शुरू करना
बड़ी फ़ाइलें डाउनलोड करते समय, आपके इंटरनेट की गति के आधार पर, रुकावटें अत्यधिक परेशान करने वाली हो सकती हैं। शुक्र है, कर्ल में एक फिर से शुरू करने का कार्य है। -C
पास करना झंडा पल भर में इस मुद्दे को संभाल लेगा।
एक वास्तविक दुनिया का उदाहरण दिखाने के लिए, मैंने Ctrl दबाकर डेबियन के परीक्षण रिलीज़ आईएसओ के डाउनलोड को उद्देश्य से बाधित किया और सी इसे हथियाने के बीच में।
हमारे अगले आदेश के लिए, -C
. संलग्न कर रहे हैं झंडा। उदाहरण के लिए,
curl -C - -o ~/Downloads/debiantesting.iso -L https://cdimage.debian.org/cdimage/weekly-builds/amd64/iso-dvd/debian-testing-amd64-DVD-1.iso
डाउनलोड वहीं से शुरू हुआ जहां से उसने छोड़ा था।
एक से अधिक फ़ाइल डाउनलोड करना
चूंकि कर्ल में एकाधिक फ़ाइलों को डाउनलोड करने का सबसे सहज तरीका नहीं है, इसलिए दो विधियां हैं, प्रत्येक का अपना समझौता है।
यदि आपके द्वारा डाउनलोड की जा रही फ़ाइलें एन्यूमरेटेड हैं (उदा., file1, file2, और इसी तरह), तो आप फ़ाइलों की पूरी श्रृंखला प्राप्त करने के लिए कोष्ठक का उपयोग कर सकते हैं और आपके द्वारा निर्दिष्ट आउटपुट के भीतर "#" -o
झंडा। इसे थोड़ा कम भ्रमित करने के लिए, यहां एक उदाहरण दिया गया है:
curl "https://example.com/file[1-5].zip" -o "#1_#2"
ऐसा करने का एक आसान तरीका है -O
(--remote-name
) यह ध्वज दूरस्थ फ़ाइल को उसी नाम की स्थानीय फ़ाइल पर डाउनलोड करने के लिए CURL बनाता है। चूंकि आपको आउटपुट निर्दिष्ट करने की आवश्यकता नहीं है, इसलिए आपको इस कमांड का उपयोग तब करना चाहिए जब टर्मिनल उस निर्देशिका में खुला हो जिसमें आप फ़ाइलें डाउनलोड करना चाहते हैं।
curl -O "https://example.com/file1.zip" -O "https://example.com/file2.zip"
यदि आपके पास डाउनलोड करने के लिए बड़ी मात्रा में एन्यूमरेटेड फ़ाइलें हैं, तो --remote-name-all
इसके लिए एक बेहतर झंडा है:
curl --remote-name-all "https://example.com/file[1-5].zip"
आप कोष्ठक का उपयोग करके URL को फिर से टाइप किए बिना उसी साइट से आने वाली गैर-गणना की गई फ़ाइलों को भी निर्दिष्ट कर सकते हैं:
curl --remote-name-all "https://example.com/{file1.zip,anotherfile.zip,thisisfun.zip}"
प्रमाणीकरण के साथ डाउनलोड करना
प्रमाणीकरण की आवश्यकता वाली फ़ाइलें डाउनलोड करें (उदाहरण के लिए, निजी FTP सर्वर से हथियाने पर) -u
के साथ झंडा। प्रत्येक प्रमाणीकरण अनुरोध पहले उपयोगकर्ता नाम और पासवर्ड दूसरे के साथ किया जाना चाहिए, जिसमें एक कोलन दोनों को अलग करता है। चीजों को आसान बनाने के लिए यहां एक उदाहरण दिया गया है:
curl -u username:password -o ~/Downloads/file.zip ftp://example.com/file.zip
यह हमारे मित्र bonobo_bob को FTP सर्वर में प्रमाणित करेगा और फ़ाइल को डाउनलोड फ़ोल्डर में डाउनलोड करेगा।
फ़ाइलों को विभाजित और मर्ज करना
यदि किसी कारण से आप एक बड़ी फ़ाइल डाउनलोड करना चाहते हैं और उसे टुकड़ों में विभाजित करना चाहते हैं, तो आप कर्ल के --range
के साथ ऐसा कर सकते हैं। झंडा। --range
. के साथ , आपको उस बाइट को निर्दिष्ट करना होगा जिसे आप शुरू करना चाहते हैं जिसे आप समाप्त करना चाहते हैं। यदि आप सीमा का अंत निर्दिष्ट नहीं करते हैं, तो यह केवल शेष फ़ाइल को डाउनलोड करेगा।
नीचे दिए गए आदेश में, कर्ल आर्क लिनक्स की स्थापना छवि के पहले 100 एमबी डाउनलोड करेगा:
curl --range 0-99999999 -o arch.part1 -L https://mirrors.chroot.ro/archlinux/iso/2021.11.01/archlinux-2021.11.01-x86_64.iso
अगले 100 एमबी के लिए, --range 100000000-199999999
का उपयोग करें , आदि। आप &&
. का उपयोग करके इन आदेशों को श्रृंखलाबद्ध कर सकते हैं संकार्य:
curl --range 0-99999999 -o arch.part1 -L https://mirrors.chroot.ro/archlinux/iso/2021.11.01/archlinux-2021.11.01-x86_64.iso && \ curl --range 100000000-199999999 -o arch.part2 -L https://mirrors.chroot.ro/archlinux/iso/2021.11.01/archlinux-2021.11.01-x86_64.iso && \ curl --range 200000000-299999999 -o arch.part3 -L https://mirrors.chroot.ro/archlinux/iso/2021.11.01/archlinux-2021.11.01-x86_64.iso && \ curl --range 300000000-399999999 -o arch.part4 -L https://mirrors.chroot.ro/archlinux/iso/2021.11.01/archlinux-2021.11.01-x86_64.iso && \ curl --range 400000000-499999999 -o arch.part5 -L https://mirrors.chroot.ro/archlinux/iso/2021.11.01/archlinux-2021.11.01-x86_64.iso && \ curl --range 500000000-599999999 -o arch.part6 -L https://mirrors.chroot.ro/archlinux/iso/2021.11.01/archlinux-2021.11.01-x86_64.iso && \ curl --range 600000000-699999999 -o arch.part7 -L https://mirrors.chroot.ro/archlinux/iso/2021.11.01/archlinux-2021.11.01-x86_64.iso && \ curl --range 700000000- -o arch.part8 -L https://mirrors.chroot.ro/archlinux/iso/2021.11.01/archlinux-2021.11.01-x86_64.iso
यदि आपने पत्र में उपरोक्त कमांड संरचना का पालन किया है, तो आठ फाइलें दिखाई देनी चाहिए जहां आपने कर्ल को उन्हें डाउनलोड करने के लिए कहा था।
इन फ़ाइलों को फिर से जोड़ने के लिए, आपको cat
. का उपयोग करना होगा यदि आप Linux या macOS पर हैं तो कमांड करें:
cat arch.part? > arch.iso
विंडोज़ के लिए, आपको copy
. का उपयोग करना होगा इस तरह कमांड करें:
copy /b arch.part* arch.iso
अन्य उपयोगी सुविधाएं
कर्ल के लिए बहुत सारे फ़्लैग और उपयोग हैं:
-#
- आप जो पकड़ रहे हैं उसमें आप कितनी दूर हैं, यह इंगित करने के लिए एक प्रगति पट्टी का उपयोग करता है। उदाहरण:curl -# https://asite.com/somefile.zip > ~/somefile.zip
।-a
- cURL को किसी फ़ाइल को अधिलेखित करने के बजाय उसमें जोड़ने के लिए कहता है। उदाहरण:curl -ao ~/collab-full.x https://example-url.com/collab-part26.x
।--head
- आउटपुट डेटा के बिना सर्वर से केवल प्रतिक्रिया शीर्षलेख पकड़ लेता है। यह तब उपयोगी होता है जब आप या तो किसी वेबसाइट को डिबग कर रहे होते हैं या क्लाइंट के लिए सर्वर की प्रोग्राम की गई प्रतिक्रियाओं पर एक नज़र डालते हैं। उदाहरण:curl --head https://example-url.com
।--limit-rate
- सीमित बैंडविड्थ के साथ डाउनलोड का आदेश देता है। यह उन स्थितियों में उपयोगी है जहां आप अपने सिस्टम में सभी उपलब्ध बैंडविड्थ को cURL हॉगिंग नहीं करना चाहते हैं। एक साधारण संख्या की व्याख्या बाइट्स प्रति सेकंड के रूप में की जाएगी। K प्रति सेकंड किलोबाइट का प्रतिनिधित्व करता है; एम प्रति सेकंड मेगाबाइट का प्रतिनिधित्व करता है। उदाहरण:curl --limit-rate 8M https://example-url.com/file.zip > ~/file.zip
।-o
- जैसा कि पहले उल्लेख किया गया है, कर्ल के उपयोग के लिए एक आउटपुट फ़ाइल निर्धारित करता है। उदाहरण:curl -o ~/Downloads/file.zip https://thefileplace.com/file.zip -o file2.zip https://thefileplace.com/file2.zip
।--proxy
- अगर आप प्रॉक्सी के साथ काम करना चाहते हैं, तो इसे करने का यह तरीका है। उदाहरण:curl --proxy proxyurl:port https://example-url.com/file.zip > ~file.zip
।
cURL बनाम Wget
दोनों एक ही वर्ष (1996) में रिलीज़ हुए, कर्ल और Wget आकस्मिक पर्यवेक्षक के लिए बहुत अधिक बहन कार्यक्रम हैं। हालाँकि, थोड़ा गहरा गोता लगाएँ, और आप देख सकते हैं कि इन दोनों बहनों के अलग-अलग उद्देश्य हैं।
Wget
- इंटरनेट से डेटा प्राप्त करने के लिए इसे पूरी तरह से बनाया गया है।
-L
की जरूरत नहीं है या-o
कर्ल जैसे झंडे; बस टाइप करेंwget [url]
और जाओ!- एक निर्देशिका में
-r
के साथ सब कुछ हथियाने के लिए पुनरावर्ती रूप से डाउनलोड कर सकते हैं झंडा। - इसमें वे सभी कार्य हैं जिनकी एक उपयोगकर्ता को दैनिक उपयोग के लिए आवश्यकता होती है और दैनिक sysadmin कार्यों को पूरा करता है।
- (लिनक्स में) कई निर्भरता की आवश्यकता नहीं है; वे सभी बॉक्स से बाहर उपलब्ध होने चाहिए।
कर्ल
- झंडों का विस्तृत भंडार और दूरस्थ पुनर्प्राप्ति के लिए उपयोगी कार्य।
- स्थानीय नेटवर्किंग (LDAP) और नेटवर्क प्रिंटर (सांबा) का समर्थन करता है।
- gzip कम्प्रेशन लाइब्रेरी के साथ अच्छा काम करता है।
- libcurl पर निर्भर करता है, जो डेवलपर्स को सॉफ़्टवेयर या बैश स्क्रिप्ट लिखने की अनुमति देता है जिसमें कर्ल की कार्यक्षमता शामिल होती है।
संक्षेप में, Wget इंटरनेट से सामान हथियाने के लिए "हर आदमी का टूलबॉक्स" है, जबकि cURL बिजली उपयोगकर्ताओं और सिस्टम प्रशासकों के लिए अधिक दानेदार नियंत्रण के साथ इस पर विस्तार करता है।
अक्सर पूछे जाने वाले प्रश्न
1. मुझे लिनक्स में प्रमाणपत्र त्रुटि मिली है। मैं इसे कैसे ठीक करूं?
यदि आपको कोई त्रुटि मिली है जो कहती है कि "सहकर्मी के प्रमाणपत्र जारीकर्ता को विश्वसनीय के रूप में चिह्नित किया गया है," तो इसे ठीक करने का सबसे आसान तरीका अपने वितरण में सामान्य प्रमाणपत्र पैकेज को फिर से स्थापित करना है।
डेबियन/उबंटू-आधारित सिस्टम के लिए:
sudo apt reinstall ca-certificates
फेडोरा/सेंटोस/आरएचईएल के लिए:
dnf reinstall ca-certificates
आर्क-आधारित सिस्टम के लिए:
pacman -S ca-certificates
ध्यान दें कि आर्क में आप pacman -Scc
. का उपयोग करके अपने पैकेज कैश को साफ़ करना चाह सकते हैं प्रमाणपत्र पैकेज को पुनः स्थापित करने से पहले।
यदि आपको अभी भी यह त्रुटि मिलती है, तो सर्वर के अंत में कुछ गड़बड़ हो सकती है।
2. क्या कर्ल और बैश कमांड को एक साथ चलाना सुरक्षित है?
जबकि लिनक्स अनुप्रयोगों को स्थापित करने का सबसे आम तरीका नहीं है, ऐसे कई डेवलपर्स हैं (जैसे कि नोडजेएस के पीछे के लोग) जो आपको curl
का उपयोग करने के अलावा कोई विकल्प नहीं देते हैं। एक रूट-एक्सेस कमांड के साथ जो बैश के माध्यम से चलता है (जैसे, curl [argument] | sudo -E bash -
) सॉफ़्टवेयर स्थापित करने के लिए।
यह थोड़ा डरावना लग सकता है, लेकिन अगर आवेदन के पीछे के लोग भरोसेमंद हैं, तो यह बहुत कम संभावना है कि आप कुछ तोड़ देंगे। दुर्भावनापूर्ण अभिनेता हर जगह हैं और आर्क के AUR जैसे रिपॉजिटरी में घुसपैठ कर सकते हैं, इसलिए curl
का उपयोग करके इंस्टॉल करना रूट एक्सेस कमांड के संयोजन में आमतौर पर आपके पैकेज मैनेजर के माध्यम से ऐसा करने से ज्यादा असुरक्षित नहीं होता है।
3. क्या मैं Tor के साथ कर्ल का उपयोग कर सकता हूँ?
हां! टोर ब्राउज़र (या एक स्टैंडअलोन टोर सेवा) प्रारंभ करें और --proxy
. का उपयोग करें झंडा। टोर आपको एक स्थानीय प्रॉक्सी देता है जिसका उपयोग आप अन्य अनुप्रयोगों में अपने आईपी को मास्क करने के लिए कर सकते हैं। यहाँ Tor के साथ उपयोग किए जाने वाले cURL का एक उदाहरण है:
curl --proxy localhost:9050 https://example.com
स्टैंडअलोन टोर सेवाएं 9050 का उपयोग उनके सुनने के पोर्ट के रूप में करेंगी, जबकि टोर ब्राउज़र पोर्ट 9150 का उपयोग करेगा।
रैपिंग अप
टर्मिनल उपयोगकर्ता के शस्त्रागार में एक महत्वपूर्ण उपकरण के रूप में अपनी स्थिति को बनाए रखते हुए, लिनक्स दुनिया के बदलते कपड़े के बीच कर्ल लचीला साबित हुआ है।
यदि आप कमांड लाइन में नए हैं, तो कुछ सबसे उपयोगी लिनक्स कमांड देखें। यदि आप इंटरनेट से डेटा डाउनलोड करने के बजाय केवल वेब पर खोज करना चाहते हैं, तो आप टर्मिनल पर भी ब्राउज़ कर सकते हैं।