كيفية استخدام cURL لنقل بيانات سطر الأوامر والمزيد

إذا كنت تتبع إرشادات التثبيت التي تركز على المحطة الطرفية لتطبيقات Linux لفترة من الوقت ، فمن المحتمل أن تكون قد صادفت curlالأمر في وقت ما أو آخر. cURL هي أداة سطر أوامر لنقل البيانات باستخدام عناوين URL. أحد أبسط الاستخدامات هو تنزيل ملف عبر سطر الأوامر. ومع ذلك ، يعد هذا خادعًا ، لأن cURL أداة قوية بشكل لا يصدق يمكنها فعل المزيد.

ما هو cURL؟

تم كتابته في الأصل بواسطة Daniel Sternberg في عام 1996 للحصول على البيانات المالية من خوادم الويب وبثها إلى قنوات IRC ، وقد تطور cURL ليصبح أداة قوية للحصول على البيانات دون الحاجة إلى استخدام متصفح. إذا كنت تستخدم الجهاز دائمًا ، فستكون هذه واحدة من أهم الأدوات في ترسانتك.

في معظم توزيعات Linux ، يتم تثبيت cURL مسبقًا في النظام ، ويمكنك استخدامه على الفور. حتى إذا لم يتم تثبيته ، فهو موجود أيضًا في معظم المستودعات ، لذا يمكنك تثبيته بسهولة باستخدام مركز البرامج.

بالنسبة لنظام التشغيل Windows ، لا يحتوي على أمر “curl-like” ، وقد تم تثبيت cURL مسبقًا على macOS ولكنه لا يقدم العديد من العلامات مثل إصدار Linux.

التركيب

قبل المضي قدمًا ، يجب أن نتأكد من تثبيت cURL بالفعل على نظامنا.

لينكس

في التوزيعات المستندة إلى Debian / Ubuntu ، استخدم الأمر التالي لتثبيت cURL:

في التوزيعات القائمة على القوس:

في Fedora / CentOS / RHEL:

macOS

بالنسبة لنظام التشغيل macOS ، تم تثبيته مسبقًا بالفعل ، لذا لن تحتاج إلى القيام بأي شيء.

شبابيك

  1. بالنسبة لنظام التشغيل Windows 7/10/11 ، توجه إلى صفحة تنزيل cURL واختر من بين حزم 64 بت أو 32 بت ، وفقًا للبنية التي تقوم بتشغيلها. إذا كنت لا تعرف الهندسة المعمارية الخاصة بك ، فإن 64 بت هو رهان آمن ، حيث أن الغالبية العظمى من الأجهزة التي تم تصنيعها بعد عام 2006 موجودة عليها.
  2. أنشئ مجلدًا إما مباشرة على محرك أقراص النظام أو في “C: \ Program Files \” وسميه “cURL”.
Linuxcurl Newfolder
  1. ارجع إلى ملف zip الذي نزّلته وافتحه وابحث عن “curl.exe” داخل مجلد “bin”. انسخ ذلك إلى مجلد cURL الذي أنشأته. EXE الذي نسخته مستقل تمامًا وقادر على تشغيل كل تبديل يمكنك تشغيله على Linux.
  2. لجعل هذا الأمر مفيدًا بالفعل ، يتعين علينا إضافته إلى متغير PATH في Windows بحيث يمكن تشغيله من موجه الأوامر في أي مكان.
  • انقر فوق قائمة ابدأ واكتب environmentواضغط Enter.
  • انقر فوق “متغيرات البيئة …” يجب أن تكون الآن في إعدادات متغيرات البيئة الخاصة بك.
متغيرات بيئة Linuxcurl
  • حدد متغير البيئة “المسار” ، ثم انقر فوق “تحرير …”
  • بمجرد دخولك إلى نافذة حوار تحرير المسار ، انقر على “جديد” واكتب الدليل الذي يوجد به “curl.exe” – على سبيل المثال ، “C: \ Program Files \ cURL”.
Linuxcurl تحريرمتغير
  • انقر فوق “موافق” في نوافذ الحوار التي فتحتها خلال هذه العملية واستمتع بوجود cURL في جهازك!

يجب أن تعمل كل علامة في cURL قابلة للاستخدام في Linux في إصدار Windows.

كلمة للحكماء: تذكر أنه لا ينبغي أبدًا الخلط بين موجه الأوامر وبين Windows Terminal. يأتي Windows Terminal مع نسخته الخاصة من cURL المضمنة في PowerShell والتي تقدم وظائف مماثلة ولكنها تعمل بشكل مختلف تمامًا.

باستخدام cURL

للبدء ، ما curl maketecheasier.comعليك سوى كتابة جهازك الطرفي واضغط Enter.

إذا لم تحصل على أي مخرجات ، فذلك لأن خادم هذا الموقع غير مهيأ للاستجابة لطلبات الاتصال العشوائية إلى المجال الذي لا يحتوي على www. إذا قمت باستقصاء خادم غير موجود أو غير متصل بالإنترنت ، فستتلقى رسالة خطأ تفيد بأن cURL لا يمكنه حل المضيف.

Linuxcurl خطأ

لجعل cURL يفعل شيئًا مفيدًا بالفعل ، سيتعين علينا تحديد بروتوكول. في مثالنا ، نستخدم بروتوكول HTTPS للاستعلام عن الصفحة الرئيسية لهذا الموقع. اكتب curl https://www.maketecheasier.com.

ملفات Linuxcurl

إذا سارت الأمور على ما يرام ، يجب أن تحدق في جدار ضخم من البيانات. لجعل هذه البيانات أكثر قابلية للاستخدام ، يمكننا إخبار cURL بوضعها في ملف HTML:

Linuxcurl تنزيل

يضع هذا الأمر محتويات مخرجات موقعنا في ملف HTML في مجلد التنزيلات. انتقل إلى المجلد باستخدام مدير الملفات المفضل لديك وانقر نقرًا مزدوجًا فوق الملف الذي أنشأته للتو. يجب أن يفتح لقطة من إخراج HTML للصفحة الرئيسية لهذا الموقع.

اختبار Linuxcurl

وبالمثل ، يمكنك استخدام -oالعلم لتحقيق نفس النتيجة:

متابعة عمليات إعادة التوجيه

تعيد معظم المواقع تلقائيًا توجيه حركة المرور من بروتوكول “http” إلى بروتوكول “https”. في cURL ، يمكنك تحقيق نفس الشيء باستخدام -Lالعلم. سيتبع هذا تلقائيًا عمليات إعادة التوجيه 301 حتى تصل إلى صفحة أو ملف قابل للقراءة.

إعادة توجيه Linuxcurl

استئناف التنزيل

عند تنزيل ملفات كبيرة ، اعتمادًا على سرعة الإنترنت لديك ، يمكن أن تكون الانقطاعات مزعجة للغاية. لحسن الحظ ، يحتوي cURL على وظيفة استئناف. تمرير -Cالعلم سيهتم بهذه المشكلة في لمح البصر.

لإظهار مثال من العالم الحقيقي ، قمت بمقاطعة تنزيل إصدار اختبار دبيان ISO عن قصد بالضغط عليه Ctrlوفي Cمنتصف الاستيلاء عليه.

Linuxcurl انقطع

لأمرنا القادم ، يتم رفع -Cالعلم. فمثلا،

استئناف Linuxcurl

بدأ التنزيل بنجاح من حيث توقف.

تحميل أكثر من ملف

نظرًا لأن cURL ليس لديه الطريقة الأكثر سهولة لتنزيل ملفات متعددة ، فهناك طريقتان ، كل واحدة لها حل وسط خاص بها.

