570 likes | 809 Views
תירגול 1. אדמיניסטרציה עבודה עם t2 מערכת הקבצים ב- Unix תכנית ראשונה ב- Unix , gcc. ברוכים הבאים למת"ם !. 234122. מטרת הקורס. לימוד שיטות וכלים בסיסיים ב פיתוח תוכנה המשך של מבוא למדעי במחשב, שם לומדים לכתוב תוכניות קטנות במת''ם מדובר בפיתוח של תוכנה גדולה. אדמיניסטרציה.
E N D
תירגול 1 אדמיניסטרציה עבודה עם t2 מערכת הקבצים ב- Unix תכנית ראשונה ב-Unix, gcc
ברוכים הבאים למת"ם ! 234122
מטרת הקורס • לימוד שיטות וכלים בסיסיים בפיתוח תוכנה • המשך של מבוא למדעי במחשב, שם לומדים לכתוב תוכניות קטנות • במת''ם מדובר בפיתוח של תוכנה גדולה
אדמיניסטרציה • אתר הבית: http://webcourse.cs.technion.ac.il/234122האתר מכיל מידע רב וחשוב המתעדכן במהלך הסמסטר. • קבלת e-mail מהקורס: בכדי להירשם לרשימת ה e-mail של הקורס, יש להיכנס לאתר http://grades.cs.technion.ac.il, להיכנס ללשונית Settings/AutoUpdate ולוודא כי תחת "Announcements Update" מסומן e-mail.
תרגילי בית • במהלך הסמסטר יינתנו ארבעה תרגילי בית בנושאים הבאים: • C – 5% • ADT – 10% • C-Shell – 5% • C++ -10% • ציוני תרגילי בית תקפים • לכל תרגיל ישנו מתרגל האחראי על התרגיל. שאלות הנוגעות לתרגיל מסוים, יש להפנות למתרגל האחראי על התרגיל. • הגשה באיחורתגרור הורדה של 5 נקודותעבור כל יום איחור.
תרגילי בית • תרגילי הבית: התרגילים דורשים הרבה עבודה, מומלץ לעשותם בזוגות. • רשימת מחפשי שותף מופיעה באתר הקורס • כל סמסטר מספר אנשים נעזבים על ידי השותפים שלהם באמצע התרגילים. תשמרו על קשר טוב עם השותף שלכם – זה חלק מתהליך פיתוח התוכנה • סגל הקורס לא יטפל בבעיות בין שותפים ולא ייתן שום הקלות לשותפים שנעזבו
תרגילי בית • הגשת תרגילי בית: יש להגיש עותק מודפס של תרגיל הבית לתא של הקורס, וגם לבצע הגשה אלקטרונית דרך אתר הקורס. • במהלך העבודה על תרגילי הבית מומלץ לגבות את הקבצים באופן שוטף על כמה מחשבים – זה חלק מתהליך פיתוח התוכנה. לא יינתנו שום הקלות לסטודנטים שהקבצים שלהם נמחקו/נהרסו מסיבה כלשהי.
תרגילי בית • יש לשמור מספר האישור של ההגשההאלקטרונית. מומלץ גם לאלמחוק את התיקייה ב-t2 שמכילה את הקבצים שהוגשו עד לקבלת הציון עבור התרגיל ולא לגעת בקבצים שהוגשו. כל זה עשוי לעזור למקרה של בעיותעםההגשה האלקטרונית.
הגשה אלקטרונית - פורמט ZIP שימו לב: הסיומת של הקובץ (החלק של השם אחרי הנקודה) חייבת להיות zip, ולא zipx, או כל פורמט אחר ! יורדו 10נקודות על הגשה של קובץ בפורמט שאינו zip.
תרגילי הבית - העתקות • בקורס יופעלו שיטות מתקדמות למציאה אוטומטית של העתקות • תרגילי הבית ייבדקו גם בבדיקה ידנית על ידי בודקים מאומנים למציאת העתקות • מי שייתפס כמעתיק או כמי שנתן את תרגיל הבית שלו להעתיק יהיה צפוי לעונשים חמורים • כולל שאלות יבשות
תרגילי הבית - דחיות בהגשה • מדיניות הקורס היא לא לתת דחיות בהגשה של תרגילי הבית • תאריך ההגשה המפורסם הוא התאריך הסופי • תכננו את זמנכם בהתאם - עמידה ב-deadlinesזה חלק מתהליך פיתוח התוכנה
עבודה עם t2 • הבדיקה האוטומטית של התרגילים נעשית ב-t2 • השם האינטרנטי של t2 הוא stud.technion.ac.il • קיימות כמה אפשרויות עבודה: • לפתח ב-t2 • לפתח רוב הזמן במחשב אחר ורק את השלב הסופי של בדיקות וdebugging – (שעלול לקחת הרבה מאוד זמן) לעשות בt2-. לצורך כך יש להעביר קבצים מהמחשב האחר ל-t2.המחשב האחר לפיתוח יכול להיות מחשב כלשהו בבית או בחווה. ניתן לפתח באחת הסביבות : • Windows • Cygwin (on Windows) • Linux
מערכת הפעלה תוכנה • Linuxו-Windowsהן מערכות הפעלה(Operating systems) • למערכת הפעלה יש שני תפקידים בהקשר של פיתוח תוכנה • מתווכתבין התוכנה לחומרה ומנהלת משאביםבשביל התוכנה בזמן הריצה - ניהול זיכרון, קבצים וכו'. • משמשת מעין "אתר בניה" בשביל התוכנה מערכת הפעלה חומרה
SSH Secure Shell Clientהתחברות ל-t2 עבודה עם t2 SSH Secure File Transfer Client העברת קבצים חוותמחשבים Windows / Linux Windows / Linux / Cygwin t2 Linux
t2 - Linux • Linuxהיא מערכת הפעלה דמוייתUnixשמותקנת ב-t2 • Unixבנויה יותר לעבודה בצורה טקסטואליתולא גרפית(לא חלונאית כמו ב-Windows) • בחלון של Unix ניתן להקיש פקודות למחשב ולקבל פלט של הפקודות באותו החלון • מקישים פקודות בשורת הפקודה (command line) • כשהמחשב מוכן לקבל פקודה לביצוע, שורת הפקודה מכילה prompt • כשה-prompt מוצג ניתן לתת למחשב כל פקודהשהיא ואח"כ להקיש Enter. המחשב יבצע את הפקודה , ולאחר שיסיים יציג שוב את ה-promptבכדי שנוכל לתת לו את הפקודה הבאה.
עבודה עם Unix (ב-t2 דרך (SSH • התקנה והסברים - מהאתר של הפקולטה: Computing Services -> Services -> software support -> SSH (ראו קישור בתחתית העמוד) the network name of t2 computer’s output user’s commands command line prompt http://system.cs.technion.ac.il/Software/software_support.htm
חלון My Computer העברת קבצים בין מחשבים חלון SSH ניתן לגרור ע''י העכבר קבצים בין המחשב המקומי למחשב המרוחק (t2) חלון SSHFTP
עבודה עם (Go-Global) t2 • להבדיל מ- SSH clientsלא דורש התקנה, נכנסים דרך אתר אינטרנט. • מאפשר עבודה עם יישומים גרפיים בצורה חלונאית– החשוב בהם debugger ddd • עובד רק עם Internet Explorer • http://www.technion.ac.il/GG/IPviewer.html
סביבה דמויית UNIX • Cygwin– סביבה דמוייתUNIX הרצה על Windows • יתרונות: קלה להתקנה, עובדים על המחשב עם Windows בבית ואין בעיות של עומס כמו ב-t2 • מאוד חשוב לתרגיל ב-C-Shell • חסרונות: ישנו מספר הבדלים מהעבודה ב-t2 www.cygwin.com
Eclipse CDT • מומלץ לעבוד על תרגילי הבית ב-Eclipse CDT • מותקן בחווה • במחשבי Linux • במחשבי Windows • קל להתקנה בבית • חינמי • ניתן להוריד מאתר הקורס Course Material -> Eclipse CDT
מידע נוסף • מידע נוסף לגבי כלים לעבודה בקורס מופיע באתר של הקורס, בדףCourse Material -> Helpers
מערכת הקבצים ב-Unix • היחידה הבסיסית – קובץ(file) • אוסף סדור של תווים • אין הגבלה על מה יכול להכיליכול להכיל למשל טקסט ע"י תויASCII או להיות קובץ הרצה. • לכל קובץ יש שם • אין מגבלות על אורך השם • יכול להכיל כל צרוף של תווים • מקובל ששם קובץ הוא מהצורה <name>.<extension> למשל: test.c - קובץ מקור בשפת C hello.o - קובץ object • סיומתשל קובץ • אין מגבלה על אורכה • לקובץ הרצה יכולה להיות כל סיומת שהיא. (אין הכרח שתהיה סיומת .exe)
מערכת הקבצים ב- Unix • Unixהנה מערכת מרובת משתמשים. לכל משתמשיש חשבוןמשלו במחשב. חשבון זה מקנה מרחב של קבציםשבו רק הוא יכול להשתמש. • ב- Unix, כמו ב MS-DOS וב-Windows, יש תיקיות(Directories) שבהם ניתן לשמור קבציםקשורים לוגית ביחד. • התיקיות ב - Unix מאפשרות לכל משתמש לבנות מערכת קבצים היררכית בצורה של עץ. שורש העץ יהיה תיקיית הבית של כל משתמש. הענפים יהיו התיקיות והעלים יהיו הקבצים עצמם.
מערכת הקבצים ב- Unixדוגמא • במערכת הזאת ישנם שני משתמשים, ari ו- uri. הם יכולים ליצור תיקיותעם אותם שמות • שמות נוספים לתיקייה בעברית: • מדריך • ספרייה Matam Hello.c hw1 hw2
מערכת הקבצים ב- Unix • ב-Unix בכל שלב העבודה המשתמש "נמצא" בתיקייה כלשהי – "התיקייה הנוכחית" • ניתן לציין קבצים (או תיקיות) לפיpathnamesfull או relative pathnames(יחסיתלתיקייה הנוכחית) • התיקייה העליונה של כל משתמש נקראת תיקיית הבית שלו (home directory). כאשר המשתמש נכנס לחשבון שלו, הוא נמצא בתיקיית הבית שלו
סימונים לתיקיות וקבצים ב-Unix • /תיקיית השורש(root) או סימן מפריד ב-pathname • .התיקייה הנוכחית • .. התיקייה שמכילה את התיקייה הנוכחית – "תיקיית האב" • ~תיקיית הבית שלהמשתמש הנוכחי • ~uriתיקיית הבית של משתמש uri • * כל הקבצים והתיקיות בתיקייה מסוימת
מערכת הקבצים ב- Unix • מה מציינים השמות הבאים? : /usr/uri/progs/Hello.c /usr/uri/progs/Matam progs ~/progs ./hw1 ../hw2 ~ari/progs ~mtm/public/0910a/ex1 ~/progs/* Matam Hello.c hw1 hw2
פקודות לעבודה עם תיקיות • ניתן לבצע את הפעולות הבאות לצורך העבודה עם התיקיות • לשאולמהי התיקייה הנוכחית • לעבורלתיקייה כלשהי (לשנות את התיקייה הנוכחית) • לראות תוכן תיקייה כלשהי • ליצורתיקייה חדשה • למחוקתיקייה
מבנה הפקודות ב-Unix > command arg1 arg2 arg3 שם הפקודה לביצוע ארגומנטים לפקודה prompt(לא מקלידים אותו) • המחרוזת הראשונה - שם הפקודה • המחרוזות הבאות - ארגומנטים לפקודה • הארגומנטים מופרדים ביניהם ובין שם הפקודה של ידי רווחים(או tabs). • הקשת enter מסיימת את שורת הפקודה • מספר הארגומנטים לא מוגבל (יכול להיות 0) • כל פקודה מצפה למספר ארגומנטים שונה
פקודות לעבודה עם תיקיות pwd לשאולמהי התיקייה הנוכחית cd <directory name> לעבורלתיקייה אחרת >pwd /usr/ari >cd progs >pwd /usr/ari/progs > cd .. >pwd /usr/ari
פקודות לעבודה עם תיקיות ls <directory name> לראות את תוכן התיקייה. לדוגמא, לראות את תוכן התיקייה הנוכחית: >ls progs • לראות את תוכן תת-תיקייה progs: > lsprogs hello hello.c
פקודות לעבודה עם תיקיות • ניתן לראות את רשימת הקבצים באופן מפורט יותר: מס' לינקים * מס' בתים שם הקובץ > ls -al drwxr-x---14 ari 1536 Aug 5 14:04 . drwxr-xr-x 48 root 1024 Aug 1 04:30 .. -rw------- 1 ari 2425 Mar 12 11:59 .login -rw-r--r-- 1 ari 2425 Mar 12 11:59 moshe drwx------ 2 ari 512 May 13 03:30 progs הרשאות בעל הקובץ התאריך האחרון שהקובץ שונה *לתיקייה – מספר תת-תיקיות, כולל . וגם..
הקשת שם תיקייה בלי שום פקודה > ~mtm/public/0910a/ex1 /staff/023/mtm/public/0910a/ex1: Permission denied. • ב-Unix, מערכת ההפעלה תמיד מפרשת את המחרוזת הראשונה כשם של פקודה • שם התיקייה אינו שם של פקודה, לכן יש הודעת שגיאה • לא ניתן לעבוד עם תיקיות על ידי הקשת שמותיהן בלבד • חייבים לציין פקודהcd,ls :וכו' כדי לעבוד איתן
פקודות לעבודה עם תיקיות mkdir <directory name> ליצורתיקייה חדשה. לדוגמא, ליצור תיקייה בשם docs: rmdir <directory name> למחוקתיקייה. לדוגמא, למחוק את התיקייה docs: ניתן למחוק תיקייה רק אם היא ריקה. > mkdir docs > ls docs progs > ls docs > > rmdir docs > ls progs
פקודות לעבודה עם קבצים ותיקיות • ניתן לבצע את הפעולות הבאות לצורך העבודה עם קבצים ותיקיות • להעתיקקבצים או תיקיות • להעבירקבצים או תיקיות לתיקייה כלשהי • לשנותשם של תיקייה/קובץ • למחוקקובץ/תיקייה
פקודות לעבודה עם קבצים ותיקיות cp [options] file1 file2 cp [options] file1 file2… directory העתקתfile1 ל-file2 או העתקת אחד או יותר קבצים ל-directory. אם קובץ היעד קיים, קובץ המקור נכתב עליו. אם directoryקיימת, הקובץ נכתב בתוך התיקייה.אופציות: -iבקש אישור לפני מחיקת קובץ קיים. -r העתק רקורסיבית תיקייה עם כל קבציה ותת-התיקיות שבה.
דוגמאות לשימוש בפקודה cp יצירת עותק נוסף של hello.c בשם prog1.c: > cp hello.c prog1.c > ls hello.c prog1.c העתקת hello.c ו-prog1.c לתיקייה progs: > cp hello.c prog1.c progs > ls progs hello.c prog1.c יצירת עותק נוסף של התיקייה my-dir בשםnew-dir > cp -r my-dir new-dir
>rm –rf * פקודות לעבודה עם קבצים ותיקיות rm [options] files מוחקתfile אחד או יותר. כדי למחוק קובץ צריכה להיות הרשאת כתיבה לתיקייה בה נמצא הקובץ. אם אין הרשאת כתיבה לקובץ יידרש אישור למחיקה. אופציות: • -f מחק קבצים בלי הרשאת כתיבה ללא אישור. • -iבקש אישור לפני מחיקת כל קובץ. • -r אם file הוא תיקייה מחק אותה ואת כל תכולתה כולל תת-תיקיות. • אזהרה: פקודה זו יכולה להיות הרסנית • הערה: ב - Unix אין עקרונית אפשרות לשחזר קבצים שנמחקו.
פקודות לעבודה עם קבצים ותיקיות mv [options] sources target משמשת להעברה של קבצים ותיקיות או שינוי שמות שלהם. האפשרויות הן: > mvold_file_namenew_file_name שם הקובץ old_file_nameמשתנהל- new_file_name במידה וקובץ בשם new_file_nameקייםבתיקייה הנוכחית, הקובץ הקיים נמחק(overwritten)
פקודות לעבודה עם קבצים ותיקיות > mvold_dir_namenew_dir_name שם התיקייה old_dir_nameמשתנהל -new_dir_name במידה ותיקייה בשם new_dir_nameלא קיימת . במידה ותיקייה בשם new_dir_nameקיימת, old_dir_name נהית תת תיקייה של new_dir_name ! > mv file1 file2 … dir_name הקבצים file1, file2 … מועברים לתיקייה dir_name. אופציות: -iבקש אישורלפני מחיקת קובץ קיים.
פקודות לעבודה עם קבצים ותיקיות mv [options] sources target דוגמאות: לשנות את שמו של הקובץ hello.c ל- prog2.c: > mv hello.c prog2.c > ls prog2.c להעביר את הקובץ prog2.c לתיקייה progs: > mv prog2.c progs > ls progs hello.c prog1.c prog2.c
הרשאות קבצים לכל קובץ יש הרשאותשקובעות למי מותרת הגישה לקובץ ולצורך אילו פעולות. כאשר קובץ חדש נוצר נרשם במערכת הקבצים מי יצר אותו והוא נקרא בעל הקובץ. ישנם 3 סוגים של משתמשיםהעשויים לגשת לקובץ: 1. User- בעל הקובץ. 2. Group- משתמש ששייך לקבוצה של בעל הקובץ. 3. Other- כל שאר המשתמשים במערכת שאינם בנ"ל. לכל סוג משתמש יש 3 הרשאותשונות: 1. Read- האם מותר לו לקרוא(להעתיק) את הקובץ. 2. Write- האם מותר לו לכתובעל (לשנות) את הקובץ. 3. Execute- האם מותר לו להריץאת הקובץ. הגדרת קבוצות משתמשים מחוץ לחומר של הקורס
הרשאות קבצים r w x r w x r w x > ls -al drwxr-x---14 ari 1536 Aug 5 14:04 . drwxr-xr-x 48 root 1024 Aug 1 04:30 .. -rw------- 1 ari 2425 Mar 12 11:59 .login -rw-r--r-- 1 ari 2425 Mar 12 11:59 moshe drwx------ 2 ari 512 May 13 03:30 progs user group other
mode הוא שרשור תוים של who, opcodeו-permission. whoאופציונלי(ברירת המחדל היא a). Opcode + - Add permission -- Remove permission = - Assign permission (and remove permission ofthe unspecified fields). Permission r - Read w - Write x - Execute Who u - User g - Group o - Other a – All שינוי הרשאות קבצים chmod mode files --------- --x------ >chmod u+x file rwxr-xr-x rwxrwxrwx >chmod g-w,o-w file r--r--r-- >chmod =r file rwxr-xr-- >chmod u=rwx, g=rx, o=r file
הרשאות לתיקיות • Execute– הרשאתכניסהלתיקייה • Write– הרשאה של יצירת/מחיקת תיקייה או שינויקבציםבתיקייה • Read– הרשאה לראות את רשימת הקבצים > ls -al drwxr-x--- 14 ari 1536 Aug 5 14:04 . drwxr-xr-x 48 root 1024 Aug 1 04:30 .. -rw------- 1 ari 2425 Mar 12 11:59 .login drwx------ 2 ari 512 May 13 03:30 progs האות d מסמנת שזה תיקייה
הרשאות הנדרשות לביצוע פקודות על תיקיות • Execute • Write • Read >cd [dir] >mkdir directory >rmdir directory >ls