אם עוקבת אחרי הוראות ההתקנה המוכוונות למסוף עבור אפליקציות לינוקס במשך זמן מה, כנראה שנתקלת ב curl
פקודה בשלב זה או אחר. cURL הוא כלי שורת פקודה להעברת נתונים עם כתובות URL. אחד השימושים הפשוטים ביותר הוא להוריד קובץ דרך שורת הפקודה. עם זאת, זה מטעה שכן cURL הוא כלי חזק להפליא שיכול לעשות הרבה יותר.
תוכן העניינים
מה זה cURL?
נכתב במקור על ידי דניאל שטרנברג בשנת 1996 כדי לקבל נתונים פיננסיים משרתי אינטרנט ולשדר אותם לערוצי IRC, cURL התפתחה להיות כלי רב עוצמה לקבלת נתונים ללא צורך להשתמש בדפדפן. אם אתה תמיד משתמש בטרמינל, זה יהיה אחד הכלים החשובים ביותר בארסנל שלך.
ברוב ההפצות של לינוקס, cURL מותקן מראש במערכת ותוכל להשתמש בו מיד. גם אם הוא לא מותקן, הוא נמצא גם ברוב המאגרים, כך שתוכל להתקין אותו בקלות באמצעות מרכז התוכנה.
עבור Windows, אין לו פקודה “כמו תלתל” וב-macOS מותקן מראש cURL, אבל הוא לא מציע כל כך הרבה דגלים כמו גרסת לינוקס.
הַתקָנָה
לפני שנמשיך הלאה, עלינו לוודא ש-cURL כבר מותקן במערכת שלנו.
לינוקס
בהפצות מבוססות Debian/Ubuntu, השתמש בפקודה הבאה כדי להתקין cURL:
sudo apt install curl
בהפצות מבוססות Arch:
sudo pacman -S curl
ב-Fedora / CentOS / RHEL:
sudo dnf install curl
Mac OS
עבור macOS, זה מגיע מותקן מראש, כך שאתה לא צריך לעשות כלום.
חלונות
- עבור Windows 7/10/11, עבור אל דף הורדת cURL ובחר בין חבילות של 64 סיביות או 32 סיביות, בהתאם לארכיטקטורה שאתה מפעיל. אם אינך מכיר את הארכיטקטורה שלו, 64 סיביות הוא הימור בטוח, שכן הרוב המכריע של החומרה שיוצרה לאחר 2006 נמצא בו.
- צור תיקיה ישירות בכונן המערכת או ב-“C:Program Files” וקרא לה “cURL”.
- חזור לקובץ ה-zip שהורדת, פתח אותו ומצא את “curl.exe” בתוך תיקיית “bin”. העתק אותו לתיקיית cURL שיצרת. ה-EXE שהעתקת הוא עצמאי לחלוטין ומסוגל לבצע את כל התמורות שאתה יכול להריץ בלינוקס.
- כדי להפוך את הפקודה הזו לשימושית באמת, עלינו להוסיף אותה למשתנה PATH ב-Windows כך שניתן יהיה להפעיל אותה משורת הפקודה בכל מקום.
- לחץ על תפריט התחל, הקלד
environment
ולחץ להיכנס. - לחץ על “משתני סביבה…” כעת אתה אמור להיות בהגדרות של משתני הסביבה שלך.
- בחר את משתנה הסביבה “נתיב” ולחץ על “ערוך…”
- בחלון הדו-שיח של עריכת הנתיב, לחץ על “חדש” והזן את הספרייה שבה נמצא “curl.exe” שלך – לדוגמה, “C: קבצי תוכנית cURL”.
- לחץ על “אישור” בחלונות הדו-שיח שפתחת בתהליך זה ותיהנה מ-cURL בטרמינל שלך!
כל דגל ב-cURL שניתן להשתמש בו בלינוקס אמור לעבוד בגרסת Windows.
מילה לחכמים: זכור שאסור לבלבל בין שורת הפקודה לבין מסוף Windows. Windows Terminal מגיע עם גרסה משלו של cURL הכלולה ב- PowerShell המציעה פונקציונליות דומה אך פועלת אחרת לגמרי.
באמצעות cURL
כדי להתחיל, פשוט הקלד curl maketecheasier.com
בטרמינל שלך ולחץ להיכנס.
אם אינך מקבל פלט כלשהו, הסיבה לכך היא שהשרת של אתר זה אינו מוגדר להגיב לבקשות חיבור אקראיות לדומיין שאינו www. אם אתה מחפש שרת שלא קיים או לא מקוון, תקבל הודעת שגיאה האומרת ש-cURL לא הצליח לפתור את המארח.
כדי לגרום ל-cURL לעשות משהו ממש שימושי, נצטרך לציין פרוטוקול. בדוגמה שלנו, אנו משתמשים בפרוטוקול HTTPS כדי לבצע שאילתות בדף הבית של אתר זה. דֶגֶם curl https://www.maketecheasier.com
.
אם הכל ילך כשורה, אתה צריך להסתכל על קיר ענק של נתונים. כדי להפוך את הנתונים האלה לשמישים יותר, אנחנו יכולים להגיד ל-cURL לשים אותם בקובץ HTML:
curl https://www.maketecheasier.com > ~/Downloads/mte.html
פקודה זו מכניסה את תוכן הפלט של האתר שלנו לקובץ HTML בתיקיית ההורדות. נווט לתיקיה עם מנהל הקבצים המועדף עליך ולחץ פעמיים על הקובץ שיצרת זה עתה. זה אמור לפתוח תמונת מצב של פלט ה-HTML של דף הבית של אתר זה.
כמו כן, אתה יכול להשתמש ב- -o
דגל כדי לקבל את אותה תוצאה:
curl -o ~/Downloads/mte.html https://www.maketecheasier.com
בעקבות הפניות מחדש
רוב האתרים מפנים אוטומטית תעבורה מפרוטוקול “http” ל-“https”. ב-cURL אתה יכול להשיג את אותו הדבר עם -L
דֶגֶל. זה יעקוב אוטומטית אחר הפניות 301 עד שהוא יגיע לדף או קובץ קריא.
curl -L http://google.com.
חידוש הורדה
בעת הורדת קבצים גדולים, בהתאם למהירות האינטרנט שלך, הפרעות יכולות להיות מעצבנות ביותר. למרבה המזל, ל-cURL יש פונקציית קורות חיים. עובר הלאה -C
דגל יטפל בבעיה הזו במהירות.
כדי להראות דוגמה מהעולם האמיתי, קטעתי בכוונה את ההורדה של מהדורת הניסוי של דביאן ISO על ידי לחיצה Ctrl ו Ç באמצע לתפוס אותו.
לפקודה הבאה שלנו, אנו מוסיפים את ה -C
דֶגֶל. לדוגמה,
curl -C - -o ~/Downloads/debiantesting.iso -L https://cdimage.debian.org/cdimage/weekly-builds/amd64/iso-dvd/debian-testing-amd64-DVD-1.iso
ההורדה התחילה בהצלחה מאיפה שהפסיקה.
מוריד יותר מקובץ אחד
מכיוון של-cURL אין את הדרך האינטואיטיבית ביותר להוריד קבצים מרובים, ישנן שתי שיטות, כל אחת עם פשרה משלה.
אם הקבצים שאתה מוריד ממוינים (למשל file1, file2 וכן הלאה), אתה יכול להשתמש בסוגריים מרובעים כדי לקבל את כל מגוון הקבצים ו-“#” בתוך הפלט שאתה מציין עם -o
דֶגֶל. כדי לעשות את זה קצת פחות מבלבל, הנה דוגמה:
curl "http://example.com/file[1-5].zip" -o "#1_#2"
דרך פשוטה יותר לעשות זאת היא עם -O
(--remote-name
) הדגל הזה גורם ל-cURL להוריד את הקובץ המרוחק לקובץ מקומי באותו שם. מכיוון שאינך צריך לציין פלט, עליך להשתמש בפקודה זו כאשר הטרמינל פתוח בספרייה שבה ברצונך להוריד את הקבצים.
curl -O "https://example.com/file1.zip" -O "https://example.com/file2.zip"
אם יש לך מספר רב של קבצים ממוינים להורדה, --remote-name-all
הוא דגל טוב יותר עבור זה:
curl --remote-name-all "https://example.com/file[1-5].zip"
אתה יכול אפילו לציין קבצים לא ממוספרים המגיעים מאותו אתר מבלי שתצטרך להקליד מחדש את כתובת האתר באמצעות סוגריים מרובעים:
curl --remote-name-all "https://example.com/{file1.zip,anotherfile.zip,thisisfun.zip}"
הורדה עם אימות
הורד קבצים הדורשים אימות (לדוגמה, כאשר מגיעים משרת FTP פרטי) עם -u
דֶגֶל. כל בקשת אימות חייבת להיעשות עם שם משתמש ראשון וסיסמה שניה, עם נקודתיים שמפרידה בין השניים. הנה דוגמה כדי לעשות דברים פשוטים:
curl -u username:password -o ~/Downloads/file.zip ftp://example.com/file.zip
פעולה זו תאמת את חברנו bonobo_bob לשרת ה-FTP ותוריד את הקובץ לתיקיית ההורדות.
פיצול ומיזוג קבצים
אם מסיבה כלשהי אתה רוצה להוריד קובץ גדול ולפצל אותו לחלקים, אתה יכול לעשות את זה עם cURL’s --range
דֶגֶל. עם --range
, עליך לציין את הבית שבו ברצונך להתחיל עד זה שבו ברצונך לסיים. אם לא תציין סוף לטווח, הוא פשוט יוריד את שאר הקובץ.
בפקודה למטה, cURL תוריד את ה-100 מגה-בייט הראשונים של תמונת ההתקנה של Arch Linux:
curl --range 0-99999999 -o arch.part1 -L https://mirrors.chroot.ro/archlinux/iso/2021.11.01/archlinux-2021.11.01-x86_64.iso
עבור 100 MB הבאים, השתמש --range 100000000-199999999
, וכו. אתה יכול לשרשר פקודות אלה יחד באמצעות ה- &&
הפעלה:
curl --range 0-99999999 -o arch.part1 -L https://mirrors.chroot.ro/archlinux/iso/2021.11.01/archlinux-2021.11.01-x86_64.iso && curl --range 100000000-199999999 -o arch.part2 -L https://mirrors.chroot.ro/archlinux/iso/2021.11.01/archlinux-2021.11.01-x86_64.iso && curl --range 200000000-299999999 -o arch.part3 -L https://mirrors.chroot.ro/archlinux/iso/2021.11.01/archlinux-2021.11.01-x86_64.iso && curl --range 300000000-399999999 -o arch.part4 -L https://mirrors.chroot.ro/archlinux/iso/2021.11.01/archlinux-2021.11.01-x86_64.iso && curl --range 400000000-499999999 -o arch.part5 -L https://mirrors.chroot.ro/archlinux/iso/2021.11.01/archlinux-2021.11.01-x86_64.iso && curl --range 500000000-599999999 -o arch.part6 -L https://mirrors.chroot.ro/archlinux/iso/2021.11.01/archlinux-2021.11.01-x86_64.iso && curl --range 600000000-699999999 -o arch.part7 -L https://mirrors.chroot.ro/archlinux/iso/2021.11.01/archlinux-2021.11.01-x86_64.iso && curl --range 700000000- -o arch.part8 -L https://mirrors.chroot.ro/archlinux/iso/2021.11.01/archlinux-2021.11.01-x86_64.iso
אם עקבת אחר מבנה הפקודה לעיל עד האות, שמונה קבצים צריכים להופיע במקום שבו ביקשת מ-cURL להוריד אותם.
כדי לאסוף קבצים אלה תצטרך להשתמש ב- cat
הפקודה אם אתה על לינוקס או macOS בצורה הבאה:
cat arch.part? > arch.iso
עבור Windows תצטרך להשתמש ב- copy
פקודה כזו:
copy /b arch.part* arch.iso
משאבים שימושיים אחרים
ישנם דגלים רבים ושימושים עבור cURL:
-#
– משתמש בסרגל התקדמות כדי לציין כמה רחוק אתה במה שאתה תופס. דוגמא:curl -# https://asite.com/somefile.zip > ~/somefile.zip
.-a
– מבקש מ-cURL לצרף לקובץ במקום לדרוס אותו. דוגמא:curl -ao ~/collab-full.x https://example-url.com/collab-part26.x
.--head
– לכוד רק את כותרת תגובת השרת ללא נתוני הפלט. זה שימושי כאשר אתה מנקה באגים באתר או מסתכל על התגובות המתוכנתות של השרת ללקוחות. דוגמא:curl --head https://example-url.com
.--limit-rate
– מבקש הורדה מוגבלת ברוחב פס. זה שימושי במצבים שבהם אתה לא רוצה ש-cURL יתחזק את כל רוחב הפס הזמין במערכת שלך. מספר בודד יתפרש כבייטים לשנייה. K מייצג קילובייט לשנייה; M מייצג מגה בייט לשנייה. דוגמא:curl --limit-rate 8M https://example-url.com/file.zip > ~/file.zip
.-o
– כפי שהוזכר קודם לכן, קובע קובץ פלט לשימוש cURL. דוגמא:curl -o ~/Downloads/file.zip https://thefileplace.com/file.zip -o file2.zip https://thefileplace.com/file2.zip
.--proxy
– אם אתה רוצה לעבוד עם פרוקסי, זו הדרך לעשות זאת. דוגמא:curl --proxy proxyurl:port https://example-url.com/file.zip > ~file.zip
.
cURL לעומת wget
שתיהן יצאו באותה שנה (1996), cURL ו-Wget הן למעשה תוכניות אחיות למתבונן המזדמן. צלול קצת יותר לעומק, עם זאת, ותראה שלשתי האחיות האלה יש מטרות שונות.
wget
- זה בנוי לחלוטין מהיסוד כדי לקבל נתונים מהאינטרנט.
- לא צריך את
-L
אוֹ-o
דגלים כמו curl; פשוט תקלידwget [url]
ו … צא! - יכול להוריד באופן רקורסיבי כדי לקבל הכל בספרייה עם
-r
דֶגֶל. - יש לו את כל הפונקציות שמשתמש צריך לשימוש יומיומי וממלא את המשימות היומיומיות של מנהל מערכת.
- (על לינוקס) לא צריך הרבה תלות; כולם חייבים להיות זמינים מהקופסה.
סִלְסוּל
- רפרטואר נרחב של דגלים ופונקציות שימושיות להתאוששות מרחוק.
- תומך ברשת מקומית (LDAP) ובמדפסות רשת (Samba).
- עובד היטב עם ספריות דחיסה של gzip.
- זה תלוי ב-libcurl, המאפשר למפתחים לכתוב תוכנה או סקריפטים של bash הכוללים פונקציונליות של cURL.
בקיצור, Wget הוא “ארגז הכלים של כולם” להורדת דברים מהאינטרנט, בעוד ש-cURL מרחיב את זה עם שליטה מפורטת יותר עבור משתמשים מתקדמים ומנהלי מערכת.
שאלות נפוצות
1. קיבלתי שגיאת אישור בלינוקס. איך אני יכול לתקן את זה?
אם אתה מקבל שגיאה האומרת משהו כמו “מנפיק תעודת עמית סומן כלא מהימן”, הדרך הקלה ביותר לתקן זאת היא להתקין מחדש את חבילת האישורים הנפוצה בהפצה שלך.
עבור מערכות מבוססות דביאן/אובונטו:
sudo apt reinstall ca-certificates
עבור Fedora / CentOS / RHEL:
dnf reinstall ca-certificates
עבור מערכות מבוססות Arch:
pacman -S ca-certificates
שים לב שב-Arch אולי תרצה לנקות את מטמון החבילה שלך באמצעות pacman -Scc
לפני התקנה מחדש של חבילת האישורים.
אם אתה עדיין מקבל שגיאה זו, ייתכן שמשהו לא בסדר בשרת.
2. האם זה בטוח להפעיל פקודות cURL ו-bash ביחד?
אמנם לא הדרך הנפוצה ביותר להתקין אפליקציות לינוקס, אך ישנם מספר מפתחים (כמו האנשים שמאחורי NodeJS) שאינם מציעים ברירה אלא להשתמש curl
ליד פקודת גישה שורש המופעלת דרך bash (למשל. curl [argument] | sudo -E bash -
) כדי להתקין את התוכנה.
זה אולי נשמע קצת מפחיד, אבל אם האנשים שמאחורי האפליקציה אמינים, סביר מאוד שלא תשבור משהו. שחקנים זדוניים נמצאים בכל מקום ויכולים לחדור למאגרים כמו AUR של Arch, להתקין באמצעות curl
בשילוב עם פקודות גישה לשורש זה בדרך כלל לא יותר מסוכן מאשר לעשות זאת דרך מנהל החבילות שלך.
3. האם אני יכול להשתמש ב-cURL עם Tor?
כן! הפעל את דפדפן Tor (או שירות עצמאי) והשתמש ב- --proxy
דֶגֶל. Tor מספק פרוקסי מקומי שבו אתה יכול להשתמש כדי להסוות את ה-IP שלך ביישומים אחרים. הנה דוגמה ל-cURL בשימוש עם Tor:
curl --proxy localhost:9050 http://example.com
שירותי Tor עצמאיים ישתמשו ב-9050 כיציאת ההאזנה, בעוד שדפדפן Tor ישתמש ביציאה 9150.
אֲרִיזָה
cURL הוכיחה את עצמה כעמידה בין שינויים במבנה של עולם הלינוקס, ושומרת על מעמדה ככלי חשוב בארסנל של משתמש הטרמינל.
אם אתה חדש בשורת הפקודה, בדוק כמה מפקודות לינוקס השימושיות ביותר. אם אתה פשוט רוצה לחפש באינטרנט במקום להוריד נתונים מהאינטרנט, אתה יכול גם לגלוש במסוף.