Presentation is loading. Please wait.

Presentation is loading. Please wait.

תירגול 1 אדמיניסטרציה עבודה עם t2 מערכת הקבצים ב - Unix תכנית ראשונה ב -Unix, gcc.

Similar presentations


Presentation on theme: "תירגול 1 אדמיניסטרציה עבודה עם t2 מערכת הקבצים ב - Unix תכנית ראשונה ב -Unix, gcc."— Presentation transcript:

1 תירגול 1 אדמיניסטרציה עבודה עם t2 מערכת הקבצים ב - Unix תכנית ראשונה ב -Unix, gcc

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

3 מטרת הקורס לימוד שיטות וכלים בסיסיים בפיתוח תוכנה המשך של מבוא למדעי במחשב, שם לומדים לכתוב תוכניות קטנות במת '' ם מדובר בפיתוח של תוכנה גדולה –שיטות וכלים בסיסיים לפיתוח תוכנה 3

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

5 קבלת e-mail של הקורס 5

6 תרגילי בית במהלך הסמסטר יינתנו ארבעה תרגילי בית בנושאים הבאים : – C – 5% – ADT – 10% – C-Shell – 5% – C++ -10% ציוני תרגילי בית תקפים לכל תרגיל ישנו מתרגל האחראי על התרגיל. שאלות הנוגעות לתרגיל מסוים, יש להפנות למתרגל האחראי על התרגיל. הגשה באיחור תגרור הורדה של 5 נקודות עבור כל יום איחור. 6

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

8 חיפוש שותף 8

9 תרגילי בית הגשת תרגילי בית : יש להגיש עותק מודפס של תרגיל הבית לתא של הקורס, וגם לבצע הגשה אלקטרונית דרך אתר הקורס. במהלך העבודה על תרגילי הבית מומלץ לגבות את הקבצים באופן שותף על כמה מחשבים – זה חלק מהפיתוח תוכנה. לא יינתנו שום הקלות לסטודנטים שהקבצים שלהם נמחקו / נהרסו מסיבה כלשהי. 9

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

11 הגשה אלקטרונית 11

12 עבודה עם t2 הבדיקה האוטומטית של התרגילים נעשית ב -t2 השם האינטרנטי של t2 הוא stud.technion.ac.il קיימות כמה אפשרויות עבודה : –לפתח ב -t2 –לפתח רוב הזמן במחשב אחר ורק את השלב הסופי של בדיקות ו debugging – ( שעלול לקחת הרבה מאוד זמן ) לעשות ב t2-. לצורך כך יש להעביר קבצים מהמחשב האחר ל -t2. המחשב האחר לפיתוח יכול להיות מחשב כלשהו בבית או בחווה. ניתן לפתח באחת הסביבות : – Windows – Cygwin (on Windows) – Linux 12

13 מערכת הפעלה Linux ו -Windows הן מערכות הפעלה (Operating systems) למערכת הפעלה יש שני תפקידים בהקשר של פיתוח תוכנה –מתווכת בין התוכנה לחומרה ומנהלת משאבים בשביל התוכנה בזמן הריצה - ניהול זיכרון, קבצים וכו '. –משמשת מעין " אתר בניה " בשביל התוכנה תוכנה חומרה מערכת הפעלה 13

14 עבודה עם t2 t2 חוות מחשבים Windows / Linux Windows / Linux / Cygwin Linux SSH Secure Shell Client התחברות ל-t2 SSH Secure File Transfer Client העברת קבצים 14

15 t2 - Linux Linux היא מערכת ההפעלה דמויית Unix שמותקנת ב - t2. העבודה ב -Unix מתבצעת בצורה טקסטואלית ולא גרפית ( לא חלונאית כמו ב -Windows) בחלון של Unix ניתן להקיש פקודות למחשב ולקבל פלט של הפקודות באותו החלון מקישים פקודות בשורת הפקודה (command line) כשהמחשב מוכן לקבל פקודה לביצוע, שורת הפקודה מכילה prompt כשה -prompt מוצג ניתן לתת למחשב כל פקודה שהיא ואח " כ להקיש Enter. המחשב יבצע את הפקודה, ולאחר שיסיים יציג שוב את ה prompt בכדי שנוכל לתת לו את הפקודה הבאה. 15

16 עבודה עם Unix ( ב -t2 דרך (SSH command line user’s commands computer’s output the network name of t2 prompt התקנה והסברים - מהאתר של הפקולטה: Computing Services -> Services -> software support -> SSH (ראו קישור בתחתית העמוד) 16 http://system.cs.technion.ac.il/Software/software_support.htm

17 העברת קבצים בין מחשבים חלון My Computer חלון SSH חלון SSH FTP ניתן לגרור ע''י העכבר קבצים בין המחשב המקומי למחשב המרוחק (t2) 17

18 עבודה עם (Go-Global) t2 –להבדיל מ - SSH clients לא דורש התקנה, נכנסים דרך אתר אינטרנט. –מאפשר עבודה עם יישומים גרפיים בצורה חלונאית – החשוב בהם debugger ddd http://www.technion.ac.il/GG/IPviewer.html 18

19 סביבה דמויית UNIX Cygwin – סביבה דמויית UNIX הרצה על windows –יתרונות : קלה להתקנה, עובדים על ה -PC בבית ואין בעיות של עומס כמו על ה -t2 –חסרונות : ישנם מס ' הבדלים מעבודה על UNIX רגיל : סיומות קבצים, תו שונה בסוף שורה וכו '. www.cygwin.com 19

20 מידע נוסף מידע נוסף לגבי כלים לעבודה בקורס מופיע באתר של הקורס, בדף Course Material -> Helpers 20

21 UNIX בסיסי

22 מערכת הקבצים ב -Unix היחידה הבסיסית – קובץ (file) –אוסף סדור של תווים – אין הגבלה על מה יכול להכיל יכול להכיל למשל טקסט ע " י תוי ASCII או להיות קובץ הרצה. לכל קובץ יש שם –אין מגבלות על אורך השם – יכול להכיל כל צרוף של תווים –מקובל ששם קובץ הוא מהצורה. למשל :test.c - קובץ מקור בשפת C hello.o - קובץ object סיומת של קובץ –אין מגבלה על אורכה –לקובץ הרצה יכולה להיות כל סיומת שהיא. ( אין הכרח שתהיה סיומת.exe) 22

23 מערכת הקבצים ב - Unix Unix הנה מערכת מרובת משתמשים. לכל משתמש יש חשבון משלו במחשב. חשבון זה מקנה מרחב של קבצים שבו רק הוא יכול להשתמש. ב - Unix, כמו ב MS-DOS וב -Windows, יש תיקיות (Directories) שבהם ניתן לשמור קבצים קשורים לוגית ביחד. התיקיות ב - Unix מאפשרות לכל משתמש לבנות מערכת קבצים היררכית בצורה של עץ. שורש העץ יהיה תיקיית הבית של כל משתמש. הענפים יהיו התיקיות והעלים יהיו הקבצים עצמם. ב - Unix נשמר המידע על תיקייה והקבצים המוכלים בה בקבצים מיוחדים. 23

24 מערכת הקבצים ב - Unix דוגמא במערכת הזאת ישנם שני משתמשים, ari ו - uri. הם יכולים ליצור תיקיות עם אותם שמות שמות נוספים לתיקייה בעברית : – מדריך –ספרייה Hello.c Matam hw1hw2 24

25 מערכת הקבצים ב - Unix ב -Unix בכל שלב העבודה המשתמש " נמצא " בתיקייה כלשהי – " התיקייה הנוכחית ". התיקייה העליונה של כל משתמש נקראת תיקיית הבית שלו (home directory). כאשר המשתמש נכנס לחשבון שלו, הוא נמצא בתיקיית הבית שלו. ניתן לעבור בין תיקיות ע '' י פקודה cd. ניתן לציין קבצים ( או תיקיות ) לפי pathnames full או relative pathnames ( יחסית לתיקייה הנוכחית ) 25

26 סימונים לתיקיות וקבצים ב -Unix – / תיקיית השורש (root) או סימן מפריד ב -pathname –. התיקייה הנוכחית –.. התיקייה שמכילה את התיקייה הנוכחית – " תיקיית האב " – ~ תיקיית הבית של המשתמש הנוכחי – ~uri תיקיית הבית של משתמש uri – * כל הקבצים והתיקיות בתיקייה מסוימת 26

27 מערכת הקבצים ב - Unix מה מציינים השמות הבאים ? : /usr/uri/progs/Hello.c /usr/uri/progs/Matam progs ~/progs./hw1../hw2 ~ari/progs ~mtm/public/0809a/ex1 ~/progs/* Hello.c Matam hw1hw2 27

28 פקודות לעבודה עם תיקיות ניתן לבצע את הפעולות הבאות לצורך העבודה עם התיקיות –לשאול מהי התיקייה הנוכחית –לעבור לתיקייה כלשהי ( לשנות את התיקייה הנוכחית ) –לראות תוכן תיקייה כלשהי –ליצור תיקייה חדשה –למחוק תיקייה 28

29 פקודות לעבודה עם תיקיות pwd לשאול מהי התיקייה הנוכחית cd לעבור לתיקייה אחרת >pwd /usr/ari >cd progs >pwd /usr/ari/progs > cd.. >pwd /usr/ari 29

30 פקודות לעבודה עם תיקיות ls לראות את תוכן התיקייה. לדוגמא, לראות את תוכן התיקייה הנוכחית : >ls progs לראות את תוכן תת - תיקייה progs: > ls progs hello hello.c 30

31 פקודות לעבודה עם תיקיות ניתן לראות את רשימת הקבצים באופן מפורט יותר : > 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 הרשאות התאריך האחרון שהקובץ שונה שם הקובץמס' בתים בעל הקובץ * לתיקייה – מספר תת-תיקיות, כולל. וגם.. מס' לינקים * 31

32 פקודות לעבודה עם תיקיות mkdir ליצור תיקייה חדשה. לדוגמא, ליצור תיקייה בשם docs: rmdir למחוק תיקייה. לדוגמא, למחוק את התיקייה docs: ניתן למחוק תיקייה רק אם היא ריקה. > mkdir docs > ls docs progs > ls docs > > rmdir docs > ls progs 32

33 פקודות לעבודה עם קבצים ותיקיות ניתן לבצע את הפעולות הבאות לצורך העבודה עם קבצים ותיקיות –להעתיק קבצים או תיקיות –להעביר קבצים או תיקיות לתיקייה כלשהי  לשנות שם של תיקייה / קובץ –למחוק קובץ / תיקייה 33

34 פקודות לעבודה עם קבצים ותיקיות cp [options] file1 file2 cp [options] file1 file2… directory העתקת file1 ל-file2 או העתקת אחד או יותר קבצים ל-directory. אם קובץ היעד קיים, קובץ המקור נכתב עליו. אם directory קיימת, הקובץ נכתב בתוך התיקייה. אופציות: -i -i בקש אישור לפני מחיקת קובץ קיים. -r -r העתק רקורסיבית תיקייה עם כל קבציה ותת-התיקיות שבה. > cp hello.c prog1.c > ls hello.c prog1.c > cp hello.c prog1.c progs > ls progs hello.c prog1.c > cp -r my-dir new-dir יצירת עותק נוסף של hello.c בשם prog1.c:העתקת hello.c ו prog1.c לתיקייה progs: יצירת עותק נוסף של התיקייה my-dir בשם new-dir 34

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

36 פקודות לעבודה עם קבצים ותיקיות mv [options] sources target משמשת להעברה של קבצים ותיקיות או שינוי שמות שלהם. האפשרויות הן : > mv old_file_name new_file_name שם הקובץ old_file_name משתנה ל - new_file_name במידה וקובץ בשם new_file_name קיים בתיקייה הנוכחית, הקובץ הקיים נמחק (overwritten). > mv old_dir_name new_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 בקש אישור לפני מחיקת קובץ קיים. 36

37 פקודות לעבודה עם קבצים ותיקיות mv [options] sources target דוגמאות : לשנות את שמו של הקובץ hello.c ל- prog2.c: > mv hello.c prog2.c > ls prog2.c > mv prog2.c progs > ls progs hello.c prog1.c prog2.c להעביר את הקובץ prog2.c לתיקייה progs: 37

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

39 הרשאות קבצים r w x r w x r w x usergroupother > 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 39

40 שינוי הרשאות קבצים chmod mode files mode הוא שרשור תוים של who, opcode ו permission. who הוא אופציונלי (ברירת המחדל היא a). Permission r - Read w - Write x - Execute Opcode + - Add permission - - Remove permission = - Assign permission (and remove permission of the unspecified fields). Who u - User g - Group o - Other a – All >chmod u+x file >chmod g-w,o-w file >chmod =r file >chmod u=rwx, g=rx, o=r file ----------- x ------ rwxrwxrwx rwxr - xr - x r -- r -- r -- rwxr - xr -- 40

41 הרשאות לתיקיות 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 מסמנת שזה תיקייה 41

42 הרשאות הנדרשות לביצוע פקודות על תיקיות Execute – הרשאת כניסה לתיקייה Write – הרשאת יצירת / מחיקת קבצים בתיקייה Read – הרשאה לראות את רשימת הקבצים >cd [dir] >mkdir directory >rmdir directory >ls 42

43 פקודות שימושיות נוספות more less man לקרוא מידע מפורט על פקודה להציג קובץ על המסך עם עצירה אחרי כל דף >more prog2.c >man ls >man man 43

44 תוכנית C ראשונה ב -Unix #include int main() { printf ("Hello world \n"); return 0; } 1.כותבים קובץ hello.c בעורך טקסט כלשהו : >gcc hello.c –o hello2. מהדרים (מקמפלים) את הקובץ hello.c: נוצר קובץ הרצה hello 3.מריצים את קובץ ההרצה hello:>./hello Hello world > 44

45 תוכנית C ראשונה ב -Unix > /usr/uri/progs/hello > ~/progs/hello >./hello חייבים לציין את השם המלא של קובץ ההרצה (תמיד אפשר להשתמש בסימונים. וגם ~ ) אם לא מציינים את השם המלא של קובץ ההרצה, עלולים לקבל הודעת שגיאה הבאה: > hello hello: Command not found. 45

46 תוכנית C ראשונה ב -Unix כדי להשתמש בשם היחסי של הקובץ, יש להריץ את הפקודה הבאה הפקודה הזאת ומשמעותה יילמדו בתרגיל על C-shell > set path=($path.) 46

47 שימוש בקומפיילר gcc בקורס נשתמש בקומפיילר gcc המותקן על t2. הקומפיילר מייצר, בתנאי שאין שגיאות, קובץ הרצה בשם.a.out לדוגמא, הפקודה הבאה מקמפלת את הקובץ file.c: > gcc file.c -o האופציה הזאת גורמת לקומפיילר לקרוא לקובץ פלט בשם אחר > gcc file.c -o my_prog -g האופציה הזאת גורמת לקומפיילר להכניס לקובץ הרצה מידע הנחוץ ל -debugger ( חייבים להשתמש בה כשמדבגים ) > gcc file.c -g -o my_prog ניתן גם ליצור קובץ הרצה אחד ממספר קבצי מקור : > gcc file1.c file2.c file3.c -o my_prog 47

48 שימוש בקומפיילר gcc האופציות הבאות גורמות לקומפיילר להדפיס את רוב האזהרות (warnings) האפשריות -Wall -pedantic-errors > gcc -Wall -pedantic-errors file.c -o my_prog האזהרות נועדו להתריע על באגים ובעיות פוטנציאליות בתוכניות –תיקון ההזהרות מקטין הסתברות לבאגים –חוסך debugging – עבודה קשה שלוקחת הרבה זמן חשוב מאוד להבין ולתקן את כל האזהרות של הקומפיילר –לא להתעלם –לא " להשתיק " –לא לתקן באופן מקרי בלי להבין על מה הייתה האזהרה 48

49 הדגמת העבודה עם t2, gcc, debugger 49


Download ppt "תירגול 1 אדמיניסטרציה עבודה עם t2 מערכת הקבצים ב - Unix תכנית ראשונה ב -Unix, gcc."

Similar presentations


Ads by Google