أمر CURL في نظام Linux: التعلم من خلال المثال

\[
\text{كونك مهندس تقنية معلومات يأتي مع مهام متنوعة للقيام بها، مثل فحص اتصال الشبكة، وتحميل الملفات، أو ضبط التصريحات. عادةً، تتطلب هذه المهام أدوات مختلفة. حسنًا، ليس مع cURL. فإن أداة cURL في نظام Linux تساعد في معظم الأشياء التي يحتاجها مهندس تقنية المعلومات.

في هذا البرنامج التعليمي، ستتعلم عن كل ميزة يوفرها سطر الأوامر cURL.

استمر في القراءة وقم برفع مهاراتك مع cURL!

المتطلبات المسبقة

يشمل هذا البرنامج التعليمي عروضًا توضيحية خطوة بخطوة. لمتابعة، تأكد من أن لديك ما يلي:

  • A Windows XP+ PC – This tutorial uses Windows 10 Enterprise edition.
  • A user account on the remote Linux SSH host with sudo permissions.

تثبيت cURL على نظام Linux (أوبونتو)

مثل أي أداة أخرى، قبل الاستفادة من cURL، يجب أن تقوم أولاً بتثبيتها على جهازك. يمكنك تثبيت cURL على أي نظام تشغيل يعتمد على *نيكس*، ولكنها تستخدم بشكل شائع على نظام أوبونتو.

cURL هو أداة سطر أوامر تتيح لك أداء العديد من المهام كما يلي:
\]

  • عرض حالة مختلف تكوينات الشبكة لأجهزة Windows أو خوادم Linux
  • نقل البيانات إلى الخوادم أو منها
  • يدعم العديد من البروتوكولات، مثل HTTP، FTP، IMAP، POP3، SCP، و SFTP.

لتثبيت cURL على جهاز Ubuntu الخاص بك:

1. قم بالاتصال بجهاز Ubuntu الخاص بك باستخدام عميل SSH المفضل لديك.

2. قم بتشغيل الأوامر التالية، والتي لا توفر إخراجًا ولكن تقوم بإنشاء دليل يُسمى ~/install_curl_demo والتبديل إلى هذا الدليل. سيحتوي هذا الدليل على جميع الموارد التي ستقوم بإنشائها في هذا البرنامج التعليمي.

mkdir ~/install_curl_demo
cd ~/install_curl_demo

3. بعد ذلك، قم بتشغيل الأمر apt update أدناه لتحديث فهرس حزم النظام الخاص بك.

يضمن هذا الأمر أن مدير الحزم apt يمكنه العثور على المصدر الصحيح عند تنزيل أي حزم تعتمد على ذلك.

sudo apt update 
Updating the Ubuntu machine with the latest packages

4. الآن، قم بتشغيل الأمر apt install أدناه لتثبيت cURL على جهازك.

sudo apt install curl
Installing cURL on the Ubuntu machine

5. أخيرًا، قم بتشغيل الأمر أدناه للتحقق من إصدار cURL المثبت على جهازك. يتأكد هذا من أنك قمت بتثبيت cURL بنجاح.

curl --version
Checking cURL’s version installed

المصادقة على المواقع الإلكترونية

فيما يلي بعض بروتوكولات الـ curl المدعومة، مثل FILE، FTP، HTTP، HTTPS، POP3، SCP، SFTP، TELNET، إلخ، ولا يتعين عليك التفاعل مع أي مستخدم.

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

قم بتشغيل الأمر curl أدناه، مستبدلاً [email protected]:password باسم المستخدم وكلمة المرور الخاصة بك وعنوان موقع الويب بالخاص بك للمصادقة.


curl -u [email protected]:password --basic <https://wordpress.com/posts/automateinfra.com> 
Authenticating user with password

تنزيل الملفات بالاسم الأصلي أو بتغيير الاسم

قد يكون تنزيل الملفات أو الحزم جزءًا من روتينك اليومي كمسؤول. إذا كان الأمر كذلك، فإن cURL سيساعدك بالتأكيد. الأمر curl، مع إضافة إما خيار -O أو -o، يتيح لك تنزيل الملفات مع الاحتفاظ بالاسم الأصلي أو تعيين اسم مختلف.

قم بتشغيل الأوامر التالية لتنزيل حزمة NGINX بالاسم الأصلي (-O) كـ (*nginx-1.20.2.tar.gz*) وباسم مختلف (-o) كـ *mytar.gz*.

# يقوم بتنزيل حزمة NGINX بالاسم الأصلي nginx-1.20.2.tar.gz
curl -O <http://nginx.org/download/nginx-1.20.2.tar.gz>
# يقوم بتنزيل حزمة NGINX بالاسم الجديد mytar.gz
curl -o mytar.gz <http://nginx.org/download/nginx-1.20.2.tar.gz>
Downloading the NGINX package

الآن، قم بتشغيل الأمر التالي لتنزيل حزمة NGINX بالاسم mytar2.gz. ولكن هذه المرة، سترى شريط تقدم فقط بدلاً من رؤية الكثير من التفاصيل في الإخراج.

curl -# -o mytar.gz <http://nginx.org/download/nginx-1.20.2.tar.gz>
Downloading the NGINX package but only showing a progress bar

أخيرًا، قم بتشغيل الأمر ls أدناه لعرض جميع الملفات في الدليل الحالي.

ls

فيما يلي، يمكنك التحقق من وجود ملفات nginx-1.20.2.tar.gz, mytar.gz, و mytar2.gz.

Verifying downloaded NGINX packages

ضبط مهلة الاتصال

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

ضبط مهلة الاتصال يتيح لك تحديد مدى طول الوقت الذي يستغرقه الخادم للرد على طلب بيانات تقوم به.

قم بتشغيل الأمر أدناه لمحاولة الاتصال بموقع adamtheautomator.com لمدة 20 ثانية قبل انتهاء المهلة.

curl --connect-timeout 20 -I adamtheautomator.com

يمكنك رؤية أن الخيار -I يتيح لك تضمين الرؤوس في إخراج معلومات الموقع.

Connecting to a website with a connection timeout

استرجاع البيانات باستخدام طلب GET

لقد رأيت كيف أن ضبط مهلة الاتصال يوفر معلومات حول موقع ويب في قسم “ضبط مهلة الاتصال”. ولكن إذا لم تكن تلك المعلومات كافية، فكر في إرسال طلب GET.

قم بتشغيل أمر curl أدناه لاستخدام طلب HTTP GET (–get) واسترداد البيانات من موقع https://adamtheautomator.com.

curl --get <https://adamtheautomator.com>

بالأسفل، يمكنك رؤية المصدر الفعلي لموقع الويب adamtheautomator.com.

Retrieving data using the Get request

إرسال طلب POST

بدلاً من الحصول على بيانات، يمكنك أيضًا إرسال بيانات عن طريق إرسال طلب POST باستخدام أمر curl. يتيح لك المعلمة -d إرسال البيانات المحددة في طلب POST إلى خادم HTTP مثلما يفعل المتصفح عندما يقوم المستخدم بملء نموذج HTML.

قم بتشغيل الأمر curl التالي لإرسال طلب POST إلى موقع ptsv2.com.

curl -d "name=curl" <https://ptsv2.com/t/hello>
Sending the POST request on a website

الآن، انتقل إلى https://reqbin.com/ على متصفح الويب الخاص بك لاختبار ما إذا كان الطلب POST ناجحًا.

بالأسفل، ستلاحظ أن الحالة تظهر (200 (OK، مما يعني أن الطلب تم إرساله بنجاح.

Verifying the POST request

البحث في تعريفات الكلمات

هل تعلم أنه يمكنك أيضًا استخدام cURL كمعجم؟ نعم! يتيح لك cURL البحث في تعريفات الكلمات باستخدام بروتوكول DICT. يمكن البحث باستخدام بروتوكول DICT عن العديد من المصطلحات المتعلقة بتكنولوجيا المعلومات، مثل الساعة، أوبونتو، RDP، إلخ.

صيغة الأمر curl باستخدام بروتوكول DICT هي كما يلي:

curl [protocol:[dictionary_URL]:[word]

قم بتشغيل كل أمر أدناه للبحث عن تعريفات الكلمات من القاموس المتاح على موقع الويب العام dict.org.

# البحث عن تعريفات كلمة ubuntu
curl dict://dict.org/d:ubuntu
# البحث عن تعريفات كلمة clock
curl dict://dict.org/d:clock

كما يمكنك رؤية أدناه، فإن البحث الأول عن تعريف الكلمة أوبونتو لم يجد إجابة ذات صلة وأعاد لا توجد مطابقة. ولكن البحث الثاني أعاد تعريفات عدة لكلمة ساعة.

Searching the word definition

اختبار بروتوكول موقع الويب HTTP2

أمر curl بالتأكيد مناسب لتنزيل وتحميل ومصادقة مواقع الويب. ولكن شيئاً آخر يجعل curl أداة رائعة هو أنه يمكنك التحقق مما إذا كان عنوان URL معين يدعم البروتوكول HTTP/2 الجديد.

قم بتشغيل الأمر curl التالي للتحقق مما إذا كان موقع الويب https://adamtheautomator.com/ يدعم بروتوكول HTTPS (–http2).

curl -I --http2 -s <https://adamtheautomator.com/> | grep HTTP

سترى استجابة HTTP/2 200 في الناتج مثلما هو موضح أدناه، مما يعني أن الموقع يستخدم بروتوكول HTTP2.

Testing Website HTTP2 protocol using Curl Command

الختام

برنامج cURL، على الرغم من أنه أداة مجانية، يأتي مع العديد من الميزات. وفي هذا البرنامج التعليمي، لقد قمت بتجربة أمثلة مباشرة مختلفة لاستخدام cURL في نظام Linux. سواء كان ذلك تنزيل الملفات، أو مصادقة مواقع الويب، أو إرسال طلبات POST أو GET، إلخ، فإن cURL لن يخيب ظنك.

لماذا لا تبني على هذه المعرفة الجديدة؟ ربما تعلم كيفية نقل الملفات، وتشغيل الأوامر والنصوص باستخدام أمر curl؟ أو اكتشاف أوامر واجهة برمجة التطبيقات cURL؟

Source:
https://adamtheautomator.com/curl-linux/