إذا تم تعداد الملفات التي تقوم بتنزيلها (على سبيل المثال ، file1 ، file2 ، وما إلى ذلك) ، فيمكنك استخدام الأقواس للحصول على النطاق الكامل للملفات و “#” داخل الإخراج الذي تحدده -oبالعلامة. لجعل هذا أقل إرباكًا ، إليك مثال:

أبسط طريقة للقيام بذلك هي باستخدام -O--remote-name). هذا العلم يجعل cURL يقوم بتنزيل الملف البعيد على ملف محلي بنفس الاسم. نظرًا لأنك لست مضطرًا لتحديد مخرجات ، يجب عليك استخدام هذا الأمر عندما تكون المحطة الطرفية مفتوحة في الدليل الذي تريد تنزيل الملفات إليه.

إذا كان لديك قدر كبير من الملفات التي تم تعدادها لتنزيلها ، --remote-name-allفهذه علامة أفضل لهذا:

يمكنك حتى تحديد الملفات غير المعدودة القادمة من نفس الموقع دون الحاجة إلى إعادة كتابة عنوان URL باستخدام الأقواس:

التنزيل باستخدام المصادقة

قم بتنزيل الملفات التي تتطلب المصادقة (على سبيل المثال ، عند الاستيلاء على خادم FTP خاص) مع -uالعلم. يجب أن يتم كل طلب مصادقة باستخدام اسم المستخدم أولاً وكلمة المرور ثانيًا ، مع نقطتين تفصل بينهما. إليك مثال لتبسيط الأمور:

سيؤدي هذا إلى مصادقة صديقنا bonobo_bob في خادم FTP وتنزيل الملف في مجلد التنزيلات.

تقسيم الملفات ودمجها

إذا كنت ترغب لأي سبب من الأسباب في تنزيل ملف كبير وتقسيمه إلى أجزاء ، فيمكنك القيام بذلك باستخدام --rangeعلم cURL . باستخدام --range، يجب عليك تحديد البايت الذي تريد البدء منه حتى البايت الذي تريد الانتهاء عنده. إذا لم تحدد نهاية النطاق ، فسيتم فقط تنزيل بقية الملف.

في الأمر أدناه ، ستقوم cURL بتنزيل أول 100 ميغابايت من صورة تثبيت Arch Linux:

بالنسبة لـ 100 ميغابايت التالية ، استخدم --range 100000000-199999999، إلخ. يمكنك ربط هذه الأوامر باستخدام &&المعامل:

إذا اتبعت بنية الأوامر أعلاه بالحرف ، فيجب أن تظهر ثمانية ملفات حيث طلبت من cURL تنزيلها.

أجزاء Linuxcurl

لتوحيد هذه الملفات ، سيتعين عليك استخدام catالأمر إذا كنت تستخدم Linux أو macOS مثل:

بالنسبة لنظام التشغيل Windows ، سيتعين عليك استخدام copyالأمر مثل هذا:

ميزات مفيدة أخرى

هناك الكثير من الأعلام والاستخدامات لـ cURL:

  • -#– يستخدم شريط التقدم للإشارة إلى مدى تقدمك في ما تمسك به. مثال: 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 كيلوبايت في الثانية ؛ M تمثل ميغا بايت في الثانية. مثال: curl --limit-rate 8M https://example-url.com/file.zip > ~/file.zip.
  • -o– كما ذكرنا سابقًا ، يحدد ملف الإخراج لاستخدام cURL. مثال: 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) ، cURL و Wget برنامجين شقيقين إلى حد كبير للمراقب العادي. الغوص أعمق قليلاً ، رغم ذلك ، يمكنك أن ترى أن هاتين الأختين لهما أغراض مختلفة.

