1 / 57

ברוכים הבאים למת"ם

ברוכים הבאים למת"ם. מבוא לתכנות מערכות - 234122. הוכן ע"י עומר סטרולוביץ מבוסס על עבודתם של ואדים אייזנברג ולי-טל משיח. תרגול מס' 1. מנהלה התחברות ל- t2 עבודה בסביבת UNIX. מטרות הקורס. לימוד שיטות וכלים עבור פיתוח תוכנה גדולה התנסות בכתיבת תוכנה ובדיקתה

alijah
Download Presentation

ברוכים הבאים למת"ם

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ברוכים הבאים למת"ם מבוא לתכנות מערכות - 234122 הוכן ע"י עומר סטרולוביץ מבוסס על עבודתם של ואדים אייזנברג ולי-טל משיח

  2. תרגול מס' 1 מנהלה התחברות ל-t2 עבודה בסביבת UNIX

  3. מטרות הקורס • לימוד שיטות וכלים עבור פיתוח תוכנה גדולה • התנסות בכתיבת תוכנה ובדיקתה • המשך לימוד עקרונות התכנות ממבוא למדעי המחשב • לימוד תכונות מתקדמות של שפות התכנות C/C++ מבוא לתכנות מערכות - 234122

  4. מנהלה • אתר הבית: • http://webcourse.cs.technion.ac.il/234122 • האתר מכיל מידע רב וחשוב המתעדכן במהלך הסמסטר. • קבלת e-mail מהאתר: • ודאו שאתם מקבלים עדכונים מהאתר ע"י כניסה ל-http://grades.cs.technion.ac.il מעבר ללשונית Settings/Auto update ובדיקה שתחת Announcements Update מסומן e-mail. מבוא לתכנות מערכות - 234122

  5. מבנה הציון הסופי • 70% מבחן סופי • 30% תרגילי הבית - תקף • 4 תרגילי בית על נושאי הקורס השונים (+ תרגיל הכנה ללא ציון) • התרגילים מורכבים משאלות יבשות (כתיבת פתרון) ורטובות (כתיבת קוד, הרצתו ובדיקתו) • חובה לעבור את המבחן הסופי • ציון ש"ב לא ייחשב במקרה של ציון קטן מ-55 במבחן מבוא לתכנות מערכות - 234122

  6. תרגילי בית • תרגילי הבית בקורס דורשים הרבה עבודה - מומלץ לעשותם בזוגות • ניתן למצוא שותף תחת לשונית Find a partner באתר הקורס. • בכל סמסטר נעזבים מספר אנשים ע"י השותף שלהם. • שימרו על קשר טוב עם השותף – זהו חלק מתהליך פיתוח התוכנה. • סגל הקורס לא יטפל בבעיות בין שותפים ולא ינתנו הקלות בהקשר זה • אין הארכות – עמידה במסגרת זמנים היא חלק חשוב מתהליך פיתוח התוכנה • הארכות על בסיס אישי ינתנו רק עבור מקרים קיצוניים או שירות מילואים פעיל מבוא לתכנות מערכות - 234122

  7. תרגילי הבית • שימו לב: תרגיל מוכן הוא תרגיל שנבדק ואכן עובד • הקפידו לבדוק את נכונות הקוד שלכם לפני ההגשה – נקודות אינן ניתנות לפי זמן העבודה על התרגיל אלא לפי כמות הבדיקות שבהן הוא עומד • גיבוי: הקפידו לגבות באופן שוטף את הקבצים לא ינתנו הקלות לסטודנטים שאיבדו את עבודתם בגלל הזנחה מבוא לתכנות מערכות - 234122

  8. תרגילי הבית • הגשה: • עקבו במדויק אחרי הוראות ההגשה לכל תרגיל המצוינות בתרגיל. הן מפרטות מה יש להגיש מודפס וכיצד יש להגיש את הקבצים דרך האתר. • אי ציות להוראות אלו יגרור הורדת ציון • שמרו את מספר האישור עבור ההגשה האלקטרונית • מומלץ לשמור עותק של הקבצים על ספרית הבית ב-t2ולא לגעת בו למקרה של טעויות עם ההגשה האלקטרונית מבוא לתכנות מערכות - 234122

  9. תרגילי בית - העתקות • בקורס יופעלו שיטות מתקדמות למציאה אוטומטית של העתקות • תרגילי הבית ייבדקו גם בבדיקה ידנית למציאת העתקות • מי שייתפס כמעתיק או כמי שנתן את תרגיל הבית שלו להעתיקיהיה צפוי לעונשים חמורים • כולל שאלות יבשות מבוא לתכנות מערכות - 234122

  10. נושאי התרגולים • תרגול 1: עבודה בסיסית בסביבת UNIX • תרגולים 2-5: תכונות מתקדמות של C ו-Abstract Data Types • תרגולים 6-7: עבודה ב-UNIX וכתיבת תסריטים • תרגולים 8-12: C++ • תרגולים 13-14: חזרה ושאלות ממבחנים מבוא לתכנות מערכות - 234122

  11. התחברות ל-t2 עבודה על השרת אפשרויות התחברות עבודה במחשב אישי מבוא לתכנות מערכות - 234122

  12. התחברות ל-t2 • תרגילי הבית יבדקו ע"י הידור והרצת הקוד המוגש על שרת ה-t2 • כתובת השרת היא t2.technion.ac.il • לשם כך עליכם לדעת כיצד ניתן להתחבר אל השרת ולעבוד עליו • תכנית שעובדת על המחשב הביתי שלכם אינה בהכרח נכונה • עליכם לוודא את נכונותה בעזרת הידורה והרצתה על השרת • ב-t2קיימת מערכת הפעלה מסוג UNIX ולכן עליכם לוודא שהתכנית שלכם מתנהגת בצורה נכונה בסביבה זו מבוא לתכנות מערכות - 234122

  13. דרכי עבודה • הדרכים הבאות הן הדרכים המומלצותלעבוד בקורס • ניתן לעבוד גם בכל צורה אחרת, כל עוד התוצאה הסופית עובדת כנדרש • עם זאת, סגל הקורס לא יעזור בבעיות הצצות מעבודה בכלים אחרים • כדי לכתוב את התוכנה כך שתעבוד נכון על ה-t2 קיימות שתי אפשרויות: • עבודה על השרת - כתיבת הקוד ובדיקתו על השרת לאורך כל הדרך • עבודה על מחשב אישי וביצוע בדיקות על השרת מדי פעם מבוא לתכנות מערכות - 234122

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

  15. אפשרויות התחברות • ניתן להתחבר לשרת t2בשיטות הבאות: • התחברות בעזרת SSH: • עבור מחשבים בסביבת windows יש להוריד את התוכנה מהכתובת הבאה: ftp://ftp.cs.technion.ac.il/pub/ssh-client/sshclient.exe • עבור מחשבים בסביבת לינוקס (או מק( ניתן פשוט להשתמש בפקודה ssh מחלון טרמינל. • התחברות בעזרת Go-Global (עבור Windows): • גלישה לכתובת http://www.technion.ac.il/GG/IPviewer.html • עובד רק עם Internet Explorer מבוא לתכנות מערכות - 234122

  16. עבודה במחשב אישי • עבודה על השרת אינה נוחה בגלל העומס הרב על השרת. • ניתן לעבוד על מחשב בבית או בחווה ולהעביר את הקוד אל ה-t2 • שימו לב שייתכנו הבדלים בין המחשבים ולכן מומלץלבדוק את נכונות הקוד על ה-t2אחת לכמה זמן (ולא רק בסוף העבודה) מבוא לתכנות מערכות - 234122

  17. עבודה במחשב אישי • עבודה ב-Eclipse CDT. • סביבת העבודה המומלצת ע"י צוות הקורס • משתמשת בקומפיילר דומה לזה שב-t2 • ניתנת להרצה על windows או לינוקס • מותקנת במחשבי החווה • עבודה ב-VisualStudio • ניתן להורדה בחינם מ-MSDNAA מבוא לתכנות מערכות - 234122

  18. עבודה במחשב אישי • עבודה במחשבי הלינוקס בחווה (או התקנת לינוקס): • השימוש בלינוקס יכול להקל מאוד על מלאכת הדיבוג מאחר וכמות ההבדלים בין מחשב המריץ לינוקס ל-t2קטנה יותר • התקנת Cygwin: • סביבה המדמה את UNIX עבור מחשבי Windows • מומלצת עבור תרגיל בית 3 מבוא לתכנות מערכות - 234122

  19. מידע נוסף • כדי להקל על השימוש במגוון הכלים הגדול אתר הקורס מכיל מספר מדריכיםהמסבירים את הפרטים הטכניים עבור שימוש בכלים הללו: • מדריך התחברות ל-t2: מפרט את הדרכים השונות לעבודה (כולל התקנת Cygwin) • מדריך עבור Eclipse CDT: מסביר את תהליך ההתקנה ויצירת פרויקט ראשון • המדריכים נמצאים באתר תחת Course Material, Guides. • בנוסף, ייערכו 3 תרגולי עזר אשריתמקדו בהפעלה טכנית של כליםהדרושים בקורס • זמן התרגולים יוכרז בהמשך • שקפי התרגולים זמינים באתר תחתCourse Material, Auxiliary Tutorials מבוא לתכנות מערכות - 234122

  20. עבודה בסביבת UNIX מהי מערכת הפעלה? מערכת הקבצים ב-UNIX עבודה בחלון Shell מבוא לתכנות מערכות - 234122

  21. מהי מערכת הפעלה? • מערכת הפעלה מהווה שכבת ביניים בין החומרה לבין התוכנה • מאפשרת גישה נוחה למחשב עבור משתמשים ומתכנתים • עבור המשתמש: מספקת מנשק נוחלמחשב ושירותים בסיסיים • עבור המתכנת: מספקת מנשקים לניהול זיכרון,קבצים והתקני חומרה נוספים • דוגמאות למערכות הפעלה: • Windows • Ubuntu • OSX • Android • iOS מבוא לתכנות מערכות - 234122

  22. מהי UNIX? • UNIX הינה משפחה של מערכות הפעלה • יתרון מערכות ההפעלה ממשפחה זו הוא בקיומו של סטנדרט נוח עבור השירותים אותן היא מספקת (הקרוי POSIX) • רוב מערכות ההפעלה המוכרות לכם עומדות בסטנדרט של UNIX • המפורסמת ביותר כיום היא Linux • יוצאת הדופן היא כמובן Windows • בפרט - מערכת ההפעלה על שרת ה-t2 עליו נבדקים תרגילי הבית היא Linux. מבוא לתכנות מערכות - 234122

  23. מערכת הקבצים ב-UNIX • מערכת ההפעלה אחראית בין השאר על ארגון הקבצים במחשב • מערכת הקבצים ב-UNIX מורכבת מקבצים ותיקיות – בדומה ל-Windows • קובץהוא אוסף סדור של תווים • תיקיה(Directory) מאפשרת שמירת מספר קבצים ותיקיות נוספות בצורה מסודרת • לכל קובץ או תיקיה יש שם • אין מגבלות על מבנה השם (לא חייבת להיות סיומת) • מקובל ששם קובץ הוא מהצורה <name>.<extension> • למשל test.c עבור קובץ מקור בשפת C • אין ב-UNIX סיומת מיוחדת לקובץ הרצה (כמו exe ב-Windows) • כל קובץ או תיקיה נמצאים בתוך תיקיה כלשהי • מלבד התיקיה הראשית מבוא לתכנות מערכות - 234122

  24. התייחסות לקבצים • כדי להתייחס לקובץ יש להשתמש בשמו • התיקיה הראשית נקראת "/" • ניתן להתייחס לקובץ ע"י שמו המוחלט: • /usr/mtm/exercise1/main.c • התו "/" משמש כסימן מפריד להגדרת מסלול במערכת הקבצים • בכל חיבור ובכל זמן קיימת תיקיה המוגדרת כתיקיה הנוכחית • ניתן להתייחס לקובץ על ידי שם יחסי מהתיקיה הנוכחית: • main.cאם התיקיה הנוכחית היא /usr/mtm/exercise1 • exercise1/main.c אם התיקיה הנוכחית היא /usr/mtm מבוא לתכנות מערכות - 234122

  25. ריבוי משתמשים • UNIX היא מערכת הפעלה מרובת משתמשים • לכל משתמש במערכת קיימת תיקית בית • בהתחברות למערכת התיקיה הנוכחית היא תיקית הבית של המשתמש מבוא לתכנות מערכות - 234122

  26. קיצורים • בנוסף מוגדרים הקיצורים הבאים עבור שמות קבצים: • .- נקודה אחת מייצגת את התיקיה הנוכחית • ..- שתי נקודות מייצגות את תיקיית האב • התיקיה בה נמצאת התיקיה הנוכחית • ~- מייצגת קיצור לתיקיית הבית של המשתמש • ~user- מייצגת קיצור לתיקיית הבית של המשתמש user • למשל ~mtm היא תיקית הבית של הקורס בשרת t2 • ניתן להשתמש בקיצור * כדי להתייחס למספר קבצים בבת אחת ע"י שימוש בתבניות, למשל: • *מתייחס לכל הקבצים • *.txtיותאם לכל הקבצים ששמם מסתיים ב-".txt" מבוא לתכנות מערכות - 234122

  27. דוגמה • נתון מבנה של מערכת קבצים לדוגמה ב-UNIX: • למה מתייחסות המחרוזות הבאות? /usr/uri/progs/Hello.c /usr/uri/progs/Matam progs ~/progs ./hw1 ../hw2 ~ari/progs ~mtm/public/1011a/ex1 ~/progs/* / (root) tmp bin usr ari uri progs progs Hello.c Matam hw1 hw2 מבוא לתכנות מערכות - 234122

  28. Shell • Shell (קליפה) הוא כינוי לתוכנה המקשרת בין המשתמש לבין גרעין מערכת ההפעלה • בדרך כלל המונח בשימוש עבור shell טקסטואלי • עבודת ה-Shell מתבצעת על ידי קבלת פקודה מהמשתמש, ביצוע החלפות טקסט בפקודה בהתאם לתכונות ה-Shell ולבסוף שליחת הפקודה המעובדת למערכת ההפעלה • דוגמאות ל-shell: • Bash(ברירת המחדל ברוב הפצות הלינוקס) • C-Shell(ברירת המחדל עבור מחשב ה t2) • Powershell(shell מתקדם עבור windows) • בקורס זה נלמד את Bash • מלבד מנשק בסיסי לביצוע פקודות ה-Shellמקל עלינו את העבודה בעזרת תכונות מתקדמות, לדוגמה ההשלמה האוטומטית המתבצעת ע"י לחיצה על Tab • ה-Shell יאפשר לנו להגדיר קיצורים, לחזורעל פקודות, להתייחס למספר קבצים בנוחות ולהגדיר משתניםאשר נוכל להשתמש בהם בפקודות מבוא לתכנות מערכות - 234122

  29. עבודה בחלון ה-Shell • לאחר ההתחברות מתקבל חלון טרמינל • בחלון זה יכול המשתמש להכניס את הפקודה הבאה למחשב ולקבל את הפלט עבור פקודה זו • הכנסת פקודה מתבצעת ע"י רישום שמה והפרמטרים שלה ולחיצה על Enter • לכל הפקודות יש את המבנה הבא: > command [arg1] [arg2] [arg3] ... • מספר הארגומנטים לפקודה משתנה בהתאם לפקודה ויכול להיות כל מספר (כולל 0) • בשביל להתנתק בכל שלב ניתן לסגור את חלון הטרמינל או לרשום את הפקודה exit. prompt (לא מקלידים אותו) שם הפקודה לביצוע ארגומנטים לפקודה מבוא לתכנות מערכות - 234122

  30. החלפת ה-Shell • ניתן להשתמש בפקודה הבאה כדי לקבל את שם ה-Shell הנוכחי ב-Unix > echo $0 tcsh • במחשבים בהם Bash אינה Shell ברירת המחדל (כמו בשרת ה-t2לדוגמה), ניתןלהשתמש בפקודה chsh (change shell)כדי לשנות את ברירת המחדל: • חשוב להקפיד לכתוב את שם ה-Shell (הייחוס אליו) נכון, אחרת החשבון נהרס • מלבד החלפת ה-Shell המשמש כברירת מחדל, ניתן תמיד להריץ Shell אחר כמו כל פקודה אחרת > chsh Changing shell for mtm. old shell: /bin/tcsh New shell: /bin/bash Shell will be changed for mtm in approximately 5 minutes > מבוא לתכנות מערכות - 234122

  31. פקודות בסיסיות ב-UNIX • כדי להדפיס תוכן של תיקיה נשתמש בפקודה ls: > ls[flags][files] • ניתן לרשום פשוט ls עבור הדפסת תוכן התיקיה הנוכחית • ניתן להוסיף את שם התיקיות שאת תוכנןנרצה להדפיס • לרוב הפקודות שנלמד אפשר להוסיף פרמטרים נוספים הנקראים דגלים: • למשל הדגל -l עבור הפקודה ls יגרום להדפסת הפלט כך שכל קובץ מופיע בשורת פלט נפרדת עם מידע נוסף • הדגל -a יגרום לפקודה להדפיס גם פריטים נסתרים • פריט נסתר ב-UNIX הוא כל קובץ או תיקיה ששמם מתחיל ב-. (נקודה) • בהרבה מהפקודות ניתן לשלב מספר דגלים בבת-אחת • כאשר הדגלים מיוצגים ע"י אות יחידה • למשל הפקודה ls -a -lזהה לפקודה ls -al מבוא לתכנות מערכות - 234122

  32. ls - דוגמאות • >ls • hello.cprivate/ story.txt • >lsprivate • example.txt • >ls -l • total 12 • -rw-r--r-- 1 mtmusers 3047 Jun 20 10:35 hello.c • drwx------ 2 mtmusers 4096 Sep 1 14:28 private/ • -rw------- 1 mtmusers 1081 Sep 1 14:28 story.txt • >ls -al • total 28 • drwx------ 3 mtmusers 4096 Sep 1 14:29 ./ • drwx--x--x 50 mtmusers 12288 Sep 1 10:52 ../ • -rw-r--r-- 1 mtmusers 3047 Jun 20 10:35 hello.c • drwx------ 2 mtmusers 4096 Sep 1 14:28 private/ • -rw------- 1 mtmusers 1081 Sep 1 14:28 story.txt מבוא לתכנות מערכות - 234122

  33. ניהול תיקיות • הדפסת שם התיקיה הנוכחית ע"י הפקודה pwd: > pwd • ניתן להחליף את התיקיה הנוכחית ע"י הפקודה cd: > cd <directory> • ניתן ליצור תיקיה חדשה ע"י הפקודה mkdir: > mkdir <name> • ניתן למחוק תיקיה ריקהע"י הפקודה rmdir: > rmdir <directory> מבוא לתכנות מערכות - 234122

  34. ניהול תיקיות - דוגמאות מעבר לתיקית הבית בעזרת הקיצור ~ • >cd ~ • >pwd • /usr/030/moshe • >cd matam • matam: No such file or directory. • >mkdir matam • >cd matam • >pwd • /usr/030/moshe/matam • >cd .. • >rmdir matam בכל הפקודות, אם אחד הפרמטרים אינו תקין תודפס הודעת שגיאה מתאימה והפקודה תופסק מעבר לתיקית האב בעזרת הסימון .. מבוא לתכנות מערכות - 234122

  35. פקודות לניהול קבצים • הפקודה cpמשמשת להעתקת קבצים או תיקיות • ניתן להשתמש בפקודה בשתי דרכים: > cp[options] <file1> <file2> • יוצרת העתק חדש של file1 בשם file2 > cp [options] <file1> ... <file> <directory> • יוצרת העתקים חדשים של כל הקבצים בתיקיה קיימת • אם קיים כבר קובץ בעל השם המבוקש הוא נמחק ומוחלף (overwritten) • דגלים שימושיים: • -r: מבצע העתקה רקורסיבית של תיקיות ותוכנן • ללא דגל זה תיקיות אינן מועתקות • -i: מבקש אישור לפני מחיקת קובץ קיים מבוא לתכנות מערכות - 234122

  36. פקודות לניהול קבצים • הפקודה mvמשמשת להעברתקבצים או תיקיות או שינוי שמם • ניתן להשתמש בפקודה בשתי דרכים: > mv [options] <file1> <file2> • משנה את שמו של file1 ל-file2 • עובדת גם עבור תיקיות > mv [options] <file1> ... <file> <directory> • אם הפרמטר האחרון הוא שם של תיקיה קיימת הפקודה מעבירה את הקבצים לתוכה • אם קיים כבר קובץ בעל השם המבוקש הוא נמחק ומוחלף (overwritten) • דגלים שימושיים: • -i: מבקש אישור לפני מחיקת קובץ קיים מבוא לתכנות מערכות - 234122

  37. פקודות לניהול קבצים • הפקודה rmמאפשרת מחיקת קבצים או תיקיות: > rm [ options ] <files> • דגלים שימושיים: • -r: מבצע מחיקה רקורסיבית של תיקיות • ללא דגל זה ספריות אינן נמחקות • -i: מבקש אישור לפני מחיקת קובץ • -f: לא מבקש אישור בשום מקרה • שימו לב: לא ניתן לשחזר קבצים שנמחקו • הפקודה הבאה מוחקת את כל הקבצים והספריות במיקום הנוכחי ועלולה להיות הרסנית למדי: > rm-rf * מבוא לתכנות מערכות - 234122

  38. פקודות לניהול קבצים - דוגמאות • >ls • hello.cprivate/ story.txt • >cphello.cprog.c • >ls • hello.cprivate/ prog.c story.txt • >mv prog.cprivate/program.c • >ls • hello.cprivate/ story.txt • >lsprivate • example.txt program.c • >mv hello.c story.txt private • >ls • private/ מבוא לתכנות מערכות - 234122

  39. פקודות לניהול קבצים - דוגמאות • >lsprivate • example.txt hello.cprogram.c story.txt • >rm -i private/story.txt • rm: removeregular file `private/story.txt'? y • >rmprivate • rm: cannotremove directory `private': Is a directory • >rm -ri private • rm: descend into directory `private'? n • >rm -rfprivate • >ls • > מבוא לתכנות מערכות - 234122

  40. הדפסת תוכן של קבצים • הפקודה catמדפיסה למסך את תוכן הקובץ > cat <file> • אם הקובץ גדול המסך יגלול ולא נוכל לראות בנוחות את התחלתו • אם לא מופיע שם קובץ הפקודה מדפיסה את הקלט הסטנדרטי (בד"כ קלט מהמקלדת) • בהמשך נראה למה זה מועיל • הפקודה moreמדפיסה למסך את התוכן, אך עוצרת כאשר נגמר המקום > more <file> • לחיצה על enter תגרום להדפסת שורה נוספת • לחיצה על q תפסיק את ההדפסה • הפקודה lessהיא שיפור של more ומאפשרת גלילה בשני הכיוונים ועוד אפשרויות > less <file> מבוא לתכנות מערכות - 234122

  41. הרשאות קבצים • לכל קובץ יש הרשאות הקובעות למי מותרת הגישה לקובץ ולצורך אילו פעולות. • ישנם 3 סוגי משתמשים: • User- בעל הקובץ. • בעל הקובץ הוא המשתמש שיצר את הקובץ במערכת. • Group- משתמש אשר שייך לקבוצה של בעל קובץ • הגדרת קבוצות משתמשים הינה מחוץ לחומר הקורס • Other- שאר המשתמשים במערכת • לכל סוג משתמש יש 3 הרשאות שונות: • Read- מאפשרת קריאת תוכן הקובץ (כולל העתקתו) • Write- מאפשרת שינוי הקובץ הקיים • Execute- מאפשרת להריץ את הקובץ מבוא לתכנות מערכות - 234122

  42. הרשאות קבצים • כדי לראות מהן ההרשאות ניתן להשתמש בפקודה ls -l, לדוגמה: > ls -l -rwx--x--x 1 mtm users 6647 Aug 31 17:25 a.out* -rw-r--r-- 1 mtm users 3047 Jun 20 10:35 hello.c drwx------ 2 mtm users 4096 Aug 31 17:23 private/ drwxrwxrwx 2 mtm users 4096 Aug 31 17:23 public/ • שורת ההרשאות עבור כל קובץ היא רצף האותיות הבא: drwxrwxrwx • אם מופיעה אות ההרשאה קיימת • אם מופיע מקף ההרשאה אינה קיימת מצייני ההרשאות user group other התו d מציין אם מדובר בתיקיה מבוא לתכנות מערכות - 234122

  43. שינוי הרשאות קבצים • בעל הקובץ רשאי לשנות את ההרשאות של הקובץ • שינוי ההרשאות ניתן בעזרת הפקודה chmod: > chmod <mode> <files> • <mode> - שרשור תווים המורכב מ-who, opcode ו-permission • אם לא מצוין who, ברירת המחדל היא a. WhoOpcodePermission u - User + - Add permission r- Read g - Group - - Remove permission w - Write o - Other = - Assign permission x - Execute a - All • דוגמאות: > chmodu+x file > chmod g-w,o-w file > chmod =r file > chmod u=rwx, g=rx, o=r file --------- rwxrwxrwx --x------ rwxr-xr-x r--r--r-- rwxr-xr-- מבוא לתכנות מערכות - 234122

  44. הרשאות עבור תיקיות • עבור תיקיות להרשאות המשמעות שונה: • Read– הרשאה לראות את רשימת הקבצים • Write– הרשאה של יצירת/מחיקתתיקייה או שינויקבציםבתיקייה • Execute– הרשאת כניסהלתיקייה • לדוגמה, מה ההרשאות הנדרשות לביצוע כל אחת מהפעולות הבאות? > cd my_dir > mkdirdirectory > rmdirdirectory > ls Execute Write Write Read מבוא לתכנות מערכות - 234122

  45. הפקודה man • המידע שהוצג כאן לגבי כל אחד מהפקודות חלקי • ניתן בכל שלב להשתמש בפקודה man כדי לראות קובץ עזרה עבור פקודה מסוימת. > man <command name> • ה-man של פקודה מכיל את צורת ההפעלה שלה, דגלים אפשריים ועוד. • למשל: > man ls > man rm > man man מבוא לתכנות מערכות - 234122

  46. ערוצי קלט/פלט • לכל תכנית יש ערוצי קלט וערוצי פלט – אלו הם הדרכים בהם היא מקבלת קלט ומציגה את הפלט שלה • לכל תכנית קיימים ב-UNIX 3 ערוצי ברירת מחדל: • ערוץ הקלט הסטנדרטי: ממנו מקבלת התכנית את הקלט • ברירת המחדל היא הפקודות המוכנסות בחלון הטרמינל • ערוץ הפלט הסטנדרטי: אליו מודפס הפלט • ברירת מחדל היא הדפסה לחלון הטרמינל • ערוץ השגיאות הסטנדרטי: ערוץ פלט נוסף המשמש להדפסת הודעות שגיאה • ברירת המחדל היא הדפסה לחלון הטרמינל • ערוצי קלט/פלט נוספים יכולים להיות למשל קבצים, נתייחס למקרים אלו בהמשך הקורס מבוא לתכנות מערכות - 234122

  47. הפניית קלט/פלט • בעת קריאה לפקודה בטרמינל ניתן להפנות את ערוצי הקלט והפלט הסטנדרטיים לקבצים • הפניית ערוץ הפלט הסטנדרטי נעשית באמצעות האופרטור "<": > command [arguments] > <output_file> • הפניית ערוץ הקלט הסטנדרטי נעשית באמצעות האופרטור ">": > command [arguments] < <input_file> • הפניית ערוץ השגיאות הסטנדרטי נעשית באמצעות האופרטור "2>": > command [arguments] 2> <errors_file> • אם ננסה לכתוב לתוך קובץ קיים, נדרוס את תוכן הקובץ הקיים. • אם ברצוננו להוסיף את הפלט להמשכו של קובץ קיים ניתן להשתמש ב-">>" או "2>>" (בהתאמה) מבוא לתכנות מערכות - 234122

  48. הפניית קלט/פלט • ניתן להפנות מספר ערוצים בבת אחת • הפניית הקלט והפלט יחדיו נעשית כך: > command [arguments] < input > output • כדי להפנות את ערוץ השגיאות ואת ערוץ הפלט ניתן לרשום: > command [arguments] > output 2> errors • כדי להפנות את ערוץ השגיאות לערוץ הפלט יש לכתוב: > command [arguments] 2>1 • כדי להדפיס את ערוץ הפלט וערוץ השגיאות לאותו הקובץ יש לכתוב: > command [arguments] > output 2>1 מבוא לתכנות מערכות - 234122

  49. הפניית קלט/פלט - דוגמאות • בעזרת הפניית קלט/פלט ניתן לעשות שימושים שונים בפקודה cat למשל: >cat >file.txt Hello world! >ls file.txt >cat file.txt Hello world! >cat file.txt > file2.txt >cat file2.txt Hello world! >cat file.txt >> file2.txt >cat file2.txt Hello world! Hello world! הכנסת קלט מהמקלדת מבוא לתכנות מערכות - 234122

  50. הפניית קלט/פלט - דוגמאות >cat < file2.txt > file.txt >cat file.txt Hello world! Hello world! >rmdirfoo rmdir: `foo': No such file or directory >rmdirfoo > output.txt rmdir: `foo': No such file or directory >rmdirfoo2> error.txt >cat error.txt rmdir: `foo': No such file or directory הודעת השגיאה נשלחת לערוץ השגיאות ולכן אינה מופנית לקובץ מבוא לתכנות מערכות - 234122

More Related