קבל cURLy: 10 דברים שימושיים שאתה יכול לעשות עם cURL

קבל cURLy: 10 דברים שימושיים שאתה יכול לעשות עם cURL

כאשר אנו מתחילים ללמוד על כלי שורת הפקודה, אנו נוטים לראות אותם כמטרה חד-פעמית. מלמדים אותך את זה





cat

מדפיס תוכן קובץ,





ls

מפרט את כל הפריטים בספרייה ו-





du

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

man

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



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

הפעם, אנו מתמקדים סִלְסוּל , כלי להעברת נתונים באמצעות מספר פרוטוקולי אינטרנט כגון HTTP (S), FTP, Telnet, LDAP, IMAP, POP3, SMTP ועוד.





במונחים פשוטים, cURL מבצע בקשות שונות מלקוח לשרת, ויוצר חיבור ביניהן באמצעות פרוטוקול ספציפי והשיטות הקשורות בו. לדוגמה, כלקוח HTTP, cURL יכול לשלוח בקשה להציג או להוריד תוכן (שיטת בקשת GET), או לפרסם תוכן באמצעות טופס באתר (שיטת בקשת POST). יישומי אינטרנט ושירותים רבים מאפשרים ל- cURL אינטראקציה עם ממשקי ה- API שלהם (ממשק תכנות אפליקציות).

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

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

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

pwd

פקודה). כדי לשמור אותם במקומות אחרים, ספק את הנתיב שאחרי מתג -o. מתג -C - מאפשר ל- cURL לחדש את ההורדה. תוכל להשהות אותו על ידי לחיצה על Ctrl+C במסוף, ולהמשיך אותו על ידי הפעלת אותה פקודת הורדה שוב:

cURL מציג את התקדמות ההורדה בפורמט דמוי טבלה, עם עמודות המכילות מידע על מהירות ההורדה, גודל הקובץ הכולל, הזמן שחלף ועוד. אם אינך אוהב זאת, תוכל לבחור בסרגל התקדמות פשוט יותר על ידי הוספת -# או -סרגל התקדמות לפקודת 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 בימים אלה, אבל זה לא אומר שזה מיושן. למעשה, פרויקטים רבים של קוד פתוח והפצות לינוקס חולקים את התוכנה שלהם בשרתי 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

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

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

). לעומת זאת, אם יש להם שמות דומים, החל את אותו ההיגיון בדוגמת ההורדה של Tumblr והשתמש בסוגריים מרובעים (

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

). הקפד לספק את הנתיב המלא לקבצים אם הם אינם נמצאים בספרייה הנוכחית שלך.

4. בדוק אם אתר אינטרנט כבוי

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

אתה יכול לגוגל, לבקש מחבר שיבדוק את זה עבורך, או להשתמש באחד מאותם אתרים חד פעמיים שאומרים לך אם אתר מושבת. או שאתה יכול פשוט להפעיל את הטרמינל ולהריץ cURL:

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

הבורר האותי -גדול (-I) בודק את כותרת HTTP של דף אינטרנט, ואפשרות -L (מיקום) מתווספת כדי לגרום ל- cURL לעקוב אחר ניתובים מחדש. המשמעות היא שאינך צריך להקליד את כתובת האתר המלאה של פייסבוק; רק תכתוב facebook.com ו- cURL ידאג לשאר הודות ל- -L. אם יש הפניות, הם יוצגו עם סטטוס HTTP משלהם.

המסר שאנו מעוניינים בו הוא '200 בסדר', מה שאומר שהכל בסדר עם האתר. אם זה אכן ירד, תראה משהו כזה:

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

5. הרחב כתובות אתרים מקוצרות

כתובות אתרים מקוצרות אינן גרועות מטבען. בלעדיהם יהיה קשה לשתף קישורים בטוויטר וברשתות חברתיות מוגבלות תווים אחרות. חלק משירותי קיצור כתובות האתרים מציעים גם ניתוח שימושי. אבל תמיד קיים סיכון שמישהו מנסה להסתיר תוכן זדוני מאחורי כתובת URL מקוצרת, או שטרול מסתיר ריקרול (או משהו הרבה הרבה יותר גרוע). אם אי פעם אתה חשד מפני כתובת 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 הוא אחד הכלים האלה שכל משתמש לינוקס צריך להכיר, והוא משלים את cURL במקרה זה ובכמה מקרי שימוש אחרים. בל נשכח ש- cURL יכול להוריד קבצים מכתובת 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. טכניקת האמנות הדיגיטלית הזו מתחילה בשנות ה -60, וכיום היא חלק מהתרבות וההיסטוריה של האינטרנט, שנשארת בחיים באוספים וכלים רבים המאפשרים לך להמיר טקסט ותמונות לאמנות ASCII . אתה יכול להשתמש בו לקישוט הטרמינל שלך או לתעלול החברים שלך - מה שצוף בסירה שלך.

7. ניסוי במדיה חברתית

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

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

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

8. מצא את כתובת ה- IP החיצונית שלך

קל למצוא את כתובת ה- IP המקומית שלך - פשוט רץ

דברים שכדאי לעשות כשמשעמם לך באינטרנט
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. הדבק טקסט ושתף תמונות

שבירת זרימת העבודה שלך לעולם אינה טובה לפריון ולמיקוד. אם אתה מבצע את רוב עבודתך במסוף, מעבר לדפדפן רק כדי לשתף כמה קבצים יכול להיות לא מעשי, אם לא מעצבן. למרבה המזל, כמה שירותי pastebin ושיתוף קבצים נולדו לעבוד עם 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

כאשר אתה מקבל קישור לטקסט שהועלה, תוכל לשנות את כתובת האתר שלו כך שיציג הדגשת תחביר (עם

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 GB של נתונים ל- 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 שניתן למחוק בבטחה כדי לפנות מקום בדיסק.

קרא הבא
נושאים קשורים
  • לינוקס
  • FTP
  • ניהול הורדות
  • מָסוֹף
על הסופר איוונה איזדורה דבצ'יץ '(פורסמו 24 מאמרים)

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

עוד מאת Ivana Isadora Devcic

הירשם לניוזלטר שלנו

הצטרף לניוזלטר שלנו לקבלת טיפים, סקירות, ספרים אלקטרוניים בחינם ומבצעים בלעדיים!

לחצו כאן להרשמה