You are on page 1of 4

‫‪ unix‬למתחילים‬

‫ממקלדתה של גליה‬

‫הקדמה‪ unix :‬היא מערכת ההפעלה (כמו ש‪ windows‬מערכת הפעלה) שעליה נעבוד בקורס‬
‫"מחשבים לפיזיקאים"‪ .‬אנחנו לא נלמד את נבכי ה‪ , unix‬אבל אנחנו כן נכתוב מעליו תוכנות ב‪-‬‬
‫‪ ,C‬כך שאנחנו צריכים לדעת להסתדר איתו‪.‬‬

‫הערה‪ :‬בכמה מקומות יהיו התייחסויות למערכת ההפעלה חלונות ‪ .‬כדי להסיר ספק‪ ,‬רוב‬
‫הדברים אליהם נתייחס היו במקור ביוניקס‪ ,‬ובהשראת יוניקס נכנסו לחלונות‪.‬‬

‫הערה נוספת‪ :‬במדריכים אחרים‪ ,‬מסמנים את שורת הקלט ב‪ %-‬או ב‪ . #-‬אם הם ירצו לומר לכם‬
‫לכתוב פקודה בשם ‪ , hello‬הם יכתבו‪ . hello % :‬את התו הזה לא צריך לכתוב‪ .‬מסמך זה לא‬
‫יכיל אותו‪ ,‬כדי למנוע בלבול‪.‬‬

‫איך נכנס ליוניקס? באוניברסיטה יש את ‪ ,exceed‬שיוסבר בסוף (חלקית)‪ .‬בבית יש את הכתובת‬


‫הזו ‪ . http://gate.tau.ac.il/ssh/sshx.html (ctrl + click) :‬אי אפשר להריץ שם את ‪xemacs‬‬
‫(תוכנת העריכה עליה נעבוד) אבל כן אפשר לשחק משם ביוניקס‪ .‬נכנסים‪ ,‬מכניסים סיסמה‪,‬‬
‫וכותבים ‪( rlogin zoot‬מכניסים שוב את הסיסמה ואתם בפנים)‪.‬‬

‫מסתובבים ביוניקס‬

‫כמו שבדוס (או בחלונות) יש כוננים וספריות‪ ,‬גם כאן יש ספריות (אין כוננים‪ .‬יש משהו דומה‪,‬‬
‫אבל זה ממש לא משנה לנו)‪ .‬הספריה הראשית היא ‪( /‬סלאש‪ .‬מקביל ל ‪ ,)\:c‬ותחתיה יושבות תתי‬
‫ספריות‪.‬‬
‫בספריה הראשית לא נשתמש‪ ,‬אלא בספריות הבית האישיות שלנו‪ .‬לשם הפישוט‪ ,‬נקרא לספריית‬
‫הבית שלנו ‪( /home/students/myname/‬כלומר‪ :‬מסלאש‪ ,‬הספריה הראשית‪ ,‬נכנסים ל ‪.home‬‬
‫משם ל ‪ students‬ומשם ל‪ – myname‬הספריה שלנו‪ ).‬כפי שניתן לראות‪ ,‬גם כאן (כמו בכל מערכת‬
‫הפעלה אחרת) ישנו מבנה היררכי של ספריות ותתי ספריות ‪ myname :‬יושבת תחת ‪,students‬‬
‫כלומר אי אפשר להכנס אליה בלי לזכור שהיא נמצאת תחת ‪ .students‬ממש כמו בחלונות‪ .‬התו‬
‫המפריד בין הספריות הוא " ‪ ( " /‬לא התו " \ " ! )‪.‬‬
‫אין צורך לזכור את שם הספריה האישית – בתור משתמשים רגילים‪ ,‬מוגדרת לנו ספריית הבית‪,‬‬
‫וכשאנחנו נכנסים למערכת (מכניסים שם משתמש וסיסמה) אנחנו נכנסים אליה אוטומטית‪.‬‬
‫שם אחר ל"ספריית הבית שלי" הוא ~ ‪ .‬כלומר‪ ,‬אם נבקש מהיוניקס להגיע לספריית ~ ‪ ,‬הוא‬
‫יביא אותנו ל ‪ . home/students/myname/‬אם נבקש ממנו למחוק את ~‪ , del.txt/‬הוא ימחק את‬
‫‪ . home/students/myname/del.txt/‬ממש כאילו כתבנו את הטקסט המלא במקום ~ ‪.‬‬

