logo

פקודת Curl בלינוקס עם דוגמאות

פקודת ה-Linux curl משמשת להורדה או העלאת נתונים לשרת באמצעות פרוטוקולים נתמכים כגון HTTP, FTP, IMAP, SFTP, TFTP, IMAP, POP3, SCP וכו'. זהו כלי עזר מרחוק, כך שהוא פועל ללא אינטראקציה של המשתמש.

העברת הנתונים ממקום למקום היא אחת המשימות החיוניות והמשומשות ביותר של מערכת מחשוב. עם זאת, ישנם כלי GUI רבים זמינים להעברת נתונים. אבל, כשעובדים על שורת הפקודה, זה הופך להיות קצת מסובך. כלי השירות curl מאפשר לנו להעביר נתונים באמצעות שורת הפקודה.

Curl הוא כלי של שורת פקודה כדי לקבל ולשלוח נתונים כגון קבצים עם תחביר כתובת URL. הוא תומך בכל הפרוטוקולים הנתמכים על ידי libcurl מכיוון שהוא משתמש ב-libcurl. Curl מספקת את תמיכתה ב-HTTPS ומיישמת אימות תעודת SSL כאשר פרוטוקול מאובטח מוזכר כברירת מחדל, כמו HTTPS. Curl יביא את אישור השרת המרוחק ויבדוק את אישור ה-CA כדי לשמור את תוקף השרת המרוחק מלהבטיח שהשרת המרוחק הוא זה שהוא מבקש להיות כאשר curl מקשר לשרת מרוחק באמצעות HTTPS.

ישנן אפשרויות רבות להגדרת אישור CA, כמו --קפת ו --cacert . ניתן להשתמש באפשרות, כלומר --cacert, לציון מיקום הקובץ של מאגר האישורים של CA. אם קובץ אישור CA אינו זמין בפלטפורמת Windows, curl יחפש את שם קובץ אישור CA 'curl-ca-bundle.crt' ברצף הבא:

  • ספרייה שבה קיימת תוכנית התלתלים.
  • ספריית עבודה נוכחית.
  • ספריית מערכת (Windows).
  • ספרייה (Windows).
  • ספריות מוזכרות במשתני הסביבה %PATH%.

Curl ייתן הודעת שגיאה כאשר השרת המרוחק משתמש באישור בחתימה עצמית או כאשר אישור השרת המרוחק אינו חתום באמצעות CA המוזכר בקובץ אישור CA. ניתן להשתמש באפשרות --insecure או -k לדילוג על אימות אישור. לחילופין ניתן לכלול את אישור ה-CA המרוחק בקובץ מאגר אישורי ה-CA אם השרת המרוחק חוקי.

Curl מספק אוטובוס של טריקים מועילים כמו קורות חיים להעברת קבצים, קובצי Cookie, חיבורי SSL, פוסט HTTP, העלאת FTP, אימות משתמשים, תמיכה ב-proxy ועוד. Curl ממוכן על ידי libcurl עבור כל היבט הקשור להעברה.

מה זה 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 וקובצי Cookie. הספרייה תומכת גם באימות משתמש פלוס סיסמה, פרוקסי, 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 כללית תלוית פרוטוקול. אנו יכולים לציין מספר כתובות אתרים באופן הבא:

 http://site.{one,two,three}.com 

אפשרויות:

הפקודה curl תומכת באפשרויות שורת הפקודה הבאות:

--abstract-unix-socket: הוא משמש לחיבור באמצעות שקע תחום Unix מופשט במקום רשת.

--anyauth: הוא משמש לפקודות curl לאימות השיטה בעצמה לשימוש בשיטה המאובטחת ביותר. כלי זה הוא כלי עזר אופציונלי '--basic, --digest, --ntlm, and negotiate' המשמש להגדרת שיטת אימות ספציפית.

-א, --להוסיף: הוא משמש להעלאת קבצים. זה מוסיף את הקובץ במקום לדרוס אותו. אם הקובץ הנתון לא קיים בשרת, הוא יצור אחד.

מערך הדפסה ב-java

--בסיסי: הוא מציין את השימוש באימות HTTP בסיסי. זוהי אפשרות ברירת המחדל של פקודת הסלסול. זה שימושי לעקוף את ההגדרות הקודמות.

