קיצורים ב Bash

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

 

 vi ~/.bashrc

ובסופו להוסיף (דוגמא בלבד):

alias starcraft="wine /media/data/games/Starcraft/StarCraft.exe"
alias vi="vim"
alias ll="ls -l"
alias lll="ls -hl"

שימו לב למשהו חשוב – אין צורך להוסיף את האינפורמציה של הוספת פרמטרים נוספים, אפשר לשים אותם והם יתווספו בסוף השורה הנ"ל כמו:

lll ~/

שבעצם במערכת מזוהה כ

ls -hl ~/

הערה: יש לזכור שזה לא יפעל עד שלא תתחבר מחדש לbash.

הבעיה שלי עם הדרך הזו היא שזה לא עובד במערכת מבוזרת או תחת cron. בעצם המערכת לא מפעילה bash ברגע שהיא מפעילה cron או משהו שמגיע בssh ולכן לא תזהה את הפעולות שכתובות תחת alias.

אני פתרתי את זה בצורה הבאה:
ברוב המערכות המבוזרות יש nfs שרוב המכונות (או כל המכונות) מקושרות אליו, שם ניתן ליצור ספריית סקריפטים. כל פקודה שקיימת בalias או שאתם רוצים שיהיה אפשר להפעיל פשוט יוצרים קובץ טקסט עם הפקודה ושמים אותו בספרייה, לדוגמא:

cat > /nfs/scripts/lll #!/bin/bash
ls -lh $@

יש לשים לב ל @$ שחשוב מאד כיוון שהוא מכיל את כל הפרמטרים שקיבלת מהטרמינל (כפי שרשמתי מקודם בalias לא צריך את זה).
לאחר מכן צריך להוסיף אפשרות הפעלה לקובץ:

chmod +x /nfs/scripts

ובסוף יש להוסיף את הספרייה לרשימת הספריות ששם המערכת מחפשת קבצי הפעלה:

echo "PATH=$PATH:/nfs/scripts/" >> /etc/profile

עכשיו כאשר תפעילו את הפקודות דרך ssh או cron הפקודות יזוהו.

רשומה זו פורסמה בקטגוריה bash, לינוקס. אפשר להגיע ישירות לרשומה זו עם קישור ישיר.

3 תגובות על קיצורים ב Bash

  1. מאת jim

    אוף, חשבתי שהכוונה היא לציטוטים מצחיקים מ bash.org
    :(

  2. מאת tipid1

    תודה על המדריך
    אשמח להסבר מה הכוונה למערכות מבוזרות

    • מאת goatl

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

להגיב

Fill in your details below or click an icon to log in:

Gravatar
WordPress.com Logo

Please log in to WordPress.com to post a comment to your blog.

Twitter picture

אתה מגיב באמצעות חשבון Twitter שלך. Log Out / לשמור )

Facebook photo

אתה מגיב באמצעות חשבון Facebook שלך. Log Out / לשמור )

Connecting to %s