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

38
!םםםםםם םםםםם םםם"ם234122

Upload: melora

Post on 12-Jan-2016

45 views

Category:

Documents


0 download

DESCRIPTION

ברוכים הבאים למת"ם !. 234122. אדמיניסטרציה. מטרת הקורס: לימוד תכנון וכתיבת תוכניות מורכבות תוך שמוש בכלי פתוח תוכנה מתקדמים. אתר הבית: http://webcourse.cs.technion.ac.il/234122 האתר מכיל מידע רב וחשוב המתעדכן במהלך הסמסטר - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: ברוכים הבאים למת"ם !

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

234122

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

אדמיניסטרציה

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

:אתר הבית http://webcourse.cs.technion.ac.il/234122 האתר מכיל מידע רב וחשוב המתעדכן במהלך הסמסטר

קבלתe-mail:בכדי להרשם לרשימת ה מהקורס e-mail של , להיכנס http://grades.cs.technion.ac.ilהקורס, יש להיכנס לאתר

Announcements ולוודא כי תחת "Settings/AutoUpdateללשונית Update מסומן "e-mail.

:תרגילי בית בנושאים 4 במהלך הסמסטר ינתנו תרגילי בית C – 5%הבאים:

ADT – 10%C-Shell – 5%

C++ - 10%

Page 3: ברוכים הבאים למת"ם !

אדמיניסטרציה

.לכל תרגיל ישנו מתרגל האחראי על התרגילבמידה ויהיו שאלות הנוגעות לתרגיל מסוים, יש

להפנותם למתרגל האחראי על התרגיל. התרגילים דורשים הרבה עבודה, מומלץ לעשותם

בזוגות.:יש להגיש עותק מודפס של הגשת תרגילי בית

תרגיל הבית לתא של הקורס, וגם לבצע הגשה ממוחשבת דרך אתר הקורס.

נקודות עבור 5הגשה באיחור תגרור הורדה של כל יום איחור.

Page 4: ברוכים הבאים למת"ם !

T2עבודה עם

-התרגילים נבדקים אוטומטית בT2 אשר הינו מחשב UNIX

:קיימות מס' אפשרויות עבודהFTP בעזרת תוכנת T2, להעביר ל-PCלפתח ב-–PC בתקשורת מרחוק, מ-T2לעבוד על ה-– בחווהLINUX: מחשבי UNIXלעבוד ישירות בסביבת –PC מ-UNIXלעבוד בסביבה דמויית –

Page 5: ברוכים הבאים למת"ם !

תקשורת מרחוק

Telnetיתרונות: פשוט מאוד, לא צריך להתקין כלום–חסרונות: לא גרפי, לא מאובטח–

SSHיתרונות: מאפשר הרצת תוכנות גרפיות, מאובטח– לצורך Exceed ושל SSHחסרונות: דורש התקנה )של –

לפעמים מאוד איטיתt2תוכנות גרפיות(, עבודה מול ה-התקנה והסברים - מהאתר של הפקולטה:

Computing Services -> Services -> software support -> SSH->

Exceed

Page 6: ברוכים הבאים למת"ם !

תקשורת מרחוק – המשך...

Go-Globalלא דורש התקנה SSH יתרונות: בנוסף ליתרונות של–

מיוחדת, נכנסים דרך אתר אינטרנט. לפעמים מאוד איטיתt2חסרונות: עבודה מול ה-–

http://www.technion.ac.il/GG/IPviewer.html

Page 7: ברוכים הבאים למת"ם !

UNIXעבודה ישירה בסביבת

בחווה ישנם מחשביLINUX עליהם מותקנים כל התוכנות אשר נדרשות לקורס מת"ם

קיים יועץ בחווה העוזר למשתמשים מתחילים-יתרון: עובדים על מחשב שאינו עמוס כמו הt2

t2בסביבה זהה ל-...חסרון: אי אפשר לעבוד מהבית

Page 8: ברוכים הבאים למת"ם !

UNIXסביבה דמויית

Cygwin סביבה דמויית – UNIX הרצה על windows

בבית ואין PCיתרונות: קלה להתקנה, עובדים על ה-–t2בעיות של עומס כמו על ה-

רגיל: UNIXחסרונות: ישנם מס' הבדלים מעבודה על –סיומות קבצים, תו שונה בסוף שורה וכו'.

www.cygwin.com

Page 9: ברוכים הבאים למת"ם !

UNIX

בסיסי

Page 10: ברוכים הבאים למת"ם !

Unixבסיסי

Unixהיא מערכת הפעלה בה נשתמש ב - t2 .תוכנית בשםshell מפרשת פקודות

שהמשתמש נותן למערכת העבודה מתבצעת בצורה טקסטואלית ולא

גרפית. -לאחר הכניסה לt2 יוצג prompt. prompt הנו

סימן שמשמעותו שהמחשב מוכן לבצע פקודה.

לאחר שהprompt מוצג ניתן לתת למחשב . Enterכל פקודה שהיא ואח"כ להקיש

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

את הפקודה הבאה.

< cat file1this is thecontent of file1<cat file2ThisIs

file2<

Page 11: ברוכים הבאים למת"ם !

Unixמערכות הקבצים ב-

- קובץ בUnix הוא אוסף סדור של תוים. אין הגבלה על מה יכול או להיות ASCIIקובץ להכיל. קובץ יכול להכיל למשל טקסט ע"י תוי

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

שמורים כמו * & יכול שם קובץ להכיל כל צרוף של תוים. מקובל ששם קובץ הוא מהצורה

>name>.<extension< C - קובץ מקור בשפת test.cלמשל:

hello.o קובץ - objectשימו לב:

- בUnix אין מגבלה על אורך ה extension - בUnix לקובץ הרצה יכול להיות כל שם שהוא. )אין הכרח שתהיה