‫דרך אגב ‪ ,‬ליוניקס אכפת מאותיות גדולות ‪ /‬קטנות ( ‪ ,) case sensitive‬אם תבקשו להכנס ל ‪/‬‬
‫‪ - HOME/STUDENTS/MYNAME‬המערכת לא תכיר את הספריה‪ .‬עצה‪ :‬תמיד קראו‬
‫לקבצים באותיות קטנות‪.‬‬

‫פקודות התמצאות‪ ,‬שיטוט וטיפול בקבצים‪ " * "( :‬בסוף שורה פירושו שהפקודה לא חשובה לנו‬
‫כמו האחרות)‬
‫‪ pwd‬ייתן לנו את הספריה בה נעבוד‪.‬‬
‫‪ ls‬ייתן את תוכן הספריה – רשימת קבצים‪.‬‬
‫‪ ls –l‬ייתן רשימה מפורטת של הקבצים‪ ,‬כולל גודל למשל‪( .‬שאר הפרטים לא עקרוניים‪ ,‬מלבד‬
‫הרשאות שיוסברו בהמשך‪ .‬בינתיים‪ ,‬ההרשאות נמצאות ב " ‪ " --rwxrw-r‬שיש בתחילת שורות‬
‫הפלט של ‪ . ls‬התו הראשון בכל שורה‪ ,‬אגב‪ ,‬הוא " ‪ " d‬אם זו ספריה או " – " אם זה לא‪ .‬טריק‬
‫נוח)‪.‬‬
‫‪ ls –F‬יסמן ספריות עם " ‪ " /‬בסוף‪ ,‬וקבצים שאפשר להריץ עם " * " בסוף‪ .‬אפשר גם לכתוב – ‪ls‬‬
‫‪ lF‬כדי לשלב בין השניים‪* .‬‬
‫‪ cd‬ייכנס לספרייה‪.‬‬
‫‪ .. cd‬ירד לספריה הקודמת (מ ‪ home/students/myname/‬יגיע ל ‪ . ) home/students/‬בעצם‪.. " ,‬‬
‫" זה שם נרדף ל "ספריית האב שלי"‪.‬‬
‫‪ : mv – move‬מעביר קבצים לספרייה אחרת ( ‪ mv myfile newdir‬יעביר את הקובץ ‪myfile‬‬
‫לספרייה ‪ )newdir‬או משנה שם קובץ (‪.)mv badname goodname‬‬
‫‪ :cp – copy‬מעתיק‪ ,‬בצורה דומה ל‪( . mv‬אבל בסופו של דבר הקובץ המקורי נשאר)‬
‫‪ – rm‬מוחק קובץ ( ‪) rm badfile‬‬
‫‪ – rmdir‬מוחק ספרייה‪.‬‬
‫‪ – mkdir‬יוצר ספרייה‬
‫‪ – cat filename‬ישפוך למסך את תוכן הקובץ ‪* . filename‬‬
‫‪ – more filename‬כמו ‪ ,cat‬אבל אם יש יותר מדי טקסט‪ ,‬הוא יחכה שתקראו ורק אז ימשיך‪* .‬‬
‫‪ – man command‬ייתן לנו דף הוראות (‪ )manual‬מפורט על פקודה כלשהי‪( .‬למשל‪* )man pwd ,‬‬
‫‪ – find . –name myfile‬יחפש בספריה הנוכחית ( " ‪ " .‬מסמל ספרייה נוכחית ) את הקובץ‬
‫‪ .myfile‬הפקודה ‪ find ~/mydir –name myfile‬גם עובדת‪ ,‬מחפשת בספרייה ‪/‬‬
‫‪ . home/students/myname/mydir‬זוכרים מה זה " ~ " ? ) *‬
‫‪ : command /.‬אם לא הצלחתם להריץ תוכנית שכתבתם‪ ,‬כתבו לפני ההרצה (כשאתם בספריה‬
‫הנכונה) ‪( /.‬נקודה סלאש)‪.‬‬

