Alias (פקודה)

alias היא פקודה נפוצה בממשקי שורת פקודה שונים (shell-ים), המאפשרת החלפה של מילה במחרוזת אחרת. הפקודה משמשת בעיקר לקיצורי פקודת מערכת, או להוספת ארגומנטים של ברירת מחדל לפקודות בשימוש תדיר. הפקודה <code>alias</code> זמינה במערכות יוניקס, דמויות יוניקס, לינוקס, Windows PowerShell ו-UEFI. פונקציונליות דומה למערכות MS-DOS ו-Windows קיימת בעזרת כלי DOSKey.

הפקודה alias מחזיקה מעמד במשך כל הפעלה רציפה של ה-shell. לעיתים קרובות מגדירים alias-ים ("כינויים") בעזרת קובץ rc של ה-shell (כגון <code>.bashrc</code> ) כך שהם יהיו זמינים עם תחילת הפעלת ה-shell לאורך כל השימוש. פקודות ה-alias יכולות להיכתב בקובץ ה-rc ישירות או להרשם בקובץ נפרד בעזרת הפקודה source.

== היסטוריה ==
בהתחלה ה-alias-ים הופיעו ב-Unix ב-csh ומשם המשיכו למעטפות נוספות כגון tcsh ו- bash. ב-csh הם הוגבלו לשורה אחת, מה שאפשר יצירת קיצורים פשוטים לפקודות לא מורכבות. גרסאות ישנות יותר של מעטפת Bourne לא הציעו alias, אבל במקום זה הן סיפקו יכולת כתיבת פונקציות שאפשרו גם העברת פרמטרים בנוסף לקיצור פקודות מורכבות. רק בגרסאות מתקדמות, כמו bash או ksh, נכנסה תמיכה גם בפונקציות וגם ב-alias.

== שימוש ==
=== יצירת כינויים (alias-ים) ===
==== מעטפות יוניקס נפוצות ====
ניתן ליצור כינויים לא קבועים על ידי פקודת alias. התחביר הוא:<syntaxhighlight lang="sh">
alias gc='git commit'
</syntaxhighlight>

==== מעטפת C (בקיצור - csh) ====
התחביר המתאים במעטפת C או tcsh הוא:<syntaxhighlight lang="csh">
alias gc "git commit"
</syntaxhighlight>משמעות הכינוי היא שכאשר הפקודה <code>gc</code> תיקרא במעטפת, היא תוחלף ב- <code>git commit</code> והפקודה הזו תבוצע במקום.

==== Windows PowerShell ====
כדי ליצור כינוי חדש ב-Windows PowerShell, ניתן להשתמש ב-new-alias:<syntaxhighlight lang="ps1">
new-alias ci copy-item
</syntaxhighlight>זה יוצר כינוי חדש בשם <code>ci</code> שיוחלף ב-<code>copy-item</code> בעת ביצוע.

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

=== הצגת הכינויים הקיימים ===
כדי להציג כינויים מוגדרים ניתן להשתמש בפקודות הבאות:<syntaxhighlight lang="bash">
alias # Used without arguments; displays a list of all current aliases
alias -p # List aliases in a way that allows re-creation by sourcing the output; not available in 4DOS/4NT and PowerShell
alias myAlias # Displays the command for a defined alias
</syntaxhighlight>

=== התעלמות מכינויים ===
במעטפות יוניקס, ניתן להתעלם מכינוי על ידי שימוש בגרש סביב הכינוי בעת השימוש. לדוגמה, אם יש את ההגדרה הבאה:<syntaxhighlight lang="sh">
alias ls='ls -la'
</syntaxhighlight>ניתן להתעלם מההגדרה ולבצע את הפקודה <code>ls</code> כפי שהוגדרה במקור, על ידי התחביר הבא:<syntaxhighlight lang="sh">
'ls'
</syntaxhighlight>
=== שינוי כינויים ===
ב-Windows PowerShell אפשר להשתמש ב-set-alias כדי לשנות כינוי קיים:<syntaxhighlight lang="ps1">
set-alias ci cls
</syntaxhighlight>לאחר הפקודה הזו, <code>ci</code> יצביע כעת על הפקודה <code>cls</code>.

=== מחיקת כינויים ===
במעטפות יוניקס ניתן להסיר כינויים על ידי ביצוע הפקודה <code>unalias</code> :<syntaxhighlight lang="bash">
unalias copy # Removes the copy alias
unalias -a # The -a switch will remove all aliases; not available in 4DOS/4NT
unalias * # 4DOS/4NT equivalent of `unalias -a` - wildcards are supported
</syntaxhighlight>ב-Windows PowerShell, ניתן להסיר את הכינוי באמצעות <code>remove-item</code>:<syntaxhighlight lang="powershell">
remove-item alias:ci # Removes the ci alias
</syntaxhighlight>

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

התחביר הרגיל על מנת לבצע את זה הוא הגדרת הכינוי הראשון עם תו רווח בסוף. לדוגמה, שימוש בשני הכינויים:<syntaxhighlight lang="bash">
alias list='ls ' # note the trailing space to trigger chaining
alias long='-Flas' # options to ls for a long listing
</syntaxhighlight>מאפשר:<syntaxhighlight lang="bash">
list long myfile # becomes "ls -Flas myfile" when run
</syntaxhighlight>

== קישורים חיצוניים ==
* [https://www.man7.org/linux/man-pages/man1/alias.1p.html man alias] - ספר ההוראות של הפקודה

קטגוריה:פקודות יוניקס
קטגוריה:פקודות מחשב