או דבר דומה(.exe.סיומת

Page 12: ברוכים הבאים למת"ם !

המשךUnix מערכות הקבצים ב-

Unix הנה מערכת מרובת משתמשים. לכל משתמש יש חשבון משלו במחשב. חשבון זה

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

-בUnix כמו ב , MS-DOS -ובWindows יש ,( שבהם ניתן לשמור קבצים Directoriesמדריכים )

מבנה המדריכים יכול Unixקרובים ביחד. ב- להראות כדלקמן:

Page 13: ברוכים הבאים למת"ם !

המשךUnix מערכות הקבצים ב-

,במערכת הנ"ל ישנם שני משתמשיםari -ו uri הם יכולים ליצור מדריכים .

עם אותם שמות המדריך העליון של כל משתמש נקרא

שלו. כאשר משתמש homeמדריך ה-נכנס לחשבון שלו, הוא נמצא במדריך

שלו.home ה ניתן לציין קבצים )או מדריכים( לפי

pathnames fullאו

relative pathnames

/ (root)

tmp bin usr

ari uri

progs progs

Hello.c

Page 14: ברוכים הבאים למת"ם !

פקודות לעבודה עם ספריות

pwdpwd

לראות באיזה מדריך הנך נמצא

cd <directory namecd <directory name<<

לעבור למדריך אחר

(:parent directoryלעבור למדריך מעל המדריך הנוכחי )

cd> )ללא פרמטרים(: home directoryלחזור ל

<pwd/usr/ari

>cd progs>pwd/usr/ari/progs

<cd.. <pwd

/usr/ari

Page 15: ברוכים הבאים למת"ם !

פקודות לעבודה עם ספריות - המשך

ls <directory namels <directory name<<

לראות את רשימת הקבצים במדריך. לדוגמא, לראות את הקבצים במדריך הנוכחי:

>ls

progs

:progsלראות את הקבצים בתת-מדריך > ls progs

hello

hello.c

Page 16: ברוכים הבאים למת"ם !

המשך פקודות לעבודה עם ספריות -

ניתן לראות את רשימת הקבצים באופן מפורט יותר:

> ls -aldrwxr-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 moshedrwx------ 2 ari 512 May 13 03:30 progs

התאריך האחרון הרשאותשהקובץ שונה

מס' בתיםשם הקובץ

בעל הקובץ

מס' לינקים

Page 17: ברוכים הבאים למת"ם !

המשך - פקודות לעבודה עם ספריות

mkdir <directory namemkdir <directory name<<

:docsליצור מדריך חדש. לדוגמא, ליצור מדריך בשם

rmdir <directory namermdir <directory name<<

:docsלמחוק מדריך. לדוגמא, למחוק את המדריך

ניתן למחוק מדריך רק אם הוא ריק.

> mkdir docs> lsdocs progs> ls docs>

> rmdir docs> lsprogs

Page 18: ברוכים הבאים למת"ם !

פקודות לעבודה עם קבצים וספריות

cp [cp [optionsoptions] ] file1 file2file1 file2cp [cp [optionsoptions] ] filefile11 file2… directory file2… directory

או העתקת אחד או יותר קבצים ל file2 ל file1העתקת directory אם קובץ היעד קיים, קובץ המקור נכתב עליו. אם ה .directory .אופציות: קיים, הקובץ נכתב בתוך המדריך

--ii .בקש אישור לפני מחיקת קובץ קיים--rr .העתק רקורסיבית מדריך עם כל קבציו ותת-המדריכים בו

<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 new-dir בשם my-dirיצירת עותק נוסף של המדריך :progs למדריך prog1.cו hello.c העתקת :prog1.cבשם hello.c יצירת עותק נוסף של

Page 19: ברוכים הבאים למת"ם !

פקודות לעבודה עם קבצים וספריות -המשך

rm [rm [optionsoptions] ] filesfiles מוחקתfile אחד או יותר. כדי למחוק קובץ צריכה להיות

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

:אופציות-f .מחק קבצים בלי הרשאת כתיבה ללא אישור -i.בקש אישור לפני מחיקת כל קובץ -r אםfile הוא מדריך מחק אותו ואת כל תכולתו כולל

תת-מדריכים.אזהרה: פקודה זו יכולה להיות הרסנית.

הערה: אין עקרונית אפשרות לשחזר קבצים שנמחקו.Unixב -

>rm –rf *

Page 20: ברוכים הבאים למת"ם !

פקודות לעבודה עם קבצים וספריות -המשך

mv [mv [optionsoptions] ] sources targetsources target במערכת או נתינת שמות קבצים ומדריכיםמשמשת להעברה של

חדשים להם. האפשרויות הן:> mv old_file_name new_file_name

במידה וקובץ new_file_name משתנה ל old_file_nameשם הקובץ קיים במדריך הנוכחי, הקובץ הקיים נמחק new_file_nameבשם

(overwritten).> mv old_dir_name new_dir_name

במידה ומדריך new_dir_name משתנה ל old_dir_nameשם המדריך נהיה תת old_dir_name קיים במדריך הנוכחי, new_dir_nameבשם

! new_dir_nameמדריך של > mv file1 file2 … dir_name

.dir_name… מועברים למדריך file1, file2הקבצים :אופציות-i.בקש אישור לפני מחיקת קובץ קיים

Page 21: ברוכים הבאים למת"ם !

- פקודות לעבודה עם קבצים וספריותהמשך

mv [mv [optionsoptions] ] sources targetsources target

::דוגמאותדוגמאות

ל- hello.cלשנות את שמו של הקובץ prog2.c:

> mv hello.c prog2.c> lsprog2.c

> mv prog2.c progs> ls progshello.c prog1.c prog2.c

:progs ל מדריך prog2.cלהזיז את הקובץ

Page 22: ברוכים הבאים למת"ם !

הרשאות קבצים

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

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

Page 23: ברוכים הבאים למת"ם !

הרשאות קבצים המשך

r w x r w x r w x

user group other

> ls -aldrwxr-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 moshedrwx------ 2 ari 512 May 13 03:30 progs

Page 24: ברוכים הבאים למת"ם !

שינוי הרשאות קבצים

chmod chmod mode filesmode filesmode הוא שרשור תוים של who, opcode ו permission. who ברירת המחדל היא( הוא אופציונלי a.)

Permissionr - Readw - Writex - Execute

Opcode+ - Add permission- - Remove permission= - Assign permission )and remove permission of the unspecified fields(.

Whou - Userg - Groupo - Othera – 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--

Page 25: ברוכים הבאים למת"ם !

שינוי הרשאות קבצים

chmod chmod mode filesmode files

שיטה שנייה:>chmod 777 file>chmod 444 file

Page 26: ברוכים הבאים למת"ם !

הרשאות לספריות

גם לספריות ישנן הרשאות - הספריות בUnix מאפשרות לכל משתמש לבנות מערכת

homeקבצים היררכית בצורה של עץ. שורש העץ יהיה ה directory של כל משתמש. הענפים יהיו המדריכים השונים

והעלים יהיו הקבצים עצמם. - בUnix נשמר המידע על מדריך והקבצים המוכלים בו

בקבצים מיוחדים. למשל הקובץ המכיל את המידע על המדריך הנוכחי נקרא

"." והקובץ המכיל את המידע על מדריך האב נקרא "..".

Page 27: ברוכים הבאים למת"ם !

הרשאות לספריות המשך

Executeהרשאת כניסה לספרייה – Writeיצירת קבצים בספרייה – Readלראות את רשימת הקבצים –

> ls -aldrwxr-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 .logindrwx------ 2 ari 512 May 13 03:30 progs

מסמנת שזהו ספרייהdהאות

Page 28: ברוכים הבאים למת"ם !

הרשאות הנידרשות לביצוע פקודות לספריות

Executeהרשאת כניסה לספרייה – Writeיצירת קבצים בספרייה – Readלראות את רשימת הקבצים –

>cd [dir]

>mkdir directory

>rmdir directory

>ls

Page 29: ברוכים הבאים למת"ם !

פקודות שימושיות נוספות

cat <file name>cat <file name>

more <file name>more <file name>

less <file name>less <file name>

man <command name>man <command name>

lpr –P<printer> <filename>lpr –P<printer> <filename>

להציג קובץ על המסך

לקרוא מידע מפורט על פקודה

להדפיס קובץ למדפסת מסויימת

להציג קובץ על המסך עם עצירה אחרי כל דף>cat prog2.c

>more prog2.c

>man ls>man man

>lpr –Pptr prog2.c

Page 30: ברוכים הבאים למת"ם !

Unixתוכנות ב-

דואר אלקטרוני–pine

עריכת קבצים–pico–emacs / xemacs–vim / gvim

Page 31: ברוכים הבאים למת"ם !

Unix ראשונה ב-Cתוכנית

#include <stdio.h>int main)({ printf )"Hello world \n"(; return 0;}

:hello.cהקובץ

>gcc hello.c –o hello :hello.cהידור )קימפול( הקובץ

hello:>./helloהרצת קובץ ההרצה Hello world>

Page 32: ברוכים הבאים למת"ם !

Unix ראשונה ב-Cתוכנית >./helloHello world>

" שמופיע לפני שם קובץ ההרצה בא לציין את העובדה ./הסימן " •שאנו

מהספרייה הנוכחית שלנו מריצים קובץ יבדוק האם הקובץ נמצא shellאם כותבים שם של קובץ הרצה, ה-•

של ספריות שהוגדרו במיוחד, ויריץ אותו משם בקבוצהניתן לראות את רשימת הספריות הללו באמצעות הפקודה •

כדי להוסיף ספרייה לרשימה, משתמשים בפקודה

וכדי להוסיף את הספרייה הנוכחיתC-Shellהסבר מפורט יותר בנושא יילמד בפרק העוסק ב-

 

<echo $path

> set $path=)$path newDirectory(

> set $path=)$path .(

Page 33: ברוכים הבאים למת"ם !

gccשימוש במהדר

הקומפיילר בו נשתמש הנו קומפיילרgcc המותקן על T2. אם איו שגיאות נוצר קובץ הרצה בשם.a.out ,לדוגמא

:file.cלקמפל את הקובץ

> gcc file.c-o <destination name< מאלץ את המהדר לקרוא לקובץ

בשם אחר

> gcc file.c -o my_prog:ניתן גם ליצור קובץ הרצה אחד ממספר קבצי מקור

> gcc file1.c file2.c file3.c -o my_prog לפרטים נוספים - הקלידוman gcc.

gcc <file namegcc <file name<<..

Page 34: ברוכים הבאים למת"ם !

- ftpהעברת קבצים בין מחשבים

ftp - File Transfer Protocol תוכנית - שמאפשרת העברת קבצים מהירה בין מחשבים

באתרים שונים על אותה רשת. בעזרת פקודתftp ניתן להעביר קבצים ממחשב

PC-לחשבונכם ב t2 הפעלתftpטקסטואלי SSH Secure Shell – ftpגרפי ftp://t2.technion.ac.il

Page 35: ברוכים הבאים למת"ם !

Debugging

debugging הוא התהליך של ניפוי שגיאות שניתגלו בתוכנית

למרות שרצוי שתהליך ניפוי השגיאות יהיה מדעי ומסודר ככל האפשר הוא עדיין ברובו אומנות )שנרכשת בזיעה

רבה(. בעבר היו שמים הדפסות רבות בקוד במקומות שונים

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

עם כל שינוי. - השיטה העדיפה היא שימוש בכלי ייעודי למטרה זו

debugger .

Page 36: ברוכים הבאים למת"ם !

Debuggingהמשך

Debugger :מאפשר

קביעת נקודות עצירה בתוך התוכנית.(1

הרצה מבוקרת של התוכנית.(2

בדיקת ערכי משתנים.(3

( מציאת מקום ה"המראה" של תוכנית שעפה.4

פעולות אלו ועוד רבות נוספות יסייעו במציאת שגיאות

בתוכנית.

Page 37: ברוכים הבאים למת"ם !

Debuggingהמשך

Unix–gdb – debuggerטקסטואלי –ddd – debuggerגרפי

Page 38: ברוכים הבאים למת"ם !

דוגמא למציאת שגיאה