‫עריכה‪:‬‬
‫אנחנו עורכים קבצים עם תוכנה בשם ‪ . xemacs‬כדי להתחיל אותה‪ ,‬כתבו ‪.xemacs‬‬
‫כשמריצים ‪ ,emacs‬החלון ממנו הרצנו "עסוק" ‪ ,‬מחכה שהפקודה האחרונה שכתבנו ("‪)"xemacs‬‬
‫תסיים לרוץ (כלומר‪ ,‬מחכה שנסגור את ‪ .)emacs‬חלונות טקסט לא עושים שני דברים בבת אחת‬
‫בהתנדבות‪.‬‬
‫אם בכ"ז נרצה לחזור לחלון (בלי לפתוח חדש) – נקיש ‪ , ctrl+z‬ואז התוכנה "תרוץ ברקע"‪.‬‬
‫מבחינתנו‪ ,‬נקבל שורת פקודה בלי לסגור את ‪( .emacs‬בכיתה הוסיפו על ‪ – fg‬שמחזיר את המצב‪,‬‬
‫ועל ‪ – bg‬ההפך ממנו‪ .‬לדעתי הפקודות האלו מיותרות לנו)‪.‬‬
‫כדי לא להסתבך עם זה מלכתחילה‪ ,‬אפשר להריץ את התוכנה כך ‪ - & xemacs :‬ואז היא תרוץ‬
‫ברקע מהרגע הראשון‪.‬‬

‫על ‪ emacs‬עצמה – בקרוב‪.‬‬

‫הרשאות ‪:‬‬
‫עדיין לא התייחסנו בכיתה להרשאות‪ ,‬אבל כנראה שנתייחס מתי שהוא‪.‬‬
‫בעולם היוניקס‪ ,‬ישנם שלושה סוגי הרשאות (רלוונטיים) ‪:‬‬
‫‪r : read‬‬
‫‪w : write‬‬
‫‪. x : execute‬‬

‫ישנם גם שלושה סוגי משתמשים‪ ,‬מתוכם רק הראשון משנה לנו‪:‬‬


‫‪( user‬אני)‬
‫‪( group‬קבוצה‪ ,‬למשל תלמידי פיזיקה‪ .‬עניין של מנהלי היוניקס‪ ,‬שלא משנה לנו)‪.‬‬
‫‪( other‬כל השאר)‬

‫בדרך כלל נרצה לתת לנו הרשאות‪ ,‬ולקבוצה ולעולם רק הרשאות קריאה‪.‬‬
‫ההרשאות על קובץ או ספרייה באות בשורה של ‪ 9‬אותיות ‪ 3 :‬האותיות הראשונות הן ההרשאות‬
‫שלנו‪ ,‬וה‪ 6-‬הבאות הן של הקבוצה והעולם‪ .‬כך‪ ,‬אם לנו יש את כל ההרשאות ולאחרים רק‬
‫הרשאות קריאה‪ ,‬ההרשאות ייראו כך‪( ------rwx :‬הסדר הוא תמיד קריאה‪-‬כתיבה‪-‬הפעלה)‪.‬‬
‫רואים אותן בהתחלת כל שורה בפלט של ‪. ls –l‬‬
‫משנים הרשאות עם )‪ . chmod (change [permission] mode‬ישנן כמה דרכים להשתמש‬
‫בפקודה‪:‬‬
‫‪ chmod +x myfile‬יוסיף לכולם הרשאות ‪ x‬על הקובץ ‪.myfile‬‬
‫‪ chmod u +x myfile‬יוסיף רק לנו (‪ )user‬הרשאות ‪ x‬על ‪( .myfile‬כמו ‪ ,u‬יש גם ‪ g‬ו ‪ o‬ל – ‪group‬‬
‫ו ‪ other‬בהתאמה‪ .‬שוב‪ ,‬הם לא משנים לנו)‪.‬‬
‫‪( – chmod 744 myfile‬הדרך המועדפת עליי –סיכוי נמוך יותר לשגיאות)– הסבר קטן‪:‬‬
‫לכל סוג של הרשאה יש מספר מיוחד‪ ,‬שהוא חזקה של ‪ : 2‬המספר של ‪ read‬הוא ‪ ; 4‬של ‪write‬‬
‫הוא ‪ ; 2‬של ‪ execute‬הוא ‪ .1‬אני רוצה לקבל רק הרשאות קריאה וכתיבה? אני וודאי מתכוונת ל‬
‫‪ .6=4+2‬בפקודה שכתבתי‪ 744 ,‬פירושו ‪ 7‬לנו (קריאה ‪ +‬כתיבה ‪ +‬הפעלה = ‪, )7 = 1 + 2 + 4‬‬
‫וקריאה לקבוצה ולעולם (קריאה = ‪ 744 . )4‬הן ההרשאות הפופולריות ביותר‪.‬‬
‫שימו לב‪ :‬אם אין לכם הרשאות על ספרייה‪ ,‬ויש לכם הרשאות לקובץ בספרייה‪ ,‬עדיין לא תוכלו‬
‫לפתוח אותו‪.‬‬

‫קצת על ממשקים‪( :‬דברים שלא חייבים לדעת)‬


‫ממשק הוא הצורה בה אנחנו מתקשרים עם תוכנה או מערכת ההפעלה‪ .‬למשל‪ ,‬לחלונות יש‬
‫ממשק גרפי עם כפתורים יפים שאפשר ללחוץ עליהם ולבצע פעולות‪ .‬לדוס יש ממשק טקסטואלי‬
‫= מבוסס טקסט‪ ,‬בו אנחנו כותבים פקודות ורואים אותיות כתגובה‪.‬‬
‫הממשק של יוניקס הוא טקסטואלי‪ .‬יש לנו שורת טקסט‪ ,‬אנחנו כותבים והוא עונה‪ .‬זו שיטה‬
‫יעילה ומהירה‪ ,‬שלא דורשת יותר מדי מהמחשב‪.‬‬
‫ליוניקס יש גם תוכנה שנראית כמו חלונות (באופן מרוחק למדי) בשם ‪ .x-windows‬לא נשתמש‬
‫בה ממש‪ ,‬אבל כל יישום גרפי שנפתח (כמו ‪ )xemacs‬נפתח בזכות ‪ .x-windows‬בד"כ‪ ,‬אם שם של‬
‫תוכנה מתחיל ב‪ ,x-‬זו תוכנה של ‪.x-windows‬‬
‫תפקידו של ‪ exceed‬הוא לתת לנו אפשרות להריץ תוכנות של ‪ x-windows‬על מחשב שאינו‬
‫יוניקס‪ .‬כשאנחנו פותחים חלון פקודות ל‪ ,zoot -‬אז ‪ exceed‬מריץ תוכנת ‪ x-windows‬שפותחת‬
‫חלון טקסט‪ .‬לכן יש לנו תפריטים למעלה גם במסכי הטקסט‪.‬‬
‫(דרך אגב‪ ,‬כמו שהזכרנו קודם‪ ,‬הממשק הבסיסי הוא טקסטואלי‪ .‬לא ראיתי את ‪ ,zoot‬אבל רוב‬
‫הסיכויים הם שכשהוא עולה‪ ,‬רואים מסך טקסט עם פרטי העלייה‪ ,‬ובסוף – כי כך התקינו את‬
‫היוניקס – עולה ה‪ X-‬ועוטף את הטקסט‪ .‬אבל זו כבר הרחבת ידע ברמה מרוחקת משלנו‪)..‬‬

‫תרגילים קטנים כדי להתרגל ל‪:unix‬‬

‫[ אם אין ‪ xemacs‬בנמצא‪ ,‬אפשר להשתמש ב ‪ vi‬במקום‪ :‬נכנסים עם ‪ , vi filename‬ולוחצים על ‪i‬‬


‫‪ .‬כשמסיימים‪ ,‬לוחצים ‪( esc -> :wq‬עם הנקודותיים!) ]‬

‫תרגיל ראשון‪:‬‬
‫‪ .1‬מהי כתובת ספריית הבית שלכם‪ ,‬אילו קבצים יש בה? בדקו אילו מהם קבצים ואילו‬
‫ספריות‪.‬‬
‫‪ .2‬מתחת לספריה הראשית ( ‪ ) /‬יש ספריה בשם ‪ . etc‬יש בה קובץ שמכיל את שמות‬
‫המשתמשים‪ ,‬שם הקובץ הוא ‪ .passwd‬קראו את התוכן שלו ‪( .‬לא‪ ,‬אין שם שורה בשביל‬
‫שם המשתמש שלכם‪ ,‬יש שרת ראשי אחר עם הסיסמה שלכם‪ ,‬למי שהתעניין)‪ .‬למי מותר‬
‫לקרוא את הקובץ?‬
‫חזרו לספריית הבית שלכם ע"י הקשה על ארבעה מקשים בלבד (חוץ מ ‪( . )enter‬בונוס‪ :‬ע"י‬
‫מקש אחד בלבד)‪.‬‬
‫‪ .3‬צרו עותק של אותו קובץ (עם שמות המשתמשים) בתוך ספרייה מתחת לספריית הבית‬
‫שלכם‪ ,‬הנקראת ‪. userlist‬‬
‫‪ .4‬גרמו לכך שאתם תוכלו לקרוא אותו ולכתוב אליו‪ ,‬אבל כל האחרים רק יוכלו לקרוא‬
‫אותו (עבדו על העותק שלכם! בקובץ המקורי ב‪ etc/‬לא תצליחו לגעת)‪.‬‬
‫‪ .5‬בעזרת ‪ , emacs‬החליפו את השורה בקובץ שמתחילה במילה ‪ root‬לשם אחר‪ ,‬כרצונכם‪.‬‬
‫(לידע כללי‪ root ,‬הוא המשתמש החזק ביותר במערכת‪).‬‬
‫‪ .6‬שנו את שם הקובץ ל ‪ , wasspd‬וודאו (עם ‪ )ls‬שהשם השתנה‪.‬‬
‫‪ .7‬מחקו את כל מה שעשיתם עד עכשיו‪.‬‬