--cacert: זה מוגדר לשימוש בקובץ האישור המסוים כדי לאמת את העמית. לקבצים עשויים להיות מספר אישורי CA. הפורמט הסטנדרטי של התעודות הוא PEM, ולכן, כל התעודות חייבות להיות בו.

--קפת: זה מוגדר לשימוש בספרייה הספציפית כדי לאמת את העמית. אנו יכולים לציין נתיבים מרובים על ידי הפרדתם באמצעות נקודתיים (:) כגון 'נתיב: נתיב2:נתיב3'. הפורמט הסטנדרטי של התעודות הוא PEM, ולכן, כל התעודות חייבות להיות בו.

--cert-status: הוא משמש לאימות מצב תעודת השרת. הוא משתמש בבקשת סטטוס אישור או ב-OCSP הידוק TLS.

---cert-type: הוא מציין את סוג תעודת הסלסול המסופק. אישורים אלה יכולים להיות בפורמט PEM, DER ו-ENG. ערך ברירת המחדל הוא PEM. אם הוא מצוין מספר פעמים, הערך האחרון יילקח על ידי התלתל.

-E, --cert : זה מוגדר לשימוש בקובץ אישור הלקוח בעת קבלת קובץ באמצעות כל פרוטוקול מבוסס SSL כגון HTTPS, FTPS וכו'.

--צפנים: הוא משמש לבחירת הצפנים לשימוש בחיבור.

--דחוס-ssh: הוא משמש כדי לאפשר דחיסת SSH מובנית. אפשרות זו תיחשב כבקשה של השרת, כך שהשרת עשוי לקבל או לא לקבל אותה.

--דָחוּס: הוא משמש לבקשת תגובה דחוסה באמצעות אלגוריתמי הסלסול ושומר את המסמך הלא דחוס. אפשרות זו תשלח דוח על תלתל קידוד שאינו נתמך.

-K, --config: הוא משמש לתיאור קובץ טקסט לקריאת טיעוני תלתל. התלתל ישתמש בארגומנטים של שורת הפקודה מקובץ הטקסט.

--זמן קצוב לחיבור: הוא משמש כדי לציין את הזמן המרבי בשניות עבור פסק זמן של חיבור תלתל.

--להתחבר ל : הוא משמש ליצירת בקשה לזוג הנתון של מארח ויציאה; אחרת, הוא יתחבר לזוג הבא. אפשרות זו היא כלי שימושי לביצוע בקשות ישירות בשרת ספציפי.

-C, --continue-at: הוא משמש להמשך או לחידוש העברת קבצים קודמת בהיסט הנתון.

-c, --צנצנת עוגיות: הוא משמש לציון קובץ מסוים אליו נרצה לכתוב את כל העוגיות לאחר פעולה מוצלחת.

-ב, --עוגייה: הוא משמש להעברת נתונים לשרת HTTP בכותרת Cookie.

--create-dirs: הוא משמש בשילוב עם ה-'-o? אפשרות, זה יצור את היררכיית הספריות המקומית הנדרשת.

--crlf (FTP SMTP): הוא משמש להמרת LF ל-CRLF בהעלאה. זהו כלי שימושי עבור MVS (OS/390).

--crlfile: הוא משמש לציון (בפורמט PEM) עם רשימת ביטולי אישורים.

--data-ascii: זה כינוי ל-?-d? אוֹפְּצִיָה.

-- משלחת : הוא משמש כדי להגדיר את LEVEL כדי לאשר את השרת מה שהוא מותר להאציל בכל הנוגע לאישורי משתמש.

--לְעַכֵּל: הוא משמש להפעלת אימות HTTP Digest.

-q, --disable: אם הוא משמש כארגומנט הראשון, הוא יתעלם מקובץ התצורה curlrc.

--dns-ממשק: הוא משמש כדי לאשר את השרת לשלוח את בקשות ה-DNS היוצאות.

--dns-שרתים: הוא משמש לציון שרתי DNS במקום שרתי ברירת מחדל.

-f, --fail: הוא משמש כדי לגרום לתלתל להיכשל בשקט בשגיאות שרת.

