في هذا البرنامج التعليمي ، سنلقي نظرة على curl و wget ، وكيفية البدء ، والأهم من ذلك ، الاختلافات بينهما.
ما هو cURL؟
cURL هي أداة مساعدة مجانية ومفتوحة المصدر لسطر الأوامر تتيح للمستخدمين نقل البيانات من جهاز بعيد إلى آخر بأقل تفاعل من المستخدم أو بدونه. ينتشر استخدام CURL في أجهزة مثل أجهزة التوجيه والطابعات والهواتف والأجهزة اللوحية ومشغلات الوسائط والمزيد.
وهو يدعم التنزيل والتحميل باستخدام بروتوكولات مثل HTTP / HTTPS و FTP و SFTP و SCP و IMAP و LDAP / LDAPS و SMB / SMBS و TELNET و POP3 و GOPHER وغيرها الكثير.
يوفر cURL أيضًا وكلاء ، واستئناف عمليات النقل ، ومصادقة المستخدم ، وشهادات SSL ، وغير ذلك الكثير.
ما هو wget؟
GNU Wget ، المعروفة باسم wget ، هي أداة مساعدة مجانية لسطر الأوامر لنقل الملفات باستخدام HTTP / HTTPS و FTP و FTPS. يوفر ميزات مثل التنزيلات العودية والتحكم في النطاق الترددي واستئناف عمليات النقل التي تم إحباطها وتنزيلات الخلفية وملفات النسخ المتطابقة والأدلة وغيرها الكثير.
كيفية تثبيت cURL و Wget؟
cURL و wget من الأدوات الشائعة المتوفرة بسهولة في توزيعات Linux الرئيسية ؛ إذا لم يكن لديك أي من الأداتين مثبتين ، يمكنك استخدام الأوامر أدناه للتثبيت:
ديبيان / أوبونتو:
# تثبيت cURLسودو تثبيت apt-getلفة
# تثبيت wget
سودو تثبيت apt-get wget
القوس / مانجارو:
# تثبيت cURLسودوبكمان-سلفة
# تثبيت wget
سودوبكمان-س wget
REHL / CentOS / فيدورا:
# تثبيت cURLسودو يم التثبيتلفة
سودوdnfتثبيتلفة
# تثبيت wget
سودو يم التثبيت wget
سودوdnfتثبيت wget
كيفية استخدام cURL و Wget (أمثلة على حالات الاستخدام)؟
لضمان فهمك لأوجه التشابه والاختلاف بين cURL و wget ، من الجيد إلقاء نظرة على بعض الأمثلة:
بروتوكولات HTTP / HTTPS:
يدعم كل من cURL و wget بروتوكولات HTTP و HTTPS. ومن ثم ، إذا قمنا بتنزيل موقع ويب مثل linuxhint.com:
حليقة https://linuxhint.com-أوlinuxhint.htmlحليقة https://linuxhint.com-أوlinuxhint.html
٪المجموع٪تم الاستلام٪Xferd متوسط سرعة الوقت الوقت الحالي
تحميل Dload إجمالي السرعة اليسرى المستهلكة
100256k0256k0 0166 كيلو0-: -: -0: 00: 01 -: -: - 166 ألف
بشكل افتراضي ، سيطبع cURL محتويات مورد الويب في الجهاز. نستخدم العلامة -o لإعادة توجيه الإخراج إلى ملف.
ينطبق ما يلي على wget:
wgethttps://linuxhint.com--2021-06-2005:09:أربعة خمسة- https://linuxhint.com/
حل موقع linuxhint.com(linuxhint.com)... 104.21.58.234، 172.67.209.252،2606:4700:3033::6815:3aea, ...
الاتصال بـ linuxhint.com(linuxhint.com)|104.21.58.234|:443... متصل.
تم إرسال طلب HTTP ، في انتظار الاستجابة ...200نعم
الطول: غير محدد[نص/لغة البرمجة]
حفظ في: 'index.html'
index.html
[ <=> ]256.25K 506KB/سفي0.5 ثانية
2021-06-عشرين05:09:46 (506كيلو بايت/س)- تم حفظ 'index.html'[262396]
من ناحية أخرى ، يحفظ Wget المورد المطلوب في ملف.
من الجيد ملاحظة أن كلتا الأداتين تقومان بتنزيل المورد. توضح تفاصيل ls للملفين كلا أحجام الملفات.
$ls -الindex.html linuxhint.html-rw-rw-r-- 1لينوكسينت لينوكسينت262396يونيو19 خمسة عشر:خمسونindex.html
-rw-rw-r-- 1لينوكسينت لينوكسينت262396يونيوعشرين05:07 linuxhint.html
بروتوكول FTP:
يدعم كل من cURL و wget التنزيلات على بروتوكولات FTP. ومع ذلك ، يدعم cURL التحميل إلى بروتوكول نقل الملفات.
استخدم الأمر أدناه لتنزيل الملفات من خادم FTP باستخدام wget:
wget --المستعمل= دبيان--كلمه السر= 'دبيان' بروتوكول نقل الملفات://192.168.0.112/backup.zstwget --المستعمل= دبيان--كلمه السر='ديبيان'بروتوكول نقل الملفات://192.168.0.112/backup.zst
--2021-06-2005:29: 06-- بروتوكول نقل الملفات (ftp)://192.168.0.112/backup.zst
=>'backup.zst'
الاتصال بـ 192.168.0.112:واحد وعشرين... متصل.
تسجيلفي كماديبيان ... تسجيلفي!
==>SYST ... انتهى. ==>الأشخاص ذوي الإعاقة ... انتهى.
==>النوع الأول ... انتهيت. ==>CWD غير مطلوب.
==>SIZE backup.zst ... انتهى.
==>PASV ... انتهى. ==>RETR backup.zst ... انتهى.
backup.zst
[ <=> ] 0--.- كيلو بايت/سفي0 ثانية
2021-06-عشرين05:29: 06(0.00ب/س)- تم حفظ 'backup.zst'[0]
باستخدام الضفيرة ، أضف ملف-uعلم كـ:
لفة-uدبيان: ديبيان ftp://192.168.0.112/backup.zst '-أوbackup.zst
لفة-uدبيان: دبيان'ftp://192.168.0.112/backup.zst' -أوbackup.zst
٪المجموع٪تم الاستلام٪Xferd متوسط سرعة الوقت الوقت الحالي
تحميل Dload إجمالي السرعة اليسرى المستهلكة
0 0 0 0 0 0 0 0-: -: - -: -: - -: -: -0
لتحميل ملفملفإلىبروتوكول نقل الملفاتمع الضفيرة ، نستخدم ملف-تالخيار على النحو التالي:
لفة-uدبيان: دبيان-تbackup1.zst بروتوكول نقل الملفات://192.168.0.112/بروتوكول نقل الملفات/
تأكد من وجود الدليل وأن المستخدم لديه أذونات الكتابة إليه.
ملاحظة: على الرغم من أن cURL يدعم مجموعة متنوعة من البروتوكولات ، إلا أنه لا يوفر تنزيلات متكررة. من ناحية أخرى ، يدعم Wget التنزيلات المتكررة باستخدام الخيار –recursive حيث يوفر كل من بروتوكولي HTTP / HTTPS و FTP / FTPS هذه الوظيفة.
أوجه التشابه بين wget و cURL
الآن لتزيين الكيك:
- تدعم كلتا الأداتين البروتوكولات القياسية مثل HTTP و HTTPS و FTP و FTPS.
- كلتا الأداتين تقومان بتنزيل الملفات من الإنترنت.
- تدعم كلتا الأداتين ملفات تعريف ارتباط HTTP.
- كلا الأداتين تدعم الإخراج إلى ملف.
- كل من الأدوات المجانية والمطورة بشكل نشط.
- تدعم كلتا الأداتين استئناف عمليات النقل.
- كلا الأداتين تدعم HTTP POST.
الاختلافات بين wget و cURL
فيما يلي بعض الاختلافات بين curl و wget:
- Wget هي أداة نقل بسيطة ، بينما تقدم curl أكثر من ذلك بكثير.
- يوفر Curl مكتبة libcurl ، والتي يمكن توسيعها إلى تطبيقات واجهة المستخدم الرسومية. Wget ، من ناحية أخرى ، هو أداة مساعدة بسيطة لسطر الأوامر.
- يدعم Wget بروتوكولات أقل مقارنة بـ cURL.
- التنزيلات المتكررة غير مدعومة في curl.
- Wget متاح أصلاً في أنظمة Linux ، بينما يتوفر cURL بسهولة في أنظمة Windows.
- يدعم cURL عمليات نقل متوازية متعددة.
- ينفذ cURL عمليات فك ضغط HTTP المشفرة للنقل ، بينما لا يقوم wget.
- يدعم cURL HTTP ثنائي الاتجاه بينما يقدم wget طريقة HTTP POST عادية.
- يدعم cURL المزيد من طرق مصادقة HTTP مقارنةً بـ wget.
- Wget لا يدعم SOCKS.
- يتطلب Wget تثبيت gnulib.
- على عكس curl ، يتم تمكين ميزات مثل ملفات تعريف الارتباط والطوابع الزمنية وعمليات إعادة التوجيه التالية بشكل افتراضي في wget. يتطلب cURL تحديد كل منها بشكل صريح.
استنتاج
ركز هذا البرنامج التعليمي على أوجه التشابه والاختلاف بين cURL. على الرغم من أنه قد يبدو أن cURL هو الخيار الأفضل ، إلا أن هناك حالات يكون فيها wget هو الخيار الأفضل.
نصيحتي لك هي اختيار ما يناسبك.