‫תרגיל שני‪:‬‬
‫‪ .1‬צרו קובץ חדש בשם ‪ unixrulz‬בספריית הבית שלכם (או בתת ספריה שתצרו‪ ,‬איך שבא‬
‫לכם)‬
‫‪ .2‬הכניסו אליו את הטקסט‪!banner Unix Rules :‬‬
‫‪ .3‬שמרו ואל תצאו‪ .‬חזרו לחלון הקודם והפעילו את הקובץ שיצרתם (רמז‪ :‬קודם צריך ש‬
‫‪ xemacs‬יעבוד ברקע) (אם השתמשתם ב‪ ,vi‬פשוט תשמרו ותצאו)‪.‬‬
‫‪ .4‬לא הצלחתם להפעיל את הקובץ? תנו לעצמכם הרשאות מתאימות‪ .‬הקבוצה ושאר‬
‫העולם‪ ,‬כרגיל‪ ,‬רק יוכלו לקרוא‪.‬‬
‫‪ .5‬מחקו את הקובץ‪.‬‬

‫ולסיום‪ ,‬פיסת מידע קטנה‪ .‬בנוגע לויכוח של חלונות מול יוניקס‪ ,‬והתלונות בקשר לשרתים‪,‬‬
‫שנופלים‪ ,‬מושבתים‪ ,‬איטיים וצריך לאתחל אותם רק בגלל שמזמן לא אתחלנו ‪ ..‬להלן פלט של‬
‫פקודת ‪ uptime‬על ‪: zoot‬‬
‫‪1:09am up 50 days, 6:36, 11 users, load average: 0.73, 0.42, 0.17‬‬
‫= השרת פועל כבר ‪ 50‬ימים רצוף‪ ,‬בלי להתאתחל‪.‬‬
‫מרשים‪ ,‬לא? (וזה קורה הרבה עם יוניקס‪ .‬הסוד‪ :‬בעיקר מערכת הפעלה יציבה וחומרה טובה)‪.‬‬

You might also like