-F, --טופס: הוא משמש לחקות טופס מלא שנשלח על ידי המשתמש.

-P, --ftp-port: הוא משמש כדי להפוך את תפקידי המאזין המוגדרים כברירת מחדל בעת חיבור ל-FTP.

--ftp-ssl-ccc-mode: הוא משמש להגדרת מצב CCC.

-G, --קבל: הוא משמש לציון נתונים עם ?-d? אפשרות לשימוש בבקשת HTTP GET במקום בקשת POST.

-ה, --עזרה: הוא משמש להצגת מדריך העזרה הכולל תיאור קצר של אפשרויות השימוש והתמיכה.

-0, --http1.0: הוא צוין לשימוש בגירסת HTTP 1.0.

--התעלם מתוכן-אורך: הוא משמש כדי להתעלם מהכותרת Content-Length.

-i, --כולל: הוא משמש לכלול את כותרות תגובות ה-HTTP.

-4, --ipv4: הוא משמש כדי לפתור שמות לכתובות Ipv4.

-6, --ipv6: הוא משמש כדי לפתור שמות לכתובות Ipv6.

פרוטוקולים של תלתל

Curl תומך במספר פרוטוקולים:

    DICT:זה מאפשר לנו לחפש מילים רק באמצעות מילונים.FTP (S):Curl תומך בפרוטוקול FTP תוך שימוש בהרבה מנופים ושינויים. עם או בלי TLS.קוֹבֶץ:זה מאפשר לנו לכתוב ולקרוא את הקובץ המקומי. Curl אינו מאפשר גישה מרחוק לקובץ://URL, אך הוא יעבוד כאשר הוא פעיל ב-Microsoft Windows עם גישת ה-UNC המקורית.GOPHER (S):זה מאחזר קבצים.HTTP (S):Curl תומך ב-HTTP באמצעות וריאציות ואפשרויות רבות. הוא יכול לדבר את גרסאות ה-0.9, 1.0, 1.1, 2 ו-3 HTTP בהתאם לשורת הפקודה המדויקת ולאפשרויות הבנייה.IMAP (S):Curl מוריד עבורנו מיילים עם פרוטוקול קריאת דואר. עם או בלי TLS.LDAP (S):Curl יכול ליישם עבורנו חיפוש ספריות עם או בלי שימוש ב-TLS.MQTT:Curl תומך בגרסה 3 של MQTT. הורדה ב-MQTT זהה לזה 'הירשם' לכל נושא, ופרסום/העלאה זהה ל 'לְפַרְסֵם' בכל נושא. מעל TLS, MQTT אינו נתמך.POP3 (S):הורדה דרך שרת pop3 מייצגת קבלת דואר ללא או עם TLS.RTMP (S):פרוטוקול RTMP או Realtime Messaging משמש בעיקר להזרמת מדיה בשרת.RTSP:Curl תומך בהורדות 1.0 של RTSP.SCP:Curl תומך בגרסת העברת שני scp של SCP.SFTP:Curl תומך ב-SFTP על פני גרסה 2 של SSH.SMB (S):Curl תומך בגרסה 1 של SMB להורדה והעלאה.SMTP (S):העלאת תוכן לכל שרת SMTP פירושה העברת אימייל ללא או עם TLS.טלנט:להודיע ​​ל-curl להביא כתובת URL של telnet מתחילה הפעלה אינטראקטיבית בה היא מעבירה את מה שהוא קורא על stdin ומביאה למה שהשרת מעביר אותו.TFTP:Curl יכול ליישם העלאות והורדות של TFTP.

התקנת ה-Curl Command

הפקודה curl מגיעה עם רוב לינוקס הפצות. אבל, אם המערכת לא נושאת את התלתל כברירת מחדל. אתה צריך להתקין אותו ידנית. כדי להתקין את התלתל, בצע את הפקודות הבאות:

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

 sudo apt update sudo apt upgrade 

כעת, התקן את תוכנית השירות curl על ידי ביצוע הפקודה הבאה:

 sudo apt install curl 

אמת את ההתקנה על ידי ביצוע הפקודה הבאה:

 curl -version 

הפקודה לעיל תציג את הגרסה המותקנת של פקודת ה-curl.

