נעים להכיר: שורת הפקודה

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

1. זוהי ה Shell שלכם

התוכנית שמציגה את שורת הפקודה נקראת Shell או מעטפת. ניתן להפעיל תוכנית זו מתוך חלון במערכת הלינוקס שלכם או בהתחברות למחשב מרוחק. העבודה עם ה Shell מורכבת מהקלדת פקודות לשורת הפקודה ושליחת כל פקודה לביצוע באמצעות לחיצה על מקש Enter.

ננסה כמה פקודות פשוטות. הקלידו לחלון ה Shell את הפקודות הבאות אצלכם על המכונה או במכונת התרגול כאן בעמוד. סה״כ יש לנו 4 פקודות ב-4 שורות נפרדות, ובסיום הקלדת כל פקודה יש ללחוץ Enter כדי להריץ.

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

השורות שאינן מתחילות ב-$ מייצגות פלט של פקודה, ושורות שמתחילות בסימן # מייצגות הערה שמסבירה מה אנו מבצעים.

$ echo Hello Unix
$ echo  It\'s a Unix system! I know this!
$ echo $0
$ date
$ cal

2. פרמטרים ומתגים

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

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

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

$ cal 2016
$ cal 01 2016

ותוכלו לראות את היכולות של הפקודה להדפיס לוח של שנה מלאה או רק חודש מסוים.

בחלק מהפקודות תראו פרמטרים שמתחילים בסימן - (מקף). פרמטר שמתחיל בסימן זה נקרא מתג והמתגים ביוניקס מחולקים לשני סוגים: מתגים המקבלים פרמטרים ומתגים שאינם מקבלים פרמטרים.

הפקודה cal תדפיס בהפעלה רגילה לוח שנה של החודש הנוכחי. בהפעלה עם המתג y היא תדפיס לוח שנה של השנה הנוכחית:

$ cal -y

המתג y נקרא מתג ללא פרמטרים. הופעה (או היעדר) של מתג זה בשורת הפקודה קובעת את ההתנהגות.

הפקודה cal יודעת לקבל חודש ושנה ולהדפיס לוח שנה של החודש שביקשתם, אבל מה אם אתם מתעצלים להקליד את השנה? הפעלת הפקודה:

$ cal -m 07

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

3. קבלת עזרה

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

כדי להפעיל עמוד עזרה נשתמש בפקודה man ונעביר כפרמטר את שם הפקודה עבורה נרצה לקבל עזרה. הפקודה הבאה מציגה את עמוד העזרה על הפקודה cal:

$ man cal

בתוך עמוד man יש מספר קיצורי מקשים שכדאי להכיר: q - יוצא מעמוד העזרה וחוזר לשורת הפקודה / - מחפש מילה או משפט בעמוד העזרה n - עובר לתוצאת החיפוש הבאה N - חוזר לתוצאת החיפוש הקודמת h - מציג מסך עזרה על קיצורי המקשים במסך העזרה

תוכנית העזרה משתמשת בתוכנית בשם less כדי להציג את תוכן העזרה על כל פקודה. התוכנית less עצמה משמשת להצגת תוכן של קובץ ואפשר להשתמש בה ישירות. נסו את זה:

$ less /etc/shells

הפקודה מציגה את תוכן הקובץ /etc/shells בו תמצאו רשימה של כל תוכניות המעטפת המותקנות אצלכם על המכונה.

4. תוכניות מעטפת נוספות

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

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

$ cat /etc/shells

הפקודה הבאה מציגה את ה Shell הנוכחי בו אתם נמצאים:

$ echo $0

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

$ echo $SHELL

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

$ tcsh

ליציאה ממעטפת וחזרה למעטפת שהפעילה אותה יש לכתוב:

$ exit

כל הדוגמאות בקורס הזה יוצגו במעטפת bash אלא אם מצוין אחרת, ולקראת סוף הקורס נלמד כיצד להתקין תוכניות מעטפת נוספות.

5. תקציר הפקודות שראינו בפרק

# get help on a command with man, for example
$ man cal

# print a calendar with cal
$ cal 2016
$ cal 01 2016

# print some text on screen
$ echo hello world

# show the contents of the file /etc/shells
$ less /etc/shells


תקציר הפקודות שהוצגו בפרק:

# get help on a command with man, for example
$ man cal

# print a calendar with cal
$ cal 2016
$ cal 01 2016

# print some text on screen
$ echo hello world

# show the contents of the file /etc/shells
$ less /etc/shells

 

קיצורי מקלדת עבור דף man:

שורה למעלה / שורה למטה: חצים
לדף הבא: כפתור רווח
לדף הקודם: כפתור u
חיפוש מילה: לחיצה על / ולאחריו המילה שרוצים לחפש ולאחריה Enter
יציאה מדף man: לחיצה על q