פקודת CURL ב-Linux: למידה בדוגמאות

להיות מהנדס תקשורת מידע מתקן עליך לבצע מגוון משימות, כמו בדיקת נגישות לרשת, הורדת קבצים או הגדרת אימותים. לרוב, אלו הן משימות שדורשות כלים שונים. אך לא כשמדובר ב-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 (Ubuntu)

כמו כל כלי אחר, לפני שתוכל להוריד תועלת מ-cURL, עליך תחילה להתקין אותו על המחשב שלך. תוכל להתקין cURL על כל מערכת הפעלה מבוססת *nix, אך הפופולריות שלו ביותר היא ב-Ubuntu.

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/ בדפדפן האינטרנט שלך כדי לבדוק אם הבקשה הושלמה בהצלחה.

מתחת תראה כי הסטטוס מציין (200 (OK, המעיד על כך שהבקשה נשלחה בהצלחה.

Verifying the POST request

חיפוש בהגדרות מילים

האם ידעת שאפשר גם להשתמש ב-cURL כמילון? כן! cURL מאפשר לך לחפש הגדרות מילים באמצעות פרוטוקול DICT. הרבה מונחים הקשורים לטכנולוגיות המידע ניתפשו באמצעות פרוטוקול DICT, כמו למשל clock, ubuntu, RDP וכו'.

התחברות פקודת curl באמצעות פרוטוקול DICT היא כדלקמן:

curl [protocol:[dictionary_URL]:[word]

הרץ כל פקודה למטה כדי לחפש הגדרות מילים מהמילון הציבורי באתר dict.org.

# חיפוש הגדרות מילה עבור ubuntu
curl dict://dict.org/d:ubuntu
# חיפוש הגדרות מילה עבור clock
curl dict://dict.org/d:clock

כפי שאתה יכול לראות למטה, חיפוש הגדרת המילה הראשון עבור ubuntu לא הצליח למצוא תשובה רלוונטית והחזיר אין התאמה. אך החיפוש השני החזיר כמה הגדרות עבור המילה שעון.

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? או לגלות פקודות API של cURL?

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