אחזר את התוכן של כתובת האתר שצוינה

כדי להביא את התוכן של כתובת אתר ספציפית כלשהי, בצע את פקודת ה-curl, ולאחריה את כתובת האתר. שקול את הפקודה הבאה:

 curl https://www.javatpoint.com/linux-tutorial 

הפקודה לעיל תביא את נתוני העמוד של העמוד שצוין. שקול את ההצמדה למטה של ​​הפלט:

Linux Command Curl

מהפלט לעיל, אנו יכולים לראות את נתוני העמוד של כתובת האתר הנתונה מאוחזרים. כדי לעצור את הביצוע, הקש על מקשי CTRL+C.

שמור נתונים בקובץ ספציפי

כדי לשמור את הנתונים בקובץ מסוים, העבר את האפשרות '-o' ואחריה ספרייה, שם קובץ וכתובת URL באופן הבא:

 curl -o / 

שקול את הפקודה הבאה:

 curl -o /home/javatpoint/Documents/linux.html https://www.javatpoint.com/linux-tutorial 

הפקודה לעיל תשמור את נתוני העמוד בקובץ 'linux.html' תחת ספריית ' /home/javatpoint/Documents/'. שקול את הפלט שלהלן:

Linux Command Curl

מהפקודה לעיל, אנו יכולים לראות את הכמות הכוללת של הנתונים שהורדת, הנתונים שהתקבלו, זמן ממוצע ועוד כמה נתונים סטטיסטיים על הנתונים.

כדי לאמת את הנתונים שהורדת, פתח את הקובץ על ידי ביצוע הפקודה cat

 cd Documents cat linux.html 

שקול את ההצמדה של הפלט למטה:

Linux Command Curl

הורד קובץ מהאינטרנט

אחד השימושים המעניינים והמרתקים של curl הוא שאנחנו יכולים להוריד קובץ מהרשת. כדי להוריד קובץ מהאינטרנט, העתק את קישור ההורדה והדבק אותו עם הפקודה curl. אנחנו יכולים להעביר טיעונים אחרים גם כדי להפוך את זה יותר ספציפי. לדוגמה, הורד את הגרסה האחרונה של אובונטו, העתק את קישור להורדה של ה-Ubuntu מהאתר הרשמי שלו והדבק אותו בפקודת סלסול באופן הבא:

 curl -o /home/javatpoint/Documents/ubuntu20.04.iso https://ubuntu.com/download/desktop/thank-you?version=20.04&architecture=amd64 

הפקודה לעיל תוריד את אובונטו 20.04 לספרייה שצוינה. ספק את סיומת הקובץ המתאימה; אחרת, הוא יוריד את הקובץ בפורמט אחר. שקול את הפלט שלהלן:

Linux Command Curl

מהפלט שלמעלה, הקובץ ubuntu.iso מוריד. אנו יכולים לראות את זמן ההורדה, גודל הקובץ, מהירות ההורדה וסטטיסטיקות אחרות. כדי לעצור את הביצוע, בכל עת הקש על מקשי CTRL+D.

המשך את ההורדות המופרעות

ייתכן שיש סיכוי שההורדות יופסקו מסיבה כלשהי. אנו יכולים לחדש הורדות באמצעות פקודת curl. כדי לחדש את הקובץ שנקטע, העבר את האפשרות '-C' עם פקודת סלסול באופן הבא:

 curl -C 

הפקודה לעיל תחדש את ההורדה של כתובת האתר שצוינה.

הורד מספר קבצים

כדי להוריד את הקבצים המרובים, ציין את מספר כתובות האתרים המופרדות ברווח באופן הבא:

 curl -O 

הפקודה לעיל תוריד את הנתונים משתי כתובות האתרים, בהתאמה.

שאילתות בכותרות HTTP

כותרות ה-HTTP מכילות מידע נוסף; זה מאפשר לשרת האינטרנט להוריד מידע זה. כדי לשאול את כותרות ה-HTTP מאתר אינטרנט, בצע את הפקודה עם אפשרות '-I' באופן הבא:

 curl -I www.javatpoint.com 

הפקודה לעיל תפיק את הפלט שלהלן:

Linux Command Curl