• בלוג
  • אוטומציה של דברים פשוטים

אוטומציה של דברים פשוטים

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

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

1. קיצור URL עם ביטלי

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

כל זה בא להסביר את ההעדפה הברורה שלי לכלי שורת פקודה על פני ממשקי Web עבור פעולות מהירות. כך למשל ביטלי מציעים API למפתחים ואתו הסקריפט הבא מאפשר לקצר כתובת בסקריפט Ruby פשוט:

require 'bitly'

Bitly.use_api_version_3

bitly = Bitly.new(username, api_key)
u = bitly.shorten('http://www.google.com')
puts u.short_url

בשביל שזה יעבוד יש למלא שם משתמש ומפתח API. את מפתח ה API לוקחים ממסך הגדרות החשבון שלכם ב bit.ly.

2. שליפת מידע מאתרים באמצעות nokogiri

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

עם Tmux אפשר להשאיר את הסקריפט רץ בלולאה באחד הטאבים (או בספליט אם אתם מכורים לחדשות) וכך לחסוך את הביקור בדפדפן:

require 'open-uri'
require 'nokogiri'

doc = Nokogiri::HTML(open("http://rotter.net/mobile/mobileticker/rotter_news_ticker.php"))
doc = Nokogiri::HTML(open("http://rotter.net/"))

news = doc.css('a[target=news] span')

news.each_with_index do |item, index|
  puts "[#{index}] #{item.text}"
end

3. שיתוף קבצים עם transfer.sh

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

curl --upload-file ./hello.txt https://transfer.sh/hello.txt 

החליפו את hello.txt בשם הקובץ שלכם. אגב צד השרת של הפרויקט בקוד פתוח וכתוב ב go. הסקרנים מוזמנים לבקר את עמוד הפרויקט בגיטהאב ולנסות לשלוח להם שיפור או שניים (למרות שלפי כמות ה Pull Requests הפתוחים לא נראה שאכפת להם): https://github.com/dutchcoders/transfer.sh

4. עדכוני מזג אוויר מ wttr.in

האתר wttr.in ישמח לספר לכם מה מזג האוויר בכל מקום בעולם ובממשק Ascii Art ישירות משורת הפקודה. ברירת המחדל מציגה את מזג האוויר בשלושת הימים הקרובים, אבל בשילוב head ו tail אפשר לצמצם את הפלט רק למזג האוויר היום:

curl -s wttr.in/tel-aviv | tail +8 | head -10

השורה מחפשת את מזג האוויר בתל אביב. מוזמנים להחליף את העיר לכל מקום אחר שמעניין אתכם.

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