احصل على cURLy: 10 أشياء مفيدة يمكنك القيام بها باستخدام cURL

احصل على cURLy: 10 أشياء مفيدة يمكنك القيام بها باستخدام cURL

عندما نبدأ في التعرف على أدوات سطر الأوامر ، فإننا نميل إلى رؤيتها لغرض واحد. لقد علمت ذلك





cat

يطبع محتويات الملف ،





ls

يسرد جميع العناصر في دليل ، و





du

يظهر استخدام مساحة القرص. ومع ذلك ، تحتوي العديد من أدوات سطر الأوامر على عشرات الخيارات ، وكلها موصوفة بدقة في ملفات

man

الملفات. يمكن لبعض منهم أن يفعل العجائب عندما يقترن بأوامر أخرى.



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

هذه المرة ، نحن نركز على لفة ، أداة لنقل البيانات عبر عدد من بروتوكولات الإنترنت مثل HTTP (S) و FTP و Telnet و LDAP و IMAP و POP3 و SMTP والمزيد.





بعبارات مبسطة ، يؤدي cURL طلبات مختلفة من عميل إلى خادم ، مما يؤدي إلى إنشاء اتصال بينها عن طريق بروتوكول معين والأساليب المرتبطة به. على سبيل المثال ، كعميل HTTP ، يمكن لـ cURL إرسال طلب لعرض المحتوى أو تنزيله (طريقة طلب GET) ، أو لنشر المحتوى من خلال نموذج على موقع ويب (طريقة طلب POST). تسمح العديد من تطبيقات وخدمات الويب لـ cURL بالتفاعل مع واجهات برمجة التطبيقات (واجهة برمجة التطبيقات).

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





من ناحية أخرى ، إذا كنت بحاجة إلى طرق مصادقة HTTP متقدمة ، وتريد تحميل الملفات وكذلك تنزيلها ، فإن الأمر يستحق تعلم كيفية cURL. أيضًا ، يدعم wget فقط HTTP (S) و FTP ، بينما يغطي cURL نطاقًا واسعًا من البروتوكولات. هذا يعني أن cURL يمكنه فعل المزيد من الأشياء الرائعة - وإليك عشرة أمثلة لإثبات ذلك.

1. احصل على تقرير الطقس

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

curl http://wttr.in/LOCATION

يتم توفير المعلومات من خلال تطبيق CLI يسمى نذهب ، ولكن إذا كنت لا ترغب في تثبيته ، فيمكن لـ cURL جلب التنبؤ من واجهة الويب الخاصة به wttr.in. كل ما تحتاجه هو الموقع الذي تريد التنبؤ به. ما عليك سوى كتابة اسم المدينة أو رمز المطار أو عنوان IP الحالي الخاص بك. تظهر ميزة جديدة المعلومات حول مراحل القمر إذا قمت بكتابة:

curl wttr.in/Moon

2. تنزيل الملفات واستئناف التنزيلات

تنزيل الملفات هو شيء نقوم به عادة في المتصفح. في بعض الأحيان سترغب في استخدام مدير التنزيلات ؛ على سبيل المثال ، عند تنزيل عدة ملفات دفعة واحدة ، أو عندما تريد إيقاف التنزيلات مؤقتًا. على الرغم من أن cURL ليس خيارًا شائعًا للتنزيلات المتزامنة (يوصى باستخدام wget بدلاً من ذلك) ، فلا يزال بإمكانك استخدامه لهذا الغرض من خلال الجمع بين خياراته القوية (المفاتيح). ستحتاج أولاً إلى رابط مباشر للملف. في هذا المثال ، سنستخدم ملف PDF لمجلة Linux Voice.

curl -O -C - https://www.linuxvoice.com/issues/016/Linux-Voice-Issue-016.pdf

يجعل مفتاح O الكبير (-O) cURL يحفظ الملف باسم الملف الافتراضي (عادةً ما يكون من الرابط نفسه). إذا أردت حفظه باسم مختلف ، فستستخدم حرف o صغيرًا متبوعًا بالاسم الجديد:

