يُستخدم أمر Linux Curl لتنزيل البيانات أو تحميلها إلى خادم عبر البروتوكولات المدعومة مثل HTTP، وFTP، وIMAP، وSFTP، وTFTP، وIMAP، وPOP3، وSCP، وما إلى ذلك. وهي أداة مساعدة عن بعد، لذا فهي تعمل دون تدخل المستخدم.
يعد نقل البيانات من مكان إلى آخر أحد المهام الحيوية والأكثر استخدامًا لنظام الكمبيوتر. ومع ذلك، هناك العديد من أدوات واجهة المستخدم الرسومية المتاحة لنقل البيانات. ولكن، عند العمل على سطر الأوامر، يصبح الأمر معقدًا بعض الشيء. تتيح لنا الأداة المساعدة cur نقل البيانات عبر سطر الأوامر.
Curl هي أداة لسطر الأوامر للحصول على البيانات وإرسالها مثل الملفات ذات بناء جملة URL. وهو يدعم جميع البروتوكولات التي يدعمها libcurl لأنه يستخدم libcurl. يوفر Curl دعمه لـ HTTPS وينفذ التحقق من شهادة SSL عندما يتم ذكر بروتوكول آمن افتراضيًا، مثل HTTPS. سيقوم Curl بإحضار شهادة الخادم البعيد والتحقق من شهادة CA لحفظ صلاحية الخادم البعيد من ضمان أن الخادم البعيد هو الخادم الذي يطلبه عندما يرتبط Curl بخادم بعيد عن طريق HTTPS.
هناك العديد من الخيارات لتحديد شهادة CA، مثل --capath و --cacert . يمكن استخدام الخيار، أي --cacert، لتحديد موقع ملف مخزن شهادات CA. إذا لم يكن ملف شهادة CA متاحًا في نظام Windows الأساسي، فسوف يبحث Curl عن اسم ملف شهادة CA 'curl-ca-bundle.crt' بالتسلسل التالي:
- الدليل الذي يوجد فيه برنامج الضفيرة.
- دليل العمل الحالي.
- دليل النظام (ويندوز).
- الدليل (ويندوز).
- يتم ذكر الدلائل في متغيرات البيئة %PATH%.
سيعطي Curl رسالة خطأ عندما يستخدم الخادم البعيد شهادة موقعة ذاتيًا أو عندما لا يتم توقيع شهادة الخادم البعيد عبر CA المذكور في ملف شهادة CA. --insecure أو -k يمكن استخدام الخيار لتخطي التحقق من الشهادة. يمكن بدلاً من ذلك تضمين شهادة CA البعيدة في ملف مخزن شهادات CA إذا كان الخادم البعيد صالحًا.
يوفر Curl مجموعة كبيرة من الحيل المفيدة مثل استئناف نقل الملفات وملفات تعريف الارتباط واتصالات SSL ومنشور HTTP وتحميل FTP ومصادقة المستخدم ودعم الوكيل والمزيد. تتم آلية Curl بواسطة libcurl لكل جانب متعلق بالنقل.
ما هو ليبكيرل؟
libcurl هي مكتبة مجانية لنقل عناوين URL من جانب العميل. وهو يدعم SMB، SMTP، SCP، RTMP، RTSP، POP3، MQTT، LDAP، Kerberos، IMAP، HTTPS، نفق وكيل HTTP، HTTP PUT، HTTP POST، HTTP/1، Gopher، FTPS، FTP، DICT، وملفات تعريف الارتباط. تدعم المكتبة أيضًا مصادقة المستخدم بالإضافة إلى كلمة المرور، والوكلاء، وشهادات LDAPS، وHTTPS، والتحميل المستند إلى نموذج HTTP، وتحميل FTP، واستئناف نقل الملفات، وTFTP، وTelnet، وSFTP، ونظام URL للملف.
libcurl مضغوط. إنه ينشئ ويعمل بشكل مماثل على العديد من المنصات، بما في ذلك Microsoft Windows وUnixWare وUltrix وTru64 وSymbian وSolaris وRISC OS وQNX Neutrino وOS/2 وOpenBSD وNetWare وNetBSD وmacOS وLinux وIRIX وiOS وHURD وHP. -UX، FreeBSD، DOS، Darwin، OpenVMS، BlackBerry 10، BlackBerry Tablet OS، BeOS، Android، AmigaOS، وAIX.
مكتبة libcurl متوافقة مع IPv6، وآمنة ومجانية. تتوفر الروابط أيضًا لأكثر من 50 لغة، بما في ذلك Python وPHP وJava وC/C++.
تدعم مكتبة libcurl SChannel، وgskit على IBM i، وNSS، وmbed TLS، وGnuTLS على Windows، وSecure Trasport على iOS وmacOS، وTLS/SSL من خلال OpenSSL، وRustls، وBearSSL، وwolfSSL، وAmiSSL، وlibressl، وBoringssl.
بناء الجملة:
بناء الجملة الأساسي لاستخدام الضفيرة هو كما يلي:
curl [options] [URL...]
من بناء الجملة أعلاه،
عنوان URL:
بناء جملة URL هو عنوان URL عام يعتمد على البروتوكول. يمكننا تحديد عناوين URL متعددة على النحو التالي:
http://site.{one,two,three}.com
خيارات:
يدعم أمر الضفيرة خيارات سطر الأوامر التالية:
--مجردة-يونيكس-socket : يتم استخدامه للاتصال عبر مقبس مجال Unix المجرد بدلاً من الشبكة.
--أنيوث: يتم استخدامه لأمر الضفيرة لمصادقة الطريقة بنفسها لاستخدام الطريقة الأكثر أمانًا. هذه الأداة المساعدة هي أداة مساعدة اختيارية '--basic، --digest، --ntlm، and التفاوض'، والتي يتم استخدامها لتعيين طريقة مصادقة محددة.
-أ، --إلحاق: يتم استخدامه لتحميل الملفات. يقوم بإلحاق الملف بدلاً من الكتابة فوقه. إذا كان الملف المحدد غير موجود على الخادم، فسيتم إنشاء ملف.
الممثل رام
--أساسي: وهو يحدد استخدام مصادقة HTTP الأساسية. هذا هو الخيار الافتراضي لأمر الضفيرة. إنه مفيد لتجاوز الإعدادات السابقة.
--cacert : تم تحديده لاستخدام ملف الشهادة المعين للتحقق من النظير. قد تحتوي الملفات على عدة شهادات CA. التنسيق القياسي للشهادات هو PEM، لذلك يجب أن تكون جميع الشهادات فيه.
--كاباث: تم تحديده لاستخدام الدليل المعين للتحقق من النظير. يمكننا تحديد مسارات متعددة عن طريق الفصل بينها بنقطتين (:) مثل 'path: path2:path3'. التنسيق القياسي للشهادات هو PEM، لذلك يجب أن تكون جميع الشهادات فيه.
--حالة الشهادة: يتم استخدامه للتحقق من حالة شهادة الخادم. ويستخدم طلب حالة الشهادة أو OCSP تدبيس TLS.
--نوع الشهادة : وهو يحدد نوع شهادة الضفيرة المتوفرة. يمكن أن تكون هذه الشهادات بتنسيق PEM وDER وENG. القيمة الافتراضية هي بيم. إذا تم تحديدها عدة مرات، فسيتم أخذ القيمة الأخيرة بواسطة الضفيرة.
-E، --cert : وهو مخصص لاستخدام ملف شهادة العميل عند الحصول على ملف عبر أي من البروتوكولات المستندة إلى SSL مثل HTTPS وFTPS وما إلى ذلك.
--الأصفار : يتم استخدامه لتحديد الأصفار لاستخدامها في الاتصال.
--مضغوط-SSH: يتم استخدامه لتمكين ضغط SSH المدمج. سيعتبر هذا الخيار بمثابة طلب من الخادم، لذلك قد يقبله الخادم أو لا يقبله.
--مضغوط: يتم استخدامه لطلب استجابة مضغوطة باستخدام خوارزميات الضفيرة وحفظ المستند غير المضغوط. سيرسل هذا الخيار تقريرًا عن حليقة التشفير غير المدعومة.
-ك، --التكوين: يتم استخدامه لوصف ملف نصي لقراءة وسيطات الضفيرة. سوف يستخدم الضفيرة وسيطات سطر الأوامر من الملف النصي.
--ربط مهلة : يتم استخدامه لتحديد الحد الأقصى للوقت بالثواني لمهلة اتصال الضفيرة.
--الاتصال بـ : يتم استخدامه لإنشاء طلب إلى زوج المضيف والمنفذ المحدد؛ وإلا فإنه سيتم الاتصال بالزوج التالي. يعد هذا الخيار أداة مفيدة لتقديم الطلبات المباشرة على خادم معين.
-C، --تابع-في : يتم استخدامه لمواصلة أو استئناف نقل ملف سابق عند الإزاحة المحددة.
-c, --cookie-jar : يتم استخدامه لتحديد ملف معين نريد كتابة جميع ملفات تعريف الارتباط عليه بعد عملية ناجحة.
-ب، --ملف تعريف الارتباط: يتم استخدامه لإعادة توجيه البيانات إلى خادم HTTP في رأس ملف تعريف الارتباط.
--إنشاء دير: يتم استخدامه بالتزامن مع '-o؟ الخيار، فإنه سيتم إنشاء التسلسل الهرمي للدليل المحلي المطلوب.
--crlf (بروتوكول نقل الملفات SMTP): يتم استخدامه لتحويل LF إلى CRLF في التحميل. إنها أداة مفيدة لـ MVS (OS/390).
--crlfile : يتم استخدامه لتحديد (بتنسيق PEM) بقائمة إبطال الشهادات.
--data-ascii : وهو اسم مستعار لـ ?-d? خيار.
--وفد : يتم استخدامه لتعيين LEVEL للاعتراف بالخادم بما يُسمح له بتفويضه عندما يتعلق الأمر ببيانات اعتماد المستخدم.
--استوعب: يتم استخدامه لتمكين مصادقة HTTP Digest.
-ف، --تعطيل: إذا تم استخدامه كوسيطة أولى، فسوف يتجاهل ملف التكوين curlrc.
--واجهة نظام أسماء النطاقات: يتم استخدامه للاعتراف بالخادم لإرسال طلبات DNS الصادرة.
--خوادم DNS : يتم استخدامه لتحديد خوادم DNS بدلاً من الخوادم الافتراضية.
-و، --فشل: يتم استخدامه لجعل عملية التجعيد تفشل بصمت عند حدوث أخطاء في الخادم.
-F، --النموذج: يتم استخدامه لمحاكاة النموذج المملوء المقدم من قبل المستخدم.
-P، --منفذ بروتوكول نقل الملفات : يتم استخدامه لعكس أدوار المستمع الافتراضية عند الاتصال بـ FTP.
--ftp-ssl-ccc-وضع: يتم استخدامه لضبط وضع CCC.
-ز، --احصل على: يتم استخدامه لتحديد البيانات باستخدام ?-d? خيار لاستخدامه في طلب HTTP GET بدلاً من طلب POST.
-ح، --مساعدة: يتم استخدامه لإظهار دليل المساعدة الذي يحتوي على وصف موجز لخيارات الاستخدام والدعم.
-0، --http1.0: تم تحديده لاستخدام HTTP الإصدار 1.0.
--تجاهل طول المحتوى: يتم استخدامه لتجاهل رأس طول المحتوى.
-i، --تشمل: يتم استخدامه لتضمين رؤوس استجابات HTTP.
-4، --ipv4: يتم استخدامه لتحليل الأسماء إلى عناوين Ipv4.
-6، --ipv6: يتم استخدامه لتحليل الأسماء إلى عناوين Ipv6.
بروتوكولات الضفيرة
يدعم Curl عدة بروتوكولات:
تركيب أمر الضفيرة
يأتي أمر الضفيرة مع معظم ملفات لينكس توزيعات. ولكن، إذا كان النظام لا يحمل الضفيرة بشكل افتراضي. تحتاج إلى تثبيته يدويًا. لتثبيت الضفيرة، قم بتنفيذ الأوامر التالية:
قم بتحديث النظام عن طريق تنفيذ الأوامر التالية:
sudo apt update sudo apt upgrade
الآن، قم بتثبيت الأداة المساعدة cur عن طريق تنفيذ الأمر أدناه:
sudo apt install curl
تحقق من التثبيت عن طريق تنفيذ الأمر أدناه:
curl -version
سيعرض الأمر أعلاه الإصدار المثبت من أمر الضفيرة.
جلب محتوى عنوان URL المحدد
لجلب محتوى أي عنوان URL محدد، قم بتنفيذ أمر الضفيرة، متبوعًا بعنوان URL. خذ بعين الاعتبار الأمر أدناه:
curl https://www.javatpoint.com/linux-tutorial
سيقوم الأمر أعلاه بجلب بيانات الصفحة للصفحة المحددة. خذ بعين الاعتبار الصورة التالية للإخراج:
من الناتج أعلاه، يمكننا أن نرى أنه يتم جلب بيانات الصفحة الخاصة بعنوان URL المحدد. لإيقاف التنفيذ، اضغط على المفاتيح CTRL+C.
حفظ البيانات في ملف محدد
لحفظ البيانات في ملف معين، قم بتمرير الخيار '-o' متبوعًا بالدليل واسم الملف وعنوان URL كما يلي:
curl -o /
خذ بعين الاعتبار الأمر أدناه:
curl -o /home/javatpoint/Documents/linux.html https://www.javatpoint.com/linux-tutorial
سيحفظ الأمر أعلاه بيانات الصفحة في ملف 'linux.html' ضمن الدليل '/home/javatpoint/Documents/'. النظر في الإخراج أدناه:
من خلال الأمر أعلاه، يمكننا رؤية إجمالي كمية البيانات التي تم تنزيلها، والبيانات المستلمة، ومتوسط الوقت، وبعض الإحصائيات الأخرى حول البيانات.
للتحقق من البيانات التي تم تنزيلها، افتح الملف عن طريق تنفيذ الأمر cat
cd Documents cat linux.html
خذ بعين الاعتبار الصورة التالية للإخراج:
تنزيل ملف من الويب
أحد الاستخدامات الرائعة والمثيرة للاهتمام لـ Curl هو أنه يمكننا تنزيل ملف من الويب. لتنزيل ملف من الويب، انسخ رابط التنزيل والصقه باستخدام أمر الضفيرة. يمكننا تمرير حجج أخرى أيضًا لجعلها أكثر تحديدًا. على سبيل المثال، قم بتنزيل أحدث إصدار من أوبونتو، وانسخ ملف رابط التحميل من ubuntu من موقعه الرسمي على الويب ولصقه باستخدام أمر الضفيرة كما يلي:
curl -o /home/javatpoint/Documents/ubuntu20.04.iso https://ubuntu.com/download/desktop/thank-you?version=20.04&architecture=amd64
سيقوم الأمر أعلاه بتنزيل Ubuntu 20.04 إلى الدليل المحدد. توفير امتداد الملف المناسب؛ وإلا فسيتم تنزيل الملف بتنسيق مختلف. النظر في الإخراج أدناه:
من الناتج أعلاه، يتم تنزيل ملف ubuntu.iso. يمكننا رؤية وقت التنزيل وحجم الملف وسرعة التنزيل والإحصائيات الأخرى. لإيقاف التنفيذ، اضغط في أي وقت على المفاتيح CTRL+D.
استئناف التنزيلات المتقطعة
قد تكون هناك فرصة لمقاطعة التنزيلات لسبب ما. يمكننا استئناف التنزيلات باستخدام أمر الضفيرة. لاستئناف الملف الذي تمت مقاطعته، قم بتمرير الخيار '-C' باستخدام أمر الضفيرة كما يلي:
curl -C
سيستأنف الأمر أعلاه تنزيل عنوان URL المحدد.
تنزيل ملفات متعددة
لتنزيل الملفات المتعددة، حدد عناوين URL المتعددة مفصولة بمسافة كما يلي:
curl -O
سيقوم الأمر أعلاه بتنزيل البيانات من كلا عنواني URL، على التوالي.
الاستعلام عن رؤوس HTTP
تحتوي رؤوس HTTP على معلومات إضافية؛ فهو يسمح لخادم الويب بتنزيل هذه المعلومات. للاستعلام عن رؤوس HTTP من موقع ويب، قم بتنفيذ الأمر باستخدام الخيار '-I' كما يلي:
curl -I www.javatpoint.com
الأمر أعلاه سوف ينتج الإخراج أدناه: