שרשור פקודות ב- Bash

מספר דרכים לשרשור פקודות ב- Bash:

  1. הרצת סקריפט שמכיל את הפקודות אחת אחר השניה (כל פקודה בשורה נפרדת).
    – כל הפקודות ירוצו באותו ה- shell (גם אם הן מצליחות וגם אם לא)
  2. הרצת הפקודה: cmd1;cmd2;cmd3
    – הפקודות מופרדות ע"י ';' ורצות אחת אחר השניה
    – כל פקודה ממתינה לסיום הפקודה הקודמת כשכל פקודה רצה ב- shell אחר (קראו את התגובות)
  3. הרצת הפקודה: (cmd1;cmd2;cmd3)
    – כמו 2 רק שכל הפקודות רצות באותו ה- shell ברקע (קראו את התגובות)
  4. הרצת הפקודה: cmd1 && cmd2 && cmd3
    -בהתחלה תרוץ הפקודה cmd1, אם תצליח תרוץ הפקודה cmd2 ואם לא תצליח לא תורץ אף פקודה נוספת.
    – '&&' שונה מ- ';' בכך שבשימוש ב- ';' הפקודות תמיד רצות אחת אחר השנייה (ללא תלות בתוצאות ההרצה הקודמת)
  5. ניתן להשתמש בסקריפט ולבדוק אם כל פקודה הצליחה או לא
    – ניתן לדעת אם פקודה הצליחה או לא ע"י בדיקת הערך של '?$'. אם '?$' מחזיר 0 הפקודה הצליחה ואם מחזיר כל ערך אחר הפקודה נכשלה.
    – ניתן לבצע בדיקות נוספות ומתוחכמות יותר ע"י שימוש ב- || (שמשמעותו 'או') או ב-  && ('וגם')
  6. שימוש ב- & (הרצה ברקע): cmd1 & cmd2 & cmd3
    כל הפקודות ירוצו במקביל אך זאת שתסיים ראשונה תציג את הפלט ראשונה (אם יש פלט)

כמעט בטוח שיש דרכים נוספות ואשמח להתעדכן (גם בטעויות שרשמתי…).

find: פקודה קלה

חבר מהעבודה (גיא, שאחראי על לפחות שתי רשימות שכתבתי) היפנה את תשומת ליבי לאתר הבא. מזינים בפשטות את הקריטריונים לחיפוש ומקבלים את פקודת ה- find המדוייקת שיש להזין. נחמד ושימושי 🙂

findunixpin.png

סקריפט: חותמת זמן לקבצים

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

מה עושה הסקריפט? הרצה של הפקודה: ts filename תייצר קובץ גיבוי בפורמט הבא: filename_YYYYMMDD

דוגמא:

הערות:

  • מומלץ להעתיק את הקובץ לתיקייה שנמצאת בנתיב החיפוש (נניח usr/bin/)
  • גם בחלונות ניתן להשתמש בתסריט (צריך להתקין סביבת לינוקס, דוגמת Cygwin): בחלון ה- "dos" השחור יש לרשום:
    sh ts filename

יצירה ועיגון של קבצי ISO

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

יצירת קובץ ISO:

בפקודה הראשונה משחררים מהעיגון את ה- CD, ובפקודה השניה יוצרים את קובץ ה- iso. משמעות הפרמטרים: if=input file, of=output file ו- bs=1024 מציין שההעתקה תתבצע בבלוקים של 1024 בתים.
עגינת קובץ ISO:

filename.iso זה קובץ ה- iso שרוצים לעגן ו- mountpoint/ זאת הספריה אליה מעגנים את ה- iso.