כינויים לפקודות (alias)
בשגרת העבודה יש לנו מספר פקודות שיוצא לנו להקליד אותן כמעט כל יום, ולפעמים כמה פעמים ביום. היה נחמד אילו יכולנו לקצר את הפקודות, או אפילו לחסוך כמה 🤏🏻. למטרה זו - ועוד כמה - ישנה את התוכנה הנפלאה alias
, כינויים לפקודות.
כיצד ליצור כינוי לפקודה
לעתים קרובות אני נצרך להגיע לספריית Documents/Summaries/~
, אוכל ליצור כינוי באמצעות הפקודה הבאה:
alias gosum='cd ~/Documents/Summaries'
הסבר קצר:
- אנו מפעילים את התוכנה
alias
. - אנו בוחרים כינוי, במקרה הנוכחי בחרתי בהלחם של go - sum, היינו לך לספריית Summaries.
- אנו כותבים סימן שווה, שמשמעו השמה.
- הערך של הכינוי הוא הפקודה
cd ~/Documents/Summaries
, בהדגשה שיש לכתוב את הנתיב האבסולוטי.
זו היא דוגמא מאוד פשוטה, וניתן לעשות עם כינויי פקודות דברים הרבה יותר יעילים.
צפייה ועריכה של כינויים
אם שכחתי מה הפקודה שמכילה הכינוי, אוכל לבדוק זאת באמצעות הפעלת alias
ולאחריה הכינוי. למשל בכינוי שהוזכר למעלה gosum
:
alias gosum
אקבל את התוכן של הכינוי, כך:
gosum='cd ~/Documents/Summaries'
ואם תרצו לראות את כל הכינויים הקיימים - גם של ברירת המחדל של המעטפת - הקלידו alias
.
עריכת כינויים
לאחר שיצרתי כינוי אני יכול לשנות אותו ולערוך את הפקודה שהכינוי מכיל באמצעות כתיבת הכינוי ולהזין לתוכה תוכן חדש.
למשל אם אני רוצה לשנות את הנתיב של gosum
שיוביל אותי לספריית Documents
אכתוב זאת כך:
alias gosum='cd ~/Documents'
מחיקת כינויים
כדי למחוק כינוי אשתמש בפקודה unalias
ושם הכינוי. לדוגמה הכינוי gosum
:
unalias gosum
דוגמאות לשימוש עם כינויי פקודות
להלן אפרט מספר רעיונות שניתן ליישם באמצעות כינויי פקודות: כינויים לפקודות פשוטות, כינוי אחד שכולל מספר פקודות, קריאה לסקריפט, וכינוי לכינויים.
פקודות פשוטות
כמו שהדגמתי למעלה, גם פקודות פשוטות ניתן להכניס לכינוי קצר. זה יכול להיות ממש יעיל אם למשל אני צריך לקרוא קובץ בתדירות גבוהה, אני יכול ליצור כינוי לפקודה שתפתח את קורא הקבצים cat
עם הקובץ המדובר. לדוגמה:
alias cm='cat ~/my_file'
כאשר cm
הוא קיצור של cat ו- my_file.
הערה!
כשיוצרים כינוי כדאי לשים לב לשני דברים:
- הכינוי שבחרתם הוא לא פקודה קיימת,
- הכינוי יהיה קליט וזכור לכם.
או אם אני זקוק לערוך את הקובץ בתדירות גבוהה - אכתוב כינוי שיפתח אותו בעורך הטקסט nano
:
alias nf='nano ~/file'
שוב פעם אדגיש: יש לכתוב את הנתיב המוחלט של הקובץ, על מנת שבכל מקום שבו תעמדו תוכלו להריץ את הכינוי.
כינוי אחד עבור שני פקודות
ישנם פקודות אשר הולכות בזוגות, למשל: sudo apt update
sudo apt upgrade
. היה נחמד אם היינו יכולים לקצר אותם לפקודה אחת… אז בעזרת כינוי נוכל להרגיש ש”כתבנו פקודה חדשה ללינוקס” 🤓.
אז בדוגמה של עדכון חבילות נוכל להשתמש באופרטור &&
על מנת ליצור שרשרת פקודות עם הכינוי updg
(קיצור של update - upgrade):
alias updg='sudo apt update && sudo apt upgrade'
כעת נוכל להריץ את הפקודה updg
וללכת להכין קפה ☕ בתקווה שהעדכונים ייקחו הרבה זמן…
כינוי לסקריפט
יש לי סקריפט שאני מפעיל בכל יום על מנת לבצע משימות שגרתיות מעצבנות. אבל עדיין אני נאלץ לכתוב את הנתיב המלא של הסקריפט או לעבור אל הספרייה שבה מאוחסן הסקריפט. וזה די מאבד את הטעם של סקריפט, כי אם אתה עדיין נאלץ “ללכלך את הידיים” אז בשביל מה כתבת סקריפט? אז נוכל לכתוב את הנתיב המלא לסקריפט בכינוי.
לדוגמה, הסקריפט שלי נמצא בספריית Scripts/my_script.sh/~
אוכל לכתוב אותו אל כינוי בצורה הזאת:
alias runs='~/Scripts/my_script.sh'
כעת בכל זמן, ובכל ספרייה שאעבוד בה אוכל להפעיל את הסקריפט באמצעות הפקודה runs
. זה סופר שימושי, אני משתמש בזה מדי יום.
כינוי לכינויים
כן! ניתן לעשות כינוי לכינוי. במקרה ויש לנו שני משימות יומיומיות שיצרנו להם כינוי לכל אחד, למשל אם יש לנו כינוי לקריאת לוג של עדכונים, ועוד כינוי של הרצת שדרוגים. כי לפעמים אני רוצה רק לקרוא את הלוגים ולפעמים רק להריץ. אנו יכולים לאחד את שניהם לכינוי אחד כך שהלוגים ייקראו ומיד לאחר מכן העדכונים יותקנו.
האופן שכותבים כינוי לכינויים דומה לכתיבת כינוי רגיל:
alias crup='cupd && upg'
כאשר הכינוי cupd
הוא לפקודה cat
לקריאת העדכונים, והכינוי upg
זה הפקודה upgrade
, והכינוי לכינוי הוא קיצור של cat run update upgrade
.
לסיכום
כינויי פקודות הן כלי מושלם לקסטם את הפקודות ושגרת העבודה בלינוקס. החל מקיצור של פקודות ארוכות, כינויים לפקודות פשוטות, שני פקודות בכינוי אחד, ‘פקודה’ עבור הרצת סקריפט, ואפילו כינויים לכינויים.