Wget

  • لقد تم إنشاؤه بالكامل من الألف إلى الياء للحصول على البيانات من الإنترنت.
  • لا يحتاج -Lأو -oأعلام مثل cURL ؛ فقط اكتبwget [url] وانطلق!
  • يمكن التنزيل بشكل متكرر للاستيلاء على كل شيء في دليل بامتداد -r العلم.
  • لديه جميع الوظائف التي يحتاجها المستخدم للاستخدام اليومي ويلبي مهام مسؤول النظام اليومية.
  • (في Linux) لا يحتاج إلى الكثير من التبعيات ؛ يجب أن يكون كل منهم متاحًا خارج الصندوق.

لفة

  • ذخيرة موسعة من الأعلام والوظائف المفيدة للاسترجاع عن بُعد.
  • يدعم الشبكات المحلية (LDAP) وطابعات الشبكة (Samba).
  • يعمل بشكل جيد مع مكتبات ضغط gzip.
  • يعتمد على libcurl ، والذي يسمح للمطورين بكتابة برامج أو نصوص bash تتضمن وظائف cURL.

باختصار ، Wget هو “صندوق أدوات كل رجل” للاستيلاء على الأشياء من الإنترنت ، بينما يتوسع cURL في هذا مع المزيد من التحكم الدقيق للمستخدمين المحترفين ومسؤولي النظام.

أسئلة مكررة

1. حصلت على خطأ في الشهادة في Linux. كيف أصلحه؟

إذا تلقيت خطأ يفيد بأن شيئًا ما مثل “مُصدر شهادة النظير قد تم تمييزه على أنه غير موثوق به” ، فإن أسهل طريقة لإصلاح ذلك هي إعادة تثبيت حزمة الشهادات الشائعة في التوزيع الخاص بك.

للأنظمة المستندة إلى Debian / Ubuntu:

بالنسبة إلى Fedora / CentOS / RHEL:

للأنظمة القائمة على القوس:

لاحظ أنه في Arch قد ترغب في مسح ذاكرة التخزين المؤقت للحزمة باستخدام pacman -Sccقبل إعادة تثبيت حزمة الشهادات.

إذا استمر ظهور هذا الخطأ ، فقد يكون هناك خطأ ما في نهاية الخادم.

2. هل من الآمن تشغيل أوامر cURL و bash معًا؟

على الرغم من أنها ليست الطريقة الأكثر شيوعًا لتثبيت تطبيقات Linux ، إلا أن هناك عددًا من المطورين (مثل الأشخاص الذين يقفون وراء NodeJS) لا يمنحك أي خيار سوى الاستخدام curlجنبًا إلى جنب مع أمر الوصول إلى الجذر الذي يتم تشغيله من خلال bash (على سبيل المثال ،curl [argument] | sudo -E bash - ) لتثبيت البرمجيات.

قد يبدو الأمر مخيفًا بعض الشيء ، ولكن إذا كان الأشخاص الذين يقفون وراء التطبيق جديرين بالثقة ، فمن غير المرجح أن تكسر شيئًا ما. الجهات الفاعلة الخبيثة موجودة في كل مكان ويمكنها التسلل إلى المستودعات مثل Arch’s AUR ، لذا فإن التثبيت باستخدام curlأوامر الوصول إلى الجذر ليس بشكل عام أكثر خطورة من القيام بذلك من خلال مدير الحزم الخاص بك.

3. هل يمكنني استخدام cURL مع Tor؟

نعم! ابدأ متصفح Tor (أو خدمة Tor مستقلة) واستخدم --proxyالعلم. يمنحك Tor وكيلًا محليًا يمكنك استخدامه لإخفاء عنوان IP الخاص بك في تطبيقات أخرى. فيما يلي مثال على cURL المُستخدم مع Tor:

ستستخدم خدمات Tor المستقلة 9050 كمنفذ استماع ، بينما يستخدم متصفح Tor المنفذ 9150.

تغليف

أثبت cURL مرونته وسط النسيج المتغير لعالم Linux ، مع الحفاظ على مكانته كأداة مهمة في ترسانة مستخدم المحطة.

Comments

No comments yet. Why don’t you start the discussion?

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *