Unix

איך אפשר לראות איזה תהליכים רצים על מכונת Unix?
איך אפשר להרוג תהליכים?
איך אפשר להריץ תהליך ברקע כך שלא יסגר כאשר אני מתנתק?
איך להתחבר מהבית ל nova או כל שרת Unix אחר עם ממשק גרפי?
מה עושים כשמקבלים את ההודעה error:can not open display:
מה זה Shell ואיך מפעילים אותו?
פקודות בסיסיות ב- Shell
פקודות בסיסיות בלינוקס(ויותר).
פיתוח ב- C בסביבת UNIX
שימוש ב- Shell בסביבת UNIX
ביצוע MOUNT באמצעות sshfs

איך אפשר לראות איזה תהליכים רצים על מכונת Unix?

דרך אחת היא בעזרת ps.

לדוגמא:

ps -auxww > somefile

לאחר מכן הפלט יופיע ב - somefile. יש לקרוא 'man ps' למידע נוסף לגבי האופציות, אבל למעשה אלה האופציות הכי שימושיות. (יש מקרים בהם משתמשים ב'l' במקום ב 'u' - יש לקרוא man לגבי האופציות הנ"ל) יש לשים לב שהאופציות שונות בגרסאות שונות של Unix - אלה אופציות המתאימות לכמה גרסאות לרבות Linux. ל - Irix ו - Solaris לדוגמא (ccsg, comfy), נשתמש באופציות -elf במקום -auxww. אפשר כמובן לבצע pipe על הפלט לתוך פקודה אחרת.

לדוגמא:

'{ps -auxww | grep testing | awk print $2}'

זה ידפיס את ה - (PID process ID) של כל התהליכים (processes) שיש את המילה 'testing' בפלט שלהם (לדוגמא: המילה 'testing' נמצאת בשורת הפקודה שלהם או שהם מורצים ע"י משתמש בשם זה) עוד פקודה שימושית היא'top'. היא מראה סטטוסים כלליים במערכת וגם מידע לגבי התהליכים הצורכים את רוב ה - CPU. TOP יכולה לבצע גם משימות, לא רק להראות מידע. יש להקליד 'h'מתוך TOP כדי לראות הסבר קצר או לקרוא ב - 'man top'

(חזרה לראש עמוד)

איך אפשר להרוג תהליכים?

יש להקליד kill pid כאשר pid הוא מספר הזיהוי של התהליך שאותו נרצה להרוג. ניתן גם לשלוח איתותים נוספים לתהליך - יש לקרוא 'man kill'.דרך נוספת היא ע"י לחיצה על 'k' מתוך top

(חזרה לראש עמוד)

איך אפשר להריץ תהליך ברקע כך שלא יסגר כאשר אני מתנתק?

ישנם כמה אפשרויות - צוות system ממליץ עלשימוש ב- Xpra:

1-  nohup - הצורה הקלאסית לבצע זאת היא :nohup process arg1 arg2 ... >& out & הפקודה nohup גורמת לתהליך להתעלם מסיגנל ה - hangup שמתקבל כאשר נסגור חלון.

2- screen- נכנסים למנהל החלונות מבוסס מסוף - screen.כאשר מריצים את screen, אפשר לדמיין שפתחנו מסוף או מסך נוסף לשרת שאנו עובדים עליו. אנחנו נריץ תהליך על אותו מסוף, נתנתק ממנו ונוכל לחזור לאותו מסוף מתי שנרצה.כדי להריץ את screen, יש להקליד מה - unix command line את הפקודה screen.החלון לא ישתנה אבל בכותרת תופיע המילה screen:

כאשר נמצאים בתוך screen, ניתן לבצע כמה פעולות:

  1. אם רוצים ש screen יסגר כאשר התהליך שלנו מסתיים, נריץ את התהליך שלנו באופן הבא: exec program (כאשר program הוא שם התוכנית)
  2. אם רוצים לחזור ל screen כדי לראות את הפלט של התהליך מאוחר יותר, יש להריץ את התוכנית רק ע"י הקלדה של שם התוכנית.

כדי להתנתק באופן זמני מ screen, יש ללחוץ על <Ctrl><a>< d>. במקרה הזה, ה screen עדיין יהיה במצב פעיל והתהליך שלך עדיין יהיה במצב ריצה.

כדי לחזור ל screen, יש להקליד מה - unix command line: screen -r

יציאה מסודרת מ - screen תעשה ע"י הקלדת הפקודה exit.ניתן לפתוח יותר מחלון אחד בתוך screen, לעבור מחלון אחד לשני, להעתיק ולהדביק ביניהם וכו'. אפשר למצוא הסבר נוסף לגבי רוב הפקודות השימושיות ע"י לחיצה על <Ctrl><a> <?>.

3- xpra - אפשר לדמיין שפתחנו מסוף או מסך נוסף לשרת שאנו עובדים עליו. אנחנו נריץ תהליך על אותו מסוף, נתנתק ממנו ונוכל לחזור לאותו מסוף מתי שנרצה. כדי להריץ תהליכים ב-xpra

בטרמינל של unix אנחנו רוצים להריץ תוכנית, שהיא תמשיך גם שהטרמינל נסגר -בדוגמה שלנו Matlab

xpra start :20 setenv DISPLAY :20 matlabr2013b &

check if it matlab start running

ps -ef | grep matlab

check what display is used in xpar instance

xpra list

Now you can close the terminal

על מנת לחזור לחלון ולעקוב אחר התוכנית חשוב לזכור את שם המכונה ממנו רץ התוכנית ואת הערך Display שהשתמשת בו:

From Windows open MobaXterm session

ssh nova
xpra attach ssh:euler-25:20

xpra attach ssh:machine_name:DIPLAY_value 

על מנת לעצור את התהליך

ssh nova
xpra stop ssh:euler-25:20

למידע נוסף  https://www.xpra.org

(חזרה לראש עמוד)

איך להתחבר מהבית ל nova או כל שרת Unix אחר עם ממשק גרפי?

צריך להריץ בבית X server, למשל eXceed או XWin (של Cygwin. (Cygwin ניתן להוריד בכתובת: http://www.cygwin.com בתהליך ההתקנה, במסך Select Packages יש לבחור ב - X11 וברשימה שתופיע, יש לבחור ב - WindowMaker: WindowMaker.

לאחר ביצוע ההתקנה, יש לבצע את הפעולות הבאות בכל פעם שרוצים להתחבר לשרתי ה - Unix :

1) יש להתחבר לשרת ה - Unix המבוקש (לדוגמא: nova.cs.tau.ac.il) עם תוכנת ssh כגון putty ולקנפג אותה כך שתבצע X11 forwarding

ביצוע X11 forwarding:

  1. יש להוריד את התוכנה putty מ: כאן
  2. לבצע Extract של קובץ ה-zip לתוך תיקיה מקומית כלשהי
  3. להריץ את קובץ ה-X11_Forwarding_Plink.bat :bat
  4. להתחבר ל nova.cs.tau.ac.il ע"י הקלדת שם משתמש וסיסמה.
    • הערה: במקום שלבים 1-3, אפשר פשוט להוריד את התוכנה putty.exe מ: כאן ולהגדיר ידנית את ה - X11 Forwarding ע"י בחירה ב tunnels בחלון ה -Category וסימון "Enable X11 Forwarding" .

2) פותחים session. אם החלטתם לעבוד עם cygwin, יש להריץ את cygwin.bat מהספריה שבה נמצאת התוכנה.יתכן ויופיע קישור לקובץ זה בשולחן העבודה.

פתיחת session:

  • 1. לאחר פתיחת Exceed או Cygwin, ב - Cygwin יש להריץ את הקובץ -XWin.exe (אפשר בקיצור להקליד את האותיות הגדולות XW ולאחר מכן לחיצה על מקש ה tab ובסוף Enter).
  • 2. עכשיו אפשר להריץ פקודות מ putty והפלט יופיע ב - X server (או להריץ את הפקודה startkde אשר תפתח את סביבת העבודה KDE שמתוכה אפשר לעבוד כרגיל. יש גם להבין שהעבודה תהיה איטית מהרגיל בשיטת עבודה זו)

למשתמשי Exceed: קנפוג ה - X server

  • 1. יש לקנפג את Exceed ע"י גישה ל - Start → All programs → Hummingbird connectivity → Exceed → Xconfig → Communication
  • 2. לבחור באופציה passive

(חזרה לראש עמוד)

מה עושים כשמקבלים את ההודעה error:can not open display:

יש להריץ את הפקודה:

setenv DISPLAY (server-name ):0.0

לדוגמא:

setenv DISPLAY nova:0.0

(חזרה לראש עמוד)

מה זה Shell ואיך מפעילים אותו?

מה זה ?Shell

ה- Shell היא תוכנית שמאפשרת למשתמש לעבוד ב- line mode מול מערכת ההפעלה – הרצת תוכניות, ניהול עץ הספריות שעל המחשב,יצירת קבצים והצגת פרטים עליהם, וכד'. בעבר עבודה מתוך Shell הייתה הדרך העיקרית לביצוע משימות אלו. בעשור האחרון התפתחו במידה רבה ממשקים גראפיים לביצוע אותן הפעולות (למשל  Xwindows במערכות Unix), אך השימוש ב- Shell עדיין נפוץ מאוד, ולפעמים גם נוח יותר (למשל כשמתחברים למחשב מרוחק שקו התקשורת אליו איטי).

הפעלת Shell

כדי לפתוח Shell יש לפתוח תוכנית שמדמה Console של מחשב. בסביבה שלנו צריך להפעיל את תוכנית Konsole שנמצאת ב-Applications בתת-תפריט  System Tools.

על המסך יפתח חלון, ובו שורת הפקודה:

euler-01  2%
בדוגמא שלנו: euler-01 הוא שם המחשב שעליו אנחנו עובדים.

פקודות בסיסיות ב- Shell

מספר פקודות בסיסיות לעבודה מתוך shell: 

פקודות בסיסיות
שם הפקודה מה עושה הפקודה
ls -l מציגה את תוכן הספרייה הנוכחית
pwd מציגה את שם הספרייה הנוכחית
cd dirname נכנסת לספרייה dirname
cd .. עולה לספריית האב של הספרייה הנוכחית
cd חוזרת לספרייה הבית של המשתמש
mkdir dirname יוצרת ספרייה חדשה בשם dirname
rmdir dirname מוחקת את הספרייה ששמה dirname (הספרייה צריכה להיות ריקה לפני המחיקה).
cp src dst מעתיקה את הקובץ src לקובץ חדש בשם dst.
rm filename מוחקת את הקובץ filename
mv src dst משנה את שם הקובץ src לשם dst
cat filename מציג את תוכן הקובץ filename
man command מציג תיעוד על הפקודה command (מה היא עושה, פרמטרים, וכד'). ליציאה ממסך העזרה יש להקיש q.

הערה: כל הפקודות ב- shell הן case-sensitive.

(חזרה לראש עמוד)

פקודות בסיסיות בלינוקס(ויותר)

ls – בכדי להציג תוכן של תיקייה.

ls -la מציגה תוכן של סיפרייה כולל הקבצים המוסתרים.

cd - ביכדי להיכנס לתיקייה

cd foldername

~ cd – להגיע מכל מקום לתיקיית הבית

.. cd – לעלות תיקייה אחת למעלה

rm – מחיקת קובץ בודד

rm flie

rm -r מחיקת תיקייה שלימה.

mkdir יצירת תיקייה.

mkdir dirname

mv – העברת תיקייה או קובץ למיקום אחר משמש גם לשינוי שם של תיקייה או קובץ.

cat – מציגה תוכן של קובץ

more – מציגה את התוכן של הקובץ. במידה והקובץ ארוך מידיי להצגה על המסך אז הקובץ יציג רק מספר מסויים של שורות וניתן יהיה לעבור הלאה עם מקש ה enter או לחיצה על הרווח.

pwd – מציגה את המיקום שבו נימצא המשתמש באותו הרגע.

cp – פקודה להעתקת קובץ

cp file /dir

 ps - מציג את התהליכים שרצים כרגע. ps -A  מציג את כל התהליכים שרצים מכל המשתמשים.

(חזרה לראש עמוד)

פיתוח ב- C בסביבת UNIX

בדף זה יוסברו העקרונות הבסיסיים של פיתוח תוכניות בשפת C בסביבת UNIX. ההסבר על השלבים השונים בפיתוח ילווה בדוגמא שיש לבצע במקביל לקריאה.

לפני תחילת העבודה פתח חלון console וצור ספרייה חדשה ב- home directory שלך בשם devunix כדאי שכל הקבצי העבודה ישמרו בצורה מסודרת בספרייה אחת.

העריכה התוכנית

השלב הראשון בתהליך הפיתוח הוא כתיבת התוכנית בשפת התכנות בה אנחנו משתמשים (במקרה שלנו זו שפת C ). כתיבת התוכנית מתבצעת עם עורך טקסט. אנחנו נדגים שימוש בעורך בשם Emcas, שהוא נפוץ מאוד בסביבת ה- Unix. עורך Emcas  הוא מורכב יחסית לעורכים אחרים (לדוגמה pico) אולם הוא מכיל יכולות חזקות לעבודת פיתוח של תוכניות ב- C, ולכן מומלץ להשקיע זמן בלימודו.

כדי לפתוח Emcas פתח חלון console והקש:

emcas &

יפתח חלון חדש עם הלוגו של הפרויקט ופרטים נוספים. כדי לפתוח קובץ חדש לחץ, file -> open file  בתחילת החון תופיע השורה עם הכיתוב find file: /some/path כאן המקום לקבוע את השם והמיקום של הקובץ החדש שלכם. במקום some/path/  רשמו devunix/myprog.c/~ והקישו ENTER.

אנינו רוצים לצור קובץ חדש בשם myprog בספריה devunix בספריית הבית.

לצטרך הדוגמא נכתוב תוכנית קצרה בשפת C הקלד את הפקודות הבאות על מסך emcas:

#include <stdio.h>

int main()

{

    printf(“hello world !\n”)

return 0;

}

כדי לשמור על הקובץ יש ללחוץ file->save

בסוף השורה שמתחילה ב- printf צריך להופיע ; אנחנו נשמור את הקובץ ללא ; על מנת ללמוד איך להתמודד עם שגיאות במהלך תהליך ההכנה של תוכנית

הכנת התוכנית לריצה

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

  1. קומפילציה (compilation) - תרגום התוכנית לשפת המכונה
  2. קישור (link) חיבור מספר קבצים בשפת המכונה והפיכתם לקובץ הרצה אחד. (בדוגמה שלנו לעבוד עם קובץ אחד במהלך הקורס לעבדו עם מספר יותר גדול של קבצים)

את שני התהליכים ההלו נבצע בעזרת compiler בשם gcc. על מנת לקמפל את התוכנית שכתבנו:

  1. פתח חלון console
  2. הכנס לספרייה devunix
  3. הקש את הפקודה בהאה:
gcc –Wall –o myprog myprog.c

הסבר: אנחנו מריציפ את התוכנית gcc מעבירים לה שני פרמטרים:

wall- :נרצה שהקומפילר יידוח לנו על שגיאות (errors) ואהזרות (warnings) מכל רמת חומרה שהיא. ברירת המחדל היא להדפיס רק שגיאות.

o-  :שם הקוץ שנרצה לקבל בסוף התהליך, חשוב לתת את הפרמטר השה כי ברירית המחדל היא a.out

myprog.c :שם הקובץ שנרצה לקמפל (שם הקובץ שכתבנו)

אם תהליך הקומפילציה עבר כמו שצריך, הפקודה צריבה להסתיים ללא כל פלט. אם היו שגיאות במהלך התהליך, הם ידווחו אל המסך. כאמור, הקובץ ששמרנו הכיל שגיאה תחבירית הפקודה printif הסתיימה ללא ";" אחרי הרצה ה-gcc אתם אמורים לקבל פלט דומה לפלט הבא:

nova 12% gcc -Wall  -o myprog myprog.c
myprog.c: In function `main':
myprog.c:6: parse error before `return'

הקומפיילר מדווח על שגיאות קומפילציה. בשורה רואים כי השגיאה היא בפומקציה הנקראת main. בשורה השניה ניתן לראות כי השגיאה היא בשורה 6 בקובץ myprog.c וכי הטעות היא טעות תחבירית לפני המילה return .

תרגיל:

  1. למה לדעתך מדווחת שגיאה בשורה השישית כשהשגיאה למעשה בשורה החמישית ?
  2. הכנס בחזרה ל- emcas ותקן את השגיאה שבקובץ (הוסף ";" בסוף שורה 5)
  3. קמפל מחדש את התוכנית, וודא שהתהליך מסתיים ללא שגיאות. אם נתקלת בשגיאות נוספות, נסה לתקן אותם בעצמך.

בסוף השלב הזה יש לנו קובץ הרצה של התוכנית שכתבנו.

הרצת התוכנית

כדי להריץ את התוכנית נכנס לספריית devunix  ונכתוב:

./myprog

 

(שים לב ל- "/." בתחילת התוכנית זאת פקודה ל-shell כי נרצה להריץ את התוכנית מהספרייה הנוכחית).

על המסך תופיעה השורה: hello world!

(חזרה לראש עמוד)

שימוש ב- Shell בסביבת UNIX

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

בדף זה תוסבר צורת השימוש ב- Shell ומספר פקודות בסיסיות.

מה זה Shell

ה- Shell היא תוכנית שמאפשרת למשתמש עבודה ב- line mode מול מערכת ההפעלה – הרצת תוכניות, ניהול עץ הספריות שעל המחשב,יצירת קבצים והצגת פרטים עליהם, וכד'. בעבר עבודה מתוך Shell הייתה הדרך העיקרית לביצוע משימות אלו. בעשור האחרון התפתחו במידה רבה ממשקים גראפיים לביצוע אותן הפעולות (למשל  Xwindows במערכות Unix), אך השימוש ב- Shell עדיין נפוץ מאוד, ולפעמים גם נוח יותר (למשל כשמתחברים למחשב מרוחק שקו התקשורת אליו איטי).

ישנם סוגים שונים של Shells. אנחנו נעבוד עם Shell שנקרא tc shell (או בקיצור tcsh).

פתיחת חלון Console

כדי לפתוח Shell יש לפתוח תוכנית שמדמה Console של מחשב. בסביבה שלנו (Linux Redhat 7.3 עם KDE) ניתן לעשות זאת ע"י לחיצה על ה- icon שצורתו
בשורה שבתחתית המסך (התוכנית הזו נקראת konsole).
על המסך יפתח חלון, ובו שורת פקודה:

nova 2%

בדוגמא שלנו, nova הוא שם המחשב שעליו אנחנו עובדים.
ניתן לפתוח מספר חלונות console במקביל.

ספריות וקבצים

לכל משתמש במערכת ה- Unix של האוניברסיטה נוצרת ספרייה מיוחדת שנקראת ספריית הבית (Home directory). הספרייה הזו נגישה מכל מחשבי ה- Unix וה- Windows של בית הספר. מיד עם הפעלת ה- Shell, אנחנו ממוקמים ב- Home Directory שלנו.

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

  1. הקש ls -l
  2. על המסך תופיע רשימת הקבצים והספריות ב- Home directory:
nova 8% ls -l
total 4
drwx------    3 artzi    math1        4096 Jan 26 18:02 Desktop

גם אם זו הכניסה הראשונה שלך למערכת, סביר להניח שיהיו ב- Home directory שלך מספר קבצים שנוצרים באופן אוטומטי לכל משתמש חדש.

נסביר עתה את משמעות הנתונים המוצגים על המסך:

התו השמאלי ביותר (בדוגמא שלנו התו d) מייצג את סוג הקובץ: "d" מייצג ספרייה, "-" מייצג קובץ רגיל, וכד'. ישנם סוגים נוספים שלא נזכיר כאן.

התווים הבאים אחריו (בדוגמא שלנו rwx------) מייצגים את ההרשאות שניתנו לקובץ, נרחיב עליהם מאוחר יותר.

בטור השני מופיע מספר (בדוגמא שלנו 3) שמסמן את המספר ההצבעות שיש אל הקובץ (בדף זה לא נדבר על הנושא הזה).

לכל קובץ ב- Unix יש שם משתמש שהוא הבעלים של הקובץ, ושם קבוצת משתמשים שהיא הקבוצה של הקובץ. בד"כ מדובר בשם המשתמש שיצר את הקובץ, ובקבוצת המשתמשים שלו. השיוך הזה משמעותי בעיקר לצרכי הרשאות גישה לקובץ.

בטור השלישי והרביעי מופיעים שם המשתמש שהוא הבעלים של הקובץ ושם הקבוצה של הקובץ (בדוגמה שלנו  artzi ו- math1).

בטור החמישי יופיע גודל הקובץ בבתים (בדוגמא שלנו 4096).

בטור השישי יופיע תאריך השנוי האחרון של הקובץ (Jan 26 18:02).

ובטור השישי מופע שם הקובץ (Desktop).

פקודות בסיסיות:

בטבלה המצורפת מופיעות מספר פקודות בסיסיות לעבודה מתוך shell:

פקודות בסיסיות
שם הפקודה עושה הפקודה

ls -l

מציגה את תוכן הספרייה הנוכחית

pwd

מציגה את שם הספרייה הנוכחית

cd dirname

נכנסת לספרייה dirname

cd ..

עולה לספריית האב של הספרייה הנוכחית

cd

 חוזרת לספרייה הבית של המשתמש

mkdir dirname

יוצרת ספרייה חדשה בשם dirname

rmdir dirname

מוחקת את הספרייה ששמה dirname (הספרייה צריכה להיות ריקה לפני המחיקה).

cp src dst

מעתיקה את הקובץ src לקובץ חדש בשם dst.

rm filename

מוחקת את הקובץ filename

mv src dst

משנה את שם הקובץ src לשם dst

cat filename

מציג את תוכן הקובץ filename

man command

מציג תיעוד על הפקודה command (מה היא עושה, פרמטרים, וכד'). ליציאה ממסך העזרה יש להקיש q.                                      

הערה: כל הפקודות ב- shell הן case-sensitive.

עריכת קבצים:

במערכת Linux סטנדרטית קיימים עשרות עורכים (editors) שונים. בסעיף זה נציג עורך פשוט מאוד בשם pico. כדי להפעיל אותו, פשוט הקש pico בשורת הפקודה. אחרי ההפעלה תוכל לערוך את הקובץ שלך. בשורה התחתונה מופיעות הפקודות העיקריות שהעורך מספק. הסימן ^ מסמן כאן (וברוב עולם המחשוב) את המקש Ctrl. למשל, כדי לשמור את הקובץ שכתבנו, יש ללחוץ ctrl ועל התו o (^-O).

הרשאות

מנגנון ההרשאות ב- Unix מכיל 3 סוגי הרשאות, ו- 3 גורמים שניתן להעניק להם הרשאות.


סוגי ההרשאות הם:

read – מאפשר קריאה מהקובץ.

write – מאפשר שינוי של הקובץ.

execute – מאפשר הרצה של תוכנית (במקרה ומדובר בקובץ הרצה).

ההרשאות האלו יכולות להינתן ל- 3 גורמים:

owner – הבעלים של הקובץ.

group – הקבוצה של הקובץ.

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

אפשר להגדיר כל שילוב של ההרשאות הנ"ל לכל אחד מהגורמים. כשמציגים פרטי קובץ עם הפקודה ls –l, ההרשאות מופיעות בטור הראשון, עבור הבעלים, הקבוצה ושאר העולם:
 

-rwx---r-x    1 shalitaa math1        1847 Apr 18  2002

לקובץ count.c ניתנו ההרשאות הבאות:

קריאה כתיבה והרצה לבעלים של הקובץ – המשתמש shalitaa (עפ"י השלשה השמאלית).

אף הרשאה לחברי הקבוצה של הקובץ – הקבוצה math1 (עפ"י השלשה האמצעית).

הרשאת קריאה והרצה לכל מי שאינו המשתמש shalitaa או חבר בקבוצה math1 (עפ"י השלשה הימנית).

כדי לשנות הרשאה על קובץ, נשתמש בפקודה chmod mode filename, כאשר filename הוא שם הקובץ שרוצים לשנות לו הרשאות, ו- mode הוא סוג ההרשאה.

סוג ההרשאה נכתב ב- 3 חלקים:

  1. הגורם לו ניתנת ההרשאה (u עבור user, g עבור group, o עבור other).
  2. סוג השינוי (+ עבור הוספה, - עבור הורדה, ו- = עבור מחיקת ההרשאות הקיימות וקביעה שלהם מחדש).
  3. סוג ההרשאה (r עבור read, w עבור write, x עבור הרצה).

לדוגמא, כדי להוסיף לקבוצה של הקובץ count ההרשאות קריאה והרצה, נרשום:

chmod g+rx count

הגדרה מומלצת להגשת תרגילים

במקרים האלה כדאי להגדיר את ההרשאת קבצים:

chmod 705 file_name

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

chmod 711 directory_name

 

Pipes

כשמריצים תוכנית, הפלט שלה מופיע על המסך. ה- Shell מאפשר לשנות את ההתנהגות הזו, ולהפנות את הפלט למקום אחר (כקלט לתוכנית אחרת, למשל).

כדי להעביר פלט תוכנית כקלט לתוכנית אחרת, נכתוב prog1 | prog2  (כש- prog1 היא התוכנית שרצה ראשונה, ו- prog2 היא התוכנית שרצה שנייה, ומקבלת כקלט את פלט התוכנית הראשונה).

לדוגמא, התוכנית head מחזירה את 10 השורות הראשונות שהיא קיבלה בקלט. ולכן הפקודה ls –l | head תחזיר את 10 השורות של הפלט של ls –l.

Redirection

ניתן גם להפנות את הפלט של תוכנית לתוך קובץ. כדי להעביר פלט תוכנית לתוך קובץ (במקום למסך), נכתוב prog > filename (כאשר  prog הוא שם התוכנית, ו- filename הוא שם הקובץ בו נרצה לשמור את הנתונים).

לדוגמא, כדי לשמור את הפלט של ls –l בקובץ output, נרשום ls –l > output.

תיעוד

את המדריך למשתמש של כל הפקודות שהצגנו (וכל פקודה אחרת במערכת) ניתן להציג באמצעות הפקודה man. למשל, man ls יציג תיעוד מפורט של הפקודה ls .

פרטים נוספים

לרוב הפקודות שהצגנו כאן יש מקבילות גראפיות, שדומות מאוד לצורת העבודה ב- Microsoft windows, ואנחנו מניחים שלא תתקשו להבין איך משתמשים בהם בעצמכם.

תרגיל

  1. פתח חלון console חדש.
  2. צור ספרייה חדש בספריית הבית שלך בשם new.
  3. הכנס לספרייה החדשה.
  4. ערוך (בעזרת pico) קובץ חדש. הקובץ יכיל את השורה "never open a box you didn’t close". הקובץ יקרא pandora.
  5. הצג את תוכן הספרייה אחרי הוספת הקובץ החדש.
  6. צור עותק של הקובץ, וקרא לו pandora_rule.
  7. הצג את תוכן הקובץ pandora_rule ללא שימוש ב- pico.
  8. צור עותק של הקובץ pandora_rule, ללא שימוש בפקודה copy (חשוב כיצד..). קרא לעותק chubaka.
  9. שנה את שם הקובץ pandora לשם original.
  10. שנה את ההרשאות של הקובץ original כך שהבעלים יוכל לקרוא ולכתוב אליו, חברי הקבוצה יוכלו רק לקרוא ממנו, ולשאר העולם לא תהיה גישה אליו.
  11. ודא כי השינוי בוצע בהצלחה.
  12.  wc היא תוכנית ב- UNIX. בדוק מה היא עושה.
  13. הפעל את wc על הפלט של ls –l .
  14. חזור לספרית הבית שלך.

כיצד ניתן לגשת לתיקיות WIN לוקאליות דרך לינוקס (SSHFS)?

כיוון שלא ניתן לבצע MOUNT \samba (אלא רק למורשים בלבד,כחלק מהקשחת המערכת) , אנו מאפשרים ביצוע MOUNT בתצורת sshfs - דהיינו , שיתוף מערכת קבצים חיצונית הנתמכת ע"י פרוטוקול SFTP (להרחבה - https://en.wikipedia.org/wiki/SSHFS)

​וודאו תחילה כי תחנת WIN מאפשרת גישה דרך SSH (ניתן להוריד תוכנות כגון OPENSSH , או לחילופין דרך אמולטורים כגון CYGWIN,MOBAXTERM) WIN10 לדוגמה , מאפשר גישה בssh כבילדאין בתוך המערכת (להרחבה - https://www.howtogeek.com/336775/how-to-enable-and-use-windows-10s-built...)

​אם אתם מתכוונים לעבוד בתצורת LINUX-LINUX - אין צורך לעשות כלום אלא לוודא כי פורט 22 (או כל פורט אחר שהגדרתם בהגדרות SSH אצלכם) מאזין.

​לאחר מכן , גשו לתחנת הלינוקס שלכם שעליה את מתכוונים לעשות MOUNT לתחנת הWIN . צרו תחילה MOUNTPOINT ולאחר מכן הקישו:

sshfs username@host:[path to dir] mountpoint

​תתבקשו לתת סיסמה בהתאם להגדרות אצלכם.

​בכדי לוודא את שהפועלה בוצעה יש להקיש:

​df -ha [mountpoint] 

​SSHFS מגיע עם אופציות רבות והגדרות נוספות. קראו תחילה man sshfs.

​בכדי לעשות UMOUNT יש להקיש:

​fusermount -u [mountpoint]

​להרחבה : 

https://www.digitalocean.com/community/tutorials/how-to-use-sshfs-to-mou...

(חזרה לראש עמוד)