curl -o magazine.pdf -C - https://www.linuxvoice.com/issues/016/Linux-Voice-Issue-016.pdf

بشكل افتراضي ، يتم حفظ الملفات في الدليل الحالي (تحقق من ذلك بملحق

pwd

أمر). لحفظها في مكان آخر ، قم بتوفير المسار بعد مفتاح التبديل -o. يمكّن رمز التبديل -C - cURL من استئناف التنزيل. يمكنك إيقافه مؤقتًا بالضغط على Ctrl + C في الجهاز ، واستئنافه عن طريق تشغيل أمر التنزيل نفسه مرة أخرى:

يعرض cURL تقدم التنزيل بتنسيق يشبه الجدول ، مع أعمدة تحتوي على معلومات حول سرعة التنزيل وإجمالي حجم الملف والوقت المنقضي والمزيد. إذا لم يعجبك هذا ، يمكنك اختيار شريط تقدم أبسط عن طريق إضافة - # أو --progress-bar إلى أمر cURL الخاص بك.

لتنزيل ملفات متعددة في وقت واحد ، ما عليك سوى سرد الروابط واحدة تلو الأخرى:

curl -O file1.txt -O file2.pdf -O file3.zip

بمساعدة أدوات سطر الأوامر الأخرى ، يمكننا تنزيل جميع صور PNG و JPG من مدونة Tumblr:

curl http://concept-art.tumblr.com/ | grep -o 'src='[^']*.[png-jpg]'' | cut -d' -f2 | while read l; do curl '$l' -o '${l##*/}'; done

في هذه الحالة،

cut

و

grep

جمع المعلومات حول أسماء الملفات وتنسيقها بحيث يتم عرض الملفات ذات الامتدادات المحددة فقط. إذا قمت بتشغيل الأمر بدون الأنبوب الأخير:

curl http://concept-art.tumblr.com/ | grep -o 'src='[^']*.[png-jpg]'' | cut -d' -f2

ستحصل فقط على قائمة بالملفات التي تلبي معاييرنا ، لكن لن يتم تنزيلها بالفعل. يمكن لـ cURL الحصول على قائمة بالصور من مجموعة من الصفحات ، بشرط أن تستخدم المدونة ترقيم الصفحات القياسي:

curl http://concept-art.tumblr.com/page/[1-7] | grep -o 'src='[^']*.[png-jpg]'' | cut -d' -f2

يمكنك تعديل النطاق بتغيير الأرقام الموجودة بين قوسين مربعين. مرة أخرى ، سيسرد هذا الأمر الصور فقط ؛ لتنزيلها ، قم بتشغيل الأمر الكامل في الدليل حيث تريد حفظ الصور:

curl http://concept-art.tumblr.com/page/[1-7] | grep -o 'src='[^']*.[png-jpg]'' | cut -d' -f2 | while read l; do curl '$l' -o '${l##*/}'; done

إذا كنت على دراية جيدة التعبيرات العادية ، يمكنك تحسين المظهر وكفاءة هذا الأمر ، ومشاركة النتيجة في التعليقات.

3. إدارة الملفات على خادم FTP

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

curl ftp://ftp.debian.org/debian/

لإدخال دليل فرعي ، اكتب اسمه متبوعًا بشرطة مائلة للأمام (/).

يشبه تنزيل الملفات تنزيلات HTTP الموضحة في القسم السابق. يمكنك إما استخدام -o أو -O ، وإضافة -C - إذا كنت تريد إيقاف التنزيلات مؤقتًا.

curl -O ftp://ftp.heanet.ie/mirrors/linuxmint.com/stable/17.3/linuxmint-17.3-kde-64bit.iso

على الرغم من أن cURL لا يدعم التنزيلات العودية (تذكر ، wget يفعل!) ، لا يزال بإمكانه تنزيل مجموعة من الملفات مرة واحدة. الشرط الوحيد هو أن تتبع أسماء الملفات نمطًا. على سبيل المثال ، يمكننا التنزيل من خادم مضيف للخلفية حيث يتم تسمية جميع الخلفيات باسم 'wallpaperNUMBER':

curl -O ftp://ftp.myserver.com/files/wallpaper[0-120].jpg

تتطلب بعض خوادم FTP المصادقة قبل أن تتمكن من تنزيل الملفات. يتيح لك cURL تسجيل الدخول باستخدام الخيار -u (المستخدم):

curl -u username:password -O ftp://ftp.protectedserver.com/files/example.txt

يمكنك أيضًا تحميل الملفات إلى خادم FTP باستخدام الخيار -T (نقل):

curl -u username:password -T /home/user/Documents/test.txt ftp://ftp.myserver.com

هنا يمكنك أيضًا تحديد ملفات متعددة كنطاق. تسمى هذه الميزة أحيانًا 'globbing'. إذا كانت أسماء الملفات لا تتبع نمطًا ، فما عليك سوى سردها داخل أقواس متعرجة (

-T '{file1.txt,image27.jpg}'

). على العكس من ذلك ، إذا كانت لديهم أسماء متشابهة ، فقم بتطبيق نفس المنطق من مثال تنزيل Tumblr واستخدم الأقواس المربعة (

-T 'photo[1-50].jpg'

). تأكد من توفير المسار الكامل للملفات إذا لم تكن موجودة في دليلك الحالي.

4. تحقق مما إذا كان موقع الويب معطلاً

كلنا كنا هناك. موقع الويب الذي تحتاجه تمامًا يتوقف فجأة عن العمل. ثم لن يتم تحميل Facebook. في مواجهة مشكلة العالم الأول الحقيقية ، ماذا تفعل؟

يمكنك البحث في Google ، أو مطالبة صديق باختباره لك ، أو استخدام أحد مواقع الخدمة الفردية التي تخبرك إذا كان موقع الويب معطلاً. أو يمكنك فقط تشغيل المحطة وتشغيل cURL:

curl -Is https://www.twitter.com -L | grep HTTP/

يتحقق حرف التبديل الكبير (-I) من رأس HTTP لصفحة الويب ، ويتم إضافة الخيار -L (الموقع) لجعل cURL يتبع عمليات إعادة التوجيه. هذا يعني أنك لست مضطرًا إلى كتابة عنوان URL الكامل لـ Facebook ؛ اكتب فقط facebook.com وسيتولى cURL الباقي بفضل -L. إذا كانت هناك أي عمليات إعادة توجيه ، فسيتم عرضها بحالة HTTP الخاصة بها.

الرسالة التي نهتم بها هي '200 OK' ، مما يعني أن كل شيء على ما يرام مع موقع الويب. إذا كان منخفضًا بالفعل ، فسترى شيئًا كهذا:

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

5. قم بتوسيع عناوين URL المختصرة

عناوين URL المختصرة ليست سيئة بطبيعتها. بدونها ، سيكون من الصعب مشاركة الروابط على Twitter والشبكات الاجتماعية الأخرى المحدودة الشخصية. تقدم بعض خدمات تقصير عناوين URL تحليلات مفيدة أيضًا. ولكن هناك دائمًا خطر أن يحاول شخص ما إخفاء محتوى ضار خلف عنوان URL مختصر ، أو أن القزم يخفي Rickroll (أو شيء أسوأ بكثير). إذا شعرت في أي وقت بالريبة بشأن اختصار عنوان URL لأي سبب ، يمكن أن يساعدك cURL في توسيعه ومعرفة المكان الذي يؤدي إليه بالضبط:

curl -sIL http://buff.ly/1lTcZSM | grep ^Location;

أو

curl -sI http://buff.ly/1lTcZSM | sed -n 's/Location: *//p';

يمكنك دمج cURL مع

grep

أو

sed

؛ الاختلاف الرئيسي في التنسيق. Sed هي واحدة من تلك الأدوات التي يجب على كل مستخدم Linux معرفتها ، وهي تكمل cURL في هذا وعدد قليل من حالات الاستخدام الأخرى. دعونا لا ننسى أن cURL يمكنه تنزيل الملفات من عنوان URL مختصر (بشرط أن يشير عنوان URL بالفعل إلى ملف):

