Bash Tips
985 subscribers
14 photos
4 files
45 links
רוצים להשתמש בלינוקס אבל לא ממש מכירים את הכלים שהיא מספקת לעבודה?

בערוץ הבא תמצאו אוסף טיפים שימושיים ב-Bash והכרות עם כלים שונים שעשויים לחסוך מאמץ ועבודה בכתיבת סקריפטים ומימוש אוטומציות.
Download Telegram
אודות :
רמת קושי: #advanced

כמה טריקים נחמדים שמאפשרת לנו פקודת :
רגע מה? : זאת פקודה?

$ help :
:: :
Null command.

No effect; the command does nothing.

Exit Status:
Always succeeds.

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


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

$ : ls /tmp
$ : ls /tm

שימו לב שהיא מעבירה גם את stderr וגם את stdout כך שגם שגיאות לא יוצגו


שרשור פעולות
ראינו מקודם שניתן להריץ פקודות בלי לקבל את הפלט שלהם, כשמכניסים את זה לסקריפט אפשר להשתמש ברעיון הזה בצורה הבאה
$ cat test.sh
: "${1} ####"
printf '%s\n' "#### ${_}"

bash test.sh Title
#### Title ####

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


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

$ echo 1234 > myfile.log
$ du myfile.log
4 myfile.log

$ : > myfile.log
$ du myfile.log
0 myfile.log


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

: << 'DOC'

your code block here

and here

and here

DOC

ברוב המקרים ישנה צורה נוחה ונעימה יותר לבצע את אותן הפעולות, בכל אופן מידי פעם עדין נתקלים בסקריפט שמכיל קוד דומה.
#heredoc
#touch
#null
#true

@bash_tips
ליצור היסטוריה touch
רמת קושי: #beginners

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

מה שאנו צריכים זה כלי שיאפשר לנו ליצור קובץ כאילו הקובץ נוצר כבר לפני שבוע ועליו לבצע את הניסיונות והפעולות שלנו

פקודת touch מאפשרת לנו ליצור קבצים

$ touch newfile

ומאפשרת לנו בנוסף לשנות זמן יצירה של קובץ מסויים או ליצור אותו מלכתחילה עם תאריך אחר מהזמן הנוכחי

$ touch newfile -t 01012022
$ ls -la
...
-rw-rw-r-- 1 bash_tips bash_tips 0 Jan 1 2022


כפי שניתן לראות זמן היצירה של הקובץ הוא מ01.01.2022


אחלה מעולה הכל עובד מושלם בקשר לקבצים, מה בקשר לתיקיות?

גם כאן פקודת touch באה לעזרנו למרות שהיא עובדת בעיקר על קבצים, אם ניצור תיקייה ו"ניגע" בה עם פקודת touch נוכל לשנות לה את
תאריך היצירה של התיקיה
ה mtime (התאריך האחרון בו הקובץ השתנה)
או ה atime (התאריך האחרון שמישהו ניגש לקובץ)

$ mkdir newdir
$ ls -l
...
drwxrwxr-x 2 bash_tips bash_tips 4096 Oct 31 21:11 newdir

$ touch newdir -t 01012022
$ ls -l
...
drwxrwxr-x 2 bash_tips bash_tips 4096 Jan 1 2022 newdir



#touch

@bash_tips
👍8🔥2