340 likes | 521 Views
ברוכים הבאים למת"ם !. 234122. אדמיניסטרציה. מטרת הקורס: לימוד תכנון וכתיבת תוכניות מורכבות תוך שמוש בכלי פתוח תוכנה מתקדמים. אתר הבית: http://webcourse.cs.technion.ac.il/234122 האתר מכיל מידע רב וחשוב המתעדכן במהלך הסמסטר
E N D
ברוכים הבאים למת"ם! 234122
אדמיניסטרציה • מטרת הקורס: לימוד תכנון וכתיבת תוכניות מורכבות תוך שמוש בכלי פתוח תוכנה מתקדמים. • אתר הבית:http://webcourse.cs.technion.ac.il/234122 האתר מכיל מידע רב וחשוב המתעדכן במהלך הסמסטר • קבלת e-mail מהקורס: בכדי להרשם לרשימת ה e-mail של הקורס, יש להיכנס לאתר http://grades.cs.technion.ac.il, להיכנס ללשונית Settings/AutoUpdate ולוודא כי תחת "Announcements Update" מסומן e-mail. • תרגילי בית: במהלך הסמסטר ינתנו 4 תרגילי בית בנושאים הבאים:C – 5% ADT – 10% C-Shell – 5% C++ - 10%
אדמיניסטרציה • לכל תרגיל ישנו מתרגל האחראי על התרגיל. במידה ויהיו שאלות הנוגעות לתרגיל מסוים, יש להפנותם למתרגל האחראי על התרגיל. • התרגילים דורשים הרבה עבודה, מומלץ לעשותם בזוגות. • הגשת תרגילי בית: יש להגיש עותק מודפס של תרגיל הבית לתא של הקורס, וגם לבצע הגשה ממוחשבת דרך אתר הקורס. • הגשה באיחור תגרור הורדה של 5 נקודות עבור כל יום איחור.
עבודה עם T2 • התרגילים נבדקים אוטומטית ב-T2 אשר הינו מחשב UNIX • קיימות מס' אפשרויות עבודה: • לפתח ב-PC, להעביר ל-T2 בעזרת תוכנת FTP • לעבוד על ה-T2 בתקשורת מרחוק, מ-PC • לעבוד ישירות בסביבת UNIX: מחשבי LINUX בחווה • לעבוד בסביבה דמויית UNIX מ-PC
תקשורת מרחוק • Telnet • יתרונות: פשוט מאוד, לא צריך להתקין כלום • חסרונות: לא גרפי, לא מאובטח • SSH • יתרונות: מאפשר הרצת תוכנות גרפיות, מאובטח • חסרונות: דורש התקנה (של SSH ושל Exceed לצורך תוכנות גרפיות), עבודה מול ה-t2 לפעמים מאוד איטית התקנה והסברים - מהאתר של הפקולטה: Computing Services -> Services -> software support -> SSH -> Exceed
תקשורת מרחוק – המשך... • Go-Global • יתרונות: בנוסף ליתרונות של SSH לא דורש התקנה מיוחדת, נכנסים דרך אתר אינטרנט. • חסרונות: עבודה מול ה-t2 לפעמים מאוד איטית http://www.technion.ac.il/GG/IPviewer.html
עבודה ישירה בסביבת UNIX • בחווה ישנם מחשבי LINUX עליהם מותקנים כל התוכנות אשר נדרשות לקורס מת"ם • קיים יועץ בחווה העוזר למשתמשים מתחילים • יתרון: עובדים על מחשב שאינו עמוס כמו ה-t2 בסביבה זהה ל-t2 • חסרון: אי אפשר לעבוד מהבית...
סביבה דמויית UNIX • Cygwin – סביבה דמויית UNIX הרצה על windows • יתרונות: קלה להתקנה, עובדים על ה-PC בבית ואין בעיות של עומס כמו על ה-t2 • חסרונות: ישנם מס' הבדלים מעבודה על UNIX רגיל: סיומות קבצים, תו שונה בסוף שורה וכו'. www.cygwin.com
UNIX בסיסי
Unix בסיסי • Unix היא מערכת הפעלה בה נשתמש ב-t2. • תוכנית בשםshell מפרשת פקודות שהמשתמש נותן למערכת • העבודה מתבצעת בצורה טקסטואלית ולא גרפית. • לאחר הכניסה ל-t2 יוצג prompt. prompt הנו סימן שמשמעותו שהמחשב מוכן לבצע פקודה. • לאחר שה prompt מוצג ניתן לתת למחשב כל פקודה שהיא ואח"כ להקיש Enter. המחשב יבצע את הפקודה , ולאחר שיסיים יציג שוב את ה prompt בכדי שנוכל לתת לו את הפקודה הבאה. < cat file1 this is the content of file1 <cat file2 This Is file2 <
מערכות הקבצים ב-Unix • קובץ ב - Unix הוא אוסף סדור של תוים. אין הגבלה על מה יכול קובץ להכיל. קובץ יכול להכיל למשל טקסט ע"י תוי ASCII או להיות קובץ הרצה. • אין גם כמעט מגבלות על שמו של קובץ או אורכו. מלבד מספר תוים שמורים כמו * & יכול שם קובץ להכיל כל צרוף של תוים. מקובל ששם קובץ הוא מהצורה <name>.<extension> למשל: test.c - קובץ מקור בשפת C hello.o - קובץ object שימו לב: • ב - Unix אין מגבלה על אורך ה extension • ב - Unix לקובץ הרצה יכול להיות כל שם שהוא. (אין הכרח שתהיה סיומת .exe או דבר דומה).
מערכות הקבצים ב- Unixהמשך • Unix הנה מערכת מרובת משתמשים. לכל משתמש יש חשבון משלו במחשב. חשבון זה מקנה מרחב מסוים על הדיסק שבו רק הוא יכול להשתמש. • ב- Unix, כמו ב MS-DOS וב-Windows, יש מדריכים (Directories) שבהם ניתן לשמור קבצים קרובים ביחד. ב- Unix מבנה המדריכים יכול להראות כדלקמן:
מערכות הקבצים ב- Unixהמשך • במערכת הנ"ל ישנם שני משתמשים, ari ו- uri. הם יכולים ליצור מדריכים עם אותם שמות • המדריך העליון של כל משתמש נקרא מדריך ה-home שלו. כאשר משתמש נכנס לחשבון שלו, הוא נמצא במדריך ה home שלו. • ניתן לציין קבצים (או מדריכים) לפיpathnamesfull או relative pathnames Hello.c
פקודות לעבודה עם ספריות pwd לראות באיזה מדריך הנך נמצא cd <directory name> לעבור למדריך אחר לעבור למדריך מעל המדריך הנוכחי (parent directory): לחזור ל home directory: (ללא פרמטרים)>cd >pwd /usr/ari >cd progs >pwd /usr/ari/progs > cd .. >pwd /usr/ari
פקודות לעבודה עם ספריות - המשך ls <directory name> לראות את רשימת הקבצים במדריך. לדוגמא, לראות את הקבצים במדריך הנוכחי: >ls progs לראות את הקבצים בתת-מדריך progs: > ls progs 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 הרשאות בעל הקובץ התאריך האחרון שהקובץ שונה
פקודות לעבודה עם ספריות - המשך 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העתק רקורסיבית מדריך עם כל קבציו ותת-המדריכים בו. יצירת עותק נוסף של המדריך my-dir בשם new-dir יצירת עותק נוסף של hello.c בשם prog1.c: העתקת hello.c ו prog1.c למדריך progs: > cp -r my-dir new-dir > cp hello.c prog1.c > ls hello.c prog1.c > cp hello.c prog1.c progs > ls progs hello.c prog1.c
>rm –rf * פקודות לעבודה עם קבצים וספריות -המשך rm [options] files • מוחקת file אחד או יותר. כדי למחוק קובץ צריכה להיות הרשאת כתיבה למדריך בו נמצא הקובץ. אם אין הרשאת כתיבה לקובץ תתבקש לתת אישור למחיקה. • אופציות: -f מחק קבצים בלי הרשאת כתיבה ללא אישור. -i בקש אישור לפני מחיקת כל קובץ. -r אם file הוא מדריך מחק אותו ואת כל תכולתו כולל תת-מדריכים. אזהרה: פקודה זו יכולה להיות הרסנית. הערה: ב - Unix אין עקרונית אפשרות לשחזר קבצים שנמחקו.
פקודות לעבודה עם קבצים וספריות -המשך 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 קיים במדריך הנוכחי, old_dir_name נהיה תת מדריך של new_dir_name ! > mv file1 file2 … dir_name הקבצים file1, file2 … מועברים למדריך dir_name. • אופציות: -i בקש אישור לפני מחיקת קובץ קיים.
פקודות לעבודה עם קבצים וספריות- המשך mv [options] sources target דוגמאות: להזיז את הקובץ prog2.c ל מדריך progs: לשנות את שמו של הקובץ hello.c ל- prog2.c: > mv prog2.c progs > ls progs hello.c prog1.c prog2.c > mv hello.c prog2.c > ls 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
שינוי הרשאות קבצים chmod mode files שיטה שנייה: >chmod 777 file >chmod 444 file
הרשאות לספריות • גם לספריות ישנן הרשאות • הספריות ב - Unix מאפשרות לכל משתמש לבנות מערכת קבצים היררכית בצורה של עץ. שורש העץ יהיה ה home directory של כל משתמש. הענפים יהיו המדריכים השונים והעלים יהיו הקבצים עצמם. • ב - Unix נשמר המידע על מדריך והקבצים המוכלים בו בקבצים מיוחדים. • למשל הקובץ המכיל את המידע על המדריך הנוכחי נקרא "." והקובץ המכיל את המידע על מדריך האב נקרא "..".
הרשאות לספריות המשך • 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
תוכנות ב-Unix • דואר אלקטרוני • pine • עריכת קבצים • pico • emacs / xemacs • vim / gvim
סקירת תוכן קבצים • הפקודה cat >cat file_1 file_2 … file_k מדפיסה את תוכן הקבצים file_1,file_2,…,file_k לפלט הסטנדרטי • הפקודה head [-n] [files] מדפיסה רק מספר מהשורות הראשונות של קובץ. האופציה -n מאפשרת להדפיס n מהשורות הראשונות (ברירת המחדל היא 10). >head -20 phone ידפיס את 20 השורות הראשונות בקובץ phone • הפקודה tail [options] [files] מדפיסה רק מספר מהשורות האחרונות של קובץ האופציה -nמאפשרת להדפיס את n השורות האחרונות בקובץ (ברירת המחדל היא 10). האופציה +n מאפשרת להדפיס את כל השורות האחרונות החל מהשורה ה n -ית בקובץ.
שילוב תוכניות • נרצה להדפיס את השורות השניה והשלישית של קובץ בשם myfile • יצרנו קובץ זמני בשם first3 אשר נידרש למחקו אח"כ • נראה דרך פשוטה יותר לביצוע משימה זו של הפניית פלט של תוכנית אחת לקלט של התוכנית הבאה ע"י שמוש ב pipelining – העברה ישירה של פלט של תוכנית אחת לקלט של תוכנית אחרת > head –3 < myfile > first3 > tail –2 < first3
פקודות שימושיות נוספות more <file name> less <file name> man <command name> להציג קובץ על המסך עם עצירה אחרי כל דף >more prog2.c לקרוא מידע מפורט על פקודה >man ls>man man
Pipelining <program1> | <program2> program2 לוקחת כקלט את הפלט של program1. ניתן לבצע שרשור מסוג זה למספר תוכניות, כך שכל תוכנית לוקחת כקלט את הפלט של קודמתה, ומעבירה את הפלט שלה לבאה אחריה ברשימה > cat myfile | head –3 | tail –2 >ls aaa bbb ccc ddd >ls | head –3 aaa bbb ccc
הפקודה tee tee [options] [files] • לעיתים נרצה לשמור את הפלט אשר מוציאה פקודה הנמצאת באחד השלבים הפנימיים של ה piepeline • הפקודה משכפלת את כל מה שנכנס לקלט הסטנדרטי שלה ושולחת אותו הן לפלט הסטנדרטי והן לכל אחד מהקבצים ב [files] • לדוגמא: אם בנוסף להצגת השורה השניה והשלישית נרצה לשמור את שלושת השורות הראשונות של הקובץ myfile בשני קבצים שונים, נוכל לבצע : • אופציות נוספות: • האופציה -a מאפשרת שרשור של הפלט לסוף הקבצים [files] במקום מחיקתם. > head –3 myfile | tee file1 file2 | tail –2