curl -L -o filename.txt http://short.url

بناء الجملة هو نفسه كما هو الحال مع تنزيلات cURL الأخرى ، ويتولى الخيار -L إعادة التوجيه من عنوان URL مختصر إلى العنوان الأصلي.

6. أظهر تقديرك لفن ASCII

من المسلم به أن هذا ليس مفيدًا بشكل خاص ، لكنه يبدو رائعًا. بمساعدة

pv

، وهي أداة لمراقبة تقدم البيانات ، يمكن لـ cURL عرض رسوم ASCII المتحركة في الجهاز.

curl -s http://artscene.textfiles.com/vt100/wineglas.vt | pv -L9600 -q

يحافظ الخياران -s و -q على كلا الأمرين في الوضع الصامت (الصامت). يشير الخيار -L هنا إلى الأمر pv ، ويسمح لك بتعديل معدل نقل البيانات بالبايت في الثانية. بمعنى آخر ، إذا كانت الرسوم المتحركة تتحرك بسرعة كبيرة أو ببطء شديد ، فحاول اللعب بهذا الرقم. بصرف النظر عن الرسوم المتحركة ، يمكن لـ cURL عرض فن ASCII العادي والثابت:

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

7. تجربة وسائل التواصل الاجتماعي

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

بالنسبة إلى Twitter ، كان من الممكن إدارته مباشرةً من الجهاز باستخدام cURL. ثم قام Twitter بتغيير واجهة برمجة التطبيقات الخاصة به ، وهناك الآن عميل cURL خاص لـ Twitter يسمى Twurl. إنه ليس أسهل شيء للاستخدام ، خاصة بالنسبة للمبتدئين ، ويتطلب المصادقة مع Twitter Ad Platform. هذا منطقي إذا كنت مطورًا أو مستخدمًا متقدمًا ، ولكن ليس كثيرًا إذا كنت تريد فقط التغريد من سطر الأوامر. لا تزال هناك طرق للحصول على المتعة مع Twitter. يمكنك استخدام cURL للتحقق من عدد المتابعين للمستخدم:

curl -s https://twitter.com/username | grep -o '[0-9,]* Followers';

8. ابحث عن عنوان IP الخارجي الخاص بك

يعد العثور على عنوان IP المحلي الخاص بك أمرًا سهلاً بما يكفي - فقط قم بتشغيله

كيفية تغيير كلمة مرور wifi windows 10
ifconfig

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

curl ipinfo.io
curl -s https://4.ifcfg.me
curl -s http://whatismyip.akamai.com
curl ifconfig.me
curl -s icanhazip.com

يمكن للبعض إخبارك بالمزيد عن أي عنوان IP خارجي:

curl ipinfo.io/207.46.13.41
curl ifconfig.me/207.46.13.41

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

9. لصق النص ومشاركة الصور

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

كلين و Sprunge.us لها نفس النحو. باستخدام Clbin ، يمكنك توجيه ملف محلي أو إخراج أمر ما ، ويعيد رابطًا للنص الذي تم تحميله:

cat textfile.txt | curl -F 'clbin=<-' https://clbin.com

كما أنه يدعم تحميل الصور (PNG و JPG و GIF):

curl -F 'clbin=@image.png' https://clbin.com

إذا كنت تريد استخدام Sprunge.us بدلاً من ذلك ، فاكتب:

cat textfile.txt | curl -F 'sprunge=<-' http://sprunge.us

Sprunge.us لا يدعم تحميل الصور في الوقت الحالي.

Ix.io يستند إلى نفس مبدأ الخدمتين السابقتين ، مع بعض الميزات الإضافية. لتحميل ملف ، اكتب:

cat file.txt | curl -F 'f:1=<-' ix.io

أو

curl -F 'f:1=@file.txt' ix.io

عندما تحصل على رابط للنص الذي تم تحميله ، يمكنك تعديل عنوان URL الخاص به لإظهار تمييز بناء الجملة (باستخدام

ix.io/yourpaste+

و

ix.io/yourpaste/

، أو

ix.io/yourpaste/language

لبرمجة نصية أو لغة برمجة معينة). من الممكن أيضًا تحديد عدد المرات التي يمكن فيها عرض الارتباط عن طريق تعديل الرقم بعد ملف

'read:1'

القيمة:

cat file.txt | curl -F 'f:1=<-' -F 'read:1=2' ix.io

تم تصميم Ix.io بشكل أساسي للملفات النصية مثل التعليمات البرمجية المصدر أو سجلات النظام. إذا كنت تريد تحميل مجموعة متنوعة من تنسيقات الملفات ، فاستخدم Transfer.sh . وهو يدعم الصور وتشفير الملفات ويبقي ملفاتك على الإنترنت لمدة أسبوعين. يمكنك تحميل ما يصل إلى 5 غيغابايت من البيانات إلى Transfer.sh. إليك الطريقة:

curl --upload-file bunnies.jpg https://transfer.sh/bunnies.jpg

أنت حر في تحديد اسم الملف الذي تم تحميله. لتحميل ملفات متعددة ، قم بإدراجها واحدة تلو الأخرى باستخدام الخيار -F:

curl -i -F filedata=@/tmp/hello.txt -F filedata=@/tmp/hello2.txt https://transfer.sh/

10. تحقق من البريد غير المقروء على GMail

هناك إمكانية هائلة لإلغاء القفل في cURL إذا كنت ترغب في الخوض في تفاصيل البروتوكولات المتعلقة بالبريد الإلكتروني (SMTP ، POP ، IMAP). لإجراء فحص سريع للبريد الإلكتروني ، سيفي هذا الأمر بالغرض. يوزع موجز GMail الخاص بك وينسق الإخراج (موضوع البريد الإلكتروني والمرسل) مع

tr

و

awk

و

sed

و / أو

grep

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


curl -u username:password --silent 'https://mail.google.com/mail/feed/atom' | tr -d '
' | awk -F '' '{for (i=2; i<=NF; i++) {print $i}}' | sed -n 's/

curl -u username:password --silent 'https://mail.google.com/mail/feed/atom' | grep -oPm1 '(?<=)[^<]+' | sed '1d'

ماذا يمكن أن تفعل cURL؟

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

من خلال المعرفة والخبرة الكافية ، يمكننا تعديل كل أمر أو تنسيقه بشكل مختلف أو استبداله بالكامل بحل أفضل. هل يمكنك تحسين أوامر cURL المقترحة؟ هل تعرف أي استخدامات أخرى رائعة لـ cURL؟ انشر نصائحك في التعليقات.

اعتمادات الصورة: مقدمة داخلية لسطر الأوامر بواسطة أسامة خالد عبر فليكر.

يشارك يشارك سقسقة بريد الالكتروني احذف ملفات ومجلدات Windows هذه لتحرير مساحة على القرص

هل تحتاج إلى إفراغ مساحة القرص على جهاز الكمبيوتر الذي يعمل بنظام Windows؟ فيما يلي ملفات ومجلدات Windows التي يمكن حذفها بأمان لتحرير مساحة على القرص.

اقرأ التالي
مواضيع ذات صلة
  • لينكس
  • بروتوكول نقل الملفات
  • إدارة التنزيل
  • صالة
نبذة عن الكاتب إيفانا إيزادورا ديفسيك(تم نشر 24 مقالة)

إيفانا إيزادورا كاتبة ومترجمة مستقلة ، عاشقة لينكس ومعجبة كيدي. إنها تدعم وتروج للبرامج المجانية ومفتوحة المصدر ، وهي تبحث دائمًا عن تطبيقات جديدة ومبتكرة. اكتشف كيف تتواصل هنا .

المزيد من Ivana Isadora Devcic

اشترك في نشرتنا الإخبارية

انضم إلى النشرة الإخبارية لدينا للحصول على نصائح تقنية ومراجعات وكتب إلكترونية مجانية وصفقات حصرية!

انقر هنا للاشتراك